From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (cC7885BC1.dhcp.as2116.net. [193.91.136.199]) by mx.google.com with ESMTPSA id xl4sm41443355lac.9.2013.11.25.13.53.15 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 25 Nov 2013 13:53:16 -0800 (PST) From: Gaute Hope To: sup-devel Subject: Re: A maildir root source: syncing labels with maildirs (imap folders) In-reply-to: <1385392376-sup-8491@qwerzila> References: <1385392376-sup-8491@qwerzila> Date: Mon, 25 Nov 2013 22:51:09 +0100 Message-Id: <1385415206-sup-5054@qwerzila> User-Agent: Sup/git Content-Transfer-Encoding: 8bit MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; boundary="=-1385416270-92215-20776-2006-4-=" --=-1385416270-92215-20776-2006-4-= Content-Type: multipart/mixed; boundary="=-1385416269-780783-20776-6792-3-=" MIME-Version: 1.0 --=-1385416269-780783-20776-6792-3-= Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, I have attached my relevant configs (and hopefully managed to anonymize them enough). As you can see I use the 'utf7.py' module (placed in ~/.offlineimap/) to decode/encode between imap4-utf-7 and utf-8 on system (if your filesystem uses a different encoding you might have issues). Please don't use the configs verbatim, but rather as inspiration: I might have cut out important parts. Some of this is in the wiki. Some of the folders are translated (bi-directional of course) in my offlineimaprc, but if you check out my sources.yaml you will see that I have specified which folders are related to special (deleted, starred, inbox, etc) for some of the sources. My translation setup in offlineimaprc for my first GMail account corresponds to the default values the maildirroot source suggests. The only relevant change in config.yaml is to set sync_back_to_maildir: true. The way I set up sup with maildirroot is: $ sup-config fill in, don't add any sources. If you have a working config.yaml, you can use it. add sources: $ sup-add maildirroot:///home/gaute/.mail/imap_account I edit ~/.sup/sources.yaml and enable: - confirm_enable_experimental: true - sync_back: true - maildir_creation_allowed: true and tweak the folder names if necessary. Then if your index is empty (you _cannot_ merge an existing maildir source by using the same source id) - I run sup-sync: $ sup-sync -v Note that sup-sync does not support the :updated flag (when a message has moved on disk), for that you have to run regular Sup and do a poll. sup-sync scans through and adds labels; you can also just start up sup and see what happens, but that takes a longer time: you probably do not need to enable the stuff in sources.yaml before after sup-sync if you are nervous (I would be!). = Some annoying issues: - deleting a maildir is hard: * if you delete it remotely it will be recreated by offlineimap (i think) * you have to first remove all emails remotely, sync sup, to make sure labels are removed. * if you remove all messages from a label the maildir will be empty, to delete the maildir: sync, delete the maildir locally + delete it remotely; then re-sync. this is the behaviour of offlineimap, but I think it is hard to do it differently. this means that if you accidentally add a bogus label, it is a bit of a pain to get rid of the maildir. - if a message is deleted from the inbox remotely (archived) it is not removed from the inbox view (or any thread index view it is visible in) before sup is restarted. To test maildirroot: checkout my branch; make the gem: $ rake gem and install it: $ gem install pkg/sup-999.gem. If develop has changed you can try to merge it i= n first. Again; please make a backup copy of your .mail so that you can restore it if it turns out maildirroot has been eating or multiplying emails :) I probably don't have the time to difficult bugs, but I would be happy to accept patches and I could also put this branch on official Sup if it turns out to be worth something. Cheers, Gaute --=-1385416269-780783-20776-6792-3-= Content-Disposition: attachment; filename="offlineimaprc" Content-Type: application/octet-stream; name="offlineimaprc" Content-Transfer-Encoding: base64 W2dlbmVyYWxdCmFjY291bnRzID0gZ2F1dGUudmV0c2ouY29tLCB2ZXRzai5j b20sIGltYXBfMSwgaW1hcF8yCiN1aSA9IE5vbmludGVyYWN0aXZlLkJhc2lj CnB5dGhvbmZpbGUgPSB+Ly5vZmZsaW5laW1hcC91dGY3LnB5CmF1dG9yZWZy ZXNoID0gMwoKW0FjY291bnQgZ2F1dGUudmV0c2ouY29tXQpsb2NhbHJlcG9z aXRvcnkgPSBMb2NhbFZldHNqCnJlbW90ZXJlcG9zaXRvcnkgPSBSZW1vdGVW ZXRzagoKW1JlcG9zaXRvcnkgTG9jYWxWZXRzal0KdHlwZSA9IE1haWxkaXIK bG9jYWxmb2xkZXJzID0gL2hvbWUvZ2F1dGUvLm1haWwvZ2F1dGUudmV0c2ou Y29tCm5hbWV0cmFuczogbGFtYmRhIHM6IGRpY3QoKHZhbHVlLGtleSkgZm9y IGtleSx2YWx1ZSBpbgogICAgICAgICAgICAgICAgICAgICAgeyAgJ1tHbWFp bF0vU3RhcnJlZCcgOiAnc3RhcnJlZCcsCiAgICAgICAgICAgICAgICAgICAg ICAgICAnW0dtYWlsXS9UcmFzaCcgICA6ICd0cmFzaCcsCiAgICAgICAgICAg ICAgICAgICAgICAgICAnW0dtYWlsXS9TcGFtJyAgICA6ICdzcGFtJywKICAg ICAgICAgICAgICAgICAgICAgICAgICdbR21haWxdL1NlbnQgTWFpbCcgOiAn c2VudCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAnW0dtYWlsXS9JbXBv cnRhbnQnIDogJ2ltcG9ydGFudCcsCiAgICAgICAgICAgICAgICAgICAgICAg ICAnW0dtYWlsXS9EcmFmdHMnICAgIDogJ2RyYWZ0cycsCiAgICAgICAgICAg ICAgICAgICAgICAgICAnW0dtYWlsXS9BbGwgTWFpbCcgIDogJ2FyY2hpdmUn LAogICAgICAgICAgICAgICAgICAgICAgICAgJ0lOQk9YJyAgICAgICAgICAg ICA6ICdpbmJveCcsCiAgICAgICAgICAgICAgICAgICAgICB9Lml0ZXJpdGVt cygpKS5nZXQgKHMsIHMpLmRlY29kZSAoJ3V0ZjgnKS5lbmNvZGUgKCdpbWFw NC11dGYtNycpCgpbUmVwb3NpdG9yeSBSZW1vdGVWZXRzal0KdHlwZSA9IEdt YWlsCnNzbCA9IHllcwpuYW1ldHJhbnM6IGxhbWJkYSBzOiB7ICAnW0dtYWls XS9TdGFycmVkJyA6ICdzdGFycmVkJywKICAgICAgICAgICAgICAgICAgICAg ICAgJ1tHbWFpbF0vVHJhc2gnICAgOiAndHJhc2gnLAogICAgICAgICAgICAg ICAgICAgICAgICAnW0dtYWlsXS9TcGFtJyAgICA6ICdzcGFtJywKICAgICAg ICAgICAgICAgICAgICAgICAgJ1tHbWFpbF0vU2VudCBNYWlsJyA6ICdzZW50 JywKICAgICAgICAgICAgICAgICAgICAgICAgJ1tHbWFpbF0vSW1wb3J0YW50 JyA6ICdpbXBvcnRhbnQnLAogICAgICAgICAgICAgICAgICAgICAgICAnW0dt YWlsXS9EcmFmdHMnICAgIDogJ2RyYWZ0cycsCiAgICAgICAgICAgICAgICAg ICAgICAgICdbR21haWxdL0FsbCBNYWlsJyAgOiAnYXJjaGl2ZScsCiAgICAg ICAgICAgICAgICAgICAgICAgICdJTkJPWCcgICAgICAgICAgICAgOiAnaW5i b3gnLAogICAgICAgICAgICAgICAgICAgICAgfS5nZXQgKHMsIHMpLmRlY29k ZSAoJ2ltYXA0LXV0Zi03JykuZW5jb2RlICgndXRmOCcpCgojZm9sZGVyZmls dGVyID0gbGFtYmRhIGZvbGRlcm5hbWU6IGZvbGRlcm5hbWUgaW4gWydbR21h aWxdL0FsbCBNYWlsJ10KCltBY2NvdW50IHZldHNqLmNvbV0KbG9jYWxyZXBv c2l0b3J5ID0gTG9jYWxWZXRzakNvbQpyZW1vdGVyZXBvc2l0b3J5ID0gUmVt b3RlVmV0c2pDb20KCltSZXBvc2l0b3J5IExvY2FsVmV0c2pDb21dCnR5cGUg PSBNYWlsZGlyCmxvY2FsZm9sZGVycyA9IC9ob21lL2dhdXRlLy5tYWlsL3Zl dHNqLmNvbQpuYW1ldHJhbnM6IGxhbWJkYSBzOiBkaWN0KCh2YWx1ZSxrZXkp IGZvciBrZXksdmFsdWUgaW4KICAgICAgICAgICAgICAgICAgICAgIHsgICdb R21haWxdL1N0YXJyZWQnIDogJ3N0YXJyZWQnLAogICAgICAgICAgICAgICAg ICAgICAgICAgJ1tHbWFpbF0vVHJhc2gnICAgOiAndHJhc2gnLAogICAgICAg ICAgICAgICAgICAgICAgICAgJ1tHbWFpbF0vU3BhbScgICAgOiAnc3BhbScs CiAgICAgICAgICAgICAgICAgICAgICAgICAnW0dtYWlsXS9TZW50IE1haWwn IDogJ3NlbnQnLAogICAgICAgICAgICAgICAgICAgICAgICAgJ1tHbWFpbF0v SW1wb3J0YW50JyA6ICdpbXBvcnRhbnQnLAogICAgICAgICAgICAgICAgICAg ICAgICAgJ1tHbWFpbF0vRHJhZnRzJyAgICA6ICdkcmFmdHMnLAogICAgICAg ICAgICAgICAgICAgICAgICAgJ1tHbWFpbF0vQWxsIE1haWwnICA6ICdhcmNo aXZlJywKICAgICAgICAgICAgICAgICAgICAgICAgICdJTkJPWCcgICAgICAg ICAgICAgOiAnaW5ib3gnLAogICAgICAgICAgICAgICAgICAgICAgfS5pdGVy aXRlbXMoKSkuZ2V0IChzLCBzKS5kZWNvZGUgKCd1dGY4JykuZW5jb2RlICgn aW1hcDQtdXRmLTcnKQoKW1JlcG9zaXRvcnkgUmVtb3RlVmV0c2pDb21dCnR5 cGUgPSBHbWFpbApzc2wgPSB5ZXMKbmFtZXRyYW5zOiBsYW1iZGEgczogeyAg J1tHbWFpbF0vU3RhcnJlZCcgOiAnc3RhcnJlZCcsCiAgICAgICAgICAgICAg ICAgICAgICAgICdbR21haWxdL1RyYXNoJyAgIDogJ3RyYXNoJywKICAgICAg ICAgICAgICAgICAgICAgICAgJ1tHbWFpbF0vU3BhbScgICAgOiAnc3BhbScs CiAgICAgICAgICAgICAgICAgICAgICAgICdbR21haWxdL1NlbnQgTWFpbCcg OiAnc2VudCcsCiAgICAgICAgICAgICAgICAgICAgICAgICdbR21haWxdL0lt cG9ydGFudCcgOiAnaW1wb3J0YW50JywKICAgICAgICAgICAgICAgICAgICAg ICAgJ1tHbWFpbF0vRHJhZnRzJyAgICA6ICdkcmFmdHMnLAogICAgICAgICAg ICAgICAgICAgICAgICAnW0dtYWlsXS9BbGwgTWFpbCcgIDogJ2FyY2hpdmUn LAogICAgICAgICAgICAgICAgICAgICAgICAnSU5CT1gnICAgICAgICAgICAg IDogJ2luYm94JywKICAgICAgICAgICAgICAgICAgICAgIH0uZ2V0IChzLCBz KS5kZWNvZGUgKCdpbWFwNC11dGYtNycpLmVuY29kZSAoJ3V0ZjgnKQoKCltB Y2NvdW50IGltYXBfMV0KbG9jYWxyZXBvc2l0b3J5ID0gTG9jYWxfaW1hcDEK cmVtb3RlcmVwb3NpdG9yeSA9IFJlbW90ZV9pbWFwMQoKW1JlcG9zaXRvcnkg TG9jYWxfaW1hcDFdCnR5cGUgPSBNYWlsZGlyCmxvY2FsZm9sZGVycyA9IC9o b21lL2dhdXRlLy5tYWlsL2ltYXBfMQpuYW1ldHJhbnMgPSBsYW1iZGEgczog cy5yZXBsYWNlICgnYXJjaGl2ZScsICdBcmNoaXZlcycpLnJlcGxhY2UgKCdk cmFmdHMnLCAnRHJhZnRzJykucmVwbGFjZSAoJ3NlbnQnLCAnU2VudCcpLnJl cGxhY2UgKCd0cmFzaCcsICdUcmFzaCcpLmRlY29kZSAoJ3V0ZjgnKS5lbmNv ZGUgKCdpbWFwNC11dGYtNycpCgpbUmVwb3NpdG9yeSBSZW1vdGVfaW1hcDFd CnR5cGUgPSBJTUFQCnJlbW90ZWhvc3QgPSBpbWFwXzEKbmFtZXRyYW5zICA9 IGxhbWJkYSBzOiBzLnJlcGxhY2UgKCdBcmNoaXZlcycsICdhcmNoaXZlJyku cmVwbGFjZSAoJ0RyYWZ0cycsICdkcmFmdHMnKS5yZXBsYWNlICgnU2VudCcs ICdzZW50JykucmVwbGFjZSAoJ1RyYXNoJywgJ3RyYXNoJykuZGVjb2RlICgn aW1hcDQtdXRmLTcnKS5lbmNvZGUgKCd1dGY4JykKCltBY2NvdW50IGltYXBf Ml0KbG9jYWxyZXBvc2l0b3J5ID0gTG9jYWxfaW1hcDIKcmVtb3RlcmVwb3Np dG9yeSA9IFJlbW90ZV9pbWFwMgoKW1JlcG9zaXRvcnkgTG9jYWxfaW1hcDJd CnR5cGUgPSBNYWlsZGlyCmxvY2FsZm9sZGVycyA9IC9ob21lL2dhdXRlLy5t YWlsL2ltYXBfMgpuYW1ldHJhbnM6IGxhbWJkYSBzOiBkaWN0KCh2YWx1ZSxr ZXkpIGZvciBrZXksdmFsdWUgaW4KICAgICAgICAgICAgICAgICAgICAgIHsg ICdJTkJPWCcgICAgICAgICAgICAgOiAnaW5ib3gnLAogICAgICAgICAgICAg ICAgICAgICAgfS5pdGVyaXRlbXMoKSkuZ2V0IChzLCBzKS5kZWNvZGUgKCd1 dGY4JykuZW5jb2RlICgnaW1hcDQtdXRmLTcnKQoKW1JlcG9zaXRvcnkgUmVt b3RlX2ltYXAyXQp0eXBlID0gSU1BUApyZW1vdGVob3N0ID0gaW1hcF8yCm5h bWV0cmFuczogbGFtYmRhIHM6IHsgICdJTkJPWCcgICAgICAgICAgICAgOiAn aW5ib3gnLAogICAgICAgICAgICAgICAgICAgICAgfS5nZXQgKHMsIHMpLmRl Y29kZSAoJ2ltYXA0LXV0Zi03JykuZW5jb2RlICgndXRmOCcpCgo= --=-1385416269-780783-20776-6792-3-= Content-Disposition: attachment; filename="utf7.py" Content-Type: application/x-python; name="utf7.py" Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: base64 IyAtKi0gY29kaW5nOiB1dGYtOC0gLSotCgojIGZyb206IGh0dHA6Ly9waWFv LXRlY2guYmxvZ3Nwb3Qubm8vMjAxMC8wMy9nZXQtb2ZmbGluZWltYXAtd29y a2luZy13aXRoLW5vbi1hc2NpaS5odG1sI3Jlc291cmNlcwoKaW1wb3J0IGJp bmFzY2lpCmltcG9ydCBjb2RlY3MKCiMgZW5jb2RpbmcKCmRlZiBtb2RpZmll ZF9iYXNlNjQgKHMpOgogIHMgPSBzLmVuY29kZSAoJ3V0Zi0xNmJlJykKICBy ZXR1cm4gYmluYXNjaWkuYjJhX2Jhc2U2NChzKS5yc3RyaXAoJ1xuPScpLnJl cGxhY2UoJy8nLCAnLCcpCgpkZWYgZG9CNjQoX2luLCByKToKICBpZiBfaW46 CiAgICByLmFwcGVuZCAoJyYlcy0nICUgbW9kaWZpZWRfYmFzZTY0KCcnLmpv aW4oX2luKSkpCiAgICBkZWwgX2luWzpdCgpkZWYgZW5jb2RlcihzKToKICBy ID0gW10KICBfaW4gPSBbXQogIGZvciBjIGluIHM6CiAgICBvcmRDID0gb3Jk KGMpCiAgICBpZiAweDIwIDw9IG9yZEMgPD0gMHgyNSBvciAweDI3IDw9IG9y ZEMgPD0gMHg3ZToKICAgICAgZG9CNjQoX2luLCByKQogICAgICByLmFwcGVu ZCAoYykKICAgIGVsaWYgYyA9PSAnJic6CiAgICAgIGRvQjY0KF9pbiwgcikK ICAgICAgci5hcHBlbmQgKCcmLScpCiAgICBlbHNlOgogICAgICBfaW4uYXBw ZW5kKGMpCiAgZG9CNjQoX2luLCByKQogIHJldHVybiAoc3RyKCcnLmpvaW4o cikpLCBsZW4ocykpCgojIGRlY29kaW5nCmRlZiBtb2RpZmllZF91bmJhc2U2 NChzKToKICBiID0gYmluYXNjaWkuYTJiX2Jhc2U2NChzLnJlcGxhY2UoJywn LCAnLycpICsgJz09PScpCiAgcmV0dXJuIHVuaWNvZGUgKGIsICd1dGYtMTZi ZScpCgpkZWYgZGVjb2RlciAocyk6CiAgciA9IFtdCiAgZGVjb2RlID0gW10K ICBmb3IgYyBpbiBzOgogICAgaWYgYyA9PSAnJicgYW5kIG5vdCBkZWNvZGU6 CiAgICAgIGRlY29kZS5hcHBlbmQgKCcmJykKICAgIGVsaWYgYyA9PSAnLScg YW5kIGRlY29kZToKICAgICAgaWYgbGVuKGRlY29kZSkgPT0gMToKICAgICAg ICByLmFwcGVuZCgnJicpCiAgICAgIGVsc2U6CiAgICAgICAgci5hcHBlbmQo bW9kaWZpZWRfdW5iYXNlNjQoJycuam9pbihkZWNvZGVbMTpdKSkpCiAgICAg IGRlY29kZSA9IFtdCiAgICBlbGlmIGRlY29kZToKICAgICAgZGVjb2RlLmFw cGVuZChjKQogICAgZWxzZToKICAgICAgci5hcHBlbmQoYykKCiAgaWYgZGVj b2RlOgogICAgci5hcHBlbmQobW9kaWZpZWRfdW5iYXNlNjQoJycuam9pbihk ZWNvZGVbMTpdKSkpCiAgYmluX3N0ciA9ICcnLmpvaW4ocikKICByZXR1cm4g KGJpbl9zdHIsIGxlbihzKSkKCmNsYXNzIFN0cmVhbVJlYWRlciAoY29kZWNz LlN0cmVhbVJlYWRlcik6CiAgZGVmIGRlY29kZSAoc2VsZiwgcywgZXJyb3Jz PSdzdHJpY3QnKToKICAgIHJldHVybiBkZWNvZGVyKHMpCgpjbGFzcyBTdHJl YW1Xcml0ZXIgKGNvZGVjcy5TdHJlYW1Xcml0ZXIpOgogIGRlZiBkZWNvZGUg KHNlbGYsIHMsIGVycm9ycz0nc3RyaWN0Jyk6CiAgICByZXR1cm4gZW5jb2Rl cihzKQoKZGVmIGltYXA0X3V0Zl83KG5hbWUpOgogIGlmIG5hbWUgPT0gJ2lt YXA0LXV0Zi03JzoKICAgIHJldHVybiAoZW5jb2RlciwgZGVjb2RlciwgU3Ry ZWFtUmVhZGVyLCBTdHJlYW1Xcml0ZXIpCgpjb2RlY3MucmVnaXN0ZXIoaW1h cDRfdXRmXzcpCg== --=-1385416269-780783-20776-6792-3-= Content-Disposition: attachment; filename="sources.yaml" Content-Type: text/x-yaml; name="sources.yaml" Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: quoted-printable --- - !supmua.org,2006-10-01/Redwood/MaildirRoot uri: maildirroot:/home/gaute/.mail/gaute.vetsj.com/ usual: true archived: false id: 1 labels: [] sync_back: true confirm_enable_experimental: true maildir_creation_allowed: true inbox_folder: inbox sent_folder: sent drafts_folder: drafts spam_folder: spam trash_folder: trash archive_folder: archive - !supmua.org,2006-10-01/Redwood/MaildirRoot uri: maildirroot:/home/gaute/.mail/vetsj.com/ usual: true archived: false id: 2 labels: [] sync_back: true confirm_enable_experimental: true maildir_creation_allowed: true inbox_folder: inbox sent_folder: sent drafts_folder: drafts spam_folder: spam trash_folder: trash archive_folder: archive - !supmua.org,2006-10-01/Redwood/MaildirRoot uri: maildirroot:/home/gaute/.mail/imap_1 usual: true archived: false id: 3 labels: - some_1 = sync_back: true confirm_enable_experimental: true maildir_creation_allowed: true inbox_folder: INBOX sent_folder: sent drafts_folder: drafts spam_folder: spam trash_folder: trash archive_folder: archive - !supmua.org,2006-10-01/Redwood/MaildirRoot uri: maildirroot:/home/gaute/.mail/imap_2 usual: true archived: false id: 4 labels: - some_2 = sync_back: true confirm_enable_experimental: true maildir_creation_allowed: true inbox_folder: inbox sent_folder: Sent Items drafts_folder: Drafts spam_folder: Junk E-mail trash_folder: Deleted Items archive_folder: archive - !supmua.org,2006-10-01/Redwood/SentLoader {} --=-1385416269-780783-20776-6792-3-= Content-Disposition: attachment; filename="config.yaml" Content-Type: text/x-yaml; name="config.yaml" Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: quoted-printable [...] :editor: vim -f -c 'set ft=3Dmail' '+/^\s*\n/' '+nohl' :confirm_no_attachments: true :thread_by_subject: false :edit_signature: false :ask_for_from: false :ask_for_to: true :ask_for_cc: false :ask_for_bcc: false :ask_for_subject: true :account_selector: true :confirm_top_posting: false :jump_to_open_message: true :discard_snippets_from_encrypted_messages: false :load_more_threads_when_scrolling: true :default_attachment_save_dir: '' :sent_source: sup://sent :archive_sent: true :poll_interval: 300 :wrap_width: 0 :slip_rows: 0 :col_jump: 2 :stem_language: english :sync_back_to_maildir: true --=-1385416269-780783-20776-6792-3-=-- --=-1385416270-92215-20776-2006-4-= Content-Disposition: attachment; filename="signature.asc" Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIcBAEBAgAGBQJSk8ZNAAoJEJgnp+igdJAjZrsP/2vR5O4u7xY4rnq4XR2Ibh6+ 7ZJKthng8IqgV4u1ziaO6S3bhw9oL2NOFXrE++wvSCcO/2/p1U6AuD/CHvEHp4Tq ZQ7P7PW7AW7Kfi4cvhf2SFNZG2+M4e0vtbWKESxEXLlKQzngKYvjO8cMYBuZtFyp qbeCwHWHXPAJKuSURS0eLnLZwfkAftTtdc5rkdZUPEynNsj/Ft9zmc7HXn4Kt4nv OfFEKyYpB9J9c1Vg5nIDy2HVxRnmBtFZTZOvWzos/FpTosBYWsgVtdmR44w+ptbQ ZpN/hspJzpTF93psU0eYmrEy/iPSbZsuSMpylGmbVFLlA++2mGoUS1rGuvN3++T5 Yn9ccO09l+Ds4I9m2ILOQCwIQLVDVsNniPX1KIpbp42fD6v6VqBf2/E6aZo1YJiM DkzqePpHKaMIuIpq+Zc8/gj/09C8+NwPg+OVCHeAhslhXer4/RUXjBb8xnqGRSto fqXBgUaVliAxh7B2zx2kRXOkE1wfEV8WX0ObqGIByD/uubPD4RizpAQSaDqeWthd jrt/7sPhjbAYRgsV+mh9tVC9Oek4/putqrS8FzR2fujYBYFK7fYfQIZ408cYfhUm 8thWZhfAmtf14TOxZWGfMMeR4REdfTWB+VjALzyShbQq6A/A3NGRj3i0bgPt8lbz L4SUukc1E1DmPGB7OEYc =WrXm -----END PGP SIGNATURE----- --=-1385416270-92215-20776-2006-4-=--