tag:blogger.com,1999:blog-9340755613747520902024-02-06T18:24:31.870-08:00Ranting, Technically SpeakingRandom grumblingsDom617bhttp://www.blogger.com/profile/15746909226984797376noreply@blogger.comBlogger290125tag:blogger.com,1999:blog-934075561374752090.post-90394019295123640262023-08-16T07:51:00.003-07:002023-08-16T07:53:53.965-07:00Google Domains Exits Beta... And Promptly Gets Divested!Google Domains is on its way to the <a href="https://killedbygoogle.com/">Google Graveyard</a>, not long out of it's long "Beta" period. DNS is a pretty generic service, I didn't think Google's was the cheapest even but it had some easy tie-ins for other products (sites, blogger, etc). But looking at <a href="https://domains.squarespace.com/?channel=bd&subchannel=msa&campaign&subcampaign&source=google_domain_referral&utm_source=google_domain_referral&utm_medium=bd&utm_campaign=msa">SquareSpace Domains</a> pricing, it looks like it's going to be a price increase for less functionality so I will end up transferring it. We've changed DNS providers a couple of times so once this goes ahead, I will set that up... Probably with <a href="https://www.hover.com/welcome/GrumpyOldGeeks">Hover</a> because they're an old hand on the Internet (née <a href="https://en.wikipedia.org/wiki/Tucows">Tucows</a>), they're Canadian, they sponsor my favourite podcast <a href="https://www.gog.show/sponsors/">Grumpy Old Geeks</a>, and pricing is better than SquareSpace Domains. <div><br /></div><div>More on that transfer once that comes. </div><div><br /></div><div>Ciao </div><div>Dom617b
</div>Dom617bhttp://www.blogger.com/profile/15746909226984797376noreply@blogger.com1tag:blogger.com,1999:blog-934075561374752090.post-2742435075418172442022-11-17T11:37:00.003-08:002022-11-17T11:37:33.093-08:00Autofs with SMB<p> <span style="background-color: white; color: #222222; font-family: inherit;">"autofs" software for Ubuntu and other Linux systems mounts file systems and network shares on demand and there are a couple key benefits to using autofs compared to fstab and other methods and I've posted before about </span><a href="https://dom617b.thenibble.org/2013/03/autofs-and-couple-tricks-with-nfs-shares.html" style="background-color: white; font-family: inherit;">Autofs and a couple tricks with NFS shares</a><span style="background-color: white; color: #222222; font-family: inherit;">. </span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px 0px 8pt;"><span style="font-family: inherit;"><u></u></span></p><ul style="background-color: white; color: #222222; margin-bottom: 0cm; margin-top: 0cm;" type="disc"><li class="MsoNormal" style="margin: 0px 0px 0px 15px; vertical-align: middle;"><span style="font-family: inherit;">File share does not have to be available on boot so faster boot times and fewer failures after restart<u></u><u></u></span></li><li class="MsoNormal" style="margin: 0px 0px 0px 15px; vertical-align: middle;"><span style="font-family: inherit;">File share is unmounted when not in use reducing system resources on client and server side<u></u><u></u></span></li><li class="MsoNormal" style="margin: 0px 0px 8pt 15px; vertical-align: middle;"><span style="font-family: inherit;">Consistent abstraction of mounts is easier to maintain across systems<u></u><u></u></span></li></ul><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px 0px 8pt;"><span style="font-family: inherit;">Giant caveat that Linux does not segregate permissions once a share is mounted. This is fine for single-user systems and also fine where systems are un-attended (i.e. servers) but really a big problem on multi-user systems that user a and user b can both access share Z once it is mounted and it is as the connected user.<u></u></span></p><p style="background-color: white; margin: 0px;"><br /></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px 0px 8pt;"><span style="font-family: inherit;">The Ubuntu standard "autofs" package includes an "auto.smb" which dynamically configures the shares in most cases so long as credentials are available and some basic pre-work is done. This should work for generic needs but for file share specific configurations use the auto.misc instead<u></u><u></u></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;">Required packages to work with SMB shares (i.e. on Windows) and mounting with the stock CIFS driver (i.e. same old driver in Linux).<u></u><u></u></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"> <u></u><u></u></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span> </span>apt install autofs smbclient cifs-utils<span lang="EN-CA"><u></u><u></u></span></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"> <u></u><u></u></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;">The auto.smb file itself doesn't have to be configured, if you look in the file it advises what configuration to add to "auto.master" and how to setup credentials.<u></u><u></u></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"> <u></u><u></u></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span> </span># edit /etc/auto.master and add this line<span lang="EN-CA"><u></u><u></u></span></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span lang="FR-CA"><span> </span>/cifs /etc/auto.smb --timeout=300</span><span lang="FR-CA"><u></u><u></u></span></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span lang="FR-CA"> </span><span lang="FR-CA"><u></u><u></u></span></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span> </span># create /etc/creds with restricted permissions<span lang="EN-CA"><u></u><u></u></span></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span> </span>sudo mkdir -m 700 /etc/creds<span lang="EN-CA"><u></u><u></u></span></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span> </span># edit a file with the server name like /etc/creds/MYNAS<span lang="EN-CA"><u></u><u></u></span></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span> </span>username=myuser<span lang="EN-CA"><u></u><u></u></span></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span> </span>password=reallygoodpassword<span lang="EN-CA"><u></u><u></u></span></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"> <span lang="EN-CA"><u></u><u></u></span></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span> </span># restart autofs<span lang="EN-CA"><u></u><u></u></span></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span> </span>sudo systemctl restart autofs<span lang="EN-CA"><u></u><u></u></span></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"> <u></u><u></u></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;">As any user you should be able to list shares and access contents of any available share the configured user has access to.</span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><br /></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span> # shows all shares on the server (not hidden ones)</span><br /></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span> ls /cifs/MYNAS</span><br /></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span> # access files as normal within a share</span><br /></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"><span> ls /cifs/MYNAS/MyShare</span><br /></span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;"> </span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><span style="font-family: inherit;">If file shares or the contents do not appear, check "mount" and system logs for hints what may be wrong. Biggest caveat I had had was that cifs-utils really are required and I'm pretty sure smbutils as well - out of the box autofs with the stock system drivers and packages may have been able to do SMB1 but SMB1 should be disabled on any file servers so yeah, need to get "cifs-utils" package which includes tools to work with the newer SMB2 and SMB3 protocols. </span></p><p class="MsoNormal" style="background-color: white; color: #222222; margin: 0px;"><br /></p>Dom617bhttp://www.blogger.com/profile/15746909226984797376noreply@blogger.com1tag:blogger.com,1999:blog-934075561374752090.post-35145300443330532782022-05-24T16:00:00.001-07:002022-05-24T16:00:00.177-07:00Another Round?<p> We eventually saw Google change their tack with <a href="https://www.thenibble.org/2022/05/the-return-of-google-apps-free-accounts.html">The Return of the Google Apps Free Accounts</a>. It was pretty unnerving to lose services which had been free for over a decade. Really the services are free anyhow: Email in Gmail, custom domains in Google DNS, cloud storage in Drive, basic web hosting in Sites and Blogger. Why wasn't there are a better migration tool? Google has been eroding the GA free for years and all we really needed was a migration tool to get like 80% migrated to Gmail etc and this push could have been more successful. But then again, how many users signed up for GA a decade ago and are still using it? I know we're free-loaders but really the "free" services are doing for Google what they're supposed to: Get users hooked on Google's suite of services.</p><p><br /></p><p></rant></p><p>Dom617b</p>Dom617bhttp://www.blogger.com/profile/15746909226984797376noreply@blogger.com1tag:blogger.com,1999:blog-934075561374752090.post-51124908039396845232022-03-20T15:20:00.002-07:002022-03-25T08:58:41.778-07:00The Party For Grandfathers' Free Google Apps Is Over<p>With <a href="https://www.thenibble.org/2022/01/the-end-of-google-apps-free-accounts.html">the end of Google Apps free accounts</a> I've been looking at what services end up where and Google is pretty well covering personal use with maybe a few asterisks particularly around email.</p><p>TL;DR </p><p><a href="https://support.google.com/domains/answer/3251241?hl=en">Setup Email Forwarding</a> in Google Domains by adding up to 100 email aliases.</p><p><a href="https://support.google.com/domains/answer/9437157?hl=en">Send an email from your alias in Gmail</a></p><p></p><ol style="text-align: left;"><li>Generate your app password</li><li>Add an email alias</li><li>Confirm the address</li><li>Change the "From" address</li><li>Optionally set this address as default sending address once confirmed.</li></ol><p></p><p></p><p>Use Google Sites or Blogger and add custom URLs and they will generate the DNS entries as needed.</p><p><Rant></p><p><a href="https://domains.google/intl/en_ca/">Google Domains</a> "<a href="https://domains.google/intl/en_ca/learn/out-of-beta/">is out of Beta</a>" ... Uh what? I've been using Google Domains for a few years already and didn't realise it was a "Beta". It did mean they sent out promo codes to all their existing "beta" customers so we can get 20-30% off their regular price registrations</p><p>I took the opportunity to register a test domain to test out some of the changes for when the GA free accounts go away shortly. As far as DNS registration and hosting goes it's a pretty good offering. Not the cheapest, but does include WHOIS privacy, integration with website services, and up to 100 email addresses forwarded for free.</p><p>The website services is a handy integration including with free services both on <a href="https://sites.google.com/new">Google Sites</a> and on <a href="https://www.blogger.com/">Blogger</a> (i.e. this site). It automatically creates DNS records when you create custom domain. Maybe it's more intuitive for a lay person than an IT pro because on Blogger you click the option for "custom domain" and type in whatever you want and if it's in a domain under your account it just registers it? I guess? Not clear it doesn't tell you a lot which is maybe point - it's all very easy.</p><p>Email I was really struggling with because there seem to be a lot of variables. We're using plain old Gmail account and there's two parts to deal with custom domains: receiving and sending. The receiving side is simple - add an alias in Google Domains (or 100) and you're done. </p><p>Sending is far more complicated which I chalk up to "we can't have nice things". In Gmail you can add an alias with another Gmail account and that setup is pretty easy "mymail1@gmail.com" can be added in your settings as an alias for "mymail2@gmail.com". To use an alias with a custom domain you have to give a mail server and you can use the Gmail SMTP but you need an app password. And you can only use an app password if you have 2FA on your account. And if you don't have 2FA you can use "less secure authentication". But that's a feature apparently getting dropped soon so if we follow all the caveats, it means you have to use 2FA and app passwords. There's Google docs all over the place - the above link in the TLDR I think has the necessary info. </p><p>Compared to how easy it is to do one Gmail address as an alias for another this was a bit mind boggling to go through. I get it - Google wants to sell as many Workspace accounts as they can, and lots of other options just don't work in the 21st century because we ruined the Internet and Email with so much spam. </p><div>Other options to consider 1) use a real mail client like Thunderbird and you should be able to specify your email and this is fine if you do this already or only infrequently care about sending as your custom email address 2) use own mail servers heck even Synology has apps to run mail services but still its pretty rubbish to deal with backups, certificates, spam blacklisting, etc. 3) pony up for Workspace which if this is work related its pretty cheap - but that's a bit silly for personal use (even Zoho and others). </div><div><br /></div><div></Rant> </div><div><br /></div><div>If you made it this far you're either brave for reading that rant or clever for skipping it :) </div><div><br /></div><div>Ciao</div><div>Dom617b</div><div><br /></div><p></p>Dom617bhttp://www.blogger.com/profile/15746909226984797376noreply@blogger.com1tag:blogger.com,1999:blog-934075561374752090.post-72973204721875783482021-12-05T09:49:00.004-08:002022-02-09T06:37:59.032-08:00Restoring from Gmail Backup<p> Migrating to a new Gmail email account is a lot easier using <a href="https://takeout.google.com/settings/takeout">Google Takeout</a> this <a href="https://www.thunderbird.net/">Thurderbird </a>Add-on <a href="https://addons.thunderbird.net/en-us/thunderbird/addon/importexporttools-ng/">ImportExportTools NG</a>. I have been splitting up my email accounts so that I have several distinct accounts - more on that below. The gist was that in the past I was forwarding all mail into one account which I'm no longer doing but now I want to move all that old mail, ~30,000 emails, into a different mailbox. Recommendations online were to connect Thunderbird to the two accounts and move messages in batches but in practice Gmail times out these connections very quickly and the batches are way too small. Instead I ended up exporting my email and importing it - why Google does not offer an import of the format in which they export boggles the mind, and while it's possible I've simply missed proper screen where this can be done, somehow I think not. This seems to be one of those things that is easy enough, but not obvious and took a bit of searching. </p><p>The easiest process I found was to use the ImportExportTools Add-on:</p><p></p><ol style="text-align: left;"><li>Spring cleaning time of your old email! Newsletters and automated notifications that were being filtered to a folder go 💥, gone.</li><li>Go to <a href="https://takeout.google.com/settings/takeout">Google Takeout</a> and export mail. This produces a ZIP file which you can extract and there is a single large MBOX format file</li><li>Install <a href="https://www.thunderbird.net/">Thurderbird</a> and the <a href="https://addons.thunderbird.net/en-us/thunderbird/addon/importexporttools-ng/">ImportExportTools NG</a> add-on</li><li>Import the MBOX as a local folder with ImportExportTools</li><ul><li><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEied4QaeijG4pzIxq2auVCSxGZDAkOKeTboB0_mcsbrNRqqGRX5ESccXmjKzLn0QW0L0hyphenhyphendF1bhRinlbWKE9OYEHD0cGDRbQe25TgM5z1rhyxwBSQtOyVW9_eo9xGwDUOD1OvSBhWvNmcuQ/" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img alt="" data-original-height="273" data-original-width="590" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEied4QaeijG4pzIxq2auVCSxGZDAkOKeTboB0_mcsbrNRqqGRX5ESccXmjKzLn0QW0L0hyphenhyphendF1bhRinlbWKE9OYEHD0cGDRbQe25TgM5z1rhyxwBSQtOyVW9_eo9xGwDUOD1OvSBhWvNmcuQ/" width="320" /></a></li></ul><li>Re-Export the email from local folder to a directory of EML files with ImportExportTools</li><ul><li><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCrfh0VD4JFI2EpRiUpVek5-cC1e4UuF8BgofAertrfR85LCrlFUFc7CG6mq-GUe5r3G7wj1XQLZGmEm89mEWYMa-g0UkSTRI1CNcHZTIEgPLNAlox7P1rbRoqu8mSyh_ygq8B5cqyQ9XT/" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img alt="" data-original-height="423" data-original-width="832" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCrfh0VD4JFI2EpRiUpVek5-cC1e4UuF8BgofAertrfR85LCrlFUFc7CG6mq-GUe5r3G7wj1XQLZGmEm89mEWYMa-g0UkSTRI1CNcHZTIEgPLNAlox7P1rbRoqu8mSyh_ygq8B5cqyQ9XT/" width="320" /></a></li></ul><li>Connect Thunderbird to your new email account</li><li>Import with ImportExportTools "all messages from a directory" and import into your "All Mail" folder</li><ul><li><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_K8nE8wfeX7JYLHzROkfNco2SDtsqsMCIcsdfyUgS3O-WLEoTx-Wmy1jXCaSJpdz2uZRAobD0SedL_WCqEm1rKm17-OYaoGTBo7-Zfk7yUoQWpdR6DvUunI_uVoSImYhgCHJQgqvVxUp_/" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img alt="" data-original-height="336" data-original-width="616" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_K8nE8wfeX7JYLHzROkfNco2SDtsqsMCIcsdfyUgS3O-WLEoTx-Wmy1jXCaSJpdz2uZRAobD0SedL_WCqEm1rKm17-OYaoGTBo7-Zfk7yUoQWpdR6DvUunI_uVoSImYhgCHJQgqvVxUp_/" width="320" /></a></li></ul><li>Wait. ... Wait ... Ponder if you should have done more aggressive cleaning... And wait. My mailbox I think it ran at least 3 hours? Not sure, but a lot time, many hours.</li><li>Tada! Go into your Gmail account and try a few searches and see if you got everything you expected.</li></ol><div>This ImportExportTools is generic enough you could use it for any sort of mail service and I think I could have done the initial export with it instead of Google Takeout thus saving a couple steps. My confidence isn't that high that 100% of the email was coming across with the connection timeouts so I would kind of suggest sticking with Google Takeout to get the mail and go through the extra steps and also having the Takeout as a backup is a good idea regardless.</div><div><br /></div><div>Really this stemmed from wanting to split from One Mailbox To Rule Them All, which I already was moving away from. I'm working with 4 mailboxes now.</div><div><br /></div><div>A personal email address which I really only use with other people; friends, family, like actual humans. Mostly, a couple exceptions but so few as to be trivial. This is on thenibble.org domain and I have a handful of aliases (yay for grand-fathered free Google Apps account).</div><div><br /></div><div>A general email address I use for most everything - online services, loyalty points programs, emailing with contractors, the bank, etc. Some people call this a "personal assistant" in that it's handling everything outside your most personal emails. A lot of my other mailboxes forward into this one. This is where I wanted to move all the mail.</div><div><br /></div><div>A junk email address particularly to get to websites where they require an email or registration to access whatever specific thing that I need and is probably a one-off and I really don't want to hear from them again. Basically any email into this mailbox, I flag the sender as Spam so it stays pretty clean but it is functional enough to pass a registration. Some people like using <a href="https://10minutemail.com/">10 Minute Mail</a> or similar.</div><div><br /></div><div>A second "personal assistant" email address but for the household. My wife and I sign up for Spotify - goes on the household mailbox. Also, fun spy-craft tip: you can use this as a secret message drop by writing a DRAFT email which is then read by the other person and then deleted. This way the message never went through all the delivery servers so there's no logs of it and there won't be multiple copies of it.</div><div><br /></div><div>Ciao</div><div>Dom617b</div><p></p>Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com2tag:blogger.com,1999:blog-934075561374752090.post-49990792369423529782021-08-08T11:06:00.003-07:002021-08-08T11:06:52.236-07:00Some Bits to Remember About Synology Standard Operating Procedures<div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7GS6crQMdIcJacdXx4hbE52cJlwqJtcWViek2kPgHv6t9db7DUpagevUVvDKnMewpfUH9BtlYHyiii_Ac2G4qaBbsCGAVvAKytrb5jeyhIGlrxuQx_BFfmbPrwyk9AydWb_oXaDDBdtd3/s668/synology-ds720p.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="400" data-original-width="668" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7GS6crQMdIcJacdXx4hbE52cJlwqJtcWViek2kPgHv6t9db7DUpagevUVvDKnMewpfUH9BtlYHyiii_Ac2G4qaBbsCGAVvAKytrb5jeyhIGlrxuQx_BFfmbPrwyk9AydWb_oXaDDBdtd3/s320/synology-ds720p.png" width="320" /></a></div>Since running the Synology at home for a while now, there's a few things that I wanted to note which aren't really intuitive and I don't do often enough to remember. </div><br /><div>Encrypted folders are setup in a couple ways which I touched on in <a href="https://dom617b.thenibble.org/2020/09/home-nas-part-3-encryption.html">Home NAS Encryption</a> </div><div><br /></div><div>One uses a key file stored on a removable USB drive. I have it setup to mount automatically so that's okay... But I used a really old USB key because obviously I didn't need an 32GB key to store a 32KB file but it's flaky so sometimes the USB key isn't available and it doesn't mount until I wiggle the key and re-mount.</div><div><br /></div><div>Second uses a passphrase so there's no way to mount automatically and whenever I reboot like after a DSM update I have to go back in.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_eopObi_jrQJLIxrFSYg7glDhU7jogksSAxh1lf7xzmMxu5_K3DbzdbYqhjPicXKnJMC2udDreLyD4wnHp1tWfq7DZqNJH3pX9T1zSCejgY8c5hpTYzNy9sCw4aliu25l-GgsLSTxNa33/s699/DSM-mount-encrypted-share.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="516" data-original-width="699" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_eopObi_jrQJLIxrFSYg7glDhU7jogksSAxh1lf7xzmMxu5_K3DbzdbYqhjPicXKnJMC2udDreLyD4wnHp1tWfq7DZqNJH3pX9T1zSCejgY8c5hpTYzNy9sCw4aliu25l-GgsLSTxNa33/s320/DSM-mount-encrypted-share.png" width="320" /></a></div>To mount the encrypted share manually, whatever the case it isn't mounted automatically, it is found in control panel.<br /><div><ol style="text-align: left;"><li>Open Control Panel</li><li>Navigate to Shared Folder</li><li>Select the share with the closed lock</li><li>Encryption menu</li><li>Mount</li><li>Provide passphrase (if applicable)</li></ol><div>The other part of the S.O.P. is updating the DSM and package software, i.e. the most common cause for reboot :) It's all been really smooth so I try to do it all the time.</div></div><div><br /></div><div>DSM 7.0 was released a little while ago and I left the major version upgrade just so that I wasn't among the earliest adopters. Ran the upgrade today and it was seamless so far and Synology provided some clear prompts on cleanup items like removing obsolete packages (like Python now part of DSM).</div><div><br /></div><div>Ciao!</div><div><br /></div><div>Dom617b</div>Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-35106846089483390252021-04-23T13:43:00.000-07:002021-04-23T13:43:18.261-07:00Now Certified<p>Passed my Microsoft <a href="https://docs.microsoft.com/en-us/learn/certifications/azure-fundamentals/">Azure Fundamentals</a> certification this week and this is my first Microsoft exam. My primary resource was <a href="https://docs.microsoft.com/en-ca/learn/">Microsoft Learn</a> where there is a lot of material broken up into 30-60 minute lessons including some labs. Also used the practice tests and did those many times before writing the cert exam itself. </p><p><br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGx-Ay5YbDJmHQPmDlb3zSVCgTe9h5Z3pyu4P0tDROM3Y0Jz1wzA9yjFzipOB603p_GqxZ1D0-9iEgdGsVzTh9swgiNw7Cj6IYudvvb_oaTEj0vc08q9Q2sm_yEHSs3Qx-0UgKnd9qunxR/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="600" data-original-width="600" height="154" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGx-Ay5YbDJmHQPmDlb3zSVCgTe9h5Z3pyu4P0tDROM3Y0Jz1wzA9yjFzipOB603p_GqxZ1D0-9iEgdGsVzTh9swgiNw7Cj6IYudvvb_oaTEj0vc08q9Q2sm_yEHSs3Qx-0UgKnd9qunxR/w154-h154/azure-fundamentals-600x600.png" width="154" /></a></div><br /><p></p>Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com2tag:blogger.com,1999:blog-934075561374752090.post-42679626949293458642021-03-30T20:23:00.003-07:002021-03-30T20:25:07.322-07:00Passwords Passwords EverywhereI seem to need passwords more and more often. They're so convenient! Couple methods I've been using depending on the lazy-vs-security trade-offs. <div><br /></div><div>Registering for websites online, Chrome or any browser can generate passwords. </div><div><br /></div><div> For secure passwords I use <a href="https://keepass.info/">KeePass</a>. </div><div><br /></div><div>There's the old dummy password only used for the real junky junk that isn't worth protecting. </div><div><br /></div><div><a href="https://www.random.org/passwords/?num=5&len=12&format=html&rnd=new">Random.org</a> password generator.</div><div><br /></div><div><a href="https://duckduckgo.com/?q=pwgen+strong+12&ia=answer">DuckDuckGo.com</a> "pwgen" with or without "strong". Also for bonus lazy, I changed the search engine in Chrome to be "duck" for short so in the title bar I can type "duck pwgen 10". </div><div><br /></div><div> Stay Safe!</div><div><br /></div><div> - Dom617B</div>Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-19285567536168261302021-03-08T17:08:00.001-08:002021-03-08T17:16:21.457-08:00Azure Fundamentals, PowerShell, and MoreWe have a big push at #dayjob to transition from traditional server operations to automation and Cloud so I've been learning new things and trying as best as possible to sweep out the cobwebs upstairs. Really want to be able to competently support my colleagues as it is going to be a very hard time for many. <div><br /></div><div>PowerShell was really what got me moving. I've been doing odds and ends scripts and finally got a couple books as to take things further. "Learn Windows PowerShell in a Month of Lunches" was really just to get a passable foundation to get into "Learn PowerShell Scripting in a Month of Lunches". By the time I got through those two books, I was using <a href="https://dante.thenibble.org/2020/12/vs-code.html">VS Code</a> and GitHub and will definitely re-read some of those chapters to get a more professional level of coding practice.
<ul>
<li><a href="https://www.manning.com/books/learn-windows-powershell-in-a-month-of-lunches-third-edition">Learn Windows PowerShell in a Month of Lunches</a> by Don Jones and Jeffery Hicks</li>
<li><a href="https://www.manning.com/books/learn-powershell-scripting-in-a-month-of-lunches">Learn PowerShell Scripting in a Month of Lunches</a> by Don Jones and Jeffery Hicks</li>
</ul>
After reading those I wanted to learn more and starting using <a href="https://docs.microsoft.com/en-gb/learn/">Microsoft Learn</a> with a goal to get <a href="https://docs.microsoft.com/en-us/learn/certifications/azure-fundamentals/">Azure Fundamentals certification</a> and go from there. The material available so far has been great. Mostly in about 30 minute chunks. Lots of references available, some labs are available, and all free. I'm still on pretty basic stuff though feel like I'll plow through a lot. Azure is crazy huge - there are so many services and the global environment is absolutely gigantic. </div><div><br /></div><div>The Azure Fundamentals learning path lead me into another tangent to go through the learning path to build a .Net application with C#. The Azure path got to a point that one of the sessions was recommending as pre-requisites to have knowledge of API and WebAPI in C# and .Net and I do want to be able to get the best use out of labs that I can. My programming is really rusty, but having done so much in school, the pace of the early lessons are more frustratingly slow. My expectations are out of whack - like I'm learning basic syntax like variable declaration but then also what's a container anyways? </div><div><br /></div><div>It's been refreshing to be learning and be re-aligning my skills with the current world. </div><div><br /></div><div>Ciao </div><div><br /></div><div>Dom617b
</div>Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-4520382666185766652020-11-22T09:43:00.002-08:002020-11-22T09:48:39.693-08:00New Website Name: Dom617b<p>Welcome to Dom617b! </p><p>At least if I've setup all the new names, redirects, and certificates. Otherwise, you're not seeing this for which I have only myself to blame. The process I think could have been simple and I'll add a few notes about where Google is tying in services.</p><p></p><ol style="text-align: left;"><li>Go to Blogger Settings and change the name </li><ol><li>Disabling HTTPS first may have made things a little easier as it was initially hard to follow the redirects while that was still changing</li><li>Change the Custom Domain to the new name</li></ol><li>Update DNS and with Google Domains this is at least partially integrated</li><ol><li>In Google Domains, verify that the "synthetic record" is registered</li><li>OR setup DNS CNAME pointing to ghs.google.com </li></ol><li>Redirect old name to new and in Google Domains there is a forwarding feature </li><ol><li>Remove the old CNAME</li><li>Add a forwarding entry with settings as applicable</li><ol><li>301 Permanent redirect</li><li>Redirect full path (i.e. oldsite/page.html -> newsite/page.html vs to newsite/)</li><li>Enable HTTPS redirection</li></ol></ol><li>Wait - like a day or two</li><ol><li>New name was resolving fine within a few minutes really</li><li>Redirects were almost instant</li><li>HTTPS was the slowest part</li></ol><li>In Blogger Settings turn on HTTPS and redirect to HTTPS if not already done</li></ol><p></p><p>Its long past time to move on from the online handle I was using in high school so here I am Dom617b! The 617b is what I use when I can't get my own name or handle when registering for some site so that ties in to the old part, plus "617" kinda looks like "bit" in 1337 and "b" for binary, so it all comes together as a Nibble handle. </p><p>Ciao</p><p>Dom617b</p>Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com1tag:blogger.com,1999:blog-934075561374752090.post-47237518521141851922020-09-26T10:21:00.000-07:002020-09-26T10:21:12.503-07:00Home NAS Part 3: Encryption<p> The Synology DSM supports creating encrypted file shares and I want to use this for backups as these can contain personal files. Initial setup seems pretty flexible as you can create a share with encryption or enable encryption on an existing share and you can use key files or pass phrases and there's a feature called a Key Manager with good documentation for DSM for all of these.</p><p>My setup is to use a removable device as a key store. </p><p>It starts with setting up the Key Manager from the Control Panel under Shared Folders. From here you initialize the Key Manager and pick the USB device (otherwise internal) and set a passphrase for the Key Manager. </p><p>Then start creating shared folders that use encryption and you can pick the key manager. This also lets you pick if you want encrypted folders to be enabled automatically on boot which would require leaving your external key manager device connected.</p><p>After that, you need to keep copies of your key store and keys somewhere safe in case you lose key store device.</p><p>Once all setup you can start using that file share and it is pretty much seamless. In Windows I removed the old file history backup target and re-added the new encrypted share. On the Synology I removed the cloud backup targets, moving the files to the new location, and re-adding the cloud targets using the new location. </p><p>Stay safe 🔐</p>Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-41983417280054143432020-09-05T10:55:00.000-07:002020-09-05T10:55:55.096-07:00Home NAS part 2: No Regrets? Let's Get Setup<p> Following actually picking and buying a NAS in <a href="https://archangel.thenibble.org/2020/08/home-nas-part-1-biting-bullet.html">Home NAS Part 1</a> the initial setup of the Synology is of course very easy. If you don't get distracted by all the buttons and spend days and days with "what's it do? what's this do? what's this do?" </p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/fCrghE5P2ek" width="320" youtube-src-id="fCrghE5P2ek"></iframe></div><br />First of all I should have gotten one of these 2 bay NAS *ages* ago and even the cheapest model would be fine. So I'll start with the list of things that are overkill in my setup.<p></p><p></p><ul style="text-align: left;"><li>Dual-LAN. I just don't have enough concurrent devices to ever possibly saturate my network and since everything is WiFi even if I did, that would still be below 1 Gb that a single link would do. But it does afford a backup in case of failing cable or network port so I'm still using it.</li><li>NVMe cache. If I can't even fill up the WiFis how could I possibly saturate the drives? I at least held back from the 2xNVMe which would add write caching as well as read caching. Current reported cache usage on the 500 GB NVMe? ~350 <b>MB</b>. While theoretically possible I might one day get a performance boost, does seem unlikely, don't it? It does reduce drive activity so I'll keep it in the theory that maybe the drives themselves will last longer.</li><ul><li><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkidRbEKxsS5_Xo5Sble8l3f7jC4mUeAu8I2ffyzJHE4gMUxfgZ8hfSRHD-Hdiw2wXpFJ05l1WfJ9yaJhp2zT68DDYgI1BEoiHMvVN6X2ZXdZT_YKfpSo2SiY8tQzi92nkmytGDIxlU0Tm/s361/DSM+SSD+cache+use.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="177" data-original-width="361" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkidRbEKxsS5_Xo5Sble8l3f7jC4mUeAu8I2ffyzJHE4gMUxfgZ8hfSRHD-Hdiw2wXpFJ05l1WfJ9yaJhp2zT68DDYgI1BEoiHMvVN6X2ZXdZT_YKfpSo2SiY8tQzi92nkmytGDIxlU0Tm/s320/DSM+SSD+cache+use.png" width="320" /></a></div><br /></li></ul><li>4 TB drives. Okay so I just went with a drive size I had in budget. After copying all the data I wanted on there, usage is ~450 <b>GB</b> (are we seeing a pattern yet?). Truthfully, the bottom-end purchase price isn't that far off and it does forestall having to ever buy new drives except as replacements. Of all the overkill things, this is the least controversial under the heading "storage is cheap"</li><ul><li><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZzepeiX8IpFkDdw9lOvAfmkujFXNyUfIOcFoQpg10-SL4OfL_1wzJS-Riaux3yAEY81qrl5zZF8jDtj_BN7SmJIFMB8KCRGaapunaTQtOScuFHHNM8ur2ylTEvSd5RB5cRY1Pw0h20YEB/s739/DSM+volume+use.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="52" data-original-width="739" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZzepeiX8IpFkDdw9lOvAfmkujFXNyUfIOcFoQpg10-SL4OfL_1wzJS-Riaux3yAEY81qrl5zZF8jDtj_BN7SmJIFMB8KCRGaapunaTQtOScuFHHNM8ur2ylTEvSd5RB5cRY1Pw0h20YEB/s320/DSM+volume+use.png" width="320" /></a></div><br /></li></ul><li>Memory upgrade. Basically like the storage, I was building the spec and saw "oh, can upgrade memory, that sounds cool" and bought a DIMM for it. I think in theory I might eventually use some of that memory and the computing power in the device if I run Plex from there. Mostly I was paranoid that I wouldn't be able to get a compatible part in the future.</li><li>The DS720+ itself comes with a 4 core CPU. I... Well it's just faster okay? We are not taking any further questions at this time. </li></ul><div>This is to say this NAS is a miniature powerhouse relative to its task and purpose. I setup a couple initial shares, a couple accounts, and transferred all my files over. </div><div><br /></div><div>Right away file share was far more stable than either the USB drive I'd tried attached to the ASUS router and far more reasonable than running a full sized desktop to be running all the time. Also really so much better to consolidate storage from many places.</div><div><br /></div><div>The DS Finder app on mobile is used during initial setup and for general admin. Its been great so far, which I kind of expect for modern devices (like ASUS routers). One tidbit is that during setup you setup an account and the first account is a general admin which I went back in later to add a separated admin user and demoted my own "normal" account. </div><div><br /></div><div>One awesome app on the Synology is Cloud Sync basically to pull down files from OneDrive and Google drive, and any number of accounts which gives me a real backup of all that data.</div><div><br /></div><div>The photos stuff I'm not 100% keen on as it looks like Synology has been trying different things over the years and that's the one thing that's really long term retention so not too confident there yet. It's not like the files go away so I am trying the Moments app which is scooping pictures from my phone and uploading them to the NAS. I went through the Google Takeout process to harvest all my photos that are up there and copy them to the NAS, plus the computer, plus the laptop, etc. </div><div><br /></div><div>That's about as far as I've gotten so once I do start setting more up on there whether external access like to get files from mobile device while remote or Plex Server and dumping more multimedia on there, all kinds of cool stuff on there eventually.</div><div><br /></div><div>Ciao</div><p></p>Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com1tag:blogger.com,1999:blog-934075561374752090.post-66566255965789877382020-08-02T11:14:00.007-07:002020-09-05T09:33:39.029-07:00Home NAS part 1: Biting the BulletAfter many years of wanting and putting off getting a dedicated Network Attached Storage, I have finally ordered a <a href="https://www.synology.com/en-us/products/DS720+">Synology DS720+</a>. Literally just ordered it and it's not here yet, so this will briefly by about the "why".<div><br /></div><div>Cloud storage is great including <a href="https://photos.google.com/">Google Photos</a> to hoover up pictures and <a href="https://onedrive.live.com/">Microsoft OneDrive</a> for shared files especially MS Office documents. Definitely the best if the free or paid tiers work for you but for me it was going to be too costly. I've been trying other ways like running a file share on an old computer but its too loud and takes too much space or hooking up a USB drive to my Asus RT-AC86U but it's SMB1 and acts weird. So a NAS - a dedicated device that will be compact, quiet, power efficient, feature rich and upgrade-able. </div><div><br /></div><div>Synology, QNAP, and others make a plethora of products and I rely on <a href="https://dongknows.com/">Dong Knows Tech</a> and also on write-ups like this one on the whole current <a href="https://nascompares.com/2020/07/12/synology-ds920-vs-ds420-vs-ds720-vs-ds220-nas-comparison/">Synology + series on NAS Compares</a>. I've used both Synology and Qnap at #dayjob and Synology I think is more for tinkerers and I do like to poke things with sticks.. </div><div><br /></div><div>How big a NAS? It really came down to that I know I will want to upgrade the hard drives in the future so I want the fewest possible and that I can get the capacity I want on a 2 bay unit. </div><div><br /></div><div>And then the model comparison - if you go on Synology's site and look at their products even limiting to 2-bay models only they have 8 current products. What the great mother of Fridays? It came down to that I will heavily use a NAS and the price differences were relatively small to go right to the DS720+. </div><div><br /></div><div>Alternatively, for something for backups and basic file sharing, people frequently sell their old NAS on Craigslist / FB Market. I wouldn't buy drives secondhand, they're the only components that routinely fail and every year someone else used them is a year less life they have. Otherwise, yeah buying a NAS second-hand would be great get a couple new drives, awesome. </div><div><br /></div><div>Time to go check my shipment status again...</div><div><br /></div><div>Ciao</div><div><br /></div><div><br /></div>Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-21577809985006231932020-07-07T16:24:00.002-07:002020-07-07T16:24:16.068-07:00Windows Terminal Is The BestOnly been using Windows Terminal for 10 minutes and already it's clearly the best! I heard it from <a href="http://runasradio.com/Shows/Show/703">Kayla Cinnamon on RunAsRadio Podcast</a> and right away installed it from the MS Store.<br />
<br />
Tabs? Yes<br />
Launches PowerShell? Yes<br />
Does "cmd.exe" sux? Yes<br />
<br />
RunAs Radio <a href="http://runasradio.com/Shows/Show/589">Windows Linux Subsystem with Tara Raj and Sarah Cooley</a> also put me onto WSL which I now always advocate rather than running a VM (unless you really need one) or Cygwin (nobody needs Cygwin). The slick thing with Terminal was that it dynamically added a profile for WSL after I installed it!<br />
<br />
<img alt="" height="217" src="data:image/png;base64,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96P2L9vIZV82tkd/oq24iM03vVkulrE/9mUddZnlokzd3q/3Y+n3x+toO+ZiaF8/R3WMcVz2L9qJ17k/68p+xvbcNrSMeuIjyg/t77f15ft+Zvl+/MvGmsfEsrfS11PLWl/PH4b1vCx7475sX60j11cNxB7wgAfs+E3SvGF69NFHtTvc/n6dV+8AACAASURBVKh20UUXto985COLr52xf77w+c+31772xnbmmWe2c845p93nPvdtRx21c08yRLt5wzyDkbFArJbdLAgYujkf449AooYSfT1DN/r7cKc/Jud1lfqzbB1LbhsKH/pyff/z2L5P2efcH+OKOcnXOdd1W9RdX2fZWA71re6P9Wwzln1/atl+TKvWP3RcrXdofeh8RrnoX3WQXtLiUF05vqGwKvqWc1fXaz1T5nCojVpXri+b5yyzyrL3kceM9XloXnMOa9+3cs6y7VWXy4KvZftWrX+zctsNxH7s/As2vi43a2vV/TsViMW1UXzkz69lyygb10hDZfproCjXl83rvbwuzHr667O8TuyvC/tycXxf56rHDtUV9fXj6K/1ss+xjI8oX7f162Pt9OWG5ivKRPtjbfTHDPWnvxbOdvtx9ePOcrHs2xmrsx5jff2ve3fqHC27Rl62b7vtC8Q2N5ahWHzNCsM2n6/tmnS8OWaAAQbW30BcL99yyy2LUCzCnVU+o3x8zPX83njjjYvxbRaG5fj3KhTb00DsYSed3s54/m+2c66KJ8P+rD3r1Z9oH/xfX1hMXDwV9oY3v6894cX/pZ36gne2173lE+3df/jX7d0fjs+/ar/34c+0t7/n/7SnXvmORRgWgdhZl36onfiwR+w4quhQvAGNjz48yTemY28w+zeIWT5PfC77N479m8W+XH3zH/0aenObbzDz2FhGuay71pH9HxpjPT7r7OehlunHUvfl+rIy2ZcsG8vcFv3L7XmTIseU22M5Nie1zCpjGSqf21Y9l2Plsp5c9laWzVEeY7mePyBXecO+Spk8v3sdiEUY9i33vV177pPu3J75jx/Qbrrp19rf/M3fLL7Ohv551+++tf2jx35bu/3tjm73PO6YdtJDv6nd5U6327EbuNFmDSGGbrTHTeA+jMjXsRy6SZw35/t90V4NQvpAIdqv/YnjMxTItrLueuM/ysXrzerP/vTjru1kmVj25VYNxPLYDGliDDG2rDvrifHHtihX92e5XOYc5OuxZZ6/vt+1/Ni+2J79qeVzfey43D+07MedZaKunJvYtmrd/XFxbFpMD0OGolxvLftSl2mrblu2vkqdy46PfcvaHDvveZ5r3VlPzkPsW3Veaz1T1lcJvFYpM6XNvuycA7H4uRUfce2TP8PGlsuuw+JatdaR1661rj68yn39dVdeL24nEOuve+OaLT7H2szt/bVc37csl3MR5XPb0HLs+L7s0HxFmWXHx3mLfmRd8brvT/ZzaD6i7jw2x93P+dA5y/PT15l1Wa7nte7hOC+rXBuvUmYrfROIrebs2c9+tjBs4OndrZhzzGrmzJN5YoCBdTaweOOzxX/WeVxb7dsZZ5yxuEe0ahiW7USIFvcLTj311I33E7nvcC33NBD7rkc/oZ112R8uwrDHX/nxduHPf6J98q+/3CIMe8HPvK099kX/vZ1+8XvbGRe/p33wT259aqx39pxr33JrIHb+29pjf+I/HpaJizeV8VHf+OYJyTeGsb9/0xdl+pBj7I1ovnHMevPNYX1zmduirfqGNY+t27Js/0Y2t0e/6hvPrKMfY4w9+xTLsf7XMllX3Ta0PjSnOdd9+Wy370/0Nz76ceZ5qXMSddbxZZk6D1Em6urryzfw9Xxkn/q+Do0/+tj3PcrV/kXfav1D9fRteb1+FwdT3qivWnYvA7EIw47/xtu1n/7xY9p7fvHY9u+vuXt71EPv266++ur2hS/c+gsMiy/C8s+vvOb89tqLj2n/6OQ7tSufdbf2H669e3vMg++wEaz0N4envo6m4qZ7Hpc31eu2DJr6sCRCnfioN+DjuHidIUWtJ8vHMtvrA4Usk/uznmgnA7HYFz/g4yPL1W3L6s/ycWztW2yP132dfbmou9af9fXjyPqin1kmxxZ1xjznvMbrWi7L1+VQ3+r+XM9yUWc9L7k/lvHRjz2257F1nlc5rpYZWo/2qp1Yr3OY53isv7XO9Fn72Nc/NI48LpZRX7RV+xDbsh9Dc1P7UNeHznu/P/q3bGzRjzo/9fgcS90W6+GlPybHWNsaO9d9fVt5PSXomlJ2al/mHojVa83+OmXo2ifOeS0X10LxUa/P4hqqv47Ka7N6LRX19Ndn2Z9Y9u3U68LY19eZr+v1WfavHtu3me3013JZXx1LbosxR/k8dmg51k5fdmi+oky2VduP7TGWOp7YNtSfsWvnOLbOUY476qh9G2on+9Sfx3qc9fW73t3pc7LqNXG0O6Xsqv0UiM3f2KoWlGOBAQYYYICBrRvYaqgVYdpuzvueBmInnfu8dvYV/6s9/sr/vVie9dKPtGdc/9529gv+4+L/Cos/gRhh2GkvfPfiTyT+0Mv+c/uhK/9T+8Er3tJ+8Ir/2P7JS36jffdz/t9FIHbK83+nPfr7rzksk5dv6sbepC7eMXZv+PIk9m8Qx97IZht5XCzzDXzWH29ex9409mXjmP6Nf9YdferfCOfx/RijXP2IY7OeseXQWMbK9vX3/crjsn/9m+WYz/iIecmyucw37bX/9fjc3x+b/a/HxXo9NtqYci6jfP/Rj7W3kv3I8Vhu/Rvybs5dvEmPz1XbXKX8XgZij3nQHdt/+Zd3b+9//XHtA68/rr3nF49rz/2eu7S73fWO7YYbbmhf/epXD6L9xS99pb3u+vPae3/x7u2Dbziu/Y83HNc++Prj2pXPvFu7/e2O2ghapt5AruWjwT4AiBvq/UcGCfXYWM8b9lm+Bjt5gz73ReAQN/9rEDEUKEQd+RFlM6ioIUi0XctF+Qw5Nqs/jo2Pftw5ljrGvlzf/yw7NI7sY+1Plp+6HOrbUB05V8va7MdU61lMTBc05v5lx2WZsWXWG8u+b72TWjbWe3t9+f48Rh9yHmpdm/mJsjVMGhtL3R7nfewjyuX+sXrza63vW7Yxdt7XJRCLoCv7utkyyk4pv1l9uX/ugVj+/Ouv8dJdf92V13K5f+haM+rqr5vGron767O8huyvi/ty0e+hOvP47F9cD/bH9q9zDoau5bKNrC/HG6+jfB47tBxrpy87NF+1TLRZP6Leuj/Wh/ozdu08dg3bj7U/h9lmztNQm1nGcn9cB2/1PK1yPVzrnlq+Hju0LhCbt6+hc26bc84AAwwwwMCRa2BPA7GTn/qqdvYVHzsQhn20Pe6yP2pnvuQP2mN/8n8s/j+wDMNOe8E726kX/W6L0OsxP/Hb7dHP+6128nN/c+NPJS7+/7AX/X476cwfOuTNHNxHLm7n3rmfi4G9DMT+6ePuvAi1IgzLzzdf/3XtpBPu2l521VXty1/+cr2n1j796b9uv3jVSe39r7v7Rvk47uafO7ad/MCde0osbyxb7kzI2M9jBndDoUeEOxGa9Md4fXjOxbrNawRe4WPd+rWf+nOkBGJz+RlsHNOvJzPgMnfT586c7c2cCcT2Zt55N+8MMMAAAwwwsBcG9jQQe9STL21nXfbH7azLPnJgGet/1B536R+2x1364XZmfL7kD8rnh9qZP/Wh9tif+p/tzMXnra8f95IPt8de8Jb2sJNOE4j5m9YMMDA7A3sZiD3tzDstnvTKMCyXb7rqHu1Xf/ln2xe++MWNQOxzn/tc++U3vK796su+4aBj4kmx/37Dse17T7mTm+hH7Z/QJJ8E2jjBZWU/hQ/6urPmgkH/BJw5njbH2w3EnvnDP9r+2Y8/r/3Y+Res9Pncn7iwXXDhC9sFF76onf8TF7YfHzgu6nvsY89sD3rQg2b3M3Qv3mAd6W0KxNzY2G9fA4c7ENtv86G/voYZYIABBhhgYM4G9jQQm/PEGptvHAwwsFMG9ioQ+5qjj2oXfO9d2u/9/LHtPb9wbHvfL932lNj/+OVj24t/8N7t+77v+9q1117bLr/88nb6GWe0f/DNd2u//XO3PR0Wx/7sBce0h3/H7dvtvmbaTWM32c0XAwzM0cB2A7EHP/jB7YQTTmgPeMADdvQz6oy6d+pnl3qO3OsggdiRe+7369e9QIzZ/WpXv9llgAEGGGBgugGBmKdp3PhggIE1N7BXgVjciP6mr/+a9oR/eMf2jLPv3K545t3ab1z3de2dNx7bbrnh2Pb0s+/cjj76qHb00UcvPqP8fe/1Ne0/v+rui/83LMq86Afu2u51969pR++jJ6PmeAPemARLDKyPge0GYvGGp/+5sFOvvZma/mbKnB06ZwKxQ+eEk/WeE4HYep8fXz/ODwMMMMAAAwzspAGB2JrfCN/Jk60u3zwY2J8G+hud8Rv8+Rl/3io+4zf74ybr4bjpHaFXPN111zsd3f7efW7XzvyuO7ZTHnyH9rfuevQh7UW5xz/yTu2qH7lbO+9Rd2p3u8uhZQ5HH9W5Pjf7nQvngoHlBnYiEPPzfH/+PHfenDcG1tOAQGw9z4uvF+eFAQYYYIABBg6HAYGYQMzTQQwwsOYG9joQc3N7+c1t82N+GGBgigGBmDd1h+NNnTq5YmDrBgRiW5877swdAwwwwAADDOw3AwKxNb8Rvt9A6a9vggzsvAGBmJvtU262K8sLA+ttQCC28z8nXXuYUwYY2I4BgRg/2/HjWH4YYIABBhjYXwYEYgIxTwcxwMCaGxCIrffNbeGD88MAA1MMCMT215slb26dLwbmb0AgNv9z7OvYOWaAAQYYYICBNCAQW/Mb4XmiLH3RMnDkGhCIudk+5Wa7srwwsN4GBGJH7s9z13LOPQMMMMAAAwwwwAADDDCwtwYEYgIxTwcxwMCaGxCIrffNbeGD88MAA1MMCMT29s2PN5/mnwEGGGCAAQYYYIABBhg4cg0IxNb8RrgvziP3i9O5d+7TgEDMzfYpN9uV5YWB9TYgEPPzPX++W7LAAAMMMMAAAwwwwAADDOyuAYGYQMzTQQwwsOYGBGLrfXNb+OD8MMDAFAMCsd19s+PNpflmgAEGGGCAAQYYYIABBhhIAwKxNb8RnifK0hctA0euAYGYm+1TbrYrywsD621AIHbk/jx3LefcM8AAAwwwwAADDDDAAAN7a2AwEOtvvnr9kGYOzAEDDOyVgQc/+MGt/3zQgx7U4vOBD3zg4vOEE05oD3jAA5ob4et9I9z5cX4YYCC+V8f37Pz+nd/P++/z8Xqvfu5o1zUPAwwwwMBuGXBTcG9vCpp/888AAwwwcKQZ2AjE6sXO0Bty2w69IW1OzAkDDOyWgbxhmsu8kRrLuLEaTxwIxNxoF7YwwMD6G4jv1fmUWP1ent/f63K3fsZox/UMAwwwwMBeGaj3oo60G3LG6yY0AwwwwAADu29gIxDbq4sf7brwZoABBjY3UG+Qxnq9iSoQW/8b4EIK54gBBtLAqoGYn42b/2w0R+aIAQYYmJcBNwV3/6agOTfnDDDAAANHmoGNQCxvttabrNZv/VNk5sE8MMDAXhuI0Kv/jCcM8smwuMF6//vf359MPMpN97zpbskCA+tpIL5Xx/fsDMbye3n/PX6vf+5o37UPAwwwwMBuGcj7UUfaDTnjdROaAQYYYICB3TewEYgdc8wxzac5YIABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYmJsBgZggUBDKAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDMzagEAM8FkDn1uCbTx+K4MBBhhggAEGGGCAAQYYYIABBhhggAEGGGCAgekGBGICMYEYAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMMDBrAwIxwGcNXEo+PSU3Z+aMAQYYYIABBhhggAEGGGCAAQYYYIABBhhgYG4GBGICMYEYAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMMDBrAwIxwGcNfG4JtvH4rQwGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBqYbEIgJxARiDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwMCsDQjEAJ81cCn59JTcnJkzBhhggAEGGGCAAQYYYIABBhhggAEGGGCAgbkZEIgJxARiDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwMCsDQjEAJ818Lkl2MbjtzIYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGJhuQCAmEBOIMcAAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAOzNiAQA3zWwKXk01Nyc2bOGGCAAQYOt4HWmusP16AMMMAAAwwwwAADDDDAAAMMMLCrBgRiwO0quMN9g039buIywAADDDCw/gYEYut/jnwdOUcMMMAAAwwwwAADDDDAAANzMyAQE4gJxBhggAEGGGCAgUEDb3jDG9ott9wyuG87F8UCMW+qtuPHsfwwwAADDDDAAAMMMMAAAwxsxYBAzA2wHb/JtRWIjvENjAEGGGCAgfUzIBBbv3Pi68Q5YYABBhhggAEGGGCAAQYYYGBrBgRiAjGBGAMMrKmB73jSr7Z/eHFrj7zwc+0e3/SQ2Z2n3R7fbrc39wsT87m1C6/95kIgdmSc5/3mUn+5ZIABBhhggAEGGGCAAQYY2IqBbQViX3/zMW3o8+5PnsfJGBpbbNur8R33ktvmeysne5Vj/tY/OKZFO8f+0DzO4SpjVsa5XkcDEYBFEBaBWAQP69jH7fRpt8e32+1tZ272w7Hm87bvmzEX8TX6LadeNbuv07AoELvtXO+Hr019dL4YYIABBhhggAEGGGCAAQYYGDcgEFvyZMiRGIjd69duC90OZ/AXdd/zNbe19fVvPabd81XHtK995MFYawjY76tf2BHkRR1xzhaB3nNuq/vrHndwnfW4qDPP87HPubVc9C23HbKMfr5meSgafYm66lze83Xjfaj92ep63160HfOwrL4Ye8z5vf7DbeON9dgWY1h2bO6LOo696NY5yfGOuVnW3rJztLDS9TO9LDsu+7jqsp73sTGsWtdOlPvWM//lIgyLQCxuuO9EnetUx26Pb6y94//hCzfmeWx+4hzMNZgcG/Nm28fmsz+uzm/OYy5r0FvLxXpfzzq//q4f++iGof3W97F5Pf7449t1113X3vzmNy/+/7D4P8Ri/bWvfW178pOfvCPnx/8httrP2bFzZLv5Y4ABBhhggAEGGGCAAQYYYGC6gW0FYnXC1+1mcu3bTqyvw/hqOLQTYxqqowZAEXQMldnutqi3tnPQ+luPaTXkqEFXBDVjbW/MzVtvDXMWxx14gnHZOCJIyvYjsIn667nOfUPLDNBqnzb60T09eTgDsZiXof7Ftgipav9yfayfG/W89dBwMo+NZczvWLtDTxfGOc3AcqONbo7645a1UeuoXmofp67X8x7rU4/f6fIPf95fLG6yP/Cpv7nnfYmxfdNDn9Ue+sPvX3zG+nbHu9vjG2uvBjFjYxoKcMbKHinbx+azH3+d35zHXM4lEMvxxPJ+5/7Ctr82+jnc7dcnnnhi+63f+q2NICzCsP4zgrEIzbbTN4HY3v+c2c75c6zzxwADDDDAAAMMMMAAAwwwsB8NCMSWPCFWT+g63CyvIUbt206uZ0AUQUoEEjtZd9RV5zHGk21EqJFPGPXhUQ3QsnztV2zLsCXqzH0b9b3mtm25L5cZ6sSTUbmt9jHW6+eiLweeRItQJkO0PDb6nmFNPEmWT1/1Y8ry213WuYk2IlSKz/r0XZ2TaC/2Zx9j3o67+rYx5nzE/qhjqH9D4VaUjXZirvo5iTpyHhb1vuq29qLt7Es9B30/Y1+MNc9FHd9YP4f6vmxb1J19ifVlZQ/3vvr0zTd+x3l72pccaw02tvsUzG6Pb1l7dVw51n6ZgUcNcPoyR9LrZfPZz0M83RhzXD/ziao6n/U8xHpfzzq/zvmIcc3hac5Xv/rVGwFYrN90002L1xdffPHGE2MRmJ1xxhnbOk8Csb39ObPOX1P6xgYDDDDAAAMMMMAAAwwwwMDhMiAQE4ht64bWVJgZGPUhTdRTg63+qZ8MVIaOi22LIOPA02HZp7o9t/XLjXqvvu2bTA1G+vLxehEIHXi6KQKdWiZCm/qkU473cAVi2f9Y1n7EerYdodch++JPEI6EnjUU64+r5yjmPMY/FFLW4yIgy6Ap6q77Yn3jPN188NOBsS8C2qFzHvsy8BwaX9/GKq/red/rQCyexIoQJpar9H03yuxkYLHb41vWXh3X2DwKxA7+ul02n2NzWLfn8XMJxOrY5rCeT4NFGBbj6f8PsSuvvHLbYVjUKxA7+OtqDnaMwTllgAEGGGCAAQYYYIABBhhYdwMCMYHYrt1w3whGSnAVYUeEORFuRNCUT/5EsFS/ePLJtQg/agBTA5o+OKkBRx+wRd0b/bn54BCrHlf7UNczjNks6MpQarNyte5V12swN/TnG+uTYEMBT53H2mY9rn/aq4ZlQ23WenK9zmcNC4f2D/Uzy/XLnZ7b2s8p/ej7td3XNaBZpydldqpfO1XPqvO8WXt1/1idArHbvh/X+Yr1sTlbtl0gdtt8LpunvdqXgVgEX9GHPhDbqX4JxNbbwU6dZ/U4zwwwwAADDDDAAAMMMMAAA+tkYE8DsbghvwhEfu22J0giHIltYzfrc/LixvoiPCl/vi6OjRv2/U38OKaGB/k0UdxQj+Bls7bi+Kk3y7fTXowtA5foa6zHtpiXfNIm5yGWGQzE/o0/QffWW5+uiX7HvMRxUa6fm1pn1p3L2ka/nmWi/rH+9sdEuUU/DvwpvkPaPvDn+6JM7OuPz3HUfWNBWR4bAVrU1wdssT+25TiyfCzrua7b63rOeSzr9n591XL9cau8rv3vz2scH65zfHXONqu7jr/Wu6jvwHxuNu6+jTwP/RN1UW7jHN682tfixtjy3D5n+Tno+zL2uo471sfKbbY9/oxY/Dmxrf5Jsfg/wyKAiT+/NtRWDRO+8/t+fVH2kRd+rsWfbYuAIv9vpyjX/7nFDHai3LecetWijdwW7cW22mYNP7LcsmU9dmx9s/HV46I/D3nGLS3Gl+3G+KKOfmz1uLq+WXt1jPW4up5t1yeacn/0I85DzHftZx4T7WfZfhn/31T++cAov2xs0XbWGctoL+rrz2PM19D/8badftZ+bzaftezYejWcZep5iPXcPmU5ZT6j3pzPaK+fxzgv8TU11H5/LrKeWA6Vz21xXmrZ8BJzEf1e9qcW85ixfvZft9leLqfOS/7/YRGERR0Csa3/PMhzYGkOGWCAAQYYYIABBhhggAEGGFgPA3sWiMXN9Rr65I37XMa+saCqPqWS5Q9avvXQP71Wb3YfVDb+9N1A+R5oPX6Vm+W1/JT2ajjQH1fHXfuXocsiEHzNbU9ZxbgyRMq6oo567CGh1IE/BRjla7l+PeuroUxuy2UEYPW4bCvDmQxJFoHfc27td5rIMvX4jbkpT4nl+IbKx7H5xNnQ/zO1sa8Lteq5q+3X9ZzzzYKhVcvVulddz/ms5yq+ZurXTc7xUBA11s5QvVE2A81oL9Yj9M05jG1xLsbOQz13sR5BW3wuth8ItsaO7fsZx2yc9+5PVvZlp7yu532Vr/Gxul/72tdu/P87eUN5rGy/PUKLvPk9djM+w4QITyL8iM84Jm6uZxiWdfRhTG6PG+S53i/rzfUaUvTlhl734+lfrzK+PCaDl6F2YluMdyj4yeNjuUp7dYz12LqefegDsTh2KATL8rHM4KrWF+FHDcJq+VgfGlsfwkSZOr5aR+yrActW+1n7HOu1vTGf/TFDr9Nwnc96HmJ96LixbVuZz6gr52zZ10OEnX27/bnIemLZl62v6xjrMbE+dM7z2Cy7rJ/16zaP2+q81P9DLL6HvfnNb158T8t6d2rpCbGDr5F2al7VY14ZYIABBhhggAEGGGCAAQYYGDewZ4FYDXfipnrcYI+b0PUG+1DYUG/Wx03xCGTiuDi+1tkHABESRLn8jOMW5Q/cjI/goAYJPZo4LoOeWO/396+30l4EBNlGBEP5dE4sD+prF1Zl6BLzkf3IemJeoi8ZIAzNaR4Tyzq/dXu/nvXHvEWdef7q8TGGelyenyybdeQ4o+yyQGyx/8DTbnH+asgydu5qYFf7EusZFkWZuq+e67o91+vTf5uFOHluls17jCPqWfUz+7HxNOABDzGvOadRZ5Rbpf2sL5d5DuJrMbfFsp7bOkfZZi7jPNfjcj36l3Vn2VjGtuxvlu2XsX8xlvKE2tjX4Vbns45prO6+X0Ov48+M5Z8cu+666wbnYui42JZPfEWwNVYmw4RaJm+Yx03xuAmewVgfxmS5uPke+6J83KSvN/gjqBlqu97MnxpYZH2rjC/K1v7EWCIIiDajvzUoGworsq1YrtJeHVc9tq7nvNUAJ/bXUCvayvmMOvMzttW6Yr2OIdbzuBhnnJtor57fenztb/Qnjo+gKspESJV9rYHVVvtZ2431VeazP2bodRqu81nHFetDx41t2+p85lzFnMfcZ4gY7dc526w/1etYH2N71B915We0GX3Pcx7L7EOtp/ZzytftVufl+OOPbzfddNPG97H8fvbkJz950nmpYxhaF4gN/6wcmivbzBUDDDDAAAMMMMAAAwwwwAADO2NgTwKxCC/yhvhQUFBDsRqWLI47cEM8bqIPhSBx0z0+VwVSw41lx+3UzfJl7dWAo447x5LhRsxdbotlbq9zmfOb5YbK5L66rKFH3d6vZ/01hMsydRy5LZbZh5jLnM84j7VMHhv9qNtzPcKOaDvazZBvrGwcE/OYfa0hRz0PsZ71xzL7FsdlX3O5CNgyRL35ttCyHl/Xc8z13NT9sZ5lsp+bLfP4elxfT7aXZfJ1Hju2rGPvQ6pqI+qL4CvnZbGvzEs/p9HeRqhVnkKMsa4SiGWYWucmzv/Q12yOuZZdtp5zUcce67l9K8uLL764xeeUY+NGeN4Yr0FBX0eGCbHMfXnDPF8PlYl9WW4obMmwI8pkPXUZN/Hz+M0Cgnpcrq86vlouQomhgCACpKGgKduKZa1n2XzWcdXj63qOu68nt0fwUMsvW49+5XF99p0nuwAAIABJREFUfXFc/bN6Q0/A1f4OncehunPblH72Y1h1Pvvjhl6nzzr+Oq4pvrYzn8vmpT4Nt9m8xTiyrqHxbratnvMh11n30Pke+7rdzrxEfyMUi0A/w7BcxhNj8WdhNxvTKvsFYtv7ObPKHCtjjhlggAEGGGCAAQYYYIABBhg42MCeBGL1xvPQDe3Yljew6035g47bxv8bFDfro674rOHcsmClth3rUyCt2l7eyB8LL2ogUdsfOi7nL8sNlcl9dTnWRi0T61n/0JyN1ZF9yLmPOvqx5rFD9WYfMghb9GGTJ/vimCxf69x4cuyth57Leq5znEPLajP71i9zzP04a7kIAWP/qp95bA2JYlvOXfQ16oxtq7Sf9cXXQs7VUH8Pqn8gsKzzVud60Y9XHTBT/m+7KB9zmE/qjT1Zlv2LZQSccUyEaHlO+vOw1fms/Y/12u5urOdN9bGnRLIPGSZsJxCrQUTWm+3HzffcVpdbDSyyjqx/s/HVdupTTlnPqsuttDdWdwYS/bxFQBH7Ykz5hFgEEWP1xPY6vrGy+XRSPEHU11WPH9rfl4/XW+lnX8+q89kfN/Q6Ddf5rOOK9aHjhrbV46bO59h5zXbyz5HWr7XcV5c5N2NfO7VsrkcIFn2Pz83Cq2X9HGt7O/OSfYzliSeeuPEnEzMU2+r/j1jrjXWB2O7/nOnPgdfOAQMMMMAAAwwwwAADDDDAwJFmYE8CsY0w4sATOP2k16d66o31zY7r66mvI5SqT57lzfS6rG3VY2N96s3yrbSX4UWGGX0faiBR9+VxNcTIcWW5oTK5ry7H2qhlYj3rH5qzsTqyDzGXOZ+1z1FvHjtUb/ZhEaIceMpoWbksH/MZ/a1tpYWhECb7lmMcWg4FudleXeaYa9t1/3bWc66if1lPzm2+3gi4Rv6MYZZbhGEZMr11+Mm32t7Q05lRV85VHW+dz1jPNnMZXyt5XB9uZZmhZc5tBGpD+6du26yfU+ubWj5Di82eRskwod6kzxvm2eZQmdiX5WoQkceM3VjP/fUGe6zn9lWXq44vQp7s51bayf6s2l4dVx7bL7M//bxFqJHtZJlYRqAVAVn+KcNaXx1fPWZovW8v6qn9XXV+ttLP2udYz3Fu5rM/buh1+qzj28q4ou7tzGfOee1H7W9szzJ1e7++ark4DxmyZb39cqgvWWZo31jb25mXfnzxVFiEYfHnYCMMi/VY9uWmvhaI7czPrqnzrrx5Z4ABBhhggAEGGGCAAQYYOJINHBGB2OKGe/lzbhESxM30+KxPmiwLV6bcLN9qe3mDf6wfNZCoaPO4WOb2DBjy9VCZ3FeXY23UMrGe9Q/1dayO7EPMZZ3PGq7kU09D9WYf6rGxntvHlvWJwyyT/R8KYGr9WT6WY0FtLdOv55jruenLbPV1DYijb0P15DiXzWcfhoXfobrGzmstm+3V8WYgGftq2bqeX4f9/1tWy/Tr9byO9bk/Ztnret5XcbWsrqn76v/9NBSi1PoyTNhPgdiU8dUb+asGPnV+Yn1KezWI6evJ18sCiSgTf+YugqIMjbJ8LPsQo46vlhta74+Ntmp/p87PlH7m2GM5ZT7T51Dfs86hMlsd13bmM+d8rK+xPctk34eWq5SLMCz/JGrUGVZiHuIznwiM7UN9yT4M7Rtrezvz0o8xA7HY/tznPnfjzyhu9/8UE4iN/0zsz4HX5ooBBhhggAEGGGCAAQYYYICBnTGwJ4FYvfE89KRNvdFdA4uDjrto9QnIp4HipvtQcJA38ZeFBrXtzW6Wb7W9zcKTsUBi6LgcU36hDJXJfXU51kYtE+tZ/9CcjdWRwUie06wjQrAIZWJ7PtE0VG/2Ycq5iGOi7mwrbNXjaxg3VH9uy2UGdvFU0tCxWS6Xq857lp+yrOPIOa3HH/R1NPL/6i3qyLD4rce0ZcFSDeDGxp7zXJ+8y6+H2Ff7V9c3ArES6tb9Q+t1fDGOoTJTttX53In6prSdN8RXefomw4RYZht5wzxfD5WJfVluyo31rLMGFkP/z1GWG1pOGV9tJ27qD9W32battjf2J/dy3lYZd9QR5bIPcWwNOev4IiTZbCz9/np8rPf7V329WT9rPTmWKT6Xlc1gqDrc6rjqcVPnM89r7Ucdd4whysT46/Z+fSyUquXyybCoq3rIMsv6smzfWNvbmZfsUy5rIBYhWP7pxHhiLMtsZSkQ2/7Pra3Mu2PMOwMMMMAAAwwwwAADDDDAwJFs4LAEYkM35+sk14AiAoO6L9brDfQaYC2OKzfv676+jvo6b7YPhSyLp7lW+PN79Wb5ZuPbansZGI2FLWNB01DoksFEzsNQmdxXl2Nt1DKxnvUPzelYHbk9j9kIlw7Mf9SZ27JM3268rudi1eAixx9znP2I87RZ/f3+MLds7H35bDeW/b6deJ3//9bQWLLtoT8pGF9LOdeLeX/dcFhc+1jHHuFY3RfrNTCrXyM539HO0Pk66GvwwP991tc99HpjfDevFk4O1VG3bcVVPb6uX3zxxS0+67ax9XrjOtbHyuX2obArb5gvKxP7stxQADB2Yz3rrMcvCztq+VifOr4IajIwieVQeNC3UV9PbS/qz3kZCuDqkzZTApf6VFV/XnN8EY6MhXB1THV96vjqsUPry/oZ5ae2l/MVYxwaW62vzmfdHutDfR3bttX5zPM+9PVQHW7mfZWvnQwVh9qKeVjWl2X7lrW9lXk5/vjjF/9vWJ3rGoh5QuzQn311rqybHwYYYIABBhhggAEGGGCAAQbW28COBWJxojMoiBvwcUM8bjDHZ9wQ7588Oehm/GuOafnkTg3DhkKEenM92omAI9uJZdQTZSq8vHEeTx9lPyIQiD5GHbk/+rQsZFt1fFnf1Pai/9lGBBzZl9rX3D80vjpffbnsUy1T68j1Or+5bWiZ9fdzHWXH6sjxZXizCGVed9uY43zksUP1Zj+ynuhDrOf2ZcusN9rOuQg7Q8fU+of2b9gd+L+24tj6Ge1FP2NZt8fYh+qeui3HFW3EuMJ/fNavo6G5DPd5DsNp7Vtdz6+X7NfG2A+El1m29iPqruOrQVr/Nbs4rvQl6su2YhljijL5/SH2R/CWTxLmuOsxW12PunNOoo0c29hyrJ14aiKfoLjuuusOGs/QMfnkSH3ia6hcbtvLQCxv6scN+ggJ4kmoCC/iM4KQofBq6vhinPUmf9zUj/+PK9uJZbQ7FCzEsVtpL+c0xlXbivUMI4bOT/QhPmvfYj22ZRgRx/fzEvuz3qHxxVxGPXnO6zK257FjZWr5WN9qP+PYqfMZY82xh5faxwjfcl8/n3VcOf7YNvZZx7jV+cx5jD7Vp/8ioKrW6xhqu7le289t/TKNxZ9KzCAwQreck9wfX1e9l+xntNPXu6ztum9VZ/kE2E033bT4P8Oe/vSnt1iP72nx/az+H2IRnvX9mfLaE2IH/7ybMnfKmjsGGGCAAQYYYIABBhhggAEGtmZgRwOxjSecyhM/GzeYuz/ZFjfMMyzIMnUZ++pN9XqC6035ekxdr+XjZnrdV9ejnYNu5t986+t6fK6vOr7ttLe0jYtuG0f2KZYZ8MQyt+cY8/VQmRoAZPlly6wrllku5q5uj/U6n/2+DGKi7dwXgcnYuc4ydVn7XeupZfr1+hRS9n3s2Fp/X0+8rgFPWKxlsu7NlmNt17pWXa/hV9/u2NdRX27sdTUV/dns6zbqCf993xfh88D3hdpulKnH1Xmu5er62PhqPauu1/Ne2xhbH6v3ta997UYgFk9WjJWL7XHjO292x43xZWVzX944r4FC1rGsTOzLclNvrGe9NbTIuuqyDw62Mr5sK4KBWvfQepbN5Vbbi4Aig5qhdmJfhhjZViyHyvbbIlSrx+T6ZuOr53eVtvq5z3ZWOTb6PNTPrc5nfeqsn494HaFQ1F37uJmtvp56bKxPnc86Lxn69W3E66i3trXVfkbgNlR/bIvwrYZXsa1+jeZxdVv2qR6X2+py6rzEk60Z6C9bxpNitZ2trAvEDv6Zt5U5dIw5ZIABBhhggAEGGGCAAQYYYGCagR0NxGLyIwypT29EABI31YcCgLi5vih/4CmauPEcx8a2zQKSqC+CgIPaihvuB9rrn2yJm/Rx8zxvbsdxEWZkH3J7LKP9MUirjm877UUwcFBff+22J2Syn7V/Q2FXX26ozHYCgKx/aK5iW+6v/Yz1DDO3E2TUfg+56tvM1xnGjfUty9X6c1u/zHFEXRHc5P6se7PllH5n3cuWi6emqu8DQe/YMZv1L/f3gVjW17e3+Lp71W1PYGa5uowxx7zVr9nF1+Frhr8/xLxG+bSbfVq0FU+VdgFabWsr6/W8b7S1JMQba+OMM85YPEURT1LE+li52J43qyMgWFau7tvLQCz6EcFQ9Dv6nDfq86Z+fcpmq+OrY43wIcKKvq0IqGIe+pBqK/OZ7UVA048r2o1tfXgTx8S26MNQkBYBRxy3LKSKOmJ/32bMZbTbB1R1rofWx9raTj+jb9mfnKdVl0PzmcHPZn9KcWh8/bahfkyZzzg+64xQKezWp8JifSikjjbyuFWWtZ99G+kr5qMGW1FvDb+ynbot663H5bZ+OWVe4qmvCMUi2H/zm998UDgWT4q9+tWvPuRPKvbtrfpaIHbbtcOqc6acOWOAAQYYYIABBhhggAEGGGBgewZ2PBBzQrZ3QuY+fxFAbgRTQ3/ycodDjrnPp/Ht36+3uAmeN7rjT8TN7Vzu9vh2u725na9+PEfCfObX31DQ1M/Hkfy6/h9iOzkPArH9+/NrJx2oiwMGGGCAAQYYYIABBhhggIHdNCAQOwa43QQXbcXTe/UJuPo0ztgTSbvdR+35ujjcBvLJjnjCKMKHw93ebte/2+Pb7fZ2ez53u70jYT4FYqt9nxeIrTZPu/01qj3nhQEGGGCAAQYYYIABBhhggIHpBgRiArE9uxEff1Yy/s+0CMHyc6f/DJ5vCtO/KZiz3Zmz+HN/8afM+j/7N5f53+3x7XZ7czlPY+M4EuZTILba9zqB2GrzNPa1ZLv5Y4ABBhhggAEGGGCAAQYYYGB9DAjEBGJ7Foj5RrA+3wicC+eCAQaONAMCsdXMC8RWm6cj7evHeLlggAEGGGCAAQYYYIABBhjYjwYEYgIxgRgDDDDAAANHnAGB2N5euPs/xPZ2/vfjmxZ9ZoYBBhhggAEGGGCAAQYYYGC7BgRiboIecTdBt/tF43jfeBlggAEGGNieAYHY9uaPP/PHAAMMMMAAAwwwwAADDDDAwHQDAjGBmECMAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGJi1AYEY4LMGLiWfnpKbM3PGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwMDcDAjGBmECMAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGJi1AYEY4LMGPrcE23j8VgYDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAA9MNCMQEYgIxBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYGDWBgRigM8auJR8ekpuzswZAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwNwMCMQEYgIxBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYGDWBgRigM8a+NwSbOPxWxkMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDEw3IBATiAnEGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggIFZGxCIAT5r4FLy6Sm5OTNnDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAA3MzIBATiAnEGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggIFZGxCIAT5r4HNLsI3Hb2UwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMMDDdgEBMICYQY4ABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQZmbUAgBvisgUvJp6fk5sycMcAAAwwwwAADDDDAAAMMMMAAAwwwwAADDMzNgEBMICYQY4ABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQZmbUAgBvisgc8twTYev5XBAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwMB0AwIxgZhAjAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhiYtQGBGOCzBi4ln56SmzNzxgADDDDAAAMMMMAAAwwwwAADDDDAAAMMMDA3AwIxgZhAjAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhiYtQGBGOCzBj63BNt4/FYGAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAPTDQjEBGICMQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGBg1gYEYoDPGriUfHpKbs7MGQMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwMDcDAjEBGICMQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGBg1gYEYoDPGvjcEmzj8VsZDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwxMNyAQE4gJxBhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYICBWRsQiAE+a+BS8ukpuTkzZwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAANzMyAQE4gJxBhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYICBWRsQiAE+a+BzS7CNx29lMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDDAw3YBATCAmEGOAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGZm1AIAb4rIFLyaen5ObMnDHAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwzMzYBATCAmEGOAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGZm1AIAb4rIHPLcE2Hr+VwQADDDDAAAMMMMAAAwwwwAADDDDAAAMMMMDAdAMCMYGYQIwBBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYmLUBgRjgswYuJZ+ekpszc8YAAwwwwAADDDDAAAMMMMAAAwwwwAADDDAwNwMCMYGYQIwBBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYmLUBgRjgswY+twTbePxWBgMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAAD0w0IxARiAjEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgYNYGBGKAzxq4lHx6Sm7OzBkDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMDA3AwIxARiAjEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgYNYGBGKAzxr43BJs4/FbGQwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMTDcgEBOICcQYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAgVkbEIgBPmvgUvLpKbk5M2cMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADczMgEBOICcQYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAgVkbEIgBPmvgc0uwjcdvZTDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwMN2AQEwgJhBjgAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBmZtQCAG+KyBS8mnp+TmzJwxwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMzM2AQEwgJhBjgAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBmZtQCAG+KyBzy3BNh6/lcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwHQDAjGBmECMAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGJi1AYEY4LMGLiWfnpKbM3PGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwMDcDAjGBmECMAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGJi1AYEY4LMGPrcE23j8VgYDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAA9MNCMQEYgIxBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYGDWBgRigM8auJR8ekpuzswZAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwNwMCMQEYgIxBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYGDWBgRigM8a+NwSbOPxWxkMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDEw3IBATiAnEGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggIFZGxCIAT5r4FLy6Sm5OTNnDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAA3MzIBATiAnEGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggIFZGxCIAT5r4HNLsI3Hb2UwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMMDDdgEBMICYQY4ABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQZmbUAgBvisgUvJp6fk5sycMcAAAwwwwAADDDDAAAMMMMAAAwwwwAADDMzNgEBMICYQY4ABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQZmbUAgBvisgc8twTYev5XBAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwMB0AwIxgZhAjAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhiYtQGBGOCzBi4ln56SmzNzxgADDDDAAAMMMMAAAwwwwAADDDDAAAMMMDA3AwIxgZhAjAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhiYtQGBGOCzBj63BNt4/FYGAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAPTDQjEBGICMQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGBg1gYEYoDPGriUfHpKbs7MGQMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwMDcDAjEBGICMQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGBg1gYEYoDPGvjcEmzj8VsZDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwxMNyAQE4gJxBhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYICBWRsQiAE+a+BS8ukpuTkzZwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAANzMyAQE4gJxBhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYICBWRsQiAE+a+BzS7CNx29lMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDDAw3YBATCAmEGOAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGZm1AIAb4rIFLyaen5ObMnDHAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwzMzYBATCAmEGOAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGZm1AIAb4rIHPLcE2Hr+VwQADDDDAAAMMMMAAAwwwwAADDDDAAAMMMMDAdAMCMYGYQIwBBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYmLUBgRjgswYuJZ+ekpszc8YAAwwwwAADDDDAAAMMMMAAAwwwwAADDDAwNwMCMYGYQIwBBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYmLUBgRjgswY+twTbePxWBgMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAAD0w0IxARiAjEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgYNYGBGKAzxq4lHx6Sm7OzBkDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMDA3AwIxARiAjEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgYNYGBGKAzxr43BJs4/FbGQwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMTDcgEBOICcQYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAgVkbEIgBPmvgUvLpKbk5M2cMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADczMgEBOICcQYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAgVkbEIgBPmvgc0uwjcdvZTDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwMN2AQEwgJhBjgAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBmZtQCAG+KyBS8mnp+TmzJwxwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMzM2AQEwgJhBjgAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBmZtQCAG+KyBzy3BNh6/lcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwHQDAjGBmECMAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGJi1AYEY4LMGLiWfnpKbM3PGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwMDcDAjGBmECMAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGJi1AYEY4LMGPrcE23j8VgYDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAA9MNCMQEYgIxBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYGDWBgRigM8auJR8ekpuzswZAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwNwMCMQEYgIxBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYGDWBgRigM8a+NwSbOPxWxkMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDEw3IBATiAnEGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggIFZGxCIAT5r4FLy6Sm5OTNnDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAA3MzIBATiAnEGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggIFZGxCIAT5r4HNLsI3Hb2UwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMMDDdgEBMICYQY4ABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQZmbUAgBvglBdxiAAAgAElEQVSsgUvJp6fk5sycMcAAAwwwwAADDDDAAAMMMMAAAwwwwAADDMzNgEBMICYQY4ABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQZmbUAgBvisgc8twTYev5XBAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwMB0AwIxgZhAjAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhiYtQGBGOCzBi4ln56SmzNzxgADDDDAAAMMMMAAAwwwwAADDDDAAAMMMDA3AwIxgZhAjAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhiYtQGBGOCzBj63BNt4/FYGAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAPTDQjEBGICMQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGBg1gYEYoDPGriUfHpKbs7MGQMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwMDcDAjEBGICMQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGBg1gYEYoDPGvjcEmzj8VsZDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwxMNyAQE4gJxBhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYICBWRsQiAE+a+BS8ukpuTkzZwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAANzMyAQE4gJxBhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYICBWRsQiAE+a+BzS7CNx29lMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDDAw3YBATCAmEGOAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGZm1AIAb4rIFLyaen5ObMnDHAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwzMzYBATCAmEGOAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGZm1AIAb4rIHPLcE2Hr+VwQADDDDAAAMMMMAAAwwwwAADDDDAAAMMMMDAdAMCMYGYQIwBBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYmLUBgRjgswYuJZ+ekpszc8YAAwwwwAADDDDAAAMMMMAAAwwwwAADDDAwNwMCMYGYQIwBBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYmLUBgRjgswY+twTbePxWBgMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAAD0w0IxARiAjEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgYNYGBGKAzxq4lHx6Sm7OzBkDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMDA3AwIxARiAjEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgYNYGBGKAzxr43BJs4/FbGQwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMTDcgEBOICcQYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAgVkbEIgBPmvgUvLpKbk5M2cMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADczMgEBOICcQYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAgVkbEIgBPmvgc0uwjcdvZTDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwMN2AQEwgJhBjgAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBmZtQCAG+KyBS8mnp+TmzJwxwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMzM2AQEwgJhBjgAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBmZtQCAG+KyBzy3BNh6/lcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwHQDAjGBmECMAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGJi1AYEY4LMGLiWfnpKbM3PGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwMDcDAjGBmECMAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGJi1AYEY4LMGPrcE23j8VgYDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAA9MNCMQEYgIxBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYGDWBgRigM8auJR8ekpuzswZAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwNwMCMQEYgIxBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYGDWBgRigM8a+NwSbOPxWxkMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDEw3IBATiAnEGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggIFZGxCIAT5r4FLy6Sm5OTNnDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAA3MzIBATiAnEGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggIFZGxCIAT5r4HNLsI3Hb2UwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMMDDdgEBMICYQY4ABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQZmbUAgBvisgUvJp6fk5sycMcAAAwwwwAADDDDAAAMMMMAAAwwwwAADDMzNgEBMICYQY4ABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQZmbUAgBvisgc8twTYev5XBAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwMB0AwIxgZhAjAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhiYtQGBGOCzBi4ln56SmzNzxgADDDDAAAMMMMAAAwwwwAADDDDAAAMMMDA3AwIxgZhAjAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhiYtQGBGOCzBj63BNt4/FYGAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAPTDQjEBGICMQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGBg1gYEYoDPGriUfHpKbs7MGQMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwMDcDAjEBGICMQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGBg1gYEYoDPGvjcEmzj8VsZDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwxMNyAQE4gJxBhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYICBWRsQiAE+a+BS8ukpuTkzZwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAANzMyAQE4gJxBhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYICBWRsQiAE+a+BzS7CNx29lMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDDAw3YBATCAmEGOAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGZm1AIAb4rIFLyaen5ObMnDHAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwzMzYBATCAmEGOAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGZm1AIAb4rIHPLcE2Hr+VwQADDDDAAAMMMMAAAwwwwAADDDDAAAMMMMDAdAMCMYGYQIwBBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYmLUBgRjgswYuJZ+ekpszc8YAAwwwwAADDDDAAAMMMMAAAwwwwAADDDAwNwMCMYGYQIwBBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYmLUBgRjgswY+twTbePxWBgMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAAD0w0IxARiAjEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgYNYGBGKAzxq4lHx6Sm7OzBkDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMDA3AwIxARiAjEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgYNYGBGKAzxr43BJs4/FbGQwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMTDcgEBOICcQYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAgVkbEIgBPmvgUvLpKbk5M2cMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADczMgEBOICcQYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAgVkbEIgBPmvgc0uwjcdvZTDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwMN2AQEwgJhBjgAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBmZtQCAG+KyBS8mnp+TmzJwxwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMzM2AQEwgJhBjgAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBmZtQCAG+KyBzy3BNh6/lcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwHQDAjGBmECMAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGJi1AYEY4LMGLiWfnpKbM3PGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwMDcDAjGBmECMAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGJi1AYEY4LMGPrcE23j8VgYDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAA9MNCMQEYgIxBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYGDWBgRigM8auJR8ekpuzswZAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwNwMCMQEYgIxBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYGDWBgRigM8a+NwSbOPxWxkMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDEw3IBATiAnEGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggIFZGxCIAT5r4FLy6Sm5OTNnDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAA3MzIBATiAnEGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggIFZGxCIAT5r4HNLsI3n/2fXjmkAAGAYhvFnXQx9I0NY5S/zlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiHRkAlYAACAASURBVAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAaouN/gAAIABJREFUAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDCwsIuvAAAN5klEQVTAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgDDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwkDYgiAGeBl4r2O7xlcEAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAwG9AEBPEBDEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhgIG1AEAM8DVwl/yu5zWzGAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwUDMgiAlighgD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" width="400" /><br />
<br />
Between these couple utilities, WSL and Terminal, many of us can shed all our Linux stuff; virtual machines, Cygwin, Putty, Term, WinSCP, etc. And be better for it.<br />
<br />
Ciao 😎Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com1tag:blogger.com,1999:blog-934075561374752090.post-63865230100486056752020-03-31T07:51:00.001-07:002020-03-31T07:51:36.034-07:00Outlook Archive ButtonWhat do you do if your Outlook Archive button is stuck sending messages to your old custom folder and your mobile is sending messages to the "Archive" folder and there's no option anymore in your Outlook to change this?<br />
<br />
You change your Language.<br />
<br />
I did this in Outlook Web Access and the one thing it will have to do is rename your "Archive" folder (archive-old or whatever) before changing the language settings.<br />
<br />
<a href="https://support.microsoft.com/en-us/office/change-the-time-zone-and-language-settings-in-outlook-on-the-web-65239869-12e7-4a9d-bca1-76b0ad7ce273">https://support.microsoft.com/en-us/office/change-the-time-zone-and-language-settings-in-outlook-on-the-web-65239869-12e7-4a9d-bca1-76b0ad7ce273</a><br />
<br />
That's a pretty well buried solution, even by Microsoft standards, and frankly I doubt anyone will ever see this post because if you search Online for "Outlook Archive change folder" or whatever, you'll get plenty of hits for the old Outlook so not really an easy way to look up this solution. But maybe, just maybe, this post will find a way to someone<br />
<br />
Outlook has this "Archive" button - it's in Outlook, Outlook Web Access, Outlook mobile app, and it only does one thing - it puts the selected email message(s) into a folder called "Archive". It's a very quick way to file email because you also have short-cuts for it - the Backspace key in Outlook or a swipe gesture on mobile.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIXJjkCSUYyk6SXPRx_J1j0OTdSF8TuBkrHrATM9HXuatn0UuRnjlGGOtG-YRuzEy53p4v0T4MxKcDE51LLhnL_29ldsIO9p6QhjenGTtdiT9CnchOnwsOkPKRC0xDtG3xrD7Wq5z-1h7g/s1600/Outlook+Archive+Button.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="238" data-original-width="444" height="171" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIXJjkCSUYyk6SXPRx_J1j0OTdSF8TuBkrHrATM9HXuatn0UuRnjlGGOtG-YRuzEy53p4v0T4MxKcDE51LLhnL_29ldsIO9p6QhjenGTtdiT9CnchOnwsOkPKRC0xDtG3xrD7Wq5z-1h7g/s320/Outlook+Archive+Button.jpg" width="320" /></a></div>
<b><br /></b>
<b>But</b> what it used to do was used in an earlier version was ever so slightly different in that you could pick a folder for it - a folder with any name. After my Outlook was upgraded, it was still working and sending email to my custom named "All Mail" folder but my mobile started sending messages to the "Archive" folder, and Microsoft <b>removed</b> the option to pick what folder you used from Outlook. I haven't been able to figure this out for a long time which is why I'm posting this at all...<br />
<br />
...<br />
<br />
So yeah, that's the fix. Change your Outlook from English to French which renames all the stock system folders, Inbox, Sent, etc... and the Archive folder. Then move all your messages from "archive-old" or whatever you used and move them into Archive.<br />
<br />
Ciao!<br />
<br />Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-23276845279155414502019-10-20T13:34:00.002-07:002019-10-20T13:34:29.570-07:00Python LoggingFor those of us that start a program with "print" statements to get our bearings, the Python logging library is a drop-in replacement. After creating the logger, you can replace "print" statements with logger.debug('same text as before') or use suitable levels from debug, info, warning, error, and critical. You quickly get logging that can be configured to different levels you can use from debugging during development and clear output for the program running. There's also a built-in handler on logging exceptions to cleanly log exception info during exception handling. The library and cookbook are both clear and illustrative so check these links out:<br />
<br />
<a href="https://docs.python.org/3/library/logging.html">Python 3 Library - Logging</a><br />
<br />
<a href="https://docs.python.org/3/howto/logging-cookbook.html">Python 3 Logging Cookbook</a><br />
<br />
I mentioned shell logging last time here:<br />
<br />
<a href="https://archangel.thenibble.org/2019/03/im-logger-and-im-ok.html">I'm a Logger and I'm Okay</a><br />
<br />
The other tool I use all the time in Python is the "assert" call which raises an error with message given. For example to sanity check the resulting size of a blob is matching your file size:<br />
<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
# sanity check the resultant blob is the same size as what's in the database</blockquote>
<blockquote class="tr_bq">
assert (os.path.getsize(outpath) == len(imgblob)), "File size %d does not match blob size %d for image %d in %s saved to %s" % (os.path.getsize(outpath), len(imgblob), imgid, args.table, args.archivepath)</blockquote>
</blockquote>
There's every opportunity to properly handle program output and errors.<br />
<br />
Ciao<br />
<br />
<br />Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-90155669037919063782019-03-03T09:33:00.003-08:002019-03-22T11:47:53.368-07:00I'm a [logger] and I'm OK!The "logger" command can send a text string to the syslog. #why-didn't-I-know-that-already<br />
<br />
<a href="http://manpages.ubuntu.com/manpages/xenial/man1/logger.1.html">http://manpages.ubuntu.com/manpages/xenial/man1/logger.1.html</a><br />
<br />
<blockquote class="tr_bq">
localadmin@mypc:~$ logger Mark</blockquote>
<blockquote>
localadmin@mypc:~$ sudo tail /var/log/syslog<br />
Oct 31 15:23:40 mypc systemd[16714]: Listening on GnuPG cryptographic agent and passphrase cache (restricted).<br />
Oct 31 15:23:40 mypc systemd[16714]: Reached target Timers.<br />
Oct 31 15:23:40 mypc systemd[16714]: Listening on GnuPG network certificate management daemon.<br />
Oct 31 15:23:40 mypc systemd[16714]: Listening on D-Bus User Message Bus Socket.<br />
Oct 31 15:23:40 mypc systemd[16714]: Reached target Sockets.<br />
Oct 31 15:23:40 mypc systemd[16714]: Reached target Basic System.<br />
Oct 31 15:23:40 mypc systemd[16714]: Reached target Default.<br />
Oct 31 15:23:40 mypc systemd[16714]: Startup finished in 44ms.<br />
Oct 31 15:23:40 mypc systemd[1]: Started User Manager for UID 1000.<br />
<span style="background-color: yellow;">Oct 31 15:23:46 mypc localadmin: Mark </span></blockquote>
In other news I updated my page on useful PC tools<br />
<br />
<ul>
<li><a href="https://archangel.thenibble.org/p/essential-plugins.html">https://archangel.thenibble.org/p/essential-plugins.html</a> </li>
</ul>
<br />
<br />
CiaoDominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-88892660536985678162018-10-30T09:38:00.001-07:002018-10-30T09:38:32.434-07:00Working with DNS settings in systemd-resolved in UbuntuIn troubleshooting some DNS name resolution issues I started to get more familiar with systemd-resolved in Ubuntu. Specifically if you look at the traditional /etc/resolv.conf file it says something like this:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)</blockquote>
<blockquote class="tr_bq">
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN</blockquote>
<blockquote class="tr_bq">
# 127.0.0.53 is the systemd-resolved stub resolver.</blockquote>
<blockquote class="tr_bq">
# run "systemd-resolve --status" to see details about the actual nameservers.</blockquote>
<blockquote class="tr_bq">
nameserver 127.0.0.53</blockquote>
</blockquote>
<div>
Hah hah! Subtly clever for any old hands in networking because "53" is the standard DNS port so 127.0.0.<b>53</b> is a little clue to look for something specific.</div>
<div>
<br /></div>
<div>
Go ahead though - run "systemd-resolve --status", it doesn't require root, and it shows you a lot of info (the IPs of name servers have been change to protect the innocent...)</div>
<blockquote class="tr_bq">
<blockquote class="tr_bq">
localadmin@ca-yvr-adm2:~$ systemd-resolve --status</blockquote>
<blockquote class="tr_bq">
Global</blockquote>
<blockquote class="tr_bq">
DNS Servers: 10.1.1.11</blockquote>
<blockquote class="tr_bq">
10.2.2.12</blockquote>
<blockquote class="tr_bq">
DNS Domain: sub.example.com</blockquote>
<blockquote class="tr_bq">
DNSSEC NTA: 10.in-addr.arpa</blockquote>
<blockquote class="tr_bq">
16.172.in-addr.arpa</blockquote>
<blockquote class="tr_bq">
168.192.in-addr.arpa</blockquote>
<blockquote class="tr_bq">
<snip></blockquote>
<blockquote class="tr_bq">
local</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
Link 1 (eno1)</blockquote>
<blockquote class="tr_bq">
Current Scopes: none</blockquote>
<blockquote class="tr_bq">
LLMNR setting: yes</blockquote>
<blockquote class="tr_bq">
MulticastDNS setting: no</blockquote>
<blockquote class="tr_bq">
DNSSEC setting: no</blockquote>
<blockquote class="tr_bq">
DNSSEC supported: no</blockquote>
</blockquote>
<br />
The config file is easily found in "/etc/systemd/resolved.conf" and it's quite short and simple and it should look familiar if you have used other systemd configurations before. The configuration out-of-the-box will be blank with all options commented out. I wanted to add additional search domains to the <b>Domains</b> line, in the same space-delimited way you would traditionally do the search line in your resolve.conf.<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
[Resolve]</blockquote>
<blockquote class="tr_bq">
#DNS=</blockquote>
<blockquote class="tr_bq">
#FallbackDNS=</blockquote>
<blockquote class="tr_bq">
Domains=sub.example.com example.com example.local</blockquote>
<blockquote class="tr_bq">
#LLMNR=no</blockquote>
<blockquote class="tr_bq">
#MulticastDNS=no</blockquote>
<blockquote class="tr_bq">
#DNSSEC=no</blockquote>
<blockquote class="tr_bq">
#Cache=yes</blockquote>
<blockquote class="tr_bq">
#DNSStubListener=yes</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
</blockquote>
Restart the same as you would any other systemd tool, and then re-check your resolved status<br />
<blockquote class="tr_bq">
sudo systemctl restart systemd-resolved.service </blockquote>
<blockquote class="tr_bq">
systemd-resolve --status</blockquote>
<br />
OR check your /etc/resolve.conf file because if your only change is to modify the search domains, it also appears there for the resolver to work normally.<br />
<blockquote class="tr_bq">
Global</blockquote>
<blockquote class="tr_bq">
DNS Servers: 10.1.1.11</blockquote>
<blockquote class="tr_bq">
10.2.2.12</blockquote>
<blockquote class="tr_bq">
DNS Domain: sub.example.com example.com example.local</blockquote>
<blockquote class="tr_bq">
DNSSEC NTA: 10.in-addr.arpa</blockquote>
<blockquote class="tr_bq">
16.172.in-addr.arpa</blockquote>
<blockquote class="tr_bq">
168.192.in-addr.arpa</blockquote>
<blockquote class="tr_bq">
<snip></blockquote>
<blockquote class="tr_bq">
local</blockquote>
<br />
Normally you would be done... Here's a couple bonus tricks that may arise.<br />
<br />
You can modify DNS settings by interface - furthermore this is handy for testing DNS changes and reverting before making the change in the config file. Check out <b>systemd-resolve --help </b><br />
<b><br /></b>
The multicast service <b>may conflict with a .local domain</b>. The symptom I had was that I could resolve a short name like "pc" but could not resolve an FQDN like "pc.example.local". If you are using .local and finding odd DNS resolution results, <b>edit your nsswitch.conf </b> and move "dns" earlier than the mdns (keep it after "files" though to avoid breaking your hosts file).<br />
<br />
I've tried to make this a quick and useful blurb on how to use systemd-resolved and get pointed in the right direction because the documentation available wasn't simple for simple cases - there is certainly a lot of tuning you can do with the resolver tools.<br />
<br />
CiaoDominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-23674880635840526072018-10-03T10:29:00.001-07:002018-10-03T10:29:39.020-07:00Archiving Files (E.g. Deleting Stuff) is My Super Power!This week one of the things I was working on was archiving a lot of files on a file in order to prune it down ahead of migrating that share to a new location.<br />
<br />
In particular this share while only ~100GB has > 3M files on it! Any basic operations like checking folder sizes, applying ACLs, etc are very slow on xM files. Looking at the share with <a href="https://windirstat.net/">WinDirStat</a> I found that there's a large number of folders each with 20-50K files in each. Furthermore the majority of these files were old (years) and not actively used so we decided to Archive (e.g. Delete) the contents of these folders.<br />
<br />
I started by using <a href="https://www.7-zip.org/">7-Zip</a> and there's an option on the Add to Archive screen to "Delete files after compression":<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0DdvcB17EMeyTit_Y9R5To4ZnqA38wMjAimSoK17woV10mn_RdEFuk0L6OcH3xgFIbq4DsiGPJJ3FapiCwFfE5bogLIBIVvT_nrS9KeofhB0PHS6hMHEkia2Zk4kU0v173HEj9a9uGWxp/s1600/7-Zip+Add+to+Archive+Delete+files+after+compression.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="628" data-original-width="626" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0DdvcB17EMeyTit_Y9R5To4ZnqA38wMjAimSoK17woV10mn_RdEFuk0L6OcH3xgFIbq4DsiGPJJ3FapiCwFfE5bogLIBIVvT_nrS9KeofhB0PHS6hMHEkia2Zk4kU0v173HEj9a9uGWxp/s320/7-Zip+Add+to+Archive+Delete+files+after+compression.PNG" width="318" /></a></div>
<br />
And that's pretty good! ... But not if you've got hundreds of folders to process.<br />
<br />
Instead, with a bit of PowerShell, we invoke 7-Zip from a script and use the <a href="https://sevenzip.osdn.jp/chm/cmdline/switches/sdel.htm">-sdel switch</a> to remove files after they've been archived. This PS we used to simply to stuff each sub-folder into an archive.<br />
<br />
<blockquote class="tr_bq">
Get-ChildItem . -Directory | ForEach-Object {</blockquote>
<blockquote class="tr_bq">
$Archive = $_.Name + ".zip"</blockquote>
<blockquote class="tr_bq">
$Folder = $_.Name + "\"</blockquote>
<blockquote class="tr_bq">
&"C:\Program Files\7-Zip\7z.exe" a $Archive $Folder -sdel</blockquote>
<blockquote class="tr_bq">
}</blockquote>
Pow!Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-33277327839356230342018-08-16T16:38:00.001-07:002018-08-16T16:38:32.140-07:00Let's Encrypt on BloggerI can't say I fiddle too much with the settings in Blogger, it's kinda "set it and forget it" stuff BUT sometime I think recently the team made it so you can enable SSL certs for custom domains on Blogger and it signs up a cert for you and everything.<br />
<br />
<a href="https://support.google.com/blogger/answer/6284029?hl=en">https://support.google.com/blogger/answer/6284029?hl=en</a><br />
<br />
In short it's so stupid simple just go do it and do it now<br />
<br />
<ol>
<li>Go to basic settings </li>
<li>Change HTTPS to Yes</li>
<li>Are we done yet? Why yes, yes we are.</li>
</ol>
<br />
Optionally once the cert has generated (it's not instant) you can also turn on redirect to SSL which again, why not? It's just the next tick box<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1ZpL1uv_cwY9yLhkl1ectK12G_f7d1pS8D1jr2jQp5z6DDRfQoNbTTn8oFhyphenhyphentE5yiLLiv4Iez2GpSstQYOLqGgHevyvWihCBiDIxF7QYB-Zl7BPiM4qBwiQbd1QFPCIIpUAGifFWpVq7n/s1600/HTTPS+settings+cap.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="348" data-original-width="1029" height="108" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1ZpL1uv_cwY9yLhkl1ectK12G_f7d1pS8D1jr2jQp5z6DDRfQoNbTTn8oFhyphenhyphentE5yiLLiv4Iez2GpSstQYOLqGgHevyvWihCBiDIxF7QYB-Zl7BPiM4qBwiQbd1QFPCIIpUAGifFWpVq7n/s320/HTTPS+settings+cap.PNG" width="320" /></a></div>
<b><br /></b>
<b>This </b>is how security should work; it works and its easy. I guess it could be on by default and pushed out but really, just click "security activate!"<br />
<br />
CiaoDominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-46523861449285304102017-07-14T12:18:00.004-07:002017-07-15T10:21:36.620-07:00Automation with RT CLITicket automation in <a href="https://bestpractical.com/request-tracker/">Best Practical's RT</a> is by far the easiest with the <a href="https://rt-wiki.bestpractical.com/wiki/CLI">RT CLI</a>. I shan't re-hash the documentation but will give an example because it wasn't obvious just how easy it is. Like in Scouts, Be Prepared. A bit of prep makes the RT CLI simple to work with.<br />
<ol>
<li>Setup your .rtrc and .bashrc as a one-off so you can invoke the RT CLI directly</li>
<li>Build a search query in the regular RT Web UI</li>
<li>Automate the function </li>
</ol>
Find the "rt" binary:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
[support-email@rt ~]$ locate */rt</blockquote>
<blockquote class="tr_bq">
/opt/rt4/bin/rt</blockquote>
</blockquote>
Add it to your PATH in .bashrc:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
export PATH=$PATH:/opt/rt4/bin</blockquote>
</blockquote>
Setup your .rtrc file with your credentials rather than giving them on the command line:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
[support-email@rt ~]$ cat .rtrc</blockquote>
<blockquote class="tr_bq">
server http://rt/</blockquote>
<blockquote class="tr_bq">
user me</blockquote>
<blockquote class="tr_bq">
passwd xxx</blockquote>
<blockquote class="tr_bq">
auth rt</blockquote>
</blockquote>
Now you can already do some stuff like the examples from the <a href="https://rt-wiki.bestpractical.com/wiki/CLI">RT CLI</a> page in the wiki:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
[support-email@rt ~]$ rt show user/ggee</blockquote>
<blockquote class="tr_bq">
id: user/832782</blockquote>
<blockquote class="tr_bq">
Password: ********</blockquote>
<blockquote class="tr_bq">
Name: GGee</blockquote>
<blockquote class="tr_bq">
EmailAddress: GGee@example.com</blockquote>
<blockquote class="tr_bq">
RealName: G Gee</blockquote>
<blockquote class="tr_bq">
Privileged: 1</blockquote>
<blockquote class="tr_bq">
Disabled: 0</blockquote>
<blockquote class="tr_bq">
CF-Employee Department: Applications Software</blockquote>
</blockquote>
The last "prep" thing is to create your search criteria. This is far easier in the Web UI like you can build up your Search and then when you click Advanced you can copy that Query text directly and test it out from the CLI:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
[support-email@rt ~]$ rt ls -i -q "'Corp Support'" "Status = 'stalled' AND Told < '-1 week'"</blockquote>
<blockquote class="tr_bq">
ticket/314370</blockquote>
<blockquote class="tr_bq">
ticket/315571</blockquote>
</blockquote>
Now you're ready for some automation. <br />
<br />
<ul>
<li><i>The use of "-i" gives the output in a suitable format for processing</i></li>
<li><i>The "-q" option specifies a queue and you need to use quotes (') around names with spaces in them, hence on the CLI you get "'Corp Support'"</i></li>
</ul>
<div>
The above query is Searching for Stalled tickets which haven't been touched (Told) in over a week. We want to change such tickets to Open so that staff pick up these tickets. For this we can setup a job with <i>cron</i> which pipes the tickets found in a search into an <i>rt edit</i> command.</div>
<blockquote class="tr_bq">
# un-stalls support tickets NOTE: requires valid creds in .rtrc</blockquote>
<blockquote class="tr_bq">
@daily /opt/rt4/bin/rt ls -i -q "'Corp Support'" "Status = 'stalled' AND Told < '-1 week'" | rt edit - set status=open</blockquote>
You can automate all kinds of functionality whether routine activities like this example, or to build helper scripts for large operations like to populate some new custom field or otherwise.Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-82190927406230695382017-07-05T08:20:00.001-07:002017-07-05T08:20:09.051-07:00Data Retention and Percona ArchiverData retention can be a bit touchy but when the alternative is to let tables grow by GB per week or per day, sometimes you just got to pick an upper limit. In my experience, suggesting something to stakeholders helps to get things rolling.<br />
<br />
Magically I've recently "discovered" the Percona Archiver - I've been rolling my own for far too long. This tool is well documented and I shan't repeat the documentation other than to give an example along with some tidbits.<br />
<br />
<ul>
<li><a href="https://www.percona.com/doc/percona-toolkit/LATEST/pt-archiver.html">https://www.percona.com/doc/percona-toolkit/LATEST/pt-archiver.html</a></li>
</ul>
<div>
<br /></div>
<div>
The archiver can move records to a destination table (the --dest option) OR to a file (the --file option). Both are useful and I'll show the file one because that's The Final Solution other than outright launching the nukes with --purge. Give a Select criteria (the --where option) and consider to include table maintenance (--optimize) if you are moving a lot of data.</div>
<div>
<br /></div>
<div>
For clarity: pt-archiver does a DELETE for each record it archives. </div>
<div>
<br /></div>
<br />
<blockquote class="tr_bq">
# dump table from N months ago</blockquote>
<blockquote class="tr_bq">
<blockquote class="tr_bq">
DELAGE=6</blockquote>
<blockquote class="tr_bq">
DELYRMO=`date --date "$DELAGE months ago" +%Y%m`</blockquote>
<blockquote class="tr_bq">
TABLE="calib_aimextractor_log_history_$DELYRMO"</blockquote>
<blockquote class="tr_bq">
BAKFILE="/mnt/backups/mysqlserver/archive-$DB-$TABLE.txt"</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
# do not (!) overwrite file with something (-s) in it already</blockquote>
<blockquote class="tr_bq">
if [ ! -s "$BAKFILE" ] ; then</blockquote>
<blockquote class="tr_bq">
pt-archiver --source h=localhost,D=$DB,t=$table --file archive-$table.txt --where "calib_aimextractor_id > 0" --optimize s --statistics</blockquote>
<blockquote class="tr_bq">
else</blockquote>
<blockquote class="tr_bq">
echo "$BAKFILE has something in it, dump has been SKIPPED"</blockquote>
<blockquote class="tr_bq">
exit -1</blockquote>
<blockquote class="tr_bq">
fi</blockquote>
</blockquote>
This is a drastically simplified script from what I used to do.<br />
<br />
<ol>
<li>Set the data retention which in this case is 6 months. The "date" command is useful for generating dates or parts thereof like the year, month, day, week whatever you need for both file names and search criteria. </li>
<li>File target should be some file system location locally or NFS. The file format is suitable for <a href="https://dev.mysql.com/doc/refman/5.7/en/load-data.html">LOAD DATA INFILE</a>. </li>
<ul>
<li>Gotcha! Loading data files is a risky thing to do and disabled by default in MySQL. Typically load the data to a non-production server, then manually extract the relevant records and insert them back into prod.</li>
</ul>
<li>Sanity check you're not stomping a file that's already there. I prefer to be safer than sorrier.</li>
<li>Credentials should be in .my.cnf </li>
<ul>
<li>Seems obvious when you know to do it, but don't put user creds in scripts, dumbo! I did that too often :(</li>
</ul>
<li>Gotcha! If using --dest table instead of a file target, specify the host (h) and database (D) because otherwise pt-archiver makes some assumptions which may be very wrong</li>
<li>Optimize your source (s) especially if a large number of rows are being pulled. Consider to also use destination (d) </li>
</ol>
<div>
There's lots more guidance in the documentation and from other users Online. Some like to process larger numbers of records concurrently like with --limit and --bulk-delete, but the defaults (1 record) have been good to me as this runs relatively fast. Likewise there's options to check your slaves don't get far out of sync which again default behaviour is fast enough for me, but there's lots of powerful options to tune pt-archiver.</div>
<div>
<br /></div>
<div>
Take backups, test, test, test and you shouldn't need Good Luck :)</div>
Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-61926381977227204512016-05-14T10:17:00.002-07:002016-05-14T10:29:12.188-07:00Ubuntu automysqlbackupThere is a script called "automysqlbackup" which is a pretty straightforward shell script wrapping up routine MySQL backups. The Ubuntu package is mostly preconfigured so you would not necessarily even have to modify the stock configuration.<br />
<ul>
<li>Gets the maintenance user from "/etc/mysql/debian.cnf" for credentials</li>
<li>Dynamically determines what databases are on the system</li>
<li>Has a default schedule and backup path (/var/lib/automysqlbackup)</li>
</ul>
You should consider changing a couple of the defaults found in "/etc/default/automysqlbackup".<br />
<ul>
<li>BACKUPDIR to preferred backup path</li>
<li>MAILADDR to an appropriate recipient in case there are errors</li>
</ul>
It does not remove old backup files so you may want to make a basic script which does remove them. There's a "PREBACKUP" variable so you can hook in such a script. I like this because it runs before your backup so you don't accidentally nuke your fresh backups and keeps things simple:<br />
<ul>
<li>PREBACKUP="find $BACKUPDIR -mtime +90 -delete"</li>
</ul>
Finally, remember to copy your backups offsite if appropriate. "rsync" to some remote system or otherwise. Use the "POSTBACKUP" script - again a good hook here because it will push out your backups right away after they have been created.<br />
<br />
Ubuntu Man page: <br />
<a href="http://manpages.ubuntu.com/manpages/wily/man8/automysqlbackup.8.html">http://manpages.ubuntu.com/manpages/wily/man8/automysqlbackup.8.html</a><br />
Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-52955992184984273832015-09-21T16:45:00.001-07:002015-09-21T16:46:32.144-07:00CentOS 7Having started an install for CentOS 7, this is my first time working with the Red Hat Enterprise Linux 7 based system and they've done a few things I'll have to learn.<br />
<br />
Goodbye, Sys V init! What an era there's been with init scripts. The newer "systemd" system and service manager replaces the init system along with RedHat's chkconfig and similar tools. The "systemctl" command is kindof similar to "chkconfig", but takes the command name first and the new style service name second:<br />
<br />
<br />
<tt># <b>systemctl status nfs-server.service</b></tt><br />
<br />
Overview of systemd for RHEL 7 <br />
<a href="https://access.redhat.com/articles/754933">https://access.redhat.com/articles/754933</a><br />
<br />
The other is the new "firewalld" which provides more of set of front-ends to iptables. The command-line tool, firewalld-cmd, can generate the settings changes like to open ports. As the RedHat docs say, this mechanism can load firewall rule changes instead of dumping the whole rule set so you keep open connections and stats. <br />
<br />
# firewall-cmd --zone=public --add-port=80/tcp --permanent<br />
# firewall-cmd --reload<br />
<br />
Using Firewalls<br />
<a href="https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html">https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html</a><br />
<br />
I'm sure there's more but mostly cosmetic like how the installer works, which packages are bundled or not (like bind-utils not included in a base install? interesting). Sometimes hard to figure out what to do in a new system when there's big changes that aren't just drop-in replacements for older tools.<br />
<br />
Ciao,<br />
ArchDominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0tag:blogger.com,1999:blog-934075561374752090.post-82872720068359379172015-07-30T13:52:00.003-07:002015-07-30T13:52:31.111-07:00Update to Password GeneratorA <a href="http://archangel.thenibble.org/2013/07/simple-web-page-for-generating-passwords.html">couple years ago</a> I created a simple password generator which was just a wrapper for "<a href="http://linux.die.net/man/1/apg">APG</a>". While it worked fine for me, I did find that I needed passwords which fit a specific pattern so I've added support for the "mode" argument to APG.<br />
<br />
<a href="https://alia.thenibble.org/passwords/">https://alia.thenibble.org/passwords/</a><br />
<br />
Voila!Dominichttp://www.blogger.com/profile/04420339861624041674noreply@blogger.com0