introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ml4all/slides/introducao.pdf · algorithmic...
TRANSCRIPT
![Page 1: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/1.jpg)
Universidade Federal do Parana
Laboratorio de Estatıstica e Geoinformacao - LEG
Introducao
Eduardo Vargas Ferreira
![Page 2: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/2.jpg)
O que e Machine Learning?
Estatıstica Machine LearningCiencia da
computacao
Metodos aplicados a problemas
2
![Page 3: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/3.jpg)
Predicao versus Inferencia
• Data Modeling Culture
? Domina a comunidade estatıstica;
? O principal objetivo esta na interpretacao dos parametros;
? Testar suposicoes e fundamental.
• Algorithmic Modeling Culture
? Domina a comunidade de Machine Learning;
? O modelo e utilizado para criar bons algoritmos preditivos;
? Interpretamos os resultados, mas esse - em geral - nao e o foco.
L. Breiman. Statistical modeling: The two cultures. Statistical Science,16(3):199-231, 2001
3
![Page 4: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/4.jpg)
Algoritmos de Machine Learning
4
![Page 5: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/5.jpg)
Onde desprendemos mais tempo
5
![Page 6: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/6.jpg)
Machine Learning na pratica
1 Definicao dos objetivos: trata-se do primeiro passo de qualquer analise.Devemos saber onde queremos chegar!
2 Coleta dos dados: envolve a coleta de material que o algoritmo utilizarapara gerar conhecimento;
3 Exploracao e preparacao dos dados: e exigido um trabalho adicional napreparacao desses, recodificando-os de acordo com os inputs esperados;
4 Formacao do modelo: depois dos dados preparados, o pesquisador ja ecapaz de dizer o que e possıvel aprender deles, e como;
5 Avaliacao dos modelos: avaliamos a qualidade do aprendizado, naopode ser pouco (underfitting) nem decorar os dados (overfitting);
6 Melhoria do modelo: se necessario, podemos melhorar o desempenho domodelo atraves de estrategias avancadas.
6
![Page 7: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/7.jpg)
Objetivos
Modelos Base de dados
7
![Page 8: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/8.jpg)
Defina seus objetivos
• Para quem nao sabe onde vai, qualquer direcao serve!
8
![Page 9: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/9.jpg)
Entenda o problema, depois pense como resolve-lo
• Qual o problema na foto ao lado?
• Sendo o animal de tracao, troque-o porum aviao!
• Se continuar, compre um mais potente;
Uso de Tecnologia
Uso de Tecnologia
Uso de Tecnologia
9
![Page 10: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/10.jpg)
Vamos procurar por “ideias fora da caixa”
• Com o passar do tempo, criamos padroes que ficam cada vez maisestabelecidos em nossa mente;
• Este pensamento reflete em toda organizacao. Notamos processosfuncionando da mesma maneira, meses, ate anos e nao fazemos nada;
10
![Page 11: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/11.jpg)
Somos todos criativos
• Isso nao tem relacao com lado docerebro mais desenvolvido;
• E sim com tecnica e vontade defazer diferente;
• Solucoes antigas nao resolvemproblemas novos.
11
![Page 12: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/12.jpg)
Formas de pensar em cada estagio
1 Criativo
? Resulta em novas ideias e possibilidades;
? Sem ele, em geral, ocorre “mais do mesmo”.
2 Logico positivo
? Como fazer novas ideias funcionarem;
? Sem ele mudancas nao serao praticas e funcionais.
3 Logico negativo (crıtico)
? Busca por falhas na nova ideia;
? Sem ele problemas podem nao vir a tona.
12
![Page 13: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/13.jpg)
Seis chapeus do pensamento
13
![Page 14: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/14.jpg)
Seis chapeus do pensamento
• Nos ajuda a analisar um problema, uma ideia ou situacao de diversasperspectivas, permitindo uma visao mais abrangente da situacao;
Os 6 chapeus do pensamento
• De acordo com a cor do chapeu, nos focamos em apenas um aspecto dopensamento, deixando os demais de lado, ate mudar do chapeu.
14
![Page 15: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/15.jpg)
Seis chapeus do pensamento
15
![Page 16: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/16.jpg)
Ser criativo e ter um bom repertorio
“Criatividade e apenas conectar coisas. Quando voce pergunta a pessoascriativas como elas criaram algo, elas se sentem culpadas, pois nao criaramalgo de fato, apenas viram alguma coisa obvio ali.” Steve Jobs
Steve Jobs, Connecting the dots
16
![Page 17: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/17.jpg)
Tecnica dos “Cinco Por ques”
17
![Page 18: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/18.jpg)
Tecnica dos “Cinco Por ques”
• Foi percebido que o monumento de Abraham Lincoln deteriorava-se maisrapidamente do que qualquer outro em Washington, D.C. Por que?
1 Porque e limpo com mais frequencia queos outros monumentos. Por que?
2 Porque tem mais dejetos de passaros queos outros monumentos. Por que?
3 Porque tem mais passaros em volta destemonumento do que dos outros. Por que?
4 Porque tem mais insetos em torno destemonumento. Por que?
5 Porque a lampada que o ilumina ediferente das outras e atraı mais insetos.
• A solucao para o problema e a troca da lampada. Poderiam trocar osprodutos de limpeza ou colocar espantalho, mas o problema persistiria.
18
![Page 19: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/19.jpg)
Correlacoes da vida real
• O consumo de sorvete esta correlacionado com o numero de afogamentosde piscina;
• O sorvete nao causa afogamentos. Ambos estao correlacionados como clima do verao;
• Em 90% das brigas do bar que terminaram em uma morte, a pessoa quecomecou a briga morreu;
• Claro, e a pessoa que sobreviveu contando a historia;
• Terapia de reposicao hormonal esta correlacionada com uma menor taxade doenca coronaria;
• Pessoas que realizam reposicao hormonal, geralmente, pertencem agrupos socioeconomicos mais elevados, com habitos mais saudaveis;
19
![Page 20: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/20.jpg)
Diagrama de causa e efeito
20
![Page 21: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/21.jpg)
Diagrama de causa e efeito
• O Diagrama de causa e efeito ajuda a descobrir, organizar e resumir todoesse conhecimento atual, alinhando a equipe a respeito do problema;
21
![Page 22: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/22.jpg)
Diagrama direcionador
22
![Page 23: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/23.jpg)
Diagrama direcionador
• Assim como placas e faixas auxiliam no transito, essa tecnica contribuipara a busca de solucoes nas diversas fases das analises.
• Como uma especie de mapa, ele aponta caminhos ou alternativas quepodem ser tomados pelo grupo de trabalho do projeto.
23
![Page 24: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/24.jpg)
Diagrama direcionador
24
![Page 25: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/25.jpg)
Objetivos
Modelos Base de dados
25
![Page 26: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/26.jpg)
The Art of Feature Engineering
• Feature engineering e a arte de extrair informacao dos dados ja obtidos:
1 Criacao de caracterısticas;
2 Dados faltantes;
3 Dados desbalanceados;
4 Variaveis correlacionadas.
26
![Page 27: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/27.jpg)
Exemplo: clientes em atraso
27
![Page 28: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/28.jpg)
Pense um passo a frente
• A analise nao pode parar no grafico! Voce deve extrair algo adicional quea maquina nao e capaz de fazer.
28
![Page 29: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/29.jpg)
Exemplo: clientes em atraso
29
![Page 30: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/30.jpg)
Exemplo: clientes em atraso
30
![Page 31: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/31.jpg)
Exemplo: clientes em atraso
31
![Page 32: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/32.jpg)
Exemplo: clientes em atraso
Dados completos
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● −1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
V3
V9
V10
V32
4V
348
V44
2V
443
V44
5V
446
V44
7V
449
V45
8V
459
V46
3V
466
V46
7V
470
V47
1V
480
V53
1V
806
V80
8V
818
V81
9V
820
V82
1
V3V9
V10V324V348V442V443V445V446V447V449V458V459V463V466V467V470V471V480V531V806V808V818V819V820V821
Somente adimplentes
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● −1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
V3
V9
V10
V32
4V
348
V44
2V
443
V44
5V
446
V44
7V
449
V45
8V
459
V46
3V
466
V46
7V
470
V47
1V
480
V53
1V
806
V80
8V
818
V81
9V
820
V82
1
V3V9
V10V324V348V442V443V445V446V447V449V458V459V463V466V467V470V471V480V531V806V808V818V819V820V821
32
![Page 33: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/33.jpg)
The Art of Feature Engineering
• Feature engineering e a arte de extrair informacao dos dados ja obtidos.
1 Criacao de caracterısticas;
2 Dados faltantes;
3 Dados desbalanceados;
4 Variaveis correlacionadas.
33
![Page 34: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/34.jpg)
Dados faltantes
• Missing completely at random: quando a probabilidade dos dados
faltantes e a mesma entre as observacoes, p. ex.:
? Dados perdidos por um backup incorreto;
• Missing at random: quando os dados faltantes variam de acordo com
outras variaveis, p. ex.:
? Missing sobre idade pode ser diferente entre mulheres e homens;
• Missing not at random: quando a probabilidade de missing esta
relacionada com o missing, p. ex.,:
? Dependendo da renda do cliente, e mais provavel que ele naoresponda sobre a renda;
? Indivıduo nao comparece ao teste de droga, porque a utilizou nanoite anterior.
34
![Page 35: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/35.jpg)
Tratamento dos dados faltantes
• Deletar: utilizado quando a natureza do “missing” e completely at
random.
? Podemos eliminar a linha inteira. E uma abordagem simples, masretira poder dos dados, devido a reducao do tamanho da amostra;
? Ou utilizar os dados completos, de acordo - somente - com asvariaveis de interesse.
• Imputacao: utilizado quando trata-se de missing at random ou missing
not at random.
? Media, mediana, moda;
? Modelo preditivo.
35
![Page 36: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/36.jpg)
Exemplo: clientes em atraso
36
![Page 37: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/37.jpg)
Exemplo: clientes em atraso
0 1 2 3 4
01
23
4
V324
V34
8
37
![Page 38: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/38.jpg)
Exemplo: clientes em atraso
0
0 20 40 60 80 100
020
0040
0060
0080
00
V806
V53
1
38
![Page 39: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/39.jpg)
Exemplo: clientes em atraso
0 1 2 3 4
020
040
060
080
0
V324
V81
0
39
![Page 40: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/40.jpg)
Seja cauteloso na imputacao dos dados!
“The idea of imputation is both seductive and dangerous.” D.B. Rubin
40
![Page 41: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/41.jpg)
Exemplo: clientes em atraso
41
![Page 42: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/42.jpg)
The Art of Feature Engineering
• Feature engineering e a arte de extrair informacao dos dados ja obtidos.
1 Criacao de caracterısticas;
2 Dados faltantes;
3 Dados desbalanceados;
4 Variaveis correlacionadas.
42
![Page 43: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/43.jpg)
Exemplo: Regra de Bayes
• Considere um teste de triagem de rotina para uma doenca. Suponha quea frequencia da doenca na populacao (taxa basica) seja de 0,5%.
• O teste e altamente preciso:
? P(Falso positivo) = P(T + |D−) = 0, 05;
? P(Falso negativo) = P(T − |D+) = 0, 1.
43
![Page 44: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/44.jpg)
Exemplo: Regra de Bayes
• Qual a probabilidade de ter a doenca, dado que o teste foi positivo?
P(D + |T+) =P(D+)× P(T + |D+)
P(T+)
• Calculamos o denominador utilizando a lei da probabilidade total:
P(T+) = P(D+)× P(T + |D+) + P(D−)× P(T + |D−)
= .005× .9 + .995× .05
= .05425
• Assim,
P(D + |T+) =P(D+)× P(T + |D+)
P(T+)=
0, 005× 0, 9
0, 05425
≈ 8, 3%.
44
![Page 45: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/45.jpg)
Washington Post
“Realizar um simples exame de urina pode levar a um falso positivo, o quepoderia desencadear uma cascata de outros testes, apenas para descobrirao final que nao ha nada de errado com voce”, diz Mehrotra. Link do artigo
45
![Page 46: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/46.jpg)
Dados desbalanceados
1 SMOTE (Synthetic Minority Over-sampling Technique): remostrar oconjunto de dados original por superamostragem da classe minoritaria;
●●●
●
●
●● ●
● ●
●●
●
● ●
●
●● ●
●
●●●●●
●●
●
●
●
● ● ●●● ●
●
●
●
●
●
● ●
●
●
● ●
●
●
●
●
●●
●
● ●
●
●
●●
●
● ●
●
● ●
●
●
●
●
● ●●●
●● ●
●
●
●
●
●● ●●
●
●● ●● ●
●
●
●
●●
●
●
●
●● ● ●●●● ●
●● ●
● ●
● ●
●●
●
●
●
● ● ●●
●
●
● ●
● ●●
●
●
●
●●●
●
●
●
●
●
●
●● ●●
●
●
●
● ● ●
●
● ●
●● ●●● ●●
●
●
●
●
●
●
●
●
●
●● ●● ●
●
● ●
●
● ●● ●●
●●
● ●● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●● ● ●● ●
● ●● ●
●
●
● ●
● ●
●●
●
●
●
● ●
●
●
●
●
●
●●
●
● ●
●
●
●● ●
●
●
●
●
●
●
●●
●
● ●●● ●● ●
●
● ●●
●
● ●●●
●
●●
●●
●●
● ●
●
● ●
● ●
●
●
●
●
●
●●
●
●
● ●● ●●
●
●
●● ●●
●
●
●●
●
●
● ●
●
●●
●
●
●
● ●
●
●
● ●
●●
●
●
●
●●
●
●
●●
● ●● ● ● ●
●
●
●
● ●● ●●
●
●
●
●●
●
●
●●
●
●
●
● ●●
●
●●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●● ●●● ●
●
●
● ● ●
●
●●●
●
●
●●
●
●●
●●
●
●
●●
●
●
●
●
●
●●●
● ●
● ●
● ●●
●
●● ● ●●●● ●● ●
●
● ● ●● ●
● ●
●
●
●●
●
●
● ●
●
●
●
●
● ●●● ●
●
●
●
●
●
●
●
●
●
●● ●
●
● ● ●
●
●
●
●●
● ●
●●
●
●
● ●
●
●
●
●
●
●
● ●●● ●
●
●
●
●
● ●
●
●
●
●●
●
●
● ●
●
●
●
●● ●●
● ●
●
● ●
● ●●
●● ●●
●●● ●
●
●
●
●● ● ●
●
●●
●● ●
●●
●●
●●●
●●
●
●
●●●
●
● ●
●
●
●
● ● ●●
●
●
● ●
●
●
●●●
●
● ● ● ●
●
● ●● ● ●
●
●
●●
●
●
●●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●● ●
●
●● ●
●
● ●
●
●
●
●●
●● ●
●
●
●
● ●●
● ●●
● ●●
●
● ●
●
●● ●
●
●●
●
●●
●
●
● ●
●
●
● ●●●
●
●
●
● ● ●● ●●
●●
●
●
●
● ●
●
● ●●
●
● ● ●
●
●
●
●●
● ●●
●●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●● ●
●
●●●
●
●
● ●● ●●
●
●● ●
● ●●
●
●
● ● ●
●
●
●
● ●● ●●● ●
●
●
●
●
● ●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●●
●
●
● ●
●
●● ●● ●
● ●
●●
● ●●
●●
●
● ●
●
● ●
●
●
●● ● ●●
●
●●
●
●● ●
●● ●
●●●●
●
●
●
●
● ● ● ●
● ●●
●
●●
●
● ●
●
●●
●
●
●
● ●
●
●● ●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●● ●
● ●●
●
● ● ●
●
● ●●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●● ●●
●
●
●
●
●
● ●
●
●
● ●
●
●●●
●
● ●
●
● ●
●
● ● ●
●●
●
●
●● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●● ●● ●●● ●●● ●●
● ●
●
● ●●
● ● ● ●
●
●
●
●
●
●
●
●
●● ●
●
●
● ●● ● ●
●●●●
●
●
●● ●
●
●
●
●●
●
● ●
●
● ● ●●
●
●●
●
●●
●●
●
●●
●
●● ●
●
●
● ●●
● ●
●● ●●
● ●
●
● ●●
●
●
● ●
●
● ●
●
●
●
● ●● ●
●
●● ●● ●
●
●
●
●
●
●●
●
●● ●●●
●● ●
●● ●
●
● ●
● ●
●
●
●
●
●
●●
●● ● ●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●
●
● ●
●
●
●●
●●
●
●●●
●
●
●
●
●
●●
●
●● ●
●
●
●
●
●
● ●● ●
●
●
●
● ●
●
●
●
●
●
●
● ●●● ● ●●
●
● ●
●●●● ●●
●●●
●
●
● ●●●
●
● ●● ●● ●●
●
●
●
●
●
● ●
●
●●
●●●
●
●
●
●●
●
● ●
● ●
●
● ●●
●●
●
●
●
●
●
● ● ●
●● ●
●
●
●
● ● ●●●● ●●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
● ●●● ●●
● ●
●
● ●
●
●
●
●
●
●
● ●●
●
●●
●
● ●●
● ● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●●●
●
● ● ● ●
● ●
●
●
●● ●
●
●
● ●●●
● ●
●● ●●●
●
●
●
● ●
●
● ●
●
●
● ●
●
●
●●●
●● ●
●
●
●
● ●
● ●
●
●
●
● ●
●
●
●● ●● ●●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
● ●
●●
●
●
●
●●
●
●
●●
●
●
● ● ●
● ●
● ●
●
●
●
●●
●● ●
●
●
●
●
●
●
●
●
●
● ●
●●
●●
●
● ●
●● ●●
●
●
●● ● ●
●
● ●
●●
●
●
●
●●●
● ●
●●●
●
●●
● ●
● ●
● ● ●●
●
●
●
●
●●
●
● ●
● ●
●●●● ●●● ●●
●
●●
● ●●
●
●
●
●
● ●
●
●
●
●
● ●●●● ● ●● ●
●
●
● ●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
● ●●●●
● ●
●
●
●
●● ●
●
●
●
●
●
● ●
●
●
●
● ●● ● ●
● ●
● ●
● ●●
●
●● ● ●
●
●
● ● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●
●
● ● ●
●
●
●
●
●
●●
●
● ●
●
●● ●
●
●
●
●
● ●
●
●
●●
●
●●●
●
● ●●●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
● ●
●●
●
●
●●
●
●
●
●
● ●
● ●●●
●
●
●●
●
● ●
●
●
●● ●
●
●
●
●
●
●
●
●
● ●
●●
● ●
●
●●
● ●
●
●
● ● ●●
●
●● ●●
●
●
●
● ● ●●
●
●
●
●
●
●●
●
●●● ●●
●
●
●●
●●
●
● ●
● ●● ●
●
● ●
●
●
●
●
●●
●
●●
● ●
●
● ●● ●
●
●●● ●
●●
●●● ●●●
●
●
●
●●
● ●
● ●● ●● ● ●
●
●
●
●
●
●● ●●●
●
● ●
●
●●
●
●
● ●
●
●●
●●
●
●
●
●
●
● ●
●
●
●
●
● ●
●
●● ●
● ●●
● ●
●
● ●●●
●
●
●
●●
●
● ●
●
●● ● ●
●
●●
●● ●
●
●
●
●
●
●
●
● ●
●●
●
●●
● ●●
●●
●
●
●
● ● ●
●
●
●
●
●
● ●
●
● ●● ● ● ● ●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●● ●
●
●
●
●
●●
●
●
●
●
●● ● ●
● ●
●
●
● ●● ● ●
●●
●●●
●
●● ●●
●
●
●
●
● ●●
●
●●●
●
●
●
●
●● ●
●●
●
● ● ●● ●
●
●
●
●
●
●●● ●●
●
● ●
●
●
●
●●
●
●
●
●● ●●
●
●
●
●
● ●●● ●
●●
●
●
●
●
●
●
●
●
● ● ● ●●
●
●
●● ●
●
●
● ●
●
● ●
●
●
●
●
●
●
● ● ●
● ●
●●● ●●●
●
●
●
● ●● ●
●
●
●
●●● ●●
● ●
●
●
● ●● ●● ●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
● ●
●
●
●
●●
●
● ●
●
●
●
●
●●
●
●
●●
●
●
●
● ●●
●
●
●
●● ● ●●
●
● ●●●● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
● ●● ●●
●●
●
●
● ●●
●●●
● ●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ●●
●
●
●
● ●●
●
●● ●●
●
●
●
●
● ●
●
●
●
● ●
●
●
●●
●
●● ●●
●
● ●●
●
● ●
●
● ●
●
●
●●
●
● ●
●
● ●
●
● ●●●
●
● ●
●
●
●● ●
●● ●● ●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
● ●●●
●
●●●
●
●
●
● ●
●
●
●
●●●
●
●
●
●● ●●
● ● ●
●
●
●
●
● ● ●
●
●
●●●●
●
●
●
●● ● ●
●●
● ●
●
●
●●
●
●
● ●
●●
●
●
●● ●
●
●
●
●● ●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
● ●
●● ●●
●
●●
●●
●
●
●● ●
● ●
● ●
●
●
●
● ●
●
●
●
●
● ● ●
●
●●
●
●
●
●● ●●●● ●●
●
●
● ●
●
●
●
●● ●●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●● ●●
●●
●
●●
●
●●
●
●
●
●● ●
●
●● ●
●●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
● ●●
●
●●
● ●
●
●●
●
●
●● ●
●
●
●
●
●●
●
●
●● ●
●
●
●
●●●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●●
●
●●
●
●
●
● ●
●
●
●
● ●●
●
● ●
●
●
●
●●
● ●●
●
●
●●
●
●
●
● ●●
●
●
● ●
● ●
●
●
●● ●●
●
●●
●
●
●
● ●
●
●●●
●●●
●
● ●●
●
●
● ●
●
●
●
●
●
●
●● ●●●
●
●●●
●
●
●●
●
●
● ●●●● ●
●
● ●
●
●
●
●
●● ●●
●
●
●●
●
●
●
●
●
●
●●
●
●
● ●
●● ●
●
●●
●●
●
●
●
●●
●
●
● ●
●
● ●
● ●
●
●
●
●
●
●
● ● ●
●
●●
●
● ●
●
●●
●
●
●●
●
●
●●
●
● ●●
●
● ●●
●
●
●
●
●
●
● ●● ●
●●
●
●
●
● ●
●
●● ●
●
● ●●●
●
●
●
●
●● ●
●●
●
●
● ●●
●
●
●
●
●
●●
●
●●
●
● ●●
●
● ● ●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
● ●
●
●
●
●
●
●●
●
●●●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
● ●
●
●● ●
●
● ●●
● ● ● ● ●
●
● ●
● ●
●
● ● ●
●
●
● ●●
●●●● ●
●
● ● ●●●
● ● ●
●
●
●
●
●
●
●
●
● ●
●
●
●● ●●●
● ●●
●
●
●
●●
●
●
● ● ●● ●
● ●
●●●
● ●●
●
●
●
●●
●●●
●●●
●
●
●
●
●●●●●
●
●
●●
● ●
●
● ● ●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●● ●
●
●
●● ●
● ● ●
●
●
●
●●●
●
●●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●●●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●●
●
●
●●
● ● ●
●
● ●●● ●
● ●
● ●
●●● ●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●●
●
●
●●●
●
● ●
● ●
●●
●
● ●●●
● ●● ●
●
●● ●●●● ●
●
●
●
●
● ● ●
●
●
●
●
●●
●
●
●
●
● ●●
● ● ●●
●
●●●
● ●
●
●
●
●●
● ●
● ● ●
●
●
●●
●
● ●
● ●●
●
●
●
●
●
●
●
●
●
● ● ●●●
●●
●
●● ●●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
● ●
●
● ●
●●●
●●
●
●
●●
●
●
●
●● ●●
●
●● ●
●
● ●
●
●
●
●●●● ●
●
●
●
●
●
●
●
●
●
● ●
● ●●
●
●●
●●
●●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●●●
●
●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●●● ●
●●
●
●
●
●
● ●
●●●
● ●
●●
●●
●● ●● ●
●
●
●
●
●
●
● ●●● ●● ●
●●
●● ● ●
●●
● ●●
●●
● ●●●●
●
● ●
●
●
●
●
●
●
● ●
●●● ● ● ●●● ●
●
●●
●
● ●● ●
●
●
●●
●
●
● ● ●●
●
●
●●● ●●
●
●●●●
●
●
● ●
● ●
●
●
●
● ●
●
●
●
●
● ●
●●
●
●
●
●
●
●
● ●
●
●
● ● ●●
●
●●
●
●● ●
●
●
● ●●● ●●●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●● ●
●
●
●
●
●
●
●
●
●
● ● ●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●●●
●
● ●
●
●●
●
● ●
●●
● ●
● ●●●
●
●
●
●
●● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
● ●●
●
● ●●
●
●
●●● ●
●
●
●●●●
●
●
●
●
●
●●
●
●●
●
●
●
●
● ●● ●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
● ●●●
●
●
●● ● ●●
●● ● ●
● ●
●
● ● ●
●
●
●
● ●● ●●
●
● ●
●●
●
●
●
●● ●● ●
●●
● ●
●
●
●
●
●
●
●●
●
●
● ●
●
●●
●
● ●
●
●
●
●
● ●
●●● ●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ● ●
●
●
●
●● ●
●
● ●
●
●
● ●
●
●
●
●
● ●
●
● ●●
●
●
●
●
●
●
●
●
●●
●
● ●●
●
●
●●
●
● ●●
●
●
●
●
●
●
●
● ●
●
●● ●
● ●● ●
●●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●● ●
●●●
●
●
●
●
●
● ●
●
●
●●
● ●
●●
●●
●
●
● ●
●
●
●●
●●
●
●
● ●
●●
●
●●●●
●
●
● ● ●● ●●
●●
●●
●
● ●●
● ●
●
●
●
● ● ●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●● ●
●
● ●
●
●
●● ●
●
●●
●
● ● ●
●●
● ●
●
●
●●
●
●
●●
● ●
●
●
●
●
●●● ●● ●
●
●
●
● ●
●● ●
● ●
●
●
●● ●
●
●
●
●
●
●
●
● ●●
●
●● ●●
●
●
●
●
●● ●●●
●
●
● ●
●●
●
●
●●●
●●
●● ●
●
●
●●
●●
●
●
●
●
●
●
● ●●● ●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
● ●
●
●
●
●
● ●
●
●
●●
●
● ● ●
●
●●
●●
●
●●
●
●
●
●
● ●
●
●
●
●
●● ●
●
●
●
●
●
●●
●
●
●● ●● ● ●● ●
●
● ●
●
●
●
●
●●
●
●● ●●
●
●
● ●●
●
●
●
●
●
●
● ● ●●
●
●
●●● ●● ●
●
●●
●
●
●●
●
●
●
●●
●
● ● ●
●
●
● ●
●
●
● ●●
●
●
●●
●●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
● ●
●
●
● ●
●
●
●
●
● ●
●
●
● ●
●●
●
●●
●
●
● ●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●● ●
●
●
●
●
●
● ●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
● ●
●●
● ●
●
●●
● ●
●
●
●
● ●● ●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●●
●●
●
●
●● ●
●
●
●
●
● ● ●
●
● ●
● ●
●
●
●●
●
●
●
●●● ●●
●
●●
●
●
●
●●
●
●
● ●
●
● ●
●
●
●
●
●
● ●
● ●●
●
●
● ●●
●
●
● ●
●●
●
●
●
●
●
●
●
●
●●
● ●●●
●
●
●● ● ●
●
●●●
●
●
●
●
● ● ●● ● ●
●
● ●
●
●
●●● ●
● ●● ● ●
●
●
● ●
●
●
●
●
● ●
●
●
●●●
●●●
●
●
●
●●● ● ● ●
●
●●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●● ● ●●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●● ●
●
● ●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●●●
●
● ●
●
●
● ●● ●
●
●
●
●
●
●
●●
●
●
●
● ●● ●
● ●
●
●
●
●
●● ●
● ●
●● ●
● ●●
●
●●
●
●
●
●
●
●●
● ● ●
●
●
●
●●
●
●
●
●
●
● ●
● ●
●
●
● ●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●● ●
●
●
●
●
● ●
●●
●
● ●
●
● ●
●
●
●●
●
●●
● ●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
● ● ●
● ● ●
●
●
●
●
● ●●●
● ●●
●
● ●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
● ●
● ●
●
●
●●
●
●
●
● ●●
●● ●
●
●
●
●●
●
●
●
● ●
●
●
●
●
●
●●●
●● ●●
●●●
● ● ●●
●●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●●
● ●●
●
●
●
●
●
●●
●
●● ●
●
●
●
● ●
● ●●
●●●
●
●
● ●●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
● ●●
●
● ●●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ● ●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
● ●●
●
●●
●
●
●
●
●
●●
●
●
●
● ●●
●
● ●●●
●● ● ● ●● ●●
●
●
●
●
●
●
● ●
●●
●
●
●
●
●●
●
●
●●
●● ●
●
● ●● ●
●
● ●
●
●
●
●●
●
●
●
●●
●
● ●
●
●
● ●●
●
●●●
●
●
●
● ●● ●●
●●●
●
●
●
●
●
●
●
●
● ●● ●
●
●
●
●●●
●
●
●
●
●
● ●●
●
●
● ●
●
● ●● ●
●
●
●
●
●
●● ● ●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
● ●●
●
● ●●
●
● ● ●
●●
●●
●
●● ● ●
● ● ●
●
●
●
●
●
● ● ●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●
● ●
● ●●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●●
●
●
● ●
●● ●●
●●
●●
●
●
●●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
● ●●● ● ●
●●
●
●●● ●
●
●
●
●
●
●
●●● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●
●
●
●
● ●●●
●
●
●
●
●
●
●
●
●
●
● ●
● ●●
●
●●
●●
●
●
●
●
●
● ●
●●
●
●
● ●
●
●
●
●
●●● ●●
●
●
●
●●
●
●●
●● ●
●
●●●
●
●●●
●●
●
●● ● ●
●
●● ●
●
●
●●●
● ●
● ● ●
●
● ●
●
●
●
●
●
●
●
●
● ●● ●
●
● ●
●
●
●● ●
●
● ●●
●
●
●
● ●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
● ●
● ●
● ●
●
●
● ● ● ●
●
●
●●
●
●●
●
●● ●
●
●
●● ●
●
●
●
● ●●
●
●
●
●
●●
●
● ●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●●
● ●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
● ●●
●
●
●● ●●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
● ●
● ●●
●●
● ●
●
● ●
●
●
●●●
●
●
●
●
● ●● ●
●
●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
●
● ●●
●
●
●
●● ●
●
●● ●
●
●
● ●
●
●
●
●
● ●
●
●
● ●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●● ●
●
● ●
●
● ●
●
●
●
●
● ● ●
●
●
●
● ●
●●
● ●●●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●●
●● ●
●●●
●
● ●● ●
●
● ● ●●
●● ●
●●
●
●
●●
●
●
●
●
●
●●
●
● ●
●
●
●●
●
●
●
●● ●
●
●
●
●
●
●
●
●
● ●●
●
● ●● ●●● ● ●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●●
●
● ●●
● ●
●●● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●● ●● ●
●
●● ●
●
●
●●
●●
●
●●
●
●
● ●●
●
●●
●
● ●
●●
●
● ●
●●
●
●
● ●
●
●●
●
●
●● ●
●
●
●
●
●●
●
●●●
●
●
●● ● ●● ●
●●
●●
●
●
●
● ●
●●
● ●
●●
●
●
●
●●● ●
●
●
●
●
●
●
● ●
●
●
●
●
● ● ●● ●●
●
● ●
●
●
●
●
●
●
●● ●● ●
● ●
●
●
●
● ●
●● ● ●
●●
●
●
●
●
●
●● ●●
●
●
●
●●
●
●
●
●
●
●
● ● ●●
●
●● ●
●
●
●
● ●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
● ●
●
●●
●
●
● ●
●
● ●
●
●
●
●
●●
● ●●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
● ●
● ●●
●
●
●
●
● ●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
● ●●
●
●
● ●● ●●
●
●
● ● ●
●●
●
●●
● ●
●●
●
●
●
●●
●
●
●● ●
●
●● ●
● ●●
● ●
●
● ●
●
●
●●
●
●
●
●
●
● ●● ●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●● ●
●
●
●
●
●
●
●
●●●
●
●●●● ●
●
●
●● ●●● ●●
●
●●
●
●
●
●●
●
●
●
●
● ●
●●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●●● ●●●
●
●
●
●
●
●
●
●●
●●
●
●
●● ●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
● ● ●
● ●●
●
●
● ●●●
●
●
●
●
●
● ●
●
●●
● ●● ●
●
●
●
●
●
●●
●●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
● ●●
● ● ●
●●
●●
●
●
●
●● ●●
●
●
●
● ●
●
●
●
●
●
●
●
● ●● ●
●
●
●●●
●●
●
●
●
● ●
●● ●
● ●●
● ●
●
●
●
●
●
●●
●
●
●
●
●●
●
● ● ●
●
●
● ●
●
● ●● ●
●
●●
●
●
● ●●
●
●
●
●
●
●
●
●●
●
●
●
●
●● ●
● ●
●
●
●
●● ●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●● ●
●●
●
●
●
●
●
●
●●
●
● ●
●
● ●
● ●● ●
● ●●
● ● ●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
● ●
●
●●
●●
●●
● ●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●
● ●
●
●● ●
●
●●●●
●
● ●
●
●●●
●
●
● ● ●●
● ●●
●
●
● ●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●●● ●
●
●
●●
●●●
●
● ● ●
●
● ●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
● ●● ●
●
●
●
●
●● ●
●
●
●
●●
●
●
●
●
●
● ●●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
●●
●
●
●
●
●●
●
●
●
●●●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
● ●●
●
●
●
●
●●
●● ● ● ●● ●
● ●
●
●
●
●
●
●
●
● ● ●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
● ● ●
●
●
●
●
●
●
●●
●●
●
●
●
●●
●● ●● ●
●
● ●●
●
●
●
●●
●
●
●
●●● ●
●
●
●
●
● ●●
●●
●●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
● ●●●
●
● ●
●
● ●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●
●
● ●● ●●●
●
● ●
●
●
●
●
●
●
●
●
●
●● ●●
●●
●
● ●
● ●●
●●
●
● ●●
●
●
●
●
●
●●
●
●● ● ●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
● ●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
● ●●
●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●
● ●
● ● ● ●
●
●
●
●
●●
● ●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
● ●
● ●●
●
●
●
●
●
●
● ●
● ●● ●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●●
●
●
● ●
●
●●●
●
●
●
●
●
● ●
●
●●
●
●●
●
●
●
●
●
●●●
●●
●
●
●
●
● ●
● ● ●
●
●
●
●
●
●●
●
● ●
●
●
●
●
● ●
●
●
●
● ●
●
●●
●
●
●
●
● ●● ● ●
●
●
●
● ●● ●
●
●
●
●
●
●
● ●
●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●●
●
●
●● ●
●●
●
●
●●
●
●
●
●
● ●●
●
●●
● ●
●
● ●
●
● ●
●
●●
●
●● ● ●
●
● ●
●
●
●●
●
●
●
●●
●
●
●●
●●●
●
●
●
●
●
●
●● ● ●●
●●
●
● ●
●
●●
●
●
●
●●
● ●
●
●
● ●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●● ● ●
●
● ● ●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●●
●
● ●● ●
●●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ● ●●
●
●
●
●
●
● ●● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●●● ●
●
●
●
● ●
●● ●
●
●
●
●
●
●
●
●
●● ●● ●●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
● ●● ●●
●
●
●●
● ●
●
●
●
●
●
●
● ● ●● ●
●
●●
●
●
●● ●●
●
●
●
●●
●
●
●●
●
●
●
●
● ●●
●
●
●●
●
●
● ●
●
●
●●
●
● ●●
●
● ●
●
●●●
●
●●
● ●
●
●
●
●●
●
●●
●
●●
●
●
●
●●
●
●
●● ●
● ●
● ●
●
● ● ● ●
●
●
●
●
● ● ●
●
●
●
●
●
●
●
●
●●
● ●
●
●●
● ●
●
●
●
●●
●
●
●
● ●●
●
●
●
●
●
●
●
●● ●
●
●
● ●
●●
●
●
●●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
● ●
●
●
●
●
●
●●
●
●●
●
●
● ●
●● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
● ●●
●
●
●
●
● ●
●
● ●
●
●● ●
●
●
● ●●
●
●
●
●
● ●● ●
● ●
●
●
●● ●
●
●●
● ●
●
●
●
●
●
●●●
●
● ●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
● ● ●
●
●
●
●
●
● ●
●
●●
●
● ●
●
●
●
●●
●
●
● ●
●
●
●
● ●
● ●
●
●
●
● ●
●
●
●●
●
●
●●
●● ●● ● ●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
● ●
● ●●● ● ●
●
● ●● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●●
●
●
● ●● ●
●
●
●
●
●
●
●
● ● ●
●
●●
●
●
●● ●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●●● ●
●●
●
●
● ●
●
●
●
●
●●● ●
●
●
●
● ●
●
●
●
●
● ●
● ●
●●
●
●
●
●● ● ●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
● ●
●
●
●
●●● ●
●
●●
●
●
● ●●
●
● ●
●
●
●
●
● ●●
●
●
●
● ●
●
●● ●
●
●● ●
●
●
●
●
●
● ●
●
●
●
●●
●
● ●●
●
●
●
●
●
●●
●
●
●
●
●● ● ●
●
●
●●
●
●● ●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
● ●
● ●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
● ●
● ●
● ●
●
●
●
●
●
●● ●
●●
●
●●
●
●
●
● ●
●
●
●
●
●
●● ●
● ●
●●
●
●
●●
●
●
●
●
●
● ●
●
●
●
● ●●
●
●
●
●
●
● ●
●●
●
● ●● ●
● ●
●
●
●
●
● ●
●
●
●●
●
●
● ●
●
●
●
●
●
●
● ●
● ●
●
●
●
● ●
●
●
●
● ●
●
●
●
●● ●
● ●
● ●
●
●●● ●●
●● ●
●
●
●
●
●
●
●
●●●
●
●
●
●
● ●
● ●●
● ●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
● ●
●
●
● ●
●
●● ●
●
●●
●
●●
● ● ● ●
●
●
●●
●
●
●
● ●
● ●● ●
●
●
●
● ●● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
●●● ●
●
●
● ●●
● ●
●
●
● ●
●
●
●
●
●
●● ●
●
●
●
●
●
●●
● ●●
●●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●●
●
● ●
●
●
●
● ●
●
●●
●
●
● ●
●
● ●
●
●
●
●● ●●
●
●●● ●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●●
●
●●
●
●
● ●●
●
● ●
●
●●
●
●
●
●
● ●
●●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●● ●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
● ●
●●
●
● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●●
●●
●●
● ●
●
●
● ●
●
●
●●
●
●
●
●
●
● ●
● ● ●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
● ●
●
●
●● ●●
●
●
● ●● ●
●
●●
●
●
●
●
●
●
●● ● ●●
● ●
● ●●
●
●
●
●
●● ●●
●
●
●
●
●
●
●
● ● ●
●
●● ●
●
●●●
●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
● ●
● ●
●
●
●
●
● ●
●
● ● ●● ●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●● ●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
● ●
●
●●
●
●
● ●
● ●
●
●
● ●
●
●
●
●
● ●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●● ●
●
●
●
●
● ●
●
● ●
●
● ●
●
●
●
●
●
●●
● ●
●
● ● ●●● ●●●
●
●
●
●
● ●●
●
● ●
●
●
●● ●●●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●
●● ●
●
●
●●
●
●
●●
●
●
●
●
●
●
● ●●
●
● ●
●
●
●
●
● ●●
● ●
●
●
● ●
●
●
●
●●
●
●
●
●
● ●
●
● ● ●
●
●●
● ●●
●
●
●
●
●● ●
●
●
●
● ●●
●
●
●
●
●
●
●●
● ●●
●
●
●
●
● ●
●
●
●
●●●
●
●● ●
●
●
●
●
●
●
●
●
●
●●
●●
●●
● ●
● ● ● ●
●
●
● ●
●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
● ●
●
●
●
●●●●
● ●●
●
●
● ●
●
●
●
●●
●
●
● ● ●
● ●●
● ●
●
●
●●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●● ●
● ●
●
●●
●
●
●
●●
●
●● ●
●
●
●
●
●
●●
●●
●
●
●●
● ●
●
●●
●
●
●
● ●●
●
●
●
●
●
●
●
●●
●
●
●
● ●●
● ●
●
●
●
●
●
●
●
●
●●●
●●
●
● ● ●
●
●
●
●
●
●
● ●
●
●●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●● ●●
●
●
●
●
●
●
●
●
●
●
● ●●● ●● ●
●●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●●
●
●
●
●
●
●
●
●
● ●●
●
●
●
● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●●
● ●
●
● ●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●●
●
●
●
● ●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●●
●
●
●
●●
●
● ●
●
●
●●
●
●
●
● ●
● ●
●●
●
●
●
●
● ●
●●
●
●
●●
● ●● ●●
●
●
●
●
●
●
●●
●
●
●
●●
●
● ●
● ●
●
●●
●
● ● ●
●●
●
●
●
●
●
●
● ●●● ● ●●
●
●
●
● ●●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
● ●
●
●
●●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●●
●
● ● ● ●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●
● ●
● ●
●
●
●
●●● ●
● ●
●●
●
●
● ●
●●
●
●
●●
● ●
●
●
●
●●
●
●●
● ●
●
●
●
●
●
●
● ●
●
●
●●
● ●●● ●●
●
●
●
●
●
●
● ●
●
●
●●
● ●
● ●
●●
●
●
●
●●
●
●
●
●
●
●●●
●
●
●●
● ●●
●●
●
●
●
● ●● ●
●
●
●●
●●
●
●
●
●
● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●●
●
●
●
●
●
●
● ●● ●
●●
●
●
●
●
●
●●
●
●
● ●●
●
●
● ●●
●
●
●●
●
● ●●
●
● ●● ●
●●
● ●
● ●●
●
●
●
●
●●
●
●●
●
●
●●
● ●
●
● ●
●
●●●●
●
● ●
●
●
●
●
●
● ●
●●
●●
●
●
●
●● ●
●
●
●
●
●●
● ●
●
●
● ●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●●●
●
●
● ●
●
●
●●
●
●
● ●
●
●
●●● ●● ●
●
●
●
● ●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●● ●
●
●
●
●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
● ●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●● ●
●●
●
●
●
●
●
● ● ●●
●
●
●●
●
●
●● ●●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
● ●
●
●
●●
●
●
●
●
● ●●
●
● ●●
●
●●
●
●
●
●
●●● ● ● ●
●
●
●
●
●●
●
●
●
●●
●
● ●
●●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●● ●
●
●●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●● ●
●
●
●
● ● ●
●
●
●
●
●
●
●● ●
●
●●
●
●●
●
● ●●
●
●● ●●
●●
●
●
●
●
●● ● ●
● ●
●
●●●
●
●
●
●●
●
●
●
●
●●
●
● ●● ●
●
●●
●
●
● ●●
●
●
●
●
●
● ●
●
●
● ● ●●
●
●
●
● ● ●
●
●
●
●
●
● ●
●
●
●
●
●
●● ● ●
●
●●
●
● ●
●
●
●
● ●
●
●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●●
●
●
● ●
●
●
●
●● ●
●
● ●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●● ●
●
●
●
●
●
●
●
●●
●●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
● ●●
●
●
● ●
●
●●
●
●●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●● ●●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
● ●
● ●
●
●
● ●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●● ●
●
●
●●
●
●
●
●
●● ●● ●
●
●
●
●
●
●
●
●●
●
●
●
● ● ●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●●
●
● ●
●
●
●
●●
●
●
●
●
●●●
● ● ●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●● ●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●●●●
●
● ●●●
●
●
●
●
●●●
● ●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●● ●
●
●
●
●
●●● ●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●● ●
●
● ●
●
● ●
● ●●
●
●●
●
●
●
●
●
●●
●
●●● ●●
●
●
●
●
● ●
● ●
● ●
●●●
● ●
●
●
●
● ●●●
●
●● ●
●
●
●
● ●
●
● ●
●
● ● ●
●
●●
● ●●
● ●
●
●
●
●
●
● ●● ●
●●
●
●
●
●●
● ●●
●
●
●
●
●
●
●
●
●● ●●
●
●●
●
●
●
●
● ● ●●
●
●
● ●
●
●
●
●
●●
●● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ● ●●
●
●
●
●● ●
●
●
●
●
●
●
●
●●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●● ● ●
●●
●
●
●
●
●
●●
●
●
●
● ●
● ●● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●●● ● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●●
●
● ●
●
●
●
●
●●●
●
●
●
●
●
● ●● ●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●●●●
●●
●
●
●
● ● ●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ●●
●
● ●●
●
●
● ●
●
●
● ●
●● ●●
●●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●●
●
●
●
●
●
●
●
● ●● ●●
●
●● ●
● ●●
●
●
● ●
●
● ●
●
●
●
● ●
●
●
●
●● ●
●
●
●
● ●●●
● ●
●
● ●●
●●
●
●
●●
●
●● ●
●
●
● ●
●
●●
●
● ●
●
●●
●
● ● ●
●
●
● ●● ●
●
●
●
●
●
●
●●
● ●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●●●
●
●
●●● ●
●
●
●
●
● ●
●
●
●
● ●
● ●● ●
● ●
●
● ●
●
●
●
● ●
●
●
●
●● ●●
●●
● ●
●
●
●
●●
●
●
●●● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
● ●
●
●
●
● ● ●
●
●● ●
●
●
●● ●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●●
●
● ●
●
●
●
●● ●
●
●●
●
●
●
●●
● ●●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●●
●
●
●
●
●● ●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●● ●
●
●
●●
●
●
●
●
● ●
●
●
● ●●
●
● ●●
●●
● ●
●●
●
●
●
●
●
●
●
●
●●
●●● ● ●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●● ●●
●
●
●
●● ●● ●
●
●
●
●●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●● ●
●
●●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●● ●●
●● ●
●● ●●
●
●
●
●
●● ●
●
●
●
●
●
●
●● ●
●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●●
●● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
● ●●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●● ●●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
● ●●
● ●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●● ●
●
●
●
●●
●
●●●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
● ● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●● ●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●● ●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●●
●●
●
●
● ●
●
●
● ●
● ●●
●●
●
●
●
●
●●
●●
●●
●
●
●
●
● ● ●●
●
●● ● ●
●
●
●
●●
●
●
●
●
●
●
●● ●● ●
●
●
●●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●● ●●
● ●
●● ●
●
●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
●
● ●
●
● ●
●
●
●
●
● ●●
●
●●
●
●
●
●
● ●●●
● ●
● ●● ●
●
●
●
● ●
●
●
●
●●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●● ● ●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●● ●
● ●●
●● ●
●
●
● ●
●
●
●
●
●● ●
●
●
●
● ●
●
●
●
●
● ●
●
●
● ●●
●
●
●
●
●
●●●
●
●●
●
●
●●
●
●
●
●
● ●
●
●
●
●
● ●
●
●●
●
●●
●●
●
●
●
●
●
●● ●●●
●
●
●
●
●
●
●●
●●● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●● ●
●●● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ● ●
● ●
●
●
●
● ●●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●●●
●
●● ●
●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●● ●● ● ●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
● ●
●
●
● ●
●
●
●
●
●●●●
●
●
● ●
●
●
●
●
●
●● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●● ●
● ●● ●●
●
● ●●
●
●●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●● ●
●
● ●●
●
●
●
●
●
● ●
● ●
●
●
●
●
● ●●● ●
● ●
●●
●
●
●
●
●
● ●
●
●
●● ●● ●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
● ●
●
●● ●● ●
●
●●
●
●
●
● ●
●
●●
●
● ●●
● ●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
● ●
●
●
●
●●
●
● ●
●
●
● ●
●
●
●
●
●
●
●● ●● ●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
●
● ●
●
●
●
●
●● ●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
● ●
●
● ●
●
●
● ●
●
●
●
●
●● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
● ●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●● ●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●●●
●
●
●
● ●
●
●●●
●●
● ●
● ●
●
● ●
●
● ●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
● ●
●
● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
● ●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●● ●
●
●
●
●
●
●● ● ●
●
●
●
●
●
●
●
●
● ● ●
●
●
●● ●●
●
●
●
●
●
●
●
●
●
●
●
● ●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
● ● ●
●
●
● ●
●
● ●●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●● ●
● ●●
●
● ●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●●
●● ●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●● ●
●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
● ●●●
●
●●
● ●
●
●●● ●●
●
●
●
●● ●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●● ●●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●● ●
●
●
●
● ●●
●
●
● ● ● ●
●
●
● ●● ●● ●
●
● ●● ●
●
●●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●●●● ● ●
●
●
● ●
●
●
●●
●
● ● ●
●
●
●
●
●
●● ●●
●
● ●●
●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●●● ●●●
●
●
●● ●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ● ●
●
●
● ●
●
●
●
● ●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●● ●
●●
●●
●●
●
● ●● ● ●● ●
●
●
● ●
●
●
● ● ●
●
●
●●
●
●●
●
●
●
●
● ●
●
● ●
●
● ●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
● ● ●
●
●
●
●
●
●
●
● ●
●
●
●
● ●●
●
●
● ● ● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●● ●● ●●
●
●
●
●●
●● ●
●● ●● ●● ●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●●
● ●
●
●
●
●
●
●
●●●
●●
●
●
●
●●●
●
● ● ●
● ●
●●
●
●●
●●
● ●
●●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●●
●
●
● ●
●
●
● ●
●
●
● ●
●
●
●
●
●
●
●
●
● ●●
●
●
● ●
●
●
●
●
●
●●
● ●
● ●● ●
●
●
●
●
●
●
● ●
●●
●
●●
●
●
●
●
●
●●● ●
●
●
●●
●
●●●●
●
●●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●●
● ●
●
●
●
●
●
● ●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●● ●
●
●
● ●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
● ●
●
●
●●
●
●
●
●
●
●
●
● ●● ●
●
●
●
●
●
●●
●
● ●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●● ●●
●
●
● ●
●
●
●
●
●● ●
● ●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
●
●
●
●
●
●
● ● ● ●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
● ●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
● ● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ● ●
●
●●
●
●
●
●
●
●
●●
●
●
● ● ●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●● ●
●
●
●
●
●
●
●
● ●
●●
●●
●
●
●●
●
●
●
●
●
●
●● ● ●
●
●●
●
● ●●
●
●
●
●
●
●
● ●
●● ●●
● ●●
● ● ●
● ●
●
● ●
●●
●
●
●
●
●
●
● ● ●
●
●●
●
●
●
●
●
●
● ● ●●
●
●
● ●
●
●
● ●
●●
●
●
●
●
●
●
●
●
● ●
● ●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●●
●
●● ●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●● ●
●
●●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●●
●
● ●●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●●
● ●
● ●
●●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●● ●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●●
●
●●●
●
●
● ●
●
●
● ●
●
●
● ●
●
●●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●●
●
● ●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●● ●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ● ●●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●●
● ●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●● ● ●
●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
● ●
●
●
●●
●
●
●●
●
●
●
●
●
●●●
●●
●
●
●
●●●●
●
●●
● ●
●●
● ●
●
●
●
●
●
●
●
●
●
● ● ●
●
●● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●●
●●
●
●
●
●
● ●
● ●
●
●
●
● ●
●
●
●
●
●
●
●●●● ●
●
●●
●●
●
●
●
●
● ●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
● ● ●
● ● ● ●
●
●●● ●●●
●
●● ●
●
●
●
● ●
●
●
●
●
● ●●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
● ●●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
● ●
●
●
● ●
●
●●
●
●●
●
● ● ●
●
● ●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
● ● ●
●
●
● ●
●
●
●
●
● ●
●
● ●●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●● ●●●●
● ●
●
●●
●
●●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●●●● ●●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●●● ●
●
●●
●
●
●
● ●
●
●
● ●● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●●
●
●
●
● ●
●
● ● ●
● ●
●
●
●●
●
●
●●●● ●●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●●
●
● ●
●
●
●
●
●●
●
●
●
● ●●
●
●
●●
●●
● ●
●
●
●
●● ● ● ●●●
●
●
●
●
●
● ●
●
● ●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●●
●
●
●
●
●●●
●
● ●
●
●
● ●●● ●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●●
●
● ●●●
●
●
●
●
●●
●
●
●
●
● ●
●●
●
●
●
●
●
●● ●
●
●
●●●
●
●
●
●●
●
● ●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
● ●●●
●
●
●
●
●
●
●● ●● ●
●
●
● ●
●
●
●
●
● ●
●
●●
● ●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●●
●
●
●
● ●●
●
● ●
●
●●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●●
●
●
● ● ●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●● ●
●
●
●
●
●
● ●●
●●
●
●
●
●
●
● ●
●
●
●● ●
●
●
●●
● ●
●● ●
●
●
● ●●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●●● ●●●
●
● ●
●
●
●
● ●
●● ●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●● ● ● ●●●
●
● ●● ● ●●
●
●● ●
●
● ●
●
●●
●
●
●
● ●
●
●●
●
●
●
●
●
● ● ●●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●● ●
●
●
●
●●
●●
●
●
●
●
●
●
●
● ●●
● ●● ●
●
●
●● ●
●
●●
●
●
●
●
● ●
●
●
●
●
● ●
● ●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
● ●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●
● ●
●
●●● ●
●●
●
●
●
●
●
●
●
●
● ● ●
●
●●
●
●
●●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
● ●
●
●●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●● ●
●●
●
●
●
●
●
●
●●
●
●
●
●● ●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●●
●
●
●
● ●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
● ●●● ●●
● ●
●
●
●
●
●
●
●
●
●
●
●● ●● ●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●●
●●
●
●
●
●●
●●●●●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
● ● ●
●
●
● ●
● ●
●
● ●
●
●
●
●
●
●
●
● ●●
●
●
● ●
●
●●
●
●
● ●●
● ●
●
● ●
● ●●● ●
●
●
●
●●
●
●
●
●
●
● ●
●●
●
●
●●
●
●
●●●
●
●
●
●
●
●●●●
●●
●
● ●
●●
●
●● ●●
●
● ●
●
●
●●
● ●●
●
●
●
●
●
● ●● ●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●● ●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
● ●
● ●
●
●
●
●●● ●
●
● ● ●
●
●
●
●
●
●●●●●
●●●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
● ●●
●
● ● ●● ●
●
●
●
● ●● ●●●●
●
●
●●
●
●
●
●
● ●●
●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ●
●
●● ● ●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●
●
●
● ●
●
●
●
●
●
●
● ● ● ● ●
●
●
●
●
●
●●
●
●
● ●
●
●
●
● ●● ●
●
●●●
●
●●
●
●●
●
●
●●
●
●
●
●●
●●
●
●●
●●
●●
●
●
●
●
●●●
●
●
● ●
●
●
●
●
●
●● ●
● ●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ● ●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●●●
●
●●
●
●●
●
●●● ●●
●
● ●●
●
●●●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●
● ●
●●
●
●
●
●
● ●●
● ●
●
●
●
●
● ●
●
●
● ●
●
●
●● ●
●
●
●
●
●
● ●●●
●
●
●
●
● ●● ●●
●
●
●●
●
●
● ●
●
●
●
●
●
●
● ●
●●
●
●
●
●●
●●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●● ●
●
●
●
●
●
●
● ●
●
● ●●
●
● ●
●
● ●
●
●●●
●
●
●●
●
●
●●
●
●●
●●
●
●
●
●
● ●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
● ●●
●
●●
● ●
●
●
●
● ●●
●
●
●●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
● ●
●●
●
●
● ●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●
●● ●
●
● ●
●
●
●
●
●
●●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
● ●●
●
● ●● ● ●
●
● ●
●
●
●
● ●
●
●●
●
● ●
●
●
●
●
●● ● ●
●
● ●●
●
● ●
●
●● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
● ●●● ●
●
● ●
●
●●
●
● ●
●
●
● ●
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
● ●● ●●
●
●● ●●
●●
●●●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●
●
● ● ●
●
●●
●
●●●●
●
●●
●
●
● ●
● ●
●●
● ●●
● ● ●
●●
●
●
●
●
●
●●
●
●● ●
●● ●● ●●
●
●
●●
● ●
●●
●
●
●
● ●●
●
●
●
●
●●
● ● ●
●
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●●
●
●
● ●
●
●
●
●
●
●
● ●
●
● ●
● ●
●
●●
● ●
●
●
●
● ●
●●
●●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●●
●
●
● ●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●● ●
● ●● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●●
● ●● ●
●
●
●
●
●
●
●
●
●
● ●
●
● ●
●●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●● ●●
●
●
●
● ●
●
●
●●
● ●●
●
●
●●
●
●
●
●
●
● ●●
●
● ●
●
●
●
●●
●
● ●●
●
●
●
●
●
●
●● ●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
● ●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●●
●
●
●
●
●
●● ● ● ●●●●● ●
●
● ●
●
●
●
●
● ●
●
●
● ●
● ●
●
●●●● ●
●
●
●
●
●●
●
●
● ●●
●
●
● ●● ●
●
●● ●●
● ●
●
●
●
●
●
● ●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●
●●
● ●
●●
●
●
●
●● ●
●
●
●
●● ●
●
●
●
●
●
●
●●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●● ●
●
●
●●
●
●●
●● ●
● ●
● ●
●
●
●
● ●
● ●
●
●
●●
●
●
●
● ●● ●
●●●
●●
●
●
●● ●
●
●
● ●
●
●●
●
●
●● ● ●●
●
● ● ●
●
●
●●
●
●●
●
●●
● ●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●●
● ●
●
●● ●●
●
●
● ●
●
●● ● ●
●
●● ●●
●●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●●
●
●
●
●
●
● ●
●
●
● ●●
●
●
●
●
●
●
●
●
● ●●
●
●
●● ●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
● ●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
● ●● ●●
●
●
●
● ●●●●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●●●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●
● ●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●● ●
●
● ●
●
●
● ●●
●
●
● ● ●
●
●
●
●
●●
●
●
●
● ●●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●●
●●
● ●
●
● ● ●
●
●
● ●
●
● ● ●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●● ●●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
● ●●●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
● ● ●●
● ●
● ●●
●●
●
●
● ●
● ●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
● ●
●
●
● ●
●
●● ●
●
●
●
●
●
●
●● ●
●
● ● ●● ●
●
●●
●
●
●
● ●
●●
●
●
●
●● ●
●
●
●●
●
●
●
● ●
●
●
●
●● ●
●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
● ●● ●●
●
●
●
● ●
●
●
●
●
●
●
●●● ●
●
●
●●
●
●
● ●
●
●●
●
●●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●● ●●
●
●
●
●
●● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●●
●
●
●●●
●
●
●
●
● ●
●
●●
●
●●
●●
●
● ●●
●
●
●
●●
●
●
●
●
●
●●
●● ●
●
●
●
●
●
●
●
●●●● ● ●
●
●●●
●●●
●● ●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●
● ●
●
●
● ●
●
●
●
●
●
●
●
●
●
●● ●
● ●●
●
●●
●
●
●
● ●●
● ●
●
●● ●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
● ●
●
● ●
●
●
●●
●
●● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●●
●● ●
● ●
●●
●
●
●
● ●●●
●
●
●
●
●
●
● ●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ● ●●●
●
● ●● ●
●
●
●●
●
●
●
●
●
●●
●
●●
●● ●●
●
●
●
●
●
●
●● ●●
●● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●● ●●●
●●
●
●
●
●
●
●●
●
●
● ●●
●
●
● ● ●
●●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●● ●
●
●
● ●●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
● ●●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
● ●●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●●● ●
●
● ●
●
●
●
●●
●
● ●
●
●
●
●
● ●
●
●
●
●
●●
● ●
●
●
●●
●
●
● ● ●●
●
●● ●● ●● ●●
●
●
●
●
●
●
●
●
●
● ●
●●
●
●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
●●
●● ●
●
●●
● ●
● ●
●
●●●
●
●
●
●
●
●
●
●
● ●●
●
● ● ● ●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ● ●
●
●●
● ●
●
● ● ●●
●
●
●
●●
●
●
●● ● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
● ●
●
●●
●●
● ●●
●
● ● ●
●
●
● ●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●●
●
●
● ●
●●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
● ●
●
● ●
●●
● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●●●
●
●●
●
●●
●
●
●
●●
● ●
●
● ●
●
●
●
●
● ●●
●
●
●
●
●
●●
●
●
●
●● ●●
●
●
●
●
●
●
●
●● ●
●
● ●
● ●
●
●
●
●
●
●
●
●●
●● ● ●● ●
●
● ●●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ● ●●
●
●
●●
● ●●
●
●
●
●●
●
●
●
● ●●
●
●
●
●
●
● ●
●
●● ●
●
●● ●
●
●● ● ●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
● ●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●● ●
●
●
●
●●
●●
●
●
●
●
● ●
●
●●● ● ●
●
●
●●
●
●
●● ●
●
●
● ●
●
●●
●
●
●●
●
●
●
● ●
●
●
● ●
●
●
● ●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
● ● ●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●●
●
●
●
●● ● ● ●●
●
●
●
●
●
●
●●
●
● ●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●● ●
●
●
●
●
● ●●●
●
●
●
●
●
●
● ●
●
●
●●
●
●●● ●
●●
●
● ●●
● ●
● ●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
● ●
●
●
●● ● ●
●
●
● ●●
●
●●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
● ●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
● ●
●
●
● ●●
● ●
●
●● ●●●
●
● ●
●
● ●
●
● ●
●●
●● ● ●
●
●
●
●
● ● ●
●
●
● ●●
●
●
●●
●
●
●
●
●
●
●
●
● ●
● ●●
●●
●
●
●●
●
●
● ●
●
● ● ●●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●
●
● ●●
●
●
●
●
●
●
●
●
●● ●●
●
●●
●
●
●
●●●
●
●
●
●● ●●
●●
●
●●
●
●●
● ●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●● ●●
●
●●
●
●
●
●
●
●● ●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
● ●●
●
●
●
●●
●
●
●
●
● ● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●● ●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●●
●
●
●
●
●
●
●
● ●
●
● ●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●●● ●
●
●
●●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●●●
●
●
●
● ●
● ●
●● ●●
●
● ●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●●●
●
●
●●●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●●
●●
● ● ●●
●
●●
●
● ●●
●●
●
●
●
●●
●
●
● ●
●
●
● ●
●
●
●
●● ●
●
● ●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
● ●
● ●● ●
●
●
●
●
● ●
● ●●
●
●
● ●●
●
●
●
● ●
●
● ●
●
●
●
●
●●
●
●●● ●● ●
●
● ●●● ●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●● ● ●●● ●●
●
●●
● ●
●
●
●
●
●● ●
●
● ●
●
●●
●
●
●
●
●
●
●
●
● ●●
● ●
●
●
● ● ● ●
●
●
●
●● ●
●
●
●
●
● ●
● ●
● ●
●
● ●●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●●● ●
●●
●
● ● ●
●
●
●
● ●
●
●
●
●
●
●
●
●●●● ● ● ●
● ●
●
●
●
●
●
●●● ●● ●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●
● ●●● ● ●●
●
●
●
● ●●
●
●●
●
● ●
●
● ●
●
●
●
●
●
●●
●
●
●●●●● ●●●
●
●
● ●● ●
●
●
●●
●
●●● ●
●
● ●
●
● ●
●
●
●
● ● ●● ●●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●● ● ●
●
●●●
●
●
●
●●●
● ●
●●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●●
●●
●
●
●●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●●
●● ●
● ●
●
●
●
●
●
● ●
●
●
●
● ●
●
● ●● ●
● ●
●● ●
●
●
●
●
● ●
●
●
●
●● ●
●
●
●●
●
●●
●
●
●
●
●
●
●● ●
●
●
●●
●
●●
●
●
●
●
●
● ●
● ●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
● ●
●
●● ●
●
●● ●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●● ●●
●
●
●
● ● ●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●●● ●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●● ●●
●
●
●
●
● ●
●
●
●● ●
●
●
●
●
●
●
●
●● ●●● ●● ● ●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
●
●
●● ●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
● ●
●
●
● ●●
●
●
● ●
●
●
● ●●
●
●
●
●
●● ●
●●
● ●
●
●
●
●● ●
●
● ●
●
● ●●
●
●
●
●
● ●
●●
● ●
●●
●
● ●
●
●
●
●
●
●● ●
●
●● ● ●●
●
●
●
●
●● ● ●
●
●
●
●
●
●
●
●
●
●
●
● ● ●●
●
●
●
●
●
●
●
●
●
●
● ●
● ●●
●
●
●
●
●
● ●
●
●
● ●
●
● ●
●
●
●● ●
●
●
●
● ●
●
●●●
●
●●
● ●
●
●●
●
●● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●
● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
● ●
●
●
●●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●
●●
● ●
● ●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
● ●
●
●
●
● ●
●
●
●
●
●
●
● ●●
●
●
● ●
●
●
●
●
●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●● ● ●● ●●●●● ●
●
●
●● ●
●
●
●
● ●
●
●
●
●
●
●
●● ●
●
●●
●●
●
●
●
●
●●
●
●
●
● ● ●●
●
●
●●
●
●●
●
●●●
●
●
●
● ●
●● ●
●●
●
●
●
●● ●●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●● ● ● ●● ●
●
● ● ●●
●
●
●
●●● ●●
●
●
●
●●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
● ●
●
●
● ●●
●
●●
●
●
●
●
●
●●
●● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●
●
● ●
●
●● ●●
●
●
●●
●●
●
●● ●
● ●
●
● ●
● ●
● ●●●
●
●●
●
●
●
●
●
●● ●
●
●●
●
●
●
●
●
●
● ● ●● ●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●● ● ●●●●●
●
●● ●
● ●
●●
● ●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●
●
● ●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●●● ●
● ●
●
●●
●
●
●
●●
●●●
●
●
● ● ●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●
●
●● ●
●
●
●●●● ●
●
● ●
● ●
● ●
●
● ●
●
●
●
●
●● ● ● ●
●●
●●
● ●
●
●
●
●
●
●
●●
●
● ●
●
●
●●
●
●
● ●●
●
●
●
●
●
●●
●
●
●
● ●●
●
● ● ●
●
●●
●
●
●● ●● ●
●
●
●
●●
●
●
●●
●
●
●
● ●
●
● ● ●
●
●
●
● ●
●●
●
●
●
●●
●● ●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
● ●
●●
●
●
●●
●
●
●
●
●
●
●
● ●
●
●
● ●
●●
●● ●
●
●
● ●●
●
●●●●
●
●●
●●●
●
●
●
●
●
●
●
●●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
● ● ●
●
●
●
●
●
●●
●
●●
●
●
●
●
● ●
●● ●● ●
●
●
●
●
●
●
●
●
●
●●
●●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
● ●●● ●
●
● ●
● ●
●●
●●
●
●
●
●
●
●
● ●●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●●
●
●
●
●
●●
●
●
●
●
●● ●
●
●
●
●
●
● ● ●
●● ●
●
●
●
●● ●
● ●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●●
●
●●
● ●
●
●
●● ●●
●
● ●
●●
●
●
● ●
●
●
●
●
● ●
●●
●●
●●
●
●
●●
●
●
● ●
●
●
●
● ●
●
● ●● ●● ●● ● ● ● ●●
●●
●
●●
●
●
●
● ●
● ● ●
●
●
●
●
● ● ●●
● ●●
● ●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ● ●●● ● ●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●●●
●
●
●●
●
●
●
●● ●
●
●
●●●
●
●●●● ●●
●
● ●
●
●
●
●
●●
●
●●
●
● ●
●
●
●●
●
● ●●●
●●
●
● ●
●
●
●
●
● ●●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
● ●●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
● ●
●●
●
●●
●
●
●
●●
●●
●
● ●
●●
●
●
●
●
●
● ●
●
●
●
● ●
●●
●
●●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
● ●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●●
● ● ●
●
●
●
●●
●
●
●●
●
●●
●●●
●
● ●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●● ● ●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●● ●●
●
●
● ●
●
● ● ●●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ●●
●
●
●● ●
●
● ●
●●
●
● ●●
●
● ● ●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ●● ● ●● ●
●
●
●
●
●
●
●
●
● ● ●
●
●
●
●
● ● ●●● ●●●
●
●
●
●
●
●●
●
●
●
●
●
● ● ●●
●
●●● ●● ●
●
●
●
●
●
● ●●
●
●●
●
●
●
●
●
● ●
●
●●
●●●
●
●
●
●
● ●●
●
●
●
●
●●
●
●
●
●
●
●
● ●●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●●● ●
●
●
●
●●
● ●●
●●
●
●
●
●●●●● ●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●
●● ● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●● ●● ●●
●
●●
●
●
● ●
●
●
● ●●
●
●
●
●
●
● ●● ●● ● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●
●
●
● ●●
●
● ●
●
●●
●
●
● ● ●
● ●
●
●
●
● ●
●
●●●
●
● ●
●
●
●
● ●●● ●
●●●
●
● ● ●
●
●
●
●
●
●
●
●
●●
●●
● ●
●
●
●
●
●●
●●
● ●
● ●
●
●●
●●●● ●
●
●●●
●
●
●
●
●
● ●
●
● ●● ●●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●● ●
●
●
●
●
●
●
●●
● ●
●
● ●
●
● ●
●
●
●
● ●
●
● ● ●● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
● ●●●
●
●
●
●
●
●
● ● ●
●
●
●
●
●●
●
●● ●
●
●
●
●●
●
●
●
●
● ●
● ●●
●
● ●
●
●
●
●●
●
● ●●
●
●
●
● ●
●
●
●
●
● ● ●
● ●
●
●
●
● ●●
●●● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ● ●
●
●
● ●
●
●
● ●●
●
● ● ●●
● ●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●● ●●
●
●
●
● ●●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●●
●
●
●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●● ●●● ●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●●
●
● ●
●
●
●
●●
●● ●
●
●
●
●●
●
●
●
● ●
●
●● ●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●●
●
●
● ●
●
●● ●
●
●
●
●
●
●●
● ●● ●
●● ●
●
● ●● ●●●
●
●
●●
●
●
●
●
●●● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●●
●
●
● ●
●●
●
●
●
● ●
●
●
●
●●
●
●
●
● ●●●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●● ●●
●
●
●●
●● ● ●
●
●
●
●
●
●
●
●
● ●●●
●
●●
●
●
●● ●
●
●● ●●● ●
●
●
● ● ●
●●●
●
●
● ●●●
●
●
●
●
●
●
● ● ●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●●
●
●
●
●
●
●
● ●
● ●
●
●
●
●●
●● ●●● ●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●●● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
● ●
●
● ●
●
● ●●●
●
●●●● ●●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
● ●
●● ●
●●
●●
● ●
●●
●
●●●●
●
●
●●
●
●
●●
●
●
●
●
● ●
●
●
● ●
●● ●
●
●●
●●● ●●
●
●
●
● ●
●
● ● ●
●
●● ●
●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●●
●
●
●●
●
●
●
●
● ●● ●●
●
●
●
●
●
●●
●
●
●
●
●
●
●● ● ●● ●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
● ●●●
●
●
●
●
●
●
● ●
●
●●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●● ●
●
●
●●
●
●
●
●
●
●
● ●● ●●●
●
●
●
●●
●●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●
● ●● ●
●
●●● ●●
●
● ●
●● ●
●●
●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●● ●●
●
●●●
●●
●
●●
● ●● ● ●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●● ● ●●
● ●
●●
●
●
●
●
●
●
●●
●
● ● ●
●
●●
●
●
●
●
●
●
● ● ●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
● ●
●●
●
●
●
● ●
●●
●
●
●●
●
●●
●●
●
●
●
●
●
● ●●
●
●
●●
● ●
● ●● ●●
●
●
● ●
●
●
●
●
●
●●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●●
● ●
●
●●
●
●
● ●●● ● ●● ●
●
●
● ●●
●
●
●
●●
● ●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
● ●
●
●
●
●
●
● ●●
●
●
● ●
●
●
●
●
●
●●
●
● ●● ●
●
●
●
●● ●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●●
●●
● ●●
●
● ●
●
●
●
●
●
●
● ●
●
● ●● ● ●
●
●
●
●●
●
●
●
●
●● ●
●●
● ●
●
● ●●
●
●
● ●
●
●
●
●
●●
●
●
●
●
● ●
●● ●
●
● ● ●● ●
●
●
●
●
●
●● ●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
● ●
● ●●
●● ●●
●●
●
●
●
● ● ● ● ●
●
●
●
●
● ● ● ●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
● ●
●●
● ● ●
● ●
●
●● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
●
●● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
● ●
●●
●
● ●●
●
●●
●
●●
●
●
●
●
●
●
●
●● ●●
●
●● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●●
●
●●●
●
● ● ●
●
●
●
●● ●●
●
● ●
●
●
●
●
●
●●
● ●
●
●
●
●
● ●● ●
●
●
●●● ●●
●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
● ●●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●
● ●
●●
●
●
●● ●●●
●
●
●●
●
●
●
●● ● ●
●
●●
●
●●
●
●
●
● ●
●
● ●●
●
●
●
●
● ●● ●
●
● ●
● ●
●
●●
●
●● ●
●
●
●● ●
●
●
●
● ●
●
●
●
●
●●
●● ●
●
●
●
● ●
●
●
●
●
● ●
●●
●
●
●
●●
●
●
●
●
●
● ●●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●● ●●
●
●
●
●
● ●●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
● ●
●● ●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
● ●
● ●●
●
●
●
●
●
●
● ●
●●
●
●
●
●●
● ●●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●●●
●
● ● ●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●●●
●
●
●
●●
●
● ●● ●
● ●
●
●
●
●● ●●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●●
●
●●
●●
● ●
● ●
●
●● ●●
●
●
●
● ● ●
●
●● ●● ●
●
● ●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ● ●●●●
●
●
● ●
●
●
●
●● ●
●
●
●
●
●
●
●
●
● ●
● ●●
●
●
●
●
●● ● ●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●●
●
●●
●●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
● ● ●●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
● ●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●● ●
●
●
● ●
● ●
●
●
●
●
● ●● ●●
●
●
●●
●
●●
●
●
●
● ●● ● ●●
●
●
● ●
●
●
●
●
● ●●
●
● ● ●● ●● ● ●●
● ●
●
●
● ●
●
● ●
●●
●
●●
●●
●● ●●●
●
●
●
●
●
●
●
● ● ● ●●
●
●●
●
● ●
●
●
●●
● ●●●●
●●
●
●
●● ●
●
●
●
●●
●
●
●
●
●● ●
● ●
● ●
●
●
●
●
●● ●
●
● ●● ● ● ●● ●
●●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●● ●● ●●●●
● ●
●
●
●●
●
●●
●
●
● ● ●
● ●
●
● ●●●
●
● ● ●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●●
●
● ●
●●
●
●
●
●
●
●● ●
●
●
●
● ●●
●
●
●
● ● ●●
●
● ●
●
●
●●
●
● ●●
●
●
●●
●
●● ●
●
●● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●● ●
●●
●●
●●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●
● ●●●
● ●
●
●
●● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●● ●●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●●●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●● ●●
●
●
●
●●
●
●
●
●
●
●
●● ●
●
●
●●
●
●
●
●
●
●●
●● ●
●
● ●
●
●
●● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●● ●
●
● ●●
●
●
●
●
●
●
●
●●
●
●
●
● ●●
●
●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●
●● ●●
●
●
●●
●
●
●●● ●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●
●●
●
● ●●
●
●● ●●
●
●
●
●
●
●
●
●
● ●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
● ●
● ● ●
●
●●●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●● ●
● ●
●
●
●
●
●●● ●●● ●● ●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●●●
●
●
●
●
●
●
●●
●●
●
●●
● ●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●●
●
●
●
●
●
●
●●
● ●
●
●
●
●● ●●
●
●● ●
●●
●●
●
● ●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
● ● ●
●
● ●
●
●
● ●●
●
● ●● ●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●●
●
●
●
●
●●●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
● ●
●
● ●
●● ●
● ●
●● ● ●
●
●
●
●
●● ● ●●
●
●
●
●
●
●
● ●●
●
●
●
●●●
● ●
●● ● ●
●
●
●
●
●
●
●●
●
●
●
●●
●
● ●
●
●
●
●
● ●
●
● ●
●
● ●
●
● ●
●
●
●
●
●
●
●● ●
●
● ●
●
●
●
●
●
●
●●
●
● ●●●
●
●
●
●● ●● ●
●
●●
● ●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●● ●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●
●
●
●
●●●
●
● ●
●
●
●
●
●
●
●●
●
●
●
● ●
●
● ●● ●●
●
●● ●● ●●
●
●● ●●●
●
●
●
●
●
● ●● ●● ●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●●●
●
●● ●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●●
●
●
●
●●
●
●
●●
●
●●
●
●
● ●
●
●
●
●
● ●● ●●
●●
●
●●●● ●●● ●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●●●
●
●
●
● ●●
●
●
●
●●
●
●
● ●
●
●
●
●
●
● ● ●● ●● ●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●● ●
●
●
●
● ●●
●
● ●
●
●
●
●
●
● ● ●● ●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●● ●
●
●
●
●
● ●●●
●
●
●
●
●
●
●
●
●
●
● ●● ●●
●
● ●●
●
●● ●
●
●
●
●
● ●
●
●
●
●
●
●
●● ●
●
●
●
●
● ● ●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ● ● ●●
●
● ●●
●
●
●
● ●
●
●
●●
●
●
●
● ●
●
●
●●
●
●
●
●
●● ●●
●
●●
●
● ●
●
●
●
●
●
●
●
● ● ●●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●●
●
●
●
●
●
●
● ●●
● ●●
●
●
● ●
●
●
●
●
●
●
●
● ●● ●●
●
● ●●
●
● ●
●
●
●
●●●
●
●
●
●
● ●
●
●
● ●
●
●
● ●●
● ●●● ●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●
●●● ●
●
●●●
●
●
●
●
●
●● ●
●
●
●●
●
●
●● ●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●●●
●
●
●●
● ●●
●
●
●●● ●●●
● ●● ●
● ●
●
●
●
●●
●●●
●●
●
●
●● ●
●
●
●
● ●● ●●●
●●
●
●
●
●
●
●●
●
●
●
● ●● ●● ●●
●
●
●
●
●
●
●
●
● ●
●
●
●●
● ●
●
●●
●
●
● ● ●
●
●
●
●
●
●
●
●
●●
● ●
●●
●
●
●
●
● ●
● ●
● ●
●
●● ● ●●
●
●●
●●
●●
●
●
●●
●
●
●●
●
● ●
● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
● ● ●
●
●
●
●
● ●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
●● ●
●
● ●
●
●● ●
●
●●●● ●● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
● ●● ●●
●●
●
●
● ●
● ●●
●
● ●
●
●
●
●
●●
● ●●●
●
●
●
● ●● ●●
●
●●
●
●●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
● ●●●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●●
●●
●
●
●
● ●●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●●
●●
●
●
●●
●
●●
●
●
●● ●
●
●
●
●
●● ●●
●
●
● ●
●
● ●
●
●
●
●
●
●
●●
●
●●●
●
●●
●
●● ●
●
●
●
●
●● ●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●●
●
● ●
●
●
●
● ●
●
●●
●
●● ●●
●
● ●
●
●
● ●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
● ●
●●●
●
●
●
● ●
●● ●
●
●
●
●
●
●
●
● ●● ●● ●● ●
●
●●
●
●
● ●● ●●
●
●
●
●
● ● ● ●
●●
●
●
●
● ●● ●
●
●
●
●
●●
●
●
● ● ●
●
●
● ●
●
●
●
● ● ●
●●
●●
● ●
●
●
●
● ●● ●
● ●●
●
●
●
●
●
●
●
●
●
●● ●
● ●
●
●
●●●
●
●●
●
●
●
●
● ●
●
●
●
● ●
●
●
●● ●
●
●
●
●
●●●●
●●
●●
●
●
●
● ● ● ●
●
● ●
●
●
●
●
●●
●
●
●
●● ●
●
●
●
●● ●
● ●
●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
● ●
●
●●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●●
● ●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
● ● ●
●●
●
●
●
● ●
●
●● ●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●
● ●
●
●
●
●●●
●
●
●
●
●
● ●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ● ●
●●●
●
−1.0
−0.5
0.0
0.5
1.0
4 5 6 7 8
V531
V47
1V2
●
●
0
1
20%
●
●
● ●●●● ●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
● ●●
●●
●
●
●
●
●
●
●
●●
●●●
●●
●
●
●
●
●
●
●
● ● ●
●
●●
●
●
●
● ●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●● ●
●
●
●
● ●●
●
●
●
●
●● ● ●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●● ●
●
●
● ●
● ●
●
●
●
●
●● ●
● ●
●
●●
●
●●
●
●
●
●
●●
●
●● ●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●●● ●
●
●
●●
●
●●
●
●
●
●● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
● ●
●
●●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●●
● ●●
●
●●
●
●
●
●●
● ●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●●
● ●● ●
●
●
● ●●
●
●
●
●
●
● ●
●
●
●
● ●●
●
●
●
●
●●
●
●
●
●● ●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
● ● ●●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
● ●
● ●
●
●
●
●
●
●●
●
●●●
●
●
● ●
●
● ●●●
●
● ● ●
●
●
●
●
●
●●
●●
● ●
●
●
●
●●●
●
●●
●
●
●
●
● ●
●●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
●
●●
●●
●
●
●
●
● ●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
● ●●
●
●●● ●
●
●
●
●
● ●
●
●●● ●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●● ● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●● ●
●
● ●●
●
●
●
●
●
●
●●
●
●
●
●
● ●●●
●
●
●
●
●
●●
●●
●
●
●
● ●
●
●
●
●
● ●● ●●
●
● ●●
● ●
● ●
●
●
●
●● ●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
● ● ●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●
●
● ●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
● ●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●●
●● ●
●
● ●●
● ●
●
●
● ●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●● ●
●
●
●●
●
●
●
●● ●
●
●
●
●
● ● ●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●
● ●
●
●● ●
●
●
●
●
●
● ●
●
●
●
●
● ●●
●
●
●
● ●●
●
●
●
●●● ● ●●●
●
●●
● ●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
● ●● ● ●● ● ●● ●●
●
●
●
●
●
● ●● ●
●●● ●●
● ●
●
●●
●
●
●
●
●●
●
●
●
● ●●
●
● ●
●
●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●●
●
●
●
●
● ● ●
●●
●
● ●●
●
●
●
●
●● ●
●●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
● ●● ●
●
●
●
●
●
●
●
● ●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ●● ●
●
●●
●
●●●
●
● ●
●
●●●
●
●
●
●
● ● ●
●
●
●●
●
●
●
●● ●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●● ●●●
●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●
●
●●●● ● ●
●
●
●●
●
●
●
●
●
●
●● ●
●
●
● ●
● ●
●
●
●
● ●● ●● ● ●●●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
● ●●
●
●
●
●● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●● ●
● ●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●●
●
●
●
●
●
●
●● ●
●
●●●
●
●● ●
●
● ●●
● ●
● ● ●
●
●
●
●
● ● ●●●
●● ●
●
●
●
●
●
● ● ●
● ●●●
●
●
●
● ●
●●● ●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
● ●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
● ●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●●
●
●
●● ●
●● ●
●● ●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●●●
●●
●● ●
●
● ●
●
●●
●
●
● ●●
●●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
● ●
●
●
●● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●
● ●
●
●●
●
●●
●
●
●
●
●
●
●
●
●● ● ● ●● ●●
● ●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
● ●●
●
●
● ●
●
●●
●
●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
●●
●
●●●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●●
●
●
●
●
●● ● ●
●
●
●
●
● ● ●
●
● ●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
● ●
●●
●
●
● ●● ●
●
●
●
●
● ●
●
●
●
●
●●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●●
●
●●●
●
●
●
●
●●
● ●
●
● ●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●●
●
● ●
●●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●●
● ●
●
● ●
●
●
●
●
●●
●
● ●
●
●
● ●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
● ●
●●
●
● ●
● ●
●●●
●
● ●
●
●
●
●
●
●
●
●
●●
● ●
● ●
●
●●
●●
●
●●
●
●
●
●
●●
●●
● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
● ●
●●●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
● ●
● ●●
●
●
● ●
●
● ●
●●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
● ●●●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
●
● ●
●
●
●
●
●
● ● ●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
● ●
●
●
●
● ●● ●● ●●
●
●
●
●
●● ● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●●
●
●●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
● ●●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
● ●
●
●
●
● ●●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
●●
●
● ●
●
●
●
●
●●●
●
● ●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●● ●● ●●●
●
● ●● ●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●●●
●
●
●
● ●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●● ●●
●
●
●
●● ●●●
● ●
●
●
●
●●
● ●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
● ● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●● ●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
● ●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●●
●
● ●●
●
●●
●●
●
●
●● ● ●
●
●●
● ●
●
●
●
●
●
● ●● ●
●
●
●
● ●●
●
●
●
●
● ●
●
●
● ●
●
●
●
●
●●
● ●
●● ●●
●
●●
●
●
●
●
●● ●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●● ●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
● ●●
●
●
●
● ●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
● ● ●
●
● ● ●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●
● ●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●
●
● ●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
● ●● ●●
●
●
●
●
●
●
●
● ●●
●●
●● ●●
●
● ●●●
●
●
● ●●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●●
●
● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●●
●
●●
●
●
●●
●
●
● ●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●●
●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
● ●
●
●●
●
● ●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●● ●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●● ●
●
●
●
●
●
●●
●
●
●
● ●●●●
● ●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●● ●
●
●
● ● ●
● ●
●
●
●
●
●
●
●
●
● ●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
● ●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●● ●
●●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ● ●
● ●
●●
●
● ●● ●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
●●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●
●
● ●●
●
●
●
●
●
●●
● ●
●
●●
●
●
●
● ●
●
●●
●
●
●
●●●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
● ●● ●
●
●
●
●
●
●●
●
●● ●●
●
●
●● ●
●
● ● ●●
●
●
●
●
●
●
● ●● ●
●● ● ●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●●●
●
● ●●
●
●
●
●
●
●
●
●
●
● ●
●●
●
●
●
●●
●
●
● ●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●● ●
● ●
●
●
●
●
●●
●
●
●
● ●●
●
●●
●●
●
●
●
●
● ●
●
●
●●
●
●
●
●
● ●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
● ●
● ●
●
●
● ●
●
●
● ● ●
●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
● ●
●
● ●
● ●●
●
●
●
●
●
●
●
●
● ●
●
●●
●
● ●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●● ●
●
● ●
●
●
●
●●
●●
●
●●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●● ●
●
●●
●
● ●
●
●
● ●
●
● ●●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●●
● ●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
● ● ●
●
●●
●
●
●
●
● ●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
● ●
●
●
●
●
●
●● ●
●
●●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●●
●●
● ●●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●● ●
●
●
●●
●
● ●
●
●●
●
●
●
●
● ●●
●
● ●
●
●
●●
●
●
●
●
●●
●
●
●
●
● ●●
●
●
●
●●
●
●
● ●
●
●
●●● ● ●
●
●
●
●
●
●
●●
●
●●
●
●
● ●
●
●
●●●
●
●●
●
●
●
●
●
●
● ●●● ●
● ●
● ●
●
●
●
●●
●
●
●
● ●
●
●●●
●
●
●
●
● ●
●
●
●
●
● ●● ● ●
●●
●
●●●
●
●
●●
● ●
● ● ●
●
●
●
●
● ●
●●
● ●
●
● ●●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●
● ● ● ●
●
●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
● ● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
● ●
●●
●
●
● ●
●
●
●
●
●
●
●● ●● ●●
●● ●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●
●● ●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ● ●
●
● ●
●
●
●
● ● ●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
● ●
●●
●
●● ●● ●
● ●
● ●
●
●
●
●● ●
●●
●
●
●
● ●●
●
●●
●
●●●
●
●
●
●
●
●
● ●●● ● ●
●
●
●
● ● ●
●
●●●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
● ●
●
●
●
●● ●
●
●
● ●●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
● ●
●
●
●
●●●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●●
●
●
●● ●●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
● ●●
●
●
●● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●●●●
●
●
●
●
● ●
●●
● ●●
●
●●
●
●●
●
●
●●
●
●●●
●
●
●
●●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●●
●
● ●
●
●
●
●●
●●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●●●
●
● ●
●
● ●
●
●
● ●
●●
●
●
●
●
● ● ●●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●● ●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●● ●
● ●
●
●
●
●
●
● ●
●
●
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
● ●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●● ●●
●
●
●
●
●
●
●
●
● ●
● ●●
●
●
●
●
●
●
●
● ●
● ●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●● ●● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●●
●
● ● ●
● ● ●
●
●
●
●
●
●● ●
●
●●
●
●
●
●
● ●
●●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
● ●● ●●● ●●
● ●
●
●
●
●● ●
●
●
● ●● ●
●
●
● ●
●
●● ●●
●
●
●
●
●
●
●
●
●
●
●● ●
●●
●● ●
●
●● ●
●
●●
●
● ●
●
●
●
●
●
●●
●●●
●
●
●●
● ●
●
●
●
● ●
●
●●●
●
● ● ●●
●
●
● ●●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●
●
● ●●●
●
●
●
●
●●●
●
●●
●
●
●●●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●●
●●
●
●
●
●
●● ●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●●
●
●
●●
●
●● ●
●
●
●
●
●
●
●●●
● ●
●
●●
●
●
●
●
●
●●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
● ●● ●
● ●
●
● ●
●●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●● ●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
● ●
● ●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●● ●
●
●
●●
●
●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●● ●
● ●
●
● ●●
●
●
●
● ● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
●
●
●●
●
● ●● ●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
● ●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●●
● ●●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●● ●● ●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
● ●
● ●● ●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●●
●
●
●
● ●● ●●
●
●●
●
●● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
● ●
●
● ●
● ●
●
●
●
●
●
●
●●
●
● ● ●
●
●
●●● ●
●●●
●
●
●
●
●
●●
●
● ● ●●
●
● ●
●
●
● ● ●
●
●
●
●
●
●
●
●● ● ●●
●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
●●
●
●●
●
●
●
●
●●● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●
●
●●
●
●
● ●
● ●●
●
●
●
●
●
●●
●
●
●
●
● ●●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
● ●●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●● ●●
● ●
●● ●
●● ● ●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
● ●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●●
● ●●
●
●●● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ● ●●
●
●
●
●●
●
●
●
● ●
●
●
● ●
● ● ●
●
●●
● ●●
●
● ●
●●
●●
●
●
●
●
●
●
●
● ● ●●
●
● ●
●
●●
●
●
●●●
● ●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●●
●
● ● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●● ●
●●
●● ●
●●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●●
●
●
●
●
● ●● ●●
●
●
●
●
●●
●
●●
●
●
●
●●●
●●
●●
●
●
●
●●
●●
●●
●●
● ●●
●
●
●
●●
●● ●●●
●
● ●
● ●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
● ● ●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
● ●
●
●
● ●● ●● ●
●
●
●
●
●
● ●
●
● ●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●● ● ● ●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●
● ●●
●
●
●
● ●
●
●
●
●●
● ●
●
●
●●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●●
● ●●
●●●
●
●
●●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●● ●
●
●
●
●●
●
●
● ●
●
●
●●
●
●
●
●
●
● ●● ●
●
●
●
●
●
● ●
●
●
●
●
●
● ●●
●
● ●●
●
●
●
●● ●
●
●
● ●
●
●●
●
●
●
●
● ●● ●●● ●
●
●
●
●
●
●
●
●● ●● ●
●
● ●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●●
●
●
●
●
●
●●
●
●
●
●●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
● ●● ●
●
●
●
●●
●
●
●
●
●
●●
●
● ●● ●●●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●● ●●●
●● ●●
●
●
●
●
● ●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●●
●
●
●●● ●●
●
●●
●
●
●
● ●
●
●
●●
●
●
●
●
●
● ●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●●●
●
●
●
●
●
●
●
●
●
●● ●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●
●
●
●
●
●
●
●
●
● ●
●
●●● ●● ●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
● ●●
●
●● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●
● ●
●
●●
●
●
●
●
● ● ●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●●
●● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●
●● ● ●
●
●
●
●
●●
●●
●
● ●
●●
●
●● ●
●
●
●
●●
●●
●
●
●
●
●● ●●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
● ● ●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●●
● ●
●
●●
●●
●●● ●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
● ●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
● ●●
●
●
●
● ●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
● ●●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●●●
●●
●
● ● ●
●●
●
●
●
●
● ● ●
● ●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
● ●● ●●●
●
●●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●
●
●
●
●●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●● ●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●
● ●●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
●●
●
●
●● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
● ● ●
●●
●
●
●
●
●
●●
●
●
●
●● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
●
●
●
● ●
● ●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
● ●
●
●
●
●
● ●
●
●
●
● ●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
● ● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●●
●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●●●
●
●●● ●
●
●
●
●
●
● ●●●● ●
●
●
●
●●●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●●
●● ●
●
●
●
● ●●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
●●
●
●
●●
●
● ●●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●
●●
●
●●
●
●
●
●●● ●
●
●
●
●
●●
●
●
●● ●● ●● ●
●
● ●
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●●
●● ●
●
●
●
●
●●
●●●
●●
●
●● ●
●
●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
● ● ●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
● ●
●
●
●●
● ●●
● ●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●● ●
●
●
● ●
●
●
●● ●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●● ●●
●●
●
●
● ●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●
●
●
●
●
● ● ●●●
●
●
●●
●
●
●● ●●
●
●
●
●
●●●
●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●●●
●
●
●
●
●
●
●
● ● ●
●
●
●
● ●● ●
●
● ●
●
●
● ●
● ●● ● ●
●
●
●
●
●
●
●●
●
●
●
●●
● ●
●●
●
●
●
●
●
●
●
●
● ● ●●
●●
●
●● ●
●
●●
●
●
●
●
●
● ●
●●
●
●
● ●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
● ●
●●
● ●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
● ●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●●
●
● ●
●
●● ●
●
●
●
●●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
● ● ●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●
● ●●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●●
●
● ●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
● ●●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●●
●
● ●
●
● ●● ●
● ●
●
●
●
●
●
●
●
●
●
●
●●
●
●● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
● ●
●
●
●●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●●
●
●
●● ●
●
●●
●
● ●
●
●
●
●●
●
● ●
●
●
● ●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
● ●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●●● ●
●
●
●
●
●
●
●
●
● ●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●
● ●
●
●
●
●● ●
●
●
●
●● ●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ● ● ●
●
●
●
●
●
● ●
●
●
● ●
● ● ●●●
●●
●
●
●
●
●●
●
●
●● ●
●
●
●
●
●
●
●
●●
●
●
● ●●●
●
●
● ● ●
● ●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●
●
● ●●
●
●
●
●
●
●
●
●
●
●
● ●● ●●
●
●
●
●
● ●
●
● ●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
● ●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●
● ●
●●
● ●
●
●
●
●
●●
●
●● ●
●
●●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●●
●
●
●
●
●
●
●●●
● ●
●
●
● ●
●
● ●
●
●
●
●
●
●●
●
●●
● ●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
● ●●
●●
●
●
●
●
●●
●
● ● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●●
● ●
●
●
● ●
●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●● ●
●●
●● ●
●
● ●
●
●
●
●
● ●
●
●●
●
●● ●
●
●●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●
● ●● ●
●
●
●
●
● ●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●● ● ●●●
●
●
●
●
● ●
●
●
●
●
● ●
●●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●●
●●
●
●
●
●
●
● ●
●
●
●●
● ●
●
●
● ●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
● ●●
●
●
● ●
●
● ●
●
●●
●
● ●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●● ●
●
●● ●
●
● ●
●●
●
●
● ●●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
● ●
●
●
● ●
●
●
●
● ●●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
● ●
● ●
●
●
●
● ●
●
●
●
●
●
●
●●
●●
●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●●
●
●● ●
●
●●
●
●
●
●●
●● ●
● ●
●●
●●
●
●
●
● ●
● ●
●●
●
●
●
●
●
●● ●
●
●
●
●
●
●
● ●
● ●
●
● ●
●
●
●●● ●
●
●
●
●
●
●
●
●
●●
● ●
●
●●
●
● ●●
●●
●
● ●●
●
●
●●● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
● ●
●
●
●
●
●
●
●
● ●
● ●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
● ●●
●
●
●
●●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●● ●
● ●
●
●
●
●
●● ●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
● ●● ●
●
●
●
●
● ●
● ●●
● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●●
●
●
● ●
● ●●
●●
●
● ●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
● ●●
●
●
●
●
●
●
●
●
●
●●
●
●● ● ●●
●
● ●●●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●
●●●
●
●
●
●
●●
●
●● ●
● ● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
● ●
●●
●
●●
●
●
●
●
●
●
●
● ●
● ●
●
●●
●
●
●
●
●●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
● ●●●●●
●
● ● ●● ●
●●
●
●●
●
● ●
●
●● ●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
● ●
●
●●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ● ●
●●●
●
●
●
●
●
●
●
●●
●
● ●
● ●
●
●●
●
●
●
●
● ●
●
●
●
●●
●
●
●● ●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●●● ●
● ●
● ●
●
●
●
●
●
●●
●
●
●
● ●●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
●● ●●
●
●● ●●●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
● ●●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ● ●●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●●● ●●
●
●
●
●●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
● ●
●●●
● ●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●●
●
●
●
●● ●●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●● ●●●●
●
●
●
●
●
●
●
●●
●
●
● ●● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●● ●●
●
●
●
●
●
●
●
● ● ●
●
●
● ●●
● ●
●
●
●
●
●
●
●
●
● ●●
●
● ●
● ●
●●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
● ●●
● ●
●
●
●
●●●
● ● ●
●
●
●
● ●
●
●●
● ●
●
●
●
●
● ●
●●
●
●
●●
●
●●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
● ●
●
● ● ●
●
●
●
●
●● ● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ● ●●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●●● ●●
●
●
● ●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
● ●●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●● ●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
●
●
●●
●●
●
●
●
● ●● ●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●
●
● ● ● ●
●
●
●
●
●
●
● ●
●
●
●● ●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●●
●
●●
●
●
● ●
● ●
●
●●
●
●
●
●
●
●●
●
●
●
●● ●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●●
●
●
●
●●●
●
●
●● ●
●
● ●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●● ●
●●●
●
●
● ●
● ●
●
●
●
●
●
● ●
●
●
●
●● ●●
●
●
●
●
●
●
●
● ●●
●
●
●●
●
●● ●
●
●
●●
●
●
●● ●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●● ●
●
● ●
●
●
●
● ●
●●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●●
●●
●
● ●●
●
●
● ●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●●
●
●●
●
● ● ●● ●● ●●
● ●
●
●
●
● ●
● ●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
● ●●
●
●
●
●
●
●
●
● ●● ●
●
●
●
●●
●
● ● ●
●
●
●
●
●
●
●
●
●
● ●● ●●
●
● ●
●
●
●
●
●
●●
●
●●
●
● ● ●
●
● ●
●
●
●
●
●
●
●●
●
●●
●
●
●
● ● ●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
● ●
●
●
● ●●
●
●
●
●
●
●
●
●●
● ●
● ●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●●
●
●
● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
● ● ●●
●
●
●●● ● ●
●
● ●
●
●
●
●● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●●
●
●● ●
●
●
●●
●
● ● ●
●
● ●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●●
●
●
●●
●
●
●●
●●
●
●
●
●
● ●
●
●
●
●
●● ●
●
●
●
● ●
●●
●
●
●
●●
● ●
●
●
●●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ●●
●
●●
●
●
●
●
●
●
●
●
● ●●
●
●
● ●
●
●
●
●
● ●
● ●●
●●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●● ●
●● ●●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●
● ●
●● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●●● ● ●●
●
●●
●
●●
●●
●
●
●
● ●●
● ●
●●
●●
●
●
●
●●● ●
●
●
●
●
●
●
●
●
●
●
●
●● ●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●●
●
●
● ●
●
●●
●
●
● ●
●
● ●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●
● ●
●
●
●
●●
●
●
●
●
● ●
●
●
● ●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●● ●●
●
●
●●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
● ●
●
●
●
● ● ●●
● ●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●●
● ●●
●
●
●
●●
●
●
●
●
●
●●
●
●● ●
●
●
●
● ●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●● ●
●
●● ●●●
●
●
●●
●
●● ● ●
●
●
●●
●●
●
●
●
●
●
●
●
●
● ●● ●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●●● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●● ●
●
●●
●●
●
●
●
● ●●●
●
●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
● ●●
●● ●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●●
●
●●
●●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●● ●
●
●●
●
●
● ●
●●
●
●
●●
●●
●● ●
●
● ●●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●● ●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●●●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●●
●
●
● ●
●
● ●●●●
● ●
●
●● ●
●
●
●
●
●
●
●
● ●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●● ●
● ●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●● ●
● ● ●
● ●
● ●
●●
●
●●
●● ●
●
●
●
●
● ●
●
●
● ●
●
●
●
●
●
●
● ●
●
● ●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
● ●
●
●
●
●
● ●
●
●●
●
●
●
● ●
●
●
● ●● ●
●
●
● ●● ●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●● ●
●
● ●
●
●●
●●
● ●●●
●
● ●
●
●
● ● ●
●
●
●
● ●●
●
●
●
●
●
●
●
●
● ●
●
●
● ●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
● ●
● ●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●●
●
●
●
● ●
●
● ●
●
●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●●●●● ● ●
●
●
●
●
●● ●
●
●
●
●
●●
● ●●
●
●
●
●
●
● ●
●
●●
●
● ●●
●
●
●
●
●
●●
●●
●
● ● ●
●
●
●
●
●
●
●
●
●●●
●
●●
●● ●● ●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
● ●
●●
●
●
●
●●
● ●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
● ●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●●● ●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●
●● ●
●
●
●
●
●
●●
●
●
●●
●
●●
●●●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●●
●● ●
●
●
●
●
●
●
●
●●
● ●
●
●●
●● ●
●
●
●
●●●
●
●
●
●
●●
●
● ● ●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●● ●
●
● ●
●●●
●
●
●
● ●
●●
●
●
●
●
●
●●● ●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●●●
●
●
● ● ●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●●
●●
●●
●
●
● ●
● ●
●
●●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
● ●●●
●
● ●
●
●
●
●
●
●
●●
●
●
●
● ● ●
●
●
●
●
●
● ● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●
●●● ●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●●
●
●
●
●
●
●● ●●
●
●
●
●
● ●
●
●
●
●●
●
●
●●
●
● ●●●
●
●
●
●
●
●
●
● ●
●
● ●
●●
●
●
●●●
●
●
● ●●● ●
●
●
●●●
●
●
●
●●●
● ●
●
●
●
● ●
●
●
● ● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●● ●
●
●
●●
●
●
● ●
●
●
● ●●●● ●●
●
● ●
●
●
●
● ●
●
●●
●
●●
●
●
●
●
●
● ●
●●
●
●
●
●
●●
●
● ●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●●
●
●● ●
●
●
● ●
●
●
●
●● ●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●● ●
●
●
●
●
● ●●
● ●
●
●
●
●
● ●
● ●
●
●
●
●
●
● ● ●●●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●
●
● ●●
●
●
●
●●
●
●
●
●
●
●
● ●
●●●
●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●
●● ●
●
●
●
●
● ●●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●●●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●●
●
● ●●
●
●
●
●
●
● ●●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●●
●
●
●●
●
●
●●
●●● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●
●●
●
●
●●
●
●
●
●●
●
●
●
● ●
●
●●
●
● ●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●● ●
●
●
●● ●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
●●●
●
●
●
●●
●
●
● ● ●●●
●● ● ●
●
●
●
●●
●●
●
●●
●
●
●
●
●
● ●
●
●
●
● ●● ●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
● ●● ● ●
● ● ●
●
●
● ●
●
●
●
●
●●● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
●
●
●●●●●
●
● ●
●
●
●
● ●
●
●●
●● ● ●● ●
●
●
●
● ●
●●
●
●
● ●
●
●
●
●● ●●
●
●
●
●
●●
●
●
●
●
●
● ●●
●
●● ●
●
●
●
● ● ●
● ●
●●
●
●
●
●
●
●
●
●
● ●
●●
●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●●
●
●
●
●●
●
●
●
●
● ●●
●
●
●
●
●●
●
●
●
●●●
●● ●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●● ●
●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●● ● ●●
●
● ● ●
● ●
●
●
●
●
●
● ● ●
●
●●●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
● ●● ●
● ●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●●●
● ●
●
●
●
●
●
●
●
● ●●
●
●
● ●●
●
● ●●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●●● ●●● ●
●
●
●
●●
●
●
●
●
●
●
● ●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
● ●
●
● ●●
● ●
●
●
●
●
●
●
●
● ●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
● ●
●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
● ●
●
● ● ●
●
●
●
● ●
●
● ●
●●
●
● ●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
● ●
● ● ●
●
● ●
●
●
●●
●
●
●
●●
●●●
●
● ● ●
●●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●● ●
● ●●
●●
●
● ● ●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●● ●●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
● ●
●
● ● ●
●
● ●●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●●
●
●● ●
●
●
●● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●● ●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●
●
● ●
●
●
● ●
● ●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
● ● ●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ●
●●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
● ●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ●● ●
●
●
●
●
●
●
● ●
●
●
●●● ●
●
●
● ●●
●
● ●
●●
●
●
●
●
●●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
● ●●● ●
●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
● ● ●●
●
● ●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●●●● ●
●
●
●
●
●
●
●
● ● ●●
●
●
● ●
●
●●●● ●
●
●
●●
●
●
●
●●
● ●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
● ●●
●
●
●
●
●
●
●
●
● ●●
●
●●
●
●●
●● ●
● ●
●
●
●
●●
●
●
●
● ●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●●
●
●
●●
●
● ●
●
● ●
●
●
●● ● ●
●
●
●
●
●
●
●●
●
●
●● ●
●
●
●
● ●
●●
●
●
● ●
●
●
●
●
● ●●
●
●
●
●
●●
●
●
●
●
●●
● ● ●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●
●
●
●
●●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●●
●
●
● ● ●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●● ●●
●
● ●
●●
●
● ●
●
●
●
●
●
● ●
● ●
●
●
●● ●● ● ●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●●
●
● ●●
●●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ●●
●
●
●
●
●
● ●
●●
●
●
● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●● ●
● ●
●
●
● ●
● ●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
● ●
●
●
● ●
●●
●
●
●
●
●
●
●
●
●●
●
●● ●●
●
●
●
●
● ●
●
●
●● ●●
●
●
●
●●
●
● ●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●●
●
●
● ●
●
●
●
●
●
●
●
● ●●
● ●●●
●●
●●
●
●
● ●
●
●●
● ●
●
●
●
●
● ●●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
● ●●
●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●●
●
● ●
●
●
●●
●
●
●
● ●● ●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●● ●
●
●
●
●
● ●
●
● ●
●
●
●
●●
● ●●●●
●
●
●
● ●
● ●
●
●
●
●
● ●
●
●
●
●
● ●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●●
●
●
●
●
●
●● ●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
● ●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
● ●●
● ●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
● ●
● ●
● ● ●●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●●
● ●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
● ● ●●
●
●●
●
●
●
●●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●●●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●● ●
●
● ●
●●
●
●
●
● ●
●●
●
●
●●
●
●
●
● ●
●
●
●
● ●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●●
●
●●
●
● ●
●
●
●
●●
●
●●
●
●●
●
● ●
●
●
●●
●
●
●
●
●
● ●
●
●
●●● ● ●●
●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●●
● ●●
●
●
●
●
●
●
● ●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●●
●
●● ●●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
● ●
●
●
● ●
●
●
●
●
●
●
● ●●●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
● ● ●
●
●
●
●
●
●
●
●
●
●●
● ●●
●
●
●
●
● ●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
● ● ●●
●
●
●
●
● ●
●
●
●● ●
● ●
● ●● ●
●●
●
●
●
● ●
●●
●
●● ●
●●
●
●
●●
●●
●
●
●
●● ●
● ●
●
● ●●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ●●●
●
●
●
●
● ●● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
● ●
●
●
● ●
●
●
●
●● ●
● ● ●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
● ●
●
●
●
●
● ●●
●
●
●
●
●
●
●
● ●
● ● ●
●
●
● ●
● ●
●
●
●
●
●
●
● ●
●
● ●
●
●●
●
●
●
●●
●
●
●
●
●
●
●● ●● ●
●
● ●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●● ●
●●
●
●
●
●●
● ●
●
●
−1.0
−0.5
0.0
0.5
1.0
4 5 6 7 8
V531
V47
1
V2●
●
0
1
30%
46
![Page 47: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/47.jpg)
Exemplo: clientes em atraso
SMOTE: 20% sim e 80% nao (dados originais)
Importance
V1371V1361V1341V1391V1411V1351V1381V4871V1401V8101V4541V4501
V10V480
V9V4511
V470V466V324V458V446V467V442V348V471V459V447V449V443V463V445V820V806V819V818V808V531
0 20 40 60 80 100
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 4168 890
1 142 238
Accuracy : 0.8102
95% CI : (0.79, 0.82)
Sensitivity : 0.9671
Specificity : 0.2110
Pos Pred Value : 0.8240
Neg Pred Value : 0.6263
47
![Page 48: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/48.jpg)
Exemplo: clientes em atraso
SMOTE: 25% sim e 75% nao
Importance
V10V480
V1401V8101V4541V1361V1411V1341V1351V1381V4871V1391V1371V4501
V467V466V449V447V348V445V443V459
V4511V9
V446V463V458V442V820V324V806V808V818V470V531V471V819
0 20 40 60 80 100
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 4258 729
1 52 399
Accuracy : 0.8564
95% CI : (0.84, 0.86)
Sensitivity : 0.9879
Specificity : 0.3537
Pos Pred Value : 0.8538
Neg Pred Value : 0.8847
48
![Page 49: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/49.jpg)
Exemplo: clientes em atraso
SMOTE: 30% sim e 70% nao
Importance
V8101V10
V480V1401V4541V4871V1411V1391V1361V1341V1381V1371V1351V4501
V467V466V447
V4511V348V459V449V443V445V463V458V446V442
V9V324V820V806V808V818V470V819V471V531
0 20 40 60 80 100
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 4189 612
1 121 516
Accuracy : 0.8652
95% CI : (0.85, 0.87)
Sensitivity : 0.9719
Specificity : 0.4574
Pos Pred Value : 0.8725
Neg Pred Value : 0.8100
49
![Page 50: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/50.jpg)
Exemplo: clientes em atraso
SMOTE: 50% sim e 50% nao
Importance
V10V480
V1401V8101V4541V4871V1411V1381V1361V1391V1351V1341V1371V4501
V467V4511
V9V447V466V446V348V459V443V449V458V463V442V445V324V820V818V806V808V470V819V471V531
0 20 40 60 80 100
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 3861 368
1 449 760
Accuracy : 0.8498
95% CI : (0.84, 0.85)
Sensitivity : 0.8958
Specificity : 0.6738
Pos Pred Value : 0.9130
Neg Pred Value : 0.6286
50
![Page 51: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/51.jpg)
Dados desbalanceados
2 Utilizar diferentes algoritmos: abordagens simples como Arvores,geralmente, apresentam um bom desempenho em dados desbalanceados;
3 Modelos penalizados: existem varias versoes de algoritmos penalizadoscomo penalized-SVM e penalized-LDA.
4 Conceitos em outras perspectivas: ha varios campos dedicados a dadosdesbalanceados. P. ex., deteccao de anomalias, deteccao de alteracoes;
5 Ser criativo: busque inspiracoes, por exemplo, em respostas do Quora:
“in classification, how do you handle an unbalanced training set?”
? “Decomponha a classe maior em pequenas outras classes”.
? “Reamostre os dados desbalanceados em nao somente umconjunto balanceado, mas varios”.
51
![Page 52: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/52.jpg)
The Art of Feature Engineering
• Feature engineering e a arte de extrair informacao dos dados ja obtidos.
1 Criacao de caracterısticas;
2 Dados faltantes;
3 Dados desbalanceados;
4 Variaveis correlacionadas.
52
![Page 53: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/53.jpg)
Variaveis correlacionadas
53
![Page 54: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/54.jpg)
Ranking de caracterısticas individuais
• Neste caso, a variavel x1 e relevante individualmente, e x2 nao ajuda aobter uma melhor separacao.
• O ranking de caracterısticas individuais funciona bem. A caracterısticaque proporciona uma boa separacao de classe sera escolhida.
54
![Page 55: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/55.jpg)
Rotacoes no espaco de caracterısticas
• A figura anterior foi obtida da figura abaixo apos rotacao de 45 graus.Agora, para alcancar a mesma separacao, sao necessarias x1 e x2.
• Varios metodos de pre-processamento, como a analise de componentesprincipais (PCA), realizam transformacoes lineares (como a rotacao).
55
![Page 56: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/56.jpg)
Rotacoes no espaco de caracterısticas
• Pergunta: no caso abaixo, voce manteria x1 e x2 ou eliminaria x2? Noteque a nocao de relevancia esta relacionada ao objetivo perseguido;
• P(Y |X ) nao e independente de x2, mas a taxa de erro do classificadorBayes ideal e a mesma se x2 e mantida ou descartada.
56
![Page 57: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/57.jpg)
Caracterısticas individualmente irrelevantes
• Nota-se uma separacao linear, em que as caracterısticas individualmenteirrelevantes ajudam a obter uma melhor separacao quando em conjunto;
• Neste caso, e justificavel o uso de metodos multivariados, que utilizam opoder preditivo das caracterısticas em conjunto.
57
![Page 58: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/58.jpg)
Caracterısticas individualmente irrelevantes
• O que podemos dizer sobre o problema abaixo, alguma caracterıstica eindividualmente irrelevante?
• Este caso e conhecido como problema do tabuleiro de xadrez. Ascaracterısticas sao conjuntamente relevantes.
58
![Page 59: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/59.jpg)
Caracterısticas aparentemente redundantes
• A reducao do ruıdo pode ser alcancada quando caracterısticas comdistribuicoes projetadas identicas.
• A distribuicao bidimensional mostra uma separacao de classe melhor,quando comparado com qualquer caracterıstica individual.
59
![Page 60: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/60.jpg)
Variaveis correlacionadas
60
![Page 61: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/61.jpg)
Correlacao nao implica redundancia
• Geralmente, se pensa que correlacao de caracterıstica significaredundancia de recurso.
• As caracterısticas sao redundantes. I. e., a separacao de classe nao eaprimorada ao se conseiderar as variaveis conjuntamente.
61
![Page 62: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/62.jpg)
Correlacao nao implica redundancia
• Geralmente, se pensa que correlacao de caracterıstica significaredundancia de recurso.
• Apesar das projecoes serem semelhantes a anterior (e correlacionadas),elas nao sao redundantes.
62
![Page 63: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/63.jpg)
Objetivos
Modelos Base de dados
63
![Page 64: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/64.jpg)
Como as maquinas aprendem?
• Armazenamento dos dados: utiliza a observacao para fornecer uma basepara o raciocınio adicional;
• Abstracao: envolve a traducao dos dados em representacoes e conceitos;
• Generalizacao: cria conhecimento e inferencia que direcionam acoes emnovos contextos;
• Avaliacao: fornece um mecanismo de feedback para medir a utilidade doconhecimento adquirido e informar potenciais melhorias.
64
![Page 65: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/65.jpg)
Exemplo
65
![Page 66: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/66.jpg)
Todos os aspectos sao importantes
66
![Page 67: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/67.jpg)
Os limites do Machine Learning
• Machine Learning tem pouca flexibilidade para extrapolar os parametrosde aprendizagem e nao conhece o senso comum!
• Ele e tao bom quanto os dados sao para ensinar. E um paradigma“Garbage in, garbage out!”
67
![Page 68: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/68.jpg)
Os limites do Machine Learning
68
![Page 69: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/69.jpg)
Interpretabilidade vs Flexibilidade
Flexibilidade
Inte
rpre
tabi
lidad
e
Baixa Alta
Baixa
Alta Subset Selection
Lasso
Least Squares
Generalized Additive ModelsTrees
Bagging, Boosting
Support Vector Machines
69
![Page 70: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/70.jpg)
Tipos de aprendizado
Matriz de dados Y fornecido Y não fornecido
Aprendizado supervisionado
Aprendizado não - supervisionado
Regressão Classificação
Y contínuo Y discreto
70
![Page 71: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/71.jpg)
Tipos de aprendizado
71
![Page 72: Introdu˘c~ao - cursos.leg.ufpr.brcursos.leg.ufpr.br/ML4all/slides/Introducao.pdf · Algorithmic Modeling Culture? Domina a comunidade de Machine Learning;? O modelo e utilizado para](https://reader034.vdocuments.us/reader034/viewer/2022042220/5ec68ca91d96391a074f93dd/html5/thumbnails/72.jpg)
Referencias
• James, G., Witten, D., Hastie, T. e Tibshirani, An Introduction toStatistical Learning, 2013;
• Hastie, T., Tibshirani, R. e Friedman, J., The Elements of StatisticalLearning, 2009;
• Lantz, B., Machine Learning with R, Packt Publishing, 2013;
• Tan, Steinbach, and Kumar, Introduction to Data Mining,Addison-Wesley, 2005;
• Some of the figures in this presentation are taken from ”An Introductionto Statistical Learning, with applications in R”(Springer, 2013) withpermission from the authors: G. James, D. Witten, T. Hastie and R.Tibshirani
72