diff --git a/app/Main.hs b/app/Main.hs index a1956e6..9c513f6 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -30,4 +30,4 @@ import qualified Day24 import qualified Day25 main :: IO () -main = Day04.main +main = Day05.main diff --git a/input/05.txt b/input/05.txt new file mode 100644 index 0000000..f6988e2 --- /dev/null +++ b/input/05.txt @@ -0,0 +1 @@ +HhOyYomGgQqMewWEoOaAUBblLuzZDtCRrJjAacCqQcThHdUcCuiIJhHNMVvoOmyYhpPHCcQqGgnNfvViIFnxXVvPpxXYRryfYycLlCWKkOoeEiIKkwuUkZybBYBbWwzKcvVhHlLAaCkKCUuXxcWwpWwrYyRPUudDFniIjJINSsnyYHhiaAhHRrvrReEFfVtVvTIHAahiilLNnGgIyYGlLgeEaAkKHhggGnNdDGXMtTmMmaAxQqGgYyLaAdDbBlLlVZzvNAfBbFahHnNfFbBbEeACcaBUyYAnNawWUumMAaRWwTtrzZuQPLTtWtTwQqYylpJpPjHhCcXxEedFfYnBbRrNwWOoDdyFTLltSsfbMmBSXxsJLZzlhHRrHFhHfaXxFfAysSYhtTaHhAGsSgdDZzYykUiIakjXrRxJKAutDdTDdTtHcCuUWwwWaABdMmMCcmDTtbnzZKkBxXbAaNvVwWnAmMUuXxaPpZzJjlLXkMmKxXkPSspKOoiIUuxsOeEoSMYymUZzMmtToODjJaAdCTtZzcublLBgGAeEfQEebbBBqUuFVfoOWwFGgVvwWBbfxXUuBbuUBbWwNnxQqOWwyYgCcGWeEwvViIxXRrorMHhQqqQmLGXxglRKDNnAaAaDnNAadHhNnAalkKLKwWkBAahUGguTtCcHjWwJbVveUuEaATtNQVvjJNnvOjJoVkKOoGsoOSgGgqZrRFeEfzTtmMnAaoSseEtEeTWSuGgUVSKknNkSshlLlLHKkKsJBbjQLlXxKkqvsVvzZWwJIijPpGYxNnGgXxKkXRrVvPdDRfFFfrpaABQqGcCgbxBbXBbgRryYoOqQfdcCDjIsSrRiJFdUuDuUYyPpXxKyTFftFfdPpuUrrRRDylLBMmjJbYPpqQhHgGcCYeEOQqouHhbBUkfFuUGgXxiIjwWJFXxuUpPZVvzgsZzRrdDhnNSsHeECVvckKbBqQPvVpwWSGlxXGgWwYyOorRtToOzZLfcmhHMysSYNnMmpPNnCFfOoKxXfcCnNFFfkyYEeTGHhcCIiCcgtYhqAaQHnNyAkeAaEGgKRriOzKkZyYuwWUMrRmoKLlRWwCcrHhDdwpPWtTkcChHdFfDGQqSaAeElLSszZqQcChhHpPHVdDAavPRwWrpLlxLlgGXnuXxAaXxWwUlBhHVvbUuLlLimDdJjMIebPpBiItTiZzNnIuUrLllLJQTtACcaqQqbBJjjetGgXxTETtEWwZYyYlLHhyaANnoOaVvAtTAjJazNhvAaVHnGJjgeIMmGgVwWvizZbrntTQqNPpDdRmrJjRZzxvVXuMmUMmMhHUvmMoBbOVuFfmMwWJjiIcCBsSgrREePpTdDyYtGEmMEZVvlLSszUueeoOCcJZzjpfhHiXxIyUlLTtuoOxXVSsvxXYvVAaFOiIbBoDMmiIoOkzZKdUuaAYypqQPIkVQtTqvKHEelGgLajJAhaADdRruUPpryYsSfFPpdUQqucxXLlRrCDbBLoOrEBbMOomdDLFfxXLliIVXxUuvXxNnEXxmHhkKMbBrQqvVIiWwRjPpJxXVvOJjjJBbHhNRrdDalLASXddFPpkETteKAOAaoEeafaAGgTFfbBtDVsjJSvFfDQqNkhXSsxUJGwWgWwjJjLBsSbluCcHaAIiMfFmdTtKkaAhlLyYHyYAaOlLoDAPpaaAtVMmvbBTDhHdzfdDyYFZVNDdIAainsSzZstTSnNmMjJMmnNkQqzvVZDdKjJprRPIVFfYyvfFTYyOPpIiwWLlwWosSvVIikKWwvPpVkKtbBOQqPpowWWxXrRwcCdZzCcTAatXxDbBiMmcCAJDdulyYLdDNnoOUsSdDSHhGgOosrRDsSxWwJjacCnNiCYyccCiIkKaHEPpeNnOohAyYOoLEeGgrQqRzZNtTWwDdoLlOtkKTMmCcCcBbjJQqmMYynlMiImBaAklLqQNnKQNXHhcCxIiNZFfXKkxgmMPLlXxjJpGmMWwpvVPYEnWwQqDdkKiIXKkCcxmMGgTtqiIdcCDQCcxAaXNkKHLlFwWflupPUYyxXyYJjRrLRLlMJjQoOLOolCcqmrIizZhmmThHtMMLoOpPIcCileQvmMnNRrEePffFFpYyHhUWwAagUjJufNniIQqOLleEEeoFCcAaeEMEvVepPLlkKsyGEeuUgAaYhHuUNBbEejJnSNsSntyYTvVlLaHhqYyQAqQVuUlLLlGguSsUviImsSkKRrZzIiPpOoIJjKuUioeEFcCAaxXfOIksShHyYVHfFhjJLlvPpFZdDYyBabBAbPpOOjJohYtyYToOsSvwziIZWzrRQqivVIMYGgympPZViIZoOzvvkgGLlKhHKyQqYkmMEeLzZggGwWgGYyGXjJhiIHxUWwXxNaAXmeFfEzZPpMxeECceYyEmMHkKhHRrIeEipeEKkPoOgBbGHhJsSjKkhQxXqavVIkKrUuGgRiAgGQdDqxoOAwWaXLlkGgKyeEaAXxOoZDdMVgGUukHvVhVvFfIfFgBbGirMmRKVgGHLIilhvoObBPaAFfwWTjjBbJJtBbiBJjbESFfFsjDdnNJSmMfKuUdnNmJpPjMDMmAdDycCYaniITyYkKtJzZsSjNCkKfvyYVFzNCcGgPpnZEGmOoOoNnvPpVYyMNncCwWGcCgguUTQqQcCNnqtMmZdDzTWwtXxyYGpPkKpPEMLoOhHGeEgTkKjaAYyiINnAarRYYBbwWQqRroSsCtTcRrOLMyIZwWtTzyuIinNUbUufFOoRrcCBvVjtUuTVviIafcrsSRClnTtNiaAkQUuLlrRjZsSzCcaAZzYnNyVgnOoNkKtOgGbBpgGPbJhbBHPXxFfxXpjhHrRIiBfFBbEVverRXxfFeEaIiAFfoGgnNyjJcCdDhKkIihHZRuUrzHrRYZzYvVOoytTbBTDyYMmyUlLZQoOqzPpRrLloODdutzILlipYyPZkoqxXQOxXfqQpPEoOeFhcCHDqQdWwKrRBYyYybKmMYyksOoZzzZjUNnuJEeuuUUrRSLlkKDdrUuRfFJnNjPgGJjDWsGgSwGgCKkMmcdmIiBbStTsiVvqQIAaYyQBbjcpPCqQAaLlBbVvGoOgJtTkTsSGgtKLlHWwhcCWsBbzMmsSZoOzAaZrRqQJjqYyQCcYVvyHKkksSDdjJjJKERrPWvVyYXxwpGgiIzZZnNzeWwhreEsJFrRjJeqzvVfdjJaADkKwxXUuPbBpRwWOoSsZzrEMjJUuPpRcCOorkKnNuUzZOAaPpOOoowWoPHhgdDhHQqFkjJKftTYywWaqLlKkQdyYSsOGgRrRnEePpYHOSscCimMIEesSzZwWunNUlLbBWwhHlLYyEeNnucCEGgoOxqqQWpPhHpRnNmMroVvnNxXOAhHarRSsCdZzDJWBbTtwwkKPTtsSpvVWwWFfjTBKkbZoOztPOopzZOooOhCcqmWwSsMBcxqQBbCcRryVcrRHhCvReiIlkKLKkwDvVdOoqfbSRqDmhHMVvoOdlLDLqUlLuYYyypSsPQYyIbBirbBRncCRYxQqYycCeESFfsgGMmLlppPWwknNriIpEehpPHHhbBRrcMmCvPmiyYQqIRrMJjpGEegnNiIMmoGgSsmMOXfyYFxGgtTooOrRYWwyoOuUOSsCAHrRrRunhHNUFfLlVvhtTaAsSPpSsEeUusSnTaAfFttxhHXsSTVvrRpOosSPDSsKkQqaAXdBbCcWwGzvViIZiIlLrRuvagGffFVvFAAaVmGIigMUxXwyYyYDdNnxXWepPEpPgWwAaxXEexXFcCcAaVvbBcCfFEwypPPvPpVTQqIioOtpbBYShHxXRrsjJXPZzpxYkqQWHhwtTPpKRryFfstQqoyYjPpJmFxXfnxXxXlRrLzZnNNwWkJjXxvVnnNNyYQjmMJeEgGAaxrRnjJNXvVBbKkTtxJjXUUvVcCAyYWwWdtTDLEcCeHhrAIdDiyWwYaBbaABbqQRlEdJfuUFjJwWjdYSfFsyhlLKDdkxrRXAaPQqfFHRrhyYpZzbjAjiIJUhHedDEuaJoSsMmAaOIcCiYXxkLwWlKdDMmIJjibfJPtTaApjTtlgGfFWwFfxXkGRMmrkKgKLlSsLpPkKYydDuwWTtTZuLeEovVOlBAaIbBEmMsSEebPpORrwWogRrEeLMmJUdDuXTtcCxTtmbBMjSsQqWynrPmMpRJLyNnYkTtKIiFfYSsyyjJRrOoYSsFflkKOoWwiQnNgGNnqLhHlrXCcIiEtTelAaaRrOlLeZzuUrREUuolLcCvVIinNZXtZzkKTLhHlvVKmuUoOIiMUxXukpPlLsofQqXxnNFSyYZzjJXxmuWwUMseEncxXJhSRpshHwXjzZsSJSZBTtgkKbBgpPYfFyYBbRryyYMmyYdDqQyQqiIYoVdDDdlQqbBvnNVdDWeBbEtTHKVvkheRrjJViIzzZZMmvERrwuGOozbIiOohHBZgKkQIiHhqJjpPmxXHTDbBdbLNnlBtyYQlLneXTmMXxwVEevMmWwLlIUutTQqdDOoijvVJIHhimgbBGDzZNndUusSMoOBZzlOoLaAUzZEeuRJjrqQkKdDbJpPjeHhEDFfdoOrRgYyGJZzjzOpPTtWwlbBLlLAaKsSkoKUlLOoEVvItBjJgHhFfiVvIGmMwWaAwPVvCaAcaAILlpPodTtDOYyXyaAYTuUGeETtKkHhPPpkKgCGgygGcCYKvbBrRkYyKVcCkQqPSAaPpdDJjcrRuGPTtpoOxFfXgogHhGuUgJzhHXxZjGVvHhODdLlhHmxUWFvVdDfnNSuUcxXDdxXWYHhsZzSsrRTwWDUYyudoOBbiuUIbzZnNFfBtBViuUIvuUeEeEbbBMmvRrrRzZgGkEeKiAdDauUIEeRrpPbBRrsSVlLhbBHbTtBvVlLDBwUzZuUHWwhuWLwWnPaAyeWTtwLlCCcWwcOcCRwWjiIJryfFBWwbYTtzZESszOZztTUuoGomMbBSAAEerfFRzBaAHhHBbhIXYxXxCchdCcMmRYyafFBbAVzoOZBbnSsNVTTtBxvUuIineEKkGSneGgugGJjUiWwRrGkKgMmbuiIUnmMVPpvpPUuNknRrNKuxXUgwLhHmMlwWgVvXxGWrRGzZhAaHdDEQcCqVvZxXIizEoOfFeOFfoezIiuYyvKkVSsSIXbBxioObBsUgdfFtTEeXlLxTtXDdGjJqtTvVTtdDvyYAafwWZzxXYyUIinNBbunNFVTfFbByYmsSUNoOnzRrqQAtTTtowWqQXxmMTiunNUCcXIixnbBhHNgOLlxyYGYyHhwWhHxXTtdDEeRUuoOrsSlvVlJjYYydViXxTtgGTtQgAGbBgdGVvgDaIivVGijJaAoaAnNlLGgFnEwnzesSDdtTCxXQtMmJjQtxnwWFfqAaQevDdmqQDdlLfFlLdvrRZzTdDAwWaAamujJUwcUOYnoONtlLTxHcChWwzVvqQkcCcCvVheEfFHKnNJuQqUJjzbuhHUBRraAeaxcCuUXAbBNLlphHKUukPnbBbnNjBbJuUNEenuUHhvVgGHhesSEqQCjMmKkJBbcuwWgsSGOokKWwiIUmMWoOwBVvmnXxYBhHbKqygGYxXSsQLyYLRYyRrxXTHzbBZJacyYqQTjJtCmMhjzGgGgdDibRrBhwWfOoFMmHIZsSGgsSJNnhHGgFffBbiIsjJSgpwYyWKkcjJjJOoCKkrRikmMNXxvVEVvTtxjJYEeOyYahJvVxXjwWYoOycCHUufcCnNFWLcClPyisJGgjSIHhtSsTYRJcCjrIDdiLlncwWCXbkKZpQqwWbPpBPGpPgntTxkKVvXGgeLlBqQbCkKUugIiGcNnERtTIAcrRCayYXHhxjJirVvnnNNiAaGUugINqQKDdkKUukrRbBtTNnVvVvIistTJjSBEBbOCPpaHhAcVfFvoCnNchHnNTcCAawWdkKMXeExgGmpXxdDRWAawjoQqMfFmRrOJLoODCcrBbRdGStTvfFQkKqcFfCojXxJeLqGIsSieHhEBUubkPpZzKzZHhNnynNYgtTWtTwdgGrRbBNehiIHEKkneEGpPkKgiIvVIxXAaQqRrxXKUuIiRrkGgUuMmVVZzkKPpvvqxXOoQOoMdzsSaAZzZDcUuCDMmsSmMMmTtdeofFRxMmrRXRrcCkRoOrqQrQqRLSsDdlKVvPgzZVtELDdSslUukKyYeZzxXTiaAIxZJjnZznvsUujxDdXLeXxceEWwCOuCNnALhHlkKJjaCSscCcbOosSVvBDKUCcudDkxVvXfEetTFrcCXxRhHzZrCcCcTtcfFCscCRrRriPGgiIhHOopJwWXxjsSWEewrRdDhBbOoHBbFfKPDdpHhOOPplTJYyjtThHqQdDDddDxkKlLXtlLzvOoNnvfFRihHSCYaXflLdDFhjyYzZJZzJhpoOPtTLFfCclHIijXuAeEaUeKjpPJoOfvVEeFmjdDCcJAZWwZzziIdUEeuQqDyYgjJvVgGnUnenNEggGGlRrLFfXPpHjJZOozNnnclLXxVvCRPprVvHwyoOYWNncoowWAagKkTtGOiIOEwIxXiGgXdDxNCjJKkcTmMOWwTmCmMcJjBGRnNrgbUuFfbBSCcsSsMPpkKzZYySvVkxXClrRnNQqweEBWEiIewjJzTtLlkDTtdBbSiIsSJjkKxXpPnsSYyYyNoOeEeYyAaWrqQSsiIfMPJsSuEexBjJUJjwWFqtjJTLNnlZzghHXxqKktkeEKTrkKUAaOtvVLaoVvwrHhCcTtxXIOofFzoOJjZNdDnFfVvOovVihRrHmtTiIOpeEPRrpzZIgGipxMmXkKPozixXcCfFIgIiiIGcCjWwJZKGmmMqQMmaAAWwIizaAZsSJXTeEtJNnjlKkLqapPCRrmfFMcMuTtECceUyYuYyVDcCRrdteETmsuXxEeUGgbGdDdZYhHZzyzCqQPYyYyXxcCpoEeOQqLlNnRrcvSsiIdVvpIiMIiHGgoIiOrqQRXSsxXxhWwLqQVlFfwXxbRrUuoOBKkbuHpPhztTEeQqkKJjEipPIqTtyYOolRrlLMmUuMkcBUjJMmxtTuUXrRBHPpherREbyeEYIisSRruARrdDmwWMaXxhHIimMBbyoOYaApaAEgGeIiiIpcOoCaqFfVvQZzoTtgGViAPpfFRrEOoRrOoeTyaATtzZzLlcCPpivVIDDLSzZhHxXslsRrSKkaTXxtuUBbOotTwZzWAOSYysZzomMyCcBbYddkKZmMaAbBHhngGmMNSsKwWkgjJUcXxhHHhKkqQGxXgfFCscCSQqMVnNRfEkeIiaqQAERrKZnNzbvpPcyYAPeEqMmdDQvBIzzZZZzVmMTtxXeSsWnNAnKkNEeRraHhfFNQqnnNmQqXyuUYxmxXNqQxXwtTWtNnNnTLlFpPJjfxXwmMWuUPiIgGwVsSvWUQmpxAaXcCPQqzYyeEHhDdgGoOKiIUWCcwufvVFBbRBsSNnJjHhbsqQvVNIXxLlinuiIfFUEefFNncSsUueaAGgAUuQqaYymAaMufNPpCcnlKfFrrFfRRklLrnNRyAgGxXbTFLlfvzBotTOGrTtfFyRGgygGSsYrtTdDfLlFYuUyZzgGHhYysSYCpPKnNkcPpXwWDtXxsSIbEeBkKiTlKkLdqQZpPxXAZzaMZIfBbFvBTCctuvcCVCRoXRrxoOaHhAKdDAaoOXXxcCUNnuteUDoOoOFfdnMPJjEecCWGgnNEwLlnNlUuIFfLliIaAiLOoWnNPpzKkhHVvZuXWEfFvyPPUuppYVeHRmQbtTBjqQtTJpdDPqTQqVvtQVvqGgMpPOAqQaomMWAawNnxXKkIiFbOoBTiIydDYbJjMmvVBbdDmyYGgVvlClLLgTtudXKkxECcBhbPpBdLmlhHdDhUoOuUTtuHXxrRmMLDdlLlXdDVvcvVLlCtxXttTTdXxNntTDrsSRKkJjZgGbMiIfcCFXWwbBrRxkFfKxcCXgcrMmRCoOiwWImVvaApPMNnUMwWfFsSmsSNEYtTZzyLYyMVqQvmlwWsSuUXkAaKzZoPbBVvpCcOHhVzXYyxMmTtqQZUusCcFQRGgLgJtOovOoTNHhnVvEesLNnlSnYCcMmiFfycCNnAaptTmMmMxGHxXhzZgXrRHTzZdxXFfDYyEejJXxTtSsXTpoOOlKWwmIUuiUlSqQCcepsCcFfJGTtzpPGgZTeWwGAWwFbzVvZZlLzIiRrEeIiUuBoOBfFbdDviIjJENbBneUvRsSUuzZkrwmMWrRtvjJSsMbBbBbyYrReETkKwcsbVvBmAaKkEoOeWlLwMRAekmMKsiISRJjQLSslyJjNnVvOAaVvUhAaxXXxHujZIizJfFVsSEWVVvmMhOoVdDHQKkqgGIiNnSDlLIirRzUiYzZZhTtZzPBbEepHPHhOgJjGdDogGpAjADdamMlDzSsmMZkSsZkKbcsStaApXxXxCcPTPBcdDCbKTVvQqtXxwWFTthHotTOBbMmDrYydCFfSsahHAEbNnMoOLMmlXxmbfJevVRbBPPpLvJpPFfLlAzMmQSQPpuUZzqwMmwWWAaAjJhmMHjWwJhHDdbBRcCcCrzGgPpZzZCMmJfhTlJjkDdKbAGsgGyYTtmMSRrZHhYzDdAaGkxvSbPpBMmsVyYAUYylSsoOLlmMCdDrlhsSMmfFHdDgGiPpqqQQICcmtEeJjGglLeElMvxTiVvIIbQHkKjJEeXxGgZzqQiItLEjJsSqQDUuZkKKAabyYuUjJByYkKDdkEAanNeNnkMzDdnNfFGbomMOoJdDaAjOsZzQqZhHLXxllLzZDdzdDRRrrQrRqsXxSIiQMmQqBSsLlPDdNndDpiIoOghHiTuUGqHhHhcNnCQglLxSZzsXjLlOoAaZzkKJIqvvVhHRrQLBbZzFflqDdqQyhsPRIivvNTtiUOouIjCcFLWwlVvJjLlizkKiKkzRrPpVvlPudDUkKRiIpaNgSsTvMjKkWVvVzZOrRovVUuqQsXyYEeOoJaAdDEiWKDqUuQldYyCWwcDkwdAaaJjNnjJxXUuNzihHxXbseEluULPthHTpQqRrpMmfFBbNnPJXxjFJjGgfoOLTtnNlrUuxtTXwWzZkFXxfHCMmchybBYcCXsSAaxlLwWKvVRMmPpiIZzrmMOrvpPbBGjJamMfFQqlLlKnsBbLlmESvUuVqykQqoSsOmxXmeLdrRLWwKswkKWSRwWrkkKhiIJjiGaAdOoDzZJjdDgIyYcSsKkNndDIiuYyUQUuqjJWrRqQwCbBIimMbjVvTtJtcCtgGTPgVvyYFyCckKIoSsPvrRyYbpxYpPtTyXuUAUuoOYyaxXVvDdKLgMOXmOoMZzaSdDPsSkREetTzTZbBuUmJLBbMgHhwWQiIWGkvVKgdDKkicDdCwWbRrTUoOoOjJuJrRjMmMmJjtGuUJAnNaVvZzjEegfFxVvHhXgsvVnNSGgGfCcmMsSFrRlLAIwWiNCcTTtsSQGgqQjJquUPgOGYyEeKkgTvVNbpgiIikjzcVPqdYVvmztTyYtuUGlLgnhHNWwcCzZoOmMemsSwSsYyWsaoOATtlaArKXxkVOovRElLYyemMtbtTVhHveEqQXxBwWDdfOsSXwlxwWbCcKkBnNLfkKtzFyYimnNBEemMbMIlIyYyYyZzszZSOjJcMmCoYiLRPOYyopcCPPpprmMPpfLlNrRnfNMmnxXFnNWIiecCEhHwZYDkmMuIkKDdnNaAHfFwWhVjNnCKhHvkKVvJTtprZRrQQSsqvViMmMUuaWwAmvVLlUuiSHhskFmMAaJjrRMmtTADdlLwRVWBbedDZWhHFVnOHhZFWwKkTEewqZfFYsRhiImMKkdDXxXsSxHhHeHUSsuSsGgHhhVvbBKkikLrgGRlPptyYTKRrIiiWwILUlLuuUkQqKbWweEvgzZGVkRtTQivVXRrxIbBlWwBbNDmnNlLdyYDqMCcQFfiGgIIjJiNpPNnVPfFpvxOWHheEwCcotMmHhTOhHmMoGgsSSlLEerRBbhzTtkKLeEleUuLlrRryFOyYyYuUWwofXtTlTtwLlWeAazGUuAagJvXCcjJGcCgIYyijJETiIteiaAICvvVVXxNXGgxtTcCXUuGRrgNbBFVbOoBLCcwWJkHhICcSqQshHiDJjuTiaADAoObHhByoOtKtTkEehBDdbdDLTtlLbBlpPsvSHWHhfwWqjJQLluMmmMLlUoWTtwIiZzoOboOBTXuUPpGgxWyYSWwxXsKkhpPZzgGBbHwWwtGgFFSXrseESdDEeeVlbBLvteEkKTEymVEevMZzYkQqXxlLjJBgGlaZxdjJmMDAskKUuSeEaXMmoYKjJaArjqfFQMmoNYZzjtIimPpTtMVYyvVvTppPnzrRXxPpaALBbTtVvtKkjJWtsmwWHhuLldGvVgUuaKkptgqfEeFXffFuWXxwWakEaAeKVKiIkvInWwzmIiMsSZxIsSelLwWhLlHnbBZzNYypiIadDiInNEYyeDbBlEjJetVvTfCcbBWwBaxXOowWeEVnNPpDdpYyVvPhzzZjrEeRBbyYzdFFkzZTLlByWkFYyfcKYTiuEePSvrtTIikwWKmJjMBxphHPPpLSsPqQDdpyYKkbhTtHvVXAaEMYbFfQtTlQqfFMmLiIaAqQqBymcDBcCbuUdyuULlZzffJhHjZHhmMlfQqFCciwdpTtVvKkRCcTuZzviuUIrKwYyzUubQrbBwWzyYxoOtqbBMFfhHmEFfvNaRrJrRjYyAatJroMmbBORNMkGZOvVvVoKkGgeEmhHlNmMZznbQOoQiIVvzytTRrAeRrEasYyIiTteESCgGcjJDlLqzZQgGoOdUZzDvTtvVVkcQqCvsEdDcCOQvVqOoHYykKEehAaoeuUeESiDdoTLdsSDlQqkKLltNnJjOUAqtOUunNkKvjTtJKkSaAswwWVveEIXxiQQqkwlLWaAKBdDLlSwWlvQqVMmwAAagGaZzWjJDdUgJjGNPpniIHjvNnVzWZrCmMzZpPctTrSsAaRBbbcCcSsPkKPpCccxyXvVtSXrMTtOTGlLxXsNnSXyYNdwsVvNGMnNYymuUMmgKkIiAGgaAyYOpPoIiBbKJjkudDWwWwLuDdUUuQqsSBFoOAPpjtTJXtYyTuaDUAzZzfKyCEecCsQqAoOIiOybZzwtTKfFFfxXMkKSsXiIcfFCsIjJGjmdDMqQPiIpJlgBBxXhHLlLLlpPWwVKKEtTOoDqdDQFeEPpfDdjoOhHJoDAVzZZXTGgtWwnLMaQqHhAoIiOBxXSxXcxzZFVvfHxXqGaAEeDTFfOidDyYjJIWwoOyYDdolLtpPiEbLlvyYgUIiFfCLlcRLlDUuHAahsflLHgWetEJjLTtWwPpkmqjJLlszZKkUurfVvTuUzZtCcFmMGVXxaHOXGgnMmPHhpNnNeIdDiCAaBbJjwWtqQozZcCOoOTdDLPpXVvxltTQPfFOogIihKkHjuUJTtBbQwYxpPbxXLlyYBdDMOcCoWwdONnJjYyAaoiTtrsPpSTttBhHtfFGghYOhHMYymBJjNnsSOvVVYyuZSsHeEhlMmeELCIicYYylvEeVUuNqQSsfFsJjIiSAaqcXxCsjJClJjLvgKbYytTAdDJfFlLabhqFFffgGMmYyEeHRrhjKUCcHhuagGrRAzZvVhpZzVvbkeESsmMbeOoHBEqQlLsRrjOonNDfFQqCcnLlNzZBbZFfzZzMmwwWXxvrcCuUUuBMmFaSsmDdPGgnNTtcCpZDdWweOoEzmMRzsrIiRzZmMhgSshMmzZryYOowYyeEZzWabBrCcZyYzQqQoFFcCnNQqIiffdKkDIiWwaAdDIioOSlLsAaOAYVwTtWVlLvtTTtBoOgGbTtuIiUvWrnNgpaNvpTtQHlTGgXxnNunMWZgGMmrxXmMqQKkFKlLkeEfczZQqCsSwoOWOhbFfmBbGgMOyYLLkKlpmjJkKDRxPpzXXzZgvLqQNnlVNBVvbnFZzTVgsSGyYLHhmJCCkiIWwOoAaoJjzZvVOsSjfyzZBbnHhNUuZbnNeLlEBWwVvKkUujSYysKuUkVvPpssHXLtxFfXaASsxAjJaXyRrGgOoZzgUzZDdWQqlzaAZDdEuUZzqQnjJNeZIirVeuyYUEhfoOFBbLwWRHSsaAKkhtTJbBjcCPpEJjFferlZzuUgxFDdfMmuUxBbIvVSsiQqXFfRtTqSBqQRrXwHyDuUdIRQqWwiISfQqMzOoZNnjPWwYyZCczaAaAkHxjJIrRWlLwiFfriGwdpPDiIAbIiENfFnIiKktlSXxsLKkzlUWwWvVXxlLwiIuxpZzPXCcoHhYyFfuUjSwWMuYyHfwHFXxfhYywdkVvyYDDFiZegTtBjOoGFfDtYrRHhygGTtToFnNzBbZKknFmMfAaGghHaARyqmMthSehHMmEnBbhkZzdqQAgGssSPvjJVBbOhPpHeEcEeCqXSxsVSDCuUqQcCFfpXxnoEevxfFXUmAaHhMnwWGeQxovVGgOxXIikmMKJjnNYjrROycCaChHhQcCpaPdgGDUzpEBkKwWLGgNnlbyYptTzlLZqQbOmbBNnrMmRMSCTtlbYyyXxAMLlLlbKkuTtiIjJuUTtvpPWwhgZzwUueWwULlxXwKUukWfzmaACrRGCMmfFHhnNNnNncCcNsSoOIiNrRnndDXNnpPpPiTTaAtJlLjcaAIiBovrmMRQqGgWbBItPpAaEuLljJkhHJPoAaOIidcCduUmMcClLDDGQpPqKtTIHzZIiDmjJAUuaKSskRLyYCcBwyoOBxXyQXlLxXmMGJjgcWzZqQCczZrRuUWwSHhzZsApcDdCOoNndfrRtpAPpanfFdDNTtHhHuUHdDhhLlPMDtXxTdzZHVqQIFWwUPpMDLloJRrhxLZKEeGgkzezZEyBqQqQUuBiIiMmjKkVbIiBoOlLGgZdDzeaWwZbBzAkKGcClLjJcOoAJgmMZamMpJjeLZzbBBdwRJbwEeWxumBbhHsSZzRrAaNhTUudDlLnOYGgyVgWwGkJjWEKmkKPXxBbpVvbhHwWAoJjgGaDZzuZMToOtJjpDRrvVZzfFNFJqIiyYWwQDEeHxzUdDuZBRbNVUugGORrFsSfOybBYRrAaofxZpyeEBfEDdswWfhkjVvJkKZkXvAvFiaAIEelqKkvVKkqWwQHhQpOoPgGXaArHhzHhkFfAZzmfbDjJtvbBVoZcVnqLEelrRWCcdDBIlLiIRleiJjvCMiWwcCAayWPUCxTbNnZkCceECcBbVNnvAdDdQqSMBbVvUuftiIsiOopoyjrRAaMdDmJYTmMVMrRmcqQNnsSCmjJEcSsqQFGNCjBbGgyYsQqSPXwFfaOgRzZrXxDdnNJsSlWpPTDdtrqxmzDiIUuFVvkKuUfaCrRzVvZLlRHhVzZGDVgiQRrawKHhIxnNxPhHSifFXxwdnNOolKkEmuUlfFYNMIOmMJjjnNDdPtTQqpSdgGDDrRdFfsZKqQJjtTvVkhobBOqeEJjqQzyYMRxXxFflLFfZzNnXxXgZaufFPLYGcxxXXshYlVRrHhwiIWYJSsMmjiIlUhPpUTtuCcKkCzZMHNuXxtBeEAauHhXxUuLuUlwWgvVICcXLlwWyYUeEeElLuaAxiqQMmhonNOkEenZrcCVVNnvaWwCHhdDcLljwWqQSsJqQPEFgGMnNYqSKkdjhuUHwWAaYnpkKoQhHhwWBkIQvpPVmMxFfdDMMmcCkKHhuUyYcCPAaTtcCPjtVQUyYiIqtjJyYvWwVgGNCcIDptpJRrIiTlGgLSfBwmMPpzZYDFfmzZxUuXzZyYIPyqmfZCczefFbBEQqnNFfFGgTtQqkKMgZlLTsVvGgecGZzmMjKklbBDMmBwvVBbXVvxWSgGsYybKHhEeBbiqQbuuUUXiPlLpzDpWHaAFrLlZzvVRZAaviwSsaAiIpcCPzeEZWIVzrTAayYDdRrNnVbNCDbQqBseyYBbGgJygPploqTRrApoOnMXxSzaALlZHhoOrMbVcCiVvCRjjILhMmpCcLlyMmYoMmlRXxGgrEIrRiWegGRvVgGcCApPEZImMYZzSrUQqdDuRUuXuUrEIieRHlLhwWZrLlbBRgMGxXmysSvVWcHXxhCLlwiIYrRrRaZugiItpPXILyYlKNnQqgGbBxWZPJlVvoOcCVhHjJyhHYrBsVxXyWtTDoOJjmWUgWyLazlNnXdDitNnQqTfxXTZpzwWqbjdhbBEDdeEjEBNIiSGksEeSKoOExXPpeVvEerRaLlSsllcCbZzQqRhHrMAamhHXFurRQBbiIpmXxEtdDCcvhHsSpOjJgYcCykKtlJjqQGnNquxNnXLaAGgOoFsSpPDVvdmTCcUuSPHjCctpPTlvVKrRkLhdDbYPZziSsfFIpOWweuUMWwqeEAwWmMjCJtmMTjEuKkVvUehcCHJlaLqYXzZagSsGyHhYrRgGxBbBbPpeEXAUuOKXSpPVvZKkDWeEpPTXGgxsEeSNnsQqegMRrnRvVqHKkhHFsQqlLUCcsSmMuuUUuVatTJNnCcjvItkKNFftTBDRvFfVfFrTtdcQvVjPKkRrFfVpwalLYTJoOLlKWATzZtVDdIiKkNyYIgeETYeEQqyjJTOmDddkKDYyOWUIcxGVNnvpAatBevZRWwbxskKBihrrRqQKkomMORnHhCcXDqZzQmMCsSoOSsypPKKkqtxXdDYyvVAahQqrsSLlZAeELJjlXZtTkTtKsjvVOoJwwcnNTmMlLRfdcIWwiRGoOxIigtbDnFfnWeTtEvpPboOBVRAlOYhHyfSHJdDQkpcCPKKjJQzZqkVuULlvNnlLRWhHdDmaAWwaHhgGmyGgYMLlEekKnbByiIfFwWunDduMmUPBMmbNbBMmRHgGKeEyXJgGXxVQqvJjNnqQugGVvUWwJNnEeTyYtOoenubBHYypPMmbBNnGjJZzZzEeUuJAaMmEevuUVJjlqJjzbBcClkSfFIlLCIoORgzZGkqsSvqrSCcsRNoOnfFZkKzmesSNnSTtiRrHzZzxXZeoOXgGHhAaGFTrOoGgRPpKvVqQVUbXxeEZrFOPpqQoJjobBBEruBbUsSQqSCcsXxZTtzruUmmdDMZsScCWDdwULPcPpCSssQhSsHDdgGhHlLUuxYMmYMfMoLGVmMvgTmZzOtbBBbAaIHhLmfFWhbxXBmdDktTKVzGKKoOkRfEefdDfFFMmqQJKOokqpbHgGhydPEWweuUGgoaHyYJMmzZjuDmMGFfhvVbaABHEeHHpTtFnNHhmbQIrJfWwuTgUmeMmEMokGgjEeOhYmMMloOLZiIDdzTZzkScCsWwIcCxXEeDqQPoVvwKtYyTKtTRroXxGUGqQgOjLluwWTkgGmxXhaAHMuXFXQUudqaXWwqgGmhHvGgVwReETtrbYdqQyYOLTurRhHtTeSsEUtRlGgtTFdSNnvVPBFNneWwWrhsbbtTnxAaXZwjgGsvVFTtxmMLkKLliIPtPRrpTsVVgUTMmtytTKkduUDiICAaQFHBbhEcWKXZesolBbLFfhAMmaUuQqUDdNnPpDdDsjsbhtFWwfTHrPBbkKpROoBuUSpPEexQSiqmEeMmCZmMHsShRrzcCWwYNyyYYcXxCJeELQVhNxXuEetmMAaMmTCcjVvscnNCOhSsJXxqeoxXnVvCcNOdOoecauPpbBgAiIoOrooiIsHMTtmVvJjPVvQWEsSeFGgpPfxRrjatgGTcKsJjJjCvqtrRnNeEiXmMPpGrRtTthHTnwWeUuAaVmPATJjmFfxAwDmodynNYhTUfwWFuQqSYyWFvVfKkxTiOoItQqZZzJjTzbglGglEnItTHhOMrRVvVvcSJjhCWcSslmMyYLJjSBFfvVKCcJbBzXxZtTYoOyjJjZzJjMSUuwLDddXxepNnPsTtSNnrpCiAAaaUuDdWKbBdDkAaJdeVVJrRjJjTtfAaFxXibBYyIECcXxeKthHBuUbFqhWwHzDdWwVgTtpUuPCwWmMIRBkcCiJUNUunlLupVvyYoMSsNlzfgGkdwoqQOSxsSXsYeEcTtcCHhgGCzZaKXfFsgvVzIzwfRIJjieEGRcCzZrwlVvLyYaZqQTGgCchHucCQETthHyYtTHhLlYbOoSsjJVlZzXVvYyfFxJjXmcrLlXBdioOBbDdmhusSsEgQOBbjJoOhHxuUEaFjJdDNnCcEFJodDcCIkKSLcMmsSbYygvZzaiIAPpwcCWsSQoOubEzBtXxTZCnLsnQqNSlXUcCDZzenHhMmOopPEeYIiHGFfhHXyRtTknNWBbOTjJChVvQqrRXrDAabBgyCcJXqXVcCkBbKDVwWvdDRroODdVvGgNfFMXbgGBSsxSGgsLAwWsSaAioOXiwgGUuWTjJtSsPpPGtTXxcisSIyYDUuvBbrIinkVQqxHJjhXxeBXMmPqXoOlYypMiImZmMYeEXpPtTWwxGhHLlMWkKwKkSsxURhIGgwaAWfSkMiIJjDdoESsvVegGkTHiUNxXnNhHeEbBOJOslVvCcDdQqlLeyYeXxDdTRriIVwEnTAatBhVAavHKkgVXxomMOaAaAiqQyYMdDsRlIybBYikoPkKOtbhQqaFfOsRsSurIZzRCcyYMkVmEfjJFhHiRriIOoEkzjPXxuGgQeIiJxcCXcynmMNCcUybbvVGgrSZVvGgBbcVvCZAaniYSoOXxmUuCdewSfOQWuUJjJnNjpxXCOomAneEZyYzFfNarvsYySsSSFfUnNOovJjbBVuslUuLyYnoQNniIpPtMtTdDlXVduUpPoOgGMmWwzZFfjJKHhfFkgGeELlDMJZzFyGgYzQTrTtKkrRkKNwTFftZcPzZLvEevYCsKkKlXzgGtTMmMwWsSmSjDdtTOadDAoRRVCzXxZEVzZJQvqMqQmipsCcSUuOhHHhfFOoIiOYmwgGPnNpSsoEelLXxKVuUvELlYuUyecVvxxXXJjqLlGgRMmKjJkrXxXGLJVvwQqwlLwcCkUUuOioreEWwwWrRRdlFeEalLwPWwhaAXfFThZvVAaUuIiRrzuyZUuSOogjIKkvgGVFfipPvViIpPKyYUukhHFfzgGWwZyDEedjwWZzlLRGgFdDfEXKAvjJyYoGgIpcVvxXAMmaqQACJdDhHcbBZpsSsNLMALlevpmMXVvxkgeEekKYybBonuBbuUmpDdAsyYkKoOSaxBFkxXzUuZqGZJeEjuOUpPfFuYyoBbMmUjnNdDJZxGgJPoqGoFTtdDIopkVkagczZIdDiQEeqEeSVCsYyxxoOvVnJjdDrRNXXGglLCcWwSQaAeEqUWBbSszAmYyNlLCMmPaOuUCgaEayEoOysQXxlndqlJjXxgGKeExIPgTtZsSWwzIXtOogGdDTxMPpmqKWwbkKPpoFfceyxXYEPeEpqnxXGwCHhcbgdlLHGasStsZvVYyCcmMXPxoOtVBDHhYVvtkZkzZPpjJXRZLlzuUmRIiKXvNyDCIicnlbBdDdDNkEYyOwNnWkBVCZMmzHkRrDqQdFfAaHXxwgmHKkCbZbfFbduzCmtXqQoPOoXBOFfoceVRKkpPgSdadFfXBbHWwhVRrBbrRMSsPptTAaAEIilLeRGguxXbBvIiTBdvYiLKLlLGgwhYyHikKXxIWRopPdDBNKxcrRgGpJMywHhXxYeEkKIiowWFsuUyYEAYpFGgSspMcoJjOQYyqYmMyjJuUOhjEklMmulLGgNnPpaAnuUNUuSOFfoaAsDNGIiYyoCkKruFKippiIoOjUJHhjFfCcYyUKkkohkKuUjyNXmDdMxPqEeEfFkvVkuaAyYRNCxXclayYlLyXPvvVaAmMmTJBbsSkKArqRsqJjEUwWOomNnmMmkQqVvkSsKPpKkJjtgGTKAHhUTtuuKeEkckOwWfFRrMjMmlGgLYSstNnTyRQqrfltpPTEDderTpPjTQJjuoZwWzOytTuxwWoSsOgGPlLOovVhHHLOnFofEeFONhhHvVHnDdpPIwoJPpPpgzluUyUNnIuPpVVHqieEYyNaozZYHrRflUOoWwnBcCbNjEwdEGzUgGuZqYeERSsPPIOoZzCHLAafWwmbBRrzZaApjFZRrzfJnGUugJXFPfFlLpqpumhuruURJRrLkTaAtxXGgKllxhlLuXxauUDOoIiiIdAUHnNfeEFOImJjVZzvMifkKFvmcCpBbdDDGgFfmjkoPpOKJBgGbjJtDqifFCcIGjLhHwWSsveoOxXPNiInBUWwIbBzIiNGghMmjJVJKCchmAxhgXhBYGpkuUjIbFhHfAaBHhLYyYyXxxXebBQqeDqYzsSYyvvWMmnNqQfFDpmQqMPHsEeqKOokKkQvtTfcCFJxkfFIiUuYtLPplTlLlnNOVAgGELlDumMNvRrVDzZhLfoOjJlGDWwrRiIDdaAfINniFIaOopkZzgQgGpHhBTkKJvIizWfFwxXFfrRZNNONTeEfRBSYFmmpWwPxXqQuhHWlLPZmsiISpeEPFfPDDUfeRUusGvVgnLKbNIiVvAGmqQMWeEGnIQPpdFQqOofDmGHhBjCMmmaAMcQnNqZgYMmmMgGXDdEIMTdDmMxXMrOoRshcFfWBbYfFZzKaIFgdauWyQtpLlPagXdDyYYMmUDdpwnjBKkmXgoOGeEBbDSkVaAvyTthvbNnBOxpPevVEtCcPpxZGTTWwtBbDyYBqQbRdDkQqJjKrqQcASeRgJotTUXNZzqZrbBteZHWwYYBFDfPpkFfKFdwWIiwcCKLWTZpyYgGoOQqKVfHwWEexKkXmMmCcRslLdAaBiyYxjJhHpPTdiHhAVHJjhtElLrNnJJjUwZVvgGgGWhgGHUuwTRCfbBFgmzytTVDJjdzZHiCAWCcXxOJIitrXBYENbBzjJZnyYStgVfFCcAmMmIzJAUhJeuaApvxwgSsUuZeEzjMqQmCcEeMCcVvkOcFMBbWwBLQnDdevVBQBbvsSXxSDwWzZpOwzadmMmMrMEuLlSsyIiKdDuMmGgluULgvBbApoZzSQJjhjfQZsgGfZzcQeXUCHpicwAaKspPfvDYcCdxXDyFlLRnNDKkdRtTRthSUupAckVckZZzgDdCcyxlOoSsApPZEezAXxyYUuaFDdDaxXAXxXLnNLdmMDsSlYmBbbBRrAbiIKkBqPAtTlXnnNOodDjJGtGgacHmMxoRDLljJbBdreECtTHhcyTMKkEesSKkKFnmMelZzSxXjWHhwJRrwiaHHTzZtYyvWwPEedDYeAayFfYhHUEeQKZzqTtqMmMRlLrpIFfBbiVPEepvvfNnvVGCcZTtzwWsKuUXoOVZNDdnzvQXxwSrRoxXXAYuUyRKkrRsSriIaArRiIxPXHwWatTAnNaAVThdtTJaxkEQhRrUwNYBFfIDnNaxFfsSCSoOjzPaAsXAgGaxSyRrwDRfaALQaAqGqfCcFWuETuUsaAigUKkuQqZRrzlLijpZFGNnwWxErvrphHZfpVvyfJLoCbXxBseApPOxXtCAanxXNcUGfYyFjJRuUriIovVFflLGgaACBbqdDYWvZATbBoOEeycCXXxvhujxlLmMvvhHVcWKjnNJkTBzZblLOHHKknkAaaJCinNINnVHrBoLpPzZifdVvyYDFTuIYyizfRRrNnHhYyePCceEoOsWetoOlLFfCUuIXfPpnNnNafzIHsqaAEesMcsmdmCpvcCIfFqSWTtReErerpwxXSHhsIxGfdVcCvxqfgGRraqgMzZxeEkppRQJjqIirLYnNOoUUuuQYyqwWaACEejOjrdDwtTVYMEeyYbaxyYzeEgKyLwuNbBnUWszZSPLyAXXGgdTxsRYPMUmUxXujmMLlUQWwkKkcCrNkKnFcCGHxbBwhKpDdPzZdnNDkOjJkhnNEeHbBUFCeXxEMZyLyhQqHyYAaAuDdUFnDdNWobNoXxslLeRiwWIrYyltLlUNhZfqpPhHQUxXRrmMiIinqHrUuwpGVjhKzfFhyhmMmMTtRhHsrXxNnRwnNIiUPQMmGUYEGggGdZSJjIrwWHhRoCSZzscOwWSHGgCcsShZzWQcbOoBCqcntVvTnqjpPYySBqQbshhHjgGvKzHhPeEpGgZkDCcrRRFfosSTTvVbxXudfFNPwivNSmBHIiReEviIqmjbxXBxBdDbCcffwWxgGMmrluCcDZLCcoNZsfFsMUyYPNnysSLqQZzWOQqoONGCqLbBYIEeSsixGzVWwYywDRrEoOAwtAEwWeKkNZzZzlwjJpszfLvVrmoDdZpPvVzEVSbxOnNKCchLwAohLaGpBtvVTbbTtBJRFeUaHzNJjnCcSIxAaXblLBMmiZjgDlLNeEVhHgxZiIzXsaAiIGLwnNWgtztknNVvUUOouLMoOBQvKkjQNnqNEfFezEhdUIDdBxfFpUfHIFHuUCnNcgGAkiIQESsegofCcujTIKfFHaZgGlLltTLVjIiCMmqQQXOSsuAKoOugGfFiIQBDTmxXmtFmhHrqQXYyKHfFQNCqtTqJSdXxkTtjvVJIKqmvVveyYCNAMmHhgvkqLFdDrReEZJvXNKklOoNnDRcPpYfSyNnvBlQHjXuVfFdDdnNDhuSsHpPQqhbgaAFfYyTQqAQHhRrNnTlLYsMzfwBDRBBeFkqTteEtuUgzNRXoOxoOXngIWOziNnTtIAVvaHNlNoIiBpPkKrOQiIuULGgmKhpfWCstTVvabPotjJTOpEerROwKXRrkftTyYFIibBYOVdnqQDdROorCCoMfgHEBbeZzQqhFJQqQxGgreExpRrEaGgAnNtTebjSpvVeECcyYDQqIZzKcCETtsnySXxKLlIiHhteTtECZuUzscAWGgkSsKRZzrAdaADwoOmiLhbHXKknNLlMnNsSvdDhHVyRrPReBbSscCTMGgmDwWuLlmMgMjJbQRrXeEGRrEFuhstpPXJSoOkEaTtOoWCCGgfPphXxHRunbjHbBbvebDbekKEsSObhHKjJUOouPlOAaXsXZzLlqQtGghAaBjhnNIemMVGmAaMknbBdrRDjXCnNlLTqQLlohytmsSsfsgGSkTgVvGtUresWwuLTVUOooaPvVfuUUuFfNnuVvUdZzmVDNnCyCcYukKmMUuJJjjBbBInGgIifgcCePphHEvfFYAajJSshQpPqarmQaAdqGfkMevBiIbHWGhHHTtPpvjyYbBbwcCKMAaxXiLqXuUxZzFTRTixbBfgUnPwbijVfFlHbIStTBkfFNeQEeBbXevVExkSZzYyLjikWgGgWoUuBWRreJZYyYyzjnPSyaMmaTtARUurJfLQwWqltEeTuVxTepwlLdDIilLWeEgXxvVGUxYyXuPBbMmEtXQqvoZzSZXcCMmjYyEWdaAiIDEQNdIyaJaDodtEefFuGgWTxWXTtJjxsBbsSrVOoBYEeXKxQLJjLlgEevmOoeEpazNqrXxWXvMwaAbDOoRpIVPAapUINncCiDduviXabBxXvWwcCdHhHQKbGgiPZmOokKeEJbuwPpjthHndxlBeLZCrRNQqrRGgwWnKkfDdNArRKkDXoOVzNDAANgbeEeVBwzZIKeVCOgGoRXxrwbihtJjocCVLssUpnXPpxyfuUjnNJgaJKkEbzjqQvfFjsNLgzvVCgGtCzxAaXZycrTocmTtMwWhYUcqQeBbtPpCfnSmqbCIqoOSkXblCcpZzKSsHHcJjCmMuXgBbPpXQqxqtToLiIlNugGULlimxcbBCXxPSspGmHYCckIchHhxXfZaJjAYyzqAQWZzwWweerCzvegoOOVwWiICcpmaXyPLsUpADdGgLfFpPZJMsYJnNtCRTKknlWnDdGARHDKVWneCIVeEcBbCtoSRulLwIiWtTuTGEGGXgOcTtCnNwVDdjJaATKktbBunPpNtinJjWwvHcCgGPGhKyYDHhdFTOovdNSdnvLLlpsNnXxSewWvPmtNnjpzTpPzCVAGZWPpwLlwQfFHNlLruKLOogNrRnqDzpmwzhAzZoSsROzZmnGgyYFZLdDFIpiIPifnNiIqQSlLymfCcvVFMYyHxHDdmcCMLBbRSFfJejJEXqTtgGSsQxWwzyjlPpLXxNesSERlPmVcnNBPpbzZcClLDvlULkAaKluDalaJDZxdLkoOLagGeEHlzZgsSLHWJjNStlpeBbEPLOolvjwdtlLfFIsaABykgGidrRDxXIUNyKeEwiYLllxXUFuUijrgoKkZGDdCkDdmKkMLlncQrqLlJjIJXxjIHPxXUMNwWPpEOoeIicGgCPPpbHZGPaHSQqshnaAzPfBbXlLjMJWfFLlfFqQsSwjjJVvTXpRrBAabPMmILjyWeEfFEXxDrRIuWAawwbiIAaBWUAPgGhOoPrgdXsSdIiFfUPGWhPDKhDrQdDaCJjcDdcCQqKkoPpKwuULRxavkPZzbBRFFUXxSxIikpxXbooONdoODgYyZaqeqhHqfFiLWqrRQSrovVORluUqOReEVjOQqpPUTDdVvOoGSGlGWwEjteEkKtfYVvcCRrdKkviIebYkKmMLlljXXAqQapSbGGDYyoOaOtXxnDwWdNsSLcLlLLfFcCFfPgLYyDdtVGJjrRlVrahAaHAzPpZeEajJsvjJYBcmhaXxnNbvVMmZBNGokLfPThHXxNZNQLdGMmYGucEWwqQRleVMmqQviDqTGYUWhCclKWWwvVkigPdDtTQayrRYhmMHAaBMmWtTvVNNlfFLaANgGnNLVveBbELVveENnlJkgoAgGHVvrRIinrRNIDRNOodDiIeWCBeRCqQcWDJjuvVjKZzyYkaGgApmqXHTtEeephHeyCJKkcKlLksSNnCFOpMPUUlBtLKMhPdyOvVbRJnvjEnQaXATvYyVFlqQvqETteGbKcBfnxXHhlDaksYBSsbEYUeEpPvORroVkEovKtHYyCVvbBXiILfFuoiazZPPJiwzZWvFfVguVNYyvNRCcgLXxNzZXxniODdgGcCRrircyIeaAaHgGUYyFfvpPVHPpsBtHHmMIijkgsKQqJufFQqfsjzyIYkoOuVOgGemXmMyTtSnmMspFfxHuUPNPpohVpRQWkmsSgGAfUrsPNnfnNEIidaRFyxxNnDuyhYnNyUFAyaAbBxXxLveEOofbPMREsepFfPSAnCccxLAKUDaaAAedDYecRuUtlSLRiwXgaYUuUrRuXsbtMoOrXzsSAaZDjJCbWwuOojTlLkKtdmMcwBKhKkWoOQUvDlwaXxNeEXpFLrdVJERNzZeqQQNXnUkCuakKEesSAZzwIiPpNhHoEZzuMrRKkrvsJhQqqOoFZmYjJylJjLuTYixXIVvMlZPcDPtTnYKsbBjPrLTuUtljDkuTtBbUtilUnQqIutTogUunyVvYNOAyktVvhHiANMqsSxXkgmTLVAmMdQqEeESDlyYJjtOoWvRiIOsSrRcCKXlbBoTgGquUUViIJjivbuUuUMgSsNhLvoOjduSOogUjLptFOofTdbXkWsSUNnBfMmFykHaAhLHhlrUZzAckpyYeEzxFfkbsSBMuUrVjrRHhQqJvnJjNXxvzUcCLldnibVijLAbBvLiMSLclLkKJjNncCOSlGisnouutrWhHVveffQIirRWwBOoPufFXVvvUuJjQBtTkwWKOLaAXaiIiIRKjNJjoOsLBbKFfkjmefYyFNrVvbBMsRuUfpXbHKNaAnNKkMMXlwWAaSshHDdjLvYyRyYIiExFfyvRixXLlGfFczLlIzZSntTWvVcFcFfShQqHsULamWRQRuUZCOmoOdSpPstErtTVsSCJYYypsCcHhUeVPKwDdnLfFveDOoWciIfrRhzZHtTsRizZQJeWlLwoJMOtaCcrEeIerEtXHRAcVCNFZfHUVoOKkvcYAZrDUfuzsozZOSZpcoOEkoOLlfFiUohHUTtfjLqlYydVzmJxXrJfpDjJYyPoMGgjJhHzgJfFXGoOgtYyiOcCzhMPpWQCcqjLlTtagGmMuHjejvVJVvEJhBZuwaaAQBPpqtTaRvuyegGqQEBbrAYHhhvVuLyYMhdAZwWMmfMwWLlPSsaaAIiBaCqHFZZOIfLuUOyeEriouckUgvVFfdoYCYkySsYKygGlLgmmMSXxsBJSJjopPOswKkVcIcxXifFIKpRrPLFFfxxHEehwWEjLIiAxIOtTWPVvvUVkNnERwAopbpBjwxaPpIMUoOuTLRqLmpzZPfaXnKnftTMPNJjnVvGVvUHSVLlWHhmfeEFMYFofhHFGiIgDdbbBBSeBHhSsbpZhyivQCSscaeEAUvpPVFhvMmjZXLeElHnveanQdDrVpnZKifKkvVqFzZHLNrBQeEMmqTEpNpHhnNHiTtDPVmNkIikKimydDYOoMIttTtkKgwtPqzSTAJwCFwxXjeCdUuUDdufhxtTLBdfnBGSzZsgDxwWXXrxvcZYdcxXudDZlAruUBPsSeEPJfgGazBpFwvsmYyMjFRQYIcoKKmNnxXQgUwsxnNTXxjtPZzNajIXVPYAaypvqSGgRrsQSrsSVmYeEwBGwWBTtfGgWwdDlhDdVvJGgjpYXqsebBEAaCzSsjfCcgAKclLKkEPpWfOooTcjhdDkkcVvCCGqWwQgcZzGxXgMZDakKCFTtLCntVvyDzvVVEaVfSEqEEWwQHtlLptLbxXBlwWTxzSHhIvtTJbDdQkXiBNXxRHKFUKcfFAayOoKVxWHVrWkbWwhifFuRPpNnlnTtdoyVKkKpzAaZPoOEslpPLPpZdMmDjFfmztzZZzIiTZTtuiLcIiWoRkKksRjJnvVzZNHMmuGjfQYplBgLlGHhbvVLvVTYyUubWOobpPTtBwBtsRrYgGALyjEPFUMSCxXfBbFqMPzjsAuHUuCYNtffMhHiPpAGrWVOoaAhbyeCctTMmdZPekAeMmJKkPpBHhbgpbAaoGSGhbhaLykpxHResSxXOrIfHjJBbhiTtIJXKnIFbFfBLDsgSsChHbJMUuDcnnZoOXCLayFkbWSwHbniriItGSsemyYcCHhspPmbcQdDSDQtCkKidDuUcgzKXUrRvFfcQhHVyYdXxDkKqQvqClLVfFukVkKvKxkZGCawWAuUIiIcTqsSdssSqCBMSuUHhMEgTjJJjqQbBwWRIxXbBNBqXIGgixQhWxXswBKfYAAQqalcxwWKlLkQqzWwNNCKkdmjBcGSdlcCpPRorRjJOrOofiiINkxjUuHhFiRosSErhZzXPKYlAHBHgsgOsSBPGjEaKEpmMzDXxLaAlFfQqEoOYBhHHBEetTbvoOfFZzwgGRDdgaIeEmFFTnyceEmMYyhUaSJFfZQqpqQmQBbcsuUmufpeJYlaySPyqFJTtWwgaAUhdDiIrShnNHKrOwBbClIUNnKktNoyPpYfFOnTMJzSekvYdDODNLrUfFIdDHBKwAaRvhwXvkKkYCkufkTthrnbzZIuUxKqBjVisZXPGLlglLThqebBeQesFvAevZdYYyTNclQqPpfckKAdzmxXNnQxXgGqKKHJWwCjJtOelLEFtTweWwCkaGCcFoORrJCcoOZYycSQxynNIcCiPcCzZAaHLrRFbgbWyMvyYRsOzZoxiJAnmMpZzTiImMJtXSWuGOoqMkNLlOonkOCsSiDdyjJqrfJSqQVWfPbYyZAFjppbRaLzUaUdDsSuACDIiyzCVXHhRxXKOokuUxdSxXNnsbNFDblXHgGFDcEJBbWfcWjatsZQpTWGTTKnMvpdIsNnSVvhPpPnPetbRnlhfQyYJjFIkzNKkPvVDdNnvRqNAEVNApnNPKkahxzJVHfuqVcCIYHzPeEEsnNOqQfyzZwvsWwhugdDRrpmmMFNkJjNxANQZdvDdVuUDzqAPpapPnCcFMlQpPrltGgdDFfmiAXIiPpWXxrRJbPBPOaWreKvuVpwoOoiXsSaIilJeXXiIpTtPflkCiCvWbTtBmMjlLKkbKkMGcyODfFGuaAKkKCcOoCUUKkuOIwWRYoOofrRqQKkFlEsSuUlLOAaoqQEeeFJjiozzfhQcAbApfFSQqsmFQqzaDnNHmAaGgBtTblUHOoyaRHhYUVrAQbqAWUzbUvVAJcCwmHZtToITlLEelLDdxVvjGLlZbBdDsSmOpdPFjRjMZBbvDLxXQlJFuOPpuIKeJjbBgGIiCPUOoFudRzBbayCkKgGEeuhFzfnjkDdfHhFKJaFoOfxXSsrhxTTteREiIiRATomTtjuUOzZEjqIDJjdrSFYNnjJyCwEgEeGedoOEVrRuUlNWkQCcqzRrZpPpvEuSPyPSspjcvReddDDTRrfFaLHhlADVvoUuOdDMoczrqrwMAluCfCwsSNsBbiZCgvVIrVYXerVlJLlhHAaFfLYyxmmKknkhBxSsPegGbBEFrSmRaVvAnEgGOoMJIijJlZzSnJkruQqnNUqTtTtQAJjxGYyDdglmMobqUuVxUpbqFFEwRTpPUUONSIgLsoDdmJjMkFfKClsmIlValJIvBpAaxXPINDupPCcZVRmbBKJjXZPKCabnNBdDuRKYbuwKxBDPpbBPlZzJsSuGsUDJSsVlHnzZFfxXGmnioOINBPpNgGPrRBbpwWHhnVbBIvYyufbBFQAlLOoatOLxRrWSswkorVwTDdvgEeGVLfpvVPFdseDavltMGKQmnaUuITKHhYacCoGmMOXxAaUiNYyuLIYyTXxKyYdJjJRpJTtSDdkyNpdwWnjJNCpzLTtmytUMzfQHQqgGTtjRrSCRrcVRtTmUwWeOLlnjxXJWIiWwUcKucCMmNxnqhHESsKknrerRjvDRlfPxnOoTtAgGWHcjAaJChLdDdVoObuUBuvVqvMUumoOVecCEwyYHkbWCpNsNnSnPDJaAUBcdxRmTBSxyAfkKFfFgGSsGxgiIGdDWBbhHIrlsLTrCtTEyKJjNnkEIlYyLidQqukalXCNJjasESereJjEEempBFVlXejJEYafuHYUdbBXYcCqQyXnAaNYfDdrAKkofxXFnNOtTDhHejJFpCcSRuFMmaMKqQwqruUeFfRrEPvnNHOPpnphXPSsSKYykNsYxMECcovFfUKyiYZJnNSWwFkKUBbOojkSGKFfEeJhhTbKkSKMmkhvVuhAEiYTtCRjJIcJjVyYvCoMmpPKkIlGrnVnNnvbBUGOouUIjppuUAlLIKkOUlAaxchTkDdVOLleJjKvVuyeySKAGgAadLNTtbCcQqtTBFbCkQSsqBgaAQVLftaxAqNeJVNbBKkjrUuaTtABSsoYDpHmkleETbLyYuupmPofjcYEPESshxhmMgGHQMPJUdDdwrEbcwEtTzZnrdiEehaOGKjlnqQXxnMmnDKkdwIiberZzRCcbBEAqpGIKvVwlLkLHwuygtQdPzZXxpISsEUuTJEejtLreCUgyRMmruUgNfyYFnJjDlqwdSsDWnzntpsSDdFlKOgnbzqQBmMMmIWwiAHMCbyVSAeERPpvLgvTlGpllClToAYyxXcCdgguUtAaTBxXsPqQxxzUuZYSrRDVmkKMvSdDsdsyJLyJjBEVDVvwWyiIFTmMeavVAETJeyYgnNLgsgUutuoJvroQLUuswTtTtlINnQsShHQEQAzGdDnODdBqQIimMPKXsAauffrpKVCqNnQcAXzZrJjlyYWkOPpCcARuUrgGdTtDqRdHkTDdtdpdDHwguZzUpuDzZxoODGNnRpHlLpabBidFfefFQVvqXxwYJlixtGguzZUmJHjJhxBbFqQpZNApAasyRrYRCcrSqQKkgzgGhBpnmucCpnNnJjcCWwNhiiQRqYyCNKcxXgzpPIiOGRJIfuLyIWkYnusSinNItiITKYbcCSiTDWJIiVwWLTsnWwwhlGLhAWOowmMmMlKlDXznaAdDNdjAYyLAdLVMsSmcCdyYCbBvMpLrkKnJYZHhrRDdjsrlhXUuhYsFrRfvVlzfNMorObBaHZWtTMTtPZdQGlkURjJnhqEeEeWOWwozgavtwWTcZtZPJTMRrNnpHhVEPlVNDskLlKnDYyVtCcsSfbBkHgphRrVNnNfFITKkdDUvZnNnNzWYyoGxggegtHhUUrAawTsStbSsBWsOTmMBCZVAavzcbFfvicENwvhHOokdhraXxgNwLNtxivVIIiXraAzZKaAkcBbTjGgySmjzsSlaAaPkOgGorRKcHhCuSlpYxAMPIHhivozZDdGfFHhzSsZyYEyYVZcREEqaQNnFlLEPpeHCKCckiKHRrhnfFNhHyPpYyhMgXMInOvMmVQGxiPpIUhhkCkKcPuULCKkcBmoOhHMAasSMmxKsQjJitTcCcBQMKoOksNFrRcuUTECuTtyHFfCOtRCOAaoLlYxXcgPpiIGTmMcNlLnZGlnLlSYyJNWnNwnVJZlhNnHLLlFfBejAGzZnNFYNPuSSCclvSstTOxaAXTHImjJMBWcvEkiWbvEBdDJMmzqQZjGTtnaadjJbBnYyZvxGgdqQVvanjJfFGgFeEczlEbZwWzLHhXDvyYVxSsXNFFffLBjgGJblOowWTJWUOPpoBjgGMzpIBkqhDVDdAxYyESsykKYeqIiQPrDddBaAWmVxwiIMmRQnZAuqpPQUPseEScCMCcTtVGlqzZXkxSsybvlLvVRTYytSwuUmMjJXtLlwUTDNnGIigOdzZhqQHASABbrRasjAYiDnedDEqeWwweJxzsOXIiAaxUFMmjXcCxAYkKsEepNkKzZTtfFEOowbOaRrAwGTtkKwKcCzDRrdbBZIJlsKxXqErRJjnKbjJjJsiBhLWPpQqwzRrZvJIBWJjpNcCuHhGFRrXOoItrtfQlImkWBOXxoNnJZzVOohgMmTtwFfZzGghqQwWVEmKFvVgQIiDqDpPdMRAHyVGFVvhTtSsHZqQzSqQsrRNedDEibJjUuUcdeEvMDFyYjrRJfXxNnJjZzFpDdyYSsOoaAvVAVUuvOuvtlUSERYnNyNnpPkKunoONTtKFSMTYHvVOHhEetlLSscpPLlCcxJNKAvVaaAgvEieEHlLJXxbPpJmMcCYSsyEejHTxhaAHSxoLpaAkBoRuUrBdHhSsBEgGVBjJhJBNUrKknNxXuSsUFccaAwAMmeyYKIisZkKzjxPpTOozZSHHhUfegQqxqBmGgqQGZzVvUdWwDdlbBLtEJjQXxxXqrpYWwmxhBRrnNHmMeElIMbBEejPpJvVKQqkLlWawaCScTnkKNkKksYNSekBbiddDSOosPqNnQuEeUdDKkpiIPsgGJBPXgGDdRXqjfGNaAeKkBbEpPnFmOccNDvbBoCcyhHKxeEIikWolGgLBAScExXesSwcCrRFdDyYKkPHkMlqoRmMvVbOnbBLvVnhZopPwiwWvVGWwgGuUNsSxrnsSZGpTdDtEesSPTeEwWyYQKfEbOoFfbrdbWFZmSXxyhHtqzZqQasSbBtGBbIiBUHvUJKaAkjxJBbhKkrRqxXLbVYsnNFyCrnNoOdLnxYyLlVjzeEfxXlQKEeZzVGancyYEVMQqQaAvsFfSkKVOokOofFiKsSDsjQQcnoOqhkxbMmBRMJjfTMMcCtdbAaqCPpqQIicWwUzZwWkaUoxhHXxqcIiTtJvzAhkitJUFOGXxqKrRahfCcihFuPXbvVZziuDzZcWiIPpwCHekKZnLlQqMmJVRZzrqyYbyYoMmOmlDduKTZTZzGPpOUuolggGSGvnddDGbBpPCMmcJeEzJcCjsZhAuEpPRvVrfrjWwtPOopcxXCTPgAlHOaGgWlHkNWwDfFDddmMBbnyYoFflHhLmMXiIBsveDdOfFMRlFZSPWLnYyhHUuaTZzYyWaePpdWiIvvVZgXPpylQweEWcgnowlhHYpumSSIizMmjJnTteEOoCcOAalfFfFzdXxUNnLRXFFXWwJMQVrhbMsngCquJHhjUQZzcGVIWyYpnDUgGBQqtbBtCKMmaAkcOxXHJjhrXXxxCcdVFfJHVvJjJIiXxvVQNNCCcwsiiIhsSHszDeymMugqpuWSeErmMHYHZkHJvpPgKkPfmMFWRfKkFhHhZzQNIuFzHnXoOxTtuTLESxXOHhaAnBOwuUsvVSfaYlYzmcfuKoGgHWXhgMJjQHhDdTtqmfRVvFfyYNnKquGgJLlLlMumGgpyrtTQqSXtGgDBbxIiaSsAxaYlpljJeELlNnYdDkGMmZXABmyKkvlbBqQnNLWQqROoJohHJbBlVvLcuUylsnNSPPKXLlKhHkmGQoOAMmcCXxFQXXAaxDFOogXiNnWPREwsQhHiVPcMPXxiIpzZDMSBhHbCmSJjQXxSXyYxhiZJjVQqvFPpNnAFxivVzZXxcWwTGgEwSpEitTINnUurFZUNntIsfFSlObRYyMmhvcjADdTtKhHNMPpmhBbhoxTtXCbBZzctwCViIUumMXJUHVxYtLlaYyzAewWEaVwyFfVvKBbkTtQcOxXguToaESlLcOAjJamMljFYPFzhHPRVReXgfaAzDiIocCOdPWwJLlIWwLNnAaYylWwGsSRrIApPafoUuuBbUOFgGStWweUwQEqQegzZzZGglFruUdWfFoODdYpZJsuUcXAdibynrnNkKRWuHRrqeKXAjxtTXBbDHtvkKhxdDpXPpaxOsWqxkaASgFVPTtaAWFfwOomSsIiQqQlLQkKiIkAaquHhEynNUupmuUMVEeIiTthhAIWsLENfkTtpPmqQIitYRUuTtrmMOXFPpfhCAGTtgFfTgeaAyYukoOKUsMmSzZQqEIiNEaXxMmAWwexLapQaMgFfGFfdDyJjIizZqQFqQXxHhfYAaWwylxGcCWwqQghHVvsSdfWuUwaLXPpYMmFfGzZzKCvjJlLvVGgovkKMLlZzLlmlLVGUugOKCaPsvVuUHTrrjJDiIyYdnfFrRNYyrQYyqfvxXOCcWwoVCcjJdVFSkWCIpPPhcuUuxEqCFgnNjJWwGoOSzqFJHNEenyYqsYyZzToOtOPaVvVGUkYDdckKCuUNnUuUemQqmWwMRDAZWoPNndpPVvsViglLwWGIqbENqlYybuUmUueEfDdkKCbBoKmIiJGWXSsVPOoUJOojEjHuajZqwWQiMacCCcQkKqXxvGYyctTCTseSsybxRtTtTTHyYhjxXtFfToZzYywacIhvCcYVvZMGcrtzNnWuIiUDiIdubBKRrkjRmSXAaxsqQHlLhMeTIivVvaHeEhIDKkbBtXSsoOwWIVvbFfDwWSRrHhdDrMBbWwwWhFvkwWPzLltwLllkWfblLyyhzETRzQnxuOjJjIiGraAvVEsaCSsNndJjVvtgzXTXfFoVHtFfTYKNnsdxMWwbBbJNRraAWPuwWyxOjJoGfFGgsSVvATPpqYwUdLlDADGfzZiAQqkAaywCHSmtmkKiexeEyGzJbgfFMqiNOogeECcGgwganRrBklNSrUuEFuddpsSDdUuMzpmIiKyYkeMjJmEWpiyYIPwMwUAawFaPpAsSfWMMSYysfysbOodzZDrFAatnonPpLVgGvlEenFfVWwjtbNEeLlnPqbRrBGaMmAwWmMKcCRrPAiCcnNbBdgUuLFRrlHgGdnTtveEVbBUdTteBbavVvoGgUuLkKtTZzCcyZzUuKXoObBoOGgjzZVSwWhdeTxXjJsStEwVVDqQcCdZyQtOoTiIDddEEvVlicCMmuUJKPpPDxeEXdgyceECbeiIEHxFfGpPHXagGMFfAayYWjjJJyeEaAUuEeqQYwHkjvHnZiurRZzbpENnOoVlcCJsSgJjlLQdTkKMdOoPaUuAnNMsSVIiofanJnNjMmNNGgnNnAFnNnNIiXLljOoJXDdxLjFfQJjJjqUHMUPoOuUHhQfxjNGTttTgaArRPRrgGcCtTMFlhMEeHhmcjRNnrJippryQEeggGfFeYyaADnNmMWeJQnNqGgOoVvQqurRZZzzSsLFhrRyOAnIQhxXQqvvdDPpUiVvucCYLZGSsjOdDJjWiuUYyfZzsSNollstTSLoOnNhMmpXRkKtqQTrDdUYGgUqtkKFfJtRLbBFwWyYJmaAoKCPpBbUayJjpPcCYMmtTMsbBSMueQBbSrQRJjajtMtTjJVpZzxYALnrUibNnBIAaZzyYKKVXGgxveGzZFfNngpoOPOoQpXsTtSxntTYJHOYyKdDQqPpJjEeuFfnNRJVvjyYrfHhFuJtTSOosPPIkfFfURccCOeEYyGBoOezZEJjTtcCbgkKgdDndxUuXyhHYULKeJHoTuQqkKkKUtqQrRjpPDdmMJCsSlLmPbGgBGgfPyaeSfcCOyMYyYKkymWYyYmjoOPoOCoOXkJyrRYQqFFffNntTjnbdDOmMmVGgvMrlcClLHhklIyVNnDbtXxVMlLmUraNnmvyYNnlLxFfDALlVvDsGwWeErvECiIQyYyhHRrYqIibYybBxpOxIiTMAaEeMdfFDmcZUuUrRDBBzsSdCcDuUBcWwFfhMGWoOhtTDmMOvwWVodKhcvbKoTJlLjteKndDEejJyYfFLNdvVYnVxkGgrGGggMSfFsHhvSsMmbBVNngVvGBOobrxXxBuUUubKzKTydbLlvTXxHIicxXWrRwChXpxYyQqzSTkKAghmzZMDGBWaAuuUGgwWUgeOoNnEsSNzQqXYyMmsSxZbsSBEeMmQegzZGUsSuECOBkQiTtGHSshpOoiXQaRlLrUuAcRrCqEeyqQYkLQDsSoONLEeqSoOYeYFfAeAfFGYycaAHhozZAaAVvpMWYylLrQqGgRwLlLlmYyzZuUuWwUSiIscnMagGZwulGgjJIiLcVvvsAaCGAKpPvKPOifOgQhHOpjlLXwWzsSgGzWNnwgQKflLLlwFwqQWfWbXPuUDdMsSFfMmULlNOENnGBbKsSPcCVEamxXlnSTLltPzCuUjcaxXCPjJiOxXZzVakMmFcCfxVvecFfCHhFfpPrJYWwWwJnHKkMmhdDNGeEszYUDdHtNnxHpWAAafLUuLltTDuUOIouKWWWjlWwgxQrRhHCKkkCcOrRxXWMyooVvPIQVsSYyaAqjveQqQHhqzZcvrMmwWrerREJxXRrsrRZNnxLkSMmcqQOopPyVVlpCzWnnNRtqOoZCtTrKkFfRLNnlYyFfkKNncfjmvxTtmMLmTqQPpqOwWfFNlLVRAaMBbcPvVwIiqoFsWEqQQqDcMsyINZiIzZmBbMSsOozzzsRhHjDdJBBYujJAafFIiFfYdDCJjjgGcCEqUpVCcvPpkKJZKFfeIeEHheMvKFfnNnNvVzZVvmriRUrShHoAHisSIBTtTopOPpBblLwWKLisScCIrSmOoIRrpPvGbNenmMsSNQqWvtSspPESsELSsLuMmEeXxUlSvVojomCcMnNbBnuIhtKvOopXxEePVndDNsSKBhHbkLlEeuUOLUumMlmGggGKsFOoeEiHoOruqQXhHmrRgyzPIiLxQHhQqpkKxbEXZzEcCeQJjbByYqvKNaARqQCcEfFeVdiNnICMuUmqQgyYVvqQpzZVvCcSsIOoxIlOoLaxTtXOomMlmndwWvxmMQxsSjIigGYSIisGZzdROoxHctowKeEBboOrYxgPTtPWwRFfrpqQCcAuUaGgphyJjNEzZVvQqdbrxXRBVvFOnNofuxYdDybFfBNcuUzPpxXbqQZeGgBUqgGSsVGNnWwBSsClsTtOoEeCcmMjJSspQqPiOjfefuULSslAeXEeVvLNkKCcnlZzCnNcoqGLleBpPbSUHMIrRDZzbFfHhBbxRCMRroOFfxLsSoAgGaOhHvBbRrVcCjJKkvpPBMmyeqJjUcCYytzAWvVTtzZgrFWZiZWulLUwEOoeuUbBGSxkAhHQqyWDuUKFZLmgGMnEuUemHhdDOPjIKbdDriruFfyYURUusScWwoOGvmMZeqQEQrRfTklLaxXANnTtrNRgGJjvvmMKkEmMDjnNwIpPcPREDlyDWwdYWsmfXxFwWkvWwVbsCbBwtTcHsvVIiwWxXKkfFCEemoiNeLLGBbTsaAbBSeEtBZtJjzDRrcCdSFfDSDdsxPyYpXdsTtVJjXxvfFdSsDXwsSnNsDdUuJPpCcJUujjtlLHDOMdWaXMMmmMtapMMmvlLkKEmMzZtTgGnNNouCcUOTtCcsSgVVvvMmxOoITQsSVcSkCAJKxXMmkgGXwqkKXxpLlhmMfFSOORaGDdUAhHCEDEQJHrRhjjHoVTtvrRSoOJeFfEUnHFfvqPpRrFfIiljnyEechHdDuUIjCcJisSMGgQAaIsqXJSWwLlWwKkduHOSEzxPpkwCsSDdepPfqcqdDTtDdMmQYuIxXiGvvgDdGSplqQQFCtTzZXxcxXfqXfcCjJaAnUwWupPNSJWzNYyBEeBnSsNSlLHtTXxRrRwElLjJfbfFpYyDjJdyYsHhDbBfYgGyCcfFZzkKLrEelaWwAoDrRrdDAaRyBWdDMDNgGndQVGggGvxAQqQDuUquyYUIixwWfxUAaKtUJiIougOVvQqEekaAzZkkrRrRQtVvUufFrRTqsZzvVSKoOrRWOpdGgWwiKtoAanNOmyHCcoJXxQqxXelLEtgGIiTKOzZuGtUvVHlLhFjRPpiqBMfpPPhIihgXxGgdUhLlJjAOdDpDEqQeYBjJRrPQjqjTtJQwQqWFrSsVWeEwvkuUgZvMHwMlgHhGXARraxXxaAbBeqQEiFfTxXIiIioWqQwgGYyFNFeEfnfnEeNnNMtlOGgmFCdDcmyyXQmMqkKqSpluTtzMRuUUZzuUxXuQpPquUVvxXRxXeUubOzZfRyoOYzrRuUBbBusyYTrGgRtxNnXSvgGwWktfgrRxEzMnNAamxXcyYCZNnhIsEMXxiITtQMpPmRrBCcbynNAaYVQOojtpPTJKIimMmMnNUuricisKWmMwLZQLjpPPpdRbBmMrDYyghqQMmUcCNErRjuUZLlCczuDeEdIADdAjJDdOoaawiIWqsSNjJqWwSsQnQiUjxYkJtTcVvCjeEdDhgGrZzqQSsnpLGglNrRVvIiUYNnTteEyYAdDMGgwrTtAvVaqjMmhqQszpPTtzLhgGHlHhZZFoLaLMmlrJZzjJjwNNdBTGuFfUQqXgnNrlLCDFrtCWWSzDdxayMmYzRZzxXHTQkpPYcdpPxNPpfFWwHIIiMmbmMkKSXBzZrzcPpOoCHhxEeXVMmEbTfFGglLtXxTPMmgHhXCiuxXqQwCcoGeEeEgMJjDdcLLlWwrRlCotjJfdDFGgtKkaAGiKknvaKkwJTtqQoOjkjmMtypPIiJjAWoOPhHxuTsStUXZzvXxkKElLepJLlqCsKkSbcCAShkKHsaEenXxKkTRrBbGgiVtTIiAwWWHhZzwbBviISoOTtIvVUuifvdeEDIiVhdDsSiIAgGTtauUvVQhHeErKzZkTtkKNBbJjmYykKXxGEBbIiStwdzsNnDdxEektTxXPpoxRryQLllALjJemMEjuwWdDUQqctrqwWQRiITJaQmMmEoPpFfyBHJheEpstAaUyYuOoMflsSUGgQVlLvKAaqdDQkQqDVzZvdqQJOowWjgFfvVkKzZLjJTtTsSiIUuGiSsIoPoeEOcCVCcTeMPqdDUPpBbfxxpPhHmMEdDeXOoIigGBrRLLAgshrRHrRSsdDAanbeJeaAHxXclWwLCDJbBBQdDZTtxaAHhfOiIoFxXXPyYztcCFGgIKPRrpDdVwWsuUiIWwSvkFfSsxLZAqQwEeWTTvVtbBtlYwGuWwuUwIiMdwuUYvSbQqRvNnIiLjGgHhpzwXoOkixTGUzRrApIEeiPMHhMmgjJqQzZiIBbmMmGzxZzpPsbByizFfeHhaoOjKkYyEjJeoOJruUEwIieLDdMmnNOIwMmWisSPHlBbhHiQqSHhsJJrdDcgGnNIiIixVvqQXIDdvBmRsmrRNPqQMmwWFfafZzFhjJcCOoHpPuQbBXxqUtQNQqnmuUoONPpnMOLGlUuLkKYjGgdDKkEzjJZXxSdIicnEtTeBtGgXxlLTvNnCSDdsOoctRPpTtfhnNTtHhVXxvwPdJuUjgGHjJhZPBbpIxBgGuxwWXqQXxUIirRJjeEIbBFNnkKfsqQSkfLNnleEFDdDxsSXdNndLcCVvVCcvJQqgCESKksStJjzGmMQEeYpihHSsMSsYylKkLdyWbFpPsNnhHtjjJPTPdiwWxXneESsTjJQuqvnwlLWMmNTIiJpZzpZzmXgGkKPMmiIprRWHhZzwqiKpPbKvVkHqOBkKbPNyAAaaJDEesSsQiITtymfHhenJjnNNpAvDhPpHdbIiBRzjJNKyYHvRrVEeXPpxkFfKTtGUbTUnLlhmcHAaUFfuuLwWQuYyULlqxXTHhmMtcCyLlAaCcrRBbvLzlLMmZyHZzSFlaAJjApPaLfCgxXylpxXUIiLlAtTFfzsWwSGTtOaAoJjrmxXPpBrRbqQhKkuUyYHwWwkKWZQCcUacCDLlfFdcCAutTHznJjeENJeEoimnytTLrRMeOobBLEHhoOeDWGgIspqQXXikgtxXTGWAPpdDYyqSnNsIGvQqdgvrcItTiADdvVdZMXQRmcCMsSPpwLjlLSslLGoALlWxZzjJplDdKkLJPYypcngfwrIiRWOoCeZzqQMXAaxoOMmvtLbOoBlOBbgGPIoEeOvVlFfLTtSerREkKdbBDncCNdDTFjJTtTtmsDatTQqKzBtXcPEeCcpQquwWpJjyYwYImVvcVIELribMdDEekgGKwWmwQNvCzOJjyYTdjJuUyYBFMdDwWaKfFGgoOZRuwWbBuOocCUUIiUuxqQQqLNnfTtmoKkOZzCcMohHOgGVamPpAaMVxKyYtTzOoKpPHFSaSsAWUVvumnNMwoORrvVeYyFDdVAavGgsSLlbYPzXFoSRrsvNnnNnBrcCbtTBbXOobBhmMXxEDdemuUMdjfnxXdAlkKKkLaPmzUdbBIizBJjbeEBbuUdDSsCcZAqQwWOFfFfFfHMmRrpPhQqPPppaFfYyBtcCTwRrWZzMrRkeEewqQQqysSgGYlLqQKvoNjJtjJHjJhVvHjJnsSMUXlLzRLlrTYytdDZVvOozmcCMZBjjJVvHhrWBvVbEeeEDblEuvVUPNnAzuriIrRRjJFfUGjaPAaplaAaxXQqAZzMmBAatTbbBnNLWzLlZwCsSgKLlkEvJIFfbbQqYlXHXxjODkKkKdEeCcyYdxAaXpCcPbrRBoKoOkOMmmubBKkfiKkvhDdmTaAwWfFFUuDPahxXHzZQqOowCxqYEeuAaUbuUYhHWbvVbBipPIlriIMDddhyYiZzvVkKTtkcCgpXxjKdDUeTiZzwVOWPpwbCtdDppbBPPHeEhXxtTICcdDxuUgFJjfcMDdVvfFZFfaAFfFrRvVTUutTtboOuUBuMmWwEogGOWaXxgGAGfFHVIiueEUUBeELllLVvmaYBGgLcsosAaSBqQPePbBZupzTtZzXFfxQqZAPqWwHbBjJjJcdDAYoJyXqzZEgpPQqqxXQNuVqQWwIiVEevQMmqrRYLlLlyOUuKaAbBkmMNPuRFfrUcpPhHdsDdGgvSXAasrRxQovVBbpSaDPpKHNIisHcCTQRhhHHrpPWwXxYwWGgrebBEQqLlNfOdZzAagJbEelLsSGQquUVvTtsSEzeEIfeEddzZfFiIXxoOKtTDGgWDdGgWbGgWwoOwWBFdYTtyDhAaUwWmeEsJOkKSsxyYXLZIiTaAeBbBaCcSsWGgLNnQqFflHvVhgkKIRXhBaAxXvVwhHWNnmMbMmaoIiOCckKAKprRJmhUuKkHbBYyFbBsQQqpeEPqBbriYdDvVsSEeSshWxvdVvDVyYbGgBbGgsQFfrrRCcXGZZzzHvRqQtTvVHhmMSszLwuGYmMTmOjJodDMlLpTtPlxjJhSSOlLoLlJzLMMmsSdDaLlAmGglYFJKWwccSsXxkKjMlyOoYfFCzZHhNnyYcvtfGdDxMgBbGhHmpPxtdDaATZXsOolLNnrRrRlLSpPrdceECMGgPloQqBHEeofFRdDDiIpPdzEewmciICNuUUYytQqrRTpPtLOohqCcGGggbBbBTpPlLtPVnAPGRwyaoNlLnltTkKLOFsSfqqQmMRAiIBbCcPpRYyVvHGCpPcHSZLMmBblrMuhHOjJoqQUAOoHhfRrDmMdPpSsbzZYPpycCRYytTiIVWSKksdJSebSshEBKBPHkKkJIiQHBAjeEaBjJzZvVkadHhDAGwWvVwJjWBbFfolLrROoMZzpPmOVcSDvVdWNnwuUuUCcgGQnGgAaLJjzZGgyzUvoboytTHGKkgTKkbTuUbBQqcChHRIymMIiEepPYDxXBbdOpPyYPdSsDnjJNpofFDmrRhXxHQqXyWNnwcbBYVgGvyCRrxXWqGnneOoETtNCdDXIixQqdDcNpqcEBMmSyYsbxBbjJfFiJXxIinNwsSWjpWwPIVvoAaVvAaxqQdDXFfhAZJXxjzvAagiIRrzZyYrGgZzRRVvVvbboOByYBSQMKoOgGleioOIDdYyZPpzTEwsSzZGhFSdkKruLAalGVPpBjvVSslLJPpcbBdDSsCQqyYHQqheJjeEIzZvVdgvXxVQsShJAabBrJXxjRjawWTtAXCsbyYpLlPmAalkKNkKlLxhHBbWwzyYVrcCRvQqvbBadhHyYOyYaqQvVnNMdDmAdGnNrRgeUukkxXvjJvVoOBblUuuUcCbbGLzZVvgipAaDdIiPeEBbSlzZLxmkWUtTuZzBiIYaAKkAaoEeHhxXaxgmMAaGlHhLGgrRXVvScZzzZYJjPpQqkFrRZeEaOMcCmoudgGAgGtFfTzcKqQkCZdDvVUXnNeExxajJfAabgaAGloOmsSbBVvMeEUncCNPFfpamMrRRRrrnSmMuUVvEeWDnxuqQiItTqQpPUgvVtGgRrGhHgomRxzZWwsaATAavVxOotTLUulYKkdcCDhHXZPpzCyYGgppPYymDGgdMYyiIbHhAJjaBBbFpPfCBRzUuDdRrwZJhusSgGLyYYysdDAabEeqWVbBoRBbrmtTXxwWMXxTQarRuhHICcVPUupKdPrRphHuJjYBbZlkOZzstTSoKLhEeHhHvVqqBGDdgHhyYLoOMzAagKWwkkKKyYmQqnjWwriIRTAnNjRrJslXxdDLHhSnmMTtQKQqkSsqVaAntTNbBoZzOOoeeAaEHhQTpPXTsSRrtBbRfFOorZzZPXxpRdDYyqBZJSsjdDWktfPpFTRWwqQVDdqQgFodDOfeEGUtbBxXrPBbyEeYDaKkAWILrRhHtTfbBrRFEePlLIipStTsJjTtiTqQtIMmzFEeFYZzCDdqSOohHnbBFTtfNdDuUtTsNnQUuexBnNlXPpGgOdDobRVnNvVspCcVvPEljJLKkepsSqQyYpPUItykCFIiAafBbKwCcVvYbjNnfFJvVtuUOoKaAffuAaUpPTkKtDUuZuUJZaHhuUAHAavAbFLqQpPlLYywWFfWwdaIiAhHQtTCcsjOoJyYGUugRrSsNKsSRrknpZznPpNcCPDdghHGXxSqAnNPGgMmEiXWwzZqQNicCIIixXiAwPncCNpUEetONcCnonNIijdDJTEeFxqQQlLGRrjJTkRUGguKkQFfqrEeKPAwWlLDUTtMmMpPNRrUjJeEufFnSTwTwPpDdkKLlMmGgWlZDdWwRryYNVvPHhkKQqlLJvVySsRrnkKOJFfRrRDkKdRrEeUukLiIsSlnNyOzALbaAKyYJGgjMrRNnQppPPqmRTtxPpdDsfkKfhHoOeSsEOFwTYadQqIXxtzZUdKjbBMmlFfTtenNEwWvhHQqIifnxqQncCNnwWcYkKyEexnNnIiNcCKrRQqDdkVlLjZFfECclEeLLxYWaAwRlLEfFHKTgGtkhwWZeeLlGgPpnoONEENzZnqQrRHsqQcnNCZzXeEFfnqOdDomQMdXfFiMmRrIxnaAGdDoOEegLqYyrDdKSsBlkKtZGgOozTIRrsSrRQgMmGXxqErUKkuYyqQSyzZzgGyYQJkKjWtPpfPaAaaAwWSsApzaAoSIisNOovfJtTwGgWnCcNjpPwuUBbiwWIdDqQZzgGzLFflEwjJvafFYyvVaaOoAAAjJrSsyYWafQbBgGqwWKIRhHrIuUAaQroOBbRqsSIiSLlFfsWwDddDqzRHhPjVvFcCfspZzPSVkcMmRrqQeLlEKkJviUKkKhHvXxVdyTnNAaZzHhaAFlnNrRXkKiImMLbnNBiILlWJjxSGSsgzZRrsoFTJjaRrATtaAwWGrsSRgCcoOLtTSBbQqsCOocvVSRqQWwrRTLltrJjvVMEOoTZMyDQkKpvCqQJjjJZeXxEFfJRrHhRCcdDeFfRrEWwtqQyYTuUQquUrKIGTtPUuBLlYynrRtoGpFfOoBvVbgGtXxqoOQzZnKxXkabpPSsBfFmLtTlqQLlOdDDdfFKkoOoMTtiZzSsIwWbnNrRSsBBIFGFfgWwnCcNflLwqUdDhHPpQquRjJrEeaFfDdAuLYyITtilUDOodGXxbfFBmlAafFjpPCfFgIiGcITtiMwWHhzMNnmEetZjqQFfJrwCcWKptlLTxXcCsKnNkjtIiTlYyTtvVcCLPpJAnNoeEiIOxomCcGlkPKkBnNMmVpKkDdcTtCOiTthHYAafGRZKkFfFfzXxCcCcgGxgFNnfGNnXtTrpTsTcFiIfCtfFvVSvVmMBzZVvMmoOfZzgGFHeEMmuUfdDFDdkqQlLadeEDAKltTJjlvVLDlEMMKYKRrkeEQseMwWWwFGgAafSvcCVNJjdgGDUUiIugGukmeEhHMLAkKgVFfRoGgRXGgxLlpkKewWEPeEPpIsSIiiSqQBIZHhtTRrsSnASsIiaHhGHhMmUKkuEeSsXLCcllLxpjJPgZzAIiSRrsUrRuDIiWKlLEeLPnNaApAaFfdTtfsSFfFdiIDQqkKkHhwAaxXHDdhgGHhIZgGzLlejxaWwAHhHhZzoODdSviIuNIinUwLlJmbqQBeEFWsSwzZEeBNnEebkKfVGgIkFLlDtTbBdfKhHGgQRrqitGbBqQaSsAnTzZZFBbfztAznNZPYyjJQqiIWwlLrpyYLZlLYqQaAyIZOoIhHRmyYMlLrRrfFfBbzZJtPpQqTnVGgVrpSHnNokKNsSnOYwRrbBLlFfDUusSdgGuXxbBUjJQqWVSsQjJitIxVvXeEGiIxXsSocCOTtbqQqSkCVvcPpKBgZmKQCcUuqcCfFSszgaAjJGdBbPpepPlVvTgGbBhqJjlLQqnNbBBTtQqiPptxXxXBtTbQqBlLbXVvVvwWdDBbrRBbjJyGgYVgGmLwWTMfDdFdGglLSsbBJjDXxcCfFLBAaJdyNnYDjbbvVBRcLuaAUcChHuVeEyYvRQqrWVvOowaGgXYbByGgKgZBbnCcNyzgaloOLBDdLtHFJPpjTgpPGtjcafFsqQqZaVvJjjVoOlpMmzZtTCyYmMgGyYuYyeEUcrEjGgAaFBBbBZzegGcDRZzdfbBrRTUUuNeEnuvVtkfFpdDwWDdCBgGzWwKoOHhHhdIibBLJvnyYOCcoNVazkKyIujJOojlLJZRrYyxXCcdKksDdJjhdDNnvAaHvwnNesSvVvorReEqQVoOhHuUvFfYeEagGALlqrlLPmMZzuUSxXsnNXKkUIiuaAxHhpEPphHarDdnNSCWTtwWtQqBmVTJjeNsSndDEkKHnNxXhnAaNKkTtRKkKGPpBbhHgkKGghHrOoVLlTtEeCMmcuzWwZQqUuWwVfEeaPpUPpuxXgfFxXEfFAaRjLlJrBbRrZzoOtJUujSsaCcAgKkeENntTsjoOmMJScCjgGSTtPmMMmQqEIpPisoOLuMkpEeiIPLWwpfFJjPfFUucCoPDdttBbTnNxthXxgUuGPYJjIyNtVRrJjRcCrTUTtXxCchlLWwHTtVvubiIBjGRrsfcCFYySJjlTtXxVviIaXxAXxlLMyYRrwWgGmMmQqpPFfKkKqQkrqfSvFEefxeneEUgGTtuLlsSmMuGiIpPmPpVvclLCBpPRJjQqrzxXSuURrmyYMwWsMJjmxXwWtTTxLMFflDQqHkKbkvVGgKmMVvWtTweDsSUGlcMfFmfbBPpFPBbpRrLPpMnNBtmMfXxmwWhHxTtXFsMmSfMYyjJrYRryfFDIidUuhaAYywBxXbOoxXMeEVvGACcagjJFfmrRPcCkKCcpUukCcjiINnVxXvuUJKLloxkUuKXOnNxWwvVPpUvVDQqfFgPpGdcDdIiCDdDdPpewpOolsSwWrRBbLmaAqQNjdDJuEvVTMnNpPPpmOoMCcfbTtBbwWBFmxkOreEkKcoOkKDmMdUbXxaAJjhoOHMmVihHfFiIzmzfFxRUulLaAgbedDEQqZaAOomMlLDhHdVRtTrFftaABEeaYLFUECtTSeErUxXuDdkQqZMquHJjkKhqsqQXxSQpuyAaYUlLnIibBMJmMjOoQqBbdDSilLIsOfFobKkOoOoBCcLlowWOMwSsLlKmNnMkEjJLqQlOoDdxXzZxXvJeZzErRjHhibazZAVptTuMmMmrROoUaCdDGgCcdDLJjHhlJuUgGjJjVBeFrvZzsSIimuOoGDdcvVCYyQjJqhGgHUsSuzNgGOqQoxXxXnZzZYynNbnNaABSszZdDhHzZYQyYEeqEetnrRNvVaIvufFUUuUugzZGOJjiIqjJsSQSsACcsSzZPxXPbdOoDNCcZcCiIznAamMCKfFYymLELTtlQTtqeZzPrYyRXmMxpQeyYZeEXDdyYxUSsSsDFfdQqzTtZvVBWVefFEvLvlbBIiSsryYRmKkxKTtyYkXyYdDPYykKaADYySsVYKkyPpCceEAawDdWofaAFhHOwWoOzOoKkZeEDgBKkSFJVvjWwfAaMvUmfFMLldtTrHhRDjMmJmaAAQxLlfFYyiIkKfFqmMQjaAaMLlJjIiAagyYkjJfFoOOuPpwWUPeEuUlLUuAjJxXpPaFfvVoMrRFfDdFsPpSGgqQeSsEfAaRDdWwDMmdQqWwWOAlTouRfcCFQKkGfFeExSsMCcbBHhmXRrQfYCcyuvVbXURbtTBrvVMJjQqnNmKkyzZYYyjpmNnFRwETtIisHQqhKGgqQULlBbuSsEeDyYLlXxdzZRGaAgrZbWLcKCevVEqQFfTtcsFJjGgfDbBdPptTYQqhHyymMYtotYynWeIiHhChSWwkKjEeJnNsjJRrNhxaANPpSsVvuNmMAajJQHhqGaAtTtThUuHEuUeBRrSFzZfMmsoObtTawWMKjpPOoJkkEsgGSdDhHHhxHVvxfFAnNlLOKkoqQycfFsZzUVPpvuoOIrVTtVTtBpPbBbZLOnNobBzZRrAQqaFXOoxHhfIijaAJoBbolLNnsSkIwWSzwWZFfaAgNPpYmMyEaAPpdDenKkMmGRxVvXMmxfHhFXHhxTnNtbBGbPpBoOCdlLVHhvDpPcgtTCcfFxxXJiIjJjXuUrEeRXdcCcUnNCcIizZobpPBElJNnwWSVNGgNvBqQbMmUuFfVzdHhlLDWaAwsSuUXoHhOYfFpPhzZRrIicbBGgCRdDoOrXeuwWUjJExRrAaHyMmPpiIUoOBbFfCgGcuPpOWwoecCEpdDHhCcPsSgGvzZGAaGgpKcCkQKkKkqrRrOwWEsSRrmIilLhHWwilLAEeaiInxXVvNDQjkKEeJIiwIiWlxXMmnNEbUupPBEeEmMexdFfDwWXoOwWhWwHUuZzjxaAXTCcKkPfFptcCRrJjJrRFfyYOVQqaiIWwcCAsNYyHhnqQAagBDdbljlLoRrOJrVGglLvZzUiIujJcCPAaXDdxDIiYytenNfVxXvFhHfKkCcFEeCcdDHhsSsuUSbEeUuzBxnYQbBqyNZcCzeENdyYUupPWwDaAyYpPKkpRrKkwuUXxAJjNnloOcCyYoOLeEoAaybBEerRhHXeQqjJnKUughHjJLKkFflKkGIbBPbQqVxVvOcCoCcXbBqrRQvBVvHhGDdFHAjWwyYZzXxNDdnDdhtRrrluUHhlqyYQpPkqQyZnyYNxXzvXpPAaxAwWaVCfhHFcNrkKRytTeEYUtTjlLJuMEguxXUmMUunNeEGZjsOoSGgZRrXjJyfFoFfKXUuxkQqwsSBbGgeEWEexgGJjeEXpPueEGgABbSsrRxXaCzZIivXsSxzZVTtWkiITtmMKlLRrMMmkqQKtVvljJIhHbBipPLbBvWwVVLFflDmMMVNniIENBOoOoXvVxbKkSsXTqIiZztTnNeEaAAqQnNaIiquNFfaKkAnUIgGeEisSSsdDUuQTxXqaACvVccYykKQqUlLvVuEBbZNuUEeWeIixXNfOHmMhECchHeIrIHhhHSsJEegGeEjfqQFiEeuURKkmMqbiHhWPpwIydDYBQhHqIaAPpvDEeyGgCeIiGgVvwmMuUWEZzqEeQcLLbBsSJjxIiXgPpyDdYXyYFfKkogGBbGglLGgGISsRvVVvrOlLoUkKuttTHayaAYLlAvtTVzZhOKkwWlLaZudDZztTAeEaPpcCuFJjfKkKkUMtsSQgxtTDtTGZpPpPBvVfGrRgAaFcCwWIAaADdYyaEEeNVZvplLPVzWwKgGgGkcsSCvsgRrxqQXNkKkKWwHuUhrxXJjpUuPhSsHRQqpPWwyYoQqCcObBtTcCAlLrRLlkKayYZwWzaEeKkQqIiAYySsHhdTtCckKFfDJjIiUuVXTqaAQAatbqgGrRhHdGgDKkTtQtvYVmKkMvFfaAQqGMmtTgxXyvVSLlfFuRrLlUoOstTwlVvLkKBbWvXJdDbBjlZzLxeEqQnNrHFmgGMftRrThDHTtiXxIXyTtgQqGDdzZoOxivVOoxXxXbuUnNZxtTXxZzXalLdDMsSmasOmMCcCAagGTtLlLuksSKUrREeuUTtdDCcloOJjGtTgqTtIiTtYRryQcgZHhSSssbTtBeEeJkKjoEQMmqzdDtFgGfSsYyTZnlLNYfFbZzBpPhuUHmMprRbBcCdDJEexXjgsSRrGNoOlzKkqQZRMmrbgGdRrZCczSyiIwGPNFfnpuUEegMmkKCsyYwaAuXEeMeEojxXJUuXxBbhfFNeEOoeEnVvHZzTtYgGyOUCpPsTaLyYPplAtpcaAGyYVIiErpPRevxZzXpgHHhhtZzJxXjxipWUuVAavdDPrhHRhrRHpjJqQcCMmbTYyNyYXxgGbiIBnwWdDLlieUteeEETuZzgGRrhHAauUkKBbGgSsUFfuuSskGgGgJjVvZOogGhHaUuAWonNOdDcCEetyQZzqYTsStRrzZxXVvxZzENSaugGUAPpsqPpzhHZCchMNEenUSsGgxXWFfwSsLezZuUCcHhEQHhQqgGtlLEeTqvYyVbBdDhUuHfFDdOoWwiIRrPpIsSfeEOoxGtTgXyYFivEeOVvDducCvVZIiMKklLmiAapPvVIzUNnGxmMdDbBXGDdeEwWSFfaAsbQXxaAqIfFizDduHhUsxsSWCcGggzZIKgGkiQqcCGFfSlfFzZLHhPapPArRrsHnNjrReEtTCQqDoOEenrRzZNnNyYdxtoOTCcXeEDdJeEjNxXeEtTRCcrzZOcJjCSxqQrRyYEeNbBWwucUrRZznzGXxfvoOhPpHVvsScCQRrqYyQqpPVRrJjYnzZNyFMrRmuKkXxUgANOonpPxXynNEeYfFkKkKKkLxMmRzZcCYySsoOoNnOIkmMzZKjNDdyYYpPCLxImMiXlcUuQZzqwwWlYtTyGaADdBhvVHRZOozreeEibFGVvgfJfFdDwTtDQOoquWwaAvVIiUBpPbdMmPpqzZQWVvVvVjGgDdJvjZzUztQqdeEBbDUoOZhHxXBfFbPpzrcCRpIiGgNoOyYnNncCcCPFBhHYyHZzJjJjhuUHhHhoOywsJjhHSuypPYUbFfuUBZzTtPOCcoUupPpGgdDxWwXFfYyRTtrWBHDjAajYyfFdJjDFfWwJGgQqZzJDTtefgGFrRwWrRUFfuchHfWwbKkAaBgiQqEesSIwWGFaQjJpPqbVvBAgGCwHVuUvhlLaZzmMIiRrJjHhEefFvVNEenlLkKuujJUuDdxbBXjjJJqzeEZXxxXuLlUKMcCLlGqRrQgOLJoOjlTOoCcCcSJjJXxUuAajhHbBVvgzZGiIhHHLlhXxBcrRCXwWJjxXxhHbuFNnfOouUmMmaAOoMbBoOUPpWeLfFlHSshRTtLlRrrCfDGgxgGFaAfpwAabBWcaAQqCCcyYuyYUbBPdjXBbIYyiPpYyYytxXTxYWwykKVvJRrqQMmsSxXNYVvMmyagGfFcUjJunyYYyUXxuzZUuNOvVoDCcjJGglLWwLlDdducCzZUMmuUIicCMgGmzZgGVdxXnTtNDPRKPXyNnnCcpPTtVgGvcCNoOcvMlLmVCoOdxSsXDzZHhpPJjirRIrDdNtTwWdLlDlIWOodDwigiMmIGvwWVdQiFfIBbrvVsdLlDBsSyYKkPwWAapFDdNnsSfNnMmkKkKFhHQWEcCfFrpPjJyYwWnNYYyXCGgXxkhHKAaDdZzbZzDxXRrtTLlLzZmMlpPdEevVNtTnQRlLBbVvnNrHYycgzZGPwRsSyYjJtjJTrqQQnNibBQInNAaiaqQnNAEeqIyYjTqBbQtHhJWwUuXXQqxhJjBbHaAeUoQlLaaAADdmMiIqbBfXxFfMmFhsxvVyYXSyrRxXbBrcCIiRdDNwWlaALrcCCegGhHEgYymNnnNMGciIosSOobBIitTIimUuqCcQMDAGpocCOPpXaAxlVvOoQqyYicCIdDLCcHhnNmOZzoJjxmWwMaAUuJyYjNRrnXgGcCbewWEMSslrRjJLmBJjoOvVDvSXxuUsFqQfVdeAaJjNMmntpPUujJxXTDdVvDdbBWDdqCcaACjJcQwEerRdDrRWFJjRktTKuUZzzZoOWJjwYeEdDpPyaAroOjJQqrRUdDWwuuUuOouUWuUwZZzkKzUqQAavFfBprRPbVIiZQLQqlZzqQIXxiEMYymhuojJOUHJjeEeEOoSsyyYPpYICcUuIgGVvRryYzZiiqhaAoOzpwWPZHQfjJjSlLiIRArRaStTRmMrtTwvuUVEjJSsevVmdDMpPQJgGjqbBqgGOotTMGgQqpoOTLqQlnGgNiCcbBoOIryYdNnDHhRTtPpZWwzxXLlBgGeEbYESseGgJjfAaFTtfVvQogGOqQrRqSsFCclLdmXYyxMGyYvlLZzMNnuUIinNrRYMmyyfFuUjJYJZzjMmmREerJoUuUutGgWwTOgGqAaaAKwWpPhHXxLlrRaAOoNnGgfFILFOoATbBqQcLlCRrOPpsSWZzwoGgtkKMmJSscCyYRrIixXYoODDddiyXxUuYKkkKYOomlmMtsGgSjJTpPypPLlCcaASiIjJsyAayYcDdFfCzZsSmKkyYMGgJvVehHkvVKEtyWwYTtHhWXxTtdZzDKknNwYcCylmCMmRvjJVrRrhClLcZQUuqztOofsSobpPpPBOFFfTHcFfOoXKkmMxlLbBkAaKSsLlegesGgSSsZzvVfFqpjJPRrYVAavyWwiIQlLqQfFRDdCcZVvwWVvuJjUOoiIzrcAaLnNlcCkmMFfkqnNQKuUgGCcGdRrDALlvVSRrzZiIsHhaFfeEOhHcCVWwvoghHzkRrKZsJjJFfjhgGHOobXxBzaAVcCvMmZeOoIOoqQQqwWOolLeHPqQpPTtphEdDgGpuUvEemzOEeoHJjpVvRrtTvVjJrlLRJjPhDEedTtKkYNKknaAypPpPYrzZRsSdKkDvzZVOTtqQVvoiIvVeETtuUnMmoIiOdDCculsSVJjuBbRyqQiIYrUlLVmMyFfCJjclLQqPpXdDxGTttTgHrRoHFfIihVvzfCcpWMmbByjgGJVvYHHhhHyYhwPFfnNKkCPpcoOIFfiHhiuUTEetNOozrRZtTkKdDnzZsSqFfQGtTAaufNiIbBnFJjAaHhVmmyYrnNuUkNnAazZIiIiKSsRMCUuVvcYyNPpALlaFfWwnjKkPpJaMmAMwWPxXpQqZKkzpVvPAIiaVfFvNngNkKyYnVvKwoeqQEsDdSOTtbBWBhHxXbkkKcCGqrRGgHhaAbBybMmfFHhZOozfFtTBClLyRrYcCZzcmtTnNoOmMMUfFueEzCMmcnIinArnNRmKkMMmaCjJcJXxjqeEbCUuPrRvVpvVPpSsJdhHDYyjcmcCMITtCcNYynNngvVHhGbBtVsSvvVhHTMmHcSsCAajJhgGXzaAZirRIxXVWwvBbpPxdDwWdDfIiJjBbFJjDkWwKdRrkKiIHhWwHRlLrHhhYyJjjpPQqAaJDdajJAtTcCKkujJUXxJfFjaAmMtTAXvVVvdiIiIjbBURrsSuFAafHAahfHhHhSsQSslLqPpguFfUjJaAVhHvHhGpPFFfjJayKcCZzkTtswoOcCWeEDyCcYYlLOoyyYmKkMmnNMdSnNqQDiJjiIIdVgGrXxRdDvYEeixXIyYbtlLTtjJTiIuUbJjuURrdDBBxtTXbBrRjRrJsSvZnNDdbBRrVvzKOooOnfFpVvXLwWlpPxPIiOoxVvmqrgCYycGRQMvHhVaAmMXxmKkMRroOUFAafTXxtvVuyuUNnYsmMOkKEeXcCoOCcfgGFtbBlLHnNOozZIihZzTqQXxxRroLSsmMpPllLhiUudDCgGcIHlLtTvVyBbYlLxXYjJynuUEeFfzGgZuUhHoaAeXbBYyRraAdDlRrLfFxleDdfPpgGqQFZzfYhHyFDXxAQqaHhuUdbBRuUCDdpkKPLlEkoOKeGglkKRfFRrsXxSGgeEGJjgdjmMJLlDiPHhVvySsNnYjJJuUpPEeEeBbjNnREqVvLlVvQeEsSicCJjodqQDOcDdlLZAazCHhGgJjBbkKIZWpPqQwLcClzNsyeWwIiEMmsSYxXFfgMmfFWwzZvVMmIhsSHVvtTCcnNIiSsamDGgZzQqNnXxdlmMEeLaArRFfMGSsdLlDCcUuypPNnYyYygjYJjNnylLJXMmpPomMOPpRTtreNcCnExAgGahRXWwzZxaAkOoKrHXxEesSeEPEepKJjMKkPplLPhHPDdppXxeQqSsEJjgNmMnGttTTLlKkmcWwSsthpPHToHTuUZzbfFBthUgGrRNaVvaAAPprRhHqQCYycJjsSBbfQqFYynbButTOrDdReEyYiIbBiICnNmMxVGgvXJqQjkwFEVvhHeLtTXxlTtjJfBbLlHhgGOdDofFkFfKbBtTeiIAwWaCcYyvVtTEIdDqxXQRrjLlcCJrROoiItTlLkKBbNhoOHnpPKPpEBpOiIoPbekqQZzyyYYcHhHhzgGOoNnUuyYqQZQqCrRTtLlkKDdrRcgGCsvVvJjVSibBlLcNnfTtMWOowmFCdHhDQeEqAaFfyYkBPpaANncCfXxFPdeEDeHhdDEpWwKNnxBbXKkkbKgGSWwLnNlKksJgGeEUuEejziIVyXxBbYvZSsCTtcrROonNydDYrIvwjJWzZpPViRODHhdNndGuUgeCcDdOYyoEgxXPpJjGMUuSsmHkKhkLlePpUuEXOQqJjimMIoTtFGgKadpPDAhHXEkKjJeXxlLBLlLlbBxoOXbJjxkzZGgQqJjoOyYVvVvZvVzpPyYwWvCceRrqQnNyYEHKkjTtKhHkpPSszZNnVvFfbBJoOhRrEFftIiTeLlVgbmMBGmMbBXBbvVxDdTbBtZzVmMvZzJjvlcCAafFLbBasSdDaANSPpsnjJWwyTtYYXUuKkxymbBhbcCBNnHMmMNcChRGsSgxXrSswuUKkInNiWOoOaAgGAaOowWYyxjJXoYysSRruFfkKSsXxUIioOEgGeKHhZzfBbFzBbZVvaAsSoOeEwWUuwWcCLlDdJjjvVcCUPpKkmaAMuefFGgKknNIipPEtTvFfVBNngAaGqQFfCiIiFftTIBbckNnwWKNnLlIibbBmMqQqvVQLlWXURclKkLCruGBbgfAavVTtFFfssSZAcPpCBmMbazSuUdDxNvVnxXwDkKMmGVvdDgEeVdDvjJWrRwhHaALdDlJjcWwGgqQzIieEZCbBKOoEekhFfMmHiBbINnuUHhTyYvYyVtWwqcVPpwWvfrBbPpRKkFSsUTtuUuyPiIwWfFpYWwwWwWSsWwUcKzDdZzZkCjJaAtTYiPpCcIKkyimMIxXBxXbuBbCGgLSslj \ No newline at end of file diff --git a/src/Day05.hs b/src/Day05.hs index b417bc0..0d3ae08 100644 --- a/src/Day05.hs +++ b/src/Day05.hs @@ -1,6 +1,17 @@ module Day05 (main) where +import Data.Char (toLower) + +part1 :: String -> Int +part1 = length . foldr react [] + where react c [] = [c] + react c (u:us) = if (c /= u) && (toLower c == toLower u) then us else (c:u:us) + +part2 :: String -> Int +part2 str = minimum . map (\c -> part1 . filter ((/= c) . toLower) $ str) $ ['a'..'z'] + main :: IO () main = do input <- readFile "input/05.txt" - print input \ No newline at end of file + print $ part1 input + print $ part2 input \ No newline at end of file