Conceito de Cnidários: Origem, Definição e Significado

Conceito de Cnidários: Origem, Definição e Significado

Conceito de Cnidários: Origem, Definição e Significado

Mergulhe conosco no fascinante mundo dos Cnidários, um reino de formas de vida que desafiam a imaginação e moldam ecossistemas marinhos. Descubra a sua origem milenar, desvende a sua definição científica e compreenda o seu profundo significado evolutivo e ecológico.

A Origem Ancestral dos Cnidários: Uma Jornada de Bilhões de Anos

A história dos Cnidários é um conto antigo, tecido nas profundezas dos oceanos primordiais. Estima-se que esses organismos surpreendentes tenham surgido há mais de 600 milhões de anos, durante o Período Ediacarano. Pense nisso: eles estavam a navegar pelos mares da Terra muito antes dos dinossauros sequer sonharem em aparecer! Essa longevidade atesta uma adaptação e resiliência extraordinárias.

As evidências fósseis, embora muitas vezes fragmentárias, apontam para um passado repleto de formas de vida que gradualmente se assemelhavam aos cnidários que conhecemos hoje. Organismos como o *Protanemone*, um dos primeiros cnidários conhecidos, exibiam características que prenunciavam a complexidade e a beleza deste filo. A transição de formas de vida mais simples para a organização corporal dos cnidários representa um marco crucial na história da vida animal na Terra, demonstrando um salto evolutivo significativo em termos de organização celular e funcionalidade.

Estudar a origem dos cnidários é como desenterrar um tesouro genético, revelando as bases de muitas inovações biológicas que persistem até hoje. A capacidade de desenvolver tecidos especializados, um corpo com simetria radial e um sistema nervoso rudimentar, tudo isso começou a se delinear nesse passado distante. A comunidade científica continua a debater e refinar as teorias sobre as suas origens exatas, mas o consenso é claro: os cnidários são os veteranos da vida animal multicelular complexa. A sua linhagem é uma das mais antigas e bem-sucedidas do planeta.

O Que Define um Cnidário? Desvendando a Biologia Única

O termo “Cnidário” deriva da palavra grega *knide*, que significa “ortiga”. Essa denominação não é acidental; ela faz referência direta à característica mais distintiva e, para muitos, assustadora destes animais: a presença de células especializadas chamadas cnidócitos. Estes cnidócitos contêm organelas chamadas cnidas, sendo a mais conhecida o nematocisto.

O que o nematocisto faz? Imagine uma pequena arma biológica, uma cápsula que, ao ser acionada, dispara um filamento farpado ou penetrante. Este filamento, frequentemente carregado de toxinas potentes, é usado para capturar presas e, em alguns casos, para defesa contra predadores. A picada de algumas águas-vivas, por exemplo, pode ser extremamente dolorosa para os humanos, e para pequenos organismos marinhos, é fatal. Essa capacidade de “disparar” é uma das adaptações mais fascinantes do reino animal.

Além dos cnidócitos, os cnidários possuem outras características biológicas definidoras. A maioria apresenta uma simetria radial. Isso significa que seus corpos podem ser divididos em porções iguais através de múltiplos planos que passam pelo eixo central. Pense em uma pizza cortada em fatias iguais, mas em todas as direções. Essa simetria é particularmente útil em um ambiente aquático, permitindo que percebam o ambiente e capturem presas de todas as direções.

O corpo de um cnidário é relativamente simples em termos de organização, mas incrivelmente eficiente. Eles possuem apenas dois tecidos germinativos básicos: o ectoderma (camada externa) e o endoderma (camada interna), separados por uma camada gelatinosa chamada mesogleia. Essa estrutura de apenas duas camadas de tecido é uma característica que os diferencia de grupos mais complexos, como os triploblásticos. Apesar dessa simplicidade, as células dentro dessas camadas são altamente especializadas e organizadas para desempenhar funções vitais.

O sistema digestivo é igualmente singular. Os cnidários possuem uma cavidade gastrovascular, um saco com uma única abertura que funciona tanto como boca quanto como ânus. Alimentos entram por essa abertura, são digeridos e os resíduos são expelidos pelo mesmo local. Essa abordagem “tudo em um” é uma estratégia eficaz para organismos com um estilo de vida relativamente sedentário ou de movimento lento. A digestão, em muitos casos, é tanto extracelular (fora das células) quanto intracelular (dentro das células).

A diversidade de formas dentro do filo Cnidaria é espantosa. Ela inclui as formas sésseis (fixas) chamadas pólipos e as formas planctônicas (flutuantes) chamadas medusas. Algumas espécies alternam entre esses dois estágios em seu ciclo de vida, um fenômeno conhecido como metagênese. Essa alternância é uma estratégia evolutiva que pode otimizar a reprodução e a dispersão em diferentes condições ambientais.

O Significado dos Cnidários: Moldando Ecossistemas e Desafiando a Vida

O significado dos cnidários transcende a sua mera presença na vida marinha; eles desempenham papéis cruciais na estrutura e funcionamento dos ecossistemas aquáticos. Recifes de coral, por exemplo, são construídos por organismos cnidários chamados corais. Esses animais secretam esqueletos de carbonato de cálcio, que ao longo de milhares de anos formam estruturas massivas e complexas.

Os recifes de coral são alguns dos ecossistemas mais biodiversos da Terra, abrigando cerca de 25% de toda a vida marinha, apesar de cobrirem menos de 1% do fundo do oceano. Eles fornecem habitat, abrigo e áreas de reprodução para uma vasta gama de peixes, invertebrados e outros organismos. A saúde dos recifes de coral está diretamente ligada à saúde dos oceanos e, por extensão, ao bem-estar humano, fornecendo proteção costeira, turismo e recursos pesqueiros. O declínio dos recifes, muitas vezes associado ao aquecimento global e à poluição, é uma crise ecológica de proporções imensas.

Além dos corais, as águas-vivas (medusas) têm um papel significativo como predadores no plâncton e em pequenos peixes. Elas também servem como fonte de alimento para outros animais, como tartarugas marinhas e alguns tipos de peixes. A sua presença e abundância podem influenciar as cadeias alimentares marinhas de maneiras complexas e, por vezes, surpreendentes.

Outro grupo de cnidários, as anêmonas-do-mar, formam relações simbióticas fascinantes. Muitas anêmonas hospedam peixes-palhaço em seus tentáculos venenosos. O peixe-palhaço é imune ao veneno da anêmona, que por sua vez o protege de predadores. Em troca, o peixe-palhaço pode limpar a anêmona, defendê-la ou atrair presas para ela. Essa mutualismo é um exemplo clássico de como diferentes espécies podem evoluir para depender uma da outra.

A importância dos cnidários também se estende à pesquisa científica e à medicina. A observação de suas propriedades regenerativas, por exemplo, inspira estudos sobre o envelhecimento e a reparação de tecidos. Algumas toxinas de cnidários estão sendo investigadas por seu potencial terapêutico, como analgésicos e compostos anticâncer. O estudo dos cnidários continua a desvendar segredos sobre a vida, a evolução e o potencial bio-inspirado.

Diversidade Fascinante: Uma Visão Geral dos Principais Grupos

O filo Cnidaria é um mosaico de formas de vida, elegantemente adaptadas a uma infinidade de nichos ecológicos marinhos. Embora compartilhem características fundamentais, a diversidade dentro deste filo é espetacular. Podemos dividi-los em quatro classes principais, cada uma com suas particularidades intrigantes.

A primeira classe, e talvez a mais icônica, é a dos Hydrozoa. Este grupo é incrivelmente diverso, abrigando tanto pólipos quanto medusas, e muitas vezes apresentando um ciclo de vida complexo com alternância de gerações. Um exemplo notável é o *Hydra*, um pequeno pólipo de água doce que é frequentemente usado em laboratórios para estudar a regeneração e o desenvolvimento animal. Outro hydrozoário famoso é a caravela-portuguesa (*Physalia physalis*), um organismo colonial que flutua na superfície do oceano graças a uma bolsa de gás cheia de ar. Apesar de parecer uma única medusa, a caravela-portuguesa é, na verdade, uma colônia de pólipos especializados, cada um com uma função específica, como alimentação, reprodução ou flutuação. Essa organização colonial é um testemunho da engenhosidade evolutiva.

Em seguida, temos a classe Scyphozoa, que inclui a maioria das águas-vivas verdadeiras. Estas são predominantly formas medusoides, com o corpo em forma de sino ou guarda-chuva e tentáculos pendentes. A água-viva-?$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@For those who are less familiar with the intricate tapestry of marine life, the term “cnidarian” might conjure images of gentle, pulsing jellyfish drifting through the ocean currents or perhaps the vibrant, stationary beauty of sea anemones. Yet, delving deeper into the world of cnid
*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*/*$@*

O que são Cnidários e qual a sua principal característica definidora?

Cnidários são um filo de animais aquáticos que inclui águas-vivas, corais, anêmonas-do-mar e hidras. Sua característica mais marcante e definidora é a presença de células urticantes especializadas, chamadas cnidócitos, que contêm organelas chamadas nematocistos. Estes nematocistos são como pequenos arpões que podem ser disparados para capturar presas, se defender ou se fixar. A maioria dos cnidários vive em ambientes marinhos, embora algumas espécies, como as hidras, sejam de água doce.

Qual a origem evolutiva dos Cnidários e em que período surgiram na Terra?

A origem evolutiva dos Cnidários remonta a um período muito antigo da história da Terra, acredita-se que eles tenham surgido durante o Período Ediacárico, que ocorreu aproximadamente entre 635 e 541 milhões de anos atrás. Nesta era, a vida na Terra estava em seus primórdios, com organismos multicelulares começando a se diversificar. Os Cnidários são considerados um dos grupos animais mais antigos, representando uma etapa importante no desenvolvimento da complexidade biológica, com a presença de tecidos verdadeiros, um corpo relativamente organizado e a capacidade de locomoção, mesmo que rudimentar em muitas espécies.

Como a estrutura corporal dos Cnidários difere da dos animais mais simples como as esponjas?

A diferença fundamental na estrutura corporal dos Cnidários em relação às esponjas (filo Porifera) reside na presença de tecidos verdadeiros e uma organização corporal mais complexa. Enquanto as esponjas são animais diblásticos acelulares, o que significa que suas células não formam tecidos organizados, os Cnidários exibem duas camadas germinativas de células: a epiderme (camada externa) e a gastroderme (camada interna), separadas por uma substância gelatinosa chamada mesogleia. Esta organização em tecidos permite o desenvolvimento de funções mais especializadas, como a digestão extracelular em uma cavidade gastrovascular central e a presença de células nervosas rudimentares, formando uma rede nervosa difusa que coordena movimentos básicos e respostas a estímulos ambientais.

Qual o significado do termo “Cnidário” e de onde vem sua etimologia?

O termo “Cnidário” deriva do grego antigo “cnide” (κνίδη), que significa “urtiga” ou “ardil”. Essa denominação está diretamente ligada à característica mais distintiva deste filo: a presença de cnidócitos, as células urticantes mencionadas anteriormente. O nome foi cunhado para refletir a capacidade desses animais de “queimar” ou “irritar” outros organismos através dos nematocistos. Portanto, o significado do termo “Cnidário” é intrinsecamente ligado à sua principal arma defensiva e predatória, que é a sua capacidade de injetar substâncias irritantes ou venenosas em suas vítimas.

Quais são os principais grupos ou classes dentro do filo Cnidaria e quais suas características distintivas?

O filo Cnidaria é tradicionalmente dividido em quatro classes principais, cada uma com características distintivas:
1. Hydrozoa: Inclui organismos como hidras de água doce, algumas águas-vivas e corais. Frequentemente apresentam alternância de gerações entre pólipos sésseis e medusas (pólipos com capacidade de reprodução assexuada e sexual, respectivamente). Muitos hidróides exibem colônias complexas com polimorfismo.
2. Scyphozoa: São as verdadeiras águas-vivas. O estágio de medusa é dominante em seu ciclo de vida, sendo maiores e mais complexos que as medusas dos hidrozoários. Possuem um ciclo de vida que geralmente inclui um estágio larval (planula) e um estágio de pólipo (escifostoma) que produz novas medusas por estrobilização. Sua simetria radial é bem definida.
3. Cubozoa: Conhecidas como águas-vivas-caixa, possuem um corpo em forma de cubo e tentáculos em cada canto da umbrela. São predadores ativos e rápidos, com um sistema nervoso mais desenvolvido, incluindo olhos rudimentares que lhes permitem ter uma visão limitada. Sua toxina pode ser extremamente potente.
4. Anthozoa: Inclui corais e anêmonas-do-mar. Estes cnidários não possuem estágio de medusa em seu ciclo de vida; eles existem apenas na forma de pólipo, que pode ser solitário ou colonial. Muitos antozoários, como os corais duros, constroem esqueletos externos de carbonato de cálcio, formando recifes de coral que são ecossistemas marinhos de grande biodiversidade.

Como os Cnidários se alimentam e qual o papel da cavidade gastrovascular nesse processo?

Os Cnidários se alimentam capturando pequenas presas, como zooplâncton, pequenos crustáceos e peixes. A alimentação ocorre através da utilização de seus tentáculos, que estão equipados com os cnidócitos e seus nematocistos para paralisar ou capturar a presa. Uma vez imobilizada, a presa é levada à boca, que se abre para a cavidade gastrovascular. Esta cavidade funciona como um estômago e um intestino primitivos. As células da gastroderme liberam enzimas digestivas na cavidade para iniciar a digestão extracelular, decompondo a presa em partículas menores. Em seguida, essas partículas são absorvidas pelas células da gastroderme, onde a digestão intracelular é completada. Resíduos não digeridos são expelidos pela mesma abertura, a boca/ânus, pois a cavidade gastrovascular é incompleta, com uma única abertura.

Qual a importância ecológica dos Cnidários, especialmente dos corais, nos ecossistemas marinhos?

Os Cnidários, em particular os corais formadores de recifes, desempenham um papel ecológico de suma importância nos ecossistemas marinhos. Os recifes de coral são considerados verdadeiros “hotspots” de biodiversidade, abrigando cerca de 25% de toda a vida marinha conhecida, incluindo uma vasta gama de peixes, invertebrados e algas. Eles fornecem habitat, locais de reprodução e áreas de alimentação para inúmeras espécies. Além disso, os recifes de coral atuam como barreiras naturais que protegem as costas da erosão e de tempestades. Outros cnidários, como as águas-vivas, também fazem parte da cadeia alimentar, servindo como presa para alguns animais e como predadores de outros, contribuindo para o equilíbrio das populações em diferentes níveis tróficos do oceano.

De que forma a reprodução nos Cnidários pode variar entre os diferentes grupos e estágios de vida?

A reprodução nos Cnidários demonstra uma notável diversidade, podendo ocorrer tanto de forma assexuada quanto sexuada. A reprodução assexuada é comum em ambos os estágios de pólipo e medusa, e pode envolver processos como brotamento (gemulação), onde um novo indivíduo cresce a partir de um broto no corpo do progenitor, ou fissão, onde o corpo se divide em duas ou mais partes. A reprodução sexuada geralmente envolve a liberação de gametas (óvulos e espermatozoides) na água, que se unem para formar um zigoto. Este zigoto se desenvolve em uma larva ciliada chamada planula, que é capaz de se deslocar. A planula, em seguida, fixa-se a um substrato e se metamorfoseia em um novo pólipo. Em muitos cnidários, como as águas-vivas, o pólipo se reproduz assexuadamente para gerar medusas, que por sua vez se reproduzem sexuadamente, estabelecendo um ciclo de vida com alternância de gerações, conhecido como metagênese. Este ciclo representa uma estratégia adaptativa para maximizar a propagação e a diversidade genética.

Existem Cnidários que apresentam um ciclo de vida predominantemente em estágio de pólipo ou medusa?

Sim, definitivamente. Os ciclos de vida dos Cnidários podem ser predominantemente em estágio de pólipo ou medusa, dependendo da classe e da espécie. Por exemplo, na classe Anthozoa (corais e anêmonas-do-mar), o estágio de medusa está ausente no ciclo de vida; eles existem exclusivamente na forma de pólipo. Os pólipos podem ser solitários ou formar colônias. Em contraste, as Scyphozoa (águas-vivas verdadeiras) têm um ciclo de vida onde o estágio de medusa é o dominante, sendo geralmente maior e mais complexo que o estágio de pólipo (escifostoma). As Hydrozoa exibem uma grande variação, com algumas espécies apresentando um ciclo de vida onde o pólipo é dominante e a medusa é rudimentar ou ausente, enquanto outras têm uma medusa bem desenvolvida que supera o estágio de pólipo em importância. As Cubozoa também têm um ciclo de vida onde a medusa é a forma predominante e ativa. Essa flexibilidade nos ciclos de vida permite que os cnidários explorem diferentes nichos ecológicos e respondam a diversas condições ambientais.

Quais são os tipos de locomoção encontrados nos Cnidários e como eles se deslocam em seu ambiente?

A locomoção nos Cnidários varia consideravelmente entre os diferentes grupos e formas de vida. Os cnidários que existem na forma de pólipo são geralmente sésseis, ou seja, fixos a um substrato. No entanto, alguns pólipos, como certas hidras, são capazes de se mover lentamente por deslizamento sobre o substrato, usando sua base adesiva, ou por um tipo de salto, dobrando-se e empurrando-se com seus tentáculos. As formas de medusa, como as águas-vivas, são pelágicas e se deslocam ativamente na coluna d’água. Elas se movem principalmente através da contração rítmica de sua umbrela (corpo em forma de sino), expelindo água para trás e impulsionando-se para frente. Este movimento, conhecido como propulsão a jato, permite que elas nadem e se posicionem para capturar presas ou evitar predadores. Algumas medusas também podem ser levadas passivamente pelas correntes oceânicas.

Compartilhe esse conteúdo!

Publicar comentário