This repository has been archived by the owner on Oct 22, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathday5.js
73 lines (57 loc) · 50.5 KB
/
day5.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
const input = 'ZzNnMYytTtfFTINnkKimYUOouyPpvVokKZzqQQqTtMmmIiMjJryYvVRztJjiIfFyGbBgYTgGLfFHhlsysSYoOsSiIfpPFcCrRVvbeEuUAXxaOotTQqbBEieEIeBNnlLpPvVMmfHhFjuUXxJmMmMwWvxiIXVqQaJjApPrbgGBDdMmZzAeEGgUoOuaQqronNHhNnjJuUUukKOOoRVUCcuqQKkvTtAaMIimlLTtkKCczbqQaAgGIioOWwQqANnaBrRTnhHNlLtbKkBRfFjJsSPpxXrzZJjmMuVvUbBMmIiZZMmCDdeEjJhHMBbPgGpqQmmMuUDgGfaAFRrGgdcrRyYEeZzWICcibBYKkywcCIIuUigGioUHhuOeXxHheEGgVvEiIIiqQvVrRRrmhHMslLdVvgGbBDSVvzZpPkKHWwHhhSYyCcsCcMaAChHVvDhTtWZzUVJjvuwHvwgGWVSpPskKxlLXdcSrRswWaABKkDdbPLlpdDFQAaWwFSsEeTtJjfGgAaoyYOqFffFfMmBGTeEtggBAabGYybUuCzRrdDZcUuJsSvVuUjmlIgGMmHNnpPEejJhAxnNXaxXWwTtAFfaisEewWSxXLjbBbBJaAbIixXMJjUCTtIiKkUuOocuKaUuAYFqQflLOAVvaoWwbByLGglXxdDkNuUnJjMmsSpPRrXyuUhHMmYxIiFxXrQoOqgmMbBGgGJjJuUjvVvVcTtHhZWIiwjJJjDdzNEenGiICcgeUuEMtTqQEHheHhjLzZlJwWmcCIiPjJTtTepPEtMaAmaApXxHvVEekKpPhTrtTRtkKbTtBRrZylmMlbBLLqQYtTzTCcnNthHgGnSsiIHtKkLzZlRrTjPpJKmMkwWhMUDdVvggGGuyYOjhHeEJkKorQxXzZzZQqqcQqCSsBbRBRQqfFrRXxfOorRCckKtGgZzcCTFHhvqKZzxXkQdDbrRYylLIiaAeEBVpJjVvPFuUfiIFdDfESsfFethHTMZzmzZpPDgGdXNnXiIvVxNnHhMmxGgoKkOMiaAImpPDLwWrzZYyRrEekyYKfFRXxlvVfpPlLEeTWwtFAiWGgwIaQouUOBbqRrYyIiGzZuUlLgvVYiLJjvBbFfVCAaoWXxfFTIitqQwQqSXxoOfBbFsbBOcnJjLlbgGBvVXxEeyFfYZDdPpzctUuTdLrRlDcRrCCwhHzJEejbBZzOoEeGgdvHhVDLlGgTtBBbEebVvWBFfezZEBbuUbULlubeQqHhABWJjwkKbFfaEiILlinNIssSSRrYQaAJwUuWXxaArRjoOSJjsqyMmLSNnspPlzDdZQqffFCNDdnnNnNcuPpKsSpPRCcvVrzZUfFuBbkUFcyYbBnCDdcRrkKlfFLgGEAaeDdCckKuUyYNTtTtiEeiIITtxXxSsFOofFfeEXIidHhxXDqQeEDdcLlphHdDPDdJCuUcDhSRrsJjiIHbBwzZWHhAfFadfsSoOsHhSnNFjqQfFuvBtTbVUItTYsXoxQqXoOOCcxDdZzsPpkXxKHhSsSSEetTozZLlOEBbeZzyBwXxwWWByYfFLlbAJjAYyGgRdqQWwDrRrJjaXmMNnxFfXlyYFfLxrRavqQzZVcqzSsZHhjfFJQpPnNcCCuUrRKkYyBbGQqzuUZuUiIDdxXEegVTmMtvXpkKPylLYIiAaFKkBhHAabIiSsMgGZzIimdDfazZeEvVLCcUrqQtTDQQqqUudNnLlHhWPpwgGkKbBqrnNRjJsSeEQaASshHAxXapPRuVvihBbTGgtBbHvVImDdMTtxXxxXXOtTEetUAaujJZaOoAfFzTXpPxyYCcVEeVUuvtTJjGgvrRotJjiIbBReEnNrTyYzZaAxvdDSQqsVJjwpeEcCPWFfsxXuUSwoOYGgyWTuUGqQuUgbBtWSshNVvnHnNJjIieEwfFLlyYieEIXbTtOoQyYrRqBynWwUuNYMaAaAIrRyoOxXYYOoyDQlSsLVSsObBovxXAaAarRqdZHhtToOdTtGgakqQDdXxCcWwKDdADWwzXxrjJvVRZQqqbBEeQIoOpsSBXxsSLhZzmkKMHmMxxglLgGhHXxnNmMaAGXXlZzioOrRISsbwahHAWSgGfFEZRrwWKvPpVrRKkQqkzgdDGeIoaApPOKkpPTfFALMmlaMmtyJjcCaAdDGyEezZYgbBMmYkQqKecCrhHREhxXWzZJjTtMhHmoOwjlLJUuAQqvCnZARrajAaGsSgJzsOoiISAaoYyONBsSHhUaARruKkqQbMriDdnRaArNIaowWzkKmKkMhJKQqZzkXNnxbMmtTlLVvsStTBJjiIvVGgBbpPpxXeEyWwCfpPnNBAdsSDazZcMaAGrRguUzZmWwpPLluUTthHMmJjjoOQqJgGuUvVJjlLPDdGgpriIRtCcTNnoOIVviIipDdHqQhPRMKkmmLlkKMeEsEeScQqCrdDgTbBtuuoOUUVOovZzWjJHhgGwGrqzZuzZUNnQyYDdRyhtTHzZYikKWKkwibZzByYTtIItTCHhcCyYKkcxXjJMDdTKkPptgGmMxXmrRMmAadzZDMdDMmAaLleEMmNcIvViCLGgeEchCcHCtaATtTrRQqjqQYyfmMhHNNnCcquUQpIGgiPktTWwKoOTbBtikKkKFfJjIirCcRnNItTILljJAainhHNueiIZzyYxXsUuTZzCcOtTEeDLlCcdobFRrtZzTfaAjMmJjrRJNFfnTtOoWHaAwWBbrRhwVvOoBtTfvoODbBouUfFOoOtnEeqQBbJxXEeFfeEiIoOXaKkAGQqWwgNKrSsRTYyoOtXRqQrfFKkjTtoOhXxLlHJjZzJjJxDdzZpnNTUuSsxXrRtzZcCjJkhUueNnmlLQqMjkKJKkhlLiQqlLBdDbIbBnOopPqQcCNtwWTdDsWwzZpPMsSJoOjSsPpAahSLlsQGgpPqHClLwWcdqQzZiIdDOnNsSCcBbbBpqdDYydDFdDQqfFfuUhHAauPgGPppPpdDLlBbYyUuUKkQyoOgGNnYpPNnUumMhXxHDNnnlLvVNrRwHcCtNXxnrRPpTfFYyrRjJuUwvfFavVAdDOwyZdDzMZEtTezsCcSmjJcCynNsSYyAaKkYHhetTVvwZzBeTtaAZdDWzZWwjrRlLJXSsxjJwlyXxYwWbOohHJneEIiFZzsrRwWhHSfbwWbBlLBwxXcCkKWyFfwWYnhHNWccCCjJFfagGAwBbhoHhrRJjTtPOmHtTnVvNhMpPPpgGgPpGYUuyHTthWwoqQcCuUQCcqKkdDlDAWwadPeEKkuUpLqcCmMJBidpPDCkKcIMqQwWmbvVwmwWYyijsSXxdDOoJNnCcUuLlIMMmCSszZZznNcYyIiuUWPpPpnNNnwTtfFZzZvVzLUsSoIiOLpvkKVCHyYhGgNnOonNncCgGWwFfIrRIiitxyCcYoOVLyNWwToOtYHhNnyUGgupPEAaenQtTjXyJvVmMjBEeJxXjOoHhmNntGgtThHHhJNnjTmMBkrEeRKKkWwyGgUurRrRMmBWkKHhwkIHhhnNGgHkKkrRqWwQKGgiKfoOFjswAaWXbBSsAaJeBuQqXxjJUIilQqRreELRCFfdYQqytTAAaUJjuLlBJUujtkKPpRrNqGgKkZzOoLlbBQHVvhVvHQmMUPpugGOozQbBHhlLqZzUuZyYMmTtZzcrRCKkzZqaAVTtkKzquZAazUQkKIiEemdDpmMPgGCclpPpPkUuRFLIidgdDOaAoGgmMSsGDlATtTQqwHhcCHhKkWthHaUrivVIVvRPEeXGgxjTtqQfFyGghHYGgtTdTZxXLlaGzHhUuZggGPmMCcVvVvKkhfFNnHuAaUeSssSuoOwWPpUZzEoOpOBvwWHhVzfFXIixxRrWbBTZzmIiMRrtrRHhhHyYvVLlwXUHhrRcCCMmFELpPjJhBbgKrEelLRWwoOZzGgmbBMNnsSaAZzDdkeETJjhBzZbcCHexfZzFBbXlLWwWwXxXFHhBbHEehfKIpPihvDdVTdDtEBbyfFsQqStTTfFtHBzZeEsjJSQqbWwpLlCcPoOcyYmMkKHhvcDdAamMhKvVaIiuUwWAUwtTWweOoHhkfNnvLlzZVFbGaAWEPppOoNndFfWwPQqYypeEmMzZTtSsHhFfHhYyIrRRrMmDdLlNbBBHhbPpnizAarRdzyYZDExOoXeSsZSsrRoMmOVUAauvdDDAaSfFpPTtsYyPchlLPpkDDYydRcmMCJTtdDVvipPBVvbEXxSsiIxXePpzLliIWpjJYyeEUuQaCIiUugTtGfFhbBfFhHHlLaAHhHhQqxXfOYZdDzyvVoRrevVQQquUnNqMzZqQwEeWaAcCJLgGunNqJjGgmGgZzVvMWwiIUrRuvIiayjJqQYuzZUNuUwXxWFfmMnboOHhAazZtTbBtTQECceRSsrQejdDjJGHhiIgxXijJdeEDIgGXxHpSshzZjJvVJFCUKkWwVxXvunCcuUNyrRfiyYPqyYfFQwWsSMmpygGhqQMmbUuxXIvLlEeyaAZzlLLzZlHhcCcCdDRrLlLHhlcCpPnjJNGwvVzZJjbBWYYyZyYkKuUrRMBcCbeEIJjiPqQcDdEeixXIhevVEGgHFsSEeZIizttpwWDdPZzIuBbUrRiAaYrRTtZAazESssTtSsSvVUaAdDxSvalLbBUuAIiqsSaAEJjeBCcDdhHdDmNnMJjAaEerRbnGguUVvjbBdvAaVkHAahKkKKkqgGQrAaRJFfGgHhyYoOeZpnNPgYyGzcCEhHCQqkKLliMmumdDiIMUIuaWwAUlXtTqhmMfFgIibqQBXxYyHJiIjWwGgkKpPeEhSsnVvGgpPrRirRQANnIdxXDieAaOocCEVAavaiIqHhQLpPlEYyeDzNnZYQqNnTtzZJcCjfFpjJjVvxXJjLPpfFlfFWwJOvVJjoyYDdVoOvVvzXxUuZYSsfFyCctTxKkUfFutTLlXzSSsjJcoOwWCUudnNvVDscChHmMoOBbouUOZVvtiIeEXxTPKkkKIiXxydCclSsLNnMaAmlKkJPpjoOKkbFfKkBsSwWNnLsSGnTTwCkUSsyoOYGFfwWbqQHhLjJiIRRrrdDEelnNBvsSxXxfFXVMmMRrmZCcHLlIiDSsQpPijDxXdJIiJRrjPhJqzwWQqaIiAIAaSDdsSQmrRdncCOortvVTULDdJjhfolhwWJjMmKxXkMuUvVbwWysSUQnNquPbBEedrRjgGJDxXdHhbeEBrRUuMmfsSWwFDNnSBbdOfFYDdyRRrutTUjOHhoXxJzDdVmMgGxXvGSsgHhxXWwhHkKdDtzZkKuTtZzcCOfFoUTdDUuiIMTtHyYmzZMhsSlLRiAwWRyfFEeiICMmcYrPpOBUumMXSsZQSsMPpmqzSsDvhdDHzZDbQqBdvVoqrPpRQIIdBbsEQqhHKkNbkKwoOWwratTtTjXxXpPxEeJjJAJuUjREembBJjmAHhFfgEeXtTxRyYrwiIWsSGfFbBEesSvDdVeXrQcVOJjoDdHNnWwhxXHRrMUSsuAamHoOIOQqoihuUyuaALlIirRmMnxXNpPZyYEjAaJEROoajAaVvRrpMmPJAOpfFJqFfQfBQqjJbFjPkKkoOTYkKytgGtTUuKlLoUurRWFSsfwgtTGeEOoBjJbkEeKOBboUuedDbBTtEjJrXzZxYyNnfDdYyUcCUuwWemMsSjJoOEFffFSskKGxXgwWxtTvVuUXLluzpIiNNnhSsHiIncCFHhrUuQLDBbqWIihHKkFfNdDPpnEekXxKldCgGCvVcCwaAwWmWwxXTtIikgGLbBXxGgPRTtxXCcoxXxkKUuIiYyjJKkXGgOkSSOJjosOoOcCmjcCXxXxJJWQqwZpPzFfnNpedTtnNWfsSFwpJjPuUuUaAvVxUuFfFxXdDxFfDDddxHhtTKChUuggGGfFFfZRrzfjJPGgrZHhzgGyYYRrvgGVyrRWMmwKCckiIMuUKkBbtLlOJCcjZzobBDyzhlTcLlEOmgGDdMAaYyLlowXAXxvVWZzXEeKZxEeXMfFuUbEeBULlumzWwkEeeExqcCHhCcVvLlxvdEeDVZzvVodPmMdDpLHeEhEebBBzNnZbldDIivVulLeEUUuaNnrRCLlcXxoOApTtWzeEPpZJjgXxGExXWwTTtxXtVgAaaAGdDvLSszZcCTrFfROoCIicBMmbUiIuStXxTsuUJHhAKksQqZzCcuIkePrRdraARLlkmMcCGtkKTgaGgBbPpDAajJPpgGAaamMvVbBLlAAYyaGfFAagjJLlzuFfORroOoNnQOoYyWRrkKsRryTtYniINTwWtaRuUEerPDdjJIiQGgtTqpOOVvkDdTtZAfFlxXzGzgGIdDiUumUuMKkCNzZUuPpzZZbBmzZMuUZfdiIYyQqoezZEDdIiwCcWJjrRvhHVnNOsSCcoOJjoJXFfxcnNCjJXxUujHSslLhAaiIOJcCjHhDJJjxXtTPpUuVvBbjdkdAzsSZXxRHeEFHhfoObBfFyEIieQqEeWSswkKYEpPxVvgZqoAKkaxXPpVNvVOlLoGgjJjRTjaAJEqQbBeaAdgCEeQoPpSsOcQqCfFSsHhAMmarRLsSmMlBqDKkUSTtsVvsUuTMmtmMPSsSsYyLVXKkxvDkbrYyzrRnNofhHFVvsSTiuUmMnNIyYzlnNLQxepPEXtjEenNbBSsSsPpcCPpJjJyjJYybBYDPfFCcpzsShWwHKkHhZoVvOomMoOyYiIkKkHhKSrRqQAQZzqaswiIbvvVVBFEeOoAabBLlTtWwQHJFfcCjhMmdDCUuIDrRdEKHEzZeErEpYyPpPeMmnqjcCcAaCsiIVsTtjGgDaAdAaWGgwjJbBJESzZvVsFjJfZzjJMmWyYzTtgGZwNWwnAaQQNnNZznECcqjGgJQqmrlLRbBWBOobBbvVIigGRbBWwgGkczZhHzZTtueEUCbBDdFmdDMfAaDKkrRdjNcCbMZzvVMmmBBwWeXyYUuOotmMGuUgyYTMwWAamkHeENDdnLlhxXZSszOZzGrxXRFgGfmMMmKCcpSsPLlYzZyNqvVQdDnSQqiBbcCmeEcBlrxXRbBOoAaLlmMNaAWwnLoSsLlCZzKkcwFPpgGyYfWGgzCcZPpFeEfsIqHHpCDdcuUPGGgrAhHiIoOapPRFMmnNfzZEBbqQrdiTtjaSsMkWwPphsvVSHVCchRiIAarUuLleEhHAepPtTrrRKvJjVkrRfQqaicCIyYAFHhdDVqQvCcMsSXxMmmaAeHscaGgWwAZBhLZzSLmrRMGgJKUiIfOoiIsSrIiRkKYynwWNrLfFlUJGRhSsLlfFfFTUuWtTcAVvagGeIGgRrYyiMAqQivVIHhFRrfKWBbwNZmgOoGoGgOMsSWBbPpTtAaOwWdrGhxHqQhMxXbBUEeubQvNmMmMmjJmMDUSOHPphcrNnRCwWUGguqNTfFswWStDbBbTtrfwWmMJjFMmUXxuRqQWMmwpxwWXeEOoxZzdxXDdDXCTPptOiIonXxPpGgiISQYyqsjJOBSRrsbFbBCZzuUKcCLlCZzheEWwdDjkKCcCXuUIGkKgVvYyvVZKBbkRrzWwtThglLtTYyGHKCckZYylGgLtkKagGAuUbBMywAEelLaIikKVvHYyYfFyWwdDRMmKtqQfFTAaFfPZlDdLHIegGBbEiFbBfJjrYzZyRJjWoOwsSwWOoiIAGgapPhvVBbzZzCWwxXcouUAlLaJjQqlLtjJTqazLlZJpPHhQCwWcqjAAtTsSOiIoajJuRrJjrkKLlRpPRaRrAryvVGJjgaAunNbIDZRGgrzdtlwWLsSTmMRWOowVvLUuRAarlHhzwJjGjJgWTlLFfrbsSBlvwqyxzZFQqfNZtvVUagIiGAJjEIiJEeIOFfmMXlXxOQKkbBKACcaqQDcJjCdAWwXxWvzXxzFfSVvRrPQLlOoJHQqJjhMjfFJcCzZbQqzSNnNjpPJnsSmnNMPXMmxTtFLlfpNCcnwWNYFfyjUuVvUuOoLlwWJndDPpDIilgkbBiIKDdGSstvVAIiarRaAgdDDdkFSPppPfFGWbBwkKBgGIaAxBFfaAHEeeEwWKpPsFeEhHoObHhRrBfDdlgTttTLlslkOohYLTtNnIUfFsjIiuUuUJUuuUAVGfWwsShHMAasyRWwgGOPpeEgNnNnGYhHynNwbBbBxgGAaTtezZkKEXtyDdzZYyJTTtdDMdDImMiIwKknXTtxNrVvrRyYXwNnWeEnNPcCpQJjxGQqgwWhHXwizZGEeIiiqkKJjQwWTtpxEesSbBXJFfOPpfeKkKCiIvwfFjIikKUutTlLBlLbbBJhHjRdtTDsUdDuQqDmMQqdWwdmXNLMmlYybMmBnMuUgzWxQDdCcqDdvcvVOoQqAaCPpkKVKkIXxgByYXxxXHdDhZjiIJOwyYWUuHhgjJaAWwPLmMvkKpYypPTHhHhHxVRAarvjJqbBSsRrQTDdtwWpPFyYHMmAaJcCzcCeEZzpPZmTkKkKtMCcVOJsSDdjPyYsSZCcTQqzqQZhcriGgSoOoOKHlWCcwPpPpIiFMmFfYggurRUPpXxWwGPpdrREpYBHmfsTrRjpVvPHUnwVvNnWnNwccnUulLTtrRHvVhMmBbNiIBeElLfFbOoFfXvVxYjJSRrsJjeENnxXzZnMRrIiNsSnQqVvmzZQqNxTtvtEeNnszzZvbBqQyltNrRiIDZzQQqqLldQLlhUpDdPuohHmMMmEAVvaergGREeyYavKmMdGgDkeEVoAafFOXxAxfFUesXxdcCDKEeUVQqCcTtmMYyrqkfFKkKQlaUujJZZvVzWBbTixXwWcCOiYlJWwjLPploOLlwWsSOoRNnNKkKbUDdUjfosSWwIBbixKyftUuTaGgAFUxXuYfdDFwWwEeGgZDQwIiWqgjJGpPRaiZXxzQuTteqKRroOQgGJKkBnNoOjJRrZsdbBDSyYzlLQTPwWkKrdDeGghHuUzZVcRuUWwzZrqHhmiaKSgxvQMmwWRmMbBtRcCrsSTcCmMCcoJHwWqUuTttTBbHhQhUuDdOmMdaADoFflbBLtTLEHheQrRkKSsbAaIidDshHSlLBqlvVgOcCoOoqQGeEStRdDRrrimpPMBbVvITuUkKyKgGkQrRqYRRYGgyMvVmvPtAalLTJbBHiIhjpKCldPSUuspWwGEyYepPDjJxUuPpcPpTtCFfXdcVvlLVvWwOSsoChgGyoOYIigGPpBbfcHhCaAAaIjozAKkaLlnTtNnNsZzDdKdxXDkyYhqFUuaAbBaBoObAavFxXfFTtTDoBVQqPDdpvbxQqXewMmlSspPnNMmuULluKkQqoSsOsNnSkkBMmDrAaRqsNnwWaVogGOBbRrYIiyGjHhMPprRmQqbBwWJgHXjJTtGabXxBIiyYSBbfFdDZzsaRrAiIejJKoOksKkSEWRrLKkEetpJrRSsjdDBhVgnaAqQSsiIpzNhHZGgznZPVvvValLAiIcLlGxhHyxWwKArRncOoaACNfBbXXHhvVGNnJjjJgxxybFflLoGgPpLlfFOJHMKkVqQxAaXUAbBiNnJjqTmMSsNnDdYqQEeZCcuIpPxXiUGgeEpPfvVuKMmFfdDcGgCkSEDJjZzissSRpPbwWBodDLlGOoYipPBbhyvVYhHgwWiIPpQqXxGfFHYoOOoymuUvNdyYDvVnVEeJjSPMmLlpJdDjYCcnNsRrpPvrRVvVbgGqMwwcjmSCiUSslSqQbBdDYSChHwWQLlPNfJjJgGjxeEXFcCSstlLTeEAneEWCnNVRtFvVLlnmEJjSsgGICcfFDeoOAaAYkoFIifzZVvgGOxZhHFhORrbBEezZXxEYymsjGVvShLlHnRrYyWwqQNbBsRrdDFfbxXjbBJBwIicpPhvIiVvSseEyYVFPpNnDdDfkKweBcCbSshHZdDzUuOobuGMNEVvmjJMeOUuIiTtoqKmMRrpRcCzZrFfhHlLLDoOZDfFTtjJduBRrkKeEaAhNnHBbMdlLlEmMeYyWwWwAapPPpXxkpPKWdDogxoOGgtqdDWwNhbBotTOlLZjJzAalJkKlHwWyLYsiIoOSOoLqkwWKLZnNnNJdAHhbXwEbAaBbqBYiNnIyCczZXxAjfCVvcWoOwAdDaDptuUWZNnRirRIizZBDdTkAaKtbBbbPuRCcnNtTLmMlGWVvMmwAJjedeEsOoDyQqcCaAeEgGUAaujDdJYJkKBbjnSuGgOqQqQWwiFdzkKsUutQHhzZGgikKIldDLBrmVbhHxhzMyYQWwiIqmMlLMmnNmPpRcCrWNnTuUqQBbvOolLCRrkDdKNnsYBfFqQaaaAAPpYeElpmsSxFfXQqMOoNDYyeEdOtTtzcYyvVxnNypnsGpPgtiyNnrWLlmyYruUIXxJjlLcziInfFnrrwWHhmMRrRLltTuUGgFfUwhQxPQqpXMmcRrCNnAHhmMtTzJOojZaEevgGVfjMGgmmMgHhnNGvzZVgkmBqQqgGBbGsQqjfFzVyVsQxXvzZqQVzLxXjJNIinhHCvVcbmMBeKkJjlQdDjcfyYFjJyYCtTBuLlUcCbQWlLyYgGyYyWvVXxwpLAalTtPklLAalLdTjJQqbjJRkKXwWfKkFUdDuHiIhyPGgapRrDiJCcsppPPNnLbMmYyKPQqpyYUlLJzZuBwWbiIIiKkVvmiAXxaIiItTMUuSyvVYzGgrtkZzWAxXIQqihHauGglFfLmMvEeqQZzrsnNcAaCRBbOCQsiRtTnvVNrIaAaAkfFKnVvayUueEWeEwYyoOigfFQzZNFzZfzZlLwCcbuNdDlLeUueEEsgGGBbgSSAaDOoMmHUuhXVvxZzjJwYCcyWTMlLmXxYUuVrWxzKkEyYgyYPpuUIixqQXOzZiZezZERrsSTJjUukKZbvVBCIidDsSwYqTQRrqrJJYvPaDYVvqQyVEncuUxwWHOolUZRrtHwZkQqKRzuUYyZFfaAXxmOoQqMRrAalhHKNQVvqRrsSnQqeqbAQZzqrRaUyYZrRzlBbtOoHhTsTSCXlynNBbZAanNzYDMmdDvVJVhtToIBCcbiVvMHhmUuIFmJjMSNcClzFfdoOJmSIiLlsKJjhgGiIEeFkKFfdsRMmrxgohHOlQSMmsgGqfFQaheEjMklzmYywWEEeIyDnoOeTPfFpBbtkagGAaAKCfFcERrFzZfiINqbBLUFfFjJRriIfVZzaCbBEecADxXGHIicFfNwhdDIiGXgGhaYwWyAJjlLrROlNnsScCLJjfFgvJpFfPtTlLvXxVlmMEyYBwjXQFWIiwQiIPpEeqfnUlLudDBiXOJjofWPpwvVkqMyYmksSspwqhHkKnNwWQBbTrRDdZAazyYmMcFHdDDdxXhTrROyYDdpPinJqQZzjQdGgqQLlRrwWMmCcMmAapPnmrRMNzQqQcCqZKkzVvNnZqBvVguUjgGJwWsSbHFfNlWEZzSsfFwJPLlZzdYbruURMmXxMZzfqDygGYdDtTlLOVvoPJpmMyYPiHtTNnhLlvVIYyyplLcrmMEeRJjXxJmMjTtylsmMSjTInNDdyYicHHGghhGMfFAJmMEUuEeLNPpndCsxrRAHZrKkRPzLlvtTbPtTpBVDZTxXZzcCDdyQFfwaAaoOpPAaAWkKywWYTtUJjeqbIiBtTjJOXyYhiIHxoQVvFfhHRrakKUsqdDIkKeiiIvLlWDIqIiTPpPxsyYjJStxXTXZzZzpENrRJFfvVQqYBbyjmMVhgGfFfvVaEzZexTtXzsNzAFEZmVvJcCFfzZvDdGghHuUUrWIYQqySsOotTvyRcCQRJjrvVTtKQOokKjJQqFfjzgKktTGNnJYDdyjhXBbvanNlLDdmMxZBbzXofDdfFLKkaAvdDVduUleELaxXbBAvvAKCSsqWFdDjJqtTmMFWwbBLlNbBpPGVvgCrRfFnNSpTiImVvoPpOfwubeEvVBbnKkNBUqQOEeaYmCBbcgNLOzGKOomMXOoxkFcIiTuUQqBeYRryETtbQqtLhfnNjJmNTtnMjJdDouUUOoNZfhFgGAWwhHuTtiIUIuUlLiRRkKrrFfRrnRrVvMmdzZNsJiIMsyfFYAfffFoOKkGgFtVpPvTyYiIhHulLUqmMvfczZbHhTGPKkJsSrhHXHhxmmMnNVqJjnmMFcaVvHhTtuFzZWwVvfUkCJXCcZhlxkKLlSQqsxiqQhHwWXtTWqqDdxXgVqQvrRVCZYyzNnNrRnNRtqQTriIAaIwWktCcZzvJPzZpAVTmJcCHhpWgGZsSKkCczjYCIAamNcCZznKdwWExSXYDdZzywCJHKhHiIkoOhHQEJMmjecCzZxyNnYCcoIigGWOowcCGgPlSsFfUuGgOonGgsSxyYzZLDdIiPBcWQaAkIiKkKqrRQqbGbBgBxXkOoKgdDIykXxwmMwsOtToVXxvVvccKcIiEeskkeEHhFgGdDfWwKKSQSstTmpJjPGKkFfgMJjJjOomKRcplLZzSsPZwWATtZGYGyuSgGhfFDdHCcaAJfouEeFfttTIwWixfXchWwApJAXVkKvLzZzrRoIipPtTOpPIUuidqQDZXAaZRgLlPHhQqDdOdDozZpGMmJjJJDdhtTFkKzXqQxeEHsShZiHhyYaedDEAZLlLaxxsjoOrRpPkBNnJjcCuUjDEezJXsRrqQSdACcjJFfxXuUTfHhBboOFQqcCSaUKWclZzCcDTIitQqRUulLaZzpMdDcCqfYyOpLVvqMmpoZvWlBNnBgKdDlLYisJSsjPhYXxDtTFfipPoOQNnYyHhqpnsYyhHJjRrnNVZzvAvVaShHEeHPphiIxXNiIPoTtOcCVMmfFEevIyYmMvVcCdGCcnhMmHNcqHXxhCeEcZoOGaAgcCUuVUuviIVuPiXBzZxXPMIthIDUfuKkUfFxbBgvVxzZtTTtZvDdTBbsSTtYyOOWwoOSXxCyYFkeEhAkyuJwWxAazZJjgnwJjWsmDdMGdgGDTtsSqsHGghmMMLlXxJZtuIMmiwtfUrFfLZzgqOoQloOOKFfLiEeIlJqVvWIiwgGgUuHLlRQYyZzYndDVviINuUOolqjDdqLlQVoOcXxGtgLXGCmUuMEzZGgzIxIiQFfQqxXnNqsdmpaFHjJRrwWRrTtRrlLhvHhVqxXQYZzwuUlLHhPpNnNnxXaAZzGghWwjJHYyuUjUlyGzZqQcEeiPMmdDqPWwwtNnWFfXtLluUFBIUxXFfLhHhjRhHAavVCcrCcXxXiIxJmMZpPzHNsMCLlcmxXjyFflooOvVeEJUtTIXxEelxXLLRiIOxXdKkDoOWPpUmMfFNzLSsqoVgGmMvZzmpMITtieEkEdDbDdcCkhQqbBHjVvmYkqmMPpQHQqnZgjTtQlpPXcPpCzCeEcZxTpPTcCtSnGgNGQqhqQtNnTAaDdXvmMlLVEeuBbSsGgxXaALNJQqZVvlLrxHhKBbhHAaDGgCcdNnNQqGgsSWtTwWzZwnBSvVsSsUZLtLlTlAAyYXcFIkKtaAfFGHJKXxkqsSrRPIiCcPpIyzsSIHhsXxjJFbkJvbaUudIpPSEvzZslLsSsmcCvvVVMboOiIRhpPeaAEcqQRrSFhHMmCVJJjzZjYyfqQKkxZXCcxKbBiSgGgIiydiIDqtphHPaALVvkHhKlVXNnxfJBMmwWxQwWqqukKUzOoZDCvlKUCcuGUOyoZzoaAaqQjOoJgGzZHhfPMdVJhHoOjvKCuOgTtYyzZGXxgTeEtlLcCTdDwWjJQqDbiiILlVvULluwiIIAUuaiFffFwBbQqWukKBbLxXscCvCRRhHKsIiSjrRrKCczZcChvFfaABbIiopPOzZVPpRPouHGHhxXTjJGuUgtTyTDdYJjAXxZKPpkJUuUywWYyYuggAaBmZzAaMGgXQqciaLlqkKiFfZzNnUfowMjJMsbOkKcVvZcKxAaXuULIijJCcBzeEnFzSsZvIixXajgpSsPGylLQrhgGHvZzAaSsVUXUujJxuRDdQSFZLAmooPpwWOeEWwOXTzZJVZznNCchHCdbBDqbQqTtMfHsSNSMyyYpVpPvPJjmvQiPpqjXzZxPNorRKuUVvkOyNnCcYTtdDKYAaquUzfQqKmeEMtuEeUVuUkKvJjDdvRjJHkKibBIPpXxOooOorRqUuNnNeEnQXxbRpMmPlmMfjntrRTrkMAahHisXIzdgGDrRHqSsFfQJkKjTAadUuSTTtpPUgGIgNkKwdzZMwkliOomMGKQLBmMBrROowcyfFYhsSpPslIilwzCcPzZpZslLAldDLUOjhevVWwqQEeZhgbxXBZMFxXhEDCqQcOlfFsSLSpmBbMPqQtvVZibzZwpPWtTGgdKkTNuIZdrGdIiDgIVEJFSsLkcCKhHdJVNnyNbBnZzwSHZtTkahEeqQAaRxWvyyYtQbBPpCkHLeaAQqAUjWoOyoOaVvWwiabBAIftTtlmybrTXFfQsoOxjkuUUiHhvVILLfOkCcanpPNWwJjSxXfzaCcrNFSrCcoSsPFfIGgbPppMnwLFfFnNrRQVGMMDoOkAaEeRLKkgnNjytTYpaAjJAaTmEoSjJHyxhHmrRyYNVzUTJjHkKXxMmvDdGgVDAadNeCHhhHkKMmGgcoqRrQOmmMSwowWmMRxeEXRYyDdrrvVBQqbxwWjJuopPUvRrpPeVyeEYERreoOvETHVhObBgGokNnKxXGgRrMurnTtUuIiEuUGgXxGidDISyVgGaEeuGPlxLlXYydDmMdFSpPsfNhHUIiIpdDoemRyYuUWEewvVAfkyYVHhRrrRXOTtybBYoOmeApbPpjJAAaAaQqHhnfetXWiGTtaAaArQqmrRMcxiBUNzZBbZclAlLwjJXWSswIIKXxkiihuHhbaMmoxXOHgdLRMmRrUJtTiIhHODdxdYybuUcCOgGvVoLlEUueNnJjByxjJZEeHxOoDdCcIiXyJjJCcQiIlJgGHhjmuLmQoEeORrxXufoOPpqQCcYBbrKkRupfRVoOixnEeNfaAFFTJwWJjLlddfacAQVvqORgMSsPppvIGSstTNSsyYnvVHEEwWQqFfPkgTIiuaALMmlKQMmjBbUFfutKsSHhsBdDvGnNmetjJGpPRryYgkKeUGgrlLMmBNGQqBbCcMmPIWwipSsPFOomMfeEBbkKpMyoONnrREJjXhHtBbRFfAxjJDViFfIWkKGgwdDJjxXahHAvZzHhZtgHhMAzJwjXdwFljzcpiImkoOOovVMGgmHWwhVhuUaLDdshTtJMmoHBbhOWVsbtTBSooOOtYypkKPkajJthfOLluUoGRrgFEeeCmMcDdEUuyLZqQqRrGnNLZfgGFzldxXcCSPpaAOKsSMjJmkkiILlQhooOqvvOdkKsSVvFGsaRtTrAEOEeBwWiIqQyYVvFPpXxuxXUfOgnCxmMXYUuOSsKkBbXmAMfFbBKVNIvBKksNnBNlLSCpOdDrkKRuUIiJjFmVjJutTTtUfOBfOoFkKblLTeUAadLduUDlDYqQnTsbAaUeypPMWHwWuWwmmZdDzkKwWtTtTVPgppPPGpvZjVvJthLtVCFSGgsbUuBfFfgvVvwwWWpPnNXiIxhSsHVWuURqracCtTfNQqKnwWNlLFCccCQlVBUubDqQCdmFfHUuiIPKussSOtoPCcLlAanPpxXOonHyYhpiIuUbmBZaAdDbpePpiIfFAUuBDdlOoBbCAcCyYEcClLetbBTcqQdDlTtTdbpbBVvPjJeVvIibBmtxXqDdQThHhHCvVPbBpgauUGRrlIiLkKnAaCfFGgcBpiJeEFfHhnMmYCcIeNfMmKkFkQHQqToxICNHoOwWaQsjJeEekpPSsQfFqKXxnViPpTaAJzZshboAMTaQGgMPpQmMEOhcCHRrQqorpakNnlLhXxSSssUGgNnAqQDYwGgWvcCVBbizZIHNZzaATHZztlUnNuLTUurclIiMmnrRiILfFldDNeEUuCcBUqaMTtvQqbBHQqgGAYUKFfLgGwytTYyyaAewFfuUPpYyPlmGSbBPKFysSNnYyzZkKULVvlQqiAagGMmPuUqQzWEeRBbyXjeIyNgGbtbBAkfFqxxXXjFUhHufJQnNKKCLlwGtTtTNPbBpYoYyOusQihHySsJbuLQDdRmQWAZzqQWtTUrRuiIRrABbbZFfPpoaWwejLboOMmrRzRrmiaACcgGnNzfrhrRUgGKkiVvItVhHzrbqQDdnWDdTtBsSeEeCDFNgXtTFfTlrRwTtYyWiIAKyYkYynNrYcNvCcWSsXQlLGRuUMWwNXxXxROxskubNcCtoNUXxjtFtTDdCcpjeEtTSuJabEgGnYyNSpPGgBbiIdpHWoCQqPpcqQqQcCOojJOCrRzrUheEquqxXJdEFfnNRRrrmTIitDdwWlsyYSvoOoFaArREAaeVvaTJIiKkbBOsQcKZeiwWZrRauUAgxmcHhvVzBeEjFfaAPwNndDPfdDFoOIiNtTAtOSwEedDWmMAasPpXxaAJZYHhZeZzEzZOoEyPZAvVUkBboOFfqTtQWOLxEedZzEePTtAqQaqERrZIihHvzZfYReElaALiIrVeTcQTzdiIKkDdmMRrXGgyoSfwCwOoBvIWIiwsSKTqgGLeElJnYytTjJjDdfFPmMLlJjxCciYyIkrPTtREfFetNWdcCEedNHRzZrBbdDLlhnAuuPpbdDBwyIiEeLlBbafFeGgdDTtIyoOYbSUVvTtSsjJulLYysPpEeBqQkKXHhiIiaDdADdDzZfilBIMRrwIFgvELhXoPRroZXxzRhHqQhxXHcBbkLWwYYyBjkKyYmMvVAAbBxuMmUpgAaSDSsdgxXvmcCMMmvVVEOmMKQxLlhHkHHFBbwWezHYEjbBJyZOFfoFspZDKkTCMmWJjLLlYzYkCTljJMRBbBlfFXxLbHhxXcBHhbXxSFdZzfFCGGgwWaFWwEefFfvVOXFKkEbBUKJMHhFsScCfmxyfFpPEGzZgeDAacCddCDNWwsxoOXDoOGgtTiiiuuUrHhJMAafDEdFhXZwWzhHwySuNuAaCcdRFxvjMASaNOVrNjyYDhHQqAaPpAaCCRrlLeYWwyEPqyYnNZGBbYyDZzTyqQYmmMoVfZtTzxhkSsbBKUYrRQqyCcrRwxfAaMCDdmnhxtpPfvgfPehTFryliIQqVuwWAavcwWjPpvCcVlLTHiSoOsIBbBwgsSsnNFWiiYymkTtvsVvsiNfDYdDAXxdLlXEeuUBbBsSWwXpPJjNiInmvMFfPpnxXCWdMadTHhtyvRrRsfsScCxtcCFYyrRKktCorROFfoOmMShAGgSsdctPgGWwApPEIiekVvfFfvGrCmMhyYZzMmtTEYbByYyxXcCeEfFBPijJgfinAsSZzlmMOoXxAmfmMVvfYyMxRrXuUTtzZdDMlUuoOhHUoqnNQRYyrRTtyxgiLJdDgGgbnsHZzhLKkUuLllkKrzvVZWwpIHUYqbBktYyJYyboOBToOSzJGgkKHnlUuImMiWbBNjkQqwrUCOMwtDdzZagQYeQGTtmSsXYJZzjalBpsSwVvOAgqQSVOwGgtbZUYWwywRrWjlLJrZwWEetFOPOqQBlfFLqatTKkeEDkKdyvVPQgpPGyAaYGQqVvZzyXxyYEernnAatTAEeTaAaIDaAHZHhQqxLdDWlgGgjzfDdFtGLlKkgewnuUNxXOoioOEYygDdrBMKkmbkKRlFMuUQZzqSmwWMvVMbsLlltKGEqQOOoohUVVoJjbBSlLfFscsTwWdDOQqvXxVzZeHnNmnWwNDuonuTlBtTbgGOJQzbdDBwWSoOQqMBcCbmYgjJMmGKmJaLlKkjJGhnNejPpBKkeEtTXZdwPpeEpUQaAPpteERYwqVLllLvhwWuUnCcREAaWLtVvTdNZzTrGgcdNnJjEnNtuYyUDWnNwdKwWpPFDTOodaAsSjyYsSRSJjerRQyYqZXxMklyiIHhnvmrROoTOwWzrDtNCcDlvVLIMKcbdPqizZkrRgeAcNnljVyYziIZvrXpMHhmYMkpPKwUZHhLlSexrAqQaEcCoSsWKVkKvkaKQqNTFWMmMmwOftgkFjweEWOVjybBYkeIiNnEKEeRVEevFfrazznIirObBKgivVIVvmNnTEgMyvnOgGUWwPOoSnNuBbTvVDdPpHSfFRrsShJapRKoPsSpBlLlYilGgJjUyYucCpSTtRrsSyYTjJKRreQEDhHdHZzhMmOovVqUuKYyHWKaAjJCpPXxcOhHwWqQnAaNsSJeJMBuUXwWJmMWfpeEPFlLFDEevVbhJjBCzxcCaICcMmiVqQdsRLleTxnNFaXJjxikRjoNnXxOvVjSssIFKixXLDQrcCJjrRtQHhqYlMmFBbKqpiIPYyKZVhMiSsIPrSBbenVXxvHhUuiZvLJnNjqSsaAoNKlLknaeJjjMPpjhHEegbOIiFfZMxXvVJGGguOdiIIbBiFIQTXxtTtBlIdueuUZRrzDGuobwWyYyYnqQofVvMmNnEVviIGgbBkapqiIdDYykQSVvaIQqAUNnuUmWeGpxXTIUuzFHfFyaAVqCVvbBSsuwFIOgmMGVFAyYkEiRrLljJDjJbTtBEeXxYwWyiyYiamMzZhvIiVLlHrRKGgkKoOkwhSzKkqXHhPzZAGIPLaAlWwbtqQudjAaIidDkRlwWOwuUZzZgGOwnplndDvquULlCAHeESwIxaAmJjMpQVvALFfhHvVFtkKRxXRrkOozwWcCZCgaAWqQwmSSssEwWeCdJzZlZzLjaodNJjLMCiIcVvlYlgTEHWEMzsdAvODddDEepIiBBoOUuUunllLDdOOIkzZtTPpSmMJrRRCoOUJWNJovVOjnqQwSGWKHhxvVQqlKkICkqQVMmGMmzyYyjfHdYOTIARrjJYyaOUFnqoEKkyYzZeEtBbtLKnLwDQJijJklBXaiKknxdlKqQGrRszsoOffFFSvVGgunpcCPlLUjbizFeKxXQlLlYcCJmMjIiexyaYrOomlzsHhvqQuhmMtTHDMmWwgUlIZdDbfFBMDFfkKdCrcZzCyYRHhLlfFabBAqQDdLlZzVOoHhEMmJjeGXzYyZFCkKZftTnuErRZmcCtWwTANUSqQFjcJjIxQtjJoLlHhjfFOwWfuUFWIGXxUugGYHhXxHhsKAfvVQnPTtfFpNqFtpdsqhHkKCDRTtgAaBbaGWwyYgAEMmppPPAaRrNaASIihWwVGlLgviIUMmtTOoHwtMmYyWwCCCcEylZOoBbVYRryvlRyYiIGgCcrbiIoOpPcQnNqeECagLUGBbFuIVAaUmcCpuUmMPYPkdHorhYTHhchHtTyYCSPdDmzZMZEeVaAfebrRBgzHtWwWwFlyCcNuvJMmBpPaNneTQfjOMlKkLmmAqhUuHKaeUuijJPkKLqsGgSOEsSUuwcCNZQqllQxXqLLYjGgJrRMmWXsDVvPpKRqQFTtffFVvfFXPpkKKkKkaMsMmBhMsAgQXpUuRrIBkuXxxQLliLluUEevVIIiUEuUzgGZqWwWcdAaDOoVvCIlLWwiEeKbRHhreEfFnmMtTxGTpPldafFADEmFfMdrRDUuIinNOaFfbBbYPpyBAocsgUCtTDuRLlrGrRjmMaAJcRrOOCfUIAyhxXuvCYysqRTtrnNkKUuaAQvAjbGXDVfMCcmNuUAaVvCchFHzADdRqGgGgOlsyphQsCqOoPOusKXOolqJdDoOwWDLImAaQqMNWwniTtJWHhfhQqFWwfPMSIDZlXZzhSoGezDjJFTKLlvVsSrVZKLTaArRrbDYGctTdevVunGgeEaAoPiBkNjJSsRkOxZcCMmaUuMpUyJFlJbPgGehHEKFsvyYkKYyKkVxXpIiDEPpsSZpPIizuSzwtPOrgdDfFsTUXWJgUlLuGEqpPalLhPLtAaTmMpPqAJqoSsZzUVxmBfVvNHhIKkNHUvabBJjXZBeEWwxHhwEelNnZwWzYyWwVvLWDeEWwdOoACZLlIJjizcaIHJjhiqsSsUMjaohPpoKTtFjDWZOMRWpPYPpyXzZbUHhEvVLHBPpbrRYyhaAlegCOuqQlcCrRpPKBLPEegluDZzxOjJLPsAxoRMFfmdDpCtTuUcSOYyopKCdFhiKkAZYHHiIhqBMmZzawLLBWaAiiuDZzdUtJnNEepwpPxULDdcWpZQKQlLHhqMmnPQCdFIGZzcOoGVpiIdrzZqEztSAaGgPGnOmMoGogGOEYoVPheFWnNsSwttTKkTGUFYBXxRrzZIMKkmibKkPeEpVhHvXqBHhwDPSsBZrdDgGAUZkuHHiIhzZQxXzwWPJPpODaBvNsQMmUuAaocgGYyZzjPSsAasEWwWiIBDdZQibKHkzZPpWEcCvYzxHmIiQTFKQqwSsPoMmMAHqLbwIiAnRdlLHhGIZzJjVMUuuAYCWIzZiHKkZsDNhbtMTtlLmTuUAYDdDdyRrvqOoGtGoOSsgIAJjdklAaJxBQQRZzrREOXqQLYBQkeQiehLltTKLLNnaJCJGyyOsSCpPcyxtTXmlLWkGdswVOozVpPbTIJKuNnUbIrISDKkMmdvqoqGgIiGgQJfFEtTejMmONnrsfFREbrXlddDrRDuIrBbIiRMlLEeKkxXjJJsSjvVovoOVfFtiIkNfwWEmMccCwFfofFaNckFxgGXbhHsqjrzLJUDdGGgfMAwCvVaIGgnDcTtoyZzYRrwdjJDwDwWcnwWpPFzgYHqQZZSnLbFFWwfFferkKgvlGLlnXfbUMcYjUZWrwTKeEkRcrMuElkayIiYkKESJzGIYqPyhCEeFfBKDdKkeEHhWBkpPKXxWwSnxXXxeEXyZOePpJUujUUuYBbhMmjZzhbBLsARrtOeFdMNxXtmMTnOkWwKtgHXxSpRvfFMwWFfoPfAaRYrRJzZEejyVIivnoCVeYuUyHFfqQhEsSvIiyYYmAEWQqnnNeGgZEdDJChKwWTtkrzuyOOoIXSqQsdSsUuDKFEeueEHveEVMmYVJzjJAaXRbBsRrSrDjJyepZcmKXxkSblVDnNkGCzFfvTlLtmMEcGaAFCcAatKprdsVLiIHiIhlTtWMmOoiIszZinNoOggGOohtTtTjQbBTlLbxnNaFflLFfFnfquCqCcdDQpPQQqwWLxIiXUwGwprrCHPpVvhauUTxXtAsjJTCcmTJpXxNTnYXxyNtXxrMmRnPJSRVARhnNcHkcChHpPTOoCctycbGDduWkURhzvVSseEAenaNERreFwOkZuuUUXxtQNdkgGSiLlEyNtPnjEnNAaegpPShHNYWSbiHuUuUiLybBGggIiKEekNnOWQRyYrAfOUuxXEXffzZPHhgIVJjGgiIveEcEdDeGHhgbBkKxXpPiImfCcFkXwotHhhTtrnfFDdtokflNfWwTWdirTbJOiIyYHjODdqEeOoCEfyYFrRaAtTyYwKTtTCclBmMrRNMmEdydBbFffFWwqQOWkYvXWubgGrihAaHcCYytTIlLYymMKEeZBbzDkYyMpIiPuUmvBZzZrRVcCaAvVqQYpXxYlLNHhYQKkdDVMiIFOaAOPypkKPSqiIlLQSsvfFCRBbtRZzcCgmMkIifZqtmNnYNsCcVFfRjCstTDWoOZMXxmDvOPikKRENbBnbBwLlWArUPwCfWwbBOiNnnNyuMgOPpoGmFWmwTgGKkHhRruUtLEHDrcCmPtTUeEeVucCUkKDxuPDoOdGUuDdIiEeSaFLuUrcCkqyYsgfFGwWOEeubrRgGjJezSsoOFtTvdmXMmcCxQqCHJjkrPcEYjJjmMsbaJjAlLyYeKsYhHJjPgCwPpNDdAgGeECiIcmMbwpimfcajJtYbBmBbZzMwWVeGkIcCRrQUctWnNcCwInNSMmsITbZkKRBbrvBPTgGoOBbWwmeEzuMmhHPpQqmzZdDmMwsciIsSwKiIymMyQgtTOooEVvOiItGseTyIQNAaLxtqNnbbuUBdwdDuUWgwWGwScTttYRBKFoqUQnJLOTNRVvYZMilXOvVlLhJmzZycqDqQGgFOowPnJylLEeuUYwQFQqvuFkKiIvVRtdDFfAaWIrfPsaAGCcymECVfzsIiKkUrcCgsBnvAaCcVaAtBaFfACcnmMLgGbBbBwguUQwesQqtjiIlLdVdtlLzBbZFHwniNnAmMIitsMZaypPAuUHnvKkVJgfFGjZzNgIDIBMTtQqmpPSjJXvhOopPHhPAfAafyEyYFCUzEXsrTIlrZfyEBbwWzBaPwWwWFKOlLVCqBbcvtDdVvepfoOaARkGTOoZUuzSszmYIjlaALtTNdAKkGgiIyYaDnjjJjJJjJFfJinakKMaAWwxdckKVvCUuPpXQyYTyGcPNwBVvZgCcoyYRXxkKrOWuVzZdWwBxTtXbzQqkggpAskBRLVypVdoIiQqOjMckyYKCUNnvrIjfNDJUMiedDXGgWwgGxaZsZrVBOdlFMaAmfzZiVfclMVUWwZPpzKkVvmNJtAHsFqfxtIiHpfjJmtTrSUcCcRKIQqzZVvJQVvCEqIGtJFMOpqQQxHdDGghGKqQmMCrRERrEHGYyqbBQcCHhRrrqBrRfBMGfRrAjJaAaZhZzHDdAvUuKKkpEekKrwJZzjeEmrRMEYyXKkbBCfzFfZQsGJxXjdtPymPyYyBbYpyYMdDBUuAanbLsnyZYJDdmcxXjyjJIijJptlSsTNSpspNaQqorlLRObGAavVXeEkKmzQqZYHhjqUlLxEeXpcXVvjEGYgFflfFMzZJueQkKqhfFlLHDIbtTEcPpGgGnAauUtWwoTTAzZatDdiIlFxsHqkAarRKQkZNdDwWNfFDkKQSsKuJdoXxkOoXZnkcnJjtTeEeDdEXZzFJqXxQXmHKkhHvACpPBmMMTtmIeEIihHpyYPfnNkUuTQEjJetlLpPMxtZKEWwEeoOTiINPRrpIsyHNnhjramvVfgGYDwcCWdyfFQqNFtTEDduLZYxNnYWLlHtTudTtbBoOoyrRYvVWwKkCsShHQZGLDSOlMvGuboOIaEPgGNnoOXxpMEUpPsAaSlqFfgGXxBbyhHYgSuUWawPHXYHXxRrwDupPJjxXTqJJYydDiKOoTRfvDvBxInSsNoafBrOKDdIicCEjFfJeqQPgVctsOfNnxqCuLlkKQZfFfKYyXSCmqeEpPMmlLNDaANgCcGWwPTUlWwgYUuoOupsktUUyGrNzJmbozaAZzOPcyykdCkKcFSIirkPjuQZSmMmDdIbaBzZQNnpPbBSfiqQbBXMAalZfHzHnzjZJvPjJqQjJgGpxXSXqdsnEYJvVIiIXXzmMqPpQZxAXkpBhkKHbaAIiPPOokKpMgnBbeOCiVvqbBjMQVvqnNElLvEeXxPnNfTpPazuskuRriIFBCIdFysLiOdolFcdrGgmakKRHhrAMgeRrEScYLlyvnQvnNpPWxEeSTcgGzZKkeEvfFVpEeLlyYzefzWNnwNBXcTsZzYqENzkKWwehJlLjwFcYkuUkKyCHNAgGnafFFlLPpDDHxFfVfFnyLpPLGggCcNWDyYdwxzaNASDAylNFfJUckmAxIiXaTmTJVktTKvLsbBlvZaMXdDmMkKxeEeLlAdDXLdWAtDXdXbYzqqpWwCsSgUFWnWlLezZzZxXxxXrEUuGrjAnWZpooOzwWCGgWCcemMSxQVEedZjdHfjAuCCYAcbNnCYvVmFfcyYNtWBofEeFObwdDlJMEeldcLydJtrNLlnyPKCcJYyPMmGxUzsSuUPpFVUusSMNTYlhEIvAaEeVLqXivVcCoFGHizGgqflvVwxCDULqQvlplLvGzZMHYFPmMQXxLEGOGNJXxeEihkQqswpvVvBCtTzyqgLHhTtqQnNzTGygtCcHhGmvZcoSVsHAZrpZIzZdXVOVwPbcPNnkKddLUcDpSsPXrMmhHXEmYtgdDGeZzOTtsSSeUFWaGSqVnLsgstJHhoOjurRyYcnGgNHhvwoiITXJyBqrBvOoNbAemolLlYYMFjHgbBqSsaAeWwUuEcCHbBxtTXmCYQKWiIwkqmMmyJDdNpmMPcGgCaTtESsTtgBbTGkKSEJjhHqOMpJjPqAirVYMfkjhwSpPSwWuxXgHhGDdLzkMzsgGgGhRlLjJFDYkIOMruUzZraBbfFMmAaomnNndSWpqQCthHcOkJjKRyYrpLVLlgkzTMmrRHhtTUunVxjhUescBXxZNeobRMlLrgKmWVvbBcerjqVcDQqPpBjzaUTQTsSVTBuhhURePtKROSYCjUuJwOoZzlojJbLleADjJpPTkqNnQJHfFNKjJknkKEJYZxcCHwimStNFQrfNJjnoOVQnWtpxCBkKPWwbONnnNxSXqQmMazyUUuvqQRXxnKCsVSzASvukKInGJRrjgyUuYVPplBRrCaCXBbykkKxXFIiPuVTtkFXdYyDtxnSNUVoPvtTwfvkLlGxKdDKmujErAoXxcWpGBbdvlLUjTBWIgGKFCcoKyYpBjudDtAdkKDxvsrVvBbpSdwJgwFzxWOCahuLlgGfOMmUufPhHeFvviRrGJVvjcRrrRhYUnXxzQqcVvkbgQnNNFfnlhJtWUuqXiZwoUoJKoUJjiuAlsSTzkKAcrUTOwWoQRHhRglLGvVrmdSsXunycFTKPpiIBpPPeHGgWKQBeNYFRrMmOoTSXvVBbcHiPtTpCcIJKUuyXHhvenQAaCxXAaXRrNGMXsoJjokeaAVvEOobGNrDrRdDdREedUvbBtTUzuhAcpiIrJPETtxfaStTfFyYMYEoyYkFBphkKHgPiIEUuRyYUSGpuWXxYhMmQaAzZPzZyePRckbQYZBjJqcdJjDGiGgETtaXxWwoWFgFfGGgJCTBWBeucivmUjJKdyXavVyDVgyLgJSIxXihTIyWwyIQqvOKocBfLlFQrjEeyYtGRrgPxMmpBfFRdLkKZzoZZzQfYAnKkNBluVvUDdToNnLTJLWwlQoZuUEejSuUlLDdPpWoOwPiICPwWpvgaoFnNjWwJQNnfFgGYcoXxbURhlsSmdEaPwXXxxWnbBDXxPwFpFzXgnNtTWxXDdoJjJoZPIUjiIJuipzuUOFfjOoRrOwGxNUunkKZZzPDdpfPcCoOfWpdNpAeDMMmLHruBOsSmMaACyWvVwiIZzcClLqfYyOAGVPpcyYpsJzOqdDjCmMctoJjOlOkHhKtNRLlraAnUuLbayFqzOUuhHRrpPRrlDQqWwrbPXpTwWFfOmMoJRiIEeqbmMCOrRkQqoViYYitHCaAaAcsjGlAaYGvdYADdxYBbDkjJuMVIEeCUEbwkKyYbtcjHhYKkyyPpYfJjwOlLDlLLldWwXMmxiRxXrIjJZzAeEdKkDeIgCQVvUuZzbzyBbqYhHyKVvkBKCrpEYpphHPyYqzZFfHyuUwUPEegdDsuRrrUNnuepGPwWbfKOeWwyEemsAFXeEeaApjwWRPCaHmMqXxQXxUZuVvVuDnyYgBicCIEeKOOSHhxmglLlLnxVvsScqHhNEOohHVxYbBkjhcCCbBxstLlfFfyqQnEbqkwtTMmhEpxXbktfCYNUBbxDMCczZxXrqRrtuRCcCaZjJtLaUbBIuOkjKkOuOPpuUWzIxoODdQwTjVvvVHbBLnNqSsGBKOoCZjJNuyHCgIVVfjJEpbBtTtTFfFaAooOFlLUHAbBYVvycowGgXZQtTqOoSsfWGjVvvVlLWDsPwWRSVXdDaTCcUJbPkOfcCkiwbtJIiuVDKjJVvzZkgtFwWnNfTPwCOBbaReJUMkkXgKVFWCMmPpcgGHhVpOvunsMmNXTxfKXxaApPMmvUpfUuKYIixcAcbfXxFLvvVGgNnNiUVvVmMsaZpPsvSckNKkeErMmVuyYevVEFfYZAxspPXJjodDBvVpIuwWUibcRrjJeEdDXPTrRYywNhHqvFRqfnTsMKkIWhoOXzUuyDdjehZsSpEePzjtdaEBOLWQqcysLlorkTpEAargGuTtHHrCcRMmUbtvtqlLtPpuASsZJrRbdCvQJRgGECwMkGZwWzZgGzsVvHhSlLRmrBOEnzwWeoOEbCoOSEuHwWJXvNtYyZKGiIvJQqjlUuPoCTcPwlLshHyYDNMOGgARRmoiKydfIiGgrHSCcZmKZlUssWHhFfHJKFmyUuUuvsSRIuUaQmGgoEeQesgtGKkeANnnCcPpjOogGxjJXYMycMhkKGXxgDdQGGgcChJfmyyLOoOMIiEiIajJBniIVfFbRQbYjxtLlpPOWZzVCSsUvVTSkKGSnkKNlSsNOovQsgAwfuGgEsZzLloETyMexRxphHIiPdcCCulcCAarYyLlRzZDDkBbKpCBpWvoIivxgGDizPRGgjJzahSvsOCzVasSAMiIgmMTGYaAgtZSslGQLlYZkKcbVPWfFQqSyYKHIjngogelqpcEeCfyhmgVPVvLVqQludcXWLFQZIhgfOINnxLlQlOoieEdDeHLPpytnaEeAmvfHhXxWWwwxXxPOopXZuXoOgpjkpKkYReETjDYlRrCuUPpDLmjVsPpSvLyYTVvLlnCcCMycBCeEaxXyoCcOcciQqIUaJFhDJzDvqXsqVAavNZznQEwcZMIiCOocmOuUPzwNqQtTaJRgetTRUuXEwNVwWvQqwIiOofuGcPQdDyYQZyBxDxdTawDlxwWaUufFoOEmaAAfFmMSBbvbmMBVszVLIiCcSltiITjtMtuUMKCujJjnGAalLgLYpPatTPpdsanlLAZXTtnWwDdGllYVvNWwvXhdtgGTxXdfAcChHNaDlLdgGnAahcFNnftTYlLKyCfWHuUJjEZUuneJjQQqCcyStCxbnfFZFEpPZkKPGsShHgWwCtsXwaAVxSVvsXqVvNVCsAapPGRLSslNnDCfLODoILbBllSYfDicbfCcUKSUZAKktFjJpVbBemSYysVvJjJQjCcJIyYcoENGmnNRGgrKxaXEeYyxxiMmjyiIUueNulLUHlLuUhCoOcSVvDcCQxsZzUuVjzJZNhZcCtRrxXIiThFzLmxRrICctTFXxsqbACcBiZzfFfFFfMsGgzqUJpehHTtEKSsLiIlRvVsfDKYYCponNZOBMjmMSFfsZnRXxgYuvVuTKkKSPUJjxXyGpPLutpBtTbBsSbndnKkQMcsxkFyuURrYzqUWwIicQXNnFoSTCvGpPpyYUukoRbmlLwWMJjmMFAOHpwWPhiCcXuUEefFbmMWwVdVFrMmtUuYLlHhykIPpjjSsQQqtaVyvVYvVJjhHvAUCcdWEcCeRrCchywWxfFRrDdhpsSWAwkKvVWOowsGVeEvQLyOoYuemepEePrRAiIiPpBUgVmLosdeECGgcrRuJjMmUlgzqcxXOeElLDUAaiPpIdDYyhwyuUXLYylyzlcCUEQqaAeJjefnSsojJOaSsAFzZlLMARjJJBUuyYXxbIiYSTAatiDdyYntWwekKkzTXmTFjJFvVffqRrtsSKFeEEiIeibgGcalLkKVhMmMxjfxVvbBoOlkKjJLNCKNzjJxKkKHhODjUkqkKdndDnzKhSYzZMmywWXSsfYyFfLtOyYTEeNgCeMmYyDdBiXxdKOokcCKkVvEUjXbBxmLGpPyQqgeJIixzZtTCPvVIiuQWwJPpyMxgBAnPSBbPMmsntPpfkKFLFfTPtTJiLyYlISsjfFYJCMAlQqLajyzYNSlVDdoOvBNHhPpbYpTsSDyYgSqkKyYFcxeJjWRdDPkFfKkVaTXxtzFBjoOJxXxXbgmbFbsWwSQRgherReckgXDWwJjdcCqPomaAfjTgiQeQqcRrRrqjiFfkrCcCusRMFPhIiTXFDdQFSsffShaTpPjWwnMTtcCuvmLCFtTvjJILDojJRrbvRzSzABbhHEsSImuXbBxjdGgKkeEnFJiRVucCmTtJoNyYnPSspODvPuUYvlrbKSaPGGKZmMDBRrbvNhHnUzZwGzhHbxSsgGXWnpQWSswCtTWwsScqCOogYtqeEjJxDXmkKAaANWwyMeEkKZZztgKrFPvVmMEZzTVCQcvdDokfmMpAzZSsbZeYLlFBbzEeRLDditRQqSxeZrRucdDpPRcZzCrfeYFaAFzZaTtprKMmkfFRzZHVxeEsbizZdihJjHGhaZzXxYAzmSTaNnINdDWhSsKkfTDgGvDeNnyYEJRrVBbvCcTSEWSsqGWpPbaABltTNbaATNWZzwbSGRuIiSZFCcvjJCcceMnNYsSjJgSWwIipgGFSsRiwCclLTrhHqQRrtTfUdDVPpfZzqWjlLzkQIiqhHcCrRIUufFiKZNpWOoWdDwfdQCeEYMjHoxLIBHhbmzyWRrnNbBTtwdDrntoljCcNquZzQOWwfkCARracbLlrYyyjJTbBTttTCsWDiRYnNrRyrIXxBQTXWwlnNnqiYtEcCSgTqQoYyLlpPSseOoOGqYYLlksSbHhBWqQQqJwWjCSbwWFCwTaAtWXxctTMmfvsiISiIVBlbBLWFXxfMvVmMUZuUNnMtvHhVpbVzBGgtiihnNxXHTCYaAyuqiNnWwEeKFfgEvIiTbBtyTCclLACFMIPWBanWcGpIQqiySkEBSJzZyeHOohCpRKhcMDYyVfPpZEBUoSQKRueNnEUDdmMlOofAsvVEeCcgpUVvXdvEuiIYypUfFsSuMRdhevHhVkpPKlWMwyYxHhXfUYIoFzZcWpuRaqQerIpoVdTtzwdFfScRrJyBbYrvSSsnyPpMuUTQpPDjJdLlzFKPpGrTrccCVsYpoofvVmrRvOoaAPpAgGaIXxnstTSdvVDNiqyyYOonlLyLlPyvJjWwzsqQSZrRzbwaAaAlOoLWVKdklLdVvDRBUwxVQqyKwoaAzZDYDeINnoOBbinkKbAaPpLtkWOoecOoQoJhojwWaABVvyYtRNnIDwtWbBwFnLFKOToZzjJOEeNRaAaHhAHTKOoxXkOhHWtTxKMJjotTKkkKOCVviGWEewUupFvjJVFxeTtoFaqwoGGNngeAvVaEYlIhIBswyntRrrYyXxIiRBbTsGJNXxfFpTnYjGgJeDdIsKDnqTzKoWfBbxXfFnANEDdBbavPpVZHrAauCcKwUgBEeCYlLTtKhhHCHravrsjjtMLltYySaAcRRZtTaAzPWJjgWcCulIiqqQSscUQLfFlFNfAlLXaAXOoxBqlFfYyeEWzfFZwVvLQvVtqJYiIyKkHbBGISXxicCIwvhHSDRPkTfaAgCUueqQVpPbBRrZcgKdvLmMpPBsMCzPrRWwEYdzZxVvZjvyhUfkxCcioYUZRKWwkHiIcjezEzZNlLPpDdweaMyCcIicONzZgTtGUNnuNnrFMmpiEeIOmVrPsAZzarRhaAGTSNntTsomWgGwDdDfEoKklLOXxfFoQqRrTaShHyYmMlHOoJHyuEaAoEenNiIzYRrxNsbGgwPpkbcHYLlpCcOoTtqsSQJjQyigZjsetTAKLeUpPmRCUuJHhWwjrtyYWRwTtDdkKzuJyIoOkKkKiCmuBFxNgLVGRESsfpPBlNsiZzIzzwWhyGZzZfNCdWvVWNaAnOCdNPpiAcWaKsSkmFlLtTKkgujlZmMRJKkQSBcCfKCCccCnIiAOWCeFnKThhHHONnoOgGTtmiUNnLxRBeOoeErSRlLQrRSsVFfsiRizZBdDkjitBxXvZvWSDYyLlghHFfyYNnKwMYoYYgljMmJLymMWwYjcjxXxXApPllkcCHEIqEKqbNdDnCRrcyMmlxhHDdoerVvLleEqHhQqqboOXWwjLKDaiTrRgOogGiIQtTQPwWGgNnpqpPdDVWwaBHndSzhgDdGQqwcyaULlmXvbBAaVxvilLXxEeKYykgDrNaFfTtWBBRSXxOoslkKLrblQhaJjmOpWkftqMhXdDZywWVewmTqQtMKgGHhrReEvyYVhxXkBIqzDdbwbBeTtSFfCWwIicAapJCLlYyIitTdDFfOqIdDtTZzcCWwmMioOlLSneZzEVbAaAaPpAdojpZUuqUkKeEuUYynNPpuGghUKzNnuaRFeEfzbpdWbQZzTtxnNTnNtyfuLFpPfuUlgSsfEHpvOyYykKeDdyboOBWwYXxJqQjUlYyLbBkKrVvRlLugNQqMrRmgpsVjtZzTJvTZeQRVvVkKvDPOEeovgCbBgiPpfDcTmMtOwJjWoqpUyYuNyYCqfFJjQcQqkqzPwCluXWPFfGgjTvVQqIBbIwJjblliIWAeDdEbQXxhBbESseyzavbBbBIiVIrRHfDckfFPsPOgGorOXawWbBSRrDdploXnNdUqQNnPpvVLGplbhMmHYtTykLTtpPUocGtQqTlLRmMjJruBxwpPrpPmcCqQozwEedJtTfkOHOAJmcwTtWBbCuSQXqQlLjJbzPfFRrpkKzZxAkKVuhnLPpLllixXnFbMJJjbBjSQqsXcCIiHjJhNnMmvuOqQCcQjaQHhlpHLSJjslAcCQejwGgxutSGRQDdqomMpTWVvZsUKkJjoOedPlLSfkIipBgGjLfhHLlhwWHjYuPmkzZIiKAsWwSzXoKrnqQKbRrsSIpOjJeoOEMmdSsIiySsYDNUtTuUEDCgydBDdRxXZztoOeEIilkzzZvaARknNtfdZEgOsHeEZloOLzxLzdismpHWweEFqQRrwjlrRdjiIQLBbxkJQqmMjSUopQcSKkqHPYSLoQrqQaZhDdMmfHRCTtcxXrnUufkIiKFFvdxgBJahHVkKScVSHhsfFUHYaigGuFoOcolLotGgTCrRgUdnNcCceEuGSCdzZDeqQLLltgvVXuUNBLlklLVvwQWwezZuqXUKkKbiPXxrRHhxqGVvaAaVvSDdmHtTbShHHhmAmMZzxrkduUSxwLQqlyVvznfFWoOeoQlprRIEAMmVvkQaMoJFAaqtEIiAbjVUuUnYLfThuUBbIYyHiIhipRqaAQhHrTtJjPZGELlFnNLlvzpVvidHhDOoIeEYystynNHIiROhDKpyiIRYyvVSxXsrMuYyAaviUffFtTgullLGAqQcuGPBnNbpgUiICBRrFfLlLmMnNFfrRhHLlQqWwzLYeccTWheEAcCaZzuRrlLHsLlnpPiImMeGrTtfFdcQSFfDdDYNnyPTqVvQqHhQakIiuUbBSyKkXaAgGxgrRXxzZicCwwnQoOqhbBHNWwGTeEtgIihCcuUHWoJOAaTEeqXinNqQCxXJfzdDPpZmMsunaMzeUNFiIzcilLInNfiIxgvZzVvZzdDkJjKCccmziWwLuGdUVSZrRLMRyAkKdDvpPjJVYXtTPpBbEyBbpPLqkEnNXxfZMmBbFfIBJuEWweNUZSgkLDXNIrRAfBbFxPpbLwWKwWIjqHhdnNfFWlNkjJlTTtTeVAakKvOFfgKkGWwQNfuoJjAaitLUuEeloyDhFJuUVvYZBeEbgQqSsuUvKciLXmuUMmMkOowgscCjzZucrjsThHYytOoPiaUuJCcYyjAIpKiooLAaNbbPdDoKkVaDSZmPIiiIptTewhetGLFfSsyLmaAlnDOAPNnpDctvVTkKMGcNqQnKXxwWrTflGgfFaqtfFJjQqTcrRCPnNTsvVeBbEStXifFoOWshacQVNOoTtLPlLNWojJzWofFXngGNxJCcjmMLrKmMJDUTBZzpiguUaxXpxQZsUutTHWwWACLUulpPJjcmWwMIIdOoRrjJIlLeKsSafvooOiRkJjKEerfWLlKkJjUPpBbcQvYhfZYyQqitIikKPhHOogETtVVvvwMZzuaHhizZAsPpmMqKQWwPAKehHFqQONBOnNrnNpkKPRUgdwWGgEBbUDiLAabwtTeEWqifLlDoUgZfFzSsjSsZzmDdzoBGIiJmNnTtTtJEMmAQvOoPpCxXcVqOQlVzIrRNEsRsSpGgmxXHvHNnoOkKhzoOSskUuQkgGLlfLlMmLyTRrRiIgfFiIGoOqdDdfFlIkfiSTtIiAVvEtTeaJJZzrKMmIAfNCcnmMGgXtErSDyYvAXdeEFiAoOaIfDZcbJjHBNnIidfqQwjxbmjEjlLMmopPOoqQkwwWhQqkVvQKkpPDdmMeqEJnAaNQqjmMklpPgGCcLfIiFlLtjJsPLIhHyLbOkrPAjHshtwhHjJNnWuUUiIsllLLpfpPFOoWwumMgGwWoNVYmWXxwGetzZMGkTAatoRNZeEZACcJjJvoXxwWpPJfKGTtsMmPpSTFolLKkftfFnpPRTtrkAwOoOFfWwPpeRFfpPXyYESsuUsACcajJzuWmqQyPxJjBbRmMJLCMmeELlaEYyBbUuvVGKGgIQpDBCkmidnTdRZzZWwNgGnotMEeIiVNYLKmJjLlzxZzXEEesrJDbBcCtmgGJjYyMdfcDdCkRXxrcVvAcCaCZVvzBbeETeDCfxCcXkKFcCRtnhHDPeEUunNNnplwTsStepPrNqIgGiQJjHoOLlQWyraxXAAaXxQqTqudDyYKkpPsSPUucmMCkeEKWIiDPpzhHxSsIibaAJEsSHQeEqgeEXxAjMNnkysZqjZzjJoLGgtUNOaAUdlLMhEotSCLlNnORrGgvlLvuHegkTLNxXnGCcgSBmJjsmfLGeYyQqIYyAaWEVvHhTZJGLwCclvVXsziIZSzpPaAaAhdHhFPpfiAtySlLCDdcsYjJaRrNNbBRnNzZnNcCRvVsSrcCYNnmMzZgqnNpYpPAQbYTtqzZQyopofnNTXxEewWzKkRePpEjKkJPpuzBTWBbBborwWQqRxXoOvsDdGaojJKrRCcCMmckWPbTtLOoOoAyxtpPTMgqERryqGATWjxXJmocCwWVvcuRXxWKgGJnwFfLNhPpTtjZZzsoOtLlQRrqbBOojvVTKzZQyjJuhdDlLiPmMREeSNBoOmMGjlIyYqsSQXxGXYrOuPYypLmmFFMnNaLaNIFGQqtTIpbZzVvMuVvUmfFeMmnUjJuNYyHcRpNnclLrRCLlPgVDdKkdjJoODNnFKaoOozZOpTHUuhCDaQqHKkCcscTfWwTXfFFKkSrVAaYDRwZzrRZiIzWrApPpPyCcyLlYsSYsSmDyYOnNowDKkdcfFEeGgNmVMIdxSsXDCcixbcAagGCQqxDayhHkKkHhSsKdFnIMmSSVKMIIwfKkSJmMjOoGAariIRaAWbyOoaAYhYytJsOoSNnCVXxvVAaHhUGgZzvJancCNVvAjLYaARfaAhHmMUutHEpFGVFToOXHNMbBcuUmmeEMKkFXWufRrFtTHXFYyvmMAjJaOMtdWwEsSUNnuUyYuezZgzQpccdJuUntTRaAyYTtvonAsrRMmiIaKkSsmJVXCxXcfrDNuURrnUZznUsYGgWxHfDedVvFOomjFfRUIIuUIgGdSndcDLlYXmfFMmMhHIijkuefMmMmOoxoFYyHPgGpLlhsSfAizZMmIUuRrwWgOocDfsiiIINQqnClLrmLMmtcKyZGgylwhpPHJjzZctdDdkXxKqQzxXPSfVcCvzYeyhpPZEfhhKXQHhQqbBtGgTqqWwZzkFfoeGsWwGPXUuaaZzJbylVvwWKCdDrOpOxHCcledDVGfZXxziWmibLIAaFRrdIMmiHhIxfFiVvFfEKCckOoGgApPYKkbkKBWUCcUuUfFEekvVKaDlLuUWDdwDoOwnTJjJjKXBbpJNjQtkiVbWsSsJjScOouUWQqFsOYvVxgGDtTygGYZtxXlLqnNCtEvyFVzHheQBbpaADXlpPonPpNwKuBbaVvzpYeFfjJeEzyHhzEeoOjoPpTeExXyYbUwWuBIiahMmqQHQqnatTAwMmWijJKkiIIpgGwWhHWuUSspkKjmkKMJJRrOohHbZfFRroOCfFMXnNIiGzjJIEzkCqSojtAfOVrRLMWwzZeGgDAauUjQUDDuUddrRQHuRZcwgKkXMmxGhPDyYseBtnNTAjZzXxUPpskKaAJXkKxPfTJwWbBukKFfnOTnBUKSwWXtTqQogGEeVvyYNnQqrhWOowHXxnZzmrgoOeEOdDosdDSqxwVbBcCnCyRaLnNUutfFxGnfOodcEeEbwNBpOeEoVvPRZvVhHvTuHRFZIMZHhcCBlzZJPpEAOzESsUuepPBaUuBbwWwaNDpPdtTnwqMGgrqlLlUBjpPYJjIqSUyDdtTngWoOWMmwxXckaToOtTBeEntTYiEJxDdYjTtFfJoOlLrwZpIgGpPuNnYqBbQfkpsgMLRrxXpAaseENnSOoDdWnNCcEYYWlkuyJjamMCcHhhAavVVmAQubLfFaACRRrhtnhylLJhHjRrdaubBOoHKAPbBReqNnmLlqAtfYyFmaJjlLOyqQYKkBHVvSDdjtIDdvNoOWlLqQwECcSkzZMoMmOmKLeEZzlFfqAhqmjJMQnciXxXOthqeEKnZzEiyNjIiIPYfFylLbNgcCAzZGPoOpVvctTMExXdDBDtLCcCNeEnauUcLuUbvVascCSEPGgBzUubMBPNNZmMzpOnoONTZzoTtQqSUkphMvVDYfFycdyYvdDeELqfXdDxknFPpAYyDdRQrwGcvTlHTdKfFjJUukDUuxXXxGgzMMUhEeKkwmFzZfYEuBStNiIyOnzZgGNouYcCLlyVvEtoFmMfFvCcMkKbfFdpxXPDCcBfvVyYoPVvwWcPpsnbSqXxHhQbVvVinCcvkoUuFfOmHhkKaMzZxyIiYoUuAayXOoxSsXDdBsSbxcNGKkoQqboehvVYSjJsypPHSgfDoVVbBQKkDdDdORreETtHqKmMoSsvVsDgQzlYHTAlASsaLoOpPrRKYykbFfBKVvkKpHhPTgGscCSvZzEewjHSlwWSsvuUcCVRDdriISsAHvUuMUBbumKhHMPCAhHaZzguUGZDdJEeLoOfWYyDxdDRrkKJWjRrZamGTzMmdXarTGgtTxtTeYUumgnGjJgHxXhbRiIUuuETOoEZzMaAgBbkKVeVvMmEbSkTJnNqkdkKlLjJDUlYyVvEeEeLtZzGNnKpPYypBbeeheEgCcTtiVQqkKPmGrUuorxOoTtAahHXRSstTvVrRZoOzAaAaQIiqfFaXxCAFmSsMYyDDlLVjJvjtvVfqyYBboYyOeEzZvVQEVBbcSsFRrfQwWKFfkrRhUuHqlOodVvsSFfgGDfFLCJjoOveXIxXsSVvvPpFfrFPUyFUgGCEecFfsSTwhHWtqMlKhHUuhHkSsGgUMKXxkxXzZgGkKIiLIrRjKkJxXiqjJjYZzhzCcXYBbDbmPpMvVHhBXezZELleEoSsUulLjfFurlDNnGfFKQqkhABUHxWLllCQqcLuUafFLXZzxCznAaeRrEubIXCXxRmMpPyYgIwxTEFeMmEjJNQqaRrPpgGZzBJjQqbBPanNEMoxsSvQAaqKFarGgkIiKMEOsSPSsqQiuzZnpPDLpWwaAgMmZzUAvYsprRCcPSYysmMgeNFfOoRRrUFHhfmHvdDlLhAaBbyYtfFdPnNHhImMiIipYyDpPVuYyvVOUXmuUwzPjJpZReEdDrWMsNnSOLlWNnsSsXmMTtxMFfFfjJwrRbBWfFEqUqQuWwQhHnHhHhhtuZvvVnMhvVoOHDdmMxXWwXYhlLsOeMtPGgJAWAawAaaGlVvwWVvYyrKdQqFfmmgFfvqflMmWNmPRrBiFfGgpORsfqQeEnRpPAxNnlLXZFwWslLAKWwoiIFfFdZzDlluQxXqKJcCaAXVhHvFfyylLYYTtSqJjlLaALlxtRIinsSPpNbBBdDRcCrOozZkKYMLTBrRbFAoOYwJRruaEKkPpFfGglhKyQqXxdTtDYcwWYyqTrRkKYVwXrQqWwtSsTHAKzyYhIisWHFfhYkKvjIiDlfOojauULlJjACcebBrRvwWPpyYiYyRVvQqDzZzABbaiUzvVZpPnnCcNtDpPGgNnQqrRBaAnNIzUuTsVvzZodeHfmzZzGKUukHrHhfFQqRLlZzxXzZzENnHbkpPuUKBHhoOuUJBbwWoDduaMmecCEUumMSbAFfaImMiBWLLSHClLkKBbNnWbblqkdDgILKsSWmDfFTtAavVWeCcEkmMgBbGGgKnGiUuYyutscCCOHhohaHhGgAyYHcDYyDdQgGqtsShqQZVviZzxttTTHhsAaSSImKRNJFLkKrECsVvSceBRrOhrVTujJQqUsSkFZAaZgGPpgGzQlLyZzkxXMvVMmiITtmnaApHhwWmhHuUMlLJQIqVMYoHhOmsJjncCnNwWhFmBQcvjtxPpMsSalGmMiIgNnpPzzZRrfsqCeEcTyYCclLtuUqYJAVfNZTtbBblsSupPUkCzCFfovVBSaAmmfFWOZXxzUubBcWwCpPHhFuFuUfGgNnXxqaAQIQAfFICkKoAaOxGgbMVvmGCcGjRrzaytYrMmRtZzlLgIiphHtTUOouZzPYyhUOpkeEXxKrHkkKRUueEJsScNnCGgkrDdyYmMXxrcVSlUCVbBOovyYcWdDIBrpPeExXhHzZRITViIvcCtidtYStTjKkJbBnNDdsyGsSWOpPeEohHwoUckpPbBVvDmpFAOOYtSsEeTougkLoOVcpPdQZzFftTXbjFvzZTQIiYGhtTHhHsIiIkzZUuXxYyzXXxFrRYyvTtiITiIzZQqtcdDfcCOnNMmosNuUnNuUnCPpcCGgHrMmcCiIvVBSSVepOoEePslLiHhjNnJzZDAoOBVjKBfKYykSieEZYCcihHpqQQjhZzgTPpREerifxXKkFeEfOoCxtTaLeElPpaAazukKbrRkPpnNYyYyXPpRzOojnNuUtTgGnlUxUuMmHgsXxJUujtNaAnLFfqJGzNBbsSeEhcCKzeEZrhHRPpysqQScCmMMJKFSsTnNtfoXxbBOBdDuUBbelLKmbBPMvViIpmMPbBAkKaOQlFfZnwPpWuHgSsGhsSwaAornNXxRrlRrinrRNUuXFfvVkbiIBXGgxXxKpuUPxrRujtTTQGgqXxtOLTvVtYJCcStTHqQhCcuUnzPpZlBbNnetTEuCyYciFfbfGgTxFyYGpRrPgfHhwTWprRQpIkymMYKoOeECghHYMmLKkTtHhueEWydDYYvVAayboOzZiSsIBwJcAaEeClLrRODdcqQWwFyBbYfCoKNnfFmMkWyfAIoOiPWwlLMDSXuUiqQZcCkKJjONnonNJjeEecgxpPlkKFfxRrXuUbBGThHgdbBDCvJWwQLyqgesSEGrhVvGKkgGsSZzQACcajpPDdkoOomMLGlRCcuFlLTWUTpPzjmCcYgGyGamMnNAgOoLldbBNnDYySKkQgTtiISmMHhJMmWlmMLwKkrRlmMLjSsNGOoXjBbUAaYKaHKfqQcrRsaAootUuVzXGXzIiZFSsudiHTisSmpbxNGDdgnIpUvzQurRNlLnUTtCpPcCtTgyHhbBHprVvRSIyYykGbbYyLDdwUuVDdzkKOcCPQlPDdiIoFQJBbXxjmSsPjJoORrIiArdLCwkuAstzZbgGYyBaDXxxjZQqdJbKoGgDdpPOVvJuUZjJztTSXXBbJUfwWFujAhHkKlyYGgyYzIFUuAaOomMfxXftTHjjrzxlSsYycCcCxsAtTarRSawCcWxBbXwWjCcPylLYaHCxFXGgTUOWrRwiIFjHhsKkUYgdDykKgzazCdDdUtTuDGgrJhvVHEeYyiIjEecCknNNnMqnjJNCLlkCCcdCcDCEeWTtwSoOWjJhXxHWXxYyEeJCcjbmMBKYiGnNAawCYynNDdHhqQbpGiwWGgmMqYyTtQIggGleEXNLpOruURUuZzWuUwXRrZzoOqhjqQnXxNzZcDcCAadxXRrWYyYdcCDyPpxsoOrRXVveiIRrPpuUrRKJjkDkiIMicyJwPjMVORrzZovoOOotvWDdwaYyjNnVTKJjincrRfFnNvrRGxdDXnHhNfFQQwtLyYlTyYxJjIQqXTtnNXttTTeELlLjpPJHzYKkhAaHsSyRFfrxBIigGQqbjcKAfuUFMmCfTuUHhhHtNzZQyYOoZzZzvMXzZNqQnFfxVvRjEepPpgGgtBCxXFVQqQYBbySsFuUaJuUjgGSmiIjSnDeExyYvVMmBbGaAgWIiwMmHhxXXIigGMmUuLxXlNGkKiIivVIgafioOiIIHFfFznuOEOoeFHkxXtlLTKlCfoOgZoQqSsvuFfUnNVpPCTnNdDiItcVvdbuUBCcDlYiIyDhEezZHdnGMyAofFWFZtTzMtPZDdzsHhcbBJjnflfFPpriIRNnLCcQfwIiKkyYbBUuIiEeQgGhHktTKcFAafkkKaVVDYylFlrRLOIiAVxqsSsSHQtTItAaTiqYyhQbBHiZzkKNnIZrRUtTuGgJzZqkqrYVsSYENAaneZzyiwRbBuVjLlcGgCrvVRMzxXefHfFhxXRrZZzzaZKknKkEtTeeEqQEeWiIwkKjIvVixXVvtTJnNSZsSAoJjHhOvVFHvxXyYwhHWueEUUmMHhuJkKjfFnJjewLlWtQsSEeiwWGgiIQqdMdDmwVIBbEikKzZsNnIiShHRrQDWweEDdHhIidrRAaAaBbcCSuxXzZAwWEuqeEYtzdZzZGgpRPprIirRzhaSWwsXfFScDeuNnUEDdleYyjamfFPpZMmOozgCtJHhLDdYYXxjJOoyaARrZGgzCPYVOoZzGgQqKqQkvjcCpdQFmrRBwAaWGRrgrRyDpjWXeExcQqCewfFLndDlpPLoOhBGbQYKkSsyjJYEeUuyqpPjIWwiQDWwqNIaAhHotfCVvgGHhSstWXxqUusSQPSKQKFOscCSOTtpFfPoFfoxUEeuGgIbNqxpPdwWDEeADdBbaEeJWIsSjQoOqnNJixyYXNpPnNrRWwndDzZYyUuqFOpPofcCdtTFfDQbqQeLYyMmdDtMmTlLpPSsjVmMGoZzOoXzZOoxlnpPwWYyNlLLHlcraARCIlEQqeOoLiLmMrRwWfFxgHnOonNNWAanCXiIxdDhgfFdvAauYEeylQdcCYeEpJjQqPicUuCDdoOeMZPpLbBKmMRrmkKJgGnNJjQLlqgGGgSnNsYSsyHuUAvVqLSsVjJlYyLqQvaAGXfFaZzcCAqQSDfHkMjJjDZbBxXLnsfiOjJMmHzsSZvjYSsyaOomMSrReEzYJjyOouUyYSsZsAdLxcstSLuBQqQECgyYGcaAkLiEeCcIDdjJlcCHbBhLZHhjCcJzrzWhgGTzuJjgGOVvOojJoLsSTthXKFRrfLeElPpHhDdHRrhkDcCdNuUAjJakKnCcuUKknNKkCLlTtPpNqQhHebBwWrRwWKkvdApVyTtjuUjRtQCVbBPpvcyWczrRtzhHIoGfRrFiIqQeZXwRvQqaAyUudDtNnEeLldfFTtsnUCcBFTtfgGWnqGeEIgGwWYANShHkKqFfclLoFrRfrSRVXxuUuObQcCqBocCiMmIUWwPrRcCpUwCcKoOqQpPTRZsFQqfUVQwWqMmIiGgDdXxvMmrRvPpVKqQkjaADdyYuUutJjTdtTDTtkBlSeplLPEjIdPApYeExTtlLyxXrRYbBrXgGxBCctiIDKsSYhHyYwqgquUQEeGIiJqLtTsSKkKZzSsksEeSFfElZqSAaLlrRoOsDdSvIiYzZvSsZtNnTJSvVgsSQbMeSskKEpPKGJSsEeFtTDdqLldpPzZDuBbUHWEeuRNNfFZHhCiRMwBNnbReEwWEeIiAaFfSsmnfFSsNMYFfwWIcuUCTSCccCNPYXCvVZHHwkKWhJjhgGDdTonoOOmMoGVvpPoOgPLwWbtTByAbcllLLyYCpPPpySMmIiAPpsSacVkKtNSsnjJweAaEDdAaZHwbBHhxFfXWXBvnNJjXxqQAaMRpVvPbrRqQvVqIiTDdSZDfqOOolfFLVvAHhapdDPxZzpPXeOoEosSQIuMmUoaeEAiIUsNAapPdVPpmMvajJASwWDiIEagPprUpBCcsSzaHhAtWTtfFjJwTaZzAfFZIrwWzwTPdHhHhFIieEKkJaOlLobQUORryYMmuUouBeWwWxtTgGNiIyoOYnBUuFQqfaDhHJjjlyYLRrcCzrRlYyYFfGSsNngGgyYyQlyTtvVVInNivdDnNloOYwrRWqQhLdDjJbBPuUpqQjSsBbbBLDdHeEfFnWzZyYwQTOoXwuUbBWjJGOwQqTtHhbBrRVvLLlKhBbHkDmlaALcMdDmCqQeEfFxXbOopPUzlkKLrRAadkKfFlrRPkXxQIiWwIiRrqQBbnfXxRrFEemgUKkBEWFFNnGjJgfdiIfHfvVxXPpwWFJjsSpPuvVvVUCWyYiIFfsDdSZYyzsNnSghHSsTtJSgfPpFuUGMemEeMoVvhHHxJjXQqilLHhIfzxXXKyaDRrdEdnNxXwdhHfzZFuUQqDWzVpPLlvZimMeMNfTRrrMmvKkcwNtTanNQqwuUWBsSCcbnpqcMmsysbWwQqBdDLDduIEPpecsMJCWWmWwFfbBvVPppVvLlPKkQBMmiIScCcCyKlLksMNnIygONnyYrSEeHhIdoOeYTtjPpJjJtTZzyPzJjZrRpXvVxgXxrRGsUdDFzyCmMHhcftLGIigzZuUaAlTFzZtnNQnNIgGqQauMmqQYyNlLjFfJnuUvmTtvVhhHpPjjJvVivLlVIBTtDdybBYcCYQqTtFOovIiMmSsVEnNHAahkKDdeaKkcCkXYEeXJjgCNhHGvHyYlLrzQqeSsEZRteEoOTYwWybvFfVPTlnNwIiAAuUaZzgOoiImMxsVvSiIhqUuQdrRDvFiImfFMQqfSsAREeZXxzOorSQOodHhEeFfbzhHZKmRrMKULEYyeoOHhWBbEOdUrqQRuuUtGgkKmMZzpPVeXxEvfcCVAfQHpKkFfPSCYyYytThduUaAWwDNnHrRcaAZdDOiIJiIisSvJjVNntTpPFHRrpmMLJjLllPRrQdDCcqETtegEeVvDLckBbHhiIVrrZILDdluUihHYJjFfyzfFsPpFfjqQYyOVvxXkNnKZBbzLvVlEeZbBMrRmzQqmMaArWwKmMkkVTtvKdDBbqjCcJbBVXGEeoOzZXxskAIZzRrMQCvErRRiIjQqOTtoJzZpiItdDqbUqQujxuUXqAanNkIQqiQEdqQDJjBbUdDqoOIArduUzWUuCcFfkXOoOFJKAakuPpcWwTtlLwWnIieENcCCQkVvKdDquDdBVvgGkkKRQqgGrQqrRngGrTtQqjhDFfzZdHWwNnJjJzZTtqQLlLhdDHPFfpvVDdyIhHoMmIxcdDCXtkCcCcNHhnKwyYzAdDWlLuTtIDdiUcCBbbBwAaAaLwWzZzZcCRvuiIkSglLGnNETtuQUuqwWXGgOaWwoUwWuOAHVvdIiDqnTEPgGpeLYVPpZSUuQqTVXBQiIqQqbypPCCWNuhIaAQqiQqJtgGSFnNFfcCSsMhbyPeDQLlDdVvHhXxqGpPyfLhkmMsIPFQqfpRBbCHCcgGtzpMmoaAvjUumrJjxXfFRMfFkKDdhflLEeApPwWnNqUYyuQYlLyaliDBbdIBbLXEehtnNPejJELlVlpGJjozbGiXoOwpPLlsSWwWsSwZGmxMvVDsSSrFfJbBXxpPVqIiQvWVqQAahHckEFISrRsiovVjDdaAxXCwWcSKksMtTmPIgOGgFfoIWqPpMXxmAaxBbGgRbZzBWiBbtiITmsStjYTMmrRiIWorYSmKkHfFhFJjgvaSsSuNHhXIixYyCcOonmMilyVvkKIsFfSTtAaQqiHPpUfFuKoNnOpPLWwSGLSsNHhnoOmTtmMFfhHaOoAMRHhrSRrkhbXjJuUQqibjJPkKpzYydDZCcgFzZfAasxXGDdgTtfZAhHLeElazKCcGTLdgGBbcAaCsZOokyJjYKBmaKkAjnDdgQqOdDoIiGNqPppsNnMwWmVvzZZZVSsTtjSsjbBJyYJsSzZZCczZhDdHzwavgGROorVkqXxojJnNOoLyYxoNaAnijtTeBbfFpPuTxGgufFUFfeEpPXtDdTCcLlznyYeESsQqXxXxvVXYHhsBzZBbgGbSTtpPQxXwWqQWkKVLRtZrOoibBBUaeEPRlLrOoDHrRNnhdpOoAYTtUDCcomMOhHdsDdSnNQOJjpkrhVvWwWeEYmTzCcnNSsiYxNnXNnyxcNwWnJZCPoOChWwcCHcQqRrpOoCqQccJjzHNncAaLzZlknNRrLVvOgGolBbKkcfgGfqQGgsiIUFoJwWDdjuUOfXxTXxtxXqmMQAFQqEegGYlLyfFfauSOkKoFcCjJooONLlmMcIiPQqopPOPihHhHNnqQIHhrRpRrVyYvSsFfNnBxXEedQqniIMmqQqJjtTvrlLKkOoRvVVMaALlcCCcTtmvqVvQVBbuEeUQYyHhwWQCHhyYeNnVvEcosFbBAAaafGguTtdWSswHRrhMGvVSDoOkKdsgnKCcDdklLCcSsAaVWwqeEBmCcCcoObBXvSsXTtbQqHhBxVHhHIigRgGRrHwWhDoRrwyiIYznkQqBbVAkKavjJEegGHhHsShagGBbmRrDdmMBJjzZJjbxXQqaAEAaRrrRaATCckKtfOFfoFCdDIirRwtyRrYHWFfwrFOoFffiIggDdOoHhHhGrIiRHhVvjuRsSdDFROorukbBIijxlsSLXIiSslCcsvVTtpxXPlhHNngGnNHbzCsSsSSbBuwWvVBbNnhaAHOocCnNHhMrRmUiolLOIhsSuUsSEzZHhxQqQLlqXJjfFJjREaANhHnalmMLHsSvQIYyeEiqKmcCTtAsSxXJIDFfReaJjAgeEWweEdDFmeENnMGMmgoOfhvVmMhQFfzZiiIEenNSUuOlLbUgGuHhoQqpPOCMsSiILAaLJjoOGsSglhHlASsaIdvVFqQLaQDdBbqAUuMmYysMmSlfRrDseEVziIZvnNlwWLjJkgoKDdEepPmMHhvVKkxEFbBfblLnJrRjEewWvmMVWwTtJcCKvVyYrwWwVvMQeqqJjzZBbiNnYoOyIOzlLZoeJjENneRmMLlbBBbcYyMmTtKkGgqQgGVvCdDrZuUzmXxMIivqHhQbBcmMCVfFYKkyRrDdbBSvSJsSfFGgrpkKPLlwWRGgQNvVRPwWptTeBeEuUbvVnNBIibsVvShkpbBPeiRrcBLQqlYyIxXibBrYuUGgyEeRbUuMmoeEOqKkWNniIwfNnuUWgGqHhFfgGzZQOtGgNnTdTdDxzZrRIiXqZdDAatNZtTzbBnOUuZTtRQXxEeqBnNGKXxuUkUugEehHxlIiLTtXGPpTSstTpPtEEeepPWwLIilsSgksSKrRBbkKKdlFfpQquILlHhieELUulMaAWaADdwmMmniINkKUSNXxnuYyxXdQbKkjJbBrRyYqQqcoOGuUpPDsStTtBbJjriIiIJnvmrfFRgGMOiIhHQzUMmuAaEekdDKGPpXezvVFfuUZhwLlWNTtnrlLWwBbMmaaIiAVveETtDFfFflLUuLlLlpPYzZyMmUuKkEuUeSsKDHXxhFQqzzJjKkuLQqgSsGlUnHtThCcpPAJjazZcbBsgGjoOKkJuUGgSzPpdDZZgdDZWwLfFBkKbxKeEVvGgCckeERrXWwazPpyYDdEetTKbiIBorRoDdDdAStTrRFfXtTxdrRDNiwjJWInmMTtPbBpwWwQqnQqXxNqUgGRrdDNnoOPtTOopVvFfZdzZALwWlqqQXxlLQIiKyYDjgQqGJJgGfFjFfpSphHXxPsEWwDyOoFfYdFfElLGdDiIgehHKkBbiIKicZzEeTtCuUQqQqUQqKkSjFfZzJlLUvVuaCcJjWwbBuUjtiIDdNnEeTfDdPpEeFNtlLTnbAaBZzLlpPtBblOvVoiIDdNnxQqRpPrsiIaASsCcDdSXRreQqwWwlLPDOfFXQVvwLZzRrbffFFBJjlgbBVvoOGqbBBbsSnNQAaoXxEaAeyaAYakKbJjrWwRMmBCiIcAOTtaxWkKeCPnNpeEdhHDrRtLHZYyYdiIXxpAaUuPtTyYTmRxtTXeWyqQYwEpgeEBbKkHhRhHrGXxeEhHiIFcCfJjFHGgcUcCOouRrkDdKkXXfkKXAadDQqfFDzZGgERDiIJjdrPjxXxmyYMeYyTtZzEXAfFanNMfFPpyeEYtTxXouWwUyYsYyFfKrplAaebGgBzZdDEKnNqQrRiIIiJjqQjJghxXHHhGMwXxRrWWCcIidDqToOIitQThHtpPbBcMmclLGgDaAehHELkMmfFyPpqQvVYLyYPpxXlfFOSsoKYyiIwKkcCwWyYFfqmMYyQhHGgJReEGgaAruUpPPpjuUuUlLVvQZzyYIiQqdSCcsIilqDdUuNEnNeXxnAzZalLwAsSaruURGgQqWpPpPwWvYyVWwQqmkKMEeHmMhFfRfPWwQQqbBqzZZtpPTFRWwoOwrRWruUgGcFfCeEmMqQooOOGgwbWwBWoOLYyYyNnFfNnlkoHhObBmMKjJrRyYPpkKQqZzbBCaAFfcWwUooOOVZzpPnNvIEeLlVHhcvVCvpPOoiLluLlRyYFfqQroOuUeePpzNnIWwiBbINnPoOpiUYMXxTtCcmPpbGEebBUuggakKAGyiIYMmUulLFMmWwyYAhHJjaoOlRrVYyGgzQqZvXxLfsSBwWhvUuCJvVjDZzdqPpQqQqplLPRxXxEaHhMhsSrRHrdgGDRohHOQqniINMWFfsSbBBcwWCgGzZuUnGgsSiTtOqQrRoYTtOoPCcHuUXxhpHhWwArRaeEevVemMTtEEagbBsSGAPpFfyLlLhVMmvHlIPOopfxXFzZvOoPpVyYZzZrRzngGNLlKkewrZzRWSfAabBFsSVRrvDiLKklzZAaKHhkbBipOonNVvwWyJjYEePVvOVFnNfNGgnseEkKwWXxSCchHqQduUOocCBbxEeiIboAaXxjJaIiMmIsSXxJRrjAakKyYrmExXeZKDiIdQqjJMmyAayYzZGgkKMmYeEqWwQoOkoOVvrrbQqBrRpPBGgUucAahHCcCwWbwOoWKkRGgOolLzZlLtvVTiItTAaUuuUojJDEesJjfFZzPppdDYlLqJjyqUuQYdCcaADQhfFXxKkHhHtTBLljJVvtTDdbBsSmvVHLZzzPpZOKUukWmMbhHBwbBWWwwMZzLcClmuAaUFHHVvhliOoDdrRcCIuLJjOolQqaARNQqlLBbBbcCOpPoDVvMdDqQqsyYiZQiImMPpjPpHpeEQqBbDdzZCcBLlKwtTWIikjkKJCcbIqdlSsPptTLhYbBWwynNzwWgzZubBKSscvSswPpsSWVWcBbCttxXnNJjoqQOLZzlNiXxIuUgGgtTThHUvVuqLlQtBYymMbpctTCNnQCPpshHSIiLlzsSZNnyYEakKrRFfVvAcCecqPuQqhHUPpqQqAPpaSsUzZuQqIXqCcmIiRrHgGGgheEhHaAMPpQHhxGrWwwCbBcWRgjJNfFRrAampPjJMVvdIeEvGgPpVWwikKaAgGlLDGEeHQxIirbBRotTHhOpPLcleETtsSFfjJLOJjojhHLbBlDlnrRnNNCcLJNrxXBbagGwWADNndAabBFiIOofuUkKLUuJjlRBBgGxnNXtTMmbbcCiaAIQVHhsQgGqXueExXenNXxQgGqvbsSBKkVyaAWwvVJjTTDIidfkKlNVvnAaLCpvCcVCcmzEeyxXQqgLlVAavvVLlnNfFYyPpAaiIYkKpPvhLlgGHGtTfFgVrRVqQsZzEeSidPpDpPlLhHZzCcDSsYBbyiIdBZaSsAzZzkbBKaAHYIxXFYFaAmMKknYyNZzwWfcfHhIXxAXxairREJjqkKqKkoOBFCcrnNRNnfIfFiAVtQoODdqTNRwuUWrcCnUuvVmMQdDqdDQUoWwNnOJwWjMmvVpPnNljpQOooODxXdqPUuGgCcnZzZzNmpPHpPhVcCLloOHCchvtTztJjTcCxXZEFcyYvVAaFfglLmVSsvJjMGsSAqReErmyYBMbBmsSsSEeNnXxWwFkKwWfDEedQqbMaAwWPwiIjJnxXNvVbBZIjrwWoOWwOooDdOYnNyaAhHHhdynNuUYGFfgdDKUdDRrUujJuMiImHgGCEVvxXjJeeyYhHwgUuIiBbBFfKENEUuebBnZzuUcdDnNhHyYCWubsSBaAIikYyAaGgqQOoDdbPpOoMmBnNKkHrRbBCVQqZzCIiTtOoiRpPpaAPszRrZSrIuUkKhYePpHqQCckPoOpsSFiIGggGxUXxuXOoqQLliIfdyYDxEtGmMPpHhcCPpmMHBbleBbiDzZDUusSyYddIfhHcuwWpPgGTWIiuUtkKFfTVvdDiIpPtQjFfJFCcfqGgTwrRUKkutHhgVvtToBCceEbOYyGxOoXZHQqhboWHhtTeEwWfFYhHyGgwAzEtThHeDdkKtDJzBbZppWwPuGglLmjJMLsSuzZfFUBblDdPlLpfrpsSPiIKEgGkKPpeLGHhgMXsSdWzxXZwvVDxzGgqQWwZeEjJZIiQLZlzZLzlDZzdLlLlqhHgAajJGSMmsvgGQMtTmTbBuUwFfHhAaGgWmrRMtjJRrHIihwWqbBsSCcijJIaAhnTDqQdblLiIjJdDOPpoaoODcBFfbgGKCcLlfhHFkuOoUqQreEVPpMXxWwmvoOZzQqQqoEQqetOoTjJRrOWwVTtvLlAablLWWUsSxGgXufoFfOFwwRrkKeEtTPLlpoOEsSjTtxQqSxIirUZzucCAvhHVlLqQFfaHhfTtFRNnDUudXmMuUeEUuJQqSsiOoIXxIiMmbwWnNSsYkKpPQaAqdvjJVCcVvuUDbMbYDdMmfFcCFfCcxZtSsTzJYyeXUuiIxeOowWEHhEtTICciuUSCpPcsLxXlxXYyqOoYcCHDdxXhlvXaArRTwWxXiIQqYpPYpPWrRwGgEeydDyOaABIUuiboguuUUGeEaAeUulLnZmMzNuUEtTNjJQJjjzZkKJqlLPwmMWpLljJRrcqQzoOZBbxPpyYPpfnTtNFXPmMlupPiXxVvfFxXIDdlWZzUujfQOOooqFQpelLEPuVvUoOyYqQpvVOeEaAaAoOoOKdDkyxXYwWQBbWPlLPpSsZzpvVwKkGgGYygqlHhLMmIeEJjiIZFfqQztTuUhHaAaAYyYyiOopPFjARraJfHhHuUXxWwIZKkzisDFfNnOodlLPUpPnNuUulLpSuTkKtwWRVlRrLrRviIrUJjNjAaynNbBYJjAaPpvwWVzZQVvqJjBLpPRrprBwWcCbvYywWVRPBbIiXFfxOoaAaziILlZAtTzTIiCcHhtfFEwJjWTtYoRrnNkKOybVvlLWEYlLQIibLlBXmMVvOoxqWcWwCfFtTaSsSsAoOoFAafudDEeRKrRdsSDkrUOoEeBxXbxXQqxNAXrRxSslLaKkCwWrRvVPpVvJcPSspnHhXXxCuUWwTtcVzvVJjZxYyXLlpPWhdDrRWNnmsSdDMSsdcCIJjinNQqQqBbNoFNnfOCcYynEnNvVeCFfcPotTTtjdDqQgBbGJQyIiYcCqiFfIDIuUijmMcCJHJjhxXiILlmJjSHjvVJETtwWHpPKaADdrRHhEebOosSBxXrTjJtPgGJHhtfFTjXxpRnkKAaNPZzkiNvVngGIPpnJuUwWbBjmyOoYJZzRrjMHhEMmexAajCcfFqQeWwENTjJyYHPafFAphzRrpPZvVlLlTFiIftIiLPYypdPpVKkFEetnNZzSlLKkHOolLhKkMmuAaAaLlUGxXgRHhrDdEDtTdKkUTtOoGgQqnFoOBXuUxIiAayYLVvlbtTOhcCHoJhIfFiHfyYFlClLcuXSsxUeEuGgUpPnjJmKkKkKkWXXxiIWwaAejUuJExVyYQqLlvPpwWwhGgRrAaWwHJjviIVCQbBSsqkKDdVvoOjJnNWwEesSJiIsSfFtTjbRrqQFsSceEYPNOonBFfPpbLCclZVvzKkiIsSNnfFxXkKnNjPpQmMqhrRaAHUuHZgoObBWwrRGDdFrgwWGRAaBAadDbMmdDmCcMfOGCcAaAatlLIiTgNnAravZUuzVARZzKkplIjJiZzLjvVJnmMNgaAioOQqITcCtRPpPprTtGxXCcsSaAKEeklrRLeEPRfFqEeQOonNyYmKbBdDdDkdDFfcVaeEHiqQBbwWzZKkcCtTiIJjWjJvVwhJjVvsVvSsdDiXxIGgqQHhBbSUuCceEmMWwzZbBXxsSAkqQKaTtHGvVgdqZzQDaAzKkWWPpwZzwRAarxaAXzVvZZzZPplnpPAaNEeNoOnLlLjJVsSXxyYvTtjrEeRJsPXxjniINsSAsSzZaJfFqQhHlLJjEesSKYysSiIcCAagGbyYNnBihTtrZzRiuUIHBbPaVtTgGvAgGOojdDQnrRNqQcCkLlKqJmMLloOpHhwWxXiuUIVvIiPFfgIiGpUnrRqQNuzNMmZzUugGngGCTtciqQcCUucCjJFfEeMaAaAmmVvWZzwujJUwZzWpPNnwWYyczZgvVEekQqKJjGyYClzWiIwZslVvLSKkuTtuiIUUATtaALqQlfFtMmMmTxGdjJUuDDdUusSoOXukwWKUhHxgGgqQUumMZzwWbUueEFUufYBbEeyKkYyLlikFfrRBlLTtgPpGbGgDdKNnCsgGeMAambBEcCSkgNnQqmuUMGZyYIijJrRIicCbBzkKvVOogsSGdDdDKCDdBKUukrjcCJRxXGgVvlWwGLlgwWLwswWFAWwJFfjafXeExMmUuWvgGVwdDvVuDdUgGNnSsaUVveEuAwWSwoOWgGDxXdzZJXoOQqxkKjaAtThHfFsSZdDFflFHhfdDLsSZzcCWtTJjSsLsOXxoIikKrRAafFaASeEIiTuzZUQcCqXxYaaAAyvPpVGPdDaApgtEdpPDFfmdIiDEeMeUxXhbBHuCcHhhHiIKkPpBbhHlNfFVZzmMvBKkbRrUutTJjTNntuULlcAaCyYMpzZPdDgGVjbBxpPXPpSscWwCdDSsUuMmyYyYfFoOAaXRrjJxJyDdYtTgGvBhaAHbLlLlWwmdDlAaHzZhMmuUujJUUlLuKktPpPpTGMmgJjPpBbCuUcIocHhCOJjyYyoxXEeOPYBbeEypjLzZlJWwbBdDdQqrRqQgGrkZsSzKNnnNeEbNYyZzjJnJjBbsSjJpPJjeWwEHbdDBhmIixXcJjCltTLuqQqbBQmMUBvVwgbGgBGKIiHhHmMeEHzZhhSsTtUukKkWeEbusSfFNnUWwfGgFlLGgLuUIioOlEeHUuAKkaCijJIlLrGgRchTtmAaMyYKAatQqTkOeBbEyQqYouUefFENGgjJyGBbgAaElLeYGgFmzbBZMfoVvHrmMRhOCYfwWblLBfFuUGgAaBRrbOowWGbVvBbBkKMmtTgFTtQqiMmAajJMNnmIyOoscCSJjPpMVvmdDRZLlCczfFfCcjjJJsWwsSSGkKlLgioOIEwWevVGZzCcgWAYyJXxjatTwKkmCcWwBaAAaXgKkGgQqyYGFHhMpPmfFfxqQwWKTtZzkPtcCnoONlVvLkKGwWajJqLlQAzZLlJjVvsSGggGxeEXLlupPUCcyYfFAFfaUXxugYIdDiaLlyYyYAynrDdvVyYSsRNTkOoBbpPKTCUjJuctkzZzZzZKpPzZcoOWwCDdpDIidsSHhoXxwWpPhHOoFfObBxFfnCaAVvclLNnVvsStTrRzgGlLjJvVNncsSBbOoCZRrDnNLlOowWddhHPpDGhHgMPpmVNnCcoOeEvhnNgcCGHNBbWoKkOwUuJxXLjaAgGyYJNnlcCObBojXKpPFGgtTfFfyYdDTKkGgqhDdmBbMHwWqFfQoOQUutmMkWwPphJJjjGgOoXqkKQTtxZzvVBbkKiIUsSugGAaEebhhHHBwqQpGgVvxXPpPTRrtWHzXNRcCrnVNnvOodDxfFgBbGXxtbbBBDdTYoOyYyRriuMYyEeHhvVOoaArRmsSExXeIwWTtiBbGgZzbBzZvDdNnVfFUCcDdDdfFDdIRHhpPSdDIiliXxILvkKVxXvmMuUVqFfQwWtBbTZXxjJDdAawWmIinpmMjJyYPNHhhHTtKnNthHHhTwWzZkRYyYyEuUuUJjaAyYerlLzZMYyqOoKkAAarRaQdDtMmJjCoOcmLlMTEJjnSssSAcCArRtTzZBnTtNmMzZhHbvXPpxyWwYcCzZTZztaAOoVMmaaVFhHeEjCcJfjNnWwZBbznDdCcNJiIkbBKWwDZzHhYydHhvwWsSMmxXoLllLYyOYyNeCNncqQEeSqQsCcO'
const testInput = 'dabAcCaCBAcCcaDA';
function convertToNumbers(string) {
return [...string].map((char) => char.charCodeAt())
};
function convertToString(numberArr) {
return numberArr.map((num) => String.fromCharCode(num)).join('');
};
function removeNeighbours(arr) {
const newArr = [];
let a, b;
a = arr.shift();
let found = false;
while(arr.length) {
b = arr.shift();
if ((b ^ a) === 32) {
found = true;
a = arr.shift();
} else {
newArr.push(a);
a = b;
}
}
newArr.push(a);
if (found) {
return removeNeighbours(newArr);
}
return newArr;
}
function findUnique(arr) {
return arr
.map((value) => value & 95)
.filter((value, index, array) => array.indexOf(value) === index);
}
function part1(arr) {
let numbers = convertToNumbers(arr);
numbers = removeNeighbours(numbers);
let letters = convertToString(numbers);
return letters;
}
function part2(arr) {
let numbers = convertToNumbers(arr);
numbers = removeNeighbours(numbers);
const uniques = findUnique(numbers);
const uniqueSets = uniques.map((value, index) => {
return removeNeighbours(numbers.filter((v) => (v & 95) ^ value));
});
const minLength = uniqueSets.reduce((acc, set) => set.length < acc ? set.length : acc, Number.MAX_SAFE_INTEGER);
return minLength;
}
// some bit-logic in JS... whee!
// switching between Uppercase & lowercase is a toggle of '32' - bit 6.
// comparing the two can be done by comparing bits 1-5 & 7 -> 95
console.log(part1(testInput));
console.log(part1(input).length);
console.log(part2(testInput));
console.log(part2(input));