Controle
Estatístico da Qualidade
Introdução
Os mÉtodos estatÍsticos cada vez mais vÊm sendo reconhecidos como um
importante instrumento para diagnosticar e otimizar a gestÃO e operaÇÃO
de diversos sistemas, desde os sistemas humanos aos mais complexos
sistemas fÍsicos. As aplicações destes vêm desempenhando um papel
importante na solução de muitos problemas, da industria `a agricultura,
passando pelos setores socio-economico, administrativo e de saúde.
Grande parte das mais avancadas pesquisas cientıficas em diversas areas
do conhecimento dependem cada vez mais dos metodos estatısticos (RAMOS,
2003).
A era do Controle Estatístico da Qualidade surgiu no contexto da
Segunda Guerra Mundial com a ascensão da revolução industrial e da
produção massificada, que tornou impraticável inspecionar os milhares de
produtos que saiam da linha de produção. Assim, com o controle
estatístico, seria possível selecionar certa quantidade para inspeção,
onde as propriedades dessa amostra seriam estendidas a todo o lote.
O pioneiro da aplicação da estatística ao controle de qualidade foi
WalteR Andrew Shewhart em 1924, que preparou o primeiro
rascunho do que viria a ser conhecido como carta de controle.
Concomitantemente, dois colegas de Shewhart, Harold F.
Dodge e Harry G. Romig, desenvolveram técnicas
de amostragem constituindo o núcleo da maioria das técnicas estatísticas
de controle da qualidade que são usadas até hoje. No início o processo
foi lento, porém se ampliou com o advento da Segunda Guerra mundial com
a influência das forças armadas americanas.
Sete
Ferramentas da Qualidade
As sete ferramentas estatísticas de qualidade surgiu no Japão, logo
após o final da Segunda Guerra Mundial. As empresas precisavam capacitar
mão de obra para o controle da qualidade, mas não era possível ensinar
estatística para todos os trabalhadores. Concentraram, então, esforços
no treinamento de pessoas para desenhar gráficos que, embora simples,
resolvessem a maior parte dos problemas. E isso se comprovou
verdadeiro.
Desde então, o uso das ferramentas tem sido de grande valia para os
sistemas de gestão, sendo um conjunto de ferramentas estatísticas de uso
consagrado para melhoria de produtos, serviços e processos.
Tradicionalmente são 7 as ferramentas da qualidade:
- Fluxograma (ou Estratificacao)
- Diagrama de Ishikawa
- Folhas de Verificacao (check sheet)
- Diagrama de Pareto
- Histograma
- Diagrama de Dispersao
- Grdficos de Controle
Diagra de
Ishikawa
O diagrama de Ishikawa, também conhecido como
diagrama de Causa e Efeito, ou Diagrama
“Espinha de Peixe” é usado para identificar as causas de um
“problema”. É utilizado para apresentar a relação existente entre um
resultado de um processo (efeito) e os fatores (causas) do processo que,
por razões técnicas, possam afetar o resultado considerado.
O diagrama foi proposto originalmente pelo engenheiro químico,
Kaoru Ishikawa em 1934 e aperfeiçoado nos anos
seguintes.
Kaoru nasceu em Tóquio em 13 de julho de 1915, filho mais velho de
oito filhos, graduou-se em Química na Universidade de Tóquio em
1939.
De 1939 a 1941 trabalhou no exército como técnico naval, então foi
trabalhar na “Nissan Liquid Fuel Company” até 1947.
Folhas de
Verificação
Para Que
Serve
- Tabela para coletar e resumir informacoes
- Contagem de ocorrencia de eventos: ocorrencias, consultas,
falhas,defeitos, nao-conformidades, etc
- Facil utilizacao, visualizacao e interpretacao
- Coleta de dados de forma padronizada
- E um Registro da Qualidade, portanto deve ser devidamente
identificada, datada, e assinada por responsável
Passos Para
Aplicação
- Escolher um tipo de folha de verificacao que permite um facil
preenchimento, organizar conforme a necessidade da organização ou setor,
no qual será feita a coleta de dados.
- Definir a quantidade de informacoes ira conter no problema/falhas ou
ocorrencia e o tamanho da amostra dos dados
- Decidir o local ou setor onde será a coleta de dados
- Determinar a frequência com que serão coletados os dados, pode ser
diário, semanal ou mensal. Serve para verificar a ocorrência durante um
determinado período
- Definir quem deverá coletar os dados, poderá ser o gestor do setor
que está sendo coletado os dados ou supervisor direto do setor
operacional;
- Aplicar a folha de verificacao atingir a coleta dentro do
planejado.
Diagrama de
Pareto
O diagrama de Pareto é um gráfico de colunas que ordena as
frequências das ocorrências, da maior para a menor, permitindo a
priorização dos problemas, procurando levar a cabo o princípio de Pareto
(80% das consequências advêm de 20% das causas), isto é, há muitos
problemas sem importância diante de outros mais graves.
Um dos pioneiros em trabalhos na área de Qualidade, Joseph
Juran, encontrou um padrão semelhante ao encontrado por Pareto
na distribuição dos tipos de defeitos de certo produto. Após diversas
análises, ele chegou a conclusão de que em grande parte das iniciativas
de melhoria, poucos tipos de defeitos eram responsáveis pela maioria das
rejeições (poucos vitais), ou seja, 80% dos problemas de qualidade de
uma peça são causados por 20% dos tipos de defeitos.
Da relação entre esses dois trabalho foi criado o conceito de Pareto.
Joseph Juran cunhou o termo “Gráfico de Pareto” no
início da década de 90.
Graficos de
Controle
- Grafico de Controle da Media
- Grafico de Controle da Amplitude
- Grafico de Controle da Desvio-Padrao
- Grafico de Controle da Media Movel
- Grafico de Controle da Cussum
- Grafico de Controle da Ewma
Carregar
Pacotes
library(dplyr)
library(ggplot2)
library(qcc)
library(SixSigma)
#library(qualityTools)
#library(fdth)
library(IQCC)
library(MSQC)
library(spc)
Usando o
pacote qcc (Quality control chart)
Argumentos
do Pacote
- cause : uma lista de causas e ramos fornecendo
rótulos descritivos.
- effect : um rótulo de string ou o efeito.
- title : uma string especificando o titulo principal
para aparecer no diagrama
- cex : um vetor de valores para a expansão gráfica
do personagem. Os valores referem-se, pela ordem, aos RAMOS, CAUSA e
EFEITOS.
- font : um vetor de valores para a fonte, os valores
referem-se, pela ordem, aos ramos, causas e efeitos.
Diagrama de
Ishikawa Tradicional
cause.and.effect(cause = list(Medida = c("Afericao","Acompanhamento","Indicador"),
Material = c("Qualidade","Padronizacao","Entrega"),
Pessoas = c("Comunicacao","Disciplina","Criatividade"),
Ambiente = c("Calor","Frio","Espaco"),
Metodo = c("Procedimentos","Etapas","Manuais"),
Maquina = c("Equipamentos","Ferramentas","Instrumentos")),
effect = c("Reducao/Aumento/Defeitos"),
title = "Diagrama de Causa e Efeito",
cex = c(1,1,1),
font = c(2,2,2))

LS0tDQp0aXRsZTogIioqQ29udHJvbGUgRXN0YXTDrXN0aWNvIGRhIFF1YWxpZGFkZSBubyBSOiB1bSBHdWlhIFByw6F0aWNvKioiDQphdXRob3I6DQotIG5hbWU6IE3DoXJpbyBEaWVnbyBWYWxlbnRlDQotIG5hbWU6IENhcmxvcyBQYWl4w6NvDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy50aW1lKCksICclZCAlQiwgJVknKWAiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIGhpZ2hsaWdodDogdGV4dG1hdGUNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIHRoZW1lOiBjZXJ1bGVhbg0KICAgIHRvYzogeWVzDQogICAgdG9jX2RlcHRoOiA2DQogICAgdG9jX2Zsb2F0Og0KICAgICAgY29sbGFwc2VkOiB5ZXMNCiAgICAgIHNtb290aF9zY3JvbGw6IHllcw0KICAgIGtlZXBfbWQ6IHllcw0KICBwZGZfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZGVwdGg6ICc2Jw0KaW5zdGl0dXRlOg0KYWJzdHJhY3Q6ICIuIg0KLS0tDQoNCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KDQoNCg0KYGBgez1odG1sfQ0KPHN0eWxlPg0KYm9keXt0ZXh0LWFsaWduOiBqdXN0aWZ5fQ0KPC9zdHlsZT4NCmBgYA0KDQoNCjo6OiBwcm9ncmVzcw0KOjo6IHsucHJvZ3Jlc3MtYmFyIHN0eWxlPSJ3aWR0aDogMTAwJTsifQ0KOjo6DQo6OjoNCg0KDQojICoqQ29udHJvbGUgRXN0YXTDrXN0aWNvIGRhIFF1YWxpZGFkZSoqDQojIyAqKkludHJvZHXDp8OjbyoqDQoNCg0KT3MgbcOJdG9kb3MgZXN0YXTDjXN0aWNvcyBjYWRhIHZleiBtYWlzIHbDim0gc2VuZG8gcmVjb25oZWNpZG9zIGNvbW8gdW0gaW1wb3J0YW50ZQ0KaW5zdHJ1bWVudG8gcGFyYSBkaWFnbm9zdGljYXIgZSBvdGltaXphciBhIGdlc3TDg08gZSBvcGVyYcOHw4NPIGRlIGRpdmVyc29zIHNpc3RlbWFzLCBkZXNkZSBvcyBzaXN0ZW1hcyBodW1hbm9zIGFvcyBtYWlzIGNvbXBsZXhvcyBzaXN0ZW1hcyBmw41zaWNvcy4gQXMgYXBsaWNhw6fDtWVzIGRlc3RlcyB2w6ptIGRlc2VtcGVuaGFuZG8gdW0gcGFwZWwgaW1wb3J0YW50ZSBuYSBzb2x1w6fDo28gZGUgbXVpdG9zIHByb2JsZW1hcywgZGEgaW5kdXN0cmlhIGBhIGFncmljdWx0dXJhLCBwYXNzYW5kbyBwZWxvcyBzZXRvcmVzIHNvY2lvLWVjb25vbWljbywgYWRtaW5pc3RyYXRpdm8gZSBkZSBzYcO6ZGUuIEdyYW5kZSBwYXJ0ZSBkYXMgbWFpcyBhdmFuY2FkYXMgcGVzcXVpc2FzIGNpZW50xLFmaWNhcyBlbSBkaXZlcnNhcyBhcmVhcyBkbyBjb25oZWNpbWVudG8gZGVwZW5kZW0gY2FkYSB2ZXogbWFpcyBkb3MgbWV0b2RvcyBlc3RhdMSxc3RpY29zIChSQU1PUywgMjAwMykuDQoNCg0KQSBlcmEgZG8gQ29udHJvbGUgRXN0YXTDrXN0aWNvIGRhIFF1YWxpZGFkZSBzdXJnaXUgbm8gY29udGV4dG8gZGEgU2VndW5kYSBHdWVycmEgTXVuZGlhbCBjb20gYSBhc2NlbnPDo28gZGEgcmV2b2x1w6fDo28gaW5kdXN0cmlhbCBlIGRhIHByb2R1w6fDo28gbWFzc2lmaWNhZGEsIHF1ZSB0b3Jub3UgaW1wcmF0aWPDoXZlbCBpbnNwZWNpb25hciBvcyBtaWxoYXJlcyBkZSBwcm9kdXRvcyBxdWUgc2FpYW0gZGEgbGluaGEgZGUgcHJvZHXDp8Ojby4gQXNzaW0sIGNvbSBvIGNvbnRyb2xlIGVzdGF0w61zdGljbywgc2VyaWEgcG9zc8OtdmVsIHNlbGVjaW9uYXIgY2VydGEgcXVhbnRpZGFkZSBwYXJhIGluc3Blw6fDo28sIG9uZGUgYXMgcHJvcHJpZWRhZGVzIGRlc3NhIGFtb3N0cmEgc2VyaWFtIGVzdGVuZGlkYXMgYSB0b2RvIG8gbG90ZS4NCg0KTyBwaW9uZWlybyBkYSBhcGxpY2HDp8OjbyBkYSBlc3RhdMOtc3RpY2EgYW8gY29udHJvbGUgZGUgcXVhbGlkYWRlIGZvaSAqKldhbHRlUiBBbmRyZXcgU2hld2hhcnQqKiBlbSAxOTI0LCBxdWUgcHJlcGFyb3UgbyBwcmltZWlybyByYXNjdW5obyBkbyBxdWUgdmlyaWEgYSBzZXIgY29uaGVjaWRvIGNvbW8gY2FydGEgZGUgY29udHJvbGUuDQoNCkNvbmNvbWl0YW50ZW1lbnRlLCBkb2lzIGNvbGVnYXMgZGUgU2hld2hhcnQsICoqSGFyb2xkIEYuIERvZGdlKiogZSAqKkhhcnJ5IEcuIFJvbWlnKiosICBkZXNlbnZvbHZlcmFtIHTDqWNuaWNhcyBkZSBhbW9zdHJhZ2VtIGNvbnN0aXR1aW5kbyBvIG7DumNsZW8gZGEgbWFpb3JpYSBkYXMgdMOpY25pY2FzIGVzdGF0w61zdGljYXMgZGUgY29udHJvbGUgZGEgcXVhbGlkYWRlIHF1ZSBzw6NvIHVzYWRhcyBhdMOpIGhvamUuIE5vIGluw61jaW8gbyBwcm9jZXNzbyBmb2kgbGVudG8sIHBvcsOpbSBzZSBhbXBsaW91IGNvbSBvIGFkdmVudG8gZGEgU2VndW5kYSBHdWVycmEgbXVuZGlhbCBjb20gYSBpbmZsdcOqbmNpYSBkYXMgZm9yw6dhcyBhcm1hZGFzIGFtZXJpY2FuYXMuDQoNCg0KDQoNCjo6OiBwcm9ncmVzcw0KOjo6IHsucHJvZ3Jlc3MtYmFyIHN0eWxlPSJ3aWR0aDogMTAwJTsifQ0KOjo6DQo6OjoNCg0KIyMgKipTZXRlIEZlcnJhbWVudGFzIGRhIFF1YWxpZGFkZSoqDQoNCkFzIHNldGUgZmVycmFtZW50YXMgZXN0YXTDrXN0aWNhcyBkZSBxdWFsaWRhZGUgc3VyZ2l1IG5vIEphcMOjbywgbG9nbyBhcMOzcyBvIGZpbmFsIGRhIFNlZ3VuZGEgR3VlcnJhIE11bmRpYWwuIEFzIGVtcHJlc2FzIHByZWNpc2F2YW0gY2FwYWNpdGFyIG3Do28gZGUgb2JyYSBwYXJhIG8gY29udHJvbGUgZGEgcXVhbGlkYWRlLCBtYXMgbsOjbyBlcmEgcG9zc8OtdmVsIGVuc2luYXIgZXN0YXTDrXN0aWNhIHBhcmEgdG9kb3Mgb3MgdHJhYmFsaGFkb3Jlcy4gQ29uY2VudHJhcmFtLCBlbnTDo28sIGVzZm9yw6dvcyBubyB0cmVpbmFtZW50byBkZSBwZXNzb2FzIHBhcmEgZGVzZW5oYXIgZ3LDoWZpY29zIHF1ZSwgZW1ib3JhIHNpbXBsZXMsIHJlc29sdmVzc2VtIGEgbWFpb3IgcGFydGUgZG9zIHByb2JsZW1hcy4gRSBpc3NvIHNlIGNvbXByb3ZvdSB2ZXJkYWRlaXJvLg0KDQpEZXNkZSBlbnTDo28sIG8gdXNvIGRhcyBmZXJyYW1lbnRhcyB0ZW0gc2lkbyBkZSBncmFuZGUgdmFsaWEgcGFyYSBvcyBzaXN0ZW1hcyBkZSBnZXN0w6NvLCBzZW5kbyB1bSBjb25qdW50byBkZSBmZXJyYW1lbnRhcyBlc3RhdMOtc3RpY2FzIGRlIHVzbyBjb25zYWdyYWRvIHBhcmEgbWVsaG9yaWEgZGUgcHJvZHV0b3MsIHNlcnZpw6dvcyBlIHByb2Nlc3Nvcy4NCg0KVHJhZGljaW9uYWxtZW50ZSBzw6NvIDcgYXMgZmVycmFtZW50YXMgZGEgcXVhbGlkYWRlOg0KDQoNCi0gICAxKSBGbHV4b2dyYW1hIChvdSBFc3RyYXRpZmljYWNhbykNCi0gICAyKSBEaWFncmFtYSBkZSBJc2hpa2F3YQ0KLSAgIDMpIEZvbGhhcyBkZSBWZXJpZmljYWNhbyAoY2hlY2sgc2hlZXQpDQotICAgNCkgRGlhZ3JhbWEgZGUgUGFyZXRvDQotICAgNSkgSGlzdG9ncmFtYQ0KLSAgIDYpIERpYWdyYW1hIGRlIERpc3BlcnNhbw0KLSAgIDcpIEdyZGZpY29zIGRlIENvbnRyb2xlDQoNCg0KOjo6IHByb2dyZXNzDQo6Ojogey5wcm9ncmVzcy1iYXIgc3R5bGU9IndpZHRoOiAxMDAlOyJ9DQo6OjoNCjo6Og0KDQoNCg0KIyMgKipEaWFncmEgZGUgSXNoaWthd2EqKg0KDQpPIGRpYWdyYW1hIGRlICoqSXNoaWthd2EqKiwgdGFtYsOpbSBjb25oZWNpZG8gY29tbyBkaWFncmFtYSBkZSAqKkNhdXNhIGUgRWZlaXRvKiosIG91ICoqRGlhZ3JhbWEg4oCcRXNwaW5oYSBkZSBQZWl4ZeKAnSoqIMOpIHVzYWRvIHBhcmEgaWRlbnRpZmljYXIgYXMgY2F1c2FzIGRlIHVtIOKAnHByb2JsZW1h4oCdLiDDiSB1dGlsaXphZG8gcGFyYSBhcHJlc2VudGFyIGEgcmVsYcOnw6NvIGV4aXN0ZW50ZSBlbnRyZSB1bSByZXN1bHRhZG8gZGUgdW0gcHJvY2Vzc28gKGVmZWl0bykgZSBvcyBmYXRvcmVzIChjYXVzYXMpIGRvIHByb2Nlc3NvIHF1ZSwgcG9yIHJhesO1ZXMgdMOpY25pY2FzLCBwb3NzYW0gYWZldGFyIG8gcmVzdWx0YWRvIGNvbnNpZGVyYWRvLg0KDQpPIGRpYWdyYW1hIGZvaSBwcm9wb3N0byBvcmlnaW5hbG1lbnRlIHBlbG8gZW5nZW5oZWlybyBxdcOtbWljbywgKipLYW9ydSBJc2hpa2F3YSoqIGVtIDE5MzQgZSBhcGVyZmVpw6dvYWRvIG5vcyBhbm9zIHNlZ3VpbnRlcy4NCg0KDQpLYW9ydSBuYXNjZXUgZW0gVMOzcXVpbyBlbSAxMyBkZSBqdWxobyBkZSAxOTE1LCBmaWxobyBtYWlzIHZlbGhvIGRlIG9pdG8gZmlsaG9zLCBncmFkdW91LXNlIGVtIFF1w61taWNhIG5hIFVuaXZlcnNpZGFkZSBkZSBUw7NxdWlvIGVtIDE5MzkuIA0KDQpEZSAxOTM5IGEgMTk0MSB0cmFiYWxob3Ugbm8gZXjDqXJjaXRvIGNvbW8gdMOpY25pY28gbmF2YWwsIGVudMOjbyBmb2kgdHJhYmFsaGFyIG5hIOKAnCoqTmlzc2FuIExpcXVpZCBGdWVsIENvbXBhbnkqKuKAnSBhdMOpIDE5NDcuDQoNCg0KDQoNCjo6OiBwcm9ncmVzcw0KOjo6IHsucHJvZ3Jlc3MtYmFyIHN0eWxlPSJ3aWR0aDogMTAwJTsifQ0KOjo6DQo6OjoNCg0KDQoNCiMjICoqRm9saGFzIGRlIFZlcmlmaWNhw6fDo28qKg0KIyMjICoqUGFyYSBRdWUgU2VydmUqKg0KDQotICAgMSkgVGFiZWxhIHBhcmEgY29sZXRhciBlIHJlc3VtaXIgaW5mb3JtYWNvZXMNCi0gICAyKSBDb250YWdlbSBkZSBvY29ycmVuY2lhIGRlIGV2ZW50b3M6IG9jb3JyZW5jaWFzLCBjb25zdWx0YXMsIGZhbGhhcyxkZWZlaXRvcywgbmFvLWNvbmZvcm1pZGFkZXMsIGV0Yw0KLSAgIDMpIEZhY2lsIHV0aWxpemFjYW8sIHZpc3VhbGl6YWNhbyBlIGludGVycHJldGFjYW8NCi0gICA0KSBDb2xldGEgZGUgZGFkb3MgZGUgZm9ybWEgcGFkcm9uaXphZGENCi0gICA1KSBFIHVtIFJlZ2lzdHJvIGRhIFF1YWxpZGFkZSwgcG9ydGFudG8gZGV2ZSBzZXIgZGV2aWRhbWVudGUgaWRlbnRpZmljYWRhLCBkYXRhZGEsIGUgYXNzaW5hZGEgcG9yIHJlc3BvbnPDoXZlbA0KDQoNCiMjIyAqKlBhc3NvcyBQYXJhIEFwbGljYcOnw6NvKioNCg0KLSAgIDEpIEVzY29saGVyIHVtIHRpcG8gZGUgZm9saGEgZGUgdmVyaWZpY2FjYW8gcXVlIHBlcm1pdGUgdW0gZmFjaWwgcHJlZW5jaGltZW50bywgb3JnYW5pemFyIGNvbmZvcm1lIGEgbmVjZXNzaWRhZGUgZGEgb3JnYW5pemHDp8OjbyBvdSBzZXRvciwgbm8gcXVhbCBzZXLDoSBmZWl0YSBhIGNvbGV0YSBkZSBkYWRvcy4NCi0gICAyKSBEZWZpbmlyIGEgcXVhbnRpZGFkZSBkZSBpbmZvcm1hY29lcyBpcmEgY29udGVyIG5vIHByb2JsZW1hL2ZhbGhhcyBvdSBvY29ycmVuY2lhIGUgbyB0YW1hbmhvIGRhIGFtb3N0cmEgZG9zIGRhZG9zDQotICAgMykgRGVjaWRpciBvIGxvY2FsIG91IHNldG9yIG9uZGUgc2Vyw6EgYSBjb2xldGEgZGUgZGFkb3MNCi0gICA0KSBEZXRlcm1pbmFyIGEgZnJlcXXDqm5jaWEgY29tIHF1ZSBzZXLDo28gY29sZXRhZG9zIG9zIGRhZG9zLCBwb2RlIHNlciBkacOhcmlvLCBzZW1hbmFsIG91IG1lbnNhbC4gU2VydmUgcGFyYSB2ZXJpZmljYXIgYSBvY29ycsOqbmNpYSBkdXJhbnRlIHVtIGRldGVybWluYWRvIHBlcsOtb2RvDQotICAgNSkgRGVmaW5pciBxdWVtIGRldmVyw6EgY29sZXRhciBvcyBkYWRvcywgcG9kZXLDoSBzZXIgbyBnZXN0b3IgZG8gc2V0b3IgcXVlIGVzdMOhIHNlbmRvIGNvbGV0YWRvIG9zIGRhZG9zIG91IHN1cGVydmlzb3IgZGlyZXRvIGRvIHNldG9yIG9wZXJhY2lvbmFsOw0KLSAgIDYpIEFwbGljYXIgYSBmb2xoYSBkZSB2ZXJpZmljYWNhbyBhdGluZ2lyIGEgY29sZXRhIGRlbnRybyBkbyBwbGFuZWphZG8uDQoNCg0KOjo6IHByb2dyZXNzDQo6Ojogey5wcm9ncmVzcy1iYXIgc3R5bGU9IndpZHRoOiAxMDAlOyJ9DQo6OjoNCjo6Og0KDQoNCiMjICoqRGlhZ3JhbWEgZGUgUGFyZXRvKioNCg0KTyBkaWFncmFtYSBkZSBQYXJldG8gw6kgdW0gZ3LDoWZpY28gZGUgY29sdW5hcyBxdWUgb3JkZW5hIGFzIGZyZXF1w6puY2lhcyBkYXMgb2NvcnLDqm5jaWFzLCBkYSBtYWlvciBwYXJhIGEgbWVub3IsIHBlcm1pdGluZG8gYSBwcmlvcml6YcOnw6NvIGRvcyBwcm9ibGVtYXMsIHByb2N1cmFuZG8gbGV2YXIgYSBjYWJvIG8gcHJpbmPDrXBpbyBkZSBQYXJldG8gKDgwXCUgZGFzIGNvbnNlcXXDqm5jaWFzIGFkdsOqbSBkZSAyMFwlIGRhcyBjYXVzYXMpLCBpc3RvIMOpLCBow6EgbXVpdG9zIHByb2JsZW1hcyBzZW0gaW1wb3J0w6JuY2lhIGRpYW50ZSBkZSBvdXRyb3MgbWFpcyBncmF2ZXMuDQoNCg0KVW0gZG9zIHBpb25laXJvcyBlbSB0cmFiYWxob3MgbmEgw6FyZWEgZGUgUXVhbGlkYWRlLCAqKkpvc2VwaCBKdXJhbioqLCBlbmNvbnRyb3UgdW0gcGFkcsOjbyBzZW1lbGhhbnRlIGFvIGVuY29udHJhZG8gcG9yIFBhcmV0byBuYSBkaXN0cmlidWnDp8OjbyBkb3MgdGlwb3MgZGUgZGVmZWl0b3MgZGUgY2VydG8gcHJvZHV0by4gQXDDs3MgZGl2ZXJzYXMgYW7DoWxpc2VzLCBlbGUgY2hlZ291IGEgY29uY2x1c8OjbyBkZSBxdWUgZW0gZ3JhbmRlIHBhcnRlIGRhcyBpbmljaWF0aXZhcyBkZSBtZWxob3JpYSwgcG91Y29zIHRpcG9zIGRlIGRlZmVpdG9zIGVyYW0gcmVzcG9uc8OhdmVpcyBwZWxhIG1haW9yaWEgZGFzIHJlamVpw6fDtWVzIChwb3Vjb3Mgdml0YWlzKSwgb3Ugc2VqYSwgODAlIGRvcyBwcm9ibGVtYXMgZGUgcXVhbGlkYWRlIGRlIHVtYSBwZcOnYSBzw6NvIGNhdXNhZG9zIHBvciAyMCUgZG9zIHRpcG9zIGRlIGRlZmVpdG9zLiANCg0KRGEgcmVsYcOnw6NvIGVudHJlIGVzc2VzIGRvaXMgdHJhYmFsaG8gZm9pIGNyaWFkbyBvIGNvbmNlaXRvIGRlIFBhcmV0by4gSm9zZXBoIEp1cmFuIGN1bmhvdSBvIHRlcm1vICoq4oCcR3LDoWZpY28gZGUgUGFyZXRv4oCdKiogbm8gaW7DrWNpbyBkYSBkw6ljYWRhIGRlIDkwLg0KDQoNCg0KOjo6IHByb2dyZXNzDQo6Ojogey5wcm9ncmVzcy1iYXIgc3R5bGU9IndpZHRoOiAxMDAlOyJ9DQo6OjoNCjo6Og0KDQoNCg0KDQojIyAqKkdyYWZpY29zIGRlIENvbnRyb2xlKioNCg0KLSAgIDEpIEdyYWZpY28gZGUgQ29udHJvbGUgZGEgTWVkaWENCi0gICAyKSBHcmFmaWNvIGRlIENvbnRyb2xlIGRhIEFtcGxpdHVkZQ0KLSAgIDMpIEdyYWZpY28gZGUgQ29udHJvbGUgZGEgRGVzdmlvLVBhZHJhbw0KLSAgIDQpIEdyYWZpY28gZGUgQ29udHJvbGUgZGEgTWVkaWEgTW92ZWwNCi0gICA1KSBHcmFmaWNvIGRlIENvbnRyb2xlIGRhIEN1c3N1bQ0KLSAgIDYpIEdyYWZpY28gZGUgQ29udHJvbGUgZGEgRXdtYQ0KDQoNCg0KDQoNCjo6OiBwcm9ncmVzcw0KOjo6IHsucHJvZ3Jlc3MtYmFyIHN0eWxlPSJ3aWR0aDogMTAwJTsifQ0KOjo6DQo6OjoNCg0KDQoNCiMjICoqQ2FycmVnYXIgUGFjb3RlcyoqDQoNCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHFjYykNCmxpYnJhcnkoU2l4U2lnbWEpDQojbGlicmFyeShxdWFsaXR5VG9vbHMpDQojbGlicmFyeShmZHRoKQ0KbGlicmFyeShJUUNDKQ0KbGlicmFyeShNU1FDKQ0KbGlicmFyeShzcGMpDQpgYGANCg0KDQoNCjo6OiBwcm9ncmVzcw0KOjo6IHsucHJvZ3Jlc3MtYmFyIHN0eWxlPSJ3aWR0aDogMTAwJTsifQ0KOjo6DQo6OjoNCg0KDQojIyAqKlVzYW5kbyBvIHBhY290ZSBxY2MgKFF1YWxpdHkgY29udHJvbCBjaGFydCkqKg0KIyMjICoqQXJndW1lbnRvcyBkbyBQYWNvdGUqKg0KDQotICAgMSkgKipjYXVzZSoqIDogdW1hIGxpc3RhIGRlIGNhdXNhcyBlIHJhbW9zIGZvcm5lY2VuZG8gcsOzdHVsb3MgZGVzY3JpdGl2b3MuIA0KLSAgIDIpICoqZWZmZWN0KiogOiB1bSByw7N0dWxvIGRlIHN0cmluZyBvdSBvIGVmZWl0by4NCi0gICAzKSAqKnRpdGxlKiogOiB1bWEgc3RyaW5nIGVzcGVjaWZpY2FuZG8gbyB0aXR1bG8gcHJpbmNpcGFsIHBhcmEgYXBhcmVjZXIgbm8gZGlhZ3JhbWENCi0gICA0KSAqKmNleCoqIDogdW0gdmV0b3IgZGUgdmFsb3JlcyBwYXJhIGEgZXhwYW5zw6NvIGdyw6FmaWNhIGRvIHBlcnNvbmFnZW0uIE9zIHZhbG9yZXMgcmVmZXJlbS1zZSwgcGVsYSBvcmRlbSwgYW9zIFJBTU9TLCBDQVVTQSBlIEVGRUlUT1MuDQotICA1KSAqKmZvbnQqKiA6IHVtIHZldG9yIGRlIHZhbG9yZXMgcGFyYSBhIGZvbnRlLCBvcyB2YWxvcmVzIHJlZmVyZW0tc2UsIHBlbGEgb3JkZW0sIGFvcyByYW1vcywgY2F1c2FzIGUgZWZlaXRvcy4NCg0KDQojIyMgKipEaWFncmFtYSBkZSBJc2hpa2F3YSBUcmFkaWNpb25hbCoqDQoNCmBgYHtyfQ0KY2F1c2UuYW5kLmVmZmVjdChjYXVzZSA9IGxpc3QoTWVkaWRhICAgPSBjKCJBZmVyaWNhbyIsIkFjb21wYW5oYW1lbnRvIiwiSW5kaWNhZG9yIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRlcmlhbCA9IGMoIlF1YWxpZGFkZSIsIlBhZHJvbml6YWNhbyIsIkVudHJlZ2EiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlc3NvYXMgID0gYygiQ29tdW5pY2FjYW8iLCJEaXNjaXBsaW5hIiwiQ3JpYXRpdmlkYWRlIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbWJpZW50ZSA9IGMoIkNhbG9yIiwiRnJpbyIsIkVzcGFjbyIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0b2RvICAgPSBjKCJQcm9jZWRpbWVudG9zIiwiRXRhcGFzIiwiTWFudWFpcyIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFxdWluYSAgPSBjKCJFcXVpcGFtZW50b3MiLCJGZXJyYW1lbnRhcyIsIkluc3RydW1lbnRvcyIpKSwNCiAgICAgICAgICAgICAgICAgZWZmZWN0ID0gYygiUmVkdWNhby9BdW1lbnRvL0RlZmVpdG9zIiksDQogICAgICAgICAgICAgICAgIHRpdGxlICA9ICJEaWFncmFtYSBkZSBDYXVzYSBlIEVmZWl0byIsIA0KICAgICAgICAgICAgICAgICBjZXggICAgPSBjKDEsMSwxKSwgDQogICAgICAgICAgICAgICAgIGZvbnQgID0gYygyLDIsMikpIA0KYGBgDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCiMgKipSZWZlcsOqbmNpYXMgQmlibGlvZ3LDoWZpY2FzKioNCg0KDQotICAgMSkgTWFzb24sIFIuTC4gYW5kIFlvdW5nLCBKLkMuICgyMDAyKSBNdWx0aXZhcmlhdGUgU3RhdGlzdGljYWwgUHJvY2VzcyBDb250cm9sIHdpdGggSW5kdXN0cmlhbCBBcHBsaWNhdGlvbnMsIFNJQU0uIA0KDQotICAgMikgTW9udGdvbWVyeSwgRC5DLiAoMjAwNSkgSW50cm9kdWN0aW9uIHRvIFN0YXRpc3RpY2FsIFF1YWxpdHkgQ29udHJvbCwgNXRoIGVkLiBOZXcgWW9yazogSm9obiBXaWxleSBcJiBTb25zLiANCg0KLSAgIDMpIFJ5YW4sIFQuIFAuICgyMDAwKSwgU3RhdGlzdGljYWwgTWV0aG9kcyBmb3IgUXVhbGl0eSBJbXByb3ZlbWVudCwgMm5kIGVkLiBOZXcgWW9yazogSm9obiBXaWxleSBcJiBTb25zLCBJbmMuIA0KDQotICAgNCkgU2NydWNjYSwgTC4gKDIwMDQpLiBxY2M6IGFuIFIgcGFja2FnZSBmb3IgcXVhbGl0eSBjb250cm9sIGNoYXJ0aW5nIGFuZCBzdGF0aXN0aWNhbCBwcm9jZXNzIGNvbnRyb2wuIFIgTmV3cyA0LzEsIDExLTE3LiANCg0KLSAgNSkgV2V0aGVyaWxsLCBHLkIuIGFuZCBCcm93biwgRC5XLiAoMTk5MSkgU3RhdGlzdGljYWwgUHJvY2VzcyBDb250cm9sLiBOZXcgWW9yazogQ2hhcG1hbiBcJiBIYWxsLg0KDQotICA2KSBBbGxlbiwgVC4gVC4gKDIwMTApIEludHJvZHVjdGlvbiB0byBFbmdpbmVlcmluZyBTdGF0aXN0aWNzIGFuZCBMZWFuIFNpeCBTaWdtYSAtIFN0YXRpc3RpY2FsIFF1YWxpdHkgQ29udHJvbCBhbmQgRGVzaWduIG9mIEV4cGVyaW1lbnRzIGFuZCBTeXN0ZW1zIChTZWNvbmQgRWRpdGlvbiBlZC4pLiBMb25kb246IFNwcmluZ2VyLg0KDQotICA3KSBCb3gsIEcuICgxOTkxKS4gVGVhY2hpbmcgZW5naW5lZXJzIGV4cGVyaW1lbnRhbCBkZXNpZ24gd2l0aCBhIHBhcGVyIGhlbGljb3B0ZXIuIFJlcG9ydCA3NiwgQ2VudGVyIGZvciBRdWFsaXR5IGFuZCBQcm9kdWN0aXZpdHkgSW1wcm92ZW1lbnQuIFVuaXZlcnNpdHkgb2YgV2lzY29uc2luLg0KDQotICA4KSBDYW5vLCBFbWlsaW8gTC4sIE1vZ3VlcnphLCBKYXZpZXIgTS4gYW5kIFJlZGNodWssIEFuZHLDqXMuIDIwMTIuIFNpeCBTaWdtYSB3aXRoIFIuIFN0YXRpc3RpY2FsIEVuZ2luZWVyaW5nIGZvciBQcm9jZXNzIEltcHJvdmVtZW50LCBVc2UgUiEsIHZvbC4gMzYuIFNwcmluZ2VyLCBOZXcgWW9yay4gaHR0cDovL3d3dy5zcHJpbmdlci5jb20vc3RhdGlzdGljcy9ib29rLzk3OC0xLTQ2MTQtMzY1MS01Lg0KDQotICA5KSBDYW5vLCBFbWlsaW8gTC4sIE1vZ3VlcnphLCBKYXZpZXIgTS4gYW5kIFByaWV0byBDb3Jjb2JhLCBBbmRyw6lzLiAyMDE1LiBRdWFsaXR5IENvbnRyb2wgd2l0aCBSLiBBbiBJU08gU3RhbmRhcmRzIGFwcHJvYWNoLCBVc2UgUiEsIFNwcmluZ2VyLCBOZXcgWW9yay4NCg0KDQo6OjogcHJvZ3Jlc3MNCjo6OiB7LnByb2dyZXNzLWJhciBzdHlsZT0id2lkdGg6IDEwMCU7In0NCjo6Og0KOjo6DQo=