pax_global_header00006660000000000000000000000064122343300430014504gustar00rootroot0000000000000052 comment=3fb064b1984d264ce375065d207f85cdbef6694a mat-0.4.2/000077500000000000000000000000001223433004300122705ustar00rootroot00000000000000mat-0.4.2/.gitignore000066400000000000000000000000251223433004300142550ustar00rootroot00000000000000*.pyc MANIFEST build mat-0.4.2/CHANGELOG000066400000000000000000000046131223433004300135060ustar00rootroot000000000000000.4.2 - 31oct2013 * Fix (for real this time) MAT eating PDF * The mautilus plugin does not appear on read-only files * Some minor refactorisations of the code 0.4.1 - 27oct2013 * Fix the fact that the MAT sometimes delete PDF * Improves internal and external documentation * Torrents support has been greatly enhanced * Add a translation 0.4 - 13oct2013 * Minor refactoring of the testsuite * Translations * Enhance MAT's behaviour on read-only files * Fix an Exiftool-related misbehavior 0.4rc - 17jul2013 * Support of mp3/flac/ogg * Port from Gtk2 to Gtk3 * Port to Glade * Simplification/Improvement of the GUI * Naming scheme of produced filenames change * Add a lot of translations * Multiples files can now be dropped in the GUI * Removal of adobe metadata with exiftool * A new MOTO ;) * Documentation * Bugfixes 0.3.4 - 8jan2013 * Bump dates * Update localizations * Refactor the way MAT's data are handled 0.3.3 - 5jan2013 * Settings can now be changed for already added files * Improved the testsuite robustness * Fix (hopefully) for good the setup.py * Add the possibility to reduce produced pdf's quality and size * Bugfixes 0.3.2 - 27may2012 * Add localisation (new translations are welcome) * Even more beter handling of missing libraries * Fix path relation bug 0.3.1 - 06may2012 - bugfix release * Better handling of missing libraries * Improve the setup.py * Bugfixes * python-cairo, python-poppler and python-pdfrw are now mandatory for pdf support 0.3 - 07mar2012 * Merge the two cleaning mode in one * Fix a pdf related critical security bug * Greatly improve the GUI - Metadata of a file are now shown on double-click - The MAT now has a logo ! - Misc * List only localy supported format * Remove every blacklist approach * Preliminary implementation of mtime/atime * As usual, many bugfixes 0.2.2 - 29dec2011 - bugfix release * Update documentation * Improve tests * Various bugfixes 0.2.1 - 25dec2011 * Fix critical bugs in GUI * Handle opendocument metadata * Various bugfixes 0.2 - 21dec2011 * Improvements for testsuites * Improve log system * Handle file with weird rights * Drag'n'drop support * Various bugfixes 0.1 - 30oct2011 * initial version mat-0.4.2/LICENSE000066400000000000000000000432551223433004300133060ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. mat-0.4.2/MANIFEST.in000066400000000000000000000003731223433004300140310ustar00rootroot00000000000000include README README.security LICENSE mat mat-gui include TODO mat.desktop include mat.1 mat-gui.1 recursive-include data * recursive-include MAT *.py recursive-include test *.py clean.* dirty.* recursive-include po * recursive-include nautilus *.py mat-0.4.2/MAT/000077500000000000000000000000001223433004300127115ustar00rootroot00000000000000mat-0.4.2/MAT/__init__.py000066400000000000000000000000011223433004300150110ustar00rootroot00000000000000 mat-0.4.2/MAT/archive.py000066400000000000000000000227031223433004300147100ustar00rootroot00000000000000''' Take care of archives formats ''' import logging import os import shutil import tempfile import zipfile import mat import parser import tarfile class GenericArchiveStripper(parser.GenericParser): ''' Represent a generic archive ''' def __init__(self, filename, parser, mime, backup, is_writable, **kwargs): super(GenericArchiveStripper, self).__init__(filename, parser, mime, backup, is_writable, **kwargs) self.compression = '' self.add2archive = kwargs['add2archive'] self.tempdir = tempfile.mkdtemp() def __del__(self): ''' Remove the files inside the temp dir, then remove the temp dir ''' for root, dirs, files in os.walk(self.tempdir): for item in files: path_file = os.path.join(root, item) mat.secure_remove(path_file) shutil.rmtree(self.tempdir) def remove_all(self): ''' Virtual method to remove all metadata ''' raise NotImplementedError class ZipStripper(GenericArchiveStripper): ''' Represent a zip file ''' def is_file_clean(self, fileinfo): ''' Check if a ZipInfo object is clean of metadatas added by zip itself, independently of the corresponding file metadatas ''' if fileinfo.comment: return False elif fileinfo.date_time: return False elif fileinfo.create_system: return False elif fileinfo.create_version: return False return True def is_clean(self): ''' Check if the given file is clean from harmful metadata ''' zipin = zipfile.ZipFile(self.filename, 'r') if zipin.comment != '': logging.debug('%s has a comment' % self.filename) return False for item in zipin.infolist(): # I have not found a way to remove the crap added by zipfile :/ # if not self.is_file_clean(item): # logging.debug('%s from %s has compromising zipinfo' % # (item.filename, self.filename)) # return False zipin.extract(item, self.tempdir) name = os.path.join(self.tempdir, item.filename) if os.path.isfile(name): try: cfile = mat.create_class_file(name, False, add2archive=self.add2archive) if not cfile.is_clean(): return False except: # best solution I have found logging.info('%s\'s fileformat is not supported, or is a \ harmless format' % item.filename) _, ext = os.path.splitext(name) bname = os.path.basename(item.filename) if ext not in parser.NOMETA: if bname != 'mimetype' and bname != '.rels': return False zipin.close() return True def get_meta(self): ''' Return all the metadata of a ZipFile (don't return metadatas of contained files : should it ?) ''' zipin = zipfile.ZipFile(self.filename, 'r') metadata = {} for field in zipin.infolist(): zipmeta = {} zipmeta['comment'] = field.comment zipmeta['modified'] = field.date_time zipmeta['system'] = field.create_system zipmeta['zip_version'] = field.create_version metadata[field.filename] = zipmeta metadata["%s comment" % self.filename] = zipin.comment zipin.close() return metadata def remove_all(self): ''' So far, the zipfile module does not allow to write a ZipInfo object into a zipfile (and it's a shame !) : so data added by zipfile itself could not be removed. It's a big concern. Is shipping a patched version of zipfile.py a good idea ? ''' zipin = zipfile.ZipFile(self.filename, 'r') zipout = zipfile.ZipFile(self.output, 'w', allowZip64=True) for item in zipin.infolist(): zipin.extract(item, self.tempdir) name = os.path.join(self.tempdir, item.filename) if os.path.isfile(name): try: cfile = mat.create_class_file(name, False, add2archive=self.add2archive) cfile.remove_all() logging.debug('Processing %s from %s' % (item.filename, self.filename)) zipout.write(name, item.filename) except: logging.info('%s\'s format is not supported or harmless' % item.filename) _, ext = os.path.splitext(name) if self.add2archive or ext in parser.NOMETA: zipout.write(name, item.filename) zipout.comment = '' zipin.close() zipout.close() logging.info('%s treated' % self.filename) self.do_backup() return True class TarStripper(GenericArchiveStripper): ''' Represent a tarfile archive ''' def _remove(self, current_file): ''' remove the meta added by tar itself to the file ''' current_file.mtime = 0 current_file.uid = 0 current_file.gid = 0 current_file.uname = '' current_file.gname = '' return current_file def remove_all(self): tarin = tarfile.open(self.filename, 'r' + self.compression, encoding='utf-8') tarout = tarfile.open(self.output, 'w' + self.compression, encoding='utf-8') for item in tarin.getmembers(): tarin.extract(item, self.tempdir) name = os.path.join(self.tempdir, item.name) if item.type == '0': # is item a regular file ? # no backup file try: cfile = mat.create_class_file(name, False, add2archive=self.add2archive) cfile.remove_all() tarout.add(name, item.name, filter=self._remove) except: logging.info('%s\' format is not supported or harmless' % item.name) _, ext = os.path.splitext(name) if self.add2archive or ext in parser.NOMETA: tarout.add(name, item.name, filter=self._remove) tarin.close() tarout.close() self.do_backup() return True def is_file_clean(self, current_file): ''' Check metadatas added by tar ''' if current_file.mtime != 0: return False elif current_file.uid != 0: return False elif current_file.gid != 0: return False elif current_file.uname != '': return False elif current_file.gname != '': return False else: return True def is_clean(self): ''' Check if the file is clean from harmful metadatas ''' tarin = tarfile.open(self.filename, 'r' + self.compression) for item in tarin.getmembers(): if not self.is_file_clean(item): tarin.close() return False tarin.extract(item, self.tempdir) name = os.path.join(self.tempdir, item.name) if item.type == '0': # is item a regular file ? try: class_file = mat.create_class_file(name, False, add2archive=self.add2archive) # no backup file if not class_file.is_clean(): tarin.close() return False except: logging.error('%s\'s format is not supported or harmless' % item.filename) _, ext = os.path.splitext(name) if ext not in parser.NOMETA: tarin.close() return False tarin.close() return True def get_meta(self): ''' Return a dict with all the meta of the file ''' tarin = tarfile.open(self.filename, 'r' + self.compression) metadata = {} for current_file in tarin.getmembers(): if current_file.type == '0': if not self.is_file_clean(current_file): # if there is meta current_meta = {} current_meta['mtime'] = current_file.mtime current_meta['uid'] = current_file.uid current_meta['gid'] = current_file.gid current_meta['uname'] = current_file.uname current_meta['gname'] = current_file.gname metadata[current_file.name] = current_meta tarin.close() return metadata class GzipStripper(TarStripper): ''' Represent a tar.gz archive ''' def __init__(self, filename, parser, mime, backup, is_writable, **kwargs): super(GzipStripper, self).__init__(filename, parser, mime, backup, is_writable, **kwargs) self.compression = ':gz' class Bzip2Stripper(TarStripper): ''' Represents a tar.bz2 archive ''' def __init__(self, filename, parser, mime, backup, is_writable, **kwargs): super(Bzip2Stripper, self).__init__(filename, parser, mime, backup, is_writable, **kwargs) self.compression = ':bz2' mat-0.4.2/MAT/audio.py000066400000000000000000000025371223433004300143730ustar00rootroot00000000000000''' Care about audio fileformat ''' try: from mutagen.flac import FLAC from mutagen.oggvorbis import OggVorbis except ImportError: pass import parser import mutagenstripper class MpegAudioStripper(parser.GenericParser): ''' Represent mpeg audio file (mp3, ...) ''' def _should_remove(self, field): return field.name in ("id3v1", "id3v2") class OggStripper(mutagenstripper.MutagenStripper): ''' Represent an ogg vorbis file ''' def _create_mfile(self): self.mfile = OggVorbis(self.filename) class FlacStripper(mutagenstripper.MutagenStripper): ''' Represent a Flac audio file ''' def _create_mfile(self): self.mfile = FLAC(self.filename) def remove_all(self): ''' Remove the "metadata" block from the file ''' super(FlacStripper, self).remove_all() self.mfile.clear_pictures() self.mfile.save() return True def is_clean(self): ''' Check if the "metadata" block is present in the file ''' return super(FlacStripper, self).is_clean() and not self.mfile.pictures def get_meta(self): ''' Return the content of the metadata block if present ''' metadata = super(FlacStripper, self).get_meta() if self.mfile.pictures: metadata['picture:'] = 'yes' return metadata mat-0.4.2/MAT/bencode/000077500000000000000000000000001223433004300143105ustar00rootroot00000000000000mat-0.4.2/MAT/bencode/__init__.py000066400000000000000000000000011223433004300164100ustar00rootroot00000000000000 mat-0.4.2/MAT/bencode/bencode.py000066400000000000000000000073631223433004300162720ustar00rootroot00000000000000# Copyright 2007 by Petru Paler # Copyright 2011 by Julien (jvoisin) Voisin # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # ''' A quick (and also nice) lib to bencode/bdecode torrent files ''' class BTFailure(Exception): '''Custom Exception''' pass class Bencached(object): '''Custom type : cached string''' __slots__ = ['bencoded'] def __init__(self, string): self.bencoded = string def decode_int(x, f): '''decode an int''' f += 1 newf = x.index('e', f) if x[f:f+1] == '-0': raise ValueError elif x[f] == '0' and newf != f + 1: raise ValueError return int(x[f:newf]), newf + 1 def decode_string(x, f): '''decode a string''' colon = x.index(':', f) if x[f] == '0' and colon != f + 1: raise ValueError n = int(x[f:colon]) colon += 1 return x[colon:colon + n], colon + n def decode_list(x, f): '''decode a list''' result = [] f += 1 while x[f] != 'e': v, f = DECODE_FUNC[x[f]](x, f) result.append(v) return result, f + 1 def decode_dict(x, f): '''decode a dict''' result = {} f += 1 while x[f] != 'e': k, f = decode_string(x, f) result[k], f = DECODE_FUNC[x[f]](x, f) return result, f + 1 def encode_bool(x, r): '''bencode a boolean''' encode_int(1 if r else 0, r) def encode_int(x, r): '''bencode an integer/float''' r.extend(('i', str(x), 'e')) def encode_list(x, r): '''bencode a list/tuple''' r.append('l') [ENCODE_FUNC[type(item)](item, r) for item in x] r.append('e') def encode_dict(x, result): '''bencode a dict''' result.append('d') ilist = list(x.items()) ilist.sort() for k, v in ilist: result.extend((str(len(k)), ':', k)) ENCODE_FUNC[type(v)](v, result) result.append('e') DECODE_FUNC = {str(x):decode_string for x in range(9)} DECODE_FUNC['l'] = decode_list DECODE_FUNC['d'] = decode_dict DECODE_FUNC['i'] = decode_int ENCODE_FUNC = {} ENCODE_FUNC[Bencached] = lambda x, r: r.append(x.bencoded) ENCODE_FUNC[int] = encode_int ENCODE_FUNC[int] = encode_int ENCODE_FUNC[bytes] = lambda x, r: r.extend((str(len(x)), ':', x)) ENCODE_FUNC[list] = encode_list ENCODE_FUNC[tuple] = encode_list ENCODE_FUNC[dict] = encode_dict ENCODE_FUNC[bool] = encode_bool def bencode(string): '''bencode $string''' table = [] ENCODE_FUNC[type(string)](string, table) return ''.join(table) def bdecode(string): '''decode $string''' try: result, lenght = DECODE_FUNC[string[0]](string, 0) except (IndexError, KeyError, ValueError): raise BTFailure('Not a valid bencoded string') if lenght != len(string): raise BTFailure('Invalid bencoded value (data after valid prefix)') return result mat-0.4.2/MAT/exceptions.py000066400000000000000000000002311223433004300154400ustar00rootroot00000000000000''' Base exceptions for MAT ''' class UnableToRemoveFile(Exception): '''This exception is raised when a file could not be removed ''' pass mat-0.4.2/MAT/exiftool.py000066400000000000000000000054211223433004300151160ustar00rootroot00000000000000''' Care about images with help of the amazing (perl) library Exiftool. ''' import parser import subprocess class ExiftoolStripper(parser.GenericParser): ''' A generic stripper class using exiftool as backend ''' def __init__(self, filename, parser, mime, backup, is_writable, **kwargs): super(ExiftoolStripper, self).__init__(filename, parser, mime, backup, is_writable, **kwargs) self.allowed = set(['ExifTool Version Number', 'File Name', 'Directory', 'File Size', 'File Modification Date/Time', 'File Access Date/Time', 'File Permissions', 'File Type', 'MIME Type', 'Image Width', 'Image Height', 'Image Size', 'File Inode Change Date/Time']) self._set_allowed() def _set_allowed(self): ''' Virtual method. Set the allowed/harmless list of metadata ''' raise NotImplementedError def remove_all(self): ''' Remove all metadata with help of exiftool ''' try: if self.backup: self.create_backup_copy() # Note: '-All=' must be followed by a known exiftool option. subprocess.call(['exiftool', '-m', '-all=', '-adobe=', '-overwrite_original', self.filename], stdout=open('/dev/null')) return True except: return False def is_clean(self): ''' Check if the file is clean with the help of exiftool ''' return not self.get_meta() def get_meta(self): ''' Return every harmful meta with help of exiftool. Exiftool output looks like this: field name : value field name : value ''' output = subprocess.Popen(['exiftool', self.filename], stdout=subprocess.PIPE).communicate()[0] meta = {} for i in output.split('\n')[:-1]: # chop last char ('\n') key = i.split(':')[0].strip() if key not in self.allowed: meta[key] = i.split(':')[1].strip() # add the field name to the metadata set return meta class JpegStripper(ExiftoolStripper): ''' Care about jpeg files with help of exiftool ''' def _set_allowed(self): self.allowed.update(['JFIF Version', 'Resolution Unit', 'X Resolution', 'Y Resolution', 'Encoding Process', 'Bits Per Sample', 'Color Components', 'Y Cb Cr Sub Sampling']) class PngStripper(ExiftoolStripper): ''' Care about png files with help of exiftool ''' def _set_allowed(self): self.allowed.update(['Bit Depth', 'Color Type', 'Compression', 'Filter', 'Interlace', 'Pixels Per Unit X', 'Pixels Per Unit Y', 'Pixel Units', 'Significant Bits', 'Background Color', 'SRGB Rendering']) mat-0.4.2/MAT/hachoir_editor/000077500000000000000000000000001223433004300156745ustar00rootroot00000000000000mat-0.4.2/MAT/hachoir_editor/__init__.py000066400000000000000000000003721223433004300200070ustar00rootroot00000000000000from field import ( EditorError, FakeField) from typed_field import ( EditableField, EditableBits, EditableBytes, EditableInteger, EditableString, createEditableField) from fieldset import EditableFieldSet, NewFieldSet, createEditor mat-0.4.2/MAT/hachoir_editor/field.py000066400000000000000000000036211223433004300173330ustar00rootroot00000000000000from hachoir_core.error import HachoirError from hachoir_core.field import joinPath, MissingField class EditorError(HachoirError): pass class FakeField(object): """ This class have API looks similar to Field API, but objects don't contain any value: all values are _computed_ by parent methods. Example: FakeField(editor, "abc").size calls editor._getFieldSize("abc"). """ is_field_set = False def __init__(self, parent, name): self._parent = parent self._name = name def _getPath(self): return joinPath(self._parent.path, self._name) path = property(_getPath) def _getName(self): return self._name name = property(_getName) def _getAddress(self): return self._parent._getFieldAddress(self._name) address = property(_getAddress) def _getSize(self): return self._parent.input[self._name].size size = property(_getSize) def _getValue(self): return self._parent.input[self._name].value value = property(_getValue) def createDisplay(self): # TODO: Returns new value if field is altered return self._parent.input[self._name].display display = property(createDisplay) def _getParent(self): return self._parent parent = property(_getParent) def hasValue(self): return self._parent.input[self._name].hasValue() def __getitem__(self, key): # TODO: Implement this function! raise MissingField(self, key) def _isAltered(self): return False is_altered = property(_isAltered) def writeInto(self, output): size = self.size addr = self._parent._getFieldInputAddress(self._name) input = self._parent.input stream = input.stream if size % 8: output.copyBitsFrom(stream, addr, size, input.endian) else: output.copyBytesFrom(stream, addr, size//8) mat-0.4.2/MAT/hachoir_editor/fieldset.py000066400000000000000000000263331223433004300200540ustar00rootroot00000000000000from hachoir_core.dict import UniqKeyError from hachoir_core.field import MissingField, Float32, Float64, FakeArray from hachoir_core.compatibility import any from hachoir_core.i18n import _ from typed_field import createEditableField from field import EditorError from collections import deque # Python 2.4 import weakref # Python 2.1 import struct class EditableFieldSet(object): MAX_SIZE = (1 << 40) # Arbitrary limit to catch errors is_field_set = True def __init__(self, parent, fieldset): self._parent = parent self.input = fieldset # original FieldSet self._fields = {} # cache of editable fields self._deleted = set() # Names of deleted fields self._inserted = {} # Inserted field (name => list of field, # where name is the name after) def array(self, key): # FIXME: Use cache? return FakeArray(self, key) def _getParent(self): return self._parent parent = property(_getParent) def _isAltered(self): if self._inserted: return True if self._deleted: return True return any(field.is_altered for field in self._fields.itervalues()) is_altered = property(_isAltered) def reset(self): """ Reset the field set and the input field set. """ for key, field in self._fields.iteritems(): if not field.is_altered: del self._fields[key] self.input.reset() def __len__(self): return len(self.input) \ - len(self._deleted) \ + sum( len(new) for new in self._inserted.itervalues() ) def __iter__(self): for field in self.input: name = field.name if name in self._inserted: for newfield in self._inserted[name]: yield weakref.proxy(newfield) if name not in self._deleted: yield self[name] if None in self._inserted: for newfield in self._inserted[None]: yield weakref.proxy(newfield) def insertBefore(self, name, *new_fields): self._insert(name, new_fields, False) def insertAfter(self, name, *new_fields): self._insert(name, new_fields, True) def insert(self, *new_fields): self._insert(None, new_fields, True) def _insert(self, key, new_fields, next): """ key is the name of the field before which new_fields will be inserted. If next is True, the fields will be inserted _after_ this field. """ # Set unique field name for field in new_fields: if field._name.endswith("[]"): self.input.setUniqueFieldName(field) # Check that there is no duplicate in inserted fields new_names = list(field.name for field in new_fields) names_set = set(new_names) if len(names_set) != len(new_fields): duplicates = (name for name in names_set if 1 < new_names.count(name)) raise UniqKeyError(_("Duplicates in inserted fields: %s") % ", ".join(duplicates)) # Check that field names are not in input if self.input: # Write special version for NewFieldSet? for name in new_names: if name in self.input and name not in self._deleted: raise UniqKeyError(_("Field name '%s' already exists") % name) # Check that field names are not in inserted fields for fields in self._inserted.itervalues(): for field in fields: if field.name in new_names: raise UniqKeyError(_("Field name '%s' already exists") % field.name) # Input have already inserted field? if key in self._inserted: if next: self._inserted[key].extend( reversed(new_fields) ) else: self._inserted[key].extendleft( reversed(new_fields) ) return # Whould like to insert in inserted fields? if key: for fields in self._inserted.itervalues(): names = [item.name for item in fields] try: pos = names.index(key) except ValueError: continue if 0 <= pos: if next: pos += 1 fields.rotate(-pos) fields.extendleft( reversed(new_fields) ) fields.rotate(pos) return # Get next field. Use None if we are at the end. if next: index = self.input[key].index + 1 try: key = self.input[index].name except IndexError: key = None # Check that field names are not in input if key not in self.input: raise MissingField(self, key) # Insert in original input self._inserted[key]= deque(new_fields) def _getDescription(self): return self.input.description description = property(_getDescription) def _getStream(self): # FIXME: This property is maybe a bad idea since address may be differents return self.input.stream stream = property(_getStream) def _getName(self): return self.input.name name = property(_getName) def _getEndian(self): return self.input.endian endian = property(_getEndian) def _getAddress(self): if self._parent: return self._parent._getFieldAddress(self.name) else: return 0 address = property(_getAddress) def _getAbsoluteAddress(self): address = self.address current = self._parent while current: address += current.address current = current._parent return address absolute_address = property(_getAbsoluteAddress) def hasValue(self): return False # return self._parent.input[self.name].hasValue() def _getSize(self): if self.is_altered: return sum(field.size for field in self) else: return self.input.size size = property(_getSize) def _getPath(self): return self.input.path path = property(_getPath) def _getOriginalField(self, name): assert name in self.input return self.input[name] def _getFieldInputAddress(self, name): """ Absolute address of a field from the input field set. """ assert name in self.input return self.input[name].absolute_address def _getFieldAddress(self, name): """ Compute relative address of a field. The operation takes care of deleted and resized fields. """ #assert name not in self._deleted addr = 0 for field in self: if field.name == name: return addr addr += field.size raise MissingField(self, name) def _getItemByPath(self, path): if not path[0]: path = path[1:] field = self for name in path: field = field[name] return field def __contains__(self, name): try: field = self[name] return (field is not None) except MissingField: return False def __getitem__(self, key): """ Create a weak reference to an editable field (EditableField) for the field with specified name. If the field is removed later, using the editable field will raise a weakref.ReferenceError exception. May raise a MissingField error if the field doesn't exist in original field set or it has been deleted. """ if "/" in key: return self._getItemByPath(key.split("/")) if isinstance(key, (int, long)): raise EditorError("Integer index are not supported") if (key in self._deleted) or (key not in self.input): raise MissingField(self, key) if key not in self._fields: field = self.input[key] if field.is_field_set: self._fields[key] = createEditableFieldSet(self, field) else: self._fields[key] = createEditableField(self, field) return weakref.proxy(self._fields[key]) def __delitem__(self, name): """ Remove a field from the field set. May raise an MissingField exception if the field has already been deleted. """ parts = name.partition('/') if parts[2]: fieldset = self[parts[0]] del fieldset[parts[2]] return if name in self._deleted: raise MissingField(self, name) self._deleted.add(name) if name in self._fields: del self._fields[name] def writeInto(self, output): """ Write the content if this field set into the output stream (OutputStream). """ if not self.is_altered: # Not altered: just copy bits/bytes input = self.input if input.size % 8: output.copyBitsFrom(input.stream, input.absolute_address, input.size, input.endian) else: output.copyBytesFrom(input.stream, input.absolute_address, input.size//8) else: # Altered: call writeInto() method of each field realaddr = 0 for field in self: field.writeInto(output) realaddr += field.size def _getValue(self): raise EditorError('Field set "%s" has no value' % self.path) def _setValue(self, value): raise EditorError('Field set "%s" value is read only' % self.path) value = property(_getValue, _setValue, "Value of field") class EditableFloat(EditableFieldSet): _value = None def _isAltered(self): return (self._value is not None) is_altered = property(_isAltered) def writeInto(self, output): if self._value is not None: self._write(output) else: EditableFieldSet.writeInto(self, output) def _write(self, output): format = self.input.struct_format raw = struct.pack(format, self._value) output.writeBytes(raw) def _setValue(self, value): self.parent._is_altered = True self._value = value value = property(EditableFieldSet._getValue, _setValue) def createEditableFieldSet(parent, field): cls = field.__class__ # FIXME: Support Float80 if cls in (Float32, Float64): return EditableFloat(parent, field) else: return EditableFieldSet(parent, field) class NewFieldSet(EditableFieldSet): def __init__(self, parent, name): EditableFieldSet.__init__(self, parent, None) self._name = name self._endian = parent.endian def __iter__(self): if None in self._inserted: return iter(self._inserted[None]) else: raise StopIteration() def _getName(self): return self._name name = property(_getName) def _getEndian(self): return self._endian endian = property(_getEndian) is_altered = property(lambda self: True) def createEditor(fieldset): return EditableFieldSet(None, fieldset) mat-0.4.2/MAT/hachoir_editor/typed_field.py000066400000000000000000000201501223433004300205340ustar00rootroot00000000000000from hachoir_core.field import ( RawBits, Bit, Bits, PaddingBits, RawBytes, Bytes, PaddingBytes, GenericString, Character, isInteger, isString) from field import FakeField class EditableField(FakeField): """ Pure virtual class used to write editable field class. """ _is_altered = False def __init__(self, parent, name, value=None): FakeField.__init__(self, parent, name) self._value = value def _isAltered(self): return self._is_altered is_altered = property(_isAltered) def hasValue(self): return True def _computeSize(self): raise NotImplementedError() def _getValue(self): return self._value def _setValue(self, value): self._value = value def _propGetValue(self): if self._value is not None: return self._getValue() else: return FakeField._getValue(self) def _propSetValue(self, value): self._setValue(value) self._is_altered = True value = property(_propGetValue, _propSetValue) def _getSize(self): if self._value is not None: return self._computeSize() else: return FakeField._getSize(self) size = property(_getSize) def _write(self, output): raise NotImplementedError() def writeInto(self, output): if self._is_altered: self._write(output) else: return FakeField.writeInto(self, output) class EditableFixedField(EditableField): """ Editable field with fixed size. """ def __init__(self, parent, name, value=None, size=None): EditableField.__init__(self, parent, name, value) if size is not None: self._size = size else: self._size = self._parent._getOriginalField(self._name).size def _getSize(self): return self._size size = property(_getSize) class EditableBits(EditableFixedField): def __init__(self, parent, name, *args): if args: if len(args) != 2: raise TypeError( "Wrong argument count, EditableBits constructor prototype is: " "(parent, name, [size, value])") size = args[0] value = args[1] assert isinstance(value, (int, long)) else: size = None value = None EditableFixedField.__init__(self, parent, name, value, size) if args: self._setValue(args[1]) self._is_altered = True def _setValue(self, value): if not(0 <= value < (1 << self._size)): raise ValueError("Invalid value, must be in range %s..%s" % (0, (1 << self._size) - 1)) self._value = value def _write(self, output): output.writeBits(self._size, self._value, self._parent.endian) class EditableBytes(EditableField): def _setValue(self, value): if not value: raise ValueError( "Unable to set empty string to a EditableBytes field") self._value = value def _computeSize(self): return len(self._value) * 8 def _write(self, output): output.writeBytes(self._value) class EditableString(EditableField): MAX_SIZE = { "Pascal8": (1 << 8)-1, "Pascal16": (1 << 16)-1, "Pascal32": (1 << 32)-1, } def __init__(self, parent, name, *args, **kw): if len(args) == 2: value = args[1] assert isinstance(value, str) # TODO: support Unicode elif not args: value = None else: raise TypeError( "Wrong argument count, EditableString constructor prototype is:" "(parent, name, [format, value])") EditableField.__init__(self, parent, name, value) if len(args) == 2: self._charset = kw.get('charset', None) self._format = args[0] if self._format in GenericString.PASCAL_FORMATS: self._prefix_size = GenericString.PASCAL_FORMATS[self._format] else: self._prefix_size = 0 self._suffix_str = GenericString.staticSuffixStr( self._format, self._charset, self._parent.endian) self._is_altered = True else: orig = self._parent._getOriginalField(name) self._charset = orig.charset self._format = orig.format self._prefix_size = orig.content_offset self._suffix_str = orig.suffix_str def _setValue(self, value): size = len(value) if self._format in self.MAX_SIZE and self.MAX_SIZE[self._format] < size: raise ValueError("String is too big") self._value = value def _computeSize(self): return (self._prefix_size + len(self._value) + len(self._suffix_str))*8 def _write(self, output): if self._format in GenericString.SUFFIX_FORMAT: output.writeBytes(self._value) output.writeBytes(self._suffix_str) elif self._format == "fixed": output.writeBytes(self._value) else: assert self._format in GenericString.PASCAL_FORMATS size = GenericString.PASCAL_FORMATS[self._format] output.writeInteger(len(self._value), False, size, self._parent.endian) output.writeBytes(self._value) class EditableCharacter(EditableFixedField): def __init__(self, parent, name, *args): if args: if len(args) != 3: raise TypeError( "Wrong argument count, EditableCharacter " "constructor prototype is: (parent, name, [value])") value = args[0] if not isinstance(value, str) or len(value) != 1: raise TypeError("EditableCharacter needs a character") else: value = None EditableFixedField.__init__(self, parent, name, value, 8) if args: self._is_altered = True def _setValue(self, value): if not isinstance(value, str) or len(value) != 1: raise TypeError("EditableCharacter needs a character") self._value = value def _write(self, output): output.writeBytes(self._value) class EditableInteger(EditableFixedField): VALID_VALUE_SIGNED = { 8: (-(1 << 8), (1 << 8)-1), 16: (-(1 << 15), (1 << 15)-1), 32: (-(1 << 31), (1 << 31)-1), } VALID_VALUE_UNSIGNED = { 8: (0, (1 << 8)-1), 16: (0, (1 << 16)-1), 32: (0, (1 << 32)-1) } def __init__(self, parent, name, *args): if args: if len(args) != 3: raise TypeError( "Wrong argument count, EditableInteger constructor prototype is: " "(parent, name, [signed, size, value])") size = args[1] value = args[2] assert isinstance(value, (int, long)) else: size = None value = None EditableFixedField.__init__(self, parent, name, value, size) if args: self._signed = args[0] self._is_altered = True else: self._signed = self._parent._getOriginalField(self._name).signed def _setValue(self, value): if self._signed: valid = self.VALID_VALUE_SIGNED else: valid = self.VALID_VALUE_UNSIGNED minval, maxval = valid[self._size] if not(minval <= value <= maxval): raise ValueError("Invalid value, must be in range %s..%s" % (minval, maxval)) self._value = value def _write(self, output): output.writeInteger( self.value, self._signed, self._size//8, self._parent.endian) def createEditableField(fieldset, field): if isInteger(field): cls = EditableInteger elif isString(field): cls = EditableString elif field.__class__ in (RawBytes, Bytes, PaddingBytes): cls = EditableBytes elif field.__class__ in (RawBits, Bits, Bit, PaddingBits): cls = EditableBits elif field.__class__ == Character: cls = EditableCharacter else: cls = FakeField return cls(fieldset, field.name) mat-0.4.2/MAT/images.py000066400000000000000000000034011223433004300145260ustar00rootroot00000000000000''' Takes care about pictures formats References: - JFIF: http://www.ecma-international.org/publications/techreports/E-TR-098.htm - PNG: http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/PNG.html - PNG: http://www.w3.org/TR/PNG-Chunks.html ''' import parser class JpegStripper(parser.GenericParser): ''' Represents a jpeg file. Custom Huffman and Quantization tables are stripped: they may leak some info, and the quality loss is minor. ''' def _should_remove(self, field): ''' Return True if the field is compromising ''' field_list = frozenset([ 'start_image', # start of the image 'app0', # JFIF data 'start_frame', # specify width, height, number of components 'start_scan', # specify which slice of data the top-to-bottom scan contains 'data', # actual data 'end_image']) # end of the image if field.name in field_list: return False elif field.name.startswith('quantization['): # custom Quant. tables return False elif field.name.startswith('huffman['): # custom Huffman tables return False return True class PngStripper(parser.GenericParser): ''' Represents a png file ''' def _should_remove(self, field): ''' Return True if the field is compromising ''' field_list = frozenset([ 'id', 'header', # PNG header 'physical', # the intended pixel size or aspect ratio 'end']) # end of the image if field.name in field_list: return False if field.name.startswith('data['): # data return False return True mat-0.4.2/MAT/mat.py000066400000000000000000000116061223433004300140500ustar00rootroot00000000000000#!/usr/bin/env python ''' Metadata anonymisation toolkit library ''' import logging import mimetypes import os import subprocess import xml.sax import hachoir_core.cmd_line import hachoir_parser import MAT.exceptions __version__ = '0.4.2' __author__ = 'jvoisin' #Silence LOGGING_LEVEL = logging.CRITICAL hachoir_core.config.quiet = True fname = '' #Verbose #LOGGING_LEVEL = logging.DEBUG #hachoir_core.config.quiet = False #logname = 'report.log' logging.basicConfig(filename=fname, level=LOGGING_LEVEL) import strippers # this is loaded here because we need LOGGING_LEVEL def get_logo(): ''' Return the path to the logo ''' if os.path.isfile('./data/mat.png'): return './data/mat.png' elif os.path.isfile('/usr/share/pixmaps/mat.png'): return '/usr/share/pixmaps/mat.png' elif os.path.isfile('/usr/local/share/pixmaps/mat.png'): return '/usr/local/share/pixmaps/mat.png' def get_datadir(): ''' Return the path to the data directory ''' if os.path.isdir('./data/'): return './data/' elif os.path.isdir('/usr/local/share/mat/'): return '/usr/local/share/mat/' elif os.path.isdir('/usr/share/mat/'): return '/usr/share/mat/' def list_supported_formats(): ''' Return a list of all locally supported fileformat. It parses that FORMATS file, and removes locally non-supported formats. ''' handler = XMLParser() parser = xml.sax.make_parser() parser.setContentHandler(handler) path = os.path.join(get_datadir(), 'FORMATS') with open(path, 'r') as xmlfile: parser.parse(xmlfile) localy_supported = [] for item in handler.list: if item['mimetype'].split(',')[0] in strippers.STRIPPERS: localy_supported.append(item) return localy_supported class XMLParser(xml.sax.handler.ContentHandler): ''' Parse the supported format xml, and return a corresponding list of dict ''' def __init__(self): self.dict = {} self.list = [] self.content, self.key = '', '' self.between = False def startElement(self, name, attrs): ''' Called when entering into xml tag ''' self.between = True self.key = name self.content = '' def endElement(self, name): ''' Called when exiting a xml tag ''' if name == 'format': # leaving a fileformat section self.list.append(self.dict.copy()) self.dict.clear() else: content = self.content.replace('\s', ' ') self.dict[self.key] = content self.between = False def characters(self, characters): ''' Concatenate the content between opening and closing tags ''' if self.between: self.content += characters def secure_remove(filename): ''' Securely remove the file ''' try: if not subprocess.call(['shred', '--remove', filename]): return True else: raise OSError except OSError: logging.error('Unable to securely remove %s' % filename) try: os.remove(filename) return True except OSError: logging.error('Unable to remove %s' % filename) raise MAT.exceptions.UnableToRemoveFile def create_class_file(name, backup, **kwargs): ''' Return a $FILETYPEStripper() class, corresponding to the filetype of the given file ''' if not os.path.isfile(name): # check if the file exists logging.error('%s is not a valid file' % name) return None if not os.access(name, os.R_OK): # check read permissions logging.error('%s is is not readable' % name) return None if not os.path.getsize(name): #check if the file is not empty (hachoir crash on empty files) logging.error('%s is empty' % name) return None filename = '' try: filename = hachoir_core.cmd_line.unicodeFilename(name) except TypeError: # get rid of "decoding Unicode is not supported" filename = name parser = hachoir_parser.createParser(filename) if not parser: logging.info('Unable to parse %s' % filename) return None mime = parser.mime_type if mime == 'application/zip': # some formats are zipped stuff if mimetypes.guess_type(name)[0]: mime = mimetypes.guess_type(name)[0] if mime.startswith('application/vnd.oasis.opendocument'): mime = 'application/opendocument' # opendocument fileformat elif mime.startswith('application/vnd.openxmlformats-officedocument'): mime = 'application/officeopenxml' # office openxml is_writable = os.access(name, os.W_OK) try: stripper_class = strippers.STRIPPERS[mime] except KeyError: logging.info('Don\'t have stripper for %s format' % mime) return None return stripper_class(filename, parser, mime, backup, is_writable, **kwargs) mat-0.4.2/MAT/misc.py000066400000000000000000000051501223433004300142170ustar00rootroot00000000000000''' Care about misc formats ''' import parser from bencode import bencode class TorrentStripper(parser.GenericParser): ''' Represent a torrent file with the help of the bencode lib from Petru Paler ''' def __init__(self, filename, parser, mime, backup, is_writable, **kwargs): super(TorrentStripper, self).__init__(filename, parser, mime, backup, is_writable, **kwargs) self.fields = frozenset(['announce', 'info', 'name', 'path', 'piece length', 'pieces', 'length', 'files', 'announce-list', 'nodes', 'httpseeds', 'private', 'root hash']) def __get_key_recursively(self, dictionary): ''' Get recursively all keys from a dict and its subdicts ''' for i, j in list(dictionary.items()): if isinstance(j, dict): return set([i]).union(self.__get_key_recursively(j)) return set([i]) def is_clean(self): ''' Check if the file is clean from harmful metadata ''' with open(self.filename, 'r') as f: decoded = bencode.bdecode(f.read()) return self.fields.issuperset(self.__get_key_recursively(decoded)) def __get_meta_recursively(self, dictionary): ''' Get recursively all harmful metadata ''' d = dict() for i, j in list(dictionary.items()): if i not in self.fields: d[i] = j elif isinstance(j, dict): d = dict(d.items() + list(self.__get_meta_recursively(j).items())) return d def get_meta(self): ''' Return a dict with all the meta of the file ''' with open(self.filename, 'r') as f: decoded = bencode.bdecode(f.read()) return self.__get_meta_recursively(decoded) def __remove_all_recursively(self, dictionary): ''' Remove recursively all compromizing fields ''' d = dict() for i, j in [i for i in list(dictionary.items()) if i in self.fields]: if isinstance(j, dict): d = dict(list(d.items()) + list(self.__get_meta_recursively(j).items())) else: d[i] = j return d def remove_all(self): ''' Remove all comprimizing fields ''' decoded = '' with open(self.filename, 'r') as f: decoded = bencode.bdecode(f.read()) cleaned = {i: j for i, j in list(decoded.items()) if i in self.fields} with open(self.output, 'w') as f: # encode the decoded torrent f.write(bencode.bencode(cleaned)) # and write it in self.output self.do_backup() return True mat-0.4.2/MAT/mutagenstripper.py000066400000000000000000000015651223433004300165230ustar00rootroot00000000000000''' Take care of mutagen-supported formats (audio) ''' import parser class MutagenStripper(parser.GenericParser): def __init__(self, filename, parser, mime, backup, is_writable, **kwargs): super(MutagenStripper, self).__init__(filename, parser, mime, backup, is_writable, **kwargs) self._create_mfile() def _create_mfile(self): raise NotImplementedError def is_clean(self): return not self.mfile.tags def remove_all(self): if self.backup: self.create_backup_copy() self.mfile.delete() self.mfile.save() return True def get_meta(self): ''' Return the content of the metadata block is present ''' metadata = {} if self.mfile.tags: for key, value in self.mfile.tags: metadata[key] = value return metadata mat-0.4.2/MAT/office.py000066400000000000000000000235661223433004300145320ustar00rootroot00000000000000''' Care about office's formats ''' import os import logging import zipfile import fileinput import tempfile import shutil import xml.dom.minidom as minidom try: import cairo from gi.repository import Poppler except ImportError: logging.info('office.py loaded without PDF support') pass import mat import parser import archive class OpenDocumentStripper(archive.GenericArchiveStripper): ''' An open document file is a zip, with xml file into. The one that interest us is meta.xml ''' def get_meta(self): ''' Return a dict with all the meta of the file by trying to read the meta.xml file. ''' zipin = zipfile.ZipFile(self.filename, 'r') metadata = {} try: content = zipin.read('meta.xml') dom1 = minidom.parseString(content) elements = dom1.getElementsByTagName('office:meta') for i in elements[0].childNodes: if i.tagName != 'meta:document-statistic': nodename = ''.join([k for k in i.nodeName.split(':')[1:]]) metadata[nodename] = ''.join([j.data for j in i.childNodes]) else: # thank you w3c for not providing a nice # method to get all attributes of a node pass zipin.close() except KeyError: # no meta.xml file found logging.debug('%s has no opendocument metadata' % self.filename) return metadata def remove_all(self): ''' FIXME ? There is a patch implementing the Zipfile.remove() method here : http://bugs.python.org/issue6818 ''' zipin = zipfile.ZipFile(self.filename, 'r') zipout = zipfile.ZipFile(self.output, 'w', allowZip64=True) for item in zipin.namelist(): name = os.path.join(self.tempdir, item) _, ext = os.path.splitext(name) if item.endswith('manifest.xml'): # contain the list of all files present in the archive zipin.extract(item, self.tempdir) for line in fileinput.input(name, inplace=1): # remove the line which contains "meta.xml" line = line.strip() if not 'meta.xml' in line: print line zipout.write(name, item) elif ext in parser.NOMETA or item == 'mimetype': # keep NOMETA files, and the "manifest" file if item != 'meta.xml': # contains the metadata zipin.extract(item, self.tempdir) zipout.write(name, item) else: zipin.extract(item, self.tempdir) if os.path.isfile(name): try: cfile = mat.create_class_file(name, False, add2archive=self.add2archive) cfile.remove_all() logging.debug('Processing %s from %s' % (item, self.filename)) zipout.write(name, item) except: logging.info('%s\'s fileformat is not supported' % item) if self.add2archive: zipout.write(name, item) zipout.comment = '' logging.info('%s processed' % self.filename) zipin.close() zipout.close() self.do_backup() return True def is_clean(self): ''' Check if the file is clean from harmful metadatas ''' zipin = zipfile.ZipFile(self.filename, 'r') try: zipin.getinfo('meta.xml') except KeyError: # no meta.xml in the file czf = archive.ZipStripper(self.filename, self.parser, 'application/zip', False, True, add2archive=self.add2archive) if czf.is_clean(): zipin.close() return True zipin.close() return False class PdfStripper(parser.GenericParser): ''' Represent a PDF file ''' def __init__(self, filename, parser, mime, backup, is_writable, **kwargs): super(PdfStripper, self).__init__(filename, parser, mime, backup, is_writable, **kwargs) uri = 'file://' + os.path.abspath(self.filename) self.password = None try: self.pdf_quality = kwargs['low_pdf_quality'] except KeyError: self.pdf_quality = False self.document = Poppler.Document.new_from_file(uri, self.password) self.meta_list = frozenset(['title', 'author', 'subject', 'keywords', 'creator', 'producer', 'metadata']) def is_clean(self): ''' Check if the file is clean from harmful metadatas ''' for key in self.meta_list: if self.document.get_property(key): return False return True def remove_all(self): ''' Opening the PDF with poppler, then doing a render on a cairo pdfsurface for each pages. http://cairographics.org/documentation/pycairo/2/ The use of an intermediate tempfile is necessary because python-cairo segfaults on unicode. See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699457 ''' try: output = tempfile.mkstemp()[1] page = self.document.get_page(0) # assume that every pages are the same size page_width, page_height = page.get_size() surface = cairo.PDFSurface(output, page_width, page_height) context = cairo.Context(surface) # context draws on the surface logging.debug('PDF rendering of %s' % self.filename) for pagenum in range(self.document.get_n_pages()): page = self.document.get_page(pagenum) context.translate(0, 0) if self.pdf_quality: page.render(context) # render the page on context else: page.render_for_printing(context) # render the page on context context.show_page() # draw context on surface surface.finish() shutil.move(output, self.output) except: logging.error('Something went wrong when cleaning %s. File not cleaned' % self.filename) return False try: import pdfrw # For now, poppler cannot write meta, so we must use pdfrw logging.debug('Removing %s\'s superficial metadata' % self.filename) trailer = pdfrw.PdfReader(self.output) trailer.Info.Producer = None trailer.Info.Creator = None writer = pdfrw.PdfWriter() writer.trailer = trailer writer.write(self.output) self.do_backup() except: logging.error('Unable to remove all metadata from %s, please install\ pdfrw' % self.output) return False return True def get_meta(self): ''' Return a dict with all the meta of the file ''' metadata = {} for key in self.meta_list: if self.document.get_property(key): metadata[key] = self.document.get_property(key) return metadata class OpenXmlStripper(archive.GenericArchiveStripper): ''' Represent an office openxml document, which is like an opendocument format, with some tricky stuff added. It contains mostly xml, but can have media blobs, crap, ... (I don't like this format.) ''' def remove_all(self): ''' FIXME ? There is a patch implementing the Zipfile.remove() method here : http://bugs.python.org/issue6818 ''' zipin = zipfile.ZipFile(self.filename, 'r') zipout = zipfile.ZipFile(self.output, 'w', allowZip64=True) for item in zipin.namelist(): name = os.path.join(self.tempdir, item) _, ext = os.path.splitext(name) if item.startswith('docProps/'): # metadatas pass elif ext in parser.NOMETA or item == '.rels': # keep parser.NOMETA files, and the file named ".rels" zipin.extract(item, self.tempdir) zipout.write(name, item) else: zipin.extract(item, self.tempdir) if os.path.isfile(name): # don't care about folders try: cfile = mat.create_class_file(name, False, add2archive=self.add2archive) cfile.remove_all() logging.debug('Processing %s from %s' % (item, self.filename)) zipout.write(name, item) except: logging.info('%s\'s fileformat is not supported' % item) if self.add2archive: zipout.write(name, item) zipout.comment = '' logging.info('%s processed' % self.filename) zipin.close() zipout.close() self.do_backup() return True def is_clean(self): ''' Check if the file is clean from harmful metadatas ''' zipin = zipfile.ZipFile(self.filename, 'r') for item in zipin.namelist(): if item.startswith('docProps/'): return False zipin.close() czf = archive.ZipStripper(self.filename, self.parser, 'application/zip', False, True, add2archive=self.add2archive) return czf.is_clean() def get_meta(self): ''' Return a dict with all the meta of the file ''' zipin = zipfile.ZipFile(self.filename, 'r') metadata = {} for item in zipin.namelist(): if item.startswith('docProps/'): metadata[item] = 'harmful content' zipin.close() return metadata mat-0.4.2/MAT/parser.py000066400000000000000000000075141223433004300145660ustar00rootroot00000000000000''' Parent class of all parser ''' import os import shutil import tempfile import hachoir_core import hachoir_editor import mat NOMETA = frozenset(( '.bmp', # "raw" image '.rdf', # text '.txt', # plain text '.xml', # formated text (XML) '.rels', # openXML formated text )) FIELD = object() class GenericParser(object): ''' Parent class of all parsers ''' def __init__(self, filename, parser, mime, backup, is_writable, **kwargs): self.filename = '' self.parser = parser self.mime = mime self.backup = backup self.is_writable = is_writable self.editor = hachoir_editor.createEditor(parser) try: self.filename = hachoir_core.cmd_line.unicodeFilename(filename) except TypeError: # get rid of "decoding Unicode is not supported" self.filename = filename self.basename = os.path.basename(filename) _, output = tempfile.mkstemp() self.output = hachoir_core.cmd_line.unicodeFilename(output) def __del__(self): ''' Remove tempfile if it was not used ''' if os.path.exists(self.output): mat.secure_remove(self.output) def is_clean(self): ''' Check if the file is clean from harmful metadatas ''' for field in self.editor: if self._should_remove(field): return self._is_clean(self.editor) return True def _is_clean(self, fieldset): for field in fieldset: remove = self._should_remove(field) if remove is True: return False if remove is FIELD: if not self._is_clean(field): return False return True def remove_all(self): ''' Remove all compromising fields ''' state = self._remove_all(self.editor) hachoir_core.field.writeIntoFile(self.editor, self.output) self.do_backup() return state def _remove_all(self, fieldset): ''' Recursive way to handle tree metadatas ''' try: for field in fieldset: remove = self._should_remove(field) if remove is True: self._remove(fieldset, field.name) if remove is FIELD: self._remove_all(field) return True except: return False def _remove(self, fieldset, field): ''' Delete the given field ''' del fieldset[field] def get_meta(self): ''' Return a dict with all the meta of the file ''' metadata = {} self._get_meta(self.editor, metadata) return metadata def _get_meta(self, fieldset, metadata): ''' Recursive way to handle tree metadatas ''' for field in fieldset: remove = self._should_remove(field) if remove: try: metadata[field.name] = field.value except: metadata[field.name] = 'harmful content' if remove is FIELD: self._get_meta(field, None) def _should_remove(self, key): ''' Return True if the field is compromising abstract method ''' raise NotImplementedError def create_backup_copy(self): ''' Create a backup copy ''' shutil.copy2(self.filename, self.filename + '.bak') def do_backup(self): ''' Keep a backup of the file if asked. The process of double-renaming is not very elegant, but it greatly simplify new strippers implementation. ''' if self.backup: shutil.move(self.filename, self.filename + '.bak') else: mat.secure_remove(self.filename) shutil.move(self.output, self.filename) mat-0.4.2/MAT/strippers.py000066400000000000000000000035661223433004300153300ustar00rootroot00000000000000''' Manage which fileformat can be processed ''' import archive import audio import gi import images import logging import mat import misc import office import subprocess STRIPPERS = { 'application/x-tar': archive.TarStripper, 'application/x-bzip2': archive.Bzip2Stripper, 'application/zip': archive.ZipStripper, 'audio/mpeg': audio.MpegAudioStripper, 'application/x-bittorrent': misc.TorrentStripper, 'application/opendocument': office.OpenDocumentStripper, 'application/officeopenxml': office.OpenXmlStripper, } logging.basicConfig(level=mat.LOGGING_LEVEL) # PDF support pdfSupport = True try: from gi.repository import Poppler except ImportError: logging.info('Unable to import Poppler: no PDF support') pdfSupport = False try: import cairo except ImportError: logging.info('Unable to import python-cairo: no PDF support') pdfSupport = False try: import pdfrw except ImportError: logging.info('Unable to import python-pdfrw: no PDf support') pdfSupport = False if pdfSupport: STRIPPERS['application/x-pdf'] = office.PdfStripper STRIPPERS['application/pdf'] = office.PdfStripper # audio format support with mutagen-python try: import mutagen STRIPPERS['audio/x-flac'] = audio.FlacStripper STRIPPERS['audio/vorbis'] = audio.OggStripper STRIPPERS['audio/mpeg'] = audio.MpegAudioStripper except ImportError: logging.info('Unable to import python-mutagen: limited audio format support') # exiftool try: subprocess.check_output(['exiftool', '-ver']) import exiftool STRIPPERS['image/jpeg'] = exiftool.JpegStripper STRIPPERS['image/png'] = exiftool.PngStripper except OSError: # if exiftool is not installed, use hachoir instead logging.info('Unable to find exiftool: limited images support') STRIPPERS['image/jpeg'] = images.JpegStripper STRIPPERS['image/png'] = images.PngStripper mat-0.4.2/README000066400000000000000000000054521223433004300131560ustar00rootroot00000000000000METADATA ======== Metadata consist of information that characterizes data. Metadata are used to provide documentation for data products. In essence, metadata answer who, what, when, where, why, and how about every facet of the data that are being documented. METADATA AND PRIVACY ==================== Metadata within a file can tell a lot about you. Cameras record data about when a picture was taken and what camera was used. Office documents like PDF or Office automatically adds author and company information to documents and spreadsheets. Maybe you don't want to disclose those information on the web. WARNINGS ======== See README.security DEPENDENCIES ============ * python2.7 (at least) * python-hachoir-core and python-hachoir-parser * python-pdfrw, gir-poppler and python-gi-cairo for full PDF support * python-gi for the GUI * shred (should be already installed) OPTIONALS DEPENDENCIES ====================== * python-mutagen : for massive audio format support * exiftool : for _massive_ image format support USAGE ===== mat --help or mat-gui SUPPORTED FORMAT ================ See FORMATS HOW TO IMPLEMENT NEW FORMATS ============================ 1. Add the format's mimetype to the STRIPPER list in mat.py 2. Inherit the GenericParser class (parser.py) 3. Read the parser.py module 4. Implement at least these three methods: - is_clean(self) - remove_all(self) - get_meta(self) 5. Don't forget to call the do_backup() method when necessary HOW TO LAUNCH THE TESTSUITE =========================== cd ./test python test.py LINKS ===== * Official website: https://mat.boum.org * Bugtracker : https://labs.riseup.net/code/projects/mat * Git repo: https://gitweb.torproject.org/user/jvoisin/mat.git CONTACT ======= If you have question, patches, bug reports, or simply want to talk about this project, please use the mailing list (https://mailman.boum.org/listinfo/mat-dev). You can also contact contact jvoisin on irc.oftc.net or at julien.voisin@dustri.org. LICENSE ======= This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Copyright 2011-2013 Julien Voisin THANKS ====== Mat would not exist without : * the Google Summer of Code, * the hachoir library, * people on #tails@oftc Many thanks to them ! mat-0.4.2/README.security000066400000000000000000000062471223433004300150270ustar00rootroot00000000000000Warning ======= Mat only removes standard metadata from your files, it does _not_: - anonymise their content - handle watermarking - handle steganography - handle any non-standard metadata field/system If you really want to be anonymous format that does not contain any metadata, or better : use plain-text. Implementation notes ==================== Symlink attacks --------------- MAT output predictable filenames (like yourfile.jpg.bak). This may lead to symlink attack. Please check if you OS prevent against them Test suite ---------- Formats that are not in the test suite are not well-tested, please do not trust the MAT about them! Threat Model ============ The Metadata Anonymisation Toolkit adversary has a number of goals, capabilities, and counter-attack types that can be used to guide us towards a set of requirements for the MAT. Adversary ------------ * Goals: - Identifying the source of the document, since a document always has one. Who/where/when/how was a picture taken, where was the document leaked from and by whom, ... - Identify the author; in some cases documents may be anonymously authored or created. In these cases, identifying the author is the goal. - Identify the equipment/software used. If the attacker fails to directly identify the author and/or source, his next goal is to determine the source of the equipment used to produce, copy, and transmit the document. This can include the model of camera used to take a photo, or which software was used to produce an office document. * Adversary Capabilities - Positioning - The adversary created the document specifically for this user. This is the strongest position for the adversary to have. In this case, the adversary is capable of inserting arbitrary, custom watermarks specifically for tracking the user. In general, MAT cannot defend against this adversary, but we list it for completeness. - The adversary created the document for a group of users. In this case, the adversary knows that they attempted to limit distribution to a specific group of users. They may or may not have watermarked the document for these users, but they certainly know the format used. - The adversary did not create the document, the weakest position for the adversary to have. The file format is (most of the time) standard, nothing custom is added: MAT should be able to remove all meta-information from the file. Requirements --------------- * Processing - The MAT *should* avoid interactions with information. Its goal is to remove metadata, and the user is solely responsible for the information of the file. - The MAT *must* warn when encountering an unknown format. For example, in a zipfile, if MAT encounters an unknown format, it should warn the user, and ask if the file should be added to the anonymised archive that is produced. - The MAT *must* not add metadata, since its purpose is to anonymise files: every added items of metadata decreases anonymity. - The MAT *should* handle unknown/hidden metadata fields, like proprietary extensions of open formats. mat-0.4.2/RELEASE000066400000000000000000000011351223433004300132730ustar00rootroot00000000000000update localisations using xgettext -k_ -kN_ --from-code utf-8 -o ./po/mat-gui.pot mat-gui.py ./data/mat.glade update changelog: git log -> CHANGELOG update version number: MAT/mat.py -> __version__ = $VERSION commit release changes git commit CHANGELOG MAT/mat.py create a tag git tag -s $VERSION push the tag git push --tags archive's creation : git archive --format=tar.gz --prefix=mat-$VERSION/ $VERSION > mat-$VERSION.tar.gz signing: gpg --armor --detach-sign mat-$VERSION.tar.gz upload: https://mat.boum.org/files add changelog https://mat.boum.org/ mat-0.4.2/TODO000066400000000000000000000005201223433004300127550ustar00rootroot00000000000000FORMATS: NEW: - microsoft office < 2007 (ugly and insane) - fix (g)zip - videos format ? ARCHIVES: - correctly handle mtime/atime for files inside archives MISC: - support non-utf8 filenames NAUTILUS: - support multiple selection TESTS: - investigate why the testsuite leaves files mat-0.4.2/data/000077500000000000000000000000001223433004300132015ustar00rootroot00000000000000mat-0.4.2/data/FORMATS000066400000000000000000000100371223433004300142400ustar00rootroot00000000000000 Portable Network Graphics .png image/png Full Textual metadata and date Removal of harmful fields with hachoir. None Jpeg .jpeg, .jpg image/jpeg Partial Comments and exif/photoshop/adobe Removal of harmful fields with hachoir. Canon Raw tags Open Document .odt, .odx, .ods, ... application/opendocument Full A meta.xml file Removal of the meta.xml file. None Office Openxml .docx, .pptx, .xlsx, ... application/officeopenxml Full A docProps folder containings xml metadata files. Removal of the docProps folder None Portable Document Fileformat .pdf application/pdf Full A lot Rendering of the PDF file on a cairo surface with the help of poppler. None Tape ARchive .tar, .tar.bz2, .tar.gz application/x-tar, application/x-gzip, application/x-bzip2 Full Metadata from compressed files, metadata added to them by tar and metadata from the tar itself. Extraction and processing of each file, creation of a new archive, processing of this archive. None Zip .zip application/zip Partial Metadata from compressed files, metadata added to them by zip and metadata from the zip itself. Extraction and processing of each file, creation of a new archive, processing of this archive. Metadata added by zip itself to internal files MPEG Audio .mp3, .mp2, .mp1, .mpa audio/mpeg Full Id3 Removal of harmful fields with hachoir None Ogg Vorbis .ogg audio/vorbis Full Vorbis Removal of harmful fields with mutagen None Free Lossless Audio Codec .flac audio/x-flac Full Flac, Vorbis Removal of harmful fields with mutagen None Torrent .torrent application/torrent Full Torrent specific metadata Remove all the compromizing metadata with a heavily tuned version of the bencode lib by Petru Paled None mat-0.4.2/data/mat.png000066400000000000000000000751541223433004300145040ustar00rootroot00000000000000PNG  IHDRMsRGBbKGDC pHYs.#.#x?vtIME /l8[ IDATxy|$uwUuL&3$3a" +x~뺈+**(r~"ϓe]QVDD`f0's_컪~ $Iw*NS- 4 6@S8q9K49^(r=@Q'T(&h(֚==4O *;Zx1((C@4]=ȉt r"tT7̃D: Ar"tfr"}s\aNO hZuUvQ4=&-@Dle8d J62 JT)1B>cV͂ksn$@qNdq+f5ܛ,̉zt͊w"@¼ qN,dϱ.F"qÜ8U焹L|1/F &&e|ű/8'ΉtY9>;8G>=yr X$,Hx(ILϧz &8G1Ix> shTϟcb:qNWs|w q)ez>ñ1Lw;GK3΋ 'LMϧ8F@8'ΉtMSqwq 5|ebsœ8 ~s٧`0A90>$@N W\{>sD:w@p;ujbzN76XsD:w@Ezt;~8oRLϫ8@9 8@8sT98gTq{r \L2q;j=P y}-t@8'4 Nq9PRcz>ۛn`ssu{ tUtP-L"@q 9t>)9jLFV`z޸?'bsD: qlH\@X4Dx8͋ :9qL&tgh>Lωs4ϕcu@9s@Iu,'Єq~~7[gi628e8$\O?ߟӽ9ѫlp9v :91W?ݛ=*%m=4gt@ SϙcِҖÆs(!]G+鲾s.?`hKaj zV$ =]֗сD:T s|Ba;bžfۖr )~D:ynaЊWtښr5"@MYaSΰ&{]s ?"8/m!-O>$uGV!t@t0j8?y}zSZkGyͬu-5mծX _@pl9q^_[_+lYBuhlL0ο;SRKҾ+s5`EҶnݑ-߮uD:@ +'SVeo mkD:Ly 8?hӿW{ž,?X"@ z)==GI?H7m˨;b939j`@cczNO/Cymؤѽ(f'e*:Ο )mMrt?`8Or&kfXmU\랃ÕtY_JC9N qnߙ秸9!׮e?P})H h>Lω>9o| {ºjILt֍V6ߒrunF+z$̳+קׄ%I *mIGb `AO_z>8@[WM!ݸ28,4No'%Iݐ2߳(2aK#rթWt.":q>w'_vˢ;<Ƕ}kWV*gdv"@Up;¼?)G40Œnkybԇܓpm,[/`zqP^IN 89Q0%iC|(2:NHXZ`΢q qz{7vds;B7>iKc#dܪ2Sgwr^< ]4?Df#u8Ko'dp6tso\=/mgFkkAmuM/"aꆕמjqntQDl=Ș:@S$}gWFN9ҧJa*?2pD:UePӦ1GVFO9%=e.9%l)j=oH_j : K4uAG_z*uAWX)/m/Ó~~颈 畯BNEMm "Zء0ҙ:y%soս9ݾ3'ݹ''0z[&iWkF}{WF2g9ӯzmC+[s"Ht$ \}owVw?jzA{H#y 9=:ܤ+XVˎmIGݟ6x~D˧az>sƂtD:@iM9'߮GeKf0f;l*nI9O 3E󣆮[QmԎz*nJzn{H'/󮧌+=4yu؆.=.@BW+Ο1 zǟ gQSJW@w|UE+)++B~w=z{N[rd>□D٧St@Ms+bzI#O?}wby!]86q=O;J9Yh.[/k3tu| 7ڔttlCʕxyyW˜8ݜ.z˩;bs5F #i`Z{{j`WE i^8` iW?ؓS|)!C:.fҫZ3zч7-3:{/ F# kּ']p?!? V#/ON(lҁӍI:@Д\ȭE|7cOsl͸츏muf¨"Nk7tQjI_ӳfX 1{tQrJԔ.YQ4vos*w͹w j]a٦ N/C/#Kbt>N%|JE5Ӟo;U{NlC9O^ ;b'ja-OqGІ:o[Dt@xiViwo?QCgOsj"׍8y[z{RGq1SCj 1{Vo^8WkD:@E:1^2eҮi/ ߷Rs!Tt4Vv)usIzdd=׍8zd|Y7ON*& 鎘҉WCP^?ۗvymNKj(_۞y^{H_[PK&ꆭ>/b!نSuqQ~0)NutwdقR'kaD" ޼>)OjYT?AtҘNj K8qiqY1Ekƴ'S>5tco\a>^LX=`Gpw KJ:tHtELݰ2^8#z 9̸z1l_@u s_Nڔ׽'̏4̺FOO8zl#v]eܿ}5czn{oq;t@×;dCGungs,y 1G9O?ٗUґV8 Y҄G: qmH׭鴶`OiWkKծ+ȯjIw,'8Uzh)ζ }aeL \\sڗ9|mmJcm2͏}UB!m" #IjK--슘:8 Ⱥs{sڒrذ|~]w/tm(-,2Bl1%B8dt͸9 ==CtcoLZY0Ht@c[޶&9gYҘZ<γ]=< IDAT`N9O=)UslsaD1m 4ׇ6 ~2 mcADјӮg]w^S֎82&Yyڮ]YnHt@c*wƭya]1uzLЦ1GCyO?ߗ`ӚgZמ@x[86_aNX{3{{?>hӘy;}O7Cy =^Uنtb @l(=":D7msaGaC3m~(t0Ws -j.3qzlHNJtI_]aCYѳBNbgyO{3q硼&]˖1yuxG~l[b',}~KZӕC.[C2 A"r|툣?Wvrj;Izqt{^e#\ѷ]g:#ېrenRO3,j□9a;2+m>cfH+OgM/OWx;t_NW~yWй9e޸EMβ+_LmY5c?f5Gi˰|qSrz{xmbE@H͍ؔiUҩ<ҥ"?nq*:sCϏ(ditЪ֐>$:8U݅O3ޟ>155'¡3SzI/|1WxZ $֌֌ذ0=ezˆfz~(ƭiv:@ 17D9'ۿ:SߨSV& ʾ]Jޕ-fF]&oSt@cbXm/#7sȹU{WQ`%yW#*}!~v{ӎ:%O$u(w Lҫ@"HϮC̴+a05ÎrU=2tso\n鴵$>=+;=iWڕ綤]K=9to tgnMxތ? 9JWo"W/+鬙!ŭPS#nٞ/=уx@cvԍ~!-:m*/vꌐ>||;]Κd1ZϺ@^_ٞ<Ҧ1 -]d;lH+޳(t5ywںx Zj֤؟m;30VX wa}gU`^-hQy^s_9޿8ZmJ1_3u۪,Cr@ : NuyY +󶐡gwz~2V* ~ t"k9WӠ# ğ6ٳlihOV W~[?9~ _t!1tΌ֎VPZWys>1_iGګ׽@NٕatxD:J#j]V1_3:@_Rr4\ݶ3̱sAD:&}9Vyw[G6keڑrJ~!lNkHt QGzp:1yJ:#k7UZvӃ)4X4_m_DSs'[i ʘ%z{;]Yn`7"SZ-نRΓfنbd>}1@ӚGFe D;NNeF  >Q|g *nNtt0-ٳB츈N3džݾ3 cO#:æ^3찡Sgs=Srߟu3[z*NxS_>1E8:Kv4遁nٞуy 8![Wŵ$$&)z0-KXvyl9osb+N8'1{ Wo1tтBfpY%냕:;SLA(C2tSo\jQSȸz1=^Kg6f{: +=z>2VיedaDmv0G]fL2])Ixs"2#,V5z[,$'sӮtY_R)'x_v aډ`zYoÆn[vpOVWoXdt q^T騦7D2nv K bmi}e{}V[bէ6LAHG]q|ۤ=+nH}y}m;_t@|nEL ΋:uFaבiy 0=;/q=Bzcj-b5mާR.\=Mڮ>7b3-̉7M2zhۯƻF/kq\8(ʙ7cޱvV&LWjCGІjs,]8e(lJ۝7wn]q&hLN{5 煞3Ʒ,a#=d 5Xݽ?}cϭ+b%d(lz^5gB|R5=҉sq^Dq.])chӳoۑ[k0;D&FtbT{/%\8,Ŀ+̏75KIӺщ1KZf{pzͦ~+_4 S4٤yOGn{-&0kB\P㼔ρkQT/hZ+P^yN~K7-ٳ'k055/:qiэ[t u]n Ι'Ǵ"1wԑ~/)WNޟqu1mE ݾ*Z;v^sg=]s *2b}F2Oqnh07#<sdiu.Z3ݙھiprONhNe K;?NTo-`C"҃+2tso\G^n$nꖓE9륳C qߘ15՚ޔOk4̫Ma%5ov K7ϡzSya}ti<ŋ+'7]$@3y#q &g\3Z;Vݸپڟ7'\Ⱥt]S#*e4k0혠> I3^{yd2W*sIyE_7)"sL TsPbthVHXLх5F#oDcJ"I37cq`ږtty_Jj|qS7n )dH<:ioVw뺝y @p;|Wk߽ "[USQ5ɚsgZuUq.I US?96?|h8 q_RtGQSQguL]{\_7zz_R}şܙ>τ%}ĸΞU{{lCs@ y_`G{֎:r%]%Înwu1qj\{"n_alyĔ. N[s"_^Ss}_EpcW\/{/gx(osOVOiWvKZSD.Z==zZ u8׍8殌r|;3BKfꉒ@MbUVsjHgP/5?x=tִFw_}})>Ǘwt qf\Ye'~fۆ^59L?0=O{F"=ncHߜtP^#&鎝]%]/=a}xI.aKCyΰ5su#{~F}uGzHx؄v/Zby?W$zE][֧4PٳBzsOXm9sc5ss&QG|}jk)dH׭P]]iWwl!C/ "5?͞8G3|޽Ym!}h',mu鑡8Σt^w/& u騍s;m]^7͓ZX6~o;F14:o5P̏蜎P]y!}mUB- w]}jSY?L3=@@z:$۞)z@]$gͰXwXݿEL I4Ww@ctÛǞc 5cڙnPe})mMZ’>$CӾs4&:=-3Io|aMq%j4HԲƹ$٦mYT61f>sS&a;&tʸV'F=j)nM&0= A9}|c3?j޸:;FDzG=B?/8PWvFymP ԽҶ):s@"}O2ZW t"@PH+tУPD:@P GzHqBQn(/6D:s L6(LNq4nh0?._aɷϱStj ΁F/8u?1J6u`aNua.kƄy]#hHq4|+ ¼n4~M8t29NÜntjNbH'A Y9ۯqn@}q5@StA>מ@qa.~_@ ΁ @8ik'9L9qa‹79q枠`N{t2|tcNO瀟_hC1=فSLқ:@J8Q IDAT襊8X0?Ӄ-7Us4&hݔћ&Ι |<@ :qA9(sp{ѿ?N#O::t"9U^ٷt+҉s"HaFs^ t:Ncœ}5 t^ t-!tIgKTQG)9N@絑@q~k$͐4#@NIG6k uW|#Vϛ 0@PIWJr4<2sظ^St3xQ"Iu?!8+:' s3y}$i!A9PYIP"91>Q8>̏tOH()[$Ήt~tAs^-%w֥wAkW;B:[G0 `B F5AFQGc IIhAD?MJKR5`PJFJB҂Aǖr"0rs3{e]s|{>k统~^DC z ↺Y7ە @ q+3޻w%6u +DَVх95K^xv0+G' UD+"vuuo@Gψr@q~3[DĻ#5m). GoI)S+E(yRxɧ_oߗ~(o&#)wN|aD|w^x*"~<"J)-EzUQnA#G&_we_kl{*"+?Rz8ڈx_?Rz^tQ{Źs@EǞ|3z%~&_I)I͋#G3OG;"n~;o"WWOG"qx/{7W tjQn@;:&c'=F+6zDįG?{{^~gRihp?wD_߈Oyr}_E7GRJ(Йs >Aq<@q~xaDq'ןcnG]/Y0#WG*^~4"IJǚtsxR{Γ֎o?)|D|noGW@'G@缇lZ "77]>%~5q}=?>^w5~/cZz8&"&"~kzD M("WԷGEėߵTD|)-w+ F?;=Vh1M/{]?'?oDī"b}gD\U\\D]c%{8NTs}O\rDқ3" kcSS!7@dAlGD<4 /yֈq}5L~sDa޼06(PEnψPĹ87tq`<"ԏEzswjs=@m5OYȟ_H [)!.Ā80.q  #o'ɾ|S1Vpq9}+ksqNq'H`^専t;~)w8/q@@ofq[ /T%@/qQ86Οy晧߿ioFO]]]}Ͻ{^0o> FVq/+85uό/ύOOoGRJ\8q:24Oqypp\t@{Ka>'">"XD<{|ןᏦ~a@;<[ޟ<"^v᯾ "("~gON)$ 9̝ ʵ|ֹ8_=yϫ"s"+":t:>iXE\#Ĺ8_'pN^#us04"^rDS)žgr*A@@o鑈3GWʟD= K׈t\# K_=o! |;ӑ)w3nsoRw|}|Y=Ut &Ηwh=">ŧZD<)?#"+"^:|^D<0_8ڿ1}_DJ8̈́8%0|ao)ҧ A ]ЄLDDJW21G#CZ;a@K{ 5"~nĿ}sD|o 1Hvܪ9*s""~ƈL17#\18Zc%pd2K7" )7;ZnWaO aH) &Q`~m՝@kq~1ð}VoJ"{"9XP0=̭Cx:ǚED/g^7#⑈qDEz,&E(Uxa~87GE?∿xoD6".Ԝ(6oē\#my _?RzW0}y~0qM8ؗ6pFݩϽ$D \y-+88oI?vVw/_n"07n@8_g ÉH[MGsˀ47 (u/}'w __,K)`^0sXV:jX$]ZI/๾V+s󢃠0{L 1AeDK#̡SN@s'{_R߿N9s6Z s._SXA8|6RÉsϷNQ.amMJ챊^Y )ӂX7.`0sRV'9_,i+wbvrd8B}i;vu0&M(\.ΙIw <9o2РJ?\ ~dx!U2yFC&'5L$ZEon|Ϊz;063^:}q^ :de5'd&q>5)x'f>V;94^@&KW+s}} 0揢煕XA$҇.[(/! 7Ɔt"}|s-ZK |!t9[OSzSC^*b,i@ _~7G-]-0r #(A@f_sAϘxՕ\OKa2|qsO .kH? B]sZtµ:PcVFя/soV'׋sgtp,m}"Pt}wQXι1xNV:ʹH(# tO;y@qcO>-JDz ^Lˍrԉspr ΏMh9g"}_:Fz]sP7=A$ Rb3?X9pt`Ԥ95sSEma.>:5D0 lƹ0MNI]kw~sy8`1D:Ћc+N#(k :E;s>lxPPx ηgvbzL9;\ ҫJ9\S[Mh@rs@ؓO0y_q>yXV:}IBm^Э@ʽH/)pkvؖ@au,yb} sq8~B}nx\@*-Y3&/Eh}kDZ?es&v"·PGsLstle5Fz%G~^lد='7-<}(+HKG=\Ɋ9mVabϿȕanўy׾>q.Ё(ǥ.kg>9%Ba.~&İso"KgĹܙo =ۘ;wr,iԅ̊9+VYcߜy<cb ;EM%+ :9qHMX;'t& WλFswߘc>lο/sO4v謲r8 cXSje kYEVtt0iYAkxhs 65NϭtiUtT4f@+k:@oC6`@V4b[@f?GPl#@qɘstK@sFqk}1.M\. t@VV7ty@r9@D( Ё2$`;.oؑ'KEM:ƬuM^ NSnLD=V:ĹHDV䉉7UX: aeڎ7y#A蜏 1e@Dx@cȟYEǔUt:t*<|IDATbV> D::DXE @'OLUt~?a=9~V䉉"c 8wؖTx<32`J`7 @觷ɶ?Y ` {X*d?Kux+D:8G@X+!̏y s α Щi_ʊX;]tq8_/΅0w욤9q^P/ /{"@cT!95#c>5wLs9N"uHl m؇̅eN`{?0K>w<C-ϫ}^sCB¥rk)>'3P>n0 PuX9!i]oAOj糟>5#nҞ:LU✵!!z_(=拿=ww".ҁjX !t>?Y/sEz%ϥTVcqbnS{I<WTq3 *(Cd䒗1_=P|+|^:t2s{n=J 9/W\IwlQDs(1mUީsJ`@%7+8G@gInЖ52it`sT)LG7@,Y8jtTw8PߍPtlUœєq O}yL'kv~0q֊*9f*a=fUR|^1k8:v\XMD8G@G؟ԛƹ;-DI0stcB}H*ߏzZ {l_Vyh>D:APY5gҾ4u\FZ`/Y5GC~j0 ù !ef-nLsqZ9RVi$ԧNbJ3i_ )бxzL*#GOcJ3 *t^ż*:-G h39a`f5t@d:%Y2N#ΡViVJ1i"(`V}1L9 :̰d%(ҭdŜ-'vK's&w,8&aξ׈s9dwwRй}0;/B8@hzX+9Bk,.׊qnDnE2DӔsVǜAw"=ӄv2g’3έ#&aa +q~A>t}2ςVt鸿 u4Yp޾&AwN+G轏?/|=1LC[>a Rq;;n" _3F MbN R{ܩϴ<B]PR~_zq61D M(w|`r, K~}MbcXN=a͉c},9_9vuJt/Μ{' HX= Be0m)֩*ʧF{ɏaЗ4P\~nc_4(%}:{! 1aޕot?cug Щm;K^$Pw 26,+䂽@/G@G{̶tB!.\Dy*q. tQ#8?2Dc u"g7 tf,[󜿷@c]tH}m@b<:LLu .-:F ]Isf.bvΝ>7Ӭ}j8ϵ]C{]XEQ|}e}.'y 2H,V7|sj n<l%,ҹH-L8,tWPX R+.:BVρLhV/ƛV ZBċ^Y9\I xo}g/}a,x>9]~q?0v}[QX=N -~5t)j{\SYAocON.4V9_Lׅ>e8?gkW4V7z>y{氂Vo==x: HMȿ37}sEv|8?3ӥX?@^ԋ·}.']KF=B?aA@o$KxAhR"}?z^깏>J= dyq>Vo>yqN!"bOCE%UKoʿ9x'}wWY7}nFndl2Vw{~)|yj81qjjD='d w{VJWЋ{N:D`KV=GĪ5Fh>)@DHYkhyއt( } !'@iܽ t`WV`?.sPSOg9Vk/ 7?Po>"pL VXP}ϕ"}B*=PW[peyICD jYA8!sYpf%P"?t\pKGCe\7|NX#~tuvWOq~wёP+<4`5\-۲Iy@z8xskq(3kڦ}; ^ 0f&Ĺ.ۉYEt!XRۦ"q.PHĹm NŤh\7m_:t`H?},683`'5  6uEaܯ?D 7 !կ~򕯴ń:0hsNq~{pPt*q^6sTXE>xAr} Vq녈3J3:}\/:ptܶ5~y$ԭUEqG#9 kDa>krsl|ltӺcMlC]N¼͘QzjJSh7U !;Դ}D8_}j w(~ C-ޚr;|njW@%F{\#@!!蕅H?;p7|(jws8@Q#&|iۜ /aϼMxK@|R IsW:J5Us]뫬8Zt{m{ Ct80f,)Ǽ50?^hLaflǂ;%;|Us7VYmL%\7n2@UsC1xq%nvg;B q9FpiV;G\#ؗ,7 OpcS?6gO}o-)/Ĺc NcT^G8@Nzts{ݑ1@ɑ>{1 PcD=uq@M.8ym>Z]tL+9k9B}YA.'DzceHl5N aއY"]PxjprĤbc"wPK$1V>Oqc"xd g'rOC8 On2|cB С:Pp;N@;:c;.@;Ec&Zez IENDB`mat-0.4.2/data/mat.ui000066400000000000000000000734721223433004300143360ustar00rootroot00000000000000 True False gtk-properties True False 1 gtk-remove True False gtk-about True False gtk-clear True False gtk-find True False gtk-info True False Metadata Anonymisation Toolkit center 400 400 False vertical False False _File True True False gtk-add True False True True gtk-quit True False True True True False _Edit True True False Preferences True False GtkProperties False Clear True False GtkRemove False True False _Process True True False Clean True False GtkClear False Check True False GtkFind False True False _Help True True False Supported formats True False GtkInfo False About True False GtkAbout False False True 0 False both 5 True False Add gtk-add False True True False Clean gtk-clear False True True False Check gtk-find False True True False Clear gtk-remove False True False True 1 False False MainWindowListstore True 1 True True multiple True fixed Filename True True True 1 1 True fixed State True True True 4 2 True True 3 False False True 4 False 5 Metadata 520 260 True dialog True True False True vertical 2 True False False True MetadataPopupListStore True 0 True fixed Name True 0 0 fixed Content True 1 1 False True 0 False end gtk-ok True False True True False True 0 False True end 1 MetadataPopupOKButton False Supported formats False True True dialog True True False False vertical False 5 True False False False 1 1 1 1 False Support 0 1 1 1 True False Metadata 0 2 1 1 True False Method 0 3 1 1 True False Remaining 0 4 1 1 False 5 True 1 1 False 1 0 1 1 True False 39 Fileformat 0 0 1 1 True False False word 1 2 1 1 True False False word 1 4 1 1 True False False word 1 3 1 1 False True 0 False end gtk-ok False True True False True 1 False True end 1 supported_OK mat-0.4.2/mat000077500000000000000000000113221223433004300127760ustar00rootroot00000000000000#!/usr/bin/env python ''' Metadata anonymisation toolkit - CLI edition ''' import sys import xml.sax import optparse import os import hachoir_core from MAT import mat from MAT import strippers def parse(): ''' Get, and parse options passed to the program ''' parser = optparse.OptionParser(usage='%prog [options] files\n\ The default behaviour is to clean files given in argument') options = optparse.OptionGroup(parser, 'Options') options.add_option('--add2archive', '-a', action='store_true', default=False, help='Add to output archive non-supported filetypes') options.add_option('--backup', '-b', action='store_true', default=False, help='Keep a backup copy') options.add_option('--force', '-f', action='store_true', default=False, help='Don\'t check if files are clean before cleaning') options.add_option('--low-pdf-quality', '-L', action='store_true', default=False, help='Produces a lighter, but lower quality PDF') info = optparse.OptionGroup(parser, 'Informations') info.add_option('--check', '-c', action='store_true', default=False, help='Check if a file is free of harmful metadatas') info.add_option('--display', '-d', action='store_true', default=False, help='List all the harmful metadata of a file without removing them') info.add_option('--list', '-l', action='store_true', default=False, help='List all supported fileformat') info.add_option('--version', '-v', action='callback', callback=display_version, help='Display version and exit') parser.add_option_group(options) parser.add_option_group(info) values, arguments = parser.parse_args() if not arguments and not values.list: # if no argument and no files are passed, # print help and exit parser.print_help() return values, arguments def display_version(*_): ''' Display the program's version, and exit ''' print('Metadata Anonymisation Toolkit version %s') % mat.__version__ print('Hachoir version %s') % hachoir_core.__version__ sys.exit(0) def list_meta(class_file, filename, force): ''' Print all the metadata of 'filename' on stdout ''' print('[+] File %s :' % filename) if not force and class_file.is_clean(): print('No harmful metadata found') else: meta = class_file.get_meta() print ('Harmful metadata found:') if meta: for key, value in class_file.get_meta().iteritems(): print('\t' + key + ' : ' + str(value)) def is_clean(class_file, filename, force): ''' Say if 'filename' is clean or not ''' if class_file.is_clean(): print('[+] %s is clean' % filename) else: print('[+] %s is not clean' % filename) def clean_meta(class_file, filename, force): ''' Clean the file 'filename' ''' if not class_file.is_writable: print('[-] %s is not writable' % filename) return print('[+] Cleaning %s' % filename) if not force and class_file.is_clean(): print('%s is already clean' % filename) else: if class_file.remove_all(): print('%s cleaned !' % filename) else: print('Unable to clean %s', filename) def list_supported(): ''' Print all supported fileformat, and exit ''' for item in mat.list_supported_formats(): print('%s (%s)' % (item['name'], item['extension'])) print('\tsupport : ' + item['support']) print('\tmetadata : ' + item['metadata']) print('\tmethod : ' + item['method']) print('\tremaining : ' + item['remaining']) print('\n') sys.exit(0) def main(): ''' main function : get args, and launch the appropriate function ''' args, filenames = parse() #func receive the function corresponding to the options given as parameters if args.display: # only print metadatas func = list_meta elif args.check: # only check if the file is clean func = is_clean elif args.list: # print the list of all supported format list_supported() else: # clean the file func = clean_meta while filenames: filename = filenames.pop() if os.path.isdir(filename): for root, sub, files in os.walk(filename): for file in files: filenames.append(os.path.join(root, file)) class_file = mat.create_class_file(filename, args.backup, add2archive=args.add2archive, low_pdf_quality=args.low_pdf_quality) if class_file: func(class_file, filename, args.force) else: print('Unable to process %s' % filename) if __name__ == '__main__': main() mat-0.4.2/mat-gui000077500000000000000000000356361223433004300135760ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -* ''' Metadata anonymisation toolkit - GUI edition ''' from gi.repository import GObject, Gtk, GLib from gi.repository import Gdk, GdkPixbuf import gettext import logging import os import sys import mimetypes import xml.sax import urllib2 from MAT import mat from MAT import strippers logging.basicConfig(level=mat.LOGGING_LEVEL) class CFile(GObject.Object): ''' Contain the "parser" class of the file "filename" This class exist just to be "around" my parser.Generic_parser class, since the Gtk.ListStore does not accept it because it does not extends Gobject.Object ''' def __init__(self, filename, **kwargs): self.file = mat.create_class_file(filename, 0, **kwargs) class GUI(object): ''' Main GUI class ''' def __init__(self): # Preferences self.add2archive = True self.pdf_quality = False # Main window self.builder = Gtk.Builder() self.builder.add_from_file(os.path.join(mat.get_datadir(), 'mat.ui')) self.builder.connect_signals(self) self.logo = mat.get_logo() icon = GdkPixbuf.Pixbuf.new_from_file_at_size(self.logo, 50, 50) self.window = self.builder.get_object('MainWindow') self.window.set_icon(icon) self.liststore = self.builder.get_object('MainWindowListstore') ''' The Liststore contains: 0: The CFile instance that represents the file 1: The file's name 2: The file's state (Localised string) ''' self.treeview = self.builder.get_object('MainWindowTreeview') self.statusbar = self.builder.get_object('Statusbar') self.statusbar.push(1, _('Ready')) self.__init_supported_popup() self.__set_drag_treeview() self.window.show_all() def __init_supported_popup(self): ''' Initialise the "supported formats" popup ''' self.supported_dict = mat.XMLParser() parser = xml.sax.make_parser() parser.setContentHandler(self.supported_dict) path = os.path.join(mat.get_datadir(), 'FORMATS') with open(path, 'r') as xmlfile: parser.parse(xmlfile) supported_cbox = self.builder.get_object('supported_cbox') store = Gtk.ListStore(int, str) for i, j in enumerate(self.supported_dict.list): store.append([i, j['name']]) supported_cbox.set_model(store) supported_cbox.set_active(0) self.builder.get_object('supported_metadata').set_buffer(Gtk.TextBuffer()) self.builder.get_object('supported_remaining').set_buffer(Gtk.TextBuffer()) self.builder.get_object('supported_method').set_buffer(Gtk.TextBuffer()) self.cb_update_supported_popup(supported_cbox) # to initially fill the dialog def __set_drag_treeview(self): ''' Setup the drag'n'drop handling by the treeview ''' self.treeview.drag_dest_set( Gtk.DestDefaults.MOTION | Gtk.DestDefaults.HIGHLIGHT | Gtk.DestDefaults.DROP, [], Gdk.DragAction.COPY) targets = Gtk.TargetList.new([]) targets.add_uri_targets(80) self.treeview.drag_dest_set_target_list(targets) def cb_hide_widget(self, widget, _): ''' This function is a little hack to hide instead of close re-usable popups, like supported-fileformats, popup-metadata, ...''' widget.hide() return False def cb_update_supported_popup(self, window): ''' Fill GtkEntries of the supported_format_popups with corresponding data. ''' i = window.get_active_iter() index, _ = window.get_model()[i] support = self.builder.get_object('supported_support') support.set_text(self.supported_dict.list[index]['support']) metadata = self.builder.get_object('supported_metadata').get_buffer() metadata.set_text(self.supported_dict.list[index]['metadata']) method = self.builder.get_object('supported_method').get_buffer() method.set_text(self.supported_dict.list[index]['method']) remaining = self.builder.get_object('supported_remaining').get_buffer() remaining.set_text(self.supported_dict.list[index]['remaining']) def cb_close_application(self, _): ''' Close the application ''' Gtk.main_quit() def cb_add_files(self, button): ''' Add the files chosen by the filechooser ("Add" button) ''' chooser = Gtk.FileChooserDialog(title=_('Choose files'), parent=self.window, action=Gtk.FileChooserAction.OPEN, buttons=(Gtk.STOCK_OK, 0, Gtk.STOCK_CANCEL, 1)) chooser.set_default_response(0) chooser.set_select_multiple(True) all_filter = Gtk.FileFilter() # filter that shows all files all_filter.set_name(_('All files')) all_filter.add_pattern('*') chooser.add_filter(all_filter) # filter that shows only supported formats supported_filter = Gtk.FileFilter() [supported_filter.add_mime_type(i) for i in strippers.STRIPPERS.keys()] supported_filter.set_name(_('Supported files')) chooser.add_filter(supported_filter) if not chooser.run(): # Gtk.STOCK_OK filenames = chooser.get_filenames() GLib.idle_add(self.populate(filenames).next) # asynchronous processing chooser.destroy() def cb_popup_metadata(self, widget, row, col): ''' Popup that display on double-clic metadata from a file ''' metadataPopupListStore = self.builder.get_object('MetadataPopupListStore') metadataPopupListStore.clear() if self.liststore[row][0].file.is_clean(): metadataPopupListStore.append([_('No metadata found'), '']) self.liststore[row][2] = _('Clean') else: self.liststore[row][2] = _('Dirty') for i, j in self.liststore[row][0].file.get_meta().iteritems(): metadataPopupListStore.append([i, j]) popup_metadata = self.builder.get_object('MetadataPopup') popup_metadata.set_title(_("%s's metadata") % self.liststore[row][0].file.basename) popup_metadata.show_all() popup_metadata.run() popup_metadata.hide() def cb_about_popup(self, button): ''' About popup ''' w = Gtk.AboutDialog() w.set_authors(['Julien (jvoisin) Voisin', ]) w.set_artists(['Marine Benoît', ]) w.set_copyright('GNU Public License v2') w.set_comments(_('Trash your meta, keep your data')) w.set_logo(GdkPixbuf.Pixbuf.new_from_file_at_size(self.logo, 400, 200)) w.set_program_name('Metadata Anonymisation Toolkit') w.set_version(mat.__version__) w.set_website('https://mat.boum.org') w.set_website_label(_('Website')) w.set_position(Gtk.WindowPosition.CENTER) w.run() w.destroy() def cb_supported_popup(self, w): ''' Show the "supported formats" popup''' dialog = self.builder.get_object('SupportedWindow') dialog.show_all() dialog.run() dialog.hide() def cb_clear_list(self, _): ''' Clear the file list ''' self.liststore.clear() def cb_mat_check(self, button): ''' Callback for checking files ''' self.__process_files(self.__mat_check) def cb_mat_clean(self, button): ''' Callback for cleaning files ''' self.__process_files(self.__mat_clean) def cb_preferences_popup(self, button): ''' Preferences popup ''' dialog = Gtk.Dialog(_('Preferences'), self.window, 0, (Gtk.STOCK_OK, 0)) dialog.connect('delete-event', self.cb_hide_widget) dialog.set_resizable(False) hbox = Gtk.HBox() dialog.get_content_area().pack_start(hbox, False, False, 0) icon = Gtk.Image() icon.set_from_stock(Gtk.STOCK_PREFERENCES, Gtk.IconSize.DIALOG) hbox.pack_start(icon, False, False, 20) table = Gtk.Table(2, 2, False) # nb rows, nb lines hbox.pack_start(table, True, True, 0) pdf_quality = Gtk.CheckButton(_('Reduce PDF quality'), False) pdf_quality.set_active(self.pdf_quality) pdf_quality.connect('toggled', self.__invert, 'pdf_quality') pdf_quality.set_tooltip_text(_('Reduce the produced PDF size and quality')) table.attach(pdf_quality, 0, 1, 0, 1) add2archive = Gtk.CheckButton(_('Add unsupported file to archives'), False) add2archive.set_active(self.add2archive) add2archive.connect('toggled', self.__invert, 'add2archive') add2archive.set_tooltip_text(_('Add non-supported (and so \ non-anonymised) file to output archive')) table.attach(add2archive, 0, 1, 1, 2) hbox.show_all() if not dialog.run(): # Gtk.STOCK_OK for file in self.liststore: # update preferences file[0].file.add2archive = self.add2archive if file[0].file.mime.startswith('pdf'): file[0].file.pdf_quality = self.pdf_quality dialog.hide() def cb_drag_data_received(self, widget, context, x, y, selection, target_type, timestamp): ''' This function is called when something is drag'n'droped into mat. It basically add files. ''' def clean_path(url): ''' Since the dragged urls are ugly, we need to process them ''' url = urllib2.unquote(url) # unquote url url = url.decode('utf-8') # decode in utf-8 if url.startswith('file:\\\\\\'): # windows return url[8:] # 8 is len('file:///') elif url.startswith('file://'): # nautilus, rox, thunar return url[7:] # 7 is len('file://') elif url.startswith('file:'): # xffm return url[5:] # 5 is len('file:') dirty_urls = selection.get_uris() cleaned_urls = map(clean_path, dirty_urls) GLib.idle_add(self.populate(cleaned_urls).next) # asynchronous processing def __add_file_to_treeview(self, filename): ''' Add a file to the list if its format is supported ''' cf = CFile(filename, add2archive=self.add2archive, low_pdf_quality=self.pdf_quality) # if the file is supported by the mat, # and is writable (for usability's sake). if cf.file and cf.file.is_writable: self.liststore.append([cf, cf.file.basename, _('Unknown')]) return False return True def __process_files(self, func): ''' Launch the function "func" in a asynchronous way ''' iterator = self.treeview.get_selection().get_selected_rows()[1] if not iterator: # if nothing is selected : select everything iterator = range(len(self.liststore)) task = func(iterator) # launch func() in an asynchronous way GLib.idle_add(task.next) def __invert(self, button, name): ''' Invert a preference state ''' if name == 'pdf_quality': self.pdf_quality = not self.pdf_quality elif name == 'add2archive': self.add2archive = not self.add2archive def populate(self, filenames): ''' Append selected files by add_file to the self.liststore ''' not_supported = [] for filename in filenames: # filenames : all selected files/folders if os.path.isdir(filename): # if "filename" is a directory for root, dirs, files in os.walk(filename): for item in files: path_to_file = os.path.join(root, item) if self.__add_file_to_treeview(path_to_file): not_supported.append(item) yield True else: # filename is a regular file if self.__add_file_to_treeview(filename): not_supported.append(filename) yield True if not_supported: self.__popup_non_supported(not_supported) yield False def __popup_non_supported(self, filelist): ''' Popup that warn the user about the unsupported files that he want to process ''' dialog = Gtk.Dialog(title=_('Not-supported'), parent=self.window, flags=Gtk.DialogFlags.MODAL, buttons=(Gtk.STOCK_OK, 0)) dialog.set_size_request(220, 180) vbox = Gtk.VBox(spacing=5) sc = Gtk.ScrolledWindow() sc.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) sc.add_with_viewport(vbox) dialog.get_content_area().pack_start(sc, True, True, 0) store = Gtk.ListStore(str, str) # append filename - mimetype to the store for item in filelist: mime = mimetypes.guess_type(item)[0] if mime: store.append([os.path.basename(item), mime]) else: store.append([os.path.basename(item), _('Unknown mimetype')]) treeview = Gtk.TreeView(store) vbox.pack_start(treeview, True, True, 0) # create column rendererText = Gtk.CellRendererText() column = Gtk.TreeViewColumn(_('Filename'), rendererText, text=0) treeview.append_column(column) column = Gtk.TreeViewColumn(_('Mimetype'), rendererText, text=1) treeview.append_column(column) dialog.show_all() dialog.run() dialog.destroy() def __mat_check(self, iterator): ''' Check elements in iterator are clean ''' for line in iterator: # for each file in selection msg = _('Checking %s') % self.liststore[line][1].decode('utf-8', 'replace') logging.info(msg) self.statusbar.push(0, msg) if self.liststore[line][0].file.is_clean(): self.liststore[line][2] = _('Clean') else: self.liststore[line][2] = _('Dirty') logging.info('%s is %s' % (self.liststore[line][1], self.liststore[line][2])) yield True self.statusbar.push(0, _('Ready')) yield False def __mat_clean(self, iterator): ''' Clean elements in iterator ''' for line in iterator: # for each file in selection msg = _('Cleaning %s') % self.liststore[line][2].decode('utf-8', 'replace') logging.info(msg) self.statusbar.push(0, msg) if self.liststore[line][0].file.remove_all(): self.liststore[line][2] = _('Clean') yield True self.statusbar.push(0, _('Ready')) yield False if __name__ == '__main__': gettext.install('MAT', unicode=True) gui = GUI() # Add files from command line infiles = [arg for arg in sys.argv[1:] if os.path.exists(arg)] if infiles: task = gui.populate(infiles) Glib.idle_add(task.next) Gtk.main() mat-0.4.2/mat-gui.1000077700000000000000000000000001223433004300145532mat.1ustar00rootroot00000000000000mat-0.4.2/mat.1000066400000000000000000000036361223433004300131430ustar00rootroot00000000000000.TH METADATA "1" "January 2013" "Metadata Anonymisation Toolkit" "User Commands" .SH NAME MAT \- Metadata Anonymisation Toolkit .SH SYNOPSIS .B mat [\fIoptions\fR] \fIfiles\fR .TP .B mat-gui .SH DESCRIPTION The \fBMetadata Anonymisation Toolkit\fR is a lib (with a CLI and a GUI) created to anonymise file's \fBmetadata\fR. In essence, metadata answer who, what, when, where, why, and how about every face of the data that are being documented. They can be a \fBrisk for privacy\fR. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-a\fR, \fB\-\-add2archive\fR Add to outputed archive non\-supported filetypes .TP \fB\-b\fR, \fB\-\-backup\fR Keep a backup copy .TP \fB\-c\fR, \fB\-\-check\fR Check if a file is free of harmful metadatas .TP \fB\-d\fR, \fB\-\-display\fR List all the harmful meta of a file without removing them .TP \fB\-f\fR, \fB\-\-force\fR Don't check if files are clean before cleaning .TP \fB\-l\fR, \fB\-\-list\fR List all supported fileformat .TP \fB\-L\fR, \fB\-\-low-pdf-quality\fR Reduced the produced PDF size and quality .TP \fB\-v\fR, \fB\-\-version\fR Display version and exit .SH EXAMPLES .TP \fBmat \-\-display\fR mydocument.pdf Display the mydocument.pdf's harmful metadata .TP \fBmat \-\-check *.jpg\fR Check all the jpg images from the current folder .SH NOTES MAT \fBonly process metadata\fR, it does \fBnot\fR handle file data. Blame yourself if you are traced back because of the data of your files. MAT is not perfect : In most of the cases, a forensic expert with a lot of time \fBcan trace back\fR your document. If you want absolute privacy, use plain-text. .SH AUTHOR Julien (\fBjvoisin\fR) Voisin .SH BUGS MAT does not handle watermaking/tattoos for now. The --low-pdf-quality option may produce heavier PDF for very small files. You should only use it for big files. .SH "SEE ALSO" \fBexiftool\fR(1), \fBhachoir\-metadata\fR(1) mat-0.4.2/mat.desktop000066400000000000000000000002521223433004300144430ustar00rootroot00000000000000[Desktop Entry] Name=MAT GenericName=Metadata Anonymisation Toolkit Version=1.0 Type=Application Exec=mat-gui Terminal=false Categories=Utility;Security;System; Icon=mat mat-0.4.2/nautilus/000077500000000000000000000000001223433004300141345ustar00rootroot00000000000000mat-0.4.2/nautilus/nautilus-mat.py000066400000000000000000000054151223433004300171360ustar00rootroot00000000000000#! /usr/bin/python ''' This file is an extension for the Nautilus file manager, to provide a contextual menu to clean metadata ''' import logging import urllib try: import gettext gettext.install("mat") except: logging.warning("Failed to initialise gettext") _ = lambda x: x from gi.repository import Nautilus, GObject, Gtk import MAT.mat import MAT.strippers class MatExtension(GObject.GObject, Nautilus.MenuProvider): def __init__(self): logging.debug("nautilus-mat: initialising") pass def get_file_items(self, window, files): if len(files) != 1: # no multi-files support return file = files.pop() # We're only going to put ourselves on supported mimetypes' context menus if not (file.get_mime_type() in [i["mimetype"] for i in MAT.mat.list_supported_formats()]): logging.debug("%s is not supported by MAT" % file.get_mime_type()) return # MAT can only handle local file: if file.get_uri_scheme() != 'file': logging.debug("%s files not supported by MAT" % file.get_uri_scheme()) return # MAT can not clean non-writable files if not file.can_write(): logging.debug("%s is not writable by MAT" % file.get_uri_scheme()) return item = Nautilus.MenuItem(name="Nautilus::clean_metadata", label=_("Clean metadata"), tip=_("Clean file's metadata with MAT"), icon="gtk-clear") item.connect('activate', self.menu_activate_cb, file) return item, def show_message(self, message, type=Gtk.MessageType.INFO): dialog = Gtk.MessageDialog(parent=None, flags=Gtk.DialogFlags.MODAL, type=type, buttons=Gtk.ButtonsType.OK, message_format=message) ret = dialog.run() dialog.destroy() return ret def menu_activate_cb(self, menu, file): if file.is_gone(): return file_path = urllib.unquote(file.get_uri()[7:]) class_file = MAT.mat.create_class_file(file_path, backup=True, add2archive=False) if class_file: if class_file.is_clean(): self.show_message(_("%s is already clean") % file_path) else: if not class_file.remove_all(): self.show_message(_("Unable to clean %s") % file_path, Gtk.MessageType.ERROR) else: self.show_message(_("Unable to process %s") % file_path, Gtk.MessageType.ERROR) mat-0.4.2/po/000077500000000000000000000000001223433004300127065ustar00rootroot00000000000000mat-0.4.2/po/POTFILES.in000066400000000000000000000000101223433004300144520ustar00rootroot00000000000000mat-gui mat-0.4.2/po/ar.po000066400000000000000000000073001223433004300136500ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Asim Jaweesh , 2013 # Sherief Alaa , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-08-05 18:30+0000\n" "Last-Translator: Sherief Alaa \n" "Language-Team: Arabic (http://www.transifex.com/projects/p/torproject/language/ar/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ar\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "جاهز" #: mat-gui:134 msgid "Choose files" msgstr "اختر الملفات" #: mat-gui:141 msgid "All files" msgstr "كل الملفات" #: mat-gui:148 msgid "Supported files" msgstr "الملفات المدعومة" #: mat-gui:164 msgid "No metadata found" msgstr "لم يتم العثور علي بيانات وصفية" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "نظف" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "قذر" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "البيانات الوصفية الخاصة بـ%s" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "الغاء بياناتك الوصفية و احتفظ بالبيانات العادية" #: mat-gui:188 msgid "Website" msgstr "موقع" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "التفضيلات" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "قلل جودة ملف الـPDF" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "قلل جودة وحجم ملف الـPDF المنتج" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "اضافة ملف غير مدعوم للارشيف" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "اضافة ملف غير مدعوم ( او ملف غير مجهول ) للارشيف الناتج" #: mat-gui:283 msgid "Unknown" msgstr "غير معروف" #: mat-gui:330 msgid "Not-supported" msgstr "غير مدعوم" #: mat-gui:347 msgid "Unknown mimetype" msgstr "mimetype مجهول" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "اسم الملف" #: mat-gui:356 msgid "Mimetype" msgstr "Mimetype" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "جاري فحص %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "جاري تنظيف %s" #: data/mat.ui:63 msgid "_File" msgstr "_File" #: data/mat.ui:99 msgid "_Edit" msgstr "_Edit" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "امسح" #: data/mat.ui:134 msgid "_Process" msgstr "_Process" #: data/mat.ui:168 msgid "_Help" msgstr "_Help" #: data/mat.ui:214 msgid "Add" msgstr "إضافة" #: data/mat.ui:240 msgid "Check" msgstr "تحقق" #: data/mat.ui:308 msgid "State" msgstr "الحالة" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "البيانات الوصفية" #: data/mat.ui:400 msgid "Name" msgstr "اسم" #: data/mat.ui:414 msgid "Content" msgstr "المحتوي" #: data/mat.ui:448 msgid "Supported formats" msgstr "الصيغ المدعومة" #: data/mat.ui:482 msgid "Support" msgstr "الدعم" #: data/mat.ui:508 msgid "Method" msgstr "طريقة" #: data/mat.ui:521 msgid "Remaining" msgstr "متبقي" #: data/mat.ui:556 msgid "Fileformat" msgstr "نوع الملف" mat-0.4.2/po/cs.po000066400000000000000000000065751223433004300136700ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # adamse , 2013 # Radog , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-10-26 10:30+0000\n" "Last-Translator: Radog \n" "Language-Team: Czech (http://www.transifex.com/projects/p/torproject/language/cs/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: cs\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Připraveno" #: mat-gui:134 msgid "Choose files" msgstr "Vybrat soubory" #: mat-gui:141 msgid "All files" msgstr "Všechny soubory" #: mat-gui:148 msgid "Supported files" msgstr "Podporované soubory" #: mat-gui:164 msgid "No metadata found" msgstr "Nenalezena žádná metadata" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Vyčistit" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Infikovaný" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%s's metadata" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Smazat meta, ponechat data" #: mat-gui:188 msgid "Website" msgstr "Internetová stránka" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Nastavení" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Snížit kvalitu PDF" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Snížit velikost PDF a jeho kvalitu" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Přidat podporovaný soubor do archivů" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Přidat nepodporovaný (a také neanonymizující) soubor do výstupního archivu." #: mat-gui:283 msgid "Unknown" msgstr "Neznámý" #: mat-gui:330 msgid "Not-supported" msgstr "Nnepodporováno" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Neznámý mime typ souboru" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Název souboru" #: mat-gui:356 msgid "Mimetype" msgstr "Typ internetového média" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Kontroluji %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Čištění %s" #: data/mat.ui:63 msgid "_File" msgstr "_Soubor" #: data/mat.ui:99 msgid "_Edit" msgstr "_Úpravy" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Vycistit" #: data/mat.ui:134 msgid "_Process" msgstr "_Proces" #: data/mat.ui:168 msgid "_Help" msgstr "_Nápověda" #: data/mat.ui:214 msgid "Add" msgstr "Přidat" #: data/mat.ui:240 msgid "Check" msgstr "Ověřit" #: data/mat.ui:308 msgid "State" msgstr "Stav" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Meta data" #: data/mat.ui:400 msgid "Name" msgstr "Jméno" #: data/mat.ui:414 msgid "Content" msgstr "Obsah" #: data/mat.ui:448 msgid "Supported formats" msgstr "Podporované formáty" #: data/mat.ui:482 msgid "Support" msgstr "Podpora" #: data/mat.ui:508 msgid "Method" msgstr "Metoda" #: data/mat.ui:521 msgid "Remaining" msgstr "Zbývá" #: data/mat.ui:556 msgid "Fileformat" msgstr "Formát souboru" mat-0.4.2/po/da.po000066400000000000000000000064271223433004300136430ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # andersd , 2013 # klovnecaspar, 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-08-05 20:30+0000\n" "Last-Translator: andersd \n" "Language-Team: Danish (http://www.transifex.com/projects/p/torproject/language/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Klar" #: mat-gui:134 msgid "Choose files" msgstr "Vælg filer" #: mat-gui:141 msgid "All files" msgstr "Alle filer" #: mat-gui:148 msgid "Supported files" msgstr "Understøttede filer" #: mat-gui:164 msgid "No metadata found" msgstr "Ingen metadata fundet" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Ren" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Ikke ren" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%s's metadata" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Fjern dine metadata, behold de rigtige data" #: mat-gui:188 msgid "Website" msgstr "Hjemmeside" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Indstillinger" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Reducer PDF kvalitet" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Reducer den producerede PDF størrelse og kvalitet" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Tilføj ikke understøttede filer til arkiver" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Tilføj ikke understøttet (og derfor ikke anonymiseret) fil til output arkiv " #: mat-gui:283 msgid "Unknown" msgstr "Ukendt" #: mat-gui:330 msgid "Not-supported" msgstr "Ikke understøttet" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Ukendt mimetype" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Filnavn" #: mat-gui:356 msgid "Mimetype" msgstr "Mimetype" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Kontrollerer %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Renser %s" #: data/mat.ui:63 msgid "_File" msgstr "_Fil" #: data/mat.ui:99 msgid "_Edit" msgstr "_Rediger" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Ryd" #: data/mat.ui:134 msgid "_Process" msgstr "_Process" #: data/mat.ui:168 msgid "_Help" msgstr "_Hjælp" #: data/mat.ui:214 msgid "Add" msgstr "Tilføj" #: data/mat.ui:240 msgid "Check" msgstr "Tjek" #: data/mat.ui:308 msgid "State" msgstr "Tilstand" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metadata" #: data/mat.ui:400 msgid "Name" msgstr "Navn" #: data/mat.ui:414 msgid "Content" msgstr "Indhold" #: data/mat.ui:448 msgid "Supported formats" msgstr "Understøttede formater" #: data/mat.ui:482 msgid "Support" msgstr "Understøttelse" #: data/mat.ui:508 msgid "Method" msgstr "Metode" #: data/mat.ui:521 msgid "Remaining" msgstr "Tilbage" #: data/mat.ui:556 msgid "Fileformat" msgstr "Filformat" mat-0.4.2/po/de.po000066400000000000000000000065061223433004300136450ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # K.N., 2012 # Sacro , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-07-25 09:22+0000\n" "Last-Translator: Sacro \n" "Language-Team: German (http://www.transifex.com/projects/p/torproject/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Fertig" #: mat-gui:134 msgid "Choose files" msgstr "Dateien auswählen" #: mat-gui:141 msgid "All files" msgstr "Alle Dateien" #: mat-gui:148 msgid "Supported files" msgstr "Unterstützte Dateien" #: mat-gui:164 msgid "No metadata found" msgstr "Keine Metadaten gefunden" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Säubern" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Verschmutzt" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%s's Metadaten" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Lösche deine Meta, behalte deinen Daten" #: mat-gui:188 msgid "Website" msgstr "Webseite" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Einstellungen" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Verringere PDF Qualität" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Verringere die Größe und Qualität der erstellten PDF" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Nicht unterstützte Dateien im Archiv hinzufügen" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Nicht unterstützte (und somit nicht gesäuberte) Dateien dem Ausgabe Archiv hinzufügen" #: mat-gui:283 msgid "Unknown" msgstr "Unbekannt" #: mat-gui:330 msgid "Not-supported" msgstr "Nicht unterstützt" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Unbekannter mimetyp" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Dateiname" #: mat-gui:356 msgid "Mimetype" msgstr "Mimetyp" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Prüfe %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Bereinige %s" #: data/mat.ui:63 msgid "_File" msgstr "_Datei" #: data/mat.ui:99 msgid "_Edit" msgstr "_Bearbeiten" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Löschen" #: data/mat.ui:134 msgid "_Process" msgstr "_Abarbeiten" #: data/mat.ui:168 msgid "_Help" msgstr "_Hilfe" #: data/mat.ui:214 msgid "Add" msgstr "Hinzufügen" #: data/mat.ui:240 msgid "Check" msgstr "Prüfen" #: data/mat.ui:308 msgid "State" msgstr "Status" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metadaten" #: data/mat.ui:400 msgid "Name" msgstr "Name" #: data/mat.ui:414 msgid "Content" msgstr "Inhalt" #: data/mat.ui:448 msgid "Supported formats" msgstr "Unterstützte Formate" #: data/mat.ui:482 msgid "Support" msgstr "Support" #: data/mat.ui:508 msgid "Method" msgstr "Methode" #: data/mat.ui:521 msgid "Remaining" msgstr "Verbleibend" #: data/mat.ui:556 msgid "Fileformat" msgstr "Dateiformat" mat-0.4.2/po/el.po000066400000000000000000000076521223433004300136600ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # dpdt1 , 2013 # kotkotkot , 2013 # Wasilis , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-07-28 18:00+0000\n" "Last-Translator: kotkotkot \n" "Language-Team: Greek (http://www.transifex.com/projects/p/torproject/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Έτοιμο" #: mat-gui:134 msgid "Choose files" msgstr "Επιλογή αρχείων" #: mat-gui:141 msgid "All files" msgstr "Όλα τα αρχεία" #: mat-gui:148 msgid "Supported files" msgstr "Υποστηριζόμενα αρχεία" #: mat-gui:164 msgid "No metadata found" msgstr "Δεν βρέθηκαν μεταδεδομένα" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Εκκαθάριση" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Βρωμικο" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%s των μεταδεδομένων" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Διαγράψτε τα μεταδεδομένα, κρατήστε τα δεδομένα" #: mat-gui:188 msgid "Website" msgstr "Ιστοσελίδα" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Προτιμήσεις" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Μειωση της ποιοτητας του PDF " #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Μειωση του μεγεθους και της ποιοτητας του PDF " #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Προσθηκη μη υποστηριζομενων αρχειων " #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Προσθήκη μη υποστηριζομενων (οχι ανώνυμων) αρχειων στο αρχείο εξόδου " #: mat-gui:283 msgid "Unknown" msgstr "Άγνωστο" #: mat-gui:330 msgid "Not-supported" msgstr "Μη-υποστηριζόμενο" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Άγνωστος τύπος mime" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Όνομα αρχείου" #: mat-gui:356 msgid "Mimetype" msgstr "Τυπος Mime" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Έλεγχος %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Εκκαθάριση %s" #: data/mat.ui:63 msgid "_File" msgstr "_Αρχείο" #: data/mat.ui:99 msgid "_Edit" msgstr "_Επεξεργασία" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Εκκαθάριση" #: data/mat.ui:134 msgid "_Process" msgstr "_Διαδικασία" #: data/mat.ui:168 msgid "_Help" msgstr "_Βοήθεια" #: data/mat.ui:214 msgid "Add" msgstr "Προσθήκη" #: data/mat.ui:240 msgid "Check" msgstr "Έλεγχος" #: data/mat.ui:308 msgid "State" msgstr "Κατάσταση" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Μεταδεδομένα" #: data/mat.ui:400 msgid "Name" msgstr "Όνομα" #: data/mat.ui:414 msgid "Content" msgstr "Περιεχόμενα" #: data/mat.ui:448 msgid "Supported formats" msgstr "Υποστηριζόμενα αρχεία" #: data/mat.ui:482 msgid "Support" msgstr "Υποστήριξη" #: data/mat.ui:508 msgid "Method" msgstr "Μέθοδος" #: data/mat.ui:521 msgid "Remaining" msgstr "Υπόλοιπα" #: data/mat.ui:556 msgid "Fileformat" msgstr "Τύπος αρχείου" mat-0.4.2/po/es.po000066400000000000000000000065101223433004300136570ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Envite , 2013 # strel , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-07-25 09:22+0000\n" "Last-Translator: strel \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/torproject/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Listo" #: mat-gui:134 msgid "Choose files" msgstr "Elegir ficheros" #: mat-gui:141 msgid "All files" msgstr "Todos los ficheros" #: mat-gui:148 msgid "Supported files" msgstr "Ficheros soportados" #: mat-gui:164 msgid "No metadata found" msgstr "No se encontraron metadatos" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Limpiar" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Sucio" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "Metadatos de %s" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Desecha tus metadatos, conserva tus datos" #: mat-gui:188 msgid "Website" msgstr "Sitio web" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Preferencias" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Reducir la calidad del PDF" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Reduce el tamaño y calidad del PDF producido" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Añadir fichero no soportado a los archivos" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Añade fichero no soportado (y no anonimizado) al archivo de salida" #: mat-gui:283 msgid "Unknown" msgstr "Desconocido" #: mat-gui:330 msgid "Not-supported" msgstr "No soportado" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Tipo MIME desconocido" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Nombre de fichero" #: mat-gui:356 msgid "Mimetype" msgstr "Tipo MIME" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Comprobando %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Limpiando %s" #: data/mat.ui:63 msgid "_File" msgstr "_Fichero" #: data/mat.ui:99 msgid "_Edit" msgstr "_Editar" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Borrar" #: data/mat.ui:134 msgid "_Process" msgstr "_Proceso" #: data/mat.ui:168 msgid "_Help" msgstr "_Ayuda" #: data/mat.ui:214 msgid "Add" msgstr "Añadir" #: data/mat.ui:240 msgid "Check" msgstr "Verificar" #: data/mat.ui:308 msgid "State" msgstr "Estado" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metadatos" #: data/mat.ui:400 msgid "Name" msgstr "Nombre" #: data/mat.ui:414 msgid "Content" msgstr "Contenido" #: data/mat.ui:448 msgid "Supported formats" msgstr "Formatos soportados" #: data/mat.ui:482 msgid "Support" msgstr "Soporte" #: data/mat.ui:508 msgid "Method" msgstr "Método" #: data/mat.ui:521 msgid "Remaining" msgstr "Restante" #: data/mat.ui:556 msgid "Fileformat" msgstr "Formato de fichero" mat-0.4.2/po/eu.po000066400000000000000000000065551223433004300136720ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Antxon Baldarra , 2013 # Antxon Baldarra , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-07-25 09:22+0000\n" "Last-Translator: Antxon Baldarra \n" "Language-Team: Basque (http://www.transifex.com/projects/p/torproject/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Prest" #: mat-gui:134 msgid "Choose files" msgstr "Hautatu fitxategiak" #: mat-gui:141 msgid "All files" msgstr "Fitxategi guztiak" #: mat-gui:148 msgid "Supported files" msgstr "Onartutako fitxategiak" #: mat-gui:164 msgid "No metadata found" msgstr "Ez da metadaturik aurkitu" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Garbitu" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Zikina" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%sren metadatuak" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Zaborrara bota zure meta, gorde zure datuak" #: mat-gui:188 msgid "Website" msgstr "Webgunea" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Hobespenak" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "PDF kalitatea murriztu" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Sortutako PDFaren neurri eta kalitatea murriztu" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Gehitu fitxategi ez onartua artxiboetara" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Gehitu fitxategi ez onartua (eta baita anonimotu gabekoa) irteera artxibora" #: mat-gui:283 msgid "Unknown" msgstr "Ezezaguna" #: mat-gui:330 msgid "Not-supported" msgstr "Ez onartuak" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Mime-mota ezezaguna" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Fitxategi izena" #: mat-gui:356 msgid "Mimetype" msgstr "MIME mota" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "%s egiaztatzen" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "%s garbitzen" #: data/mat.ui:63 msgid "_File" msgstr "_Fitxategia" #: data/mat.ui:99 msgid "_Edit" msgstr "_Editatu" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Garbitu" #: data/mat.ui:134 msgid "_Process" msgstr "_Prozesatu" #: data/mat.ui:168 msgid "_Help" msgstr "_Laguntza" #: data/mat.ui:214 msgid "Add" msgstr "Gehitu" #: data/mat.ui:240 msgid "Check" msgstr "Egiaztatu" #: data/mat.ui:308 msgid "State" msgstr "Egoera" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metadatuak" #: data/mat.ui:400 msgid "Name" msgstr "Izena" #: data/mat.ui:414 msgid "Content" msgstr "Edukia" #: data/mat.ui:448 msgid "Supported formats" msgstr "Onartutako formatuak" #: data/mat.ui:482 msgid "Support" msgstr "Onartu" #: data/mat.ui:508 msgid "Method" msgstr "Metodoa" #: data/mat.ui:521 msgid "Remaining" msgstr "Faltan" #: data/mat.ui:556 msgid "Fileformat" msgstr "Fitxategi-formatua" mat-0.4.2/po/fi.po000066400000000000000000000071001223433004300136420ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # mikkoharhanen , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-01-05 20:03+0100\n" "PO-Revision-Date: 2013-06-24 22:53+0000\n" "Last-Translator: mikkoharhanen \n" "Language-Team: Finnish (http://www.transifex.com/projects/p/torproject/language/fi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: mat-gui:95 mat-gui:563 mat-gui:579 msgid "Ready" msgstr "Valmis" #: mat-gui:107 msgid "Add" msgstr "Lisää" #: mat-gui:109 mat-gui:183 msgid "Add files" msgstr "Lisää tiedostoja" #: mat-gui:113 mat-gui:203 mat-gui:308 mat-gui:311 mat-gui:555 mat-gui:557 #: mat-gui:573 mat-gui:575 msgid "Clean" msgstr "Puhdista" #: mat-gui:115 msgid "Clean selected files" msgstr "Puhdista valitut tiedostot" #: mat-gui:119 mat-gui:214 msgid "Check" msgstr "Tarkista" #: mat-gui:121 msgid "Check selected files for harmful meta" msgstr "Tarkista, onko tiedostoissa vahingollista metatietoa" #: mat-gui:125 mat-gui:185 msgid "Quit" msgstr "Lopeta" #: mat-gui:137 msgid "Path" msgstr "Polku" #: mat-gui:137 mat-gui:363 msgid "Filename" msgstr "Tiedostonimi" #: mat-gui:137 mat-gui:365 msgid "Mimetype" msgstr "Mediatyyppi" #: mat-gui:137 msgid "State" msgstr "Tila" #: mat-gui:138 msgid "Cleaned file" msgstr "Puhdistettu tiedosto" #: mat-gui:182 msgid "Files" msgstr "Tiedostot" #: mat-gui:188 msgid "Edit" msgstr "Muokkaa" #: mat-gui:189 msgid "Clear the filelist" msgstr "Tyhjennä tiedostoluettelo" #: mat-gui:192 mat-gui:447 msgid "Preferences" msgstr "Asetukset" #: mat-gui:195 msgid "Process" msgstr "Käsittele" #: mat-gui:218 msgid "Help" msgstr "Ohje" #: mat-gui:219 mat-gui:395 msgid "Supported formats" msgstr "Tuetut tiedostomuodot" #: mat-gui:220 msgid "About" msgstr "Tietoja" #: mat-gui:241 msgid "Choose files" msgstr "Valitse tiedostot" #: mat-gui:248 msgid "All files" msgstr "Kaikki tiedostot" #: mat-gui:255 msgid "Supported files" msgstr "Tuetut tiedostot" #: mat-gui:297 msgid "unknow" msgstr "tuntematon" #: mat-gui:313 mat-gui:559 msgid "Dirty" msgstr "Likainen" #: mat-gui:343 msgid "Not-supported" msgstr "Tukematon" #: mat-gui:381 msgid "This software was coded during the GSoC 2011" msgstr "Sovellus ohjelmoitiin GSoC 2011:n aikana" #: mat-gui:386 msgid "Website" msgstr "Verkkosivusto" #: mat-gui:461 msgid "Force Clean" msgstr "Pakota puhdistus" #: mat-gui:464 msgid "Do not check if already clean before cleaning" msgstr "Älä tarkista puhtautta ennen puhdistusta" #: mat-gui:468 msgid "Backup" msgstr "Varmuuskopio" #: mat-gui:471 msgid "Keep a backup copy" msgstr "Säilytä varmuuskopio" #: mat-gui:474 msgid "Reduce PDF quality" msgstr "Vähennä PDF:n laatua" #: mat-gui:477 msgid "Reduce the produced PDF size and quality" msgstr "Pienennä PDF-tiedostoa ja heikennä sen laatua" #: mat-gui:480 msgid "Add unsupported file to archives" msgstr "Lisää tukematon tiedosto arkistoon" #: mat-gui:484 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Lisää tiedosto, jota ei ole tuettu (eikä sen vuoksi puhdistettu), luotavaan arkistoon." #: mat-gui:554 #, python-format msgid "Checking %s..." msgstr "Tarkistetaan %s..." #: mat-gui:572 #, python-format msgid "Cleaning %s..." msgstr "Puhdistetaan %s..." mat-0.4.2/po/fr.po000066400000000000000000000065001223433004300136560ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Onizuka, 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-07-25 09:22+0000\n" "Last-Translator: Onizuka\n" "Language-Team: French (http://www.transifex.com/projects/p/torproject/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Prêt" #: mat-gui:134 msgid "Choose files" msgstr "Sélectionner des fichiers" #: mat-gui:141 msgid "All files" msgstr "Tous type de fichiers" #: mat-gui:148 msgid "Supported files" msgstr "Fichiers supportés" #: mat-gui:164 msgid "No metadata found" msgstr "Aucune métadonnée trouvée" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Nettoyer" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Préjudiciable" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "Métadonnées de %s" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Jetez vos métadonnées, conservez vos données" #: mat-gui:188 msgid "Website" msgstr "Site web" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Préférences" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Reduire la qualité des PDF" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Réduit la qualité et la taille des PDF produits" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Ajoute le(s) fichier(s) non supporté(s) aux archives" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Ajoute le(s) fichier(s) non supporté(s) (et donc, non traités) aux archives produites" #: mat-gui:283 msgid "Unknown" msgstr "Inconnu" #: mat-gui:330 msgid "Not-supported" msgstr "Fichier(s) non supporté(s)" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Type MIME inconnu" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Nom" #: mat-gui:356 msgid "Mimetype" msgstr "Type MIME" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Vérification de %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Nettoyage de %s" #: data/mat.ui:63 msgid "_File" msgstr "_Fichier" #: data/mat.ui:99 msgid "_Edit" msgstr "_Editer" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Effacer" #: data/mat.ui:134 msgid "_Process" msgstr "_Processus" #: data/mat.ui:168 msgid "_Help" msgstr "_Aide" #: data/mat.ui:214 msgid "Add" msgstr "Ajouter" #: data/mat.ui:240 msgid "Check" msgstr "Vérifier" #: data/mat.ui:308 msgid "State" msgstr "État" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Métadonnées" #: data/mat.ui:400 msgid "Name" msgstr "Nom" #: data/mat.ui:414 msgid "Content" msgstr "Contenu" #: data/mat.ui:448 msgid "Supported formats" msgstr "Formats supportés" #: data/mat.ui:482 msgid "Support" msgstr "Support" #: data/mat.ui:508 msgid "Method" msgstr "Procédé" #: data/mat.ui:521 msgid "Remaining" msgstr "Restant" #: data/mat.ui:556 msgid "Fileformat" msgstr "Format de fichier" mat-0.4.2/po/gl.po000066400000000000000000000071111223433004300136500ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # mbouzada , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-01-05 20:03+0100\n" "PO-Revision-Date: 2013-06-24 22:52+0000\n" "Last-Translator: mbouzada \n" "Language-Team: Galician (http://www.transifex.com/projects/p/torproject/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: mat-gui:95 mat-gui:563 mat-gui:579 msgid "Ready" msgstr "Preparado" #: mat-gui:107 msgid "Add" msgstr "Engadir" #: mat-gui:109 mat-gui:183 msgid "Add files" msgstr "Engadir ficheiros" #: mat-gui:113 mat-gui:203 mat-gui:308 mat-gui:311 mat-gui:555 mat-gui:557 #: mat-gui:573 mat-gui:575 msgid "Clean" msgstr "Limpar" #: mat-gui:115 msgid "Clean selected files" msgstr "Limpar os ficheiros seleccionados" #: mat-gui:119 mat-gui:214 msgid "Check" msgstr "Comprobar" #: mat-gui:121 msgid "Check selected files for harmful meta" msgstr "Comprobar os ficheiros para a metaanálise de danos" #: mat-gui:125 mat-gui:185 msgid "Quit" msgstr "Saír" #: mat-gui:137 msgid "Path" msgstr "Ruta" #: mat-gui:137 mat-gui:363 msgid "Filename" msgstr "Nome do ficheiro" #: mat-gui:137 mat-gui:365 msgid "Mimetype" msgstr "Tipo MIME" #: mat-gui:137 msgid "State" msgstr "Estado" #: mat-gui:138 msgid "Cleaned file" msgstr "Ficheiro limpado" #: mat-gui:182 msgid "Files" msgstr "Ficheiros" #: mat-gui:188 msgid "Edit" msgstr "Editar" #: mat-gui:189 msgid "Clear the filelist" msgstr "Limpar a lista de ficheiros" #: mat-gui:192 mat-gui:447 msgid "Preferences" msgstr "Preferencias" #: mat-gui:195 msgid "Process" msgstr "Proceso" #: mat-gui:218 msgid "Help" msgstr "Axuda" #: mat-gui:219 mat-gui:395 msgid "Supported formats" msgstr "Formatos admitidos" #: mat-gui:220 msgid "About" msgstr "Sobre" #: mat-gui:241 msgid "Choose files" msgstr "Escoller ficheiros" #: mat-gui:248 msgid "All files" msgstr "Todos os ficheiros" #: mat-gui:255 msgid "Supported files" msgstr "Ficheiros admitidos" #: mat-gui:297 msgid "unknow" msgstr "descoñecido" #: mat-gui:313 mat-gui:559 msgid "Dirty" msgstr "Sucio" #: mat-gui:343 msgid "Not-supported" msgstr "Non admitido" #: mat-gui:381 msgid "This software was coded during the GSoC 2011" msgstr "Este software foi codificado durante o GSoC 2011" #: mat-gui:386 msgid "Website" msgstr "Sitio web" #: mat-gui:461 msgid "Force Clean" msgstr "Forzar a limpeza" #: mat-gui:464 msgid "Do not check if already clean before cleaning" msgstr "Non comprobar se xa está limpo antes de limpar" #: mat-gui:468 msgid "Backup" msgstr "Copia de seguranza" #: mat-gui:471 msgid "Keep a backup copy" msgstr "Manter unha copia de seguranza" #: mat-gui:474 msgid "Reduce PDF quality" msgstr "Reducir a calidade do PDF" #: mat-gui:477 msgid "Reduce the produced PDF size and quality" msgstr "Reducir o tamaño e a calidade do PDF xerado" #: mat-gui:480 msgid "Add unsupported file to archives" msgstr "Engadir os ficheiros non admitidos aos arquivos" #: mat-gui:484 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Engadir os ficheiros non admitidos (e os non anónimos) ao arquivo de saída" #: mat-gui:554 #, python-format msgid "Checking %s..." msgstr "Comprobando %s..." #: mat-gui:572 #, python-format msgid "Cleaning %s..." msgstr "Limpando %s..." mat-0.4.2/po/hr_HR.po000066400000000000000000000064771223433004300142660ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # dlb031 , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-07-31 07:40+0000\n" "Last-Translator: dlb031 \n" "Language-Team: Croatian (Croatia) (http://www.transifex.com/projects/p/torproject/language/hr_HR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hr_HR\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Spremno" #: mat-gui:134 msgid "Choose files" msgstr "Odaberi datoteke" #: mat-gui:141 msgid "All files" msgstr "Sve datoteke" #: mat-gui:148 msgid "Supported files" msgstr "Podržane datoteke" #: mat-gui:164 msgid "No metadata found" msgstr "Metapodaci nisu pronađeni" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Čisto" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Prljavo" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%s's metapodaci" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Odbaci meta, ostavi podatke" #: mat-gui:188 msgid "Website" msgstr "Web Stranica" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Preference" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Smanji PDF kvalitetu" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Smanji PDF veličinu i kvalitetu" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Dodaj nepodržane datoteke u arhive" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Dodaj nepodržane(i neanonimizirane) datoteke u izlazni arhiv" #: mat-gui:283 msgid "Unknown" msgstr "Nepoznato" #: mat-gui:330 msgid "Not-supported" msgstr "Nije podržano" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Nepoznata mime vrsta" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Ime datoteke" #: mat-gui:356 msgid "Mimetype" msgstr "Mime vrsta" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Provjeravam %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Čistim %s" #: data/mat.ui:63 msgid "_File" msgstr "_Datoteka" #: data/mat.ui:99 msgid "_Edit" msgstr "_Uredi" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Očisti" #: data/mat.ui:134 msgid "_Process" msgstr "_Obradi" #: data/mat.ui:168 msgid "_Help" msgstr "_Pomoć" #: data/mat.ui:214 msgid "Add" msgstr "Dodaj" #: data/mat.ui:240 msgid "Check" msgstr "Provjeri" #: data/mat.ui:308 msgid "State" msgstr "Stanje" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metapodaci" #: data/mat.ui:400 msgid "Name" msgstr "Ime" #: data/mat.ui:414 msgid "Content" msgstr "Sadržaj" #: data/mat.ui:448 msgid "Supported formats" msgstr "Podržani formati" #: data/mat.ui:482 msgid "Support" msgstr "Podrška" #: data/mat.ui:508 msgid "Method" msgstr "Metoda" #: data/mat.ui:521 msgid "Remaining" msgstr "Preostalo" #: data/mat.ui:556 msgid "Fileformat" msgstr "Format datoteke" mat-0.4.2/po/hu.po000066400000000000000000000065651223433004300136760ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # vargaviktor , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-09-02 22:00+0000\n" "Last-Translator: vargaviktor \n" "Language-Team: Hungarian (http://www.transifex.com/projects/p/torproject/language/hu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Kész" #: mat-gui:134 msgid "Choose files" msgstr "Fájlok kiválasztása" #: mat-gui:141 msgid "All files" msgstr "Minden fájl" #: mat-gui:148 msgid "Supported files" msgstr "Támogatott fájlok" #: mat-gui:164 msgid "No metadata found" msgstr "Nem található metaadat" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Tisztítás" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Piszkos" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%s metaadata" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Kukázd a metaadatot, tartsd meg az adatot" #: mat-gui:188 msgid "Website" msgstr "Weboldal" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Beállítások" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "PDF minőség csökkentése" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "A létrehozott PDF méretének és minőségének csökkentése" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "A nem támogatott fájlok hozzáadása az archívumhoz" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "A nem támogatott (így nem is anonimizált) fájlok archívumba küldése" #: mat-gui:283 msgid "Unknown" msgstr "Ismeretlen" #: mat-gui:330 msgid "Not-supported" msgstr "Nem támogatott" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Ismeretlen Mime típus" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Fájlnév" #: mat-gui:356 msgid "Mimetype" msgstr "Mime típus" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "%s ellenőrzése" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "%s tisztítása" #: data/mat.ui:63 msgid "_File" msgstr "_Fájl" #: data/mat.ui:99 msgid "_Edit" msgstr "_Szerkesztés" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Törlés" #: data/mat.ui:134 msgid "_Process" msgstr "_Folyamat" #: data/mat.ui:168 msgid "_Help" msgstr "_Súgó" #: data/mat.ui:214 msgid "Add" msgstr "Hozzáad" #: data/mat.ui:240 msgid "Check" msgstr "Ellenőrzés" #: data/mat.ui:308 msgid "State" msgstr "Állapot" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metaadat" #: data/mat.ui:400 msgid "Name" msgstr "Név" #: data/mat.ui:414 msgid "Content" msgstr "Tartalom" #: data/mat.ui:448 msgid "Supported formats" msgstr "Támogatott formátumok" #: data/mat.ui:482 msgid "Support" msgstr "Támogatás" #: data/mat.ui:508 msgid "Method" msgstr "Metódus" #: data/mat.ui:521 msgid "Remaining" msgstr "Hátralévő" #: data/mat.ui:556 msgid "Fileformat" msgstr "Fájlformátum" mat-0.4.2/po/it.po000066400000000000000000000065301223433004300136660ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Maijin , 2013 # Random_R , 2013 # Rossano Praderi , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-08-16 22:30+0000\n" "Last-Translator: Rossano Praderi \n" "Language-Team: Italian (http://www.transifex.com/projects/p/torproject/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Pronto" #: mat-gui:134 msgid "Choose files" msgstr "Scegli i file" #: mat-gui:141 msgid "All files" msgstr "Tutti i file" #: mat-gui:148 msgid "Supported files" msgstr "File supportati" #: mat-gui:164 msgid "No metadata found" msgstr "Nessun metadata trovato" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Pulisci" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Sporco" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "Metadati di %s" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Butta i tuoi meta, tieni i tuoi dati" #: mat-gui:188 msgid "Website" msgstr "Sito" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Preferenze" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Riduci qualità PDF" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Riduci la dimensione e qualità prodotte del PDF" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Aggiungi file non supportato agli achivi" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Aggiungi file non-supportato (e quindi non-anonimo) all'archivio di destinazione" #: mat-gui:283 msgid "Unknown" msgstr "Sconosciuto" #: mat-gui:330 msgid "Not-supported" msgstr "Non-supportato" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Mimetype sconosciuto" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Nome file" #: mat-gui:356 msgid "Mimetype" msgstr "Tipo Mime" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Controllo %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Pulitura %s" #: data/mat.ui:63 msgid "_File" msgstr "_File" #: data/mat.ui:99 msgid "_Edit" msgstr "_Modifica" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Pulisci" #: data/mat.ui:134 msgid "_Process" msgstr "_Process" #: data/mat.ui:168 msgid "_Help" msgstr "_Aiuto" #: data/mat.ui:214 msgid "Add" msgstr "Aggiungi" #: data/mat.ui:240 msgid "Check" msgstr "Controlla" #: data/mat.ui:308 msgid "State" msgstr "Stato" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metadati" #: data/mat.ui:400 msgid "Name" msgstr "Nome" #: data/mat.ui:414 msgid "Content" msgstr "Contenuto" #: data/mat.ui:448 msgid "Supported formats" msgstr "Formati supportati" #: data/mat.ui:482 msgid "Support" msgstr "Supporto" #: data/mat.ui:508 msgid "Method" msgstr "Metodo" #: data/mat.ui:521 msgid "Remaining" msgstr "Rimanente" #: data/mat.ui:556 msgid "Fileformat" msgstr "Formato file" mat-0.4.2/po/ja.po000066400000000000000000000067351223433004300136530ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # plazmism , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-07-25 09:22+0000\n" "Last-Translator: plazmism \n" "Language-Team: Japanese (http://www.transifex.com/projects/p/torproject/language/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "準備完了" #: mat-gui:134 msgid "Choose files" msgstr "ファイルを選択" #: mat-gui:141 msgid "All files" msgstr "すべてのファイル" #: mat-gui:148 msgid "Supported files" msgstr "サポートされているファイル" #: mat-gui:164 msgid "No metadata found" msgstr "メタデータが見つかりません" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "クリーン" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "汚染" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%sのメタデータ" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "メタを捨てて、データを維持する" #: mat-gui:188 msgid "Website" msgstr "ウェブサイト" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "設定" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "PDFのクォリティを削減" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "作成されたPDFのサイズとクォリティを削減" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "サポートされていないファイルをアーカイブに追加" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "非サポート(また、非匿名化)ファイルを追加し、アーカイブに出力" #: mat-gui:283 msgid "Unknown" msgstr "不明" #: mat-gui:330 msgid "Not-supported" msgstr "非サポート" #: mat-gui:347 msgid "Unknown mimetype" msgstr "不明なmimeタイプ" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "ファイル名" #: mat-gui:356 msgid "Mimetype" msgstr "Mimetype" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "%sを確認中" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "%sをクリーニング中" #: data/mat.ui:63 msgid "_File" msgstr "_File" #: data/mat.ui:99 msgid "_Edit" msgstr "_Edit" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "クリア" #: data/mat.ui:134 msgid "_Process" msgstr "_Process" #: data/mat.ui:168 msgid "_Help" msgstr "_Help" #: data/mat.ui:214 msgid "Add" msgstr "追加" #: data/mat.ui:240 msgid "Check" msgstr "確認" #: data/mat.ui:308 msgid "State" msgstr "状態" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "メタデータ" #: data/mat.ui:400 msgid "Name" msgstr "名前" #: data/mat.ui:414 msgid "Content" msgstr "内容" #: data/mat.ui:448 msgid "Supported formats" msgstr "サポートされているフォーマット" #: data/mat.ui:482 msgid "Support" msgstr "サポート" #: data/mat.ui:508 msgid "Method" msgstr "メソッド" #: data/mat.ui:521 msgid "Remaining" msgstr "リネーム" #: data/mat.ui:556 msgid "Fileformat" msgstr "ファイルフォーマット" mat-0.4.2/po/lv.po000066400000000000000000000065511223433004300136760ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Ojars Balcers , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-07-27 13:20+0000\n" "Last-Translator: Ojars Balcers \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/torproject/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Gatavs" #: mat-gui:134 msgid "Choose files" msgstr "Izvēlēties datnes" #: mat-gui:141 msgid "All files" msgstr "Visas datnes" #: mat-gui:148 msgid "Supported files" msgstr "Atbalstītās datnes" #: mat-gui:164 msgid "No metadata found" msgstr "Metadati netika atrasti" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Tīrīt" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Novecojis" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%s's metadati" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Atbrīvoties no meta, saglabāt Jūsu datus" #: mat-gui:188 msgid "Website" msgstr "Tīmekļa vietne" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Preferences" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Samazināt PDF kvalitāti" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Samazināt veidotā PDF lielumu un kvalitāti" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Pievienot arhīviem neatbalstītu datni" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Pievienot izvades arhīvam neatbalstītu (un, tādējādi, neanonimizētu) datni" #: mat-gui:283 msgid "Unknown" msgstr "Nezināms" #: mat-gui:330 msgid "Not-supported" msgstr "Netiek atbalstīts" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Nezināms MIME veids" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Datnes vārds" #: mat-gui:356 msgid "Mimetype" msgstr "MIME veids" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Pārbauda %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Tīra %s" #: data/mat.ui:63 msgid "_File" msgstr "_File" #: data/mat.ui:99 msgid "_Edit" msgstr "_Edit" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Notīrīt" #: data/mat.ui:134 msgid "_Process" msgstr "_Process" #: data/mat.ui:168 msgid "_Help" msgstr "_Help" #: data/mat.ui:214 msgid "Add" msgstr "Pievienot" #: data/mat.ui:240 msgid "Check" msgstr "Pārbaudīt" #: data/mat.ui:308 msgid "State" msgstr "Stāvoklis" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metadati" #: data/mat.ui:400 msgid "Name" msgstr "Nosaukums" #: data/mat.ui:414 msgid "Content" msgstr "Saturs" #: data/mat.ui:448 msgid "Supported formats" msgstr "Atbalstītie formāti" #: data/mat.ui:482 msgid "Support" msgstr "Atbalsts" #: data/mat.ui:508 msgid "Method" msgstr "Metode" #: data/mat.ui:521 msgid "Remaining" msgstr "Atlicis" #: data/mat.ui:556 msgid "Fileformat" msgstr "Datnes formāts" mat-0.4.2/po/mat-gui.pot000066400000000000000000000061321223433004300147770ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-07-18 09:35+0000\n" "Last-Translator: runasand \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: en\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Ready" #: mat-gui:134 msgid "Choose files" msgstr "Choose files" #: mat-gui:141 msgid "All files" msgstr "All files" #: mat-gui:148 msgid "Supported files" msgstr "Supported files" #: mat-gui:164 msgid "No metadata found" msgstr "No metadata found" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Clean" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Dirty" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%s's metadata" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Trash your meta, keep your data" #: mat-gui:188 msgid "Website" msgstr "Website" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Preferences" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Reduce PDF quality" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Reduce the produced PDF size and quality" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Add unsupported file to archives" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Add non-supported (and so non-anonymised) file to output archive" #: mat-gui:283 msgid "Unknown" msgstr "Unknown" #: mat-gui:330 msgid "Not-supported" msgstr "Not-supported" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Unknown mimetype" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Filename" #: mat-gui:356 msgid "Mimetype" msgstr "Mimetype" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Checking %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Cleaning %s" #: data/mat.ui:63 msgid "_File" msgstr "_File" #: data/mat.ui:99 msgid "_Edit" msgstr "_Edit" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Clear" #: data/mat.ui:134 msgid "_Process" msgstr "_Process" #: data/mat.ui:168 msgid "_Help" msgstr "_Help" #: data/mat.ui:214 msgid "Add" msgstr "Add" #: data/mat.ui:240 msgid "Check" msgstr "Check" #: data/mat.ui:308 msgid "State" msgstr "State" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metadata" #: data/mat.ui:400 msgid "Name" msgstr "Name" #: data/mat.ui:414 msgid "Content" msgstr "Content" #: data/mat.ui:448 msgid "Supported formats" msgstr "Supported formats" #: data/mat.ui:482 msgid "Support" msgstr "Support" #: data/mat.ui:508 msgid "Method" msgstr "Method" #: data/mat.ui:521 msgid "Remaining" msgstr "Remaining" #: data/mat.ui:556 msgid "Fileformat" msgstr "Fileformat" mat-0.4.2/po/nb.po000066400000000000000000000066471223433004300136620ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # lateralus, 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-01-05 20:03+0100\n" "PO-Revision-Date: 2013-06-24 22:52+0000\n" "Last-Translator: lateralus\n" "Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/torproject/language/nb/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: mat-gui:95 mat-gui:563 mat-gui:579 msgid "Ready" msgstr "Klar" #: mat-gui:107 msgid "Add" msgstr "Legg til" #: mat-gui:109 mat-gui:183 msgid "Add files" msgstr "Legg til filer" #: mat-gui:113 mat-gui:203 mat-gui:308 mat-gui:311 mat-gui:555 mat-gui:557 #: mat-gui:573 mat-gui:575 msgid "Clean" msgstr "Rens" #: mat-gui:115 msgid "Clean selected files" msgstr "Rens valgte filer" #: mat-gui:119 mat-gui:214 msgid "Check" msgstr "Sjekk" #: mat-gui:121 msgid "Check selected files for harmful meta" msgstr "Sjekk valgte filer for skadelig meta" #: mat-gui:125 mat-gui:185 msgid "Quit" msgstr "Avslutt" #: mat-gui:137 msgid "Path" msgstr "Rute" #: mat-gui:137 mat-gui:363 msgid "Filename" msgstr "Filnavn" #: mat-gui:137 mat-gui:365 msgid "Mimetype" msgstr "Mimetype" #: mat-gui:137 msgid "State" msgstr "Tilstand" #: mat-gui:138 msgid "Cleaned file" msgstr "Renset fil" #: mat-gui:182 msgid "Files" msgstr "Filer" #: mat-gui:188 msgid "Edit" msgstr "Endre" #: mat-gui:189 msgid "Clear the filelist" msgstr "Nullstill fillisten" #: mat-gui:192 mat-gui:447 msgid "Preferences" msgstr "Innstillinger" #: mat-gui:195 msgid "Process" msgstr "Prosess" #: mat-gui:218 msgid "Help" msgstr "Hjelp" #: mat-gui:219 mat-gui:395 msgid "Supported formats" msgstr "Støttede format" #: mat-gui:220 msgid "About" msgstr "Om" #: mat-gui:241 msgid "Choose files" msgstr "Velg filer" #: mat-gui:248 msgid "All files" msgstr "Alle filer" #: mat-gui:255 msgid "Supported files" msgstr "Støttede filer" #: mat-gui:297 msgid "unknow" msgstr "glem" #: mat-gui:313 mat-gui:559 msgid "Dirty" msgstr "Ikke ren" #: mat-gui:343 msgid "Not-supported" msgstr "Ikke-støttet" #: mat-gui:381 msgid "This software was coded during the GSoC 2011" msgstr "Dette programmet ble kodet i løpet av GSoC 2011" #: mat-gui:386 msgid "Website" msgstr "Nettside" #: mat-gui:461 msgid "Force Clean" msgstr "Tvungen Rens" #: mat-gui:464 msgid "Do not check if already clean before cleaning" msgstr "Ikke sjekk hvis den allerede er ren før rens" #: mat-gui:468 msgid "Backup" msgstr "Sikkerhetskopi" #: mat-gui:471 msgid "Keep a backup copy" msgstr "Behold en sikkerhetskopi" #: mat-gui:474 msgid "Reduce PDF quality" msgstr "Reduser PDF kvalitet" #: mat-gui:477 msgid "Reduce the produced PDF size and quality" msgstr "Reduser den produserte PDFens størrelse og kvalitet" #: mat-gui:480 msgid "Add unsupported file to archives" msgstr "Legg til ikke-støttet fil til arkivene" #: mat-gui:484 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Legg til ikke-støttet (og derfor ikke anonymisert) fil til outputarkiv" #: mat-gui:554 #, python-format msgid "Checking %s..." msgstr "Sjekker %s..." #: mat-gui:572 #, python-format msgid "Cleaning %s..." msgstr "Renser %s..." mat-0.4.2/po/nl.po000066400000000000000000000065631223433004300136710ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Shondoit Walker , 2013 # Jesper Kollaard , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-09-11 19:40+0000\n" "Last-Translator: Jesper Kollaard \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/torproject/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Klaar" #: mat-gui:134 msgid "Choose files" msgstr "Kies bestanden" #: mat-gui:141 msgid "All files" msgstr "Alle bestanden" #: mat-gui:148 msgid "Supported files" msgstr "Ondersteunde bestanden" #: mat-gui:164 msgid "No metadata found" msgstr "Geen metadata gevonden" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Maak schoon" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Vuil" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%s's metadata" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Gooi je meta weg, houd je data" #: mat-gui:188 msgid "Website" msgstr "Website" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Voorkeuren" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Verminder PDF kwaliteit" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Verminder de gemaakte PDF grootte en kwaliteit" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Voeg niet-ondersteunde bestanden aan archieven toe" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Voeg niet-ondersteunde (en dus niet-geanonimiseerde) bestanden aan archief toe" #: mat-gui:283 msgid "Unknown" msgstr "Onbekend" #: mat-gui:330 msgid "Not-supported" msgstr "Niet ondersteund" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Onbekende mimetype" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Bestandsnaam" #: mat-gui:356 msgid "Mimetype" msgstr "MIME-type" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Bezig met %s controleren..." #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Bezig met %s opschonen..." #: data/mat.ui:63 msgid "_File" msgstr "_Bestand" #: data/mat.ui:99 msgid "_Edit" msgstr "_Bewerken" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Wissen" #: data/mat.ui:134 msgid "_Process" msgstr "_Proces" #: data/mat.ui:168 msgid "_Help" msgstr "_Help" #: data/mat.ui:214 msgid "Add" msgstr "Voeg toe" #: data/mat.ui:240 msgid "Check" msgstr "Controleer" #: data/mat.ui:308 msgid "State" msgstr "Staat" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metadata" #: data/mat.ui:400 msgid "Name" msgstr "Naam" #: data/mat.ui:414 msgid "Content" msgstr "Inhoud" #: data/mat.ui:448 msgid "Supported formats" msgstr "Ondersteunde formaten" #: data/mat.ui:482 msgid "Support" msgstr "Ondersteuning" #: data/mat.ui:508 msgid "Method" msgstr "Methode" #: data/mat.ui:521 msgid "Remaining" msgstr "Overgebleven" #: data/mat.ui:556 msgid "Fileformat" msgstr "Bestandsformaat" mat-0.4.2/po/pl.po000066400000000000000000000072701223433004300136670ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # yodaa , 2013 # bogdrozd , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-01-05 20:03+0100\n" "PO-Revision-Date: 2013-06-24 22:53+0000\n" "Last-Translator: yodaa \n" "Language-Team: Polish (http://www.transifex.com/projects/p/torproject/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: mat-gui:95 mat-gui:563 mat-gui:579 msgid "Ready" msgstr "Gotowy" #: mat-gui:107 msgid "Add" msgstr "Dodaj" #: mat-gui:109 mat-gui:183 msgid "Add files" msgstr "Dodaj pliki" #: mat-gui:113 mat-gui:203 mat-gui:308 mat-gui:311 mat-gui:555 mat-gui:557 #: mat-gui:573 mat-gui:575 msgid "Clean" msgstr "Wyczyść" #: mat-gui:115 msgid "Clean selected files" msgstr "Wyczyść wybrane pliki" #: mat-gui:119 mat-gui:214 msgid "Check" msgstr "Sprawdź" #: mat-gui:121 msgid "Check selected files for harmful meta" msgstr "Sprawdź wybrane pliki pod kątem szkodliwych metadanych" #: mat-gui:125 mat-gui:185 msgid "Quit" msgstr "Wyjście" #: mat-gui:137 msgid "Path" msgstr "Ścieżka" #: mat-gui:137 mat-gui:363 msgid "Filename" msgstr "Nazwa pliku" #: mat-gui:137 mat-gui:365 msgid "Mimetype" msgstr "Typ mime" #: mat-gui:137 msgid "State" msgstr "Stan" #: mat-gui:138 msgid "Cleaned file" msgstr "Wyczyszczony plik" #: mat-gui:182 msgid "Files" msgstr "Pliki" #: mat-gui:188 msgid "Edit" msgstr "Edycja" #: mat-gui:189 msgid "Clear the filelist" msgstr "Wyczyść listę plików" #: mat-gui:192 mat-gui:447 msgid "Preferences" msgstr "Preferencje" #: mat-gui:195 msgid "Process" msgstr "Przetwarzanie" #: mat-gui:218 msgid "Help" msgstr "Pomoc" #: mat-gui:219 mat-gui:395 msgid "Supported formats" msgstr "Obsługiwane formaty" #: mat-gui:220 msgid "About" msgstr "O programie" #: mat-gui:241 msgid "Choose files" msgstr "Wybierz pliki" #: mat-gui:248 msgid "All files" msgstr "Wszystkie pliki" #: mat-gui:255 msgid "Supported files" msgstr "Obsługiwane pliki" #: mat-gui:297 msgid "unknow" msgstr "nieznany" #: mat-gui:313 mat-gui:559 msgid "Dirty" msgstr "Nieoczyszczony" #: mat-gui:343 msgid "Not-supported" msgstr "Nieobsługiwany" #: mat-gui:381 msgid "This software was coded during the GSoC 2011" msgstr "To oprogramowanie zostało wytworzone w ramach GSoC 2011" #: mat-gui:386 msgid "Website" msgstr "Strona domowa" #: mat-gui:461 msgid "Force Clean" msgstr "Wymuś wyczyszczenie" #: mat-gui:464 msgid "Do not check if already clean before cleaning" msgstr "Nie sprawdzaj, czy już został wyczyszczony przed czyszczeniem" #: mat-gui:468 msgid "Backup" msgstr "Kopia zapasowa" #: mat-gui:471 msgid "Keep a backup copy" msgstr "Zachowaj kopię zapasową" #: mat-gui:474 msgid "Reduce PDF quality" msgstr "Zmniejsz jakość PDF" #: mat-gui:477 msgid "Reduce the produced PDF size and quality" msgstr "Zmniejsz rozmiar i jakość wyprodukowanego pliku PDF" #: mat-gui:480 msgid "Add unsupported file to archives" msgstr "Dodaj nieobsługiwane pliki do archiwów" #: mat-gui:484 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Dodaj nieobsługiwany (a więc niezanonimizowany) plik do archiwum wyjściowego" #: mat-gui:554 #, python-format msgid "Checking %s..." msgstr "Sprawdzanie %s..." #: mat-gui:572 #, python-format msgid "Cleaning %s..." msgstr "Czyszczenie %s..." mat-0.4.2/po/pt_BR.po000066400000000000000000000066221223433004300142620ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Communia , 2013 # eduardolvt, 2013 # marcosof , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-10-05 15:40+0000\n" "Last-Translator: Communia \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/torproject/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Pronto" #: mat-gui:134 msgid "Choose files" msgstr "Escolher arquivos" #: mat-gui:141 msgid "All files" msgstr "Todos os arquivos" #: mat-gui:148 msgid "Supported files" msgstr "Arquivos suportados" #: mat-gui:164 msgid "No metadata found" msgstr "Nenhum metadado encontrado" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Limpar" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Erro" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "Metadado de %s" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Descarte seu meta, mantenha seus dados" #: mat-gui:188 msgid "Website" msgstr "Website" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Preferências" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Reduzir a qualidade do PDF" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Reduzir o tamanho e a qualidade do PDF produzido" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Adicionar arquivo não suportado aos arquivos" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Adicionar arquivo não suportado (e não anônimo) para o arquivo de saída" #: mat-gui:283 msgid "Unknown" msgstr "Desconhecido" #: mat-gui:330 msgid "Not-supported" msgstr "Não suportado" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Mimetype desconhecido" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Nome do arquivo" #: mat-gui:356 msgid "Mimetype" msgstr "Tipo MIME" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Verificando %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Limpando %s" #: data/mat.ui:63 msgid "_File" msgstr "Arquivo - _F" #: data/mat.ui:99 msgid "_Edit" msgstr "_Editar" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Limpar" #: data/mat.ui:134 msgid "_Process" msgstr "_Processo" #: data/mat.ui:168 msgid "_Help" msgstr "Ajuda - _H" #: data/mat.ui:214 msgid "Add" msgstr "Adicionar" #: data/mat.ui:240 msgid "Check" msgstr "Verificar" #: data/mat.ui:308 msgid "State" msgstr "Estado" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metadado" #: data/mat.ui:400 msgid "Name" msgstr "Nome" #: data/mat.ui:414 msgid "Content" msgstr "Conteúdo" #: data/mat.ui:448 msgid "Supported formats" msgstr "Formatos suportados" #: data/mat.ui:482 msgid "Support" msgstr "Assistência" #: data/mat.ui:508 msgid "Method" msgstr "Método" #: data/mat.ui:521 msgid "Remaining" msgstr "Restante" #: data/mat.ui:556 msgid "Fileformat" msgstr "Formato de arquivo" mat-0.4.2/po/ru.po000066400000000000000000000103001223433004300136660ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Arioko , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-01-05 20:03+0100\n" "PO-Revision-Date: 2013-06-24 22:52+0000\n" "Last-Translator: Arioko \n" "Language-Team: Russian (http://www.transifex.com/projects/p/torproject/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: mat-gui:95 mat-gui:563 mat-gui:579 msgid "Ready" msgstr "Готов" #: mat-gui:107 msgid "Add" msgstr "Добавить" #: mat-gui:109 mat-gui:183 msgid "Add files" msgstr "Добавить файлы" #: mat-gui:113 mat-gui:203 mat-gui:308 mat-gui:311 mat-gui:555 mat-gui:557 #: mat-gui:573 mat-gui:575 msgid "Clean" msgstr "Очистить" #: mat-gui:115 msgid "Clean selected files" msgstr "Очистить выбранные файлы" #: mat-gui:119 mat-gui:214 msgid "Check" msgstr "Проверить" #: mat-gui:121 msgid "Check selected files for harmful meta" msgstr "Проверить выбранные файлы на наличие вредных мета" #: mat-gui:125 mat-gui:185 msgid "Quit" msgstr "Выйти" #: mat-gui:137 msgid "Path" msgstr "Путь" #: mat-gui:137 mat-gui:363 msgid "Filename" msgstr "Имя файла" #: mat-gui:137 mat-gui:365 msgid "Mimetype" msgstr "Mime тип" #: mat-gui:137 msgid "State" msgstr "Состояние" #: mat-gui:138 msgid "Cleaned file" msgstr "Очищенный файл" #: mat-gui:182 msgid "Files" msgstr "Файлы" #: mat-gui:188 msgid "Edit" msgstr "Редактировать" #: mat-gui:189 msgid "Clear the filelist" msgstr "Очистить список файлов" #: mat-gui:192 mat-gui:447 msgid "Preferences" msgstr "Настройки" #: mat-gui:195 msgid "Process" msgstr "Процесс" #: mat-gui:218 msgid "Help" msgstr "Помощ" #: mat-gui:219 mat-gui:395 msgid "Supported formats" msgstr "Поддерживаемые форматы" #: mat-gui:220 msgid "About" msgstr "О.." #: mat-gui:241 msgid "Choose files" msgstr "Выбрать файлы" #: mat-gui:248 msgid "All files" msgstr "Все файлы" #: mat-gui:255 msgid "Supported files" msgstr "Поддерживаемые файлы" #: mat-gui:297 msgid "unknow" msgstr "неизвестно" #: mat-gui:313 mat-gui:559 msgid "Dirty" msgstr "Грязный" #: mat-gui:343 msgid "Not-supported" msgstr "Не поддерживаемый" #: mat-gui:381 msgid "This software was coded during the GSoC 2011" msgstr "Эта программа была закодирована в Google Summer of Code 2011" #: mat-gui:386 msgid "Website" msgstr "Вебсайт" #: mat-gui:461 msgid "Force Clean" msgstr "Форсированная очистка" #: mat-gui:464 msgid "Do not check if already clean before cleaning" msgstr "Не проверять, если уже чистый перед очисткой" #: mat-gui:468 msgid "Backup" msgstr "Резервное копирование" #: mat-gui:471 msgid "Keep a backup copy" msgstr "Хранить резервную копию" #: mat-gui:474 msgid "Reduce PDF quality" msgstr "Уменьшить PDF качество" #: mat-gui:477 msgid "Reduce the produced PDF size and quality" msgstr "Сокращение размера и качества сделанного PDF" #: mat-gui:480 msgid "Add unsupported file to archives" msgstr "Добавить не поддерживаемый файл в архив" #: mat-gui:484 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Добавить не поддерживаемый (и поэтому не-анонимный) файл в выходной архив" #: mat-gui:554 #, python-format msgid "Checking %s..." msgstr "Проверка %s..." #: mat-gui:572 #, python-format msgid "Cleaning %s..." msgstr "Очистка %s..." mat-0.4.2/po/si_LK.po000066400000000000000000000113471223433004300142550ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # ganeshwaki , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-01-05 20:03+0100\n" "PO-Revision-Date: 2013-06-24 22:52+0000\n" "Last-Translator: ganeshwaki \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/torproject/language/si_LK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: si_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: mat-gui:95 mat-gui:563 mat-gui:579 msgid "Ready" msgstr "සුදානම්" #: mat-gui:107 msgid "Add" msgstr "එකතු කරන්න" #: mat-gui:109 mat-gui:183 msgid "Add files" msgstr "ගොනු එකතු කරන්න" #: mat-gui:113 mat-gui:203 mat-gui:308 mat-gui:311 mat-gui:555 mat-gui:557 #: mat-gui:573 mat-gui:575 msgid "Clean" msgstr "අයින් කරන්න" #: mat-gui:115 msgid "Clean selected files" msgstr "තෝරාගත් ගොනු අයින් කරන්න" #: mat-gui:119 mat-gui:214 msgid "Check" msgstr "පරීක්ෂා කරන්න" #: mat-gui:121 msgid "Check selected files for harmful meta" msgstr "අහිතකර මෙටා සදහා තෝරාගත් ගොනු පරීක්ෂා කරන්න" #: mat-gui:125 mat-gui:185 msgid "Quit" msgstr "ඉවත් වෙන්න" #: mat-gui:137 msgid "Path" msgstr "මාර්ගය" #: mat-gui:137 mat-gui:363 msgid "Filename" msgstr "ගොනු නම" #: mat-gui:137 mat-gui:365 msgid "Mimetype" msgstr "අනුකාර වර්ගය" #: mat-gui:137 msgid "State" msgstr "තත්ත්වය" #: mat-gui:138 msgid "Cleaned file" msgstr "ඉවත්කරන ලද ගොනු" #: mat-gui:182 msgid "Files" msgstr "ගොනු" #: mat-gui:188 msgid "Edit" msgstr "සංස්කරණය කරන්න" #: mat-gui:189 msgid "Clear the filelist" msgstr "ගොනු ලැයිස්තුව අයින් කරන්න " #: mat-gui:192 mat-gui:447 msgid "Preferences" msgstr "මනාපය" #: mat-gui:195 msgid "Process" msgstr "ක්‍රියාවලිය" #: mat-gui:218 msgid "Help" msgstr "උදව්" #: mat-gui:219 mat-gui:395 msgid "Supported formats" msgstr "ආධාරක ආකෘති" #: mat-gui:220 msgid "About" msgstr "පිළිබද" #: mat-gui:241 msgid "Choose files" msgstr "තෝරාගත් ගොනු" #: mat-gui:248 msgid "All files" msgstr "සියලුම ගොනු" #: mat-gui:255 msgid "Supported files" msgstr "ආධාරක ගොනු" #: mat-gui:297 msgid "unknow" msgstr "නොදත්" #: mat-gui:313 mat-gui:559 msgid "Dirty" msgstr "අපිරිසිදු " #: mat-gui:343 msgid "Not-supported" msgstr "ආධාරක නොවෙන" #: mat-gui:381 msgid "This software was coded during the GSoC 2011" msgstr "මෙම මෘදුකාංගය GSoC 2011 කාලසීමාවේ කේතනය කරන ලදී" #: mat-gui:386 msgid "Website" msgstr "වෙබ්අඩවිය " #: mat-gui:461 msgid "Force Clean" msgstr "බලෙන් අයින් කරන්න" #: mat-gui:464 msgid "Do not check if already clean before cleaning" msgstr "අයින් කිරීමට පෙර දැනටමත් අයින් කර ඇත්දැයි පරීක්ෂා නොකරන්න " #: mat-gui:468 msgid "Backup" msgstr "උපස්ථය" #: mat-gui:471 msgid "Keep a backup copy" msgstr "උපස්ථ පිටපතක් තබා ගන්න " #: mat-gui:474 msgid "Reduce PDF quality" msgstr "PDF ගුණාත්මක භාවය අඩු කරන්න " #: mat-gui:477 msgid "Reduce the produced PDF size and quality" msgstr "සාදන ලද PDF හි විශාලත්වය සහ ගුණාත්මක භාවය අඩු කරන්න" #: mat-gui:480 msgid "Add unsupported file to archives" msgstr "ආධාරක නොවෙන ගොනු අධිලේඛිත ගොනු වශයෙන් එකතු කරන්න " #: mat-gui:484 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "ආධාරක නොවෙන(සහ නිර්ණාමික නොවන) ගොනු අධිලේඛිත නිමවුමට එකතු කරන්න " #: mat-gui:554 #, python-format msgid "Checking %s..." msgstr "පරීක්ෂා කරමින් %s..." #: mat-gui:572 #, python-format msgid "Cleaning %s..." msgstr "අයින් කරමින් %s... " mat-0.4.2/po/sk.po000066400000000000000000000064461223433004300136750ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # BudGet , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-08-09 23:50+0000\n" "Last-Translator: BudGet \n" "Language-Team: Slovak (http://www.transifex.com/projects/p/torproject/language/sk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sk\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Pripravený" #: mat-gui:134 msgid "Choose files" msgstr "Zvoľ súbory" #: mat-gui:141 msgid "All files" msgstr "Všetky súbory" #: mat-gui:148 msgid "Supported files" msgstr "Podporované súbory" #: mat-gui:164 msgid "No metadata found" msgstr "Žiadne metadáta nenájdené" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Vyčistiť" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Špinavý" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%s's metadáta" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Vyhoď meta, ponechaj dáta" #: mat-gui:188 msgid "Website" msgstr "Stránka" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Predvoľby" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Znížiť kvalitu PDF" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Zredukovať veľkosť a kvalitu PDF" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Vložiť nepodporovaný súbor do archívov" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Vlož nepodporovaný (a tiež ne-anonymizovaný) súbor do výstupného archívu" #: mat-gui:283 msgid "Unknown" msgstr "Neznáme" #: mat-gui:330 msgid "Not-supported" msgstr "Nepodporované" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Neznámy typ súboru" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Názov súboru" #: mat-gui:356 msgid "Mimetype" msgstr "Typ súboru" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Kontrolujem %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Čistím %s" #: data/mat.ui:63 msgid "_File" msgstr "_File" #: data/mat.ui:99 msgid "_Edit" msgstr "_Edit" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Vymazať" #: data/mat.ui:134 msgid "_Process" msgstr "_Process" #: data/mat.ui:168 msgid "_Help" msgstr "_Help" #: data/mat.ui:214 msgid "Add" msgstr "Pridať" #: data/mat.ui:240 msgid "Check" msgstr "Skontrolovať" #: data/mat.ui:308 msgid "State" msgstr "Stav" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metadáta" #: data/mat.ui:400 msgid "Name" msgstr "Meno" #: data/mat.ui:414 msgid "Content" msgstr "Obsah" #: data/mat.ui:448 msgid "Supported formats" msgstr "Podporované formáty" #: data/mat.ui:482 msgid "Support" msgstr "Podpora" #: data/mat.ui:508 msgid "Method" msgstr "Metóda" #: data/mat.ui:521 msgid "Remaining" msgstr "Zostáva" #: data/mat.ui:556 msgid "Fileformat" msgstr "Formát súboru" mat-0.4.2/po/sl.po000066400000000000000000000065141223433004300136720ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # ajitam , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-09-19 11:30+0000\n" "Last-Translator: ajitam \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/torproject/language/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Pripravljen" #: mat-gui:134 msgid "Choose files" msgstr "Izberi datoteko" #: mat-gui:141 msgid "All files" msgstr "Vse datoteke" #: mat-gui:148 msgid "Supported files" msgstr "Podprte datoteke" #: mat-gui:164 msgid "No metadata found" msgstr "Ni najdenih metapodatkov" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Počisti" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Umazano" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "metapodatki od %s" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Počisti vaše sledi, vaše ohrani podatke" #: mat-gui:188 msgid "Website" msgstr "Spletna stran" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Možnosti" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Zmanjšaj PDF kakovost" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Zmanjšaj velikost in kakovost že izdelane PDF datoteke" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Dodaj nepodprto datoteko v arhiv" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Dodaj nepodprto (in zato neanonimizirano) datoteko v izhodni arhiv" #: mat-gui:283 msgid "Unknown" msgstr "Neznan" #: mat-gui:330 msgid "Not-supported" msgstr "Nepodprta" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Neznana MIME vrsta" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Ime datoteke" #: mat-gui:356 msgid "Mimetype" msgstr "MIME vrsta" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Preverjanje %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Čiščenje %s" #: data/mat.ui:63 msgid "_File" msgstr "_Datoteka" #: data/mat.ui:99 msgid "_Edit" msgstr "_Uredi" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Počisti" #: data/mat.ui:134 msgid "_Process" msgstr "_Proces" #: data/mat.ui:168 msgid "_Help" msgstr "_Pomoč" #: data/mat.ui:214 msgid "Add" msgstr "Dodaj" #: data/mat.ui:240 msgid "Check" msgstr "Preveri" #: data/mat.ui:308 msgid "State" msgstr "Stanje" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metapodatki" #: data/mat.ui:400 msgid "Name" msgstr "Ime" #: data/mat.ui:414 msgid "Content" msgstr "Vsebina" #: data/mat.ui:448 msgid "Supported formats" msgstr "Podprti vrste datotek" #: data/mat.ui:482 msgid "Support" msgstr "Podpora" #: data/mat.ui:508 msgid "Method" msgstr "Metoda" #: data/mat.ui:521 msgid "Remaining" msgstr "Preostalo" #: data/mat.ui:556 msgid "Fileformat" msgstr "Vrsta datoteke" mat-0.4.2/po/sv.po000066400000000000000000000064561223433004300137110ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Dan West , 2013 # Jimjgr, 2013 # WinterFairy , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-09-30 12:09+0000\n" "Last-Translator: WinterFairy \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/torproject/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Redo" #: mat-gui:134 msgid "Choose files" msgstr "Välj filer" #: mat-gui:141 msgid "All files" msgstr "Alla filer" #: mat-gui:148 msgid "Supported files" msgstr "Stöd för filer" #: mat-gui:164 msgid "No metadata found" msgstr "Ingen metadata hittades" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Städa" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Smutsig" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%ss metadata" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Kassera din meta, behåll din data" #: mat-gui:188 msgid "Website" msgstr "Webbsida" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Inställningar" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "Förminska PDF kvalitet" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Förminska den producerade PDF storleken och kvaliteten" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Lägg till ej stötta filer till arkivet" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Lägg till fil utan stöd (det vill säga ej anonymiserad) till arkivet" #: mat-gui:283 msgid "Unknown" msgstr "Okänd" #: mat-gui:330 msgid "Not-supported" msgstr "Icke-stödda" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Okänd filtyp" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Filnamn" #: mat-gui:356 msgid "Mimetype" msgstr "Filtyp" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "Kontrollerar %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "Städar %s" #: data/mat.ui:63 msgid "_File" msgstr "_Arkiv" #: data/mat.ui:99 msgid "_Edit" msgstr "_Redigera" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Rensa" #: data/mat.ui:134 msgid "_Process" msgstr "_Behandla" #: data/mat.ui:168 msgid "_Help" msgstr "_Hjälp" #: data/mat.ui:214 msgid "Add" msgstr "Lägg till" #: data/mat.ui:240 msgid "Check" msgstr "Kontrollera" #: data/mat.ui:308 msgid "State" msgstr "Tillstånd" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metadata" #: data/mat.ui:400 msgid "Name" msgstr "Namn" #: data/mat.ui:414 msgid "Content" msgstr "Innehåll" #: data/mat.ui:448 msgid "Supported formats" msgstr "Stöd för format" #: data/mat.ui:482 msgid "Support" msgstr "Stöd" #: data/mat.ui:508 msgid "Method" msgstr "Metod" #: data/mat.ui:521 msgid "Remaining" msgstr "Återstår" #: data/mat.ui:556 msgid "Fileformat" msgstr "Filformat" mat-0.4.2/po/th.po000066400000000000000000000077621223433004300136750ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # bact' ☂ , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-09-17 13:05+0000\n" "Last-Translator: bact' ☂ \n" "Language-Team: Thai (http://www.transifex.com/projects/p/torproject/language/th/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: th\n" "Plural-Forms: nplurals=1; plural=0;\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "พร้อม" #: mat-gui:134 msgid "Choose files" msgstr "เลือกแฟ้ม" #: mat-gui:141 msgid "All files" msgstr "ทุกแฟ้ม" #: mat-gui:148 msgid "Supported files" msgstr "แฟ้มที่รองรับ" #: mat-gui:164 msgid "No metadata found" msgstr "ไม่พบเมทาดาทา" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "สะอาด" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "สกปรก" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "เมทาดาทาของ %s" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "ทิ้งเมทาดาทา เก็บไว้เฉพาะข้อมูล" #: mat-gui:188 msgid "Website" msgstr "เว็บไซต์" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "ปรับแต่ง" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "ลดคุณภาพ PDF" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "ลดขนาดและคุณภาพของ PDF ที่สร้าง" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "เพิ่มแฟ้มที่ไม่รองรับลงคลังแฟ้ม" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "เพิ่มแฟ้มที่ไม่รองรับ (และดังนั้นจึงไม่ได้ปิดชื่อ) ลงไปในคลังเก็บเอาต์พุต" #: mat-gui:283 msgid "Unknown" msgstr "ไม่ทราบ" #: mat-gui:330 msgid "Not-supported" msgstr "ไม่รองรับ" #: mat-gui:347 msgid "Unknown mimetype" msgstr "ชนิด mime ที่ไม่รู้จัก" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "ชื่อแฟ้ม" #: mat-gui:356 msgid "Mimetype" msgstr "ชนิด mime" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "กำลังตรวจสอบ %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "กำลังล้าง %s" #: data/mat.ui:63 msgid "_File" msgstr "แ_ฟ้ม" #: data/mat.ui:99 msgid "_Edit" msgstr "แ_ก้ไข" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "ล้างทิ้ง" #: data/mat.ui:134 msgid "_Process" msgstr "_ลงมือ" #: data/mat.ui:168 msgid "_Help" msgstr "_ช่วยเหลือ" #: data/mat.ui:214 msgid "Add" msgstr "เพิ่ม" #: data/mat.ui:240 msgid "Check" msgstr "ตรวจสอบ" #: data/mat.ui:308 msgid "State" msgstr "สถานะ" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "เมทาดาทา" #: data/mat.ui:400 msgid "Name" msgstr "ชื่อ" #: data/mat.ui:414 msgid "Content" msgstr "เนื้อหา" #: data/mat.ui:448 msgid "Supported formats" msgstr "รูปแบบที่รองรับ" #: data/mat.ui:482 msgid "Support" msgstr "สนับสนุน" #: data/mat.ui:508 msgid "Method" msgstr "วิธี" #: data/mat.ui:521 msgid "Remaining" msgstr "เหลืออยู่" #: data/mat.ui:556 msgid "Fileformat" msgstr "รูปแบบแฟ้ม" mat-0.4.2/po/tr.po000066400000000000000000000064361223433004300137040ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # yozel , 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-07-25 09:22+0000\n" "Last-Translator: yozel \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/torproject/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: tr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "Hazır" #: mat-gui:134 msgid "Choose files" msgstr "Dosya seç" #: mat-gui:141 msgid "All files" msgstr "Tüm dosyalar" #: mat-gui:148 msgid "Supported files" msgstr "Desteklenen dosyalar" #: mat-gui:164 msgid "No metadata found" msgstr "Metadata bulunamadı" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "Temizle" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "Kirli" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%s'in metadatası" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "Metayı çöpe at, bilgileri sakla" #: mat-gui:188 msgid "Website" msgstr "Websitesi" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "Seçenekler" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "PDF kalitesini düşür" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "Üretilen PDF dosyasının boyutunu ve kalitesini düşür" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "Desteklenmeyen dosyaları arşive ekle" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "Desteklenmeyen (ve anonimleştirilmeiş) dosyaları çıkış arşivine ekle" #: mat-gui:283 msgid "Unknown" msgstr "Bilinmeyen" #: mat-gui:330 msgid "Not-supported" msgstr "Desteklenmiyor" #: mat-gui:347 msgid "Unknown mimetype" msgstr "Bilinmeyen mimetype" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "Dosya Adı" #: mat-gui:356 msgid "Mimetype" msgstr "Mimetype" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "%s kontrol ediliyor" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "%s temizleniyor" #: data/mat.ui:63 msgid "_File" msgstr "_Dosya" #: data/mat.ui:99 msgid "_Edit" msgstr "_Düzenle" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "Temizle" #: data/mat.ui:134 msgid "_Process" msgstr "_İşlem" #: data/mat.ui:168 msgid "_Help" msgstr "_Yardım" #: data/mat.ui:214 msgid "Add" msgstr "Ekle" #: data/mat.ui:240 msgid "Check" msgstr "Kontrol Et" #: data/mat.ui:308 msgid "State" msgstr "Durum" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "Metadata" #: data/mat.ui:400 msgid "Name" msgstr "İsim" #: data/mat.ui:414 msgid "Content" msgstr "İçerik" #: data/mat.ui:448 msgid "Supported formats" msgstr "Desteklenen formatlar" #: data/mat.ui:482 msgid "Support" msgstr "Destek" #: data/mat.ui:508 msgid "Method" msgstr "Yöntem" #: data/mat.ui:521 msgid "Remaining" msgstr "Kalan" #: data/mat.ui:556 msgid "Fileformat" msgstr "Dosya formatı" mat-0.4.2/po/zh_CN.po000066400000000000000000000062371223433004300142570ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # simabull tsai, 2013 msgid "" msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n" "POT-Creation-Date: 2013-07-01 19:26+0200\n" "PO-Revision-Date: 2013-09-17 13:05+0000\n" "Last-Translator: simabull tsai\n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/torproject/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: mat-gui:65 mat-gui:375 mat-gui:387 msgid "Ready" msgstr "准备" #: mat-gui:134 msgid "Choose files" msgstr "选择文件" #: mat-gui:141 msgid "All files" msgstr "全部文件" #: mat-gui:148 msgid "Supported files" msgstr "支持文件" #: mat-gui:164 msgid "No metadata found" msgstr "未找到元数据" #: mat-gui:165 mat-gui:370 mat-gui:385 data/mat.ui:227 msgid "Clean" msgstr "清除" #: mat-gui:167 mat-gui:372 msgid "Dirty" msgstr "更新" #: mat-gui:172 #, python-format msgid "%s's metadata" msgstr "%s 的元数据" #: mat-gui:183 msgid "Trash your meta, keep your data" msgstr "丢弃元标签,保留数据" #: mat-gui:188 msgid "Website" msgstr "网站" #: mat-gui:214 data/mat.ui:107 msgid "Preferences" msgstr "首选项" #: mat-gui:228 msgid "Reduce PDF quality" msgstr "降低 PDF 质量" #: mat-gui:231 msgid "Reduce the produced PDF size and quality" msgstr "降低生成 PDF 的大小和质量" #: mat-gui:234 msgid "Add unsupported file to archives" msgstr "将不支持的文件添加到存档" #: mat-gui:238 msgid "Add non-supported (and so non-anonymised) file to output archive" msgstr "将不支持(与非匿名化)的文件添加到输出存档" #: mat-gui:283 msgid "Unknown" msgstr "未知" #: mat-gui:330 msgid "Not-supported" msgstr "不支持" #: mat-gui:347 msgid "Unknown mimetype" msgstr "未知文档类型" #: mat-gui:354 data/mat.ui:291 msgid "Filename" msgstr "文件名" #: mat-gui:356 msgid "Mimetype" msgstr "文档类型" #: mat-gui:366 #, python-format msgid "Checking %s" msgstr "正在检查 %s" #: mat-gui:381 #, python-format msgid "Cleaning %s" msgstr "正在清除 %s" #: data/mat.ui:63 msgid "_File" msgstr "文件" #: data/mat.ui:99 msgid "_Edit" msgstr "编辑" #: data/mat.ui:118 data/mat.ui:253 msgid "Clear" msgstr "清空" #: data/mat.ui:134 msgid "_Process" msgstr "处理" #: data/mat.ui:168 msgid "_Help" msgstr "帮助" #: data/mat.ui:214 msgid "Add" msgstr "添加" #: data/mat.ui:240 msgid "Check" msgstr "检查" #: data/mat.ui:308 msgid "State" msgstr "状态" #: data/mat.ui:346 data/mat.ui:495 msgid "Metadata" msgstr "元数据" #: data/mat.ui:400 msgid "Name" msgstr "名字" #: data/mat.ui:414 msgid "Content" msgstr "内容" #: data/mat.ui:448 msgid "Supported formats" msgstr "支持格式" #: data/mat.ui:482 msgid "Support" msgstr "支持" #: data/mat.ui:508 msgid "Method" msgstr "方式" #: data/mat.ui:521 msgid "Remaining" msgstr "剩余" #: data/mat.ui:556 msgid "Fileformat" msgstr "文件格式" mat-0.4.2/release.sh000066400000000000000000000021231223433004300142420ustar00rootroot00000000000000#!/bin/sh # Release script for the MAT echo "Previous version: $(git describe --abbrev=0)" echo "Please enter the new version number" read VERSION echo '[+] Update version number' sed s/__version__\ =\ \'[0-9\.]*\'/__version__\ =\ \'${VERSION}\'/ MAT/mat.py # > mat.py sed s/__version__\ =\ \'[0-9\.]*\'/__version__\ =\ \'${VERSION}\'/ setup.py # > mat.py echo '[+] Update changelog' vim -O CHANGELOG <(git log --graph --pretty=format:'%h -%d %s (%cr) )<%an>' --abbrev-commit --date=relative) echo '[+] Commit the changelog' git commit CHANGELOG MAT/mat.py setup.py -m 'Update changelog and bump version' echo '[+] Create a tag' git tag -s ${VERSION} echo '[+] Push the tag' git push --tags origin echo '[+] Create the release archive' git archive --format=tar.gz --prefix=mat-${VERSION}/ ${VERSION} > mat-${VERSION}.tar.gz echo '[+] Sign the archive' gpg --armor --detach-sign mat-${VERSION}.tar.gz # Recall echo '[+] Release done' echo "[*] Don't forget to:" echo "\t- Upload archives to https://mat.boum.org/files" echo "\t- Add changelog to https://mat.boum.org/" echo "\t- Have a nice day" mat-0.4.2/setup.py000077500000000000000000000027071223433004300140130ustar00rootroot00000000000000#!/usr/bin/env python import os from distutils.core import setup from DistUtilsExtra.command import * __version__ = '0.4-rc' #Remove MANIFEST file, since distutils #doesn't properly update it when #the contents of directories changes. if os.path.exists('MANIFEST'): os.remove('MANIFEST') setup( name = 'MAT', version = __version__, description = 'Metadata Anonymisation Toolkit', long_description = 'A Metadata Anonymisation Toolkit in Python, using python-hachoir', author = 'jvoisin', author_email = 'julien.voisin@dustri.org', platforms = 'linux', license = 'GPLv2', url = 'https://mat.boum.org', packages = ['MAT', 'MAT.hachoir_editor', 'MAT.bencode'], scripts = ['mat', 'mat-gui'], data_files = [ ( 'share/applications', ['mat.desktop'] ), ( 'share/mat', ['data/FORMATS', 'data/mat.ui'] ), ( 'share/pixmaps', ['data/mat.png'] ), ( 'share/doc/mat', ['README', 'TODO', 'README.security'] ), ( 'share/man/man1', ['mat.1', 'mat-gui.1'] ), ( 'share/nautilus-python/extensions', ['nautilus/nautilus-mat.py']) ], cmdclass = { 'build': build_extra.build_extra, 'build_i18n': build_i18n.build_i18n, 'build_help': build_help.build_help, 'build_icons': build_icons.build_icons, 'clean': clean_i18n.clean_i18n, }, ) mat-0.4.2/test/000077500000000000000000000000001223433004300132475ustar00rootroot00000000000000mat-0.4.2/test/TODO/000077500000000000000000000000001223433004300140145ustar00rootroot00000000000000mat-0.4.2/test/TODO/clean.zip000066400000000000000000000133751223433004300156330ustar00rootroot00000000000000PKJ6?îXcfold1/sub1/dirty.jpgC    $.' ",#(7),01444'9=82<.342C  2!!2222222222222222222222222222222222222222222222222222"0!1AQ"q2aBb*!Q"1aA2R ?T,C.[NY)ɭU] Op{/"JTw4d΋n3( MYV Qcv7v~R=Eo"]5D%QU m`㊑[ \3شIP=~hVz!zn{d3>dfBt{?{RMō oe`K^^8-S:^!aHP*ljKXބhD-<(☔l62)4_mKu{UgH’99։iO$qa$axte!D7M7C *n@h((o~>T7pt. _Փ lN"BK q:s}E7N$Gǁ44b+-0`PGҹ8\815+Hhi A"6r-:9P֡V~;kz$pT8YY/ Hcz>K[DpH~"bmvEԝj6)=m1&Zޕ ISSjMqv,1͍67t jCEե QJJ"Ddg"4ym>֞ǜnFR^+ ZX .'nx)Șlb:]HR*>Jh;s ; rl8IlE;u[Kڔ’oMc~:om|*b3j̋i'ؐJ{UTHo^yQGK$_`E(侸GղhULuVQ_Laͨ("( PKJ6? [Yfold1/dirty.pngPNG  IHDR21mH pHYs[ EIDATXõYkPSW99$r("`D*j(ji NuJ:A;* ReP,( 2(*b0 @r9'Rk7s{?{!s810\.9Oc?0A5Bh7v !3 pﯫ@4MӴBĉЋἍ~$ ˜`00 3f̘ &L:fAPv0^tN J ׯ;88===Ǝ0 }M---NNNEMd}Ç on45^7 :} 'NzH_SSS]]NdMMluԩS}||ƍGt{{F1 $I&&&N<cL(oB`?Z \@ xmmmA&,[ŋ?H$2c<<i>0LCCCǣ ޽{7''!~z\ #B7o &I!CGGh؆Akhx޽{:$i4y<^xxĉ)x2ӧA 999͙3$I x 6M2E \~ԩS...?F2 SRR={v[[1E\+C*fff~l6zJ"444<<''͛/9sFӽx񢾾^ӵ%fpQPPpQ{{{O<1&:;;ǎK5޽{"a79[nJAAA>>>EX"!!ŋ7n J%%%* 88Ȏ >zիBpƌF#Bjñv%%% Ͽvr\.h4_eժUb855믿vrrś7o/,,VӧsB@C&r{{{srr'Ohfal2BCCCI&  xKdqq+Woݺra F DЧ~RTo޼AQE`ؿ͛Ү_rF#AӦMZpWtttmmmqqB˖- bϞ= ,x0qJJ^7MMM$IB.V0/Bh4$I#R)B<))`Ν*Û6m:rHvvv``+}||8NkkZӝ:uJ,d.+֮]s…]vܾ}YfYYYYXXB666s__B(...;;*22ǏOMM-,,?::U=~X ?^2 s={ 6pwibѣj:44tɒ%fƌ ̀@TUU͝;!h>ぁ16"LJ($f ArҲD lذh- 7o>yI$#Gȩ2==4'ivqqaAw eۼyի,,,F InZZ@Aϟ$"##Ew}7iҤpeA[YY5{ld._~2:0dFE(޺u+܎ Q~ah6g:[jUuu5{뭬D"L&[/4MKo;Jo;eee5<< BX71˗/坝<:B͚5ɓ˗//))ay}aX0aEQZ`͙3'..nÆ ]]]53Ab"MMMzc\[[ x0}ccchh($X$.]/!$Ne777[[[ɤhjuwwwoo7o>]vD߂%sedd@B655A_߿|ryyygg')8++h4֭NU*UDDo*xq 0ƃ Op >G#`.{I$l8FINN>sLEEExx8BzӧO Ftrr]f ':غuWXeggLf0rssg͚fo߿v".0,=>â?<00PT?3@@й~ì"PQJ-[B{i裏Z-Iك[8=ő&r A--->>>VZmuuueeN;v, GZ-f>sd2of̘qFB}WllTeֶxL8JJJ*.. B;X#6/////!Gdσ:;;u:Z? ׭[7<k8L&C:u;B]"h8+#zIV ___Bakkfmm߰nzf@G5[IENDB`PKJ6?îXcfold1/sub1/dirty.jpgPKJ6? [YPfold1/dirty.pngPKhmat-0.4.2/test/TODO/dirty.zip000066400000000000000000000144411223433004300156770ustar00rootroot00000000000000PK >fold1/UT "N,Nux PK > fold1/sub1/UT "N,Nux PK]>^0]fold1/sub1/dirty.jpgUT 5N,Nux {4y2f ffcre&pHaP SBSh6䖬ÐEI.S6e$rfٳy{r  Nr1d S3`@- H0`Ai3ݕ5w2Grx_֟m.`P(4 AX,FGT)**Dz:I$jD2463g0z6= VbqmJJw<Q ! !$ c*0$ F5G(hj,Hkh:phG aj7[A`3OFG:gI 6oxt;fJ u6DL=ӈi$2w|z+>͈(E-iW8gpF7|a:J S!{ AkuɶA]H+wHmC~dU^(f&;Rrt 5{ץpے(O]I䙲.SǜkSuz&/dn{(w=GA>vp=ks5uhd$]*RXpbR] {6,pXmIW7e4ث 389VwAef4s^Hv [sZߩt{_j}j]V~iEp&?Ih 7;`u#*xS'#[NllB2w鏹Sf041 Y.6߽3/SF?:=\ZƕMl%Tl&f5?L5RRNL%4ZR`IQ |Y;H(,ra>Ii+ڡDpiZ}ӧ.es9C,(o v2.Z <01AmWT)|5ȮJ҆aل7E;d3I )c˰z4˘ȫ3|^?]٦&xҸq4yhiM\Qp?X{0/ʳRltCbsɝܑ!K+B|{1(g lBãi}a~q8q z ߺ.^lxܸSP?]a[f{Db`J خ1ݹ'I vĺbl\ts2ւدDK5w[o2(" x3?G7r S&5I{d&XI9o32~HV0!-tiVwL[$zkx.Vͦ]fĊPK]>өqFfold1/dirty.pngUT 5N,Nux %<p8]8"+QB!]dH~V6ef#]Hg=q^kfH@ tYB5pv9^60]5ѲꬻjvشR &\  E>q)řs*ic$Ea2"bP't5iqxQaox2';eL=Hx[+AuW;%.CS T6ZBMzvDMUX'4bi}tuiI:*kLMKcG}}f&gWιAޚ XMGH%ۡPء :V!\崑l"6_3DܯhYN1)bJ1,uB:V*TԯV {QC \$vv+WeH[s}pgaa`h VnXiKK˴ݦޏLֻ122> zEzk?>͖uI1/E&DE4 3$Ryg37'B,I|߭-oǧJ"QwwyOowTTT```yyy{{{;#(鼑ɉ iT=SٹfGH9d L97i<@ >ڥ`6?:Z\X9<: d{{r^xghl8KǏ{9I>x|^4&h $$dz%.K؟:w.wwinllnRn]]6k?5N qMP&uPUU1aG嵳r(2})pit<',4$.C|4^-hdfd{ ,|6$ݼ,i4IȠ<ŋsKKZaY YLtEe L*QIIy5FXF@3#/28SF~-JRR)bpYv<l'aM+Kb!'ۂv eeeUCOUو RyJzEEZp7ۻ{sQO7եw xsVVaGptggo[[0J8JJdd3ݻ\mgxrYk묦&Z׿m[H}2 \-Y4}c˗/km;QWWgg/^5/F@}}Ϯ GsQ>Y󠌑\2"0,nhh(+si F̟퉧&xa0sss}sِ@89gᚕ~ aTDr7.4o |"/ӱO zC8pਯÃ_Hn< zyyYCvds_;lZ~]oAM=L[@(+g|)PIF7*@ut۝tuuk(+7}KKnrl _U}[ SxNrjia2 EAAK [d$\c;><|jYK<2?7&_$EgЂ>Uy wpLvK=p+w@0E@?UՈf455nYlƦ&,?//:-UddĐ񱄄#kk jq%`j?ne7&X -;w&?ʩ:!zOwV[ JYw>ĉKd՚rw h/e]7O"Y r`(OubrӍkm X…tױw @et +)MklwP_8DrL0p_6Ek_\܌>4vt{###D"&6:fEaiO9 ɵ. )Ԭcu@K @7| x($٘pe9,xڜ--'vƍd:AeuܹhpAR60$*&P[{y4UC>*ikx =/H]ʌ&08=P c`dW\~m&}bG >yz,BT?U >}$kvo4-1j~ 2 @:~Q2bt&42ʝg z?BuE}ŧHDа;;kjjlZʽǿY-/+O6"J>J_/zoBU H*,c09UU> \XXѪLAg0]*}zRw%?|%%*j'ؾj֊#eO{ vC|-wU Z(!FO~rᮍ $MKMz@/*OKKP`U PO˗Rs|Gaa\ MjQgoppV26o홈 GG!txI ■ϴ=>I8RGQ\ e<y1gYT&1b::]m'bs~y1zxd kW՟oضJ~?ȕW``b4 @͉Dm̶L 6A p[;;jęKܧ IʄFV=5''R0TaQ1+-9 KDn,zf%Q=jc#g(YEuI:L&k_L_g< (gRx "ûdYY9\*xzxxXk} lt:hSߝ :2V^ BM~)4)T8l`lpVg}-[sqEI%-5u`8m׼^}7g[KDX}ϡ!#CCC1Ih(+9>y8qi)!#.x%v'FWww{&gioXؘ–^(+bPj]]͹syʾ%MM*h{ ϝIiq&BAE2aQh{WWNӳ(әӧ`I̚_l+ ;Āޝ=H!AV>8'%Ӈ`'qh&7B':Ld}Bl몁B[D/ R@Kf`qfqVi_O mCnRp8'CEPK >Afold1/UT"Nux PK > A@fold1/sub1/UT"Nux PK]>^0]fold1/sub1/dirty.jpgUT5Nux PK]>өqF0fold1/dirty.pngUT5Nux PKLmat-0.4.2/test/__init__.py000066400000000000000000000000001223433004300153460ustar00rootroot00000000000000mat-0.4.2/test/clean é.docx000066400000000000000000000133221223433004300160250ustar00rootroot00000000000000PKS?word/fontTable.xml PKS?bword/_rels/document.xml.rels PKS?3word/styles.xml PKS?êDDDword/document.xml I'm a text document : please love me.PKS?Rw[Content_Types].xml PKS?word/fontTable.xmlPKS?bDword/_rels/document.xml.relsPKS?3word/styles.xmlPKS?êDDD word/document.xmlPKS?Rwi[Content_Types].xmlPKGumat-0.4.2/test/clean é.flac000066400000000000000000007142711223433004300160100ustar00rootroot00000000000000fLaC"%9* B^Pك-5<ׁɈ#~|=;~I} ‡,=D}aBY2^74 xZUFF)puD}烒J3TL srurG KdjP+>Dcqِ-dEx'a0tc\BF%^2#F0ޕ$ ѹ6Sȿ!Yƿ M(E~țKvX3CwvER*L /(6d2V.@L9?/N褔cq$s(1ƒKRuܰ$4W̯g G?7):J!<1e;Pԯ 2>P/$lS3a նb=@T?ҪϺڡo\1b>Hm'E{>QqJn$Gm!G/ EC޵ܤX6B{#qյN~kFr>a^XZV4kSհ gͫIj|95Wa(^n_hzY ۹4*\a q.wRu=|SCX;7iYh͈-]b Ƴ~ }p";E h մ0.xMPZ *]8=Z7Tc9R)k2rʈ#2Ҋ]II12q Eq\/~,dYfj/DKBvl̂n93i2ɈOr ~<1P^{^Qy>hӆIJvz.,l5/ܶ%om-{oߛIET~(GvAc K0xYB+3x垨tlk!E:#.Vb,:QTK[= As 0Ac:ίZNmNU={ ϶xM],Q!;*',YF:Lݥ|ZŐLg[ B-*څ漲VSh)AU⥹ kL E1[cevۣӷ٭˹zxßsY*uHvY4AU|hQG/iHtP*C2*z1 bA*ݘ SJD' æAtdMjE"M0֚h'#FSx"Ǟ߼M~y_S$W=FWB8RV+6W̙ V{VL;boTaiEZf4}A]]qIBjSאߛzMt긪ק($tۚ!y*EՂu $vHݒSkHk%Pd_9cFc`'KFsf 4 m } oiiB- Y./YT(0-,OZܭ$BT6/jń\%ݰ jz;{/ sQbzuf9d(zaki2͒!;U-E Fmt͑gn.%SB'\%EliWvTi"ooF)GǴϋ++ Lp sn&!XmRȥ.]2<@A)X P/Ael.Ц;M*]:Oњ'׵0Y5J 1uz2Y9jxn|;YђR-'W0VxR(~f%afGĹoDpKݗe)ԕSЊHkW3g#+[J*YoxЈNdV@$F!TG %09,V5Y!]="Xt M? , ?LL*OoW?(.|MlsoM[Ku &v4;E! ^CI{ˢ#Ӭ+*hG"?-"QM% l!O&= W2O. U:f)ܨUp(ժ#i(}пxx: R ;`wٲ`_\|$B5ݞ/nU;<*݁8U@h%a{0On3&=TxCRWC~_9愊L!ոk /{F'jV7@:&nMd,=;Xum1>۰[nID%MY$i漿 u|Pu#qz8Խ;ة[Tn-C騸%,;"ۘQyXS}xٳdu”IFށdn-$SaHR1r3Emh2Fs75F/,EKi>C5(Y#yHfh3H؁:Ǥ-c۞ P.][VEM/ڑjatQdEzkJ6XU%ĉlBU-F=d}!^f?s'W^TR#k7F4GAEYL˔S/.(竰=VU%u )PvNˣ>im(RAzcM[;<_4!PsǛJwŅȟhͱGq'G[)(Fl&~˟ ͪ|1WWhsyǬM$}K /GfA )KZ@Tr.OrO&W [> F|ŜʃٜCXs/a~FM*xb|CunP}dxԌa0.Pd u%1"^/Y|UNb=dtl݄f+}:m5߄EU35*%BT!Hp6d7/O3Ei "変誠S_clƙm}Ш]0ȧ_TrWw- ,BCs<eg qѣUuIM`W b\M 2=ia* P|u-o^y[rӄ6ǶSgVcH˔_1UCzR2sV}Z ʟl 9>UV g$i ?B DyVotɲXJ%4bx7[m;ҏ՝)`eZIQlF1=֬dG\SN\HէPxũ*>\y8Ҩ#]t$Ħ3/ M/i&ȤhfN1"ZT]òT9I).K@Oj,c`q S!)IU84R}mh #BG5]hsGV){*q@B۵.F&!bug{& 14D_ Ak+ lM#Z\y⺬!~7}pݼVQ>^v?  lM2o5&cKZ{ \΋#0O>@*K5um2Aũ2 iU'k16YU4M.xxΝ' e"UJgV"W'5t5%&+<_VϺ AI7!mTdN!;$jn  TY!i[ua ϲ&cܡ[C9&kOM.f^$R!`fVO[eDM]ཙcu&!9#KW(FfPnL_ lfMHrn7tMYjJf#CHww3r XB$3P:k66B?o%+V=`cJ\|[دX n^嚪1$VGEU1Y֕P%.n~d,(QDu\c#:Kg4r\QH/LE RTbKGRZ%/U1"P*٧,r'cNh&P6a* 趤VYd%+=p&Q>#`usJ '&3DΟQr2[Q|JLJR,լr)P" {M2RN3hh~3TiR "fy6]O_op| ƿRuo7*ҋs/4vzn)E̥} M1֫J^XRa)J+^F']ZֶvwEz֜i1@s)mW.]{1cI1&-bg} *OcZ\Ƨ<.$1CIЋ;p]6ȚLJipR3\nH~  DHeƾ F=-dEaj^Y#[tEb*J}wzEfjy4ooE$B諸y;֯i2F֭dxL3%JY4hZeXF7w-hMr2w5 2o)zx OY˟:>Á) MrQ@i)p *n˟ps'0آM8葍m]q}[ 8a`ߥc'WbB,}$O%JNtؗvHcB ly+xp50Sjh]DioYaA7ֽU/ҨMPM4D(M uYRY.܉6-$V[yOW$b=oI';זzzT _+o[6IZ/** \θiOk'#b]-*c-ICtvy`ILhFȳi@UЕiC\y@/JDyYqQb ^ {26v{Rnx<"H'zC$AV[jC-F@jHr>3VS5"a, Y-W.)"mZX,o]M-"m[(X\i'f 1fB߬&!R68 IHZ"(5؏vZUC6nb[;SUxuz/DQn' F:Z %_hkB&שp+; ԟ?5b% D]'.YIw$8(=ǿ$sDԾ B) 1d3Kp7aA\B ʹkp3Ax/ E9]&#C#] W# u`]I9ˆY^#F$N=5PI)'=d]WpNqo""=t/Fؔ2i@=ݞpFūGVQz*$2:{@!CiKٽXfKa0 DyFfKҁXiwM/ԭܒLi\#(Z_a@SB/pe)&VrW 1~Q(֕;M{i:H$…c@ʱW$A4(Wʬ|w k#!m/|BXz(S.M$]8OTO6-lDDgJ ^=,]V++*^ğAsF s/8?cbOgoCn^l&5 XMUӉk8v@@)UMG"}@8XN(8hzH]ɒ{Z!uHMT nBBݫfmJ"aW}e6;pM%w{,儋 "ҡTvBB}ϑ Φ-tS3w@oۋT~%1HTwL=m$ u*.⌈o /lPtXT )6f\N$_.!3ش|oJT# "#B) M Qiq9j ngΗG;:vyx# қ.iv &ߦfq{-b %{`vv%V'J7ขͯFѓ`JNT2){cgC| &W-2 R{%n]qm/`b,(wGoDK} K^,Tp<'Źo'vqxseNIj),6^ע6^j&k%Z.Ʌapq!^#H%GV2d~˜d)J%*a)3 ?[Ѿ4rf#'ʡǹ gtxI;.+0B}I-[^dE\Xi#%4\&;[zC;\N%De2_*CN=}Q:@q9YMp6&^WG'uaɦ4G[;t3m_rx⥭b"I*ۯHTMXє1+7~J1Y+ <h[lz!&i? d `w*a3)ԓ؍L0#y9E}Y/oo+g8bASSq_ q,0(&`:8ŭRB f "ArákW`R6 [CIpV> tXo.t/Dt^|ISIeĺjLKRJƈ;uѝH.K]q"(Z2G[[Ry2xy1Lr- G 6V=ŝb7jcϒ͍҃T+Np Z HauFa 5LD `k8[Jy0Gu#I-fk(nzsؖ(2H2D:Oi4:9UdݯdN'Q[|V[,K$&\I|xQ;&c{PIܔ~%~rmԥA3/ 8ݪ_͌BgjspuK*o[j-,o }hRYlT6G;swuNwS#(2t\uT utLP4+jQ-=_)qT1"&ROr-8o "t t~џa`, -1*Fu!G"|hbsMλu0Hvdp.XEq8Lk<ٜdR:ĸ$͉c[o.V5_N\pToV+dԯ4J[?'XI:JYRr1&.Py՟ȿRof5'UӸХӥ{%RX֗7"n瀯ܧrC}!XL0&{Y]klYKch NĮﷇgDfRsC*9Й.hIDdC7M !\PX*\H *ŔF$P' Xm$s ,Z7\d(/KOŠy4 !`( f㘸n;LFhtC@㍓3/ŲhM/6錩$FZ9 u- #@>R84bG:dAMp5 x.cͨ. D1vz4OW4vD:T 1B G"سcQA" Q~ y0&{KamOBiyp%&crP6Ixef_m~s:)bMXg'&3Y,˻5~Pv)P†@8 &#0+ .m+ս\^?wD Qp ҪB͂ Dd %`QdR 9iU`TԺdYmvlDϥ-bиT(?RRQ8J(Vndu:a3E"CeSST[{;Jc,"&9HS7Hޜ/.jQr ߬ų'昽G5HF?R83U2E~a1ZsDәYFڭQ\f* "rF2+ b'O,D[Z蛅^]毶]mi%o=}}#R8h[N.u]N% 5|y{d-ґ%eAӧ꾪cF#ɼ4dB ,V!`I:B]SMJ( {Lm`YFzu+NP NWOeF!^bmIY S#f5MɈ$.}PR,ȵ-"3bǯԹ/KyD]kpsT5LcVQ cWVy l,o.!N@.2[K>Q.j6R,m)u{濴O.EZר] en kNO[/08fе:uTeT %S!}:yFZS+i/ )D ^4P uZEW5{{|A3F bP#ѩ_?~f3ʅkv@ғĞR"7$I!*$@E+cM.fuG@ri!<5ؽl! I[$?[D RkA+Sh-Nd}ґ6 LFGT}rJ3px#5#v-kF4VgN$< 60>0 EtmZUrġ[]} `6)QWiU6TAQ`e}wҎ*kĢocç >RXI3VQGU=Vw b1QQ{]#yC>M]܆OK  Uh'jî廡R;#b}DHۻeR^XXsel\@]@B QX不;%q #}b4q'NEo/h& ;Jӄ$3(}4ykgUW&dn?^4%dѣǦL$ǭ (Jy{ X$g-F-G {Pkj.V0q]rg:F!^ZgܕV-5%oh!;|SX;)n 1['@KN;BTIRP-)t\/G6^ڧBBl#oI;3,5ZE[&Bb_\am6d߭sͅL*J mCsl #2M9qaj K(!4 whTcq_i䔕0S=qʁ "҅e ].A|i,yH< I}M=-M(t:}lvAH?(RK[Q`iDo&JVh$W)tja+݂@4щqDKv17xy̏EI(;:oBsy.BK zӞvE2v-rsVαJo1OflOr>_-cHx!)yz"{M$֥.Ua22\]Bo|{vR) \~#j&dmfX2vEW;#bp}:J@>FR f::S9=Cbb:J>ՖqFI F.Ӽ?eZz]'%G}f3F873gI,puc&2;BO*gY#g$rd6V4 0/ %\aZeV<^Rӛ?i9 jԔ=&~i$wO&] 35cDP\cCpVq?`d yPvӲ5wlCgA|!zxtlk_;]uZ$Hk&f_K纠wX>M])o%t"'r eKsT bu0vYsm}ҋk[.yzTf /Q[f8~-Dd* !5]C+&7㿌Csᷜ錢u2,Z? Gَəf]&-Sم)3L=*!53i'O׆Au]0F;}f^Qod m9>LeXoCoQ\,ލwJ& &sfu~f #{,SegP`^@3]g|̱]# t"Nт2K-)Ft .56[bP y[Ƿ v{l՘V9-1Yi7n*]`D֦BJrlΊ]@5;[kfsGG2^j^rz tzwn?`mmTRi؉1kAM*f(jD4Ӭ?GD-1?W6R8}!:ÌsRO : ?)-gݻʨxFB72ㅨ)n4Emd 7U#B 8+2gvt4r0EsQe+`Nu2 M,&vmQbTOS`%:'d5+!iU74q()vW;w`%'gRRԎq-R*ED7}|t2%Cԛzn IdNn䜽qKI񛖣aڜ?+,:.B9kfd;Ǟw\:W)UkjsR1]ڟ͟ltw_ىYy\ xw^+P1gQ)̽֨ 1~m><۬&dL:a ~L6C,21D0budzexGk|xAS Q|\&&K')J`1"@>K~Ko1XOOf;Gٓ^>5 [b\;07|\Xʾ Y$\8 cQ6qErvr&3W" K&%BgPFW `E"/x뮞ˉ}M-ŵs)8hQvZ+tsN^A4E%yVz$k!5-BD_.mS/NCh:HUfIL?tYCC\F糘OmVhkti jD meA6QjfFXHKb|$Gx$Jp!E6a"Ȓҥ}~9DclA1Ε~~Uֈ*TrnR(@k[K쉽R[D!%L3 JBz?1j3S*֦oZ0dNd@S=}|Rk~j$FL.fj'!W$]yc\IhgR9]n'Kf~:w ?|_zJCRA'Jd3)EaD%~&C\i(Vɭjz 9% 9w_=֚G]@J-NkSTJrCb 9=$b-O0=5~cwD1\׀ K@)XƅfJv1[_S>Y*\!)hKr!sȳM:ѫ̐fR\t[<lT!H`#^PñUm_8*نuѧI_X@5Spw /#D=^CiEW>KZDo3/xQTЎf,@Ğ‘YCqnpYD佹 pVVI;0JDdP|mYjNSQ8vXPj|1:tg5OJx$!}l(^S," T%s{}7Bk^n#sˢ2߄|2,*&FbioDeETlV`_31UXSYJ$w9'%GjFA AkCv`H^ŭDwЕ,pN&p-ٱPTv~Z Q^B-ݘ F"ZqTd8)4iAF.pҵ?TKm#۪߉_5A'-qg7R5|4*̞zb+zEt^SxG-P,"1595Mn -XrM+n4xƜ%/x']jPHyphYY 41S/k")\Oafľ@X"JnGhj g2LzKVlofDi e@kj&~DT2S}9=A"D&`|Ɍcc&U2Y !\q'F,Lx%4 $a$d&NX[p x; &H Pp2`/ ּOs9UX+,sCO*ʌLh6Se'<%AmR%P. 2`tϔƅ`SEƒ2.eϰ_dnP,3v#st91m{-oӵps i!,7Y)]EB^A bVU$+'JA_V<˵3x,`GbDw(ɛ%ޑ(l4`ݷ+qݓeq0]7vC !pu.˶Atu=鐨"TZvY]u, S; d}=MWx0l] UT!.Ḛ>bDKg-'u(N溕 B99.|zf.j%DCj|o;h*c^&E=V*ɍPǮ @s c00MrTFc :,('pAG$%{=$.Ih)Us7!fs!3m( $H5}qgyp3TYHc:oedLipGz>LAi$Cb<#0A0z A@HalRt6L㭆a8Džӄem! 9E4-ZAZQc+siWhzD! GDxp9* I䆨t id+e S)j}u(аD(&:+2KKC܉QKGw_)b:/ Nf ?PtuK[nr/ S eKJ]xnNxA&ȑ' "qA# 1{ f]ZsAmXN '2df, -Jm*k՟ PSiQ9Wͦ(bI?14 %F0j%3{HM!"n ~kKbSD…pxE?f#<9V$%nR/Ap]0 oo(n1/A D;;?i[` gay4oS4TAIx{/@F4_nh>B qfPLKelRRM>GU0L^G  f-iX-%nlp!w0|RdNN,邓C1Bb_I ݺ36 YwjR*}% tZލsRXDol!NTx(' %9 Ω@ЍN@$܄epUƃFvTΊGZ3LY g6"^KycN"P,?dKL1U|h;U[C> oBmմwٞEw F f]69~wqRMFP9t抁p + ;q2S `cC0D!op )}P~Ӈ dK r7N4i[zx32TILQYsB@&81w;Q+0}H%d|lbr̎2MD9!:ą/0[E)w. `͔G+qI v\Ia' `XېF`\T,Cj 1j%O)±hrCK%_t BXˍ)oZq+!{0,/ƹ|/BHWq;(K 4ȣ%{.RPxi4.@N2L2awwaVxB cmaaD7~Hcqe}3EMJ0HoK.< t1s4YC1/;cZz- a hM ؂ ' B3<&4F0~WəF D%Ē ż.1{ ( CNkQ_4Vf0-EW:GjG!a鄆:]Qf1DXnlNwMI븳p,8z'\剗4ҢN>k>+jEGv;x)`ge\I2YoNN$SwL .="5Sx%5_wB0R ғ5mo)!O;g*|9s3ȤzY%>Z'/q_2{m3Aߘ@«.!4H\䅵ݙ Yd"x ~ pCxT0#27/;Y,bVjM?dABpb;|oj{5293%񛞺F“'seO52436H˧%4j§biWeqa؃xۄ2{EМ%k͖Ix2RFA/KhxJJ&w{9lJ}y/X)iHi#'YV(Q, Y&&#Ooט#)P' 30zx!ԫ(S̭?b+ >_2BX(AN7)b^- Tv: LdBT%UVcx:2)+-}cS CGEw(F%PGV'04mԤ YUm!k,T MD\K2yX  ?6sv7Ayª;1~! 4$Pݎx4* Ij)%<ΥĩfNVu8C$7$3'vvA *#ґ?w6c1^h  I:LJK"=/ڲ@IʱYCQeu=4p q @hฦR6 @rM1Q@b!i!Wb#h6!2tX1*y'bm5ȅg/,3Ji7?![;AIgb'@r+?h9};Q:&HuxUB!{B0:&%"bj*r%Vˢ١wJoҺ-9~zNꬍ}k^ƒsf|CI(.L_AP ,j(, 'OD>?}pM4yHd yG oJt F|!ZZ(JZuuJۘK%P <9 NUEW"6Aħy+)Lp+Wj!c(E"\u%:P$̍̕A𠷶h *S,!iKfȺ7.e>W}H9$b@+f}W>Qj4hji:S[0'ٻena8%58EU&HLf`2@(U:a8 !Cn/ACN=aa/Ro$EL"I,Ds,՝Djvu2 @慬OÔ}w}WU: !ҹ&[>j}f.M- 6f#SC!v\tu/R)8L`ˊvG o~9bbu2ƏVd I7錊rrQT)'F;ƕ94 ~RQwB{NO٤#;EJHUzBGv"DFT6 SvLT\B e*ʀH+daIOh 4vplnfА;Ar 8_;*9ڶSozVjĜ,k`fw \@ m*(ւ+%4~G|7-4(&zA|FK_n%FUµg2_[*"*D̟f)CBc{uB̜%/XJȑD]K.[~$,zrCGJG  +N_nF94qn.s #F&a_B=ѭsjpKd yk X fQ816΍"UFn%&K3is箲EPfʫt-ÑS J% W]>TG~>W?ZϖS P8# T:2eR =l^|c3& }-$mh:89 ,k*{,ʩ?\kOR˶ $}Ys} tūnCrߗ P3֖:B'RlR}HIoTkغjzMhCo''>v+~Tw]5rH-溹oj)gPYňHȩv6/+MHP|$#lBR [>em*YK7fifOƀ=^vR?@MQuWSVO:xX`ow5uhri(Iz$Rȩn x͡Y[d^΅z!EUR̩ H:7-]Z60jv9X1Lnf1;UzcBc0H:/{>$4;#?}|FĽ<ݍ5漣J,š=˯c%V2>[e:Pc?IvAV̇n7Q,nE^ ^ŭycK+c+9uƩbK}u"CeO!(6;h 0b4r>&c> N]ӛښjʯqe\$b,<Wǚ߽&'T%Y< C5Y!O ؽq 4\ Z^zË_q<ȸ\]@]0?e$֠Mm5Z&;'Mq1hLTdwUCoV|HaU}KO04J <Bn%YtZփJh!}yRoPŀ2GGkiT?[pI u@"yRs]R*GoKb=qK,J/ sTD)P)Ӳjw:,\eDѶQI_hG'B5W!%Kf*ַ&qc4R"rZcy0Qk}d|({c>K\SJ2QʱT;N'ArG4e 4Ts8`X%7{UX$e;U4K$$$~ְZJ /m|ɧY2$b q,ďt]fCJ?XM|E*Noxۙe=ѮA<7T%q K Of ֵr$`yYكb >Yݳfؔ\lXDKJ~p%sP/!ly9H$^~G7xi" =#Fk15g]q &cUAr^s]Qqs1zTG^%ehievb'm^yOh>TV$~Ov&HTpEw:WC{N7'oN$s/+d5;Mh!m]&yR2ZU@ڳ5E6iI\ţ}wb6s+d_%^qCJKl/%R7!kVuw>bRPPQtkI&~ kj6n8xϓ%ی3o/FLuϑ)MH١l{+@)B#o2/sA13 0{InoZw!>Pн2Ls+pMa} 6U;I*T"O2bȼ"-xe4 Qp:3g5J}r)je&%: cڴږ{F2un-]پKGI#L١y7j8,R VD;Qia(lH1ᢘ|f^sd4mRUP\1w2MzY Z$HWnً4'IvM.NQ*fO@FҊ/ܑg@Vi@e .Kϕht"Π700(#*ެ M\HW50ķa'ʁ"p1QjJF~JH3&zgP1[ؒQ*rFI[͚ڤ*gVJbW.x_ku$jz6lk%ܒzBmWPrt8?JdF˚[&Syb*YuJ0^=%)DMژWg;% V-N|JKMʆ"3В[(D휡<+>oJ|MhGu[x|yt>SY5.ށcx*\CJLcv߼zNGK Z= ЀR7bFYapR hmTC ܰk1 d8*ҧ r_;/Ou>RqU?UI)n[D'.ӚIM)ਂ֕eŢNIjkE`i$ʌ;^B_,l1.入lb_`}\)wxB^Ff:bPHk4+`^0lJ.jkI6r7߀.Xb5=ł#cyv_j>Z%%^~. ȝf; 07GЗ $ʲ#gC$#D2@ca n^xZ) N[Y z|i2X%LMҽ1ʩȋY/W]}b4ؚ0TP;(eP; ږr!&xN8 lr"DFUzud {;PZUg@]g<(BA d U_5ۜLdFf:)25]`yANil2nDi K`8b `˧C٠iᦌ# 82Z̭\!.M`BSwѽٍi{gTZڤsQpɫtae#Cbs 2 btZ&ArrTz߅3^vX|Q# XܿHO8[WF!d-`Bb7A- Ձ(Exѩ[;3F++ k]NCqWO6JJ/XZ7{q[GqNCO)DzGqL Pm!G1IbD0ۯV p&U/ےR@f؞NCNT_w,SϭGDB+xeM:T2*oʶ+|rZ>!ϴG NhX2Pyb.S3ქq'$݌% Ӌ ^{ Nivq!mkoSdLn_*4d0 >/ún%*nL]CHE$=B)lhyY!" weQdƐD ]B`L^2 "l.M{;2|i(Blyf}_YIa ojv|V+r2>}CХ~Q3g^.æt$hA $.y'nQHnUk7Qι1ɄzqrP 5޻)k]#$ada1IPsZ ~5rx~ɡˮNeф8x(My!qOlطDz[/FPh Q!:0W%k !J@~g|㢂(°0O +wfb"= 2 D> ^ ~=O9+@-27>If-;}Z'X; )SKO(uܬN,,6 A2 \Qb t5C x(!W-h4B >6|B~NI6A̡T",',BDHw&cv3v;uC!𒀓b>EP Pd  dn?o hlD^;Ɉp k.kzZlMk, H"pH7("ps+W[c1pGݍ{E?iTsZ=hJH@ # q=X8fvǧhQ*H\vK&Am7D"A qGejQ,Kb|JKҰF"<dh1C1 ŵbo奦ų2-HUNci#K.l'#Q 2(&^ * +8~u%d2B7 DvG/)J)ILi {B#7iiՊB̊h֥u!!p\Q͜tQUDv2EU3%wsLi |D4Y #tB0&s"@ø8 @[e&ln 'OK4=ǃ|Aʮ"m¡*Hu}˸v>Lq2Z u:EI1 R`0^ZZ@wP AHy[H,|Yhbhй*BiFp#񷒩CzrnzmB@[UPeixB3ء\U>P?  ȁECrUXi BQaXPŝFe}\7Wy4",P M%D`{ڂS'+H#(!G0C#q+3/`p[[Bϼ"Z STKt܂c3FЈ•֌?vJ?B"N K^D/K&xcB3q &C<̈e1zT AڈھI%5Ֆ$:MK?x`iJ'(5cQxB; ["1?{=SU. /N) %)¹5HfxEF6Z>? ٥0Aѻn. WS.p[V؟V-% fY_JcG6l꣸BvUTbkYHf1m6TN PT"\?,di5G;-a Yޮ$!jxw2w?VI+'sЀ>$YIy2 ckq񆬴&ƽwabXQL.oϒxiS-e#VTYQwEhtҙdH58OGE+Tqm7ІPX;8yF\:{^ uTe!*$l'7ђCH87AJw/1.P!4c0"LҜ&\no CUZy"™kڛKDn [=OIHuVH]0FJ)3z(S5L,ݩv$*e,1ޠm9Ahb4ߤCc/IIB.'_ʪi5[n54m@ 8J6ҬVW[zK)o x@n+ UԐ׌g=7ePDC Nւ j`DEvky`Ȥ'7T*6 < 9V1p]:pj5z_G( laiIN'캫F'DV* !΄ML21}+nBPz%@@  cwHz9s0EEk)&J0k$r~_ϞZ2AlϵNIBt&teҖZwJk7(|+b) 82dE/!sRK^%U ͼ $ 2B7QR0Dm%rgHoF#:m\n W:{E1(;r[XzmfR3Zגw"2E}}`o%Į䜪n?~| ς9X #i %\,wŬ= ca0NnC(zx  ±A4!(-IЇ2.06ƨ=#;g oo#:xh`{ftnOIE"j}q\yxT *031[Fd^2c+[&Gem)H.8e×M£l:0YH Ӵ08'2& N_LM!ؔ6;TՊd"CP]mje'XGydg*,jKwzJk(! BlGnMH ˢYޚM \i4Zԩ$wJI6v!?eМfpHHxMkxXL*^Ofd+a0/ Vr)xaD;o`"3 8\h+fD|OiN`^ 6S=3lA b&aTpޡA0O)p" @ !蘚euk0 (b*o2cQyOGi+0_3ĭC.˯L@PB aPԠ.p,P @6FF@H85]-~DvbA`Pfeg|epzMnF-9M_{|S;^Gg̊8(d"1/_}|3"gfsaQcl/A5FZʖ+jbH4fsmDC.f7AȨ:Ћt3|?OOE[R Adl5.ّڇ+#rU1u ]? Zď)KL`2NzIQ5.Dƽ!mSy4Ɉ*sS$H0s(3ZGcîK| E.lXt N%PIlT Yće!qgp3Ƌ:`F.`1Z"sCw#\~~lWfrqA Z Oy~M26-*RH'6UQ1جc<\1\RtP6urr3Q1D2]o 8qBO쬍)H:sٌLN$'8_HF> IiBёnR6na_+@H3WLOgbaBԳde'P %&j=m r۹Tc:|Z1sՉ"Sx~s!cE{N7j0-g[2 mbVj&ҷú=#Y!e=C\L9S]JtLsX@L?>];uS CX/ j-țDT"tAtBF*Pڔ_@nTIw gP(E]t|~U0^C5. *;y>X˖dYS+&(W@:7K,;\'m.Tl₆Enhb .!(gԫӐo4C0]NTdw{|7><0rzu^RLQ^W׉& $Gg; ZI'ssfL:|e2(1 չvJ/B[ČH-#mBJ.4)Fbv#~ d(Ē)~fLDKZzEөRlI|msbI'SI*:QilU>'G1JS7 VnzQH&X,ԍCX.[H穮'5-+}W}|GqDlKs>1į.iAѬeMOSULL_nWB&tMfqջ]tdPzzwj;N<}bHt$.7@\=flLyoDAB 8W =0ވ3DZ {Cؒy1*|1(ռ `ϊOufl7VQ\KCūW vcIu/G9ukSz@CKwcF|(RCjG \+Qvti585\暥enH^vc&QJ:k_y: OӈҞmVfVvPaigߟpkW .mnVQ}?m,8&f>Gx+EҫhzO|dvm~Z]]ȩt7xF"f-o6E; )Snvkn_MKDu!X3?CIu IǮ L,D=ݵf/vPg" /K|CVϻkd4YLi-.th)es,Sy ~ܤ;HE)}7\,6,/h{Pl "E)8 Ip@dFqTxJӵ"2@=rJwS͛[DzL"ӎIXtX\]$Mo;z%Yϋ U4kƛcR0(uE)㼄(aZV]8XaK,S oћ2Wjt8\uSx.v!tGlƶak܋Z'U2Qh Aelb$?Ѝ^ͺc%2$ Xṙl|v/Tqܻ hRY46~|އM7X+Si\Bz7YaGkb6YŸ%#O{J}rZZBg;>aC`ò0êزך=!{E!W`hCc6qΕwousz"R#%urIiT6=(j=Ski1[T_%Lu >җiw=_ U߉3[.)`fVxvK._ֺmz'N*G ԾVpHV女isSuF =۬h~`&QDHnմNk;ԟzN$7xVGtEIQ*oP8 {5#F_mu4CHWZ?4y<;P!ĬM^N-AD Tt{MYg/gQ+dBl(" ˯Lt.[_M4~㤕gu $^ = /7َL:)ev~+$=)ˆګ}2,4cگw?WZ,gi/xde4M8`7L,_%BJ"u#ndhdQ ^\%!ak3.Ռ"2)dޯD2s/c>]QC"@oǦ}߽ *U)ܤ3V>3 {@3[i;Ekhrϱo" 7Jυ1k1@:~5tyg i5жtM$\URCgd! E^wC5Zբ,ʠF*a?^B:cf$JwnN׎K8aP(&~O^&I]» u@3晶(eRP #LZIg?""8FR֮ OORwPFîI*]F_Ot4XK,NǞ#z 6hpT:A9~ixQb7=J(UfFŧ{~ M6h)R2l>EcK#l!ť:XY"hKQulG͢1 ^߉lςNZ4&-X?UMH6G6Єݹ'P%*i`xK 0F$.ȓӃ;$1Ho-s *͠u m賕_M?շ(YCE/}tɧv XN_nR,d{'@v!|c!g0_3HfUBn 62J(AsϢKK=QG-bE&LcWp%?194FDhǖ4(Z%1N.ZM ph8jϣp ʴx{*QmH4c7ǟk"c ;v͈@aC9ur:J3MQ-w*+ig|<׬r٠&Qh5TYV+t *`RZrM)e0L! ɅŵQaߨ[5@A(*QH6 {E?'hnvnf12m;hlf[8/5n q*Q7ʇHP: 4gm$`YxB`ϛQҗK9>CC&voQ"P!"~@0Y aJZ @ "Æ *[(XNpjrfJ5^XRr$OOoƙiPU?H-YY˻OqLL]V0kJz+V{#sQS;E;蚏\;R'\$`zFip#Sɀʈj+ S/.y6izڂ֝řT@Tdyӂ"j]"1{]"Mڼ,mb hhmOCi4=FȵSfF?^;e/s)Lz;3ģAȌb 6/u詿:CڿFil.'ec0*T)QժjIF6mGusA~I5|2Nx ~EئRQE L;lRۧ[݉4H0 Uݔ`:|;wJy"(-LWҾqeiB5F,!- Siy^w I4GM@cWz@Bk&2hc# n_@hGXD!C7chI'L"Z&!q)Hk Zx#sȼH_bG!,8(#tqYT05 ! K-k0UA^dXW7@Y< -zvz u g'__W{Tpȿpe7̟"8i"H-˖ZT9dʤfUI;3XA刵t5[UPaLbg`X/ ?Sɱ7n/߱%i $ <DZ}hr,3г` ׸/9X+h16ptcgc8̘w\.=_81 4͌L(ٮ^|2G8>pЌbC7qL4A[Ygv\ԼG>>CdgJsfmz,#}ѠGy'QUU_G킑5@(VNfp{iq*J}6GF s-}[T~\YSSLu GŅԦV=ՃKecl5=7S5Z6N谤6;/OP?l =@EVQQ'%rng튳2x*­eguwIT%V!>U#7 M)>#^5F.l/2YT4)RK>a&REQBDɐ tG4G6 mMmړѩWVUŢ҇;ֵ v=\5yz6\ 7+ԙs u֑q !ӺCp[T0b"a*]*}i} &NE'BrKy-g*m/O%ĨK*\  en1Ve]GC!.*E=S@I/_k=U y3 Rc%`.<)\FhHWVO~z_4 s3dŲ}meSFo @0QePӻ`e \#^92yu/_ȚtX~ZP/V|P]rdK:6s9qp|y< e0c((5> =D_Xyh -Nqe^t!]7>PBK |)5 E#e@W:O(EDs/<.-'O u(5[Wl|M2j+~ETUU#1x[VhI` YU D! luƙDVI"a4k'ݶ0aIASFЅ80nefyT Y )iƥfJ4(x+LR*3opV--fiX>!KJI":23GIHL-"0U`M#ʊSa@)  CT8eO@TҐ#ČYvNr[@k$0P6v" Y3mÒ`Ȇ|nv2dIS\Ah X J\9<9[*}z.jY޵ L$b}P<̄(}gI<K^Ha䵏)ro¨ d_E$=nR+fM:% ?O,MF[iԱ ؠb}N" zg.M؄Rg8ȌR ?F0#-y+? Ңjo[5tca©M Bȿڱ褟bPzڛXR}Onbm6D*lPiz V#cy)5ؼ ߒ%Ok2Q$Ehb4c6;n٥/DuapxsM|&lE!Z\~#Ew޺6Y9;7e~4\Ox JG0]Ae3 ۄI"!"X9.TkeUbP J.n)F&N V#RVℲ:'\B  Y!YT{f$^TR88c/EV8<$ А*E䖛}FV+U B5E}"Q .\EͥEW ;E$X&P&'B@KT8=ܢ$ۥCBn^@f8+j*8 NR1@E#(b2]&`Hb@1C#&"dVMˋS8եgf*H \7nj*ɡ  s\:sΰ\-{T/ d2qUEW}I "1AkԎXZELj_N_0UA[iGtnMP{C˙0uP-惱6p[ 4l΍+1oWZږN8k_eR䏔^l+Uo:GCRxLdRhR;"g" r@#'BC 4:`0[cŪC3K`N{LL8$P.z^k]@ԎCS0{'r%A[t-DsHJ9`4ɭ4y# gPCb]qÈ_Z9[QK $6xH #3w(C!U'WWxjpr%hY5p &TRI6BZ_+&]cO\bk|raKm-DV JTYG G{l!XbTKE|$]5[ׁA/0?X8g7ڋȏm!}v4҄o7||G|mΎf!< |X[:NEz) Ti6o-G} ANޅNG\#[ hrqO!,4+$,EP дyVy'ݿ܀2\劣 '˅A$bJ jf cHL3”̿į:H/&-W"pyZ 6WtMbI !+zi4Fb0+m> 6K^^eQ*W۬N[2wef#p^k(_޽ #ڕNΉ%V .mD!yǁ XX8-: _n>gI9`#K4C]d#Q<i"P^^58k-4àP]wOmÃj k_$F'_Q?uC1Yr41hGWAuH]&;ޗDMIMph:% AXDaXHG7й'sRR`1+^79QDew@DV)B3cQ]2:2])$?\r\9ƞNi  )reNN=Q k [/X"ߣMõlO\/TH $V87tޅ̏ANɟGH.(D HjGօsc* q8")Wp@Ƣ]sش LWes0d 6Ur}N'912KD4}觕9l(jT{kAXsi0SL-G=maPrW$c 0aUc (Cc,Gnxb=\BH>$nx4 [a *p[H18i 13FP([J&xe.- aǎ-)E+z=Vt[6JVGDHW`~^HVMa(̚5# ܮLSI'Ip)%|HV vVWn.Zvv+fMJLTM4D;(M I7%TM{1%USS}h _LS^ҡ1Pb!'pg4̬Iσۆ}iBAu;~@hf)*I'n(s{ؐUWWfVYsDn/cW'6 DL DUUQnXBߣR,33vLHe[_ilhAѢ0ZTɔa݌Ǒ+m=MP)qeϚz*A10'—U^6 % Y@m^DJmŇQ]TEkO!\6BbmayZ?nm[u]AC'Uf Am d>C]Q>Biv~i K U!`z`. 3B~_UY@F$[l?͢b*#[JKYx ; T%qs*e6!&'RwƸ侤b'ZP#\NN['O?QB5T^XH͑Gɩ20Had] q2x EB$Y権ICG`:T-qh 83;N@ƧxĨe+P#,)fhrTBoͺh$N䢊ȧ|ZLa!X!@Ɉ?_}襈V6f%[kdpnQ i}Jk{">ao!k$*~{X>۴KHMY~spBYui'qü_Z;x9M8j}~7$2U8vtzp<?&66dVrU-W:[sPөP⎒-og6 l+m' I'oI`v>'nuѯ1]A6M,X{w\5sX%\^PFٓ T!d ڒƉwx}N <ĥczq^g,MEloVV'I"~̙=fH<6Z`a$1?"[yӂsAz?d'qN2DYW^7Hp3m#5Qt"իKLC^>Ǭ0{Yw zvOU;k%t'`vG_:_IFoc-c6I:$]AbNdu<suq9O<7"R^o&(PlE\,4԰ML&ZRh ܘe̝DXvi{6TX7*CW{92S ~ 7vѷU~)(x.Ĺ%zLS+-HuI;@>,A¬䁮SZ?+Nd@O4yc6n2 O==!G8huӢ찙1ޠ33|EѺ7+vnwr7O;+7H+njǝy>.F,E-Ζ0+'8& @/嘪+)"WBFe9[$ +!SsGͼqOUm !(9XQgM ^Ԓ֊n |0,A~<P Idsך߈9Q~S1S⫈c*oQ_]Iӊ6$*/'96$9edzSu$Rl*[!U6%FQԫd쨬^Ѩr1ȒmY/,Ӹl λ+B5fOLh 1NVrO@ UVJіȉ=p»͎`%e {Yv77**Q^.ԙV{yPPP~`E:u1gELIM<{&Sbō Q>d2Q)%HZjzПP'ꭺ]7o@BK6|.}5njɈ*蚺0lmJ`hǙ0٭ŗ`Y;^D9V`}[QˉiS|KA ƧKڢ3 5wp\ -}{ka|m9^Gfar6Gĺ{M *i"O72QEYX9cBVƗ(b5DRG;FLR%W`XɎEAep*~)t$ KJL;G4D\Oy6$w:iᝅLɴ9ar7FƭNGΏIRVBVr)V[Sټ`IQrwUw9DV#'u^$}ǚ>w)/o<Æ`Z@D_v ȏ]*mAuފ&<.갖H}xeT,aj!tB yu`7'!u{΅^_k$!b2jˀY0--9cEv\%c?b^#~ =Pu?n,'1LMH`3٣hŔ96t])`\4? gzpl f2I b_7{5(VdG' i~[g㝟Xe~։߯R?͖d«zRaR[xbz6yܹΗuĿA"((c=fb\WbG4;c=ʡT=r#G iێ}J'>p)ezJ}jŝ2؍Jm1}ƛ:P]!Ew*CP(|}y؝*pT1֡$'֔E/ˊ ^泮6n յn7WZ,ycSq9SEw -tw~jԺmxl)QӭI2P:Ď$' 1$WǚxY^|7Y +/7˰wYLWHpTo!Dk>׳NX3B/ۚIfTX߾]9 kβo=;kjz > ׇUzL$C[rEg!@'ЗyəOL@@F㷒)Ī3@ "6v4u(ۺ"D|-t2Iz`L1ُx-¤I%aO-[(МeΒD Yfb/[_^Y}iC_Xf-ՎK>:By@H9W[ax8v-AjZR> !K9b2?:4 Fq-ч~)!eam)"Jhߦ)%Zb=RggQ:WG q (֑ni@HR]>46e#3ڨ9_Z~#XR+rn"+_WQcEUPIYk{л[x0B(ΰqZS=1Pŏl0'9 đ)r{3s2E*ZI6ZȅQ~pe? RDV<(rrrSGYA2yb+gT4k$ rXxO'*ȭb2ax,&51p RFTl2ʺb@qÐ PH&pm6`(NPHHf,gDwsrG $.-F!J9*htZ V-=MBkٛz֌ݣVffʎ5AS 5&;[m׏b 5C9)im?Ch mтy@p"z̷M餍 h#Yk7k;籫a-۰j)dR="*P6jkA@eNkoaU- |X'ouJaLJQ8pnӳ0ʇఉEDAX3ӈhQS9X8PK>%+bAJqIsPB܄J@\U#5#4 Xr"1<iv;]Ц4tUa٥+фI,T#cD䅣$ *3iu.\{Sv8.WzƍD>[Tn)9zVV'%<@h;hCZpT`&Ar˥++ 0֘?2FfvՈtE׮)~Q1 QB1`9EAwJAiO;Yi_ "jPA|CNA|K#9%2sJ>4 ՍS SN.y^N=fȨ.Ɵ'f,L7zdH6U8_n{DWaQhr} $@*h*L"+cms*@I3z#vbxjHc$&={#&&TƅSreBJ cleP/QD#Gᅧw fQuڈ uZl`8\Ucj'h)* ^R) p8ҭ.$/~sOD0 dԎ^j+TĒtYY 4 s >'hj(}^pL[Vc3ej!^2Cq> ~N[d&AP+p S5viV*P?'<̂ٛd7>-@%c@['#(3"H/:i7y2u8x޺{w<0q9Ic  dS3x&#Ȫz*SѠL„92>sy[!2+Lkz$ bAN HD#Vy],< l.,yz! a''7h=N4)s7گ:ziH+$P^#ധwq _Zҗ8H%&j`6Bkc>&7r ]mluk[`7"hv."\N<1S]l]$C]Kc$˹ G^\9j-{p9*,1CDz)9Q~'BS?=>^Nv 茚NN]+qqO ]e0KByclv]]fH'-)'X/Ψ/DPi#u5[W>~u+%+>nCiw ﶫΏ~?V]z*ixXJ-c@93mO(.5΄B\;`MGaW\327\XA% -5 <%d[!s5'DB.e1(o$ #* GXN3{Do##z7p*jg-pK)T,>؁0DوBSݥ>Bm-XԚ'Ud3-0 RdĆxS2Կ\ Sq rDOR]v= IUM&d;R {ң YLC O[" ~j,"*/AI4pG&^ UךT:5L-YtU'U=}^ (5JWhӭrTlr]Vbe d" uwjHs|n|xVC*޴5߹-YnIehi೑ Ks [(aggl$ǫRq#}1N۹c;#]BՒU^aeL8LTuT"b5`xHKQ%"c`SP}`AӉvy9$ƺRa (NܜҖȁ/ gΩi*dJGYza|Mc)0-ē\Q1Z3Ѫh;Qu$n;1±BIyPI2sC\g&l5 'cL)$,.KE67[hEgBlV',Y#~R7]{ghLv TG~`V$*SưlWãI4$e'(\ʤq(Cn%.EpOa(wЪ=2"=X0R(̢Չ9-'UY =' "P{Ctt =MyGY"> t|M+גJM ș`XR6la.(=ؖN>} cI!I|w hRu*u$*E5Ƥ}*B1Pze\͚˭3tbu8"c4K`kBY~ą򺭠E=5: ,u7`(->Z)[!3&R h4ت)cV@4e5ѻ8c\%ƾEV>Sn*5$v2Ȥ(xS{'LPkfowCag z2<دDN4OҊ e:NRKP9#tGQ=kD$08D!++oQ`"7/sU]g8zTf@cY,"y dCJI3q@&2)Ζ>܈%Dva԰j.Hjc``1zb đg,ИQYNZ3UTyb8xaxbm:lF9!l7gCIpo{ct`z[MQ?qIR"W)/Iꆦ H% LR ΦC,F_^Ahp>GGc:BI~%v&+-U'$%lL2@aK1=%s!"Sٕ\% 0.<(9~,ŶN at@HZ |;ֻ,JodžcQ`SUF-$4Zt0\'0_PV0#> "1KW~u2)0I S-630Ucy!)H?#yOmU{AH oU-2l8XIbwN|`k;HTt1 I>hǂ& 1J+{4-_fpj !CIC%<1:ʗome#7Uc%)a/@7"b?-_FnȮ`D7*&8C=8n/W0cȄ  kA(%]1{b,02 ='ç3z4g^0p"xmTsb{I@7FޜMc`8~ (D,pG1 i\AqE2pgs'cwS(M#taї7CeJ}ΰRp24H\]-3CmZA@C;?f_G&~AG+iK/)L} k\$~Ƭ o > DHEU Cn a=%s|.,'6 ,EbQwNz"$<4:bwATv/6/5t'a b%шk''WHi LqG S23jȘT a hOeKsG␐ѐtی_Y 2t,jUN\7j0Yn NWca*(K$;eѥ#8 Y,Hz;f7zC8ˢQJjdEO 8e@.5XNA@ Fx{rwNk`N`,2n*$0]G J1jBB{Ȇc=c-diCQ"'A,u9Cm*ٓli^"mUTj Rb [+`.ȁK@g-M"2Fc*{@&@Y d@rR?vF*_]L&u@ Ć,{JDUcEK!ZŔzyU- N,b! cdzuxO2tJZӰ&:32_d/vk T'NqGAS,/dHQ4椅-PvϑcQTB/Z dzqa410 i\'14j:9@,ͭ5Az#FRDFuā*ۀ oHl/bʖ \5 '֡$x!03u{o/x"$#uh^t-ރ(NK 1%3 BS>gߊһӽ^idD}T"{4Aw#DYq* (‹8u{vS)M%Fh5weM˾ tE{x`l!o_^ uXblERwʓZ(w*2ӡQjh2nQ)܂iQ(ìh"WLY! aC);EmЎ'7 . Y^U>Z*d ECCҮ u' &A{\DUA,EHڊJ2@FF՘oҽxDiiגVy^jU76l=i a ՇT_i1I{aXQ Bx12W(%E+'-…Ɉ8BJ=ZV.&'<\/Cw-IO57fmחh1f崚U(ʞ`ֈϹM}|Pb`D'3W YYHY= JgGV|CZ~Ⱦb&ZJ&2bC4+#\>Aa]v&Ҹl%kQoc])N/x1vFNԔPՑNϜ(K$0Kh>RNHcq@ UВ) ː(G%.b2Ra/ݱL+äQ5uvH~+XWPɈ)MM&KF|n0kJ#,Ya3YX9Ap/=?c1̒`F* NȨ饽ÁYI)ˑ [*b'0MzU VH =-d+LdV7=UV4t}Eb(|\S[qP <af6b%Nat0b _"F5]aL>Ծ `7'%DD19;!zoFh%OZ8SZbK%nOdAT._$˾ {2Ӟ/*xoCw:a7sQV|f*p9&޴M=ϨZ,Dc`.rz OeW4%tԤ\ f0XZC![&.aPP3}AW\P 2At=rlň" nA5@iQvV 0HI2 sS&L 7| 74m4StRbbANBg|vvYVsxсO.!?zdF0VjǥC֠ Z[} Vʘ9H$dj/ ^xUqnq -4R 4J_o T)aGSy#x.eۤPoz,h/M⠸yd#."7Zǥ ݌cZKՅ ͌5SozѦ#1@gg^酕xXLY"qkf>@ZljeR E}/B۶w(aVZc#=Ra)=%҄i& |ꃆJ8ms-H52ߣfp;Õ3ȠXx*lq@]Ȁ)CTM3 *RmÖ1 3q)Ccd%EMydo(fL(̳eEvl$ ym*0v2ݥpK)Tt "}b *T ܒlk}OĎb-ч\vZ9čF6tYkB`{ĉ<;ڭˎ؃˴ǷL@A z8'}JDe7IWNEDMLM؍Co.PU2۫kHs:b??Mi|uI8LbenȤD Lgi WRJ .y<0?ŔG>f`'+2WĠ- ,o"W-C ~£ٗAz E?& vH:׎kp-Jdc !fQW.cꀦ+hSEFî<MJO2s7ܿr( D(iU`! lj|1c|(6]X' D݇4fصwM 3uLR,y2VHͥh"+jNyV yZ/Ң\\ևWm_!HL77BrG5/|16:mKBy@6jD|#ȻBIf(5} bv dŽ'w{`VgG*ks揦(u=)Bx.$861v}S/X7tm>z*J:ZRv$٧ 4?MH N%zZ)6%q$D݂-]KY+]@ǞNz&ZĴ<ĠFk\FM|jR'>g0a|Y KjdUټ 8ޖ*y=IzGNUOTdQJ;h; ]M2lKIEo6@XW{K&ߞ⭃Z5\Ɉ-SITx{#M(v!IE./zvwT5q>$&r7jb&Q}sOkFO-'$9( Is`G'GG{m!V LW{NQuID**Y_`6"ـ, N)i"J̵H-ZK%2qٱhIqoy2sɨW5.9|yPT8{JQ OoEiw>=ƕt*K _m Ulj~ya4d9r?NWih+"fIճ $Wcg@sKxl:>&L?ƹ{zS^K0Zld't7յ0*ȟxKar4.<┄%QysFZx m0MMV lmvIGȡ эm!jHU*HNw2!8CiɑGj̱ -#j@."ݷ"c9YC!33 Xo2 ^*0X3u}d/NB BVtʮ 09"9پAu-ఒHWicꯗ+ID=_~c_pƃ3?uqV*V.W%*߲*a4%Y1BM1 j* E&>6NmգCl'6RefSʷ-/LrOj( !1uQRlHhšm$fF`2>`H&Gȴ$eXًI_Qw[ԜW1s5 0O*na.Dka -,)7!w݂.V<Eg 8.TA+e8K_"1oٴF߫K޵Rz!~ݔZ|5jȄvd͗s# QQJAsoW dIݴ="jg #sUʫ=\N;3?A{䆩Z:͏M嫬ۥhL qb]ݷvouhC|ٿjM鈦bק3^i^b"ӥw ƺVbaTX+*>u**pⵗW+Z~ O+Tͪ{Rz坤%T7<͒CG_8W+e+>Hx )[*w)L&#omہ-2Ϻ}0\LN^VW<*3.f;T*a?eܪuGs`صaIUT\ޚ!5HEϱ/N* 1rIcfp3Вuӓш29w,OŢŋqѺj][UvϽl 9`xk :bVC@̢SFs'n{U 0i;}^vx(=]b2+NRDtKosԤ96ވPpV-yb;iZr$M; wa|5\\.>Q*&ږ6Q/W)D&[ hlF',"cnαJ[Ռl"F^K]՝|7] /MyoCq.3jvD$ G*d GRT=4f>MskTb֒ l/,)OQ6赁j>r ["-LɃE8ͦb-p˫Q&mEwLM%GZH_|cԛ'o+bɃ\Cl;y!7!5:Zi\^5 Y;(0/P<^I ^v37@;hb=d6;Y dT!Ek M)m`HNƮK4*kɚ[%%U7O3M;R)Ήe Ot<F`_JO()^sW6H$,6Ǿ[sXo J[:/[]a^u:agmdGH]_|xR+D?sO|Dbl7E~B>"MO;3vm*Vm%V } ~n=uQ悭ޅQt ߜHmBA{qZ5|Yh,{kUna7DLSݙ<)<"Kt-"pYz $Vsϲ[|DA$m'AB] XIáG?kU䌔J/,Kjj6ݙM%RnV/\I_g*ZݭER"Sڥ{.Ah,W$*e>u-.Z]9'r0AJ7]Jj|$zvg+ zvX\e_V"L@~-EDrS%q'?ޫJ;$,nCUhU>̻޲U"~YF}Iȱ""e2jx ˢ0QU= [ Q$|?d"Ȅ4ՏhfK3sP͍+YUKRQI;4p,,p7^{Wk%6;_ EJfeA Eyr2ynx!NYPk(! n'+pЙ')6[QpDp{~&SO(:2fm>JNU;"BvIbZf:м,q4w3gtMR$VTMJ1տ _M܌՘i7w|ndĢR+[z\"lf2!qPY>2+TamXʋz͕{i&e`Rv@ٺ\}m-NdRV+P-n&"A/Y9℁b!M| ;C. 2wE@_lRB`ֺO'1hàG !ALLVӲ{ET~HX0@j1%Q]Q m\аۤSIEDR hEDϖ% ln>+q/ >eI Dwt/KrR kɪ+˪GPDA98)b%Y, RjrzRх!h();J6RLXȋq ][F|%6$NaxUg=gnd4v^_6L^O?ѥap&Ri]=@AJT):] J_ͭ OW "HP#;+;@-`Oxv@9IxO\QPfSR~eY  _~$TAaHr D!Cz̐2ЄL)Ox.5d4ZYV iʔiԾ0VBx ~Alc+ G#Rbsl+ DR)a%U>fg"tL,ĩX`y^!S=Ef0$I *{?=1IAOU$dZ"EPOȔ||9HbH|x7 5r&#@d/2,#-FEn3é>Q0y|2*m= co$cڊfQ}* F/K97 xiCJOy]4d:÷1y`i!z6'|j /4+E8[0Qss y{*1!إߘn[}_rsxD$a2Яn[ `S;*_a"k~ >.׬W $L]|Tjrc+LaiHRNZw--u˳N۽ne۶tSdf iHژ'RDT A|aD/50$4&۪O'H%Xh[+y",MFp;:Ifi&ЍzQja"bjJbm)댬jrATrsbL}#.f#YȸFPH\;h+yIwT󴘇i";%RM [f ʞzWgNV<׏p&9'_ 98wo6 xԡm)D N4LbN"BR~Ug.lĝeba6KH,~j0^9(!O':F:bc}B]R>86 Ys0͍ٚ M\HiJ6<4}UTPfxh+/2ué*r5F0FJ0MA$ Rϡ"<[ ƿXT+ݹd@%~Ţ@&AS!DPɈ1ͱ\$2P[CtLE+|,޲N9Py qsH6!6TYĢ &=ٜ$YJ`ljbKsR#5F.^L,^RIz4b\8<@4_ `O=e"Aܗ-D @@},Uwb5>p?wafp,Ǫ.5cTcнJ]j%dkDmr\3zIS2m8(jdN_Cz>Q/jE7y ry)/L-FK."CF߈˿衝?veo-l)?e<5MԪ|&ظC~ &5ɎB4"/S,1O\O-ƛ nuZ/ՋFh@XQ80x2P8ɲep- JVUJTkm`%*cϭM 1ڔ;Jlit+:*sa_Q{_8 XJF&:O u{>aA 2kcOkF.jJm`N1MUVJ/@IQh 4,m &PFT1޽3qI :Wt]A}#BGկDS};_S"űXd*\xˆd0Tj-5N@*L?H#L6&aTT*Z"wrc8Unņ"Wu-R$(6DIkL0EgUaoxN3T:#noʻ]LJ-D2#zB [p Xdrs}҉7?[Di AD1^ .W TvR7pۅJY$Uu#?t(KdJвF*Zi5us^ R' i^*(=0gW! a .t¨GedH[9쳗>=Ъ+1!DȹS&LӲY׃ yD4K;:)vo8%Ov LEj`EʬHgzz#.]45d:q8W 5h˻jU^?ɕf*O[j!o)#7R Q Nr_*?("b^޶Ndq<ؠPMkw\2 A Ydl3stKA3V̓-iےN Dg]p"&'MoUn7бN8t4P-<:j~zB.q&K]8~lθ#й)Fʡl d"МtQ,ZO$% PVg0Ɏ`u<& 'fl (a2;:%=ej2!{uA*hnTx:_d:;t T騦ɹ9[mpTVKo;Tl.Do-N{Mtح`Z}}&|MK_sQo^$Ck* -4XiHo -o<*WE{9wKf߯Xmh\`vܜW!xUĢZC ozUqN0G2=$LMxrW''YCt7dHeT9F ʉj]D!uTs-^>z3%Y-Iɟ7/딼bڳ`]^U4C9-C zS"7$=åTQ1B%r#2 7KV=y&k_!V'h{XXn(b俑J_gė4ٗ?;"\w|G@mϗOfMt Bt=EB=+uT@0bn3$?׮=#rZ?Az(S]ؐP(2"xbzI<)W.d|ςIeDa|/LF4?e*),ֲ@ҟREuܸKWkT,  IշP>CQEtgo3^SE(;@G!8 ۹{(&q 4ӴyIh$Ny5+__pXh&XZb{MLbk Z{14XeJ#M/T]L&WȄR5eϱQ\,{cque2"6+|0 Z}y$?iݩQ=!d-D,?҂#^gd<)a ڰ6\l H6+[kb}ق3jY4 '*#7sj$ `-SO)Cw MX)Չ4Cڠ&iH_m2YPf۩|*bR1P0=hXMR?sq@R {kRq~eK hHh1M'fO0z/usLAl7|`\Xa󂠕H6 ! T!@kN\v\,iz<`Df n,l ,PiB)q7z?D6}b1` vљNۿnݔ{8e uE)%Cz"6+J[Et ]dTWQW%a tAy$~1UulYnx\cЉO{ݨS_^Sru6gppQ(ߑ MJ`rmg̋S< ƕC-_ ^-\EtN%,\;/!H6h%HR#'֥W}|7˦VlgjV2P z_9fNswu+f*S0:>)ٟO#Q Q}':l  "7"&K[j e-GI@1^`ʂB.ȩU:Pvi91ݺ)#hLanPho*bڈ9x%oX6/r{{dZ OGFXTߟgr%iϹb)loO*>Tݲɍ! R)^Ti =<O/sׯUD-,#禕0ouҕpψ6=e #VdPVCdexƲg?.few3AB##*q_&dvD)b/pN\Yg-I]i)\GC-]q]) HvT͡+s% RM}"; (q~x\7Œ5i0%r޵uqYaNj8%p?pgfS p`Ak)(aR6<.  :%RgL"nź[!jf2k#+cJ=Bc*c3F0 eI0kvG_Eڝ xz@k3EXjdVE!kuiYNXH! 7.,Dr#yZ@Kv= 4c&:x11XQ5W ͶnQjM$iS~ӛ»AMT&҆gF3e"vv؆e"1E2(LIA4?,E|-\*_~s JEQ]Qph7CH-gI]N(@{}\j(/p!AqB$l`J$t!k$ݗ+ܙ@ؙ]H&" Ɇ̒@1h|@-2<Ep2Toiq )<`uҊ=#ȢaBbINU{S= ^ڲI⮦%Bf!e7ՐսbP ! sؓ =yߙ4(," Xy c,cm  / V-5>-Wi" rӴgb3vgL\gU>< Q<, tt/( 6 ҕ*l/YxW0J&|I/.2z;qB՜18y)kuIm, ~)FR"zPju2[r_Mym*bLMM2<&l]r "Ux$0FrsȐԬ!40*6sZݝqͨE_D4b qdsܺ|t2]l9Y⿬x*!8Xui RߒEL-|G(E{9 IId<6(dz a"5:+Fe&❶`*C(F#6dKGfPf72&cÒ]>1$\ YKY2,ErB|rʡ&X2vZ~0QMGڐ#DJHʼ\J*v\KH r!.~SP qD L,K)lLvGJzX~ U1Mc{E .a"(,)a^0d7G톷 ؑjZ(}rh=*q#7 K_U]&ebr0 䡊^E\NPt1/A( +ߢ!{m4hX#LtHPBOqݸ)hXxe% DHEV ظ 'u`@*be()-}do Ż8$JZOHPU$gX"Qm}TSslӃx"lRHDdWa;/@N"Ƴ *Kc;o1z c|D7RR֎ ,=! Ǹ*g%"rۊѴWإBG O $r3S7น]@xyV&߬pK$ # m M1W8#rEхG~A<B5@(/ "!mr F7٫a 8|\ DG%_-gɉ# xPWb*Ͳ 5otPy8|6'X L G%k{H_@J"2 JD ]L! 0$ATg<)nD+ 5XĬ^kTA oSWA@vQ)Qk|]|.4 UDodzaM<)/a1' BW<x) N .ۼl1eHփ.Qd I J5w2~cЂshHH]cAؔԿXN>hpU[0BrgJ^ ފwZDv2dդlS(2ԩ@ 23!/R_xVHR1 1}v KG0~?CzxO>$x`q+5#~'_lllxo`.>c m] 9Z1Ӗ;h~ r3e~D*4J.?DYJVp `F#PLCmQ`-:YSdOh.=6u6̎Jm:()PHUh%oD3ٚޅTB'`^hHZcpukR2_?D% [[*2`"C!9w5 쯂=QIԌf$j`DAyd@s֐\.jyF1 : ўChFT#"A+#[;9|5 HD̈U̲ZmrI8f9)gʿ#0Y9'JQ| Vbtoze.yɇD#:h\T\BhvN H}fYf€a).+>S‘DB5{A4A;DZe=Mx%oZJɴ2#y HJ̞şhwhQ jCg"ZP}G: RD4 ’#]Ǵ gr_ɢQKU{oDAzua(C) Beop')ig{F,*VDoϽofE~@B>~n+?xl*Lmlhh:\#B!H (Vܴ/D$*1! Y>q ]gcDE,JHRTԤ'azϿm wsiAJV$ ]8%մ|}BCfAwMX D-]B%<뙌H+ V:%-3|tG-ħr)7F%a px7ش 8h'M b7 {M MrG̲f L&"̬*r)D:vʃ 6EdLAu'-"IźEsU5pGb_pԳ9ewiqDX D#p2/-דjZAzJ laWԫR|Ջ);Ȏ" T1  &-؟fmE*Z%Ep.al8}~DݩݻZIRuk&f bVBY;Yі`F?vJ!<ɏLw ۑT G/)A mĻoʐū["uH)8RW BB("4\ D P;CfG&+ʥTUkw"桡2+2Ȧ9[ @3YU-_玨D[czo[LͤU}y8IU)*/ljI 3o~ם줂O]H+j&er#b H:7~ $2HRXKڮe_}5Uf;'W6w$ gO$Yg7 ȴ@dw##4&"e%DeQ/9 {( DsjkB +@ۮkKZ nXږ[WYC?Ɉ66XC+7:RWu57fN_gI8H4(9opT+*j[1FNִApܱוs(NIV"Eh1W= o/eG: --A*#kg1`6fx51)?l1)/z {P6P_;d՗W%4rER$A/E.82BDRSUߒfV\켨(\pߪBU_B0?ކ%\4τw^)5b8-BwFh4eW%#.+!jnN,+>Vҝ12S!2^+[+6;G3d"%CD3dc.oX󺈝jMAֹ]c+f(=DuAJQ=SEPf%^\Y*Nfs5uÕf/JMR%?I?]6~A*%53}_.G7lbPyZi`138م8HВ~080mWt@Jd \ J-/Q5NWDJ-H xn'6 D a2p2 m䔱Yƒt0]-$\#/''718%ME #LlXav3i}EZr;i C  ~js7HZ&QJM\8cc]rG߰cJXQIܴh9AڦOmʇfUta'iDvM qQ4ѳ;el#Oh%t0PiPwOLc? v%_R2$ xx *XFc-8 `BusikM~1X p@3жw#d t̲_)`! Z;*("/e,c~fYįf0H SyZTRDe! #H4'ibD͡fjd4slbWe? BhmVzrKv7R/Eo"e~;mH/;THz3/ 6nNҢD:2j@|%"jm'Y1@|iNT͸#,Ig3ZO_кuQJt*X1ԗKeѥcyY$WSdhƃ::EbїL"gݣKd}nU.#cY,qpI(ݟ!͊cǵ!*lۧUTlUb*ɱX:;h!}!ޢ~nE?Y%jfHmR<|eH +Ђ"ްI.H+]V! eYK)9,*+ݏ@.nv}'=O OjKkiWC%CeF6?[wM{?m_:l~a,RT*+q#Š3L+h\zfEv$x^ q=AV`ǂ1wp}SҮ,F8^˙OHwkL"hmT[wF [2Ő:Jek`pڵFܟ睚"X *7%Sk2XBoHG E A}j\˙)bUbLax(w4]+;` `4P1|6N-/ 2pu3'|PՁb+7Jz3kn_C׶<i|$=A=uj:;폀~MpO/ Q~E)'0kފ^D:>&9Kqd=aGd?*X;΁z?J4`F#0tiB:<}.{>]EKL~[WK1T@3{d"kM7'B0O鴶~佅>%dAW+)Wbk f=QEykk5zI'I[z!i8 B^@&(keS|$)؅;u6}^eX/EA0FYg]}f- ئ 4xA!1PkT!srx`Nt%P1sk0i=::,ˮ e̿KwJPxpL#TsqNQhsBYUG :V/Y.Z'o)]k757L&(Iz=yLFz/AEO9X~ &=ӈXͬU'@Ќe"I"Id5`Eb!Ź!`s,Ġ/ p||;猑-&!CVR2bZ` ;,XKfgJ6i7>$N! L3 , ٹYFIŽtI"uĈ\`r0OaPLRmq }0QMwB- No99`pt6 cQbǎJtB'd=鎍ePq"VlvyT }C09!RʣbR%?HNApBp!UY7K!%s%UXJC_[g>I 稆`9i{yq* 0>ͥP;" f+"eAy:?v)qIK`Mymb{/*lBdY"T|(W 's # m' z8QbEW$_w$.Z Fۓ!o/1FM^-cs"@LgQPp@RO1`-"Y =C? ب[u^VhJsHr_S}~,w l"h4<ZhS΃Rʲy?4& 3ዉHޖk:B)M5{CD6h,cdr {, PomB;L~ V$IźX*وxŖqLkB D臄(EJSRM034 ط]Y˔TtLLBnWiHM @ 6D3V%u[8ի dr#@ I5J+CȯܕqR *@r^",7zQ340 g{!Bo KIFshQ ew1P|5U C={vUFC!8"3 0%FA3lV껴/ dvtO v@}]adBFۉZB3qTĝə%&ȧ('Vzlj }c!!}cKf>ܑz#:bv29$,Ei7%麞u_He-[Q% n$dIąjזGriG, -eѤ۷2|J'u#Xn=hh(1_ˉCv+?jB1zLħRQj :(jQKz/@/Ya2ДG(.ɀ|Q / f}G(6 a_DJi)"Hr9&.c"b@A.AW+M @+~h:p-HPF4SˮEM#|t )XzL*UJ}r L&,NϋAP)3ATX5[y0&Fe[; 5ZC(=~-U2-/ Cy 5ID%1!{XsȲS~m#JNJ=U. E`#Q 964 eBVy ¬w2)8 O->І`n C D㖹o)* rfcF=c擃4߈²`<el-`qp;IA%v^W_f>*D |i/dŤ!z5:Ec+a JGx"$&OMC* >cq-P%z]BdM +tX"AM28xp ̭(]k9p/5RpnńZI=ZMcH̒`JBp z) NFYiؔ0~Vel`mJOH.,TN[_Zbꄎs;A7`UN<6 YZ\"Cd{ ':* ]``9 z>I%^Zz5>Ayb)HGsCka(flXnGY'flMm ʛK7rv]'Q jR;B[>6mE:UӮep2Պ3Tɡd?NCheSf eI*´BצmXJBA<@<'09j&~ E i81" [+9B_SPjM"6. IN}~f|B{/@hVRcO+Ȩ-I"T"ՇjS(IC_ֹl@,VM4nX|CFɄ"4sc(ge'DH*D. j}'*B'? A]117-&#XyiRAھyaPL "} \V{fO,%b H!guA{ p10Q"(LnCFWZO䊊p7OPGXZEoV~h.KTG`c AUИVBT (U aDP-SڞVS:T>Y3!ʂY ȫ9iEtc)2ؔ\9;9Bk \owBXR g 1hT xP_i+I!<EvfUXiu˕ym,C6rRy'~)dv1K M?<}4go4r5Z:3^7#KKYYi31)?29!W+f܉qq"gR]dxt7utXTlAK<]m#Q$ H .Ob M^&8/&`1OB|Q C͐fQ%g N`nLBa[=3#:aJ([c"|E֬2kߺZ`e)pX2."Z ],Ȭ7=8 ~LbqJz[5N<'jp-U9WH-qt08<|e!*)OtP5 [4Y" %ۀ촴YY+l.4p8g( iM_jߥY\3in[5wAAr' bWҤ&3B"2c1lG2:fFseֻn&UwKDISu,D(|5>4 ^0 "t|sSFv{) pAc)'hTE8~21ez+"e@eUÃXQX9 $Ȭ1e%Ta°[/WVr+Rk. idfbJn-Sʒ"4)w*&&aub8g?c4>Qq)d9'pSSYYWT7]xG"N~)Rp+&njN GIM đͣ*羭}ֺ jnvq*c,ͷB%ѷOlPWLd>>']MmRʩk0ARK:JJL: : WfD6\S 6jHf"?YCdDٛa uH_p!S.v~$LY5[j!9%O]MʧW-R_lkeUDg EhN! :QZfDZ!q`w9yNʖyYxyAd1=WT="_x"S~.V0=-q>҉dJ>+K) '"Ϣ@]85լL ;B:*,; 旪zdo~sG(jtuR~LRtmKhZ;lך4q9jxE$4ZHq3[H1oG`&UXO7Lw+WL،H4f0؟/!goȰ +yЂ(5*'rßN_k8@f]]mLJ-1яƑkSH9)lnz4ETۑ9Q9f 3S_㸕, 4;L䳜쪱`^T/AbCHDp3[ G<6| `-asg&9ЦJsfaY*S0ݙ3zJ4Xk*c"jM+2Ӱ@Z.%cڮO.Ka'xL|RH]jOsb9"TlP\eɈ0;|eît,w[B/=>6W':MERTߚQ]Q-0GzΌ*7cO=q0l1̽7c _ٙ(VKRD#ŞFsڏ^/fqQB#F%iy[0!X س`|cqg)EW1hdH66F|>ejԞI : 0E75sd]} !,zYkH\!1˥)=Wu)*d%Jo7PVMUg[i@ LVAڷBrF́"F)?݌Z!+i/oHN3:3~^j2h*%>?9\/fBcҘKu9AFAKd4/73ހ_溘i֊ۦ)kiZg ~]bC2S49p \_bkѪz}+9mbl w)tl'!텐 4vu]-dbR˷OɗMD$zs\Ļ2ϛMT7B xJK8#CSd[emly~4 s nd'gyAiuV{2*K-I~UD.D]yȕr@(/9V;bFd USe|x8Cag:5qܞ VL TSH2 9Rӓ F:.ŗQ ̴97^&8B!:n2慝vD⛘k a`.>e\V&ʂani(Qow@$&C?6 Fmw 4N\۴j[OQn4XN7E HD~WU* ^H=H?8PFOL8߇ խ^RyU{1̭ KźX.Î9METE%u5x^$tCYM؄,R\2|. _}hyw֚4_& #@Y+k!Z*s,%دrEQ džry eMXLrf,N9 ? q w6&[ۙ 25܉8qt038 NծVALD1%b@S[>4Rb(Kh?x䷓$ש#Rx`X <B)\Ftc.A,A@s p,ЙFkՆ~JubC-*Hh1&4MBpe[qPk$ s⺯>+9fyh* VMEZF&E@ KpKԤOiU' /d@7c] Uy^;rdWfP|p,e{7]/CgĐy5caIe)-םaNg Z>D[ ⃤D0\wQ1g rW#b}՟ ,e!J-X!wi `iNE C/;*$E ,+"SJFVѱiLQ@XŎ[=PT${B1sɧUs[ >'aN[tQ~wf2ZRMFZ-o=[$/Wݳ&V2Œ{[Tr3}";/dfñ͐^&[i*RTe&v*Xo, 2l H=%O̐14fV=?tSTu=Hvl憦Y85ߡz`7[Z5RZefS+TP|6E^Hz7Z (,)Z`gB:JhUhhDTYVR2?+/EY5UcṛYolFg:c`UAH15‡&1#[*A#6apnpy ֛we.k#20dظg'=КKV$Rl 1q&qP@S\.K*P[J$hrrJf.c|x`~Q/((sjE&1O,F< 4Y k/p xB"%(媣HŹnO^Ҩ( {Ƙ՗0%Int-2@pZ3O=8^e>b꟣Z}TĄmi<&IS^~3Nn# oIv3`t#:!t ES% .J_&@\ X!u}N#?Gajr)X{bdFΚ0i>‰Pұzܩ8$JzR7?k` 5c\?9Pbgw&NаSxrpR (- &{b6n h=ncdk&]X6` Ve)H(ܙQcpE+ZE+lbc&w|}n4BHBDvp٢$4'wO] WH Bu-p%8nb3P 'JQW4?q;! f >۫)x-/شrMoEPݍv I{ 6m8mCPezcz(JN.kSePP$ <% Z5ѓb72x}o7&+ X{wvJECl:gy,8] GtU+K:K%$(> JQB:P ](\u зl&*s4hӰ ?nՑczNƌ<"O`A Zy$z[$Tc ϐ|qBtbmx_?ꀍ7Q'9a5,ckCTH#0]k:xGCpe~ř@`X T`J$aҨLLz8b1s\ԝ0J Zף! o_EScmfh8h&JQ?Gy.ONi\xH]J"M L/, 59DR BmYc# ]أ`C'ibU_|ŀ' GZm9I[ KZ1L ZARB3q`wF<\wT)|ƼvA1$F? ׅʙ؋)' dFlykAB)VaeP&t]fӕMX١9%`7*eA b;Y)&&qz$4J7.0iKm^'+a#cYp`(:#9fᬈzϔDZo( .{ bT ;wU1 jr[D \8*-%,[XdL:N@~9QEURtC -#ޫW!4+(cfVJBvD =+BL!mi1 q5'KP2{!-^B1#gxEzm~ (^aw=^"|ҲGX#82eJ|5R^AԎTSa=#P{cSx'UU.i7|HIgess~Xڴm΢ ҍ5 |NGic(Y'Xߵj W&g$Z3 =0Y8kE̫@\3;L$Lx7omZaQ3{鐘o{vt[K=t/kk/A;( mXSZc6|Պ477 ;arek"-N{t:A/sǙwVR0G_IALQ1 xOkRItgIi9kwb`t{lr>%IQo4qH,i0 ۃX )H+٥Td_ІRs+o#8]ztN~';w >& 1 ma* z=Z_&JITj`E'샱(lHV0(^$h͟YTYk/{qa{6i:$\+ IMURkҧ? X҄fiJ-8(tŢv3|*͉޸AUcԴFq {X_̈`ι#}ӟ(*z6Y[ND4|clӭ\lkwO:^x%Auin+1HENN: U,s;G _`QUx?"940[m0o"tpTfYڶ}Y_RDy ȉY:z漋>0œ&1aOMK& pG"A,MVw|"p#c ĒWgkTgw%@<~ڙ_F;1Je*pk.|_1c 6 %cyizrQ5}Lk>KZ*f6&_uL<ʴwt=TLJ=>u*[o$Z'3)iWR`k 欻d])QsZg8]1=ҵ6Sx/ Yf] KZy 5$(Y)`DO:]ZITY,(6Fy]JxzBFf4 !ɸVwj^@43Á5{1PE;MNv͖-N(tFA~DQQwN]/׸R%Gze:SB EWCRmjLXVDwv;U]a >q-<-Tih/×EÉEҘ{06j\yA[+KUHߠ9GU6a6L\/szq놓Ô*1មrwΔô*|$iM% n.QAӇHb~2'f<=eZrB宷('-6g x < &(FsbU_UUP4H!Iu$= B`BŨ2%j[։3ʓ%fѵ-{Qq%tgvV?uv .:d;kx XA*&l~GF,8.ɢ 28..wRU;RRs]Bk$a=o/0(ivF\̱&P`8\s0(am|ʄ#(*C2A< hRlLE^>?WM MmnC<9zV?'8ZٔI\zSʍ<>\ܜPb׽yNE*1)!Qif\ͱx8K rTluF\a BYՉK:ia0W"ZZB> i#ƃrsJaPO<" hԘO ÒOH$vR ri|kᰘMi! /P5A_ )3 !z, >ZK}uG%I#$/ߢ U!' Ѯyv!BưL TzuCeɑl\9r $$AP>Ԗ "p &Sd9)qz}X(Cx;ٞIddeш蒅ó T؀&Qha3!#A!AX9VeNy6`0XB2q0K ⍫n-"՜ Ln uLR:xi$b\oT8-I(i4l  _'U9nw *W-X&j dY(2 \bB ʜfAZ)+ Jcʠ#"H@ N@؂!}ˏ4 $}}OQZB;XDJqE{ލMcde58~Dc | DP:_eyK`n^b~%>ϟ~J ~`cpvWbrD20?[^sv6Rr8RZD1/G3v{9"%Ai3VOIht).AΦ+$@;5" ;o༧>4U‚1UΊYJƠ ߨ)jh:? 1gvPbR?Ŭm4ueBB]K| {:?~hA#>`=[DFM כHbkF(GxChUts>()$II=̚5f4T qqz9G-܊|#͛^, 6웭qv Ȑzy"R6RgsZp`O.8\=UjG*7r-٪Iו?96Nb}6][1@ e&I:6(+o}#HH Hef)_~ sl9 -9\S2~f#@^lRcceLCR`lYG)M`LEwϷ*ƎYt8PEp;?25 ƫe21^S;G'Ybeo#sb!K+ٓ32F-I \6(|oAca,&{fC n/D/"͈trkxI a=x<#'B)wS]f໶#jbRPlS"_$i9L kXV K!J斶R]Re"Ifxog ,f !5΢٢HShu'^74zm".U \_zp`Q7&5BgA2S;ƍzMAԌ|p3jU/6a`wL1t*S'ʑyibt7R$9G0 &|~|XHp̤֝ϖHPz.\R($'r!OJ[~Vv2S; 4=z諦I`CWa?0usQ^,٢T+dy'>VhekYcUEnpM+B "~ܹؕHvxIK^P4ew$4&"*Sp倚^ͩR~ )ՄEUMf{)em{-'q# *ddjÕhXZ$D>H >f"GPS?i쫺OIz6:vg{~E& iCG؂IF$oaV4u^s|ّw35t +=z:管| !R*2{^G";or\' =S=v/ʵ"\V͟Z'|"8׺M}RJ^C5\h^2~*7ڳHR#Ds8O 5(Hd}0F\* lGU'79;oswhvڴ"t5qOPw: x:IL_]z9 4 of$ZeR*dD3^ (|ǁ7rX]Sl>;@@IY.a գldJoQ1)p:&>Mطe{*ܗ+%U ߪ"xe̕swl dcY\cb#0 C%Xf38B<ۮ+E+1z31ILF"w0Vгbo&4H؎^J79&jc& _8P x*tNjrp%+t:Ȳɹ(Gp˙YmtzM[&_dn 2uX&_\ "tgDZPuDihIm2/< kjADE-TĨC^)% Nx *eVΨd*(^޾V/b7^,>`nJv^֨XC6ޭѥqGv.+/H$=Ayc/Bjw?ߠ<=vw% ɖӪ<}!MDhA8PrM-] &TA#H:W~qˋ*~Bg/]%&0Jzs%l*Vdzf}7i$TsR$mkt6Lh\3h~ , 5*o=Τ?@635:ς B0T϶99bݻ)vnqQUl<_}d[]Ǣf˧}Gm/Ķ="Vnݬ^ϊ4 ƇN٥XT^1دviQZȽ꾦bԐ~פ݊TCӴ@A/C5O wɨ沍46SPHSi/9MGVl#oG^%{FNr D@ T6*oOHk "A94xzrAIQBfTqAWf^{]&^ F< Z4|}wDW ӴGRK4 WE*hޟT`MBGƄYjlc[xmz55fH*xB. Y'Kr mCz{ROjS8aHa@&έ߁qLuGDnZa VtX* Cve%h3lV]{>UD3,6K21PSG|/n˒=EK *ۨZ˹юެb&<QmЛљԖf<^M,`<]JvxeΥΜXT)=Rel\$%Fή([4%=!?&6PE__?F)ah\~DG~or1K^āv/d48,r9B960?x$^!/u3~{ŧxe˾2i絏TDy'I_*=\%@:\ 9*?!Ykl(=(DV)[ PUs4|7'E2.Lg* xC NV)iw|c_MkgI9ǚ6讇F-wFt!"asPͿ GB!Ede8cvlB.\<ęE-!5Ů֣?:DHon-vG>b( )5AQƚ%>FwSȬ !<J0UHvE9,>w.0Acp$3švjsg~THl\:(Iwx.hkLG?BH%(;,iGY)OӴ71a1 l.z㡃(pj&5d."KrVW[zש$u !d))=nR &ٌp|XD.fnZRHR Ǣ*6X% }[< Ws(rG53Ϋ6QC,2 \l|))8I#if $b,WJT>?/=л+S-_@8ÍlR:Ȅ슖ڽTC>{1@hU61> 4BhX|,s.ǞO:KS">fn_CR#=(?EKS6߅J@L.+G(M1`\H7&mNLmX[h sQ4,~\k9ݾ!/T+3"nymwBɵRzn8iխJL'/f1) [~W!1tK-Psvdy{;S涭f贈f*= Yg޻Zs(k[stN1A!-6R $dsVJ܈s>XO3A)1)(ϙ"~&^A0ܫγa7X'gԑnIsU][8W<[<^"Ju,NFueovʆףlP3Nd^+)dd\PBmBPo(BԺPc O$݀7Ł NqDADgiRz;NL[]LY2[\bN }?c5S9~$ЯU'#R HjD3d11l:9m}2>댧%G'~ܤȅ&k_U[P|(&'ܧ="~ z3_*g(>|[HxlUj2y`q՟n>v*y4"ȺzjiI/Tgq6}Yy#x*֤$\}edQv`5XwMH=ozx]TQLZώh,7B$%L._ncA8V,?_p \`̄ЭiJv:) N"Kn,`tl^] .Hdr_WU[?XqH)PP 6 `Е|,&F]oY 4|9 ymIJpm)АQV2qYLw{5zkwTV+Eopg0 r{H/=N*YFjpQ51WcytB!ɧt*(f|͉tOKe nch B!u "r@DRN1N-dc)U4,]K9VfwQ. E 9&q@%*Hh)4R$GXie7;*05lǒn"Wpew $ !83/-T3FVb޽c<w P=673"yapVjC3 (G=Oub"Xg hdh-L8Bv*`0 Ӱ[ N+3`N_$ NQ%,jv[Rgb:@rX.n}k;3T@QiѡjPH UB0z%(- 甚9v^ (s6T$ 还DϱO zt(5,Ta@ yIS^5%vKiL0J[%Yy,3⻑LG?x E}A<`eϢrZlD΅`@3I_XWA=9 A7/ND'\s  Jo&̎KDGB:fGvF'ЪwfL>qs-L СLzm"1a$1']} jn`Bfv6;TmC{d"%ŜܿrN<q<˚S95Xy$ W'SvߏPWs2wlU-%?@cޅB$Ȥ[MKk^3=cмOzAˣɟ tU7e ZKKݛO4v*PFG ! ҄i CD!30KU ?ѩ$CH*H (MGI bf JD'WU6p NdD846""=&jE=~1A0:P&bg hnG Nmv#n6:4\TTE^mNqU) ^N7߃fwk8?`) b L%MAxૅ`D"_ٱ3#@ O9[ZI#N=`!-1v lM7&smYp mCS82ME˛dJބ @4aW=&sD$+:hE +2UB{֌E}q`ӨKO[!t(R%^l(V̔ '$Ri)1C mKkv!_r-K%mVAl15b3w_V$UEOT@oD:Rֱ5вVYN?lGW/4"Gg5ztrmzWL-A('e=*4퐭{ .6SO&Y_FtPݜɬ0%*3o !щ(D(/UY*(RƢ{ XwKI-u#U hi6I* [ &T5 9H00Itk$aHlI%T)0x7}W/:OBЅ']=c7pZKaLEʟfTe2I ˼צ@'(גU$$h".Y Lޙlqqy-e)+#8n0l@tj'JG[!G27iꐈ{[S$h EGHu$%=-R怒#KHlD;@V(DfMg2' 2Z_|m⌏4]_tt)M͂@vTfqb8( #8)t*2HŒ gBkHM`bA$B9wJh񪭘G/f ЉB) V&ťN&GjR3 K7"f T/! Uik6`S|fi 5(b\R.Ir9'Av"fjFZfDI)l8ly $i >zۛѢɯIuHlC">*(Bc@Z.,l!l{ *Iw:\I*1Zz٫reI`XyOJ&2x4|&0AeWr>3ܳb UA0ZK' tFyEuǤOA9b"WR[BdRʕL؇No̞+ G!oac@DAJx}y L+)v聯~+]D@yPy tN!"u'BV]wI E )]I? +&ƀ\Y4&pQX7 *8N@+6OG&lk@Pr4Hx-CuA AӂqGAe1gA 2e 6iiC3\GhS;נ! $zu "qP Uj v*xɎMξhlR(y)1(yӆ:1,WXn9 #"I, Ϧ v栨 S.$-CT%,.N58 S_$+QtA q@B=#trD+6&/{oG(E (pۧǮ> R)W= `uY8nN%#!Ubh&~%BPe $i'dH/AtqQwt A JJM0,d㟶m-=bİ6a$иَIڪG}< ^m|9-Z) MzLsڟb;?O "(tj!dnk ؗ2Po\~Ӧ-G/-<7A^RԼuk&5 23x5(BCD4VAtHsL5L[ yD,-<89jp d'jׄԕ5 bWj8˵5worZJJq<# J,qñ\AR Y(5!H I9E>$f"&9xbzGZ̬TD:);|8/U*CO[*HT4e4&'Ɉ H odL+vpOF! |#Ҽz `p 1-9[)\2-[@i#!dZrS6):J=<Zh΢8HEG-YQwuHaC_L[/]zAո]GBO%ٟz`[.\*d¢'{l~ : 7 r&V.y(}QМOYC=G7mf(i*J~^;!|F.L$!֔B6AmVc3 H:t5v1ve]NWЧ'?Veq9_la+oaz,yJ)?*`thi4V]`4-S=VX|8)_KXe)~#53$kHɼ2QPe7}k+QۄXa}N 0:*3Iޓ4谪Vv)=):qBIѴGBԃmV>o%)~z=Lx Hʖ G9ˎ\H  /:s?9w$5=RQigKyI*QR1k93b_ K%% >=+~%( nǍV4)/BjM_52/H~V ֕NGv;&^͸irpUMN/H!B-x'NxO\lX'pMrH|.{2a|]ȫi|v3ئjpO}h0ʁR 3c?R66!g1.Q.tzl&p+8H,v{ꑛ=E]%&LH!Ek";L]WHEۼ{jlVQ'¸,-_4DTE 3stoj0a cI퉚sډF^1bfq-@Ä0 ()U^Q~ԑ GkƼS:bE= UM5񃟹0BJ ^RX xog=*k 6qRS1=(%ABCReڅ7wzE꿓LT~/Fj:$NQ ~Akdw6(;2OZ]2=vv)l7}%kdEsgKxwr ;JE,R0nVZîۏF87K|y+Nep:$a=pqU`،RFU.^5TJe;NOQW6q$w]EB2asv٢&|A ]96)0H(@\Sk,< Xt/1/(:+\d,Pwې/ FuΏuev"!3C&OBmfôRX"0SOd~\ވSU 5#|*pW2ti"C; C(j4C2@!vX5JbF:dt&fp:e dM3cȏdJ3x ,ͷ^m^lfajtfܢXM(O5û[ݎZ10aNR}:X"C]j;Ňa JŞm%eF6'dKy87vpBoFNRԕ~ۮ26-wT]Sy$?ۧIMԬM:/8#<\5 ]J^)'%E초 ECr ax"Y. '#~]oW^0 Å$"!/Ә$~՛Pˀb"K\ 9EˮwJ%PًaµK'=UE'Xmф"O+ ,ʥ`#=L~ Y1sQ蘈Mvm}$rЬ-xhPš䓐 dKamv*Wc6fi7ym\*:#kQJLeƠR0~mBzl5X,+~Jn$*l"ˇPG ; hUNnLn(|# (XWS? n$ VDWONDNTauo jkO<6&!:>j~igY:98!-X )`$LOT\E]+X]*d+J^|r7XG[qFW(钠sZ#ى^=&GED;Tc@$ E"CCv6:5,:6彆EWCr+ 9U&'_@|ҋ"-[ ?I*72l jBm6 `,rc,<4( (H@yח䠒Ã9qRWpbf+y4)r?/s&L·n&ǁ0YpdI\*,֍$7ѧ1wE5މ}1T)w P:m!!Ir a@ʋJZiȕp$ {ONr#1Y,Ͻ'6R<ԗ  =hgwNim*mzZD䒕M]3j]|Yى4 {Z5uh$@g_n. C5/+}[$ĽiDt9>9_Cj5":T(D$M9A?3 ?IvvKqt5\xb')wNNA3rѪ3uPΕ+͉DŽX6\&/m Wo{&u=|m hcVqL'%P4/8vRƜ!T̴/ru7Ѳ9uM S'ÇrAh4 3洐ZE,MbJ"}#U7k,3VҲ694`m( X+W`9?EFMZ4|hXv2dNjti}V a.+ŀ`-jtI,AȡVBjys6枓= m(W/g˵mN40'bqȘ2YԬVn6.dM;ʢp5v'6`85]v)R}(DHm㩩R2nODRvŅĨSeST;[Ng%.cؖm밪FG)}3\趾]용IYa\,ۙ_2Wj!;XROmotc,p^3 >DBzIH=K{\*#|e_LP 9r&Z8K74%q %kDv|ZUMbf\kbŸ.}!cb_q,!@B:ͅZTvwEk' *ˏt"JY8\\&78^=MBK]ʡ냶*$gPa)2%,B4"4a2.uNGeΊNrq7\,EQ *<f@M%6I1ڎe16VnCK@DL";g4(mn-V:1[?-l11}k%_A_i1`%v.#l'24F4]xk%{o8M"0=+R,s!еW BjDS7T_FU8a(<D2Eʼn~x 2R%lf .#V R.8P5,1=f/dč˵Gs0R|.u&h̓cF[.g0cr %"%LTGV/|߳\_PD j}/ZS&x^bЄeY:9Bye:]*9Qire-I r<<9f7f\;+;v/`r)nB%Nb?OL (b_FXYh!ы S(:@Q"+,D\9<~wpAec(P5^>Hdscy䔥,Z1D E!uL } a>!f|GrBM' Ommq W:̩!Zӄhx,s hk $Ƭ$g!'NL:3Rcd=pЪp$jͷ1(dVXJkYP-I%yA].\&mIL"ICȡPeH6;(|+Ȼ=MG&lkeU2˫ޛ]r+ZSNS= I"+N90D7R(ԸQ_QɆъ'w<oMQ-& R(WGH–$4˄?XUs!(J!<)FTL)iTv AlF1*LB5ɸDTbj҂8\e]D0ÁU̾nSĞuE[Ww|]&-f< " "(j^$%~b\6[. tI%%PJ4嬌FSB$`Cbz~GBW1t-J # SUyB0K;#n"LhOG<<.٥r?XQ?-*L"XDQ S4Ugݐ]iBku8RDw&S/I*rrkEeI3\(0&#bˢ2ŔXcₐ83h<{Gfepwt8# [)I`#QA&PEZH<ݰC~ֶ.c:Wz@(#9?"f.lVi=:4Qv$,7O8X! SDA!ֶ5 -5e^(_?4BpDPu+T9"B)s5v']JM ,ȍSZW𨡪絩-D$yEN埻Á)9pSqɨJ!#A߭N0NZ~n\8A:՘!h90)KJat>|}@!4dbPgr|uM(}4#X "K9 dLarj3#Tەpr.TE?&bZ S**ND v3F?'Esֿ* \(L @NġE p9"X;#U[˨^SUwχ7BtSϏ )Qa1!p)܆ԸNJGs/G4|«N!K2ZfN\h-#[=6,'vm#͑2 Wvۼ%*·P5 .pXbi ʾ^( 'ZA5pR$7dRl6č Ф _DL0(G!֠WD t@Gl¸eDiV»Pg5^ :5.$dpNO)!:@!\fTTluQX08uI&%R~Ubk%_E^/R}3ȪR"R! r[ax.̉^+?N <@ b$D+Ԋ]`SW1R#bWbtGF1* p)@#> wYn3.~ƀDVKcՈY`j0 FhX!J)܍P)cnKnfຘډؔK%cAB S "a!`JC=K?te4BsCe.ĦM]-hzIr &4/FU"0՜h-(Rd1jnB_5 w١%.\feD$=ÀتQX4#Sztf&.$RWбH F%Ȅo*t=/ho T+i[ud9dJ'>|8y%QQoo)9-|3#7` \~3g (2ȏqizvvVUY#ݾAE&+v?-s L$^'S7-ci>T\BWq@SCI1|Nyj"62\S? 0JU nH Vh$c\R@g# E " K+6CldQQ [BǼvetyFzA1?+YIAϔ~Kŧg&XdcLrcN-̸qQ*,W/''(&4Pґe'hSF[+3LlJe$ E%"%ɿCa&  8ۋړ174h3Bhtm{$DEoJy H 20۰[ t 5'(6Bm5#"逢_?i | gMGg?En1|nևǞH 2 IJj3m8!"M6 夞'~2}Ց`ics cLH= U.fewUr*O GB1(s¸'5:k`OZxRQQRPL/txk)%$H﹥BJ0 X/QaXuWP6J 5h'ubdcyS±s!*darJ/g%ѽ 0BIxQnR\hv2Up%EbmzdʑsFE낀ZYћ#GSܽGZԡq'$ÁbՊqfDC\\).nwZ~cpfuM>ce?P"-SSVY"]KSB2eN H#'{'LePlK=WEZ΄8dģ$+ `v*"s}vQ)e?(R.@).er+#Ĵm&$G^qD&l]cFV*ՁBBn=DQcc]Y`/I1TYjkS[}]꛵FܒCsd|-Nj`A五:%LvXWW+-j^6)byV"]v۲obe$7]"H$0]|4ؓye|`ܓut]uoY"-?6ycy.T9Y iOTW"i# W^yRw.m~M -ANA?΂eg~g>ƼeǁRKC;;xEqP#ɳ+ː# Kˌª+y;_bfw_>΍ҞceBE_J]a7kC O|2f+} Y`Uȧ܊x[Hh4o  {7W#P*&XJNjQmpFR!=T/bư5xBZGp5Umm!5َᴥ2Ńxȑ&gk'_aўUhf (X$y%yni >jIܝTGr3O-{i4bP3ġIOI_4 G$}xf`LuZ`|gMl^'/?z z0۪;׎wlnJYHxECg1ׄ\\{*b·1CfBWSOڴ Y\DdP6e}O-1 gu"[%jhvEJn|ƶ+x']Y-s*s|_AyQO,EbƝA{1-lJ:ݡD.@ 3ߟDeZ fi Һӊ:\]L ĉP׿ԽEN`vk%dEcY‹ٍ;C\!>Bqt4/R."ӻc{ lgLPc]>Onkdo8Ȇ"GX+ypOh_ko{ E0짱>6K)EL&?FePrEK΅ɮ XPʦsϹ[ }VEjλ&l\^BJ8,'x,[aKJSv7KPC^WRJ]ЫcxD3^>>zUDZՓ4 ,*ײP_U~Z0pCsc5eh']/-jS'!Ň5lQӉ0@pnφ]֓£X=\Ř_-RfۗZ1탉bһ`{OY7U7E 9'ͮ.i?7LB(.ί;P.lduBr\-5ܸf, YVj`BS8睳!Mu%$ǔȊ@K'>&(EZWH|&/CWR9@fH껐I?MRg+M;eB($rd:ʗA?5@]uC6ESa%lbK4C]Bl]˿z"o7DGQ {Z4!oL4[{Eg1WgiU(c&_>G$|?g~m:^]?RkVMڦ é|^< ZInP#6X/MY>T2on+tYZ9w=?h=PI}Hɩ;r̪XIaVئ:/ CɈ*<7tPg"t*j /eZbT: ĞmKpU8$ғB:3G$efj.5ȐO(Ѫ)Dd@ϴ?4#y1aKfI1wsWK)XcH+*@Sf(''Xz@!ȢMy:UȶTVֆ-m 5e'1_=„UcRjP%{P }/;ʿ6c17500<8fRUUACc LsQ656xi=Z2g)߈+ pr&86H.L:bRөw@I["&Y4$~+Wl]g\̬$;Kj&9x b[|jص /s߂tldrl@iW\JC7d;0Qe߷#*2kb}{"ԫ0ODvh;vDkw~@b%k>ِTj̚fUPppKAD-Z9ndԃ؊ڙhaA]e,ڶbm:;e>nOt|TY 9Mg*Q{3*r}&^/i5i]D;6\M2>VQVOkJݒV {N]T?;SH硊(yC^Oc*íM{z̗Qt5(r9I5yteW4ErTv('3?l( `^x$}xd(ͪw\J2C 經:Q䳷 5H]FBPmMGJȄ '[Sv6srʹ>5Z8fhfpL[SgŒE U| b/Q (OI?ΐY*g$}kud+" 9K]e'ΤyEkPD`Pr$Jjvy>*!#6%@~6Y#nOIiJivN/\M@O*=M9GdU=jݞ|J;iU hO]S1 Y[J6!KB0 jj_?~${E$bme^e=$U/-jR̲[9 SYMy9Y.^{x#z{ju5W亜3lV{3!5e]/͈݇`$<o IRiUHBk.#HxóYlVG x2YWɘ]!?z6Eս^Q)-Hk=~vf${k"g׉cQ@]_([de0{1s9-^ WpĽ'7A_Yer|PʂEW^ZIgK!P$C7m27A@\ڒsN[qG6\g)ľ;7IsԥT^J5@aJxSyAضru09.҈mrӳ26$~07Y J) mu3Id< rl&ND ҥ='1=~kl[ [uX7Xb5$8a DkF{#V;,$: +KHe]UId(ܕwdp.pfVɳ#/-GF^/$soW30CYi[4[qܦ)YRX|lhվFYbJb{Ytbktg:Q<{=,鴓2ݗةx Βg6 乣R㨲2{uđ1LɚY-$E5"ԅB#ѷ!/ c2cb҉gIrCh6"fŽӔگdUwjϒ&uﲕ4WZ ,LN5w$?˪_ knqۮ:7/{g }cq:'H٨ l0p3aez ֖w:CdvZ3 z[s jfsa5$Džbcik4JNLb)\*=2Mv߻9ک]/qrdUiŏJ uz7ٓRzIMe̗*pz t˭duY'!Ps]M nwPh)SJ/SFNfTɉHv[TVM;X4)3vҪBVc i-AݮBor?+c'yu3i? "V[n^ZWEJ&ʥ,agzsu]ֿyܬ "c7NtTr X\ YG)7_D$|pg1s?+hgP}Q&t'A5Pმ|MWC1 *(WX NTV GFf9C$^^3n|cv %q۝脤nib"4RY]x@|C$2@tt<(5w"MPq"S\CZ =qn*)h 8p_z牓8ʞyĠϐ!<4[.t\Yt7DEU @*".Ktip-Pv\E=-< ۠H0ڙz ȢÍ.)JZS3Mha:]uPDQ7Os Qvm0cm 'xQOheɦc*fդίNJ{/Yq `^5:"M[U Ae2gB%tp3%`4I|kgrb>o8ha/-ONvAyBڹ`&z!ˆwBv:Ѓ Gc.M^)#3?j֥zf3O.Eܤi9Y<~hdžY*#N';Vu.D4E]GQi&_$]H3oF!¾57гS`+?[]ҵ]{2 2|uj݋D{b8=?C6[91,6eJLDyLƆhh ~N*tȪUcm>܀6_nţ[G(m䂏M_voӈ |&i(Z@6 :c:;lME>r'_lɋ+eD&tVVYԯI$0g/q>&Mv,hyjm寧E>=⥚Z0]Q\q^ZqDBa'يsnQI pR|V„&;99V*!LU2Fśo*FhgK,#q&H'6cH\D,X\I1)OL>  m/@S=sLeTf9@Y'p6Q}`逼,>? IMZ&BI^Аĺ%`$H,(3LpF#Gy:% [#Bk!%u*7&OK=\LGjP0@5_?,#FtJ 91hU7ųbBS] 7m2)Amإt?9KyZ1wk ]޸nlJձ;}IV (VHTGߒx?(-[3Z<p'CCǰC٥&zMU8kz:pFP4f1?u,]t7|WBN!0Xҝ}8vJ-]h\%*DH_L":A4i=JM]P,=:vѭȧ+e9)[X@\wȅHB}cS2 ?a_Ê+ᾢ&H 2~6C*/3g{oZةy#\-`#$OHh脞)^qƣx%%)%YQaD$ӧ|=Q"^YedZv9_<_V`2W66|J;vbbRF +!D;d&Yf5e"G)2K l{EBLMr'a$KC "%r[+WD:C:;D,)"R'$|zQHeQc BR1ЎR^٧\_h.ZĶMRAAN)Im*|SSjU05 (r| C,>uϣF JӦ7y h͘䒁MQ,b'* i);ݘMHD %2ɂ.RDjDh(HU]:&86p \|v+ *$ 1hy}*H)],((IM&C vxRZ'ߦ[ɳ%S9x/d5Ixs('6hߠ34{$C mOx8^6ܖ惯1 Z=sB(BC Kx'_(MR0 l[=o㓘܎QXveacRݑ6rJS"8M1𤤔'Tm + nY*W#q<=|((UبҊ4a_2FB-"k{^_HU'j䕛@ԝtֽ<8 -BΪa1+yk\*]`D;FJSk! &eM7jЅOU2ↅHdcW+n OR eXXJFd lEB 58c3HPsMR. #OdA}Kk{Jd2Kt.f]MbQ [N"RV 7'" {7֔'SDfF&Yy[:2sM'XaI9&DWxAZҸYRpNO~YkA$>)-#!qx=ApW-_nΉjAaC(rEV:6%8%9Eqy@gl()#g.r̈K^yXN'2uȥȢcTBPغ28BtE17=g=A"Hj$-~z"j"c˄#(C2rv( ?C`%ya]!eXY:d`-VE-\NH#uE7+bQP+eoBc]*ɜU6Dj@.ε!ܳxa_ {I8+@&evU-OfIO $*V+O\V8VnB+Rԑ{Ǥ# Uut9@Z+%H="Ɲ#L:-wp\v+@9@;<w*` *[r<{pcvM!e}"co04{+=YRyEoe}1p8Na~UA jɥ$R@Ԕ|)B1 6XJ9ɂQD*h3L u8Dn@ќ=P |+[%dOR$7buwJIi1[Mδp7 BUR,bF$8ME{t$7X3%™~F 1"Bp~,egnKG*bh+6$2cK84Vd^ 268$QD*Q /b}~f0Rm' ( ]T PV XXgGٸ.@2ta-%$z f) 8zV57dJ?z NE.thYB? EaG VK 9)΂,XE16YB}TO Ќf{J!_hVeeF-Gh:д7/-*HX#rk4Ռ^bx#G엹K#KqJFz517$xGgw4ؙT#jvo%DB& h ?$ h*H @=]dY. $b^&֨tNo3B(/A M9 ʒj7 *P=Rj!䔉 t,uISld([|NuR,徰=mH;h7m殗ߦsb=ǽ}֊rRj+N~X҃Cr'`H߾zT2$q%w軀*=f =_C\Cl8iLRS# Ң7(oK u=Cv]rrR.ѥ5U_T_&>^Ys UJ_΀W%qv{î;?̌hK)26%0CyJd]flBZ"'f-]^ևX]SZNnഎ"5HEJKBq޺rdcGl+V;M܂_WjzX]KVg@2hޕLU_Y}zY8$a2 kj\V:뉢ኣgkS_D),piM!5 {HJwY!,gV-%z ('?*L3,M$9G(>|J_Z15z*c2B ?.>1^ <. -Q8R[߫>>O=EMvmxڋn 1aZ /7K{QRvרpMMQ,Wc $~6Q=ZCF *&61AϓF-RQ?7.zxԊTzR;V2dʬ_IZ0\k2]w!)_ CH(^N±by H3I#bM[xqS^r. N- a-rȝ6" 9Ni-D2Y/XQs9=5QIu_IVA2.ؖA΂X -E<8K:u5z9uN2/]J1A>xYxШ/%BXE`]!D4,-)7dۉeV"1E5N?\7g}׀R f杉T}_g]/KOR\]CY0.@>Jw%}"b ='q"lg BJ2.l*S3;PX({}_2~]]^@ FF~Tw?rvV}x^8ϵ3wȅJJ>Jܣ".QS~';!{t䙣ɹ]r"Ljl g¼PA{3U$tmIK2lE,e:j(X 6ܦL9AHM%){œ;t)%Ն cP5@Ƚ#gT t,57,ek6#Խ3L:>eѩކQL7mtZ1,BL1\ZP҇(] 3dV;4GT&fUQ* 67<߳BOMfթPa;LS9#o-ۿ/]K]WbzCnz<@;wtdU1vW8K`lAoBdq_zރd'Ai<_ $'2!FUȲhH%,_&dd#QiS9YyU{!obd`BϧЅ0=@Cl{`DYIe[4BRR"?BSgȽ8U/_, fVqȃjkV-EԼc9mPx#T]ƃwTX^IENAaF+טH,3UO7THvü3X۰!O1 HOۄ0jᎫsiߪ4hqVKRbܥ{*o"Dg4$F4$F k[8G)&D,2߻%?9c%y>uDpk8+\ QC#0$@Qk۠ >6ҧ24s b[D2;KNR/ q/|E !,,LXuRiZIE"ڬ .'&4^*A6c޶}~}W>\Vܿu+:aLWE%8YT{)vB DPFRSS r?<+gZG*~ ŦI;t$ ט ۊd~/?ύ#i(NܲJ J#CN޻ScXN4חJ QNxhcl羁Cmd}7 o{adFQoQQ4sj*[6fLM|*)rG_xD/w1UV'GH WX"x`@̈́=ۗQۥDAy. ڱڊV2XO-Hm+3 dt]|;A)S̠ZJCp XT0BG9_6ܙDzor˨ȿr3xӭ5 Svc*T rwwSQS=LY(+z)v3N\d3Q;46n}-r)^$/&ϬAa z і#JMT}R)+%^}Xd1僲`F걮?5._⧫G54Xu-Y]_Qɷ{O Vht!0c ٪|gBYĂRJNmf.oGG!:xsp??j>h%hş=kV|&rl.V_F>%D0{Bc?0le6Glz`Wu9rGU^ФsH@y-Mbޚ95 _$UTEk_^)dr'(RS{oլş̋+t4NqBDJ9j땊fc@+B,h$N?)[@!50Nu O^z0wһQO LT4PVD4m|-~i?=Ҹ2 sĻ#eHwCM;S !@svNtlEs8)ș#RD54dNdlm];B1ш\AGc 6iT> 1UdEQ՘L}ǚLMc!0K4+x,+R0HԤ6绑Lt ̷O-K;BQd.aC1 vl'Bw-ƽi߸2iѕ+IB2dDP<0NkZLwAM Q}cѕ ,Ȉ'q,B eh^~K̆"Eh2qTK_ iԥεf>eKRI]RRj@~4ᗬTep¶3*L̜L=TͨIfzhպM\mfaD,SUʹ1k}vN$tM|RUaḡ%b@:4C~coBT2;5) !4cBƦu>S"wZ(ͭ.qT:SeEI6N6%t,"*:!~`s h ,nQ}QrQ+$\./Y! }ՎS*רOAjԪ"BuCIC@6%qY;i;Gb +%E.9l;NK!uܾL<7BRWa~m.y]Ѳ8>2x|x1kJ.?y~oni-;ϔ+HfϪL u|k#Y!7+>qEwwXųjÇb5=e(eOnBh!q!8ebZL\G%#)^NVHdNp/'0E #Р#O {sU NP8 RBͿ/]oφ'ވ 8UzIfql~x'`'Sb\Y;F*A10XM/hg ޷{PQv)+ș\ %,WL€ C\7i&-Y h'<ɂE/BD4%Bo aա pH1u= sb~ҮA1 Nb2C7fڴҎ b%M5H)q5<ѲQeJDZF*cW^:49m߸Ң㑔V'ӨHkazʎQ)9#tb*߁PǎAN viX"7R(;kK'aHJ~5ˎdZۿb7gza!姛'Tbsf.tmyH!EVScaeL(>UUԷPjl>h8.]e䢏_)eR4]]\jDb%%jHU-s3PmJMIV ] Fb)s)WVV` ĩBEByN(xAzqcùXaw~QT_N"窯n7Bd0D]H{@*ECX*WfL3\e%8SBP)K΍Ll}ś0TuMn瑇4:œ6SC-)pMќPoT~#s6dTPsѣն^]ʉ'v3%&&ffFv k !=[4wV6 瑣EC0aA'Cb=F{QpA&b@ as}U'R0w':@.Q~DcmҒKޏD%'q'tF1]Y9 q|:5?: ĉèm_D HfjT;7(4Ϛ3_Dj:R;r Mdi)4)xI FvU͞ CM!մ 11RN%*YS}}o4jgi9Gy]d5ؼs0`ihg;܈L_-"%c5\R?8K'ҨUff$רUjFF^C 3b[pȄg +4'H-!EZgJ:J>뮛Kn/8I2 C3<8ߣIH2͠L! 3qF IP YSPybƀOK ^d{^dfKܗ*s}^N夷qŹ 2a,'n#%wIJ^jJpLp@+DP͵)(,m@6Ih!Tȫ0j(̢=4E(iNW !HČGcWj t U ,LgN{H!7(V?$Bn;**QS2ГLBb7v 7 CL>N$iLl3j@WHAKvIp`͛{ySzgĞjА/ZTRy@NLF;]9B ITm& ;6 8|;#1(-(#lQ'bHLdI @fP߰l5ASvr~/Vviu7 7T:BiCpW,j ]HM*MF#PzȀMqe֍Pe=h|B1̈xB)*P`B392 Xve3D4e6%)e pgT*m|%^ɞ~D;L ~?Y'>0T'/ȦyoH'd)"DS:iB#TI%jI[3SZ] Mb/0Hc={YL$/n eqMT&ZBJVcoP;#7HrobI*[u!ӛ;C1h!gJnh1ќGBN. ĕWĢ˙,1Hᕟ>6:bR0ZJ7L* _Ȣ((ae2`t3V $,DSU9 zaJh!a %`&>  9%I±U$W&tB=ADD~ FteX}G[ zjzi.VIH ܭAh9ǵ:pf|V#_rj7ABpND"* v*;I,97+s89Q`k+hCײ6b)t-Ú[5 } ,0 H(䒊C*>ˢwwUġt (o] 2s$3l؀J)c#"UFy:ЊzfM4ރ d9QhEVl}X"qpՇsqP|YU"4^9@M W2?d qD%]BYYTm*NA/gR0d pg;ȸo3䡍hD:z 4(nz_ 'ǞiZls&mH qA6H0qG-rt [K!p2h0uխlU)PL<ˡzp!>lztN:'bz5bN$ɊMYE _BA0YDQ=D!؅Q ydW`p< ʉ\^W)0 wqr!$2u5LʛDR)Ĉlb'|i"O" Ae;'EbCX8g/.[;rw娐=s.!`lv]=@%!S$RYS6 k~3M2Ӆ *|s0 Ѽ|^Sa9l*\.$ۂnpHgDCLfۃ&q Q#!.l*NBS,K%C75/LxI9ԂLt7PYYi4;N![_'g Po߈IfЀr3+kYSlTiR&ů:9 kYGL%ܤ)#K@ۣ&|`_BJ䝶p U1JWɈ v /QFg]%<17f8Uʁ23Fq5kkKeX±01(K<3MPbW@>idx0Ѐ~ve CqѶ˚}u@PYP˲$)NIb`$,4&d@~$!2[r6`kz~8^F_HGH^>V/YϾzaEbH$ԃv'v"< .pIFZ9%f]Nnj5 L(P875hU ||/^ N?.#ns[b^T$q84k~R0 :5>j2sE2v${aABzgv DP7,h"@;I c#94ZRQUA SX5{Vn|Pvs\<ԒtA9eZBq2"Tg$Ky\#$QEX>T's-)f!ӤNV^'1଄)ơ= (1U_r"I6GTmxmhU \➎al:0Q[+!`=!\@~$BG1clGSRSI` MRv;r=,X`\Pw`L%_l:Խ oؽ&.Fx7rKoST4W!Mլ0TukJmdle2O^^¾'%V^VI b\v_r8uR7SD$$"=ϭk&:0^NU/e?ڒİ4a8_T}XS`'aok)l~ިu ?P!Wd#7YU+Dh=o׭0UjDMUŗzÛ:ɢ;Td*zwV9w(rm멍$O!C{hh: oj(&5#)ctcӄ&o`TGK!I?+YNd4N]$NWJd&WMrD25+IFZQl8^`JuU< v U_c.m VΨZD2t2G9UW6Ra*VCoX)\kϋx^5\}q̺/>a$Դ 0>~ KCNB``<|. }vg23H*m`̟XAB>Q+#.sG^J"PQMO(P|Z>iVf/+̔έw8LF,B<mt*%.0ʯelOS'I: !?j %ϗى^҉,EkRV]_9Hz([C h-9F 5o1I>ήfZB3TKޓtlo0K1xBmBiӍRac]›I(LrrpV)RvkO>mź=H@{y\wDAkQ!JkS(\+Eh87f[M(L,_Y/6Zl!3^xKXFw#**/+ +\XK9”vjva0[[EAWi|}Wh|Wj>Q &]S搇JZ˹ya(ӗF[؋%T.!L\be` )w=XKm,!R[uKJS=*|%E5JY7IlU@ 7dAbiSוe-6_#PҞ |NRr&jb.ˀaΏ !% ŚX|ń|)ĉ*uRa}<[7 iXrt4ue2]0e7 v]_ұ4ieyE[HT0 L5Q4J1p4`,w7Ġ7Sy5QyQiD7$AZ 119(e;:g>̂0'{`Ze-!QD%% Nݎ,T, B'b.2" Kę/u 7JVIJDQRg쐔Ycf MfHgɡvvu9./ 쐏wap_6uGS,:5I·-;e+ I2'SKq/$єB& R)B)،?T\L\E#%Nhk=oL3 ?(}]A9a%.z>gȹ\0ʛ"Jc&\h'?6Įf+ F\# 3B?oQ  '5"+Bq%s&l=:c(\@rӭU Yq2xRUqД0 [a%u<0jn \y{f@1AUj:^TWW t`QIPpT0}d@zϛb֏#1f7I 00 1M?m2- v(JKVzI[;ѝ=OAmZk H3ӿ Vr[]s)0ZG`85)sځZK2%2G M|]a_l,4e|C QMpH<@lo0 r/((i?Xl>Wv%qGB<qE.b!qyhL1%hmZhjk31ɖ&3@A K$,<:I QUrf<h[rj%9uƿ,c,(S}3y%?+Cyp(FO]$56A`4XOw$q *wD!)N) Hp9`v~ 4aōF/=ц {#![ȀM2;, D T<`҇m""Hz:yM+I6\D']b8&4t?}K?[ {#hJnךf6ވ*Aym\Xjm/OZyjtiݨԅnvsFL]LƴkaAWW/ Ԃnb izgQQh&ӥzIɛ$1QZm&نєr^UhKxx$F aIz.ECɲԭlдV"}\d5D/ R&H^ Q.% }p&",9T%(D,>7RwSỉ=aKDώ-}-$ \ V]*4l)wXtƀ-+gggT$xfC3ҩ6|=ё[hKH5jXxU=.uOY VC5+^y[rPiT&|vןi΁E+ )a{*Br8roHcAn<2 R9:YwB.KKOmKQ\_Y->(ˊ!%?ioQ *3= "Qv)b=ykc앥efKlEx\Ea %j˱nLW)Lsoރfi4&3c fH@:2v5HUI.*Q0TeN_98Ⱟ'9ԅ" >%p=m VsI&'&Ei XTXƮ\Ea"3vK rA 7{ x(a~ }Ib Gs xd.:Odq%!7fJ? `+OA³!^p Rc?UnR%D^Ʊ\_C`3Ϥ SO(xF"XKMDtqlPJ.Y 29Wv@Aˡ_ե[%TF5rj*:r#BE}0!!r<6,13RI4D`N 8+Ƈ/@A޼ 8dG73Ja.`i?sG:8 RH[݁- k/c}Z,OIBX-JO\fM^PA AF@ڬRGbC0ܳA '* (9c qf आgRLzX4 mp4#` ': nχAzKѯ6:0&Oh$\*+Y|ts i*2R|Sцwcx_.x<Q'+I/xBa@?38@&DX}vBZ)"jLI2>pbÄ=@ IQsfU+@ʌ_0tl0#z9f,`n4-1ghX,$_Jicc*T ȮAn@`!Ø(T޸lI07#oP%z!d4J,/wL@ @0hm<C0b67pX_ve;)5l\K4sWTS);6 Z H}GH$ϽޅG64a6E2{UƯ5~*fjhY^bI, IfA0%"qY.4L QPƅU%\jEHHeS1CSSe++ěCꧠ#ZJf]*cHZK2-ۓs?R*fgBFҋ=s0Ɍ& )IPxHj̛ݛ]|=Yɒ5D^BAIڲ 1ᘋt:@A..8233߲N}qL̤L6t8. SdΊ\k4Hp,ʨK!~K1 tv / ^h`U/(vI_2@lOE{%>VMm'QۡGG#46BM5{bgQWh< 2z/uC)t]}F4$Ew>&0/+f0Qr$ϋ#ZLi*$LU rtoȢ-~Hem;NYS% 违\J ۜa™~( (B#RP U>][#;gN%S*U݊w7}1al/8ڊ|B V P ^DVv}Cb˜XO=`d%SN D(~ ,#`#[(^ZGFfjx7 >ahmP E{K ^! :pv,jlG2g1Q% TnC/ORBeq]¤b w-H&q_[-*K^` )ۋworol8X;[jњd>%^;4es_Pol4$BM"u9#P*oತxpأj@*; +hb [TvK"0o\7(OC#[1 &O} KCۇIqK[ XL] Šo?AЃDC?^RK7Y_NM66A 5H/GΤWLq)Nq@J1N`A<6&+,>Ay Z¨Bx90 Pު{i5|oA$t``/gcbL0/͓ lP &G!y!Il`ad4m Wfj4.OTNLb#{QrZn٥vbc(hx.A`8H'RLkaݞ R(^: lэST"ؤ HVL9>HױqU ko%<)fk%D8DEwz ߚoHI>d20Zh; }"ILwPMPnڔ'3,Ha)< `9EԱĥE!r)XRU2xx~YdRFPSGV0EB]iE ☍0  !d đGC21~hvs$i '7MCwpUWx~ZYGrIb7;HTܹq*'g>ޣ39 j!%*/z"TN?%-AQZu,$P^JHdwrrҺ؂JɈ oȅ1rvҤ<kn5?"sꌸN06]b$!0[/mWlQVss:Ē'BoV\0-J{YjOJ)eQ:w$8Iᚮ۴'Fw =0\rC3HPREZm>cw&2N 72pڙ:^#hѕGḪRU-9Ξؿ_Z/yBHX3 鷬]Y! *]GZ4}.{*6@EHAk뤖%5m5X "CA$j'H/;m>Hr-)(\)j>Nl Gсt$r ,p4LȖ%CoK .&ljITY6(C{Ws]3DѨr9 }w+;X|Bێ@T %Ϊ#[ hDTPL$]* j$svCUb7@s SsD ʉ0IP\&Aؕaal+#E`@! b6º1Do*xI/_yq(THA2UyIq,_ ̭dJI'j%l,)-ӉV,"q |P XV# -?;!:# ܧfėIgjv$ۣ-W10_8^59^{^$݌ k#X9~˰QpHsI D;pF-݆"8 >{M#5 8ÆZbC+G"s~_`RoX.1Dʣ jWw@nzԻ~vdۃG%Li?j׏\+OC6^1EL fiio^HndG $ mAXDѿx7@yYc D q oRRk пU0[D!G1J ^4# O]M+lP7%:#ld>2o$oHO%kJLZ=>{*\d;=˻ fE|-.dKiؐ-Дc88?,Oy]Y1$}|{ߞ]- S@D޽ o7 j}&` YMFZ)V>Xqj?M[d3yyk[e5q9Jnhڐ^M+VviFD|160U6IK>DTs\jSJ2=fQ)>yoj筕zT;?ǒ䯗&ɴ3~OycQmF(69?o9\d vE%]"# C6 Hި!X <. އM `T֨S5ų_L{|O$ܓ*2J>^uFQSK<]TLb#.`+TԢ(ʝ}e -ЂYa2KSܨM,>c߶ܒZf!]&biF|ϖ&So2&INͅ֏&[zlUN*Xλ7b'Wgj򯖳4DkcJRrPR =4AZ~d@J̻NI+_D@cHx^eN̄D6[_B wx-sH-LjTdOW;)WNH=F>W(",-XƁdVqCNF'(L)n e.rElf w5)t80iʕj֩ݔ)|=[* rB0ĕ]iD J3jhp̷̆n:1SUp@`@WAyh. i(D L,UnTSP3dnu\+Y0ϦS* }f ڼc0{8 eo*dJi9@8be2ʚ݄].7s+_v!Gֈ쨡V^TT9t7x[,M*AȌ`O gAzVu]2-uk>^NmS1OCjJPTF,T6\z7>`隀j$9*"a{MvO |%hϩtvxIbF@e+I"7V>%UQR/*"%zlo\6Z9u'vjK<̾!&s@Z\;`/+L2_B }i?<+@RRḫC9&~^xؙ$*ۂ>J'%;hPo2%u3(t Z]?+hJb+<FuM gQ ۔~Ά R,#w? ` {D Fkj/UPb`S29݈+j=ھG,}0Cهv(Bÿ)QS*=z|1ol,eTei)J9%- dxJNYABHMt Kq2{ѿ7IA0c#0F>*o$?JR̛?p!IJoF_f2 !5yb Mf  FuK$Т+$8$5^Y5 ?f%Ն"6r˴o F-oF@``&l~C>4vR6%\_ό?8 -졚b:" k!yB{՗aG-hB-F^Ybb:I8ԳJ^8ީ /~qE*| vBg t?wAr\em=N6=pA朌; šLHV2gU'TQMµ" \ 5.aVJI)kEzq̳D)]')Ks$0-*>*$fۘއ~z秗ǎ: $p,}AĄ@_*<Ϩ;؈ 7k`YME4^K/~456.[ExjNlHߟ,tO[bI4#bvQwѢ¯L2U-I9NKg'/R5v>HA2 Nyuda3טY=5~Z1 ĶV|=bIӎRy.:q-٫EU}B; UJq2áFv:"d,ȎzzRKi#4{Jh`Gf i<'ga ',ݞQY%g;45w/]Q0-3fNR.sjFB"ZM=d#s<:މ]#򵘆ɪ>`J4srFt!nYo?xJ;*zxom$.<}* Ӯ>I?nSГ-ߦaGM~-k󯦵SGw.t̉kVnq"ic0jBVF.dbIʡH3A!2W Nca0AO 2;=NjsxwA)ʠLN4nH-<#I򇫣/ OoV/*W\;[M}+O!&eAlPVf[^.*2 oBKu:-ōHmh-@@L<IcKY8}vc4ť=ړHPiSW^Ӛ?Of%h@s3\XIK0" XԗyF1йxZ܃<[u= ڻr`apㆾB^:eBf̄FĶ#OD%%4MeJ ZTAԆDrRΙaQ9 HI{Dڡz;TWa78ti 9e {Үo3%0 "XNYGܛop9ӛ.?^iUǿGYr`oUDQUWNN$Npv"OU w]V? gSuu.I$q-j] A H v|;a!{.ƅYW$w˸Or"yiA}YWf-ܨҢ s)pn[wILJD$^;ԣ]۾QާD ZF݉_HC4D*R8(Kd;d0|l .#aǝ $HBlO6KU&o&bL0!:"{rvzG= >iT.Ԝfu [}[o *N;o9T,'6"CRQh{h6hÏ Y7,K\g߹H 'c6B"xDJBkDQmʗOK"be)~qOukﷷ hu4Fܶh:)R_$/L e窩- 8B_94UTԣѭ.0ҏ1!_dytC%pm 2tne6@;̤X8$Æi|sbR!֎AQ&@[ɈQ);qBq0ylZy ~zVMPGac@) 9$ 3Fnl3 VސRIVm]Ĭxj]_ZV/WGG'_%- xZSpS@*4@Fq}n3#Z.K,暢DI8#.5W,b󎤷,3ٵ #EhVOhoN_C[\NWLHjŤR\`ٝ0?- C~ ! Q]Dj"T"_*"BNfpq3/6ZON۷[S8GӰBhHs +\4S$!* )+>Be,,={ A{079F&4g0-/z'&Go%[%1j a2j˄ժ:ƋJq@> gvV?}͆?] qz(H1G]m)8lۦ*<-ŕTcىq0±RUǻ)L #{E9(0l{WQN++Si.8#,t8͵ AaUV|x)ൈ",a6A,)㫰0KS Y%#F"2FeW&7րNRDcݼ.;'zµ MPzTS*X_ȋʷiȞY eI秄a+""4\w¿ĂhIIF_dAA `pI- 6`v ۱u4"<1-&2WȀh6"u+5Ivm$avKz#y 2P&#3Ldda4Ss?R77+/u)Dr dQXRda5dXVp)woMnu7:]഼|,O $]v 2 ko Id+9 nShV*\Q.\R)km??ޗYvźw#?1v K5!cly!%tP-2hI%z2_/G j-<0t)c&H72G/Rk?c ̄=GЀjҫUOVׂpŶˤt(0[uݒwdc bY|nv7{SIpg2-ʐ؀s1"9qFyʠpr~&rWJڊBv繯CPW1HJWZ@ޜv9vub$ND3?z<*f6ѻlywG*D-"" ᚐ˫GD™%I[-w=$-1c*J4$k&b+Vт"`7xWdI֏If uw[L1Xr[ :CBE%œWp^Ijb(#*g ӔcF2QyfoI%~QDSңYu1<礽  ,!M|Q y"mnl;UȩѨ@33"7(]Eu>7iX ŝIOl4lD腽쬳RSP/\s M1 2H, "~Cvm) 3AfKC/lRv7G ~ro103"vԚSlL{'ST}oH#^w_!3AC]HZfBުg٪(g?%4`ߥ+]oik)f-,3~Iy6\uv}JR`w$ᩭMw"s'9شѧDrt*<3{}}S$x7L2 9 DɧTK=$F*C6+(\/ĆvO"rC3=-=;H&tl}*+Bƀ^K:+(YXcB@^2tPx`.ś?_pb@.0a5[)`ɢp;8#eR]M}M\" sBEШsnܛzlK$0^Iܗf Y֭xrgecq2p5v,z -bjn^YYo*Ktf<4k{ls)D`N4|}5*AXg%8#pU#MHpA['#đpA~=ÁL c|(pM D "e {cF 7tLF#g4b0"3N82sUoqBϨiqa}'J8IFs}J-|E92g.=|!]?ίTWa'X_4,ԛuzS0\c-LpTԆ2eѵz?OrDT&;C!x4pIP![oQьl1XI͎ Mhk"VlV &!J#t+Fˆbpw 8¬'7n p"O&BDDN "X! 5>zsx@ 'ғȲ9nskZBT^7=& wNX[t•86+_$>e]DU{w$ vNRBm1K`F$kճ$ܘ{NlM(K{5uoZEAG M[Ҕ,OkKj{+y%92E{o\Jwu|KrOSxVӼKkʅu[uAP'E@Ɉch7s<-һ.[^"\]:͡V`۩[Zj&1hMe=LN7d6H(Lؼ)• f?Vt "ՑK:)uqU)R,V *y:~ds&)?{~M.ckq&~ji5hQ,c[jrG{ Jgc=v.nNTP*aT+'#]rc#XFh&QyYNvG_Y!_v5o+ET%j^Pv܂&(rfܥe? QIb*wNq"aZ;a;Ҕ]xrp>@\һjф VXpFwHrl'ЏCy>I\lO^D*ARvy 䒔XZJV 0ʻwK; qkcI)֯2qzQc2d֝O^u. nG/&ݓ eߛiq?X,Wa ,1cĵZ- m\|)ζº˅ y1B1?Jh,5S}܉?{y]ӔLɩ m$TcG`vMPO! 6)s TNQmi /+:c1cH cKQq=huA)=gf.7 V&0A9j;G`t@6 u51)3[yr,fqCq ;NwGa8" @ 5'U KL!K ҡdR?I&qu!8*f% r'Xl.(s{Ae37|=~ 0,hiOi "Ʉ;d)J89YRa!9ꛟ|>p%xBC?Qg$(`xג. VHJB0aزc+l0ӡQ6I K'Z:a7lddwIR^GEذt03R!U{%$mp},0d3mvl Z;c @Ǟ>z*\NW8CN0F6`E3i EF L! C{ 7&6&J򾊈=؀)2KW)  !YZ*qY4V%\'$:+RIWACXҵoXRxJ Ðw\QsBf;Dhd<5_h BR${dhтv4- uEXu ?5hq={p?{ϲB"ݏ?kG=9H)w"OpFtbA0vlh /~K$sguHq9).Wת3b`*/}}뱝4)[rXjz?QHCq0 K4\'<JC懑 f& {x1fzy"!Z& 8fAmشmcГHGķSF)כ ɰеvl 걒'"aSqT4;X1/ u Tv;2=}&_6C hdr'ipK5Z˵ 0DZ(d  ڀn+<'>'ʧft68a*K-B/Xx&N՚m (<2/mTB7jE ӡ %HL0*VP#/%b!b&|N 7M>0$+0RmHAMkAO,z䟵Mot4LkS'*fIcews)jj[/'ЩHX$K]0wZ_iTTn͌Dm,vqEg W4#uJ1W]^֪"qfhkϝ2:+;! ʡ ViH絤>S̹+C0e9X}_jDh; 1:&ے~VR.'\q([lE7 H5qV$%9%_?DR(sӒ MFdl5)3w9*¿#Cvsq.ߓT[$DCC9Be=(`Li-ij}To<8I!_Whd;5 msYmeT(O,` Q#zd@&2a.^ \T-T&$mu#s36_DJբUݎEgpy=H6#iG{˼ȖK`'];8qPsp· >/Ҭ8y\-13Qॷ8,`2c5GpYkĒbk K}9̲?DUg{%%'Z ffw5 W h\zkcz-;yM}m'Q IwvrUULt1ЁixH1Q&DRAfg$ Y;:&NXfsyf ~-C}EO[ A:R M_xJm/]_22PC5XH"guUȵ#kE6Ohxè3TDuY Uh*eC4gKE7 ֖õekz9&~/L"ֱ;8b+++'u&P\23 ei'$1&l]i6\:T"ll``Ϊp]ULnQؚ`l1x;l ];i/YW*%#+{d{閟#P9pK^ J? FeKLHm?2ggpBD[նvIE(8*XFIjT):7]/9uY."z<6N5U3$៫aD+asW[{]/`eo;tpp6*үu&p3 R!fvVD=/ha>4Ե4t,#G%?z[;mkS-sgJTxs=7ܐ%zvֆbܫCo%/ dwju7ܼDk}|< kdVB^GΊ2-%)%yDr/MTmZ9!gG5\;Hf 2ze'J)N\e3Oș@k$CT$}Ox:Ğ',ݹ+2Ħb}.㺫2򔜞RW\:3سHE4k6Re;YE m!3-} XMkCyJHYHrD<b<[z@0U w6Hl f"Li%93`Zf:H4t\U[3޻F(n1a?2R]cJyx}E.$#B D#$;oAT&i"*W d<ꏎNl!?Zn\eihbۈilW&YˢBh; 4`ID"hef7AP3HtDFV"q,52R#CmPE+K,)_P\Hp1$!c#Mס `!i1拯I/H7MaKASi0+O"~g tv3%uŽsR$1"#-M2\ l='{PPAHp6Q@ CG8-#xCFG7iDcKͫe S ;̩uPtBD8QpeC  \KwPa*)-&|e'JLp~07*J[CB,_Zmtհ@mYUI3,o?$Yb}v7bUy"de#"O"xH|/*r6K7G+ aiz1~~iN<K_LWlQsy;RO42B9LR5)`V8zkqf+mFPYGdD $bSu;19paw϶/.r}c)SoWKi`.L WdvhV- 'V^J-1Tedb1s9_O:dIbT3zLr ˌYU8{ $cNN vAXk,E.hJu[Z۽ ?ώ%E)榬S‘]waA {R0UmQJ;qh^Q3l{s>= ,zދz[ʮj&s"܌4Z.A6? Y%|WzfoɪF%YG?Vtl\3 Dbv5_o@T9Zy+Z)@BCy,j'`F!i Ldf-6R8%FTgAv!ꑶiWdk9ؔ5-{ D`:&7Srw֏- Ymp!1] +l䴚dUUӷ<' sМ@,B ӨM@L7>x>Ζ!@$zɼ ՘98 ̓MI"'75cjQ3odr2'ߗY3'L "HSJbz}%A K76r IxM*RA"4㱙l|LJ˝ m$ڈA|wa QQ`3396R|TCP ,L( ,H&DX\5wBŸR.Xmi25cd!ȹIbr*2%S, g}Ȟ0jPΥ Q6 `"f!!(4uPWP`Q5DT`8 U,̭N) 셐*0=d֜g ɳ/q e}“+H' nf;FgsZw8p럈BiEdIEkzm "xbK%fA豴ۄ:?/Yf#.;jT5"d!By<\fRoD E u䨈gh͐(< TI{aji8CS!e`4 .,L) }`%-o:&)#Gh"ráe{#h.O!&:#9@M C[ *NJLLW`[C]!dp+26X{E8,Ǭu NLdZy_A`t,4g~kEKKj $^(U_3q'@C$JYHtgeF-*E*,8\;u{60D</۫7Z^cT{JV݌nT=OL-҇^4qzDv=a2R=wޱG ){W*N5lh_j"ulFqazŒg-lm% P'w{b03F-F*'$[>*ĦA8 'uBq-[\-IY;"N2ĤyF(B:IVǶ#@P (uByd^dq!+?Yp)s:KG:۬MO]$ĕ@lb~n1XՇ/%?Y a5hWLZc"#rM3)n?}e,$n'&Kn% AW' sWu0URvvTO΂~N@dV,{ +d1ESodY9wR*1(҂K>:GʅЬfʒh44:+M6BF_}*`ٕʵTm^Bx)m XU*{ A"%O2L]IueAxF8bNٓT$Є̥stDQa4\%tc2@j|,VQ'NJ3;.!?(:2$K{DU"QRA5xQK報ñd:.i#+!%;m #+'=%jK|%EM?Bh82ٕ{̠301*lSOA:d>K>h!WJ[/,Kd%4CЇl]̻sJ%S/|Yt4Jn;Ȏ؀m9҈%g,Y;my:lRH$H i=i`9Y7Zs?Fo<># |6 !(#VtK5)I8^!;~֫1AIC %Wڥ?AdL\hI )/&JZN^_Yq$?L=Lɔx;MA 4#V x6^jMg25s?!(UP-k#بoB1*7NgDM:"G T&%Xn"xnY( e˅:/` QN4Z"%~c~I~-/hMB'YM""fAX1\/S܁##]#Pqkb:h%i9U2:'L$S& C!-)$לdR&UN,6wW)D)WC24HT`ZL1iN&Ad~%7S""7U MV8bU6|/L-%Gv$$T_O_DS=eg`:֡~= '] j6Gω[^i*b̓xKxp\/0l͝SiLBP,P?v@_^Lnk l貯b _"ITLIfuFb@ZjBe4b;_*`/nZYa9q5ns!TPp.%=$DJl܋/6ɘ/}c-ЌrZ%%H$40VJd8YqFgr b&ݤQhj&-UP&WO 3CVF\-! NB4d[*b4ȋ~zHu".c+Tpb|!5@'oGpvyvT$q&!@|%?JI'd'UDi-*Ay w.-i 9Z/srUQ=XE\zH_RJ.u_aEسa=q5A} 1rYțB,YZ))1 g"uBR(9sY!ź\8IQ*!,}p~ٱ*2bCbϛ8j\) ~H dN_c3h}IEw`iY܊?RᐟH?_NH"ZlVJدGՆ#tVǻ|8hQQGgƃ49mB^[>7fD !Y{Wy<'I*)Pa& ѝI PkUM̝*tdEX#5]Lӝ />?ԌU!9∦ Wp%߈q _ Ǣ0+iw"Q7z>E*!A0n%XԄ?2= *!=*r2"T (`<OѩuK`Glnv\.4Qi Ό0A8dmPH(0֞lm"#Cqm 4spQ:{ M =״PD"Uj8c@1,1d NFe_ntΦ#}](Jl!"@Ւd:틖 hJ2?7P.&ވcC` \BP}켡iQ "R=2Uo<I)yEAɈS<)еo*b‹ K }?q *D.we` Aؒ >20W"O^=pɾD\ /sZqL499ݶd>BE *; ?Ӂc}p,#y}NH?LXQXd; ൬7 V!ы:3e i*9Bcd ;A^0x@[_k%mPJ&3hmy,Vfr6ɔ<&AG-LmY0ZL$1p臍r=hC&&kQd}֩a59 fl AE.-#FXiAN̷IoHL6]V&o_8iy "PG`JJ c"d#`:)܌[Z#XbmaN("˅~褝<_;:2? >BGRH B9L,R'"-"BA ASJ DZ5 LA@QgIXۨ[&.M @*G|KќH0-gd8Yҵъйt.:FBDY"ɒ;٤w0&a'uO=S b_= ƒ8*0t2B?MrN3'(SqJP0Ltxu)0,{ %ö 9ҸFYPZE8/5'Gw;"Lk4p9!X*S 'mggbXy$"!a,DkdR^Sx !1Zdf D1F[g/Ql"p#m FT^;@@]'ɼ'u83}/5?xNкq)DM~\Dw7y1ˁ뉐bm/ jZ›R08A>As3,Ȧ$%WCΧm{0E⨪cF+E 6ߓpJwh lna]ŧzYT!C'(!?zS knN(+I۔ȗEc+!L_!@}"  ƤCv&)^oZn .D?b؋N*L` bOEyr$Q]M7%ZbɊ-qZc\4L{@^ ?XK1l;,DDwg]Lwc.8(V@ڪ"0A_dYj/S8+Fo3,/w./OifۖJ,E=AUP6g+B%rټXKȢgF O=lFE]PB p,h7PL EVuTHxw4`C/WF(1but ҸZ Υa 6s?q;'ml<2%IB2H0iu~M}VE?v5@"[t, Haє/'gED9ra[6BJZqh2u-h|/%B; `$D,F),зO_hyw` ym 7 ~yߵY2MW;݋ >&*"`څ DKfɬVBS(zX榅H5'^WsT$ lK eԓpy 㒥 ~|%;ۧw楓^WJh =)UZgp~tpo51Eѷamwe CɹDYFz J!zc_4f}y {o޵& oJ hnR~ÊPSՕBMOm? _<=4"LGU^VZ9Co'[M3*'-MrAHyy4Tnp2%όC-Vo3a3}5߶{Db`Զ(%lvABo)p=$@)% ]fUJ{beH:h9[C{|LL$ĕ ˝E|Bmt"w%mE(_j᳜؄I:cSC7ƮڸoI 5|X$9nBEL2}xW-j;`x| '8ٚya?"ڕ[WKtпe"J&-XT> -tqh-(ӆ[%% /`(}/o[4k#ů,H{rdkHl)0s%i8RN)|Xpd'2.1"y:b8>г)Uڱ D,cF2T BG% @X*1T+ E4].6YsKjf#̧+ac5 0$Z?(&@9UC5N헅CٍXnL#HBz) "Aw! ͭ"DؘTDVODD,Xs7꘴U#R;GR{\ GPRue# ;$];d+?m3˘.~Nzvd#H xqv}8tB&R\yjԛhi!{9>61N ȓ2ObT`&b^h.YMsMHԍR,m!I+idym\_17SE+#Ђl >f"KOQ&G/7ͤU3c5W+DZkEyUgУ e??D2` e/€E* . 7akѱ@)2;?Xpis6tJtEJRgF%+Zh[lզ2,d?̇i܄AUo%F3 !1tJ> VU؈qƖIs؊l0PDSDktDfݦ15zP4Q }~pj3tc+ .3I+J͋0@&O-v9 A2,B )`wʋGTTvUEYD]N'^K㢊1=- NP+QG#d*#;*"k+rEZ@|=YQ q,R0,1W'0mא\ŊՊĎ@뜭AY"1+8-n^?H% nʠ}169\h U5A%Sq1澃he ZHJ*W8|CM3UafMN}lǣ?Rp1nD$;Db'f` 2hl 01xa~z곷8 z-Yquq!M@ÜHHP0BꈛN®`g:[ceꢣBԴc+ WyW}g2\j $; zl _g@4"BRʳ;qkXu?j۠#bjl⅄B&EwB)Q]L hd7RhmyW?| Rh-J Ak*L2tg]),^ѹC݇  a#h뵿.<$#_0V@- msҀ@߇6"bk[djJfPSs=-\#_FQQ/~tɥ00^?S+UT@`<P3@,ss'$`xC62h q0VxVAe7>W4!Ϫ$7,ΡB u. K`ԦD NsG60D"|pG, yCr,$bC)FE?lҘ-P #+^g}4z1A PtL[J$Vh6%ůolbC"+@%X,4 \#|cv\+:6~ l^H"v 'q;9´DGZuBd%J0~2H"HPB1\%|p AzشѬcr I%zE3HCT SW'E"O^T!2 5C29H3^ o![3EYzmQ5k$U%QA 4vEߣ]7/p|,h4!,1,SWL\畂&.~l50)]pHlp@ t$sZh˞E+M /$!am̔[wh)8MMb+C/3#txagIK/C' ocIzE’kFTJ{ɺTjY踜(g1ːו!Cs^p{hvh{AnX`9= VIwXKfAS;;E lޢ=ƴV*bP eR>v_t +#̳GB5VEQTVXNH2Ƴq\ JleCZ/drOE򲚉Svт|䈨;38Al4=()ŕ[P*eL؊e>gۺ`5L߳qe@iPːRcŒG;jXjDF %T!XT KFjX[sf$L߳t  Od()s.D@f2=sa1Az kH0B8r HvrK0`NQK_#0tLoCU7gA"X$F-4܈GXa"q8֤|xm75hT/ks80i3K,M|GJÈvHK|f~3Pu Aϣu;inB>ҖLLD)O>!FKy@x`8'i"_e<x(|xǵ#s1H },r3fPȆʒSs^"2𖝾E+WJA9^'Cr MQ$fyBaNia`:F!zS'Ȁcʒ"PB+UQeFg=]_;JȻV¦#n@L~ZRKQ*c\/=[-\[E y# 7GНDR#TOYQҵh3DL7^u FPv*  ߈sWp2rRW[Z\dԄ]p|C IcQ#8sLAf$-j'DǍ$Q`LEn r4L€g؊n2bhS"ۉgY(9Ⱦ# ֥9Zt rP۔q5.QBE=0Oa ;ƤCa1D/ qL+h3"T(;3K։1m͸%/~] H܌^-왰{TSCj$|mg;?< %Ȃo UJ(+g6 N5MB:2'gFZ\Tx1gJ ϑ2޾I ^2. 'tmڝ@7Xq:& 7A2/S%NIB8y+"8̿$$L6H! 4im"|\ rE0(#4Ix]KX%jK1(iXH9򞶴qQ]RY|>_o !='f.'xwկ+o&OCA֚/I[^ +)llu"T0gSr8FIf3TBgPKS$޴i¾ K*<+*E,{r=d3Ĥ0>"QV %?\Qf4Jj}ksHDJ(/Vi1JHw %Q6v#'&71n*kͻd7ו5+ #|('1|G*p_Axny;y^șaO*D_4Lk6k1xA+j]DȗDYC )9| Į&%}:jy/m퀜B2,.5>q0qJq"*uhm N9uswTƅ럹aqa4uD3U?>?4鋄~ 7pkg ʥ[@3 =.^:To,M0W-:su9Ise[lz?I\5tډ5hg dF7-Փ`Fxu4:VB+㤙B3EGtu0n0k!LoŲI@MXy?O)>JKQ/pܵq#ܫoE!p*,\#IhD3B4OH%(;.]p4Mo *PgƽDgׂ#R2_b; TD \$-ǰ13Ǝ4&0$ ֥Ik]PLX9@ʋ;yVajmHptaiN6~w-Ux Fe='(|H`Ib pK# d8VTQ^2 *K>t؄wF̶d\WNrW"d0LJJU's;ſܞ+JU%2WB1 &2QɗY526-E$EKƁ 5|~~#V6vOqlL1aL]"A5vC u /KVkŪ'gw r.էQ L>O`tp]~B+0{-חƒӧt|R2 Hrhk`/ jN70`rdNfV6aG,݆LGD tDDa6,(/ahȩoR~ۗjsb"~p(-JN >fJ?Mv:߮ʥ8cl[y#ZS pNm Mm+TdIEZ[(JO ]{bX"z L&R7KwC1w~0lZQnSvaN( oމشg&]%N=XODv58*C}yG5s`.uS8y1ۋErxLx"VR;.U >x5 d,sf#`V4H5]U臩#*4@)K!P()+hlڧN[Shɬ>1}"*Tp}.㬤T$£GX1N]j~-2UzpF<9=A V@w.8.l,nfNdj~|ʰynVvS۠847az7s%댺y6ZvN= !c&|̔{ڲœmplۼ\>h F$_sxk=]DN xV>dg%>Yvս<G+|n}CM18㈪v!1O +{~|,Bt2sXEt_YkBic0^9_h,ts["Mْs^Fm+`j6/*Hs5huAM@yܬuȢ%l?mU%ة65pV."#!b CZ-AQy˧ȠiwXnQ9 ,10+z㖲BV; X$ qa6ۜ>8DjUzؽY`0t:0 BZϼ"X"PfM3T1U#`e Ԗq 0~jma5Io .i?]c1Nנ/C`CmD<. @vmtP9ԧʂҕ\A}zglf@^r| f O#i oӌ9ゅ$grx6eܗc. x%|NH_#ޭHעuT5C&@#p g!?]esՀr[B x6 *pҼPYJdTsC00L\bv(NLJ 0<38X΂6W(80)'N|(./*Q yKۄü_JhWLx*wn. ~gs(շx I['#|MT7zgfB~27ha>PD4lnGT~§ 8⋡lF55?3@.x)QPdm"}BʍIpI DPz{  k,ҏdƫq&&i3;8iaGYD*ML,iR1S`_ab[ FHNqJS\"jN!c@ʒAd\,Wo Jojf5*EE|y4hFT/-8 Ir=*"4c BI>"UIBqAJm605ƆdP^.$Pe>FM Ԓ[T0'JˆeBhztr6Ү;,UA (xm ov0,gKLEC`b0M*hL{Xt1A\T5D%b'"to D14;B& 5q3!3 ΐH$T| ךWOl=|8p.aZ9dwg$"Ta42DD]&"_˞c43ۙ̌ߠ`޲rj LC}$svOuF2% lkb")ټ3rtǟ *o2j@&gR[yOR9W,) |;6-K4)@f"blfsr>9!_-#ԚXS1x^x%BώEӧR^}D@slҞ=n@f;4(_V?힋ҖtU2]YBIMBh0b*fΫ}+gR~PAV u'u=;fjĨbΡ"w[⢉J8)6!8"Rƶ(ʼn1D`'0BւVjiD# #ݫ9U.)p.ZC9I G7+(;;%P1k[ ֮aFҭ +fKYhcD ry%C]AfMxBAʂx*.oC* 8hT?y6ߐLP4aXXN ,S\T-!^ .5ȃΝ:,qk(_/x,)Fc 1_xL48鄈ֹ1,4E3,}r ýG m̼k hE@׈G;PGt[3&'je'<)  P\ȂZ=%مc5f!(XDh,BXl[iQ*,IU=hplL2&HbAfR5ާ*.ȴry׀IV&G©TOP~E S=C=HTLj} ,`qOꝺPCrFOxb?`E2,!蚠ldޤCcsG}N |[FId[/[4,f- vv""5!*N`}LA`$(Kg]7`U vRF;eaLQ2F%6=Hl0P$k'n'!ӡׇ U#ݝ8!t"xfk Vz]l9'մTxr RGi X+BEvnSĚj32! {߆ "ikG*s',؊ϫ½Zސ-E!:LFԒ"V+SE:܎QY,54^W5MA*v`<>̰r,!Ǽ! .Jj25q5hD"IHVsKvxĿ# t}nue[d,Ƿ+UM۔*jKz^tn聆dr?VD@ɔ ʾ:()З`WV!w3YĴ'byE$:ڰpIݘ3*aHNb][6-#m 6VSFD} y9o?TLD|r)>l NmuDoF,|$sPTNj(\Jfi%2tCj1 UxIϥk⺕,pS?-]F-9:XƕC=(wvAO2|ZZoГGh~K@Oq,%i"0HSִ̋}P|Uл +_kxi/[p3Oթ^O+sPxaM<6܄j&Wx'p.eppo@HNO$7ÖNA{r3\RlXbvzKD5)˼;UH1 D'!=pf_~1i ?jظCVvMs9MB ,g.\s yAFm/:2V z؉zo1,eBU^U/\K3EK?*xtyN_[.U]v{ɷ E٩(nwPYMHT:cTq؄(䤡C\Vka=[b#i1f?^]!ɗbAYdV550-]L6T*E!zRfDʴWZrI'xTS1Zl'>Z:#(:#dBS,cJ[i}j "EO DDZ@U+A9 U0bN3qlHLYS.[2iX7Hxfq"(fg:?tOŦѾ(mYV2DJyqDhtjD[F!`*7]zu.r43_{׷]d sD}cT1}ɕ9`>^VKm#ɍTG"D7ÒnbxwT{^[j_DǕU E(? MHvWAu"(YsAUy z5bYbȧBvE`C ))3Smr&ǐ݅ toֆ尿uZZoe0J3r  ~n&S=իm),\T~N<\'*8\L=Kԣ5|`K_+P/q[_kZ޿;K=/`qIK)Mo3/&e1ҏeP!P32Uu]_imB|;U@پ9xl)-2՝$.SrTfһ wŋ3B=⫔ꁿs<kŅMdш>ƿP29Q,x̲c[5xxzDvg;HWߚc(=J~U>fq9"I ۧ`E, UJVFyLꇑTg U\B:3n"ǨاueUv#o)i䴒0 ό#[i3DAP_6@$ZuހF'HkS/r)8B䉝7 #5]Mcu$ "]Y+[ѱAkgef1" 9b/lyX80}) YXbqWQ93/;D=XN)k Mvp2?@A\+yћpRKDuIW-1X4aMvLC=o4ڡO!Z/( NQNOj轳yDp Eqz1ښW^6z@"T!tD-BL O)K&"l%MhTB365v5@-< @.#lf$Z@/2dH&e(΋i;q1 + [Ev1l)dN:\rܨa~bI+XaZ,26:Š;SdM${ Ɗi9b.LBqUӃ Vkahi+HԻ&D+KbPTKJAL@R*֦ NB-aȎW}WzDL a!#F+ρK0@T jKi]}A%wj (5Q=*?4h#IIetKCFpC SzP[g'?+=)KXI0.o򂓑ql <|ph?C,FBfRc.ثWl?/3%J'T2MFdTsA 8e+/hR|P1 ZK~^ Doi'6vwGʘҜJ4<1h)N"y&U Qe]*DԬ!Qgl8M$,n?A\!S2Is9g \"xm%6iz'htVD5fa++v͊ϸ2UVU[o(+ yG9$!$r)肴TAٽ|[;8:#LZiRL&Qa$U+bȸU޷LahNKU2ˀI"f*69K'<.t&?)<~w*:VJnFIXK9K±%jhE"(ӧ~9FoC%A1 ^=73bDiˠD]f^]wHMQ-֗gr\oVJ, MFğ±2и3pto[@v W{k164h\V4<)]8AkFrּ DR# .3f âsVGG\c&S )Y*P#P2^̈́f`+|hL \r 1+R?IU<:IbeH2L-tFXH k8w96՟}mA3 1wHG-dl])R""](X' $\W@Z^LbP0"0mrJt!Gq ]FĐKuk޸!b086\@w{FO<4M L iy% {+O"g7YȬDX C|e4 !D=Iy֟Q#|ʹMmn =L\dİvAڙiN,8 ;I2w$ۀ\1+<ڞ¼KAv5OBjm?x_'my3ګK$9=8a料 Zm-i ۞cy%tO:EOMY#ϰyEKOS0|#ԗ޿SB }Gh!`1H[ʠ#b ٽ;=rfg,0< cq"/H7<:T4PⱴKTg1fQM+ kj4=&/iOjͪdrcJ.Sz}1*CBl*`qw =Ek/kDrM5ExMۮ*^)K2.M8ibiY%%ҰX,a6M9J\ķz@-CKPA~I!W"y\f*xDŽT Mbp$!{$7]0xTśrԆ#ێ#.CVP nz"7hҁLT>U$)]$enH)ŦAV&7;RVդ2h前胕ˋO bo<*O4b~. V%ԌQ8[9:C][6ؒ-#Q5U]IyZV+MA-#~+=n9[q9wp{Gk\=eŔ'=OGDw$%UIW_m[˪+^g7 ͡墍]z687ZUHo?ǶL_2l* ˺b~O.?!ᤄHtd4_ۑv;6dcxHnT)6bn QQMcrC%\9Uh #rP(%4"@گxRG #VEh$P] iFM; PjM^zRt ^gE l/G?%)d-ҩPŹl*VUm$Ԇ_&<"y^\|ǣ B%O|6ɀ)襑?iRQ8y0nJ# !PH^:^ bM#s-]tEaۡbtqS[I;gU!Y]i'I0 D2OͦAvEVK""t07[DK t@=9eѝBi!xY!k AiZ 84#c0#*9DV嘋d%A$l2L0eS ՙne}=UsۮsϦ dTٱ3nXHD'U$2HQE{~m[ПO[aQS9 (ˆQ!yP!%Ɉ]_9|t)YO Ug 89Ő^.n>םŋ?V x-ڂv$R-F k鞝xܕm [!D.`7gqG [ls"*{ }M 7"gS3nzv V)ph%=#G;Ľ_pKhˣm"s_:Y!d1'̈́Uf_9tZi2śFgPAREN jrI$)!d,Pb]fPS΂@m/~[3t K (ש 쌩P%A4Fл3huK"$d:56fd =R XHEǢ̈00#{S˭tVi ~f= UE Pt`Jj< du/d ̏'A3`"Df ɔK'K(pGY"{6krNb{"C3+YQ͹Td~Ml9]rP&U}7[~D.-=킏oԂr5{l䂆jM_鑧 qy TF @+ SmowغcvAC2єs s~21dE:ҚO*_#,faD{/O"} /]a 4)gwU !+#*lhVPz,(^W~\lc4ئeٚ՞L`X+f(#A_O<(ǵEvվ5K_v ԍ5v8!F\tt6)2t -|JظKg7'K4 ^J9ZYYI߭eFX-pG`-a  :cO%"Z+ V3N/nm"6ܧ?j]Fv\X:]cYzS<DvbpeHW)>YvDϲ1v/|Mom >C' g?U!t,bQ1|wyaFyvH{D`rpJOdTDLˏW4ʆ+RNPQwg֢JI#)\(0OVWj|s0rM bҏ%Ͱ7@hRq١p}eǛYf6{wO#Gba'\y- 'ӋVA5[TGp;s L'lɼ5\@ӄ!)Q#'߅s|n#%BOS^=y ջ;6G$ת?>l@h.N<0d]FFPTӛF V`RQNң.=2ٓD I3)? {P|D667q1V{G]ۓ "wԔPc [lӛv~FL%ࢁ 6 a +hd%;IHHQ)u8'VZ'=++ݠ~lNF'M"՛>hING{3gxizI`by>Loe ,E4TM{OY"3>M u-QĝK}-<1 XEX~"ZrT9L !fiaF ÆW|<}$r)J@!Yxnjt'@wO5u8w沦RB"1 K%BJDǴTբ% Qu>z}RMAzKW{ [a d;GP\'lS ʡ9Ş"tTg]-_1Mȃ|'F%x҉{Q^U![=gKV|MYhش>mdL{D(=zJ,!(H_UÖu6c/HZ #M?f*-(gx32ωJϪ]0(ٿ>XC  {ӌ)b UJ:[w{t͏[z$,4b2_s9>d)@ҌHx١.z{)v+sQ iqe _H5A4&[=W&qlLGk8*[=`(aD?z %DopCدr# `#Ȗ#C3LftDUp Hi~=Jn\ˆr5  *s½ȃ m4~Db st?_SYHeMkme68@uGɎ*leI+x#ml[xqaA D7VBTBaŢ-s* \KLXDڰ#O'dq8rJǂ'#r9\mѺG |NC@cꂋj gOb;t]&Џf#z"6b_ч҇HBl@_dA629[Dw(!o.Z[mZ-.u 2uPwӒAX3M*fE49i)G\ 14FL[ Y1'5qGTo7RA0#9enpZs)eR\]1F\kq)J!'e1Bg!"IoH\:jmq)5;h{ㅱ*5 Nv?#ex=n۠s+/WRnd 5{ڑtoxȁ4?:h0yJ+2ZL,@U!DpaX&LLQB Vçw&+I aL1>d/.S\iM򖩠J5TQGKed n̊ޟ?|Ru h"i<<˲['QjOg AmZuQmQ.Vy̙U rYvl"U 澶ƫB=^]4v\ˊȢ9(oMTpTE/Ӧj] AF2Dѓ:UXĊroBdg&tKؒckMDBy yxM(FEj|gӶOF1U/_@w[˓Lh$}Bdȃ:(ȯS^n&Hpǩv^ DeMabo,nHT3=smI 0iȟ{K4םo9;2v~``$Sud{G}1q?U]^)-W*RɁXL$ [o8 0۶/O F 9LsĀW 3fuʅt_hr\p$NzN!2.YSk&zu-cNlews-ii\MŽ Q'{!ː[l& I07b6*OBrV 1XSF>9<[._:^su@3天Z/rc,|B6B1/f'DՆ LjI6\ 8dQ3`HG:nW!қ$m y(2WyF>~]o9n>h62O-@A='~Xcn3 KrȬ#"xRŊ\F{/u1tXxAUpw,*@4N4ZoRVڌV2JϜLaY2$!_R=Ffp=Yx#[> ~M=닇g#JOETޒ;EjxMG_AG&IYQ:Oc]#CԪiCb/7-@')kaϻ5ky!t 5)'ONK^-V-*YduB+F~e^#|S̙;dr!3T8aDm)YL>yߎ)*>|v:ؑf)Wy0eT zt YJm/r,B5hMzU0g>cTaæD^+5ƬUMu7X}sXUca"۝.HZcZ<+U׊,7yc".2 pbhiR^x4 ReɶDlt3D%EuΖ{\ی1ZɡSOoUolJ=tCW[LEڙ eJ .'4"(0zh Em%rg7%6f;n+W+|^35\k t|AehF." 1N%yRIBGoGQⅫ<iwcO"GDqGKXdmF#Q}ݡOP VJ(JPt8X Kl((kkB'8@]N$4pDń%~b&H34B:' a 'e:y4gW}}pԃd"2݅ g 4 gN*!RDZp[U+?GϿb -N}3.c FQ$MESֹU!}Z jIάE|TKborIG0Ee"J'Ԃ:!-~Mx_"V\CcHEiNVXdW v ^36/FlD3AȜ8? x 'v9Bք# +i{n ^QSrWXC_L+!^|wm'FCo*T+- rHq"lL MGF#-jn<Xf#2EX̠4:lZ)E4 VSv]1;޾voAw # U"ŽL: Ʀ5\@Qt9nZCdԁ8eR`$@ +hџ+ 7$  ^0N#d]L7#'1 Y:5Umɂ rBj3heX&;*CʙZX &!QD4mRy.L bbW(ZF1ŀ5ivnX*Ibm͔~"13ʀ<B>R [.!A׳S{F'croNO)/R$>cdShGHR*a-I"e$E-< }R#8ҏVD -LP &@<Y1qZV- 秎2Eqк .Ci (tƝ\=@q5:@֐(%Ы`_/hԖ"qE)3WoS)f.:EOM)%glxe^%/U۵l8M\n.T V/[ +!{u#FHr#5XT%wFBP~I p(4UL]P8bEP^vjkKMQ+grQxz|o/1 $(p&GE.RwLVR R JW-~uMj"pL$nVoJd7i[nK.\qImx kC}g.t\ R}sO=QHb]DP(ʈ`NbD8wOJSebKA칮zY:q/"Q BPH$ 쉅q9A勌jBam`jÀEH/VB+ N([CEe7VV Ôs1s"97=R"n:%W;|L,,Z΢lCLBI]i5&}F ܵ'\ߓy QjbAu)!õҡ wp!li蘥1CˉlX6۔KVgdcr` i3xM°\f*5pBb"M Q=`E\.G\R^,{#߲ED _ z Q"0 >]>'1caM^Zi5*RR,`&%hgaI}ăs45oF[+SSy3 ˎ\t Q3Gn>oxJﯢA(YY*)>VdICNZjT*MT0)XۅcWA/LO@:NQ&r\- _ʚk6;Fо`x -߈. ج8+zW*_#EjXhp[ɑjE.W(EG * ͚\ZOB X>Y'-ZȈh2Z|1sY8'v0! ZWk@gTP@Cٻ__Het". ʤ)fQk_"€')v$g55W{$55t aa$<7'z)H=ē.wр'>q1i#,a DNnGotBpJ@8X+@E acI B8"H^ l إa dF .^8$6 ##@Ͱ]8pH &q^~敇F)w*"*+z 9;% OCIMj mD b4A0NIUc@^%#׬l3~r0}Y͠g'%5*OBFzxÑ|,=\k 3G'b-1EspSxgu@L0>πF_=Il;$'eA Ac}M-cdvA@[πc& vì1/ZX`3WZ pĪk!0 BaT0eJ[tmCo u2 +{J&ʌrȪV(6', p ,=ߢ%nn^7qm v B0X^ ;!nsa[ObeA$BF}_ye5%`h%G(~*U@( qR8pA8K  0IȢx0`dBGSvn3l59 | dpߺT'n@PĎWfMI{#dɒ M5:;0U *5|"#`xB/^VʺYؙ95 Toh(nJalhJBsۼ/CxNV=$kEVlFD@"h#85Rt+"VS:y-*=.6dX7n7 W_]bp{Ha6A?rUIc`B,wŒ=ߋO2i!U! o:.K) ,L)C0fZ%*H oew3p2(n\;%+{R!J[QVy%!tbEzB[CqYc]%y#2Gd<_+&/oSRV77*ltsHUtTB319&Ѣr9wQTtSz@~b,aqiiw8NQBrKA2 * +#q!K=F| ݐxZ.q "7@ɮpe[Zr&87Y%< 'N2; ׊[^I0Co~l1g(AC9BHLO@1$)n- I7hK JɈZ܁W<AH`H>P`CylV}͚YZ-8klS`*k7:fJ7A GvaXu7LVx-poHu61`dG 0t{gV@} k–}cTg.fAV[Kx.vSjoÔùtk@ 'R1u cf$nVnMT $j9A@@A`qyӥANP]$'$Qt(QPۈ|;d(A(#vMO}@qgdu`98**1p=:YFUALT;!j`#W&U0aς1B /?<{ GZa[ ~z?ȁ*Nn>"ZR5wt%kHP%C  "Ir%JgWJ~0AL%(n6lgFCq#Iפ@;pN|X85,͠-#˕@iuģYVH2zU[8M|z.HOkdٕH(R|X`#Zy9Vf8Jki#* y*6𓌢M09I!T^cB琏ȡ&WT[pUO[AWkdIw̭l/jPMl褫P~FeC{ƣ]QVEwk3 r~ b#Dؽ N&ҫʣ99%J3/o;.fO*FOa-j[$1&,b2 WnK w)뛒D1Q 6J-R}^.#X ooU#v0]\'9&(HTdnj%qQ~D , %eMHW0Oqz.u4u#Xѿ~UGl_z '?m.M!p?7t B$ xlY/ެ~ò B#ܐ20ųmx2aM+NQ2G{ ,&%N_BE<`{]0Gr.ٮA m 0*~1!Dt>1DӘU]*jh&R-9qKיB,ch_K9$WuX}WBH7L_qquDVYnpxv"V|)%1şh2CZ}dN Bo(_+MCmΌNMw#5oMv nmKڭ!U`"X* 3 f\,NNogy[~'h  ѪŢ \480#ւѱ%)ОQbhWo^x FOZG*cu[{xvMRp]M[qZ= B6?MېbҠFUetEl@k+@ $锥 :!'$\E\&=]5MB L`!2y= o0J]{:'s0`e^de-pޓ{5wyz.BF1;P dG X!MwŁpX4Lx!ut' ت/,jĜV(}Ad}.^`ëG0&źr6 (r#H_!8X l`8n-8{ &,CD>iPf|csQKdQሩF̄6* gAyU)?Gԓ RQOТofd<0cDWIʽNg"> 4GF2[ʍ*N`SU5 R" E6M=D-1>nv.Ptp =;gank~T0A*98Y^@s W99Zؘt3R2U`E'uڪmTP`L_$NաRT<$V&nqkwdT WA'5ЍsOk~$pŁ;HB-qHJЬ%g益㕴p)$bSQ?ϓvFևn3-I^+kgitIF7K-h&x=HԒ>)q1e +aT^<ua;Жe tn1 ,Un d/ |3\Y0&WsVQ!.Xfvwm)M6*;n/̪6FƎ[44W5TM8bQ شG;Ў~(=K;`Z9d@4_ҼC[?clT/Z׬a־[~SDW$ aĊ*RԍDϰ> NUW} cLqF1upw-scA/>xw!%f:,r)6먕ciJزy)%"[V[dkVk{GߧR?^&{CW*/T+d*1rC2u[ /)EcsںcpբDkh5\Gpyq uYiȄ`E,l%3F`Ћ]J[Yr%^{DJ;XYUڜԻDS bu.պ(C]0C]Eүv0eZdd:ɯPX)E*Zlj8nYjhVc+{n|m#Z(建V5>S(zVxx'Ya:,0m*ȊbUƓhcdhBeKEυi8E9TW&Av{s]z7V_:!d>dnb?EzXŸ!B!T-=*wEk*DV/٫[IjqJ?V4^9ިM8S-Jid`6(clx#ő-EU'.ܟL(زoɊSz|`R5}VnJ 5@gSJ d/R]w ]\7PUzgC<3bpMhtÕdNJ,^pa*6wR>QM8r22^f>S'|ޞt="^+("%eBFԬӿFND;,D 1^:N:mnZ|A'"Cs'y~N!uiTVI}gh<1{.EQC]MrXyF-5و"uucdV46`"7:F:l_,Zd$M ߭JGr+m_A[j˴m`A\UT.ct6Y9)IT *G{e 0“t2K hA&dz[}j#ө<5u }S@Nt=Us{8~0A"&H"".3]B[Vuǵ'ỉ/=j?RG-+:/Hgv"<*֔(l;#`+6h?r p5Xy% lqI,;vgRk7/Y4i} 1qcĎodI hˈLeUؕ,(! pSS>&ȑ"׏|vu R^T*Y݅JQ>6>vtp'̱*@hgRk](*i:ZճG6zK T% =#T{SxstڟUaߪeHS+Ȑ:<<\AMG:-K} ʗ9.dH˲şE+Έ}ΡI#<+TSFh;>k wLi6qQ)V-0(/—f4NJOt+/S>5D&!j1k@Dm+5Q˫ y̩o"*YDŬ0gP2Ѕ;d\vKw"۔OZ Mz""C6d_2s.3HfYԌzu髐_ϺR?'.MRtِ։)u]Fxk#f} uq"KSE.PۈlNSʓK]cL"> cYy߮nqƻx[fxJ{.!y Pf"ziCXô~v~n'HnQ샚6]$hmgS(pP|_'Rrr@cp-{JozTZBXqdnїUJ e>͈dI5>QB GMFЭ]&$1&#YMBOxsJr:"n1L\ |++A1 H@U,<2a>(X`]+xk2?4z'QZ_koI!֡*|3qaqô$}eѓmb^aԯ_9l׵I@kꞑ!OҠyV[)%<84t΋ =bF-AN ז)LkLb2INShr+JYʬWɛLD:Rj/7 Ct)-R%$λ|IzF9f-_j`  [i񯙡cx\ hXTNfmFp,PP5(D/,͇Á(zL讌^$i օBD9M"#NyX5OpD+ HQۃI:eg+ƣtFBYA@O3%!T ufO[rWb  gYUp[p" bh)^F=2F|j/;Sӓ[dB\oۋL#wes "r [ScU D 7g.ǂ!C!',P2G5n#;RM9r;W͆N=eqXMItRၦY)"敮nOKBI;_1S UGM'QE!K oQLf%Qid@7XZ Cuߍ0yZK xr!S!Ϝ:6E? `Tp_&hKœ e*7q@|(QިƮjנ=q!+>{xԒ~ޓE)sKr<[Rj{Bk3f4R_^IR$,BS6!C!?=O J,!e &(m/pOf%~Dc!ltPYeZ!!" PY%%> k.&jM"NG*.jς?I?.l#Z5*JPηs\eBH"Z񯁏( peHgKspĸ!`^A! ʨ)2]EEa8 f  Ar(B-mMbDa/o}JZu:D:Q !t&bp.OlH%_0V2UA"O,jA#a."²K~V:/A2Cw #x޸lInʯ!Ybd*Yx m0 #i|!p PvƌϾLV3Je4La!W #,.0x%f_vCI[ +ksG@_>6OS Mp+ ۄADMJ$trH7)B0LjMi%Z4xb#!!- ||Tǝԗn|8 v+aiu 'hX![biyv@gR{DɈB0c9[!c'9_kbvFZ;5Z)~;p9e9bU|sVmsدxll6{X:> ŠH|;'LÃ}iTIK8_ ]H8m-2h IOV4DOlOExb?@h9 iĘRx9;Llqp,ht޷Z(ԍ=]eBJ! " :CUԉDC2D]iL.0pEP^A˿b(-l|a! ) r#WSLAIFC]IOS' d>8N3I1I-^󐐻aVrMɫ|SP> gV!)(na1V^":\Jdጆ+c.*%Rl_a@Ery4)Yۺ7y|i=ڗ@5>PRD4hX ,#%.C0 |a$_XEt<==MᠲJ@?8E //_2/Gpćmevf;4 ʌm1K&xPFv..#ą*M+!_t>DdM$#z7Œc ]\W PhS$_#9ЈTFn(14(i9ױ++ߛr?Iţ'b:qAƒ謰O(+&+"a}UT(LkXJNYwGrXF̘^^X5{gjP]H$| /mhKT{&[,%Qq#iD#!7.CjOR969Qpf,fޏeFJiUpHf@K :qyJcb߼@BF]0ȅAcb`9B; _9qAx괨l˳_"d0BDJ%g9gPr@|H 5[5BF!Q.C_PRv P  I>JŲ'dT:gd;[%A |!sM'Xd3{ؔjEZslrH,/(JF pmPue8DIG"Q/  ԑΘ'fk߈XG I; Ĥ7w?8?M9i$\ ^*^{RB\7KFX2PJD%$;hP!!KNjQy1 Oe~̓1tәr]bq?j* +H'  d/3Gnא]6H6YPtsI۱uܒmr' :p/^"ߵ|~D57[OlM8? Y#8#!3.$Qо"!:6SHeHEz8&= Y I";v%-vo4LK14I|&4o4xdEζo- +%"5I #Eu( JKLgCjIiA?u4t%HƲtR܃Tpꁵ̳ @Hak 8fQy'.QQ.%#/ӈܞҖ~N^~!ܴXjgDC'` `?$ȼM ̄xXCC'mrVpa?g ܥ|pHr!" dM ,uHJG텤ѝf 6 eۈ|6xІ@J[A>oQHbFQi .RI'5B k[.sq3 |sah2n'V`)-"6%qAŠ1atл0=>$icT}z6-K ҕVR=^B7Wnͤ{\Q(3&9Vm+(}.-ȭ]#*kT^ @_1%' &{A u\~-r+S>$h I>TSo5h% |R*Zݤ7};=p=9+[C,(]56pyVWO>[ -OIKl,+82>0u 8ˆRXf|mzj`ɯ~}f*#f,6?]ťQz>3h0P[s翵 ɤV0u"i {j}q1}-czi8jϣKNy&N p>(}p Gfk٣45YPͥ ʹ-f!J@/WOqd21Mjs[ M%{=9Aqh]Z5MA2=(U kͦ="pQ".]E&m.&5s), 2DنP&2LCC5pڹeyQx݄W7 Xء]ti)Hه;\+s.rKIѤB-,aSE{d"fS#)I,'0Pʑh(rVBUc?cTR/rs6!# ;IXWF!r<VvG6r+S!$ yK#>A φByq!0?^H%F#aCK QQWxn nP.T ѬVe$?\¿Op.z>Aт\j %>"Oj!)vf1f)x^0Bf" 3͙c;TXARo(!_'SpbjI9eX2 URsHKwD:AO= LjUPB*'*D]JVb ~#i,$P_(zkKpLc;HCkS,8)H+ cT%\iL/-`]R';\ 0.M$Yta,GM": &;DVA7n@}#/7SI>s(ډ4q7ԷŅy`*g"*mzНqx )Mp'$U-=Wv*`hWfqPu]oZUٴSAV,eFL:|ZDC5t:E8 a Q{JT"/Îy%a.b-JDXE )Ecp)#+5J"^5_+e&e4GrN1&KLOqȯ?kf~W4CsG"=^+yut gZ ߠF`@mӽ0zPLJ*@r{.S0ahhU4eJJg.`-Y1vfF]fUͶV.N{#N#4^R9 EF 8r_fF |Fx.(c3=nB7`_@702OB Dĺv6##&SN+%H#?2Z׍\@lHrF_G6+ ^ h|ʼ/ q]2nsQHq\25Y6?-W%?@j\WԹAMΕwnztW|MR~JQ- :FOy\O3.rbYEJapJOYI"o& ?mk2 x PޚTt=4]6Jþ `7 9YSѻ9Gַ%.% ]aoqӎL6|7b1WNKPPbc4&.}^5;|22G-NIL?1k%q ?pHω%ɬѽQ٣۳ p!S;DpcJFEP:leiP@W5ZtVhP*qe!#ӨNO`:tĹA+07m`_yñ48X2 hf;qrtll%G"Wk|P%ߧ|z{]҂ _hO"f`+SHvHTz(5;JkZl<hf؅k&m!I֊ Eq#1Ȩړ9 ^͕*wEUp"~/u]J9iDcu0+EA#՝Nrj@4lT'N] 7W:)Yo!B`[J1+tq`S,e:%UqL^L]z5׋$3ǰHN?I pC7 GǗe JO1/AL.Z*eW}lo\3E1{0( {)ybr sTI͎'$!xNT"D_? 6u.E&We􋽗7=?쁕i-nLtda:7R'L퓨#1C$$u1U^2"c)_ Lm'733_"bg|I=.FM3^:>E馘9PLc}^}e>3yvRp/kvcgrybbEn,V!]׳rEi>)+3lɊVXpBB)x EJ#=l%,w\K(HjKܓR. lD.[١؇4|kɎ[Gj:$xwR 55b[%~uZ,ROO4|XD( B'.o R)h"c%[3rvd^V$ڸbIQ!PVUS /%.FxMhoa adR^\e)OE!e]T݆"f Om2`D͸C;==4N4…L]s! -(MrWtYy`0K92ѹ-2cjZH:ƶ1Ur zIenHC yeLy<29#-v+3w/ L$f홣92.~EIܓ@4. v^S*68B, WRaNw;0Fr1aՁ1_hу.p@tb/mW$;{׭WMcEhć`nV9%66J'1jÈ)Pp/*'U"`K#~4sgFG˜x5iVۤPD QoՕ x0!傐Eβ^5*E@w,&4cG6jLbnO ˔آ(c{O#@x/JJIVkfqT*"l qЅUԲCJ -B"ien$e" t)C7M@=ca#gٗ awVOh gYA?cZc!z@DV("!?/AX4柰23"Jx~jh%5;޶)R r1%(G#UPf-0:IUF jc#3JR nY#.; }4 ,&Q& vjh˸L[h#;+Etg3>Ā&#!bm f fg@65-!n0MۮP#yɥ X) QQJb4xL+a̖ ].>U\';\T_keO!zF@ntz:??Ei 6P3J+qӼ/Xm 5:錥΃՚Vж !ou'q |;r=Խa% |Y,e~F.ByAoӑOPq7=++ҾVWrP/j!ALXkSMZ3y{HV``nR1n+m6O+R|̪ x  Y)ڬěOunc-V^&}\#ťQi, 17Tz8sj'}Xkm JBS@&tTUbu8P=1V'u<ΖMMi"JOiS;!@nԥ))I|65*VěM"G5WoBYʾ7o}Ik+[q2>+ntR 4F= / B ŵFFsil ;H'D>:C*hY?8"KOY(1H Qr-l )e2یU췚UF-CQ]cKJMW&IF7(Mv_$~Qa5Ce yZP%SKob6Ds'wAt!p*6;jS1 #\mZ- [D3H$~٧u|S;iH!N@ٌeZ-ZD SC)KYڔMh"Qen⪢L6P$DJL s! 1.,?q-~]q OSLjp+7HyA;S{OPřy;sxO waCҢ$WDq\Ϻóલ5X4$EF@¸K8wW5i-l/ Iqs2QXiaf:9SaX΃DnJP0)lNj^AER[+ zhRRG.Ш>x-EֆpRxDi?@%)I KHܐ2x22 T o_q RpAD_4%˭#S#^LKW! ;;uJā@ǤRVɩ=()$J5(!$ԣfkJC@K/,"*8)xkrjhXˮfYoL919DV1rc#W85m;bb ȮfΆc<E~ %yhY*8Tď dA}X_mк% d^+"{NB\~H!hH" 3UFB`rH`fޞ0=1e ECH/0&, )Hn%-VE#CD!g4% ;h(.;;^BK"q й:0L¥ۈvTa,_q-1ٛV>}&&cȖdi-NH^s )űF$L7J4W* aAzO L+fy6AlGI tU>"D}3fG3Aаstk:,qM;dNڗW)x4M_fșCShlAD!0q!G C8 DK;U$%uАE="!7n t`F AL 1VZ-t$A\Q\/r2--f9zʂd$",+Y^z%(S9:ZVbgw}#cљa^Q%U 7dg MGq,kwMZr5 # 82(%x*:Ko$v3 %L؋>W-Q`yLg;NP˝ILC[B3y744CA7b81DkХmb )a]&3 R WEe)Lb'q`/aYY)J>Vbq ȷ iE Pa=5RĚq@@C2C&(qrw[L-zgDiP*Q1AͬVDP)0E34uPIQڵHr3 ?kҨ0%z1rxZV) `bJ5W]C6ل7#5@p#* 7#) @ `6x@Qp9((O ڠFMfwc>IzE/ XXA$h{_b `*²ApʲXX  q?15z˜Bxa$# XE$tTz$[ R*u"a ,\0(<Ĩ^nQC,#XS"Ά*H 1\$s7 ,aWLb" Sz,n%u4Le8R+r|;m]?Fwr-f2  5Gd2WEGHC]yLN,}1,^ݒ1 D^՚aؒQKO)w^Q_uF־U6b.ŲJNFbM(wG4\Pu+[6lW'ZȤWMUjУ]DB8Zq+^Hnr،FomS{9-b Y8[4&%tO_~˒orĢE[wRX_=VMk$h oc`nayJI/ X²"^7pBGbo1:b3 !3qdq@rk@ERЊ_VzEx"Oi' "C_5Eh0u% yvEa2|;ݎZZݤ 3mE$lT ˎyOu E3Ix\qm.0[ꁸd,vSWd|'b0E{m; ;Q(_ᖐZGJPm7k.nXaV &_d9o/b:PUۨbF* "C)WHk`n@X91fRI\&N4`PB4 T_],m3I z@X₝ ~تA;>ThZ?Aè}dc\ۖ"*Bc'x++]_țmP 鄖.ʓ^Ȑ.KLJ?JZSU~&htʃAZ&чNf_e4A8 ׯxg秡,kfUtiNb)m(ؗPfc+P'=ɽI%[Rvo5d6:sut0"1-Œj#s ͋1ޭ j뒾#ð?LD:&dL1yGS1|hw<'vF҈}vV{'O4! )m"*=Ož~` -&x@j̕$U(9voOsq 59OQi{T̉?,RA4gGe`d oNUb)o&(Ȧd 7?c&:ՊMhUennzrR'5$jjAl< جm/xL28%Tꅸbe.1_@ hׅO 5NU'Sc>Ȣe*&B"~,#W:HpY0icQ9@%I_Vՙ 7^UMR aF{,qiheJuk3mjCZBa&xw:i(`@lY:Zh d&km@O`Bug) Pi^ Ҳ/@I xݙMJӈ ni7+'bb 0R#z y+$W]DHQ/IAw"h')k95Pd ޤ5p1#n=fca@btyŠ*@rJb*b2k;*4&og"~?s٘ c5^|n#ۿR̨|Ԕ$j9,^nj”-aOq3V8$#n0Fyds]403rKєD Y7[DW@.f*6(R3CRY@Fd3d, {X6'BF Dk;,AYʻ2uޘqM]`qj5$Zhœ 2q=@+%hEX $m}Q3w*Avj l; ")K\oWfJp# Aݽ&I])y˖82\1",fmd9nM(B t+()}JzPĊG-\o~L#*<٥ūNSƕ]<@YTd< [SB2`=}Ißצ*wl4lq)[/N3 M6AEf&/J(7'F!^;ձQ&m'N鮽AS/g?[k]9Q6Fh,R\e6B>e*d` L6*x9Z 8vPK5`V5t9Rޒ:1;d]?>.l[w!+ t$I:B] ;V m+45?Lv=GҪg`ѣ~ɤh8 DD{3! ,[k*2aCYUC$DѼur1L|$>MUUD4S>HPtJ;=\1i! g1@ $HR&:Hh{q{'W+? ri<SpCt,jM0ahw1=.y/t+}OQąSdĺ45Fp$ S5WDe$,\:xęT—nϊz|iŋrr,!HV_$)fmk63шUašaGDVOpR2 A(Uy"L-̩Q|'2Q!G ^I :`oxגH W՛+f80W~a&t,n fxcB=X K۝0gxr _?vwQ} DbB"g-$9%z`q(Az ]k4uATū?M&?]I+ 1J% K{XB[-E`Eݒþ0@+U!©{^L&Pa! vViBa7^ 'H%$f)Je4R\8}k",ы,&)b5cMQ"^%Yr;-՝1S]27&x xp}^\R!*ݶhץat"p$,6ǧcSܓ工@,zH#):Sv9Ҽ "|vz*IK"/-<Č |Khub=?԰Է5˞= *,1 zDN$4Zhy `05\ _⨁<ڊ!/AV^ɫDld!RYl Ro)`e Ըpf xQ2>DM ;;j-=ra\~]UMcs+e˰atçz+SF 1]"k6po#9x"U4ua Xv ! .6$>UU}I ȲFu9DoJ^`2Jn9%a{ev\)vU-3[ug'wGAŰEnL49w& R0Ā+ٱ X/z~(&f bU*A<} N}Y:b dωt=!rָdx wN1$9*_ y ˆI lFSdD=ѨT0IL &z/IJ JR*U2+dO`@ճi,+0)qL(ȶ&I_R/n)U3a̦@fS&S=ը!Xy&ʸ(jԅqn7Bw2+,.È!pMrb`e*0I0XxF#'VܩHlBfqN5Q}XbDBHf?%"5[E]CI0Z[gRY2xT\eV3E!R',ьgX0Ay [PP\Ӎ##Pi F""zr<H6.cһEH'sĿiɴ^U1el~ D/1s֢_Im\ ,)q'K(1JIyċHkjtx* w6R3ɋ/& ՆD Sԇןߋ#ILd7" |Z#PDN?oyJ@q6u^A:d)"X z~Y6#SG̤@.6 [R6Pq (v{cIH_&yTxO U0RbBw}xF]DEQ MNB!ppfJʮi &AAx KYCFyj %bq/o&}Zż\bSB9`8ag%gX c$LSJ/&A\e3ׇLOh D_}KK9'FC j?!fq R"Njvb#\g \ hC|ƍ ~*[kl|h'0b"%9QV^&`?-)] 8Ia4R!{2#봈na 0^DG Jec@t S♶p4}?HK}UqO(+؇;E`"sBճH >F& J&E&=Of*Z;&MZHr[1R/~ '4k}o8Ȇ,JSD- gz,Ȑ2 T($' w",zsJ!CRY BpwmT?5%S*S8#DuKĠQ唅2D`Jl!E8$'ihd"8/{iD[Bj^aдWx97" &+gX%3|Y>U&.f", v31TGGm|!M GIiL(*u@@bCt[?y8 [pG2 !0T%owiH$s fJZ\-.‘Gkz;D댥%9%[mb~ՍZL},+r #YH{cRB >>yn!2=C.t'3^jS!HO27B=rZ"c0"x+M'fƞՓi0,SQB < Wc g?5 A$Og*,1RtS㘬=ypw^`'ҲTQ*9g̭bPJ le4"`)[y)py¯fM"Wd򃳊sXW%X-aUT|1@eQ().E-]B#&_p-CB:$P< TdMuB#dَQ9YYjTfgKhM$bs FI^{`YH% Nuc\Ѐѩ$=)B8E:rLjӵGE1 =a@5XLH1LQKKHɠX&ip F3~cHP]fWhC`tm (ۨ"cE"+ݳ~Q'} #1B`C5zKMn_&Ak(R^ D4fƅՍ%VTh<H1 6_,2.+B؝kD~xRO0z¸;K>V ;ڔ D Kٳ@%N `@^CVP aDŽ Ȧ+hza 4mda4Rc!G^6[_!K֛Ud%\R.O+ā%dVĪxNE2-&+PI!xȶiFqX \6[)2|xӖA?db@Sou2W|^'@qCX%eG ]&- ue| 'UPPqjH3"DE-$~[oV0 soÇ1f/E\⚀2aiix]p((߱,R qCKlalOMB+F>PgtDFѤtua!=$  [mZ|'$8M,DY2%;L &R1iطKǫ)Ě$>"KH+R+p?فwKPCJ)V)2sD ]Q޿(ppi54:BhTSf$ZD@=HɊ:|⷏S+!"#ttT]++?LCך 'de9i )al?%1㬀)W7!`lZ*TgNj"^ΙIo,bd@R@*azN?rbHqJh{!@:zJ1:$!'N őnO\PJT ЛD_R; DjnXq!W*ƛ>zS:,QdW ~ [Ĥ\uQIzD(O浳0djm~~ݕeլ€##(m8 ..^zs~5۶#J$ 9R̎BeuJt}@l>Ub$ ^ tP!8Rn ݌QlONKYDcuM+3q~H0aHL[$tMvn +̥h/;(GrK5R[UXcGwm&os@#>+&B6zH*?Vt: fԀ:ہ !9(:~|dTʶ%)tTB_iPTgXA$ 뿬b''qV4pP8W%%]ik>4tW1QMx:$U%G0ey'|HJ$Y,󨣜ש~@wlVdBFHe~yBsL&3V3B.%DBġ^Oh/R3ln'u3 - ~C:nuOfc}.o4NT\lR*3I-G1 vB)Y֑#{Ap]8ȭ.=N@oSwc3ҭBҡ: щH:pX_i25 P;ȴOEɵSᦈCd..N'NbFUP%֘IRfKryMH)9mat-0.4.2/test/clean é.jpg000066400000000000000000000024601223433004300156510ustar00rootroot00000000000000JFIFHHC    $.' ",#(7),01444'9=82<.342C  2!!2222222222222222222222222222222222222222222222222222"0!1AQ"q2aBb*!Q"1aA2R ?T,C.[NY)ɭU] Op{/"JTw4d΋n3( MYV Qcv7v~R=Eo"]5D%QU m`㊑[ \3شIP=~hVz!zn{d3>dfBt{?{RMō oe`K^^8-S:^!aHP*ljKXބhD-<(☔l62)4_mKu{UgH’99։iO$qa$axte!D7M7C *n@h((o~>T7pt. _Փ lN"BK q:s}E7N$Gǁ44b+-0`PGҹ8\815+Hhi A"6r-:9P֡V~;kz$pT8YY/ Hcz>K[DpH~"bmvEԝj6)=m1&Zޕ ISSjMqv,1͍67t jCEե QJJ"Ddg"4ym>֞ǜnFR^+ ZX .'nx)Șlb:]HR*>Jh;s ; rl8IlE;u[Kڔ’oMc~:om|*b3j̋i'ؐJ{UTHo^yQGK$_`E(侸GղhULuVQ_Laͨ("( mat-0.4.2/test/clean é.mp3000066400000000000000000001012331223433004300155660ustar00rootroot00000000000000dInfoO  #&&*-0337:==@DGJJMQTWWZ]addgjnnqtw{{~9LAME3.99r$N` de`S `2o(`"wsÁw= ']B"! [舎- `bu( 7˃>gp|˟ Ym ԑ$$ ."ܰ,H/jP080LECYr{n`ÌujMG%m"ai*Ӷ_S)]cռ}~v]ϵX1P kA =`g2 !s &;7Ș * @ ~~[:w1}!p)w 2T@jЌ_R=5;5"?RfVed5P)AprA|!;Ef\;qP5o17dFT$HX/X)dem0!XNlo|.'PA*DK$a T,mdB-(@J~< [i0g$q_E,GGxhaET EaYkhC|<ij!qS)3, RiRz5gv^ՙveu@@~T* Z_$5N@:gA17pm+#1)n%N1OiMwLԙ}3;fnoyZ6T—fd;b-g\JL` O9Q4, t,Yn/O`񞯯^_W' G߸\Ok?),{Gّ۵^__Mwh+Ҽ^\KI*ʤ+q(FAÄ8X`A6iD28'RZP C%"l^kز!s/3ȍj19&?)\"V2qWq,ìhYHdRs 2".*l"YgǤjpwRQE9MI\{TTGV_kw7Uɇh@$ILp{EqRD2:xb[TW &6L;6QUa擳>;/j RB i, ,A bL.jiMkciŷWJ 1IV:H *ڌ}YFS2P fY'Bb8>P1j?Ra,RJW٪lf-52؛q'ZhO #kH֝Cpn+\\2 `2KI ޙnqej57P G28D͈an{xvaNMQJ)&*@m:.Q ؙ5IA''{=7%)I> SI}L5Fc wUYDCV7?ZU@(Fcf-$9)uPj)qTvҬE: ɂԊs6MQ/ګmd5lVK= *(#cǤmH΀ఈf*ꈂbO4߆KcK͖^ub7&&f"ѣLE :Y7A9 E#A7V'_&Mh6:93GuǡXq! *@3RhT#.0ӓ#fdo՗MmX*BzƊ ţo0`ԛ}oqO(+2-j*o}MZ-8UR!kv3h.Z_,*IW"[ _X.wTjfLXlfB I3*RM CB8ʣ3heAT#PzF1rDŽPJ0GΣY{7{Atj,@ס,dџ8(s$t 8Bîk==I5߻cmpĐ8GDBcB P>}*֒EBQ,0d؃j!3,*($"uZ5i,`d:)Ԧb">&IR9܅G[?ۓ{29RNw6k+_1J^񓒛hnqȯ+&;҃!1"bPo`q BZ*t9m44$KJbJ91JpԼJޟd]}~xmhvY /M4BV^xP zIg̴ޫZM4(@cȢiZfر ef'ӀSJp  9˙JeBXI2]F2K4#D&YԜ@&f,4R Bv UJ1*aSWE)aB'mI0NKVyר-;?OvUWiFdFkqK**l"mX9@ ԄՇg,E˪B K:z?LES(ɅZ:UErBN,NV elRI(HVD|J Q~Qo#~)E%gr9-@}='^ I@!6dl+U{$IRd8x%d*bKyЫjbigĊk؃eWwzvg520]Bq悙{΃ ܎!l+Nz4dTdQbl*ɑA9IHr2rlw72#K i]+5S2M[4dbffhAA6QNs-Gj 3#J$}MTG;2*ajIidR( + 1 I)p+T7d l֡K#H$E[="ȑidVVȏMjB}_>JdD  SР2yPOW &İ'##IɎ}4^66.hĒH?YrR LFet sSI-D9кSLpG Gdh0颴UV;=(ʍ Z-HV63U ٚ16dPe=3WmH^ '/oWQboӵ@0z>Y#}u@moh$'cFQ0ޥdA YgKQ,QiIe9 $Ma< +XMٹe Z Wiu OMI0Y4E3r0dlVN-*+ Z3TY%T`խ T%n)Ўz;{Wۭ X}U! ġs'gBG\tt#Ʒu@,J<%IHCaDF(lbIJH̽MAhqY19$:F&(ŮP\XIj3jhr1QUV\AbUY2cG;mD!1g#r}`ɋP!F#~WV?PgGz!T7&ʻ*!Ѐ @ H0@''bGOבe1: ˋ Qr/O$Њ۽\qkEYRHJyLN\d9l֡LP, *L<1_ǰȈptz>);[6 >_]hV, H !TFtxn/oMG2-O׽i,H A6/H\+Ch@L"p9'f>D"ʹɾnkCj란QwpHkk9qTY 9su/?\s(ZY @s,W!M6̶LɅQl,uNFW;n_F֯$?؞{_u~j#M5 ӈ]K_R+ 53bG0T%1NQWEvg5(crVZ…ًON.7OFQyJdM,|QS ʛjt=5{( dl!0p'8(Z/i0 IhS: 15 j߹YeuS`+7dHEdS@Mj=bkὂ{uVE1-ILUXb:6\p3t}$ DB8 XD(]l4|CVZc0WYM6#mϔ[hM#d2G*.yb=z0:۽8h fbNN\y"K@EDB չ1{ZE[GM6x~J"5 Ѭr b))B]t9 RwŧpsB|9+]oEw!;SK;;WfO _̛ٚfOwUO:zfh@[bf\ ٍ'p`Fr,"&RjgY6KnKK,iLV&m2"F'Yr24#6Cr{$vIvY/^&Kd$lW!32) :K<"Z5H2\+ygSIbV)’t)&U@H6Zhzc6ߊoWWa&s~<۪FD*CtX֐l<4(HKB7Jb2 q7|qgn~˜db~ =&2TIv䅼YW+KRmM^Qe-lKpGFE䩫UHknqX)A9n45(pɒP1:_LJ,lIDEe!&_FVKIa!^\ ŠӞv)djW!Lr* H,"\$pI_`UgmcY}DKؽS!9eVLN Tz-j91g>ƳZ|W\@|pqRdP%^'۶‹ŻpɳXMhuvy4d !(QiMjFs4Z0.e#a\GHAQ(IkA<&lQ ~K]x"}ԙd)jhffִ_C (C$b.]f?]{vm*F߹{[$9K6 u'i+Vp+Whp64̞jUmPB(Mp&'|r\ڈZ.אdlW!L&*KH X/Ƞ'-!g~Q)Q%FA0B:`h8tnT,NU%fS IHAeI@GChk]Mhuܑ_OWw~l@ q60ld/#զǫ2Av:5T}m,YmLV=HTGe4dB:M-Hh]E7uEi92a)Q􈘵 lKHKcS4@lCuAajai{tښ;WA4sac C; L"ڝ)nCVmΠ1Agׇ}G̮Q_iK[qJEiǿEZYl~tdlW!2.`8$"=^9ȯlK`E4́hB0(Jc.\,)/jD 50 !$eGr7.v yQ<6YQM6(bhNͪ=>ˬEn( *YutVYE282tB.JC Kj$(S MI1JfۖUI2oR&>5M'eUnT^NԗrQ6MM*AoDҪa,zhswvHqdIeVٗ >MѦ\3k$@ 1@Ֆq~"WmS%@CJ뱰>g!oBŪ/|o(q`[u{)4u[zdkXq3+@*Y0\Ȩ蠰D(#QhGi]eYZ0Bu9Q{*$e"^0V(dv,֑DzE?ӥ*#`*ITR!ڲ] ' tv ]􊇦iTA+qRتPsg4I2zz&Z0}΃ ͘aK1=.Q70\qR v<(9K$ |TYD%[Egj '+.0߻MͼQ]5^=Փ=@V %U`D{Fjp5(gsXB\Rr n4_%ҳtd]bg[dk!1**8,1\j&1)t-z^mLԴ#'"RF DDud5!wWj]'S1 NsKY[&uyٞ0U{5[CZ6J-j:]L:!-hgHD - rAy0ƩN#XR}x:g0(e"VWÄ;Q(|Q*bX=SQby2Ь3DMuXM k)\bOA1I5)z[PV]f)mGdi  $Phj"}D!PtQ02Ƨf,Jbߣݔ/6v)h _Hr+tPS:Vlb!EO'nhGu^(QDeG)4n dlVLr'8(yZʀ$7qΦ@1(!]{ýZAcݓII70y#"G&]LK6ԺϢZPjg`&Șl XA D`gb mPʡ)pҴ!ڔQ[立F_zb!@UJْ_ѫY܅ x fNa6ԂE28cYqLnzEnJ458IU̞M*Qm%зgmEa˯m>]XZ[rqqY 4zEɧlc3F-Lv("r ޱj-c(M}^ݩ*~ҫUvɗK(AzR8mD/&ydzk!Kr/`*;D"Z-h䐈$J;H| DJq'Ym@a%I=Q؂ ronXxq&Y(96o1*Ҧmo&,s^+[K3: R5^)SC2Ome'~z={ίU, &!0ѥml%ZGE$Ʊȣ 0 (d@/A+3L;Db-u9Jvq甿%a*hixWGR(YBm,Ǻn~ѿ\r}ʖK^ˢfit7Xn٪BVK" (}ByzWܽ[;1nЯWԬФf`PAJ!`i * Gjjt,21|)DٳHx@%!g^% Ӓ 8J:cPOe>À!Y[41ZADq$׉Z'ή,bfŒƥm1T&^ e Mz{ } 9?d\lW# 0R(*H$\5Ȟp[Xjh'KoB9.e$|+7'ԑ%%4uG1mu Bap8PA1 m?5(k ,v.N \+f3rD($ AkՐBQX'bM,e+n2Q ǼOzu0]w~o׬$`~hHmd`$JIe02f">e 'W'H:xAjx)4del*kv'1cGF2n QqmRU SI 6̘#=)q9ḏŮ $DfhB$ӡ4S z>OwOdYkjס0b%:n` y\7Ⱦ,%Vn4 p8#-EWf&a縮-D "aҸTH B:uV "ZoG,Z{ k4D+ ۭg.E.6 Aw岡 c]!IN浳xj&ࠂ-,BB@TBL& cTS*M5wH?wؕJ}^Hq$^ZW(ᨡG7fdrQo-8ҟ $bZP5dVݐZӅ[m':u\ia1ߵ3 T=ey-OMMå !DN (BKUnz}%Z֋4^IB5rp2,k(TiTIK]avVSdXk!L.*l$"`Hi pЬQgc+~Nb@!D"GAI5Ip ^>'ҙ7iAn s^nUcQ\?OrcQ7 d۷ȿ1l[i\$vsaz9,3_6Mcy8BV =:jR$8թ47?_mz)+,WBQ + XHEP(\'P_X0#2(O$Vju?Wg衙DulXp>M/c@:7;&p2wweNs<$YQ5ePnv%e5x1Rs^S1՗QfϦRSN!>z- IEGfU;tcd H>$>JsLHB>@:&y?\"ؚ=YPide24AOcP20#!82$QƢyS؋Fc1l'Pښڋs&,YW7ĭ_> _׊wEѪ5`LnfsMl^D{iDD8y:C^jme=AondOPhXq1&@*8(5Z3Ⱦ( ?W|߰{߫Ԧ}m~6P/ԒoI!o:4\ʫd:2`RL&b aQHAAh$=AEXH*7zUR+4J-h#AI9RH/Df&6oř*)bP:F^=ǠoN")H9~34h:"aPLBz4تwT\ _B=5{@ :e,$J%u@tb?9bq ~K]|ތZ># Ũy9L9S1wIIIDZQ /(9"ޭkg3UK3OE W . ޡedMVlס2&@84"\0Ȩp>їz9O^v'S{II@ $ $y+Džh9.`y 8E48tz:4dlcX_<mb$E~l)g?6Í iu7GChJ˦*:,\dglеؙ(Y)<Ԏv@,oxq | fdQ TcJc KkJQkvI U_z^/aAa%ՂdNlMp-@z| "1_Ǥ@edJI<*2@頊K'y'oU}?觫wH@ِn+{aXD#Aq])@Bx\T2g $yU QH+o=eKxK|3d\:=t*6ʖ/vd7tuf/S}mj)(7jZ'=E#{e4P%Q ޭ m,"O~U>rLBI[d3GM4QCHU$0D AH6@ 4}1ppXcM&DF6̢i*brE6~m'xVv2XVVG[S2kLÞH1I" ia|8~>bIP$C r>dGlWq0b' \=Z3Ƞ,]+J.[fJf$0(mkJ1jn[/9ե}eyL@X8z@BtՓn͆er3DZy r'=(5i#Tq1)jDJ>1*yGf= %4q_p$dAlq0'*<,ZȺ@NSR> qЪrH :BÉ\xzENҐpb$ݒ8>@ B08,0}Y$5 9q{e]'AP*U_)k L4`g LRp%1̲JZΤ\J5c gjN_ZICj N0txwe7fX3 j2-UlSW=6 YB}x+JPDe^S,dQr&RjcSPZGY3ըd8k֡3%`9,"qaǤ̈(u%bQ4HB ^c-'Ab/yS8G QĬ0!0VuGj+-;U۫߻Ré".cD撼F|mD\DdGR~r2[Ӈi -u嚣'_ImM4=bc{Lś 6q( _4 kKج^%e  a=y_Un+*@Ȍ A8f(1,V)F)`IE}܉bt (~rJIbsK6ː<ӽEnd,lWY3r*`8(\<ȣi,3of˻9`ZcrMQZAii?m@ǚ6㤁\|ՠ \0`@@1yjqDk?[(p܁{VңZk⬄$dc.')DXX!qQ+;m D . $PU&Cj{YI1Swff&FӧOj3pb-tGDވ c@6Ykd0+XIVƺʄ [@$AŞlK!VZ]Fw7hMKS`$bVD[`v^Rj4\<=7f+!K,[N Bdi[Xx_m*qCd)lW!Mr*`*%UZ-ogi᜾aqouȷRQ͈iJ׸]Ԣ?'b&mUJE4 7]0.:yׯUI>޸mz9ra7 [z!hқ.13LQV9.DQP"hvH }d2@UZ1=ƨ|}{$)J.aQ"aMq 78(dv'TV ARzXⒹR@CRBr/_]Z}vM`64Bw!HC5p3 mdFkPZeLtԥXmTltb@)JaJZb~D$d$j!L.%"Eanjȕi,`}Ӈl4Eg -GVg-s][)c T&H;KEI6„YEi/Ux^y81 Z7D45ob.uNYVr۹Ohuag.":\àMpPZț( \)z&E<zPE E"[M5\ANV\-*nO5t[%]r+-:I2c%JD;bMOhl[>7;" kLhU W'Ǣ%Tq>6  Z! p8ɣXBMʔP*F9hAo2*d(lVLb$8, Z5(ఈ֥eiy{X(jj,њ,-376 yJiIIc[|mI=C;[J,ĝGRKL#/F#FKVd\VnЏMo_ZkOOѳtydƉ%9c64GMj(\LLMQ夲m3@jJ!# C063#g(@-άд"i廹*q͒LcĐR`KU'a( EАFP"@CJNsZ(2F$*%uD Y%lh4zSbskꪖoNBhR@@D,, RxhiʔRJ FOh,DH)9)~ Q ңK%gƤ,d!4lK+K"Z,ȷPQAQkj.i)$LJw@ݺzƷmާL#Yc 0T&:$ӎHSuvUiClۛ$æt vHO5:8i>KL+>]LRgxX(9Vzk!|LYΗFÉfFD& 2PݐJuyWM#YAY^웕_sL7*AhDaLHMl$/̤eGJUE Mr40ή(ifGFu ,J(0M6|ckmsOVsqL}(~SFT!qMyBWxa&'&՘ Ydj0+*8,ZȿhK#eKM$ԏdflXq22/*;,uZ1Șpm5l/hiuk>ۖ ҟhVZW^VOϧiyK鰾Q[?fjiԒ:piFi~Χ--Qӌc@ \en(UV,S`ZE7vf4*;L=Yd_I #z`L5dI Y3#&$r:,d˝&ÉJy@I NEuYSꌫ}/(kX|\PW0ii]43VjoQvߌMv:X֬ sӳGR*cv|qETHRQ+EWV{gPՆOQֹ`JD SH/Ri7n3MmdlW!0R.*( _Ǥi$rDB\(\a~{IK h5ܙI_sYAJ\}ΪE2qԒXRgw;UlҮ0ϑqhשifB2f~$JvG 'N{{ϼUd™5}hKWd yP_gBͺ>nK5O~j$*:}%*Iʕv Ao[B8#Fdj!Mr&`H\5pIzrxv}цdt2ўJ%cb:j/D)}(8ڷ?d(0#&uҒD,iz0wN>R M*S4 DPxi^v_G~nS$frqBmL/E`f,edvąDJb kJ;tMUIyT@Aɝxw۫g*pmPgKMH$L:t DL Uc1ȣ/3}JF bjEZ0yyCO@-3<]"Ƚb-H0T J_}_['_lAu^2њ냙fBPednlW0`'*L,]ǰHh<֣ F+3ӡ' .-4Ҁ lj^=2;%x?/f')^Gf- nF* J-FK9'nrNΙr|#8:4+t/>JWƷoWubX]uZa6DFtI3 ֊D\DMYd5pZʻ%32f%{#d&qxj}΁m-}[4jOy&Gt،0kL>ޡ=dH^IUwnQmwOM}YU61.!xh(8ʆ&K!^ \[D}Sdjq3B++$%Z/@#JR&c]5Om-jgS;'`jN c# -/]TE1Tm3_k`51 o4焢gil"Kf!``$@_SIwvogoRvCb&v)I1 D!6bŌgNY&ɐ{F  j֊nVL~ ?=3w{ԶUBMts:0DDSUrɹRے_+[U8H]@O=9IrlY32"+&ZO˱{)+o?ǪUef! 9D@<ғ?|6Ü^d`lX4r.@X"\5`)(] R$7#UU(Kd(MQor7+KKSֿ%nlf{1h;h2OiRqNdQHiwr[=i^cWb-ځ0͔buB(!)hd|A1Z'Bz׬YiY$ 52) P.(/0#H22eŜWhmJ}OդH5x>94l.od9\=o PTJA z=Tu{4KKUYeiu#2fdV 8"pZ*[!#@4D #OZx7dmks 1B&JN`@u]35vOuf˪=7Ƃ*^skmBʄVz>OG3il7ZKfeˣ_sFJFhZIh&hVim93$0 ;xVep+Wc}hWGcfQ ؠUlyimgl1kץNKlڵRۤʹzHnO/,IIEjYcEu|(Y$>[Kv7jʱ ̈́Z,ݾqֶvGBq%PNjbP1Z9rQ<$Xt!IhkP)8mۯ+ݻg ]Wsd -c'-i9rT(PaxkFG26djW!Mr$*;(^hnHd_-$_vRhb(WSNYz\-j49yࢍE!Q2@ J}Iy)e9F?̄lW7TZ+J%hB:⢮kM]ѣB:[GۭKIp lD̉,FJ@8h97ŤDP쉎)z +CYMjruW%J%2UU>ip\g(R7Q2e!(k-vC]WHj st)ҙX VeyY i~<8 0@k҆)BRzϵ{v()O#U08(g6<ξX je$ +A(QBrԡR 4-LbR HZ'Nd"$jV3'8,]Ǚ3Ȑ )31薱]#ؑ$Xd.l&1Ȟ:ɝCӚrVmI9^G&_"K+P DHì[\ Agny#!kǬHxonc{tRQiDV5,3թp\79jⸯ'c), D:L/"=x=(*,CNsroQIeݦf[h?$:ڭ$[Nh) :V+e_]6T`yvTGRn|umiZJ֦ K,:IUOڏ^lrvSB2 `YhirBw&@ % SI[s5udj t|E"˽ndj3r0*$<Z5F(9-;WitUSQ<\ؘ[5ڱ/4h%MO% 4J"W1pr1>U7(@,+$HUHpI${uǡ-Zѳ==)BV{>[d` LXB*1wx^@Re䢅&xشBqt=;|=R &:Iz9La魥>M) 9175䖬K*SKU= 0aob-f0tge5Ijlq)ڝ3("($ 0XiuoU|SrWqt^bEIf9nVf!:%4EHh Ŵ<d l֡I@#*8,\Ȉi )&nF| DIj49{S^c5{%iO% Xt0ki9/'JJ+6ƱKd%(TIx*tK"Ir,n,ʾ3Jn`QI[;xW}-خ CN(J1[bΜr%Rt$gS=ĚIJk\ ȕ\imhH2ƧlƢLNѿg`ʑOqd M kJEz28IH2&`TLTX I %ņeAs6D^Rz￿1:uS1Ť,c4WQ+'Km_%dlWqH':;<"_ǰHj^nkINMMd@V/Vsl.DTJ1d7}/KYH&Q Qڶ,\G]^RHEf2W@{(:$I'zb}gwr~hVVW E))3%tnQm ORV~Qz["H*s2-x`G̮|THΔ%5 UFggiZn"D̓W>r1ۘéOFYPQ ,>wjj(oio~3iWCfF32A>(M]熘"sL_oH $ jEj dkWq220($^@i`uE'hŨ"t`l0*Z5<(92,LF9fRu fڙ-qVea# yL-$nILקl8s!'fA`P@w JqRlm+W4Kztku-]H$?f#\%HNY-WT g)'S=w&E jeKMҟ/V(ytR.'zgI >ޫYJOR.bkhepI"cJRRBsG2ԔNYP@8` ;aWu;j߳ͽg*ECr"%E2,",^%$^@.ҸyE5^dmW 0p/`:l,BY\ˈp-lt\Aѧ9ȃm[տ)GYTFT({nKj#R,9-UA6҈O92fh  vrY "D癉3I^Ze Fc-$Kd\0]DjZ Z~??o3}y^jP] gCVd+Ǵ3Nl0ڱaj32,Q}u!%p^13J^lQQ ?<\`INrZ -(Js2VAVE7y `)x`7*Kď"G0Y-!EQ)c@$ez~_ѱ^i@A<0N;:Ɇ 4Q ?Jdk!0b+@:;@#]g5Țp05$Фڼ䗷sOZ-G @Y2BOB`Lnto <>kjHzŽ֜'G} 3]αJ-FK[ X %]lm^;}h1z-A%(B3A`WQ\{HD_=PQMQUD^]ZVDҷ$pt 5+STӃrPl[Zm `mAsӖ-l4L1Fm\D̝EOdmlc=eе`1Dg,(,^Z*hw~?GUvxeDXzc-0v; dkW2"%8("1\/ȯҶ{sG_nw=LLU3<<!'Lk;e{Pq tr1U;UlӮM%ZR"V rj~Ŝt!'PrҸa%8#9*[!]E)QLX &lXe #Htt_N7|U#<YF[HV[Y9S*J/%ts+i{VqR|2Kdf FWdX@ʩ<Īꊲ=y<} Sse ,G9JR(@"^9 AԺZyJ^-wgSwTk_ѮS :Jӵ*lYd* x*(dlVK(*8,^ࠈcUAtr){ oj&l52  hTZOKlےc)j)5&ǵ~dKI)U-!#=$ A|(PaTGj3M4QMĬH͎B۾R#ؚ?R_iMT7j~lD@  Zx1*J$@$Oэk-+r l'|WvlMn<üs#wYTO7pӌ6P\ISiww5Rr/ʍíejfHIsIZ9wN݉Ȱ#% ,}-nzQ]t=Z~%rۣ+J*7u6Bfh{Wܴ،Z96od$rj @$[4EXy"LZˢJfw2rB2$V0KAuL xEꄄQv.IER[W>Rdi(c)if#˩Nٱ|XɚlBY#D~ek*j}w?gOSnb(lP7 fCDx b?UqۗM]@>WA%R RII$txa28 z|:"+(mfdZnG3׬MR/2UMmI2-\B42dŞTM(%mт-HENj3BXT~L4y{fؠ5C`t;_F?vf;BAXsNXHk4"ڝW!èd`Z\=`CBz}ƈ_ EY HlH>6R`n8xvwc*Уw1M{ wmF؆|(ږo1q՟7gso|yB_̈Hh)]%LJ;hd|7<;?4=5% ="h8vDҎ<ϛ_eaddl{B#U*¡*yCAV.=M$ϟGG]זmo޼yn^zz/S_{&^/]ކa SFa!rMWu@<===8=7i" >3>>zg>~je{\"#%Es1xx l6ޗK@ւ]ͤHƂbNvEM!4T{x픇\ d y&qpx]OuL=׷2֞!Xf Nʨ◡0aVb5ۢ 갛l; I!m OB|{]`ӆ G9 >$###a}ȼJt+*UXwwoO(ꍙ85qW얆$m,t`\ ˣ`P1vw/KJJIy*RC5QQ4㾼}9L[H3^ߝZg;`XZ]]] ojk}mmbH`Jmg'7 #RRj? mlxWNqnn+ ~׷nnyx HtN5cH]Red 780 esEt́@_X( SꈤKe+*-1wvrRVUUUV c'S1ii}̚홙j"YYY"i|jABNxyy]FiJKJt ::&&T]\MJKKTce1U\"kzp 1C2g}x aa_dvBg\q Bm/O>MO:i)ݟB^;x֬ qvM!ZPASF|ΪU,/! {àc-xr'ndffw."&6V6N*B*UvGW73 IFEf;.9G~tbtc<*s0'NNzZZZ"8$&WVVF̦ 99-) ~ڗ54AFE%vt~Fc#U4_ ɮ᢫XCSE[: cK~XfؽrPߣ]8N;Wc*("nnaAS`?`"|y 8]DRkk`J__lX0ѹ6!Qm yF1YEYz> ƣE}T!505uu^KhSs[v=TK@f.@,O񱔔^bFkA 4򒏝]8m@PHhJ86fc;S\ཱི;-`-I+;ebFRrogV .WZ5X x{W+3WdeYpx(\\O_蹻6._F:!p}wi8W(GyQ{K>xu,xo`01pu:)|Camm\0mkopsBUʹ:76K@'OtwVV{U[XZBf&'߇~Dggg$=<8H&b"pZP6K$3e wUpZX˿ǽY(/L1[J>Ƞ{0U*k'L^M CU.**`Y(;!1DSRJY~ҷH̖_1~'ľzޒ3 iO{4vB~#EJ(PƀO~zښq6e=5R8kr2U'K΄p<!NEEEkk봁7c hdl:sɗ>Aţ IN}eugo}..QJe)ß-nO@ZRYHXt{I< T6Юm7C#LoEh"*v|O2PX5iPOޘ dg3Dc 7A a[;;wksyOEUMe+-{j\\@SRc茄c}}]))||Dƒi=@0G DJ=rBx`DL 4-1) vdͳ+, ZgFA&op£\Bc mD$_sr:S!BDu^PQa 0jD+[uVNNEܪR Lz܍gqε~i<w 4YD;vCZo{&y;Rt -c4z 剪KU̿2 ZZ= PFYUX2vfwOOGwY/DĄ^;RH@=wjLis*`Jsu:'|}VR_qkLh(m4ݝI4\ӇoI,Z;*(5yPKS?'ö content.xml Hello WorldPKS?=<1 manifest.rdf PKS?A A,A, styles.xml PKS?^/!Thumbnails/thumbnail.pngPNG  IHDRg?IDATxֱkUhH):4f,[+B.JA] ͘v)t$hLH<x͎tf 1I1I1I1I1I1I1I1IiͧW.\=w/~w7Zӑ o8ן|/[yc`^|{w'?ߎ!$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELRhb3Z4IENDB`PKS?'Configurations2/accelerator/current.xmlPKS?eB!! settings.xml 002320618549truefalseview25089300200232041854700false100falsetruefalsefalsetruefalsefalsetruefalse1truetruefalsefalsetruetruetruefalsefalsetruetruetruefalse0falsefalsefalsefalsefalsefalse0falsefalsefalsetrue0truetruefalsefalsefalsetruetruefalsefalsefalsefalsefalsetruehigh-resolutionfalsefalsetruetruefalsefalsefalsetruePKS?META-INF/manifest.xml PKS?^2 ''mimetypePK 6? [Y-MPictures/1000000000000032000000311EC5314D.pngUTL{Nux PKS?'ö Gcontent.xmlPKS?=<1 2!manifest.rdfPKS?A A,A, p#styles.xmlPKS?^/!OThumbnails/thumbnail.pngPKS?' TConfigurations2/accelerator/current.xmlPKS?eB!! eTsettings.xmlPKS?(vMETA-INF/manifest.xmlPK l~mat-0.4.2/test/clean é.ogg000066400000000000000000000551351223433004300156540ustar00rootroot00000000000000OggS I5A]vorbisDwOggS I5D9=vorbis-Xiph.Org libVorbis I 20101101 (Schaufenugget)vorbis%BCV@$s*FsBPBkBL2L[%s!B[(АU@AxA!%=X'=!9xiA!B!B!E9h'A08 8E9X'A B9!$5HP9,(05(0ԃ BI5gAxiA!$AHAFAX9A*9 4d((  @Qqɑɱ  YHHH$Y%Y%Y扪,˲,˲,2 HPQ Eq Yd8Xh爎4CSذ:IX`!+TrNB)B9&!+sNJJ19Z,sB)XT꜔Z2))b”Zk *ĖZkA]Sj)؂R1჏Xj > [+1ZfD # Q1s9$c1sBd1sB!9sB!RJǜsB!PRsBJ*sB!RJIsBPBI%9!B))B!B(%R!B(R !RBRJ)JRI)J !RRI)B%RJ*)J RJ)RJ!PB)8A'Ua BCVdRJ(U@"BGs,s Zͥb)12RLJ %uL)'-ŘJ眤ssA3stG DfDBpxP S@bB.TX\]\@.!!A,pox N)*u \adhlptx||$%@DD4s !"#$ OggSJ I5W24VJ S 22:Pa1"uZ6ط_p|yEWb6$[TI Y8&ٛV0uhiq4 dz'IRH, =WfDԲR*+iSTqQD?W϶QM{`/k$I暱:d91~f)~ш$ R"GN*T{9c{kbwrjSm=#qFA3Sj۵eǠfѢc!֗p?&ԗ] *6k.% gOa(u|PHTO@eHXL38*S.YҬ5 YCdM2[3"kC36hfJNhq?cd Cةdl~@.ɫ p/"XҎ!4g55qW/吚HR* t}V=QUD .IzgU<"m9KAk qr!|^swM|јjo.t5=*kz֙ҖRl}Ҧ3s>xk`'EE4E"7O&xdN'Y2&IFD$2N2HdI4kEdMےL#WKZc3@kW^c/95T4%7-3ݫ7ȯH:ɵO7bi!D,Vrŕb=%h\ݾgڏi ). Hڲ 5i@?ɹ18 i>i%fZ`"GMVB{ -=7$VI۩^Z,3Hi`촕J$Puj]_.rUȗ.׳hQ}Ձ#Œ}zAe lV|h钗wf'tynvU/*][|!]dqBw}C xjE-Qg:k2{'1ÊO^%%0p%40`08r~X˩&K#3kf*͵Tk-MڶX6vIf ô325a̻v@˧:|(_{3j"(EJ1*kڣG\ʻBJ}oMuZPSQF_DA:ܠmjV~VBlm6ҒVNIep9j>cktS-Ct\ǷyU@q$Ī  80YePFhߕDuȔ9rLY'Y WY'ba#:Ud4"g:bP/H41jRF>B9<1xF%9\w#4B!ƈtM-I{a[ĐsZ<.Z!^t[X떡bWb-"s 1T<|\`7^xhWa@T38r@#6Mdfj &hΚ934MD$m$ ֘FPmF8Hܽn"C`F-E7X>5}-وZ"$S@Fzs1n}Y=@iLe 1zK;9QS91$7a >x (#pX 8FzTs<#z<[B~̬NȔZI"&Ip4@'R~?ph(@5ILJ1Uf3:/S#:\j٩$C92: b$4"EvFj*)4zRQpRII:4rƑD̋ 'j L 79J+A,'xn%.fCz>z3{m{n?o+* g n ڌaxU0 +-h-be}$D:EhS@MCJNEz1)m4>Ru@\:o+p|Rsz*W%xd8/s +[,@JBklk]GrH ܑ|.KƧ.Trz^h ( \Tb.U93 00MۥɰTCcj3$4g4h5VHzi-8R-:@iUTo-fHNkl QE$e1dw*Y(QUzh~µWv[O*ob{Y$r_I{\@ _Œr 5i!˥.]0эhtc/X` ?/&Ũ>h0hTde xWHk5e˘Y$SHCv"hafM"KnQ4"IH-EvVW-n#)`vqeb1}-wcֹ^K\I\R |+BSwuMتЫeGfY sU*Cysp'kc hU DZAcME?Y5S-S3s16L2265ӈ!f'MI (_QGD( ͨsR9DO1e4).ZǙ/ \b:[JJDS Ʊ,h)j>Q/ogW@huJ1#tkNA~ 8842(S3ˀe8‘OuY'2L7l:&1$3&if0A7G9~즒9^ց%Vȥ]4uܫf- ImJRڐ$!\]^h򡺳$  &7S3gSYzm^:Y,M"W!>qdF`9?vgy~x 88}$4B(iprG$"[HFJfԪ$3X5q:RF.S#t54mCUiJOB0YiBq&Om7)M<ɩί#^#L=\bH|th>+6=ekPVA- \\{X肧]33iLpJlp4^h @52UEFOm###-G,i&9/.)L&%2F&i &]uaRƎb8>*f8^_^hGA/WF>3U-h՝kTt}=JUM^8nu. B\jIAW'0n{3룆 +}hPh prAX @Q(ʼ/Tt5+m4GFu%3g#YIDd$IHtmfdl'4h)[a?!EJdGfFVQecejӆ*;U`lZ4NJ4=%aԶ1fwS6)ݜ`P<|' xVOk$6$u.0e.+g H C~h 8Xe $6\#mD.k"h͚f 1mǩNLZ!03l"ձK 6 ʜL$/V/„(lS4D8;2Z 6'P;4 +N"{l͓FV$h7p1q9Kf\M yL)eX(X@h X`0Pҏ0!3ΖKdX#CF)v10pjg ca8O:ԐAf+A!7 EJ Mշ h<8*}U, 9kG\~&뚗[q_u=|}ʅ*Ӹ_[k>O3ƨΈo,CUp\tR~;̉U>i 4cPH.`DO,ٲFlIɂfId5K:n,MZt2#N%>G:wa%SHӊЊjq~[]ѯqĪ֤GʨtM#mtoOR:k.V4wM[v73[Ml8[&-V:jIU$fhhp@ @4T!&)@?)#Y"9"k6-#M3;ΜV&ccFSIkjDUTC=GY݂X !EF2ž?=N|vΉ]ᛏlYKVJ>Ý(Ee(=kι/خ~%C"Iц4xb E|m~k:IN~h 8XA4XxkDLK2V7Ȑ5ks v̚mbR9MdR8+Ev`;"ڡLZFtdI{&24t mo!(6sufuH*x hZ *`)~Lt]m:EfN5I;>1q՘̬ٓȬi3a %-MHӶ%Yt8Hj jZK:hbù}]טf(A+56:>E0Zw1-߼:{VR1ͭI S k㌁T*LW-b5BWiPD2Ȱ%{xU pbk$bј B4X-78>q,%RʒdȌj[юȰit9$ )IОoR"]|z@`Hz O _/cH7Fkf Pױes6QNNL^ML ڛOgHKf6#k㊺$-/a\ۣIeX88)@24=K݌YLJub4g:̚I'7M3;AD[>>j8zCj%Qt{[Hf'C9,h mKJ"tgުWIXgf&}b:ji"*B]\XҝmdZċev6 +@ioL}i.H[M,1e~%h HZXe:]k\VQI:1}Na< Țdk*IIdh2NG5tjI$LÙJs,%G~SML")I\*%źϒtZHg"QORK|qՄ `UOՄB7|+T%\Ѧݪ=~<1\y$)ݫrf&bBSR>h $@5%`j ʠ "QJsh\XI$iX6YJf bjP*f 9:^d4 Հu?vԈvK- ;鷏pEWG CC4uu ҟ/(]Vj)Agq["׋묡ܺm3mz ou3 {w&4GhlDXqdX0h$"e2)MG< /[ifNJڬӫrv̱3IIecڶc`RMp_r[^dfg^-VQ[&B]WB`i(.]gFߛYp-e9M*-^f_ ף[J}&L HALXWj칬djBMmx 0$^ hIN1DR:d+Ȗfډ,,I-[,TƄ,h=lga}iU`iE bt @cH舞قo{qgd_@&zڰ;&V"o6;:&q.ݬK]BN֬7.k&I}m] kհ֬B41^X@1U TbY S 8^vMfulk%kG,s#td$ٚTF"kIdvDBAUM34BO=8'M1 Ҥi`:r┃.!_oA6^mKG]唚on@/RiCZM8,riO[W4j s\bL1SM do ~h$ ^m NfH &ǠQ#Q'tX]jhfdIeOG,F#˩fv9vdd@')w4E iZ> Q tW #1(ɁH8]B0,/D_¨K;btaxG쩏ȒZ$,sjNBjbM-1#ZUt( |jq tLF*~h ZmNb`*RĠF߬2(#%hL$2$w,Y33'd3LI+ERM=h&|q0۱;_|t\u\mnj#n9c5J;j4Qy2 $ojk˰3R|s+ MO+'5R[n6nIeXZ8) LePJQ!U>ϏWhf"͜L"7Kd,#M:2h$MEj':7>U[KWӼ@E[Gvzѣ:.VNj:E+!JLjxovm@DLވDIi3mMCo_)}!b C6=*+~xHZXʠ#sșv=dL%h62 $q2 Db{m; Z=VHа+'nyͨqS [d 91Q09foUUYS+q["ٙ/۵i\Mw7wN|+efoﶩmNM0&B=B{J 2RaR& OggS I5b^x8ZXKg&jU:u3uMg:3doU3#6 ֬nKF3JWg/lp"LIǶڊQ ɏu-GMd@Y+#O3ڒFdFXp;2s?Kj徜cM^ӥTxP-e(q{ ×D I"\uȓj >hH@p2H L`!DQ4gqw;9+ٺJIe7͢6[hkIG1d`"ik24\斉' bGƓF-@af :oiݺkf7?Q8n[_4.W?TX( YWMU2twPj !Q-r_V=ݶbe ~h hE!@#1 bD4_+;q(:B5Bj*3әg1 FҙMJ&$h,nh)odViMSlGոTulV]uz[.S])\:% OUy9ymmѶ+,XFELɺs[^qs9(>hDkH!`*䔲"/˺*u,S֔EDʹ]&57v4u@M|+/ݗ#mS]Q]~<7GZ h0~cc8X%3t7eFvKk>%HEo/GBih"6O5Cю\\B;:ԚT NYݚ>h8@5 NAQL)bi?ʬ㵌,ȑ-SdIY#3M3K2=Ƙ C˷ݴr~ | ".2 <Тo3s!L3"ʹe"BK[Dw'֕uH.ɇ-9ogznzq۵|e}`Uh.X9 ~Y rXQG'kfȖf]FFf4#ɒ-Fd$IIK֌ 255(j0y__ޫqDWB58۔т&[K[M=-ul\Iu.b-oJQ440}r ߉YA!\u R懄=1v6>h@X  (NSeeG4RYf&"f5iJY\!#"1E%I[ٳ6 ZbmP hZ6ppjKïQ,< q0j8:$ W4AnWudJs6b3eUcE핖TF6sO!SRynYڼ7BI/&ZKqiH+ >Lc`*+!VRQ-SffFьI%3%2#T( CMAV`bj ^2kJHcH*bXxai A@%Y7_oA#ZO}zY–g?oۓ_nZWr2\ƏPEЂt\+)HL:VXEsh9h߱$(SG=׷NnވUhĪ8a>?T9.iVMҤ͵MHjbi`QFR2JǘO6z zNPHߺ/7bMPۆzVvpUQy9> P_%o~`/կg@m.Z/&oxS' "^ }. P0K g|Ri X1(H͚ͬ59Xd,Y4gI,2lT #"*g 2y/1"8|`F4ΗcZ!#Pq]~3E((B+mtM !3ŨےD#!Q\C^.Q70N*Vn>..6v<׬U*N JB%rƾgڞ횠3[(iU UqP1(RS4IXfm#SdW*͈,\2#ʎ4Ku"9c@P_#h,ʛ9L1Ehuq!7EӔc$7%>?A^\va1OtUmq}% 3Mс)>M4<#'(j~X V`L 2PytCǑɲA)g˖u% 4ɚ4kYdh6Le5!ͤ⨉JH$qLa%H)Y M?űQb==[rE -R![E) 0պd46TcufW/keuH:0tx <@[IjVVe% 0jMC[Nڠ!ՂpFjUVPMifV:[TInc9"#ެ,zm玲3 A}/pf :spn;8Zl5)~hHZ8ɦ>SEt4Լfrrj%%gff6]XfeZY"aҡi4` 41-Cʵ#)Fm"Ir YQ%`V.H*ďO ʹ%ij׽ݩFW 깥mUR\1NpLI9>_qm"t[Ű#"IȗWׅɢ%Kii’eW#~X8X&CqJQD.ƒ$ks4EeSV,̤Y$Idh$$ҙ4dfTs$޿0c0]ʘYwѦZ q񛹜,#bu%mW zcݱkZ Έ u&nz"myȍ/EKWUϊG(*~0Kw/M*)򛰯5)|(9wQ~h8$, }4ceb"!k$ٲ7͒H&Yt1 rNĦlh`VXm4DI Jߥcz/|A qj[b#Y&9F f0qoz1CC_c:5UEWIK-2q~oakR_gb2pwxѢۘ*`M8 >h 8 a DAM)35eEf\2=N,m,!sufTJ25 =2PzfW}wj#GjM ղ!Gn˜LkY@\"$-'dNZx2h̸AHdcDg,Լ+'V o`ffh,"!|R?`Ξ%jn$%]¯"OjhhU%x*XJc4BDhl"ut͖*Ì1fc0t03+C3&bT k2$gu>xJUJѵ DЅ4iqԲy!̠K1Q9%sչUוc Ow!&{=&@y+.<-&@LRpf[:g gﮨSaOggS: I5k?yU47E)D6̜MF0l&fHhVId5I֒UZ^Y3T]4]H:HZ諄?+o 0IoSE!F1 ʨ\ghd$*K13EiTvn2nzi[hgw @Y8 ~}$3qhh^tI*|h@Uec<3bYiFfL2ٚ5k2)#" rH",IٲfDF#^=DySzHR&u/+}=D(9׊=mKI#HU'8S1$JijZ]we4^*V|\Uкu :!N  W4]"v%ٓ!W^x (8o\eR R2/7Y iUc:337YȘ"mal ͻ@;êt\Cd,f~ 5HFk$ai-=h?%?E!<3A( 'o zYf-D+jY4t0yEPS9Э@ȫ.)>SJe h H@6 fL]@i?$Ry AQ}D %2̇;wAt?s٣Ng$SL$G+Gw2,j3UԆLm+kDhku4Yȃb<^=|c}A Dv="+N{4^9ҺWY5CB|:g\alOT9l>hAkbaeY?k5Mʐ-ϒ#2#m4,r6$3"MGd4$ZqTdB+~"Y3ϩΈHYQ E34 qg9o67'ć1؝[Z .;1ޅCC>z?9x4 t .*1QA6HKELnsi>h (!T!e<=/> <|2#Ǻ3Vɞ%"]i*Y;٦i5#H#C%JfMW{jm="X7T<ѽўa(+M,##mW S^Ai59ɷ.>MՇdʘ']*s}!,P aבPϘDNsh4@ģpai $S(b!j1*#I{tR)! Ꮪy4Jp~h0(`$ZC K)+L1i/bF:IfIHH,KFt:ӌS1mƎ1b2xH|LW՚m; y$.&:c+0 Z\ .JUKOMͷ6CGDF,IV3h, !U" ئ FA.F< S;#&e|C"~X VmI Lq FF(/pC-XNheNf5[${Tdi"gYSId^a!Z4?r+jK/[@SKeVrTN8DRe O'q$l+/U'WPVm2M./;^ܰΩZJm4o $ーaMxa-bhOiV~3D?()#@ $$*(.PbNeEFdz [ΌlxfdF$G51ԋdtDA1*1:5MiGAh3$آjۤsfB-?jp #TҒz.tok`־ڬWaPY=Jg>q3Ի=Qu]BQ9АN3bg >h fPP4U5b O9-[sͰ:rb֘8M=!3Ku4юLrFLe LPIBGҎX5`h? iz+BIJIҼ4!n;ooo]Ow\Z$μ,(R +W&<_Хh%3xP-J@ӂ'#k~h! 4$^-$`p"ӿk: u\9k#{n3,5h:<3sd]DФ6ʹVg*ls4$rZ [D]w逈Y' =>`5@-WakDSfTSqmz${@KIO-`C!SK4 ,F ONX0X @*ǘ2t2>s3Y.3%4[4Yg|Ufd"9;4r2S۱"BOo<ƧC\a $,1- گKGUAE> hd/VAWJVwRP>Hz݆"Cg' S'P V*%/v#ZE\/EzpM>aR`vh! L,Z- IP`ѿQٲ5;]l034#3eh&H3CFtTڼnM"6gd;&DixX-e#E3ZmF`Bt Jc"}F4t\~ ѨZ+6"~oiwRQ8~cDCwnEDŻ(|eLL~X XZ@d e ?LWMY9uFY"GlȘd6cVg*c'NԀS"t6 [,ޯI&H}ڟt$$@yMܳ#hGY{IW/WF ڰCiTCߎ  C˙:f2_eV𝕥Co%GN97hU ,Z-4F_Lyu\'SFd$Y%k:(̘Yqb'iǑc D l C%nClrDL",-"%wgcwNB=N>IA|ZT'/;\V|X 4wƬ_*-A ޅ"5~h (H "108J}G\OgʒLgM`*ӌX5HfKM41C*030J3-!bWtHm)Qjz1_} JemMjKp}:l"Ƿq*ؠ?f'. 8q--l%PGA8e~l][Z}aiwRXU aJ4 gdE8lPkF]kV%IYZ:͌&T2f0 PC$DSىjjhնeWdzvGhD;wXM5" vJXCga~*rk5tŐ!w&{Sˮ޽rk%" LJ,䫿!jH0N4L"I"+s- h4϶OggSP^ I5AH+ (+1:X`U!$eyg~M]YkzĚLdʒ:9!}b4ZM5Kǎm C8Tchw#-aF): %'KzZ5F2t+5 5t:&JOu͞T>y^/fE[̤m=i|T4T;!*K\IS%e=٭ÖKq>X0XTP* V@)="yxAWhCYeϚ=3m&^aH1I)ۡVR!)nVŵ2Hy/"T+mZg{+ǧミ_q\ĺWW#2sY/-|8C>YSfBrEdc}Eȉy -g;)WlF\iWZz-9CehFc!|>x0x5SE SedGY%V "Hfc<[45Č,Y"[F#Ҥ4QDd8C!&'gX$ ڗG v\I">*"sX7(IS5Ukfft;C -[jø1ףJ\dɯ0ޑђ;wWKR$9VK7>hG! %0U3(Bi1r&{t2pL ⦌4m(c1NWCi:ұ69-FrBh@  aHcBR+ %f$qVUD:k̽JO:T_JdLU(W^.G3LEzhpG]'5ܲ:ӍA^ D e_D3{gRp^h8Z3(NA +#bП7%7f]%[l4k4#ij25ҙ4ӱ  EBS9cak?ɾ:j*tLEz!=Dfř4is^QE: :.|_B9;B Y7B|> ZmCҌfv]SE5ffGa4=;s0-?iOv֩p.vQUE"Ѷ?Jd\ʫO\* ׈d F[vįS/#33[ !;3SmI5bmjzө{ʠ=5eT@P1kgs 4_ _ 1gF" *(jQ)ll)2GSDGOꎏ`7+="YOĂ\&$I2L}͒8{iH#踎&Wh X[4Iώb4%uҡ 0VDk;i5,V+$v 18QU8fCEP*ΜKuJ>zXΏ{+k1|B mHBۀ_>o bawnɣK KmZ] V[ 1Nu=ΤB#\]x՞ֶ^+{JΌk@l>ubS=&i,{|V T3ZUZUlU4x,/25hF KޒG&w8udL[|jRU`s #U6(}~˗zth_89cd/u45omat-0.4.2/test/clean é.pdf000066400000000000000000000271641223433004300156520ustar00rootroot00000000000000%PDF-1.3 % 1 0 obj <<>> endobj 2 0 obj <> endobj 3 0 obj <> endobj 4 0 obj <> /MediaBox [0 0 612 792] /Parent 3 0 R /Resources 6 0 R /Type /Page>> endobj 5 0 obj <> stream xVˎ0 +Ί@C^z+[уC)lwcEG >to6۝p ޶{w װLu\\|\l^ݧ| 3?;[?-~ODYzNWSD0 MaG9'vYr ޑ"rqI֧C2g`q(8G޺ڀ8A$Ww(ps Sz7Ϭ8vBIUZ 0 %T. 2ʂ T1LL. @ڙ(aG%)%Q ̇1'vz5m&7ڎZD8Xz%8.(S! SOŐgX^  'h::'V:JoYg22ϯKLu0P "JNMN6AKuV ];fa.0A\t(I[U`%*wpӌRw7;r HqnW<ȒYԂae΄}{hފeC@+cn0W5f ("[M\]cǕ$l @ QgsTCS7ME%%!VCVjFTZ_xf+:.s9zɪ2.$C ߟc3JjͦX A V+Fr0bpb2Y, ʣ+#ԋ)O?P u7GPGiFs8,X2̽9'J,崑:.O2vP1>>> /Font <>>> endobj 7 0 obj <> endobj 8 0 obj <> /FontDescriptor 9 0 R /Subtype /CIDFontType2 /Type /Font /W [0 [365 666 500 500 500 389 443 389 250 500 500 277 722 443 666 500 443 277 277 500 277 250 443 333 500 443 722 443 250 556 500 389 833 722]]>> endobj 9 0 obj <> endobj 10 0 obj <> stream xz{|SyNIs&9I'iimzv(m(iR@EZn72.ET6Tp":y9dn }t78MyN ;49y<!DGxV[HݾbFOϊNJHa21j7}IB$D\u㖉x} )]rl+Uh 1_Q>''Xgx )$_7|>֋p+~M!| G#Hr8( +hmMn]QZs ڬ4RB[!9½B{ kI~Be%bl^sxöݖzPzњ͑`xOR9ZtzqeQQu *{=vZE9EA% 4'ҧ$6'ٶڨM3qqnŃ_ƣ/3X;TmM1Z䣷9 FzqͲck9:=jw۷ǛZ[76[ԓ\%dIb}Z"p-D''$~ҡިFqBz&}H+;Mu|P#aV B$jg)[9ki*k|hWqpeEW[(wiRoN(4jS]ri[ 5zC2"BeE1Rib%ȃĂh+Û´? TA*#,1?6<gSFU GEWQOL*R:SLlC}}K/6Ho*2FF0.bDdnbP&Q i߈EY ;G4Fۛ79e2 Dkǒʶ҅]dhM˂ɃuvrCEEz׮vV;*^Z4Ghi(Jܶpo^Vyͧm7>4Zn9zӇzC|qrzC(shrUDyn꾹6yUł%eႪ=R'4׌Dĺ6Y3}RƊtchGNA q {HF6-hX Bp$jD!$1lav ^ds6_P+ԜZ!ySYpmh,X A?|ş)}mM"0W! y#MxSacbU~xؘmwyЪF~u{syC]׷،okG2lT#dIbF!6F9HpZ BDh!-diF,RZXXQQ`/5 Oۜ6h"dE &"I ESG $:ƇF#GL=u_W6&u-7i)n^\ri}jT^_5^ŭ*%%/~y5$<Tƍt m*[L^]~!MbF̀{]} GԟAmJhX8:~m"(u,@^eF1: ѻ[*ZwsNA⑗F[%.ZꂚtK:Q D Ղ T *@&1 sW.Q*9St馶G?<TU%;#<ѤN^3&*І='ɼQzPg4hy|cd !<6Djus{[Mus̵6m^)2hM ݰ625> WTf.)L!7W1, ̭(W< Qs¬.|@b9oް/RԉJjbJZ5IK>G`%6jY[:3LC/5i=ԃޠ<:hA)7͆oJd $)0r\nKg|e^ g1tYa+[N٭ƀ'!pk!"Y.U߱ibc̷92< NDHdXx l?KU34PIo5~}˓L>B!{ꏗ>ཽ)L>OQ₨ߊ06 h5QªT*QgBce8ZxA ;tT }Zhׂ_ Z[E R(:()5x@ 0΀Rj9i5mrnl q7kn7l'ug~{~%<|+ D\h X)`@vݞz GwAm׭h +W[KtŦruHShGYna_Bք XA/4sGM["QEƮCjz*Ү@\LQ["L.+0CꙬ!rM2 Yw`]_ނ.<(J(?IifGetw":Z2]n0T۰<*=yPצC34dlkbm-x2⿛GJ Nqi5<m׃[7Gʡ p8̦H`] {U(&i,c ≠zNfl}s5|A*]4O՛ܽ ѻƛuϻ>02mgݸX[O }=`/ 7wع t^yyNjTP<-q!8yeM $l`72<Ťg (cnku 1-2)hөVܦ1H(d2"4*//&x)Ouw{ K<'rQJ`Ă>*??0}e|}9sA %PZ`FD.'b'f{dK;DRIvH0$WӠ~mJZܞ%6R lX+-&զj:^&[xb%PQ@<d1/'hWEY68\2FuLj8#gBBrZ^-raYq;qVYQ?XlkW DŽQk6[|·u[O+|ȳ:4/渶(׍gJ#c31B`jead-e"&SͲb8l1dh$gy@;yPBy*Ww0Z4T^szM7y՞z7kFJ WqawN% l, eH/ۆg[oHI6Zxu ׸Lԑ?bLr' S6oNlN`?Pڔ玩پNW"3D_ 2DB58Mc5-=!.T}+| YZ6(eֲ=Ж[+A%9&L+,B(ֆlnE37S4mNnj'SlQ}P?ϰ( yxxݢ9b0?soj604—o0*C-FoY/{Û;Vͅ6R1[CIB SH>QH8"BgKL10qaE3e(KҦOșWX+z.-"v!J~甌^':NP"3+0vUwl&v@ DmjuN\+}R$fz+7jltf WFdL,VUF0ȸl+Bd_[^iQTiTu ]KUNVWPum"'yi Y+=z]7jhKE6PHb 8w;'Ox]t91-n/sVAmiO2PY)~П@LNQb 0sƮ5R VX|?̥ӇVDGMCie)G L;PYwK&#"TEs֜cNڌYuVb0؁lD'OzRw.Sѽ%y=K6P1N,",\ siߐIX d|\ښ#d CVb,V~kiW\ եpk.9c!.hv}R/—SdkWw/+璾0GSP0C*URNZ#tCFb0-˚" 0<A Q? yvx@`8SajzI0 -=%q r-9V)@D sMy_IP$8&cv_`5X2UšUڞ[]ƒ`u-@ZGpzI }BR8%yAZ Zʤ'cts Y*m`<;km@~tg?в_V(NAAi,P H'#Kp N|,<$N6}XBκR<!Oa\S'3zYOpL dm_]65v#fO?'yN,^x(0' ZI7oNH,߅2n Dh舞H1bh"ftF䲃81ov|&{m݌)QWK{F֒}rwj$O%{~r汎4v&iZJk6r #n"RL1w/fQhgGyRkKsS܆9uUPyiIWV7uZZTpHysԓ,M*}X}cH0 >IϨseO {N\Sf{DB'v $7I^eE\׋#<$z:WOw|+urrLǢKR1(m@K;DÖMrd'zC F_DS&UjyJus'Ldh0.p41=+i&dsGxJX>"؉읞y:GN-yLcdr8D{]λ07{ޮgi"IcHVwkO@z{OHd9Vz,w=Gpp0IGY˩k62;|ԇKL'ޱO3QLI.o:i}=k5 6ǙE.Pl4p6Oc4y'ʓ`FԎi,+ca16"Z./M&YymuKCÒI2";*hg+{:G3[`sz'I$}XvYzU1Hq OMJ(A_b S4P,.WL>_WPbNv#6q4+3 \Rx bG&I̖W3-%ވ wnek.o #cJPų?Ga[}Lʈa6S/V4rImrB&'4 Ȋ4C3($؃RrF#~wxƙ|n\==:t$Z;c@Uη-1z+f*FWf[M; ( \ןyuoOgƍD265,T%qjo\;1>)Hr Y ? qH+l*-dU,ĶFS ݬ҇Xo;iH"#Hk¾6@v"}sϫ"m.SNlt3Mq_㾦(T<8ܡ2Ω7,֖k\wmn'99s.\Y^bH54 ţ‹$jB2K`ҿ'ruŏG&>lOb^+h?$^?&Z~~w<"='|D|݈_\D 9  Gϧ+]h w_|W ww8|_k6v7/wp+/AKDXZ|rr`Y@ON ֈ}6-7rdHl<^<ё>zT1ydۑp#G#9{#gLD 0Jn‡Ð> 'o;}+7-~K"q䁾&MʶǼE>v10ilNDǷbw vi!M"fKُf}}">ٵ= $Nn߶n$~ 6n(7|IɀxSLӻǀ: p߃<[p~{$"J'\QI'cN1lDG|Hxx8G\:T)Er,xj%p ;ʩF&q=a'80Nn;uE#Bǂh GDߋ5z4q \B6`~0ixJ6p; vP1,Ɨ&awǾjw -Mg6wW/uv%DZ 6,6a` ؋lB† 2E?{ S߈}YaӲ :7dZ7 y7ɭ $(7d'5avbl2y03Znv{| endstream endobj 11 0 obj <> stream x]n0EY SBHUaчJRb,C}Z03Gs}\n= p FCd;3(Mp=kU}8ȵ"-X ;׾^?G7V%Yiu/ڿ^(KÛz7͛8vP_2k#AbOIEOnkZCjݖr -=#j /r/~qݧ._RzN9dsrN2_ endstream endobj xref 0 12 0000000000 65535 f 0000000015 00000 n 0000000035 00000 n 0000000082 00000 n 0000000137 00000 n 0000000299 00000 n 0000001242 00000 n 0000001319 00000 n 0000001474 00000 n 0000001818 00000 n 0000002076 00000 n 0000011200 00000 n trailer <> startxref 11574 %%EOF mat-0.4.2/test/clean é.png000066400000000000000000000103531223433004300156550ustar00rootroot00000000000000PNG  IHDR21mH pHYs[ EIDATXõYkPSW99$r("`D*j(ji NuJ:A;* ReP,( 2(*b0 @r9'Rk7s{?{!s810\.9Oc?0A5Bh7v !3 pﯫ@4MӴBĉЋἍ~$ ˜`00 3f̘ &L:fAPv0^tN J ׯ;88===Ǝ0 }M---NNNEMd}Ç on45^7 :} 'NzH_SSS]]NdMMluԩS}||ƍGt{{F1 $I&&&N<cL(oB`?Z \@ xmmmA&,[ŋ?H$2c<<i>0LCCCǣ ޽{7''!~z\ #B7o &I!CGGh؆Akhx޽{:$i4y<^xxĉ)x2ӧA 999͙3$I x 6M2E \~ԩS...?F2 SRR={v[[1E\+C*fff~l6zJ"444<<''͛/9sFӽx񢾾^ӵ%fpQPPpQ{{{O<1&:;;ǎK5޽{"a79[nJAAA>>>EX"!!ŋ7n J%%%* 88Ȏ >zիBpƌF#Bjñv%%% Ͽvr\.h4_eժUb855믿vrrś7o/,,VӧsB@C&r{{{srr'Ohfal2BCCCI&  xKdqq+Woݺra F DЧ~RTo޼AQE`ؿ͛Ү_rF#AӦMZpWtttmmmqqB˖- bϞ= ,x0qJJ^7MMM$IB.V0/Bh4$I#R)B<))`Ν*Û6m:rHvvv``+}||8NkkZӝ:uJ,d.+֮]s…]vܾ}YfYYYYXXB666s__B(...;;*22ǏOMM-,,?::U=~X ?^2 s={ 6pwibѣj:44tɒ%fƌ ̀@TUU͝;!h>ぁ16"LJ($f ArҲD lذh- 7o>yI$#Gȩ2==4'ivqqaAw eۼyի,,,F InZZ@Aϟ$"##Ew}7iҤpeA[YY5{ld._~2:0dFE(޺u+܎ Q~ah6g:[jUuu5{뭬D"L&[/4MKo;Jo;eee5<< BX71˗/坝<:B͚5ɓ˗//))ay}aX0aEQZ`͙3'..nÆ ]]]53Ab"MMMzc\[[ x0}ccchh($X$.]/!$Ne777[[[ɤhjuwwwoo7o>]vD߂%sedd@B655A_߿|ryyygg')8++h4֭NU*UDDo*xq 0ƃ Op >G#`.{I$l8FINN>sLEEExx8BzӧO Ftrr]f ':غuWXeggLf0rssg͚fo߿v".0,=>â?<00PT?3@@й~ì"PQJ-[B{i裏Z-Iك[8=ő&r A--->>>VZmuuueeN;v, GZ-f>sd2of̘qFB}WllTeֶxL8JJJ*.. B;X#6/////!Gdσ:;;u:Z? ׭[7<k8L&C:u;B]"h8+#zIV ___Bakkfmm߰nzf@G5[IENDB`mat-0.4.2/test/clean é.tar000066400000000000000000000240001223433004300156510ustar00rootroot00000000000000fold1/dirty.png0000644000000000000000000001035300000000000012015 0ustar 00000000000000PNG  IHDR21mH pHYs[ EIDATXõYkPSW99$r("`D*j(ji NuJ:A;* ReP,( 2(*b0 @r9'Rk7s{?{!s810\.9Oc?0A5Bh7v !3 pﯫ@4MӴBĉЋἍ~$ ˜`00 3f̘ &L:fAPv0^tN J ׯ;88===Ǝ0 }M---NNNEMd}Ç on45^7 :} 'NzH_SSS]]NdMMluԩS}||ƍGt{{F1 $I&&&N<cL(oB`?Z \@ xmmmA&,[ŋ?H$2c<<i>0LCCCǣ ޽{7''!~z\ #B7o &I!CGGh؆Akhx޽{:$i4y<^xxĉ)x2ӧA 999͙3$I x 6M2E \~ԩS...?F2 SRR={v[[1E\+C*fff~l6zJ"444<<''͛/9sFӽx񢾾^ӵ%fpQPPpQ{{{O<1&:;;ǎK5޽{"a79[nJAAA>>>EX"!!ŋ7n J%%%* 88Ȏ >zիBpƌF#Bjñv%%% Ͽvr\.h4_eժUb855믿vrrś7o/,,VӧsB@C&r{{{srr'Ohfal2BCCCI&  xKdqq+Woݺra F DЧ~RTo޼AQE`ؿ͛Ү_rF#AӦMZpWtttmmmqqB˖- bϞ= ,x0qJJ^7MMM$IB.V0/Bh4$I#R)B<))`Ν*Û6m:rHvvv``+}||8NkkZӝ:uJ,d.+֮]s…]vܾ}YfYYYYXXB666s__B(...;;*22ǏOMM-,,?::U=~X ?^2 s={ 6pwibѣj:44tɒ%fƌ ̀@TUU͝;!h>ぁ16"LJ($f ArҲD lذh- 7o>yI$#Gȩ2==4'ivqqaAw eۼyի,,,F InZZ@Aϟ$"##Ew}7iҤpeA[YY5{ld._~2:0dFE(޺u+܎ Q~ah6g:[jUuu5{뭬D"L&[/4MKo;Jo;eee5<< BX71˗/坝<:B͚5ɓ˗//))ay}aX0aEQZ`͙3'..nÆ ]]]53Ab"MMMzc\[[ x0}ccchh($X$.]/!$Ne777[[[ɤhjuwwwoo7o>]vD߂%sedd@B655A_߿|ryyygg')8++h4֭NU*UDDo*xq 0ƃ Op >G#`.{I$l8FINN>sLEEExx8BzӧO Ftrr]f ':غuWXeggLf0rssg͚fo߿v".0,=>â?<00PT?3@@й~ì"PQJ-[B{i裏Z-Iك[8=ő&r A--->>>VZmuuueeN;v, GZ-f>sd2of̘qFB}WllTeֶxL8JJJ*.. B;X#6/////!Gdσ:;;u:Z? ׭[7<k8L&C:u;B]"h8+#zIV ___Bakkfmm߰nzf@G5[IENDB`fold1/sub1/dirty.jpg0000644000000000000000000000243600000000000012666 0ustar 00000000000000C    $.' ",#(7),01444'9=82<.342C  2!!2222222222222222222222222222222222222222222222222222"0!1AQ"q2aBb*!Q"1aA2R ?T,C.[NY)ɭU] Op{/"JTw4d΋n3( MYV Qcv7v~R=Eo"]5D%QU m`㊑[ \3شIP=~hVz!zn{d3>dfBt{?{RMō oe`K^^8-S:^!aHP*ljKXބhD-<(☔l62)4_mKu{UgH’99։iO$qa$axte!D7M7C *n@h((o~>T7pt. _Փ lN"BK q:s}E7N$Gǁ44b+-0`PGҹ8\815+Hhi A"6r-:9P֡V~;kz$pT8YY/ Hcz>K[DpH~"bmvEԝj6)=m1&Zޕ ISSjMqv,1͍67t jCEե QJJ"Ddg"4ym>֞ǜnFR^+ ZX .'nx)Șlb:]HR*>Jh;s ; rl8IlE;u[Kڔ’oMc~:om|*b3j̋i'ؐJ{UTHo^yQGK$_`E(侸GղhULuVQ_Laͨ("( mat-0.4.2/test/clean é.tar.bz2000066400000000000000000000135301223433004300163530ustar00rootroot00000000000000BZh91AY&SYN2U܍>wr[^WugmsȪ2 )if$̘LM2hfSILl6 HDz`< Ƨ56O&&(UOabO2h4&dM=OM12h$b$&Ohѩj{@<=6jx6iM4!45=O=5GO<)z57cH1ڧ=Q jiSziLD&LGMF4ڛCD4OFTiM$== ʟL؛J~z)321ړFjz)ST mG6c)=Sj3Hѓjzz"b<1!{IID6)( zzHyO C= 4Ge0jM=O =O)4h Fh'ji(5O"TjoIO#jDFfz4چjz=SfzCi&1PFFȃCFHm ɡz40F O)B%wqAH1 E`1nM9 ( ҹ0Rè|V!tw!~?LP\=w{mr?`SY+x,,՜k)RRED_ a =q[-}$xL&6L.\ /kD@)Z@R8Y;kQKW;yM@ 9uvȾDE(l95mdm'x 3<;f)kGa͊5I٣8rpɦ j !֣䔉}˿2c6]D"$*}yHb\j0ʒu<>R>^!b*k\7).siQIeȧ}1دP$CDx#Gz A%iE+Ud3WU&iQׅ i H 3^MƔg4 klQh|Jla0%UT2{EKnAŇb,"R嫆/vfO~oVӓ'29t9C*J¹=JS`ֱ`6;j>@^osphqU1\P)"2/~=69-g|%&MЏ02@jKXifyPj nJe+b ^omF8eu"H`%V"IL>eKk+h0=S D -㕆ޛ`U9{oWV~*J < U.BO2kU.C;:^]]Bݣ|V%&mJv<<,WK&8oD _|_PuR' dú*rAVd>u+3fHdUoCeZR΢ TzRF[l2_W_Ǟ [u8st9Sna5)IzܜC@x;AWv/~Zi |j7&:h(J?c62)y~CQExoŠQ܎EYWAgpzr1,:7e$9hՂի{<U$TP.7wZxgN5̒uOQ @"MI}L,+$L#S?b*!β~  ,K9 >,^*Kvhc{v$ˣO'w#pnf׾Fq̓0.SJlFJ1J~6zm4etjqN Cl)FJ< #K=y#^E7װ;ݞM҃보O|-ǐ XaxkXAťA__~ Rf_7X~]E9Qwx(+762ʬ{€m;hl4Ӷʞm! 0xT'ay|q<+XhA^B\\lTՋY45 )DyLJ_ Eu0nETҺ֒0A=ُ?pgQƹHn-%ֵsQ&{;QAhɹ NjJ+PC n|%w҃&XS,Qweъ*.׃P:e JhLmc2W<W) |@,19ռ!HB+Kp# kJin[4ӘiXNc@AG,& Sڒkv +Q{p/H@JO<|YC+}'k;9tzʅ#8TT?mA( >lYYJA{9;Z2ڄw^N1$'*®F/1o%Z>v<5]PaQA5&+и!b40p15K N Ft'fPfwǸ/]MܕJoqj8׎Dy:[ܡ_+xG#bD-J*rPӬ sespqDJ&N)r JCmT^8V]<&%fFҢE0Bx0hT!6!9BUv6o8 :hEJGB)[cnvN3tZr=)^Rfyp5arv1%q3lOP:|\1R*2/\gaN&lW37@O)[RމW0n`x1]Wq9c]bqFc,LJY f/$( 3- ^èɔ&px`nj{Ԩ3xW7(^S(}s,d!m/MR6B,HU+ơ2'T*>j4lt 8 ȽF2K=2f2$0S)p%}*(DU^4qig4@ I%5u}W m{Ѿgg ' PRIw4(BbFI6*IX۝(˞d?n e;v^_n}#EvN&Fl!e/(27*05B:.:=D+=s/@:$`}<[pLw9,D僧s]$ˑ"a0rO@Hҫid?CjǦ.U9DžL;K.l$||`=& <%0GqwS\]x}op 肀R..2v`q\OӜ.QQ5]];!4TH0}pֻ7V"P/u eoJcqYv0&YX@g2{[ 56hN^pC0QoQ*sȽAcĩ_R_Fr,^Տ;D>"X(qagr `UVG5˘ tM,Ify8svL968α<k\K1>^#v)]i:8%V|h cqIm9%5y"X ɃYK4]YQ`1̍W=1A 5?ÅC?*7u-R^GZ="h m_$>'*t g}ĐJ^0]E( .mXׇ1z0s/-_urnFB3*cYZ|˞u+b *BrG1K7ނ2Rb<9J "^mj\tƦ R#f$sHPua%TK셊 GfKHӑyzVvC]l oajU7-')^:0 +/},+(c/lǭN#"Gyw?{P @^IɁ۾ٶa?&f#OahIѦ=U.uגxt5"AExᠶ2OIWxw[Gܠeʵ|A$$7^" _[ϣA|ed$7X8La%{3HrJ'4iKʏBgrŷ~Θͩ wq ¼]W lCSp"4*~grh<~r4We,fݵ_C@.a c N\[r43G@9vm #i)-  *}ЀWʲPb/#C6ZhjeIEL~D07OEs<Z/qs(s\ KAcA`.kMBs-\?[Xtu7 R%FJp8b-mdQ+1uˈ`oq _&-Mذ-)aL~  =ف40cfy!a.j c$_e.Kfhe [|7ÉgP"hA1Y[$i|)3)jMKhA?}#20G+?hD Ti SZE&˟ ֙vMylU80&.p Y؜mat-0.4.2/test/clean é.torrent000066400000000000000000001524451223433004300165770ustar00rootroot00000000000000d8:announce60:https://www.les-renseignements-genereux.org/tracker/announce13:announce-listll60:https://www.les-renseignements-genereux.org/tracker/announce43:http://z6gw6skubmo2pj43.onion:8080/announceee4:infod5:filesld6:lengthi709885952e4:pathl20:tails-i386-0.7.2.isoeed6:lengthi836e4:pathl24:tails-i386-0.7.2.iso.pgpeee4:name16:tails-i386-0.7.212:piece lengthi262144e6:pieces54180:?.ЪƎ~GXHjnjq.~Zbły:AiaaS&u%6 gXmKs^Auf8#R .ՠ0;THʫy45 0 СC 14#VQ8 bspr+)NXS%wQcD:I>?ILweSN1ڌ$RAb\3l%y_M7ȨGML kVe#I;~Y~فvc pl6iXp5ia-eso\iTIpB:3&ZbHji4}mh]!\HנЉ' _ֵk{ 0}&8|~y] f; >#F!Ի:XK14j1JgPȝEZXn[Њq^37f+W|D Kt$*:P>wHGPOZh'hRN}7) N&nAC֪s"j l7lKOvo 6cN4 ͯʍȀb?lO ~NwKS+pzσ_MK>Gټ}vԉJRŏ%\:S+{#bwVEm lLx&,% &]qYf}+?!nͧxyb>+eSoדRrY-vMbI OP6 K4 H5lSyq ǖa?4 ?\Ƅ<̄5Zf{cZ @N &48-N14(btj!WQQ7 0EH yayڌI)##iLڗ%_N*.:A2}J jw,|@Qm  {Twb 1j0rTyxCChc^0_I\"(.@+ŐU&P1VD4D'^CWoLSU{yfj<ԦȔ5z_p>5ć+xi1_tue.<00w0 C'I }+`stbxSQR,lZvgxo5F6fU0 Cngf%7W3-8,n%Ⱥ9,k6 2;&XV.^j@-?2leBJʮREbG%X&"Zs(d9_'~@@lĖ3.DkM] )YLKy RO}:xNU%aq7'2q$i~h{.Eݪ)Ч#rao(*J Nٸ~zGP, q1cji]f徛=B)>E^#ƟbeN0׶QS@oqFr&iAʒQfϑoFN_/*gS h}bN6͐9iWZ/Oö́&>^({H״|N0t3LAƭ:[86v:RHcQYP w謋6"wאK^TzXf<`9S=QO7UXc󬭭M[N&/U|ȶ/-nT[8hLίd=WtAڳXX|'FE075#?{Ѡ *GAEp&Yš_Sц-Lpym*ǯGl[C{eNO Jn$ɘzeOKU>ƽ_֧m.]k?i_ݟ.?£nh%(lul Z rq}P6 .S*^]E}!= ! o]sS(kJ|ͅ%"jYz)3.3_ϵ%dn<}ȪP| }I?x۶!;24*o+5W`A}ٛ[2<_-ʘ{XG K7V=cJGR RTe7r}'+W՝7(=ܛNYYYzM>0igP^}ϮZSePk㝳s]V+}b?YֶM"@oi12+%inbt (t0BG,krP) :g#mևūIe>$wLF (t/,ͅrJPs"TU 2'ء%T[;$nw`{"MH{z!1͔`Y䗂,BUwh! %GH""?&ZRyN!n‚,0)/Uk?2ߖx3oZM!$PA;Av#ch+ nJVMxdx~6rx&KHfɘEsc*02* 5eX ᄉ#o u|V•Wpy@N  7\]3Q>v1މ=` W G[vlf~>u|Z:#&52 SS^x3*/v#F#kGb?=ID0 *OG,42Sdl{}%Rކ__% YES :?eڸʼnɸE\}'yBv@ HyAa7j 偏)p'[޾! `/O5'%+ {鬹NsT}J3 r_ Qa5{"sD3KߞxȟˁM{e}" zmjN涉&h) {-DI~5 aw"R;@Q\)@}efMxvSʵ{#zi*ލ[oa/{[˨-hҳ].ywpg)o 6v̭̿\mS7j1";F!$5(}&˯gn2zp,l,'`9V\MC$6l޵ xTАDS XuqmouV0ҦN`5t\G>m!RB it7|K jvuR p oAqx  %EZTⓞMHXb$@7~XBsEoʄ$1ⲥ uۿt X ԂT: YibwQwpIbn02W0Ck6V<3DГB{Ыv%L~݌uO yvُq&a/h <qmw߯alr5Ц`r$ v褸>i9}]s6W41%`6F ^7+I|ppXd(Ykh+֒ D(qiQI2ΩSOE%Gv ;JgRXP25]GL(+ `c3"`.T~,ט𷷝a,z$$2RNl)1J)u'OhNєz[Jj {P?90پ̄B@ruIN]毡͋ a Rs۳'T$+MhJqq?ڍX$vz|e< .RPֱ@ʼ:ԛvA2ZJz'd{]` N/{V]{۽3+^] 2{Bے?E@Zq?KhOoղBc|~ӭ~u*ʁ'"|&K,bUq񰈡vaKigz1a@5̙O! ?pnw8|rͳ25+qL cSqז:++XjuW5Zޭ(ayIQ31st~kmd|}YݛfosszZ&~2/ aB|@aE 2`'q+ޑV{_J4\C>@#c`9;cyry$XN`0 Vl^s {6{Q;x&fi FSKYЍg.1t"/kXV`ißۏ¹ܪ#6mDcP pk]%D!sLbS7xKJoCt+Y%Lxl6YART] 䂐Z) U! |T3~ulrĒ_PC\K ڌƀ>nՇhMcm-\,vZ9'-:0Q.phU^Fpʬ/[1Ʉ@c~-og,Xw3+?å׾&KiƚHx,׼I2pW U@i(۟^0ꤋג1+Z8xITt%liq-4]?Ʋjp8b.[81\UBzUkZ'Ѡ>*Y )Zze=!'E`/)8X=ٴșI})%+/aL 2B}L0#z=m\B®mwK/d94'YƁM-x0çªXt, |`(Ql/ks( KlW q땂ʰ#P^C|a~ojgD$r ,WIf8Ҵ1NhaðgZ.yS!@z T_K!.3L!<]ݵwk=uLZuDe\K({T`5FB!O)ts~k}Cv4`g\ DKV8r=/T( k#~u]v`Y޶n/s$5һ;,"Iv upM:5[U!D[1Z~kb;YȲ뎭ψ}B)Y"I@pd`*{[Y1f19CI#SJB`dD38 TtBXW豔tKCܘ}X߿-A3-H,<i˿}7+`Tab:k0s2CpbE $!1z:jdfoW,{ޚ\G{|KZ\ſssR E^жBEݸ[ }cD͵X+{Li 8m(oZSAѷmt0ի#;9K?(ݳ59_޾ͷ7{ϰD"(@o J{r.9^%/e`J28pK}B)H!vCWww܌(c=5pgA̡=IN^`TMeCВq>zXeZReڔK@ vINð'2ab'Z:}"\[w;fv ĝRR<$C]lA 訳Cf^6 olWKB7:nf*~?d-cL6&2VR xYJA!G򃑍Um9H{Z[<"@lDδ3c4:>1@z w'@jnmyvvDm+ZhL{$G%JGP(, f;sԑl@֤lؑ`֏lEpHMO^:|JRv0 'sa?YAQܗk;|Z ŒbB ,Œ*a?6B,˵"~XH=B/P2r7ދ7K$ .n:bjΫ_jYkNlo3;u-'<4/M*(~JNpN'T8TVB*RMO0ٶ*LqiE wZ$:CkbꝹ1Q ޣEZ󘲂/XJGGbӂzӥ7a4H%Gqv(Ö9@Z>ޤr6__u55؄zn/==SJoF\žo(t:)O䠭m, R1bK7{>MN cچ6dv )=AyaŤ b0:-M{h;'> >h"l {-hR1%-L4%$U 婓T4RW3,ͼ3|ADo~u`nHkB y=,ت@y"AHkPr NSm0I) iJi x!:Լ?eX[J1 < `ׁ۬WMN7u` $tHJstTem4uz!r8"69J7YZ45I+B$H>S]0]GsHyJKZfD}o"As%Nh~MSBHh XeeLpnbdUOKe[qU^hcŮ>Ezy0d' [Sk)XĻDqwx={/@ BH|Gtr>}CyP/?# DXy8QjO`aա0` "*Ǥi'< 3V>d*;*Ia=f  )ߤ+4(sSд{ Vzwr*9,c[Zo_7 ׅsv: i`:!圜$-)O,̴kW WgjA3vEEᬊdi5ROLOS1SSM .Myˈ{Фd@kߘERz_e2s*j<^b(G)CEYe1|/psUd;kZ3C=b>퍡Y}F*7p"hF&*ˌHnF{ZE6zt3bU<% OO9E"K,G +V%3'tsk'UFN>DN58fy\bZ#ПN$qEl^Pm r*|GWhc71 w$?v1ih|H4=Rt)W *d ޜj.Hձ (6olqZ\z~噰Q޲p/EW޷C8ŕ ԖS%*_h?hW~O|0%{ ==f UUR>*D;~D)2S|S/k薜͒@Dj,elw0Ogƒ~4")<*UmS?}d[aҭk^=<[KUʱPTtBh9lҝj L2{N6y^)uj$8dA9`: t.4j!&ZZ+MFQ~hmO)T /d{P6?κt)?0'?b>s /Ys* %òߠ O2:+zhm%|J.0?YQhԡp*$Eɯڞ|RL`u}RN6΂2n*}SɆ^z*ػd_MǮ;`qr!`];Rjkg;P|*xbkE) 82vC&|}b`U)p2Ȝ1ZVny<9.՘<ѷC2GՌfaM7jL vܶ6Sy*ƒgeB[aS1NaC=Rr3zfT.ɗz MJ7wE.<V-fIxMePpNޚQxnwǬa="?/ocKqFHP ¿̧lJ( Rɏ%b{έe d^Jݼ&(]%ceQ )@R:V2w0w=dO qߢ#L "Ž 'g?b̴Hmxk*}Rסƙ$1ӄ`ԲIN f87AӧFge%Н=bH vU3-.$osI`j XNJX~ -uA>ۯ`ѭzEwT87=Zh*R]xU36uw j> Yw[V%zº8=ߍS:^,'h6i*N"X:OqwjBpb&gThfY̐ec L7A4^od<3WL7 }SZo"Gcǵ nX6DuSmDe~j=Czx|n}T'EoU$,el1h>ʭ @tOq̯,QpzOS ͊⁃fWAd܆Cdi` =HRǸBwqpp+p} )lКeWD%RJtFo@5ܮ,h&kDgM|YFG© ,T^R'GuZ`EHfoS-DAh2Ra{ʉ%93rBMjʱGaG}N^ʎxH^.b>wgґg4uoJﭟ;I\ W+Ɗ^nFFC:f,=xcCC͘Dȓ l:}y|,}PT-,:+{`f:5mn׹9N6fɯ a6YͲKt"/R~$GƃIsʀWBKxusdוqrGY;fxT2^ދ+}Ӭ{ɐrT498tf8sƥ.݇Fl,axz˙M0(Y˻NE o;T szmƷulOJGH>x^h' qWg:CH?`UX=z=l[>r)d^T$h,_,e5_>0- 1@ԟW\,D?*pTD~ W R (ln_îǹPr$cޞ&s t#q #Y`m*VE#+Sn%!"!D?Ȧϕ qWH4_\瀟(Cf}\f19rkUEcJ$szH/J9HKxOF)rtڊt?$mD f/6,c'.ɯɠ:tn^H"Ze^ lS?d̊JpscF|%F{5Dǒ1 1r&ZY[f /xf B&T?Z }/u"@02$t?:[x _lG}ӝBDfٞͿku<&z>e[?9d%?zMT4ޱ4BkJk}N(J;NtSqBۀ~F5 gXz9=hNj >^Q ݛa@I6'ē(^O0߸xG+F(!%cqI\G<+^CِLnT@4'v7Z7sow"yыoi.`ly72Qɵ&Ƚ AHoVC|dG*~!F'ZwGf^&=.{q!P38uՕrn066ٗN~>Edv҃}gK1Bw `} ߀rTL{ !̍]oaTs3cQnRUqLcw?ĉp1'?J;3MZ̪UaQ0iQ{Eɨl|V޸?xH8ȜJ&ю”i> 4*Hd10S+ԍ@zyBU9!Ggv%O, `#drE7 %G0(1 VcCj1R`gD*UU&_|qSh(v.pN4߄}%~$h|vn~l'g’H,^w0گ*eOG:RbQσ kp/esޭ.rVyIT[+{ xǍ5у yGHUu6zEw $f tŗF՝*;a*/QV@P$ _B+C /!-**j¦E&KwG)=pb˽y\k,tf1"c U)]y iM[ɫ̓RޭoaJzm$KR`VYe0@ePeME9{ۀv]1FkPG\r8Oޯ7웚mگ(`RmDK#4(`ՍѦy-:!?>~ u ls%{bUgϨ/Laʩ0C|Wt^*-)NJ!Dy3 0)|`;iiO0.~8!$k0;QOJ>u_l"cUF! vR! bL?ڂB,yXmg5'W-A']lTRDz]U>׌i:=LI^hAgHI꬚v`'_&6/-H'E<ǽYP۳npTc]#m /QRcfi2ÐCECY]ڤ׉-^|隋 J\W UŸ@],T *=~*«ݠ~!Boy8v ,u+~a胔N);>Vt%daL1itK.sP|Gss-iǣPO !EO@޳t3;Z?,OQ4n ÉZ?ZGʦ(h0XFgs+`yqc{:HdVfh0[0iIӗ~dh/HY݊nx(]YZ–`v)-]s])>mѓ㞡+L MqLw*z!}-و[cpr%NScoS^ ً:/H|ԬRxjAҀHeF֞+8 ƍRաx)#}2{" ^#yO*`[eplj)Q'jAnttυLpGm'g[_[C#0I>U-h^ͅuq* ݶW Q3r:%[ VnTYyPȇ2 +Hu)#!ٌ$Vg9`WwIsvF$N؀J 5rC(g/Te+j-V?nĵq:ݔӐZǩbE @-m*  ȿO}j_>?iFa L)w3Dt HDYw@ Sj5_b>Q);=̎Uѿ&N[Ek40n\=2"yzT"s'29ڼs(Gu%ڼY{kP.OrV'ӅsO'̪G'QMXItUx*z^~KE;t𻡎( s m_:a,˫dtA\^*+@Z8ؗW:O"륊Y`Pu'%[.?968m2m<&x59Ӈj.1N&Ū?~.Y7(;C0pQgvס P$fH%vJIf|i}ތ-_pg'zOsE`KJԊKYB];, CFF :0,Z7UAxpB ?9$"B)נ^ s8"oH4=g K $f ТC{ o ˎ0q`-׈6# FD\~xݥ ^7Xt#R9+5t9ٜc>GHgV*L 4iN0OjW_z\ )L`j1VZ&jPbP*Tof9TTFGsHMГn!WH b[(՜8prMɇײyeS&Z\Lܫ$_l(Gi*\tv|#V|d ނwoY4EIX=R7R* rsX8Ψssx„i2TI'cn򜑣d`"vUdgڝ&f͸A?ǃ+iv*f^7t8$ $<҉KÿNjuoɷ^uM^RĽ%0"kNQ/ F;<p3~/t/W:_d04g߬*IѼ*-'i9Z[y񘐠e;1En77 X#D7ϧʴGXeP gh69v2?m9Ytg5vj@Uܕf(ӝ>wJ@̏_CnRwW,`2+!r"yi5#iLȣ_M7ކX:pKp:#9!d>Rʥ  JRDOQӃ].xetцΠP}V:۞ 0-`H`V&f vb" B;cDnоՇ092>pMCDv FKmfҩ؉p,;8~.5vWbp'X>*@`ޯbMdÌd9GtOHٜL3Vw+.'$b2C4&BVؒ7x/ @R=:yn3 HJUaOTdҩR` 뺆2V#Wn!uժKid$F3.a2#BLl.—r|$;(-_o ;/V=JZS|dOۤv W>h6hp/]2qER]؁`vi`=> ) MJ%Գ tMGSGH8^6@)X+f X}v[{jϽ1j}x)pJHhU"/`ܦRL;y@Ű{gcJO;26&on.`i^e) lY'CPc XX9|͔[h":fwg:{L]Q_Ni{ILb(#b4:[r7u!ILrz+6iǏҡˣ(sbbC)&z( ?|O\6v6wy*[S<<(h{TT]vlvZ[ 9Hpc&eF7@aJ`Q}mbM`&[dJi"IPQж V$wbf о>iKu>/鸝?Z!ޏLx~$B_ d(e1{ ۛV*ѯ,WF3v(͈pi >!V% anb 1@/Y2r,KbsTGFR.ԛ5m<+@  ty58ݩZ+ZƔW& !Zr@t½F8қ7G9&+R˶EXt8׻k:7fL(}˩ݵibZB2^r:?XY6庴NAeЬҖ%?\871=n!J*=ҮzN-` Adks.:-ӆ貎jս{ۦe)褸־̸&=ݤjzٚC]xRqԂ*2ݴj@"FBu|a mq$ފJ/.P M Gj0EFxc <u"mq-ۧ@xz?{,)})k5=07 X ́s(b[­^5J;сoD*TipRItw1kŀ Jk W.R2mGsYPH<,S ҉݁$_Ðҏ[\;t)Cz\?3׌[Y=O oՈ>cipŇ2:L'%]S[>>}G 2I q#`(&cF^ױsͮRYL4b;}8.u1l3כƃ.w1dԋs'Ks~jཉ#˜lEHQ8}՞,ǘk2N~s 7Tөe0%}sd {Hl$U#cf)Ezq1tŐP^6H&h#S<FT_\x}˓.'⅃ ۰{8IGjVǼvw9~eѨeE3]qI_ EAl ?Kc#O+C `lv*yZ8.9+"L{kQ:)IڵdHz0kws_cE` ߸ؤ dby-M{z e%ZKݍS'jyCB0Péc5腚5Tc+~\zda\̛_~_!kKbu\73=s)~3S7-BnsZ-vkYO%{Uڡ̩6Css9-_⎘o,ĝx SOTv/ ^4?a5XH,%߆~{  s;w7qnyYj`n.dFtCi&Q>O#= H FG],߹d;tvc):Sooȟ0yȷ ^S~VtW9*[`fI@tw2VۭIUz8ץ$IC$ڲ.9c/WDc"6 옂pt\9f"Ӆ۔Psϔ.!a\ZM0pc8CIӨ3u ~ uj]ť$KA $U+9F/Pު|t~<+:+;S~>?R~YRtrJ)rmz5eϵ ;QP\,(Yי Ix[/v S6K %Wti# R7k@UtGH|\9s?'n띿B& 0Eծ4&BYq0ټm"Ԭt )3&W^O[{L R LcZɉ-]@~ HK˦gܲj4p -*7^Oj Qv젖d.01w&þïCr7;kU]tI XdGӜoT.4SC]9lo>NZf$d=V s+.PYTcC.Qrx)Nz 3t|S ?#4QWte1x<xL1g+ea&򃪨A11rC;#(=)f^9e}@ 4 7 '=u6m6 cpDzޔΨ 4չ׳ 7߭lpyc`≼J %y )+"%M[(ALX c9D!,ǚ>w?hAlm{ά(FQ%; ufi/J '+fFhsOO ?e¤3x Sf2f3AۼNㅚ?Z+i6;ö⠋@q&/:UnUAU*щbb8UmH"*>,iy7eD'bˆgF@#a0Xo; R_3XyX0ͻ3~$mow,N$J3`3Aq3uW rZӴѦ\ IM3 wRydQI`[V%cVm$`Iw93^%βP܄8p~ƔpF>h:3q+ \Tgкi@6Py91Qq,,3]e!G,  bnq!N_p1z˄⇕b6yI Lfƣm$qA0;dn9eXߒ ] bmQS?> }<:ȿ۱ P rޓX$* (7͓q^)& SQq`Ղx/6&r- (wWSbuRS浔yȄ(ę7-f@90 UV{!r~ۥ8b*Rc\VWgM5oOҞ,nS 8zܠH8R.>/6;%usCZl I%#h#؋sϓr;;)BfFlVbQ hJV{²޳XFO^hk̵#|W߹y}~p']Een[-TiJҍ ;JW`ĐGuw֝S"Yj'dڣ=t1RթE<$dP 9lC@yeP;0i+~=oͷ~`T15,H_+XET)B^4.6x@i)1ާSW]@nM.;),+cJw[@L,d)0gN'ų&TρJ*'>GkanƾEo8e \?Yxqo*mM u747q6!.p^SJ̀64;ωk3$7ԯK1p?ByЙ{j䠆v-EQ-R?P-9(1[pT' K\xwܾ5o@ 0aײɪ>pHK䔸DV?g ](`΃vguWk##f:*1Zk w%.VDLJm4-[DiC{`> A|y<xiSG)=e8K=֒)E045qC~;("> -*|'9Wy3FviWol%J{gFcC\Z&g&{# 6!i> ksIPK1B@#1c~7{]/U?ۥ,0@"GcǷgۆAA?iXJN6ret8a|o }13,Ƅ'kfG.$g O]9+IDAYM㷨) -\[jߧ8?#ķ_vB #:˚O"E \N- љf&xġ OA|5q1$&;~JwA綧Yu5p{ n:”@_"Z=\収pƼpNm$õeesաt';SWJ32 B/m3,ޝ HAӢ&Bbv 9&K1`ȸSkKn'%]Sl"RS^D(' ?ES WgO7 q8V)Alc)Tӄ]v ceHCG'/N~*f w)PL&Ŝ`/t@߇yO#C[M xQ(f=<挨}C^18#-?UN|a]ѐzlfG/Qj*QaN|`^[!- |)Tem)I{OMoe?IiN@Bd!:G^Ly0'YZiيVڷ[\ԉdǽ- Qnd7w!42"2,Ͷ!`PpTK& jt'S7ydžp$񳥲)Zt;Ÿ2[a* 2,¢4 B}5#q)Y_r dD]KֈD3yl{lM8h3[NSNJb ?̲ B &4bcP.۽vvs^YV,0/jL@L<ЀhG;lxlc8(Y6=RߵIl=xuú읔 q:"!Oo*2WcLLkc1f" IQs Șcc" x +=+߃ZV/[Cc̝)qv\ ĥqDz~Zߵ $塤jVɔ jWsU/McZ@T-Wo3J}S*ĖW"TU SE#`~Q^cuw>Alj?N#/=v6yxSQQN/J'̛TÇ_ڀy=KuqΌJX /d1g&{OTUJh M:Nj_<ψ[Mr ^ ."">x)IXk} BAF"Lge-9<~!:^-;e^J1n\St@ZљA_} [o=q~-u[.hɸ2Co Nf$\"*{zrNG,FY[|"颉Ef>dп f!ٟ2y&R9@yZoE.uR i BaCe0jt [&f5 %*8"Vu3}/*iP"O!]sqOup̶pQ/GтӔ܄䜳XծiIѱdQ"z?~ؼuz(P^+\\d[o\y^)׀.]k p9L)p}?9.{>.l%!iL#):m @$;qc>u`Md}xjL8לlx)'k=J=57?0;*ZX%r_$ A=:G~k=`/m?vLumW37P;K:QtW>HiQKj}pcM)tk3$6 Ux[SD yr~N[|)/TuI k7=$ 4ma&5n̙z)U#7U"zP#Crf-x!{H[p4BU>hH?#RF٬ߡ%GFױ7x9KE \*V=C`JU7-̔N`ApwB+:G-$n]әc5K{{3PL+#1lv[C#ʆ)={ Hm 1<=~N ӞF.ʍO>hBS@y}!rͳQ1OH-! w1všT8V%~b,m[.mMGwFZА>$*X^?ޣ Y] ,pqwR=ЄdsBkB)at;n ~#j/y6-G=\c̬_5;K.vrvNgYrCl?]ЫxRlW:#mfA fr*Q2L^׏xŤZ2jf ]|0S- Dż 2ERNqAS#9&f56K2,{&orO_YĈQ.zN[>k! KtݵxDc/b[by1!Xn>oI dH~$T̂%}yQ p515,sVp/i'϶wZ+0jR E*sIR)>!ڝxD5y+/CSAS"SڣlfT\O?\OQ)^HXiٝ3b Xe>6׌tXA?s2|Y;~Ș4)SIDF]/LAyB`ko¹N|l>9zS z8G/|/#~̺>EyjTl_B)@.G8A^@'u6d?ZTdxѮ:ׇTQ em? u7gT WK)qg^$*h{u{-#!ర^G c0$.k+87WzW$:]O[Hƞ(&Rc6M82Ehpx7?BݽecL#C,w2t4_Օ_uF<3㤨,eb&cI-> {N*NE=chx'@Yw=8F8 |p@r|;4xqV"*QRt6ٳJ,u,"j`FnV)V# -i Gfv@['R{}VB.soU} 9>}oMiit *r;c-nT-Y!Ϳ8p2*^PVkv-,iCg!/SɊDnё[&A~?u"nrRA/LGIgUhLd  9ld᥺5$LEhQRbZ+&tpa*3 Jح\h]:N9gBrc䌌irw?[ƾ}4ξ(> ]jI8 h,M mr(CaUX"5](" ѫį dbo|ȧyhb )`U-M?:&U8AXV9zk{h6qG߃]Sʯ.j횶]_O| rk†&}B^зYtCTtCbg_q#І%ܬOj+rEJ:X.b#g|9aYY 3#S!Wp>iYp4qH_Z!/}V90qEq+"S<8P sF-&([;d 4K1m0ϔXĀ̇A+OI"9HޱҀ9f2fQV 8pxQGc4`̍/6OLM۝BW^')FVa۩Ս8ɜ]> ot+\kmJU@盂Y\l~n߼ݣOB<іI\ˮŵ,l2oD;\ȖJ,@+[@0r,&]v:!-[1*;͛8~A)w7_`tdOۋ%'!)lLwc*}amF' &j(^3>4v8ɶȚ{,sܯ[3K4-$\&]-j󦥾!9M^v) ɵ?hTn²2-6y̆}Ȏ2 (>:z#ۨ{,me}Ъ'kq 0ʮw/JrCDޓ"z)ٓd*wPz%t⹎uY/҉P >C5 DG.YBQ&4˞\% 0HXTYk 3@Z{w%Tcw1( 3ygq} x^PEoIw0~1vR"s]}Fx 0X }X15'ђ_yN:v]Lޒ5k8fZT>M%9gaukU(>tvg1$j1ϑn816 KFM t^!u(zI.>Z;O)"SWm-ܥP$@ܫRG:[BC O2y9KJuBjBx[e#$ՠd/x]/_kyNU9b_%٪+aLC?/F!|wfA F7`ް6#A] -?-`'[?emSY܃:{EL016e![xwtY9t3n3DD᫲$UX0 42B_^%}cphf "6-p40sB#,a`5dWZ 9mw)3(IӉ၍x}%m2k <ϝI'5޼fwaR{20P#Rw7iku_h{㓘LEJp9)X 8'憩5/1TآA=a i!2#KQnM{VAq]ݬ ɵ+<n ǻ9pFOȃqO} ?=Q8 >\~ 8V5@ظՉ**Z8~?tu(cкʂn}m|+kʳ{Kv_'kR8ԨZpx'aŢ>kn#}gEy?p|i=`%X܏O 6 E6bg_]$d@=$2 P[f'ذie'/!ŋ`P{x.Ԝ@Bs?W?D9#c }X@lN )wfk_lʨI oeCVFéf 4{y\YbbLe8 挸Ě%gEAۂs~̅fz#)Vv JL/?!0ni .r[IZ# I{|acNpugRE)~t0Xc9U2mPp4ޜ'Ah}`ip|ADwj7qxc9V2Nk!8Z ,E-ceZuU7Kѿݭc:)_La $!ͺWN!о"+]liGnzbز}ٞh:h{,AcÈjHKӊY c/?TgRBgPjל\J#֛3a> T Ω] Ztqp}-tp_]i2*(.9jy/_06uE2-&s'a;OGoNI OCT\y,)R:%"TOwbߐej gYao͢%Dg FPV{ g-j+'Nj_\~'=֛`[ngNdcn-K>irx1- JqO > fe=$:$jNы7Ɍ1XMֵ3ꏃ$Ai:%mE?>#Q.`ujމ1"6T%b|l}9Iv`ԥ6@pBUBXRiU՘>q+eY0>`R~Ղ#hpGUG/PFe\EJC~hOmd@W 0gU ֘OBg?gl|7KIAq gW6yxg{yI9}]YuoF$5LJ"mTڮZ66PD!`w )X+2(JP&o{TUؼ.Q2qgk=>FZdw΋)g+C=ȚOrg l$nIb \םzGI#g$ m-E\aG#9V,{0uD<~e5ȼw9B5 0< PTBl(z&s4q1XbǑj,c@<ZU J *tkKaTE2Zvg6@ 9&u in<1`?+ܩ .S%=a~ԒT urovf]qNP!bR;DZٝ>tip-_1s%+Z@&-9 d9a|40M@maF>cSREg9B@x4X:U>js\$J=4} zg'>o1<;iAyuCt=Mpl6`F)>T̚kں[ [2:JY5NSP*dg%?k,w7A}AjFd=d촔ѡ{x^޿mf-ZM^a֕Z۱)%5. r߅ӬYlk/0Z\Bdkj5!&?JPfaӋRv&Wg]&mX̵=MaRTqӮgw~o #^V,/u%]+K;g4+/p$56V1!/Dy?P:RJJG!5Juލ{pTP U2Dw}%B[㊫Vn ^ -p(0e˼pGT:ϖ ]"qzpcvz\⡿}̚No `v~ZeO-k^F&M}ud[yWMRF2XR3Ǔ<ȁb()f+O۹i?ፃU.m!/Z0 V34"njQ 9%mdY5o:*dFp"F(eJ28BT7-bQ[YSbĢ$.@MToJ iҊyVYxoid*Kr[LáĞU[ϷWc}O3#V騞9W͙HH?-seir?jE$݀Bm}5"D q'UX[q1=<|r] Qv,1An1566EVs`Ŝc_J_ o!CY"qS!ZUdx!ڋb  H ,٥`*}S .Wt "h<SE+ȉ_@[A()J|a CWtCvo%@L{Xʯ= 0pQokltHۜ*4lw{cFgf!jT3Ԭߪb42wL<љZ,àcfчt#S 8Ex/CydZpCPWq׷䝿wݞrضZ#@(wMLlp,F瑈SP1 r6f &B3^3pI'}c?5FM:Eq2ujvx&f5m.R Y~*]UZ09CJ7JhFYp<?O)]=6ʨق˝$nzla20Zn_uyTF*bpq S9܀ꪅa#?o&  FHUC]4FwWVQ<͆$& 1d)W^YcCvDK-H] )BY"WrBaL2>jG/5ѽ2_%.MXnX IDc;%DjucB,OF^pN-|%ЦR0I(cAktyӜbTk\B8zCYi4yQ2 ͽ_ㅯr5ZZܩg>^~uDw:5rxXi )} G/΍`q6fbqƗ}ùЎ=*)x JQ<.IV¼͞ܔJ ]I ))?8_h,ӌ09SK]*=I bݤ\ݸW]K~mHؚ',!>,vܱ2] G8e ;f{&ˤJlboX1ggzXgmwK^E]W%!0>}2ez ¥_mJB+\?վX0 n-Ѻhoj9K @İLUq(r@rUՈ Z_XNK|Ք#|e,v[-$~4afR qQ:#{vxfŐq* ^\K=A gv?_x6kÆ 9/o!ceÃgdr.ޜ90^ҾvֽzxξV_V=F!Ad"V)Pc14jG-s&b<$t=)*4ʵHiѳ}o@/ Oz !4Q(D%<~?B2*cP"2$2zud B&¥!'}@sLK`~vH+h[q*viixn!SMA5 ً]R<Ǧώ3 qn8ydfݲ[ 8pd4 , &cE Ði&4KlEL(8"`nOM ` tjpusPGL|(ZLU H6p㑺_;`^^P0~IAֆR.it}$d,d_X-lswa) ;+!Xȓ9 w[D;y`ft$]+sq0;ͣk-̡DyFXWsIR~jPAbMq q{iQ4֕>Q>o0% Շ>LᴠR_$[.&u5Z]6T~Qa"%&U1([T8ХĖMS|Q AMSco.AAE2A})|aB%|> cT9ެZֺй  rHTD(u-1"垏ubaE׀jPl%C8UPLny;WE 俏HxH NjzAZwJ[LǵbY9ݮDKߧTzƔb ,jڕ1+(.- ĿAØ屄G M!Q cN yU{T@'O&4vVcY=wq˦fJ%7OeW@|Eio]KFoBEZ{~A54O>V{ʄ2}޾G p\uT;c-qPN}Q'UdLgQ۠ ɭ|D &ݫP.p2`ꧏa~12h39+S!?s&b_+Prh|՜+SϮ:,fV&L ȇ@ BlJ\MdoV0s5+[UwdrvO5PF fTʢoh՘Ux>|lӶ*tMP#p\+yY[ӫIĊDuPr83"x" y Cy-JՍt)r e;M)x`2ug\>?ͨE][  Bٜ_C57Nsv!՞LJHwG<_U+nx@_'N1=^ETwl@~+O\ Fi/v!L @ϋ[_"fG,I{~EIh `4a-5 }Hz]5Wt./Bdcӧ0-)(;N.`fX](뮚t=,c PrXz((Z\r)D~9.}A~KwvnC[M'WnVHrߩ1x/Co]<*nblgQ]Ȯ82H8PQ uaV\ | <-!ld`мd3; 48Wl5H*}3!ZeV}ַ/nqWCS %3׃!_0t̿31To5skLZw-J~wVnM{/9$kٿ49`WaYF{F+K$_r-a_]b@ ]uYD2@I?mۨ!My!2Oh1{ݳ3Xg&;XcR{bBL{9a٤tP]Ɵ^ r?"`V"Aڷh#^;lj"egZq‘ kb侏rP';_Uj`UX *wkڿ<vV4v6Jr("yaťrt%=GH3;e]¯ۛ k2Gޔd(Bp]WbmܲyXG?D&I*G ;.~Gc&$rim Onɝzɝ ]_>>G/ޘG:yXK1(M L@3kHhUxRLW H;AԆjBvt ܚ*Ўn*/'<-e[=Yl*ʒ9#89[[ﳼ_ 7aE>4U{Sv0<ċOU;ZXfM1&'> / *e篅teG!Hq[ZQI'. so#׮ w-OcZT}> W\Cv,Ҫp$ X [!Hafv2i?@ i%dtQJ:A8Z>KEr1%½1!}x!D ̻|\ gYKI8ObN}q6mn4:AD}}vqVLO@= b~nuk^8AĒ6 #<4I j~͗?HbuFtxlU**qK Ef&#C4]azP*^ 6%I5#vCD=>?vF0yrբOn< kU0)KO=s wT#銒iߗ^)! S<iluC"ܻ&0hfePNZ{~g~U=Zl[0Aq8l7m.7;fv?7lMӚ~\c|[ުK?=RoL4dTDEij7p-2‡$.oV=69X_dIu:31":^U4bk/桑? >#D%mpS 57bT)_k%]2O& 4 !Hes(:ʍ PEz}v:#J'HDmh#]6&z*pUiǭux8!Q.GncQ<OWVPe7m}1<= L!B#jfr0 1ow1xɿK:d;ӳFݩc=GG(Vh1Y| 9` ˎ/GOߧiX< \?[KwgZ NpDz/FulUݠØ,{@c"l5]@o ZNI{j1sg3@_Ӥ#y۲aꢢ8dr:6!0Bnrr7+(Rtg،VjNPnf#u,%|'] 3֙w}yQ_bDDpnc&Y'zbTΓ9`lNbVTXPihS֘~Kb}I]\A%njJaڔgĽ~4tB>=m}0͠EߎDm'3~I^u tڄO gv)2B~HC. "Ty_`vu~V @WɷFCUF8 r[Yٶo"p-V rJY~%oSq Ġv`q;eL58e8C(/SsWq"}7ȸ5/.2@'A rt~V> -ToUB,6{]TvW W>Uf3|µLgX\y XVWo]AE~IL$O ) `׽"Z_m6{?-1{ k"zr#`X$3n9LjGyG[AO$ĦBmp0[8Klyn#gxUj7vmX*AJ[fLm7V+Jp K$$ʝB$]ʹ"2r-hOʲœߞz!A.l[/ mdO-ARH ɶsYA[J0c6*3 J؛ /2A9ui[yfA#; 1Jk>WLBl4omaf*5>P&i萚-*(YIp8[!#SK̷y0\%u*g1xnη:?F|> }jZw3PL($,.G&7[-e dc p_-vV Cɳ]l.1 iUQBzf \J-?xxm~BkQM yV-jFTZnttKlcj0 /3p#_i ~]G.Hڋ,ҺKqNyQK!WHc^v!V'iQCn#OҚh6= qJ9Ѧ]Ϡ(fU"2bӼɢ? ~I޻HzǤ`L&Wꇫy@F܈?|w&WhƵz[CP'5XX*=N8ϢM?gȲÜ^XYKv<^9z})^h]'#kJ*gh6$BiCw6~&/$~)ONfBm؊gX55IH`.bLu޸MZ.JpAW шv-Gq͊E%̜թ~U2ˈ5?DXd&U ^LYMoFRyb}Et›% x?d6rfƨr13#=IL.X)m\!ҫ~CA-l@)+N(3@W'DYy}uyCTx)7% %GW$\=h7 )rYƴ/7ɲ/Gr[ _-1#a+2h ܧrH*w֤cbKւK.JR/ 6V؀"ք\A#x=ao7:!φYDpq13H?~m2ljV[=qn9WΊ]0Q9 ׬%11` qsavSssoHbtoi ЉR27:wu]H>Zf_y?l{ P=I,M!tIm2>GEZq|a}X S9Oy:SXȅsɚ;bcIyky&'1/.:z 8& ! -YjNB"O(c{Eq8/ O ceÌT2{1HЊY$`MuBYx#ẹ֍2\n$;Uu8 V`_iwǬV4m)])`I\n8$վ`Ÿ3UJ ^,i.T*يk@tNXВWHy.^B t${xqA+.s!.JS@ ⒏6Io ȨP.'^-E"ȭ^vl4Wܹy$R`}~K1ζS#Q9(9%nY`!LNf)SP8?$]E".m");YMm;*tE'rցWdxo-~ẂnBy z\>8 [Y\S5%pe[îcDϹ(<||_bL> Z)H AgZ5{Nmƫa[ʕFV8(>N^o!eT=3z4_5Bn2LJ )nk֒(v˝\ߪ> WHQ/\mT_.mc h5z>xPZT %Y.V5Tio|(qgI)c/QpVZ{q « *vg?޹{#$0CP6C+'_Sєj`^Pd 'U2,{nQ-- j ]^ud=KpyPýXb\ Pl7D05H~DuhJ'BU^T_Qxz^o (|~ߣ(Eס6>kY2d'^Y+15ocnpf!U^flVAgE.zPy8蜹%0հȤ7kdQ 2$LIARb>jPFKŎӷ͓XL}7%x.S w~qqC김Fpffqq" 5^%ǝh*2Fvt@ 87X2ʦQiIlkA+!9 ? e޹Œ*Mĸ5 ๘t9*eÐuB2cC'5+HU4 (6@!jfg#9+%JRT7g ݗ֒1kawY4G!VMM"jg~)ȧ |͌.mXGKV UMQќȾ`eUF619ŶQL'ģ/U<߭]KG<ZX3KT^Bb}u((VZ:^1fՅ\ l\"/x)\).Du?;nH]Y^o쳎(BX)c ҆eCaMnP6˙DAޡ hw~oZj$~Ɇlq1Rt |j)a\CSdIa6oDT+uHn;(Sx@ab5*nmd-N4H9rB]_$  U6ohXgJo@mKʶM2_Wf&H/3( Y: P4hI] 3>q5*%@74wb8ۮ*h(L ՁWs-˗n-' V@y^73ౖ2ҩES+ƫVy\P kK hdppa8 _a)&]CV78«ԸP(-3S"oK6-!&c[yӨlw BGG l'D039l`Q-Ar[Z;1&@jS0CܞI-ꕆ\RCj]WKiNqmHx>˙I#~nD)V3ǝ\DROO.swt`H2#rr7Qiy(pI2_~ )oИI!cf_A^RAV|qVH&v/μbdޣkQj+ 'ʜA72B.#h! 28>x#.Ę䴒x BB|cSZs}ՍzAbdaWNo)%;~}9K_M r{r@ 3{Bjʨک7~W\_o;TDbq!ˈ 4g1(=ẹ~[vEìؼf x^G;X#~X+7&F)aʰ /O-0zE2E xoƁ; pC Q8 K0icS5UfνZ<({Ki9nđKtG[%ЈS~dcVh_#c1 D))z*do_73Y[ւ 4 **F[hEJTC4f!=SKtgrJA(ɇXzˉ52#J=\ED4P ~q滅4r/4f){g5itၧz2V$&P`]W]j=yHV̷YDA2]HP4:Sz,"n Zf=owH0vT/:LN,2<9%,~V5x7!!g\3:bnCز E$B3) Q.n5&@S uЧ BCoV 2^>u6H?q&d-P`m.MTnDŌbܡ9~m}:򵼸$XץAs!I:$B$ԃRet%eށ\ʺ.i@h&ТQ؋r{.p,W\/4Eg zK* g V)L5_ ^MQYOb\-JExëǸ@9(͘@ dt|Nb+.p0k+fb#CaԱxZ蟥\8 Rz:rѭ)0r{!tt9*i,e+r_3 -ŕ"]!L -EO293ԩis ٤{Qu77~g}^]׈w7+ ckVu@Vv8FXJ2&F37Zy%:4#Fv5aȟ}@O]\eZti/xQzWp<Z̴CcPT8¡s?+ کІ.>3+Y5o8 NdxWq&ݯXYJm;,"~ҷ#S&Jca_$rߗ(F,Zη0ަH|NzZb.4NxFaLf}FZwitvlEoi*PCӬ'IGIHkؓtCNvJt.Έ#Mvݰ8e%{hD~(Ni5W2=3XLZ5Ҋ|SM\ĖvR4kJGZ>^yβxoeLA(mK14cIʳe[A] :ԕȻ_8XѦ7M;oyTfk]{vY(L{$Qe7'5zfkv/'!VDYivK$F岣:FŽ\OIPW*<@)α)lf}<,Vd V]|ܲp#P)2pK09<Ȇ[$0O :UsfZF(5S-0 ca;"U`,[E*S&uX*ՏE\ w eMijUtC$y%E (t<{ 2U,ϴeX&ԎN ~۵ ߭O'rXJ-cCZǧd -B[ Ba{^qQfXX1([*v" Í>\m9ˣYC$#l6I#AnAN VؽK'.jPh\MDJZ怮Gm2r @'0s `cvms=2]XT',%0>Z+~=O򼁥ˮPoj$b˚Q߼ >tϞ{ayX} 80a(\ww0X;IK)!psMb%Zh/*e sdM4FL/ji}u4z@߬,yI#JX kr-Ƙ„1nrCF8E-;-2RU@{Ayxj BlB+⥵=Qd哒L!$TcDU c[UMD86#a#L9_0pT`X̍Tbrή ;@\fBw^i3 Vf}ci#j$&2T+|`n&VcM[FЦK$7S":S{ggUkAF@~rZ^n_45`J˗o2M|?͈30.<3}i v>^>JJ*?85\Γ:apGAH=?[Bx.oFYDV!;Hh9d3"3^1ןMBq&"#󠲝K\{FO/="Rw:j6DA PCL,P]Mn[?U7!MB\g ֽݮZS״`[f͖"D<'b^)p: .m _ճ?8@<|и+e5\,tP\bGYսz7B(q&q.FـYwyp[퀖{\6V\)4uP_dcNM叚lpRV1 ]3ThbiEO p.' Њ)V7a ><._*PR7R?KBLQxWt7>'dxsh.j'Q#^yDa3§lNDޭz 'UAxBC'Ycwf,عX 剅Xh5 b n/-f]'N^rԩU,'iwΏCBn Rh{C~㹹]jR.1M_/1 N^ݹgzӻ]VbuF[Q*0,9ϞX+]tR-CviĂ+f2Df3wʮof+MYv3XkL@s{@'%b$$UZy]OgdkхBm<DNv7q }-֞_IpxuVx :y{SmukR$ě8;ڮw1UGUs;tᔋw$ދ7 5>]axc HҦ`U>V#+/ӟMg|tF7.Bs-v ~/:{Ş䅾"yt XbꪗX0V!5CDR's.L8)~}R.UҖ?5gu@W%_qs %|M ڻ3ӎiA?[v - hms#9ez,TxtcR.WYT>Y/Z~-eemat-0.4.2/test/clitest.py000066400000000000000000000076571223433004300153070ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -* ''' Unit test for the CLI interface ''' import unittest import subprocess import sys sys.path.append('..') from MAT import mat import test class TestRemovecli(test.MATTest): ''' test if cli correctly remove metadatas ''' def test_remove(self): '''make sure that the cli remove all compromizing meta''' for _, dirty in self.file_list: subprocess.call(['../mat', dirty]) current_file = mat.create_class_file(dirty, False, add2archive=True, low_pdf_quality=True) self.assertTrue(current_file.is_clean()) def test_remove_empty(self): '''Test removal with clean files''' for clean, _ in self.file_list: subprocess.call(['../mat', clean]) current_file = mat.create_class_file(clean, False, add2archive=True, low_pdf_quality=True) self.assertTrue(current_file.is_clean()) class TestListcli(test.MATTest): ''' test if cli correctly display metadatas ''' def test_list_clean(self): '''check if get_meta returns meta''' for clean, _ in self.file_list: proc = subprocess.Popen(['../mat', '-d', clean], stdout=subprocess.PIPE) stdout, _ = proc.communicate() self.assertEqual(str(stdout).strip('\n'), "[+] File %s \ :\nNo harmful metadata found" % clean) def test_list_dirty(self): '''check if get_meta returns all the expected meta''' for _, dirty in self.file_list: proc = subprocess.Popen(['../mat', '-d', dirty], stdout=subprocess.PIPE) stdout, _ = proc.communicate() self.assertNotEqual(str(stdout), "[+] File %s :\n No\ harmul metadata found" % dirty) class TestisCleancli(test.MATTest): ''' check if cli correctly check if a file is clean or not ''' def test_clean(self): '''test is_clean on clean files''' for clean, _ in self.file_list: proc = subprocess.Popen(['../mat', '-c', clean], stdout=subprocess.PIPE) stdout, _ = proc.communicate() self.assertEqual(str(stdout).strip('\n'), '[+] %s is clean' % clean) def test_dirty(self): '''test is_clean on dirty files''' for _, dirty in self.file_list: proc = subprocess.Popen(['../mat', '-c', dirty], stdout=subprocess.PIPE) stdout, _ = proc.communicate() self.assertEqual(str(stdout).strip('\n'), '[+] %s is not clean' % dirty) class TestFileAttributes(unittest.TestCase): ''' test various stuffs about files (readable, writable, exist, ...) ''' def test_not_writtable(self): ''' test MAT's behaviour on non-writable file''' proc = subprocess.Popen(['../mat', 'not_writtable'], stdout=subprocess.PIPE) stdout, _ = proc.communicate() self.assertEqual(str(stdout).strip('\n'), '[-] %s is not writable' % 'not_writtable') def test_not_exist(self): ''' test MAT's behaviour on non-existent file''' proc = subprocess.Popen(['../mat', 'ilikecookies'], stdout=subprocess.PIPE) stdout, _ = proc.communicate() self.assertEqual(str(stdout).strip('\n'), 'Unable to process %s' % 'ilikecookies') def test_empty(self): ''' test MAT's behaviour on empty file''' proc = subprocess.Popen(['../mat', 'empty_file'], stdout=subprocess.PIPE) stdout, _ = proc.communicate() self.assertEqual(str(stdout).strip('\n'), 'Unable to process %s' % 'ilikecookies') def get_tests(): ''' Return every clitests''' suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(TestRemovecli)) suite.addTest(unittest.makeSuite(TestListcli)) suite.addTest(unittest.makeSuite(TestisCleancli)) return suite if __name__ == '__main__': unittest.TextTestRunner(verbosity=test.VERBOSITY).run(get_tests()) mat-0.4.2/test/dirty é.docx000066400000000000000000000065271223433004300161070ustar00rootroot00000000000000PK@F?word/fontTable.xmlN0 l)UTkw~'p5rYq:d MA ]N-g5[O2֨m<* :O 1GmEx# j3^<=L&TSXmƥ'$:TRk( ^$5~AG[YemozuZ00x4r~/Z~n=K$%]|PKbPK@F?word/styles.xmlUo0_*Ą{$ؖ4leX'r;7Oy=&.E:Wm案e:`Yk<2 Ȥmu1"͐<[/hT,5F|s+Pؽ9~!uȶ3n`㺡W$`VaAee?B}%c~'Sǫe\}n)x"FˬN[AF2Q !A0a9CVWf2UI8yU) `]MwK,3,a蹎uב)3Eb-<6ʡ乕*buL#ރ @fB ׍WoAͺd ֶ*-JykwN['(Z%%~iCt>4qĭUΚl7SgqnQ6gǾ`e/:ҞZS}T:8NKDs˅ks&/LMk, 4&hi H/mY ^Mx2Oqƃ}Kr] ư}'PK3>PK@F?word/document.xmlRn0+z);nr1 @` ~}HSRK Wݙ]+6=og`*{g'ij@/cyC,0c@K}cC uMW0>!\;" 1hXNK kE&-Ͳ_]o6OjoQaއAhtBnh8,{rE{!e֗h9y6Tɸ(bHOs*~Hf[V3@z` `F h#U< Bf/‘|؅3*6.K QлV;(wzg}^5TjcQ_X꠸Eq }zo/.4C1]|PKêDDPK@F? _rels/.relsJA CVfC;?dFo .E$'|t?bаiZPL.OT$O.eUwB0nSnbP'CO2b"sq۶(?=y {uxK8 ΰs("s!KDuj"q$# u󇢩[s`.#QJKDWI4W|üFuOUoPK DPK@F?docProps/core.xmlm]O  -.4w;|X{iiv[vKzp^]"-kN(wFCѪ*e8xvƂ |E3aK 2؀>q8[.y xA-Vxǣ0vI (cQ*.8gtExJfrL Ð )~z|J=~TG5x&vX씼U BiJ))aw,-SٸkIIozDdlA/B+RqVPK {PK@F?docProps/app.xml1 0ཿBklR$R:wCrjIrM)Խ{]-#ű(Eh:jnEd5Z=B-6mhbJhF: +dy*˳-|+V Z2}mssR=(hPKÙ PK@F?[Content_Types].xmlS;O0+"(q`@%Œ}I,|s)P1sޙ1B@l΋e`S5{ho+nVUa-l_sr#p,t.z|=61i'd0P3[4BAr,xɺfQK)&Z4w]%('_ Q$烓HEXgI/x 0"^y Qk'ݣ;6bK9)&89u^H1숩@}^UY7PKRwPK@F?word/fontTable.xmlPK@F?bEword/_rels/document.xml.relsPK@F?3>Gword/styles.xmlPK@F?êDDword/document.xmlPK@F? D _rels/.relsPK@F? {docProps/core.xmlPK@F?Ù  docProps/app.xmlPK@F?Rw [Content_Types].xmlPKD mat-0.4.2/test/dirty é.flac000066400000000000000000007142711223433004300160610ustar00rootroot00000000000000fLaC"%9* B^Pك-5<ׄ reference libFLAC 1.2.1 20070917 GENRE=PythonALBUM=harmfullTRACKNUMBER=42I am a =various comment TITLE=I am so DATE=1337"COMMENTS=Thank you for using MAT !ARTIST=jvoisinɈ#~|=;~I} ‡,=D}aBY2^74 xZUFF)puD}烒J3TL srurG KdjP+>Dcqِ-dEx'a0tc\BF%^2#F0ޕ$ ѹ6Sȿ!Yƿ M(E~țKvX3CwvER*L /(6d2V.@L9?/N褔cq$s(1ƒKRuܰ$4W̯g G?7):J!<1e;Pԯ 2>P/$lS3a նb=@T?ҪϺڡo\1b>Hm'E{>QqJn$Gm!G/ EC޵ܤX6B{#qյN~kFr>a^XZV4kSհ gͫIj|95Wa(^n_hzY ۹4*\a q.wRu=|SCX;7iYh͈-]b Ƴ~ }p";E h մ0.xMPZ *]8=Z7Tc9R)k2rʈ#2Ҋ]II12q Eq\/~,dYfj/DKBvl̂n93i2ɈOr ~<1P^{^Qy>hӆIJvz.,l5/ܶ%om-{oߛIET~(GvAc K0xYB+3x垨tlk!E:#.Vb,:QTK[= As 0Ac:ίZNmNU={ ϶xM],Q!;*',YF:Lݥ|ZŐLg[ B-*څ漲VSh)AU⥹ kL E1[cevۣӷ٭˹zxßsY*uHvY4AU|hQG/iHtP*C2*z1 bA*ݘ SJD' æAtdMjE"M0֚h'#FSx"Ǟ߼M~y_S$W=FWB8RV+6W̙ V{VL;boTaiEZf4}A]]qIBjSאߛzMt긪ק($tۚ!y*EՂu $vHݒSkHk%Pd_9cFc`'KFsf 4 m } oiiB- Y./YT(0-,OZܭ$BT6/jń\%ݰ jz;{/ sQbzuf9d(zaki2͒!;U-E Fmt͑gn.%SB'\%EliWvTi"ooF)GǴϋ++ Lp sn&!XmRȥ.]2<@A)X P/Ael.Ц;M*]:Oњ'׵0Y5J 1uz2Y9jxn|;YђR-'W0VxR(~f%afGĹoDpKݗe)ԕSЊHkW3g#+[J*YoxЈNdV@$F!TG %09,V5Y!]="Xt M? , ?LL*OoW?(.|MlsoM[Ku &v4;E! ^CI{ˢ#Ӭ+*hG"?-"QM% l!O&= W2O. U:f)ܨUp(ժ#i(}пxx: R ;`wٲ`_\|$B5ݞ/nU;<*݁8U@h%a{0On3&=TxCRWC~_9愊L!ոk /{F'jV7@:&nMd,=;Xum1>۰[nID%MY$i漿 u|Pu#qz8Խ;ة[Tn-C騸%,;"ۘQyXS}xٳdu”IFށdn-$SaHR1r3Emh2Fs75F/,EKi>C5(Y#yHfh3H؁:Ǥ-c۞ P.][VEM/ڑjatQdEzkJ6XU%ĉlBU-F=d}!^f?s'W^TR#k7F4GAEYL˔S/.(竰=VU%u )PvNˣ>im(RAzcM[;<_4!PsǛJwŅȟhͱGq'G[)(Fl&~˟ ͪ|1WWhsyǬM$}K /GfA )KZ@Tr.OrO&W [> F|ŜʃٜCXs/a~FM*xb|CunP}dxԌa0.Pd u%1"^/Y|UNb=dtl݄f+}:m5߄EU35*%BT!Hp6d7/O3Ei "変誠S_clƙm}Ш]0ȧ_TrWw- ,BCs<eg qѣUuIM`W b\M 2=ia* P|u-o^y[rӄ6ǶSgVcH˔_1UCzR2sV}Z ʟl 9>UV g$i ?B DyVotɲXJ%4bx7[m;ҏ՝)`eZIQlF1=֬dG\SN\HէPxũ*>\y8Ҩ#]t$Ħ3/ M/i&ȤhfN1"ZT]òT9I).K@Oj,c`q S!)IU84R}mh #BG5]hsGV){*q@B۵.F&!bug{& 14D_ Ak+ lM#Z\y⺬!~7}pݼVQ>^v?  lM2o5&cKZ{ \΋#0O>@*K5um2Aũ2 iU'k16YU4M.xxΝ' e"UJgV"W'5t5%&+<_VϺ AI7!mTdN!;$jn  TY!i[ua ϲ&cܡ[C9&kOM.f^$R!`fVO[eDM]ཙcu&!9#KW(FfPnL_ lfMHrn7tMYjJf#CHww3r XB$3P:k66B?o%+V=`cJ\|[دX n^嚪1$VGEU1Y֕P%.n~d,(QDu\c#:Kg4r\QH/LE RTbKGRZ%/U1"P*٧,r'cNh&P6a* 趤VYd%+=p&Q>#`usJ '&3DΟQr2[Q|JLJR,լr)P" {M2RN3hh~3TiR "fy6]O_op| ƿRuo7*ҋs/4vzn)E̥} M1֫J^XRa)J+^F']ZֶvwEz֜i1@s)mW.]{1cI1&-bg} *OcZ\Ƨ<.$1CIЋ;p]6ȚLJipR3\nH~  DHeƾ F=-dEaj^Y#[tEb*J}wzEfjy4ooE$B諸y;֯i2F֭dxL3%JY4hZeXF7w-hMr2w5 2o)zx OY˟:>Á) MrQ@i)p *n˟ps'0آM8葍m]q}[ 8a`ߥc'WbB,}$O%JNtؗvHcB ly+xp50Sjh]DioYaA7ֽU/ҨMPM4D(M uYRY.܉6-$V[yOW$b=oI';זzzT _+o[6IZ/** \θiOk'#b]-*c-ICtvy`ILhFȳi@UЕiC\y@/JDyYqQb ^ {26v{Rnx<"H'zC$AV[jC-F@jHr>3VS5"a, Y-W.)"mZX,o]M-"m[(X\i'f 1fB߬&!R68 IHZ"(5؏vZUC6nb[;SUxuz/DQn' F:Z %_hkB&שp+; ԟ?5b% D]'.YIw$8(=ǿ$sDԾ B) 1d3Kp7aA\B ʹkp3Ax/ E9]&#C#] W# u`]I9ˆY^#F$N=5PI)'=d]WpNqo""=t/Fؔ2i@=ݞpFūGVQz*$2:{@!CiKٽXfKa0 DyFfKҁXiwM/ԭܒLi\#(Z_a@SB/pe)&VrW 1~Q(֕;M{i:H$…c@ʱW$A4(Wʬ|w k#!m/|BXz(S.M$]8OTO6-lDDgJ ^=,]V++*^ğAsF s/8?cbOgoCn^l&5 XMUӉk8v@@)UMG"}@8XN(8hzH]ɒ{Z!uHMT nBBݫfmJ"aW}e6;pM%w{,儋 "ҡTvBB}ϑ Φ-tS3w@oۋT~%1HTwL=m$ u*.⌈o /lPtXT )6f\N$_.!3ش|oJT# "#B) M Qiq9j ngΗG;:vyx# қ.iv &ߦfq{-b %{`vv%V'J7ขͯFѓ`JNT2){cgC| &W-2 R{%n]qm/`b,(wGoDK} K^,Tp<'Źo'vqxseNIj),6^ע6^j&k%Z.Ʌapq!^#H%GV2d~˜d)J%*a)3 ?[Ѿ4rf#'ʡǹ gtxI;.+0B}I-[^dE\Xi#%4\&;[zC;\N%De2_*CN=}Q:@q9YMp6&^WG'uaɦ4G[;t3m_rx⥭b"I*ۯHTMXє1+7~J1Y+ <h[lz!&i? d `w*a3)ԓ؍L0#y9E}Y/oo+g8bASSq_ q,0(&`:8ŭRB f "ArákW`R6 [CIpV> tXo.t/Dt^|ISIeĺjLKRJƈ;uѝH.K]q"(Z2G[[Ry2xy1Lr- G 6V=ŝb7jcϒ͍҃T+Np Z HauFa 5LD `k8[Jy0Gu#I-fk(nzsؖ(2H2D:Oi4:9UdݯdN'Q[|V[,K$&\I|xQ;&c{PIܔ~%~rmԥA3/ 8ݪ_͌BgjspuK*o[j-,o }hRYlT6G;swuNwS#(2t\uT utLP4+jQ-=_)qT1"&ROr-8o "t t~џa`, -1*Fu!G"|hbsMλu0Hvdp.XEq8Lk<ٜdR:ĸ$͉c[o.V5_N\pToV+dԯ4J[?'XI:JYRr1&.Py՟ȿRof5'UӸХӥ{%RX֗7"n瀯ܧrC}!XL0&{Y]klYKch NĮﷇgDfRsC*9Й.hIDdC7M !\PX*\H *ŔF$P' Xm$s ,Z7\d(/KOŠy4 !`( f㘸n;LFhtC@㍓3/ŲhM/6錩$FZ9 u- #@>R84bG:dAMp5 x.cͨ. D1vz4OW4vD:T 1B G"سcQA" Q~ y0&{KamOBiyp%&crP6Ixef_m~s:)bMXg'&3Y,˻5~Pv)P†@8 &#0+ .m+ս\^?wD Qp ҪB͂ Dd %`QdR 9iU`TԺdYmvlDϥ-bиT(?RRQ8J(Vndu:a3E"CeSST[{;Jc,"&9HS7Hޜ/.jQr ߬ų'昽G5HF?R83U2E~a1ZsDәYFڭQ\f* "rF2+ b'O,D[Z蛅^]毶]mi%o=}}#R8h[N.u]N% 5|y{d-ґ%eAӧ꾪cF#ɼ4dB ,V!`I:B]SMJ( {Lm`YFzu+NP NWOeF!^bmIY S#f5MɈ$.}PR,ȵ-"3bǯԹ/KyD]kpsT5LcVQ cWVy l,o.!N@.2[K>Q.j6R,m)u{濴O.EZר] en kNO[/08fе:uTeT %S!}:yFZS+i/ )D ^4P uZEW5{{|A3F bP#ѩ_?~f3ʅkv@ғĞR"7$I!*$@E+cM.fuG@ri!<5ؽl! I[$?[D RkA+Sh-Nd}ґ6 LFGT}rJ3px#5#v-kF4VgN$< 60>0 EtmZUrġ[]} `6)QWiU6TAQ`e}wҎ*kĢocç >RXI3VQGU=Vw b1QQ{]#yC>M]܆OK  Uh'jî廡R;#b}DHۻeR^XXsel\@]@B QX不;%q #}b4q'NEo/h& ;Jӄ$3(}4ykgUW&dn?^4%dѣǦL$ǭ (Jy{ X$g-F-G {Pkj.V0q]rg:F!^ZgܕV-5%oh!;|SX;)n 1['@KN;BTIRP-)t\/G6^ڧBBl#oI;3,5ZE[&Bb_\am6d߭sͅL*J mCsl #2M9qaj K(!4 whTcq_i䔕0S=qʁ "҅e ].A|i,yH< I}M=-M(t:}lvAH?(RK[Q`iDo&JVh$W)tja+݂@4щqDKv17xy̏EI(;:oBsy.BK zӞvE2v-rsVαJo1OflOr>_-cHx!)yz"{M$֥.Ua22\]Bo|{vR) \~#j&dmfX2vEW;#bp}:J@>FR f::S9=Cbb:J>ՖqFI F.Ӽ?eZz]'%G}f3F873gI,puc&2;BO*gY#g$rd6V4 0/ %\aZeV<^Rӛ?i9 jԔ=&~i$wO&] 35cDP\cCpVq?`d yPvӲ5wlCgA|!zxtlk_;]uZ$Hk&f_K纠wX>M])o%t"'r eKsT bu0vYsm}ҋk[.yzTf /Q[f8~-Dd* !5]C+&7㿌Csᷜ錢u2,Z? Gَəf]&-Sم)3L=*!53i'O׆Au]0F;}f^Qod m9>LeXoCoQ\,ލwJ& &sfu~f #{,SegP`^@3]g|̱]# t"Nт2K-)Ft .56[bP y[Ƿ v{l՘V9-1Yi7n*]`D֦BJrlΊ]@5;[kfsGG2^j^rz tzwn?`mmTRi؉1kAM*f(jD4Ӭ?GD-1?W6R8}!:ÌsRO : ?)-gݻʨxFB72ㅨ)n4Emd 7U#B 8+2gvt4r0EsQe+`Nu2 M,&vmQbTOS`%:'d5+!iU74q()vW;w`%'gRRԎq-R*ED7}|t2%Cԛzn IdNn䜽qKI񛖣aڜ?+,:.B9kfd;Ǟw\:W)UkjsR1]ڟ͟ltw_ىYy\ xw^+P1gQ)̽֨ 1~m><۬&dL:a ~L6C,21D0budzexGk|xAS Q|\&&K')J`1"@>K~Ko1XOOf;Gٓ^>5 [b\;07|\Xʾ Y$\8 cQ6qErvr&3W" K&%BgPFW `E"/x뮞ˉ}M-ŵs)8hQvZ+tsN^A4E%yVz$k!5-BD_.mS/NCh:HUfIL?tYCC\F糘OmVhkti jD meA6QjfFXHKb|$Gx$Jp!E6a"Ȓҥ}~9DclA1Ε~~Uֈ*TrnR(@k[K쉽R[D!%L3 JBz?1j3S*֦oZ0dNd@S=}|Rk~j$FL.fj'!W$]yc\IhgR9]n'Kf~:w ?|_zJCRA'Jd3)EaD%~&C\i(Vɭjz 9% 9w_=֚G]@J-NkSTJrCb 9=$b-O0=5~cwD1\׀ K@)XƅfJv1[_S>Y*\!)hKr!sȳM:ѫ̐fR\t[<lT!H`#^PñUm_8*نuѧI_X@5Spw /#D=^CiEW>KZDo3/xQTЎf,@Ğ‘YCqnpYD佹 pVVI;0JDdP|mYjNSQ8vXPj|1:tg5OJx$!}l(^S," T%s{}7Bk^n#sˢ2߄|2,*&FbioDeETlV`_31UXSYJ$w9'%GjFA AkCv`H^ŭDwЕ,pN&p-ٱPTv~Z Q^B-ݘ F"ZqTd8)4iAF.pҵ?TKm#۪߉_5A'-qg7R5|4*̞zb+zEt^SxG-P,"1595Mn -XrM+n4xƜ%/x']jPHyphYY 41S/k")\Oafľ@X"JnGhj g2LzKVlofDi e@kj&~DT2S}9=A"D&`|Ɍcc&U2Y !\q'F,Lx%4 $a$d&NX[p x; &H Pp2`/ ּOs9UX+,sCO*ʌLh6Se'<%AmR%P. 2`tϔƅ`SEƒ2.eϰ_dnP,3v#st91m{-oӵps i!,7Y)]EB^A bVU$+'JA_V<˵3x,`GbDw(ɛ%ޑ(l4`ݷ+qݓeq0]7vC !pu.˶Atu=鐨"TZvY]u, S; d}=MWx0l] UT!.Ḛ>bDKg-'u(N溕 B99.|zf.j%DCj|o;h*c^&E=V*ɍPǮ @s c00MrTFc :,('pAG$%{=$.Ih)Us7!fs!3m( $H5}qgyp3TYHc:oedLipGz>LAi$Cb<#0A0z A@HalRt6L㭆a8Džӄem! 9E4-ZAZQc+siWhzD! GDxp9* I䆨t id+e S)j}u(аD(&:+2KKC܉QKGw_)b:/ Nf ?PtuK[nr/ S eKJ]xnNxA&ȑ' "qA# 1{ f]ZsAmXN '2df, -Jm*k՟ PSiQ9Wͦ(bI?14 %F0j%3{HM!"n ~kKbSD…pxE?f#<9V$%nR/Ap]0 oo(n1/A D;;?i[` gay4oS4TAIx{/@F4_nh>B qfPLKelRRM>GU0L^G  f-iX-%nlp!w0|RdNN,邓C1Bb_I ݺ36 YwjR*}% tZލsRXDol!NTx(' %9 Ω@ЍN@$܄epUƃFvTΊGZ3LY g6"^KycN"P,?dKL1U|h;U[C> oBmմwٞEw F f]69~wqRMFP9t抁p + ;q2S `cC0D!op )}P~Ӈ dK r7N4i[zx32TILQYsB@&81w;Q+0}H%d|lbr̎2MD9!:ą/0[E)w. `͔G+qI v\Ia' `XېF`\T,Cj 1j%O)±hrCK%_t BXˍ)oZq+!{0,/ƹ|/BHWq;(K 4ȣ%{.RPxi4.@N2L2awwaVxB cmaaD7~Hcqe}3EMJ0HoK.< t1s4YC1/;cZz- a hM ؂ ' B3<&4F0~WəF D%Ē ż.1{ ( CNkQ_4Vf0-EW:GjG!a鄆:]Qf1DXnlNwMI븳p,8z'\剗4ҢN>k>+jEGv;x)`ge\I2YoNN$SwL .="5Sx%5_wB0R ғ5mo)!O;g*|9s3ȤzY%>Z'/q_2{m3Aߘ@«.!4H\䅵ݙ Yd"x ~ pCxT0#27/;Y,bVjM?dABpb;|oj{5293%񛞺F“'seO52436H˧%4j§biWeqa؃xۄ2{EМ%k͖Ix2RFA/KhxJJ&w{9lJ}y/X)iHi#'YV(Q, Y&&#Ooט#)P' 30zx!ԫ(S̭?b+ >_2BX(AN7)b^- Tv: LdBT%UVcx:2)+-}cS CGEw(F%PGV'04mԤ YUm!k,T MD\K2yX  ?6sv7Ayª;1~! 4$Pݎx4* Ij)%<ΥĩfNVu8C$7$3'vvA *#ґ?w6c1^h  I:LJK"=/ڲ@IʱYCQeu=4p q @hฦR6 @rM1Q@b!i!Wb#h6!2tX1*y'bm5ȅg/,3Ji7?![;AIgb'@r+?h9};Q:&HuxUB!{B0:&%"bj*r%Vˢ١wJoҺ-9~zNꬍ}k^ƒsf|CI(.L_AP ,j(, 'OD>?}pM4yHd yG oJt F|!ZZ(JZuuJۘK%P <9 NUEW"6Aħy+)Lp+Wj!c(E"\u%:P$̍̕A𠷶h *S,!iKfȺ7.e>W}H9$b@+f}W>Qj4hji:S[0'ٻena8%58EU&HLf`2@(U:a8 !Cn/ACN=aa/Ro$EL"I,Ds,՝Djvu2 @慬OÔ}w}WU: !ҹ&[>j}f.M- 6f#SC!v\tu/R)8L`ˊvG o~9bbu2ƏVd I7錊rrQT)'F;ƕ94 ~RQwB{NO٤#;EJHUzBGv"DFT6 SvLT\B e*ʀH+daIOh 4vplnfА;Ar 8_;*9ڶSozVjĜ,k`fw \@ m*(ւ+%4~G|7-4(&zA|FK_n%FUµg2_[*"*D̟f)CBc{uB̜%/XJȑD]K.[~$,zrCGJG  +N_nF94qn.s #F&a_B=ѭsjpKd yk X fQ816΍"UFn%&K3is箲EPfʫt-ÑS J% W]>TG~>W?ZϖS P8# T:2eR =l^|c3& }-$mh:89 ,k*{,ʩ?\kOR˶ $}Ys} tūnCrߗ P3֖:B'RlR}HIoTkغjzMhCo''>v+~Tw]5rH-溹oj)gPYňHȩv6/+MHP|$#lBR [>em*YK7fifOƀ=^vR?@MQuWSVO:xX`ow5uhri(Iz$Rȩn x͡Y[d^΅z!EUR̩ H:7-]Z60jv9X1Lnf1;UzcBc0H:/{>$4;#?}|FĽ<ݍ5漣J,š=˯c%V2>[e:Pc?IvAV̇n7Q,nE^ ^ŭycK+c+9uƩbK}u"CeO!(6;h 0b4r>&c> N]ӛښjʯqe\$b,<Wǚ߽&'T%Y< C5Y!O ؽq 4\ Z^zË_q<ȸ\]@]0?e$֠Mm5Z&;'Mq1hLTdwUCoV|HaU}KO04J <Bn%YtZփJh!}yRoPŀ2GGkiT?[pI u@"yRs]R*GoKb=qK,J/ sTD)P)Ӳjw:,\eDѶQI_hG'B5W!%Kf*ַ&qc4R"rZcy0Qk}d|({c>K\SJ2QʱT;N'ArG4e 4Ts8`X%7{UX$e;U4K$$$~ְZJ /m|ɧY2$b q,ďt]fCJ?XM|E*Noxۙe=ѮA<7T%q K Of ֵr$`yYكb >Yݳfؔ\lXDKJ~p%sP/!ly9H$^~G7xi" =#Fk15g]q &cUAr^s]Qqs1zTG^%ehievb'm^yOh>TV$~Ov&HTpEw:WC{N7'oN$s/+d5;Mh!m]&yR2ZU@ڳ5E6iI\ţ}wb6s+d_%^qCJKl/%R7!kVuw>bRPPQtkI&~ kj6n8xϓ%ی3o/FLuϑ)MH١l{+@)B#o2/sA13 0{InoZw!>Pн2Ls+pMa} 6U;I*T"O2bȼ"-xe4 Qp:3g5J}r)je&%: cڴږ{F2un-]پKGI#L١y7j8,R VD;Qia(lH1ᢘ|f^sd4mRUP\1w2MzY Z$HWnً4'IvM.NQ*fO@FҊ/ܑg@Vi@e .Kϕht"Π700(#*ެ M\HW50ķa'ʁ"p1QjJF~JH3&zgP1[ؒQ*rFI[͚ڤ*gVJbW.x_ku$jz6lk%ܒzBmWPrt8?JdF˚[&Syb*YuJ0^=%)DMژWg;% V-N|JKMʆ"3В[(D휡<+>oJ|MhGu[x|yt>SY5.ށcx*\CJLcv߼zNGK Z= ЀR7bFYapR hmTC ܰk1 d8*ҧ r_;/Ou>RqU?UI)n[D'.ӚIM)ਂ֕eŢNIjkE`i$ʌ;^B_,l1.入lb_`}\)wxB^Ff:bPHk4+`^0lJ.jkI6r7߀.Xb5=ł#cyv_j>Z%%^~. ȝf; 07GЗ $ʲ#gC$#D2@ca n^xZ) N[Y z|i2X%LMҽ1ʩȋY/W]}b4ؚ0TP;(eP; ږr!&xN8 lr"DFUzud {;PZUg@]g<(BA d U_5ۜLdFf:)25]`yANil2nDi K`8b `˧C٠iᦌ# 82Z̭\!.M`BSwѽٍi{gTZڤsQpɫtae#Cbs 2 btZ&ArrTz߅3^vX|Q# XܿHO8[WF!d-`Bb7A- Ձ(Exѩ[;3F++ k]NCqWO6JJ/XZ7{q[GqNCO)DzGqL Pm!G1IbD0ۯV p&U/ےR@f؞NCNT_w,SϭGDB+xeM:T2*oʶ+|rZ>!ϴG NhX2Pyb.S3ქq'$݌% Ӌ ^{ Nivq!mkoSdLn_*4d0 >/ún%*nL]CHE$=B)lhyY!" weQdƐD ]B`L^2 "l.M{;2|i(Blyf}_YIa ojv|V+r2>}CХ~Q3g^.æt$hA $.y'nQHnUk7Qι1ɄzqrP 5޻)k]#$ada1IPsZ ~5rx~ɡˮNeф8x(My!qOlطDz[/FPh Q!:0W%k !J@~g|㢂(°0O +wfb"= 2 D> ^ ~=O9+@-27>If-;}Z'X; )SKO(uܬN,,6 A2 \Qb t5C x(!W-h4B >6|B~NI6A̡T",',BDHw&cv3v;uC!𒀓b>EP Pd  dn?o hlD^;Ɉp k.kzZlMk, H"pH7("ps+W[c1pGݍ{E?iTsZ=hJH@ # q=X8fvǧhQ*H\vK&Am7D"A qGejQ,Kb|JKҰF"<dh1C1 ŵbo奦ų2-HUNci#K.l'#Q 2(&^ * +8~u%d2B7 DvG/)J)ILi {B#7iiՊB̊h֥u!!p\Q͜tQUDv2EU3%wsLi |D4Y #tB0&s"@ø8 @[e&ln 'OK4=ǃ|Aʮ"m¡*Hu}˸v>Lq2Z u:EI1 R`0^ZZ@wP AHy[H,|Yhbhй*BiFp#񷒩CzrnzmB@[UPeixB3ء\U>P?  ȁECrUXi BQaXPŝFe}\7Wy4",P M%D`{ڂS'+H#(!G0C#q+3/`p[[Bϼ"Z STKt܂c3FЈ•֌?vJ?B"N K^D/K&xcB3q &C<̈e1zT AڈھI%5Ֆ$:MK?x`iJ'(5cQxB; ["1?{=SU. /N) %)¹5HfxEF6Z>? ٥0Aѻn. WS.p[V؟V-% fY_JcG6l꣸BvUTbkYHf1m6TN PT"\?,di5G;-a Yޮ$!jxw2w?VI+'sЀ>$YIy2 ckq񆬴&ƽwabXQL.oϒxiS-e#VTYQwEhtҙdH58OGE+Tqm7ІPX;8yF\:{^ uTe!*$l'7ђCH87AJw/1.P!4c0"LҜ&\no CUZy"™kڛKDn [=OIHuVH]0FJ)3z(S5L,ݩv$*e,1ޠm9Ahb4ߤCc/IIB.'_ʪi5[n54m@ 8J6ҬVW[zK)o x@n+ UԐ׌g=7ePDC Nւ j`DEvky`Ȥ'7T*6 < 9V1p]:pj5z_G( laiIN'캫F'DV* !΄ML21}+nBPz%@@  cwHz9s0EEk)&J0k$r~_ϞZ2AlϵNIBt&teҖZwJk7(|+b) 82dE/!sRK^%U ͼ $ 2B7QR0Dm%rgHoF#:m\n W:{E1(;r[XzmfR3Zגw"2E}}`o%Į䜪n?~| ς9X #i %\,wŬ= ca0NnC(zx  ±A4!(-IЇ2.06ƨ=#;g oo#:xh`{ftnOIE"j}q\yxT *031[Fd^2c+[&Gem)H.8e×M£l:0YH Ӵ08'2& N_LM!ؔ6;TՊd"CP]mje'XGydg*,jKwzJk(! BlGnMH ˢYޚM \i4Zԩ$wJI6v!?eМfpHHxMkxXL*^Ofd+a0/ Vr)xaD;o`"3 8\h+fD|OiN`^ 6S=3lA b&aTpޡA0O)p" @ !蘚euk0 (b*o2cQyOGi+0_3ĭC.˯L@PB aPԠ.p,P @6FF@H85]-~DvbA`Pfeg|epzMnF-9M_{|S;^Gg̊8(d"1/_}|3"gfsaQcl/A5FZʖ+jbH4fsmDC.f7AȨ:Ћt3|?OOE[R Adl5.ّڇ+#rU1u ]? Zď)KL`2NzIQ5.Dƽ!mSy4Ɉ*sS$H0s(3ZGcîK| E.lXt N%PIlT Yće!qgp3Ƌ:`F.`1Z"sCw#\~~lWfrqA Z Oy~M26-*RH'6UQ1جc<\1\RtP6urr3Q1D2]o 8qBO쬍)H:sٌLN$'8_HF> IiBёnR6na_+@H3WLOgbaBԳde'P %&j=m r۹Tc:|Z1sՉ"Sx~s!cE{N7j0-g[2 mbVj&ҷú=#Y!e=C\L9S]JtLsX@L?>];uS CX/ j-țDT"tAtBF*Pڔ_@nTIw gP(E]t|~U0^C5. *;y>X˖dYS+&(W@:7K,;\'m.Tl₆Enhb .!(gԫӐo4C0]NTdw{|7><0rzu^RLQ^W׉& $Gg; ZI'ssfL:|e2(1 չvJ/B[ČH-#mBJ.4)Fbv#~ d(Ē)~fLDKZzEөRlI|msbI'SI*:QilU>'G1JS7 VnzQH&X,ԍCX.[H穮'5-+}W}|GqDlKs>1į.iAѬeMOSULL_nWB&tMfqջ]tdPzzwj;N<}bHt$.7@\=flLyoDAB 8W =0ވ3DZ {Cؒy1*|1(ռ `ϊOufl7VQ\KCūW vcIu/G9ukSz@CKwcF|(RCjG \+Qvti585\暥enH^vc&QJ:k_y: OӈҞmVfVvPaigߟpkW .mnVQ}?m,8&f>Gx+EҫhzO|dvm~Z]]ȩt7xF"f-o6E; )Snvkn_MKDu!X3?CIu IǮ L,D=ݵf/vPg" /K|CVϻkd4YLi-.th)es,Sy ~ܤ;HE)}7\,6,/h{Pl "E)8 Ip@dFqTxJӵ"2@=rJwS͛[DzL"ӎIXtX\]$Mo;z%Yϋ U4kƛcR0(uE)㼄(aZV]8XaK,S oћ2Wjt8\uSx.v!tGlƶak܋Z'U2Qh Aelb$?Ѝ^ͺc%2$ Xṙl|v/Tqܻ hRY46~|އM7X+Si\Bz7YaGkb6YŸ%#O{J}rZZBg;>aC`ò0êزך=!{E!W`hCc6qΕwousz"R#%urIiT6=(j=Ski1[T_%Lu >җiw=_ U߉3[.)`fVxvK._ֺmz'N*G ԾVpHV女isSuF =۬h~`&QDHnմNk;ԟzN$7xVGtEIQ*oP8 {5#F_mu4CHWZ?4y<;P!ĬM^N-AD Tt{MYg/gQ+dBl(" ˯Lt.[_M4~㤕gu $^ = /7َL:)ev~+$=)ˆګ}2,4cگw?WZ,gi/xde4M8`7L,_%BJ"u#ndhdQ ^\%!ak3.Ռ"2)dޯD2s/c>]QC"@oǦ}߽ *U)ܤ3V>3 {@3[i;Ekhrϱo" 7Jυ1k1@:~5tyg i5жtM$\URCgd! E^wC5Zբ,ʠF*a?^B:cf$JwnN׎K8aP(&~O^&I]» u@3晶(eRP #LZIg?""8FR֮ OORwPFîI*]F_Ot4XK,NǞ#z 6hpT:A9~ixQb7=J(UfFŧ{~ M6h)R2l>EcK#l!ť:XY"hKQulG͢1 ^߉lςNZ4&-X?UMH6G6Єݹ'P%*i`xK 0F$.ȓӃ;$1Ho-s *͠u m賕_M?շ(YCE/}tɧv XN_nR,d{'@v!|c!g0_3HfUBn 62J(AsϢKK=QG-bE&LcWp%?194FDhǖ4(Z%1N.ZM ph8jϣp ʴx{*QmH4c7ǟk"c ;v͈@aC9ur:J3MQ-w*+ig|<׬r٠&Qh5TYV+t *`RZrM)e0L! ɅŵQaߨ[5@A(*QH6 {E?'hnvnf12m;hlf[8/5n q*Q7ʇHP: 4gm$`YxB`ϛQҗK9>CC&voQ"P!"~@0Y aJZ @ "Æ *[(XNpjrfJ5^XRr$OOoƙiPU?H-YY˻OqLL]V0kJz+V{#sQS;E;蚏\;R'\$`zFip#Sɀʈj+ S/.y6izڂ֝řT@Tdyӂ"j]"1{]"Mڼ,mb hhmOCi4=FȵSfF?^;e/s)Lz;3ģAȌb 6/u詿:CڿFil.'ec0*T)QժjIF6mGusA~I5|2Nx ~EئRQE L;lRۧ[݉4H0 Uݔ`:|;wJy"(-LWҾqeiB5F,!- Siy^w I4GM@cWz@Bk&2hc# n_@hGXD!C7chI'L"Z&!q)Hk Zx#sȼH_bG!,8(#tqYT05 ! K-k0UA^dXW7@Y< -zvz u g'__W{Tpȿpe7̟"8i"H-˖ZT9dʤfUI;3XA刵t5[UPaLbg`X/ ?Sɱ7n/߱%i $ <DZ}hr,3г` ׸/9X+h16ptcgc8̘w\.=_81 4͌L(ٮ^|2G8>pЌbC7qL4A[Ygv\ԼG>>CdgJsfmz,#}ѠGy'QUU_G킑5@(VNfp{iq*J}6GF s-}[T~\YSSLu GŅԦV=ՃKecl5=7S5Z6N谤6;/OP?l =@EVQQ'%rng튳2x*­eguwIT%V!>U#7 M)>#^5F.l/2YT4)RK>a&REQBDɐ tG4G6 mMmړѩWVUŢ҇;ֵ v=\5yz6\ 7+ԙs u֑q !ӺCp[T0b"a*]*}i} &NE'BrKy-g*m/O%ĨK*\  en1Ve]GC!.*E=S@I/_k=U y3 Rc%`.<)\FhHWVO~z_4 s3dŲ}meSFo @0QePӻ`e \#^92yu/_ȚtX~ZP/V|P]rdK:6s9qp|y< e0c((5> =D_Xyh -Nqe^t!]7>PBK |)5 E#e@W:O(EDs/<.-'O u(5[Wl|M2j+~ETUU#1x[VhI` YU D! luƙDVI"a4k'ݶ0aIASFЅ80nefyT Y )iƥfJ4(x+LR*3opV--fiX>!KJI":23GIHL-"0U`M#ʊSa@)  CT8eO@TҐ#ČYvNr[@k$0P6v" Y3mÒ`Ȇ|nv2dIS\Ah X J\9<9[*}z.jY޵ L$b}P<̄(}gI<K^Ha䵏)ro¨ d_E$=nR+fM:% ?O,MF[iԱ ؠb}N" zg.M؄Rg8ȌR ?F0#-y+? Ңjo[5tca©M Bȿڱ褟bPzڛXR}Onbm6D*lPiz V#cy)5ؼ ߒ%Ok2Q$Ehb4c6;n٥/DuapxsM|&lE!Z\~#Ew޺6Y9;7e~4\Ox JG0]Ae3 ۄI"!"X9.TkeUbP J.n)F&N V#RVℲ:'\B  Y!YT{f$^TR88c/EV8<$ А*E䖛}FV+U B5E}"Q .\EͥEW ;E$X&P&'B@KT8=ܢ$ۥCBn^@f8+j*8 NR1@E#(b2]&`Hb@1C#&"dVMˋS8եgf*H \7nj*ɡ  s\:sΰ\-{T/ d2qUEW}I "1AkԎXZELj_N_0UA[iGtnMP{C˙0uP-惱6p[ 4l΍+1oWZږN8k_eR䏔^l+Uo:GCRxLdRhR;"g" r@#'BC 4:`0[cŪC3K`N{LL8$P.z^k]@ԎCS0{'r%A[t-DsHJ9`4ɭ4y# gPCb]qÈ_Z9[QK $6xH #3w(C!U'WWxjpr%hY5p &TRI6BZ_+&]cO\bk|raKm-DV JTYG G{l!XbTKE|$]5[ׁA/0?X8g7ڋȏm!}v4҄o7||G|mΎf!< |X[:NEz) Ti6o-G} ANޅNG\#[ hrqO!,4+$,EP дyVy'ݿ܀2\劣 '˅A$bJ jf cHL3”̿į:H/&-W"pyZ 6WtMbI !+zi4Fb0+m> 6K^^eQ*W۬N[2wef#p^k(_޽ #ڕNΉ%V .mD!yǁ XX8-: _n>gI9`#K4C]d#Q<i"P^^58k-4àP]wOmÃj k_$F'_Q?uC1Yr41hGWAuH]&;ޗDMIMph:% AXDaXHG7й'sRR`1+^79QDew@DV)B3cQ]2:2])$?\r\9ƞNi  )reNN=Q k [/X"ߣMõlO\/TH $V87tޅ̏ANɟGH.(D HjGօsc* q8")Wp@Ƣ]sش LWes0d 6Ur}N'912KD4}觕9l(jT{kAXsi0SL-G=maPrW$c 0aUc (Cc,Gnxb=\BH>$nx4 [a *p[H18i 13FP([J&xe.- aǎ-)E+z=Vt[6JVGDHW`~^HVMa(̚5# ܮLSI'Ip)%|HV vVWn.Zvv+fMJLTM4D;(M I7%TM{1%USS}h _LS^ҡ1Pb!'pg4̬Iσۆ}iBAu;~@hf)*I'n(s{ؐUWWfVYsDn/cW'6 DL DUUQnXBߣR,33vLHe[_ilhAѢ0ZTɔa݌Ǒ+m=MP)qeϚz*A10'—U^6 % Y@m^DJmŇQ]TEkO!\6BbmayZ?nm[u]AC'Uf Am d>C]Q>Biv~i K U!`z`. 3B~_UY@F$[l?͢b*#[JKYx ; T%qs*e6!&'RwƸ侤b'ZP#\NN['O?QB5T^XH͑Gɩ20Had] q2x EB$Y権ICG`:T-qh 83;N@ƧxĨe+P#,)fhrTBoͺh$N䢊ȧ|ZLa!X!@Ɉ?_}襈V6f%[kdpnQ i}Jk{">ao!k$*~{X>۴KHMY~spBYui'qü_Z;x9M8j}~7$2U8vtzp<?&66dVrU-W:[sPөP⎒-og6 l+m' I'oI`v>'nuѯ1]A6M,X{w\5sX%\^PFٓ T!d ڒƉwx}N <ĥczq^g,MEloVV'I"~̙=fH<6Z`a$1?"[yӂsAz?d'qN2DYW^7Hp3m#5Qt"իKLC^>Ǭ0{Yw zvOU;k%t'`vG_:_IFoc-c6I:$]AbNdu<suq9O<7"R^o&(PlE\,4԰ML&ZRh ܘe̝DXvi{6TX7*CW{92S ~ 7vѷU~)(x.Ĺ%zLS+-HuI;@>,A¬䁮SZ?+Nd@O4yc6n2 O==!G8huӢ찙1ޠ33|EѺ7+vnwr7O;+7H+njǝy>.F,E-Ζ0+'8& @/嘪+)"WBFe9[$ +!SsGͼqOUm !(9XQgM ^Ԓ֊n |0,A~<P Idsך߈9Q~S1S⫈c*oQ_]Iӊ6$*/'96$9edzSu$Rl*[!U6%FQԫd쨬^Ѩr1ȒmY/,Ӹl λ+B5fOLh 1NVrO@ UVJіȉ=p»͎`%e {Yv77**Q^.ԙV{yPPP~`E:u1gELIM<{&Sbō Q>d2Q)%HZjzПP'ꭺ]7o@BK6|.}5njɈ*蚺0lmJ`hǙ0٭ŗ`Y;^D9V`}[QˉiS|KA ƧKڢ3 5wp\ -}{ka|m9^Gfar6Gĺ{M *i"O72QEYX9cBVƗ(b5DRG;FLR%W`XɎEAep*~)t$ KJL;G4D\Oy6$w:iᝅLɴ9ar7FƭNGΏIRVBVr)V[Sټ`IQrwUw9DV#'u^$}ǚ>w)/o<Æ`Z@D_v ȏ]*mAuފ&<.갖H}xeT,aj!tB yu`7'!u{΅^_k$!b2jˀY0--9cEv\%c?b^#~ =Pu?n,'1LMH`3٣hŔ96t])`\4? gzpl f2I b_7{5(VdG' i~[g㝟Xe~։߯R?͖d«zRaR[xbz6yܹΗuĿA"((c=fb\WbG4;c=ʡT=r#G iێ}J'>p)ezJ}jŝ2؍Jm1}ƛ:P]!Ew*CP(|}y؝*pT1֡$'֔E/ˊ ^泮6n յn7WZ,ycSq9SEw -tw~jԺmxl)QӭI2P:Ď$' 1$WǚxY^|7Y +/7˰wYLWHpTo!Dk>׳NX3B/ۚIfTX߾]9 kβo=;kjz > ׇUzL$C[rEg!@'ЗyəOL@@F㷒)Ī3@ "6v4u(ۺ"D|-t2Iz`L1ُx-¤I%aO-[(МeΒD Yfb/[_^Y}iC_Xf-ՎK>:By@H9W[ax8v-AjZR> !K9b2?:4 Fq-ч~)!eam)"Jhߦ)%Zb=RggQ:WG q (֑ni@HR]>46e#3ڨ9_Z~#XR+rn"+_WQcEUPIYk{л[x0B(ΰqZS=1Pŏl0'9 đ)r{3s2E*ZI6ZȅQ~pe? RDV<(rrrSGYA2yb+gT4k$ rXxO'*ȭb2ax,&51p RFTl2ʺb@qÐ PH&pm6`(NPHHf,gDwsrG $.-F!J9*htZ V-=MBkٛz֌ݣVffʎ5AS 5&;[m׏b 5C9)im?Ch mтy@p"z̷M餍 h#Yk7k;籫a-۰j)dR="*P6jkA@eNkoaU- |X'ouJaLJQ8pnӳ0ʇఉEDAX3ӈhQS9X8PK>%+bAJqIsPB܄J@\U#5#4 Xr"1<iv;]Ц4tUa٥+фI,T#cD䅣$ *3iu.\{Sv8.WzƍD>[Tn)9zVV'%<@h;hCZpT`&Ar˥++ 0֘?2FfvՈtE׮)~Q1 QB1`9EAwJAiO;Yi_ "jPA|CNA|K#9%2sJ>4 ՍS SN.y^N=fȨ.Ɵ'f,L7zdH6U8_n{DWaQhr} $@*h*L"+cms*@I3z#vbxjHc$&={#&&TƅSreBJ cleP/QD#Gᅧw fQuڈ uZl`8\Ucj'h)* ^R) p8ҭ.$/~sOD0 dԎ^j+TĒtYY 4 s >'hj(}^pL[Vc3ej!^2Cq> ~N[d&AP+p S5viV*P?'<̂ٛd7>-@%c@['#(3"H/:i7y2u8x޺{w<0q9Ic  dS3x&#Ȫz*SѠL„92>sy[!2+Lkz$ bAN HD#Vy],< l.,yz! a''7h=N4)s7گ:ziH+$P^#ധwq _Zҗ8H%&j`6Bkc>&7r ]mluk[`7"hv."\N<1S]l]$C]Kc$˹ G^\9j-{p9*,1CDz)9Q~'BS?=>^Nv 茚NN]+qqO ]e0KByclv]]fH'-)'X/Ψ/DPi#u5[W>~u+%+>nCiw ﶫΏ~?V]z*ixXJ-c@93mO(.5΄B\;`MGaW\327\XA% -5 <%d[!s5'DB.e1(o$ #* GXN3{Do##z7p*jg-pK)T,>؁0DوBSݥ>Bm-XԚ'Ud3-0 RdĆxS2Կ\ Sq rDOR]v= IUM&d;R {ң YLC O[" ~j,"*/AI4pG&^ UךT:5L-YtU'U=}^ (5JWhӭrTlr]Vbe d" uwjHs|n|xVC*޴5߹-YnIehi೑ Ks [(aggl$ǫRq#}1N۹c;#]BՒU^aeL8LTuT"b5`xHKQ%"c`SP}`AӉvy9$ƺRa (NܜҖȁ/ gΩi*dJGYza|Mc)0-ē\Q1Z3Ѫh;Qu$n;1±BIyPI2sC\g&l5 'cL)$,.KE67[hEgBlV',Y#~R7]{ghLv TG~`V$*SưlWãI4$e'(\ʤq(Cn%.EpOa(wЪ=2"=X0R(̢Չ9-'UY =' "P{Ctt =MyGY"> t|M+גJM ș`XR6la.(=ؖN>} cI!I|w hRu*u$*E5Ƥ}*B1Pze\͚˭3tbu8"c4K`kBY~ą򺭠E=5: ,u7`(->Z)[!3&R h4ت)cV@4e5ѻ8c\%ƾEV>Sn*5$v2Ȥ(xS{'LPkfowCag z2<دDN4OҊ e:NRKP9#tGQ=kD$08D!++oQ`"7/sU]g8zTf@cY,"y dCJI3q@&2)Ζ>܈%Dva԰j.Hjc``1zb đg,ИQYNZ3UTyb8xaxbm:lF9!l7gCIpo{ct`z[MQ?qIR"W)/Iꆦ H% LR ΦC,F_^Ahp>GGc:BI~%v&+-U'$%lL2@aK1=%s!"Sٕ\% 0.<(9~,ŶN at@HZ |;ֻ,JodžcQ`SUF-$4Zt0\'0_PV0#> "1KW~u2)0I S-630Ucy!)H?#yOmU{AH oU-2l8XIbwN|`k;HTt1 I>hǂ& 1J+{4-_fpj !CIC%<1:ʗome#7Uc%)a/@7"b?-_FnȮ`D7*&8C=8n/W0cȄ  kA(%]1{b,02 ='ç3z4g^0p"xmTsb{I@7FޜMc`8~ (D,pG1 i\AqE2pgs'cwS(M#taї7CeJ}ΰRp24H\]-3CmZA@C;?f_G&~AG+iK/)L} k\$~Ƭ o > DHEU Cn a=%s|.,'6 ,EbQwNz"$<4:bwATv/6/5t'a b%шk''WHi LqG S23jȘT a hOeKsG␐ѐtی_Y 2t,jUN\7j0Yn NWca*(K$;eѥ#8 Y,Hz;f7zC8ˢQJjdEO 8e@.5XNA@ Fx{rwNk`N`,2n*$0]G J1jBB{Ȇc=c-diCQ"'A,u9Cm*ٓli^"mUTj Rb [+`.ȁK@g-M"2Fc*{@&@Y d@rR?vF*_]L&u@ Ć,{JDUcEK!ZŔzyU- N,b! cdzuxO2tJZӰ&:32_d/vk T'NqGAS,/dHQ4椅-PvϑcQTB/Z dzqa410 i\'14j:9@,ͭ5Az#FRDFuā*ۀ oHl/bʖ \5 '֡$x!03u{o/x"$#uh^t-ރ(NK 1%3 BS>gߊһӽ^idD}T"{4Aw#DYq* (‹8u{vS)M%Fh5weM˾ tE{x`l!o_^ uXblERwʓZ(w*2ӡQjh2nQ)܂iQ(ìh"WLY! aC);EmЎ'7 . Y^U>Z*d ECCҮ u' &A{\DUA,EHڊJ2@FF՘oҽxDiiגVy^jU76l=i a ՇT_i1I{aXQ Bx12W(%E+'-…Ɉ8BJ=ZV.&'<\/Cw-IO57fmחh1f崚U(ʞ`ֈϹM}|Pb`D'3W YYHY= JgGV|CZ~Ⱦb&ZJ&2bC4+#\>Aa]v&Ҹl%kQoc])N/x1vFNԔPՑNϜ(K$0Kh>RNHcq@ UВ) ː(G%.b2Ra/ݱL+äQ5uvH~+XWPɈ)MM&KF|n0kJ#,Ya3YX9Ap/=?c1̒`F* NȨ饽ÁYI)ˑ [*b'0MzU VH =-d+LdV7=UV4t}Eb(|\S[qP <af6b%Nat0b _"F5]aL>Ծ `7'%DD19;!zoFh%OZ8SZbK%nOdAT._$˾ {2Ӟ/*xoCw:a7sQV|f*p9&޴M=ϨZ,Dc`.rz OeW4%tԤ\ f0XZC![&.aPP3}AW\P 2At=rlň" nA5@iQvV 0HI2 sS&L 7| 74m4StRbbANBg|vvYVsxсO.!?zdF0VjǥC֠ Z[} Vʘ9H$dj/ ^xUqnq -4R 4J_o T)aGSy#x.eۤPoz,h/M⠸yd#."7Zǥ ݌cZKՅ ͌5SozѦ#1@gg^酕xXLY"qkf>@ZljeR E}/B۶w(aVZc#=Ra)=%҄i& |ꃆJ8ms-H52ߣfp;Õ3ȠXx*lq@]Ȁ)CTM3 *RmÖ1 3q)Ccd%EMydo(fL(̳eEvl$ ym*0v2ݥpK)Tt "}b *T ܒlk}OĎb-ч\vZ9čF6tYkB`{ĉ<;ڭˎ؃˴ǷL@A z8'}JDe7IWNEDMLM؍Co.PU2۫kHs:b??Mi|uI8LbenȤD Lgi WRJ .y<0?ŔG>f`'+2WĠ- ,o"W-C ~£ٗAz E?& vH:׎kp-Jdc !fQW.cꀦ+hSEFî<MJO2s7ܿr( D(iU`! lj|1c|(6]X' D݇4fصwM 3uLR,y2VHͥh"+jNyV yZ/Ң\\ևWm_!HL77BrG5/|16:mKBy@6jD|#ȻBIf(5} bv dŽ'w{`VgG*ks揦(u=)Bx.$861v}S/X7tm>z*J:ZRv$٧ 4?MH N%zZ)6%q$D݂-]KY+]@ǞNz&ZĴ<ĠFk\FM|jR'>g0a|Y KjdUټ 8ޖ*y=IzGNUOTdQJ;h; ]M2lKIEo6@XW{K&ߞ⭃Z5\Ɉ-SITx{#M(v!IE./zvwT5q>$&r7jb&Q}sOkFO-'$9( Is`G'GG{m!V LW{NQuID**Y_`6"ـ, N)i"J̵H-ZK%2qٱhIqoy2sɨW5.9|yPT8{JQ OoEiw>=ƕt*K _m Ulj~ya4d9r?NWih+"fIճ $Wcg@sKxl:>&L?ƹ{zS^K0Zld't7յ0*ȟxKar4.<┄%QysFZx m0MMV lmvIGȡ эm!jHU*HNw2!8CiɑGj̱ -#j@."ݷ"c9YC!33 Xo2 ^*0X3u}d/NB BVtʮ 09"9پAu-ఒHWicꯗ+ID=_~c_pƃ3?uqV*V.W%*߲*a4%Y1BM1 j* E&>6NmգCl'6RefSʷ-/LrOj( !1uQRlHhšm$fF`2>`H&Gȴ$eXًI_Qw[ԜW1s5 0O*na.Dka -,)7!w݂.V<Eg 8.TA+e8K_"1oٴF߫K޵Rz!~ݔZ|5jȄvd͗s# QQJAsoW dIݴ="jg #sUʫ=\N;3?A{䆩Z:͏M嫬ۥhL qb]ݷvouhC|ٿjM鈦bק3^i^b"ӥw ƺVbaTX+*>u**pⵗW+Z~ O+Tͪ{Rz坤%T7<͒CG_8W+e+>Hx )[*w)L&#omہ-2Ϻ}0\LN^VW<*3.f;T*a?eܪuGs`صaIUT\ޚ!5HEϱ/N* 1rIcfp3Вuӓш29w,OŢŋqѺj][UvϽl 9`xk :bVC@̢SFs'n{U 0i;}^vx(=]b2+NRDtKosԤ96ވPpV-yb;iZr$M; wa|5\\.>Q*&ږ6Q/W)D&[ hlF',"cnαJ[Ռl"F^K]՝|7] /MyoCq.3jvD$ G*d GRT=4f>MskTb֒ l/,)OQ6赁j>r ["-LɃE8ͦb-p˫Q&mEwLM%GZH_|cԛ'o+bɃ\Cl;y!7!5:Zi\^5 Y;(0/P<^I ^v37@;hb=d6;Y dT!Ek M)m`HNƮK4*kɚ[%%U7O3M;R)Ήe Ot<F`_JO()^sW6H$,6Ǿ[sXo J[:/[]a^u:agmdGH]_|xR+D?sO|Dbl7E~B>"MO;3vm*Vm%V } ~n=uQ悭ޅQt ߜHmBA{qZ5|Yh,{kUna7DLSݙ<)<"Kt-"pYz $Vsϲ[|DA$m'AB] XIáG?kU䌔J/,Kjj6ݙM%RnV/\I_g*ZݭER"Sڥ{.Ah,W$*e>u-.Z]9'r0AJ7]Jj|$zvg+ zvX\e_V"L@~-EDrS%q'?ޫJ;$,nCUhU>̻޲U"~YF}Iȱ""e2jx ˢ0QU= [ Q$|?d"Ȅ4ՏhfK3sP͍+YUKRQI;4p,,p7^{Wk%6;_ EJfeA Eyr2ynx!NYPk(! n'+pЙ')6[QpDp{~&SO(:2fm>JNU;"BvIbZf:м,q4w3gtMR$VTMJ1տ _M܌՘i7w|ndĢR+[z\"lf2!qPY>2+TamXʋz͕{i&e`Rv@ٺ\}m-NdRV+P-n&"A/Y9℁b!M| ;C. 2wE@_lRB`ֺO'1hàG !ALLVӲ{ET~HX0@j1%Q]Q m\аۤSIEDR hEDϖ% ln>+q/ >eI Dwt/KrR kɪ+˪GPDA98)b%Y, RjrzRх!h();J6RLXȋq ][F|%6$NaxUg=gnd4v^_6L^O?ѥap&Ri]=@AJT):] J_ͭ OW "HP#;+;@-`Oxv@9IxO\QPfSR~eY  _~$TAaHr D!Cz̐2ЄL)Ox.5d4ZYV iʔiԾ0VBx ~Alc+ G#Rbsl+ DR)a%U>fg"tL,ĩX`y^!S=Ef0$I *{?=1IAOU$dZ"EPOȔ||9HbH|x7 5r&#@d/2,#-FEn3é>Q0y|2*m= co$cڊfQ}* F/K97 xiCJOy]4d:÷1y`i!z6'|j /4+E8[0Qss y{*1!إߘn[}_rsxD$a2Яn[ `S;*_a"k~ >.׬W $L]|Tjrc+LaiHRNZw--u˳N۽ne۶tSdf iHژ'RDT A|aD/50$4&۪O'H%Xh[+y",MFp;:Ifi&ЍzQja"bjJbm)댬jrATrsbL}#.f#YȸFPH\;h+yIwT󴘇i";%RM [f ʞzWgNV<׏p&9'_ 98wo6 xԡm)D N4LbN"BR~Ug.lĝeba6KH,~j0^9(!O':F:bc}B]R>86 Ys0͍ٚ M\HiJ6<4}UTPfxh+/2ué*r5F0FJ0MA$ Rϡ"<[ ƿXT+ݹd@%~Ţ@&AS!DPɈ1ͱ\$2P[CtLE+|,޲N9Py qsH6!6TYĢ &=ٜ$YJ`ljbKsR#5F.^L,^RIz4b\8<@4_ `O=e"Aܗ-D @@},Uwb5>p?wafp,Ǫ.5cTcнJ]j%dkDmr\3zIS2m8(jdN_Cz>Q/jE7y ry)/L-FK."CF߈˿衝?veo-l)?e<5MԪ|&ظC~ &5ɎB4"/S,1O\O-ƛ nuZ/ՋFh@XQ80x2P8ɲep- JVUJTkm`%*cϭM 1ڔ;Jlit+:*sa_Q{_8 XJF&:O u{>aA 2kcOkF.jJm`N1MUVJ/@IQh 4,m &PFT1޽3qI :Wt]A}#BGկDS};_S"űXd*\xˆd0Tj-5N@*L?H#L6&aTT*Z"wrc8Unņ"Wu-R$(6DIkL0EgUaoxN3T:#noʻ]LJ-D2#zB [p Xdrs}҉7?[Di AD1^ .W TvR7pۅJY$Uu#?t(KdJвF*Zi5us^ R' i^*(=0gW! a .t¨GedH[9쳗>=Ъ+1!DȹS&LӲY׃ yD4K;:)vo8%Ov LEj`EʬHgzz#.]45d:q8W 5h˻jU^?ɕf*O[j!o)#7R Q Nr_*?("b^޶Ndq<ؠPMkw\2 A Ydl3stKA3V̓-iےN Dg]p"&'MoUn7бN8t4P-<:j~zB.q&K]8~lθ#й)Fʡl d"МtQ,ZO$% PVg0Ɏ`u<& 'fl (a2;:%=ej2!{uA*hnTx:_d:;t T騦ɹ9[mpTVKo;Tl.Do-N{Mtح`Z}}&|MK_sQo^$Ck* -4XiHo -o<*WE{9wKf߯Xmh\`vܜW!xUĢZC ozUqN0G2=$LMxrW''YCt7dHeT9F ʉj]D!uTs-^>z3%Y-Iɟ7/딼bڳ`]^U4C9-C zS"7$=åTQ1B%r#2 7KV=y&k_!V'h{XXn(b俑J_gė4ٗ?;"\w|G@mϗOfMt Bt=EB=+uT@0bn3$?׮=#rZ?Az(S]ؐP(2"xbzI<)W.d|ςIeDa|/LF4?e*),ֲ@ҟREuܸKWkT,  IշP>CQEtgo3^SE(;@G!8 ۹{(&q 4ӴyIh$Ny5+__pXh&XZb{MLbk Z{14XeJ#M/T]L&WȄR5eϱQ\,{cque2"6+|0 Z}y$?iݩQ=!d-D,?҂#^gd<)a ڰ6\l H6+[kb}ق3jY4 '*#7sj$ `-SO)Cw MX)Չ4Cڠ&iH_m2YPf۩|*bR1P0=hXMR?sq@R {kRq~eK hHh1M'fO0z/usLAl7|`\Xa󂠕H6 ! T!@kN\v\,iz<`Df n,l ,PiB)q7z?D6}b1` vљNۿnݔ{8e uE)%Cz"6+J[Et ]dTWQW%a tAy$~1UulYnx\cЉO{ݨS_^Sru6gppQ(ߑ MJ`rmg̋S< ƕC-_ ^-\EtN%,\;/!H6h%HR#'֥W}|7˦VlgjV2P z_9fNswu+f*S0:>)ٟO#Q Q}':l  "7"&K[j e-GI@1^`ʂB.ȩU:Pvi91ݺ)#hLanPho*bڈ9x%oX6/r{{dZ OGFXTߟgr%iϹb)loO*>Tݲɍ! R)^Ti =<O/sׯUD-,#禕0ouҕpψ6=e #VdPVCdexƲg?.few3AB##*q_&dvD)b/pN\Yg-I]i)\GC-]q]) HvT͡+s% RM}"; (q~x\7Œ5i0%r޵uqYaNj8%p?pgfS p`Ak)(aR6<.  :%RgL"nź[!jf2k#+cJ=Bc*c3F0 eI0kvG_Eڝ xz@k3EXjdVE!kuiYNXH! 7.,Dr#yZ@Kv= 4c&:x11XQ5W ͶnQjM$iS~ӛ»AMT&҆gF3e"vv؆e"1E2(LIA4?,E|-\*_~s JEQ]Qph7CH-gI]N(@{}\j(/p!AqB$l`J$t!k$ݗ+ܙ@ؙ]H&" Ɇ̒@1h|@-2<Ep2Toiq )<`uҊ=#ȢaBbINU{S= ^ڲI⮦%Bf!e7ՐսbP ! sؓ =yߙ4(," Xy c,cm  / V-5>-Wi" rӴgb3vgL\gU>< Q<, tt/( 6 ҕ*l/YxW0J&|I/.2z;qB՜18y)kuIm, ~)FR"zPju2[r_Mym*bLMM2<&l]r "Ux$0FrsȐԬ!40*6sZݝqͨE_D4b qdsܺ|t2]l9Y⿬x*!8Xui RߒEL-|G(E{9 IId<6(dz a"5:+Fe&❶`*C(F#6dKGfPf72&cÒ]>1$\ YKY2,ErB|rʡ&X2vZ~0QMGڐ#DJHʼ\J*v\KH r!.~SP qD L,K)lLvGJzX~ U1Mc{E .a"(,)a^0d7G톷 ؑjZ(}rh=*q#7 K_U]&ebr0 䡊^E\NPt1/A( +ߢ!{m4hX#LtHPBOqݸ)hXxe% DHEV ظ 'u`@*be()-}do Ż8$JZOHPU$gX"Qm}TSslӃx"lRHDdWa;/@N"Ƴ *Kc;o1z c|D7RR֎ ,=! Ǹ*g%"rۊѴWإBG O $r3S7น]@xyV&߬pK$ # m M1W8#rEхG~A<B5@(/ "!mr F7٫a 8|\ DG%_-gɉ# xPWb*Ͳ 5otPy8|6'X L G%k{H_@J"2 JD ]L! 0$ATg<)nD+ 5XĬ^kTA oSWA@vQ)Qk|]|.4 UDodzaM<)/a1' BW<x) N .ۼl1eHփ.Qd I J5w2~cЂshHH]cAؔԿXN>hpU[0BrgJ^ ފwZDv2dդlS(2ԩ@ 23!/R_xVHR1 1}v KG0~?CzxO>$x`q+5#~'_lllxo`.>c m] 9Z1Ӗ;h~ r3e~D*4J.?DYJVp `F#PLCmQ`-:YSdOh.=6u6̎Jm:()PHUh%oD3ٚޅTB'`^hHZcpukR2_?D% [[*2`"C!9w5 쯂=QIԌf$j`DAyd@s֐\.jyF1 : ўChFT#"A+#[;9|5 HD̈U̲ZmrI8f9)gʿ#0Y9'JQ| Vbtoze.yɇD#:h\T\BhvN H}fYf€a).+>S‘DB5{A4A;DZe=Mx%oZJɴ2#y HJ̞şhwhQ jCg"ZP}G: RD4 ’#]Ǵ gr_ɢQKU{oDAzua(C) Beop')ig{F,*VDoϽofE~@B>~n+?xl*Lmlhh:\#B!H (Vܴ/D$*1! Y>q ]gcDE,JHRTԤ'azϿm wsiAJV$ ]8%մ|}BCfAwMX D-]B%<뙌H+ V:%-3|tG-ħr)7F%a px7ش 8h'M b7 {M MrG̲f L&"̬*r)D:vʃ 6EdLAu'-"IźEsU5pGb_pԳ9ewiqDX D#p2/-דjZAzJ laWԫR|Ջ);Ȏ" T1  &-؟fmE*Z%Ep.al8}~DݩݻZIRuk&f bVBY;Yі`F?vJ!<ɏLw ۑT G/)A mĻoʐū["uH)8RW BB("4\ D P;CfG&+ʥTUkw"桡2+2Ȧ9[ @3YU-_玨D[czo[LͤU}y8IU)*/ljI 3o~ם줂O]H+j&er#b H:7~ $2HRXKڮe_}5Uf;'W6w$ gO$Yg7 ȴ@dw##4&"e%DeQ/9 {( DsjkB +@ۮkKZ nXږ[WYC?Ɉ66XC+7:RWu57fN_gI8H4(9opT+*j[1FNִApܱוs(NIV"Eh1W= o/eG: --A*#kg1`6fx51)?l1)/z {P6P_;d՗W%4rER$A/E.82BDRSUߒfV\켨(\pߪBU_B0?ކ%\4τw^)5b8-BwFh4eW%#.+!jnN,+>Vҝ12S!2^+[+6;G3d"%CD3dc.oX󺈝jMAֹ]c+f(=DuAJQ=SEPf%^\Y*Nfs5uÕf/JMR%?I?]6~A*%53}_.G7lbPyZi`138م8HВ~080mWt@Jd \ J-/Q5NWDJ-H xn'6 D a2p2 m䔱Yƒt0]-$\#/''718%ME #LlXav3i}EZr;i C  ~js7HZ&QJM\8cc]rG߰cJXQIܴh9AڦOmʇfUta'iDvM qQ4ѳ;el#Oh%t0PiPwOLc? v%_R2$ xx *XFc-8 `BusikM~1X p@3жw#d t̲_)`! Z;*("/e,c~fYįf0H SyZTRDe! #H4'ibD͡fjd4slbWe? BhmVzrKv7R/Eo"e~;mH/;THz3/ 6nNҢD:2j@|%"jm'Y1@|iNT͸#,Ig3ZO_кuQJt*X1ԗKeѥcyY$WSdhƃ::EbїL"gݣKd}nU.#cY,qpI(ݟ!͊cǵ!*lۧUTlUb*ɱX:;h!}!ޢ~nE?Y%jfHmR<|eH +Ђ"ްI.H+]V! eYK)9,*+ݏ@.nv}'=O OjKkiWC%CeF6?[wM{?m_:l~a,RT*+q#Š3L+h\zfEv$x^ q=AV`ǂ1wp}SҮ,F8^˙OHwkL"hmT[wF [2Ő:Jek`pڵFܟ睚"X *7%Sk2XBoHG E A}j\˙)bUbLax(w4]+;` `4P1|6N-/ 2pu3'|PՁb+7Jz3kn_C׶<i|$=A=uj:;폀~MpO/ Q~E)'0kފ^D:>&9Kqd=aGd?*X;΁z?J4`F#0tiB:<}.{>]EKL~[WK1T@3{d"kM7'B0O鴶~佅>%dAW+)Wbk f=QEykk5zI'I[z!i8 B^@&(keS|$)؅;u6}^eX/EA0FYg]}f- ئ 4xA!1PkT!srx`Nt%P1sk0i=::,ˮ e̿KwJPxpL#TsqNQhsBYUG :V/Y.Z'o)]k757L&(Iz=yLFz/AEO9X~ &=ӈXͬU'@Ќe"I"Id5`Eb!Ź!`s,Ġ/ p||;猑-&!CVR2bZ` ;,XKfgJ6i7>$N! L3 , ٹYFIŽtI"uĈ\`r0OaPLRmq }0QMwB- No99`pt6 cQbǎJtB'd=鎍ePq"VlvyT }C09!RʣbR%?HNApBp!UY7K!%s%UXJC_[g>I 稆`9i{yq* 0>ͥP;" f+"eAy:?v)qIK`Mymb{/*lBdY"T|(W 's # m' z8QbEW$_w$.Z Fۓ!o/1FM^-cs"@LgQPp@RO1`-"Y =C? ب[u^VhJsHr_S}~,w l"h4<ZhS΃Rʲy?4& 3ዉHޖk:B)M5{CD6h,cdr {, PomB;L~ V$IźX*وxŖqLkB D臄(EJSRM034 ط]Y˔TtLLBnWiHM @ 6D3V%u[8ի dr#@ I5J+CȯܕqR *@r^",7zQ340 g{!Bo KIFshQ ew1P|5U C={vUFC!8"3 0%FA3lV껴/ dvtO v@}]adBFۉZB3qTĝə%&ȧ('Vzlj }c!!}cKf>ܑz#:bv29$,Ei7%麞u_He-[Q% n$dIąjזGriG, -eѤ۷2|J'u#Xn=hh(1_ˉCv+?jB1zLħRQj :(jQKz/@/Ya2ДG(.ɀ|Q / f}G(6 a_DJi)"Hr9&.c"b@A.AW+M @+~h:p-HPF4SˮEM#|t )XzL*UJ}r L&,NϋAP)3ATX5[y0&Fe[; 5ZC(=~-U2-/ Cy 5ID%1!{XsȲS~m#JNJ=U. E`#Q 964 eBVy ¬w2)8 O->І`n C D㖹o)* rfcF=c擃4߈²`<el-`qp;IA%v^W_f>*D |i/dŤ!z5:Ec+a JGx"$&OMC* >cq-P%z]BdM +tX"AM28xp ̭(]k9p/5RpnńZI=ZMcH̒`JBp z) NFYiؔ0~Vel`mJOH.,TN[_Zbꄎs;A7`UN<6 YZ\"Cd{ ':* ]``9 z>I%^Zz5>Ayb)HGsCka(flXnGY'flMm ʛK7rv]'Q jR;B[>6mE:UӮep2Պ3Tɡd?NCheSf eI*´BצmXJBA<@<'09j&~ E i81" [+9B_SPjM"6. IN}~f|B{/@hVRcO+Ȩ-I"T"ՇjS(IC_ֹl@,VM4nX|CFɄ"4sc(ge'DH*D. j}'*B'? A]117-&#XyiRAھyaPL "} \V{fO,%b H!guA{ p10Q"(LnCFWZO䊊p7OPGXZEoV~h.KTG`c AUИVBT (U aDP-SڞVS:T>Y3!ʂY ȫ9iEtc)2ؔ\9;9Bk \owBXR g 1hT xP_i+I!<EvfUXiu˕ym,C6rRy'~)dv1K M?<}4go4r5Z:3^7#KKYYi31)?29!W+f܉qq"gR]dxt7utXTlAK<]m#Q$ H .Ob M^&8/&`1OB|Q C͐fQ%g N`nLBa[=3#:aJ([c"|E֬2kߺZ`e)pX2."Z ],Ȭ7=8 ~LbqJz[5N<'jp-U9WH-qt08<|e!*)OtP5 [4Y" %ۀ촴YY+l.4p8g( iM_jߥY\3in[5wAAr' bWҤ&3B"2c1lG2:fFseֻn&UwKDISu,D(|5>4 ^0 "t|sSFv{) pAc)'hTE8~21ez+"e@eUÃXQX9 $Ȭ1e%Ta°[/WVr+Rk. idfbJn-Sʒ"4)w*&&aub8g?c4>Qq)d9'pSSYYWT7]xG"N~)Rp+&njN GIM đͣ*羭}ֺ jnvq*c,ͷB%ѷOlPWLd>>']MmRʩk0ARK:JJL: : WfD6\S 6jHf"?YCdDٛa uH_p!S.v~$LY5[j!9%O]MʧW-R_lkeUDg EhN! :QZfDZ!q`w9yNʖyYxyAd1=WT="_x"S~.V0=-q>҉dJ>+K) '"Ϣ@]85լL ;B:*,; 旪zdo~sG(jtuR~LRtmKhZ;lך4q9jxE$4ZHq3[H1oG`&UXO7Lw+WL،H4f0؟/!goȰ +yЂ(5*'rßN_k8@f]]mLJ-1яƑkSH9)lnz4ETۑ9Q9f 3S_㸕, 4;L䳜쪱`^T/AbCHDp3[ G<6| `-asg&9ЦJsfaY*S0ݙ3zJ4Xk*c"jM+2Ӱ@Z.%cڮO.Ka'xL|RH]jOsb9"TlP\eɈ0;|eît,w[B/=>6W':MERTߚQ]Q-0GzΌ*7cO=q0l1̽7c _ٙ(VKRD#ŞFsڏ^/fqQB#F%iy[0!X س`|cqg)EW1hdH66F|>ejԞI : 0E75sd]} !,zYkH\!1˥)=Wu)*d%Jo7PVMUg[i@ LVAڷBrF́"F)?݌Z!+i/oHN3:3~^j2h*%>?9\/fBcҘKu9AFAKd4/73ހ_溘i֊ۦ)kiZg ~]bC2S49p \_bkѪz}+9mbl w)tl'!텐 4vu]-dbR˷OɗMD$zs\Ļ2ϛMT7B xJK8#CSd[emly~4 s nd'gyAiuV{2*K-I~UD.D]yȕr@(/9V;bFd USe|x8Cag:5qܞ VL TSH2 9Rӓ F:.ŗQ ̴97^&8B!:n2慝vD⛘k a`.>e\V&ʂani(Qow@$&C?6 Fmw 4N\۴j[OQn4XN7E HD~WU* ^H=H?8PFOL8߇ խ^RyU{1̭ KźX.Î9METE%u5x^$tCYM؄,R\2|. _}hyw֚4_& #@Y+k!Z*s,%دrEQ džry eMXLrf,N9 ? q w6&[ۙ 25܉8qt038 NծVALD1%b@S[>4Rb(Kh?x䷓$ש#Rx`X <B)\Ftc.A,A@s p,ЙFkՆ~JubC-*Hh1&4MBpe[qPk$ s⺯>+9fyh* VMEZF&E@ KpKԤOiU' /d@7c] Uy^;rdWfP|p,e{7]/CgĐy5caIe)-םaNg Z>D[ ⃤D0\wQ1g rW#b}՟ ,e!J-X!wi `iNE C/;*$E ,+"SJFVѱiLQ@XŎ[=PT${B1sɧUs[ >'aN[tQ~wf2ZRMFZ-o=[$/Wݳ&V2Œ{[Tr3}";/dfñ͐^&[i*RTe&v*Xo, 2l H=%O̐14fV=?tSTu=Hvl憦Y85ߡz`7[Z5RZefS+TP|6E^Hz7Z (,)Z`gB:JhUhhDTYVR2?+/EY5UcṛYolFg:c`UAH15‡&1#[*A#6apnpy ֛we.k#20dظg'=КKV$Rl 1q&qP@S\.K*P[J$hrrJf.c|x`~Q/((sjE&1O,F< 4Y k/p xB"%(媣HŹnO^Ҩ( {Ƙ՗0%Int-2@pZ3O=8^e>b꟣Z}TĄmi<&IS^~3Nn# oIv3`t#:!t ES% .J_&@\ X!u}N#?Gajr)X{bdFΚ0i>‰Pұzܩ8$JzR7?k` 5c\?9Pbgw&NаSxrpR (- &{b6n h=ncdk&]X6` Ve)H(ܙQcpE+ZE+lbc&w|}n4BHBDvp٢$4'wO] WH Bu-p%8nb3P 'JQW4?q;! f >۫)x-/شrMoEPݍv I{ 6m8mCPezcz(JN.kSePP$ <% Z5ѓb72x}o7&+ X{wvJECl:gy,8] GtU+K:K%$(> JQB:P ](\u зl&*s4hӰ ?nՑczNƌ<"O`A Zy$z[$Tc ϐ|qBtbmx_?ꀍ7Q'9a5,ckCTH#0]k:xGCpe~ř@`X T`J$aҨLLz8b1s\ԝ0J Zף! o_EScmfh8h&JQ?Gy.ONi\xH]J"M L/, 59DR BmYc# ]أ`C'ibU_|ŀ' GZm9I[ KZ1L ZARB3q`wF<\wT)|ƼvA1$F? ׅʙ؋)' dFlykAB)VaeP&t]fӕMX١9%`7*eA b;Y)&&qz$4J7.0iKm^'+a#cYp`(:#9fᬈzϔDZo( .{ bT ;wU1 jr[D \8*-%,[XdL:N@~9QEURtC -#ޫW!4+(cfVJBvD =+BL!mi1 q5'KP2{!-^B1#gxEzm~ (^aw=^"|ҲGX#82eJ|5R^AԎTSa=#P{cSx'UU.i7|HIgess~Xڴm΢ ҍ5 |NGic(Y'Xߵj W&g$Z3 =0Y8kE̫@\3;L$Lx7omZaQ3{鐘o{vt[K=t/kk/A;( mXSZc6|Պ477 ;arek"-N{t:A/sǙwVR0G_IALQ1 xOkRItgIi9kwb`t{lr>%IQo4qH,i0 ۃX )H+٥Td_ІRs+o#8]ztN~';w >& 1 ma* z=Z_&JITj`E'샱(lHV0(^$h͟YTYk/{qa{6i:$\+ IMURkҧ? X҄fiJ-8(tŢv3|*͉޸AUcԴFq {X_̈`ι#}ӟ(*z6Y[ND4|clӭ\lkwO:^x%Auin+1HENN: U,s;G _`QUx?"940[m0o"tpTfYڶ}Y_RDy ȉY:z漋>0œ&1aOMK& pG"A,MVw|"p#c ĒWgkTgw%@<~ڙ_F;1Je*pk.|_1c 6 %cyizrQ5}Lk>KZ*f6&_uL<ʴwt=TLJ=>u*[o$Z'3)iWR`k 欻d])QsZg8]1=ҵ6Sx/ Yf] KZy 5$(Y)`DO:]ZITY,(6Fy]JxzBFf4 !ɸVwj^@43Á5{1PE;MNv͖-N(tFA~DQQwN]/׸R%Gze:SB EWCRmjLXVDwv;U]a >q-<-Tih/×EÉEҘ{06j\yA[+KUHߠ9GU6a6L\/szq놓Ô*1មrwΔô*|$iM% n.QAӇHb~2'f<=eZrB宷('-6g x < &(FsbU_UUP4H!Iu$= B`BŨ2%j[։3ʓ%fѵ-{Qq%tgvV?uv .:d;kx XA*&l~GF,8.ɢ 28..wRU;RRs]Bk$a=o/0(ivF\̱&P`8\s0(am|ʄ#(*C2A< hRlLE^>?WM MmnC<9zV?'8ZٔI\zSʍ<>\ܜPb׽yNE*1)!Qif\ͱx8K rTluF\a BYՉK:ia0W"ZZB> i#ƃrsJaPO<" hԘO ÒOH$vR ri|kᰘMi! /P5A_ )3 !z, >ZK}uG%I#$/ߢ U!' Ѯyv!BưL TzuCeɑl\9r $$AP>Ԗ "p &Sd9)qz}X(Cx;ٞIddeш蒅ó T؀&Qha3!#A!AX9VeNy6`0XB2q0K ⍫n-"՜ Ln uLR:xi$b\oT8-I(i4l  _'U9nw *W-X&j dY(2 \bB ʜfAZ)+ Jcʠ#"H@ N@؂!}ˏ4 $}}OQZB;XDJqE{ލMcde58~Dc | DP:_eyK`n^b~%>ϟ~J ~`cpvWbrD20?[^sv6Rr8RZD1/G3v{9"%Ai3VOIht).AΦ+$@;5" ;o༧>4U‚1UΊYJƠ ߨ)jh:? 1gvPbR?Ŭm4ueBB]K| {:?~hA#>`=[DFM כHbkF(GxChUts>()$II=̚5f4T qqz9G-܊|#͛^, 6웭qv Ȑzy"R6RgsZp`O.8\=UjG*7r-٪Iו?96Nb}6][1@ e&I:6(+o}#HH Hef)_~ sl9 -9\S2~f#@^lRcceLCR`lYG)M`LEwϷ*ƎYt8PEp;?25 ƫe21^S;G'Ybeo#sb!K+ٓ32F-I \6(|oAca,&{fC n/D/"͈trkxI a=x<#'B)wS]f໶#jbRPlS"_$i9L kXV K!J斶R]Re"Ifxog ,f !5΢٢HShu'^74zm".U \_zp`Q7&5BgA2S;ƍzMAԌ|p3jU/6a`wL1t*S'ʑyibt7R$9G0 &|~|XHp̤֝ϖHPz.\R($'r!OJ[~Vv2S; 4=z諦I`CWa?0usQ^,٢T+dy'>VhekYcUEnpM+B "~ܹؕHvxIK^P4ew$4&"*Sp倚^ͩR~ )ՄEUMf{)em{-'q# *ddjÕhXZ$D>H >f"GPS?i쫺OIz6:vg{~E& iCG؂IF$oaV4u^s|ّw35t +=z:管| !R*2{^G";or\' =S=v/ʵ"\V͟Z'|"8׺M}RJ^C5\h^2~*7ڳHR#Ds8O 5(Hd}0F\* lGU'79;oswhvڴ"t5qOPw: x:IL_]z9 4 of$ZeR*dD3^ (|ǁ7rX]Sl>;@@IY.a գldJoQ1)p:&>Mطe{*ܗ+%U ߪ"xe̕swl dcY\cb#0 C%Xf38B<ۮ+E+1z31ILF"w0Vгbo&4H؎^J79&jc& _8P x*tNjrp%+t:Ȳɹ(Gp˙YmtzM[&_dn 2uX&_\ "tgDZPuDihIm2/< kjADE-TĨC^)% Nx *eVΨd*(^޾V/b7^,>`nJv^֨XC6ޭѥqGv.+/H$=Ayc/Bjw?ߠ<=vw% ɖӪ<}!MDhA8PrM-] &TA#H:W~qˋ*~Bg/]%&0Jzs%l*Vdzf}7i$TsR$mkt6Lh\3h~ , 5*o=Τ?@635:ς B0T϶99bݻ)vnqQUl<_}d[]Ǣf˧}Gm/Ķ="Vnݬ^ϊ4 ƇN٥XT^1دviQZȽ꾦bԐ~פ݊TCӴ@A/C5O wɨ沍46SPHSi/9MGVl#oG^%{FNr D@ T6*oOHk "A94xzrAIQBfTqAWf^{]&^ F< Z4|}wDW ӴGRK4 WE*hޟT`MBGƄYjlc[xmz55fH*xB. Y'Kr mCz{ROjS8aHa@&έ߁qLuGDnZa VtX* Cve%h3lV]{>UD3,6K21PSG|/n˒=EK *ۨZ˹юެb&<QmЛљԖf<^M,`<]JvxeΥΜXT)=Rel\$%Fή([4%=!?&6PE__?F)ah\~DG~or1K^āv/d48,r9B960?x$^!/u3~{ŧxe˾2i絏TDy'I_*=\%@:\ 9*?!Ykl(=(DV)[ PUs4|7'E2.Lg* xC NV)iw|c_MkgI9ǚ6讇F-wFt!"asPͿ GB!Ede8cvlB.\<ęE-!5Ů֣?:DHon-vG>b( )5AQƚ%>FwSȬ !<J0UHvE9,>w.0Acp$3švjsg~THl\:(Iwx.hkLG?BH%(;,iGY)OӴ71a1 l.z㡃(pj&5d."KrVW[zש$u !d))=nR &ٌp|XD.fnZRHR Ǣ*6X% }[< Ws(rG53Ϋ6QC,2 \l|))8I#if $b,WJT>?/=л+S-_@8ÍlR:Ȅ슖ڽTC>{1@hU61> 4BhX|,s.ǞO:KS">fn_CR#=(?EKS6߅J@L.+G(M1`\H7&mNLmX[h sQ4,~\k9ݾ!/T+3"nymwBɵRzn8iխJL'/f1) [~W!1tK-Psvdy{;S涭f贈f*= Yg޻Zs(k[stN1A!-6R $dsVJ܈s>XO3A)1)(ϙ"~&^A0ܫγa7X'gԑnIsU][8W<[<^"Ju,NFueovʆףlP3Nd^+)dd\PBmBPo(BԺPc O$݀7Ł NqDADgiRz;NL[]LY2[\bN }?c5S9~$ЯU'#R HjD3d11l:9m}2>댧%G'~ܤȅ&k_U[P|(&'ܧ="~ z3_*g(>|[HxlUj2y`q՟n>v*y4"ȺzjiI/Tgq6}Yy#x*֤$\}edQv`5XwMH=ozx]TQLZώh,7B$%L._ncA8V,?_p \`̄ЭiJv:) N"Kn,`tl^] .Hdr_WU[?XqH)PP 6 `Е|,&F]oY 4|9 ymIJpm)АQV2qYLw{5zkwTV+Eopg0 r{H/=N*YFjpQ51WcytB!ɧt*(f|͉tOKe nch B!u "r@DRN1N-dc)U4,]K9VfwQ. E 9&q@%*Hh)4R$GXie7;*05lǒn"Wpew $ !83/-T3FVb޽c<w P=673"yapVjC3 (G=Oub"Xg hdh-L8Bv*`0 Ӱ[ N+3`N_$ NQ%,jv[Rgb:@rX.n}k;3T@QiѡjPH UB0z%(- 甚9v^ (s6T$ 还DϱO zt(5,Ta@ yIS^5%vKiL0J[%Yy,3⻑LG?x E}A<`eϢrZlD΅`@3I_XWA=9 A7/ND'\s  Jo&̎KDGB:fGvF'ЪwfL>qs-L СLzm"1a$1']} jn`Bfv6;TmC{d"%ŜܿrN<q<˚S95Xy$ W'SvߏPWs2wlU-%?@cޅB$Ȥ[MKk^3=cмOzAˣɟ tU7e ZKKݛO4v*PFG ! ҄i CD!30KU ?ѩ$CH*H (MGI bf JD'WU6p NdD846""=&jE=~1A0:P&bg hnG Nmv#n6:4\TTE^mNqU) ^N7߃fwk8?`) b L%MAxૅ`D"_ٱ3#@ O9[ZI#N=`!-1v lM7&smYp mCS82ME˛dJބ @4aW=&sD$+:hE +2UB{֌E}q`ӨKO[!t(R%^l(V̔ '$Ri)1C mKkv!_r-K%mVAl15b3w_V$UEOT@oD:Rֱ5вVYN?lGW/4"Gg5ztrmzWL-A('e=*4퐭{ .6SO&Y_FtPݜɬ0%*3o !щ(D(/UY*(RƢ{ XwKI-u#U hi6I* [ &T5 9H00Itk$aHlI%T)0x7}W/:OBЅ']=c7pZKaLEʟfTe2I ˼צ@'(גU$$h".Y Lޙlqqy-e)+#8n0l@tj'JG[!G27iꐈ{[S$h EGHu$%=-R怒#KHlD;@V(DfMg2' 2Z_|m⌏4]_tt)M͂@vTfqb8( #8)t*2HŒ gBkHM`bA$B9wJh񪭘G/f ЉB) V&ťN&GjR3 K7"f T/! Uik6`S|fi 5(b\R.Ir9'Av"fjFZfDI)l8ly $i >zۛѢɯIuHlC">*(Bc@Z.,l!l{ *Iw:\I*1Zz٫reI`XyOJ&2x4|&0AeWr>3ܳb UA0ZK' tFyEuǤOA9b"WR[BdRʕL؇No̞+ G!oac@DAJx}y L+)v聯~+]D@yPy tN!"u'BV]wI E )]I? +&ƀ\Y4&pQX7 *8N@+6OG&lk@Pr4Hx-CuA AӂqGAe1gA 2e 6iiC3\GhS;נ! $zu "qP Uj v*xɎMξhlR(y)1(yӆ:1,WXn9 #"I, Ϧ v栨 S.$-CT%,.N58 S_$+QtA q@B=#trD+6&/{oG(E (pۧǮ> R)W= `uY8nN%#!Ubh&~%BPe $i'dH/AtqQwt A JJM0,d㟶m-=bİ6a$иَIڪG}< ^m|9-Z) MzLsڟb;?O "(tj!dnk ؗ2Po\~Ӧ-G/-<7A^RԼuk&5 23x5(BCD4VAtHsL5L[ yD,-<89jp d'jׄԕ5 bWj8˵5worZJJq<# J,qñ\AR Y(5!H I9E>$f"&9xbzGZ̬TD:);|8/U*CO[*HT4e4&'Ɉ H odL+vpOF! |#Ҽz `p 1-9[)\2-[@i#!dZrS6):J=<Zh΢8HEG-YQwuHaC_L[/]zAո]GBO%ٟz`[.\*d¢'{l~ : 7 r&V.y(}QМOYC=G7mf(i*J~^;!|F.L$!֔B6AmVc3 H:t5v1ve]NWЧ'?Veq9_la+oaz,yJ)?*`thi4V]`4-S=VX|8)_KXe)~#53$kHɼ2QPe7}k+QۄXa}N 0:*3Iޓ4谪Vv)=):qBIѴGBԃmV>o%)~z=Lx Hʖ G9ˎ\H  /:s?9w$5=RQigKyI*QR1k93b_ K%% >=+~%( nǍV4)/BjM_52/H~V ֕NGv;&^͸irpUMN/H!B-x'NxO\lX'pMrH|.{2a|]ȫi|v3ئjpO}h0ʁR 3c?R66!g1.Q.tzl&p+8H,v{ꑛ=E]%&LH!Ek";L]WHEۼ{jlVQ'¸,-_4DTE 3stoj0a cI퉚sډF^1bfq-@Ä0 ()U^Q~ԑ GkƼS:bE= UM5񃟹0BJ ^RX xog=*k 6qRS1=(%ABCReڅ7wzE꿓LT~/Fj:$NQ ~Akdw6(;2OZ]2=vv)l7}%kdEsgKxwr ;JE,R0nVZîۏF87K|y+Nep:$a=pqU`،RFU.^5TJe;NOQW6q$w]EB2asv٢&|A ]96)0H(@\Sk,< Xt/1/(:+\d,Pwې/ FuΏuev"!3C&OBmfôRX"0SOd~\ވSU 5#|*pW2ti"C; C(j4C2@!vX5JbF:dt&fp:e dM3cȏdJ3x ,ͷ^m^lfajtfܢXM(O5û[ݎZ10aNR}:X"C]j;Ňa JŞm%eF6'dKy87vpBoFNRԕ~ۮ26-wT]Sy$?ۧIMԬM:/8#<\5 ]J^)'%E초 ECr ax"Y. '#~]oW^0 Å$"!/Ә$~՛Pˀb"K\ 9EˮwJ%PًaµK'=UE'Xmф"O+ ,ʥ`#=L~ Y1sQ蘈Mvm}$rЬ-xhPš䓐 dKamv*Wc6fi7ym\*:#kQJLeƠR0~mBzl5X,+~Jn$*l"ˇPG ; hUNnLn(|# (XWS? n$ VDWONDNTauo jkO<6&!:>j~igY:98!-X )`$LOT\E]+X]*d+J^|r7XG[qFW(钠sZ#ى^=&GED;Tc@$ E"CCv6:5,:6彆EWCr+ 9U&'_@|ҋ"-[ ?I*72l jBm6 `,rc,<4( (H@yח䠒Ã9qRWpbf+y4)r?/s&L·n&ǁ0YpdI\*,֍$7ѧ1wE5މ}1T)w P:m!!Ir a@ʋJZiȕp$ {ONr#1Y,Ͻ'6R<ԗ  =hgwNim*mzZD䒕M]3j]|Yى4 {Z5uh$@g_n. C5/+}[$ĽiDt9>9_Cj5":T(D$M9A?3 ?IvvKqt5\xb')wNNA3rѪ3uPΕ+͉DŽX6\&/m Wo{&u=|m hcVqL'%P4/8vRƜ!T̴/ru7Ѳ9uM S'ÇrAh4 3洐ZE,MbJ"}#U7k,3VҲ694`m( X+W`9?EFMZ4|hXv2dNjti}V a.+ŀ`-jtI,AȡVBjys6枓= m(W/g˵mN40'bqȘ2YԬVn6.dM;ʢp5v'6`85]v)R}(DHm㩩R2nODRvŅĨSeST;[Ng%.cؖm밪FG)}3\趾]용IYa\,ۙ_2Wj!;XROmotc,p^3 >DBzIH=K{\*#|e_LP 9r&Z8K74%q %kDv|ZUMbf\kbŸ.}!cb_q,!@B:ͅZTvwEk' *ˏt"JY8\\&78^=MBK]ʡ냶*$gPa)2%,B4"4a2.uNGeΊNrq7\,EQ *<f@M%6I1ڎe16VnCK@DL";g4(mn-V:1[?-l11}k%_A_i1`%v.#l'24F4]xk%{o8M"0=+R,s!еW BjDS7T_FU8a(<D2Eʼn~x 2R%lf .#V R.8P5,1=f/dč˵Gs0R|.u&h̓cF[.g0cr %"%LTGV/|߳\_PD j}/ZS&x^bЄeY:9Bye:]*9Qire-I r<<9f7f\;+;v/`r)nB%Nb?OL (b_FXYh!ы S(:@Q"+,D\9<~wpAec(P5^>Hdscy䔥,Z1D E!uL } a>!f|GrBM' Ommq W:̩!Zӄhx,s hk $Ƭ$g!'NL:3Rcd=pЪp$jͷ1(dVXJkYP-I%yA].\&mIL"ICȡPeH6;(|+Ȼ=MG&lkeU2˫ޛ]r+ZSNS= I"+N90D7R(ԸQ_QɆъ'w<oMQ-& R(WGH–$4˄?XUs!(J!<)FTL)iTv AlF1*LB5ɸDTbj҂8\e]D0ÁU̾nSĞuE[Ww|]&-f< " "(j^$%~b\6[. tI%%PJ4嬌FSB$`Cbz~GBW1t-J # SUyB0K;#n"LhOG<<.٥r?XQ?-*L"XDQ S4Ugݐ]iBku8RDw&S/I*rrkEeI3\(0&#bˢ2ŔXcₐ83h<{Gfepwt8# [)I`#QA&PEZH<ݰC~ֶ.c:Wz@(#9?"f.lVi=:4Qv$,7O8X! SDA!ֶ5 -5e^(_?4BpDPu+T9"B)s5v']JM ,ȍSZW𨡪絩-D$yEN埻Á)9pSqɨJ!#A߭N0NZ~n\8A:՘!h90)KJat>|}@!4dbPgr|uM(}4#X "K9 dLarj3#Tەpr.TE?&bZ S**ND v3F?'Esֿ* \(L @NġE p9"X;#U[˨^SUwχ7BtSϏ )Qa1!p)܆ԸNJGs/G4|«N!K2ZfN\h-#[=6,'vm#͑2 Wvۼ%*·P5 .pXbi ʾ^( 'ZA5pR$7dRl6č Ф _DL0(G!֠WD t@Gl¸eDiV»Pg5^ :5.$dpNO)!:@!\fTTluQX08uI&%R~Ubk%_E^/R}3ȪR"R! r[ax.̉^+?N <@ b$D+Ԋ]`SW1R#bWbtGF1* p)@#> wYn3.~ƀDVKcՈY`j0 FhX!J)܍P)cnKnfຘډؔK%cAB S "a!`JC=K?te4BsCe.ĦM]-hzIr &4/FU"0՜h-(Rd1jnB_5 w١%.\feD$=ÀتQX4#Sztf&.$RWбH F%Ȅo*t=/ho T+i[ud9dJ'>|8y%QQoo)9-|3#7` \~3g (2ȏqizvvVUY#ݾAE&+v?-s L$^'S7-ci>T\BWq@SCI1|Nyj"62\S? 0JU nH Vh$c\R@g# E " K+6CldQQ [BǼvetyFzA1?+YIAϔ~Kŧg&XdcLrcN-̸qQ*,W/''(&4Pґe'hSF[+3LlJe$ E%"%ɿCa&  8ۋړ174h3Bhtm{$DEoJy H 20۰[ t 5'(6Bm5#"逢_?i | gMGg?En1|nևǞH 2 IJj3m8!"M6 夞'~2}Ց`ics cLH= U.fewUr*O GB1(s¸'5:k`OZxRQQRPL/txk)%$H﹥BJ0 X/QaXuWP6J 5h'ubdcyS±s!*darJ/g%ѽ 0BIxQnR\hv2Up%EbmzdʑsFE낀ZYћ#GSܽGZԡq'$ÁbՊqfDC\\).nwZ~cpfuM>ce?P"-SSVY"]KSB2eN H#'{'LePlK=WEZ΄8dģ$+ `v*"s}vQ)e?(R.@).er+#Ĵm&$G^qD&l]cFV*ՁBBn=DQcc]Y`/I1TYjkS[}]꛵FܒCsd|-Nj`A五:%LvXWW+-j^6)byV"]v۲obe$7]"H$0]|4ؓye|`ܓut]uoY"-?6ycy.T9Y iOTW"i# W^yRw.m~M -ANA?΂eg~g>ƼeǁRKC;;xEqP#ɳ+ː# Kˌª+y;_bfw_>΍ҞceBE_J]a7kC O|2f+} Y`Uȧ܊x[Hh4o  {7W#P*&XJNjQmpFR!=T/bư5xBZGp5Umm!5َᴥ2Ńxȑ&gk'_aўUhf (X$y%yni >jIܝTGr3O-{i4bP3ġIOI_4 G$}xf`LuZ`|gMl^'/?z z0۪;׎wlnJYHxECg1ׄ\\{*b·1CfBWSOڴ Y\DdP6e}O-1 gu"[%jhvEJn|ƶ+x']Y-s*s|_AyQO,EbƝA{1-lJ:ݡD.@ 3ߟDeZ fi Һӊ:\]L ĉP׿ԽEN`vk%dEcY‹ٍ;C\!>Bqt4/R."ӻc{ lgLPc]>Onkdo8Ȇ"GX+ypOh_ko{ E0짱>6K)EL&?FePrEK΅ɮ XPʦsϹ[ }VEjλ&l\^BJ8,'x,[aKJSv7KPC^WRJ]ЫcxD3^>>zUDZՓ4 ,*ײP_U~Z0pCsc5eh']/-jS'!Ň5lQӉ0@pnφ]֓£X=\Ř_-RfۗZ1탉bһ`{OY7U7E 9'ͮ.i?7LB(.ί;P.lduBr\-5ܸf, YVj`BS8睳!Mu%$ǔȊ@K'>&(EZWH|&/CWR9@fH껐I?MRg+M;eB($rd:ʗA?5@]uC6ESa%lbK4C]Bl]˿z"o7DGQ {Z4!oL4[{Eg1WgiU(c&_>G$|?g~m:^]?RkVMڦ é|^< ZInP#6X/MY>T2on+tYZ9w=?h=PI}Hɩ;r̪XIaVئ:/ CɈ*<7tPg"t*j /eZbT: ĞmKpU8$ғB:3G$efj.5ȐO(Ѫ)Dd@ϴ?4#y1aKfI1wsWK)XcH+*@Sf(''Xz@!ȢMy:UȶTVֆ-m 5e'1_=„UcRjP%{P }/;ʿ6c17500<8fRUUACc LsQ656xi=Z2g)߈+ pr&86H.L:bRөw@I["&Y4$~+Wl]g\̬$;Kj&9x b[|jص /s߂tldrl@iW\JC7d;0Qe߷#*2kb}{"ԫ0ODvh;vDkw~@b%k>ِTj̚fUPppKAD-Z9ndԃ؊ڙhaA]e,ڶbm:;e>nOt|TY 9Mg*Q{3*r}&^/i5i]D;6\M2>VQVOkJݒV {N]T?;SH硊(yC^Oc*íM{z̗Qt5(r9I5yteW4ErTv('3?l( `^x$}xd(ͪw\J2C 經:Q䳷 5H]FBPmMGJȄ '[Sv6srʹ>5Z8fhfpL[SgŒE U| b/Q (OI?ΐY*g$}kud+" 9K]e'ΤyEkPD`Pr$Jjvy>*!#6%@~6Y#nOIiJivN/\M@O*=M9GdU=jݞ|J;iU hO]S1 Y[J6!KB0 jj_?~${E$bme^e=$U/-jR̲[9 SYMy9Y.^{x#z{ju5W亜3lV{3!5e]/͈݇`$<o IRiUHBk.#HxóYlVG x2YWɘ]!?z6Eս^Q)-Hk=~vf${k"g׉cQ@]_([de0{1s9-^ WpĽ'7A_Yer|PʂEW^ZIgK!P$C7m27A@\ڒsN[qG6\g)ľ;7IsԥT^J5@aJxSyAضru09.҈mrӳ26$~07Y J) mu3Id< rl&ND ҥ='1=~kl[ [uX7Xb5$8a DkF{#V;,$: +KHe]UId(ܕwdp.pfVɳ#/-GF^/$soW30CYi[4[qܦ)YRX|lhվFYbJb{Ytbktg:Q<{=,鴓2ݗةx Βg6 乣R㨲2{uđ1LɚY-$E5"ԅB#ѷ!/ c2cb҉gIrCh6"fŽӔگdUwjϒ&uﲕ4WZ ,LN5w$?˪_ knqۮ:7/{g }cq:'H٨ l0p3aez ֖w:CdvZ3 z[s jfsa5$Džbcik4JNLb)\*=2Mv߻9ک]/qrdUiŏJ uz7ٓRzIMe̗*pz t˭duY'!Ps]M nwPh)SJ/SFNfTɉHv[TVM;X4)3vҪBVc i-AݮBor?+c'yu3i? "V[n^ZWEJ&ʥ,agzsu]ֿyܬ "c7NtTr X\ YG)7_D$|pg1s?+hgP}Q&t'A5Pმ|MWC1 *(WX NTV GFf9C$^^3n|cv %q۝脤nib"4RY]x@|C$2@tt<(5w"MPq"S\CZ =qn*)h 8p_z牓8ʞyĠϐ!<4[.t\Yt7DEU @*".Ktip-Pv\E=-< ۠H0ڙz ȢÍ.)JZS3Mha:]uPDQ7Os Qvm0cm 'xQOheɦc*fդίNJ{/Yq `^5:"M[U Ae2gB%tp3%`4I|kgrb>o8ha/-ONvAyBڹ`&z!ˆwBv:Ѓ Gc.M^)#3?j֥zf3O.Eܤi9Y<~hdžY*#N';Vu.D4E]GQi&_$]H3oF!¾57гS`+?[]ҵ]{2 2|uj݋D{b8=?C6[91,6eJLDyLƆhh ~N*tȪUcm>܀6_nţ[G(m䂏M_voӈ |&i(Z@6 :c:;lME>r'_lɋ+eD&tVVYԯI$0g/q>&Mv,hyjm寧E>=⥚Z0]Q\q^ZqDBa'يsnQI pR|V„&;99V*!LU2Fśo*FhgK,#q&H'6cH\D,X\I1)OL>  m/@S=sLeTf9@Y'p6Q}`逼,>? IMZ&BI^Аĺ%`$H,(3LpF#Gy:% [#Bk!%u*7&OK=\LGjP0@5_?,#FtJ 91hU7ųbBS] 7m2)Amإt?9KyZ1wk ]޸nlJձ;}IV (VHTGߒx?(-[3Z<p'CCǰC٥&zMU8kz:pFP4f1?u,]t7|WBN!0Xҝ}8vJ-]h\%*DH_L":A4i=JM]P,=:vѭȧ+e9)[X@\wȅHB}cS2 ?a_Ê+ᾢ&H 2~6C*/3g{oZةy#\-`#$OHh脞)^qƣx%%)%YQaD$ӧ|=Q"^YedZv9_<_V`2W66|J;vbbRF +!D;d&Yf5e"G)2K l{EBLMr'a$KC "%r[+WD:C:;D,)"R'$|zQHeQc BR1ЎR^٧\_h.ZĶMRAAN)Im*|SSjU05 (r| C,>uϣF JӦ7y h͘䒁MQ,b'* i);ݘMHD %2ɂ.RDjDh(HU]:&86p \|v+ *$ 1hy}*H)],((IM&C vxRZ'ߦ[ɳ%S9x/d5Ixs('6hߠ34{$C mOx8^6ܖ惯1 Z=sB(BC Kx'_(MR0 l[=o㓘܎QXveacRݑ6rJS"8M1𤤔'Tm + nY*W#q<=|((UبҊ4a_2FB-"k{^_HU'j䕛@ԝtֽ<8 -BΪa1+yk\*]`D;FJSk! &eM7jЅOU2ↅHdcW+n OR eXXJFd lEB 58c3HPsMR. #OdA}Kk{Jd2Kt.f]MbQ [N"RV 7'" {7֔'SDfF&Yy[:2sM'XaI9&DWxAZҸYRpNO~YkA$>)-#!qx=ApW-_nΉjAaC(rEV:6%8%9Eqy@gl()#g.r̈K^yXN'2uȥȢcTBPغ28BtE17=g=A"Hj$-~z"j"c˄#(C2rv( ?C`%ya]!eXY:d`-VE-\NH#uE7+bQP+eoBc]*ɜU6Dj@.ε!ܳxa_ {I8+@&evU-OfIO $*V+O\V8VnB+Rԑ{Ǥ# Uut9@Z+%H="Ɲ#L:-wp\v+@9@;<w*` *[r<{pcvM!e}"co04{+=YRyEoe}1p8Na~UA jɥ$R@Ԕ|)B1 6XJ9ɂQD*h3L u8Dn@ќ=P |+[%dOR$7buwJIi1[Mδp7 BUR,bF$8ME{t$7X3%™~F 1"Bp~,egnKG*bh+6$2cK84Vd^ 268$QD*Q /b}~f0Rm' ( ]T PV XXgGٸ.@2ta-%$z f) 8zV57dJ?z NE.thYB? EaG VK 9)΂,XE16YB}TO Ќf{J!_hVeeF-Gh:д7/-*HX#rk4Ռ^bx#G엹K#KqJFz517$xGgw4ؙT#jvo%DB& h ?$ h*H @=]dY. $b^&֨tNo3B(/A M9 ʒj7 *P=Rj!䔉 t,uISld([|NuR,徰=mH;h7m殗ߦsb=ǽ}֊rRj+N~X҃Cr'`H߾zT2$q%w軀*=f =_C\Cl8iLRS# Ң7(oK u=Cv]rrR.ѥ5U_T_&>^Ys UJ_΀W%qv{î;?̌hK)26%0CyJd]flBZ"'f-]^ևX]SZNnഎ"5HEJKBq޺rdcGl+V;M܂_WjzX]KVg@2hޕLU_Y}zY8$a2 kj\V:뉢ኣgkS_D),piM!5 {HJwY!,gV-%z ('?*L3,M$9G(>|J_Z15z*c2B ?.>1^ <. -Q8R[߫>>O=EMvmxڋn 1aZ /7K{QRvרpMMQ,Wc $~6Q=ZCF *&61AϓF-RQ?7.zxԊTzR;V2dʬ_IZ0\k2]w!)_ CH(^N±by H3I#bM[xqS^r. N- a-rȝ6" 9Ni-D2Y/XQs9=5QIu_IVA2.ؖA΂X -E<8K:u5z9uN2/]J1A>xYxШ/%BXE`]!D4,-)7dۉeV"1E5N?\7g}׀R f杉T}_g]/KOR\]CY0.@>Jw%}"b ='q"lg BJ2.l*S3;PX({}_2~]]^@ FF~Tw?rvV}x^8ϵ3wȅJJ>Jܣ".QS~';!{t䙣ɹ]r"Ljl g¼PA{3U$tmIK2lE,e:j(X 6ܦL9AHM%){œ;t)%Ն cP5@Ƚ#gT t,57,ek6#Խ3L:>eѩކQL7mtZ1,BL1\ZP҇(] 3dV;4GT&fUQ* 67<߳BOMfթPa;LS9#o-ۿ/]K]WbzCnz<@;wtdU1vW8K`lAoBdq_zރd'Ai<_ $'2!FUȲhH%,_&dd#QiS9YyU{!obd`BϧЅ0=@Cl{`DYIe[4BRR"?BSgȽ8U/_, fVqȃjkV-EԼc9mPx#T]ƃwTX^IENAaF+טH,3UO7THvü3X۰!O1 HOۄ0jᎫsiߪ4hqVKRbܥ{*o"Dg4$F4$F k[8G)&D,2߻%?9c%y>uDpk8+\ QC#0$@Qk۠ >6ҧ24s b[D2;KNR/ q/|E !,,LXuRiZIE"ڬ .'&4^*A6c޶}~}W>\Vܿu+:aLWE%8YT{)vB DPFRSS r?<+gZG*~ ŦI;t$ ט ۊd~/?ύ#i(NܲJ J#CN޻ScXN4חJ QNxhcl羁Cmd}7 o{adFQoQQ4sj*[6fLM|*)rG_xD/w1UV'GH WX"x`@̈́=ۗQۥDAy. ڱڊV2XO-Hm+3 dt]|;A)S̠ZJCp XT0BG9_6ܙDzor˨ȿr3xӭ5 Svc*T rwwSQS=LY(+z)v3N\d3Q;46n}-r)^$/&ϬAa z і#JMT}R)+%^}Xd1僲`F걮?5._⧫G54Xu-Y]_Qɷ{O Vht!0c ٪|gBYĂRJNmf.oGG!:xsp??j>h%hş=kV|&rl.V_F>%D0{Bc?0le6Glz`Wu9rGU^ФsH@y-Mbޚ95 _$UTEk_^)dr'(RS{oլş̋+t4NqBDJ9j땊fc@+B,h$N?)[@!50Nu O^z0wһQO LT4PVD4m|-~i?=Ҹ2 sĻ#eHwCM;S !@svNtlEs8)ș#RD54dNdlm];B1ш\AGc 6iT> 1UdEQ՘L}ǚLMc!0K4+x,+R0HԤ6绑Lt ̷O-K;BQd.aC1 vl'Bw-ƽi߸2iѕ+IB2dDP<0NkZLwAM Q}cѕ ,Ȉ'q,B eh^~K̆"Eh2qTK_ iԥεf>eKRI]RRj@~4ᗬTep¶3*L̜L=TͨIfzhպM\mfaD,SUʹ1k}vN$tM|RUaḡ%b@:4C~coBT2;5) !4cBƦu>S"wZ(ͭ.qT:SeEI6N6%t,"*:!~`s h ,nQ}QrQ+$\./Y! }ՎS*רOAjԪ"BuCIC@6%qY;i;Gb +%E.9l;NK!uܾL<7BRWa~m.y]Ѳ8>2x|x1kJ.?y~oni-;ϔ+HfϪL u|k#Y!7+>qEwwXųjÇb5=e(eOnBh!q!8ebZL\G%#)^NVHdNp/'0E #Р#O {sU NP8 RBͿ/]oφ'ވ 8UzIfql~x'`'Sb\Y;F*A10XM/hg ޷{PQv)+ș\ %,WL€ C\7i&-Y h'<ɂE/BD4%Bo aա pH1u= sb~ҮA1 Nb2C7fڴҎ b%M5H)q5<ѲQeJDZF*cW^:49m߸Ң㑔V'ӨHkazʎQ)9#tb*߁PǎAN viX"7R(;kK'aHJ~5ˎdZۿb7gza!姛'Tbsf.tmyH!EVScaeL(>UUԷPjl>h8.]e䢏_)eR4]]\jDb%%jHU-s3PmJMIV ] Fb)s)WVV` ĩBEByN(xAzqcùXaw~QT_N"窯n7Bd0D]H{@*ECX*WfL3\e%8SBP)K΍Ll}ś0TuMn瑇4:œ6SC-)pMќPoT~#s6dTPsѣն^]ʉ'v3%&&ffFv k !=[4wV6 瑣EC0aA'Cb=F{QpA&b@ as}U'R0w':@.Q~DcmҒKޏD%'q'tF1]Y9 q|:5?: ĉèm_D HfjT;7(4Ϛ3_Dj:R;r Mdi)4)xI FvU͞ CM!մ 11RN%*YS}}o4jgi9Gy]d5ؼs0`ihg;܈L_-"%c5\R?8K'ҨUff$רUjFF^C 3b[pȄg +4'H-!EZgJ:J>뮛Kn/8I2 C3<8ߣIH2͠L! 3qF IP YSPybƀOK ^d{^dfKܗ*s}^N夷qŹ 2a,'n#%wIJ^jJpLp@+DP͵)(,m@6Ih!Tȫ0j(̢=4E(iNW !HČGcWj t U ,LgN{H!7(V?$Bn;**QS2ГLBb7v 7 CL>N$iLl3j@WHAKvIp`͛{ySzgĞjА/ZTRy@NLF;]9B ITm& ;6 8|;#1(-(#lQ'bHLdI @fP߰l5ASvr~/Vviu7 7T:BiCpW,j ]HM*MF#PzȀMqe֍Pe=h|B1̈xB)*P`B392 Xve3D4e6%)e pgT*m|%^ɞ~D;L ~?Y'>0T'/ȦyoH'd)"DS:iB#TI%jI[3SZ] Mb/0Hc={YL$/n eqMT&ZBJVcoP;#7HrobI*[u!ӛ;C1h!gJnh1ќGBN. ĕWĢ˙,1Hᕟ>6:bR0ZJ7L* _Ȣ((ae2`t3V $,DSU9 zaJh!a %`&>  9%I±U$W&tB=ADD~ FteX}G[ zjzi.VIH ܭAh9ǵ:pf|V#_rj7ABpND"* v*;I,97+s89Q`k+hCײ6b)t-Ú[5 } ,0 H(䒊C*>ˢwwUġt (o] 2s$3l؀J)c#"UFy:ЊzfM4ރ d9QhEVl}X"qpՇsqP|YU"4^9@M W2?d qD%]BYYTm*NA/gR0d pg;ȸo3䡍hD:z 4(nz_ 'ǞiZls&mH qA6H0qG-rt [K!p2h0uխlU)PL<ˡzp!>lztN:'bz5bN$ɊMYE _BA0YDQ=D!؅Q ydW`p< ʉ\^W)0 wqr!$2u5LʛDR)Ĉlb'|i"O" Ae;'EbCX8g/.[;rw娐=s.!`lv]=@%!S$RYS6 k~3M2Ӆ *|s0 Ѽ|^Sa9l*\.$ۂnpHgDCLfۃ&q Q#!.l*NBS,K%C75/LxI9ԂLt7PYYi4;N![_'g Po߈IfЀr3+kYSlTiR&ů:9 kYGL%ܤ)#K@ۣ&|`_BJ䝶p U1JWɈ v /QFg]%<17f8Uʁ23Fq5kkKeX±01(K<3MPbW@>idx0Ѐ~ve CqѶ˚}u@PYP˲$)NIb`$,4&d@~$!2[r6`kz~8^F_HGH^>V/YϾzaEbH$ԃv'v"< .pIFZ9%f]Nnj5 L(P875hU ||/^ N?.#ns[b^T$q84k~R0 :5>j2sE2v${aABzgv DP7,h"@;I c#94ZRQUA SX5{Vn|Pvs\<ԒtA9eZBq2"Tg$Ky\#$QEX>T's-)f!ӤNV^'1଄)ơ= (1U_r"I6GTmxmhU \➎al:0Q[+!`=!\@~$BG1clGSRSI` MRv;r=,X`\Pw`L%_l:Խ oؽ&.Fx7rKoST4W!Mլ0TukJmdle2O^^¾'%V^VI b\v_r8uR7SD$$"=ϭk&:0^NU/e?ڒİ4a8_T}XS`'aok)l~ިu ?P!Wd#7YU+Dh=o׭0UjDMUŗzÛ:ɢ;Td*zwV9w(rm멍$O!C{hh: oj(&5#)ctcӄ&o`TGK!I?+YNd4N]$NWJd&WMrD25+IFZQl8^`JuU< v U_c.m VΨZD2t2G9UW6Ra*VCoX)\kϋx^5\}q̺/>a$Դ 0>~ KCNB``<|. }vg23H*m`̟XAB>Q+#.sG^J"PQMO(P|Z>iVf/+̔έw8LF,B<mt*%.0ʯelOS'I: !?j %ϗى^҉,EkRV]_9Hz([C h-9F 5o1I>ήfZB3TKޓtlo0K1xBmBiӍRac]›I(LrrpV)RvkO>mź=H@{y\wDAkQ!JkS(\+Eh87f[M(L,_Y/6Zl!3^xKXFw#**/+ +\XK9”vjva0[[EAWi|}Wh|Wj>Q &]S搇JZ˹ya(ӗF[؋%T.!L\be` )w=XKm,!R[uKJS=*|%E5JY7IlU@ 7dAbiSוe-6_#PҞ |NRr&jb.ˀaΏ !% ŚX|ń|)ĉ*uRa}<[7 iXrt4ue2]0e7 v]_ұ4ieyE[HT0 L5Q4J1p4`,w7Ġ7Sy5QyQiD7$AZ 119(e;:g>̂0'{`Ze-!QD%% Nݎ,T, B'b.2" Kę/u 7JVIJDQRg쐔Ycf MfHgɡvvu9./ 쐏wap_6uGS,:5I·-;e+ I2'SKq/$єB& R)B)،?T\L\E#%Nhk=oL3 ?(}]A9a%.z>gȹ\0ʛ"Jc&\h'?6Įf+ F\# 3B?oQ  '5"+Bq%s&l=:c(\@rӭU Yq2xRUqД0 [a%u<0jn \y{f@1AUj:^TWW t`QIPpT0}d@zϛb֏#1f7I 00 1M?m2- v(JKVzI[;ѝ=OAmZk H3ӿ Vr[]s)0ZG`85)sځZK2%2G M|]a_l,4e|C QMpH<@lo0 r/((i?Xl>Wv%qGB<qE.b!qyhL1%hmZhjk31ɖ&3@A K$,<:I QUrf<h[rj%9uƿ,c,(S}3y%?+Cyp(FO]$56A`4XOw$q *wD!)N) Hp9`v~ 4aōF/=ц {#![ȀM2;, D T<`҇m""Hz:yM+I6\D']b8&4t?}K?[ {#hJnךf6ވ*Aym\Xjm/OZyjtiݨԅnvsFL]LƴkaAWW/ Ԃnb izgQQh&ӥzIɛ$1QZm&نєr^UhKxx$F aIz.ECɲԭlдV"}\d5D/ R&H^ Q.% }p&",9T%(D,>7RwSỉ=aKDώ-}-$ \ V]*4l)wXtƀ-+gggT$xfC3ҩ6|=ё[hKH5jXxU=.uOY VC5+^y[rPiT&|vןi΁E+ )a{*Br8roHcAn<2 R9:YwB.KKOmKQ\_Y->(ˊ!%?ioQ *3= "Qv)b=ykc앥efKlEx\Ea %j˱nLW)Lsoރfi4&3c fH@:2v5HUI.*Q0TeN_98Ⱟ'9ԅ" >%p=m VsI&'&Ei XTXƮ\Ea"3vK rA 7{ x(a~ }Ib Gs xd.:Odq%!7fJ? `+OA³!^p Rc?UnR%D^Ʊ\_C`3Ϥ SO(xF"XKMDtqlPJ.Y 29Wv@Aˡ_ե[%TF5rj*:r#BE}0!!r<6,13RI4D`N 8+Ƈ/@A޼ 8dG73Ja.`i?sG:8 RH[݁- k/c}Z,OIBX-JO\fM^PA AF@ڬRGbC0ܳA '* (9c qf आgRLzX4 mp4#` ': nχAzKѯ6:0&Oh$\*+Y|ts i*2R|Sцwcx_.x<Q'+I/xBa@?38@&DX}vBZ)"jLI2>pbÄ=@ IQsfU+@ʌ_0tl0#z9f,`n4-1ghX,$_Jicc*T ȮAn@`!Ø(T޸lI07#oP%z!d4J,/wL@ @0hm<C0b67pX_ve;)5l\K4sWTS);6 Z H}GH$ϽޅG64a6E2{UƯ5~*fjhY^bI, IfA0%"qY.4L QPƅU%\jEHHeS1CSSe++ěCꧠ#ZJf]*cHZK2-ۓs?R*fgBFҋ=s0Ɍ& )IPxHj̛ݛ]|=Yɒ5D^BAIڲ 1ᘋt:@A..8233߲N}qL̤L6t8. SdΊ\k4Hp,ʨK!~K1 tv / ^h`U/(vI_2@lOE{%>VMm'QۡGG#46BM5{bgQWh< 2z/uC)t]}F4$Ew>&0/+f0Qr$ϋ#ZLi*$LU rtoȢ-~Hem;NYS% 违\J ۜa™~( (B#RP U>][#;gN%S*U݊w7}1al/8ڊ|B V P ^DVv}Cb˜XO=`d%SN D(~ ,#`#[(^ZGFfjx7 >ahmP E{K ^! :pv,jlG2g1Q% TnC/ORBeq]¤b w-H&q_[-*K^` )ۋworol8X;[jњd>%^;4es_Pol4$BM"u9#P*oತxpأj@*; +hb [TvK"0o\7(OC#[1 &O} KCۇIqK[ XL] Šo?AЃDC?^RK7Y_NM66A 5H/GΤWLq)Nq@J1N`A<6&+,>Ay Z¨Bx90 Pު{i5|oA$t``/gcbL0/͓ lP &G!y!Il`ad4m Wfj4.OTNLb#{QrZn٥vbc(hx.A`8H'RLkaݞ R(^: lэST"ؤ HVL9>HױqU ko%<)fk%D8DEwz ߚoHI>d20Zh; }"ILwPMPnڔ'3,Ha)< `9EԱĥE!r)XRU2xx~YdRFPSGV0EB]iE ☍0  !d đGC21~hvs$i '7MCwpUWx~ZYGrIb7;HTܹq*'g>ޣ39 j!%*/z"TN?%-AQZu,$P^JHdwrrҺ؂JɈ oȅ1rvҤ<kn5?"sꌸN06]b$!0[/mWlQVss:Ē'BoV\0-J{YjOJ)eQ:w$8Iᚮ۴'Fw =0\rC3HPREZm>cw&2N 72pڙ:^#hѕGḪRU-9Ξؿ_Z/yBHX3 鷬]Y! *]GZ4}.{*6@EHAk뤖%5m5X "CA$j'H/;m>Hr-)(\)j>Nl Gсt$r ,p4LȖ%CoK .&ljITY6(C{Ws]3DѨr9 }w+;X|Bێ@T %Ϊ#[ hDTPL$]* j$svCUb7@s SsD ʉ0IP\&Aؕaal+#E`@! b6º1Do*xI/_yq(THA2UyIq,_ ̭dJI'j%l,)-ӉV,"q |P XV# -?;!:# ܧfėIgjv$ۣ-W10_8^59^{^$݌ k#X9~˰QpHsI D;pF-݆"8 >{M#5 8ÆZbC+G"s~_`RoX.1Dʣ jWw@nzԻ~vdۃG%Li?j׏\+OC6^1EL fiio^HndG $ mAXDѿx7@yYc D q oRRk пU0[D!G1J ^4# O]M+lP7%:#ld>2o$oHO%kJLZ=>{*\d;=˻ fE|-.dKiؐ-Дc88?,Oy]Y1$}|{ߞ]- S@D޽ o7 j}&` YMFZ)V>Xqj?M[d3yyk[e5q9Jnhڐ^M+VviFD|160U6IK>DTs\jSJ2=fQ)>yoj筕zT;?ǒ䯗&ɴ3~OycQmF(69?o9\d vE%]"# C6 Hި!X <. އM `T֨S5ų_L{|O$ܓ*2J>^uFQSK<]TLb#.`+TԢ(ʝ}e -ЂYa2KSܨM,>c߶ܒZf!]&biF|ϖ&So2&INͅ֏&[zlUN*Xλ7b'Wgj򯖳4DkcJRrPR =4AZ~d@J̻NI+_D@cHx^eN̄D6[_B wx-sH-LjTdOW;)WNH=F>W(",-XƁdVqCNF'(L)n e.rElf w5)t80iʕj֩ݔ)|=[* rB0ĕ]iD J3jhp̷̆n:1SUp@`@WAyh. i(D L,UnTSP3dnu\+Y0ϦS* }f ڼc0{8 eo*dJi9@8be2ʚ݄].7s+_v!Gֈ쨡V^TT9t7x[,M*AȌ`O gAzVu]2-uk>^NmS1OCjJPTF,T6\z7>`隀j$9*"a{MvO |%hϩtvxIbF@e+I"7V>%UQR/*"%zlo\6Z9u'vjK<̾!&s@Z\;`/+L2_B }i?<+@RRḫC9&~^xؙ$*ۂ>J'%;hPo2%u3(t Z]?+hJb+<FuM gQ ۔~Ά R,#w? ` {D Fkj/UPb`S29݈+j=ھG,}0Cهv(Bÿ)QS*=z|1ol,eTei)J9%- dxJNYABHMt Kq2{ѿ7IA0c#0F>*o$?JR̛?p!IJoF_f2 !5yb Mf  FuK$Т+$8$5^Y5 ?f%Ն"6r˴o F-oF@``&l~C>4vR6%\_ό?8 -졚b:" k!yB{՗aG-hB-F^Ybb:I8ԳJ^8ީ /~qE*| vBg t?wAr\em=N6=pA朌; šLHV2gU'TQMµ" \ 5.aVJI)kEzq̳D)]')Ks$0-*>*$fۘއ~z秗ǎ: $p,}AĄ@_*<Ϩ;؈ 7k`YME4^K/~456.[ExjNlHߟ,tO[bI4#bvQwѢ¯L2U-I9NKg'/R5v>HA2 Nyuda3טY=5~Z1 ĶV|=bIӎRy.:q-٫EU}B; UJq2áFv:"d,ȎzzRKi#4{Jh`Gf i<'ga ',ݞQY%g;45w/]Q0-3fNR.sjFB"ZM=d#s<:މ]#򵘆ɪ>`J4srFt!nYo?xJ;*zxom$.<}* Ӯ>I?nSГ-ߦaGM~-k󯦵SGw.t̉kVnq"ic0jBVF.dbIʡH3A!2W Nca0AO 2;=NjsxwA)ʠLN4nH-<#I򇫣/ OoV/*W\;[M}+O!&eAlPVf[^.*2 oBKu:-ōHmh-@@L<IcKY8}vc4ť=ړHPiSW^Ӛ?Of%h@s3\XIK0" XԗyF1йxZ܃<[u= ڻr`apㆾB^:eBf̄FĶ#OD%%4MeJ ZTAԆDrRΙaQ9 HI{Dڡz;TWa78ti 9e {Үo3%0 "XNYGܛop9ӛ.?^iUǿGYr`oUDQUWNN$Npv"OU w]V? gSuu.I$q-j] A H v|;a!{.ƅYW$w˸Or"yiA}YWf-ܨҢ s)pn[wILJD$^;ԣ]۾QާD ZF݉_HC4D*R8(Kd;d0|l .#aǝ $HBlO6KU&o&bL0!:"{rvzG= >iT.Ԝfu [}[o *N;o9T,'6"CRQh{h6hÏ Y7,K\g߹H 'c6B"xDJBkDQmʗOK"be)~qOukﷷ hu4Fܶh:)R_$/L e窩- 8B_94UTԣѭ.0ҏ1!_dytC%pm 2tne6@;̤X8$Æi|sbR!֎AQ&@[ɈQ);qBq0ylZy ~zVMPGac@) 9$ 3Fnl3 VސRIVm]Ĭxj]_ZV/WGG'_%- xZSpS@*4@Fq}n3#Z.K,暢DI8#.5W,b󎤷,3ٵ #EhVOhoN_C[\NWLHjŤR\`ٝ0?- C~ ! Q]Dj"T"_*"BNfpq3/6ZON۷[S8GӰBhHs +\4S$!* )+>Be,,={ A{079F&4g0-/z'&Go%[%1j a2j˄ժ:ƋJq@> gvV?}͆?] qz(H1G]m)8lۦ*<-ŕTcىq0±RUǻ)L #{E9(0l{WQN++Si.8#,t8͵ AaUV|x)ൈ",a6A,)㫰0KS Y%#F"2FeW&7րNRDcݼ.;'zµ MPzTS*X_ȋʷiȞY eI秄a+""4\w¿ĂhIIF_dAA `pI- 6`v ۱u4"<1-&2WȀh6"u+5Ivm$avKz#y 2P&#3Ldda4Ss?R77+/u)Dr dQXRda5dXVp)woMnu7:]഼|,O $]v 2 ko Id+9 nShV*\Q.\R)km??ޗYvźw#?1v K5!cly!%tP-2hI%z2_/G j-<0t)c&H72G/Rk?c ̄=GЀjҫUOVׂpŶˤt(0[uݒwdc bY|nv7{SIpg2-ʐ؀s1"9qFyʠpr~&rWJڊBv繯CPW1HJWZ@ޜv9vub$ND3?z<*f6ѻlywG*D-"" ᚐ˫GD™%I[-w=$-1c*J4$k&b+Vт"`7xWdI֏If uw[L1Xr[ :CBE%œWp^Ijb(#*g ӔcF2QyfoI%~QDSңYu1<礽  ,!M|Q y"mnl;UȩѨ@33"7(]Eu>7iX ŝIOl4lD腽쬳RSP/\s M1 2H, "~Cvm) 3AfKC/lRv7G ~ro103"vԚSlL{'ST}oH#^w_!3AC]HZfBުg٪(g?%4`ߥ+]oik)f-,3~Iy6\uv}JR`w$ᩭMw"s'9شѧDrt*<3{}}S$x7L2 9 DɧTK=$F*C6+(\/ĆvO"rC3=-=;H&tl}*+Bƀ^K:+(YXcB@^2tPx`.ś?_pb@.0a5[)`ɢp;8#eR]M}M\" sBEШsnܛzlK$0^Iܗf Y֭xrgecq2p5v,z -bjn^YYo*Ktf<4k{ls)D`N4|}5*AXg%8#pU#MHpA['#đpA~=ÁL c|(pM D "e {cF 7tLF#g4b0"3N82sUoqBϨiqa}'J8IFs}J-|E92g.=|!]?ίTWa'X_4,ԛuzS0\c-LpTԆ2eѵz?OrDT&;C!x4pIP![oQьl1XI͎ Mhk"VlV &!J#t+Fˆbpw 8¬'7n p"O&BDDN "X! 5>zsx@ 'ғȲ9nskZBT^7=& wNX[t•86+_$>e]DU{w$ vNRBm1K`F$kճ$ܘ{NlM(K{5uoZEAG M[Ҕ,OkKj{+y%92E{o\Jwu|KrOSxVӼKkʅu[uAP'E@Ɉch7s<-һ.[^"\]:͡V`۩[Zj&1hMe=LN7d6H(Lؼ)• f?Vt "ՑK:)uqU)R,V *y:~ds&)?{~M.ckq&~ji5hQ,c[jrG{ Jgc=v.nNTP*aT+'#]rc#XFh&QyYNvG_Y!_v5o+ET%j^Pv܂&(rfܥe? QIb*wNq"aZ;a;Ҕ]xrp>@\һjф VXpFwHrl'ЏCy>I\lO^D*ARvy 䒔XZJV 0ʻwK; qkcI)֯2qzQc2d֝O^u. nG/&ݓ eߛiq?X,Wa ,1cĵZ- m\|)ζº˅ y1B1?Jh,5S}܉?{y]ӔLɩ m$TcG`vMPO! 6)s TNQmi /+:c1cH cKQq=huA)=gf.7 V&0A9j;G`t@6 u51)3[yr,fqCq ;NwGa8" @ 5'U KL!K ҡdR?I&qu!8*f% r'Xl.(s{Ae37|=~ 0,hiOi "Ʉ;d)J89YRa!9ꛟ|>p%xBC?Qg$(`xג. VHJB0aزc+l0ӡQ6I K'Z:a7lddwIR^GEذt03R!U{%$mp},0d3mvl Z;c @Ǟ>z*\NW8CN0F6`E3i EF L! C{ 7&6&J򾊈=؀)2KW)  !YZ*qY4V%\'$:+RIWACXҵoXRxJ Ðw\QsBf;Dhd<5_h BR${dhтv4- uEXu ?5hq={p?{ϲB"ݏ?kG=9H)w"OpFtbA0vlh /~K$sguHq9).Wת3b`*/}}뱝4)[rXjz?QHCq0 K4\'<JC懑 f& {x1fzy"!Z& 8fAmشmcГHGķSF)כ ɰеvl 걒'"aSqT4;X1/ u Tv;2=}&_6C hdr'ipK5Z˵ 0DZ(d  ڀn+<'>'ʧft68a*K-B/Xx&N՚m (<2/mTB7jE ӡ %HL0*VP#/%b!b&|N 7M>0$+0RmHAMkAO,z䟵Mot4LkS'*fIcews)jj[/'ЩHX$K]0wZ_iTTn͌Dm,vqEg W4#uJ1W]^֪"qfhkϝ2:+;! ʡ ViH絤>S̹+C0e9X}_jDh; 1:&ے~VR.'\q([lE7 H5qV$%9%_?DR(sӒ MFdl5)3w9*¿#Cvsq.ߓT[$DCC9Be=(`Li-ij}To<8I!_Whd;5 msYmeT(O,` Q#zd@&2a.^ \T-T&$mu#s36_DJբUݎEgpy=H6#iG{˼ȖK`'];8qPsp· >/Ҭ8y\-13Qॷ8,`2c5GpYkĒbk K}9̲?DUg{%%'Z ffw5 W h\zkcz-;yM}m'Q IwvrUULt1ЁixH1Q&DRAfg$ Y;:&NXfsyf ~-C}EO[ A:R M_xJm/]_22PC5XH"guUȵ#kE6Ohxè3TDuY Uh*eC4gKE7 ֖õekz9&~/L"ֱ;8b+++'u&P\23 ei'$1&l]i6\:T"ll``Ϊp]ULnQؚ`l1x;l ];i/YW*%#+{d{閟#P9pK^ J? FeKLHm?2ggpBD[նvIE(8*XFIjT):7]/9uY."z<6N5U3$៫aD+asW[{]/`eo;tpp6*үu&p3 R!fvVD=/ha>4Ե4t,#G%?z[;mkS-sgJTxs=7ܐ%zvֆbܫCo%/ dwju7ܼDk}|< kdVB^GΊ2-%)%yDr/MTmZ9!gG5\;Hf 2ze'J)N\e3Oș@k$CT$}Ox:Ğ',ݹ+2Ħb}.㺫2򔜞RW\:3سHE4k6Re;YE m!3-} XMkCyJHYHrD<b<[z@0U w6Hl f"Li%93`Zf:H4t\U[3޻F(n1a?2R]cJyx}E.$#B D#$;oAT&i"*W d<ꏎNl!?Zn\eihbۈilW&YˢBh; 4`ID"hef7AP3HtDFV"q,52R#CmPE+K,)_P\Hp1$!c#Mס `!i1拯I/H7MaKASi0+O"~g tv3%uŽsR$1"#-M2\ l='{PPAHp6Q@ CG8-#xCFG7iDcKͫe S ;̩uPtBD8QpeC  \KwPa*)-&|e'JLp~07*J[CB,_Zmtհ@mYUI3,o?$Yb}v7bUy"de#"O"xH|/*r6K7G+ aiz1~~iN<K_LWlQsy;RO42B9LR5)`V8zkqf+mFPYGdD $bSu;19paw϶/.r}c)SoWKi`.L WdvhV- 'V^J-1Tedb1s9_O:dIbT3zLr ˌYU8{ $cNN vAXk,E.hJu[Z۽ ?ώ%E)榬S‘]waA {R0UmQJ;qh^Q3l{s>= ,zދz[ʮj&s"܌4Z.A6? Y%|WzfoɪF%YG?Vtl\3 Dbv5_o@T9Zy+Z)@BCy,j'`F!i Ldf-6R8%FTgAv!ꑶiWdk9ؔ5-{ D`:&7Srw֏- Ymp!1] +l䴚dUUӷ<' sМ@,B ӨM@L7>x>Ζ!@$zɼ ՘98 ̓MI"'75cjQ3odr2'ߗY3'L "HSJbz}%A K76r IxM*RA"4㱙l|LJ˝ m$ڈA|wa QQ`3396R|TCP ,L( ,H&DX\5wBŸR.Xmi25cd!ȹIbr*2%S, g}Ȟ0jPΥ Q6 `"f!!(4uPWP`Q5DT`8 U,̭N) 셐*0=d֜g ɳ/q e}“+H' nf;FgsZw8p럈BiEdIEkzm "xbK%fA豴ۄ:?/Yf#.;jT5"d!By<\fRoD E u䨈gh͐(< TI{aji8CS!e`4 .,L) }`%-o:&)#Gh"ráe{#h.O!&:#9@M C[ *NJLLW`[C]!dp+26X{E8,Ǭu NLdZy_A`t,4g~kEKKj $^(U_3q'@C$JYHtgeF-*E*,8\;u{60D</۫7Z^cT{JV݌nT=OL-҇^4qzDv=a2R=wޱG ){W*N5lh_j"ulFqazŒg-lm% P'w{b03F-F*'$[>*ĦA8 'uBq-[\-IY;"N2ĤyF(B:IVǶ#@P (uByd^dq!+?Yp)s:KG:۬MO]$ĕ@lb~n1XՇ/%?Y a5hWLZc"#rM3)n?}e,$n'&Kn% AW' sWu0URvvTO΂~N@dV,{ +d1ESodY9wR*1(҂K>:GʅЬfʒh44:+M6BF_}*`ٕʵTm^Bx)m XU*{ A"%O2L]IueAxF8bNٓT$Є̥stDQa4\%tc2@j|,VQ'NJ3;.!?(:2$K{DU"QRA5xQK報ñd:.i#+!%;m #+'=%jK|%EM?Bh82ٕ{̠301*lSOA:d>K>h!WJ[/,Kd%4CЇl]̻sJ%S/|Yt4Jn;Ȏ؀m9҈%g,Y;my:lRH$H i=i`9Y7Zs?Fo<># |6 !(#VtK5)I8^!;~֫1AIC %Wڥ?AdL\hI )/&JZN^_Yq$?L=Lɔx;MA 4#V x6^jMg25s?!(UP-k#بoB1*7NgDM:"G T&%Xn"xnY( e˅:/` QN4Z"%~c~I~-/hMB'YM""fAX1\/S܁##]#Pqkb:h%i9U2:'L$S& C!-)$לdR&UN,6wW)D)WC24HT`ZL1iN&Ad~%7S""7U MV8bU6|/L-%Gv$$T_O_DS=eg`:֡~= '] j6Gω[^i*b̓xKxp\/0l͝SiLBP,P?v@_^Lnk l貯b _"ITLIfuFb@ZjBe4b;_*`/nZYa9q5ns!TPp.%=$DJl܋/6ɘ/}c-ЌrZ%%H$40VJd8YqFgr b&ݤQhj&-UP&WO 3CVF\-! NB4d[*b4ȋ~zHu".c+Tpb|!5@'oGpvyvT$q&!@|%?JI'd'UDi-*Ay w.-i 9Z/srUQ=XE\zH_RJ.u_aEسa=q5A} 1rYțB,YZ))1 g"uBR(9sY!ź\8IQ*!,}p~ٱ*2bCbϛ8j\) ~H dN_c3h}IEw`iY܊?RᐟH?_NH"ZlVJدGՆ#tVǻ|8hQQGgƃ49mB^[>7fD !Y{Wy<'I*)Pa& ѝI PkUM̝*tdEX#5]Lӝ />?ԌU!9∦ Wp%߈q _ Ǣ0+iw"Q7z>E*!A0n%XԄ?2= *!=*r2"T (`<OѩuK`Glnv\.4Qi Ό0A8dmPH(0֞lm"#Cqm 4spQ:{ M =״PD"Uj8c@1,1d NFe_ntΦ#}](Jl!"@Ւd:틖 hJ2?7P.&ވcC` \BP}켡iQ "R=2Uo<I)yEAɈS<)еo*b‹ K }?q *D.we` Aؒ >20W"O^=pɾD\ /sZqL499ݶd>BE *; ?Ӂc}p,#y}NH?LXQXd; ൬7 V!ы:3e i*9Bcd ;A^0x@[_k%mPJ&3hmy,Vfr6ɔ<&AG-LmY0ZL$1p臍r=hC&&kQd}֩a59 fl AE.-#FXiAN̷IoHL6]V&o_8iy "PG`JJ c"d#`:)܌[Z#XbmaN("˅~褝<_;:2? >BGRH B9L,R'"-"BA ASJ DZ5 LA@QgIXۨ[&.M @*G|KќH0-gd8Yҵъйt.:FBDY"ɒ;٤w0&a'uO=S b_= ƒ8*0t2B?MrN3'(SqJP0Ltxu)0,{ %ö 9ҸFYPZE8/5'Gw;"Lk4p9!X*S 'mggbXy$"!a,DkdR^Sx !1Zdf D1F[g/Ql"p#m FT^;@@]'ɼ'u83}/5?xNкq)DM~\Dw7y1ˁ뉐bm/ jZ›R08A>As3,Ȧ$%WCΧm{0E⨪cF+E 6ߓpJwh lna]ŧzYT!C'(!?zS knN(+I۔ȗEc+!L_!@}"  ƤCv&)^oZn .D?b؋N*L` bOEyr$Q]M7%ZbɊ-qZc\4L{@^ ?XK1l;,DDwg]Lwc.8(V@ڪ"0A_dYj/S8+Fo3,/w./OifۖJ,E=AUP6g+B%rټXKȢgF O=lFE]PB p,h7PL EVuTHxw4`C/WF(1but ҸZ Υa 6s?q;'ml<2%IB2H0iu~M}VE?v5@"[t, Haє/'gED9ra[6BJZqh2u-h|/%B; `$D,F),зO_hyw` ym 7 ~yߵY2MW;݋ >&*"`څ DKfɬVBS(zX榅H5'^WsT$ lK eԓpy 㒥 ~|%;ۧw楓^WJh =)UZgp~tpo51Eѷamwe CɹDYFz J!zc_4f}y {o޵& oJ hnR~ÊPSՕBMOm? _<=4"LGU^VZ9Co'[M3*'-MrAHyy4Tnp2%όC-Vo3a3}5߶{Db`Զ(%lvABo)p=$@)% ]fUJ{beH:h9[C{|LL$ĕ ˝E|Bmt"w%mE(_j᳜؄I:cSC7ƮڸoI 5|X$9nBEL2}xW-j;`x| '8ٚya?"ڕ[WKtпe"J&-XT> -tqh-(ӆ[%% /`(}/o[4k#ů,H{rdkHl)0s%i8RN)|Xpd'2.1"y:b8>г)Uڱ D,cF2T BG% @X*1T+ E4].6YsKjf#̧+ac5 0$Z?(&@9UC5N헅CٍXnL#HBz) "Aw! ͭ"DؘTDVODD,Xs7꘴U#R;GR{\ GPRue# ;$];d+?m3˘.~Nzvd#H xqv}8tB&R\yjԛhi!{9>61N ȓ2ObT`&b^h.YMsMHԍR,m!I+idym\_17SE+#Ђl >f"KOQ&G/7ͤU3c5W+DZkEyUgУ e??D2` e/€E* . 7akѱ@)2;?Xpis6tJtEJRgF%+Zh[lզ2,d?̇i܄AUo%F3 !1tJ> VU؈qƖIs؊l0PDSDktDfݦ15zP4Q }~pj3tc+ .3I+J͋0@&O-v9 A2,B )`wʋGTTvUEYD]N'^K㢊1=- NP+QG#d*#;*"k+rEZ@|=YQ q,R0,1W'0mא\ŊՊĎ@뜭AY"1+8-n^?H% nʠ}169\h U5A%Sq1澃he ZHJ*W8|CM3UafMN}lǣ?Rp1nD$;Db'f` 2hl 01xa~z곷8 z-Yquq!M@ÜHHP0BꈛN®`g:[ceꢣBԴc+ WyW}g2\j $; zl _g@4"BRʳ;qkXu?j۠#bjl⅄B&EwB)Q]L hd7RhmyW?| Rh-J Ak*L2tg]),^ѹC݇  a#h뵿.<$#_0V@- msҀ@߇6"bk[djJfPSs=-\#_FQQ/~tɥ00^?S+UT@`<P3@,ss'$`xC62h q0VxVAe7>W4!Ϫ$7,ΡB u. K`ԦD NsG60D"|pG, yCr,$bC)FE?lҘ-P #+^g}4z1A PtL[J$Vh6%ůolbC"+@%X,4 \#|cv\+:6~ l^H"v 'q;9´DGZuBd%J0~2H"HPB1\%|p AzشѬcr I%zE3HCT SW'E"O^T!2 5C29H3^ o![3EYzmQ5k$U%QA 4vEߣ]7/p|,h4!,1,SWL\畂&.~l50)]pHlp@ t$sZh˞E+M /$!am̔[wh)8MMb+C/3#txagIK/C' ocIzE’kFTJ{ɺTjY踜(g1ːו!Cs^p{hvh{AnX`9= VIwXKfAS;;E lޢ=ƴV*bP eR>v_t +#̳GB5VEQTVXNH2Ƴq\ JleCZ/drOE򲚉Svт|䈨;38Al4=()ŕ[P*eL؊e>gۺ`5L߳qe@iPːRcŒG;jXjDF %T!XT KFjX[sf$L߳t  Od()s.D@f2=sa1Az kH0B8r HvrK0`NQK_#0tLoCU7gA"X$F-4܈GXa"q8֤|xm75hT/ks80i3K,M|GJÈvHK|f~3Pu Aϣu;inB>ҖLLD)O>!FKy@x`8'i"_e<x(|xǵ#s1H },r3fPȆʒSs^"2𖝾E+WJA9^'Cr MQ$fyBaNia`:F!zS'Ȁcʒ"PB+UQeFg=]_;JȻV¦#n@L~ZRKQ*c\/=[-\[E y# 7GНDR#TOYQҵh3DL7^u FPv*  ߈sWp2rRW[Z\dԄ]p|C IcQ#8sLAf$-j'DǍ$Q`LEn r4L€g؊n2bhS"ۉgY(9Ⱦ# ֥9Zt rP۔q5.QBE=0Oa ;ƤCa1D/ qL+h3"T(;3K։1m͸%/~] H܌^-왰{TSCj$|mg;?< %Ȃo UJ(+g6 N5MB:2'gFZ\Tx1gJ ϑ2޾I ^2. 'tmڝ@7Xq:& 7A2/S%NIB8y+"8̿$$L6H! 4im"|\ rE0(#4Ix]KX%jK1(iXH9򞶴qQ]RY|>_o !='f.'xwկ+o&OCA֚/I[^ +)llu"T0gSr8FIf3TBgPKS$޴i¾ K*<+*E,{r=d3Ĥ0>"QV %?\Qf4Jj}ksHDJ(/Vi1JHw %Q6v#'&71n*kͻd7ו5+ #|('1|G*p_Axny;y^șaO*D_4Lk6k1xA+j]DȗDYC )9| Į&%}:jy/m퀜B2,.5>q0qJq"*uhm N9uswTƅ럹aqa4uD3U?>?4鋄~ 7pkg ʥ[@3 =.^:To,M0W-:su9Ise[lz?I\5tډ5hg dF7-Փ`Fxu4:VB+㤙B3EGtu0n0k!LoŲI@MXy?O)>JKQ/pܵq#ܫoE!p*,\#IhD3B4OH%(;.]p4Mo *PgƽDgׂ#R2_b; TD \$-ǰ13Ǝ4&0$ ֥Ik]PLX9@ʋ;yVajmHptaiN6~w-Ux Fe='(|H`Ib pK# d8VTQ^2 *K>t؄wF̶d\WNrW"d0LJJU's;ſܞ+JU%2WB1 &2QɗY526-E$EKƁ 5|~~#V6vOqlL1aL]"A5vC u /KVkŪ'gw r.էQ L>O`tp]~B+0{-חƒӧt|R2 Hrhk`/ jN70`rdNfV6aG,݆LGD tDDa6,(/ahȩoR~ۗjsb"~p(-JN >fJ?Mv:߮ʥ8cl[y#ZS pNm Mm+TdIEZ[(JO ]{bX"z L&R7KwC1w~0lZQnSvaN( oމشg&]%N=XODv58*C}yG5s`.uS8y1ۋErxLx"VR;.U >x5 d,sf#`V4H5]U臩#*4@)K!P()+hlڧN[Shɬ>1}"*Tp}.㬤T$£GX1N]j~-2UzpF<9=A V@w.8.l,nfNdj~|ʰynVvS۠847az7s%댺y6ZvN= !c&|̔{ڲœmplۼ\>h F$_sxk=]DN xV>dg%>Yvս<G+|n}CM18㈪v!1O +{~|,Bt2sXEt_YkBic0^9_h,ts["Mْs^Fm+`j6/*Hs5huAM@yܬuȢ%l?mU%ة65pV."#!b CZ-AQy˧ȠiwXnQ9 ,10+z㖲BV; X$ qa6ۜ>8DjUzؽY`0t:0 BZϼ"X"PfM3T1U#`e Ԗq 0~jma5Io .i?]c1Nנ/C`CmD<. @vmtP9ԧʂҕ\A}zglf@^r| f O#i oӌ9ゅ$grx6eܗc. x%|NH_#ޭHעuT5C&@#p g!?]esՀr[B x6 *pҼPYJdTsC00L\bv(NLJ 0<38X΂6W(80)'N|(./*Q yKۄü_JhWLx*wn. ~gs(շx I['#|MT7zgfB~27ha>PD4lnGT~§ 8⋡lF55?3@.x)QPdm"}BʍIpI DPz{  k,ҏdƫq&&i3;8iaGYD*ML,iR1S`_ab[ FHNqJS\"jN!c@ʒAd\,Wo Jojf5*EE|y4hFT/-8 Ir=*"4c BI>"UIBqAJm605ƆdP^.$Pe>FM Ԓ[T0'JˆeBhztr6Ү;,UA (xm ov0,gKLEC`b0M*hL{Xt1A\T5D%b'"to D14;B& 5q3!3 ΐH$T| ךWOl=|8p.aZ9dwg$"Ta42DD]&"_˞c43ۙ̌ߠ`޲rj LC}$svOuF2% lkb")ټ3rtǟ *o2j@&gR[yOR9W,) |;6-K4)@f"blfsr>9!_-#ԚXS1x^x%BώEӧR^}D@slҞ=n@f;4(_V?힋ҖtU2]YBIMBh0b*fΫ}+gR~PAV u'u=;fjĨbΡ"w[⢉J8)6!8"Rƶ(ʼn1D`'0BւVjiD# #ݫ9U.)p.ZC9I G7+(;;%P1k[ ֮aFҭ +fKYhcD ry%C]AfMxBAʂx*.oC* 8hT?y6ߐLP4aXXN ,S\T-!^ .5ȃΝ:,qk(_/x,)Fc 1_xL48鄈ֹ1,4E3,}r ýG m̼k hE@׈G;PGt[3&'je'<)  P\ȂZ=%مc5f!(XDh,BXl[iQ*,IU=hplL2&HbAfR5ާ*.ȴry׀IV&G©TOP~E S=C=HTLj} ,`qOꝺPCrFOxb?`E2,!蚠ldޤCcsG}N |[FId[/[4,f- vv""5!*N`}LA`$(Kg]7`U vRF;eaLQ2F%6=Hl0P$k'n'!ӡׇ U#ݝ8!t"xfk Vz]l9'մTxr RGi X+BEvnSĚj32! {߆ "ikG*s',؊ϫ½Zސ-E!:LFԒ"V+SE:܎QY,54^W5MA*v`<>̰r,!Ǽ! .Jj25q5hD"IHVsKvxĿ# t}nue[d,Ƿ+UM۔*jKz^tn聆dr?VD@ɔ ʾ:()З`WV!w3YĴ'byE$:ڰpIݘ3*aHNb][6-#m 6VSFD} y9o?TLD|r)>l NmuDoF,|$sPTNj(\Jfi%2tCj1 UxIϥk⺕,pS?-]F-9:XƕC=(wvAO2|ZZoГGh~K@Oq,%i"0HSִ̋}P|Uл +_kxi/[p3Oթ^O+sPxaM<6܄j&Wx'p.eppo@HNO$7ÖNA{r3\RlXbvzKD5)˼;UH1 D'!=pf_~1i ?jظCVvMs9MB ,g.\s yAFm/:2V z؉zo1,eBU^U/\K3EK?*xtyN_[.U]v{ɷ E٩(nwPYMHT:cTq؄(䤡C\Vka=[b#i1f?^]!ɗbAYdV550-]L6T*E!zRfDʴWZrI'xTS1Zl'>Z:#(:#dBS,cJ[i}j "EO DDZ@U+A9 U0bN3qlHLYS.[2iX7Hxfq"(fg:?tOŦѾ(mYV2DJyqDhtjD[F!`*7]zu.r43_{׷]d sD}cT1}ɕ9`>^VKm#ɍTG"D7ÒnbxwT{^[j_DǕU E(? MHvWAu"(YsAUy z5bYbȧBvE`C ))3Smr&ǐ݅ toֆ尿uZZoe0J3r  ~n&S=իm),\T~N<\'*8\L=Kԣ5|`K_+P/q[_kZ޿;K=/`qIK)Mo3/&e1ҏeP!P32Uu]_imB|;U@پ9xl)-2՝$.SrTfһ wŋ3B=⫔ꁿs<kŅMdш>ƿP29Q,x̲c[5xxzDvg;HWߚc(=J~U>fq9"I ۧ`E, UJVFyLꇑTg U\B:3n"ǨاueUv#o)i䴒0 ό#[i3DAP_6@$ZuހF'HkS/r)8B䉝7 #5]Mcu$ "]Y+[ѱAkgef1" 9b/lyX80}) YXbqWQ93/;D=XN)k Mvp2?@A\+yћpRKDuIW-1X4aMvLC=o4ڡO!Z/( NQNOj轳yDp Eqz1ښW^6z@"T!tD-BL O)K&"l%MhTB365v5@-< @.#lf$Z@/2dH&e(΋i;q1 + [Ev1l)dN:\rܨa~bI+XaZ,26:Š;SdM${ Ɗi9b.LBqUӃ Vkahi+HԻ&D+KbPTKJAL@R*֦ NB-aȎW}WzDL a!#F+ρK0@T jKi]}A%wj (5Q=*?4h#IIetKCFpC SzP[g'?+=)KXI0.o򂓑ql <|ph?C,FBfRc.ثWl?/3%J'T2MFdTsA 8e+/hR|P1 ZK~^ Doi'6vwGʘҜJ4<1h)N"y&U Qe]*DԬ!Qgl8M$,n?A\!S2Is9g \"xm%6iz'htVD5fa++v͊ϸ2UVU[o(+ yG9$!$r)肴TAٽ|[;8:#LZiRL&Qa$U+bȸU޷LahNKU2ˀI"f*69K'<.t&?)<~w*:VJnFIXK9K±%jhE"(ӧ~9FoC%A1 ^=73bDiˠD]f^]wHMQ-֗gr\oVJ, MFğ±2и3pto[@v W{k164h\V4<)]8AkFrּ DR# .3f âsVGG\c&S )Y*P#P2^̈́f`+|hL \r 1+R?IU<:IbeH2L-tFXH k8w96՟}mA3 1wHG-dl])R""](X' $\W@Z^LbP0"0mrJt!Gq ]FĐKuk޸!b086\@w{FO<4M L iy% {+O"g7YȬDX C|e4 !D=Iy֟Q#|ʹMmn =L\dİvAڙiN,8 ;I2w$ۀ\1+<ڞ¼KAv5OBjm?x_'my3ګK$9=8a料 Zm-i ۞cy%tO:EOMY#ϰyEKOS0|#ԗ޿SB }Gh!`1H[ʠ#b ٽ;=rfg,0< cq"/H7<:T4PⱴKTg1fQM+ kj4=&/iOjͪdrcJ.Sz}1*CBl*`qw =Ek/kDrM5ExMۮ*^)K2.M8ibiY%%ҰX,a6M9J\ķz@-CKPA~I!W"y\f*xDŽT Mbp$!{$7]0xTśrԆ#ێ#.CVP nz"7hҁLT>U$)]$enH)ŦAV&7;RVդ2h前胕ˋO bo<*O4b~. V%ԌQ8[9:C][6ؒ-#Q5U]IyZV+MA-#~+=n9[q9wp{Gk\=eŔ'=OGDw$%UIW_m[˪+^g7 ͡墍]z687ZUHo?ǶL_2l* ˺b~O.?!ᤄHtd4_ۑv;6dcxHnT)6bn QQMcrC%\9Uh #rP(%4"@گxRG #VEh$P] iFM; PjM^zRt ^gE l/G?%)d-ҩPŹl*VUm$Ԇ_&<"y^\|ǣ B%O|6ɀ)襑?iRQ8y0nJ# !PH^:^ bM#s-]tEaۡbtqS[I;gU!Y]i'I0 D2OͦAvEVK""t07[DK t@=9eѝBi!xY!k AiZ 84#c0#*9DV嘋d%A$l2L0eS ՙne}=UsۮsϦ dTٱ3nXHD'U$2HQE{~m[ПO[aQS9 (ˆQ!yP!%Ɉ]_9|t)YO Ug 89Ő^.n>םŋ?V x-ڂv$R-F k鞝xܕm [!D.`7gqG [ls"*{ }M 7"gS3nzv V)ph%=#G;Ľ_pKhˣm"s_:Y!d1'̈́Uf_9tZi2śFgPAREN jrI$)!d,Pb]fPS΂@m/~[3t K (ש 쌩P%A4Fл3huK"$d:56fd =R XHEǢ̈00#{S˭tVi ~f= UE Pt`Jj< du/d ̏'A3`"Df ɔK'K(pGY"{6krNb{"C3+YQ͹Td~Ml9]rP&U}7[~D.-=킏oԂr5{l䂆jM_鑧 qy TF @+ SmowغcvAC2єs s~21dE:ҚO*_#,faD{/O"} /]a 4)gwU !+#*lhVPz,(^W~\lc4ئeٚ՞L`X+f(#A_O<(ǵEvվ5K_v ԍ5v8!F\tt6)2t -|JظKg7'K4 ^J9ZYYI߭eFX-pG`-a  :cO%"Z+ V3N/nm"6ܧ?j]Fv\X:]cYzS<DvbpeHW)>YvDϲ1v/|Mom >C' g?U!t,bQ1|wyaFyvH{D`rpJOdTDLˏW4ʆ+RNPQwg֢JI#)\(0OVWj|s0rM bҏ%Ͱ7@hRq١p}eǛYf6{wO#Gba'\y- 'ӋVA5[TGp;s L'lɼ5\@ӄ!)Q#'߅s|n#%BOS^=y ջ;6G$ת?>l@h.N<0d]FFPTӛF V`RQNң.=2ٓD I3)? {P|D667q1V{G]ۓ "wԔPc [lӛv~FL%ࢁ 6 a +hd%;IHHQ)u8'VZ'=++ݠ~lNF'M"՛>hING{3gxizI`by>Loe ,E4TM{OY"3>M u-QĝK}-<1 XEX~"ZrT9L !fiaF ÆW|<}$r)J@!Yxnjt'@wO5u8w沦RB"1 K%BJDǴTբ% Qu>z}RMAzKW{ [a d;GP\'lS ʡ9Ş"tTg]-_1Mȃ|'F%x҉{Q^U![=gKV|MYhش>mdL{D(=zJ,!(H_UÖu6c/HZ #M?f*-(gx32ωJϪ]0(ٿ>XC  {ӌ)b UJ:[w{t͏[z$,4b2_s9>d)@ҌHx١.z{)v+sQ iqe _H5A4&[=W&qlLGk8*[=`(aD?z %DopCدr# `#Ȗ#C3LftDUp Hi~=Jn\ˆr5  *s½ȃ m4~Db st?_SYHeMkme68@uGɎ*leI+x#ml[xqaA D7VBTBaŢ-s* \KLXDڰ#O'dq8rJǂ'#r9\mѺG |NC@cꂋj gOb;t]&Џf#z"6b_ч҇HBl@_dA629[Dw(!o.Z[mZ-.u 2uPwӒAX3M*fE49i)G\ 14FL[ Y1'5qGTo7RA0#9enpZs)eR\]1F\kq)J!'e1Bg!"IoH\:jmq)5;h{ㅱ*5 Nv?#ex=n۠s+/WRnd 5{ڑtoxȁ4?:h0yJ+2ZL,@U!DpaX&LLQB Vçw&+I aL1>d/.S\iM򖩠J5TQGKed n̊ޟ?|Ru h"i<<˲['QjOg AmZuQmQ.Vy̙U rYvl"U 澶ƫB=^]4v\ˊȢ9(oMTpTE/Ӧj] AF2Dѓ:UXĊroBdg&tKؒckMDBy yxM(FEj|gӶOF1U/_@w[˓Lh$}Bdȃ:(ȯS^n&Hpǩv^ DeMabo,nHT3=smI 0iȟ{K4םo9;2v~``$Sud{G}1q?U]^)-W*RɁXL$ [o8 0۶/O F 9LsĀW 3fuʅt_hr\p$NzN!2.YSk&zu-cNlews-ii\MŽ Q'{!ː[l& I07b6*OBrV 1XSF>9<[._:^su@3天Z/rc,|B6B1/f'DՆ LjI6\ 8dQ3`HG:nW!қ$m y(2WyF>~]o9n>h62O-@A='~Xcn3 KrȬ#"xRŊ\F{/u1tXxAUpw,*@4N4ZoRVڌV2JϜLaY2$!_R=Ffp=Yx#[> ~M=닇g#JOETޒ;EjxMG_AG&IYQ:Oc]#CԪiCb/7-@')kaϻ5ky!t 5)'ONK^-V-*YduB+F~e^#|S̙;dr!3T8aDm)YL>yߎ)*>|v:ؑf)Wy0eT zt YJm/r,B5hMzU0g>cTaæD^+5ƬUMu7X}sXUca"۝.HZcZ<+U׊,7yc".2 pbhiR^x4 ReɶDlt3D%EuΖ{\ی1ZɡSOoUolJ=tCW[LEڙ eJ .'4"(0zh Em%rg7%6f;n+W+|^35\k t|AehF." 1N%yRIBGoGQⅫ<iwcO"GDqGKXdmF#Q}ݡOP VJ(JPt8X Kl((kkB'8@]N$4pDń%~b&H34B:' a 'e:y4gW}}pԃd"2݅ g 4 gN*!RDZp[U+?GϿb -N}3.c FQ$MESֹU!}Z jIάE|TKborIG0Ee"J'Ԃ:!-~Mx_"V\CcHEiNVXdW v ^36/FlD3AȜ8? x 'v9Bք# +i{n ^QSrWXC_L+!^|wm'FCo*T+- rHq"lL MGF#-jn<Xf#2EX̠4:lZ)E4 VSv]1;޾voAw # U"ŽL: Ʀ5\@Qt9nZCdԁ8eR`$@ +hџ+ 7$  ^0N#d]L7#'1 Y:5Umɂ rBj3heX&;*CʙZX &!QD4mRy.L bbW(ZF1ŀ5ivnX*Ibm͔~"13ʀ<B>R [.!A׳S{F'croNO)/R$>cdShGHR*a-I"e$E-< }R#8ҏVD -LP &@<Y1qZV- 秎2Eqк .Ci (tƝ\=@q5:@֐(%Ы`_/hԖ"qE)3WoS)f.:EOM)%glxe^%/U۵l8M\n.T V/[ +!{u#FHr#5XT%wFBP~I p(4UL]P8bEP^vjkKMQ+grQxz|o/1 $(p&GE.RwLVR R JW-~uMj"pL$nVoJd7i[nK.\qImx kC}g.t\ R}sO=QHb]DP(ʈ`NbD8wOJSebKA칮zY:q/"Q BPH$ 쉅q9A勌jBam`jÀEH/VB+ N([CEe7VV Ôs1s"97=R"n:%W;|L,,Z΢lCLBI]i5&}F ܵ'\ߓy QjbAu)!õҡ wp!li蘥1CˉlX6۔KVgdcr` i3xM°\f*5pBb"M Q=`E\.G\R^,{#߲ED _ z Q"0 >]>'1caM^Zi5*RR,`&%hgaI}ăs45oF[+SSy3 ˎ\t Q3Gn>oxJﯢA(YY*)>VdICNZjT*MT0)XۅcWA/LO@:NQ&r\- _ʚk6;Fо`x -߈. ج8+zW*_#EjXhp[ɑjE.W(EG * ͚\ZOB X>Y'-ZȈh2Z|1sY8'v0! ZWk@gTP@Cٻ__Het". ʤ)fQk_"€')v$g55W{$55t aa$<7'z)H=ē.wр'>q1i#,a DNnGotBpJ@8X+@E acI B8"H^ l إa dF .^8$6 ##@Ͱ]8pH &q^~敇F)w*"*+z 9;% OCIMj mD b4A0NIUc@^%#׬l3~r0}Y͠g'%5*OBFzxÑ|,=\k 3G'b-1EspSxgu@L0>πF_=Il;$'eA Ac}M-cdvA@[πc& vì1/ZX`3WZ pĪk!0 BaT0eJ[tmCo u2 +{J&ʌrȪV(6', p ,=ߢ%nn^7qm v B0X^ ;!nsa[ObeA$BF}_ye5%`h%G(~*U@( qR8pA8K  0IȢx0`dBGSvn3l59 | dpߺT'n@PĎWfMI{#dɒ M5:;0U *5|"#`xB/^VʺYؙ95 Toh(nJalhJBsۼ/CxNV=$kEVlFD@"h#85Rt+"VS:y-*=.6dX7n7 W_]bp{Ha6A?rUIc`B,wŒ=ߋO2i!U! o:.K) ,L)C0fZ%*H oew3p2(n\;%+{R!J[QVy%!tbEzB[CqYc]%y#2Gd<_+&/oSRV77*ltsHUtTB319&Ѣr9wQTtSz@~b,aqiiw8NQBrKA2 * +#q!K=F| ݐxZ.q "7@ɮpe[Zr&87Y%< 'N2; ׊[^I0Co~l1g(AC9BHLO@1$)n- I7hK JɈZ܁W<AH`H>P`CylV}͚YZ-8klS`*k7:fJ7A GvaXu7LVx-poHu61`dG 0t{gV@} k–}cTg.fAV[Kx.vSjoÔùtk@ 'R1u cf$nVnMT $j9A@@A`qyӥANP]$'$Qt(QPۈ|;d(A(#vMO}@qgdu`98**1p=:YFUALT;!j`#W&U0aς1B /?<{ GZa[ ~z?ȁ*Nn>"ZR5wt%kHP%C  "Ir%JgWJ~0AL%(n6lgFCq#Iפ@;pN|X85,͠-#˕@iuģYVH2zU[8M|z.HOkdٕH(R|X`#Zy9Vf8Jki#* y*6𓌢M09I!T^cB琏ȡ&WT[pUO[AWkdIw̭l/jPMl褫P~FeC{ƣ]QVEwk3 r~ b#Dؽ N&ҫʣ99%J3/o;.fO*FOa-j[$1&,b2 WnK w)뛒D1Q 6J-R}^.#X ooU#v0]\'9&(HTdnj%qQ~D , %eMHW0Oqz.u4u#Xѿ~UGl_z '?m.M!p?7t B$ xlY/ެ~ò B#ܐ20ųmx2aM+NQ2G{ ,&%N_BE<`{]0Gr.ٮA m 0*~1!Dt>1DӘU]*jh&R-9qKיB,ch_K9$WuX}WBH7L_qquDVYnpxv"V|)%1şh2CZ}dN Bo(_+MCmΌNMw#5oMv nmKڭ!U`"X* 3 f\,NNogy[~'h  ѪŢ \480#ւѱ%)ОQbhWo^x FOZG*cu[{xvMRp]M[qZ= B6?MېbҠFUetEl@k+@ $锥 :!'$\E\&=]5MB L`!2y= o0J]{:'s0`e^de-pޓ{5wyz.BF1;P dG X!MwŁpX4Lx!ut' ت/,jĜV(}Ad}.^`ëG0&źr6 (r#H_!8X l`8n-8{ &,CD>iPf|csQKdQሩF̄6* gAyU)?Gԓ RQOТofd<0cDWIʽNg"> 4GF2[ʍ*N`SU5 R" E6M=D-1>nv.Ptp =;gank~T0A*98Y^@s W99Zؘt3R2U`E'uڪmTP`L_$NաRT<$V&nqkwdT WA'5ЍsOk~$pŁ;HB-qHJЬ%g益㕴p)$bSQ?ϓvFևn3-I^+kgitIF7K-h&x=HԒ>)q1e +aT^<ua;Жe tn1 ,Un d/ |3\Y0&WsVQ!.Xfvwm)M6*;n/̪6FƎ[44W5TM8bQ شG;Ў~(=K;`Z9d@4_ҼC[?clT/Z׬a־[~SDW$ aĊ*RԍDϰ> NUW} cLqF1upw-scA/>xw!%f:,r)6먕ciJزy)%"[V[dkVk{GߧR?^&{CW*/T+d*1rC2u[ /)EcsںcpբDkh5\Gpyq uYiȄ`E,l%3F`Ћ]J[Yr%^{DJ;XYUڜԻDS bu.պ(C]0C]Eүv0eZdd:ɯPX)E*Zlj8nYjhVc+{n|m#Z(建V5>S(zVxx'Ya:,0m*ȊbUƓhcdhBeKEυi8E9TW&Av{s]z7V_:!d>dnb?EzXŸ!B!T-=*wEk*DV/٫[IjqJ?V4^9ިM8S-Jid`6(clx#ő-EU'.ܟL(زoɊSz|`R5}VnJ 5@gSJ d/R]w ]\7PUzgC<3bpMhtÕdNJ,^pa*6wR>QM8r22^f>S'|ޞt="^+("%eBFԬӿFND;,D 1^:N:mnZ|A'"Cs'y~N!uiTVI}gh<1{.EQC]MrXyF-5و"uucdV46`"7:F:l_,Zd$M ߭JGr+m_A[j˴m`A\UT.ct6Y9)IT *G{e 0“t2K hA&dz[}j#ө<5u }S@Nt=Us{8~0A"&H"".3]B[Vuǵ'ỉ/=j?RG-+:/Hgv"<*֔(l;#`+6h?r p5Xy% lqI,;vgRk7/Y4i} 1qcĎodI hˈLeUؕ,(! pSS>&ȑ"׏|vu R^T*Y݅JQ>6>vtp'̱*@hgRk](*i:ZճG6zK T% =#T{SxstڟUaߪeHS+Ȑ:<<\AMG:-K} ʗ9.dH˲şE+Έ}ΡI#<+TSFh;>k wLi6qQ)V-0(/—f4NJOt+/S>5D&!j1k@Dm+5Q˫ y̩o"*YDŬ0gP2Ѕ;d\vKw"۔OZ Mz""C6d_2s.3HfYԌzu髐_ϺR?'.MRtِ։)u]Fxk#f} uq"KSE.PۈlNSʓK]cL"> cYy߮nqƻx[fxJ{.!y Pf"ziCXô~v~n'HnQ샚6]$hmgS(pP|_'Rrr@cp-{JozTZBXqdnїUJ e>͈dI5>QB GMFЭ]&$1&#YMBOxsJr:"n1L\ |++A1 H@U,<2a>(X`]+xk2?4z'QZ_koI!֡*|3qaqô$}eѓmb^aԯ_9l׵I@kꞑ!OҠyV[)%<84t΋ =bF-AN ז)LkLb2INShr+JYʬWɛLD:Rj/7 Ct)-R%$λ|IzF9f-_j`  [i񯙡cx\ hXTNfmFp,PP5(D/,͇Á(zL讌^$i օBD9M"#NyX5OpD+ HQۃI:eg+ƣtFBYA@O3%!T ufO[rWb  gYUp[p" bh)^F=2F|j/;Sӓ[dB\oۋL#wes "r [ScU D 7g.ǂ!C!',P2G5n#;RM9r;W͆N=eqXMItRၦY)"敮nOKBI;_1S UGM'QE!K oQLf%Qid@7XZ Cuߍ0yZK xr!S!Ϝ:6E? `Tp_&hKœ e*7q@|(QިƮjנ=q!+>{xԒ~ޓE)sKr<[Rj{Bk3f4R_^IR$,BS6!C!?=O J,!e &(m/pOf%~Dc!ltPYeZ!!" PY%%> k.&jM"NG*.jς?I?.l#Z5*JPηs\eBH"Z񯁏( peHgKspĸ!`^A! ʨ)2]EEa8 f  Ar(B-mMbDa/o}JZu:D:Q !t&bp.OlH%_0V2UA"O,jA#a."²K~V:/A2Cw #x޸lInʯ!Ybd*Yx m0 #i|!p PvƌϾLV3Je4La!W #,.0x%f_vCI[ +ksG@_>6OS Mp+ ۄADMJ$trH7)B0LjMi%Z4xb#!!- ||Tǝԗn|8 v+aiu 'hX![biyv@gR{DɈB0c9[!c'9_kbvFZ;5Z)~;p9e9bU|sVmsدxll6{X:> ŠH|;'LÃ}iTIK8_ ]H8m-2h IOV4DOlOExb?@h9 iĘRx9;Llqp,ht޷Z(ԍ=]eBJ! " :CUԉDC2D]iL.0pEP^A˿b(-l|a! ) r#WSLAIFC]IOS' d>8N3I1I-^󐐻aVrMɫ|SP> gV!)(na1V^":\Jdጆ+c.*%Rl_a@Ery4)Yۺ7y|i=ڗ@5>PRD4hX ,#%.C0 |a$_XEt<==MᠲJ@?8E //_2/Gpćmevf;4 ʌm1K&xPFv..#ą*M+!_t>DdM$#z7Œc ]\W PhS$_#9ЈTFn(14(i9ױ++ߛr?Iţ'b:qAƒ謰O(+&+"a}UT(LkXJNYwGrXF̘^^X5{gjP]H$| /mhKT{&[,%Qq#iD#!7.CjOR969Qpf,fޏeFJiUpHf@K :qyJcb߼@BF]0ȅAcb`9B; _9qAx괨l˳_"d0BDJ%g9gPr@|H 5[5BF!Q.C_PRv P  I>JŲ'dT:gd;[%A |!sM'Xd3{ؔjEZslrH,/(JF pmPue8DIG"Q/  ԑΘ'fk߈XG I; Ĥ7w?8?M9i$\ ^*^{RB\7KFX2PJD%$;hP!!KNjQy1 Oe~̓1tәr]bq?j* +H'  d/3Gnא]6H6YPtsI۱uܒmr' :p/^"ߵ|~D57[OlM8? Y#8#!3.$Qо"!:6SHeHEz8&= Y I";v%-vo4LK14I|&4o4xdEζo- +%"5I #Eu( JKLgCjIiA?u4t%HƲtR܃Tpꁵ̳ @Hak 8fQy'.QQ.%#/ӈܞҖ~N^~!ܴXjgDC'` `?$ȼM ̄xXCC'mrVpa?g ܥ|pHr!" dM ,uHJG텤ѝf 6 eۈ|6xІ@J[A>oQHbFQi .RI'5B k[.sq3 |sah2n'V`)-"6%qAŠ1atл0=>$icT}z6-K ҕVR=^B7Wnͤ{\Q(3&9Vm+(}.-ȭ]#*kT^ @_1%' &{A u\~-r+S>$h I>TSo5h% |R*Zݤ7};=p=9+[C,(]56pyVWO>[ -OIKl,+82>0u 8ˆRXf|mzj`ɯ~}f*#f,6?]ťQz>3h0P[s翵 ɤV0u"i {j}q1}-czi8jϣKNy&N p>(}p Gfk٣45YPͥ ʹ-f!J@/WOqd21Mjs[ M%{=9Aqh]Z5MA2=(U kͦ="pQ".]E&m.&5s), 2DنP&2LCC5pڹeyQx݄W7 Xء]ti)Hه;\+s.rKIѤB-,aSE{d"fS#)I,'0Pʑh(rVBUc?cTR/rs6!# ;IXWF!r<VvG6r+S!$ yK#>A φByq!0?^H%F#aCK QQWxn nP.T ѬVe$?\¿Op.z>Aт\j %>"Oj!)vf1f)x^0Bf" 3͙c;TXARo(!_'SpbjI9eX2 URsHKwD:AO= LjUPB*'*D]JVb ~#i,$P_(zkKpLc;HCkS,8)H+ cT%\iL/-`]R';\ 0.M$Yta,GM": &;DVA7n@}#/7SI>s(ډ4q7ԷŅy`*g"*mzНqx )Mp'$U-=Wv*`hWfqPu]oZUٴSAV,eFL:|ZDC5t:E8 a Q{JT"/Îy%a.b-JDXE )Ecp)#+5J"^5_+e&e4GrN1&KLOqȯ?kf~W4CsG"=^+yut gZ ߠF`@mӽ0zPLJ*@r{.S0ahhU4eJJg.`-Y1vfF]fUͶV.N{#N#4^R9 EF 8r_fF |Fx.(c3=nB7`_@702OB Dĺv6##&SN+%H#?2Z׍\@lHrF_G6+ ^ h|ʼ/ q]2nsQHq\25Y6?-W%?@j\WԹAMΕwnztW|MR~JQ- :FOy\O3.rbYEJapJOYI"o& ?mk2 x PޚTt=4]6Jþ `7 9YSѻ9Gַ%.% ]aoqӎL6|7b1WNKPPbc4&.}^5;|22G-NIL?1k%q ?pHω%ɬѽQ٣۳ p!S;DpcJFEP:leiP@W5ZtVhP*qe!#ӨNO`:tĹA+07m`_yñ48X2 hf;qrtll%G"Wk|P%ߧ|z{]҂ _hO"f`+SHvHTz(5;JkZl<hf؅k&m!I֊ Eq#1Ȩړ9 ^͕*wEUp"~/u]J9iDcu0+EA#՝Nrj@4lT'N] 7W:)Yo!B`[J1+tq`S,e:%UqL^L]z5׋$3ǰHN?I pC7 GǗe JO1/AL.Z*eW}lo\3E1{0( {)ybr sTI͎'$!xNT"D_? 6u.E&We􋽗7=?쁕i-nLtda:7R'L퓨#1C$$u1U^2"c)_ Lm'733_"bg|I=.FM3^:>E馘9PLc}^}e>3yvRp/kvcgrybbEn,V!]׳rEi>)+3lɊVXpBB)x EJ#=l%,w\K(HjKܓR. lD.[١؇4|kɎ[Gj:$xwR 55b[%~uZ,ROO4|XD( B'.o R)h"c%[3rvd^V$ڸbIQ!PVUS /%.FxMhoa adR^\e)OE!e]T݆"f Om2`D͸C;==4N4…L]s! -(MrWtYy`0K92ѹ-2cjZH:ƶ1Ur zIenHC yeLy<29#-v+3w/ L$f홣92.~EIܓ@4. v^S*68B, WRaNw;0Fr1aՁ1_hу.p@tb/mW$;{׭WMcEhć`nV9%66J'1jÈ)Pp/*'U"`K#~4sgFG˜x5iVۤPD QoՕ x0!傐Eβ^5*E@w,&4cG6jLbnO ˔آ(c{O#@x/JJIVkfqT*"l qЅUԲCJ -B"ien$e" t)C7M@=ca#gٗ awVOh gYA?cZc!z@DV("!?/AX4柰23"Jx~jh%5;޶)R r1%(G#UPf-0:IUF jc#3JR nY#.; }4 ,&Q& vjh˸L[h#;+Etg3>Ā&#!bm f fg@65-!n0MۮP#yɥ X) QQJb4xL+a̖ ].>U\';\T_keO!zF@ntz:??Ei 6P3J+qӼ/Xm 5:錥΃՚Vж !ou'q |;r=Խa% |Y,e~F.ByAoӑOPq7=++ҾVWrP/j!ALXkSMZ3y{HV``nR1n+m6O+R|̪ x  Y)ڬěOunc-V^&}\#ťQi, 17Tz8sj'}Xkm JBS@&tTUbu8P=1V'u<ΖMMi"JOiS;!@nԥ))I|65*VěM"G5WoBYʾ7o}Ik+[q2>+ntR 4F= / B ŵFFsil ;H'D>:C*hY?8"KOY(1H Qr-l )e2یU췚UF-CQ]cKJMW&IF7(Mv_$~Qa5Ce yZP%SKob6Ds'wAt!p*6;jS1 #\mZ- [D3H$~٧u|S;iH!N@ٌeZ-ZD SC)KYڔMh"Qen⪢L6P$DJL s! 1.,?q-~]q OSLjp+7HyA;S{OPřy;sxO waCҢ$WDq\Ϻóલ5X4$EF@¸K8wW5i-l/ Iqs2QXiaf:9SaX΃DnJP0)lNj^AER[+ zhRRG.Ш>x-EֆpRxDi?@%)I KHܐ2x22 T o_q RpAD_4%˭#S#^LKW! ;;uJā@ǤRVɩ=()$J5(!$ԣfkJC@K/,"*8)xkrjhXˮfYoL919DV1rc#W85m;bb ȮfΆc<E~ %yhY*8Tď dA}X_mк% d^+"{NB\~H!hH" 3UFB`rH`fޞ0=1e ECH/0&, )Hn%-VE#CD!g4% ;h(.;;^BK"q й:0L¥ۈvTa,_q-1ٛV>}&&cȖdi-NH^s )űF$L7J4W* aAzO L+fy6AlGI tU>"D}3fG3Aаstk:,qM;dNڗW)x4M_fșCShlAD!0q!G C8 DK;U$%uАE="!7n t`F AL 1VZ-t$A\Q\/r2--f9zʂd$",+Y^z%(S9:ZVbgw}#cљa^Q%U 7dg MGq,kwMZr5 # 82(%x*:Ko$v3 %L؋>W-Q`yLg;NP˝ILC[B3y744CA7b81DkХmb )a]&3 R WEe)Lb'q`/aYY)J>Vbq ȷ iE Pa=5RĚq@@C2C&(qrw[L-zgDiP*Q1AͬVDP)0E34uPIQڵHr3 ?kҨ0%z1rxZV) `bJ5W]C6ل7#5@p#* 7#) @ `6x@Qp9((O ڠFMfwc>IzE/ XXA$h{_b `*²ApʲXX  q?15z˜Bxa$# XE$tTz$[ R*u"a ,\0(<Ĩ^nQC,#XS"Ά*H 1\$s7 ,aWLb" Sz,n%u4Le8R+r|;m]?Fwr-f2  5Gd2WEGHC]yLN,}1,^ݒ1 D^՚aؒQKO)w^Q_uF־U6b.ŲJNFbM(wG4\Pu+[6lW'ZȤWMUjУ]DB8Zq+^Hnr،FomS{9-b Y8[4&%tO_~˒orĢE[wRX_=VMk$h oc`nayJI/ X²"^7pBGbo1:b3 !3qdq@rk@ERЊ_VzEx"Oi' "C_5Eh0u% yvEa2|;ݎZZݤ 3mE$lT ˎyOu E3Ix\qm.0[ꁸd,vSWd|'b0E{m; ;Q(_ᖐZGJPm7k.nXaV &_d9o/b:PUۨbF* "C)WHk`n@X91fRI\&N4`PB4 T_],m3I z@X₝ ~تA;>ThZ?Aè}dc\ۖ"*Bc'x++]_țmP 鄖.ʓ^Ȑ.KLJ?JZSU~&htʃAZ&чNf_e4A8 ׯxg秡,kfUtiNb)m(ؗPfc+P'=ɽI%[Rvo5d6:sut0"1-Œj#s ͋1ޭ j뒾#ð?LD:&dL1yGS1|hw<'vF҈}vV{'O4! )m"*=Ož~` -&x@j̕$U(9voOsq 59OQi{T̉?,RA4gGe`d oNUb)o&(Ȧd 7?c&:ՊMhUennzrR'5$jjAl< جm/xL28%Tꅸbe.1_@ hׅO 5NU'Sc>Ȣe*&B"~,#W:HpY0icQ9@%I_Vՙ 7^UMR aF{,qiheJuk3mjCZBa&xw:i(`@lY:Zh d&km@O`Bug) Pi^ Ҳ/@I xݙMJӈ ni7+'bb 0R#z y+$W]DHQ/IAw"h')k95Pd ޤ5p1#n=fca@btyŠ*@rJb*b2k;*4&og"~?s٘ c5^|n#ۿR̨|Ԕ$j9,^nj”-aOq3V8$#n0Fyds]403rKєD Y7[DW@.f*6(R3CRY@Fd3d, {X6'BF Dk;,AYʻ2uޘqM]`qj5$Zhœ 2q=@+%hEX $m}Q3w*Avj l; ")K\oWfJp# Aݽ&I])y˖82\1",fmd9nM(B t+()}JzPĊG-\o~L#*<٥ūNSƕ]<@YTd< [SB2`=}Ißצ*wl4lq)[/N3 M6AEf&/J(7'F!^;ձQ&m'N鮽AS/g?[k]9Q6Fh,R\e6B>e*d` L6*x9Z 8vPK5`V5t9Rޒ:1;d]?>.l[w!+ t$I:B] ;V m+45?Lv=GҪg`ѣ~ɤh8 DD{3! ,[k*2aCYUC$DѼur1L|$>MUUD4S>HPtJ;=\1i! g1@ $HR&:Hh{q{'W+? ri<SpCt,jM0ahw1=.y/t+}OQąSdĺ45Fp$ S5WDe$,\:xęT—nϊz|iŋrr,!HV_$)fmk63шUašaGDVOpR2 A(Uy"L-̩Q|'2Q!G ^I :`oxגH W՛+f80W~a&t,n fxcB=X K۝0gxr _?vwQ} DbB"g-$9%z`q(Az ]k4uATū?M&?]I+ 1J% K{XB[-E`Eݒþ0@+U!©{^L&Pa! vViBa7^ 'H%$f)Je4R\8}k",ы,&)b5cMQ"^%Yr;-՝1S]27&x xp}^\R!*ݶhץat"p$,6ǧcSܓ工@,zH#):Sv9Ҽ "|vz*IK"/-<Č |Khub=?԰Է5˞= *,1 zDN$4Zhy `05\ _⨁<ڊ!/AV^ɫDld!RYl Ro)`e Ըpf xQ2>DM ;;j-=ra\~]UMcs+e˰atçz+SF 1]"k6po#9x"U4ua Xv ! .6$>UU}I ȲFu9DoJ^`2Jn9%a{ev\)vU-3[ug'wGAŰEnL49w& R0Ā+ٱ X/z~(&f bU*A<} N}Y:b dωt=!rָdx wN1$9*_ y ˆI lFSdD=ѨT0IL &z/IJ JR*U2+dO`@ճi,+0)qL(ȶ&I_R/n)U3a̦@fS&S=ը!Xy&ʸ(jԅqn7Bw2+,.È!pMrb`e*0I0XxF#'VܩHlBfqN5Q}XbDBHf?%"5[E]CI0Z[gRY2xT\eV3E!R',ьgX0Ay [PP\Ӎ##Pi F""zr<H6.cһEH'sĿiɴ^U1el~ D/1s֢_Im\ ,)q'K(1JIyċHkjtx* w6R3ɋ/& ՆD Sԇןߋ#ILd7" |Z#PDN?oyJ@q6u^A:d)"X z~Y6#SG̤@.6 [R6Pq (v{cIH_&yTxO U0RbBw}xF]DEQ MNB!ppfJʮi &AAx KYCFyj %bq/o&}Zż\bSB9`8ag%gX c$LSJ/&A\e3ׇLOh D_}KK9'FC j?!fq R"Njvb#\g \ hC|ƍ ~*[kl|h'0b"%9QV^&`?-)] 8Ia4R!{2#봈na 0^DG Jec@t S♶p4}?HK}UqO(+؇;E`"sBճH >F& J&E&=Of*Z;&MZHr[1R/~ '4k}o8Ȇ,JSD- gz,Ȑ2 T($' w",zsJ!CRY BpwmT?5%S*S8#DuKĠQ唅2D`Jl!E8$'ihd"8/{iD[Bj^aдWx97" &+gX%3|Y>U&.f", v31TGGm|!M GIiL(*u@@bCt[?y8 [pG2 !0T%owiH$s fJZ\-.‘Gkz;D댥%9%[mb~ՍZL},+r #YH{cRB >>yn!2=C.t'3^jS!HO27B=rZ"c0"x+M'fƞՓi0,SQB < Wc g?5 A$Og*,1RtS㘬=ypw^`'ҲTQ*9g̭bPJ le4"`)[y)py¯fM"Wd򃳊sXW%X-aUT|1@eQ().E-]B#&_p-CB:$P< TdMuB#dَQ9YYjTfgKhM$bs FI^{`YH% Nuc\Ѐѩ$=)B8E:rLjӵGE1 =a@5XLH1LQKKHɠX&ip F3~cHP]fWhC`tm (ۨ"cE"+ݳ~Q'} #1B`C5zKMn_&Ak(R^ D4fƅՍ%VTh<H1 6_,2.+B؝kD~xRO0z¸;K>V ;ڔ D Kٳ@%N `@^CVP aDŽ Ȧ+hza 4mda4Rc!G^6[_!K֛Ud%\R.O+ā%dVĪxNE2-&+PI!xȶiFqX \6[)2|xӖA?db@Sou2W|^'@qCX%eG ]&- ue| 'UPPqjH3"DE-$~[oV0 soÇ1f/E\⚀2aiix]p((߱,R qCKlalOMB+F>PgtDFѤtua!=$  [mZ|'$8M,DY2%;L &R1iطKǫ)Ě$>"KH+R+p?فwKPCJ)V)2sD ]Q޿(ppi54:BhTSf$ZD@=HɊ:|⷏S+!"#ttT]++?LCך 'de9i )al?%1㬀)W7!`lZ*TgNj"^ΙIo,bd@R@*azN?rbHqJh{!@:zJ1:$!'N őnO\PJT ЛD_R; DjnXq!W*ƛ>zS:,QdW ~ [Ĥ\uQIzD(O浳0djm~~ݕeլ€##(m8 ..^zs~5۶#J$ 9R̎BeuJt}@l>Ub$ ^ tP!8Rn ݌QlONKYDcuM+3q~H0aHL[$tMvn +̥h/;(GrK5R[UXcGwm&os@#>+&B6zH*?Vt: fԀ:ہ !9(:~|dTʶ%)tTB_iPTgXA$ 뿬b''qV4pP8W%%]ik>4tW1QMx:$U%G0ey'|HJ$Y,󨣜ש~@wlVdBFHe~yBsL&3V3B.%DBġ^Oh/R3ln'u3 - ~C:nuOfc}.o4NT\lR*3I-G1 vB)Y֑#{Ap]8ȭ.=N@oSwc3ҭBҡ: щH:pX_i25 P;ȴOEɵSᦈCd..N'NbFUP%֘IRfKryMH)9mat-0.4.2/test/dirty é.jpg000066400000000000000000000026211223433004300157210ustar00rootroot00000000000000JFIFHHDPhotoshop 3.08BIM'EXIFnI am harmful too !I am an harmful commentC    $.' ",#(7),01444'9=82<.342C  2!!2222222222222222222222222222222222222222222222222222"0!1AQ"q2aBb*!Q"1aA2R ?T,C.[NY)ɭU] Op{/"JTw4d΋n3( MYV Qcv7v~R=Eo"]5D%QU m`㊑[ \3شIP=~hVz!zn{d3>dfBt{?{RMō oe`K^^8-S:^!aHP*ljKXބhD-<(☔l62)4_mKu{UgH’99։iO$qa$axte!D7M7C *n@h((o~>T7pt. _Փ lN"BK q:s}E7N$Gǁ44b+-0`PGҹ8\815+Hhi A"6r-:9P֡V~;kz$pT8YY/ Hcz>K[DpH~"bmvEԝj6)=m1&Zޕ ISSjMqv,1͍67t jCEե QJJ"Ddg"4ym>֞ǜnFR^+ ZX .'nx)Șlb:]HR*>Jh;s ; rl8IlE;u[Kڔ’oMc~:om|*b3j̋i'ؐJ{UTHo^yQGK$_`E(侸GղhULuVQ_Laͨ("( mat-0.4.2/test/dirty é.mp3000066400000000000000000001015561223433004300156470ustar00rootroot00000000000000ID3@I  930uTCONPythonTALB harmfullTRCK42TXXXI am a various commentTIT2I am soTYER1337TDRC1337COMMThank you for using MAT !TPE1jvoisindInfoO  #&&*-0337:==@DGJJMQTWWZ]addgjnnqtw{{~9LAME3.99r$N` de`S `2o(`"wsÁw= ']B"! [舎- `bu( 7˃>gp|˟ Ym ԑ$$ ."ܰ,H/jP080LECYr{n`ÌujMG%m"ai*Ӷ_S)]cռ}~v]ϵX1P kA =`g2 !s &;7Ș * @ ~~[:w1}!p)w 2T@jЌ_R=5;5"?RfVed5P)AprA|!;Ef\;qP5o17dFT$HX/X)dem0!XNlo|.'PA*DK$a T,mdB-(@J~< [i0g$q_E,GGxhaET EaYkhC|<ij!qS)3, RiRz5gv^ՙveu@@~T* Z_$5N@:gA17pm+#1)n%N1OiMwLԙ}3;fnoyZ6T—fd;b-g\JL` O9Q4, t,Yn/O`񞯯^_W' G߸\Ok?),{Gّ۵^__Mwh+Ҽ^\KI*ʤ+q(FAÄ8X`A6iD28'RZP C%"l^kز!s/3ȍj19&?)\"V2qWq,ìhYHdRs 2".*l"YgǤjpwRQE9MI\{TTGV_kw7Uɇh@$ILp{EqRD2:xb[TW &6L;6QUa擳>;/j RB i, ,A bL.jiMkciŷWJ 1IV:H *ڌ}YFS2P fY'Bb8>P1j?Ra,RJW٪lf-52؛q'ZhO #kH֝Cpn+\\2 `2KI ޙnqej57P G28D͈an{xvaNMQJ)&*@m:.Q ؙ5IA''{=7%)I> SI}L5Fc wUYDCV7?ZU@(Fcf-$9)uPj)qTvҬE: ɂԊs6MQ/ګmd5lVK= *(#cǤmH΀ఈf*ꈂbO4߆KcK͖^ub7&&f"ѣLE :Y7A9 E#A7V'_&Mh6:93GuǡXq! *@3RhT#.0ӓ#fdo՗MmX*BzƊ ţo0`ԛ}oqO(+2-j*o}MZ-8UR!kv3h.Z_,*IW"[ _X.wTjfLXlfB I3*RM CB8ʣ3heAT#PzF1rDŽPJ0GΣY{7{Atj,@ס,dџ8(s$t 8Bîk==I5߻cmpĐ8GDBcB P>}*֒EBQ,0d؃j!3,*($"uZ5i,`d:)Ԧb">&IR9܅G[?ۓ{29RNw6k+_1J^񓒛hnqȯ+&;҃!1"bPo`q BZ*t9m44$KJbJ91JpԼJޟd]}~xmhvY /M4BV^xP zIg̴ޫZM4(@cȢiZfر ef'ӀSJp  9˙JeBXI2]F2K4#D&YԜ@&f,4R Bv UJ1*aSWE)aB'mI0NKVyר-;?OvUWiFdFkqK**l"mX9@ ԄՇg,E˪B K:z?LES(ɅZ:UErBN,NV elRI(HVD|J Q~Qo#~)E%gr9-@}='^ I@!6dl+U{$IRd8x%d*bKyЫjbigĊk؃eWwzvg520]Bq悙{΃ ܎!l+Nz4dTdQbl*ɑA9IHr2rlw72#K i]+5S2M[4dbffhAA6QNs-Gj 3#J$}MTG;2*ajIidR( + 1 I)p+T7d l֡K#H$E[="ȑidVVȏMjB}_>JdD  SР2yPOW &İ'##IɎ}4^66.hĒH?YrR LFet sSI-D9кSLpG Gdh0颴UV;=(ʍ Z-HV63U ٚ16dPe=3WmH^ '/oWQboӵ@0z>Y#}u@moh$'cFQ0ޥdA YgKQ,QiIe9 $Ma< +XMٹe Z Wiu OMI0Y4E3r0dlVN-*+ Z3TY%T`խ T%n)Ўz;{Wۭ X}U! ġs'gBG\tt#Ʒu@,J<%IHCaDF(lbIJH̽MAhqY19$:F&(ŮP\XIj3jhr1QUV\AbUY2cG;mD!1g#r}`ɋP!F#~WV?PgGz!T7&ʻ*!Ѐ @ H0@''bGOבe1: ˋ Qr/O$Њ۽\qkEYRHJyLN\d9l֡LP, *L<1_ǰȈptz>);[6 >_]hV, H !TFtxn/oMG2-O׽i,H A6/H\+Ch@L"p9'f>D"ʹɾnkCj란QwpHkk9qTY 9su/?\s(ZY @s,W!M6̶LɅQl,uNFW;n_F֯$?؞{_u~j#M5 ӈ]K_R+ 53bG0T%1NQWEvg5(crVZ…ًON.7OFQyJdM,|QS ʛjt=5{( dl!0p'8(Z/i0 IhS: 15 j߹YeuS`+7dHEdS@Mj=bkὂ{uVE1-ILUXb:6\p3t}$ DB8 XD(]l4|CVZc0WYM6#mϔ[hM#d2G*.yb=z0:۽8h fbNN\y"K@EDB չ1{ZE[GM6x~J"5 Ѭr b))B]t9 RwŧpsB|9+]oEw!;SK;;WfO _̛ٚfOwUO:zfh@[bf\ ٍ'p`Fr,"&RjgY6KnKK,iLV&m2"F'Yr24#6Cr{$vIvY/^&Kd$lW!32) :K<"Z5H2\+ygSIbV)’t)&U@H6Zhzc6ߊoWWa&s~<۪FD*CtX֐l<4(HKB7Jb2 q7|qgn~˜db~ =&2TIv䅼YW+KRmM^Qe-lKpGFE䩫UHknqX)A9n45(pɒP1:_LJ,lIDEe!&_FVKIa!^\ ŠӞv)djW!Lr* H,"\$pI_`UgmcY}DKؽS!9eVLN Tz-j91g>ƳZ|W\@|pqRdP%^'۶‹ŻpɳXMhuvy4d !(QiMjFs4Z0.e#a\GHAQ(IkA<&lQ ~K]x"}ԙd)jhffִ_C (C$b.]f?]{vm*F߹{[$9K6 u'i+Vp+Whp64̞jUmPB(Mp&'|r\ڈZ.אdlW!L&*KH X/Ƞ'-!g~Q)Q%FA0B:`h8tnT,NU%fS IHAeI@GChk]Mhuܑ_OWw~l@ q60ld/#զǫ2Av:5T}m,YmLV=HTGe4dB:M-Hh]E7uEi92a)Q􈘵 lKHKcS4@lCuAajai{tښ;WA4sac C; L"ڝ)nCVmΠ1Agׇ}G̮Q_iK[qJEiǿEZYl~tdlW!2.`8$"=^9ȯlK`E4́hB0(Jc.\,)/jD 50 !$eGr7.v yQ<6YQM6(bhNͪ=>ˬEn( *YutVYE282tB.JC Kj$(S MI1JfۖUI2oR&>5M'eUnT^NԗrQ6MM*AoDҪa,zhswvHqdIeVٗ >MѦ\3k$@ 1@Ֆq~"WmS%@CJ뱰>g!oBŪ/|o(q`[u{)4u[zdkXq3+@*Y0\Ȩ蠰D(#QhGi]eYZ0Bu9Q{*$e"^0V(dv,֑DzE?ӥ*#`*ITR!ڲ] ' tv ]􊇦iTA+qRتPsg4I2zz&Z0}΃ ͘aK1=.Q70\qR v<(9K$ |TYD%[Egj '+.0߻MͼQ]5^=Փ=@V %U`D{Fjp5(gsXB\Rr n4_%ҳtd]bg[dk!1**8,1\j&1)t-z^mLԴ#'"RF DDud5!wWj]'S1 NsKY[&uyٞ0U{5[CZ6J-j:]L:!-hgHD - rAy0ƩN#XR}x:g0(e"VWÄ;Q(|Q*bX=SQby2Ь3DMuXM k)\bOA1I5)z[PV]f)mGdi  $Phj"}D!PtQ02Ƨf,Jbߣݔ/6v)h _Hr+tPS:Vlb!EO'nhGu^(QDeG)4n dlVLr'8(yZʀ$7qΦ@1(!]{ýZAcݓII70y#"G&]LK6ԺϢZPjg`&Șl XA D`gb mPʡ)pҴ!ڔQ[立F_zb!@UJْ_ѫY܅ x fNa6ԂE28cYqLnzEnJ458IU̞M*Qm%зgmEa˯m>]XZ[rqqY 4zEɧlc3F-Lv("r ޱj-c(M}^ݩ*~ҫUvɗK(AzR8mD/&ydzk!Kr/`*;D"Z-h䐈$J;H| DJq'Ym@a%I=Q؂ ronXxq&Y(96o1*Ҧmo&,s^+[K3: R5^)SC2Ome'~z={ίU, &!0ѥml%ZGE$Ʊȣ 0 (d@/A+3L;Db-u9Jvq甿%a*hixWGR(YBm,Ǻn~ѿ\r}ʖK^ˢfit7Xn٪BVK" (}ByzWܽ[;1nЯWԬФf`PAJ!`i * Gjjt,21|)DٳHx@%!g^% Ӓ 8J:cPOe>À!Y[41ZADq$׉Z'ή,bfŒƥm1T&^ e Mz{ } 9?d\lW# 0R(*H$\5Ȟp[Xjh'KoB9.e$|+7'ԑ%%4uG1mu Bap8PA1 m?5(k ,v.N \+f3rD($ AkՐBQX'bM,e+n2Q ǼOzu0]w~o׬$`~hHmd`$JIe02f">e 'W'H:xAjx)4del*kv'1cGF2n QqmRU SI 6̘#=)q9ḏŮ $DfhB$ӡ4S z>OwOdYkjס0b%:n` y\7Ⱦ,%Vn4 p8#-EWf&a縮-D "aҸTH B:uV "ZoG,Z{ k4D+ ۭg.E.6 Aw岡 c]!IN浳xj&ࠂ-,BB@TBL& cTS*M5wH?wؕJ}^Hq$^ZW(ᨡG7fdrQo-8ҟ $bZP5dVݐZӅ[m':u\ia1ߵ3 T=ey-OMMå !DN (BKUnz}%Z֋4^IB5rp2,k(TiTIK]avVSdXk!L.*l$"`Hi pЬQgc+~Nb@!D"GAI5Ip ^>'ҙ7iAn s^nUcQ\?OrcQ7 d۷ȿ1l[i\$vsaz9,3_6Mcy8BV =:jR$8թ47?_mz)+,WBQ + XHEP(\'P_X0#2(O$Vju?Wg衙DulXp>M/c@:7;&p2wweNs<$YQ5ePnv%e5x1Rs^S1՗QfϦRSN!>z- IEGfU;tcd H>$>JsLHB>@:&y?\"ؚ=YPide24AOcP20#!82$QƢyS؋Fc1l'Pښڋs&,YW7ĭ_> _׊wEѪ5`LnfsMl^D{iDD8y:C^jme=AondOPhXq1&@*8(5Z3Ⱦ( ?W|߰{߫Ԧ}m~6P/ԒoI!o:4\ʫd:2`RL&b aQHAAh$=AEXH*7zUR+4J-h#AI9RH/Df&6oř*)bP:F^=ǠoN")H9~34h:"aPLBz4تwT\ _B=5{@ :e,$J%u@tb?9bq ~K]|ތZ># Ũy9L9S1wIIIDZQ /(9"ޭkg3UK3OE W . ޡedMVlס2&@84"\0Ȩp>їz9O^v'S{II@ $ $y+Džh9.`y 8E48tz:4dlcX_<mb$E~l)g?6Í iu7GChJ˦*:,\dglеؙ(Y)<Ԏv@,oxq | fdQ TcJc KkJQkvI U_z^/aAa%ՂdNlMp-@z| "1_Ǥ@edJI<*2@頊K'y'oU}?觫wH@ِn+{aXD#Aq])@Bx\T2g $yU QH+o=eKxK|3d\:=t*6ʖ/vd7tuf/S}mj)(7jZ'=E#{e4P%Q ޭ m,"O~U>rLBI[d3GM4QCHU$0D AH6@ 4}1ppXcM&DF6̢i*brE6~m'xVv2XVVG[S2kLÞH1I" ia|8~>bIP$C r>dGlWq0b' \=Z3Ƞ,]+J.[fJf$0(mkJ1jn[/9ե}eyL@X8z@BtՓn͆er3DZy r'=(5i#Tq1)jDJ>1*yGf= %4q_p$dAlq0'*<,ZȺ@NSR> qЪrH :BÉ\xzENҐpb$ݒ8>@ B08,0}Y$5 9q{e]'AP*U_)k L4`g LRp%1̲JZΤ\J5c gjN_ZICj N0txwe7fX3 j2-UlSW=6 YB}x+JPDe^S,dQr&RjcSPZGY3ըd8k֡3%`9,"qaǤ̈(u%bQ4HB ^c-'Ab/yS8G QĬ0!0VuGj+-;U۫߻Ré".cD撼F|mD\DdGR~r2[Ӈi -u嚣'_ImM4=bc{Lś 6q( _4 kKج^%e  a=y_Un+*@Ȍ A8f(1,V)F)`IE}܉bt (~rJIbsK6ː<ӽEnd,lWY3r*`8(\<ȣi,3of˻9`ZcrMQZAii?m@ǚ6㤁\|ՠ \0`@@1yjqDk?[(p܁{VңZk⬄$dc.')DXX!qQ+;m D . $PU&Cj{YI1Swff&FӧOj3pb-tGDވ c@6Ykd0+XIVƺʄ [@$AŞlK!VZ]Fw7hMKS`$bVD[`v^Rj4\<=7f+!K,[N Bdi[Xx_m*qCd)lW!Mr*`*%UZ-ogi᜾aqouȷRQ͈iJ׸]Ԣ?'b&mUJE4 7]0.:yׯUI>޸mz9ra7 [z!hқ.13LQV9.DQP"hvH }d2@UZ1=ƨ|}{$)J.aQ"aMq 78(dv'TV ARzXⒹR@CRBr/_]Z}vM`64Bw!HC5p3 mdFkPZeLtԥXmTltb@)JaJZb~D$d$j!L.%"Eanjȕi,`}Ӈl4Eg -GVg-s][)c T&H;KEI6„YEi/Ux^y81 Z7D45ob.uNYVr۹Ohuag.":\àMpPZț( \)z&E<zPE E"[M5\ANV\-*nO5t[%]r+-:I2c%JD;bMOhl[>7;" kLhU W'Ǣ%Tq>6  Z! p8ɣXBMʔP*F9hAo2*d(lVLb$8, Z5(ఈ֥eiy{X(jj,њ,-376 yJiIIc[|mI=C;[J,ĝGRKL#/F#FKVd\VnЏMo_ZkOOѳtydƉ%9c64GMj(\LLMQ夲m3@jJ!# C063#g(@-άд"i廹*q͒LcĐR`KU'a( EАFP"@CJNsZ(2F$*%uD Y%lh4zSbskꪖoNBhR@@D,, RxhiʔRJ FOh,DH)9)~ Q ңK%gƤ,d!4lK+K"Z,ȷPQAQkj.i)$LJw@ݺzƷmާL#Yc 0T&:$ӎHSuvUiClۛ$æt vHO5:8i>KL+>]LRgxX(9Vzk!|LYΗFÉfFD& 2PݐJuyWM#YAY^웕_sL7*AhDaLHMl$/̤eGJUE Mr40ή(ifGFu ,J(0M6|ckmsOVsqL}(~SFT!qMyBWxa&'&՘ Ydj0+*8,ZȿhK#eKM$ԏdflXq22/*;,uZ1Șpm5l/hiuk>ۖ ҟhVZW^VOϧiyK鰾Q[?fjiԒ:piFi~Χ--Qӌc@ \en(UV,S`ZE7vf4*;L=Yd_I #z`L5dI Y3#&$r:,d˝&ÉJy@I NEuYSꌫ}/(kX|\PW0ii]43VjoQvߌMv:X֬ sӳGR*cv|qETHRQ+EWV{gPՆOQֹ`JD SH/Ri7n3MmdlW!0R.*( _Ǥi$rDB\(\a~{IK h5ܙI_sYAJ\}ΪE2qԒXRgw;UlҮ0ϑqhשifB2f~$JvG 'N{{ϼUd™5}hKWd yP_gBͺ>nK5O~j$*:}%*Iʕv Ao[B8#Fdj!Mr&`H\5pIzrxv}цdt2ўJ%cb:j/D)}(8ڷ?d(0#&uҒD,iz0wN>R M*S4 DPxi^v_G~nS$frqBmL/E`f,edvąDJb kJ;tMUIyT@Aɝxw۫g*pmPgKMH$L:t DL Uc1ȣ/3}JF bjEZ0yyCO@-3<]"Ƚb-H0T J_}_['_lAu^2њ냙fBPednlW0`'*L,]ǰHh<֣ F+3ӡ' .-4Ҁ lj^=2;%x?/f')^Gf- nF* J-FK9'nrNΙr|#8:4+t/>JWƷoWubX]uZa6DFtI3 ֊D\DMYd5pZʻ%32f%{#d&qxj}΁m-}[4jOy&Gt،0kL>ޡ=dH^IUwnQmwOM}YU61.!xh(8ʆ&K!^ \[D}Sdjq3B++$%Z/@#JR&c]5Om-jgS;'`jN c# -/]TE1Tm3_k`51 o4焢gil"Kf!``$@_SIwvogoRvCb&v)I1 D!6bŌgNY&ɐ{F  j֊nVL~ ?=3w{ԶUBMts:0DDSUrɹRے_+[U8H]@O=9IrlY32"+&ZO˱{)+o?ǪUef! 9D@<ғ?|6Ü^d`lX4r.@X"\5`)(] R$7#UU(Kd(MQor7+KKSֿ%nlf{1h;h2OiRqNdQHiwr[=i^cWb-ځ0͔buB(!)hd|A1Z'Bz׬YiY$ 52) P.(/0#H22eŜWhmJ}OդH5x>94l.od9\=o PTJA z=Tu{4KKUYeiu#2fdV 8"pZ*[!#@4D #OZx7dmks 1B&JN`@u]35vOuf˪=7Ƃ*^skmBʄVz>OG3il7ZKfeˣ_sFJFhZIh&hVim93$0 ;xVep+Wc}hWGcfQ ؠUlyimgl1kץNKlڵRۤʹzHnO/,IIEjYcEu|(Y$>[Kv7jʱ ̈́Z,ݾqֶvGBq%PNjbP1Z9rQ<$Xt!IhkP)8mۯ+ݻg ]Wsd -c'-i9rT(PaxkFG26djW!Mr$*;(^hnHd_-$_vRhb(WSNYz\-j49yࢍE!Q2@ J}Iy)e9F?̄lW7TZ+J%hB:⢮kM]ѣB:[GۭKIp lD̉,FJ@8h97ŤDP쉎)z +CYMjruW%J%2UU>ip\g(R7Q2e!(k-vC]WHj st)ҙX VeyY i~<8 0@k҆)BRzϵ{v()O#U08(g6<ξX je$ +A(QBrԡR 4-LbR HZ'Nd"$jV3'8,]Ǚ3Ȑ )31薱]#ؑ$Xd.l&1Ȟ:ɝCӚrVmI9^G&_"K+P DHì[\ Agny#!kǬHxonc{tRQiDV5,3թp\79jⸯ'c), D:L/"=x=(*,CNsroQIeݦf[h?$:ڭ$[Nh) :V+e_]6T`yvTGRn|umiZJ֦ K,:IUOڏ^lrvSB2 `YhirBw&@ % SI[s5udj t|E"˽ndj3r0*$<Z5F(9-;WitUSQ<\ؘ[5ڱ/4h%MO% 4J"W1pr1>U7(@,+$HUHpI${uǡ-Zѳ==)BV{>[d` LXB*1wx^@Re䢅&xشBqt=;|=R &:Iz9La魥>M) 9175䖬K*SKU= 0aob-f0tge5Ijlq)ڝ3("($ 0XiuoU|SrWqt^bEIf9nVf!:%4EHh Ŵ<d l֡I@#*8,\Ȉi )&nF| DIj49{S^c5{%iO% Xt0ki9/'JJ+6ƱKd%(TIx*tK"Ir,n,ʾ3Jn`QI[;xW}-خ CN(J1[bΜr%Rt$gS=ĚIJk\ ȕ\imhH2ƧlƢLNѿg`ʑOqd M kJEz28IH2&`TLTX I %ņeAs6D^Rz￿1:uS1Ť,c4WQ+'Km_%dlWqH':;<"_ǰHj^nkINMMd@V/Vsl.DTJ1d7}/KYH&Q Qڶ,\G]^RHEf2W@{(:$I'zb}gwr~hVVW E))3%tnQm ORV~Qz["H*s2-x`G̮|THΔ%5 UFggiZn"D̓W>r1ۘéOFYPQ ,>wjj(oio~3iWCfF32A>(M]熘"sL_oH $ jEj dkWq220($^@i`uE'hŨ"t`l0*Z5<(92,LF9fRu fڙ-qVea# yL-$nILקl8s!'fA`P@w JqRlm+W4Kztku-]H$?f#\%HNY-WT g)'S=w&E jeKMҟ/V(ytR.'zgI >ޫYJOR.bkhepI"cJRRBsG2ԔNYP@8` ;aWu;j߳ͽg*ECr"%E2,",^%$^@.ҸyE5^dmW 0p/`:l,BY\ˈp-lt\Aѧ9ȃm[տ)GYTFT({nKj#R,9-UA6҈O92fh  vrY "D癉3I^Ze Fc-$Kd\0]DjZ Z~??o3}y^jP] gCVd+Ǵ3Nl0ڱaj32,Q}u!%p^13J^lQQ ?<\`INrZ -(Js2VAVE7y `)x`7*Kď"G0Y-!EQ)c@$ez~_ѱ^i@A<0N;:Ɇ 4Q ?Jdk!0b+@:;@#]g5Țp05$Фڼ䗷sOZ-G @Y2BOB`Lnto <>kjHzŽ֜'G} 3]αJ-FK[ X %]lm^;}h1z-A%(B3A`WQ\{HD_=PQMQUD^]ZVDҷ$pt 5+STӃrPl[Zm `mAsӖ-l4L1Fm\D̝EOdmlc=eе`1Dg,(,^Z*hw~?GUvxeDXzc-0v; dkW2"%8("1\/ȯҶ{sG_nw=LLU3<<!'Lk;e{Pq tr1U;UlӮM%ZR"V rj~Ŝt!'PrҸa%8#9*[!]E)QLX &lXe #Htt_N7|U#<YF[HV[Y9S*J/%ts+i{VqR|2Kdf FWdX@ʩ<Īꊲ=y<} Sse ,G9JR(@"^9 AԺZyJ^-wgSwTk_ѮS :Jӵ*lYd* x*(dlVK(*8,^ࠈcUAtr){ oj&l52  hTZOKlےc)j)5&ǵ~dKI)U-!#=$ A|(PaTGj3M4QMĬH͎B۾R#ؚ?R_iMT7j~lD@  Zx1*J$@$Oэk-+r l'|WvlMn<üs#wYTO7pӌ6P\ISiww5Rr/ʍíejfHIsIZ9wN݉Ȱ#% ,}-nzQ]t=Z~%rۣ+J*7u6Bfh{Wܴ،Z96od$rj @$[4EXy"LZˢJfw2rB2$V0KAuL xEꄄQv.IER[W>Rdi(c)if#˩Nٱ|XɚlBY#D~ek*j}w?gOSnb(lP7 fCDx b?UqۗM]@>WA%R RII$txa28 z|:"+(mfdZnG3׬MR/2UMmI2-\B42dŞTM(%mт-HENj3BXT~L4y{fؠ5C`t;_F?vf;BAXsNXHk4"ڝW!èd`Z\=`CBz}ƈ_ EY HlH>6R`n8xvwc*Уw1M{ wmF؆|(ږo1q՟7gso|yB_̈Hh)]%LJ;hd^2 ''mimetypeapplication/vnd.oasis.opendocument.textPK>@nuu-Pictures/1000000000000032000000311EC5314D.pngPNG  IHDR21mH pHYs[ EIDATXõYkPSW99$r("`D*j(ji NuJ:A;* ReP,( 2(*b0 @r9'Rk7s{?{!s810\.9Oc?0A5Bh7v !3 pﯫ@4MӴBĉЋἍ~$ ˜`00 3f̘ &L:fAPv0^tN J ׯ;88===Ǝ0 }M---NNNEMd}Ç on45^7 :} 'NzH_SSS]]NdMMluԩS}||ƍGt{{F1 $I&&&N<cL(oB`?Z \@ xmmmA&,[ŋ?H$2c<<i>0LCCCǣ ޽{7''!~z\ #B7o &I!CGGh؆Akhx޽{:$i4y<^xxĉ)x2ӧA 999͙3$I x 6M2E \~ԩS...?F2 SRR={v[[1E\+C*fff~l6zJ"444<<''͛/9sFӽx񢾾^ӵ%fpQPPpQ{{{O<1&:;;ǎK5޽{"a79[nJAAA>>>EX"!!ŋ7n J%%%* 88Ȏ >zիBpƌF#Bjñv%%% Ͽvr\.h4_eժUb855믿vrrś7o/,,VӧsB@C&r{{{srr'Ohfal2BCCCI&  xKdqq+Woݺra F DЧ~RTo޼AQE`ؿ͛Ү_rF#AӦMZpWtttmmmqqB˖- bϞ= ,x0qJJ^7MMM$IB.V0/Bh4$I#R)B<))`Ν*Û6m:rHvvv``+}||8NkkZӝ:uJ,d.+֮]s…]vܾ}YfYYYYXXB666s__B(...;;*22ǏOMM-,,?::U=~X ?^2 s={ 6pwibѣj:44tɒ%fƌ ̀@TUU͝;!h>ぁ16"LJ($f ArҲD lذh- 7o>yI$#Gȩ2==4'ivqqaAw eۼyի,,,F InZZ@Aϟ$"##Ew}7iҤpeA[YY5{ld._~2:0dFE(޺u+܎ Q~ah6g:[jUuu5{뭬D"L&[/4MKo;Jo;eee5<< BX71˗/坝<:B͚5ɓ˗//))ay}aX0aEQZ`͙3'..nÆ ]]]53Ab"MMMzc\[[ x0}ccchh($X$.]/!$Ne777[[[ɤhjuwwwoo7o>]vD߂%sedd@B655A_߿|ryyygg')8++h4֭NU*UDDo*xq 0ƃ Op >G#`.{I$l8FINN>sLEEExx8BzӧO Ftrr]f ':غuWXeggLf0rssg͚fo߿v".0,=>â?<00PT?3@@й~ì"PQJ-[B{i裏Z-Iك[8=ő&r A--->>>VZmuuueeN;v, GZ-f>sd2of̘qFB}WllTeֶxL8JJJ*.. B;X#6/////!Gdσ:;;u:Z? ׭[7<k8L&C:u;B]"h8+#zIV ___Bakkfmm߰nzf@G5[~zTXtRaw profile type iptcx= 0 C}B[l;{?pAv &PBx M2>~l^E!ZIVV)bN7ؘye I PXv#S(hmk~IENDB`PK> content.xmlW[o6~߯4l؀ɲbm}Xe@lKn IIxHʗL'v"˃~;ow' SryPa^~xI߮VU0-fXI hKSUiY*d)%Ԕr*ct c|ږTe=EWXh@j^;óJE=bǙg6ֶeov1S΋ώv{9-fbVVP簱KTOY$fSOΈM} =97<8 2=  d31yrAk9UXv6:WJ:P݋|q> jfY8F+q49 2qi:&#œQ6nqC:"y`F ei7L[c?_nv֚PpgCCeF_*1qC~;tRNw Ar{i\B(R=81 {n.sG4~(=HgmAG/sz QH?m]hR`S4TGAiV!L3B17 GqƎUzf& +z߀W鷨Ui _r$W-?#N!V#D,A\ |̖"DA0uio,/#wH͒;JnyN`7sQg)y;cю*] ÃEK JIJB2jz9bJdVYML4\;49 @bTVĜP1L}Ow,y't'*܍\5*iJQ)w~^1,r-B~ O E .CCrtm %&io(*4'}CIdϏ ?_PK'öPK>=<1 manifest.rdfn0EwrfYdhjCP}]ҢUչ:8<{Όl[7?QF=O,-p*Q,Tk!ɲ C"[2b,#V`_A":q4v!Zl2 Kc~|' *S "tr5M }j"'.#*u15teJ]a2zPK> styles.xmlZ[۸~0hhYn}Xm(%b#I_3(Ѷ$~pcp8ͅCRo~>hǤXxXUyۿ 2qBS#\%JKAW˂L-u%+ܤϽ4K#lt젇NFޓt=|eN$?}#N>lE^Rϴ8d Re~6rF"4F++$Yp1F(t9t~TTPM/v@T |Y2ܽğSd~6d>t-=*l !UqMPt2yo{}/fc4EE!p0uJV E6 3m+y֟^Hu[$,T@';?ԟ/BԄR3ݵƧH#X *Uv(Ԓ I,@A :0B jEd3[)ll38SodnG7B ދ;^$< F/qBcATƘ3$K>cŏNe0@J℣:QɍkB9@~n7@5JJpUJ5:h?>c)FXnMǰ/q9[UV7FNrV2qxߤhRsh=X&bO@bVdECuЏt ; U ɿ45jwB,Kj PNm64S^|TR%!? O4+S0z% ) ׎*gI@@3qJ:8E0bnQ k*kE&}ҲV#ſѴf,Ŷ[bEUh Q|a+&,Vg%$P)c;Qu.%b7LbCM̆oA In IPc]$.7*b]Y{ `7rHP" ,pa1}l4jK@͖o-o}菌>\ӅQwjVot'se<%)/E\ N/Jg,H^z,c~SZH ;D-Fk&R,XI2mlJLb᜗Q@=ȧ6.c4W 47&[SgL'ErR륲S 5 +ͦdjHKX 5O3G3(ݸ01^*0=4gMMe (eFF>5;~̓}[зr%p39 N<=hmc; +Kޤ4ו246 Ŵmҟ={@''~ԎW4lwVi:+fn]uw-4΁pj56A A%;E쇺$GwboA6tjV4e;<`yE%-ɝ7I) LkgxyA=~ETڞ/g۱ftbVAs$i!I/]j[ h3Z@(whoD6ynNثu5F;Nsڇ@wC?ٝa؃c7Ə0~[`xg?`܍-0~3=ϻ1;xу-0Q'Q-]|oq43= OAS|!4SxmU_6R_9l Qm}ѬzMTȟcg0hp Y)ȻtVezQ^821qww#̣RPC,,meta.xml jvoisin 2011-07-26T03:27:482011-07-26T04:40:16jvoisin PT51S2LibreOffice/3.3$Unix LibreOffice_project/330m19$Build-202PK>^/!Thumbnails/thumbnail.pngPNG  IHDRg?IDATxֱkUhH):4f,[+B.JA] ͘v)t$hLH<x͎tf 1I1I1I1I1I1I1I1IiͧW.\=w/~w7Zӑ o8ן|/[yc`^|{w'?ߎ!$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELR$ELRhb3Z4IENDB`PK>'Configurations2/accelerator/current.xmlPK>Configurations2/progressbar/PK>Configurations2/floater/PK>Configurations2/popupmenu/PK>Configurations2/toolpanel/PK>Configurations2/menubar/PK>Configurations2/toolbar/PK>Configurations2/images/Bitmaps/PK>Configurations2/statusbar/PK> settings.xmlZrH}߯p/ڔMJcC+yfMfF~{$:"4.=}9ͧe$N^@i;;y'  zOv'@= @c}BK]nzudd ܼVt=U]Y .̘^.)i<顪ߪBWE̘TyvYNFq͹asZA D7'ִ[T_8,^{w61SQ8\l&ƅg^絏 |:oՇb҇3\ ֌)- cDLz (# 0<&++\pY,}JCsy'2Uŭm.en}]W)Zac5 (VRWv*u["/Dc0ʭ HvPV$5]&⼴K~j! mE [pɻƫ7ΦمD1C' >>g1h&ٮ2&r@.i!=E>sÊ5g$i8]dmR+MD:R_jmچ2LRkM6HsWZH‰_H<4|lrʫ(sLO V3̞QdNwG(lF4ϊ=Gq,VO|LbiucXe`VJr*QA+mbCL*MG>&;G*/!&*, QB܎o"S~<D2t =ABBoWieu2l &xfX N ٗM!z i pqJon|x5dMk_f(nzh%V?s3{`2a$0A1Iz"\w@ ?3kb}r#WQL\R~^B7AMv6w؍&yE)+vU].%=*;D&T` a(+G-*,ne:6¦ e-+2c M̧ & d7^\G/1v߅?l]vϯѡen |8f\hzg+ bF]d(xWde@᳢GU[ҥF!X!]@[+mUrǖGEb*;5rYBh( Aq #LyW+;馺t)XlV IF~p6Y7Nm;˵ =ߓ-ɲqޮGŢhuj*PKeB:!PK>META-INF/manifest.xmln  ,dnޅ{ѷ567W#) &M#5X'*HIR M& SyV9rp9\PU%'p%$ B&'1(@A1Rp']2i]a4UpPB{y Uǽ ނٰGwK"I_PIkW9OZam@?nwlY*qKCM;JpWX+fR1!Cfс߄7תu#8 -2Vcu-Y$Jj˽6ބ_Ga d|k<ںޣwHe׈v_cU[)jm@ 0?.OPKPK>^2 ''mimetypePK>@nuu-MPictures/1000000000000032000000311EC5314D.pngPK>'ö content.xmlPK>=<1 manifest.rdfPK>A A, styles.xmlPK>C,,^ meta.xmlPK>^/!$Thumbnails/thumbnail.pngPK>'(Configurations2/accelerator/current.xmlPK>>)Configurations2/progressbar/PK>x)Configurations2/floater/PK>)Configurations2/popupmenu/PK>)Configurations2/toolpanel/PK>*Configurations2/menubar/PK>T*Configurations2/toolbar/PK>*Configurations2/images/Bitmaps/PK>*Configurations2/statusbar/PK>eB:! *settings.xmlPK>s0META-INF/manifest.xmlPKA2mat-0.4.2/test/dirty é.ogg000066400000000000000000000554021223433004300157220ustar00rootroot00000000000000OggS I5A]vorbisDwOggS I5M(vorbis-Xiph.Org libVorbis I 20101101 (Schaufenugget) GENRE=PythonALBUM=harmfullTRACKNUMBER=42I am a =various comment TITLE=I am so DATE=1337"COMMENTS=Thank you for using MAT !ARTIST=jvoisinvorbis%BCV@$s*FsBPBkBL2L[%s!B[(АU@AxA!%=X'=!9xiA!B!B!E9h'A08 8E9X'A B9!$5HP9,(05(0ԃ BI5gAxiA!$AHAFAX9A*9 4d((  @Qqɑɱ  YHHH$Y%Y%Y扪,˲,˲,2 HPQ Eq Yd8Xh爎4CSذ:IX`!+TrNB)B9&!+sNJJ19Z,sB)XT꜔Z2))b”Zk *ĖZkA]Sj)؂R1჏Xj > [+1ZfD # Q1s9$c1sBd1sB!9sB!RJǜsB!PRsBJ*sB!RJIsBPBI%9!B))B!B(%R!B(R !RBRJ)JRI)J !RRI)B%RJ*)J RJ)RJ!PB)8A'Ua BCVdRJ(U@"BGs,s Zͥb)12RLJ %uL)'-ŘJ眤ssA3stG DfDBpxP S@bB.TX\]\@.!!A,pox N)*u \adhlptx||$%@DD4s !"#$ OggSJ I5W24VJ S 22:Pa1"uZ6ط_p|yEWb6$[TI Y8&ٛV0uhiq4 dz'IRH, =WfDԲR*+iSTqQD?W϶QM{`/k$I暱:d91~f)~ш$ R"GN*T{9c{kbwrjSm=#qFA3Sj۵eǠfѢc!֗p?&ԗ] *6k.% gOa(u|PHTO@eHXL38*S.YҬ5 YCdM2[3"kC36hfJNhq?cd Cةdl~@.ɫ p/"XҎ!4g55qW/吚HR* t}V=QUD .IzgU<"m9KAk qr!|^swM|јjo.t5=*kz֙ҖRl}Ҧ3s>xk`'EE4E"7O&xdN'Y2&IFD$2N2HdI4kEdMےL#WKZc3@kW^c/95T4%7-3ݫ7ȯH:ɵO7bi!D,Vrŕb=%h\ݾgڏi ). Hڲ 5i@?ɹ18 i>i%fZ`"GMVB{ -=7$VI۩^Z,3Hi`촕J$Puj]_.rUȗ.׳hQ}Ձ#Œ}zAe lV|h钗wf'tynvU/*][|!]dqBw}C xjE-Qg:k2{'1ÊO^%%0p%40`08r~X˩&K#3kf*͵Tk-MڶX6vIf ô325a̻v@˧:|(_{3j"(EJ1*kڣG\ʻBJ}oMuZPSQF_DA:ܠmjV~VBlm6ҒVNIep9j>cktS-Ct\ǷyU@q$Ī  80YePFhߕDuȔ9rLY'Y WY'ba#:Ud4"g:bP/H41jRF>B9<1xF%9\w#4B!ƈtM-I{a[ĐsZ<.Z!^t[X떡bWb-"s 1T<|\`7^xhWa@T38r@#6Mdfj &hΚ934MD$m$ ֘FPmF8Hܽn"C`F-E7X>5}-وZ"$S@Fzs1n}Y=@iLe 1zK;9QS91$7a >x (#pX 8FzTs<#z<[B~̬NȔZI"&Ip4@'R~?ph(@5ILJ1Uf3:/S#:\j٩$C92: b$4"EvFj*)4zRQpRII:4rƑD̋ 'j L 79J+A,'xn%.fCz>z3{m{n?o+* g n ڌaxU0 +-h-be}$D:EhS@MCJNEz1)m4>Ru@\:o+p|Rsz*W%xd8/s +[,@JBklk]GrH ܑ|.KƧ.Trz^h ( \Tb.U93 00MۥɰTCcj3$4g4h5VHzi-8R-:@iUTo-fHNkl QE$e1dw*Y(QUzh~µWv[O*ob{Y$r_I{\@ _Œr 5i!˥.]0эhtc/X` ?/&Ũ>h0hTde xWHk5e˘Y$SHCv"hafM"KnQ4"IH-EvVW-n#)`vqeb1}-wcֹ^K\I\R |+BSwuMتЫeGfY sU*Cysp'kc hU DZAcME?Y5S-S3s16L2265ӈ!f'MI (_QGD( ͨsR9DO1e4).ZǙ/ \b:[JJDS Ʊ,h)j>Q/ogW@huJ1#tkNA~ 8842(S3ˀe8‘OuY'2L7l:&1$3&if0A7G9~즒9^ց%Vȥ]4uܫf- ImJRڐ$!\]^h򡺳$  &7S3gSYzm^:Y,M"W!>qdF`9?vgy~x 88}$4B(iprG$"[HFJfԪ$3X5q:RF.S#t54mCUiJOB0YiBq&Om7)M<ɩί#^#L=\bH|th>+6=ekPVA- \\{X肧]33iLpJlp4^h @52UEFOm###-G,i&9/.)L&%2F&i &]uaRƎb8>*f8^_^hGA/WF>3U-h՝kTt}=JUM^8nu. B\jIAW'0n{3룆 +}hPh prAX @Q(ʼ/Tt5+m4GFu%3g#YIDd$IHtmfdl'4h)[a?!EJdGfFVQecejӆ*;U`lZ4NJ4=%aԶ1fwS6)ݜ`P<|' xVOk$6$u.0e.+g H C~h 8Xe $6\#mD.k"h͚f 1mǩNLZ!03l"ձK 6 ʜL$/V/„(lS4D8;2Z 6'P;4 +N"{l͓FV$h7p1q9Kf\M yL)eX(X@h X`0Pҏ0!3ΖKdX#CF)v10pjg ca8O:ԐAf+A!7 EJ Mշ h<8*}U, 9kG\~&뚗[q_u=|}ʅ*Ӹ_[k>O3ƨΈo,CUp\tR~;̉U>i 4cPH.`DO,ٲFlIɂfId5K:n,MZt2#N%>G:wa%SHӊЊjq~[]ѯqĪ֤GʨtM#mtoOR:k.V4wM[v73[Ml8[&-V:jIU$fhhp@ @4T!&)@?)#Y"9"k6-#M3;ΜV&ccFSIkjDUTC=GY݂X !EF2ž?=N|vΉ]ᛏlYKVJ>Ý(Ee(=kι/خ~%C"Iц4xb E|m~k:IN~h 8XA4XxkDLK2V7Ȑ5ks v̚mbR9MdR8+Ev`;"ڡLZFtdI{&24t mo!(6sufuH*x hZ *`)~Lt]m:EfN5I;>1q՘̬ٓȬi3a %-MHӶ%Yt8Hj jZK:hbù}]טf(A+56:>E0Zw1-߼:{VR1ͭI S k㌁T*LW-b5BWiPD2Ȱ%{xU pbk$bј B4X-78>q,%RʒdȌj[юȰit9$ )IОoR"]|z@`Hz O _/cH7Fkf Pױes6QNNL^ML ڛOgHKf6#k㊺$-/a\ۣIeX88)@24=K݌YLJub4g:̚I'7M3;AD[>>j8zCj%Qt{[Hf'C9,h mKJ"tgުWIXgf&}b:ji"*B]\XҝmdZċev6 +@ioL}i.H[M,1e~%h HZXe:]k\VQI:1}Na< Țdk*IIdh2NG5tjI$LÙJs,%G~SML")I\*%źϒtZHg"QORK|qՄ `UOՄB7|+T%\Ѧݪ=~<1\y$)ݫrf&bBSR>h $@5%`j ʠ "QJsh\XI$iX6YJf bjP*f 9:^d4 Հu?vԈvK- ;鷏pEWG CC4uu ҟ/(]Vj)Agq["׋묡ܺm3mz ou3 {w&4GhlDXqdX0h$"e2)MG< /[ifNJڬӫrv̱3IIecڶc`RMp_r[^dfg^-VQ[&B]WB`i(.]gFߛYp-e9M*-^f_ ף[J}&L HALXWj칬djBMmx 0$^ hIN1DR:d+Ȗfډ,,I-[,TƄ,h=lga}iU`iE bt @cH舞قo{qgd_@&zڰ;&V"o6;:&q.ݬK]BN֬7.k&I}m] kհ֬B41^X@1U TbY S 8^vMfulk%kG,s#td$ٚTF"kIdvDBAUM34BO=8'M1 Ҥi`:r┃.!_oA6^mKG]唚on@/RiCZM8,riO[W4j s\bL1SM do ~h$ ^m NfH &ǠQ#Q'tX]jhfdIeOG,F#˩fv9vdd@')w4E iZ> Q tW #1(ɁH8]B0,/D_¨K;btaxG쩏ȒZ$,sjNBjbM-1#ZUt( |jq tLF*~h ZmNb`*RĠF߬2(#%hL$2$w,Y33'd3LI+ERM=h&|q0۱;_|t\u\mnj#n9c5J;j4Qy2 $ojk˰3R|s+ MO+'5R[n6nIeXZ8) LePJQ!U>ϏWhf"͜L"7Kd,#M:2h$MEj':7>U[KWӼ@E[Gvzѣ:.VNj:E+!JLjxovm@DLވDIi3mMCo_)}!b C6=*+~xHZXʠ#sșv=dL%h62 $q2 Db{m; Z=VHа+'nyͨqS [d 91Q09foUUYS+q["ٙ/۵i\Mw7wN|+efoﶩmNM0&B=B{J 2RaR& OggS I5b^x8ZXKg&jU:u3uMg:3doU3#6 ֬nKF3JWg/lp"LIǶڊQ ɏu-GMd@Y+#O3ڒFdFXp;2s?Kj徜cM^ӥTxP-e(q{ ×D I"\uȓj >hH@p2H L`!DQ4gqw;9+ٺJIe7͢6[hkIG1d`"ik24\斉' bGƓF-@af :oiݺkf7?Q8n[_4.W?TX( YWMU2twPj !Q-r_V=ݶbe ~h hE!@#1 bD4_+;q(:B5Bj*3әg1 FҙMJ&$h,nh)odViMSlGոTulV]uz[.S])\:% OUy9ymmѶ+,XFELɺs[^qs9(>hDkH!`*䔲"/˺*u,S֔EDʹ]&57v4u@M|+/ݗ#mS]Q]~<7GZ h0~cc8X%3t7eFvKk>%HEo/GBih"6O5Cю\\B;:ԚT NYݚ>h8@5 NAQL)bi?ʬ㵌,ȑ-SdIY#3M3K2=Ƙ C˷ݴr~ | ".2 <Тo3s!L3"ʹe"BK[Dw'֕uH.ɇ-9ogznzq۵|e}`Uh.X9 ~Y rXQG'kfȖf]FFf4#ɒ-Fd$IIK֌ 255(j0y__ޫqDWB58۔т&[K[M=-ul\Iu.b-oJQ440}r ߉YA!\u R懄=1v6>h@X  (NSeeG4RYf&"f5iJY\!#"1E%I[ٳ6 ZbmP hZ6ppjKïQ,< q0j8:$ W4AnWudJs6b3eUcE핖TF6sO!SRynYڼ7BI/&ZKqiH+ >Lc`*+!VRQ-SffFьI%3%2#T( CMAV`bj ^2kJHcH*bXxai A@%Y7_oA#ZO}zY–g?oۓ_nZWr2\ƏPEЂt\+)HL:VXEsh9h߱$(SG=׷NnވUhĪ8a>?T9.iVMҤ͵MHjbi`QFR2JǘO6z zNPHߺ/7bMPۆzVvpUQy9> P_%o~`/կg@m.Z/&oxS' "^ }. P0K g|Ri X1(H͚ͬ59Xd,Y4gI,2lT #"*g 2y/1"8|`F4ΗcZ!#Pq]~3E((B+mtM !3ŨےD#!Q\C^.Q70N*Vn>..6v<׬U*N JB%rƾgڞ횠3[(iU UqP1(RS4IXfm#SdW*͈,\2#ʎ4Ku"9c@P_#h,ʛ9L1Ehuq!7EӔc$7%>?A^\va1OtUmq}% 3Mс)>M4<#'(j~X V`L 2PytCǑɲA)g˖u% 4ɚ4kYdh6Le5!ͤ⨉JH$qLa%H)Y M?űQb==[rE -R![E) 0պd46TcufW/keuH:0tx <@[IjVVe% 0jMC[Nڠ!ՂpFjUVPMifV:[TInc9"#ެ,zm玲3 A}/pf :spn;8Zl5)~hHZ8ɦ>SEt4Լfrrj%%gff6]XfeZY"aҡi4` 41-Cʵ#)Fm"Ir YQ%`V.H*ďO ʹ%ij׽ݩFW 깥mUR\1NpLI9>_qm"t[Ű#"IȗWׅɢ%Kii’eW#~X8X&CqJQD.ƒ$ks4EeSV,̤Y$Idh$$ҙ4dfTs$޿0c0]ʘYwѦZ q񛹜,#bu%mW zcݱkZ Έ u&nz"myȍ/EKWUϊG(*~0Kw/M*)򛰯5)|(9wQ~h8$, }4ceb"!k$ٲ7͒H&Yt1 rNĦlh`VXm4DI Jߥcz/|A qj[b#Y&9F f0qoz1CC_c:5UEWIK-2q~oakR_gb2pwxѢۘ*`M8 >h 8 a DAM)35eEf\2=N,m,!sufTJ25 =2PzfW}wj#GjM ղ!Gn˜LkY@\"$-'dNZx2h̸AHdcDg,Լ+'V o`ffh,"!|R?`Ξ%jn$%]¯"OjhhU%x*XJc4BDhl"ut͖*Ì1fc0t03+C3&bT k2$gu>xJUJѵ DЅ4iqԲy!̠K1Q9%sչUוc Ow!&{=&@y+.<-&@LRpf[:g gﮨSaOggS: I5k?yU47E)D6̜MF0l&fHhVId5I֒UZ^Y3T]4]H:HZ諄?+o 0IoSE!F1 ʨ\ghd$*K13EiTvn2nzi[hgw @Y8 ~}$3qhh^tI*|h@Uec<3bYiFfL2ٚ5k2)#" rH",IٲfDF#^=DySzHR&u/+}=D(9׊=mKI#HU'8S1$JijZ]we4^*V|\Uкu :!N  W4]"v%ٓ!W^x (8o\eR R2/7Y iUc:337YȘ"mal ͻ@;êt\Cd,f~ 5HFk$ai-=h?%?E!<3A( 'o zYf-D+jY4t0yEPS9Э@ȫ.)>SJe h H@6 fL]@i?$Ry AQ}D %2̇;wAt?s٣Ng$SL$G+Gw2,j3UԆLm+kDhku4Yȃb<^=|c}A Dv="+N{4^9ҺWY5CB|:g\alOT9l>hAkbaeY?k5Mʐ-ϒ#2#m4,r6$3"MGd4$ZqTdB+~"Y3ϩΈHYQ E34 qg9o67'ć1؝[Z .;1ޅCC>z?9x4 t .*1QA6HKELnsi>h (!T!e<=/> <|2#Ǻ3Vɞ%"]i*Y;٦i5#H#C%JfMW{jm="X7T<ѽўa(+M,##mW S^Ai59ɷ.>MՇdʘ']*s}!,P aבPϘDNsh4@ģpai $S(b!j1*#I{tR)! Ꮪy4Jp~h0(`$ZC K)+L1i/bF:IfIHH,KFt:ӌS1mƎ1b2xH|LW՚m; y$.&:c+0 Z\ .JUKOMͷ6CGDF,IV3h, !U" ئ FA.F< S;#&e|C"~X VmI Lq FF(/pC-XNheNf5[${Tdi"gYSId^a!Z4?r+jK/[@SKeVrTN8DRe O'q$l+/U'WPVm2M./;^ܰΩZJm4o $ーaMxa-bhOiV~3D?()#@ $$*(.PbNeEFdz [ΌlxfdF$G51ԋdtDA1*1:5MiGAh3$آjۤsfB-?jp #TҒz.tok`־ڬWaPY=Jg>q3Ի=Qu]BQ9АN3bg >h fPP4U5b O9-[sͰ:rb֘8M=!3Ku4юLrFLe LPIBGҎX5`h? iz+BIJIҼ4!n;ooo]Ow\Z$μ,(R +W&<_Хh%3xP-J@ӂ'#k~h! 4$^-$`p"ӿk: u\9k#{n3,5h:<3sd]DФ6ʹVg*ls4$rZ [D]w逈Y' =>`5@-WakDSfTSqmz${@KIO-`C!SK4 ,F ONX0X @*ǘ2t2>s3Y.3%4[4Yg|Ufd"9;4r2S۱"BOo<ƧC\a $,1- گKGUAE> hd/VAWJVwRP>Hz݆"Cg' S'P V*%/v#ZE\/EzpM>aR`vh! L,Z- IP`ѿQٲ5;]l034#3eh&H3CFtTڼnM"6gd;&DixX-e#E3ZmF`Bt Jc"}F4t\~ ѨZ+6"~oiwRQ8~cDCwnEDŻ(|eLL~X XZ@d e ?LWMY9uFY"GlȘd6cVg*c'NԀS"t6 [,ޯI&H}ڟt$$@yMܳ#hGY{IW/WF ڰCiTCߎ  C˙:f2_eV𝕥Co%GN97hU ,Z-4F_Lyu\'SFd$Y%k:(̘Yqb'iǑc D l C%nClrDL",-"%wgcwNB=N>IA|ZT'/;\V|X 4wƬ_*-A ޅ"5~h (H "108J}G\OgʒLgM`*ӌX5HfKM41C*030J3-!bWtHm)Qjz1_} JemMjKp}:l"Ƿq*ؠ?f'. 8q--l%PGA8e~l][Z}aiwRXU aJ4 gdE8lPkF]kV%IYZ:͌&T2f0 PC$DSىjjhնeWdzvGhD;wXM5" vJXCga~*rk5tŐ!w&{Sˮ޽rk%" LJ,䫿!jH0N4L"I"+s- h4϶OggSP^ I5AH+ (+1:X`U!$eyg~M]YkzĚLdʒ:9!}b4ZM5Kǎm C8Tchw#-aF): %'KzZ5F2t+5 5t:&JOu͞T>y^/fE[̤m=i|T4T;!*K\IS%e=٭ÖKq>X0XTP* V@)="yxAWhCYeϚ=3m&^aH1I)ۡVR!)nVŵ2Hy/"T+mZg{+ǧミ_q\ĺWW#2sY/-|8C>YSfBrEdc}Eȉy -g;)WlF\iWZz-9CehFc!|>x0x5SE SedGY%V "Hfc<[45Č,Y"[F#Ҥ4QDd8C!&'gX$ ڗG v\I">*"sX7(IS5Ukfft;C -[jø1ףJ\dɯ0ޑђ;wWKR$9VK7>hG! %0U3(Bi1r&{t2pL ⦌4m(c1NWCi:ұ69-FrBh@  aHcBR+ %f$qVUD:k̽JO:T_JdLU(W^.G3LEzhpG]'5ܲ:ӍA^ D e_D3{gRp^h8Z3(NA +#bП7%7f]%[l4k4#ij25ҙ4ӱ  EBS9cak?ɾ:j*tLEz!=Dfř4is^QE: :.|_B9;B Y7B|> ZmCҌfv]SE5ffGa4=;s0-?iOv֩p.vQUE"Ѷ?Jd\ʫO\* ׈d F[vįS/#33[ !;3SmI5bmjzө{ʠ=5eT@P1kgs 4_ _ 1gF" *(jQ)ll)2GSDGOꎏ`7+="YOĂ\&$I2L}͒8{iH#踎&Wh X[4Iώb4%uҡ 0VDk;i5,V+$v 18QU8fCEP*ΜKuJ>zXΏ{+k1|B mHBۀ_>o bawnɣK KmZ] V[ 1Nu=ΤB#\]x՞ֶ^+{JΌk@l>ubS=&i,{|V T3ZUZUlU4x,/25hF KޒG&w8udL[|jRU`s #U6(}~˗zth_89cd/u45omat-0.4.2/test/dirty é.pdf000066400000000000000000000313751223433004300157220ustar00rootroot00000000000000%PDF-1.4 %äüöß 2 0 obj <> stream xV͊0 S\H*;`&=޺-P^%V2Ɍe[~$Cc[ ^/_?U_~]neN~TWSa Xhzߚ+86>GvW`7_'Y#dIa3,zZs`!8dPaG5`6-Ѽ$Plq5qIF)e!L0QiCFZH༧:߷/em~f0w!=#`u*OF`H:3c0 O-ӈ~XV49<~G{At6&G_1׎E '<-E{ nl,$C\y,nF#Cξ)դygIJMIi7aāyyOh`Ä2 ;Fg\"2'wzC+BpzD!onFcX kk偱ϫ3(LT$,W$#V:RBD5ZRn7HҰI(;"Zd^'r{{rpK5;da ?"f:r)5ch͙'fe WvkLPu1l # sVԓ6BlqRGV+*ɻrHCg+G|b:Ur^\TīJ^dc ihLH?u[ endstream endobj 3 0 obj 790 endobj 5 0 obj <> stream xzy|Օ=.Y%},dyeI%N(mq[[C’R8HKJhRCJ Jۙ2 iiRxo C=~:of~%w{r9ʉٝq!GB;b'G@|BPmVyBh؎;#D""m=; Q#h<y%DG8"~x7#q&Y]'}ppCvˎMF0[-LvY}fۏMO%5-RyOƧ6l-! 2֦D*+*&C2&3oڲَ"?#ČuDGu Wr'.\ K\bx$_%G~n( "uۅ}QOlOϞ("ݏI59#/ 7UB9M'7_ژ"[yMd1FM2*,}g߃q2|{"4ŸG1k?[!$dHH-N"XM6&2F9-|;I沙7,G苔^*b☣$az[i`IRJJb/?CY$9 5twuvD7mж5ninZ׸6P_WfuͪʲҀWRTXu9&^P L*(fwː,JJ ܑ1DĮ@ %D\MD2jR^CJQV(A/ԒZ_NCG/G}BoaI˅#fx!92?<ԄNU*_ 9R#F(Y>E y)Jl$IF;z.W5u7]d2)[, trX8UrvzmȫqĮMr15/,HI)%'KMI/ֹ2O)!)׻ xjL,?& lA.,}܂޽pJYnF h/:d]}I8N ٖ4vlMa<v }4?MPԩ?|:Da#76$%9ca={Vњm] II~눻u|8ܷ f >r/d@H+ZG&Ղ†,ņ'(0d 5nd4ǭ@$#ޔ{&BOpDlM4$/pO'M{e5OtCÒuI24 47慡/wG\:B;H*H_#ס_4/&CiBݕ ܽ>h!y%Θ{ۺm Iu0vkظ{)6rIEBv Zp7wR.b6 `'ԸGh7X*RN"d|E>WPSjdH8lDӥ뎻B2e1ZN+CyVWP{lگTn2,Wk[k1w\yk02%wNBl/mnYpw֊Anase6hn`0k<冃BpKݽSNa_s ː!ԉ Ho?"d+b{4X>MS82"N…D{Jq1fa疾>GH?TIƤ ߐ^Q) \YAː2.K{>}IׄUKXyL( nvA QΛ4mf0_$:edx[AՔ=GSIB{͹ݎAb$  /B! AoY@ieEfU^pJ?s@ͦ, rt/p˻P⡷|kCmX??Y[wи~64-719x|g)k}c5`ӡ.p?^ÊMs*t;a+XFk!/v+;)8#KgC6eFD<HdʼLhy8z/z& UYQBR(z=ʙjʼn{ck&56/;*uG;<Ƣj+ٓhVE bu}ujFO/[9xtZ2@l5\Inf)/% "PB xX )IXXs˲9e迖VvX'~h^oV*;?(z7f-rZ+Oi_\=,n^^%&<mU O!1-lB~@7,}G/I󐌎ˀ[2**}YQ檆2:Z7,fUTscы`Z `WD䣑~yrA jV-9<熛ꬓւb{p8NSXihs^ێnquѪ͙c㶢r+Aq?É yޛ}ZqCC%ZMmokJ.7 Oօg]BA kC m2̙N"E+=i(xRV «܂m*Ux Jz;77`vo^rͫ.=ȍ|ovX׀{tT@dwȓ(_Nehjq( Sj0(a۳gII囕PL.m/,\}~P?O5q˖ϰ=ZHEjvz.G5 6:=uEFv_ztS;VZM61РRd]Wro{\YݶxZQq0*6UF =G5$4^PgٳYana j5s&Xc 86x{ BJm2[#*BYA({Y2+:s \.^@nȿ$GO9Cf=mE(z:I-~I*" 5-/Aݥ!k];ֻz`ȝmumk׀遣?.4+Z7Иc־lk/kld[b)!{* cc^6c8\.#dn8ik̥47_a`/= 0Omfe~VO9"~'~@Ux bb XVDS"JTJ%͍?1Y\hN}]U^}uMoUAݦK[?sp_5uqc *w DNIr1q *=)^ 8yQ^(J/if9." YTUCuUuP~9Tѐ3(~8\-)hTp JS17ߓ}`kyojlXb=sGw_Wƛ(GejWFF:+C }5Yr;n TN%%|)3pX*铀DN"N.5p܇Gr'iNˉ~`+f쁙R&# y|Txŕ1 }P:{x-9t]:"R g".o~7ݕ mIJdqzPúuXk% UJ۬m7IVTV Th&Av3ܐJX𾪱ynµșC*2gY/HFUHKUkj-lצOoK uc\W\Z/R:9iSUr\:9 QSb,\FrzS֨MY5mQZ#=c*QA7y͝ڭRMHCh`i!hey>25c䌚v ѫ%r9S%mcێr!Rӈ n=ņ5 oCp`տC"K` ȱ=pbm iF>e7>Ë"YtAN;CGMƱQzQj*NRJLRݍi:)5V 4WKJH(+Ф|%J(# o)f\BmJAN%ӄ6j UrR1z;x JWGFu@p0V Ȑh4ηdG^cғRJ P(JBLvN* 2 QLޙ,>^VRc _X^=)Mj7A;nl`1 soY|Qw@e۞rV_* ~׸=6ߥ:wIr햂Okƻ9n ְ`pXۨ&|-5RP`iiհ:OOdjVCYMESZT:y}eQ|TnWbroES ZN !$,BWNbJ$)5?WJTUlcu{}&nRsZWwtքsTmܷn˪Moپ@3*?}Α=WbL~IDPӈ%ao2Bt.u}h ++F:^g2KuBΘYM'qp `@ςx* (gfձ4\Umt7Р>'|}|{& n66Q'sbSqFAkG64fCvvRI~*ە>s׉EJ"f囩,1m9ΰǀ'7,Ofi"lU:t6ԱAXL* pFPgSJ&K~wF)h]UE8l-><_bShr'7b{q.FsXyHM(az*UtT,GlܬGlOӱ xٰL؋u}4(lY%(d|5¶*^쯾!(_D*ƙrPMp1k>L옥VCJP"U9zv+.̀ &_RfdT4Tx\82):0"wxU{Y֮ 8gVNa3|òAuV9[3U"-&LL5gcOov6|ߙN\ʃWV ƉKǧkT&񐥼}0,Nz [*:f;fgݙUd5eޏBUZC sS2 433آ ZuSsLɤJ}J#사[HKשSI'm[WGkDT}'! :b!!Nha2Sʦ*kQJuD= pf:H2S VWՙ8JnKt/`I\p֦Rch*U}βso*8\Y|-7+F{mZHv2-Fx**)& ,,Z1,*\vFm0nvus›!^Q"lwt\WkJ]' Qs迬7?M1 g?},߼k R;x?ԥ鳇mEk֊UҠK/?h0;,}`HN U )#C11IP|Ie"HwF<U^㪤JzN֩J7QbdF>b4K!hA Ʒԥ!x@Rw5GCŪq%HSťym H}SU'@̆~)oF2qVI"j%;uLjɤZN -Z`s_5tZkM˚< 5 sP5q4 ktptP fpͮdd@7Z5Z&n z} W9{qu]dKzțlAhqiy){$x'OrPez5 j3n᠝Ņ9948M:4\D$yZyA?}yxC<qlA'-o4wi>(ʘϸgK*4u@['f_4J`zJÔH4 sm^>xS ' Oa9CNa17 +Ұװq寪03^x kl%ѵi@)_a4ыiXB\Y+7eەܓiXA$a%ɖd4!c3Ȣt* kfَĞ0KĄo 奥ڹH|VX75;=5KLLM۷ c9a6>7Llhk"}bxeO@HQ ÕK/ bBb66Q:QH,Q"Nqcs,"'&_ɄWN Ep|6C8s#l9)+ cD|njr<^ڵK#xjG?K잎&&Q|xb8'12^!.~nj4+6gvC|8!$6.~8466`Wk|bx\=S ǧF8n_$4 $=$JO 1rۥd #$R,b֑)|O1EO@ZõHxSvseQ;숽{ u=A-N7۫t}> endobj 8 0 obj <> stream x]n0 s_'n>|?:b?5k g[Fw>d0/ endstream endobj 9 0 obj <> endobj 10 0 obj <> endobj 11 0 obj <> endobj 1 0 obj <>/Contents 2 0 R>> endobj 4 0 obj <> endobj 12 0 obj <> endobj 13 0 obj < /Creator /Producer /CreationDate(D:20110730202300+02'00')>> endobj xref 0 14 0000000000 65535 f 0000012009 00000 n 0000000019 00000 n 0000000880 00000 n 0000012152 00000 n 0000000900 00000 n 0000010959 00000 n 0000010980 00000 n 0000011185 00000 n 0000011623 00000 n 0000011922 00000 n 0000011954 00000 n 0000012251 00000 n 0000012348 00000 n trailer < ] /DocChecksum /AEB9A43A719A7F87B381B5153E027BBA >> startxref 12569 %%EOF mat-0.4.2/test/dirty é.png000066400000000000000000000106401223433004300157250ustar00rootroot00000000000000PNG  IHDR21mH pHYs[ EIDATXõYkPSW99$r("`D*j(ji NuJ:A;* ReP,( 2(*b0 @r9'Rk7s{?{!s810\.9Oc?0A5Bh7v !3 pﯫ@4MӴBĉЋἍ~$ ˜`00 3f̘ &L:fAPv0^tN J ׯ;88===Ǝ0 }M---NNNEMd}Ç on45^7 :} 'NzH_SSS]]NdMMluԩS}||ƍGt{{F1 $I&&&N<cL(oB`?Z \@ xmmmA&,[ŋ?H$2c<<i>0LCCCǣ ޽{7''!~z\ #B7o &I!CGGh؆Akhx޽{:$i4y<^xxĉ)x2ӧA 999͙3$I x 6M2E \~ԩS...?F2 SRR={v[[1E\+C*fff~l6zJ"444<<''͛/9sFӽx񢾾^ӵ%fpQPPpQ{{{O<1&:;;ǎK5޽{"a79[nJAAA>>>EX"!!ŋ7n J%%%* 88Ȏ >zիBpƌF#Bjñv%%% Ͽvr\.h4_eժUb855믿vrrś7o/,,VӧsB@C&r{{{srr'Ohfal2BCCCI&  xKdqq+Woݺra F DЧ~RTo޼AQE`ؿ͛Ү_rF#AӦMZpWtttmmmqqB˖- bϞ= ,x0qJJ^7MMM$IB.V0/Bh4$I#R)B<))`Ν*Û6m:rHvvv``+}||8NkkZӝ:uJ,d.+֮]s…]vܾ}YfYYYYXXB666s__B(...;;*22ǏOMM-,,?::U=~X ?^2 s={ 6pwibѣj:44tɒ%fƌ ̀@TUU͝;!h>ぁ16"LJ($f ArҲD lذh- 7o>yI$#Gȩ2==4'ivqqaAw eۼyի,,,F InZZ@Aϟ$"##Ew}7iҤpeA[YY5{ld._~2:0dFE(޺u+܎ Q~ah6g:[jUuu5{뭬D"L&[/4MKo;Jo;eee5<< BX71˗/坝<:B͚5ɓ˗//))ay}aX0aEQZ`͙3'..nÆ ]]]53Ab"MMMzc\[[ x0}ccchh($X$.]/!$Ne777[[[ɤhjuwwwoo7o>]vD߂%sedd@B655A_߿|ryyygg')8++h4֭NU*UDDo*xq 0ƃ Op >G#`.{I$l8FINN>sLEEExx8BzӧO Ftrr]f ':غuWXeggLf0rssg͚fo߿v".0,=>â?<00PT?3@@й~ì"PQJ-[B{i裏Z-Iك[8=ő&r A--->>>VZmuuueeN;v, GZ-f>sd2of̘qFB}WllTeֶxL8JJJ*.. B;X#6/////!Gdσ:;;u:Z? ׭[7<k8L&C:u;B]"h8+#zIV ___Bakkfmm߰nzf@G5[tEXtCommentI am an harmful comment#b/~zTXtRaw profile type iptcx= 0 C}B[l;{?pAv &PBx M2>~l^E!ZIVV)bN7ؘye I PXv#S(hmk~IENDB`mat-0.4.2/test/dirty é.tar000066400000000000000000000240001223433004300157220ustar00rootroot00000000000000fold1/0000755000175000017500000000000011605411042012001 5ustar jvoisinjvoisinfold1/dirty.png0000644000175000017500000001064011604432701013647 0ustar jvoisinjvoisinPNG  IHDR21mH pHYs[ EIDATXõYkPSW99$r("`D*j(ji NuJ:A;* ReP,( 2(*b0 @r9'Rk7s{?{!s810\.9Oc?0A5Bh7v !3 pﯫ@4MӴBĉЋἍ~$ ˜`00 3f̘ &L:fAPv0^tN J ׯ;88===Ǝ0 }M---NNNEMd}Ç on45^7 :} 'NzH_SSS]]NdMMluԩS}||ƍGt{{F1 $I&&&N<cL(oB`?Z \@ xmmmA&,[ŋ?H$2c<<i>0LCCCǣ ޽{7''!~z\ #B7o &I!CGGh؆Akhx޽{:$i4y<^xxĉ)x2ӧA 999͙3$I x 6M2E \~ԩS...?F2 SRR={v[[1E\+C*fff~l6zJ"444<<''͛/9sFӽx񢾾^ӵ%fpQPPpQ{{{O<1&:;;ǎK5޽{"a79[nJAAA>>>EX"!!ŋ7n J%%%* 88Ȏ >zիBpƌF#Bjñv%%% Ͽvr\.h4_eժUb855믿vrrś7o/,,VӧsB@C&r{{{srr'Ohfal2BCCCI&  xKdqq+Woݺra F DЧ~RTo޼AQE`ؿ͛Ү_rF#AӦMZpWtttmmmqqB˖- bϞ= ,x0qJJ^7MMM$IB.V0/Bh4$I#R)B<))`Ν*Û6m:rHvvv``+}||8NkkZӝ:uJ,d.+֮]s…]vܾ}YfYYYYXXB666s__B(...;;*22ǏOMM-,,?::U=~X ?^2 s={ 6pwibѣj:44tɒ%fƌ ̀@TUU͝;!h>ぁ16"LJ($f ArҲD lذh- 7o>yI$#Gȩ2==4'ivqqaAw eۼyի,,,F InZZ@Aϟ$"##Ew}7iҤpeA[YY5{ld._~2:0dFE(޺u+܎ Q~ah6g:[jUuu5{뭬D"L&[/4MKo;Jo;eee5<< BX71˗/坝<:B͚5ɓ˗//))ay}aX0aEQZ`͙3'..nÆ ]]]53Ab"MMMzc\[[ x0}ccchh($X$.]/!$Ne777[[[ɤhjuwwwoo7o>]vD߂%sedd@B655A_߿|ryyygg')8++h4֭NU*UDDo*xq 0ƃ Op >G#`.{I$l8FINN>sLEEExx8BzӧO Ftrr]f ':غuWXeggLf0rssg͚fo߿v".0,=>â?<00PT?3@@й~ì"PQJ-[B{i裏Z-Iك[8=ő&r A--->>>VZmuuueeN;v, GZ-f>sd2of̘qFB}WllTeֶxL8JJJ*.. B;X#6/////!Gdσ:;;u:Z? ׭[7<k8L&C:u;B]"h8+#zIV ___Bakkfmm߰nzf@G5[tEXtCommentI am an harmful comment#b/~zTXtRaw profile type iptcx= 0 C}B[l;{?pAv &PBx M2>~l^E!ZIVV)bN7ؘye I PXv#S(hmk~IENDB`fold1/sub1/0000755000175000017500000000000011605411042012653 5ustar jvoisinjvoisinfold1/sub1/dirty.jpg0000644000175000017500000000262111604432701014515 0ustar jvoisinjvoisinJFIFHHDPhotoshop 3.08BIM'EXIFnI am harmful too !I am an harmful commentC    $.' ",#(7),01444'9=82<.342C  2!!2222222222222222222222222222222222222222222222222222"0!1AQ"q2aBb*!Q"1aA2R ?T,C.[NY)ɭU] Op{/"JTw4d΋n3( MYV Qcv7v~R=Eo"]5D%QU m`㊑[ \3شIP=~hVz!zn{d3>dfBt{?{RMō oe`K^^8-S:^!aHP*ljKXބhD-<(☔l62)4_mKu{UgH’99։iO$qa$axte!D7M7C *n@h((o~>T7pt. _Փ lN"BK q:s}E7N$Gǁ44b+-0`PGҹ8\815+Hhi A"6r-:9P֡V~;kz$pT8YY/ Hcz>K[DpH~"bmvEԝj6)=m1&Zޕ ISSjMqv,1͍67t jCEե QJJ"Ddg"4ym>֞ǜnFR^+ ZX .'nx)Șlb:]HR*>Jh;s ; rl8IlE;u[Kڔ’oMc~:om|*b3j̋i'ؐJ{UTHo^yQGK$_`E(侸GղhULuVQ_Laͨ("( mat-0.4.2/test/dirty é.tar.bz2000066400000000000000000000142751223433004300164330ustar00rootroot00000000000000BZh91AY&SY dS{8=:nޭ{k,ۋW{|z׫gUOM&fFi4LLLIM i#Mm4bizd265<`1zi2`MM"L A=M6ƦiMLj<#SM4ځ4Tiji<=OISm 2d#Tm$ ڞ'6Iy({ShT )yL&&<Ҟ 4=&5OI)z&di<=O)h$hi6)䞧ڛSB*yyI?Tfi*~)ʚ~M=4ɩA5=6M0O*4y!ީi@&dh?T~'@ISچSh6HET &iF #44Az @h4F@fOH @CFAMC SF14SzOR{SFiShfzjz)6žQzB~mM6z444=!zISiz=MG4lAU*:=8VF `P>M Bsz b02YN:/.&7GJ  P,TxJ4&k| jL|<}Ʊ@yKDӤDRD1pЧMr4CbvY6;0F ' 8ɯi᭦-DTwW9TǮz\_u!i&KQk1IŁCw_ug 2b7Nm eu)ҍ:/m]oj7qKz kӢpy4]QyY*ƕIz)d6=\Z8 )>-bM 6R|-}~zNfEynŖj)wZD s1WF!k *Qyo!@3,1\:xԨhAqoAӇn km;Ng0U bҷ9EFe{'ZN]g ^+f9şŊ/TC`o; 5ˇxXEoF漄j).m߶C%o ]7ˍr€IGЊ}9b`YќMZ-v/óA:Jq+(%ZWaY>ՏXl0eߑ?co%C! TgHڡGCZ!a .3cHJAa5 {ƫ=—Q-cVT+Z8pcΎ䜯͉p-tHntU\xW,#X`X=O//mD&ENM43ht8"*,Ot-6$R)b3XṖy/OR-ؾ\k JgKR靽Hf>rdT7R+û@Evqԟީ ڷ$u5·Ƈ_z,@OaЙpBHM䷛Rl b*$dVI@GmA;Є]<i`j[׾+C[^@w$<@ |obBJ$ĀQx۟*[ >ngq}gDfd.y@ZG+`d(5nI&Ԕ;=Jz. FX S6ӎᏅE,@FH L$|U0EZoe:c4A#&<+povk2_<F͢Nik.g\%к[&yWK7NZ2;˳= #+W>wqIIچ=If~nm]ɨ*;I'Q'! |N> rԔIBZ=V.D) A`jTd6t1"2o!V&/stUYϒ30/{5i51Nigʖȗ_c7=R.s2bv6s3TAfWǵY,ƌ#y7eOǩ9(<}qo`͘ec[Aux"H[8t0rё+4W= "_n?5<{1M Bײb @yPGY-3B,]ۈd|)ș)5϶$?+%gWTeF܏jb1b\ Egk(E˜_2SHIc/Jܺ(_]yݒFQEΔD %cH9 2klf4^OI{ y3k<~jw>wXI6cMc97,f"9/ Rh5b(2. bEm#0鴈[ʨm'l34LHM[aC7,q{MsuOnA5F=vν5ĵ9Hc_!>rTq [.hJ]qJ\'^x*ZTO['d@oPJSޣ UyJn-|4u0[CiK;ƒd^g[Wk`,ֱ5R`nW~8!0+V;洈NMfU9&π8Z\#1Ճ lq!W!ӒaԔSҪJM-(gp)7 thLλv 7s@iS$1]]Sh#1畲RnL$͕O=9mLԑ54,A5=<%'oN$mH&@,,6TƮwaD˴g|aX̯Y> tWqP`Mއ=[Bl\q}:~&]uϓm.dYQ- + Re Th.1&HƇOTR2$]^Z$6z;Jb/ cï ]@wc;rnMIX}/ #Tz$T{x=(}{D˄CA(gOt>vn=6#-q lϭSf7u52G~GA_i1Usx= )߉~hhЭw}?v1EBA5D4yh*loxiECʳ6M&N/,l$;i<{,70@ ޙtR m79S33JJX]t,n>g}`F߾:]5EmsbQv%o2''fG}ÎrTzKǑ(xvH=!AG/\{F-XDt 0Mp'~}GDf8>N*: Uٹ$u;Z_)[ͦd]uK 1Q\wޙvu] js%8͕S{]lK?D@ih90 E6D %\$—uX_z66%7>[fPRhI;|D bp8ޅא)W]D`Aj۴6 ۘeݍod@WŠz e;Z~]&{Ȃ'Rm%~ &Qgax`TճinV]:g[0 ]gLFkp`O5'`<\V}lsRlLi 5|4xpimÚoau6,AL;Zh膲6O7ׄfyRY8Yb -х|F`w`g6^ "KLh9j`L#/xMC۶ k s 3YAaK#4dypWzBu>Yi)]O {D>uCvy ţNe8eYl8+b^ܘ*eM:jd:B(y >c +ˁjZeVR֍ | T#]_ŮAGjT@t57uՊ_)4[$ÍdٓXy,p {bOdAނBBT~ mSGDa"FK}$,,'E$+SYT86W0{ ]r# yמKu;sTk~6ƩoX]{ "#^W ] kRѲ5 hnx^וaǛ &|2'I(Cy=l;*;Rk&u^5{[;Q^)T!"4޷huvb.@b>'=ͣ/3d9t-3ɷs>{v pf0P99V"IM[B''L H ,mat-0.4.2/test/dirty é.torrent000066400000000000000000001525361223433004300166510ustar00rootroot00000000000000d8:announce60:https://www.les-renseignements-genereux.org/tracker/announce13:announce-listll60:https://www.les-renseignements-genereux.org/tracker/announce43:http://z6gw6skubmo2pj43.onion:8080/announceee10:created by13:mktorrent 1.013:creation datei1307969953e4:infod5:filesld6:lengthi709885952e4:pathl20:tails-i386-0.7.2.isoeed6:lengthi836e4:pathl24:tails-i386-0.7.2.iso.pgpeee4:name16:tails-i386-0.7.212:piece lengthi262144e6:pieces54180:?.ЪƎ~GXHjnjq.~Zbły:AiaaS&u%6 gXmKs^Auf8#R .ՠ0;THʫy45 0 СC 14#VQ8 bspr+)NXS%wQcD:I>?ILweSN1ڌ$RAb\3l%y_M7ȨGML kVe#I;~Y~فvc pl6iXp5ia-eso\iTIpB:3&ZbHji4}mh]!\HנЉ' _ֵk{ 0}&8|~y] f; >#F!Ի:XK14j1JgPȝEZXn[Њq^37f+W|D Kt$*:P>wHGPOZh'hRN}7) N&nAC֪s"j l7lKOvo 6cN4 ͯʍȀb?lO ~NwKS+pzσ_MK>Gټ}vԉJRŏ%\:S+{#bwVEm lLx&,% &]qYf}+?!nͧxyb>+eSoדRrY-vMbI OP6 K4 H5lSyq ǖa?4 ?\Ƅ<̄5Zf{cZ @N &48-N14(btj!WQQ7 0EH yayڌI)##iLڗ%_N*.:A2}J jw,|@Qm  {Twb 1j0rTyxCChc^0_I\"(.@+ŐU&P1VD4D'^CWoLSU{yfj<ԦȔ5z_p>5ć+xi1_tue.<00w0 C'I }+`stbxSQR,lZvgxo5F6fU0 Cngf%7W3-8,n%Ⱥ9,k6 2;&XV.^j@-?2leBJʮREbG%X&"Zs(d9_'~@@lĖ3.DkM] )YLKy RO}:xNU%aq7'2q$i~h{.Eݪ)Ч#rao(*J Nٸ~zGP, q1cji]f徛=B)>E^#ƟbeN0׶QS@oqFr&iAʒQfϑoFN_/*gS h}bN6͐9iWZ/Oö́&>^({H״|N0t3LAƭ:[86v:RHcQYP w謋6"wאK^TzXf<`9S=QO7UXc󬭭M[N&/U|ȶ/-nT[8hLίd=WtAڳXX|'FE075#?{Ѡ *GAEp&Yš_Sц-Lpym*ǯGl[C{eNO Jn$ɘzeOKU>ƽ_֧m.]k?i_ݟ.?£nh%(lul Z rq}P6 .S*^]E}!= ! o]sS(kJ|ͅ%"jYz)3.3_ϵ%dn<}ȪP| }I?x۶!;24*o+5W`A}ٛ[2<_-ʘ{XG K7V=cJGR RTe7r}'+W՝7(=ܛNYYYzM>0igP^}ϮZSePk㝳s]V+}b?YֶM"@oi12+%inbt (t0BG,krP) :g#mևūIe>$wLF (t/,ͅrJPs"TU 2'ء%T[;$nw`{"MH{z!1͔`Y䗂,BUwh! %GH""?&ZRyN!n‚,0)/Uk?2ߖx3oZM!$PA;Av#ch+ nJVMxdx~6rx&KHfɘEsc*02* 5eX ᄉ#o u|V•Wpy@N  7\]3Q>v1މ=` W G[vlf~>u|Z:#&52 SS^x3*/v#F#kGb?=ID0 *OG,42Sdl{}%Rކ__% YES :?eڸʼnɸE\}'yBv@ HyAa7j 偏)p'[޾! `/O5'%+ {鬹NsT}J3 r_ Qa5{"sD3KߞxȟˁM{e}" zmjN涉&h) {-DI~5 aw"R;@Q\)@}efMxvSʵ{#zi*ލ[oa/{[˨-hҳ].ywpg)o 6v̭̿\mS7j1";F!$5(}&˯gn2zp,l,'`9V\MC$6l޵ xTАDS XuqmouV0ҦN`5t\G>m!RB it7|K jvuR p oAqx  %EZTⓞMHXb$@7~XBsEoʄ$1ⲥ uۿt X ԂT: YibwQwpIbn02W0Ck6V<3DГB{Ыv%L~݌uO yvُq&a/h <qmw߯alr5Ц`r$ v褸>i9}]s6W41%`6F ^7+I|ppXd(Ykh+֒ D(qiQI2ΩSOE%Gv ;JgRXP25]GL(+ `c3"`.T~,ט𷷝a,z$$2RNl)1J)u'OhNєz[Jj {P?90پ̄B@ruIN]毡͋ a Rs۳'T$+MhJqq?ڍX$vz|e< .RPֱ@ʼ:ԛvA2ZJz'd{]` N/{V]{۽3+^] 2{Bے?E@Zq?KhOoղBc|~ӭ~u*ʁ'"|&K,bUq񰈡vaKigz1a@5̙O! ?pnw8|rͳ25+qL cSqז:++XjuW5Zޭ(ayIQ31st~kmd|}YݛfosszZ&~2/ aB|@aE 2`'q+ޑV{_J4\C>@#c`9;cyry$XN`0 Vl^s {6{Q;x&fi FSKYЍg.1t"/kXV`ißۏ¹ܪ#6mDcP pk]%D!sLbS7xKJoCt+Y%Lxl6YART] 䂐Z) U! |T3~ulrĒ_PC\K ڌƀ>nՇhMcm-\,vZ9'-:0Q.phU^Fpʬ/[1Ʉ@c~-og,Xw3+?å׾&KiƚHx,׼I2pW U@i(۟^0ꤋג1+Z8xITt%liq-4]?Ʋjp8b.[81\UBzUkZ'Ѡ>*Y )Zze=!'E`/)8X=ٴșI})%+/aL 2B}L0#z=m\B®mwK/d94'YƁM-x0çªXt, |`(Ql/ks( KlW q땂ʰ#P^C|a~ojgD$r ,WIf8Ҵ1NhaðgZ.yS!@z T_K!.3L!<]ݵwk=uLZuDe\K({T`5FB!O)ts~k}Cv4`g\ DKV8r=/T( k#~u]v`Y޶n/s$5һ;,"Iv upM:5[U!D[1Z~kb;YȲ뎭ψ}B)Y"I@pd`*{[Y1f19CI#SJB`dD38 TtBXW豔tKCܘ}X߿-A3-H,<i˿}7+`Tab:k0s2CpbE $!1z:jdfoW,{ޚ\G{|KZ\ſssR E^жBEݸ[ }cD͵X+{Li 8m(oZSAѷmt0ի#;9K?(ݳ59_޾ͷ7{ϰD"(@o J{r.9^%/e`J28pK}B)H!vCWww܌(c=5pgA̡=IN^`TMeCВq>zXeZReڔK@ vINð'2ab'Z:}"\[w;fv ĝRR<$C]lA 訳Cf^6 olWKB7:nf*~?d-cL6&2VR xYJA!G򃑍Um9H{Z[<"@lDδ3c4:>1@z w'@jnmyvvDm+ZhL{$G%JGP(, f;sԑl@֤lؑ`֏lEpHMO^:|JRv0 'sa?YAQܗk;|Z ŒbB ,Œ*a?6B,˵"~XH=B/P2r7ދ7K$ .n:bjΫ_jYkNlo3;u-'<4/M*(~JNpN'T8TVB*RMO0ٶ*LqiE wZ$:CkbꝹ1Q ޣEZ󘲂/XJGGbӂzӥ7a4H%Gqv(Ö9@Z>ޤr6__u55؄zn/==SJoF\žo(t:)O䠭m, R1bK7{>MN cچ6dv )=AyaŤ b0:-M{h;'> >h"l {-hR1%-L4%$U 婓T4RW3,ͼ3|ADo~u`nHkB y=,ت@y"AHkPr NSm0I) iJi x!:Լ?eX[J1 < `ׁ۬WMN7u` $tHJstTem4uz!r8"69J7YZ45I+B$H>S]0]GsHyJKZfD}o"As%Nh~MSBHh XeeLpnbdUOKe[qU^hcŮ>Ezy0d' [Sk)XĻDqwx={/@ BH|Gtr>}CyP/?# DXy8QjO`aա0` "*Ǥi'< 3V>d*;*Ia=f  )ߤ+4(sSд{ Vzwr*9,c[Zo_7 ׅsv: i`:!圜$-)O,̴kW WgjA3vEEᬊdi5ROLOS1SSM .Myˈ{Фd@kߘERz_e2s*j<^b(G)CEYe1|/psUd;kZ3C=b>퍡Y}F*7p"hF&*ˌHnF{ZE6zt3bU<% OO9E"K,G +V%3'tsk'UFN>DN58fy\bZ#ПN$qEl^Pm r*|GWhc71 w$?v1ih|H4=Rt)W *d ޜj.Hձ (6olqZ\z~噰Q޲p/EW޷C8ŕ ԖS%*_h?hW~O|0%{ ==f UUR>*D;~D)2S|S/k薜͒@Dj,elw0Ogƒ~4")<*UmS?}d[aҭk^=<[KUʱPTtBh9lҝj L2{N6y^)uj$8dA9`: t.4j!&ZZ+MFQ~hmO)T /d{P6?κt)?0'?b>s /Ys* %òߠ O2:+zhm%|J.0?YQhԡp*$Eɯڞ|RL`u}RN6΂2n*}SɆ^z*ػd_MǮ;`qr!`];Rjkg;P|*xbkE) 82vC&|}b`U)p2Ȝ1ZVny<9.՘<ѷC2GՌfaM7jL vܶ6Sy*ƒgeB[aS1NaC=Rr3zfT.ɗz MJ7wE.<V-fIxMePpNޚQxnwǬa="?/ocKqFHP ¿̧lJ( Rɏ%b{έe d^Jݼ&(]%ceQ )@R:V2w0w=dO qߢ#L "Ž 'g?b̴Hmxk*}Rסƙ$1ӄ`ԲIN f87AӧFge%Н=bH vU3-.$osI`j XNJX~ -uA>ۯ`ѭzEwT87=Zh*R]xU36uw j> Yw[V%zº8=ߍS:^,'h6i*N"X:OqwjBpb&gThfY̐ec L7A4^od<3WL7 }SZo"Gcǵ nX6DuSmDe~j=Czx|n}T'EoU$,el1h>ʭ @tOq̯,QpzOS ͊⁃fWAd܆Cdi` =HRǸBwqpp+p} )lКeWD%RJtFo@5ܮ,h&kDgM|YFG© ,T^R'GuZ`EHfoS-DAh2Ra{ʉ%93rBMjʱGaG}N^ʎxH^.b>wgґg4uoJﭟ;I\ W+Ɗ^nFFC:f,=xcCC͘Dȓ l:}y|,}PT-,:+{`f:5mn׹9N6fɯ a6YͲKt"/R~$GƃIsʀWBKxusdוqrGY;fxT2^ދ+}Ӭ{ɐrT498tf8sƥ.݇Fl,axz˙M0(Y˻NE o;T szmƷulOJGH>x^h' qWg:CH?`UX=z=l[>r)d^T$h,_,e5_>0- 1@ԟW\,D?*pTD~ W R (ln_îǹPr$cޞ&s t#q #Y`m*VE#+Sn%!"!D?Ȧϕ qWH4_\瀟(Cf}\f19rkUEcJ$szH/J9HKxOF)rtڊt?$mD f/6,c'.ɯɠ:tn^H"Ze^ lS?d̊JpscF|%F{5Dǒ1 1r&ZY[f /xf B&T?Z }/u"@02$t?:[x _lG}ӝBDfٞͿku<&z>e[?9d%?zMT4ޱ4BkJk}N(J;NtSqBۀ~F5 gXz9=hNj >^Q ݛa@I6'ē(^O0߸xG+F(!%cqI\G<+^CِLnT@4'v7Z7sow"yыoi.`ly72Qɵ&Ƚ AHoVC|dG*~!F'ZwGf^&=.{q!P38uՕrn066ٗN~>Edv҃}gK1Bw `} ߀rTL{ !̍]oaTs3cQnRUqLcw?ĉp1'?J;3MZ̪UaQ0iQ{Eɨl|V޸?xH8ȜJ&ю”i> 4*Hd10S+ԍ@zyBU9!Ggv%O, `#drE7 %G0(1 VcCj1R`gD*UU&_|qSh(v.pN4߄}%~$h|vn~l'g’H,^w0گ*eOG:RbQσ kp/esޭ.rVyIT[+{ xǍ5у yGHUu6zEw $f tŗF՝*;a*/QV@P$ _B+C /!-**j¦E&KwG)=pb˽y\k,tf1"c U)]y iM[ɫ̓RޭoaJzm$KR`VYe0@ePeME9{ۀv]1FkPG\r8Oޯ7웚mگ(`RmDK#4(`ՍѦy-:!?>~ u ls%{bUgϨ/Laʩ0C|Wt^*-)NJ!Dy3 0)|`;iiO0.~8!$k0;QOJ>u_l"cUF! vR! bL?ڂB,yXmg5'W-A']lTRDz]U>׌i:=LI^hAgHI꬚v`'_&6/-H'E<ǽYP۳npTc]#m /QRcfi2ÐCECY]ڤ׉-^|隋 J\W UŸ@],T *=~*«ݠ~!Boy8v ,u+~a胔N);>Vt%daL1itK.sP|Gss-iǣPO !EO@޳t3;Z?,OQ4n ÉZ?ZGʦ(h0XFgs+`yqc{:HdVfh0[0iIӗ~dh/HY݊nx(]YZ–`v)-]s])>mѓ㞡+L MqLw*z!}-و[cpr%NScoS^ ً:/H|ԬRxjAҀHeF֞+8 ƍRաx)#}2{" ^#yO*`[eplj)Q'jAnttυLpGm'g[_[C#0I>U-h^ͅuq* ݶW Q3r:%[ VnTYyPȇ2 +Hu)#!ٌ$Vg9`WwIsvF$N؀J 5rC(g/Te+j-V?nĵq:ݔӐZǩbE @-m*  ȿO}j_>?iFa L)w3Dt HDYw@ Sj5_b>Q);=̎Uѿ&N[Ek40n\=2"yzT"s'29ڼs(Gu%ڼY{kP.OrV'ӅsO'̪G'QMXItUx*z^~KE;t𻡎( s m_:a,˫dtA\^*+@Z8ؗW:O"륊Y`Pu'%[.?968m2m<&x59Ӈj.1N&Ū?~.Y7(;C0pQgvס P$fH%vJIf|i}ތ-_pg'zOsE`KJԊKYB];, CFF :0,Z7UAxpB ?9$"B)נ^ s8"oH4=g K $f ТC{ o ˎ0q`-׈6# FD\~xݥ ^7Xt#R9+5t9ٜc>GHgV*L 4iN0OjW_z\ )L`j1VZ&jPbP*Tof9TTFGsHMГn!WH b[(՜8prMɇײyeS&Z\Lܫ$_l(Gi*\tv|#V|d ނwoY4EIX=R7R* rsX8Ψssx„i2TI'cn򜑣d`"vUdgڝ&f͸A?ǃ+iv*f^7t8$ $<҉KÿNjuoɷ^uM^RĽ%0"kNQ/ F;<p3~/t/W:_d04g߬*IѼ*-'i9Z[y񘐠e;1En77 X#D7ϧʴGXeP gh69v2?m9Ytg5vj@Uܕf(ӝ>wJ@̏_CnRwW,`2+!r"yi5#iLȣ_M7ކX:pKp:#9!d>Rʥ  JRDOQӃ].xetцΠP}V:۞ 0-`H`V&f vb" B;cDnоՇ092>pMCDv FKmfҩ؉p,;8~.5vWbp'X>*@`ޯbMdÌd9GtOHٜL3Vw+.'$b2C4&BVؒ7x/ @R=:yn3 HJUaOTdҩR` 뺆2V#Wn!uժKid$F3.a2#BLl.—r|$;(-_o ;/V=JZS|dOۤv W>h6hp/]2qER]؁`vi`=> ) MJ%Գ tMGSGH8^6@)X+f X}v[{jϽ1j}x)pJHhU"/`ܦRL;y@Ű{gcJO;26&on.`i^e) lY'CPc XX9|͔[h":fwg:{L]Q_Ni{ILb(#b4:[r7u!ILrz+6iǏҡˣ(sbbC)&z( ?|O\6v6wy*[S<<(h{TT]vlvZ[ 9Hpc&eF7@aJ`Q}mbM`&[dJi"IPQж V$wbf о>iKu>/鸝?Z!ޏLx~$B_ d(e1{ ۛV*ѯ,WF3v(͈pi >!V% anb 1@/Y2r,KbsTGFR.ԛ5m<+@  ty58ݩZ+ZƔW& !Zr@t½F8қ7G9&+R˶EXt8׻k:7fL(}˩ݵibZB2^r:?XY6庴NAeЬҖ%?\871=n!J*=ҮzN-` Adks.:-ӆ貎jս{ۦe)褸־̸&=ݤjzٚC]xRqԂ*2ݴj@"FBu|a mq$ފJ/.P M Gj0EFxc <u"mq-ۧ@xz?{,)})k5=07 X ́s(b[­^5J;сoD*TipRItw1kŀ Jk W.R2mGsYPH<,S ҉݁$_Ðҏ[\;t)Cz\?3׌[Y=O oՈ>cipŇ2:L'%]S[>>}G 2I q#`(&cF^ױsͮRYL4b;}8.u1l3כƃ.w1dԋs'Ks~jཉ#˜lEHQ8}՞,ǘk2N~s 7Tөe0%}sd {Hl$U#cf)Ezq1tŐP^6H&h#S<FT_\x}˓.'⅃ ۰{8IGjVǼvw9~eѨeE3]qI_ EAl ?Kc#O+C `lv*yZ8.9+"L{kQ:)IڵdHz0kws_cE` ߸ؤ dby-M{z e%ZKݍS'jyCB0Péc5腚5Tc+~\zda\̛_~_!kKbu\73=s)~3S7-BnsZ-vkYO%{Uڡ̩6Css9-_⎘o,ĝx SOTv/ ^4?a5XH,%߆~{  s;w7qnyYj`n.dFtCi&Q>O#= H FG],߹d;tvc):Sooȟ0yȷ ^S~VtW9*[`fI@tw2VۭIUz8ץ$IC$ڲ.9c/WDc"6 옂pt\9f"Ӆ۔Psϔ.!a\ZM0pc8CIӨ3u ~ uj]ť$KA $U+9F/Pު|t~<+:+;S~>?R~YRtrJ)rmz5eϵ ;QP\,(Yי Ix[/v S6K %Wti# R7k@UtGH|\9s?'n띿B& 0Eծ4&BYq0ټm"Ԭt )3&W^O[{L R LcZɉ-]@~ HK˦gܲj4p -*7^Oj Qv젖d.01w&þïCr7;kU]tI XdGӜoT.4SC]9lo>NZf$d=V s+.PYTcC.Qrx)Nz 3t|S ?#4QWte1x<xL1g+ea&򃪨A11rC;#(=)f^9e}@ 4 7 '=u6m6 cpDzޔΨ 4չ׳ 7߭lpyc`≼J %y )+"%M[(ALX c9D!,ǚ>w?hAlm{ά(FQ%; ufi/J '+fFhsOO ?e¤3x Sf2f3AۼNㅚ?Z+i6;ö⠋@q&/:UnUAU*щbb8UmH"*>,iy7eD'bˆgF@#a0Xo; R_3XyX0ͻ3~$mow,N$J3`3Aq3uW rZӴѦ\ IM3 wRydQI`[V%cVm$`Iw93^%βP܄8p~ƔpF>h:3q+ \Tgкi@6Py91Qq,,3]e!G,  bnq!N_p1z˄⇕b6yI Lfƣm$qA0;dn9eXߒ ] bmQS?> }<:ȿ۱ P rޓX$* (7͓q^)& SQq`Ղx/6&r- (wWSbuRS浔yȄ(ę7-f@90 UV{!r~ۥ8b*Rc\VWgM5oOҞ,nS 8zܠH8R.>/6;%usCZl I%#h#؋sϓr;;)BfFlVbQ hJV{²޳XFO^hk̵#|W߹y}~p']Een[-TiJҍ ;JW`ĐGuw֝S"Yj'dڣ=t1RթE<$dP 9lC@yeP;0i+~=oͷ~`T15,H_+XET)B^4.6x@i)1ާSW]@nM.;),+cJw[@L,d)0gN'ų&TρJ*'>GkanƾEo8e \?Yxqo*mM u747q6!.p^SJ̀64;ωk3$7ԯK1p?ByЙ{j䠆v-EQ-R?P-9(1[pT' K\xwܾ5o@ 0aײɪ>pHK䔸DV?g ](`΃vguWk##f:*1Zk w%.VDLJm4-[DiC{`> A|y<xiSG)=e8K=֒)E045qC~;("> -*|'9Wy3FviWol%J{gFcC\Z&g&{# 6!i> ksIPK1B@#1c~7{]/U?ۥ,0@"GcǷgۆAA?iXJN6ret8a|o }13,Ƅ'kfG.$g O]9+IDAYM㷨) -\[jߧ8?#ķ_vB #:˚O"E \N- љf&xġ OA|5q1$&;~JwA綧Yu5p{ n:”@_"Z=\収pƼpNm$õeesաt';SWJ32 B/m3,ޝ HAӢ&Bbv 9&K1`ȸSkKn'%]Sl"RS^D(' ?ES WgO7 q8V)Alc)Tӄ]v ceHCG'/N~*f w)PL&Ŝ`/t@߇yO#C[M xQ(f=<挨}C^18#-?UN|a]ѐzlfG/Qj*QaN|`^[!- |)Tem)I{OMoe?IiN@Bd!:G^Ly0'YZiيVڷ[\ԉdǽ- Qnd7w!42"2,Ͷ!`PpTK& jt'S7ydžp$񳥲)Zt;Ÿ2[a* 2,¢4 B}5#q)Y_r dD]KֈD3yl{lM8h3[NSNJb ?̲ B &4bcP.۽vvs^YV,0/jL@L<ЀhG;lxlc8(Y6=RߵIl=xuú읔 q:"!Oo*2WcLLkc1f" IQs Șcc" x +=+߃ZV/[Cc̝)qv\ ĥqDz~Zߵ $塤jVɔ jWsU/McZ@T-Wo3J}S*ĖW"TU SE#`~Q^cuw>Alj?N#/=v6yxSQQN/J'̛TÇ_ڀy=KuqΌJX /d1g&{OTUJh M:Nj_<ψ[Mr ^ ."">x)IXk} BAF"Lge-9<~!:^-;e^J1n\St@ZљA_} [o=q~-u[.hɸ2Co Nf$\"*{zrNG,FY[|"颉Ef>dп f!ٟ2y&R9@yZoE.uR i BaCe0jt [&f5 %*8"Vu3}/*iP"O!]sqOup̶pQ/GтӔ܄䜳XծiIѱdQ"z?~ؼuz(P^+\\d[o\y^)׀.]k p9L)p}?9.{>.l%!iL#):m @$;qc>u`Md}xjL8לlx)'k=J=57?0;*ZX%r_$ A=:G~k=`/m?vLumW37P;K:QtW>HiQKj}pcM)tk3$6 Ux[SD yr~N[|)/TuI k7=$ 4ma&5n̙z)U#7U"zP#Crf-x!{H[p4BU>hH?#RF٬ߡ%GFױ7x9KE \*V=C`JU7-̔N`ApwB+:G-$n]әc5K{{3PL+#1lv[C#ʆ)={ Hm 1<=~N ӞF.ʍO>hBS@y}!rͳQ1OH-! w1všT8V%~b,m[.mMGwFZА>$*X^?ޣ Y] ,pqwR=ЄdsBkB)at;n ~#j/y6-G=\c̬_5;K.vrvNgYrCl?]ЫxRlW:#mfA fr*Q2L^׏xŤZ2jf ]|0S- Dż 2ERNqAS#9&f56K2,{&orO_YĈQ.zN[>k! KtݵxDc/b[by1!Xn>oI dH~$T̂%}yQ p515,sVp/i'϶wZ+0jR E*sIR)>!ڝxD5y+/CSAS"SڣlfT\O?\OQ)^HXiٝ3b Xe>6׌tXA?s2|Y;~Ș4)SIDF]/LAyB`ko¹N|l>9zS z8G/|/#~̺>EyjTl_B)@.G8A^@'u6d?ZTdxѮ:ׇTQ em? u7gT WK)qg^$*h{u{-#!ర^G c0$.k+87WzW$:]O[Hƞ(&Rc6M82Ehpx7?BݽecL#C,w2t4_Օ_uF<3㤨,eb&cI-> {N*NE=chx'@Yw=8F8 |p@r|;4xqV"*QRt6ٳJ,u,"j`FnV)V# -i Gfv@['R{}VB.soU} 9>}oMiit *r;c-nT-Y!Ϳ8p2*^PVkv-,iCg!/SɊDnё[&A~?u"nrRA/LGIgUhLd  9ld᥺5$LEhQRbZ+&tpa*3 Jح\h]:N9gBrc䌌irw?[ƾ}4ξ(> ]jI8 h,M mr(CaUX"5](" ѫį dbo|ȧyhb )`U-M?:&U8AXV9zk{h6qG߃]Sʯ.j횶]_O| rk†&}B^зYtCTtCbg_q#І%ܬOj+rEJ:X.b#g|9aYY 3#S!Wp>iYp4qH_Z!/}V90qEq+"S<8P sF-&([;d 4K1m0ϔXĀ̇A+OI"9HޱҀ9f2fQV 8pxQGc4`̍/6OLM۝BW^')FVa۩Ս8ɜ]> ot+\kmJU@盂Y\l~n߼ݣOB<іI\ˮŵ,l2oD;\ȖJ,@+[@0r,&]v:!-[1*;͛8~A)w7_`tdOۋ%'!)lLwc*}amF' &j(^3>4v8ɶȚ{,sܯ[3K4-$\&]-j󦥾!9M^v) ɵ?hTn²2-6y̆}Ȏ2 (>:z#ۨ{,me}Ъ'kq 0ʮw/JrCDޓ"z)ٓd*wPz%t⹎uY/҉P >C5 DG.YBQ&4˞\% 0HXTYk 3@Z{w%Tcw1( 3ygq} x^PEoIw0~1vR"s]}Fx 0X }X15'ђ_yN:v]Lޒ5k8fZT>M%9gaukU(>tvg1$j1ϑn816 KFM t^!u(zI.>Z;O)"SWm-ܥP$@ܫRG:[BC O2y9KJuBjBx[e#$ՠd/x]/_kyNU9b_%٪+aLC?/F!|wfA F7`ް6#A] -?-`'[?emSY܃:{EL016e![xwtY9t3n3DD᫲$UX0 42B_^%}cphf "6-p40sB#,a`5dWZ 9mw)3(IӉ၍x}%m2k <ϝI'5޼fwaR{20P#Rw7iku_h{㓘LEJp9)X 8'憩5/1TآA=a i!2#KQnM{VAq]ݬ ɵ+<n ǻ9pFOȃqO} ?=Q8 >\~ 8V5@ظՉ**Z8~?tu(cкʂn}m|+kʳ{Kv_'kR8ԨZpx'aŢ>kn#}gEy?p|i=`%X܏O 6 E6bg_]$d@=$2 P[f'ذie'/!ŋ`P{x.Ԝ@Bs?W?D9#c }X@lN )wfk_lʨI oeCVFéf 4{y\YbbLe8 挸Ě%gEAۂs~̅fz#)Vv JL/?!0ni .r[IZ# I{|acNpugRE)~t0Xc9U2mPp4ޜ'Ah}`ip|ADwj7qxc9V2Nk!8Z ,E-ceZuU7Kѿݭc:)_La $!ͺWN!о"+]liGnzbز}ٞh:h{,AcÈjHKӊY c/?TgRBgPjל\J#֛3a> T Ω] Ztqp}-tp_]i2*(.9jy/_06uE2-&s'a;OGoNI OCT\y,)R:%"TOwbߐej gYao͢%Dg FPV{ g-j+'Nj_\~'=֛`[ngNdcn-K>irx1- JqO > fe=$:$jNы7Ɍ1XMֵ3ꏃ$Ai:%mE?>#Q.`ujމ1"6T%b|l}9Iv`ԥ6@pBUBXRiU՘>q+eY0>`R~Ղ#hpGUG/PFe\EJC~hOmd@W 0gU ֘OBg?gl|7KIAq gW6yxg{yI9}]YuoF$5LJ"mTڮZ66PD!`w )X+2(JP&o{TUؼ.Q2qgk=>FZdw΋)g+C=ȚOrg l$nIb \םzGI#g$ m-E\aG#9V,{0uD<~e5ȼw9B5 0< PTBl(z&s4q1XbǑj,c@<ZU J *tkKaTE2Zvg6@ 9&u in<1`?+ܩ .S%=a~ԒT urovf]qNP!bR;DZٝ>tip-_1s%+Z@&-9 d9a|40M@maF>cSREg9B@x4X:U>js\$J=4} zg'>o1<;iAyuCt=Mpl6`F)>T̚kں[ [2:JY5NSP*dg%?k,w7A}AjFd=d촔ѡ{x^޿mf-ZM^a֕Z۱)%5. r߅ӬYlk/0Z\Bdkj5!&?JPfaӋRv&Wg]&mX̵=MaRTqӮgw~o #^V,/u%]+K;g4+/p$56V1!/Dy?P:RJJG!5Juލ{pTP U2Dw}%B[㊫Vn ^ -p(0e˼pGT:ϖ ]"qzpcvz\⡿}̚No `v~ZeO-k^F&M}ud[yWMRF2XR3Ǔ<ȁb()f+O۹i?ፃU.m!/Z0 V34"njQ 9%mdY5o:*dFp"F(eJ28BT7-bQ[YSbĢ$.@MToJ iҊyVYxoid*Kr[LáĞU[ϷWc}O3#V騞9W͙HH?-seir?jE$݀Bm}5"D q'UX[q1=<|r] Qv,1An1566EVs`Ŝc_J_ o!CY"qS!ZUdx!ڋb  H ,٥`*}S .Wt "h<SE+ȉ_@[A()J|a CWtCvo%@L{Xʯ= 0pQokltHۜ*4lw{cFgf!jT3Ԭߪb42wL<љZ,àcfчt#S 8Ex/CydZpCPWq׷䝿wݞrضZ#@(wMLlp,F瑈SP1 r6f &B3^3pI'}c?5FM:Eq2ujvx&f5m.R Y~*]UZ09CJ7JhFYp<?O)]=6ʨق˝$nzla20Zn_uyTF*bpq S9܀ꪅa#?o&  FHUC]4FwWVQ<͆$& 1d)W^YcCvDK-H] )BY"WrBaL2>jG/5ѽ2_%.MXnX IDc;%DjucB,OF^pN-|%ЦR0I(cAktyӜbTk\B8zCYi4yQ2 ͽ_ㅯr5ZZܩg>^~uDw:5rxXi )} G/΍`q6fbqƗ}ùЎ=*)x JQ<.IV¼͞ܔJ ]I ))?8_h,ӌ09SK]*=I bݤ\ݸW]K~mHؚ',!>,vܱ2] G8e ;f{&ˤJlboX1ggzXgmwK^E]W%!0>}2ez ¥_mJB+\?վX0 n-Ѻhoj9K @İLUq(r@rUՈ Z_XNK|Ք#|e,v[-$~4afR qQ:#{vxfŐq* ^\K=A gv?_x6kÆ 9/o!ceÃgdr.ޜ90^ҾvֽzxξV_V=F!Ad"V)Pc14jG-s&b<$t=)*4ʵHiѳ}o@/ Oz !4Q(D%<~?B2*cP"2$2zud B&¥!'}@sLK`~vH+h[q*viixn!SMA5 ً]R<Ǧώ3 qn8ydfݲ[ 8pd4 , &cE Ði&4KlEL(8"`nOM ` tjpusPGL|(ZLU H6p㑺_;`^^P0~IAֆR.it}$d,d_X-lswa) ;+!Xȓ9 w[D;y`ft$]+sq0;ͣk-̡DyFXWsIR~jPAbMq q{iQ4֕>Q>o0% Շ>LᴠR_$[.&u5Z]6T~Qa"%&U1([T8ХĖMS|Q AMSco.AAE2A})|aB%|> cT9ެZֺй  rHTD(u-1"垏ubaE׀jPl%C8UPLny;WE 俏HxH NjzAZwJ[LǵbY9ݮDKߧTzƔb ,jڕ1+(.- ĿAØ屄G M!Q cN yU{T@'O&4vVcY=wq˦fJ%7OeW@|Eio]KFoBEZ{~A54O>V{ʄ2}޾G p\uT;c-qPN}Q'UdLgQ۠ ɭ|D &ݫP.p2`ꧏa~12h39+S!?s&b_+Prh|՜+SϮ:,fV&L ȇ@ BlJ\MdoV0s5+[UwdrvO5PF fTʢoh՘Ux>|lӶ*tMP#p\+yY[ӫIĊDuPr83"x" y Cy-JՍt)r e;M)x`2ug\>?ͨE][  Bٜ_C57Nsv!՞LJHwG<_U+nx@_'N1=^ETwl@~+O\ Fi/v!L @ϋ[_"fG,I{~EIh `4a-5 }Hz]5Wt./Bdcӧ0-)(;N.`fX](뮚t=,c PrXz((Z\r)D~9.}A~KwvnC[M'WnVHrߩ1x/Co]<*nblgQ]Ȯ82H8PQ uaV\ | <-!ld`мd3; 48Wl5H*}3!ZeV}ַ/nqWCS %3׃!_0t̿31To5skLZw-J~wVnM{/9$kٿ49`WaYF{F+K$_r-a_]b@ ]uYD2@I?mۨ!My!2Oh1{ݳ3Xg&;XcR{bBL{9a٤tP]Ɵ^ r?"`V"Aڷh#^;lj"egZq‘ kb侏rP';_Uj`UX *wkڿ<vV4v6Jr("yaťrt%=GH3;e]¯ۛ k2Gޔd(Bp]WbmܲyXG?D&I*G ;.~Gc&$rim Onɝzɝ ]_>>G/ޘG:yXK1(M L@3kHhUxRLW H;AԆjBvt ܚ*Ўn*/'<-e[=Yl*ʒ9#89[[ﳼ_ 7aE>4U{Sv0<ċOU;ZXfM1&'> / *e篅teG!Hq[ZQI'. so#׮ w-OcZT}> W\Cv,Ҫp$ X [!Hafv2i?@ i%dtQJ:A8Z>KEr1%½1!}x!D ̻|\ gYKI8ObN}q6mn4:AD}}vqVLO@= b~nuk^8AĒ6 #<4I j~͗?HbuFtxlU**qK Ef&#C4]azP*^ 6%I5#vCD=>?vF0yrբOn< kU0)KO=s wT#銒iߗ^)! S<iluC"ܻ&0hfePNZ{~g~U=Zl[0Aq8l7m.7;fv?7lMӚ~\c|[ުK?=RoL4dTDEij7p-2‡$.oV=69X_dIu:31":^U4bk/桑? >#D%mpS 57bT)_k%]2O& 4 !Hes(:ʍ PEz}v:#J'HDmh#]6&z*pUiǭux8!Q.GncQ<OWVPe7m}1<= L!B#jfr0 1ow1xɿK:d;ӳFݩc=GG(Vh1Y| 9` ˎ/GOߧiX< \?[KwgZ NpDz/FulUݠØ,{@c"l5]@o ZNI{j1sg3@_Ӥ#y۲aꢢ8dr:6!0Bnrr7+(Rtg،VjNPnf#u,%|'] 3֙w}yQ_bDDpnc&Y'zbTΓ9`lNbVTXPihS֘~Kb}I]\A%njJaڔgĽ~4tB>=m}0͠EߎDm'3~I^u tڄO gv)2B~HC. "Ty_`vu~V @WɷFCUF8 r[Yٶo"p-V rJY~%oSq Ġv`q;eL58e8C(/SsWq"}7ȸ5/.2@'A rt~V> -ToUB,6{]TvW W>Uf3|µLgX\y XVWo]AE~IL$O ) `׽"Z_m6{?-1{ k"zr#`X$3n9LjGyG[AO$ĦBmp0[8Klyn#gxUj7vmX*AJ[fLm7V+Jp K$$ʝB$]ʹ"2r-hOʲœߞz!A.l[/ mdO-ARH ɶsYA[J0c6*3 J؛ /2A9ui[yfA#; 1Jk>WLBl4omaf*5>P&i萚-*(YIp8[!#SK̷y0\%u*g1xnη:?F|> }jZw3PL($,.G&7[-e dc p_-vV Cɳ]l.1 iUQBzf \J-?xxm~BkQM yV-jFTZnttKlcj0 /3p#_i ~]G.Hڋ,ҺKqNyQK!WHc^v!V'iQCn#OҚh6= qJ9Ѧ]Ϡ(fU"2bӼɢ? ~I޻HzǤ`L&Wꇫy@F܈?|w&WhƵz[CP'5XX*=N8ϢM?gȲÜ^XYKv<^9z})^h]'#kJ*gh6$BiCw6~&/$~)ONfBm؊gX55IH`.bLu޸MZ.JpAW шv-Gq͊E%̜թ~U2ˈ5?DXd&U ^LYMoFRyb}Et›% x?d6rfƨr13#=IL.X)m\!ҫ~CA-l@)+N(3@W'DYy}uyCTx)7% %GW$\=h7 )rYƴ/7ɲ/Gr[ _-1#a+2h ܧrH*w֤cbKւK.JR/ 6V؀"ք\A#x=ao7:!φYDpq13H?~m2ljV[=qn9WΊ]0Q9 ׬%11` qsavSssoHbtoi ЉR27:wu]H>Zf_y?l{ P=I,M!tIm2>GEZq|a}X S9Oy:SXȅsɚ;bcIyky&'1/.:z 8& ! -YjNB"O(c{Eq8/ O ceÌT2{1HЊY$`MuBYx#ẹ֍2\n$;Uu8 V`_iwǬV4m)])`I\n8$վ`Ÿ3UJ ^,i.T*يk@tNXВWHy.^B t${xqA+.s!.JS@ ⒏6Io ȨP.'^-E"ȭ^vl4Wܹy$R`}~K1ζS#Q9(9%nY`!LNf)SP8?$]E".m");YMm;*tE'rցWdxo-~ẂnBy z\>8 [Y\S5%pe[îcDϹ(<||_bL> Z)H AgZ5{Nmƫa[ʕFV8(>N^o!eT=3z4_5Bn2LJ )nk֒(v˝\ߪ> WHQ/\mT_.mc h5z>xPZT %Y.V5Tio|(qgI)c/QpVZ{q « *vg?޹{#$0CP6C+'_Sєj`^Pd 'U2,{nQ-- j ]^ud=KpyPýXb\ Pl7D05H~DuhJ'BU^T_Qxz^o (|~ߣ(Eס6>kY2d'^Y+15ocnpf!U^flVAgE.zPy8蜹%0հȤ7kdQ 2$LIARb>jPFKŎӷ͓XL}7%x.S w~qqC김Fpffqq" 5^%ǝh*2Fvt@ 87X2ʦQiIlkA+!9 ? e޹Œ*Mĸ5 ๘t9*eÐuB2cC'5+HU4 (6@!jfg#9+%JRT7g ݗ֒1kawY4G!VMM"jg~)ȧ |͌.mXGKV UMQќȾ`eUF619ŶQL'ģ/U<߭]KG<ZX3KT^Bb}u((VZ:^1fՅ\ l\"/x)\).Du?;nH]Y^o쳎(BX)c ҆eCaMnP6˙DAޡ hw~oZj$~Ɇlq1Rt |j)a\CSdIa6oDT+uHn;(Sx@ab5*nmd-N4H9rB]_$  U6ohXgJo@mKʶM2_Wf&H/3( Y: P4hI] 3>q5*%@74wb8ۮ*h(L ՁWs-˗n-' V@y^73ౖ2ҩES+ƫVy\P kK hdppa8 _a)&]CV78«ԸP(-3S"oK6-!&c[yӨlw BGG l'D039l`Q-Ar[Z;1&@jS0CܞI-ꕆ\RCj]WKiNqmHx>˙I#~nD)V3ǝ\DROO.swt`H2#rr7Qiy(pI2_~ )oИI!cf_A^RAV|qVH&v/μbdޣkQj+ 'ʜA72B.#h! 28>x#.Ę䴒x BB|cSZs}ՍzAbdaWNo)%;~}9K_M r{r@ 3{Bjʨک7~W\_o;TDbq!ˈ 4g1(=ẹ~[vEìؼf x^G;X#~X+7&F)aʰ /O-0zE2E xoƁ; pC Q8 K0icS5UfνZ<({Ki9nđKtG[%ЈS~dcVh_#c1 D))z*do_73Y[ւ 4 **F[hEJTC4f!=SKtgrJA(ɇXzˉ52#J=\ED4P ~q滅4r/4f){g5itၧz2V$&P`]W]j=yHV̷YDA2]HP4:Sz,"n Zf=owH0vT/:LN,2<9%,~V5x7!!g\3:bnCز E$B3) Q.n5&@S uЧ BCoV 2^>u6H?q&d-P`m.MTnDŌbܡ9~m}:򵼸$XץAs!I:$B$ԃRet%eށ\ʺ.i@h&ТQ؋r{.p,W\/4Eg zK* g V)L5_ ^MQYOb\-JExëǸ@9(͘@ dt|Nb+.p0k+fb#CaԱxZ蟥\8 Rz:rѭ)0r{!tt9*i,e+r_3 -ŕ"]!L -EO293ԩis ٤{Qu77~g}^]׈w7+ ckVu@Vv8FXJ2&F37Zy%:4#Fv5aȟ}@O]\eZti/xQzWp<Z̴CcPT8¡s?+ کІ.>3+Y5o8 NdxWq&ݯXYJm;,"~ҷ#S&Jca_$rߗ(F,Zη0ަH|NzZb.4NxFaLf}FZwitvlEoi*PCӬ'IGIHkؓtCNvJt.Έ#Mvݰ8e%{hD~(Ni5W2=3XLZ5Ҋ|SM\ĖvR4kJGZ>^yβxoeLA(mK14cIʳe[A] :ԕȻ_8XѦ7M;oyTfk]{vY(L{$Qe7'5zfkv/'!VDYivK$F岣:FŽ\OIPW*<@)α)lf}<,Vd V]|ܲp#P)2pK09<Ȇ[$0O :UsfZF(5S-0 ca;"U`,[E*S&uX*ՏE\ w eMijUtC$y%E (t<{ 2U,ϴeX&ԎN ~۵ ߭O'rXJ-cCZǧd -B[ Ba{^qQfXX1([*v" Í>\m9ˣYC$#l6I#AnAN VؽK'.jPh\MDJZ怮Gm2r @'0s `cvms=2]XT',%0>Z+~=O򼁥ˮPoj$b˚Q߼ >tϞ{ayX} 80a(\ww0X;IK)!psMb%Zh/*e sdM4FL/ji}u4z@߬,yI#JX kr-Ƙ„1nrCF8E-;-2RU@{Ayxj BlB+⥵=Qd哒L!$TcDU c[UMD86#a#L9_0pT`X̍Tbrή ;@\fBw^i3 Vf}ci#j$&2T+|`n&VcM[FЦK$7S":S{ggUkAF@~rZ^n_45`J˗o2M|?͈30.<3}i v>^>JJ*?85\Γ:apGAH=?[Bx.oFYDV!;Hh9d3"3^1ןMBq&"#󠲝K\{FO/="Rw:j6DA PCL,P]Mn[?U7!MB\g ֽݮZS״`[f͖"D<'b^)p: .m _ճ?8@<|и+e5\,tP\bGYսz7B(q&q.FـYwyp[퀖{\6V\)4uP_dcNM叚lpRV1 ]3ThbiEO p.' Њ)V7a ><._*PR7R?KBLQxWt7>'dxsh.j'Q#^yDa3§lNDޭz 'UAxBC'Ycwf,عX 剅Xh5 b n/-f]'N^rԩU,'iwΏCBn Rh{C~㹹]jR.1M_/1 N^ݹgzӻ]VbuF[Q*0,9ϞX+]tR-CviĂ+f2Df3wʮof+MYv3XkL@s{@'%b$$UZy]OgdkхBm<DNv7q }-֞_IpxuVx :y{SmukR$ě8;ڮw1UGUs;tᔋw$ދ7 5>]axc HҦ`U>V#+/ӟMg|tF7.Bs-v ~/:{Ş䅾"yt XbꪗX0V!5CDR's.L8)~}R.UҖ?5gu@W%_qs %|M ڻ3ӎiA?[v - hms#9ez,TxtcR.WYT>Y/Z~-eemat-0.4.2/test/empty_file000066400000000000000000000000001223433004300153150ustar00rootroot00000000000000mat-0.4.2/test/end\nline000066400000000000000000000000501223433004300151150ustar00rootroot00000000000000I am a nasty file with a \n in my name. mat-0.4.2/test/libtest.py000066400000000000000000000075171223433004300153010ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -* ''' Unit test for the library ''' import unittest import test import sys import tempfile sys.path.append('..') import MAT class TestRemovelib(test.MATTest): ''' test the remove_all() method ''' def test_remove(self): '''make sure that the lib remove all compromizing meta''' for _, dirty in self.file_list: current_file = MAT.mat.create_class_file(dirty, False, add2archive=True) current_file.remove_all() current_file = MAT.mat.create_class_file(dirty, False, add2archive=True) self.assertTrue(current_file.is_clean()) def test_remove_empty(self): '''Test removal with clean files''' for clean, _ in self.file_list: current_file = MAT.mat.create_class_file(clean, False, add2archive=True) current_file.remove_all() current_file = MAT.mat.create_class_file(clean, False, add2archive=True) self.assertTrue(current_file.is_clean()) class TestListlib(test.MATTest): ''' test the get_meta() method ''' def test_list(self): '''check if get_meta returns metadata''' for _, dirty in self.file_list: current_file = MAT.mat.create_class_file(dirty, False, add2archive=True) self.assertIsNotNone(current_file.get_meta()) def testlist_list_empty(self): '''check that a listing of a clean file returns an empty dict''' for clean, _ in self.file_list: current_file = MAT.mat.create_class_file(clean, False, add2archive=True) self.assertEqual(current_file.get_meta(), dict()) class TestisCleanlib(test.MATTest): ''' test the is_clean() method ''' def test_dirty(self): '''test is_clean on dirty files''' for _, dirty in self.file_list: current_file = MAT.mat.create_class_file(dirty, False, add2archive=True) self.assertFalse(current_file.is_clean()) def test_clean(self): '''test is_clean on clean files''' for clean, _ in self.file_list: current_file = MAT.mat.create_class_file(clean, False, add2archive=True) self.assertTrue(current_file.is_clean()) class TestFileAttributes(unittest.TestCase): ''' test various stuffs about files (readable, writable, exist, ...) ''' def test_not_writtable(self): ''' test MAT's behaviour on non-writable file''' self.assertFalse(MAT.mat.create_class_file('not_writtable', False, add2archive=True)) def test_not_exist(self): ''' test MAT's behaviour on non-existent file''' self.assertFalse(MAT.mat.create_class_file('ilikecookies', False, add2archive=True)) def test_empty(self): ''' test MAT's behaviour on empty file''' self.assertFalse(MAT.mat.create_class_file('empty_file', False, add2archive=True)) class TestSecureRemove(unittest.TestCase): ''' Test the secure_remove function ''' def test_remove_existing(self): ''' test the secure removal of an existing file ''' _, file_to_remove = tempfile.mkstemp() self.assertTrue(MAT.mat.secure_remove(file_to_remove)) def test_remove_fail(self): ''' test the secure removal of an non-removable file ''' self.assertRaises(MAT.exceptions.UnableToRemoveFile, MAT.mat.secure_remove, '/NOTREMOVABLE') def get_tests(): ''' Returns every libtests''' suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(TestRemovelib)) suite.addTest(unittest.makeSuite(TestListlib)) suite.addTest(unittest.makeSuite(TestisCleanlib)) suite.addTest(unittest.makeSuite(TestFileAttributes)) suite.addTest(unittest.makeSuite(TestSecureRemove)) return suite if __name__ == '__main__': unittest.TextTestRunner(verbosity=test.VERBOSITY).run(get_tests()) mat-0.4.2/test/test.py000066400000000000000000000033631223433004300146050ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -* ''' Class for the testing suite : - get the list of all test files - create a copy of them on start - remove the copy on end ''' import shutil import os import glob import tempfile import unittest VERBOSITY = 15 clean = glob.glob('clean*') clean.sort() dirty = glob.glob('dirty*') dirty.sort() FILE_LIST = zip(clean, dirty) try: # PDF render processing import cairo import gi from gi.repository import Poppler import pdfrw except ImportError: FILE_LIST.remove(('clean é.pdf', 'dirty é.pdf')) try: # python-mutagen : audio file format import mutagen except ImportError: FILE_LIST.remove(('clean é.ogg', 'dirty é.ogg')) FILE_LIST.remove(('clean é.mp3', 'dirty é.mp3')) FILE_LIST.remove(('clean é.flac', 'dirty é.flac')) class MATTest(unittest.TestCase): ''' Parent class of all test-functions ''' def setUp(self): ''' Create working copy of the clean and the dirty file in the TMP dir ''' self.file_list = [] self.tmpdir = tempfile.mkdtemp() for clean, dirty in FILE_LIST: clean_dir = os.path.join(self.tmpdir, clean) dirty_dir = os.path.join(self.tmpdir, dirty) shutil.copy2(clean, clean_dir) shutil.copy2(dirty, dirty_dir) self.file_list.append((clean_dir, dirty_dir)) def tearDown(self): ''' Remove the tmp folder ''' shutil.rmtree(self.tmpdir) if __name__ == '__main__': import clitest import libtest SUITE = unittest.TestSuite() SUITE.addTests(clitest.get_tests()) SUITE.addTests(libtest.get_tests()) unittest.TextTestRunner(verbosity=VERBOSITY).run(SUITE)