From 9ab1e3f8768aca2bece40f0c90bb2e5365260c15 Mon Sep 17 00:00:00 2001 From: tulioperdigao <116309232+tulioperdigao@users.noreply.github.com> Date: Tue, 28 Oct 2025 13:44:31 -0300 Subject: [PATCH] FIX: Mudando a API de busca por cep. --- app.js | 57 +- outputs/enderecos_output_1761669569516.csv | 5957 ++++++++++++++++++++ outputs/enderecos_output_1761669805089.csv | 5957 ++++++++++++++++++++ uploads/08becd79c38ee2a58343374685baedb0 | 5957 ++++++++++++++++++++ uploads/0b4cbe3652b578c066824eca619c2e6a | 5957 ++++++++++++++++++++ uploads/3dc06b16308b13709f9d1e3195ccb272 | 5957 ++++++++++++++++++++ uploads/51c7c998aa925bc790228466d601f9e7 | 5957 ++++++++++++++++++++ uploads/6e75b6868cf683713aa4ee87db6bdc95 | 5957 ++++++++++++++++++++ uploads/ff457af9e1a6fae95d4852e3f1dc0bff | 5957 ++++++++++++++++++++ 9 files changed, 47690 insertions(+), 23 deletions(-) create mode 100644 outputs/enderecos_output_1761669569516.csv create mode 100644 outputs/enderecos_output_1761669805089.csv create mode 100644 uploads/08becd79c38ee2a58343374685baedb0 create mode 100644 uploads/0b4cbe3652b578c066824eca619c2e6a create mode 100644 uploads/3dc06b16308b13709f9d1e3195ccb272 create mode 100644 uploads/51c7c998aa925bc790228466d601f9e7 create mode 100644 uploads/6e75b6868cf683713aa4ee87db6bdc95 create mode 100644 uploads/ff457af9e1a6fae95d4852e3f1dc0bff diff --git a/app.js b/app.js index 2bfee84..5a2b949 100644 --- a/app.js +++ b/app.js @@ -284,14 +284,18 @@ function createApp() { if (!Number.isFinite(lat) || !Number.isFinite(lon)) { if (rawCep) { const cep8 = rawCep.padStart(8, "0"); - const viaCepData = await fetchJson( - `https://viacep.com.br/ws/${cep8}/json/` - ); - if (viaCepData && !viaCepData.erro) { - const logradouro = viaCepData.logradouro || ""; - const bairro = viaCepData.bairro || ""; - const cidade = viaCepData.localidade || ""; - const uf = viaCepData.uf || ""; + const cepRestData = await fetch( + 'https://api.cep.rest/', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ cep: cep8 }) + } + ).then(r => r.json()); + if (cepRestData && !cepRestData.erro) { + const logradouro = cepRestData.data.logradouro || ""; + const bairro = cepRestData.data.bairro || ""; + const cidade = cepRestData.data.localidade || ""; + const uf = cepRestData.data.uf || ""; if (logradouro) { builtAddress = `${logradouro}, ${rawNumero}, ${bairro}, ${cidade} - ${uf}` @@ -477,15 +481,18 @@ function createApp() { const cep = String(rawCep).replace(/\D/g, ""); const numero = rawNumero ? String(rawNumero).trim() : ""; try { - const viaCepData = await fetchJson( - `https://viacep.com.br/ws/${cep}/json/` - ); + const viaCepData = await fetch( + 'https://api.cep.rest/', { method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ cep }) + } + ).then(r => r.json()); if (!viaCepData || viaCepData.erro) return res.status(404).json({ error: "CEP não encontrado" }); - const logradouro = viaCepData.logradouro || ""; - const bairro = viaCepData.bairro || ""; - const cidade = viaCepData.localidade || ""; - const uf = viaCepData.uf || ""; + const logradouro = viaCepData.data.logradouro || ""; + const bairro = viaCepData.data.bairro || ""; + const cidade = viaCepData.data.localidade || ""; + const uf = viaCepData.data.uf || ""; const endereco = `${logradouro}, ${numero}, ${bairro}, ${cidade} - ${uf}` .replace(/, ,/g, ",") @@ -565,15 +572,19 @@ function createApp() { const numero = rawNumero ? String(rawNumero).trim() : ""; try { - const viaCepData = await fetchJson( - `https://viacep.com.br/ws/${cep}/json/` - ); - if (!viaCepData || viaCepData.erro) + const cepRestData = await fetch( + 'https://api.cep.rest/', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ cep }) + } + ).then(r => r.json()); + if (!cepRestData || cepRestData.erro) return res.status(404).json({ error: "CEP não encontrado" }); - const logradouro = viaCepData.logradouro || ""; - const bairro = viaCepData.bairro || ""; - const cidade = viaCepData.localidade || ""; - const uf = viaCepData.uf || ""; + const logradouro = cepRestData.data.logradouro || ""; + const bairro = cepRestData.data.bairro || ""; + const cidade = cepRestData.data.localidade || ""; + const uf = cepRestData.data.uf || ""; const endereco = `${logradouro}, ${numero}, ${bairro}, ${cidade} - ${uf}` .replace(/, ,/g, ",") .replace(/^,\s*/, ""); diff --git a/outputs/enderecos_output_1761669569516.csv b/outputs/enderecos_output_1761669569516.csv new file mode 100644 index 0000000..9bf420f --- /dev/null +++ b/outputs/enderecos_output_1761669569516.csv @@ -0,0 +1,5957 @@ +CEP;Número;Endereço;Latitude;Longitude;Não dedicado;Dedicado;Distancia;Parceiro/Sothis +07024030;10;Avenida Lino Antônio Nogueira, 10, Jardim Santa Francisca, Guarulhos - SP;-23.475997;-46.527169;Não viável;Não viável;2568M; +13420360;420;Avenida Doutor Cássio Paschoal Padovani, 420, Morumbi, Piracicaba - SP;-22.727049;-47.622691;Não viável;Não viável;5km +; +05624000;243;Rua Manuel Jacinto, 243, Vila Morse, São Paulo - SP;-23.591006;-46.727963;Não viável;viável;556M;Sothis +15025000;5250;Avenida Bady Bassitt, 5250, Boa Vista, São José do Rio Preto - SP;-20.821733;-49.400002;Não viável;Não viável;5km +; +05314020;1250;Rua Bruno Bauer, 1250, Vila Leopoldina, São Paulo - SP;-23.531100;-46.738935;Não viável;Não viável;4353M; +13030100;385;Avenida Benedito de Campos, 385, Jardim do Trevo, Campinas - SP;-22.928064;-47.069441;Não viável;Não viável;5km +; +04543011;1593;Avenida Presidente Juscelino Kubitschek, 1593, Vila Nova Conceição, São Paulo - SP;-23.591607;-46.684302;Não viável;viável;509M;Sothis +04795100;23293;Avenida das Nações Unidas, 23293, Vila Almeida, São Paulo - SP;-23.682411;-46.691889;Não viável;Não viável;1270M;Sothis +05576000;Km 14.5;Rodovia Raposo Tavares, Km 14.5, Conjunto Residencial Butantã, São Paulo - SP;-23.576726;-46.722010;Não viável;viável;592M;Sothis +09080111;1805;Avenida Dom Pedro II, 1805, Campestre, Santo André - SP;-23.641036;-46.540986;viável;viável;345M;Sothis +09751000;1379;Avenida Pereira Barreto, 1379, Baeta Neves, São Bernardo do Campo - SP;-23.686346;-46.547629;viável;viável;67M;Sothis +03154100;2560;Avenida Professor Luiz Ignácio Anhaia Mello, 2560, Jardim Avelino, São Paulo - SP;-23.582956;-46.564851;Não viável;Não viável;2214M;Sothis +04260020;745;Avenida Doutor Ricardo Jafet, 745, Vila Santa Eulalia, São Paulo - SP;-23.583661;-46.615935;viável;viável;423M;Sothis +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; \ No newline at end of file diff --git a/outputs/enderecos_output_1761669805089.csv b/outputs/enderecos_output_1761669805089.csv new file mode 100644 index 0000000..9bf420f --- /dev/null +++ b/outputs/enderecos_output_1761669805089.csv @@ -0,0 +1,5957 @@ +CEP;Número;Endereço;Latitude;Longitude;Não dedicado;Dedicado;Distancia;Parceiro/Sothis +07024030;10;Avenida Lino Antônio Nogueira, 10, Jardim Santa Francisca, Guarulhos - SP;-23.475997;-46.527169;Não viável;Não viável;2568M; +13420360;420;Avenida Doutor Cássio Paschoal Padovani, 420, Morumbi, Piracicaba - SP;-22.727049;-47.622691;Não viável;Não viável;5km +; +05624000;243;Rua Manuel Jacinto, 243, Vila Morse, São Paulo - SP;-23.591006;-46.727963;Não viável;viável;556M;Sothis +15025000;5250;Avenida Bady Bassitt, 5250, Boa Vista, São José do Rio Preto - SP;-20.821733;-49.400002;Não viável;Não viável;5km +; +05314020;1250;Rua Bruno Bauer, 1250, Vila Leopoldina, São Paulo - SP;-23.531100;-46.738935;Não viável;Não viável;4353M; +13030100;385;Avenida Benedito de Campos, 385, Jardim do Trevo, Campinas - SP;-22.928064;-47.069441;Não viável;Não viável;5km +; +04543011;1593;Avenida Presidente Juscelino Kubitschek, 1593, Vila Nova Conceição, São Paulo - SP;-23.591607;-46.684302;Não viável;viável;509M;Sothis +04795100;23293;Avenida das Nações Unidas, 23293, Vila Almeida, São Paulo - SP;-23.682411;-46.691889;Não viável;Não viável;1270M;Sothis +05576000;Km 14.5;Rodovia Raposo Tavares, Km 14.5, Conjunto Residencial Butantã, São Paulo - SP;-23.576726;-46.722010;Não viável;viável;592M;Sothis +09080111;1805;Avenida Dom Pedro II, 1805, Campestre, Santo André - SP;-23.641036;-46.540986;viável;viável;345M;Sothis +09751000;1379;Avenida Pereira Barreto, 1379, Baeta Neves, São Bernardo do Campo - SP;-23.686346;-46.547629;viável;viável;67M;Sothis +03154100;2560;Avenida Professor Luiz Ignácio Anhaia Mello, 2560, Jardim Avelino, São Paulo - SP;-23.582956;-46.564851;Não viável;Não viável;2214M;Sothis +04260020;745;Avenida Doutor Ricardo Jafet, 745, Vila Santa Eulalia, São Paulo - SP;-23.583661;-46.615935;viável;viável;423M;Sothis +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; +;;;;;;;; \ No newline at end of file diff --git a/uploads/08becd79c38ee2a58343374685baedb0 b/uploads/08becd79c38ee2a58343374685baedb0 new file mode 100644 index 0000000..9b5b177 --- /dev/null +++ b/uploads/08becd79c38ee2a58343374685baedb0 @@ -0,0 +1,5957 @@ +CEP;Numero;;;;; +07024-030;10;;;;; +13420360;420;;;;; +05624000;243;;;;; +15025000;5250;;;;; +05314-020;1250;;;;; +13030100;385;;;;; +04543011;1593;;;;; +04795-100;23293;;;;; +05576-000; Km 14.5;;;;; +09080111;1805;;;;; +09751000;1379;;;;; +03154-100;2560;;;;; +04260020;745;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;;  +;;;;;;  diff --git a/uploads/0b4cbe3652b578c066824eca619c2e6a b/uploads/0b4cbe3652b578c066824eca619c2e6a new file mode 100644 index 0000000..9b5b177 --- /dev/null +++ b/uploads/0b4cbe3652b578c066824eca619c2e6a @@ -0,0 +1,5957 @@ +CEP;Numero;;;;; +07024-030;10;;;;; +13420360;420;;;;; +05624000;243;;;;; +15025000;5250;;;;; +05314-020;1250;;;;; +13030100;385;;;;; +04543011;1593;;;;; +04795-100;23293;;;;; +05576-000; Km 14.5;;;;; +09080111;1805;;;;; +09751000;1379;;;;; +03154-100;2560;;;;; +04260020;745;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;;  +;;;;;;  diff --git a/uploads/3dc06b16308b13709f9d1e3195ccb272 b/uploads/3dc06b16308b13709f9d1e3195ccb272 new file mode 100644 index 0000000..9b5b177 --- /dev/null +++ b/uploads/3dc06b16308b13709f9d1e3195ccb272 @@ -0,0 +1,5957 @@ +CEP;Numero;;;;; +07024-030;10;;;;; +13420360;420;;;;; +05624000;243;;;;; +15025000;5250;;;;; +05314-020;1250;;;;; +13030100;385;;;;; +04543011;1593;;;;; +04795-100;23293;;;;; +05576-000; Km 14.5;;;;; +09080111;1805;;;;; +09751000;1379;;;;; +03154-100;2560;;;;; +04260020;745;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;;  +;;;;;;  diff --git a/uploads/51c7c998aa925bc790228466d601f9e7 b/uploads/51c7c998aa925bc790228466d601f9e7 new file mode 100644 index 0000000..9b5b177 --- /dev/null +++ b/uploads/51c7c998aa925bc790228466d601f9e7 @@ -0,0 +1,5957 @@ +CEP;Numero;;;;; +07024-030;10;;;;; +13420360;420;;;;; +05624000;243;;;;; +15025000;5250;;;;; +05314-020;1250;;;;; +13030100;385;;;;; +04543011;1593;;;;; +04795-100;23293;;;;; +05576-000; Km 14.5;;;;; +09080111;1805;;;;; +09751000;1379;;;;; +03154-100;2560;;;;; +04260020;745;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;;  +;;;;;;  diff --git a/uploads/6e75b6868cf683713aa4ee87db6bdc95 b/uploads/6e75b6868cf683713aa4ee87db6bdc95 new file mode 100644 index 0000000..9b5b177 --- /dev/null +++ b/uploads/6e75b6868cf683713aa4ee87db6bdc95 @@ -0,0 +1,5957 @@ +CEP;Numero;;;;; +07024-030;10;;;;; +13420360;420;;;;; +05624000;243;;;;; +15025000;5250;;;;; +05314-020;1250;;;;; +13030100;385;;;;; +04543011;1593;;;;; +04795-100;23293;;;;; +05576-000; Km 14.5;;;;; +09080111;1805;;;;; +09751000;1379;;;;; +03154-100;2560;;;;; +04260020;745;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;;  +;;;;;;  diff --git a/uploads/ff457af9e1a6fae95d4852e3f1dc0bff b/uploads/ff457af9e1a6fae95d4852e3f1dc0bff new file mode 100644 index 0000000..9b5b177 --- /dev/null +++ b/uploads/ff457af9e1a6fae95d4852e3f1dc0bff @@ -0,0 +1,5957 @@ +CEP;Numero;;;;; +07024-030;10;;;;; +13420360;420;;;;; +05624000;243;;;;; +15025000;5250;;;;; +05314-020;1250;;;;; +13030100;385;;;;; +04543011;1593;;;;; +04795-100;23293;;;;; +05576-000; Km 14.5;;;;; +09080111;1805;;;;; +09751000;1379;;;;; +03154-100;2560;;;;; +04260020;745;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;; +;;;;;;  +;;;;;;