quilt-0.63/COPYING0000644000175000017500000004311012332477113014141 0ustar mquinsonmquinson GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 Library 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 Library General Public License instead of this License. quilt-0.63/AUTHORS0000644000175000017500000000212212332477113014154 0ustar mquinsonmquinsonQuilt started as a series of scripts written by Andrew Morton (patch-scripts). Based on Andrew's ideas, Andreas Gruenbacher completely rewrote the scripts, with the help of several other contributors (see below). Please report bugs to the quilt-dev mailing list, . Quilt ===== Andreas Gruenbacher Clean up, reorganize, speedups, documentation. Package up as RPM. Gerd Knorr Contributed spec2series (which is inspect now). Martin Quinson (martin.quinson#debian.org) Several little patches and improvements. Internationalization. Debian packaging. Peter Braam Tom Wang Fix pop logic if series file changes. Pre-quilt (patch-scripts) ========================= Andrew Morton Collection of scripts for patch management (patch-scripts). Stephen Cameron Contributed pstatus. Matt Reppert Jeremy Fitzhardinge Contributions to Andrew's scripts. quilt-0.63/TODO0000644000175000017500000000671712332477113013612 0ustar mquinsonmquinsonGeneral: - Abstract backup operations to/from the .pc/ directory, so that optionally something like rcs can be used instead of scripts/backup-files? - Add something similar to cvs diff, which scans all files for changes that have not been folded back into their patches, similar to: `for p in $(quilt series); do quilt diff -z $p; done'? - Allow to add a directory? Then we could detect also new files in the directory, without having to add them individually. - Support different diff/patch options for different patches. (By specifying them in the series file?) - Add command that generates a summary (patch names + descriptions). - Add more long-form options, and add some nagative options so that defaults from .quiltrc can easily be overruled. - series.conf: Allow to specify options like -R, -u, -Unum, -c, -Cnum per patch. - Whenever the contents of the QUILT_PATCHES directory change, optionally call a trigger so that another tool can keep track of the patches directory history (e.g., CVS, RCS). Also call the trigger when the series file changes? - Check if we can somehow support -p0 style patches that are applied in subdirectories (patch -d option): There are problems with relative $QUILT_PATCHES, and likely with several commands. - wrapper scripts: check with [ -ef ] if the wrapper is the same as the default binary found to avoid wrappers like awk -> gawk. - Add some more colors. - Add the same kind of (optional) pager handling that git has. Documentation: - How to import a complete directory before doing wild changes? - Describe how to work with hard-linked trees - /etc/quilt.quiltrc and ~/.quiltrc - diff/refresh: C -c -N -n options - Subdirectory support quilt new: - Prevent spaces in patch names. quilt push: - Add option to print the reject to stdout - If push fails, check if patch can be reversed. - Add -l option to ignore whitespace changes. - Check if there are any .orig or .rej files and barf if so. quilt pop: - The timestamp comparison logic is broken; need to track last-known timestamps per file. quilt diff: - Error message when a file is specified that isn't in the patch(es). - When a directory is specified, diff all files below it. quilt refresh: - Add an -m option similar to `cvs commit -m "..."' to simplify keeping a change log in the patch documentation? - Add option to log the updates of each patch (e.g., append the output of ``quilt diff -zR'' to patch.log on each update). - Remove existing diffstat if --diffstat is not specified? - Improve whitespace stripping quilt import: - Add option to replace the currently applied patch with a new one, by backing out the topmost patch first. quilt setup: - Also recognize other uses of tar and patch (with options in the command line), etc. quit edit: - Check for actual changes, and remove files again that haven't been changed. quilt files: - Print filenames relative to the working directory. quilt mail: - Improve recipient handling (quote special characters automatically; encode 8-bit characters). - Character set handling is missing, too. - Too many passes of edmail make it a bit slow. - If someone adds a References header to the intro, the References header added to patch messages for threading do not append to that header. They probably should; not sure if duplicate References headers are valid. quilt fold: - Add an -R option for reverse-applying a patch. quilt-0.63/Makefile.in0000644000175000017500000003212612332477113015160 0ustar mquinsonmquinsonPACKAGE := @PACKAGE_NAME@ VERSION := @PACKAGE_VERSION@ RELEASE := @PACKAGE_RELEASE@ PACKAGE_TARNAME := @PACKAGE_TARNAME@ PACKAGE_BUGREPORT := @PACKAGE_BUGREPORT@ prefix := @prefix@ exec_prefix := @exec_prefix@ bindir := @bindir@ datarootdir := @datarootdir@ datadir := @datadir@ docdir := @docdir@ mandir := @mandir@ localedir := $(datadir)/locale emacsdir := $(datadir)/emacs/site-lisp etcdir := $(subst /usr/etc,/etc,$(prefix)/etc) INSTALL := @INSTALL@ POD2MAN := @POD2MAN@ COLUMN := @COLUMN@ GETOPT := @GETOPT@ CP := @CP@ DATE := @DATE@ PERL := @PERL@ BASH := @BASH@ SHELL:= @BASH@ # It does not work if dash is used as a shell, for example GREP := @GREP@ TAIL := @TAIL@ TR := @TR@ SED := @SED@ AWK := @AWK@ FIND := @FIND@ XARGS := @XARGS@ DIFF := @DIFF@ PATCH := @PATCH@ MKTEMP := @MKTEMP@ MSGMERGE := @MSGMERGE@ MSGFMT := @MSGFMT@ XGETTEXT := @XGETTEXT@ MSGUNIQ := @MSGUNIQ@ MSGCAT := @MSGCAT@ DIFFSTAT := @DIFFSTAT@ RPMBUILD := @RPMBUILD@ SENDMAIL := @SENDMAIL@ CP := @CP@ MD5SUM := @MD5SUM@ USE_NLS := @USE_NLS@ STAT_HARDLINK := @STAT_HARDLINK@ PATCH_WRAPPER := @PATCH_WRAPPER@ COMPAT_SYMLINKS := @COMPAT_SYMLINKS@ COMPAT_PROGRAMS := @COMPAT_PROGRAMS@ default: all #----------------------------------------------------------------------- DIRT += $(shell $(FIND) . -name '*~') DIRT += $(shell $(FIND) . -name '.\#*') SRC += COPYING AUTHORS TODO Makefile.in configure.ac \ config/install-sh quilt.spec.in NEWS \ bash_completion quilt.quiltrc aclocal.m4 git-desc DIRT += quilt.spec DIRT += $(PACKAGE)-*.tar.gz DIRT += $(PACKAGE)-*.tar.gz.sig DIRT += $(PACKAGE)-*.tar.bz2 BIN_IN := quilt guards BIN_SRC := $(BIN_IN:%=%.in) BIN := $(BIN_IN) SRC += $(BIN_SRC:%=bin/%) bin/patch-wrapper.in DIRT += $(BIN_IN:%=bin/%) bin/patch-wrapper QUILT_IN := $(patsubst quilt/%.in,%,$(wildcard quilt/*.in)) QUILT_SRC := $(QUILT_IN:%=%.in) QUILT := $(QUILT_IN) SRC += $(QUILT_SRC:%=quilt/%) DIRT += $(QUILT_IN:%=quilt/%) SCRIPTS_IN := patchfns inspect dependency-graph edmail \ remove-trailing-ws backup-files SCRIPTS_SRC := $(SCRIPTS_IN:%=%.in) SCRIPTS := $(SCRIPTS_IN) SRC += $(SCRIPTS_SRC:%=quilt/scripts/%) SRC += quilt/scripts/utilfns DIRT += $(SCRIPTS_IN:%=quilt/scripts/%) COMPAT := $(COMPAT_PROGRAMS:%=compat/%) $(COMPAT_SYMLINKS:%=compat/%) SRC += $(wildcard compat/*.in) $(wildcard compat/*.sh) DIRT += $(patsubst %.in,%,$(wildcard compat/*.in)) $(COMPAT_SYMLINKS:%=compat/%) LIB_SRC := quilt.el SRC += $(LIB_SRC:%=lib/%) DOC_IN := README quilt.1 DOC_SRC := $(DOC_IN:%=doc/%.in) DOC := $(DOC_IN) SRC += $(DOC_SRC) SRC += doc/main.tex doc/quilt.pdf doc/Makefile \ doc/README.MAIL doc/README.EMACS DIRT += $(DOC_IN:%=doc/%) doc/reference MAN1 := doc/quilt.1 ifneq ($(POD2MAN),) MAN1 += bin/guards.1 DIRT += bin/guards.1 endif LINGUAS := fr de ja ru PO := quilt.pot $(LINGUAS:%=%.po) SRC += $(PO:%=po/%) DIRT += po/*.mo po/*~ SRC += $(wildcard test/*.test) test/run test/test.quiltrc NON_EXEC_IN := doc/quilt.1 doc/README quilt/scripts/patchfns quilt/scripts/utilfns GIT_DESC := $(shell ./git-desc | sed -e 's:^v::') TESTS := $(filter-out test/patch-wrapper.test,$(wildcard test/*.test)) ifneq ($(PATCH_WRAPPER),) TESTS += test/patch-wrapper.test endif DIRT += test/.depend $(wildcard test/.*.ok) # Settings for running the uninstalled version of quilt in the source tree: PATH := $(CURDIR)/bin:$(CURDIR)/compat:$(PATH) QUILT_DIR := $(CURDIR)/quilt QUILTRC := $(CURDIR)/test/test.quiltrc export QUILT_DIR QUILTRC #----------------------------------------------------------------------- all : configure scripts compat $(DOC:%=doc/%) $(MAN1) mofiles ifeq ($(USE_NLS),yes) mofiles : $(LINGUAS:%=po/%.mo) else mofiles : endif %.mo : %.po $(MSGFMT) --statistics -o $@ $< %.po : po/quilt.pot $(MSGMERGE) -o $@ $@ $^ scripts : $(BIN:%=bin/%) $(QUILT:%=quilt/%) \ $(SCRIPTS:%=quilt/scripts/%) \ $(if $(PATCH_WRAPPER),bin/patch-wrapper) dist : clean $(PACKAGE)-$(VERSION).tar.gz publish : dist gpg --detach-sign --use-agent $(PACKAGE)-$(VERSION).tar.gz scp $(PACKAGE)-$(VERSION).tar.gz{,.sig} \ dl.sv.nongnu.org:/releases/quilt/ snapshot : $(PACKAGE)-$(GIT_DESC).tar.bz2 rpm rpmbuild : $(PACKAGE)-$(VERSION).tar.gz $(RPMBUILD) -ta $< po/quilt.pot: $(filter-out doc/quilt.1.in doc/README.in, \ $(wildcard */*.in) $(wildcard */*/*.in)) rm -f po/quilt.pot; touch po/quilt.pot for file in $+ ; do \ if test -n "`$(SED) -ne '1{ /@BASH''@/p }' $$file`" \ -o "$$file" = quilt/scripts/patchfns.in; then \ $(BASH) --dump-po-strings $$file ; \ elif test -n "`$(SED) -ne '1{ /@PERL''@/p }' $$file`"; then \ $(XGETTEXT) --from-code=UTF-8 --omit-header --language=Perl \ --keyword=_ -o - $$file; \ else \ echo "Don't know how to handle $$file" >&2 ; \ exit 1; \ fi \ done \ |$(MSGUNIQ) \ |$(MSGCAT) --force-po -F - $@ -o $@ doc/README : doc/README.in doc/reference @echo "README.in -> README" @while read line; do \ case "$$line" in \ '@REFERENCE''@') \ cat doc/reference \ ;; \ *) \ echo $$line \ ;; \ esac ; \ done 2>&1 < $< > $@ doc/quilt.1: doc/quilt.1.in doc/reference $(COMPAT) @echo "quilt.1.in -> quilt.1" @while read line; do \ case "$$line" in \ '@REFERENCE''@') \ $(SED) -e 's/^quilt \([^ ]*\)\(.*\)/.IP "\\fB\1\\fP\2 " 4/' \ -e $$'s/^ \\(-[^\t]*\\)\t\\?/.IP " \\1" 8\\\n/' \ -e $$'s/^ \t\\?//' \ < doc/reference \ ;; \ *@DOCSUBDIR@*) \ echo "$$line" | \ $(SED) -e 's:@DOCSUBDIR''@:$(docdir):g' \ ;; \ *) \ echo "$$line" \ ;; \ esac; \ done < $< 2>&1 > $@ doc/reference : bin/quilt $(QUILT:%=quilt/%) quilt/scripts/patchfns quilt/scripts/utilfns $(COMPAT) @unset LANG LC_MESSAGES LC_CTYPE LC_ALL; \ for i in $(sort $(QUILT)); \ do \ echo; \ QUILT_PC=.fake_pc quilt $$i -h; \ echo; \ done | \ $(SED) -e 's/\$$EDITOR ([^)]*)/$$EDITOR/' \ -e '/^$$/!s/^/ /' \ -e 's/^ Usage: *//' > $@ bin/guards.1 : bin/guards $(POD2MAN) $< > $@ $(PACKAGE)-$(VERSION).tar.gz : $(SRC) configure $(PACKAGE).spec rm -f $(PACKAGE)-$(VERSION) $@ ln -s . $(PACKAGE)-$(VERSION) tar chf - $(+:%=$(PACKAGE)-$(VERSION)/%) | gzip -9 > $@ rm -f $(PACKAGE)-$(VERSION) @echo "File $@ created." $(PACKAGE)-$(GIT_DESC).tar.bz2 : $(SRC) configure $(PACKAGE).spec rm -f $(PACKAGE)-$(GIT_DESC) $@ ln -s . $(PACKAGE)-$(GIT_DESC) tar chf - $(+:%=$(PACKAGE)-$(GIT_DESC)/%) | bzip2 -9 > $@ rm -f $(PACKAGE)-$(GIT_DESC) @echo "File $@ created." $(PACKAGE).spec : $(PACKAGE).spec.in NEWS Makefile @echo "Generating spec file" ; \ set -e ; \ changelog="`sed \ -e 's/^Version \([0-9.]*\) (\(.*\))/* \2 - upstream\n- Update to version \1/' \ -e 's/^ -/ +/' < NEWS`" ; \ $(AWK) '{ gsub(/@VERSION''@/, "$(VERSION)") ; \ gsub(/@RELEASE''@/, "$(RELEASE)") ; \ gsub(/@CHANGELOG''@/, changelog) ; \ print }' changelog="$$changelog" $< > $@ $(patsubst %.in,%,$(wildcard bin/*.in quilt/*.in quilt/scripts/*.in)) :: Makefile % :: %.in @echo "$< -> $@" >&2 @$(SED) -e 's:@QUILT_DIR''@:$(datadir)/$(PACKAGE):g' \ -e 's:@PERL''@:$(PERL):g' \ -e 's:@BASH''@:$(BASH):g' \ -e 's:@PATCH''@:$(PATCH):g' \ -e 's:@STAT_HARDLINK''@:$(STAT_HARDLINK):g' \ -e 's:@VERSION''@:$(VERSION):g' \ -e 's:@RELEASE''@:$(RELEASE):g' \ -e 's:@ETCDIR''@:$(etcdir):g' \ -e 's:@LOCALEDIR''@:$(localedir):g' \ -e 's:@DOCSUBDIR''@:$(docdir):g' \ $< > $@ @$(if $(filter $@,$(NON_EXEC_IN)),,chmod +x $@) configure : configure.ac aclocal.m4 autoconf @echo "Please run ./configure" @false Makefile : Makefile.in configure @echo "Please run ./configure" @false compat_leftover := $(filter-out $(COMPAT),$(shell $(FIND) compat -type f -perm -0100)) .PHONY :: compat compat :: $(COMPAT) $(if $(compat_leftover),rm -f $(compat_leftover)) # VIRTUAL_SYMLINKS creates a shell script that operates similar to # a symbolic link. It is used to workaround the way make treats # symlinks as targets. # Usage: $(call VIRTUAL_SYMLINK, source, target) define VIRTUAL_SYMLINK @echo "Generating $(strip $(1)) wrapper" >&2; @printf "#!%s\nexec %s "'"$$@"'"\n" $(BASH) $(strip $(1)) > $(2); endef # Rule to create compat/ for each binary in $(COMPAT_SYMLINKS) $(COMPAT_SYMLINKS:%=compat/%) :: Makefile $(call VIRTUAL_SYMLINK, \ $($(shell echo $@ | $(AWK) '{split($$1, ar, "/"); print toupper(ar[2])}')), \ $(strip $@)) @chmod +x $(strip $@) install-main :: scripts $(INSTALL) -d $(BUILD_ROOT)$(bindir) $(INSTALL) -m 755 $(BIN:%=bin/%) $(BUILD_ROOT)$(bindir)/ $(INSTALL) -d $(BUILD_ROOT)$(datadir)/$(PACKAGE) $(INSTALL) -m 755 $(QUILT:%=quilt/%) $(BUILD_ROOT)$(datadir)/$(PACKAGE)/ $(INSTALL) -d $(BUILD_ROOT)$(datadir)/$(PACKAGE)/scripts $(INSTALL) -m 755 $(patsubst %,quilt/scripts/%, \ $(filter-out patchfns,$(SCRIPTS))) \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/scripts $(INSTALL) -m 644 quilt/scripts/patchfns quilt/scripts/utilfns \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/scripts ifneq ($(PATCH_WRAPPER),) $(INSTALL) -d $(BUILD_ROOT)$(datadir)/$(PACKAGE)/wrapper $(INSTALL) -m 755 bin/patch-wrapper \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/wrapper/patch endif $(INSTALL) -d $(BUILD_ROOT)$(docdir)/ $(INSTALL) -m 644 doc/README \ $(BUILD_ROOT)$(docdir)/ $(INSTALL) -m 644 doc/quilt.pdf doc/README.MAIL \ $(BUILD_ROOT)$(docdir)/ $(INSTALL) -d $(BUILD_ROOT)$(mandir)/man1 $(INSTALL) -m 644 $(MAN1) $(BUILD_ROOT)$(mandir)/man1/ $(INSTALL) -d $(BUILD_ROOT)$(etcdir) $(INSTALL) -d $(BUILD_ROOT)$(etcdir)/bash_completion.d $(INSTALL) -m 644 bash_completion \ $(BUILD_ROOT)$(etcdir)/bash_completion.d/quilt $(INSTALL) -m 644 quilt.quiltrc $(BUILD_ROOT)$(etcdir)/ $(INSTALL) -d $(BUILD_ROOT)$(emacsdir)/ $(INSTALL) -m 644 lib/quilt.el $(BUILD_ROOT)$(emacsdir)/ install-compat: install-compat1 $(COMPAT_SYMLINKS:%=install-compat-symlink-%) install-compat-symlink-% :: install-compat1 ln -sf $($(shell echo $* | $(AWK) '{print toupper($$1)}')) \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/compat/$* install-compat1: rm -rf $(BUILD_ROOT)$(datadir)/$(PACKAGE)/compat ifneq ($(COMPAT_PROGRAMS)$(COMPAT_SYMLINKS),) $(INSTALL) -d $(BUILD_ROOT)$(datadir)/$(PACKAGE)/compat ifneq ($(COMPAT_PROGRAMS),) $(INSTALL) -m 755 $(COMPAT_PROGRAMS:%=compat/%) \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/compat endif endif install: install-main install-compat uninstall :: rm -rf $(BIN:%=$(BUILD_ROOT)$(bindir)/%) \ $(BUILD_ROOT)$(datadir)/$(PACKAGE) \ $(patsubst %,$(BUILD_ROOT)$(mandir)/man1/%, \ $(notdir $(MAN1))) \ $(BUILD_ROOT)$(etcdir)/bash_completion.d/quilt \ $(BUILD_ROOT)$(etcdir)/quilt.quiltrc \ $(BUILD_ROOT)$(docdir)/ \ $(BUILD_ROOT)$(emacsdir)/quilt.el check: $(TESTS:test/%.test=test/.%.ok) check-all: $(TESTS:test/%.test=check-%) check-% : test/.%.ok @/bin/true # Only include the test suite dependencies when required ifneq ($(findstring test,$(MAKECMDGOALS))$(findstring check,$(MAKECMDGOALS)),) -include test/.depend endif # (test|check) test/.patch-wrapper.ok : bin/patch-wrapper # Include a run-time generated list of dependencies for each test case test/.depend : Makefile $(TESTS) @( printf "%s : bin/quilt quilt/scripts/patchfns quilt/scripts/utilfns quilt/scripts/backup-files $(COMPAT)\n" $(TESTS); \ $(AWK) 'sub(/.*\$$ *quilt /, "") \ { print FILENAME, ":", "quilt/"$$1}' $(TESTS); \ $(AWK) 'sub(/.*\ $@ ifneq ($(shell . $(QUILTRC) ; echo $$QUILT_PATCHES_PREFIX),) CHECK_ENV := P=patches/; _P=../patches/; export P _P endif # Each tests dependencies are stored in test/.depend ifneq ($(findstring check-,$(MAKECMDGOALS)),) test/.%.ok : test/%.test FORCE else test/.%.ok : test/%.test endif @LANG=C; LC_ALL=C; \ export LANG LC_ALL; \ unset POSIXLY_CORRECT; \ $(CHECK_ENV); \ cd $(@D); \ ./run -q $(/dev/null` = "1"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ You have a version of `bash' which suffers from a quoting bug. This is a known bug of bash 3.1, which was fixed by patch bash31-011. You can get this patch at ftp://ftp.gnu.org/gnu/bash/ ]) fi QUILT_COMPAT_PROG_PATH(CP, cp, [gcp cp]) QUILT_COMPAT_PROG_PATH(DATE, date, [gdate date]) if test -z "$INTERNAL_DATE"; then AC_MSG_CHECKING([whether $DATE --rfc-822 works]) if $DATE --rfc-822 >/dev/null 2>/dev/null; then AC_MSG_RESULT(yes) else AC_MSG_ERROR([no If you don't have a version of `date' that supports --rfc-822, you can specify '--without-date' and $PACKAGE_NAME will use its own internal date. ]) fi fi QUILT_COMPAT_PROG_PATH(PERL, perl, [perl perl5]) QUILT_COMPAT_PROG_PATH(GREP, grep) AC_MSG_CHECKING([whether $GREP -q works]) if echo first | $GREP -q first 2>/dev/null; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of grep which doesn't understand -q. $PACKAGE_NAME needs it. If you have access to a version of grep which does understand -q, you can supply its path with the '--with-grep=' option. ]) fi AC_MSG_CHECKING([whether $GREP understands (foo|bar)]) if echo first | $GREP '^\(fir\|las\)' >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of grep which doesn't understand constructs of the form (foo|bar). $PACKAGE_NAME needs it. If you have access to a version of grep which does understand such constructs, you can supply its path with the '--with-grep=' option. ]) fi QUILT_COMPAT_PROG_PATH(TAIL, tail) # Solaris' /usr/bin/tail doesn't understand -n. AC_MSG_CHECKING([whether $TAIL -n works]) if test "`(echo first; echo second) | $TAIL -n 1 2>/dev/null`" = "second"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of tail which doesn't understand -n. $PACKAGE_NAME needs it. If you have access to a version of tail which does understand -n, you can supply its path with the '--with-tail=' option. Solaris users can use /usr/xpg4/bin/tail. ]) fi QUILT_COMPAT_PROG_PATH(TR, tr) AC_MSG_CHECKING([whether $TR understands a-z ]) if test "`echo first | $TR a-z A-Z 2>/dev/null`" = "FIRST"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of tr which doesn't understand constructs of the form a-z. $PACKAGE_NAME needs it. If you have access to a version of tr which does understand such constructs, you can supply its path with the '--with-tr=' option. Solaris users can use /usr/xpg4/bin/tr. ]) fi QUILT_COMPAT_PROG_PATH(STAT, stat) AC_MSG_CHECKING([whether $STAT -c '%h' works]) if $STAT -c '%h' /dev/null >/dev/null 2>/dev/null; then AC_MSG_RESULT(yes) STAT_HARDLINK="-c '%h'" else AC_MSG_RESULT(no) AC_MSG_CHECKING([whether $STAT -f '%l' works]) if $STAT -f '%l' /dev/null >/dev/null 2>/dev/null; then AC_MSG_RESULT(yes) STAT_HARDLINK="-f '%l'" else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of stat which understands neither -c nor -f. $PACKAGE_NAME needs it. If you have access to a version of stat which does understand -c or -f, you can supply its path with the '--with-stat=' option. ]) fi fi AC_SUBST(STAT_HARDLINK) QUILT_COMPAT_PROG_PATH(SED, sed) AC_MSG_CHECKING([whether $SED understands (foo|bar)]) if test "`echo first | $SED -e 's/\(fir\|lo\)/la/' 2>/dev/null`" = "last"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of sed which doesn't understand constructs of the form (foo|bar). $PACKAGE_NAME needs it. If you have access to a version of sed which does understand such constructs, you can supply its path with the '--with-sed=' option. ]) fi QUILT_COMPAT_PROG_PATH(AWK, awk, [gawk awk]) AC_MSG_CHECKING([whether $AWK supports sub]) if test "`echo first | $AWK 'sub(/first/, "last")' 2>/dev/null`" = "last"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of awk which doesn't understand sub( ). $PACKAGE_NAME needs it. If you have access to a version of awk which does understand such constructs, you can supply its path with the '--with-awk=' option. Solaris users can use /usr/xpg4/bin/awk. ]) fi AC_ARG_WITH(pod2man, AC_HELP_STRING( [--with-pod2man], [name of the pod2man executable to use (use --without-pod2man to disable)]), [ if test x"$withval" = xno; then POD2MAN= else POD2MAN=$withval fi],[ AC_PATH_PROG(POD2MAN, pod2man) ] ) AC_SUBST(POD2MAN) QUILT_COMPAT_PROG_PATH(COLUMN, column) QUILT_COMPAT_PROG_PATH(GETOPT, getopt) if test -z "$INTERNAL_GETOPT"; then AC_MSG_CHECKING(for getopt --long syntax) dnl check GNU syntax $GETOPT -o t --long test -- --test | grep 'illegal option' >/dev/null getopt_long_errors=$? $GETOPT -o t --long test -- --test | grep '^ *--test *--' >/dev/null getopt_long_works=$? if test $getopt_long_errors -eq 1 -a $getopt_long_works -eq 0; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ $GETOPT does not support the --long option. If you don't have a version of getopt that supports long options, you can specify '--without-getopt' and $PACKAGE_NAME will use its own internal getopt. ]) fi fi QUILT_COMPAT_PROG_PATH(MKTEMP, mktemp) if test -z "$INTERNAL_MKTEMP" ; then AC_MSG_CHECKING(whether $MKTEMP -d works) if tempdir=`$MKTEMP -d ${TMPDIR:-/tmp}/$PACKAGE_NAME.XXXXXX 2>/dev/null` && \ rmdir "$tempdir" ; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ '$MKTEMP -d' does not create temporary directories. If you don't have a version of mktemp that can create directories, you can specify '--without-mktemp' and $PACKAGE_NAME will use its own internal tempfile generation mechanism. ]) fi fi QUILT_COMPAT_PROG_PATH(DIFF, diff) QUILT_COMPAT_PROG_PATH(PATCH, patch) # Sun diff and others will not work because GNU patch options are used. AC_MSG_CHECKING([the version of $DIFF]) if $DIFF --version 2>/dev/null | grep GNU >/dev/null; then set -- `$DIFF --version 2>/dev/null | $AWK '{ print $NF; exit }'` diff_version=$1 AC_MSG_RESULT($diff_version) saved_IFS=$IFS; IFS='.' set -- $diff_version IFS=$saved_IFS set -- `echo $1 | $TR -cd 0-9` `echo $2 | $TR -cd 0-9` if test 0$1 -lt 2 || test 0$1 -eq 2 -a 0$2 -lt 7 ; then diff_version= fi else AC_MSG_RESULT(no GNU diff) fi if test -z "$diff_version" ; then AC_MSG_ERROR([ $PACKAGE_NAME requires at least version 2.7 of GNU diffutils. You can download a current version of patch from ftp.gnu.org, or if you already have GNU diff then you can supply its path with the '--with-diff=' option. ]) fi # Sun's patch, and others, do not work because GNU patch options are used. AC_MSG_CHECKING([the version of $PATCH]) if $PATCH --version 2> /dev/null | grep GNU >/dev/null; then set -- `$PATCH --version 2> /dev/null` if test x$1 = xGNU ; then patch_version=$3 else patch_version=$2 fi AC_MSG_RESULT($patch_version) saved_IFS=$IFS; IFS='.' set -- $patch_version IFS=$saved_IFS set -- `echo $1 | $TR -cd 0-9` `echo $2 | $TR -cd 0-9` if test 0$1 -lt 2 || test 0$1 -eq 2 -a 0$2 -lt 5 ; then patch_version= fi else AC_MSG_RESULT(no GNU patch) fi if test -z "$patch_version" ; then AC_MSG_ERROR([ $PACKAGE_NAME requires at least version 2.5 of GNU patch. You can download a current version of patch from ftp.gnu.org, or if you already have GNU patch then you can supply its path with the '--with-patch=' option. ]) fi QUILT_COMPAT_PROG_PATH(FIND, find) AC_MSG_CHECKING([whether $FIND -path works]) if $FIND . -path '*' >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of find which doesn't understand -path. $PACKAGE_NAME needs it. If you have access to a version of find which does understand -path, you can supply its path with the '--with-find=' option. ]) fi AC_MSG_CHECKING([whether $FIND -print0 works]) if $FIND . -path '*' -print0 >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of find which doesn't understand -print0. $PACKAGE_NAME needs it. If you have access to a version of find which does understand -print0, you can supply its path with the '--with-find=' option. ]) fi QUILT_COMPAT_PROG_PATH(XARGS, xargs) AC_MSG_CHECKING([whether $XARGS -0 works]) if echo | $XARGS -0 echo >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of xargs which doesn't understand -0. $PACKAGE_NAME needs it. If you have access to a version of xargs which does understand -0, you can supply its path with the '--with-xargs=' option. ]) fi QUILT_COMPAT_PROG_PATH_OPT(DIFFSTAT, diffstat) if test "$DIFFSTAT" != "diffstat"; then # We need diffstat version 1.32 or better, else quilt refresh --diffstat # will show progress data we don't want to see. This is only a warning # and we continue even if version is older, as this is only a minor # annoyance. AC_MSG_CHECKING([for diffstat version]) diffstat_version=`$DIFFSTAT -V 2>/dev/null | \ sed 's/^[[^0-9]]*\([[0-9]]*\)\.\([[0-9]]*\).*/\1 \2/'` eval set -- "$diffstat_version" diffstat_major_version="$1" diffstat_minor_version="$2" if test -z "$diffstat_major_version" -o -z "$diffstat_minor_version"; then AC_MSG_RESULT(unknown) AC_MSG_WARN([ diffstat utility version couldn't be checked; chances are good that the --diffstat option of the refresh command will not work properly. ]) else AC_MSG_RESULT($diffstat_major_version.$diffstat_minor_version) if test "$diffstat_major_version" -lt 1 \ -o \( "$diffstat_major_version" -eq 1 -a "$diffstat_minor_version" -lt 32 \); then AC_MSG_WARN([ diffstat utility is too old; the --diffstat option of the refresh command will not work correctly until a newer version (>= 1.32) is installed. ]) fi fi fi QUILT_COMPAT_PROG_PATH(SENDMAIL, sendmail, [], [/usr/sbin]) QUILT_COMPAT_PROG_PATH(CP, cp, [cp]) QUILT_COMPAT_PROG_PATH(MD5SUM, md5sum, [gmd5sum md5sum]) AC_PATH_PROG(MSGMERGE, [msgmerge]) AC_PATH_PROG(MSGFMT, [msgfmt]) AC_PATH_PROG(XGETTEXT, [xgettext]) AC_PATH_PROG(MSGUNIQ, [msguniq]) AC_PATH_PROG(MSGCAT, [msgcat]) if test -n "$MSGFMT" -a -n "$MSGMERGE" -a -n "$XGETTEXT" -a -n "$MSGUNIQ" -a -n "$MSGCAT" ; then HAVE_NLS=yes else HAVE_NLS=no fi USE_NLS=no AC_ARG_ENABLE(nls, AC_HELP_STRING( [--disable-nls], [exclude natural language support]), [USE_NLS=$enableval],[USE_NLS=$HAVE_NLS]) if test $USE_NLS = yes -a $HAVE_NLS = no ; then AC_MSG_ERROR([ You do not appear to have msgfmt, which is part of the GNU Gettext package. It is a required package as you chose the '--enable-nls' option to configure. You can download GNU Gettext from ftp.gnu.org ]) fi AC_ARG_WITH(patch-wrapper, AC_HELP_STRING( [--with-patch-wrapper], [include GNU patch wrapper])) PATCH_WRAPPER=$withval AC_SUBST(PATCH_WRAPPER) if test $USE_NLS = no ; then AC_MSG_NOTICE([Building without natural language support]) fi AC_SUBST(USE_NLS) AC_SUBST(docdir) dnl Check for rpmbuild (v4) vs. rpm (v3) QUILT_COMPAT_PROG_PATH_OPT(RPMBUILD, rpmbuild, [rpmbuild rpm]) AC_SUBST(COMPAT_SYMLINKS) AC_SUBST(COMPAT_PROGRAMS) AC_CONFIG_FILES(Makefile) AC_OUTPUT dnl Print results AC_MSG_RESULT([]) AC_MSG_RESULT([$PACKAGE_NAME version $PACKAGE_VERSION configured.]) AC_MSG_RESULT([]) AC_MSG_RESULT([Using '$prefix' for installation prefix.]) AC_MSG_RESULT([]) AC_MSG_RESULT([Report bugs to $PACKAGE_BUGREPORT]) quilt-0.63/config/install-sh0000644000175000017500000001425312332477113016362 0ustar mquinsonmquinson#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd=$cpprog shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "$0: no input file specified" >&2 exit 1 else : fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d "$dst" ]; then instcmd=: chmodcmd="" else instcmd=$mkdirprog fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f "$src" ] || [ -d "$src" ] then : else echo "$0: $src does not exist" >&2 exit 1 fi if [ x"$dst" = x ] then echo "$0: no destination specified" >&2 exit 1 else : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d "$dst" ] then dst=$dst/`basename "$src"` else : fi fi ## this sed command emulates the dirname command dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` IFS=$oIFS pathcomp='' while [ $# -ne 0 ] ; do pathcomp=$pathcomp$1 shift if [ ! -d "$pathcomp" ] ; then $mkdirprog "$pathcomp" else : fi pathcomp=$pathcomp/ done fi if [ x"$dir_arg" != x ] then $doit $instcmd "$dst" && if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename "$dst"` else dstfile=`basename "$dst" $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename "$dst"` else : fi # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/#inst.$$# rmtmp=$dstdir/#rm.$$# # Trap to clean up temp files at exit. trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 trap '(exit $?); exit' 1 2 13 15 # Move or copy the file name to the temp name $doit $instcmd "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && # Now remove or move aside any old file at destination location. We try this # two ways since rm can't unlink itself on some systems and the destination # file might be busy for other reasons. In this case, the final cleanup # might fail but the new file should still install successfully. { if [ -f "$dstdir/$dstfile" ] then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" fi && # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit } quilt-0.63/quilt.spec.in0000644000175000017500000000267412332477113015537 0ustar mquinsonmquinson# # spec file for quilt - patch management scripts # Name: quilt Summary: Scripts for working with series of patches License: GPL Group: Productivity/Text/Utilities Version: @VERSION@ Release: @RELEASE@ Requires: coreutils diffutils findutils patch gzip bzip2 perl mktemp gettext Autoreqprov: off Source: quilt-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build %description The scripts allow to manage a series of patches by keeping track of the changes each patch makes. Patches can be applied, un-applied, refreshed, etc. The scripts are heavily based on Andrew Morton's patch scripts found at http://userweb.kernel.org/~akpm/stuff/patch-scripts.tar.gz. Authors: -------- Andrew Morton Andreas Gruenbacher %prep %setup %build CFLAGS="$RPM_OPT_FLAGS" \ ./configure --prefix=/usr \ --mandir=%_mandir \ --docdir=%_docdir/%{name}-%{version} make RELEASE=%release %install rm -rf $RPM_BUILD_ROOT make install prefix=/usr BUILD_ROOT=$RPM_BUILD_ROOT %{find_lang} %{name} %clean rm -rf $RPM_BUILD_ROOT %files -f %{name}.lang %defattr(-, root, root) /usr/bin/guards /usr/bin/quilt /usr/share/quilt/ /usr/share/emacs/ /etc/bash_completion.d/quilt %config(noreplace) /etc/quilt.quiltrc %doc %{_mandir}/man1/guards.1* %doc %{_mandir}/man1/quilt.1* %doc %{_docdir}/%{name}-%{version}/README %doc %{_docdir}/%{name}-%{version}/README.MAIL %doc %{_docdir}/%{name}-%{version}/quilt.pdf %changelog @CHANGELOG@ quilt-0.63/NEWS0000644000175000017500000000772412332477532013625 0ustar mquinsonmquinson Version 0.63 (Wed May 07 2014) - New NEWS file, containing a human-readable changelog - Option -E is no longer passed to patch by default - Huge performance improvement (e.g., for commands series, applied and unapplied) - configure: Add compat symlinks for cp and md5sum - Return 2 when there is nothing to do, contrasting with errors (ret=1) - Exit with an error when diff's retcode=2 (error) on patch refresh - bash_completion: cleanups and performance improvement (Savannah's #27111) - test/run: Use perl module Text::ParseWords (+ performance improvement) - Add some tests to our testsuite, for a better coverage - Fix heuristic for unapplied patches with timestamps - Bug fix: Patches emptying files should work now - Bug fix: Check for duplicate patch in series (Savannah's #20628) - Portability fixes for older Bash and GNU patch Version 0.62 (was a buggy release, with an incomplete tarfile) Version 0.61 (Sun Dec 08 2013) - Almost two years of fixes and minor improvements - Fix support for ./configure --with-xargs - Parameter quoting fixes to many commands - Various fixes to the pop, push, refresh and patches commands - Translation fixes - setup: Many fixes and improvements - remove-trailing-ws: Several fixes and improvements - remove-trailing-ws: Add a dedicated test case - quilt.el: Many fixes and improvements (emacs integration) Version 0.60 (Wed Feb 29 2012) - BSD compatibility improvements - grep: Support file names which include spaces - import: Fix import of relative patches - mail: Several fixes - setup: Support directory and archive names which include spaces - backup-files: rewritten from C to bash - backup-files: Add a dedicated test case Version 0.51 (Sat Jan 28 2012) - Fix support for ./configure --docdir - Various $TMPDIR fixes - mail: Fix delivery address checking - mail: CC people in more common patch headers - push: Fix bash completion - inspect: Complain if wrapper script can't be executed Version 0.50 (Mon Dec 5 2011) - 34 months of fixes and improvements, too many to list them all - Fix detection of the patch version - Avoid error messages when building due to missing git-desc file - Add support for lzma and xz compression formats - import: Fix confusing French translation - mail: Stop using =~ for older versions of bash - mail: Fix a temporary directory leak - revert: Stop using cp -l - revert: Add bash completion support - setup: Add --fuzz parameter - setup: Add support for reverse patches - inspect: Fix shell syntax errors - Fix error in test case create-delete Version 0.48 (Thu Jan 29 2009) - fold: Fix bash completion - mail: Don't use GNU awk extensions - mail: Check for formail - setup: Fix for rpm 4.6 - Fix error in test case import Version 0.47 (Thu Aug 21 2008) - Change summary not available Version 0.46 (Thu Oct 19 2006) - Change summary not available Version 0.45 (Mon Apr 24 2006) - Change summary not available Version 0.44 (Tue Feb 14 2006) - Change summary not available Version 0.43 (Wed Feb 01 2006) - Change summary not available Version 0.42 (Tue Jul 26 2005) - Change summary not available Version 0.40 (Fri Apr 29 2005) - Change summary not available Version 0.39 (Thu Feb 10 2005) - Change summary not available Version 0.37 (Sun Oct 17 2004) - Change summary not available Version 0.36 (Wed Sep 22 2004) - Change summary not available Version 0.35 (Thu Jul 15 2004) - Change summary not available Version 0.34 (Thu Jun 10 2004) - Change summary not available Version 0.33 (Sun Jun 06 2004) - Change summary not available Version 0.32 (Sat Mar 13 2004) - Change summary not available Version 0.30 (Wed Jan 28 2004) - Change summary not available Version 0.29 (Wed Nov 12 2003) - Change summary not available Version 0.28 (Fri Oct 31 2003) - Change summary not available Version 0.27 (Tue Oct 28 2003) - Change summary not available Version 0.26 (Tue Oct 21 2003) - Change summary not available quilt-0.63/bash_completion0000644000175000017500000001745012332477113016207 0ustar mquinsonmquinson#-*- mode: shell-script;-*- # Programmed completion for bash to use quilt # Copyright 2003-2004 Martin Quinson (martin quinson#debian org) # This file is part of the distribution of quilt, and is distributed under # the same licence than quilt itself # WARNING: This script doesn't read user or system quiltrc files, and assumes # that QUILT_PC is left unchanged. If you have changed QUILT_PC and want # completion to work then you must set QUILT_PC in your global environment # (for example in ~/.profile) and not just in your quiltrc file. if type quilt &> /dev/null ; then if ! type _expand &> /dev/null ; then # This function expands tildes in pathnames # _expand() { [ "$cur" != "${cur%\\}" ] && cur="$cur"'\' # expand ~username type directory specifications if [[ "$cur" == \~*/* ]]; then eval cur=$cur elif [[ "$cur" == \~* ]]; then cur=${cur#\~} COMPREPLY=( $( compgen -P '~' -u $cur ) ) return ${#COMPREPLY[@]} fi } fi if ! type _filedir &> /dev/null ; then # This function performs file and directory completion. It's better than # simply using 'compgen -f', because it honours spaces in filenames # _filedir() { local IFS=$'\t\n' _expand || return 0 if [ "$1" = -d ]; then COMPREPLY=( ${COMPREPLY[@]} $( compgen -d -- $cur ) ) return 0 fi COMPREPLY=( ${COMPREPLY[@]} $( eval compgen -f -- \"$cur\" ) ) } fi if ! type _longopt &> /dev/null ; then _longopt() { local cur opt cur=${COMP_WORDS[COMP_CWORD]} if [[ "$cur" == "--*=*" ]]; then opt=${cur%%=*} # cut backlash that gets inserted before '=' sign opt=${opt%\\*} cur=${cur#*=} _filedir COMPREPLY=( $( compgen -P "$opt=" -W '${COMPREPLY[@]}' -- $cur)) return 0 fi if [[ "$cur" == "-*" ]]; then COMPREPLY=( $( $1 --help 2>&1 | sed -e '/--/!d' \ -e 's/.*\(--[-A-Za-z0-9]\+=\?\).*/\1/' | \ grep "^$cur" | sort -u ) ) elif [[ "$1" == "@(mk|rm)dir" ]]; then _filedir -d else _filedir fi } fi # Complete on files, not on directories # # Directories are shown in completion, but with their trailing / so that # user can go in them. It ought to be a more standard way to achieve this. # _quilt_comfile() { COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -f -- "$cur" ) ) compgen -d -- "$cur" | while read d ; do COMPREPLY=( ${COMPREPLY[@]:-} "$d/" ) done } _quilt_completion() { local cur prev cmds command_matches COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} # quilt sub commands cmds='add annotate applied delete diff edit files fold fork graph \ grep header import mail new next patches pop previous push refresh \ remove rename revert series setup snapshot top unapplied' # if no command were given, complete on commands if [[ $COMP_CWORD -eq 1 ]] ; then COMPREPLY=( $( compgen -W "$cmds -h" -- $cur ) ) return 0 fi # if we're completing for 'quilt -h', then just # complete on any valid command if [ ${COMP_WORDS[1]} == -h ] ; then COMPREPLY=( $( compgen -W "$cmds" -- $cur ) ) return 0 fi # Accept a partial command if it's unique, because quilt will accept it. command_matches=( $(compgen -W "$cmds" -- ${COMP_WORDS[1]}) ) if [ ${#command_matches[@]} -ne 1 ] ; then return 0 fi # Complete depending on options case ${command_matches[0]} in add) case $prev in -P) COMPREPLY=( $( compgen -W "$(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-P -h" -- $cur ) ) ;; esac ;; annotate) case $prev in -P) COMPREPLY=( $( compgen -W "$(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-P -h" -- $cur ) ) ;; esac ;; applied) COMPREPLY=( $( compgen -W "-h $(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; delete) COMPREPLY=( $( compgen -W "-n -r -h --backup $(quilt --quiltrc - series)" -- $cur ) ) ;; diff) case $prev in -p) COMPREPLY=( $( compgen -W "0 1" -- $cur ) ) ;; -P|--combine) COMPREPLY=( $( compgen -W "$(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; --diff|-U|-C) ;; *) _filedir COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-p -P -u -U -c -C -R -z -h --snapshot --diff --no-timestamps --no-index --combine --sort" -- $cur ) ) ;; esac ;; edit) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-h" -- $cur ) ) ;; files) case $prev in --combine) COMPREPLY=( $( compgen -W "$(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; *) COMPREPLY=( $( compgen -W "-a -l -v -h --combine $(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; esac ;; fold) case $prev in -p) COMPREPLY=( $( compgen -W "0 1" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-p" -- $cur ) ) ;; esac ;; graph) case $prev in -T) COMPREPLY=( $( compgen -W "ps" -- $cur ) ) ;; --edge-labels) COMPREPLY=( $( compgen -W "files" -- $cur ) ) ;; *) COMPREPLY=( $( compgen -W "-T -h --all --reduce --lines --edge-labels $(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; esac ;; grep) _longopt grep COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-h" -- $cur ) ) ;; header) COMPREPLY=( $( compgen -W "-a -e -h -r --backup --strip-diffstat --strip-trailing-whitespace $(quilt --quiltrc - series)" -- $cur ) ) ;; import) case $prev in -p) COMPREPLY=( $( compgen -W "0 1 2 3 4 5 6 7 8 9 10" -- $cur ) ) ;; -P) ;; -d) COMPREPLY=( $( compgen -W "o a n" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-p -P -f -d -h" -- $cur ) ) ;; esac ;; mail) COMPREPLY=( $( compgen -W "-m --prefix --mbox --send --sender --from --subject --to --cc --bcc" -- $cur ) ) ;; next|previous) COMPREPLY=( $( compgen -W "$(quilt --quiltrc - series)" -- $cur ) ) ;; patches) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-v -h" -- $cur ) ) ;; pop) COMPREPLY=( $( compgen -W "-a -f -R -q -v -h $(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; push) COMPREPLY=( $( compgen -W "-a -f -q -v -h --leave-rejects --interactive --color $(quilt --quiltrc - unapplied 2>/dev/null)" -- $cur ) ) ;; refresh) case $prev in -p) COMPREPLY=( $( compgen -W "0 1" -- $cur ) ) ;; -U|-C) ;; *) COMPREPLY=( $( compgen -W "-p -u -U -c -C -f -h $(quilt --quiltrc - applied 2>/dev/null) --no-timestamps --no-index --diffstat --sort --backup --strip-trailing-whitespace" -- $cur ) ) ;; esac ;; remove|revert) case $prev in -P) COMPREPLY=( $( compgen -W "$(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-P -h" -- $cur ) ) ;; esac ;; rename) case $prev in -P) COMPREPLY=( $( compgen -W "$(quilt --quiltrc - series)" -- $cur ) ) ;; *) COMPREPLY=( $( compgen -W "-P -h" -- $cur ) ) ;; esac ;; series) COMPREPLY=( $( compgen -W "-v -h" -- $cur ) ) ;; setup) case $prev in -d) _filedir -d ;; *) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-d -v -h" -- $cur ) ) ;; esac ;; snapshot) COMPREPLY=( $( compgen -W "-d -h" -- $cur ) ) ;; unapplied) COMPREPLY=( $( compgen -W "-h $(quilt --quiltrc - series)" -- $cur ) ) ;; fork|new|top|upgrade) ;; esac return 0 } [ ${BASH_VERSINFO[0]} '>' 2 -o \ ${BASH_VERSINFO[0]} = 2 -a ${BASH_VERSINFO[1]} '>' 04 ] \ && _quilt_complete_opt="-o filenames" complete -F _quilt_completion $_quilt_complete_opt quilt unset -v _quilt_complete_opt fi quilt-0.63/quilt.quiltrc0000644000175000017500000000250312332477113015652 0ustar mquinsonmquinson# Example /etc/quilt.quiltrc # Options passed to GNU diff when generating patches QUILT_DIFF_OPTS="--show-c-function" # Options passed to GNU patch when applying patches. # (For appling patches which are not in unified format, remove the "--unified".) #QUILT_PATCH_OPTS="--ignore-whitespace" QUILT_PATCH_OPTS="--unified" # Options passed to diffstat when generating patch statistics #QUILT_DIFFSTAT_OPTS="-f0" # Options to pass to commands (QUILT_${COMMAND}_ARGS) QUILT_PUSH_ARGS="--color=auto" QUILT_DIFF_ARGS="--no-timestamps --color=auto" QUILT_REFRESH_ARGS="--no-timestamps --backup" QUILT_SERIES_ARGS="--color=auto" QUILT_PATCHES_ARGS="--color=auto" # When non-default less options are used, add the -R option so that less outputs # ANSI color escape codes "raw". [ -n "$LESS" -a -z "${QUILT_PAGER+x}" ] && QUILT_PAGER="less -FRX" # (Add "-p ab" to QUILT_DIFF_ARGS and QUILT_REFRESH_ARGS to get # -p1 style diffs with a/file and b/file filenams in headers # instead of dir.orig/file and dir/file.) # The directory in which patches are found (defaults to "patches"). #QUILT_PATCHES=patches # Prefix all patch names with the relative path to the patch? QUILT_PATCHES_PREFIX=yes # Use a specific editor for quilt (defaults to the value of $EDITOR before # sourcing this configuration file, or vi if $EDITOR wasn't set). #EDITOR=nedit quilt-0.63/aclocal.m40000644000175000017500000000645012332477113014754 0ustar mquinsonmquinsondnl Allow configure to specify a specific binary dnl 1: Environment variable dnl 2: binary name dnl 3: optional list of alternative binary names dnl 4: optional list of additional search directories AC_DEFUN([QUILT_COMPAT_PROG_PATH],[ m4_define([internal_$2_cmd],[esyscmd(ls compat/$2.in 2>/dev/null)]) AC_ARG_WITH($2, AC_HELP_STRING( [--with-$2], [name of the $2 executable to use] m4_if(internal_$2_cmd,[],[],[ (use --without-$2 to use an internal mechanism)])), [ if test x"$withval" = xnone; then AC_MSG_ERROR([Invalid configure argument. use --without-$2]) fi if test x"$withval" != xno; then AC_MSG_CHECKING(for $2) $1="$withval" if test -e "$$1"; then if test ! -f "$$1" -a ! -h "$$1" || test ! -x "$$1"; then AC_MSG_ERROR([$$1 is not an executable file]) fi fi AC_MSG_RESULT([$$1]) if test ! -e "$$1"; then AC_MSG_WARN([$$1 does not exist]) fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" fi ],[ m4_if([$3],[],[ AC_PATH_PROG($1,$2,,$PATH:$4) ],[ AC_PATH_PROGS($1,$3,,$PATH:$4) if test -n "$$1" -a "`expr "$$1" : '.*/\([[^/]]*\)$'`" != "$2"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" fi ]) m4_if([$4],[],[],[ if test -n "$$1"; then as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for dir in "$4"; do if test "`dirname $$1`" = "$dir"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" break fi done IFS="$as_save_IFS" fi ]) ]) if test -z "$$1"; then m4_if(internal_$2_cmd,[],[ AC_MSG_ERROR([Please specify the location of $2 with the option '--with-$2']) ],[ AC_MSG_WARN([Using internal $2 mechanism. Use option '--with-$2' to override]) COMPAT_PROGRAMS="$COMPAT_PROGRAMS $2" $1=$2 INTERNAL_$1=1 ]) fi AC_SUBST($1) ]) dnl Allow configure to specify a specific binary dnl This variant is for optional binaries. dnl 1: Environment variable dnl 2: binary name dnl 3: optional list of alternative binary names dnl 4: optional list of additional search directories AC_DEFUN([QUILT_COMPAT_PROG_PATH_OPT],[ AC_ARG_WITH($2, AC_HELP_STRING( [--with-$2], [name of the $2 executable to use]), [ if test x"$withval" != xno; then AC_MSG_CHECKING(for $2) $1="$withval" if test -e "$$1"; then if test ! -f "$$1" -a ! -h "$$1" || test ! -x "$$1"; then AC_MSG_ERROR([$$1 is not an executable file]) fi fi AC_MSG_RESULT([$$1]) if test ! -e "$$1"; then AC_MSG_WARN([$$1 does not exist]) fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" fi ],[ m4_if([$3],[],[ AC_PATH_PROG($1,$2,,$PATH:$4) ],[ AC_PATH_PROGS($1,$3,,$PATH:$4) if test -n "$$1" -a "`expr "$$1" : '.*/\([[^/]]*\)$'`" != "$2"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" fi ]) m4_if([$4],[],[],[ if test -n "$$1"; then as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for dir in "$4"; do if test "`dirname $$1`" = "$dir"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" break fi done IFS="$as_save_IFS" fi ]) if test -z "$$1"; then AC_MSG_WARN([$2 not found, some optional functionalities will be missing]) fi ]) if test -z "$$1"; then $1=$2 fi AC_SUBST($1) ]) quilt-0.63/git-desc0000755000175000017500000000047412332477113014541 0ustar mquinsonmquinson#! /bin/sh if git rev-parse --show-cdup > /dev/null 2> /dev/null; then tag=$(git describe --tags HEAD 2> /dev/null || \ git rev-parse --short HEAD) dirty=$(git update-index --refresh --unmerged > /dev/null if git diff-index --name-only HEAD | read dummy; then echo -dirty fi) echo $tag$dirty fi quilt-0.63/bin/quilt.in0000644000175000017500000000556012332477113015353 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # unset posix strict conformance variable since patch cannot be run # non-interactively when it's set. unset POSIXLY_CORRECT # unset GREP_OPTIONS as it's quite easy to break quilt with uncommon options # see http://bugs.debian.org/715563 unset GREP_OPTIONS export TEXTDOMAIN=quilt export TEXTDOMAINDIR=@LOCALEDIR@ : ${QUILT_DIR=@QUILT_DIR@} export QUILT_DIR if [ -z "$QUILTRC" ] then for QUILTRC in $HOME/.quiltrc @ETCDIR@/quilt.quiltrc; do [ -e $QUILTRC ] && break done export QUILTRC fi # Support compatibility layer if [ -d $QUILT_DIR/compat ] then export PATH="$QUILT_DIR/compat:$PATH" fi usage() { echo $"Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." echo $" quilt --version" echo $"Commands are:" quilt_commands \ | sort \ | column | column -t \ | sed -e $'s/^/\t/' echo $" Global options: --trace Runs the command in bash trace mode (-x). For internal debugging. --quiltrc file Use the specified configuration file instead of ~/.quiltrc (or @ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf documentation for details about its possible contents. The special value \"-\" causes quilt not to read any configuration file. --version Print the version number and exit immediately." exit 1 } quilt_commands() { local command for command in $QUILT_DIR/* do if [ -f "$command" -a -x "$command" ] then echo ${command##$QUILT_DIR/} fi done } if [ $# -eq 1 -a "$1" == "--version" ] then echo '@VERSION@' exit fi BASH_OPTS= while [ $# -ne 0 ] do case $1 in [^-]*) if [ -z "$command" ] then command=$1 else args[${#args[@]}]=$1 fi ;; # Use a resource file other than ~/.quiltrc --quiltrc=*) QUILTRC=${1#--quiltrc=} [ "$QUILTRC" = - ] && unset QUILTRC ;; --quiltrc) QUILTRC=$2 [ "$QUILTRC" = - ] && unset QUILTRC shift ;; # Trace execution of commands --trace*) BASH_OPTS="${BASH_OPTS:+$BASH_OPTS }-x" case "${1:7}" in '') ;; =verbose) BASH_OPTS="${BASH_OPTS:+$BASH_OPTS }-v" ;; *) command= break ;; esac ;; *) args[${#args[@]}]=$1 ;; esac shift done if ! [ -f "$QUILT_DIR/$command" -a -x "$QUILT_DIR/$command" ] then if [ -n "$command" ] then for arg in $(quilt_commands) do case "$arg" in $command*) commands[${#commands[@]}]=$arg ;; esac done unset arg fi if [ ${#commands[@]} -eq 0 ] then usage elif [ ${#commands[@]} -eq 1 ] then command=${commands[0]} unset commands else echo "$command :" "${commands[@]}" >&2 exit 1 fi fi set -- "${args[@]}" unset args export QUILT_COMMAND="${command##*/}" bash $BASH_OPTS -c ". $QUILT_DIR/$command" "quilt ${command##*/}" "$@" quilt-0.63/bin/guards.in0000644000175000017500000001506012332477113015476 0ustar mquinsonmquinson#!@PERL@ -w # This script 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. # # See the COPYING and AUTHORS files for more details. # # Guards: # # +xxx include if xxx is defined # -xxx exclude if xxx is defined # +!xxx include if xxx is not defined # -!xxx exclude if xxx is not defined # use FileHandle; use Getopt::Long; use strict; # Prototypes sub files_in($$); sub parse($$); sub help(); sub slashme($) { my ($dir) = @_; $dir =~ s#([^/])$#$&/#; # append a slash if necessary if ($dir eq './') { return ''; } else { return $dir; } } # Generate a list of files in a directory # sub files_in($$) { my ($dir, $path) = @_; my $dh = new FileHandle; my (@files, $file); opendir $dh, length("$dir$path") ? "$dir$path" : '.' or die "$dir$path: $!\n"; while ($file = readdir($dh)) { next if $file =~ /^(\.|\.\.|\.#.*|CVS|.*~)$/; if (-d "$dir$path$file") { @files = (@files, files_in($dir, "$path$file/")); } else { #print "[$path$file]\n"; push @files, "$path$file"; } } closedir $dh; return @files; } # Parse a configuration file # Callback called with ($patch, @guards) arguments # sub parse($$) { my ($fh, $callback) = @_; my $line = ""; while (<$fh>) { chomp; s/(^|\s+)#.*//; if (s/\\$/ /) { $line .= $_; next; } $line .= $_; my @guards = (); foreach my $token (split /[\s\t\n]+/, $line) { next if $token eq ""; if ($token =~ /^[-+]/) { push @guards, $token; } else { #print "[" . join(",", @guards) . "] $token\n"; &$callback($token, @guards); } } $line = ""; } } # Command line options # my ($dir, $config, $default, $check, $list, $invert_match, $with_guards) = ( '', '-', 1, 0, 0, 0, 0); my @path; # Help text # sub help() { print "$0 - select from a list of files guarded by conditions\n"; print "SYNOPSIS: $0 [--prefix=dir] [--path=dir1:dir2:...]\n" . " [--default=0|1] [--check|--list] [--invert-match]\n" . " [--with-guards] [--config=file] symbol ...\n\n" . " (Default values: --path='" . join(':', @path) . "', " . "--default=$default)\n"; exit 0; } # Parse command line options # Getopt::Long::Configure ("bundling"); eval { unless (GetOptions ( 'd|prefix=s' => \$dir, 'c|config=s' => \$config, 'C|check' => \$check, 'l|list' => \$list, 'w|with-guards' => \$with_guards, 'p|path=s' => \@path, 'D|default=i' => \$default, 'v|invert-match' => \$invert_match, 'h|help' => sub { help(); exit 0; })) { help(); exit 1; } }; if ($@) { print "$@"; help(); exit 1; } @path = ('.') unless (@path); @path = split(/:/, join(':', @path)); my $fh = ($config eq '-') ? \*STDIN : new FileHandle($config) or die "$config: $!\n"; $dir = slashme($dir); if ($check) { # Check for duplicate files, or for files that are not referenced by # the specification. my $problems = 0; my @files; foreach (@path) { @files = (@files, files_in($dir, slashme($_))); } my %files = map { $_ => 0 } @files; parse($fh, sub { my ($patch, @guards) = @_; if (exists $files{$patch}) { $files{$patch}++; } else { print "Not found: $dir$patch\n"; $problems++; }}); $fh->close(); my ($file, $ref); while (($file, $ref) = each %files) { next if $ref == 1; if ($ref == 0) { print "Unused: $file\n" if $ref == 0; $problems++; } if ($ref > 1) { print "Warning: multiple uses: $file\n" if $ref > 1; # This is not an error if the entries are mutually exclusive... } } exit $problems ? 1 : 0; } elsif ($list) { parse($fh, sub { my ($patch, @guards) = @_; print join(' ', @guards), ' ' if (@guards && $with_guards); print "$dir$patch\n"; }); } else { # Generate a list of patches to apply. my %symbols = map { $_ => 1 } @ARGV; parse($fh, sub { my ($patch, @guards) = @_; my $selected; if (@guards) { # If the first guard is -xxx, the patch is included by default; # if it is +xxx, the patch is excluded by default. $selected = ($guards[0] =~ /^-/); foreach (@guards) { /^([-+])(!?)(.*)?/ or die "Bad guard '$_'\n"; # Check if the guard matches if (($2 eq '!' && !exists $symbols{$3}) || ($2 eq '' && ( $3 eq '' || exists $symbols{$3}))) { # Include or exclude $selected = ($1 eq '+'); } } } else { # If there are no guards, use the specified default result. $selected = $default; } print "$dir$patch\n" if $selected ^ $invert_match; }); $fh->close(); exit 0; } __END__ =head1 NAME guards - select from a list of files guarded by conditions =head1 SYNOPSIS F [--prefix=F] [--path=F] [--default=<0|1>] [--check|--list] [--invert-match] [--with-guards] [--config=] I ... =head1 DESCRIPTION The script reads a configuration file that may contain so-called guards, file names, and comments, and writes those file names that satisfy all guards to standard output. The script takes a list of symbols as its arguments. Each line in the configuration file is processed separately. Lines may start with a number of guards. The following guards are defined: =over +I Include the file(s) on this line if the symbol I is defined. -I Exclude the file(s) on this line if the symbol I is defined. +!I Include the file(s) on this line if the symbol I is not defined. -!I Exclude the file(s) on this line if the symbol I is not defined. - Exclude this file. Used to avoid spurious I<--check> messages. =back The guards are processed left to right. The last guard that matches determines if the file is included. If no guard is specified, the I<--default> setting determines if the file is included. If no configuration file is specified, the script reads from standard input. The I<--check> option is used to compare the specification file against the file system. If files are referenced in the specification that do not exist, or if files are not enlisted in the specification file warnings are printed. The I<--path> option can be used to specify which directory or directories to scan. Multiple directories are separated by a colon (C<:>) character. The I<--prefix> option specifies the location of the files. Use I<--list> to list all files independent of any rules. Use I<--invert-match> to list only the excluded patches. Use I<--with-guards> to also include all inclusion and exclusion rules. =head1 AUTHOR Andreas Gruenbacher , SUSE Labs quilt-0.63/bin/patch-wrapper.in0000755000175000017500000001222312332477113016767 0ustar mquinsonmquinson#! @BASH@ # This is a wrapper to GNU patch that recognizes the most common # options and mimics GNU patch's behavior and output, and creates the # quilt metadata as if quilt push was used to apply the patches. When # options are used that this wrapper does not recognize, GNU patch is # used directly, and no quilt metadata will get created. PATCH=@PATCH@ original_options=("$@") # GNU patch recognizes these environment variables if [ -n "$SIMPLE_BACKUP_SUFFIX" ] then set -- --suffix "$SIMPLE_BACKUP_SUFFIX" "$@" fi if [ -n "$PATCH_VERSION_CONTROL" ] then set -- --version-control "$PATCH_VERSION_CONTROL" "$@" elif [ -n "$VERSION_CONTROL" ] then set -- --version-control "$VERSION_CONTROL" "$@" fi if [ -n "$POSIXLY_CORRECT" ] then set -- --posix "$@" fi backup_files() { declare dir=${QUILT_PC:-.pc}/$patch if [ "$backup_mode" = --backup-if-mismatch ] then awk ' /^patching file / \ { file=$0 sub(/^patching file /, "", file) } /^Hunk #[0-9]* / \ { if (!(file in backup)) { backup[file] = 1 #print "ln -f "dir"/"file" "prefix file suffix > "/dev/stderr" system("ln -f "dir"/"file" "prefix file suffix) } } { if (!silent) print } ' dir="${dir//\\/\\\\}" \ prefix="${opt_prefix//\\/\\\\}" \ suffix="${opt_suffix//\\/\\\\}" \ silent="${opt_silent:+1}" elif [ -n "$opt_silent" ]; then cat > /dev/null fi if [ "$backup_mode" = --backup -a -d "$dir" ] then for file in $(find "$dir" -type f -a ! -path "$path/.timestamp") do dest=$opt_prefix${file#$dir/}$opt_suffix mkdir -p $(dirname "$dest") ln -f $file $dest done fi } find_pipe_patch() { declare patch=$1 patch=${patch//\[/\\[} patch=${patch//\]/\\]} set -- $(stat -c $'%a %N\n' /proc/*/fd/* 2>/dev/null \ | sed -nre "s,^300 \`(/proc/.*/fd)/.*' -> \`$patch'$,\\1,p") set -- $(stat -c $'%a %N\n' $1/* 2>/dev/null \ | sed -nre "s,^500 \`.*' -> \`(.*)',\\1,p") [ $# -eq 1 ] || set -- "$patch" echo "$1" } options=`getopt -q -o bsB:z:i:p:d: \ --long quiet,silent,backup,backup-if-mismatch \ --long no-backup-if-mismatch,prefix: \ --long suffix:,posix,input:,strip:,directory: -- "$@"` if [ $? -ne 0 ] then cannot_handle=1 else case "${LC_ALL:-${LC_MESSAGES:-${LANG}}}" in ''|C|POSIX|en*) ;; *) cannot_handle=1 ;; esac fi if [ -z "$cannot_handle" ]; then eval set -- "$options" backup_mode=--backup-if-mismatch opt_prefix= opt_suffix= opt_silent= opt_input= opt_strip= opt_directory=$PWD while : do case "$1" in -b|--backup) backup_mode=--backup ;; --backup-if-mismatch) backup_mode=--backup-if-mismatch ;; -d|--directory) cd "$2" || exit 1 shift ;; -i|--input) opt_input=$2 new_options[${#new_options[@]}]=$1 new_options[${#new_options[@]}]=$2 shift ;; --no-backup-if-mismatch) backup_mode=--no-backup-if-mismatch ;; -B|--prefix) opt_prefix=$2 new_options[${#new_options[@]}]=$1 new_options[${#new_options[@]}]=$2 shift ;; -s|--silent|--quiet) opt_silent=--silent ;; -p|--strip) opt_strip=-p$2 new_options[${#new_options[@]}]=-p$2 shift ;; -z|--suffix) opt_suffix=$2 new_options[${#new_options[@]}]=$1 new_options[${#new_options[@]}]=$2 shift ;; --posix) backup_mode=--no-backup-if-mismatch new_options[${#new_options[@]}]=$1 ;; --) shift break ;; *) new_options[${#new_options[@]}]=$1 ;; esac shift done [ -n "$opt_prefix$opt_suffix" ] || opt_suffix=.orig if [ -z "$opt_strip" -o $# -ne 0 ] then cannot_handle=1 fi fi if [ -z "$cannot_handle" ] then if [ -n "$opt_input" ] then patch=$opt_input elif [ ! -e /proc/self ] then echo "patch-wrapper: /proc not mounted!" >&2 exit 1 elif [ -e /proc/self/fd/0 ] then patch=$(readlink /proc/self/fd/0) case "$patch" in pipe:*) patch=$(find_pipe_patch "$patch") ;; esac fi patch=${patch#$PWD/} if [ ! -e "$patch" ] then cannot_handle=1 fi fi if [ -n "$cannot_handle" ] then $PATCH "${original_options[@]}" exit fi quilt_patches=${QUILT_PATCHES:-patches} dir=$(dirname "$quilt_patches/$patch") mkdir -p "$dir" if [ -e "$patch" ] then if [ "${patch:0:1}" = / ] then ln -s "$patch" "$quilt_patches$patch" patch=${patch#/} else while ! [ "$dir/$updir$patch" -ef "$patch" ] do updir=$updir../ [ ${#updir} -gt 96 ] && break done if [ "$dir/$updir$patch" -ef "$patch" ] then ln -s "$updir$patch" "$quilt_patches/$patch" fi fi fi if [ "$opt_strip" = -p1 ]; then echo "$patch" else echo "$patch $opt_strip" fi >> $quilt_patches/series $PATCH "${new_options[@]}" --backup --prefix "${QUILT_PC:-.pc}/$patch/" \ | backup_files status=${PIPESTATUS[0]} if [ $status -eq 0 ] then dir=${QUILT_PC:-.pc}/$patch if [ ! -e "$dir" ] then mkdir -p "$dir" fi echo -n "" > $dir/.timestamp if [ ! -e ${QUILT_PC:-.pc}/.version ] then echo 2 > ${QUILT_PC:-.pc}/.version fi echo "$patch" >> "${QUILT_PC:-.pc}/applied-patches" fi exit $status quilt-0.63/quilt/add.in0000644000175000017500000000510012332477113015321 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt add [-P patch] {file} ...\n" if [ x$1 = x-h ] then printf $" Add one or more files to the topmost or named patch. Files must be added to the patch before being modified. Files that are modified by patches already applied on top of the specified patch cannot be added. -P patch Patch to add files to. " exit 0 else exit 1 fi } in_valid_dir() { local p=$1 path path=${p%/*} while [ "$p" != "$path" ] do if [ "$path" -ef "$QUILT_PATCHES" ] then printf $"File %s is located below %s\n" \ "$1" "$QUILT_PATCHES/" return 1 fi if [ "$path" -ef "$QUILT_PC" ] then printf $"File %s is located below %s\n" \ "$1" "$QUILT_PC/" return 1 fi p=$path path=${path%/*} done } options=`getopt -o P:h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -P) opt_patch="$2" shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -lt 1 ] then usage fi patch=$(find_applied_patch "$opt_patch") || exit 1 status=0 for file in "$@" do if ! in_valid_dir "$SUBDIR$file" then status=1 continue fi if file_in_patch "$SUBDIR$file" $patch then printf $"File %s is already in patch %s\n" \ "$SUBDIR$file" "$(print_patch $patch)" >&2 [ $status -ne 1 ] && status=2 continue fi next_patch=$(next_patch_for_file $patch "$SUBDIR$file") if [ -n "$next_patch" ] then printf $"File %s modified by patch %s\n" \ "$SUBDIR$file" "$(print_patch $next_patch)" >&2 status=1 continue fi if [ -L "$SUBDIR$file" ] then printf $"Cannot add symbolic link %s\n" "$SUBDIR$file" >&2 status=1 continue fi if ! $QUILT_DIR/scripts/backup-files -b -s -L -B $QUILT_PC/$patch/ "$SUBDIR$file" then printf $"Failed to back up file %s\n" "$SUBDIR$file" >&2 status=1 continue fi if [ -e "$SUBDIR$file" ] then # The original tree may be read-only. chmod u+w "$SUBDIR$file" fi printf $"File %s added to patch %s\n" \ "$SUBDIR$file" "$(print_patch $patch)" done exit $status ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/annotate.in0000644000175000017500000000667712332477113016426 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt annotate [-P patch] {file}\n" if [ x$1 = x-h ] then printf $" Print an annotated listing of the specified file showing which patches modify which lines. Only applied patches are included. -P patch Stop checking for changes at the specified rather than the topmost patch. " exit 0 else exit 1 fi } empty_file() { local file=$1 [ -s "$file" ] \ && sed -e 's:.*::' "$file" } annotation_for() { local old_file=$1 new_file=$2 annotation=$3 [ -s "$old_file" ] || old_file=/dev/null [ -s "$new_file" ] || new_file=/dev/null diff -e "$old_file" "$new_file" \ | perl -e ' while (<>) { if (/^\d+(?:,\d+)?[ac]$/) { print; while (<>) { last if /^\.$/; print "'"$annotation"'\n"; } print; next; } print; } ' } merge_files() { local a b saved_IFS="$IFS" local template=$1 file=$2 [ -e "$file" ] || file=/dev/null exec 3< "$template" exec 4< "$file" IFS= while read -r a <&3 do read -r b <&4 echo "$a"$'\t'"$b" done IFS="$saved_IFS" exec 3<&- exec 4<&- } options=`getopt -o P:h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -P) opt_patch="$2" shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 1 ] then usage fi opt_file="$SUBDIR$1" opt_patch=$(find_applied_patch "$opt_patch") || exit 1 for patch in $(applied_patches); do old_file="$(backup_file_name "$patch" "$opt_file")" if [ -f "$old_file" ] then patches[${#patches[@]}]="$patch" files[${#files[@]}]="$old_file" fi if [ "$opt_patch" = "$patch" ] then # We also need to know the next patch, if any next_patch="$(next_patch_for_file "$opt_patch" "$opt_file")" break fi done if [ -z "$next_patch" ] then files[${#files[@]}]="$opt_file" else files[${#files[@]}]="$(backup_file_name "$next_patch" "$opt_file")" fi if [ ${#patches[@]} = 0 ] then sed -e 's:^:'$'\t'':' "${files[${#files[@]}-1]}" exit 0 fi template=$(gen_tempfile) add_exit_handler "rm -f $template" # The annotated listing is generated as follows: A file of annotations # is created based on a file that contains the same number of lines as # the source file, but all lines are empty. # # Then, for each patch that modifies the source file, an ed-style diff # (which has no context, and removes lines that are removed without # caring for the line's contents) is generated. In that diff, all line # additions are replaced with the identifier of the patch (1, 2, ...). # These patches are then applied to the empty file. # # Finally, the annotations listing is merged with the source file line # by line. setup_pager empty_file ${files[0]} > $template for ((n = 0; n < ${#patches[@]}; n++)) do annotation_for "${files[n]}" "${files[n+1]}" $((n+1)) done \ | patch $template merge_files $template "${files[${#files[@]}-1]}" echo for ((n = 0; n < ${#patches[@]}; n++)) do echo "$((n+1))"$'\t'"$(print_patch ${patches[n]})" done ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/applied.in0000644000175000017500000000213412332477113016213 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt applied [patch]\n" if [ x$1 = x-h ] then printf $" Print a list of applied patches, or all patches up to and including the specified patch in the file series. " exit 0 else exit 1 fi } options=`getopt -o nh -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi patch=$(find_applied_patch "$1") || exit 1 setup_pager printf "$(patch_format)\n" $(applied_before "$patch") "$patch" ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/delete.in0000644000175000017500000000504312332477113016041 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt delete [-r] [--backup] [patch|-n]\n" if [ x$1 = x-h ] then printf $" Remove the specified or topmost patch from the series file. If the patch is applied, quilt will attempt to remove it first. (Only the topmost patch can be removed right now.) -n Delete the next patch after topmost, rather than the specified or topmost patch. -r Remove the deleted patch file from the patches directory as well. --backup Rename the patch file to patch~ rather than deleting it. Ignored if not used with \`-r'. " exit 0 else exit 1 fi } options=`getopt -o nrh --long backup -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -n) opt_next=1 shift ;; -r) opt_remove=1 shift ;; -h) usage -h ;; --backup) QUILT_BACKUP=1 shift ;; --) shift break ;; esac done if [ $# -gt 1 -o \( -n "$opt_next" -a $# -gt 0 \) ] then usage fi if [ -n "$1" ]; then patch=$(find_patch "$1") || exit 1 else patch=$(top_patch) fi if [ -n "$opt_next" ] then if ! patch=$(patch_after "$patch") then printf $"No next patch\n" >&2 exit 1 fi fi if [ -z "$patch" ] then # find_top_patch will display the proper error message for us find_top_patch > /dev/null exit 1 fi if is_applied "$patch"; then if [ "$patch" != "$(top_patch)" ] then printf $"Patch %s is currently applied\n" \ "$(print_patch "$patch")" >&2 exit 1 fi if ! quilt_command pop -fq then exit 1 fi fi if remove_from_series "$patch" then printf $"Removed patch %s\n" "$(print_patch "$patch")" else printf $"Failed to remove patch %s\n" "$(print_patch "$patch")" >&2 exit 1 fi patch_file=$(patch_file_name "$patch") if [ "$opt_remove" -a -e "$patch_file" ] then if [ "$QUILT_BACKUP" ] then if ! mv -f "$patch_file" "$patch_file~" then printf $"Failed to backup patch file %s\n" \ "$patch_file" >&2 exit 1 fi else if ! rm -f "$patch_file" then printf $"Failed to remove patch file %s\n" \ "$patch_file" >&2 exit 1 fi fi fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/diff.in0000644000175000017500000001747512332477113015523 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi setup_colors usage() { printf $"Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] [--sort] [--color[=always|auto|never]] [file ...]\n" if [ x$1 = x-h ] then printf $" Produces a diff of the specified file(s) in the topmost or specified patch. If no files are specified, all files that are modified are included. -p n Create a -p n style patch (-p0 or -p1 are supported). -p ab Create a -p1 style patch, but use a/file and b/file as the original and new filenames instead of the default dir.orig/file and dir/file names. -u, -U num, -c, -C num Create a unified diff (-u, -U) with num lines of context. Create a context diff (-c, -C) with num lines of context. The number of context lines defaults to 3. --no-timestamps Do not include file timestamps in patch headers. --no-index Do not output Index: lines. -z Write to standard output the changes that have been made relative to the topmost or specified patch. -R Create a reverse diff. -P patch Create a diff for the specified patch. (Defaults to the topmost patch.) --combine patch Create a combined diff for all patches between this patch and the patch specified with -P. A patch name of \`-' is equivalent to specifying the first applied patch. --snapshot Diff against snapshot (see \`quilt snapshot -h'). --diff=utility Use the specified utility for generating the diff. The utility is invoked with the original and new file name as arguments. --color[=always|auto|never] Use syntax coloring (auto activates it only if the output is a tty). --sort Sort files by their name instead of preserving the original order. " exit 0 else exit 1 fi } colorize() { if [ -n "$opt_color" ] then sed -e ' s/^\(Index:\|---\|+++\|\*\*\*\) .*/'$color_diff_hdr'&'$color_clear'/ t ; s/^+.*/'$color_diff_add'&'$color_clear'/ t ; s/^-.*/'$color_diff_rem'&'$color_clear'/ t ; s/^!.*/'$color_diff_mod'&'$color_clear'/ t ; s/^\(@@ \-[0-9]\+\(,[0-9]\+\)\? +[0-9]\+\(,[0-9]\+\)\? @@\)\([ \t]*\)\(.*\)/'$color_diff_hunk'\1'$color_clear'\4'$color_diff_ctx'\5'$color_clear'/ t ; s/^\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*.*/'$color_diff_cctx'&'$color_clear'/ ' else cat fi } do_diff() { local file=$1 old_file=$2 new_file=$3 status if [ -n "$opt_reverse" ] then local f=$new_file new_file=$old_file old_file=$f fi if [ -n "$opt_diff" ] then [ -s "$old_file" ] || old_file=/dev/null [ -s "$new_file" ] || new_file=/dev/null if ! diff -q "$old_file" "$new_file" >/dev/null then export LANG=$ORIGINAL_LANG $opt_diff "$old_file" "$new_file" export LANG=POSIX true fi else diff_file "$file" "$old_file" "$new_file" | colorize # Test the return value of diff, and propagate the error if any status=${PIPESTATUS[0]} if [ $status != 0 ] then die $status fi fi } die() { local status=$1 [ -e "$tmp_files" ] && rm -f $tmp_files [ -n "$workdir" ] && rm -rf $workdir exit $status } options=`getopt -o p:P:RuU:cC:zh --long diff:,snapshot,no-timestamps \ --long no-index,combine:,color:: \ --long sort -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" opt_format=-u while true do case "$1" in -p) opt_strip_level=$2 shift 2 ;; -P) last_patch=$2 shift 2 ;; --combine) opt_combine=1 if [ "$2" = - ] then first_patch=- else first_patch=$(find_applied_patch "$2") || exit 1 fi shift 2 ;; -R) opt_reverse=1 shift ;; -z) opt_relative=1 shift ;; -u|-c) opt_format=$1 shift ;; -U|-C) opt_format="$1 $2" shift 2 ;; -h) usage -h ;; --snapshot) opt_snapshot=1 snap_subdir=.snap shift ;; --diff) opt_diff=$2 shift 2 ;; --no-timestamps) QUILT_NO_DIFF_TIMESTAMPS=1 shift ;; --no-index) QUILT_NO_DIFF_INDEX=1 shift ;; --sort) opt_sort=1 shift ;; --color) case "$2" in "" | always) opt_color=1 ;; auto | tty) opt_color= [ -t 1 ] && opt_color=1 ;; never) opt_color= ;; *) usage ;; esac shift 2 ;; --) shift break ;; esac done QUILT_DIFF_OPTS="$QUILT_DIFF_OPTS $opt_format" opt_files=( $(for file in "$@"; do echo "$SUBDIR${file#./}" ; done) ) if [ $[0$opt_combine + 0$opt_snapshot + 0$opt_relative] -gt 1 ] then printf $"Options \`--combine', \`--snapshot', and \`-z' cannot be combined.\n" >&2 die 1 fi last_patch=$(find_applied_patch "$last_patch") || exit 1 if [ -z "$opt_strip_level" ] then opt_strip_level=$(patch_strip_level "$last_patch") fi case "$opt_strip_level" in 0 | 1 | ab) ;; *) printf $"Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\n" \ "$opt_strip_level" >&2 die 1 ;; esac # If diffing against snapshot, ensure that snapshot is actually present if [ -n "$opt_snapshot" ] && [ ! -d "$QUILT_PC/$snap_subdir" ] then printf $"No snapshot to diff against\n" >&2 die 1 fi trap "die 1" SIGTERM tmp_files=$(gen_tempfile) exec 4> $tmp_files # open $tmp_files if [ -n "$opt_snapshot" -a ${#opt_files[@]} -eq 0 ] then # Add all files in the snapshot into the file list (they may all # have changed). files=( $(find $QUILT_PC/$snap_subdir -type f \ | sed -e "s/^$(quote_bre $QUILT_PC/$snap_subdir/)//" \ | sort) ) printf "%s\n" "${files[@]}" >&4 unset files # Also look at all patches that are currently applied. opt_combine=1 first_patch=$(applied_patches | head -n 1) fi if [ -n "$opt_combine" ] then set -- $(patches_before "$last_patch") "$last_patch" if [ "$first_patch" != "-" ] then while [ $# -ge 1 -a "$1" != "$first_patch" ] do shift done if [ $# -eq 0 ] then printf $"Patch %s not applied before patch %s\n" \ "$(print_patch "$first_patch")" \ "$(print_patch "$last_patch")" >&2 die 1 fi fi patches=( "$@" ) else patches=( "$last_patch" ) fi # Properly handle spaces in file names saved_IFS=$IFS IFS=$'\n' for patch in ${patches[@]} do for file in $(files_in_patch_ordered "$patch") do if [ ${#opt_files[@]} -gt 0 ] && \ ! in_array "$file" "${opt_files[@]}" then continue fi echo "$file" >&4 done done exec 4>&- # close $tmp_files if [ -z "$opt_sort" ] then files=( $( awk ' { if ($0 in seen) next seen[$0]=1 print } ' $tmp_files) ) else files=( $(sort -u $tmp_files) ) fi IFS=$saved_IFS if [ -n "$opt_relative" ] then workdir=$(gen_tempfile -d $PWD/quilt) apply_patch_temporarily "$workdir" "$last_patch" "${files[@]}" \ || die 1 fi setup_pager for file in "${files[@]}" do if [ -n "$opt_snapshot" -a -e "$QUILT_PC/$snap_subdir/$file" ] then old_file="$QUILT_PC/$snap_subdir/$file" elif [ -n "$opt_relative" ] then old_file="$workdir/$file" else patch=$(first_modified_by "$file" "${patches[@]}") if [ -z "$patch" ] then [ -z "$opt_snapshot" ] \ && printf $"File %s is not being modified\n" "$file" >&2 continue fi old_file=$(backup_file_name "$patch" "$file") fi next_patch=$(next_patch_for_file "$last_patch" "$file") if [ -z "$next_patch" ] then new_file=$file else new_file=$(backup_file_name "$next_patch" "$file") files_were_shadowed=1 fi do_diff "$file" "$old_file" "$new_file" if [ $? -ne 0 ] then printf $"Diff failed, aborting\n" >&2 die 1 fi done if [ -n "$files_were_shadowed" ] then printf $"Warning: more recent patches modify files in patch %s\n" \ "$(print_patch "$last_patch")" >&2 fi die 0 ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/edit.in0000644000175000017500000000236312332477113015526 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. : ${EDITOR:=vi} # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt edit file ...\n" if [ x$1 = x-h ] then printf $" Edit the specified file(s) in \$EDITOR (%s) after adding it (them) to the topmost patch. " "$EDITOR" exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -eq 0 ] then usage fi quilt_command add "$@" status=$? if [ $status -ne 0 -a $status -ne 2 ] then exit $status fi LANG=$ORIGINAL_LANG $EDITOR "${@/#/$SUBDIR}" status=$? for file in "$@" do if ! [ -e "$SUBDIR$file" ] then quilt_command revert "$file" status=1 fi done exit $status ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/files.in0000644000175000017500000000557012332477113015706 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\n" if [ x$1 = x-h ] then printf $" Print the list of files that the topmost or specified patch changes. -a List all files in all applied patches. -l Add patch name to output. -v Verbose, more user friendly output. --combine patch Create a listing for all patches between this patch and the topmost or specified patch. A patch name of \`-' is equivalent to specifying the first applied patch. " exit 0 else exit 1 fi } options=`getopt -o vhal --long combine: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -v) opt_verbose=1 shift ;; -a) opt_all=1 shift ;; -l) opt_labels=1 shift ;; -h) usage -h ;; --combine) opt_all=1 if [ "$2" = - ] then : else first_patch=$(find_patch_in_series "$2") || exit 1 fi shift 2 ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi last_patch=$(find_applied_patch "$1") || exit 1 if [ -n "$opt_all" -a -z "$first_patch" ] then first_patch=$(applied_patches | head -n 1) fi if [ -n "$opt_all" ] then set -- $(patches_before "$last_patch") "$last_patch" while [ $# -ge 1 -a "$1" != "$first_patch" ] do shift done if [ $# -eq 0 ] then printf $"Patch %s not applied before patch %s\n" \ "$(print_patch "$first_patch")" \ "$(print_patch "$last_patch")" >&2 exit 1 fi patches=( "$@" ) else patches=( "$last_patch" ) fi list_files_in_patch() { local patch=$1 local status local saved_IFS=$IFS if [ -n "$opt_all" ] && [ -n "$opt_verbose" ] && [ -z "$opt_labels" ] then echo "$patch" fi if [ -n "$opt_verbose" ] && [ -z "$opt_labels" ] then use_status=yes fi # Note: If opt_labels is set, then use_status is not set. IFS= files_in_patch "$patch" | sort | while read file do if [ -n "$opt_labels" ] then if [ -n "$opt_verbose" ] then echo -n "[$patch] " else echo -n "$patch " fi fi if [ -z "$use_status" ] then echo "$file" else status=" " if [ -s $(backup_file_name "$patch" "$file") ] then if ! [ -s "$file" ] then status="-" fi else if [ -s "$file" ] then status="+" fi fi echo "$status $file" fi done IFS=$saved_IFS } setup_pager for patch in "${patches[@]}" do list_files_in_patch "$patch" done ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/fold.in0000644000175000017500000000542412332477113015526 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\n" if [ x$1 = x-h ] then printf $" Integrate the patch read from standard input into the topmost patch: After making sure that all files modified are part of the topmost patch, the patch is applied with the specified strip level (which defaults to 1). -R Apply patch in reverse. -q Quiet operation. -f Force apply, even if the patch has rejects. Unless in quiet mode, apply the patch interactively: the patch utility may ask questions. -p strip-level The number of pathname components to strip from file names when applying patchfile. " exit 0 else exit 1 fi } options=`getopt -o Rp:qfh -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -R) opt_reverse=1 shift ;; -f) opt_force=1 shift ;; -p) opt_strip_level=$2 shift 2 ;; -q) opt_quiet=1 shift ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 0 ] then usage fi : ${opt_strip_level:=1} [ -n "$opt_quiet" ] && patch_args="$patch_args -s" [ -z "$opt_force" -o -n "$opt_quiet" ] && patch_args="$patch_args -f" [ -n "$opt_reverse" ] && patch_args="$patch_args -R" top=$(find_top_patch) || exit 1 trap "failed=1" SIGINT workdir=$(gen_tempfile -d $PWD) patch -d ${SUBDIR:-.} $QUILT_PATCH_OPTS -p$opt_strip_level \ --backup --prefix="$workdir/$SUBDIR" $patch_args \ || failed=1 [ -n "$opt_force" ] && failed= saved_IFS=$IFS IFS=$'\n' if [ -z "$failed" ] then # Copy additional files from workdir to the backup directory # For this patch for file in $(find $workdir -type f -a ! -path "$workdir/.timestamp") do file="${file:${#workdir}+1}" backup_file="$(backup_file_name $top "$file")" if ! [ -e "$backup_file" ] then if ! mkdir -p "$(dirname "$backup_file")" || ! ln "$workdir/$file" "$backup_file" then failed=1 break fi fi done fi if [ -n "$failed" ] then # Restore all files to the state from before applying the patch for file in $(find $workdir -type f -a ! -path "$workdir/.timestamp") do file="${file:${#workdir}+1}" if ! mv -f "$workdir/$file" "$file" then printf $"File %s may be corrupted\n" "$file" >&2 fi done rm -rf $workdir exit 1 fi IFS=$saved_IFS rm -rf $workdir exit 0 ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/fork.in0000644000175000017500000000467112332477113015546 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt fork [new_name]\n" if [ x$1 = x-h ] then printf $" Fork the topmost patch. Forking a patch means creating a verbatim copy of it under a new name, and use that new name instead of the original one in the current series. This is useful when a patch has to be modified, but the original version of it should be preserved, e.g. because it is used in another series, or for the history. A typical sequence of commands would be: fork, edit, refresh. If new_name is missing, the name of the forked patch will be the current patch name, followed by \`-2'. If the patch name already ends in a dash-and-number, the number is further incremented (e.g., patch.diff, patch-2.diff, patch-3.diff). " exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi top_patch=$(find_top_patch) || exit 1 if [ $# -eq 1 ] then new_patch="$1" else new_patch="$(next_filename "$top_patch")" fi new_patch=${new_patch#$QUILT_PATCHES/} if patch_in_series $new_patch || \ [ -d "$QUILT_PC/$new_patch" ] || \ [ -e "$(patch_file_name $new_patch)" ] then printf $"Patch %s exists already, please choose a new name\n" \ "$(print_patch $new_patch)" >&2 exit 1 fi if ! rename_in_db "$top_patch" "$new_patch" || \ ! rename_in_series "$top_patch" "$new_patch" || \ ! mv "$QUILT_PC/$top_patch" "$QUILT_PC/$new_patch" || \ ( [ -e "$(patch_file_name $top_patch)" ] && \ ! cp -p "$(patch_file_name $top_patch)" \ "$(patch_file_name $new_patch)" ) then printf $"Fork of patch %s to patch %s failed\n" \ "$(print_patch $top_patch)" \ "$(print_patch $new_patch)" >&2 exit 1 fi printf $"Fork of patch %s created as %s\n" \ "$(print_patch $top_patch)" \ "$(print_patch $new_patch)" ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/graph.in0000644000175000017500000000527612332477113015710 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] [-T ps] [patch]\n" if [ x$1 = x-h ] then printf $" Generate a dot(1) directed graph showing the dependencies between applied patches. A patch depends on another patch if both touch the same file or, with the --lines option, if their modifications overlap. Unless otherwise specified, the graph includes all patches that the topmost patch depends on. When a patch name is specified, instead of the topmost patch, create a graph for the specified patch. The graph will include all other patches that this patch depends on, as well as all patches that depend on this patch. --all Generate a graph including all applied patches and their dependencies. (Unapplied patches are not included.) --reduce Eliminate transitive edges from the graph. --lines[=num] Compute dependencies by looking at the lines the patches modify. Unless a different num is specified, two lines of context are included. --edge-labels=files Label graph edges with the file names that the adjacent patches modify. -T ps Directly produce a PostScript output file. " exit 0 else exit 1 fi } options=`getopt -o T:h --long all,reduce,lines::,edge-labels: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -T) if [ "$2" != ps ]; then usage fi opt_format=ps shift 2 ;; --all) opt_all=1 shift ;; --reduce) opt_reduce=1 shift ;; --lines) opt_lines=${2:-2} shift 2 ;; --edge-labels) if [ "$2" != files ] then usage fi opt_edge_labels=$2 shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 -o \( $# -ne 0 -a -n "$opt_all" \) ] then usage fi if [ -z "$opt_all" ] then patch=$(find_applied_patch "$1") || exit 1 fi options= [ -n "$patch" ] && options="--select-patch $patch" [ -n "$opt_reduce" ] && options="$options --reduce" [ "$opt_edge_labels" = files ] && options="$options --edge-files" [ -n "$opt_lines" ] && options="$options --lines=$opt_lines" pipe= [ -n "$opt_format" ] && pipe="| dot -T$opt_format" applied_patches \ | eval $QUILT_DIR/scripts/dependency-graph $options - $pipe ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/grep.in0000644000175000017500000000623312332477113015536 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt grep [-h|options] {pattern}\n" if [ x$1 = x-h ] then printf $" Grep through the source files, recursively, skipping patches and quilt meta-information. If no filename argument is given, the whole source tree is searched. Please see the grep(1) manual page for options. -h Print this help. The grep -h option can be passed after a double-dash (--). Search expressions that start with a dash can be passed after a second double-dash (-- --). " exit 0 else exit 1 fi } get_options() { getopt -o EFGPe:f:iwxzsvVm:bHnhqoaId:D:RrlLcB:ZA:C:Uu \ --long extended-regexp,fixed-strings,basic-regexp,perl-regexp \ --long regexp:,file:,ignore-case,word-regexp \ --long line-regexp,null-data,no-messages,invert-match,version \ --long help,mmap,max-count:,byte-offset,line-number \ --long line-buffered,with-filename,no-filename,label: \ --long only-matching,quiet,silent,binary-files:,text, \ --long directories:,devices:,recursive,include:,exclude: \ --long exclude-from:,files-without-match,files-with-matches \ --long count,null,before-context:,after-context:,context: \ --long color::,colour::,binary,unix-byte-offsets \ -- "$@" } shift_myargs() { set -- "${myargs[@]}" shift myargs=( "$@" ) } shift_args() { while true do case "${myargs[0]}" in --) shift_myargs return ;; -h) opt_h=1 ;; -e|-f|--regexp|--file) has_pattern=1 args=( "${args[@]}" "${myargs[0]}" ) shift_myargs ;; -m|-d|-D|-B|-A|-C|\ --max-count|--label|--binary-files|\ --directories|--devices|--include|--exclude|--exclude-from|\ --before-context|--after-context|--context|--color|--colour) args=( "${args[@]}" "${myargs[0]}" ) shift_myargs ;; esac args=( "${args[@]}" "${myargs[0]}" ) shift_myargs done } options=$(get_options "$@") [ $? -ne 0 ] && usage eval set -- "$options" myargs=( "$@" ) args=() opt_h= has_pattern= shift_args [ -n "$opt_h" ] && usage -h case "${myargs[0]}" in -*) options=$(get_options "${myargs[@]}") [ $? -ne 0 ] && usage eval set -- "$options" myargs=( "$@" ) shift_args ;; esac if [ -z "$has_pattern" ] then [ ${#myargs[@]} -eq 0 ] && usage args=( "${args[@]}" -- "${myargs[0]}" ) shift_myargs fi # Print the filename for each match, unless -h is given. Otherwise, xargs # may pass a single filename to grep and cause it to omit the file name. [ -z "$opt_h" ] && opt_H=-H find "${myargs[@]:-.}" \( \ -path "./$QUILT_PATCHES/*" -o \ -path "./$QUILT_PC/*" \) -prune -o \ -type f -print0 \ | xargs -0 grep $opt_H "${args[@]}" \ | if [ ${#myargs[@]} -eq 0 ]; then sed -e 's,^./,,' else cat fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/header.in0000644000175000017500000000634712332477113016037 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi : ${EDITOR:=vi} usage() { printf $"Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-trailing-whitespace] [patch]\n" if [ x$1 = x-h ] then printf $" Print or change the header of the topmost or specified patch. -a, -r, -e Append to (-a) or replace (-r) the exiting patch header, or edit (-e) the header in \$EDITOR (%s). If none of these options is given, print the patch header. --strip-diffstat Strip diffstat output from the header. --strip-trailing-whitespace Strip trailing whitespace at the end of lines of the header. --backup Create a backup copy of the old version of a patch as patch~. " "$EDITOR" exit 0 else exit 1 fi } maybe_strip_trailing_whitespace() { if [ -n "$opt_strip_trailing_whitespace" ] then sed -e 's:[ '$'\t'']*$::' else cat fi } maybe_strip_diffstat() { if [ -n "$opt_strip_diffstat" ] then strip_diffstat else cat fi } options=`getopt -o areh --long backup,strip-trailing-whitespace,strip-diffstat -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -a) opt_append=1 shift ;; -r) opt_replace=1 shift ;; -e) opt_edit=1 shift ;; --backup) QUILT_BACKUP=1 shift ;; --strip-diffstat) opt_strip_diffstat=1 shift ;; --strip-trailing-whitespace) opt_strip_trailing_whitespace=1 shift ;; -h) usage -h ;; --) shift break ;; esac done case "$opt_append$opt_replace$opt_edit" in ''|1) ;; *) usage ;; esac if [ $# -gt 1 ] then usage fi patch=$(find_patch_in_series "$1") || exit 1 patch_file=$(patch_file_name $patch) if [ -z "$opt_replace" -a -z "$opt_append" -a -z "$opt_edit" ] then [ -e "$patch_file" ] || exit 0 setup_pager cat_file "$patch_file" \ | patch_header \ | maybe_strip_diffstat \ | maybe_strip_trailing_whitespace else patch_file_or_null=/dev/null [ -e "$patch_file" ] && patch_file_or_null=$patch_file tmp=$(gen_tempfile) || exit 1 tmp2=$(gen_tempfile) || exit 1 add_exit_handler "rm -f $tmp $tmp2" ( if [ -z "$opt_replace" ] then cat_file $patch_file_or_null | patch_header fi if [ -n "$opt_append" -o -n "$opt_replace" ] then cat fi ) > $tmp if [ -n "$opt_edit" ] then LANG=$ORIGINAL_LANG $EDITOR "$tmp" || exit 1 fi maybe_strip_diffstat < $tmp \ | maybe_strip_trailing_whitespace > $tmp2 cat_file "$patch_file_or_null" | patch_body >> $tmp2 || exit 1 if ( [ -z "$QUILT_BACKUP" -o ! -e $patch_file ] || \ mv $patch_file $patch_file~ ) && \ cat_to_new_file $patch_file < $tmp2 then if [ -z "$opt_append" ] then printf \ $"Replaced header of patch %s\n" "$(print_patch $patch)" else printf \ $"Appended text to header of patch %s\n" "$(print_patch $patch)" fi else exit 1 fi fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/import.in0000644000175000017500000001211112332477113016103 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ...\n" if [ x$1 = x-h ] then printf $" Import external patches. The patches will be inserted following the current top patch, and must be pushed after import to apply them. -p num Number of directory levels to strip when applying (default=1) -R Apply patch in reverse. -P patch Patch filename to use inside quilt. This option can only be used when importing a single patch. -f Overwrite/update existing patches. -d {o|a|n} When overwriting in existing patch, keep the old (o), all (a), or new (n) patch header. If both patches include headers, this option must be specified. This option is only effective when -f is used. " exit 0 else exit 1 fi } find_patch_file() { local name="$1" if [ ${name:0:1} = / ] then # Patch has absolute path if [ -r "$name" ] then echo "$name" return fi else # Patch has a relative path if [ -r "$SUBDIR$name" ] then echo "$SUBDIR$name" return fi fi printf $"Patch %s does not exist\n" "$name" >&2 return 1 } merge_patches() { local old="$1" new="$2" local old_desc=$(gen_tempfile) new_desc=$(gen_tempfile) cat_file "$old" | patch_header | strip_diffstat > $old_desc cat_file "$new" | patch_header | strip_diffstat > $new_desc if [ -z "$opt_desc" ] then [ -s $old_desc ] || opt_desc=n [ -z "$opt_desc" -a ! -s $new_desc ] && opt_desc=o if [ -z "$opt_desc" ] then local diff=$(diff -u $old_desc $new_desc \ | sed -e '1,2d') if [ -n "$diff" ] then printf $"Patch headers differ:\n" >&2 echo "$diff" >&2 printf \ $"Please use -d {o|a|n} to specify which patch header(s) to keep.\n" >&2 rm -f $old_desc $new_desc return 1 fi fi fi [ "$opt_desc" = n ] || cat "$old_desc" [ "$opt_desc" = a ] && echo '---' if [ "$opt_desc" = o ] then cat_file "$new" | patch_body else cat_file "$new" fi rm -f $old_desc $new_desc } die() { local status=$1 [ "$merged_patch_file" != "$patch_file" ] && rm -f "$merged_patch_file" exit $status } options=`getopt -o P:d:fp:Rh -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -P) opt_patch=${2#$QUILT_PATCHES/} shift 2 ;; -p) opt_strip=$2 shift 2 ;; -R) opt_reverse=1 shift ;; -d) case "$2" in o|n|a) opt_desc=$2 ;; *) usage ;; esac shift 2 ;; -f) opt_force=1 shift ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 -a -n "$opt_patch" ] then printf $"Option \`-P' can only be used when importing a single patch\n" >&2 exit 1 fi [ -n "$opt_strip" ] && patch_args="-p$opt_strip" if [ -n "$opt_reverse" ] then if [ -n "$patch_args" ] then patch_args="$patch_args -R" else patch_args="-R" fi fi before=$(patch_after "$(top_patch)") for orig_patch_file in "$@" do if [ -n "$opt_patch" ] then patch=$opt_patch else patch=${orig_patch_file##*/} fi patch_file=$(find_patch_file "$orig_patch_file") || exit 1 merged_patch_file="$patch_file" if is_applied $patch then printf $"Patch %s is applied\n" "$(print_patch $patch)" >&2 exit 1 fi dest=$(patch_file_name $patch) if patch_in_series "$patch" then if [ "$patch_file" = "$dest" ] then printf $"Patch %s already exists in series.\n" \ "$(print_patch $patch)" >&2 exit 1 fi if [ -z "$opt_force" ] then printf $"Patch %s exists. Replace with -f.\n" \ "$(print_patch $patch)" >&2 exit 1 fi if [ "$opt_desc" != n ] then merged_patch_file=$(gen_tempfile) merge_patches "$dest" "$patch_file" \ > $merged_patch_file \ || die 1 fi printf $"Replacing patch %s with new version\n" \ "$(print_patch $patch)" >&2 elif [ -e "$dest" ] then printf $"Importing patch %s\n" "$(print_patch $patch)" else printf $"Importing patch %s (stored as %s)\n" \ "$orig_patch_file" \ "$(print_patch $patch)" mkdir -p "${dest%/*}" fi if [ "$merged_patch_file" != "$dest" ] && \ (( [ "$merged_patch_file" != "$patch_file" ] && \ ! cat_to_new_file "$dest" < "$merged_patch_file" ) || \ ( [ "$merged_patch_file" = "$patch_file" ] && \ ! cp "$merged_patch_file" "$dest" )) then printf $"Failed to import patch %s\n" "$(print_patch $patch)" >&2 die 1 fi [ "$merged_patch_file" != "$patch_file" ] && rm -f "$merged_patch_file" if ! patch_in_series $patch && ! insert_in_series $patch "$patch_args" "$before" then printf $"Failed to insert patch %s into file series\n" \ "$(print_patch $patch)" >&2 exit 1 fi rm -rf $QUILT_PC/$patch done ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/mail.in0000644000175000017500000003570112332477113015525 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. : ${EDITOR:=vi} # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] [--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--subject ...] [--reply-to message] [first_patch [last_patch]]\n" if [ x$1 = x-h ] then printf $" Create mail messages from a specified range of patches, or all patches in the series file, and either store them in a mailbox file, or send them immediately. The editor is opened with a template for the introduction. Please see %s for details. When specifying a range of patches, a first patch name of \`-' denotes the first, and a last patch name of \`-' denotes the last patch in the series. -m text Text to use as the text in the introduction. When this option is used, the editor will not be invoked, and the patches will be processed immediately. -M file Like the -m option, but read the introduction from file. --prefix prefix Use an alternate prefix in the bracketed part of the subjects generated. Defaults to \`patch'. --mbox file Store all messages in the specified file in mbox format. The mbox can later be sent using formail, for example. --send Send the messages directly. --sender The envelope sender address to use. The address must be of the form \`user@domain.name'. No display name is allowed. --from, --subject The values for the From and Subject headers to use. If no --from option is given, the value of the --sender option is used. --to, --cc, --bcc Append a recipient to the To, Cc, or Bcc header. --signature file Append the specified signature to messages (defaults to ~/.signature if found; use \`-' for no signature). --reply-to message Add the appropriate headers to reply to the specified message. " "@DOCSUBDIR@/README.MAIL" exit 0 else exit 1 fi } msgid() { local timestamp=$(date --utc "+%Y%m%d%H%M%S.%N") echo "$timestamp@${opt_sender_address#*@}" } # See RFC 2822 Internet Message Format for how the In-Reply-To and # References headers are generated... in_reply_to_header() { local message=$1 message_id message_id=$(formail -x Message-ID: < "$message") message_id=${message_id# } [ -n "$message_id" ] && echo "In-Reply-To: $message_id" } references_header() { local message=$1 message_id references in_reply_to message_id=$(formail -x Message-ID: < "$message") message_id=${message_id# } references=$(formail -x References: < "$message") references=${references# } if [ -z "$references" ] then in_reply_to=$(formail -x In-Reply-To: < "$message") in_reply_to=${in_reply_to# } if [ -n "$in_reply_to" ] then case "$in_reply_to" in *@*@*) ;; *) references=$in_reply_to ;; esac fi fi if [ -z "$references" ] then references=$message_id elif [ -n "$message_id" ] then references="$references"$'\n '"$message_id" fi [ -n "$references" ] && echo "References: $references" } process_mail() { local tmpfile=$(gen_tempfile) cat > $tmpfile set -- $($QUILT_DIR/scripts/edmail --charset $opt_charset \ --extract-recipients To \ --extract-recipients Cc \ --extract-recipients Bcc \ < $tmpfile) if [ -n "$opt_send" ] then echo ${QUILT_SENDMAIL:-sendmail} \ ${QUILT_SENDMAIL_ARGS--f "$opt_sender"} "$@" $QUILT_DIR/scripts/edmail --charset $opt_charset \ --remove-header Bcc < $tmpfile \ | ${QUILT_SENDMAIL:-sendmail} \ ${QUILT_SENDMAIL_ARGS--f "$opt_sender"} "$@" else local from_date=$(LC_ALL=POSIX date "+%a %b %e %H:%M:%S %Y") echo "From $opt_sender_address $from_date" sed -e 's/^From />From /' $tmpfile echo fi rm -f $tmpfile } join_lines() { awk ' BEGIN { RS="\n\n" } { gsub(/[ \t\n]+/, " ") sub(/ $/, "") sub(/^ /, "") print } ' } options=`getopt -o m:M:h \ --long from:,to:,cc:,bcc:,subject: \ --long send,mbox:,charset:,sender: \ --long prefix:,reply-to:,signature: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" opt_prefix=patch if [ -r $HOME/.signature ] then opt_signature="$(< $HOME/.signature)" fi while true do case "$1" in -m) if [ -n "$opt_message" ] then echo $"Introduction message already specified" >&2 exit 1 fi opt_message=$2 shift 2 ;; -M) if [ -n "$opt_message" ] then echo $"Introduction message already specified" >&2 exit 1 fi opt_message=$(< "$2") shift 2 ;; --sender) opt_sender=$2 shift 2 ;; --from) opt_from=$2 shift 2 ;; --to) opt_to[${#opt_to[@]}]=$2 shift 2 ;; --cc) opt_cc[${#opt_cc[@]}]=$2 shift 2 ;; --bcc) opt_bcc[${#opt_bcc[@]}]=$2 shift 2 ;; --subject) opt_subject=$2 shift 2 ;; --prefix) opt_prefix=$2 shift 2 ;; --send) opt_send=1 shift ;; --mbox) opt_mbox=$2 shift 2 ;; --charset) opt_charset=$2 shift 2 ;; --reply-to) opt_reply_to=$2 shift 2 ;; --signature) if [ "$2" = - ] then opt_signature= else opt_signature=$(< "$2") fi shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 2 -o \( -z "$opt_send" -a -z "$opt_mbox" \) ] then usage fi # check if formail is installed before doing anything if ! type formail &> /dev/null then echo $"You have to install 'formail' to use 'quilt mail'" >&2 exit 1 fi if [ $# -ge 1 ] then if [ "$1" = - ] then first_patch="$(find_first_patch)" || exit 1 else first_patch="$(find_patch "$1")" || exit 1 fi if [ $# -ge 2 ] then if [ "$2" = - ] then last_patch="$(find_last_patch)" || exit 1 else last_patch="$(find_patch "$2")" || exit 1 fi else last_patch=$first_patch fi fi if [ -z "$opt_sender" ] then if [ -e /etc/mailname ] then hostname=$(< /etc/mailname) else hostname=$(hostname -f 2>/dev/null) fi if [ "$hostname" = "${hostname/.}" ] then hostname=$(hostname) fi opt_sender="${LOGNAME:-$(whoami)}@$hostname" case "$opt_sender" in *@*.*) ;; *) echo $"\ Could not determine the envelope sender address. Please use --sender." >&2 exit 1 ;; esac fi opt_sender_address=$(echo "$opt_sender" | sed -re 's:.*<([^<>]+)>.*:\1:') if [ -z "$opt_charset" ] then case "${LC_ALL:-$ORIGINAL_LANG}" in *.UTF-8) opt_charset=UTF-8 ;; *) opt_charset=ISO-8859-15 ;; esac fi if [ "$(type -t quilt_mail_patch_filter 2> /dev/null)" != function ] then quilt_mail_patch_filter() { local tmpdir=$(gen_tempfile -d) cat > $tmpdir/patch patch_header < $tmpdir/patch > $tmpdir/header local subject local -a mh # Does this patch have a Subject: line? subject=$(formail -x Subject: < $tmpdir/header) if [ -n "$subject" ] then awk ' in_body { print } /^$/ { in_body = 1 } ' $tmpdir/patch > $tmpdir/body fi # Does this patch have DESC // subject // EDESC? if [ -z "$subject" ] then local desc=$(awk ' /^EDESC/ { desc = 0 } desc { print } /^DESC/ { desc = 1 } ' $tmpdir/header) if [ -n "$desc" ] then subject=$(echo "$desc" | join_lines) awk ' /^DESC/ { desc = 1 } ! desc { print } /^EDESC/ { desc = 0 } ' $tmpdir/patch > $tmpdir/body fi fi # Is the first paragraph short enough to be used as the subject? if [ -z "$subject" ] then local para=$(sed -e $'/^[ \t]*$/q' $tmpdir/header) if [ ${#para} -gt 0 -a ${#para} -lt 150 ] then subject=$(echo "$para" | join_lines) awk ' in_body { print } /^[ \t]*$/ { in_body = 1 } ' $tmpdir/patch > $tmpdir/body fi fi if [ -z "$subject" ] then rm -rf $tmpdir return 1 fi subject=$(echo "$subject" \ | sed -e $'s/^\\(\\(\\[[^]]*\\]\\|fwd:\\|fw:\\|re:\\|aw:\\|tr:\\)[ \t]*\\)*//i') echo "Replace-Subject: $subject" # Add recipients defined by some recognized keywords # In Signed-off-by: and Acked-by: lines, try to recognize email # addresses that contain commas and add quotes, e.g., # Last, First => "Last, First" set -- Signed-off-by Acked-by Suggested-by Reviewed-by Requested-by Reported-by Tested-by Cc set -- "$*" set -- ${*// /\\|} sed -n -e "/\<${LOGNAME:-$(whoami)}@/d" \ -e 's/^\(\(To\|'"$*"'\):[ '$'\t'']*\)\([^"]*\(,[^"]*\)\+[^" '$'\t'']\)\([ '$'\t'']*<.*>\)/\1"\3"\5/I' \ -e 's/^To:\(.*@.*\)/Recipient-To:\1/Ip' \ -e 's/^\('"$*"'\):\(.*@.*\)/Recipient-Cc:\2/Ip' \ $tmpdir/header echo cat $tmpdir/body rm -rf $tmpdir } fi if [ -n "$first_patch" ] then if [ -n "$last_patch" ] then set -- $(patches_before "$last_patch") "$last_patch" while [ $# -ne 0 ] do [ "$1" = "$first_patch" ] && break shift done if [ $# -eq 0 ] then printf $"Patch %s not applied before patch %s\n" \ "$(print_patch $first_patch)" \ "$(print_patch $last_patch)" >&2 exit 1 fi patches=( "$@" ) else patches=( "$first_patch" $(patches_after "$first_patch") ) fi else patches=( $(cat_series) ) fi total=${#patches[@]} tmpdir=$(gen_tempfile -d) add_exit_handler "rm -rf $tmpdir" for patch in "${patches[@]}" do mkdir -p "$tmpdir/$(dirname "$patch")" cat_file "$(patch_file_name "$patch")" \ | quilt_mail_patch_filter "$patch" > "$tmpdir/$patch" status=${PIPESTATUS[1]} subject=$(formail -x Replace-Subject: < "$tmpdir/$patch" | join_lines) if [ $status -ne 0 -o -z "$subject" ] then printf \ $"Unable to extract a subject header from %s\n" "$(print_patch "$patch")" >&2 rm -rf $tmpdir exit 1 fi subjects[${#subjects[@]}]="$patch"$'\t'"$subject" done dup_subjects=( $( printf "%s\n" "${subjects[@]}" \ | sort -k2 \ | awk '{ patch = $1 ; sub(/^[^\t]+\t/, ""); if ($0 in subjects) { if (subjects[$0] != "") print subjects[$0]; print patch; subjects[$0] = ""; } else subjects[$0] = patch }' \ | while read patch; do print_patch $patch done ) ) if [ ${#dup_subjects[@]} -ne 0 ] then printf $"Patches %s have duplicate subject headers.\n" \ "$(set -- "${dup_subjects[*]/%/, }"; echo ${1%, })" exit 1 fi if [ -n "$opt_reply_to" ] then if [ ! -e "$opt_reply_to" ] then printf $"File %s does not exist\n" "$opt_reply_to" exit 1 fi if [ -z "$opt_subject" ] then opt_subject="Re: $(formail -x Subject: < "$opt_reply_to" \ | sed -e 's/^ *\([rR][eE]: *\)*//')" fi fi introduction="$(gen_tempfile)" ( cat <<-EOF Message-Id: <$(msgid)> User-Agent: quilt/@VERSION@-@RELEASE@ Date: $(date --rfc-822) From: ${opt_from:-$opt_sender} To: $(IFS=,; echo "${opt_to[*]}") Cc: $(IFS=,; echo "${opt_cc[*]}") Bcc: $(IFS=,; echo "${opt_bcc[*]}") EOF if [ -n "$opt_reply_to" ] then in_reply_to_header "$opt_reply_to" references_header "$opt_reply_to" fi cat <<-EOF Subject-Prefix: [$opt_prefix @num@/@total@] Subject: $opt_subject EOF if [ -n "$opt_message" ] then echo "$opt_message" echo fi if [ -n "$opt_signature" ] then echo "-- " echo "$opt_signature" fi ) | $QUILT_DIR/scripts/edmail --charset $opt_charset > $introduction if [ -z "$opt_message" ] then if ! LANG=$ORIGINAL_LANG $EDITOR $introduction then rm -f $introduction exit 1 fi fi subject=$(formail -x Subject: < $introduction | join_lines) if [ -z "$subject" ] then if [ -z "$opt_message" ] then printf $"Introduction has no subject header (saved as %s)\n" \ "$introduction" >&2 else printf $"Introduction has no subject header\n" rm -f $introduction fi exit 1 fi if [ -n "$opt_mbox" ] then exec 1> $opt_mbox fi subject_prefix=$(formail -x Subject-Prefix: < $introduction | join_lines) [ -n "$subject_prefix" ] && subject_prefix="$subject_prefix " subject_prefix=${subject_prefix//\'/\'\'} subject_prefix=${subject_prefix//\//\\\/} p=${subject_prefix//@num@/$(printf %0*d ${#total} 0)} p=${p//@total@/$total} sed -e $'s/^\\(Subject:[ \t]\\)/\\1'"$p"'/' \ -e '/^Subject-Prefix:/d' \ $introduction \ | $QUILT_DIR/scripts/edmail --charset $opt_charset \ --remove-empty-headers To Cc Bcc \ | process_mail if [ -n "$opt_mbox" ] then exec 1>> $opt_mbox fi # Remember the timestamp of the last message sent. For each message, # increment the timestamp by one second and wait with sending until # that time has arrived. This allows MUAs to show the messages in the # correct order. last_ts=$(date '+%s' -d "$(sed -ne $'s/^Date:[ \t]*//p' $introduction)") num=1 for patch in "${patches[@]}"; do body=$tmpdir/$patch #echo -n '.' >&2 # Timestamps that are a few seconds in the future don't hurt usually #while [ $(date '+%s') -le $last_ts ]; do # sleep 1 #done ((last_ts++)) new_date="$(date --rfc-822 -d "1970/01/01 UTC $last_ts seconds")" modify="$(awk ' in_header { if (/^[ \t]/) { headers[n] = headers[n] "\n" $0 next } in_header = 0 } sub(/^Recipient-/, "") { headers[++n] = $0 options[n] = "--add-good-recipient" in_header = 1 next } sub(/^Replace-/, "") { headers[++n] = $0 options[n] = "--replace-header" in_header = 1 next } END { for(n = 1; n in headers; n++) { r = headers[n] sub(/:.*/, "", r) s = headers[n] sub(/^[^:]*:[ \t]*/, "", s) gsub(/'\''/, "'\'\''", s) print options[n] " " r "='\''" s "'\'' \\" } } ' $body)" # echo "$modify" | sed -e 's/^/>> /' >&2 p=${subject_prefix//@num@/$(printf %0*d ${#total} $num)} p=${p//@total@/$total} # Make pipes fail if any of their commands fail (requires bash 3): set -o pipefail ( ( echo "Message-Id: <$(msgid)>" awk ' /^$/ { exit } tolower($0) !~ /^(message-id|references|in-reply-to):/ \ { print } ' $introduction references_header $introduction echo "MIME-Version: 1.0" echo "Content-Type: text/plain; charset=$opt_charset" echo "Content-Disposition: inline; filename=$patch" awk ' kill_header { if (/^[ \t]/) next ; kill_header = 0 } !in_body && tolower($0) ~ /^(recipient|replace)-.*:/ \ { kill_header = 1 ; next } /^$/ { in_body = 1 } { print } ' $body echo #if [ -n "$opt_signature" ] #then # echo '-- ' # echo "$opt_signature" #fi ) | eval $QUILT_DIR/scripts/edmail --charset $opt_charset \ --replace-header Date="\"$new_date\"" \ To Cc Bcc \ "$modify" \ | sed -e $'s/^\\(Subject:[ \t]\\)/\\1'"$p"'/' \ -e '/^Subject-Prefix:/d' \ | $QUILT_DIR/scripts/edmail --remove-empty-headers \ | process_mail ) 2> $tmpdir/err status=$? if [ -s $tmpdir/err ] then sed -e "s/^/${patch//\//\\/}: /" < $tmpdir/err >&2 fi if [ $status -ne 0 ] then printf $"Introduction saved as %s\n" "$introduction" >&2 exit 1 fi # If the character set is UTF-8, check for invalid byte # sequences. #content_length=${#body} #if [ -n "$(echo "$body" | tr -d '\0-\177')" ] #then # charset=UTF-8 #fi # Content-Transfer-Encoding: 7bit # Content-Transfer-Encoding: 8bit # Content-Type: text/plain; charset=ISO-8859-1 # Content-Type: text/plain; charset=UTF-8 ((num++)) done rm -f $introduction ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/new.in0000644000175000017500000000464112332477113015373 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt new [-p n|-p ab] {patchname}\n" if [ x$1 = x-h ] then printf $" Create a new patch with the specified file name, and insert it after the topmost patch. The name can be prefixed with a sub-directory name, allowing for grouping related patches together. -p n Create a -p n style patch (-p0 or -p1 are supported). -p ab Create a -p1 style patch, but use a/file and b/file as the original and new filenames instead of the default dir.orig/file and dir/file names. Quilt can be used in sub-directories of a source tree. It determines the root of a source tree by searching for a %s directory above the current working directory. Create a %s directory in the intended root directory if quilt chooses a top-level directory that is too high up in the directory tree. " "$QUILT_PATCHES" "$QUILT_PATCHES" exit 0 else exit 1 fi } options=`getopt -o p:h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -p) opt_strip_level=$2 shift 2 ;; -h) usage -h ;; --) shift break ;; esac done case "$opt_strip_level" in '' | 1) opt_strip_level= ;; 0 | ab) ;; *) printf $"Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\n" \ "$opt_strip_level" >&2 exit 1 ;; esac if [ $# -ne 1 ] then usage fi if [ "$QUILT_PATCHES" = "$QUILT_PC" ] then printf $"QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\n" "$QUILT_PATCHES" "$QUILT_PC" exit 1 fi patch=${1#$QUILT_PATCHES/} if patch_in_series $patch then printf $"Patch %s exists already\n" "$(print_patch $patch)" >&2 exit 1 fi create_db rm -rf "$QUILT_PC/$patch" mkdir -p "$QUILT_PC/$patch" if insert_in_series $patch ${opt_strip_level:+-p$opt_strip_level} && \ add_to_db $patch then printf $"Patch %s is now on top\n" "$(print_patch $patch)" else printf $"Failed to create patch %s\n" "$(print_patch $patch)" >&2 exit 1 fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/next.in0000644000175000017500000000206212332477113015553 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt next [patch]\n" if [ x$1 = x-h ] then printf $" Print the name of the next patch after the specified or topmost patch in the series file. " exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi next=$(find_unapplied_patch "$1") || exit if [ -n "$next" ] then print_patch $next else exit 2 fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/patches.in0000644000175000017500000000644012332477113016230 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi declare -a opt_files=() usage() { printf $"Usage: quilt patches [-v] [--color[=always|auto|never]] {file} [files...]\n" if [ x$1 = x-h ] then printf $" Print the list of patches that modify any of the specified files. (Uses a heuristic to determine which files are modified by unapplied patches. Note that this heuristic is much slower than scanning applied patches.) -v Verbose, more user friendly output. --color[=always|auto|never] Use syntax coloring (auto activates it only if the output is a tty). " exit 0 else exit 1 fi } # Uses global variable opt_files scan_applied() { local color=$1 prefix=$2 shift 2 local patch file for patch in "$@" do for file in "${opt_files[@]}" do if file_in_patch "$file" $patch then echo "$color$prefix$(print_patch $patch)$color_clear" break fi done done } # Note that we can only guess which files a patch touches because of the # complicated heuristics that patch uses (see "Multiple Patches in a File" # in the diff info pages). touched_by_patch() { local strip=$1 patch=$2 cat_file $(patch_file_name $patch) \ | awk ' /^(\+\+\+|---)[ \t]/ { sub(/^(\+\+\+|---)[ \t]/, "") sub(/\t[^\t]*$/, "") sub(/^\/dev\/null/, "") for (i=0; i<'$strip'; i++) sub(/^[^\/]*\//, "") if ($0 != "") print }' } # Uses global variable opt_files scan_unapplied() { local color=$1 prefix=$2 strip shift 2 local patch file local -a files_bre # Quote each file name only once for file in "${opt_files[@]}" do files_bre[${#files_bre[@]}]=$(quote_bre "$file") done # "Or" all files in a single pattern file=\\\($(array_join \\\| "${files_bre[@]}")\\\) for patch in "$@" do strip=$(patch_strip_level $patch) [ "$strip" = ab ] && strip=1 if touched_by_patch $strip "$patch" \ | grep -q "^$file\$" then echo "$color$prefix$(print_patch $patch)$color_clear" fi done } options=`getopt -o vh --long color:: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -v) opt_verbose=1 shift ;; --color) case "$2" in "" | always) opt_color=1 ;; auto | tty) opt_color= [ -t 1 ] && opt_color=1 ;; never) opt_color= ;; *) usage ;; esac shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -lt 1 ] then usage fi while [ $# -ge 1 ] do opt_files[${#opt_files[@]}]="$SUBDIR$1" shift done top=$(top_patch) if [ -n "$opt_verbose" ] then applied="+ " current="= " unapplied=" " else applied="" current="" unapplied="" fi [ -n "$opt_color" ] && setup_colors setup_pager scan_applied "$color_series_app" "$applied" \ $(patches_before $top) [ -n "$top" ] && \ scan_applied "$color_series_top" "$current" \ $top scan_unapplied "$color_series_una" "$unapplied" \ $(patches_after $top) ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/pop.in0000644000175000017500000001250212332477113015373 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt pop [-afRqv] [num|patch]\n" if [ x$1 = x-h ] then printf $" Remove patch(es) from the stack of applied patches. Without options, the topmost patch is removed. When a number is specified, remove the specified number of patches. When a patch name is specified, remove patches until the specified patch end up on top of the stack. Patch names may include the patches/ prefix, which means that filename completion can be used. -a Remove all applied patches. -f Force remove. The state before the patch(es) were applied will be restored from backup files. -R Always verify if the patch removes cleanly; don't rely on timestamp checks. -q Quiet operation. -v Verbose operation. " exit 0 else exit 1 fi } list_patches() { local n patches patches=( $(applied_patches) ) for ((n=${#patches[@]}-1; n>=0; n--)) do if [ -n "$number" ] then (( number-- > 0 )) || break fi [ "${patches[n]}" = "$stop_at_patch" ] && break echo "${patches[n]}" done } files_may_have_changed() { local patch=$1 file local patch_file=$(patch_file_name "$patch") if [ $? -ne 0 -o ! -e "$patch_file" \ -o ! -e "$QUILT_PC/$patch/.timestamp" \ -o ! "$QUILT_PC/$patch/.timestamp" -nt "$patch_file" ] then return 0 fi for file in $(files_in_patch "$patch") do [ ! "$QUILT_PC/$patch/.timestamp" -nt "$file" ] && return 0 done return 1 } # Check if all changes have been folded back into the patch (quilt refresh), # and report any pending changes. check_for_pending_changes() { local patch=$1 local patch_file=$(patch_file_name "$patch") local workdir=$(gen_tempfile -d quilt) status=0 if [ -d "$QUILT_PC/$patch" ] then local prefix=$QUILT_PC/$patch/ [ ${prefix:0:1} == / ] || prefix=$PWD/$prefix if ! ( cd $workdir && \ $QUILT_DIR/scripts/backup-files -B "$prefix" -r -k -s - ) then printf $"Failed to copy files to temporary directory\n" >&2 rm -rf $workdir return 1 fi fi if [ -s "$patch_file" ] then cat_file "$patch_file" \ | patch -d $workdir $QUILT_PATCH_OPTS \ $(patch_args "$patch") --no-backup-if-mismatch \ -f >/dev/null 2>/dev/null fi local file file2 failed for file2 in $(files_in_patch "$patch") do file=$workdir/$file2 [ -e "$file" ] || file=/dev/null [ -e "$file2" ] || file2=/dev/null diff -q "$file" "$file2" > /dev/null || failed=1 done if [ -n "$failed" ] then printf $"Patch %s does not remove cleanly (refresh it or enforce with -f)\n" \ "$(print_patch "$patch")" >&2 status=1 fi rm -rf $workdir return $status } remove_patch() { local patch=$1 status=0 trap "status=1" SIGINT if [ -z "$opt_force" ] && \ ( [ -n "$opt_remove" ] || files_may_have_changed "$patch" ) then check_for_pending_changes "$patch" || status=1 fi if [ $status -eq 0 ] then rm -f "$QUILT_PC/$patch/.timestamp" if [ -z "$(shopt -s nullglob ; echo "$QUILT_PC/$patch/"*)" ] then printf $"Patch %s appears to be empty, removing\n" \ "$(print_patch "$patch")" rmdir "$QUILT_PC/$patch" status=$? else printf $"Removing patch %s\n" "$(print_patch "$patch")" $QUILT_DIR/scripts/backup-files $silent -r -t -B "$QUILT_PC/$patch/" - status=$? fi remove_from_db "$patch" rm -f "$QUILT_PC/$patch~refresh" fi trap - SIGINT return $status } options=`getopt -o fRqvah -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -f) opt_force=1 unset opt_remove shift ;; -R) opt_remove=1 unset opt_force shift ;; -q) opt_quiet=1 shift ;; -v) opt_verbose=1 shift ;; -a) opt_all=1 shift ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 -o \( -n "$opt_all" -a $# -ne 0 \) ] then usage fi if [ $# -eq 1 ] then if is_numeric "$1" then number=$1 else stop_at_patch=$(find_applied_patch "$1") || exit 1 fi else [ -n "$opt_all" ] || number=1 fi [ -n "$opt_quiet" ] && silent=-s [ -z "$opt_verbose" ] && silent_unless_verbose=-s top=$(top_patch) if [ -n "$top" -a -e "$QUILT_PC/$top~refresh" -a -z "$opt_force" ] then printf $"Patch %s needs to be refreshed first.\n" \ "$(print_patch "$top")" >&2 exit 1 fi if ! patches=$(list_patches) 2>&1 then exit 1 elif [ -z "$patches" ] then printf $"No patch removed\n" >&2 exit 2 fi for patch in $patches do if ! remove_patch "$patch" then exit 1 fi [ -z "$opt_quiet" ] && echo done patch="$(top_patch)" if [ -z "$patch" ] then printf $"No patches applied\n" else # Ensure that the files in the topmost patch have a link count # of one: This will automatically be the case in the usual # situations, but we don't want to risk file corruption in weird # corner cases such as files added to a patch but not modified. $QUILT_DIR/scripts/backup-files -L -s -B "$QUILT_PC/$patch/" - printf $"Now at patch %s\n" "$(print_patch "$patch")" fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/previous.in0000644000175000017500000000216712332477113016457 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt previous [patch]\n" if [ x$1 = x-h ] then printf $" Print the name of the previous patch before the specified or topmost patch in the series file. " exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi patch=$(find_patch_in_series "$1") || exit 1 previous=$(applied_before "$patch" | tail -n 1) if [ -n "$previous" ] then print_patch $previous else exit 2 fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/push.in0000644000175000017500000002041412332477113015555 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi setup_colors usage() { printf $"Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--color[=always|auto|never]] [num|patch]\n" if [ x$1 = x-h ] then printf $" Apply patch(es) from the series file. Without options, the next patch in the series file is applied. When a number is specified, apply the specified number of patches. When a patch name is specified, apply all patches up to and including the specified patch. Patch names may include the patches/ prefix, which means that filename completion can be used. -a Apply all patches in the series file. -q Quiet operation. -f Force apply, even if the patch has rejects. Unless in quiet mode, apply the patch interactively: the patch utility may ask questions. -v Verbose operation. --fuzz=N Set the maximum fuzz factor (default: 2). -m, --merge[=merge|diff3] Merge the patch file into the original files (see patch(1)). --leave-rejects Leave around the reject files patch produced, even if the patch is not actually applied. --color[=always|auto|never] Use syntax coloring (auto activates it only if the output is a tty). " exit 0 else exit 1 fi } interrupt() { local patch=$1 rollback_patch "$patch" printf $"Interrupted by user; patch %s was not applied.\n" \ "$(print_patch "$patch")" >&2 exit 1 } colorize() { if [ -n "$opt_color" ]; then awk ' { if (/FAILED|hunks? ignored|can'\''t find file|file .* already exists|NOT MERGED/) print "'$color_patch_fail'" $0 "'$color_clear'" else if (/already applied$/) print "'$color_patch_fuzz'" $0 "'$color_clear'" else if (/^Hunk/) { sub(/^Hunk .* with fuzz [0-9]*/, "'$color_patch_fuzz'&'$color_clear'") sub(/offset -?[0-9]* lines?/, "'$color_patch_offs'&'$color_clear'") print } else print }' else cat fi } push_patch_args() { local patch=$1 if [ -z "$opt_reverse" ] then patch_args "$patch" else set -- $(patch_args "$patch") if [ "${*#-R}" != "$*" ] then echo "${*#-R}" else echo "$*" -R fi fi } apply_patch() { local patch=$1 patch_file=$2 local output [ -s "$patch_file" ] || return 0 set -- patch $QUILT_PATCH_OPTS $(push_patch_args "$patch") \ --backup --prefix="$QUILT_PC/$patch/" \ $no_reject_files $more_patch_args if [ "${patch_file:(-3)}" = ".gz" ] then gzip -cd "$patch_file" | "$@" 2>&1 elif [ "${patch_file:(-4)}" = ".bz2" ] then bzip2 -cd "$patch_file" | "$@" 2>&1 elif [ "${patch_file:(-3)}" = ".xz" ] then xz -cd "$patch_file" | "$@" 2>&1 elif [ "${patch_file:(-5)}" = ".lzma" ] then lzma -cd "$patch_file" | "$@" 2>&1 else "$@" -i "$patch_file" 2>&1 fi } rollback_patch() { local patch=$1 $QUILT_DIR/scripts/backup-files $silent_unless_verbose -r -B "$QUILT_PC/$patch/" - } cleanup_patch_output() { if [ -z "$opt_leave_rejects" ] then if [ -n "$opt_quiet" ]; then # In this case, patch does not allow us to find out # which file contains the rejects; it only tells us # which reject file is used. We use a single temporary # reject file, so this does not help us. awk ' { gsub(/ -- saving rejects to (file )?.*/, "") } { print } ' else awk ' /^patching file / { filename = substr($0, 15) } { gsub(/ -- saving rejects to (file )?.*/, " -- rejects in file " filename) } { print } ' fi else cat fi } add_patch() { local patch=$1 local patch_file=$(patch_file_name "$patch") local file status tmp printf $"Applying patch %s\n" "$(print_patch "$patch")" trap "interrupt $patch" SIGINT no_reject_files= if [ -z "$opt_leave_rejects" ]; then tmp=$(gen_tempfile) no_reject_files="-r $tmp" fi apply_patch "$patch" "$patch_file" status=$? trap "" SIGINT [ -n "$tmp" ] && rm -f $tmp if [ $status -eq 0 -o -n "$opt_force" ] then add_to_db "$patch" if [ $status -eq 0 ] then rm -f "$QUILT_PC/$patch~refresh" else touch "$QUILT_PC/$patch~refresh" fi if [ -e "$QUILT_PC/$patch" ] then touch "$QUILT_PC/$patch/.timestamp" else mkdir "$QUILT_PC/$patch" fi if ! [ -e "$patch_file" ] then printf $"Patch %s does not exist; applied empty patch\n" \ "$(print_patch "$patch")" elif [ -z "$(shopt -s nullglob ; echo "$QUILT_PC/$patch/"*)" ] then printf $"Patch %s appears to be empty; applied\n" \ "$(print_patch "$patch")" elif [ $status -ne 0 ] then printf $"Applied patch %s (forced; needs refresh)\n" \ "$(print_patch "$patch")" fi else rollback_patch "$patch" tmp=$(gen_tempfile) no_reject_files="-r $tmp" opt_reverse=1 if apply_patch "$patch" "$patch_file" > /dev/null 2> /dev/null then printf $"Patch %s can be reverse-applied\n" \ "$(print_patch "$patch")" else printf $"Patch %s does not apply (enforce with -f)\n" \ "$(print_patch "$patch")" fi rollback_patch "$patch" rm -f $tmp status=1 fi trap - SIGINT return $status } list_patches() { local top=$(top_patch) n=0 patch if [ -n "$top" ] then patches_after "$top" else cat_series fi \ | if [ -n "$opt_all" ] then cat else while read patch do if [ -n "$number" ] then if [ $n -eq $number ] then break fi n=$[$n+1] fi echo "$patch" if [ -z "$number" -a "$patch" = "$stop_at_patch" ] then break fi done fi } check_duplicate_patches() { local IFS=$'\n' local -a duplicates local patch duplicates=($((applied_patches ; printf $'%s\n' "${patches[@]}") \ | awk '{ if (lines[$0]++ == 1) print }')) [ ${#duplicates[@]} -ge 1 ] || return 0 for patch in "${duplicates[@]}" do printf $"Patch %s is already applied; check your series file\n" \ "$(print_patch "$patch")" done return 1 } options=`getopt -o fqvam::h --long fuzz:,merge::,leave-rejects,color:: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -f) opt_force=1 shift ;; -q) opt_quiet=1 shift ;; -v) opt_verbose=1 shift ;; -a) opt_all=1 shift ;; -h) usage -h ;; --fuzz) opt_fuzz=$2 shift 2 ;; -m | --merge) case "$2" in "" | merge) opt_merge=1 opt_merge_arg= ;; diff3) opt_merge=1 opt_merge_arg="=diff3" ;; *) usage ;; esac shift 2 ;; --leave-rejects) opt_leave_rejects=1 shift ;; --color) case "$2" in "" | always) opt_color=1 ;; auto | tty) opt_color= [ -t 1 ] && opt_color=1 ;; never) opt_color= ;; *) usage ;; esac shift 2 ;; --) shift break ;; esac done if [ $# -gt 1 -o \( -n "$opt_all" -a $# -ne 0 \) ] then usage fi if [ $# -eq 1 ] then if is_numeric "$1" then number=$1 else stop_at_patch=$1 fi else [ -z "$opt_all" ] && number=1 fi stop_at_patch=$(find_unapplied_patch "$stop_at_patch") || exit [ -z "$opt_verbose" ] && silent_unless_verbose=-s [ -n "$opt_force" ] && opt_leave_rejects=1 more_patch_args= [ -n "$opt_quiet" ] && more_patch_args="$more_patch_args -s" [ -z "$opt_force" -o -n "$opt_quiet" ] && more_patch_args="$more_patch_args -f" if [ -n "$opt_merge" ] then more_patch_args="$more_patch_args --merge$opt_merge_arg" fi [ -n "$opt_fuzz" ] && more_patch_args="$more_patch_args -F$opt_fuzz" top=$(top_patch) if [ -n "$top" -a -e "$QUILT_PC/$top~refresh" ] then printf $"The topmost patch %s needs to be refreshed first.\n" \ "$(print_patch "$top")" exit 1 fi patches=$(list_patches) # In theory, these patches can't be already applied. However in the case # of a generated or manually tweaked series file, this could happen and # cause havoc, so play it safe and check. check_duplicate_patches || exit 1 create_db for patch in $patches do if ! add_patch "$patch" then exit 1 fi [ -n "$opt_quiet" ] || echo done \ | cleanup_patch_output \ | colorize if [ ${PIPESTATUS[0]} -eq 0 ]; then set -- $patches printf $"Now at patch %s\n" "$(print_patch ${!#})" else exit 1 fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/refresh.in0000644000175000017500000002023212332477113016232 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] [--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-trailing-whitespace] [patch]\n" if [ x$1 = x-h ] then printf $" Refreshes the specified patch, or the topmost patch by default. Documentation that comes before the actual patch in the patch file is retained. It is possible to refresh patches that are not on top. If any patches on top of the patch to refresh modify the same files, the script aborts by default. Patches can still be refreshed with -f. In that case this script will print a warning for each shadowed file, changes by more recent patches will be ignored, and only changes in files that have not been modified by any more recent patches will end up in the specified patch. -p n Create a -p n style patch (-p0 or -p1 supported). -p ab Create a -p1 style patch, but use a/file and b/file as the original and new filenames instead of the default dir.orig/file and dir/file names. -u, -U num, -c, -C num Create a unified diff (-u, -U) with num lines of context. Create a context diff (-c, -C) with num lines of context. The number of context lines defaults to 3. -z[new_name] Create a new patch containing the changes instead of refreshing the topmost patch. If no new name is specified, \`-2' is added to the original patch name, etc. (See the fork command.) --no-timestamps Do not include file timestamps in patch headers. --no-index Do not output Index: lines. --diffstat Add a diffstat section to the patch header, or replace the existing diffstat section. -f Enforce refreshing of a patch that is not on top. --backup Create a backup copy of the old version of a patch as patch~. --sort Sort files by their name instead of preserving the original order. --strip-trailing-whitespace Strip trailing whitespace at the end of lines. " exit 0 else exit 1 fi } die() { local status=$1 [ -n "$tmp_patch" ] && rm -f $tmp_patch [ -n "$tmp_result" ] && rm -f $tmp_result [ -n "$workdir" ] && rm -rf $workdir exit $status } options=`getopt -o p:uU:cC:fz::h --long no-timestamps,diffstat,backup,sort \ --long no-index \ --long strip-trailing-whitespace -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" opt_format=-u while true do case "$1" in -p) opt_strip_level=$2 shift 2 ;; -f) opt_force=1 shift ;; -u|-c) opt_format=$1 shift ;; -U|-C) opt_format="$1 $2" shift 2 ;; -z) opt_fork=1 opt_new_name=$2 shift 2 ;; -h) usage -h ;; --no-timestamps) QUILT_NO_DIFF_TIMESTAMPS=1 shift ;; --no-index) QUILT_NO_DIFF_INDEX=1 shift ;; --diffstat) opt_diffstat=1 shift ;; --backup) QUILT_BACKUP=1 shift ;; --sort) opt_sort=1 shift ;; --strip-trailing-whitespace) opt_strip_whitespace=1 shift ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi QUILT_DIFF_OPTS="$QUILT_DIFF_OPTS $opt_format" patch=$(find_applied_patch "$1") || exit 1 # Properly handle spaces in file names saved_IFS=$IFS IFS=$'\n' if [ -z "$opt_sort" ] then files=( $(files_in_patch_ordered $patch) ) else files=( $(files_in_patch $patch | sort) ) fi IFS=$saved_IFS if [ -n "$opt_fork" -a $# -ne 0 ] then printf $"Can only refresh the topmost patch with -z currently\n" >&2 exit 1 fi if [ -n "$opt_fork" ]; then old_patch=$patch old_patch_args=$(patch_args "$old_patch") if [ -n "$opt_new_name" ] then patch=$opt_new_name else patch=$(next_filename "$patch") fi if [ -e "$(patch_file_name "$patch")" ]; then printf $"Patch %s exists already\n" "$(print_patch "$patch")" >&2 exit 1 fi fi if [ -z "$opt_strip_level" ] then opt_strip_level=$(patch_strip_level "$patch") fi case "$opt_strip_level" in 0 | 1) num_strip_level=$opt_strip_level ;; ab) num_strip_level=1 ;; *) printf $"Cannot refresh patches with -p%s, please specify -p0, -p1, or -pab instead\n" \ "$opt_strip_level" >&2 exit 1 ;; esac trap "die 1" SIGTERM if [ -n "$opt_fork" ]; then workdir=$(gen_tempfile -d $PWD/quilt) apply_patch_temporarily "$workdir" "$old_patch" || exit 1 fi tmp_patch=$(gen_tempfile) for file in "${files[@]}" do if [ -n "$opt_fork" ]; then old_file=$workdir/$file new_file=$file else old_file=$(backup_file_name "$patch" "$file") next_patch=$(next_patch_for_file "$patch" "$file") if [ -z "$next_patch" ] then new_file=$file else new_file=$(backup_file_name "$next_patch" "$file") files_were_shadowed=1 fi fi if ! diff_file "$file" "$old_file" "$new_file" then printf $"Diff failed on file '%s', aborting\n" "$new_file" >&2 die 1 fi if [ -n "$files_were_shadowed" -a -z "$opt_force" ] then printf $"More recent patches modify files in patch %s. Enforce refresh with -f.\n" "$(print_patch "$patch")" >&2 die 1 fi if [ -n "$files_were_shadowed" -a -n "$opt_strip_whitespace" ] then printf $"Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\n" >&2 fi done >> $tmp_patch if [ -n "$opt_fork" -a ! -s $tmp_patch ] then printf $"Nothing in patch %s\n" "$(print_patch "$patch")" >&2 die 1 fi # Check for trailing whitespace if [ -z "$opt_strip_whitespace" ] then $QUILT_DIR/scripts/remove-trailing-ws -n -p$num_strip_level \ < $tmp_patch else tmp_patch2=$(gen_tempfile) if $QUILT_DIR/scripts/remove-trailing-ws -p$num_strip_level \ < $tmp_patch > $tmp_patch2 then rm -f $tmp_patch tmp_patch=$tmp_patch2 fi fi # FIXME: no stripping of non-topmost patch !!! patch_file=$(patch_file_name "$patch") trap "" SIGINT tmp_result=$(gen_tempfile) || die 1 prev_patch_file=$patch_file [ -e "$prev_patch_file" ] || prev_patch_file=/dev/null if [ -n "$opt_diffstat" ] then cat_file "$prev_patch_file" | patch_header \ | awk ' function print_diffstat(arr, i) { if (system("diffstat '"$QUILT_DIFFSTAT_OPTS \ -p$num_strip_level \ $tmp_patch | sed -e s:^:"'" prefix ":")) exit 1 } { prefix="" if (index($0, "#") == 1) prefix="#" } /^#? .* \| *[1-9][0-9]* / { eat = eat $0 "\n" next } /^#? .* files? changed(, .* insertions?\(\+\))?(, .* deletions?\(-\))?/ \ { print_diffstat() diffstat_printed=1 eat = "" next } { print eat $0 eat = "" } END { printf "%s", eat if (!diffstat_printed) { print "---" print_diffstat() print prefix } } ' > $tmp_result else cat_file "$prev_patch_file" | patch_header \ > $tmp_result fi cat $tmp_patch >> $tmp_result mkdir -p $(dirname "$patch_file") if [ -e "$patch_file" ] && \ diff -q "$patch_file" $tmp_result > /dev/null then printf $"Patch %s is unchanged\n" "$(print_patch "$patch")" elif ( [ -z "$QUILT_BACKUP" -o ! -e "$patch_file" ] || \ mv "$patch_file" "$patch_file~" ) && \ cat_to_new_file "$patch_file" < $tmp_result then if [ -n "$opt_fork" ] then if ! insert_in_series "$patch" "$old_patch_args" then printf $"Failed to insert patch %s into file series\n" \ "$(print_patch "$patch")" >&2 rm -f "$patch_file" exit 1 fi if ! rm -rf "$QUILT_PC/$patch" || \ ! mv "$workdir" "$QUILT_PC/$patch" || \ ! echo "$patch" >> $QUILT_PC/applied-patches then printf $"Failed to create patch %s\n" \ "$(print_patch "$patch")" >&2 exit 1 fi printf $"Fork of patch %s created as %s\n" \ "$(print_patch "$old_patch")" \ "$(print_patch "$patch")" else if [ -s $tmp_patch ] then printf $"Refreshed patch %s\n" "$(print_patch "$patch")" else printf $"Nothing in patch %s\n" "$(print_patch "$patch")" fi fi touch "$QUILT_PC/$patch/.timestamp" else die 1 fi rm -f "$QUILT_PC/$patch~refresh" if ! change_db_strip_level -p$num_strip_level "$patch" then die 1 fi die 0 ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/remove.in0000644000175000017500000000421512332477113016074 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt remove [-P patch] {file} ...\n" if [ x$1 = x-h ] then printf $" Remove one or more files from the topmost or named patch. Files that are modified by patches on top of the specified patch cannot be removed. -P patch Remove named files from the named patch. " exit 0 else exit 1 fi } options=`getopt -o P:h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -P) opt_patch=$2 shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -lt 1 ] then usage fi patch=$(find_applied_patch "$opt_patch") || exit 1 status=0 for file in "$@" do if ! file_in_patch "$SUBDIR$file" "$patch" then printf $"File %s is not in patch %s\n" \ "$SUBDIR$file" "$(print_patch "$patch")" >&2 status=1 continue fi next_patch=$(next_patch_for_file "$patch" "$SUBDIR$file") if [ -n "$next_patch" ] then printf $"File %s modified by patch %s\n" \ "$SUBDIR$file" "$(print_patch "$next_patch")" status=1 continue fi # Restore file from backup if ! $QUILT_DIR/scripts/backup-files -r -t -s -B "$QUILT_PC/$patch/" "$SUBDIR$file" then printf $"Failed to remove file %s from patch %s\n" \ "$SUBDIR$file" "$(print_patch "$patch")" >&2 status=1 continue fi if [ -e "$(dirname "$QUILT_PC/$patch~refresh")" -a \ -e "$(patch_file_name "$patch")" ] then # The patch must be refreshed in order to get rid of the # patch permanently. touch "$QUILT_PC/$patch~refresh" fi printf $"File %s removed from patch %s\n" \ "$SUBDIR$file" "$(print_patch $patch)" done exit $status ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/rename.in0000644000175000017500000000411212332477113016042 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt rename [-P patch] new_name\n" if [ x$1 = x-h ] then printf $" Rename the topmost or named patch. -P patch Patch to rename. " exit 0 else exit 1 fi } move_file() { local old=$1 new=$2 newdir=$(dirname "$2") [ -d "$newdir" ] || mkdir -p "$newdir" || return 1 mv "$old" "$new" || return 1 rmdir -p "$(dirname "$old")" 2> /dev/null return 0 } options=`getopt -o P:h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -P) opt_patch=$2 shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 1 ] then usage fi patch=$(find_patch_in_series "$opt_patch") || exit 1 new_patch=${1#$QUILT_PATCHES/} if patch_in_series "$new_patch" || \ [ -d "$QUILT_PC/$new_patch" ] || \ [ -e "$(patch_file_name "$new_patch")" ] then printf $"Patch %s exists already, please choose a different name\n" \ "$(print_patch "$new_patch")" >&2 exit 1 fi if ( is_applied "$patch" && \ ( ! rename_in_db "$patch" "$new_patch" || \ ! move_file "$QUILT_PC/$patch" \ "$QUILT_PC/$new_patch" ) ) || \ ! rename_in_series "$patch" "$new_patch" || \ ( [ -e "$(patch_file_name "$patch")" ] && \ ! move_file "$(patch_file_name "$patch")" \ "$(patch_file_name "$new_patch")" ) then printf $"Renaming of patch %s to %s failed\n" \ "$(print_patch "$patch")" \ "$(print_patch "$new_patch")" >&2 exit 1 fi printf $"Patch %s renamed to %s\n" \ "$(print_patch "$patch")" \ "$(print_patch "$new_patch")" ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/revert.in0000644000175000017500000000471412332477113016112 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt revert [-P patch] {file} ...\n" if [ x$1 = x-h ] then printf $" Revert uncommitted changes to the topmost or named patch for the specified file(s): after the revert, 'quilt diff -z' will show no differences for those files. Changes to files that are modified by patches on top of the specified patch cannot be reverted. -P patch Revert changes in the named patch. " exit 0 else exit 1 fi } options=`getopt -o P:h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -P) opt_patch="$2" shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -lt 1 ] then usage fi patch=$(find_applied_patch "$opt_patch") || exit 1 status=0 for file in "${@/#/$SUBDIR}" do if ! file_in_patch "$file" $patch then printf $"File %s is not in patch %s\n" \ "$file" "$(print_patch $patch)" >&2 status=1 continue fi next_patch=$(next_patch_for_file $patch "$file") if [ -n "$next_patch" ] then printf $"File %s modified by patch %s\n" \ "$file" "$(print_patch $next_patch)" status=1 continue fi done [ $status -eq 0 ] || exit $status workdir=$(gen_tempfile -d $PWD) add_exit_handler "rm -rf $workdir" apply_patch_temporarily $workdir $patch "${@/#/$SUBDIR}" || exit 1 for file in ${*/#/$SUBDIR} do if [ -s "$workdir/$file" ] then if [ -e "$file" ] && diff -q "$workdir/$file" "$file" > /dev/null then printf $"File %s is unchanged\n" "$file" continue fi mkdir -p "$(dirname "$file")" cp -p "$workdir/$file" "$file" else if [ ! -e "$file" ] then printf $"File %s is unchanged\n" "$file" continue fi rm -f "$file" fi if [ $? -ne 0 ] then printf $"Failed to revert changes to %s in patch %s\n" \ "$file" "$(print_patch $patch)" >&2 status=1 else printf $"Changes to %s in patch %s reverted\n" \ "$file" "$(print_patch $patch)" fi done exit $status ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh:w quilt-0.63/quilt/series.in0000644000175000017500000000350512332477113016072 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt series [--color[=always|auto|never]] [-v]\n" if [ x$1 = x-h ] then printf $" Print the names of all patches in the series file. --color[=always|auto|never] Use syntax coloring (auto activates it only if the output is a tty). -v Verbose, more user friendly output. " exit 0 else exit 1 fi } cat_patches() { local color=$1 prefix=$2 shift 2 if [ $# -ge 1 ] then printf "$color$prefix$(patch_format)$color_clear\n" "$@" fi } options=`getopt -o vh --long color:: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -v) opt_verbose=1 shift ;; --color) case "$2" in "" | always) opt_color=1 ;; auto | tty) opt_color= [ -t 1 ] && opt_color=1 ;; never) opt_color= ;; *) usage ;; esac shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 0 ] then usage fi setup_pager if [ -n "$opt_verbose$opt_color" ] then [ -n "$opt_color" ] && setup_colors top=$(top_patch) cat_patches "$color_series_app" \ "${opt_verbose:++ }" $(patches_before $top) [ -n "$top" ] && cat_patches "$color_series_top" \ "${opt_verbose:+= }" $top cat_patches "$color_series_una" \ "${opt_verbose:+ }" $(patches_after $top) else cat_patches "" "" $(cat_series) fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/setup.in0000644000175000017500000001316012332477113015736 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns if [ -n "$SUBDIR" ] then cd $SUBDIR unset SUBDIR fi fi check_for_existing_directories() { local tag dir last_dir arg status=0 while read tag dir arg do [ "$dir" != "." -a "$dir" != "$last_dir" ] || continue if [ -e "$prefix$dir" ] then printf $"Directory %s exists\n" \ "$prefix$dir" >&2 status=1 fi last_dir=$dir done < $tmpfile return $status } check_for_existing_files() { local tag dir last_dir arg status=0 while read tag dir arg do [ "$tag" = "patch" -a "$dir" != "$last_dir" ] || continue if [ -e "$prefix$dir/$QUILT_PATCHES" ] then printf $"Directory %s exists\n" \ "$prefix$dir/$QUILT_PATCHES" >&2 status=1 fi if [ -e "$prefix$dir/$QUILT_SERIES" ] then printf $"File %s exists\n" \ "$prefix$dir/$QUILT_SERIES" >&2 status=1 fi last_dir=$dir done < $tmpfile return $status } create_symlink() { local target=$1 link=$2 up if [ "${target:0:1}" = / -o "${link:0:1}" = / ] then ln -s "$target" "$link" return fi set -- "$(echo "$PWD/$target" | \ sed -r -e 's://:/:g' \ -e ':again' \ -e 's:/[^/]+/\.\.(/|$):\1:g' \ -e 'tagain')" \ "$(echo "$PWD/$link" | \ sed -r -e 's://:/:g' \ -e ':again' \ -e 's:/[^/]+/\.\.(/|$):\1:g' \ -e 'tagain')" while [ "${1%%/*}" = "${2%%/*}" ] do set -- "${1#*/}" "${2#*/}" done up=$(echo "${2%/*}" | sed -re 's:[^/]+:..:g') set -- "${up:+$up/}$1" set -- "${1%/}" ln -s "${1:-.}" "$link" } usage() { printf $"Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] {specfile|seriesfile}\n" if [ x$1 = x-h ] then printf $" Initializes a source tree from an rpm spec file or a quilt series file. -d Optional path prefix for the resulting source tree. --sourcedir Directory that contains the package sources. Defaults to \`.'. -v Verbose debug output. --fuzz=N Set the maximum fuzz factor (needs rpm 4.6 or later). " exit 0 else exit 1 fi } options=`getopt -o d:vh --long sourcedir:,fuzz: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" prefix= sourcedir= while true do case "$1" in -d) prefix=${2%/}/ shift 2 ;; -h) usage -h ;; -v) verbose=-v shift ;; --sourcedir) sourcedir=${2%/}/ shift 2 ;; --fuzz) opt_fuzz="--fuzz $2" shift 2 ;; --) shift break ;; esac done if [ $# -ne 1 ] then usage fi [ -n "$sourcedir" ] && opt_sourcedir="--sourcedir $sourcedir" tmpfile=$(gen_tempfile) add_exit_handler "rm -f $tmpfile" case "$1" in *.spec) spec_file=$1 if ! $QUILT_DIR/scripts/inspect $verbose $opt_sourcedir $opt_fuzz \ "$spec_file" 2>&1 > $tmpfile then printf $"The %%prep section of %s failed; results may be incomplete\n" "$spec_file" if [ -z "$verbose" ] then printf $"The -v option will show rpm's output\n" fi fi ;; *) series_file=$1 # parse series file while read line; do set -- $line case "$@" in "# Sourcedir: "*) shift 2 tar_dir="$@" tar_dir=${tar_dir// /\\ } ;; "# Source: "*) shift 2 source="$@" filetype="$(file -b "$source")" case "$filetype" in Zip*) echo "unzip ${tar_dir:-.} ${source// /\\ }" ;; *) echo "tar ${tar_dir:-.} ${source// /\\ }" ;; esac ;; "# Patchdir: "*) shift 2 patch_dir="$@" patch_dir=${patch_dir// /\\ } ;; ''|'#'*) ;; *) echo "patch ${patch_dir:-.} $@" ;; esac done < "$series_file" > $tmpfile ;; esac # Make sure that unpacking will not overwrite anything check_for_existing_directories || exit 1 while read tag dir arg1 arg2 do case "$tag" in tar) tarball=$sourcedir$arg1 if [ ! -e "$tarball" ] then printf $"File %s not found\n" "$tarball" >&2 exit 1 fi printf $"Unpacking archive %s\n" "$tarball" mkdir -p "${prefix:-.}" "$prefix$dir" cat_file "$tarball" \ | tar xf - -C "$prefix$dir" ;; unzip) tarball=$sourcedir$arg1 if [ ! -e "$tarball" ] then printf $"File %s not found\n" "$tarball" >&2 exit 1 fi printf $"Unpacking archive %s\n" "$tarball" mkdir -p "${prefix:-.}" "$prefix$dir" unzip -qqo "$tarball" -d "$prefix$dir" ;; esac done < $tmpfile if ! check_for_existing_files then echo $"Trying alternative patches and series names..." >&2 QUILT_PATCHES=quilt_patches QUILT_SERIES=quilt_series check_for_existing_files || exit 1 fi while read tag dir arg1 arg2 do case "$tag" in tar|unzip) tar_dir="$dir" [ "$tar_dir" = . ] && tar_dir= tar_file="$arg1" ;; patch) if [ ! -e "$prefix$dir/$QUILT_PATCHES" ] then create_symlink "$sourcedir" "$prefix$dir/$QUILT_PATCHES" (cd "$prefix$dir" && create_db) fi if [ -n "$series_file" ] then [ -e "$prefix$dir/$QUILT_SERIES" ] \ || create_symlink "$series_file" \ "$prefix$dir/$QUILT_SERIES" else if ! [ -e "$prefix$dir/$QUILT_SERIES" ] then ( echo "# Patch series file for quilt," \ "created by ${0##*/}" [ -n "$tar_dir" ] \ && echo "# Sourcedir: $tar_dir" [ -n "$tar_file" ] \ && echo "# Source: $tar_file" echo "# Patchdir: $dir" echo "#" ) > "$prefix$dir/$QUILT_SERIES" fi echo "$arg1" $arg2 >> "$prefix$dir/$QUILT_SERIES" fi ;; esac done < $tmpfile ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/snapshot.in0000644000175000017500000000315112332477113016434 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt snapshot [-d]\n" if [ x$1 = x-h ] then printf $" Take a snapshot of the current working state. After taking the snapshot, the tree can be modified in the usual ways, including pushing and popping patches. A diff against the tree at the moment of the snapshot can be generated with \`quilt diff --snapshot'. -d Only remove current snapshot. " exit 0 else exit 1 fi } options=`getopt -o dh -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -d) opt_remove=1 shift ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 0 ] then usage fi snap_subdir=.snap # Clean up from previous snapshot rm -rf $QUILT_PC/$snap_subdir if [ -n "$opt_remove" ] then exit 0 fi # Save current working state create_db mkdir -p $QUILT_PC/$snap_subdir for patch in $(applied_patches); do files_in_patch $patch done \ | awk ' # filter out duplicates { if (seen[$0]) next seen[$0] = 1 } { print } ' \ | $QUILT_DIR/scripts/backup-files -c -s -f - -B "$QUILT_PC/$snap_subdir/" ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/top.in0000644000175000017500000000175112332477113015403 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt top\n" if [ x$1 = x-h ] then printf $" Print the name of the topmost patch on the current stack of applied patches. " exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 0 ] then usage fi top=$(find_top_patch) || exit 2 print_patch $top ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/unapplied.in0000644000175000017500000000236012332477113016557 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt unapplied [patch]\n" if [ x$1 = x-h ] then printf $" Print a list of patches that are not applied, or all patches that follow the specified patch in the series file. " exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage elif [ $# -eq 1 ] then start=$(find_patch_in_series "$1") || exit 1 patch=$(patch_after "$start") [ -n "$start" -a -z "$patch" ] && exit else patch=$(find_unapplied_patch) || exit 1 fi setup_pager printf "$(patch_format)\n" "$patch" $(patches_after "$patch") ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/upgrade.in0000644000175000017500000000470612332477113016233 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. # Don't abort in version check. skip_version_check=1 # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt upgrade\n" if [ x$1 = x-h ] then printf $" Upgrade the meta-data in a working tree from an old version of quilt to the current version. This command is only needed when the quilt meta-data format has changed, and the working tree still contains old-format meta-data. In that case, quilt will request to run \`quilt upgrade'. " exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi if version_check then printf $"The quilt meta-data in %s are already in the version %s format; nothing to do\n" "$QUILT_PC/" "$DB_VERSION" exit 0 fi printf $"Converting meta-data to version %s\n" "$DB_VERSION" # Previously we have stripped standard patch extensions (.dif .diff # .patch .gz .bz2) of patch names; we have used the mangled names in # .pc/applied-patches, .pc/$patch/, but not in the series file. for patch in $(applied_patches) do proper_name="$(grep "^$(quote_bre $patch)"'\(\|\.patch\|\.diff?\)\(\|\.gz\|\.bz2\)\([ \t]\|$\)' $SERIES)" proper_name=${proper_name#$QUILT_PATCHES/} proper_name=${proper_name%% *} if [ -z "$proper_name" ] then failed=1 break fi if [ "$patch" != "$proper_name" -a -d $QUILT_PC/$patch ] \ && grep -q "^$(quote_bre $patch)\$" \ $QUILT_PC/applied-patches then mv $QUILT_PC/$patch $QUILT_PC/$proper_name \ || failed=1 rename_in_db $patch $proper_name \ || failed=1 [ -z "$failed" ] || break fi done if [ -n "$failed" ] then printf $"Conversion failed\n" >&2 printf $" Please remove all patches using \`quilt pop -a' from the quilt version used to create this working tree, or remove the %s directory and apply the patches from scratch.\n" "$QUILT_PC" >&2 exit 1 fi echo $DB_VERSION > $QUILT_PC/.version ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/scripts/patchfns.in0000644000175000017500000004577412332477113020113 0ustar mquinsonmquinson# This file contains the common functions used in all quilt script # It is meant to be sourced by bash scripts. # This script 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. # # See the COPYING and AUTHORS files for more details. export TEXTDOMAIN=quilt export TEXTDOMAINDIR=@LOCALEDIR@ : ${LC_CTYPE:=$LANG} : ${LC_MESSAGES:=$LANG} ORIGINAL_LANG=$LANG export LANG=POSIX export QUILT_PATCHES QUILT_PC SUBDIR SERIES DB DB_VERSION=2 : ${QUILT_PC:=.pc} # Support compatibility layer if [ -d $QUILT_DIR/compat ] then export PATH="$QUILT_DIR/compat:$PATH" fi unset CDPATH shopt -s dotglob if [ -e "$QUILTRC" ] then source "$QUILTRC" fi # Add default arguments for this command if [ -n "$QUILT_COMMAND" ]; then args="QUILT_$(echo $QUILT_COMMAND | tr a-z A-Z)_ARGS" eval set -- ${!args} \"\$@\" unset args fi . $QUILT_DIR/scripts/utilfns # ======================================================== declare -a exit_handlers add_exit_handler() { exit_handlers[${#exit_handlers[@]}]=$1 } remove_exit_handler() { declare -a handlers local h for h in "${exit_handlers[@]}" do [ "$h" = "$1" ] && continue handlers[${#handlers[@]}]=$h done exit_handlers=( "${handlers[@]}" ) } run_exit_handlers() { local h for h in "${exit_handlers[@]}" do eval $h done } trap run_exit_handlers EXIT # ======================================================== # Join multiple stings using the given separator. array_join() { local sep=$1 str=$2 shift 2 printf %s "$str" for str in "$@" do printf %s%s "$sep" "$str" done } # Quote a string for use in a basic regular expression. quote_bre() { echo "$1" | sed -e 's:\([][^$/.*\\]\):\\\1:g' } # Quote a string for use in an extended regular expression. quote_re() { echo "$1" | sed -e 's:\([][?{(|)}^$/.+*\\]\):\\\1:g' } # Quote a string for use in a globing pattern. quote_glob() { echo "$1" | sed -e 's:\([][*?\\]\):\\\1:g' } patch_file_name() { echo "$QUILT_PATCHES/$1" } # The -pN option and possibly others that should be passed to patch. patch_args() { local patch=$1 if [ -e $SERIES ] then awk ' {sub(/(^|[ \t]+)#.*/, "") } $1 == "'"$patch"'" \ { p_printed=0 for (i=2; i<=NF; i++) { print $i if ($i ~ /^-p/) p_printed=1 } if (!p_printed) print "-p1" ; exit } ' $SERIES fi } patch_strip_level() { local patch=$1 i for i in $(patch_args $patch) do case $i in -p*) echo ${i:2} return ;; esac done echo "1" } # Also remove -R if present. change_db_strip_level() { local level=$1 patch=$2 if [ x$level != x-p1 ] then level="$level" else level="" fi if [ -e $SERIES ] then local tmpfile=$(gen_tempfile) awk ' function remove_arg(nr, j) { for (j=nr; j=nr; j--) $(j+1)=$j $nr=value } /^'"$(quote_re $patch)"'([ \t]|$)/ \ { p_printed=0 for (i=2; i<=NF && $i !~ /^#/; i++) { if ($i ~ /^-p/) { if ("'"$level"'" == "") remove_arg(i--) else $i="'"$level"'" p_printed=1 continue } if ($i == "-R") { remove_arg(i--) continue } } if (!p_printed && "'"$level"'" != "") insert_arg(2, "'"$level"'") } { print } ' $SERIES > $tmpfile if ! cmp $SERIES $tmpfile >/dev/null 2>/dev/null then cat $tmpfile > $SERIES fi rm -f $tmpfile else return 1 fi } patch_in_series() { local patch=$1 if [ -e $SERIES ] then grep -q "^$(quote_bre $patch)\([ \t]\|$\)" $SERIES else return 1 fi } # Insert new patch after topmost patch insert_in_series() { local patch=$1 patch_args=$2 local before tmpfile if [ -e "$SERIES" -a ! -f "$SERIES" ]; then printf $"%s is not a regular file\n" "$SERIES" >&2 return 1 fi before=${3-$(patch_after "$(top_patch)")} if [ -n "$patch_args" ] then patch_args=" $patch_args" fi tmpfile=$(gen_tempfile) || return 1 mkdir -p $(dirname $SERIES) if [ -n "$before" ] then awk ' /^'"$(quote_re $before)"'([ \t]|$)/ \ { print "'"$patch$patch_args"'" } { print } ' "$SERIES" > $tmpfile status=$? if [ $status -ne 0 ] then rm -f $tmpfile return 1 fi else if [ -e "$SERIES" ] then cat "$SERIES" > $tmpfile fi echo "$patch$patch_args" >> $tmpfile fi cat $tmpfile > "$SERIES" rm -f $tmpfile } remove_from_series() { local patch=$1 tmpfile=$(gen_tempfile) || return 1 awk ' ! /^'"$(quote_re $patch)"'([ \t]|$)/ \ { print } ' $SERIES > $tmpfile if [ $? -ne 0 ] then rm -f $tmpfile return 1 fi cat $tmpfile > $SERIES rm -f $tmpfile } rename_in_series() { local from=$1 to=$2 tmpfile=$(gen_tempfile) || return 1 awk ' /^'"$(quote_re $from)"'([ \t]|$)/ \ { sub(/'"$(quote_re $from)"'/, "'"${to//\"/\\\"}"'") good=1 } { print } END { exit(! good) } ' $SERIES > $tmpfile if [ $? -ne 0 ] then rm -f $tmpfile return 1 fi cat $tmpfile > $SERIES rm -f $tmpfile } rename_in_db() { local from=$1 to=$2 local tmpfile tmpfile=$(gen_tempfile) || return 1 awk ' /^'"$(quote_re $from)"'$/ \ { sub(/'"$(quote_re $from)"'/, "'"${to//\"/\\\"}"'") good=1 } { print } END { exit(! good) } ' $DB > $tmpfile if [ $? -eq 0 ] then cat $tmpfile > $DB rm -f $tmpfile else rm -f $tmpfile return 1 fi } backup_file_name() { local patch=$1 while [ $# -gt 1 ] do echo "$QUILT_PC/$patch/$2" shift done } cat_series() { if [ -e $SERIES ] then sed -e '/^#/d' -e 's/^[ '$'\t'']*//' \ -e 's/[ '$'\t''].*//' -e '/^$/d' $SERIES else return 1 fi } top_patch() { local patch=$(tail -n 1 $DB 2>/dev/null) [ -n "$patch" ] && echo "$patch" } is_numeric() { echo $1 | grep -q '^[0-9]*$' } is_applied() { local patch=$1 [ -e $DB ] || return 1 grep -q "^$(quote_bre $patch)\$" $DB } applied_patches() { [ -e $DB ] || return 1 cat $DB } applied_before() { local patch=$1 if [ -n "$patch" ] then awk ' $0 == "'"$patch"'" { exit } { print } ' $DB fi } patches_before() { local patch=$1 if [ -n "$patch" ] then cat_series \ | awk ' $0 == "'"$patch"'" { exit } { print } ' fi } patches_after() { local patch=$1 if [ -n "$patch" ] then cat_series \ | awk ' seen == 1 { print } $0 == "'"$patch"'" { seen=1 } ' else cat_series fi } patch_after() { local patch="$1" patch=$(patches_after "$patch" | head -n 1) [ -n "$patch" ] && echo "$patch" } # List all patches that have been applied on top of patch $1 patches_on_top_of() { local patch=$1 [ -e $DB ] || return awk ' $0 == "'"$patch"'" { seen=1 ; next } seen == 1 { print } ' $DB } # Print the name of the patch that modified the file $2 next after # patch $1, or print nothing if patch $1 is on top. next_patch_for_file() { local patch=$1 file=$2 local patches_on_top=$(patches_on_top_of $patch) if [ -n "$patches_on_top" ] then for patch in $patches_on_top do if file_in_patch "$file" $patch then echo $patch break fi done fi } add_to_db() { echo $1 >> $DB } remove_from_db() { local patch=$1 local tmpfile if tmpfile=$(gen_tempfile) then grep -v "^$(quote_bre $patch)\$" $DB > $tmpfile cat $tmpfile > $DB rm -f $tmpfile [ -s $DB ] || rm -f $DB fi } find_first_patch() { local patch=$(cat_series | head -n 1) if [ -z "$patch" ] then if [ -e "$SERIES" ] then printf $"No patches in series\n" >&2 else printf $"No series file found\n" >&2 fi return 1 fi echo "$patch" } find_last_patch() { local patch=$(cat_series | tail -n 1) if [ -z "$patch" ] then if [ -e "$SERIES" ] then printf $"No patches in series\n" >&2 else printf $"No series file found\n" >&2 fi return 1 fi echo "$patch" } find_top_patch() { if ! top_patch then if find_first_patch > /dev/null then printf $"No patches applied\n" >&2 fi return 1 fi } find_patch() { local name="$1" if [ -e "$SERIES" ] then if ! [ -f "$SERIES" ] then printf $"%s is not a regular file\n" "$SERIES" >&2 return 1 fi local patch=${1#$SUBDIR_DOWN$QUILT_PATCHES/} local bre=$(quote_bre "$patch") set -- $(sed -e "/^$bre\(\|\.patch\|\.diff\?\)\(\|\.gz\|\.bz2\|\.xz\|\.lzma\)\([ "$'\t'"]\|$\)/!d" \ -e 's/[ '$'\t''].*//' $SERIES) if [ $# -eq 1 ] then echo $1 return 0 else # We may have an exact match, which overrides # extension expansion while [ $# -gt 0 ] do if [ $1 = "$patch" ] then echo $1 return 0 fi shift done fi fi # Finding the first patch will error when the series is empty if [ -n "$(find_first_patch)" ] then printf $"Patch %s is not in series\n" "$name" >&2 fi return 1 } find_patch_in_series() { local name="$1" if [ -n "$name" ] then find_patch "$name" else find_top_patch fi } find_applied_patch() { local name="$1" if [ -n "$name" ] then local patch patch=$(find_patch "$name") || return 1 if ! is_applied "$patch" then printf $"Patch %s is not applied\n" \ "$(print_patch $patch)" >&2 return 1 fi echo "$patch" else find_top_patch fi } find_unapplied_patch() { local name="$1" if [ -n "$name" ] then local patch patch=$(find_patch "$name") || return 1 if is_applied "$patch" then printf $"Patch %s is currently applied\n" \ "$(print_patch $patch)" >&2 return 2 fi echo "$patch" else local start if start=$(top_patch) then patch_after "$start" else find_first_patch || return 2 fi if [ $? -ne 0 ] then printf $"File series fully applied, ends at patch %s\n" \ "$(print_patch $start)" >&2 return 2 fi fi } file_in_patch() { local file=$1 patch=$2 [ -f "$QUILT_PC/$patch/$file" ] } files_in_patch() { local patch="$1" local path="$QUILT_PC/$patch" if [ -d "$path" ] then find "$path" -type f \ -a ! -path "$(quote_glob "$path")/.timestamp" | sed -e "s/$(quote_bre "$path")\///" fi } filenames_in_patch() { local patch=$1 local patch_file=$(patch_file_name $patch) if [ -e "$patch_file" ] then local strip=$(patch_strip_level $patch) [ "$strip" = ab ] && strip=1 awk ' ($1 == "+++" || $1 == "---" || $1 == "***") && \ $3 != "----" && $3 != "****" \ { sub(/\t.*/, "") sub(/^... /, "") for (n=0 ; n<'"$strip"'; n++) sub(/^([^\/]+\/)/, "") print $0 }' $patch_file fi } files_in_patch_ordered() { local patch=$1 ( files_in_patch $patch | sort echo "-" filenames_in_patch $patch ) | awk ' $1 == "-" { out=1 ; next } !out { files[$0]=1 new_files[++n]=$0 } out { if ($0 in files && !($0 in printed)) { print $0 printed[$0]=1 } } END { for (i=1; i<=n; i++) if (!(new_files[i] in printed)) print new_files[i] } ' } diff_file() { local file=$1 old_file=$2 new_file=$3 local index old_hdr old_date new_hdr new_date line : ${opt_strip_level:=1} if [ $opt_strip_level = ab ] then old_hdr=a/$file new_hdr=b/$file elif [ $opt_strip_level -eq 0 ] then old_hdr=$file.orig new_hdr=$file else local dir=$(basename $PWD) old_hdr=$dir.orig/$file new_hdr=$dir/$file fi index=$new_hdr if [ -s "$old_file" ] then [ -n "$QUILT_NO_DIFF_TIMESTAMPS" ] \ || old_date=$'\t'$(date +'%Y-%m-%d %H:%M:%S.%N %z' \ -r "$old_file") else old_file=/dev/null old_hdr=/dev/null [ -n "$QUILT_NO_DIFF_TIMESTAMPS" ] \ || old_date=$'\t'"1970-01-01 00:00:00.000000000 +0000" fi if [ -e "$new_file" ] then [ -n "$QUILT_NO_DIFF_TIMESTAMPS" ] \ || new_date=$'\t'$(date +'%Y-%m-%d %H:%M:%S.%N %z' \ -r "$new_file") else [ $opt_strip_level = 0 ] \ && old_hdr=$new_hdr new_file=/dev/null new_hdr=/dev/null [ -n "$QUILT_NO_DIFF_TIMESTAMPS" ] \ || new_date=$'\t'"1970-01-01 00:00:00.000000000 +0000" fi diff $QUILT_DIFF_OPTS \ --label "$old_hdr$old_date" --label "$new_hdr$new_date" \ "$old_file" "$new_file" \ | if read line then if [ -z "$QUILT_NO_DIFF_INDEX" ] then echo "Index: $index" echo "===================================================================" fi echo "$line" cat fi # Test the return value of diff, and propagate the error retcode if any if [ ${PIPESTATUS[0]} == 2 ] then return 1 fi } cat_file() { local filename for filename in "$@" do if [ -e "$filename" ] then case "$filename" in *.gz|*.tgz) gzip -cd "$filename" ;; *.bz2) bzip2 -cd "$filename" ;; *.xz) xz -cd "$filename" ;; *.lzma) lzma -cd "$filename" ;; *) cat "$filename" ;; esac fi done } cat_to_new_file() { local filename="$1" [ -e "$filename" ] && rm -f "$filename" case "$filename" in *.gz) gzip -c ;; *.bz2) bzip2 -c ;; *.xz) xz -c ;; *.lzma) lzma -c ;; *) cat ;; esac \ > "$filename" } patch_header() { awk ' /^(---|\*\*\*|Index:)[ \t][^ \t]|^diff -/ \ { exit } { print } ' } patch_body() { awk ' !body && /^(---|\*\*\*|Index:)[ \t][^ \t]|^diff -/ \ { body=1 } body { print } ' } strip_diffstat() { awk ' /#? .* \| / \ { eat = eat $0 "\n" next } /^#? .* files? changed(, .* insertions?\(\+\))?(, .* deletions?\(-\))?/ \ { eat = "" next } { print eat $0 eat = "" } ' } in_array() { local a=$1 while [ $# -gt 1 ] do shift [ "$a" = "$1" ] && return 0 done return 1 } first_modified_by() { local file=$1 patch local -a patches if [ $# -eq 0 ] then patches=( $(applied_patches) ) else shift patches=( "$@" ) fi for patch in ${patches[@]} do if [ -f "$QUILT_PC/$patch/$file" ] then echo $patch return 0 fi done return 1 } apply_patch_temporarily() { local workdir=$1 patch=$2 patch_file patch_args patch_file=$(patch_file_name "$patch") patch_args=$(patch_args "$patch") shift 2 local prefix=$QUILT_PC/$patch/ [ ${prefix:0:1} == / ] || prefix=$PWD/$prefix if ! ( cd $workdir && \ $QUILT_DIR/scripts/backup-files -B $prefix -r -k -s "${@:--}" ) then printf $"Failed to copy files to temporary directory\n" >&2 return 1 fi if [ -s $patch_file ] then if ! cat_file $patch_file \ | patch -d $workdir $QUILT_PATCH_OPTS $patch_args \ --no-backup-if-mismatch -f \ >/dev/null 2>/dev/null then # Generating a relative diff for a subset of files in # the patch will fail. Also, if a patch was force # applied, we know that it won't apply cleanly. In # all other cases, print a warning. if [ ! -e $QUILT_PC/$patch~refresh -a $# -eq 0 ] then printf $"Failed to patch temporary files\n" >&2 return 1 fi fi fi } next_filename() { local patch=$1 base num base=$(echo "$patch" \ | sed -r -e 's:(\.gz|\.bz2|\.xz|\.lzma)$::' -e 's:(\.diff?|\.patch)$::') num=$(echo "$base" | sed -nre 's:.*-([0-9]+)$:\1:'p) [ -n "$num" ] || num=1 echo "${base%-$num}-$((num+1))${patch#$base}" } create_db() { if ! [ -e $QUILT_PC ] then mkdir -p $QUILT_PC echo $DB_VERSION > $QUILT_PC/.version fi if ! [ -e $QUILT_PC/.quilt_patches ] then echo "$QUILT_PATCHES" > $QUILT_PC/.quilt_patches fi if ! [ -e $QUILT_PC/.quilt_series ] then echo "$QUILT_SERIES" > $QUILT_PC/.quilt_series fi } version_check() { [ -e $QUILT_PC ] || return 0 if [ -e $QUILT_PC/.version ] then version="$(< $QUILT_PC/.version)" if [ "$version" -gt $DB_VERSION ] then printf $"The quilt meta-data in this tree has version %s, but this version of quilt can only handle meta-data formats up to and including version %s. Please pop all the patches using the version of quilt used to push them before downgrading.\n" "$version" "$DB_VERSION" >&2 exit 1 elif [ "$version" = $DB_VERSION ] then return 0 fi fi return 1 } print_patch() { echo "${QUILT_PATCHES_PREFIX:+$SUBDIR_DOWN$QUILT_PATCHES/}$1" } # Generate a format suitable to print patch names with printf patch_format() { local prefix=${QUILT_PATCHES_PREFIX:+$SUBDIR_DOWN$QUILT_PATCHES/} echo -n "${prefix/\%/%%}%s" } setup_colors() { local C=diff_hdr=32:diff_add=36:diff_mod=35:diff_rem=35:diff_hunk=33:diff_ctx=35:diff_cctx=33:patch_offs=33:patch_fuzz=35:patch_fail=31:series_app=32:series_top=33:series_una=00:clear=00 [ -n "$QUILT_COLORS" ] && C="$C:$QUILT_COLORS" C=${C//=/=\'$'\e'[} C=color_${C//:/m\'; color_}m\' eval $C } quilt_command() { local command=$1 shift QUILT_COMMAND="" bash $BASH_OPTS -c "${SUBDIR:+cd $SUBDIR;} . $QUILT_DIR/$command" "quilt $command" "$@" } declare pager_fifo pager_fifo_dir pager_pid wait_for_pager() { exec >&- wait $pager_pid rm $pager_fifo 2>/dev/null rmdir $pager_fifo_dir 2>/dev/null } wait_for_pager_signal() { remove_exit_handler wait_for_pager wait_for_pager trap - INT HUP TERM QUIT } # Spawn pager process and redirect the rest of our output to it setup_pager() { test -t 1 || return 0 # QUILT_PAGER = QUILT_PAGER | GIT_PAGER | PAGER | less -R # NOTE: QUILT_PAGER='' is significant QUILT_PAGER=${QUILT_PAGER-${GIT_PAGER-${PAGER-less -R}}} [ -z "$QUILT_PAGER" -o "$QUILT_PAGER" = "cat" ] && return 0 export LESS="${LESS:-FRSX}" # NOTE: with "exec > >($pager)" there is no way to get the pid of the # pager so we can't wait for it to complete. Otherwise we wouldn't # need temporary files here. Alternatively, in recent versions of # bash, a coprocess could be used instead. pager_fifo_dir="$(gen_tempfile -d)" pager_fifo="$pager_fifo_dir/0" mkfifo -m 600 "$pager_fifo" $QUILT_PAGER < "$pager_fifo" & pager_pid=$! exec > "$pager_fifo" trap wait_for_pager_signal INT HUP TERM QUIT add_exit_handler wait_for_pager } # # If the working directory does not contain a $QUILT_PATCHES directory, # quilt searches for its base directory up the directory tree. If no # $QUILT_PATCHES directory exists, the quilt operations that create # patches will create $QUILT_PATCHES in the current working directory. # # When quilt is invoked from a directory below the base directory, it # changes into the base directory, and sets $SUBDIR to the relative # path from the base directory to the directory in which it was # invoked. (e.g., if quilt is invoked in /usr/src/linux/drivers/net # and the base direcory is /usr/src/linux, $SUBDIR is set to # drivers/net/. unset SUBDIR SUBDIR_DOWN if ! [ -d "$QUILT_PC" -o -d "${QUILT_PATCHES:-patches}" ] then basedir=$PWD while [ -n "$basedir" ] do basedir=${basedir%/*} down=$down../ if [ -d "$basedir/$QUILT_PC" -o -d "$basedir/${QUILT_PATCHES:-patches}" ] then SUBDIR="${PWD#$basedir/}/" SUBDIR_DOWN=$down if ! cd $basedir/ then echo "Cannot change into parent directory $basedir/" >&2 exit 1 fi break fi done unset basedir down fi if [ -r $QUILT_PC/.quilt_patches ] then : ${QUILT_PATCHES:=$(< $QUILT_PC/.quilt_patches)} else : ${QUILT_PATCHES:=patches} fi if [ -r $QUILT_PC/.quilt_series ] then : ${QUILT_SERIES:=$(< $QUILT_PC/.quilt_series)} else : ${QUILT_SERIES:=series} fi if [ "${QUILT_SERIES:0:1}" = / ] then SERIES=$QUILT_SERIES elif [ -f $QUILT_PC/$QUILT_SERIES ] then SERIES=$QUILT_PC/$QUILT_SERIES elif [ -f $QUILT_SERIES ] then SERIES=$QUILT_SERIES else SERIES=$QUILT_PATCHES/$QUILT_SERIES fi DB="$QUILT_PC/applied-patches" if [ -z "$skip_version_check" ] && ! version_check then printf $"The working tree was created by an older version of quilt. Please run 'quilt upgrade'.\n" >&2 exit 1 fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/scripts/inspect.in0000644000175000017500000001547412332477113017744 0ustar mquinsonmquinson#! @BASH@ # This script 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. # # See the COPYING and AUTHORS files for more details. : ${QUILT_DIR=@QUILT_DIR@} if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns cd ${SUBDIR:-.} usage() { echo "Usage: ${0##*/} [--fuzz=N] specfile" exit 1 } options=$(getopt -o v --long sourcedir:,fuzz: -n "${0##*/}" -- "$@") || exit eval set -- "$options" sourcedir= while true do case "$1" in -v) verbose=1 shift ;; --sourcedir) sourcedir=${2%/}/ shift 2 ;; --fuzz) # Only works with rpm 4.6 and later DEFINE_FUZZ="%define _default_patch_fuzz $2" shift 2 ;; --) shift break ;; esac done [ "${sourcedir:0:1}" = / ] || sourcedir=$PWD/$sourcedir specfile=$1 if [ $# -ne 1 -o ! -f "$specfile" ] then usage fi if [ "${specfile:0:1}" = / ] then specdir=$(dirname "$specfile") specfile=${specfile##*/} else specdir=$PWD fi tmpdir="$(gen_tempfile -d ${VARTMPDIR:-/var/tmp}/${0##*/})" mkdir -p $tmpdir || exit 1 add_exit_handler "rm -rf $tmpdir" mkdir -p $tmpdir/build mkdir -p $tmpdir/bin # Redirect file descriptors # 5 is used in verbose mode, 4 in non-verbose mode, and 2 for both (real errors) if [ -n "$verbose" ] then exec 3>&1 5>&2 4>/dev/null else exec 3>&1 4>&2 5>/dev/null fi # create md5 sums, also for uncompressed files echo -n "### md5sum: " >&4 shopt -s nullglob for file in $sourcedir/* do basename=${file##*/} case "$basename" in ready|bigpack|MD5SUMS|MD5SUMS.meta|*.spec|*.changes) continue ;; esac [ -f "$file" ] || continue echo -n "." >&4 echo "md5sum < $file" >&5 set -- $(md5sum < "$file") echo "$1 $basename" case "$file" in *.lzma) # file doesn't reliably recognize lzma-compressed files filetype="lzma" ;; *.xz) # old versions of file don't know about xz-compressed # files filetype="xz" ;; *) filetype="$(file -b "$file")" ;; esac case "$filetype" in compress*|gzip*) echo -n "g" >&4 echo "gzip -cd $file | md5sum" >&5 set -- $(gzip -cd "$file" | md5sum) echo "$1 $basename" ;; bzip2*) echo -n "b" >&4 echo "bzip2 -cd $file | md5sum" >&5 set -- $(bzip2 -cd "$file" | md5sum) echo "$1 $basename" ;; xz*|XZ*) echo -n "x" >&4 echo "xz -cd $file | md5sum" >&5 set -- $(xz -cd "$file" | md5sum) echo "$1 $basename" ;; lzma*) echo -n "l" >&4 echo "lzma -cd $file | md5sum" >&5 set -- $(lzma -cd "$file" | md5sum) echo "$1 $basename" ;; esac done > $tmpdir/md5sums echo >&4 shopt -u nullglob # wrapper script for patch and tar cat <<-'EOF' > $tmpdir/bin/wrapper #! @BASH@ # find original data file by md5sum original_file() { local file=$1 md5sum set -- $(md5sum < $file) md5sum=$1 while read md5sum_ file_ do if [ "$md5sum" = "$md5sum_" ] then echo ${file_#\*} return 0 fi done < $tmpdir/md5sums # Try harder if ! [ -e $tmpdir/more-md5sums ] then ( cd $RPM_BUILD_DIR find . -type f \ | sed -e 's:^.\/::' \ | xargs md5sum \ ) > $tmpdir/more-md5sums fi while read md5sum_ file_ do if [ "$md5sum" = "$md5sum_" ] then echo ${file_#\*} return 0 fi done < $tmpdir/more-md5sums return 1 } # Extract a command line option with or without argument cmdline_option() { local letter=$1 no_arg=$2 shift while [ $# -ne 0 ] do if [ "${1:0:2}" = -$letter ] then if [ -z "$no_arg" ] then [ "$1" = -$letter ] && set -- "$1$2" fi echo $1 break fi shift done } # Extract the -p option from the command line strip_option() { set -- $(cmdline_option p "$@") [ "$1" != -p1 ] && echo $1 } # Extract the -R option from the command line reverse_option() { set -- $(cmdline_option R no_arg "$@") echo $1 } patch_opt_d() { local subdir=$(cmdline_option d "$@") [ -z "$subdir" ] || echo "${subdir:2}" } patch_input_file() { while [ $# -gt 0 ]; do case "$1" in -i|--input) if [ $# -ge 2 ]; then echo "$2" return fi ;; -i*) echo "${1#-i}" return ;; --input=*) echo "${1#--input=}" return ;; esac shift done return 1 } tar_input_file() { case "$1" in *C*f*) echo "$3" ;; *f*) echo "$2" ;; esac } unzip_input_file() { while [ $# -gt 0 ]; do case "$1" in -*) shift ;; *) echo "$1" return ;; esac done return 1 } tar_opt_C() { case "$1" in *C*f*) echo "$2" return ;; esac } pwd_to_dir() { local subdir=$1 dir if [ -n "$subdir" ] then dir=$(cd "$subdir" && echo $PWD) else dir=$PWD fi dir=${dir/$RPM_BUILD_DIR} dir=${dir##/} dir=${dir// /\\ } echo "$dir" } tmpdir=${RPM_BUILD_DIR%/*} rm -f $tmpdir/data case "${0##*/}" in patch) inputfile=$(patch_input_file "$@") ;; tar) inputfile=$(tar_input_file "$@") # For tar, file - means read from stdin [ "$inputfile" = "-" ] && inputfile= ;; unzip) inputfile=$(unzip_input_file "$@") ;; esac if [ -z "$inputfile" ]; then # put data from stdin into tmpfile cat > $tmpdir/data fi unpackfile="$(original_file ${inputfile:-$tmpdir/data})" if [ -n "$unpackfile" ] then case "${0##*/}" in patch) echo -n p >&4 subdir=$(patch_opt_d "$@") dir=$(pwd_to_dir $subdir) echo "${0##*/} ${dir:-.} $unpackfile" \ $(strip_option "$@") $(reverse_option "$@") >&3 ;; tar) echo -n t >&4 subdir=$(tar_opt_C "$@") dir=$(pwd_to_dir $subdir) echo "${0##*/} ${dir:-.} $unpackfile" >&3 ;; unzip) echo -n Z >&4 dir=$(pwd_to_dir) echo "${0##*/} ${dir:-.} $unpackfile" >&3 ;; esac fi PATH=${PATH#*:} if [ -n "$inputfile" ]; then ${0##*/} "$@" else ${0##*/} "$@" < $tmpdir/data fi EOF chmod 755 $tmpdir/bin/wrapper # If $TMPDIR is mounted with noexec, rpmbuild won't be able to execute # our wrapper script if [ ! -x $tmpdir/bin/wrapper ] then printf "Cannot execute %s; filesystem mounted with noexec?\n" \ $tmpdir/bin/wrapper >&2 printf "Setting %s in ~/.quiltrc may help\n" "VARTMPDIR" >&2 exit 1 fi ln -s wrapper $tmpdir/bin/patch ln -s wrapper $tmpdir/bin/tar ln -s wrapper $tmpdir/bin/unzip # let rpm do all the dirty specfile stuff ... echo -n "### rpmbuild: " >&4 export PATH="$tmpdir/bin:$PATH" rpmbuild --eval "%define _sourcedir $sourcedir" \ --eval "%define _specdir $specdir" \ --eval "%define _builddir $tmpdir/build" \ --eval "%define __patch $tmpdir/bin/patch" \ --eval "%define __tar $tmpdir/bin/tar" \ --eval "%define __unzip $tmpdir/bin/unzip" \ --eval "$DEFINE_FUZZ" \ --nodeps \ -bp "$specdir/$specfile" < /dev/null >&5 2>&5 status=$? echo >&4 exit $status ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.63/quilt/scripts/dependency-graph.in0000644000175000017500000003145712332477113021513 0ustar mquinsonmquinson#!@PERL@ -w # This script 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. # # See the COPYING and AUTHORS files for more details. # Generate a dot-style graph of dependencies between patches. use Getopt::Long; use FileHandle; use strict; # Constants my $short_edge_style = "color=grey"; my $close_node_style = "color=grey"; my $highlighted_node_style = "style=bold"; # Command line arguments my $help = 0; my $use_patcher = 0; # Assume patcher format for metadata my $short_edge_thresh = 0; # threshold for coloring as "short", 0 = disable my $long_edge_thresh = 0; # threshold for coloring as "long",0 = disable my $edge_labels; # label all edges with filenames my $short_edge_labels; # label short edges with filenames my $long_edge_labels; # label long edges with filenames my $edge_length_labels; # distance between patches as edge labels my $node_numbers; # include sequence numbers my $show_isolated_nodes; # also include isolated nodes my $reduce; # remove transitive edges my $filter_patchnames; # filter for compacting filenames my $selected_patch; # only include patches related on this patch my $selected_distance = -1; # infinity my @highlight_patches; # a list of patches to highlight my $lines; # check ranges with this number of context # lines. unless (GetOptions( "h|help" => \$help, "patcher" => \$use_patcher, "short-edge=i" => \$short_edge_thresh, "long-edge=i" => \$long_edge_thresh, "edge-files" => \$edge_labels, "short-edge-files" => \$short_edge_labels, "long-edge-files" => \$long_edge_labels, "edge-length" => \$edge_length_labels, "node-numbers" => \$node_numbers, "isolated" => \$show_isolated_nodes, "reduce" => \$reduce, "filter-patchnames=s" => \$filter_patchnames, "select-patch=s" => \$selected_patch, "select-distance=i" => \$selected_distance, "highlight=s" => \@highlight_patches, "lines=i" => \$lines) && !$help) { my $basename = $0; $basename =~ s:.*/::; my $fd = $help ? *STDOUT : *STDERR; print $fd <) { if (/^\@\@ -(\d+)(?:,(\d+)?) \+(\d+)(?:,(\d+)?) \@\@/) { push @left, ($3, $3 + $4); push @right, ($1, $1 + $2); } } return [ [ @left ], [ @right ] ]; } sub backup_file_name($$) { my ($patch, $file) = @_; if ($use_patcher) { return $file . "~" . $patch; } else { return $ENV{QUILT_PC} . "/" . $patch . "/" . $file; } } # Compute the lists of lines that a patch changes in a file. sub compute_ranges($$) { my ($n, $file) = @_; my $file1 = backup_file_name($nodes[$n]{file}, $file); my $file2; my $n2 = next_patch_for_file($n, $file); if (defined $n2) { $file2 = backup_file_name($nodes[$n2]{file}, $file); } else { $file2 = $file; } #print STDERR "diff -U$lines \"$file1\" \"$file2\"\n"; if (-z $file1) { $file1="/dev/null"; return [[], []] if (-z $file2); } else { $file2="/dev/null" if (-z $file2); } my $fd = new FileHandle("diff -U$lines \"$file1\" \"$file2\" |"); my $ranges = ranges($fd); $fd->close(); return $ranges; } sub is_a_conflict($$$) { my ($from, $to, $filename) = @_; $nodes[$from]{files}{$filename} = compute_ranges($from, $filename) unless @{$nodes[$from]{files}{$filename}}; $nodes[$to]{files}{$filename} = compute_ranges($to, $filename) unless @{$nodes[$to]{files}{$filename}}; my @a = @{$nodes[$from]{files}{$filename}[1]}; my @b = @{$nodes[$to ]{files}{$filename}[0]}; while (@a && @b) { if ($a[0] < $b[0]) { return 1 if @b % 2; shift @a; } elsif ($a[0] > $b[0]) { return 1 if @a % 2; shift @b; } else { return 1 if (@a % 2) == (@b % 2); shift @a; shift @b; } } return 0; } # Fetch the list of patches (all of them must be applied) my @patches; if (@ARGV) { if (@ARGV == 1 && $ARGV[0] eq "-") { @patches = map { chomp ; $_ } ; } else { @patches = @ARGV; } } elsif ($use_patcher) { my $fh = new FileHandle("< .patches/applied") or die ".patches/applied: $!\n"; @patches = map { chomp; $_ } <$fh>; $fh->close(); } else { my $fh = new FileHandle("< $ENV{QUILT_PC}/applied-patches") or die ".$ENV{QUILT_PC}/applied-patches: $!\n"; @patches = map { chomp; $_ } <$fh>; $fh->close(); } # Fetch the list of files my $n = 0; foreach my $patch (@patches) { my @files; if ($use_patcher) { my $fh = new FileHandle("< .patches/$patch.files") or die ".patches/$patch.files: $!\n"; @files = map { chomp; $_ } <$fh>; $fh->close(); } else { if (! -d "$ENV{QUILT_PC}/$patch") { print STDERR "$ENV{QUILT_PC}/$patch does not exist; skipping\n"; next; } @files = split(/\n/, `cd $ENV{QUILT_PC}/$patch ; find . -type f ! -name .timestamp`); @files = map { s:\./::; $_ } @files; } push @nodes, {number=>$n++, name=>$patch, file=>$patch, files=>{ map {$_ => []} @files } }; } my %used_nodes; # nodes to which at least one edge is attached # If a patch is selected, limit the graph to nodes that depend on this patch, # and nodes that are dependent on this patch. if ($selected_patch) { for ($n = 0; $n < @nodes; $n++) { last if $nodes[$n]{file} eq $selected_patch; } die "Patch $selected_patch not included\n" if ($n == @nodes); $used_nodes{$n} = 1; my $selected_node = $nodes[$n]; push @{$selected_node->{attrs}}, $highlighted_node_style; my %sel; map { $sel{$_} = 1 } keys %{$selected_node->{files}}; foreach my $node (@nodes) { foreach my $file (keys %{$node->{files}}) { unless (exists $sel{$file}) { delete $node->{files}{$file}; } } } } # Optionally highlight a list of patches foreach my $patch (@highlight_patches) { for ($n = 0; $n < @nodes; $n++) { last if $nodes[$n]{file} eq $patch; } die "Patch $patch not included\n" if ($n == @nodes); my $node = $nodes[$n]; push @{$node->{attrs}}, $highlighted_node_style; $node->{colorized} = 1; } # If a patchname filter is selected, pipe all patchnames through # it. if ($filter_patchnames) { local *PIPE; my $pid = open(PIPE, "- |"); # fork a child to read from die "fork: $!\n" unless defined $pid; unless ($pid) { # child # open a second pipe to the actual filter open(PIPE, "| $filter_patchnames") or die "$filter_patchnames: $!\n"; map { print PIPE "$_\n" } @patches; close(PIPE); exit; } else { # parent $n = 0; foreach my $name () { last unless $n < @nodes; chomp $name; if ($name eq "") { delete $nodes[$n++]{name}; } else { $nodes[$n++]{name} = $name; } } close(PIPE) or die "patchname filter failed.\n"; die "patchname filter returned too few lines\n" if $n != @nodes; } } my %files_seen; # remember the last patch that touched each file my %edges; foreach my $node (@nodes) { my $number = $node->{number}; foreach my $file (keys %{$node->{files}}) { if (exists $files_seen{$file}) { my $patches = $files_seen{$file}; my $patch; # Optionally look at the line ranges the patches touch if (defined $lines) { for (my $n = $#$patches; $n >= 0; $n--) { if (is_a_conflict($number, $patches->[$n], $file)) { $patch = $patches->[$n]; last; } } } else { $patch = $patches->[$#$patches]; } if (defined $patch) { push @{$edges{"$number:$patch"}{names}}, $file; $used_nodes{$number} = 1; $used_nodes{$patch} = 1; } } push @{$files_seen{$file}}, $number; } } # Create adjacency lists foreach my $node (@nodes) { @{$node->{to}} = (); @{$node->{from}} = (); } foreach my $key (keys %edges) { my ($from, $to) = split /:/, $key; push @{$nodes[$from]{to}}, $to; push @{$nodes[$to]{from}}, $from; } # Colorize nodes that are close to each other foreach my $node (@nodes) { if (!exists $node->{colorized} && !exists $used_nodes{$node->{number}}) { $node->{colorized} = 1; push @{$node->{attrs}}, $close_node_style; } } # Colorize short and long edges foreach my $node (@nodes) { my $close = 1; foreach my $node2 (map {$nodes[$_]} @{$node->{to}}) { if (abs($node2->{number} - $node->{number}) > $short_edge_thresh) { $close = 0 } } foreach my $node2 (map {$nodes[$_]} @{$node->{from}}) { if (abs($node2->{number} - $node->{number}) > $short_edge_thresh) { $close = 0 } } if (!exists $node->{colorized} && $close) { $node->{colorized} = 1; push @{$node->{attrs}}, $close_node_style; } } # Add node labels foreach my $node (@nodes) { my @label = (); push @label, $node->{number} + 1 if ($node_numbers); push @label, $node->{name} if exists $node->{name}; push @{$node->{attrs}}, "label=\"" . join(": ", @label) . "\""; } # Add edge labels foreach my $key (keys %edges) { my ($from, $to) = split /:/, $key; if ($edge_length_labels) { push @{$edges{$key}->{attrs}}, "label=\"" . abs($to - $from) . "\"" if abs($to - $from) > 1; } elsif (abs($to - $from) < $short_edge_thresh) { push @{$edges{$key}->{attrs}}, $short_edge_style; if ($edge_labels || $short_edge_labels) { push @{$edges{$key}->{attrs}}, "label=\"" . join("\\n", @{$edges{$key}{names}}) . "\""; } } else { if ($long_edge_thresh && abs($to - $from) > $long_edge_thresh) { push @{$edges{$key}->{attrs}}, "style=bold"; if ($edge_labels || $long_edge_labels) { push @{$edges{$key}->{attrs}}, "label=\"" . join("\\n", @{$edges{$key}{names}}) . "\""; } } else { if ($edge_labels) { push @{$edges{$key}->{attrs}}, "label=\"" . join("\\n", @{$edges{$key}{names}}) . "\""; } } } # Compute a pseudo edge length so that neato works acceptably. push @{$edges{$key}{attrs}}, "len=\"" . sprintf("%.2f", log(abs($to - $from) + 3)) . "\""; } #foreach my $node (@nodes) { # push @{$node->{attrs}}, "shape=box"; #} # Open output file / pipe my $out; if ($reduce) { $out = new FileHandle("| tred") or die "tred: $!\n"; } else { $out = new FileHandle("> /dev/stdout") or die "$!\n"; } # Write graph print $out "digraph dependencies {\n"; #print "\tsize=\"11,8\"\n"; foreach my $node (@nodes) { next unless $show_isolated_nodes || exists $used_nodes{$node->{number}}; print $out "\tn$node->{number}"; if (exists $node->{attrs}) { print $out " [" . join(",", @{$node->{attrs}}) . "]"; } print $out ";\n"; } sub w($) { my @n = split /:/, shift; return $n[0] * 10000 + $n[1]; } foreach my $key (sort { w($a) <=> w($b) } keys %edges) { my ($from, $to) = split /:/, $key; print $out "\tn$to -> n$from"; if (exists $edges{$key}{attrs}) { print $out " [" . join(",", @{$edges{$key}{attrs}}) . "]"; } print $out ";\n"; } print $out "}\n"; quilt-0.63/quilt/scripts/edmail.in0000644000175000017500000001427712332477113017532 0ustar mquinsonmquinson#! @PERL@ -w # RFCs important for this script: # # RFC 2822 - Internet Message Format # RFC 2047 - MIME (Multipurpose Internet Mail Extensions) Part Three: # Message Header Extensions for Non-ASCII Text use Getopt::Long; use strict; # This ugly trick lets the script work even if gettext support is missing. # We did so because Locale::gettext doesn't ship with the standard perl # distribution. BEGIN { if (eval { require Locale::gettext }) { import Locale::gettext; require POSIX; import POSIX, qw(setlocale); } else { eval ' use constant LC_MESSAGES => 0; sub setlocale($$) { } sub bindtextdomain($$) { } sub textdomain($) { } sub gettext($) { shift } ' } } setlocale(LC_MESSAGES, ""); bindtextdomain("quilt", "@LOCALEDIR@"); textdomain("quilt"); sub _($) { return gettext(shift); } my $special = '()<>\[\]:;@\\,"'; # special characters my $special_dot = "$special."; # special characters + dot sub check_recipient($); my (%append_name, %append_value, $remove_empty_headers, %remove_header, %extract_recipients_from, %replace_name, %replace_value, $charset); GetOptions('add-recipient=s%' => sub { $append_name{lc $_[1]} = $_[1]; $append_value{lc $_[1]} .= ",\n " . $_[2]; }, 'add-good-recipient=s%' => sub { eval { check_recipient($_[2]) }; if ($@) { chomp $@; print STDERR "$@; skipping\n"; } else { $append_name{lc $_[1]} = $_[1]; $append_value{lc $_[1]} .= ",\n " . $_[2]; } }, 'remove-header=s' => sub { $remove_header{lc $_[1]}++ }, 'remove-empty-headers' => \$remove_empty_headers, 'replace-header=s%' => sub { $replace_name{lc $_[1]} = $_[1]; $replace_value{lc $_[1]} = $_[2]; }, 'extract-recipients=s' => sub { $extract_recipients_from{lc $_[1]} = 1 }, 'charset=s' => \$charset) or exit 1; my %recipient_headers = map {lc $_ => 1} (@ARGV, keys %append_name); sub encode_header($) { my ($word) = @_; $word =~ s{[^\t\41-\76\100-\176]}{sprintf "=%02X", ord($&)}ge; return "=?$charset?q?$word?="; } # Check for a valid display name sub check_display_name($) { my ($display) = @_; if ($display =~ /^"((?:[^"\\]|\\[^\n\r])*)"/) { my $quoted = $1; if ($quoted =~ /[^\t\40-\176]/) { $display = $quoted; $display =~ s/\\//; return encode_header($display); } } else { local $_ = $display; # The value is not (properly) quoted. Check for invalid characters. while (/\(/ or /\)/) { die sprintf( _("Display name `%s' contains unpaired parentheses\n"), $display) unless s/\(([^()]*)\)/$1/; } if ($display =~ /[^\t\40-\176]/ || $display =~ /[$special_dot]/) { if ($display =~ /[^\1-\10\13\14\16-\37\40\41\43-\133\135-\177]/) { return encode_header($display); } elsif ($display =~ /[$special_dot]/) { return "\"$display\""; } } } return $display; } # Check for a valid delivery address sub check_delivery_address($) { my ($deliver) = @_; die sprintf(_("Delivery address `%s' is invalid\n"), $deliver) if $deliver =~ /[ \t]/ or $deliver =~ /[^ \t\40-\176]/ or $deliver !~ /^[^$special]+@(\[?)[^$special_dot]+(?:\.[^$special_dot]+)*(\]?)$/ or (!$1) != (!$2); return $deliver; } sub check_recipient($) { my ($recipient) = @_; if ($recipient =~ /^(.*?)\s*<(.+)>$/) { my $deliver = check_delivery_address($2); return ( check_display_name($1) . " <" . $deliver . ">", $deliver ); } elsif ($recipient =~ /^(\S*)\s*\((.*)\)$/) { my $deliver = check_delivery_address($1); return ( $deliver . " (" . check_display_name($2) . ")", $deliver ); } else { my $deliver = check_delivery_address($recipient); return ( $deliver, $deliver ); } } sub split_recipients($) { my ($recipients) = @_; my @list = (); while ($recipients !~ /^\s*$/) { my $recipient; if ($recipients =~ s/^\s*,?\s*((?:"(?:[^"]+)"|[^",])*)//) { $recipient = $1; } else { $recipient = $recipients; $recipients = ""; } $recipient =~ s/\s*$//; push @list, $recipient; } return @list; } my %recipients; sub process_header($) { local ($_) = @_; my ($name, $value); return unless defined $_; unless (($name, $value) = /^([\41-\176]+):\s*(.*)/s) { print; return } if (%extract_recipients_from) { if (exists $extract_recipients_from{lc $name}) { $value =~ s/^\s*//; $value =~ s/\s*$//; foreach my $recipient (split_recipients($value)) { my $deliver; ($recipient, $deliver) = check_recipient($recipient); print "$deliver\n"; } } return; } return if exists $remove_header{lc $name}; if (exists $replace_name{lc $name}) { if (exists $replace_value{lc $name}) { print "$replace_name{lc $name}: $replace_value{lc $name}\n"; delete $replace_value{lc $name}; } return; } if (exists $recipient_headers{lc $1}) { if (exists $append_name{lc $name}) { $value .= $append_value{lc $name}; delete $append_name{lc $name}; } my @recipients; # This is a recipients field. Split out all the recipients and # check the addresses. Suppress duplicate recipients. foreach my $recipient (split_recipients($value)) { my $deliver; ($recipient, $deliver) = check_recipient($recipient); unless (exists $recipients{$deliver}) { push @recipients, $recipient; $recipients{$deliver} = $deliver; } } print "$name: ", join(",\n ", @recipients), "\n" if @recipients || !$remove_empty_headers; } else { print if $value ne "" || !$remove_empty_headers; } } my $header; while () { last if (/^$/); if (/^\S/) { process_header $header; undef $header; } $header .= $_; } process_header $header; foreach my $name (keys %append_name) { process_header $append_name{$name} . ': ' . $append_value{$name}; } unless (%extract_recipients_from) { # Copy the message body to standard output # FIXME check for 7-bit clean, else assume $charset # FIXME if UTF-8, check for invalid characters! # FIXME must make sure that all messages are written in # either 7-bit or $charset => mbox !!! # Content-Transfer-Encoding: 7bit # Content-Transfer-Encoding: 8bit # Content-Type: text/plain; charset=ISO-8859-15 # Content-Type: text/plain; charset=UTF-8 undef $/; print "\n", ; } quilt-0.63/quilt/scripts/remove-trailing-ws.in0000644000175000017500000000660312332477113022024 0ustar mquinsonmquinson#! @PERL@ -w # Remove trailing whitespace from modified lines in working files. # # Input: diff between original and working files (unified or context # format). use strict; use FileHandle; use File::Temp qw( :mktemp ); use Getopt::Std; use vars qw($opt_p $opt_n); # This ugly trick lets the script work even if gettext support is missing. # We did so because Locale::gettext doesn't ship with the standard perl # distribution. BEGIN { if (eval { require Locale::gettext }) { import Locale::gettext; require POSIX; import POSIX, qw(setlocale); } else { eval ' use constant LC_MESSAGES => 0; sub setlocale($$) { } sub bindtextdomain($$) { } sub textdomain($) { } sub gettext($) { shift } ' } } setlocale(LC_MESSAGES, ""); bindtextdomain("quilt", "@LOCALEDIR@"); textdomain("quilt"); sub _($) { return gettext(shift); } $opt_p = 0; getopts('np:') or die sprintf(_("SYNOPSIS: %s [-p num] [-n] [patch]\n"), $0); my %files; my $file; while (<>) { print unless $opt_n; if (/^--- ./) { # unified diff $file = undef; while (<>) { print unless $opt_n; if (/^\+\+\+ (.+?)(?:[ \t][^\t]*)?$/) { $file = $1; $file =~ s<^([^/]+/+){$opt_p}><>; #print STDERR "[$file]\n"; } elsif ($file && /^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/) { my $removed = defined $2 ? $2 : 1; my $added = defined $4 ? $4 : 1; my $line_number = $3; while ($removed || $added) { $_ = <>; defined $_ or die sprintf(_("%s: I'm confused.\n"), $0); if (/^\+/) { push @{$files{$file}}, $line_number if s/(^\+.*?)[ \t]+$/$1/; $added--; $line_number++; } elsif (/^-/) { $removed--; } elsif (/^ / || /^$/) { $removed--; $added--; $line_number++; } print unless $opt_n; } } } } elsif (/^\*\*\* ./) { # context diff $file = undef; while (<>) { print unless $opt_n; if ($file && /^--- (\d+)(?:,(\d+))? ----$/) { my $line_number = $1; my $last_line = defined $2 ? $2 : $1; while ($line_number <= $last_line) { $_ = <>; defined $_ or last; if (s/(^[+!] .*?)[ \t]+$/$1/) { push @{$files{$file}}, $line_number; } $line_number++; print unless $opt_n; last if (/^\*\*\*[* ]/); } } elsif (/^--- (.+?)(?:[ \t][^\t]*)?$/) { $file = $1; $file =~ s<^([^/]+/+){$opt_p}><>; #print STDERR "[$file]\n"; } } } } foreach my $file (sort keys %files) { my @lines = @{$files{$file}}; if ($opt_n) { print STDERR sprintf( _("Warning: trailing whitespace in line %s of %s\n"), $lines[0], $file) if @lines == 1; print STDERR sprintf( _("Warning: trailing whitespace in lines %s of %s\n"), join(',', @lines), $file) if @lines > 1; } else { print STDERR sprintf( _("Removing trailing whitespace from line %s of %s\n"), $lines[0], $file) if @lines == 1; print STDERR sprintf( _("Removing trailing whitespace from lines %s of %s\n"), join(',', @lines), $file) if @lines > 1; } unless ($opt_n) { my $fh = new FileHandle("< $file") or die "$file: $!\n"; my ($tmp, $tmpname) = mkstemp("$file.XXXXXX") or die "$file.*: $!\n"; while (<$fh>) { if (@lines && $lines[0] == $.) { s/[ \t]+$//; shift @lines; } print $tmp $_; } $fh->close; $tmp->close or die "$tmpname: $!\n"; rename $tmpname, $file or die sprintf(_("Renaming %s to %s: %s\n"), $tmpname, $file, $!); } } quilt-0.63/quilt/scripts/backup-files.in0000644000175000017500000001630612332477113020637 0ustar mquinsonmquinson#! @BASH@ set -e # Keep /dev/null opened as we will need it repeatedly exec 4> /dev/null # Copyright (C) 2006 Steve Langasek # Copyright (C) 2011 Jean Delvare # Loosely based on C implementation by Andreas Gruenbacher # 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; version 2 dated June, 1991. # 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 St, Fifth Floor, Boston, # MA 02110-1301, USA. usage () { echo "Usage: $0 -B prefix {-b|-r|-c|-L} [-s] [-k] [-t] [-L] {-f {file|-}|-|file ...} Create or restore backup copies of a list of files. Mandatory parameters: -B Path name prefix for backup files Action parameters: -b Create backup (preserve links) -r Restore the backup -c Create simple copy -L Ensure that source files have a link count of 1 Common options: -s Silent operation; only print error messages Restore options: -k Keep backup files -t Touch original files after restore (update their mtimes) Backup options: -L Ensure that source files have a link count of 1 File list parameters: -f Read the filenames to process from file (- = standard input) - Read the filenames to process from backup " } : ${QUILT_DIR=@QUILT_DIR@} . $QUILT_DIR/scripts/utilfns ensure_nolinks() { local filename=$1 local link_count tmpname link_count=$(stat @STAT_HARDLINK@ "$filename") if [ $link_count -gt 1 ]; then tmpname=$(mktemp "$filename.XXXXXX") cp -p "$filename" "$tmpname" mv "$tmpname" "$filename" fi } notify_action() { [ $ECHO != : ] || return 0 local action=$1 filename=$2 while read -d $'\0' -r do $ECHO "$action ${REPLY#./}" done < "$filename" } backup() { local file=$1 local backup=$OPT_PREFIX$file local dir dir=$(dirname "$backup") [ -d "$dir" ] || mkdir -p "$dir" if [ -e "$file" ]; then $ECHO "Copying $file" if [ -n "$OPT_NOLINKS" -a "$(stat @STAT_HARDLINK@ "$file")" = 1 ]; then cp -p "$file" "$backup" else ln "$file" "$backup" 2>&4 || cp -p "$file" "$backup" if [ -n "$OPT_NOLINKS" ]; then ensure_nolinks "$file" fi fi else $ECHO "New file $file" : > "$backup" fi } restore() { local file=$1 local backup=$OPT_PREFIX$file if [ ! -e "$backup" ]; then return 1 fi if [ -s "$backup" ]; then $ECHO "Restoring $file" if [ -e "$file" ]; then rm "$file" else mkdir -p "$(dirname "$file")" fi ln "$backup" "$file" 2>&4 || cp -p "$backup" "$file" if [ -n "$OPT_TOUCH" ]; then touch "$file" fi else $ECHO "Removing $file" if [ -e "$file" ]; then rm "$file" fi fi if [ -z "$OPT_KEEP_BACKUP" ]; then rm "$backup" rmdir -p "${backup%/*}" 2>&4 || true fi } restore_all() { local EMPTY_FILES NONEMPTY_FILES # Store the list of files to process EMPTY_FILES=$(gen_tempfile) NONEMPTY_FILES=$(gen_tempfile) trap "rm -f \"$EMPTY_FILES\" \"$NONEMPTY_FILES\"" EXIT cd "$OPT_PREFIX" find . -type f -size 0 -print0 > "$EMPTY_FILES" find . -type f -size +0 -print0 > "$NONEMPTY_FILES" cd "$OLDPWD" if [ -s "$EMPTY_FILES" ]; then xargs -0 rm -f < "$EMPTY_FILES" notify_action Removing "$EMPTY_FILES" fi if [ -s "$NONEMPTY_FILES" ]; then # Try a mass link (or copy) first, as it is much faster. # It is however not portable and may thus fail. If it fails, # fallback to per-file processing, which always works. local target_dir=$PWD if (cd "$OPT_PREFIX" && \ xargs -0 cp -l --parents --remove-destination \ --target-directory="$target_dir" \ < "$NONEMPTY_FILES" 2>&4); then notify_action Restoring "$NONEMPTY_FILES" else (cd "$OPT_PREFIX" && find . -type d -print0) \ | xargs -0 mkdir -p xargs -0 rm -f < "$NONEMPTY_FILES" while read -d $'\0' -r do local file=${REPLY#./} local backup=$OPT_PREFIX$file $ECHO "Restoring $file" ln "$backup" "$file" 2>&4 || cp -p "$backup" "$file" done < "$NONEMPTY_FILES" fi if [ -n "$OPT_TOUCH" ]; then xargs -0 touch -c < "$NONEMPTY_FILES" fi fi if [ -z "$OPT_KEEP_BACKUP" ]; then rm -rf "$OPT_PREFIX" fi } noop_nolinks() { local file=$1 if [ -e "$file" ]; then ensure_nolinks "$file" fi } copy() { local file=$1 local backup=$OPT_PREFIX$file local dir dir=$(dirname "$backup") [ -d "$dir" ] || mkdir -p "$dir" if [ -e "$file" ]; then $ECHO "Copying $file" cp -p "$file" "$backup" else $ECHO "New file $file" : > "$backup" fi } copy_many() { local NONEMPTY_FILES # Store the list of non-empty files to process NONEMPTY_FILES=$(gen_tempfile) trap "rm -f \"$NONEMPTY_FILES\"" EXIT # Keep the temporary file opened to speed up the loop exec 3> "$NONEMPTY_FILES" cat "$OPT_FILE" \ | while read do if [ -e "$REPLY" ]; then printf '%s\0' "$REPLY" >&3 else # This is a rare case, not worth optimizing copy "$REPLY" fi done exec 3>&- if [ -s "$NONEMPTY_FILES" ]; then # Try a mass copy first, as it is much faster. # It is however not portable and may thus fail. If it fails, # fallback to per-file processing, which always works. if xargs -0 cp -p --parents --target-directory="$OPT_PREFIX" \ < "$NONEMPTY_FILES" 2>&4; then notify_action Copying "$NONEMPTY_FILES" else while read -d $'\0' -r do copy "$REPLY" done < "$NONEMPTY_FILES" fi fi } # Test if some backed up files have a link count greater than 1 some_files_have_links() { (cd "$OPT_PREFIX" && find . -type f -print0) \ | xargs -0 stat @STAT_HARDLINK@ 2>&4 | grep -qv '^1$' } ECHO=echo while [ $# -gt 0 ]; do case $1 in -b) OPT_WHAT=backup ;; -r) OPT_WHAT=restore ;; -c) OPT_WHAT=copy ;; -B) OPT_PREFIX=$2 shift ;; -f) OPT_FILE=$2 shift ;; -s) ECHO=: ;; -k) OPT_KEEP_BACKUP=1 ;; -L) OPT_NOLINKS=1 ;; -t) OPT_TOUCH=1 ;; -?*) usage exit 0 ;; *) break ;; esac shift done if [ -z "$OPT_PREFIX" ]; then usage exit 1 fi if [ "${OPT_PREFIX:(-1)}" != / ]; then echo "Prefix must be a directory" >&2 exit 1 fi if [ -z "$OPT_WHAT" ]; then if [ -n "$OPT_NOLINKS" ]; then OPT_WHAT=noop_nolinks else echo "Please specify an action" >&2 exit 1 fi fi if [ -n "$OPT_FILE" ]; then if [ "$OPT_WHAT" = copy ]; then copy_many exit fi cat "$OPT_FILE" \ | while read nextfile; do $OPT_WHAT "$nextfile" done exit fi if [ "$1" = - ]; then # No backup directory? We're done [ -d "$OPT_PREFIX" ] || exit 0 if [ "$OPT_WHAT" = restore ]; then restore_all exit fi # We typically expect the link count of backed up files to be 1 # already, so check quickly that this is the case, and only if not, # take the slow path and walk the file list in search of files to fix. if [ "$OPT_WHAT" = noop_nolinks ] && ! some_files_have_links; then exit fi find "$OPT_PREFIX" -type f -print \ | while read do $OPT_WHAT "${REPLY#$OPT_PREFIX}" done if [ ${PIPESTATUS[0]} != 0 ]; then exit 1 fi exit fi while [ $# -gt 0 ]; do $OPT_WHAT "$1" shift done quilt-0.63/quilt/scripts/utilfns0000644000175000017500000000167412332477113017353 0ustar mquinsonmquinson# This file contains the common functions used by patchfns and backup-files. # It is meant to be sourced by bash scripts. # This script 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. # # See the COPYING and AUTHORS files for more details. basename() { local path=$1 while [ "${path:(-1)}" = "/" ] do path=${path%/} done echo "${path##*/}" } dirname() { local path=$1 while [ "${path:(-1)}" = "/" ] do path=${path%/} done local basename="${path##*/}" path="${path:0:${#path}-${#basename}}" while [ "${path:(-1)}" = "/" ] do path=${path%/} done if [ -n "$path" ] then echo "$path" else if [ ${1:0:1} = "/" ] then echo "/" else echo "." fi fi } gen_tempfile() { if [ "$1" = -d ] then mktemp -d ${2:-${TMPDIR:-/tmp}/quilt.}XXXXXX else mktemp ${1:-${TMPDIR:-/tmp}/quilt.}XXXXXX fi } quilt-0.63/compat/column.in0000644000175000017500000000001712332477113016215 0ustar mquinsonmquinson#! @BASH@ cat quilt-0.63/compat/date.in0000644000175000017500000000326112332477113015641 0ustar mquinsonmquinson#! @PERL@ -w # This script 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. # # See the COPYING and AUTHORS files for more details. use strict; use POSIX qw(strftime); use Getopt::Long qw(:config gnu_getopt prefix_pattern=(--|-)); use Date::Parse; my $spec = '%a %b %e %H:%M:%S %Z %Y'; my $now = time(); my $utc = 0; sub usage() { print "Usage: date [OPTION]... [+FORMAT] Display the current time in the given FORMAT. -d, --date=STRING display time described by STRING, not `now' -f, --file=DATEFILE like --date once for each line of DATEFILE -R, --rfc-822 output RFC-822 compliant date string -u, --utc, --universal print or set Coordinated Universal Time --help display this help and exit "; exit 1; } sub parse_utc_secs($) { my ($now) = @_; if ($now =~ / UTC ([0-9]+) seconds$/) { # This is an heuristic specifically for quilts mail.in invocation: # date --rfc-822 -d "1970/01/01 UTC nnnnnnnn seconds" return $1; } else { return str2time($now); } } GetOptions('rfc-822|R' => sub() { $spec = '%a, %d %b %Y %H:%M:%S %z' }, 'utc|universal|u' => \$utc, 'date|d=s' => sub() { $now = parse_utc_secs($_[1]) }, 'reference|r=s' => sub() { my @filestats = stat($_[1]); $now = parse_utc_secs('1970/01/01 UTC ' . $filestats[9] . ' seconds') }, 'help|h' => sub() { usage }) or usage; if (@ARGV == 1 && $ARGV[0] =~ /^\+/) { $spec = substr($ARGV[0], 1); } elsif (@ARGV > 1) { usage; } my @now = $utc ? gmtime($now) : localtime($now); print strftime($spec, @now) . "\n"; quilt-0.63/compat/getopt.in0000644000175000017500000000616412332477113016233 0ustar mquinsonmquinson#! @PERL@ -w # This script 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. # # See the COPYING and AUTHORS files for more details. use strict; my $opts; my @words; my $found_sep = 0; foreach my $arg (@ARGV) { if ($arg eq '--') { $found_sep = 1; } else { if (!$found_sep) { $opts .= ' ' . $arg; } else { push @words, $arg; } } } # there is no reason to parse # the opts if there are no args. if (!@words) { print " --\n"; exit; } my $short_opts = ''; my @long_opts; # nothing fancy to see here; this script provides minimal compatibility # with the getopt from util-linux until a cross platform binary exists. # We silently ignore option -q. if ($opts =~ /^\s*(?:-q\s+)?-o ([a-zA-Z:]*)?(\s+--long .*)*/) { $short_opts = $1; if ($2) { my $long_opts = $2; $long_opts =~ s/^\s*--long //g; $long_opts =~ s/ --long /,/g; @long_opts = split(/,/,$long_opts); } } my @barewords = ('--'); my @options; # set the previous option name when a param is required my $need_param; sub quote_word { my $word = shift; $word =~ s/'/'\\''/; return "'$word'"; } foreach my $word (@words) { # allow '-' to be an option value if (!$need_param && $word !~ /^-./) { push @barewords, quote_word($word); next; } if ($need_param) { die "expecting param for $need_param" if $word =~ /^-./; push @options, quote_word($word); $need_param = undef; next; } # process short options if ($word =~ s/^-([^-])/$1/) { my @letters = reverse(split(//,$word)); while (@letters) { my $letter = pop @letters; my $found = grep(/$letter/, $short_opts); push @options, '-'.$letter; die "illegal option: $letter" if !$found; # handle options with optional parameters if (grep(/${letter}::/, $short_opts)) { if (scalar(@letters) == 0) { push @options, quote_word(''); } else { # what looked like more short options # are in fact the optional parameters push @options, quote_word(join('', reverse @letters)); } last; } # handle options with mandatory parameters if (grep(/$letter:/, $short_opts)) { if (scalar(@letters) == 0) { $need_param = $letter; } else { # short options can have numerical args # embedded in the short option list: -UO die "unexpected character after option $letter" if ($letters[$#letters] !~ /[0-9]/); my @digits; while (scalar(@letters) && ($letters[$#letters] =~ /[0-9]/)) { push @digits, pop @letters; } push @options, quote_word(join('', reverse @digits)); } } } } # process long options if ($word =~ s/^--//) { my $param = ''; if ($word =~ /(.*)=(.*)/) { $word = $1; $param = $2; } my ($found) = grep(/^$word:{0,2}$/,@long_opts); die "illegal option: $word" if !$found; die "$word: unexpected paramater $param" if $found !~ /:$/ && $param ne ''; $need_param = $word if $found =~ /[^:]:$/ && $param eq ''; push @options, "--$word"; push @options, quote_word($param) if $param || $found =~ /::$/; } } print " @options @barewords\n" quilt-0.63/compat/mktemp.in0000644000175000017500000000061312332477113016217 0ustar mquinsonmquinson#! @BASH@ if [ x"$1" = x"-d" ] then for ((n=0 ; $n<100 ; n++)) do try=${2%XXXXXX}$RANDOM mkdir -m 700 "$try" 2>/dev/null && break done else user_mask=$(umask) umask 077 set -o noclobber for ((n=0 ; $n<100 ; n++)) do try=${1%XXXXXX}$RANDOM echo -n "" 2> /dev/null > "$try" && break done set +o noclobber umask $user_mask fi if [ $n -lt 100 ] then echo "$try" else exit 1 fi quilt-0.63/compat/sendmail.in0000644000175000017500000000012112332477113016510 0ustar mquinsonmquinson#! @BASH@ echo "No mail transfer agent configured for \`quilt mail'" >&2 exit 1 quilt-0.63/lib/quilt.el0000644000175000017500000004310112332477113015334 0ustar mquinsonmquinson;;; quilt.el --- a minor mode for working with files in quilt ;; Copyright 2005-2007 Matt Mackall ;; Satoru Takeuchi took over this package ;; from Matt Mackall. ;; Author: Saotru takeuchi ;; ;; This software may be used and distributed according to the terms ;; of the GNU General Public License, incorporated herein by reference. ;;; Commentary: ;; ;; Add (load "~/quilt.el") to your .emacs file ;;; History: ;; ;;; Code: (defun quilt-buffer-file-name-safe () "Return buffer file name. If buffer is not associated with any file, return nil." (let ((fn buffer-file-name)) (if (and fn (file-exists-p fn)) fn))) (defun quilt-bottom-p () "Return t if there is on the bottom of patch stack, return nil if otherwise." (if (> (call-process "quilt" nil nil nil "applied") 0) 1)) (defun quilt-patches-directory () "Return the location of patch files." (or (with-current-buffer (generate-new-buffer " *cmd") (shell-command (concat "test -f ~/.quiltrc && . ~/.quiltrc ;" "echo -n $QUILT_PATCHES") t) (unwind-protect (let ((v (buffer-string))) (if (string= "" (buffer-string)) nil v)) (kill-buffer (current-buffer)))) (or (getenv "QUILT_PATCHES") "patches"))) (defun quilt-find-dir (fn) "Return the top level dir of quilt from FN." (if (or (not fn) (equal fn "/")) nil (let ((d (file-name-directory fn))) (if (file-accessible-directory-p (concat d "/.pc")) d (quilt-find-dir (directory-file-name d)))))) (defun quilt-dir (&optional fn) "Return the top level dir of quilt from FN. FN is just a hint and find from other way if FN is nil." (quilt-find-dir (if fn fn (let ((fn2 (quilt-buffer-file-name-safe))) (if fn2 fn2 (if default-directory (expand-file-name default-directory))))))) (defun quilt-drop-dir (fn) "Return the relative path of FN based on quilt top directory." (let ((d (quilt-find-dir fn))) (substring fn (length d) (length fn)))) (defun quilt-p (&optional fn) "Check if FN is in a quilt tree." (if (quilt-dir fn) 't nil)) (defun quilt-save () "Save all buffers associated with current quilt tree." (save-some-buffers nil 'quilt-p)) (defun quilt-owned-p (fn) "Check if FN is a file which quilt handles." (if (not fn) nil (let ((pd (file-name-nondirectory (directory-file-name (file-name-directory fn))))) (and (not (string-match "\\(~$\\|\\.rej$\\)" fn)) (not (equal pd (quilt-patches-directory))) (not (equal pd ".pc")) (quilt-p fn))))) (defun quilt-cmd (cmd &optional buf) "Execute CMD, a quilt subcommand, at the top of quilt tree associated with BUF." (let ((d default-directory) (qd (quilt-dir))) (if (not qd) (shell-command (concat "quilt " cmd) buf) (cd qd) (unwind-protect ; make sure to cd back even if an erro occurs. (shell-command (concat "quilt " cmd) buf) (cd d))))) (defun quilt-cmd-to-string (cmd) "Execute CMD, a quilt subcommand, at the top of quilt tree associated with BUF and return its output string." (let ((d default-directory) (qd (quilt-dir))) (if (not qd) nil (cd qd) (unwind-protect ; make sure to cd back even if an error occurs. (shell-command-to-string (concat "quilt " cmd)) (cd d))))) (defun quilt-cmd-to-list (cmd) "Execute CMD, a quilt sumcommand at the top of quilt tree associated with BUF.." "Return the lines of the command output as elements of a list." (let ((s (quilt-cmd-to-string cmd))) (if s (split-string s "\n" t)))) (defun quilt-applied-list () "Return the list of the applied patch names." (quilt-cmd-to-list "applied")) (defun quilt-file-list () "Return the list of the file names associated with current patch." (quilt-cmd-to-list "files")) (defun quilt-patch-list () "Return the list of the name of patches." (quilt-cmd-to-list "seriess")) (defun quilt-files-affected (&optional first last) "Return the file names which modified from FIRST to LAST." "Omitted args are considered as current patch." (let ((qd (quilt-dir)) files fp) (when qd (setq files (quilt-cmd-to-list (if last (if (equal first last) (concat "files " first) (concat "files --combine " first last)) (if first (concat "files --combine " first) "files")))) (setq fp files) (while fp (setcar fp (concat qd (car fp))) (setq fp (cdr fp))) files))) (defun quilt-top-patch () "Return the top patch name. return nil if there is the bottom of patch stack." (if (quilt-bottom-p) nil (file-name-nondirectory (substring (quilt-cmd-to-string "top") 0 -1)))) (defun quilt-complete-list (p l) "Call 'completing-read' with prompt P and list L." "Convert L to an alist using indices as keys. Note that this function modifies L." (let ((list l) (n 0)) (while list (setcar list (cons (car list) n)) (setq list (cdr list)) (setq n (1+ n)))) (completing-read p l nil t)) (defun quilt-editable (f) "Return t if F is editable in terms of current patch. Return nil if otherwise." (let ((qd (quilt-dir)) (fn (quilt-drop-dir f)) dirs result) (if qd (if (quilt-bottom-p) (quilt-cmd "applied") ; to print error message (setq dirs (if quilt-edit-top-only (list (quilt-top-patch)) (cdr (cdr (directory-files (concat qd ".pc/")))))) (while (and (not result) dirs) (if (file-exists-p (concat qd ".pc/" (car dirs) "/" fn)) (setq result t) (setq dirs (cdr dirs)))) result)))) (defun quilt-short-patchname () "Return shortened name of top patch. Return nil if there is on the bottom of patch stack." (let ((p (quilt-top-patch))) (if (not p) "none" (let ((p2 (file-name-sans-extension p))) (if (< (length p2) 10) p2 (concat (substring p2 0 8) "..")))))) (defvar quilt-mode-line nil) (make-variable-buffer-local 'quilt-mode-line) (defun quilt-update-modeline () "Update mode line." (interactive) (setq quilt-mode-line (concat " Q:" (quilt-short-patchname))) (force-mode-line-update)) (defun quilt-revert (filelist) "Refresh contents, editability and modeline of FILESIT. FILELIST won't be touched unless their file is a child of the current quilt directory. Each elements in FILELIST should be the absolute file names of those files affected by the latest quilt operation. Associated buffers get reverted to update their contents. Other buffers will only get their modeline and editability adjusted." (let ((qd (quilt-dir)) fn) (dolist (buf (buffer-list)) (if (not (string-match "^ " (buffer-name buf))) (with-current-buffer buf (setq fn (quilt-buffer-file-name-safe)) (when (string-equal qd (quilt-dir)) (quilt-update-modeline) (when (and (not (buffer-modified-p)) (quilt-owned-p fn)) ;; If the file doesn't exist on disk it can't be reverted, but we ;; need the revert hooks to run anyway so that the buffer's ;; editability will update. Files not affected by the latest change ;; (as listed in filelist) don't need to get reverted either. (if (and (file-exists-p buffer-file-name) (member fn filelist)) (progn (revert-buffer t t t)) (run-hooks 'after-revert-hook))))))))) (defun quilt-push (arg) "Push next patch. It is forced if ARG is specified." (interactive "P") (quilt-save) (if arg (quilt-cmd "push -f" "*quilt*") (quilt-cmd "push -q")) (quilt-revert (quilt-files-affected))) (defun quilt-pop (arg) "Pop top patch. It is forced if ARG is specified." (interactive "P") (quilt-save) (if arg (quilt-cmd "pop -f") (quilt-cmd "pop -q")) (quilt-revert (quilt-files-affected))) (defun quilt-push-all (arg) "Push all remaining patches. It is forced if ARG is specified." (interactive "P") (quilt-save) (let ((next (car (quilt-cmd-to-list "next")))) (if arg (quilt-cmd "push -f" "*quilt*") (quilt-cmd "push -qa")) (quilt-revert (quilt-files-affected next)))) (defun quilt-pop-all (arg) "Pop all applied patches. It is forced if ARG is specified." (interactive "P") (quilt-save) (let ((fa (quilt-files-affected "-"))) (if arg (quilt-cmd "pop -af") (quilt-cmd "pop -qa")) (quilt-revert fa))) (defun quilt-goto () "Go to a specified patch." (interactive) (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((arg (quilt-complete-list "Goto patch: " (quilt-patch-list)))) (if (string-equal arg "") (message "no patch name is supplied") (quilt-save) (let (cmd first last) (if (file-exists-p (concat qd ".pc/" arg)) (progn (setq cmd "pop") (setq first (car (quilt-cmd-to-list (concat "next " arg)))) (setq last (quilt-top-patch))) (setq cmd "push") (setq last arg) (setq first (if (quilt-bottom-p) "-" (car (quilt-cmd-to-list "next"))))) (quilt-cmd (concat cmd " -q " arg) "*quilt*") (quilt-revert (quilt-files-affected first last)))))))) (defun quilt-top () "Display topmost patch." (interactive) (quilt-cmd "top")) (defun quilt-find-file () "Find a file in the topmost patch." (interactive) (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (if (quilt-bottom-p) (quilt-cmd "applied") ; to print error message (let ((l (quilt-file-list))) (if (not l) (message "no file is existed in this patch") (let ((f (quilt-complete-list "File: " l))) (if (string-equal f "") (message "file name is not specified") (find-file (concat qd f)))))))))) (defun quilt-files () "Display files in topmost patch." (interactive) (quilt-cmd "files")) (defun quilt-import (fn pn) "Import external patch FN as PN.patch." (interactive "fPatch to import: \nsPatch name: ") (if (not pn) (message "no patch name supplied") (quilt-cmd (concat "import -p " pn ".patch " (if fn fn pn))))) (defun quilt-diff () "Display the diff of current change." (interactive) (quilt-save) (quilt-cmd "diff" "*diff*")) (defun quilt-new (f) "Create a new patch F.patch." (interactive "sPatch name: ") (if (string-equal f "") (message "no patch name is supplied") (quilt-save) (quilt-cmd (concat "new " f ".patch")) (quilt-revert nil))) (defun quilt-applied () "Show applied patches." (interactive) (quilt-cmd "applied" "*quilt*")) (defun quilt-add (arg) "Add ARG to the current patch." (interactive "b") (with-current-buffer arg (let ((fn (quilt-buffer-file-name-safe))) (cond ((not fn) (message "buffer %s is not associated with any buffer" (buffer-name))) ((not (quilt-dir)) (quilt-cmd (concat "push"))) ; to print error message (t (quilt-cmd (concat "add " (quilt-drop-dir fn))) (quilt-revert (list fn))))))) (defun quilt-edit-patch () "Edit the topmost patch." (interactive) (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((patch (quilt-top-patch))) (if (not patch) (quilt-cmd "applied") ; to print error message (quilt-save) (let ((pf (concat qd (format "/%s/" (quilt-patches-directory)) patch))) (if (file-exists-p pf) (progn (find-file pf) (toggle-read-only)) (message (format "%s doesn't exist yet." pf))))))))) (defun quilt-patches () "Show which patches modify the current buffer." (interactive) (let ((fn (quilt-buffer-file-name-safe))) (cond ((not fn) (message "buffer %s is not associated with any buffer" (buffer-name))) ((not (quilt-dir)) (quilt-cmd "push")) ; to print error message (t (quilt-cmd (concat "patches " (quilt-drop-dir fn))))))) (defun quilt-unapplied () "Display unapplied patch list." (interactive) (quilt-cmd "unapplied" "*quilt*")) (defun quilt-refresh () "Refresh the current patch." (interactive) (quilt-save) (quilt-cmd "refresh")) (defun quilt-remove () "Remove a file from the current patch and revert it." (interactive) (let ((f (quilt-buffer-file-name-safe))) (cond ((not f) (message "buffer %s is not associated with any patch" (buffer-name))) ((not (quilt-dir)) (quilt-cmd "push")) ; to print error message (t (if (quilt-bottom-p) (quilt-cmd "applied") ; to print error message (let ((dropped (quilt-drop-dir f))) (if (y-or-n-p (format "Really drop %s? " dropped)) (progn (quilt-cmd (concat "remove " dropped)) (quilt-revert (list f)))))))))) (defun quilt-edit-series () "Edit the patch series file." (interactive) (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((series (concat qd (format "/%s/series" (quilt-patches-directory))))) (if (file-exists-p series) (find-file series) (message (quilt-top-patch))))))) (defun quilt-header (arg) "Print the header of ARG." (interactive "P") (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (if (not arg) (quilt-cmd "header") (let ((p (quilt-complete-list "Patch: " (quilt-patch-list)))) (if (string-equal p "") (message "no patch name is supplied") (quilt-cmd (concat "header " p)))))))) (defun quilt-delete (arg) "Delete ARG from the series file." (interactive "P") (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((p (if arg (quilt-complete-list "Delete patch: " (quilt-patch-list)) (quilt-top-patch)))) (if (string-equal p "") (message "no patch name is supplied") (if (not p) (quilt-cmd "applied") ; to print error message (if (y-or-n-p (format "Really delete %s? " p)) (let ((fa (quilt-files-affected p p))) (quilt-save) (quilt-cmd (concat "delete " p)) (quilt-revert fa))))))))) (defvar quilt-header-directory nil) (defun quilt-header-commit () "Commit to change patch header." (interactive) (let ((tmp (make-temp-file "quilt-header-"))) (set-visited-file-name tmp) (basic-save-buffer) (cd quilt-header-directory) (shell-command (concat "EDITOR=cat quilt -r header <" tmp)) (kill-buffer (current-buffer)) (delete-file tmp))) (defvar quilt-header-mode-map (make-keymap)) (define-key quilt-header-mode-map "\C-c\C-c" 'quilt-header-commit) (defun quilt-edit-header (arg) "Edit the header of ARG." (interactive "P") (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((p (if arg (quilt-complete-list "Edit patch: " (quilt-patch-list)) (quilt-top-patch)))) (if (string-equal p "") (message "no patch name is supplied") (if (not p) (quilt-cmd "applied") ; to print error message (let ((qb (get-buffer-create (format " *quilt-header(%s)*" p)))) (switch-to-buffer-other-window qb) (erase-buffer) (kill-all-local-variables) (make-local-variable 'quilt-header-directory) (setq quilt-header-directory default-directory) (use-local-map quilt-header-mode-map) (setq major-mode 'quilt-header-mode) (call-process "quilt" nil qb nil "header" p) (goto-char 0)))))))) (defun quilt-series (arg) "Show patche series. It can be verbose mode if ARG is specified." (interactive "P") (if arg (quilt-cmd "series -v") (quilt-cmd "series"))) (defvar quilt-mode-map (make-sparse-keymap)) (define-key quilt-mode-map "\C-c.t" 'quilt-top) (define-key quilt-mode-map "\C-c.f" 'quilt-find-file) (define-key quilt-mode-map "\C-c.F" 'quilt-files) (define-key quilt-mode-map "\C-c.d" 'quilt-diff) (define-key quilt-mode-map "\C-c.p" 'quilt-push) (define-key quilt-mode-map "\C-c.o" 'quilt-pop) (define-key quilt-mode-map "\C-c.P" 'quilt-push-all) (define-key quilt-mode-map "\C-c.O" 'quilt-pop-all) (define-key quilt-mode-map "\C-c.g" 'quilt-goto) (define-key quilt-mode-map "\C-c.A" 'quilt-applied) (define-key quilt-mode-map "\C-c.n" 'quilt-new) (define-key quilt-mode-map "\C-c.i" 'quilt-import) (define-key quilt-mode-map "\C-c.a" 'quilt-add) (define-key quilt-mode-map "\C-c.e" 'quilt-edit-patch) (define-key quilt-mode-map "\C-c.m" 'quilt-patches) (define-key quilt-mode-map "\C-c.u" 'quilt-unapplied) (define-key quilt-mode-map "\C-c.r" 'quilt-refresh) (define-key quilt-mode-map "\C-c.R" 'quilt-remove) (define-key quilt-mode-map "\C-c.s" 'quilt-series) (define-key quilt-mode-map "\C-c.S" 'quilt-edit-series) (define-key quilt-mode-map "\C-c.h" 'quilt-header) (define-key quilt-mode-map "\C-c.H" 'quilt-edit-header) (define-key quilt-mode-map "\C-c.D" 'quilt-delete) (defvar quilt-mode nil) (make-variable-buffer-local 'quilt-mode) (defvar quilt-edit-top-only 't) (defun quilt-mode (&optional arg) "Toggle 'quilt-mode'. Enable 'quilt-mode' if ARG is positive. \\{quilt-mode-map}" (interactive "P") (setq quilt-mode (if (null arg) (not quilt-mode) (> (prefix-numeric-value arg) 0))) (if quilt-mode (let ((f (quilt-buffer-file-name-safe))) (if (quilt-owned-p f) (if (not (quilt-editable f)) (toggle-read-only 1) (toggle-read-only 0))) (quilt-update-modeline)))) (defun quilt-hook () "Enable quilt mode for quilt-controlled files." (if (quilt-p) (quilt-mode 1))) (add-hook 'find-file-hooks 'quilt-hook) (add-hook 'after-revert-hook 'quilt-hook) (or (assq 'quilt-mode minor-mode-alist) (setq minor-mode-alist (cons '(quilt-mode quilt-mode-line) minor-mode-alist))) (or (assq 'quilt-mode-map minor-mode-map-alist) (setq minor-mode-map-alist (cons (cons 'quilt-mode quilt-mode-map) minor-mode-map-alist))) (provide 'quilt) ;;; quilt.el ends here quilt-0.63/doc/README.in0000644000175000017500000000617212332477113015147 0ustar mquinsonmquinsonThe scripts in this package simplify working with a series of patches. The usual tasks like applying, refreshing and reversing are supported. Please see the paper "How To Survive With Many Patches /or/ Introduction to Quilt" for an introduction. Command reference ================= @REFERENCE@ Typical Usages: New patches; Importing patches; Patch management ====================================================================== Add new patches: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. create a new patch: quilt new {patchname, e.g., sysctl_fix.patch} 2. add/edit file(s): quilt edit filepath or: 2a. add file(s) to patch: quilt add {filepath} 2b. manual edit file(s) use your $editor 3. update the patch: quilt refresh 3b. list the patch description: quilt header [patch] 3c. update the patch description: quilt header -e [patch] 4. list files in the patch: quilt files 5. show current patch contents: quilt diff 6. apply current, ready for next: quilt push 7. remove file(s) from patch: quilt remove {filepath} Importing patches: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. import a patch: quilt import patchfile 2. apply it: quilt push 3. update the patch: quilt refresh 3b. list the patch description: quilt header [patch] 3c. update the patch description: quilt header -e [patch] 4. list files in the patch: quilt files 5. show current patch contents: quilt diff Import/Apply a series file + patches to a tree: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. cp(1) the patches directory ('series' file + all patch files) to the expected patches location (as specified in your .quiltrc file) 2. apply all of series: quilt push -a Other patch management: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. remove files from a patch: quilt remove {filepath} 2. remove unapplied patch: quilt delete {patchname} 3. list all patch names: quilt series 4. list all applied/unapplied: quilt applied | unapplied 5. list top/previous/next patch name: quilt top | previous | next 6. list patches modifying file: quilt patches {filepath} 7. rename a patch: quilt rename {patchname} 8. duplicate a patch: quilt fork {patchname} 9. prepare or send mails: quilt mail ... 10. search in source files: quilt grep ... 11. create snapshot: quilt snapshot 12. init from RPM spec or series file: quilt setup 13. distribution of patches: quilt diff --combine and distribute the combined diff file, or distribute the patches/ directory content Helper files/scripts ==================== backup-files A simple utility that creates / restores / removes backup files. dependency-graph A utility to compute patch dependencies from the QUILT_PC metadata. edmail A utility to manipulate the headers of an Internet mail message. guards Convert a series file with conditional statements into a series file as expected; see the guards(1) manual page. inspect A script to create a series file from an rpm spec file (including a list of tar files). patchfns utilfns Collections of functions. remove-trailing-ws A utility to report trailing whitespace, and remove trailing whitespace from files. quilt-0.63/doc/quilt.1.in0000644000175000017500000003042312332477113015503 0ustar mquinsonmquinson.\\" Created by Martin Quinson from the tex documentation .\\" .TH quilt 1 "Dec 17, 2013" "quilt" .SH NAME quilt \\- tool to manage series of patches .SH SYNOPSIS .B quilt [-h] command [options] .SH DESCRIPTION Quilt is a tool to manage large sets of patches by keeping track of the changes each patch makes. Patches can be applied, un-applied, refreshed, etc. The key philosophical concept is that your primary output is patches. With quilt, all work occurs within a single directory tree. Commands can be invoked from anywhere within the source tree. They are of the form .B quilt cmd similar to CVS, svn or git commands. They can be abbreviated as long as the specified part of the command is unique. All commands print some help text with .B quilt cmd -h. Quilt manages a stack of patches. Patches are applied incrementally on top of the base tree plus all preceding patches. They can be pushed on top of the stack .RB ( "quilt push" ), and popped off the stack .RB ( "quilt pop" ). Commands are available for querying the contents of the series file .RB ( "quilt series" , see below), the contents of the stack .RB ( "quilt applied" , " quilt previous" , " quilt top" ), and the patches that are not applied at a particular moment .RB ( "quilt next" , " quilt unapplied" ). By default, most commands apply to the topmost patch on the stack. Patch files are located in the .I patches sub-directory of the source tree (see EXAMPLE OF WORKING TREE below). The .I QUILT_PATCHES environment variable can be used to override this location. When not found in the current directory, that subdirectory is searched recursively in the parent directories (this is similar to the way .I git searches for its configuration files). The .I patches directory may contain sub-directories. It may also be a symbolic link instead of a directory. A file called .I series contains a list of patch file names that defines the order in which patches are applied. Unless there are means by which series files can be generated automatically, it is usually provided along with a set of patches. In this file, each patch file name is on a separate line. Patch files are identified by path names that are relative to the .I patches directory; patches may be in sub-directories below this directory. Lines in the series file that start with a hash character (#) are ignored. You can also add a comment after each patch file name, introduced by a space followed by a hash character. When quilt adds, removes, or renames patches, it automatically updates the series file. Users of quilt can modify series files while some patches are applied, as long as the applied patches remain in their original order. Different series files can be used to assemble patches in different ways, corresponding for example to different development branches. Before a patch is applied (or ``pushed on the stack''), copies of all files the patch modifies are saved to the .RI .pc/ patch directory. The patch is added to the list of currently applied patches (.pc/applied-patches). Later when a patch is regenerated .RB ( "quilt refresh" ), the backup copies in .RI .pc/ patch are compared with the current versions of the files in the source tree using GNU diff. Documentation related to a patch can be put at the beginning of a patch file. Quilt is careful to preserve all text that precedes the actual patch when doing a refresh. (This is limited to patches in unified format; see .B diff documentation). The series file is looked up in the .pc directory, in the root of the source tree, and in the patches directory. The first series file that is found is used. This may also be a symbolic link, or a file with multiple hard links. Usually, only one series file is used for a set of patches, so the patches sub-directory is a convenient location. The .pc directory and its sub-directories cannot be relocated, but it can be a symbolic link. While patches are applied to the source tree, this directory is essential for many operations, including taking patches off the stack .RB ( "quilt pop" ), and refreshing patches .RB ( "quilt refresh" ). Files in the .pc directory are automatically removed when they are no longer needed, so there is no need to clean up manually. .SH QUILT COMMANDS REFERENCE @REFERENCE@ .SH COMMON OPTIONS TO ALL COMMANDS .IP \"\\fB--trace\\fP\" 8 Runs the command in bash trace mode (-x). For internal debugging. .IP \"\\fB--quiltrc\\fP file\" 8 Use the specified configuration file instead of ~/.quiltrc (or /etc/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf documentation for details about its possible contents. The special value \"-\" causes quilt not to read any configuration file. .IP \"\\fB--version\\fP\" 8 Print the version number and exit immediately. .SH EXIT STATUS The exit status is 0 if the sub-command was successfully executed, and 1 in case of error. An exit status of 2 denotes that quilt did not do anything to complete the command. This happens in particular when asking to push when the whole stack is already pushed, or asking to pop when the whole stack is already popped. This behavior is intended to ease the scripting around quilt. .SH EXAMPLE OF WORKING TREE .fam C .RS .nf work/ ├── patches/ │ ├── series (list of patches to apply) │ ├── patch1.diff (one particular patch) │ ├── patch2.diff │ └── ... ├── .pc/ │ ├── .quilt_patches (content of QUILT_PATCHES) │ ├── .quilt_series (content of QUILT_SERIES) │ ├── patch1.diff/ (copy of patched files) │ │ └── ... │ ├── patch2.diff/ │ │ └── ... │ └── ... └── ... .fi .RE .fam T The patches/ directory is precious as it contains all your patches as well as the order in which it should be applied. The .pc/ directory contains some metadata about the current state of your patch serie. Changing its content is not advised. This directory can usually be regenerated from the initial files and the content of the patches/ directory (provided that all patches were regenerated before the removal). .SH EXAMPLE Please refer to the pdf documentation for a full example of use. .SH CONFIGURATION FILE Upon startup, quilt evaluates the file .quiltrc in the user's home directory, or the file specified with the --quiltrc option. This file is a regular bash script. Default options can be passed to any COMMAND by defining a QUILT_${COMMAND}_ARGS variable. For example, QUILT_DIFF_ARGS="--color=auto" causes the output of quilt diff to be syntax colored when writing to a terminal. In addition to that, quilt recognizes the following variables: .IP EDITOR 4 The program to run to edit files. If it isn't redefined in the configuration file, $EDITOR as defined in the environment will be used. .IP LESS 4 The arguments used to invoke the pager. Inherits the existing value of $LESS if LESS is already set in the environment, otherwise defaults to "-FRSX". .IP QUILT_DIFF_OPTS 4 Additional options that quilt shall pass to GNU diff when generating patches. A useful setting for C source code is "-p", which causes GNU diff to show in the resulting patch which function a change is in. .IP QUILT_PATCH_OPTS 4 Additional options that quilt shall pass to GNU patch when applying patches. For example, recent versions of GNU patch support the "--reject-format=unified" option for generating reject files in unified diff style (older patch versions used "--unified-reject-files" for that). You may also want to add the "-E" option if you have issues with quilt not deleting empty files when you think it should. The documentation of GNU patch says that "normally this option is unnecessary", but when patch is in POSIX mode or if the patch format doesn't allow to distinguish empty files from deleted files, patch deletes empty files only if the -E option is given. Beware that when passing -E to patch, quilt will no longer be able to deal with empty files, which is why using -E is no longer the default. .IP QUILT_DIFFSTAT_OPTS 4 Additional options that quilt shall pass to diffstat when generating patch statistics. For example, "-f0" can be used for an alternative output format. Recent versions of diffstat also support alternative rounding methods ("-r1", "-r2"). .IP QUILT_PATCHES 4 The location of patch files, defaulting to "patches". .IP QUILT_SERIES 4 The name of the series file, defaulting to "series". Unless an absolute path is used, the search algorithm described above applies. .IP QUILT_PATCHES_PREFIX 4 If set to anything, quilt will prefix patch names it prints with their directory (QUILT_PATCHES). .IP QUILT_NO_DIFF_INDEX 4 By default, quilt prepends an Index: line to the patches it generates. If this variable is set to anything, no line is prepended. This is a shortcut to adding --no-index to both QUILT_DIFF_ARGS and QUILT_REFRESH_ARGS. .IP QUILT_NO_DIFF_TIMESTAMPS 4 By default, quilt includes timestamps in headers when generating patches. If this variable is set to anything, no timestamp will be included. This is a shortcut to adding --no-timestamps to both QUILT_DIFF_ARGS and QUILT_REFRESH_ARGS. .IP QUILT_PAGER 4 The pager quilt shall use for commands which produce paginated output. If unset, the values of GIT_PAGER or PAGER is used. If none of these variables is set, "less -R" is used. An empty value indicates that no pager should be used. .IP QUILT_COLORS 4 By default, quilt uses its predefined color set in order to be more comprehensible when distiguishing various types of patches, eg. applied/unapplied, failed, etc. To override one or more color settings, set the QUILT_COLORS variable in following syntax - colon (:) separated list of elements, each being of the form =[;] Format names with their respective default values are listed below, along with their usage(s). Color codes(values) are standard bash coloring escape codes. See more at http://tldp.org/LDP/abs/html/colorizing.html#AEN20229 .RS 4 .IP \\fBdiff_hdr\\fP 10 Used in 'quilt diff' to color the index line. Defaults to 32 (green). .IP \\fBdiff_add\\fP 10 Used in 'quilt diff' to color added lines. Defaults to 36 (azure). .IP \\fBdiff_mod\\fP 10 Used in 'quilt diff' to color modified lines. Defaults to 35 (purple). .IP \\fBdiff_rem\\fP 10 Used in 'quilt diff' to color removed lines. Defaults to 35 (purple). .IP \\fBdiff_hunk\\fP 10 Used in 'quilt diff' to color hunk header. Defaults to 33 (brown/orange). .IP \\fBdiff_ctx\\fP 10 Used in 'quilt diff' to color the text after end of hunk header (diff --show-c-function generates this). Defaults to 35 (purple). .IP \\fBdiff_cctx\\fP 10 Used in 'quilt diff' to color the 15-asterisk sequence before or after a hunk. Defaults to 33 (brown/orange). .IP \\fBpatch_fuzz\\fP 10 Used in 'quilt push' to color the patch fuzz information. Defaults to 35 (purple). .IP \\fBpatch_fail\\fP 10 Used in 'quilt push' to color the fail message. Defaults to 31 (red). .IP \\fBseries_app\\fP 10 Used in 'quilt series' and 'quilt patches' to color the applied patch names. Defaults to 32 (green). .IP \\fBseries_top\\fP 10 Used in 'quilt series' and 'quilt patches' to color the top patch name. Defaults to 33 (brown/orange). .IP \\fBseries_una\\fP 10 Used in 'quilt series' and 'quilt patches' to color unapplied patch names. Defaults to 0 (no special color). .RE .RS 4 In addition, the \\fBclear\\fP format name is used to turn off special coloring. Its value is 0; it is not advised to modify it. The content of QUILT_COLORS supersedes default values. So the value diff_hdr=35;44 will get you the diff headers in magenta over blue instead of the default green over unchanged background. For that, add the following content to ~/.quiltrc (or /etc/quilt.quiltrc): .nf QUILT_DIFF_ARGS="--color" QUILT_COLORS='diff_hdr=35;44' .fi .RE 4 .SH AUTHORS Quilt started as a series of scripts written by Andrew Morton (patch-scripts). Based on Andrew's ideas, Andreas Gruenbacher completely rewrote the scripts, with the help of several other contributors (see AUTHORS file in the distribution). This man page was written by Martin Quinson, based on information found in the pdf documentation, and in the help messages of each commands. .SH SEE ALSO The pdf documentation, which should be under @DOCSUBDIR@/quilt.pdf. Note that some distributors compress this file. .BR zxpdf ( 1 ) can be used to display compressed pdf files. .BR diff ( 1 ), .BR patch ( 1 ). quilt-0.63/doc/main.tex0000644000175000017500000010131512332477113015323 0ustar mquinsonmquinson%\documentclass[a4paper]{article} \documentclass{article} \usepackage{graphicx} \usepackage{subfigure} \usepackage{fancyvrb} %\usepackage{times} \usepackage[latin1]{inputenc} \usepackage{url} %\usepackage{lineno} %\linenumbers %\renewcommand{\baselinestretch}{1.5} % Change url font to textsf (and check what breaks in PDF/HTML/...) \fvset{xleftmargin=3em,commandchars=\\\{\}} \newcommand{\quilt}[1]{\textsf{quilt #1}} \newcommand{\sh}[1]{\textsl{#1}} \newcommand{\prog}[1]{\textit{#1}} \title{How To Survive With Many Patches\\ {\Large or}\\ Introduction to Quilt\footnote{ Quilt is a GPL licensed project hosted on GNU Savannah. Some ideas for this document were taken from \textit{docco.txt} in Andrew Morton's patch management scripts package~\cite{akpm02}. The text in the examples was taken from \textit{A Midsummer Night's Dream} by William Shakespeare. }} \author{Andreas Grünbacher, SuSE Labs \\ %\em{SUSE Labs, SUSE LINUX AG} \\ {\normalsize agruen@suse.de} } %\date{} \begin{document} \maketitle \thispagestyle{empty} \begin{abstract} After looking at different strategies for dealing with software packages that consist of a base software package on top of which a number of patches are applied, this document introduces the script collection \textit{quilt,} which was specifically written to help deal with multiple patches and common patch management tasks. \end{abstract} \section{Introduction} % Prerequisites: UNIX, patches, using GNU diff and GNU patch. % Why patches in the first place? In the old days, vendor specific software packages in the open source world consisted of a file with the official version of the software, plus a patch file with the additional changes needed to adapt the package to specific needs. The official software package was usually contained in a \textsf{package.tar.gz} file, while the patch was found in \textsf{package.diff.} Instead of modifying the official package sources, local changes were kept separate. When building the software package, the tar archive was extracted, and the patch was applied. Over time, the patch file ended up containing several independent changes. Of those changes, some were integrated into later versions of the software, while other add-ons or adaptations remain external. Whenever a new official version was integrated, the patch needed to be revised: changes that were already integrated in the official version needed to be split from changes that were not. A big improvement was to allow multiple patches in a vendor package, and this is also how patches are handled today: a number of patches is applied on top of each other. Each patch usually consists of a logically related set of changes. When some patches get integrated upstream, those patches can simply be removed from the vendor specific package. The remaining patches frequently continue to apply cleanly. Some of the remaining patches may have to be maintained across a range of upstream versions because they are too specific for the upstream software package, etc. These patches often get out of sync, and need to be updated. For the majority of packages, the number of patches remains relatively low, so maintaining those patches without tools is feasible. A number of packages have dozens of patches, however. At the extreme end is the kernel source package (kernel-source-\textit{2.4.x}) with more than 1\,000 patches. The difficulty of managing such a vast number of patches without tools can easily be imagined. This document discusses different strategies of dealing with large sets of patches. Patches are usually generated by the \prog{diff} utility, and applied with the \prog{patch} utility. Different patch file formats are defined as part of the specification of the \prog{diff} utility in POSIX.1~\cite{posix-2001-diff}. The most commonly used format today, \textit{unified diff,} is not covered by POSIX.1, however. A good description of patch file formats is found in the \prog{GNU diff} info pages~\cite{info-diff}. The question we try to answer in this document is how patches are best kept up to date in face of changes both to the upstream software package, and to the patches that precede them. After looking at some existing approaches, a collection of patch management scripts known as \textit{quilt} is described~\cite{quilt}, starting with basic concepts, and progressing towards more advanced tasks. % - quilt % (wet people's mouths about the features) % How exactly does this relate to many patches? \section{Existing Approaches} \label{sec:existing} The minimal solution for updating a patch is to apply all preceding patches. %\footnote{ In the kernel CVS, we have a a script called %\textit{sequence-patch} that simply applies all patches up to a %specified patch. } Then, a copy of the resulting source tree is created.\footnote{ The two copies can also be hard-linked with each other, which significantly speeds up both the copying and the final ``diffing''. If hard links are used, care must be taken that the tools used to update one copy of the source tree will create new files, and will not overwrite shared files. Editors like \prog{emacs} and \prog{vi}, and utilities like \prog{patch}, support this. } The next patch in the sequence of patches (which is the one to be updated) is applied to only one of these source trees. This source tree is then modified until it reflects the desired result. The new version of the patch is distilled by comparing the two source trees with \prog{diff}, and writing the result into a file. This simple approach is rather error prone, and leaves much to be desired. Several people have independently written scripts that automate and improve upon this process. A version control system like \prog{CVS} or \prog{RCS} may be a reasonable alternative in some cases. The version control system is brought in the state of the working tree with a number of patches applied. Then the next patch is applied. After the working tree is updated as required, a diff between the repository copy and the working tree is created (with \prog{cvs diff}, etc). In this scenario the version control system is used to store and compare against the old repository version only. The full version control overhead is paid, while only a small fraction of its functionality is needed. Switching between different patches is not simplified. % TODO: Mention some approaches here; RCS and CVS ... One of the most advanced approaches is Andrew Morton's patch management scripts~\cite{akpm02}. The author of this document found that none of the available solutions would scale up to the specific requirements of the SUSE kernel-source package, and started to improve Andrew Morton's scripts until they became what they are now~\cite{quilt}. % - Re and Rd scripts (Czech scripts using RCS, replaces the % now-obsolete rpmpatch that supports one .dif only). % - Werner's scripts % What couldn't be done: % - Patches in sub-directories % - Many patches % - Retaining documentation (akpm's scripts do part of this) % Actually merging rejects is not handled; use tools like: % - wiggle % - Other merge tools (e.g., graphical ones) \section{Quilt: Basic Concepts and Operation} \label{sec:basic} The remainder of this document discusses the script collection \textit{quilt.} With quilt, all work occurs within a single directory tree. Since version 0.30, commands can be invoked from anywhere within the source tree (the directory tree is scanned upwards until either the \textsf{.pc} or the \textsf{patches} directory is found). Commands are of the form ``\quilt{cmd}'', similar to CVS commands. They can be abbreviated as long as the specified part of the command is unique. All commands print some help text with ``\quilt{cmd -h}''. Quilt manages a stack of patches. Patches are applied incrementally on top of the base tree plus all preceding patches. They can be pushed on top of the stack (\quilt{push}), and popped off the stack (\quilt{pop}). Commands are available for querying the contents of the series file (\quilt{series}, see below), the contents of the stack (\quilt{applied}, \quilt{previous}, \quilt{top}), and the patches that are not applied at a particular moment (\quilt{next}, \quilt{unapplied}). By default, most commands apply to the topmost patch on the stack. When files in the working directory are changed, those changes become part of the working state of the topmost patch, provided that those files are part of the patch. Files that are not part of a patch must be added before modifying them so that quilt is aware of the original versions of the files. The \quilt{refresh} command regenerates a patch. After the refresh, the patch and the working state are the same. Patch files are located in the \textsf{patches} sub-directory of the source tree (see Figure~\ref{fig:dir-layout}). The \textsf{QUILT\_PATCHES} environment variable can be used to override this location and quilt will remember this location by storing its value in the \textsf{.pc/.quilt\_patches} file. The \textsf{patches} directory may contain sub-directories, which is useful for grouping related patches together. \textsf{patches} may also be a symbolic link instead of a directory. A file called \textsf{series} contains a list of patch file names that defines the order in which patches are applied. Unless there are means by which series files can be generated automatically (see Section~\ref{sec:rpm}), they are usually provided along with a set of patches. In \textsf{series}, each patch file name is on a separate line. Patch files are identified by pathnames that are relative to the \textsf{patches} directory; patches may be in sub-directories below the \textsf{patches} directory. Lines in the series file that start with a hash character (\texttt{\#}) are ignored. When quilt adds, removes, or renames patches, it automatically updates the series file. Users of quilt can modify series files while some patches are applied, as long as the applied patches remain in their original order. Different series files can be used to assemble patches in different ways, corresponding for example to different development branches. \begin{figure} \begin{center} \begin{minipage}{6cm} \begin{small} \begin{Verbatim} work/ -+- ... |- patches/ -+- series | |- patch2.diff | |- patch1.diff | +- ... +- .pc/ -+- applied-patches |- patch1.diff/ -+- ... |- patch2.diff/ -+- ... +- ... \end{Verbatim} \end{small} \end{minipage} \caption{Quilt files in a source tree.} \label{fig:dir-layout} \end{center} \end{figure} Before a patch is applied (or ``pushed on the stack''), copies of all files the patch modifies are saved to the \textsf{.pc/\textit{patch}} directory.\footnote{ The patch name with extensions stripped is used as the name of the sub-directory below the \textsf{.pc} directory. \prog{GNU patch}, which quilt uses internally to apply patches, creates backup files and applies the patch in one step. } The patch is added to the list of currently applied patches (\textsf{.pc/applied-patches}). Later when a patch is regenerated (\quilt{refresh}), the backup copies in \textsf{.pc/\textit{patch}} are compared with the current versions of the files in the source tree using \prog{GNU diff}. Documentation related to a patch can be put at the beginning of a patch file. Quilt is careful to preserve all text that precedes the actual patch when doing a refresh. The series file is looked up in the root of the source tree, in the patches directory, and in the \textsf{.pc} directory. The first series file that is found is used. This may also be a symbolic link, or a file with multiple hard links. Usually, only one series file is used for a set of patches, so the \textsf{patches} sub-directory is a convenient location. While patches are applied to the source tree, the \textsf{.pc} directory is essential for many operations, including taking patches off the stack (\quilt{pop}), and refreshing patches (\quilt{refresh}). Files in the \textsf{.pc} directory are automatically removed when they are no longer needed, so usually there is no need to clean up manually. The \textsf{QUILT\_PC} environment variable can be used to override the location of the \textsf{.pc} directory. \section{An Example} This section demonstrates how new patches are created and updated, and how conflicts are resolved. Let's start with a short text file: \begin{small} \begin{Verbatim} Yet mark'd I where the bolt of Cupid fell: It fell upon a little western flower, Before milk-white, now purple with love's wound, And girls call it love-in-idleness. \end{Verbatim} \end{small} New patches are created with \quilt{new}. A new patch automatically becomes the topmost patch on the stack. Files must be added with \quilt{add} before they are modified. Note that this is slightly different from the CVS style of interaction: with CVS, files are in the repository, and adding them before committing (but after modifying them) is enough. Files are usually added and immediately modified. The command \quilt{edit} adds a file and loads it into the default editor. (The environment variable \textsf{EDITOR} specifies which is the default editor. If \textsf{EDITOR} is not set, \prog{vi} is used.) \begin{small} \begin{Verbatim} \sh{$ quilt new flower.diff} Patch flower.diff is now on top \sh{$ quilt edit Oberon.txt} File Oberon.txt added to patch flower.diff \end{Verbatim} \end{small} Let's assume that the following lines were added to \textsf{Oberon.txt} during editing: \begin{small} \begin{Verbatim} The juice of it on sleeping eye-lids laid Will make a man or woman madly dote Upon the next live creature that it sees. \end{Verbatim} \end{small} The actual patch file is created (and later updated) with \quilt{refresh}. The result is as follows:\footnote{ Timestamps in patches are omitted from the output in the examples. } \begin{small} \begin{Verbatim} \sh{$ quilt refresh} \sh{$ cat patches/flower.diff} Index: example1/Oberon.txt =================================================================== --- example1.orig/Oberon.txt +++ example1/Oberon.txt @@ -2,3 +2,6 @@ It fell upon a little western flower, Before milk-white, now purple with love's wound, And girls call it love-in-idleness. +The juice of it on sleeping eye-lids laid +Will make a man or woman madly dote +Upon the next live creature that it sees. \end{Verbatim} \end{small} Now let's assume that a line in the text has been overlooked, and must be inserted. The file \textsf{Oberon.txt} is already part of the patch \textsf{flower.diff}, so it can immediately be modified in an editor. Alternatively, \quilt{edit} can be used; it simply opens up the default editor if the file is already part of the patch. After the line is added, we use \quilt{diff -z} to see a diff of the changes we made: \begin{small} \begin{Verbatim} \sh{$ quilt diff -z} Index: example1/Oberon.txt =================================================================== --- example1.orig/Oberon.txt +++ example1/Oberon.txt @@ -2,6 +2,7 @@ It fell upon a little western flower, Before milk-white, now purple with love's wound, And girls call it love-in-idleness. +Fetch me that flower; the herb I shew'd thee once: The juice of it on sleeping eye-lids laid Will make a man or woman madly dote Upon the next live creature that it sees. \end{Verbatim} \end{small} A diff of the topmost patch can be generated with \quilt{diff} without arguments. This does not modify the actual patch file. The changes are only added to the patch file by updating it with \quilt{refresh}. Then we remove the patch from the stack with \quilt{pop}: \begin{small} \begin{Verbatim} \sh{$ quilt refresh} Refreshed patch flower.diff \sh{$ quilt pop} Removing flower.diff Restoring Oberon.txt No patches applied \end{Verbatim} \end{small} Next, let's assume that \textsf{Oberon.txt} was modified ``upstream'': The word \textit{girl} did not fit very well, and so it was replaced with \textit{maiden.} \textsf{Oberon.txt} now contains: \begin{small} \begin{Verbatim} Yet mark'd I where the bolt of Cupid fell: It fell upon a little western flower, Before milk-white, now purple with love's wound, And maidens call it love-in-idleness. \end{Verbatim} \end{small} This causes \textsf{flower.diff} to no longer apply cleanly. When we try to push \textsf{flower.diff} on the stack with \quilt{push}, we get the following result: \begin{small} \begin{Verbatim} \sh{$ quilt push} Applying flower.diff patching file Oberon.txt Hunk #1 FAILED at 2. 1 out of 1 hunk FAILED -- rejects in file Oberon.txt Patch flower.diff does not apply (enforce with -f) \end{Verbatim} \end{small} Quilt does not automatically apply patches that have rejects. Patches that do not apply cleanly can be ``force-applied'' with \quilt{push -f}, which leaves reject files in the source tree for each file that has conflicts. Those conflicts must be resolved manually, after which the patch can be updated (\quilt{refresh}). Quilt remembers when a patch has been force-applied. It refuses to push further patches on top of such patches, and it does not remove them from the stack. A force-applied patch may be ``force-removed'' from the stack with \quilt{pop -f}, however. Here is what happens when force-applying \textsf{flower.diff}: \begin{small} \begin{Verbatim} \sh{$ quilt push -f} Applying flower.diff patching file Oberon.txt Hunk #1 FAILED at 2. 1 out of 1 hunk FAILED -- saving rejects to file Oberon.txt.rej Applied flower.diff (forced; needs refresh) \end{Verbatim} \end{small} After re-adding the lines of verse from \textsf{flower.diff} to \textsf{Oberon.txt}, we update the patch with \quilt{refresh}. \begin{small} \begin{Verbatim} \sh{$ quilt edit Oberon.txt} \sh{$ quilt refresh} Refreshed patch flower.diff \end{Verbatim} \end{small} Our final version of \textsf{Oberon.txt} contains: \begin{small} \begin{Verbatim} Yet mark'd I where the bolt of Cupid fell: It fell upon a little western flower, Before milk-white, now purple with love's wound, And maidens call it love-in-idleness. Fetch me that flower; the herb I shew'd thee once: The juice of it on sleeping eye-lids laid Will make a man or woman madly dote Upon the next live creature that it sees. \end{Verbatim} \end{small} \section{Further Commands and Concepts} This section introduces a few more basic commands, and then describes additional concepts that may not be immediately obvious. We do not describe all of the features of quilt here since many quilt commands are quite intuitive; furthermore, help text that describes the available options for each command is available via \quilt{\textit{cmd} -h}. The \quilt{top} command shows the name of the topmost patch. The \quilt{files} command shows which files a patch contains. The \quilt{patches} command shows which patches modify a specified file. With our previous example, we get the following results: \begin{small} \begin{Verbatim} \sh{$ quilt top} flower.diff \sh{$ quilt files} Oberon.txt \sh{$ quilt patches Oberon.txt} flower.diff \end{Verbatim} \end{small} The \quilt{push} and \quilt{pop} commands optionally take a number or a patch name as argument. If a number is given, the specified number of patches is added (\quilt{push}) or removed (\quilt{pop}). If a patch name is given, patches are added (\quilt{push}) or removed (\quilt{pop}) until the specified patch is on top of the stack. With the \textsf{-a} option, all patches in the series file are added (\quilt{push}), or all applied patches are removed from the stack (\quilt{pop}). \subsection{Patch Strip Levels} Quilt assumes that patches are applied with a strip level of one (the \textsf{-p1} option of \prog{GNU patch}) by default: the topmost directory level of file names in patches is stripped off. Quilt remembers the strip level of each patch in the \textsf{series} file. When generating a diff (\quilt{diff}) or updating a patch (\quilt{refresh}), a different strip level can be specified, and the series file will be updated accordingly. Quilt can apply patches with an arbitrary strip level, and produces patches with a strip level of zero or one. With a strip level of one, the name of the directory that contains the working tree is used as the additional path component. (So in our example, \textsf{Oberon.txt} is contained in directory \textsf{example1}.) \subsection{Importing Patches} The \quilt{import} command automates the importing of patches into the quilt system. The command copies a patch into the \textsf{patches} directory and adds it to the \textsf{series} file. For patch strip levels other than one, the strip level is added after the patch file name. (An entry for \textsf{a.diff} with strip level zero might read ``{\small \verb|a.diff -p0|}''.) Another common operation is to incorporate a fix or similar that comes as a patch into the topmost patch. This can be done by hand by first adding all the files contained in the additional patch to the topmost patch with \quilt{add},\footnote{ The \prog{lsdiff} utility, which is part of the \textit{patchutils} package, generates a list of files affected by a patch. } and then applying the patch to the working tree. The \quilt{fold} command combines these steps. \subsection{Sharing patches with others} For sharing a set of patches with someone else, the series file which contains the list of patches and how they are applied, and the patches themselves are all that's needed. The \textsl{.pc} directory only contains quilt's working state, and should not be distributed. Make sure that all the patches are up-to-date, and refresh patches when necessary. The \textsf{--combine} option of \quilt{diff} can be used for generating a single patch out of all the patches in the series file. \subsection{Merging with upstream} The concept of merging your patches with upstream is identical to applying your patches on a more recent version of the software. Before merging, make sure to pop all your patches using \quilt{pop -a}. Then, update your codebase. Finally, remove obsoleted patches from the series file and \quilt{push} the remaining ones, resolve conflicts and refresh patches as needed. \subsection{Forking} \label{sec:forking} There are situations in which updating a patch in-place is not ideal: the same patch may be used in more than one series file. It may also serve as convenient documentation to retain old versions of patches, and create new ones under different names. This can be done by hand by creating a copy of a patch (which must not be applied), and updating the patch name in the series file. The \quilt{fork} command simplifies this: it creates a copy of the topmost patch in the series, and updates the series file. Unless a patch name is explicitly specified, \quilt{fork} will generate the following sequence of patch names: \textsf{patch.diff}, \textsf{patch-2.diff}, \textsf{patch-3.diff},\dots \subsection{Dependencies} \label{sec:dependencies} When the number of patches in a project grows large, it becomes increasingly difficult to find the right place for adding a new patch in the patch series. At a certain point, patches will get inserted at the end of the patch series, because finding the right place has become too complicated. In the long run, a mess accumulates. To help avoid this by keeping the big picture, the \quilt{graph} command generates \textit{dot} graphs showing the dependencies between patches.\footnote{ The \quilt{graph} command computes dependencies based on which patches modify which files, and optionally will also check for overlapping changes in the files. While the former approach will often result in false positives, the latter approach may result in false negatives (that is, \quilt{graph} may overlook dependencies). } The output of this command can be visualized using the tools from AT\&T Research's Graph Visualization Project (GraphViz, \url{http://www.graphviz.org/}). The \quilt{graph} command supports different kinds of graphs. \subsection{Advanced Diffing} Quilt allows us to diff and refresh patches that are applied, but are not on top of the stack (\quilt{diff -P \textit{patch}} and \quilt{refresh \textit{patch}}). This is useful in several cases, for example, when %\begin{itemize} % %\item When the topmost patch has been modified but the changes are not %yet completed, refreshing the patch would leave a patch file that is in %an inconsistent state. Without that, the patch cannot be removed from %the stack, or else the changes would be lost. % %\item Popping patches and then pushing them again results in modified %time stamps. This may trigger time consuming recompiles. % %\item It is simply convenient to be able to fix small bugs in patches %further down in the stack without much ado. % %\end{itemize} % patches applied higher on the stack modify some of the files that this patch modifies. We can picture this as a shadow which the patches higher on the stack throw on the files they modify. When refreshing a patch, changes to files that are not shadowed (and thus were last modified by the patch that is being refreshed) are taken into account. The modifications that the patch contains for shadowed files will not be updated. The \quilt{diff} command allows us to merge multiple patches into one by optionally specifying the range of patches to include (see \quilt{diff -h}). The combined patch will only modify each file contained in these patches once. The result of applying the combined patch is the same as applying all the patches in the specified range in sequence. Sometimes it is convenient to use a tool other than \prog{GNU diff} for comparing files (for example, a graphical diff replacement like \prog{tkdiff}). Quilt will not use tools other than \prog{GNU diff} when updating patches (\quilt{refresh}), but \quilt{diff} can be passed the \textsf{-{}-diff=\textit{utility}} argument. With this argument, the specified utility is invoked for each file that is being modified with the original file and new file as arguments. For new files, the first argument will be \textsf{/dev/null}. For removed files, the second argument will be \textsf{/dev/null}. When \quilt{diff} is passed a list of file names, the diff will be limited to those files. With the \textsf{-R} parameter, the original and new files are swapped, which results in a reverse diff. Sometimes it is useful to create a diff between an arbitrary state of the working tree and the current version. This can be used to create a diff between different versions of a patch (see Section~\ref{sec:forking}), etc. To this end, quilt allows us to take a snapshot of the working directory (\quilt{snapshot}). Later, a diff against this state of the working tree can be created with \quilt{diff -{}-snapshot}. Currently, only a single snapshot is supported. It is stored in the \textsf{.pc/.snap} directory. To recover the disk space the snapshot occupies, it can be removed with \quilt{snapshot -d}, or by removing the \textsf{.pc/.snap} directory manually. \subsection{Working with RPM Packages} \label{sec:rpm} Several Linux distributions are based on the RPM Package Manager~\cite{max-rpm}. RPM packages consist of a spec that defines how packages are built, and a number of additional files like tar archives, patches, etc. Most RPM packages contain an official software package plus a number of patches. Before these patches can be manipulated with quilt, a series file must be created that lists the patches along with their strip levels. The \quilt{setup} command automates this for most RPM packages. When given a spec file as its argument, it performs the \textsf{\%prep} section of the spec file, which is supposed to extract the official software package, and apply the patches. In this run, quilt remembers the tar archives and the patches that are applied, and creates a series file. Based on that series file, \quilt{setup} extracts the archives, and copies the patches into the \textsf{patches} sub-directory. Some meta-information like the archive names are stored as comments in the series file. \quilt{setup} also accepts a series file as argument (which must contain some meta-information), and sets up the working tree from the series file in this case. \section{Customizing Quilt} Upon startup, quilt evaluates the file \textsf{.quiltrc} in the user's home directory, or the file specified with the \textsf{--quiltrc} option. This file is a regular bash script. Default options can be passed to any command by defining a \textsf{QUILT\_\textit{COMMAND}\_ARGS} variable (for example, \textsf{QUILT\_DIFF\_ARGS="--color=auto"} causes the output of \quilt{diff} to be syntax colored when writing to a terminal). In addition to that, quilt recognizes the following variables: \begin{description} \item[\textsf{QUILT\_DIFF\_OPTS}] Additional options that quilt shall pass to \prog{GNU diff} when generating patches. A useful setting for C source code is ``\textsf{-p}'', which causes \prog{GNU diff} to show in the resulting patch which function a change is in. \item[\textsf{QUILT\_PATCH\_OPTS}] Additional options that quilt shall pass to \prog{GNU patch} when applying patches. (For example, recent versions of \prog{GNU patch} support the ``\textsf{--reject-format=unified}'' option for generating reject files in unified diff style (older versions used ``\textsf{--unified-reject-files}'' for that). \item[\textsf{QUILT\_PATCHES}] The location of patch files (see Section~\ref{sec:basic}). This setting defaults to ``\textsf{patches}''. \end{description} \section{Pitfalls and Known Problems} As mentioned earlier, files must be added to patches before they can be modified. If this step is overlooked, one of the following problems will occur: If the file is included in a patch further below on the stack, the changes will appear in that patch when it is refreshed, and for that patch the \quilt{pop} command will fail before it is refreshed. If the file is not included in any applied patch, the original file in the working tree is modified. Patch files may modify the same file more than once. \prog{GNU patch} has a bug that corrupts backup files in this case. A fix is available, and will be integrated in a later version of \textit{GNU patch}. The fix has already been integrated into the SUSE version of \textit{GNU patch}. There are some packages that assume that it's a good idea to remove all empty files throughout a working tree, including the \textsf{.pc} directory. The \textit{make clean} target in the linux kernel sources is an example. Quilt uses zero-length files in \textsf{.pc} to mark files added by patches, so such packages may corrupt the \textsf{.pc} directory. A workaround is to create a symbolic link \textsf{.pc} in the working tree that points to a directory outside. It may happen that the files in the \textsf{patches} directory gets out of sync with the working tree (e.g., they may accidentally get updated by CVS or similar). Files in the \textsf{.pc} directory may also become inconsistent, particularly if files are not added before modifying them (\quilt{add} / \quilt{edit}). If this happens, it may be possible to repair the source tree, but often the best solution is to start over with a scratch working directory and the \textsf{patches} sub-directory. There is no need to keep any files from the \textsf{.pc} directory in this case. % - Patches cannot automatically be reverse applied (?) % - Does not auto-detect is a patch has been cleanly integrated % - Speed % - Push a patch that is not in the series file (after changing % applied-patches to include the full patch name)? % - Other back-ends (RCS etc.) % - Pop and push modify file timestamps, which causes recompiles. % Ccache ameliorates this. % - patchutils: Very useful: lsdiff, filterdiff, etc. \section{Summary} We have shown how the script collection \textit{quilt} solves various problems that occur when dealing with patches to software packages. Quilt is an obvious improvement over directly using the underlying tools (\prog{GNU patch}, \prog{GNU diff}, etc.), and offers many features not available with competing solutions. Join the club! The quilt project homepage is \url{http://savannah.nongnu.org/projects/quilt/}. There is a development mailing list at \url{http://mail.nongnu.org/mailman/listinfo/quilt-dev}. Additional features that fit into quilt's mode of operation are always welcome, of course. \begin{thebibliography}{XX} \bibitem{akpm02} Andrew Morton: Patch Management Scripts, \url{http://lwn.net/Articles/13518/} and \url{http://userweb.kernel.org/~akpm/stuff/patch-scripts.tar.gz}. \bibitem{quilt} Andreas Grünbacher et al.: Patchwork Quilt, \url{http://savannah.nongnu.org/projects/quilt}. \bibitem{posix-2001-diff} IEEE Std. 1003.1-2001: Standard for Information Technology, Portable Operating System Interface (POSIX), Shell and Utilities, diff command, pp.~317. Online version available from the The Austin Common Standards Revision Group, \url{http://www.opengroup.org/austin/}. \bibitem{info-diff} \textit{GNU diff} info pages (\textsf{info Diff}), section \textit{Output Formats.} \bibitem{max-rpm} Edward C. Bailey: Maximum RPM: Taking the Red Hat Package Manager to the Limit, \url{http://www.rpm.org/max-rpm/}. \end{thebibliography} % Add a "quick-reference card"? \end{document} quilt-0.63/doc/quilt.pdf0000644000175000017500000053775612332477113015534 0ustar mquinsonmquinson%PDF-1.4 %ÐÔÅØ 3 0 obj << /Length 2251 /Filter /FlateDecode >> stream xÚuXI³Û6¾¿_Á[¨* !dNãÔ8™¤â,õÞ”Žx"$q…¤,¿\ò×§¢_D t7zùº¡ïŸ¾ýA¦‘´BÉÔDO[æÂ&&Êd*t¡¢§2úÿ§[©,>­Ö:QñÓÊqÇãÇcÿ¹úŒ‹ž ªqÏ£÷®Eú+Ï~DZ7øÙûaõéégœEÒm2E’U"2k£µ’¢9Kîú°õBÉu–‰"ÏÂVË["ycªÁ·«yÞº–©©É£µN…Ôï~Û–½wˆÙ?ö ‚ÿY¥2‹ V?;¸º…«÷oxÏãññŽlü‹{öÈ£B™ÊPLš“ƒ1¤… Æp»þèÛ ÇÁ‹ÒßWN •`-ŒIùØ«\Åþ¹?ºþ•E*´P‰TÌG'QÂ3²¯J…-@¸1"×AøÛçaìÝf2_±Ø¾– 6× m#¤ Aóv;úínã}AóRµ;¦¸‘¿eõg"µï=X©ˆ~WùçÛ.ð)½«g§j°¿ÛŽhäòp½gêMžÇ/«ÄíV2æ°#“æJÃ7»ÿ{ÔHé,ÞtíP 4±æ2ÞòÐñò³ð6}u™É¦«kÏyÆA$—A¤%C Ê‘Raî½¹=J‰LÓ¶¥EÌdÜà8•ja¹ôÜp Uý/Ád6®®1ÎeŸúj}Ëøî}}à†SØÈ±£†l_Õ¡öLY›®-y°éš¦k¯v]8$èØ¸b¡9¹Ññ膗A»©%ÂÅE‘@úiȪL2 ¹Â,Kå´dÁwB¹øHs%gl\«Ù‹8èê’¥Cï¿#i’ÇŸqæÛ3—ɺ@Ù°iñù–ƒ ©ç|Ë0ò¦V7’Çvâuì7aé„ç»T›lHÈÆWyéIï”RÁØ S§¨]íyÌÎÄQ »a=í!DÐåHâ›ö‰3ÇùÐE‚çxM4‘”ñ¡>¼3Èf×çñžUî\áŒX$Cƒ½]YVèA DX`F®ÝMØ×zj—ˆ_<`]ÀÑÒÆ+žWŽ`âtàÆ¡AH ±¸6€-Oû»º³Ùz™¹@½‘l²4˜oàÇáÈé‰p)A«Zr+(\àëBbèELò £g@a/ÄzçÅHQÜ‹Ýß·©(Óv:ÅÞWšÂ"ØO‘Zuyi6ia—.ÖEn=ðdÛ  BÏ[µe‚jßÓš‹Ÿ¸Süsƒù¢?µö.ˆÀ(E© ãwYm_¹"mVwá,ÖþÒ-\Á.Ö¦áÂYSÊFŒ™:ÔNuœŠ]ëûÐûѽ<‡£ŠpXÆ)¬tüaïC3ö …  U\MQ+CDÙ9Û˜zà¾iRýͽÐd!û ÑÓ³ª'9¯žÿ…šª8gL‡£3³¥Ë>G1íæºJžCä.¨(-Tú-  B= JÕPî¢,¨i,Â\N' ƒ:€Œ)äã¿‹laëm ¾A¹ ˆœ@¶œ«;±8;P„(¸§›+Ž‘¡"yK•¦wj’ÑÈÈ+ôŽ<éýçjðåw«5$}Ì\B&ã2õ†ØãäìMœÁÅà.$À¡¨×{&¿Ô)a9~9Þ•aK!Ÿ`-EÞ·sF–¢‰Õ,øÎÁ ¤ÞÈômß5<ºD&’é¦FÁ¬íƯgí[îÌž+Ê.(FÍú,5uEÍ"—–€€Í\Ç_¨mƒM©…?7“FŸ=èÃI;ÍQe.ú/Þ?AwÊøGèOkôöW3xÜW_þ‰z蘲ŸÄÉŒ@~Úׇª Æ,k®ÊYH[ 4‡§_1Œ°{áe2Ëõ{™PK•e·b&õÞMâ–Û)z3kçŽÏ»9`F¹¹š[¿sç>Ì^·eçÎÖB39[¦:žÖݮڜ÷ö¾v¡í„žÐw•E©¾ØuŽˆPÝõÐÒ¤ê2°ó#ï¹N#¤ðö®Áž%W*ãÊ¥YQ¼»‹02ÝF.AA"(4‹ø.™ÈY…#Æ\¼ `~û*âU¨ Iíä$kª\¼û¬;¨üðîéᯠš'‘Œ¤†‡^–C’Z‘6Ú4?%Q ‹p9¡‹<:ÑÖ¶Zfq=>üñð=þ¥¥l”ŠÂZYaà /²"½þwG©ÈÂÞDâ^x„IüJäRóFþË€žƒVó+§?þþ êjãÛ@ ÿÀ§YZÄÿƒ‡1¯ƒÃÃ?tø×ÿòöG·ÒX4à„k[·œ ,¸¡*ù%…ÿAð„}H%µõáƒ1€B*ôœëB@–Íe¦ .ƒ{Áí›Ò²ÏÙùÂÐ"&`ÄЇ‚¬¡vúéÄøe¼cD ¶/æSUAÿXúû®»ö›Wpez=Óúõ{iü¿Ã|dƒê¿Ùè¡ÄòX/Òô†Gx7PlÀ*<-åÇ~¹@Áü™BМ"ƒ&h04`8òƒa4âßuɹ @ÿò¾*‡cÓPÓ_«Ý~ÄËãäß=šÒSÒ4wŒ)ß5?žQ‰WÖáCUוkxò¸ÅÜÄ/ ¹˜2ëÿ¾n­@ endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 1 0 obj << /Font << /F15 4 0 R /F16 5 0 R /F21 6 0 R /F8 7 0 R /F30 8 0 R /F29 9 0 R /F31 10 0 R /F32 11 0 R /F33 12 0 R /F27 13 0 R /F22 14 0 R /F28 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 19 0 obj << /Length 3247 /Filter /FlateDecode >> stream xÚ…YK“Û¸¾Ï¯PåDUh‚/€GïÆN9‡d73I¥Êö¦ ‰>d‚òxòëÓ/”†“= hMt£_·~y¼{÷ÑlаÈã|óxب$ un6y¦Ã8É6ûÍçà0ØïÛmcŒÍËv—dQPõ<¯éçb™:öð›Ay>O01inwi‘}+Ûûƒ;Y>7ض¬»º;2ý\޲?YÇ„¶Äé o>ÁD?b·_ÿº‰6;¥Â"“kãeR£ƒoÛmI <6¯Ý3­¬†Þ9Þ\òÏPvGËC¼$þ^ÎnlÙò™ÈÄ®î;ÇùLU^œœ±^„ëàI=íê×îëΡþ©´B!óàÐ8Ð^Gùâ8sýaÄ«<£è3H=—Ÿ¶Hw´÷¬=;Vø& A£–ù^ëÎCxkZ;ÚQh—‘) Œµ›¿t~#I‚²Ûã :k÷L"£€ßépraa÷åh÷!ñTiX¤é5ã[¸,i ÎE XÁûÏVÁZMâ¿ð2¨X³üåÏP~‡—CkeyÀFÛâI¼¾$œ,µ¶LÇÇÛ”cÍ–Gvš§Ï÷$ËîJ˜\´„z(®MM½@ázz‘"—oëàòIŽéÏ5l¢‡ÀýbH,Öô«ƒƒ-]ý­±ðÐ9¨ù=S'y…‘¼°á ߺ¶·öÐ'ò?q¹]œDÁ¾ÿ¯Eµà™áïBy ø8SÁ‰•CçÄsУ.ˆšàs£HŒcûŒ¼õ4*ÔÎ'b9t¶á¹ë/Ceý5¼@kò|‰²hf±ãÓ;Üùîc’.âbŽaQÁq:‡iø“w-ƒg‡Jå~ðVh늎G->gO^ ³ñTv<‚*×AE<_hõ”¦è±¼´ÇèW—fô¡0‰ù‘Ù•G´)2B“…FëW½0cvÒ’ñ©È⹫ÆÛø+)‹Ø(ù¬ÍÆ)?'¨XÎ$@ã$‡¹ u‹÷þ¡àñ„Ÿjˆè÷t¸º´¶JµݸêâœõQU‰$uñžs޵ßDáÏÚ²!oD"¿’›r DDgGÇD‰‚»µ{Þ<]R¿Qh^Æ•I¨†ÁeK®hP6¤ mgñ¢{ž~ó c4þ×Gq˜¨Ô[ËþÚFUfQæw]ƺ©Å Òb˜TFb8^Òxí¯ V¬Ò7.°‹cU\½ó6#c9­¸K&EñÆUHwIðçÛ'Œ‹bV1NM€Ù²±¼é²-ñ™pB:Æ{‹{(ßÝy>ÃÈ(r…ã (C˜ªðe(ÃëÐ?Ú_Ç 2\Y[Ô[jJT˜ÌðÖ3*£B­é†XC¡ßßþþðéß¡âÉçä+hÍä9 $µ½yTõmÛ#£@”=ìL*¶žJ:19ñ¾\˜ÇÊ«g`vE~­KG*³øöh=¦A?É Ÿ¸-p–„y‘x)›A@ìú‘U?'ž,2׳SÀX4¬³9ßhÊ7†óM–f”aû±§÷™¶·®êóŽ ïòà7—«Þ$¶AŒe“ bè«'^:ÁCµÃuûPà¡*Ñ^ùÛ?¼™7-%ÍB­gÅuA[gÊát‡Ïé×Ð,<˜ßFV4zkòK³gŸåa</8Ø„²s¼>ð¼–C#EiíYâñÉ'ÿÕŒUp‹%š¬¡ÜÌN¬'ïFžrÚ>oGb„˜©Š¹Pа&SÈ}à÷PV–×ÈgÂïŒàß1¿ÚS:€}Ì+æ@ƒEU $÷èS7 ·Þà‘{Œp1[a½D(?ùCQqHÓÁ,y*. ¶²{ÙZ: Þ’xs#ù‰SìãÃÕ¨CŠýYÃóOëçóЗ —ÆX­€¨ªo[‰ÛL <[†i$6±íÉ‘Æ'¨ú©c{èøxéÖ²œ‚€›NYîû¥nƕ虄Ñu,öìÞ÷÷Lû½gøîFHrŠ“"Lô=yÐ`L%Цï*°Bw]þ€û ýq°Î1À‡ã Ëa/Q¡,HlÏ ¸I5–îÉ…¢ƒ1Tb1ŠúOb°w1‘ŒNÂ>Lï‡!𽼠“u¯uL0_ÇjRÅ%mÙðÄõÍ…gT‹â`.ÞØ\×Íj*ajH÷Hf·Ñ¾/@ÃF¾ÁÖ;1ºÂO+Öíîã7cðÙþìScÌPÙq`¯`™ùÃÔW´g°2¢‹"/ðe_‘¾û¨7yXèİMÅ¡1jÁ_ÉUÔ ¼Raï²[ìzôé ¦áÑRK±„#¹2›_š†àn7Èš0•åtÀ­sÛ"1TÒ<ŸêÉó2~…$ó-<ÜÉ€JóÌ,°x¦¯Js)b&&Ÿ›À  îo5 Fé=¨BÂ%_z’$ŽèI¸æ‰òÓFy4¿ƒ©~8v¼Öú„. ý<@ÂͪFŽLf»fF<€XQ#ÌX¹>›FØ(‘ªÌP±Ï8È=Dq DCã•oò«°h¤p7T»Àýº1u“ÛÀ˜pgß\E¹ÈÁ— Ç)°ô¼"ÚZË&¨Ý¹`[ °if:ÿÃ*" ãlÂ(·­Ÿç¡Æ¾  |è; 2bÝM((ÖSoH Q†QVÙS¬UIž®nÏ„¸ò”râØRmð¡Š:Q cë‘î@M%8 A²£þäKˆ]ô9„ 5‹æâ9—¾V¾,da"–¾ K<"Å ›˜(¶_Ïâ᪱I”ºÛ[Ù£E'ÖPÛܱƒ‰«¼„’W €«åeì[BA4#q‘{ Zõz/UbB?AWkñ$•âëÞ.ÞuÇÅsÁw‘‡¾á{q£my±©Ÿ¦Þî-HŽ‹0Ž'3ýõ_+ óÀ{¯± ÕlÆÿØBýT·Î,žÊ±¹ ·œ_3;Ó ‰¸¾+¿ÑƒÂ¼lˆuSËP‚|”…ê¦EH0=˜=Þò¬*ÇD`Å`ݘk]"áJ—ÄDt‰‹¹±>ô—ãÉ÷ÜŒž¾8z¾„FRU<¯i.¨úáÉã¤ÛÈΑAi¹CxNmËî y‘‹ç>&ãa‹8©dÖ#<ºçÿ0©p€3'>âê#wòð»ø· o¸pö_Ûß;fQ‘3 ã4ÙìŠ0ÍS–îZ wQøàpP+‚©Z=†œ·¤ ;‚J@ý¢’”ÿ鎈\?x eçQ’;>MñD8¡ëÒƒ\É.­ ÖÁÍé¯È=ei,Yܾ’[•ã|?1~”sñ—3 êŸÀñç$èh©–tÁ¤–¸h«‰JxÆyqJwf®„(ùÿ¯ WGu¦rQD†ÕÔ£0©×q12â,x ”ø^À,¯„”Çt i¢©çŒî¬ãàÃCãˆðÔÇæoæ_ÄàG>Cض¬ÜŠÄ9ä‘éïIx7ŒTך`àz… Ô3Y±¬T2¯pc½¶|å\‡zÎjgúcyúWãêƒ T•™›/º ”ÍdÃÈÌ}áëì¹ËŠ0+ 6¤&ÔJù„­ÿ1îºG endstream endobj 18 0 obj << /Type /Page /Contents 19 0 R /Resources 17 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 17 0 obj << /Font << /F8 7 0 R /F34 20 0 R /F32 11 0 R /F7 21 0 R /F23 22 0 R /F22 14 0 R /F28 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 25 0 obj << /Length 3067 /Filter /FlateDecode >> stream xÚ¥YIoÜȾëW4&‡P€›f±X\’“mØÈÌ’3ÛªY­&Ì&Û\¬Ñ¿ÏÛŠ›(Û@N¬½^½å{ _ß^½|—î2?‹Ãxw{Ü©(õîb“ø¡6»Ûb÷Ñû½¶×{%^säo’sÓõÜÊ‹o×&öòú` ¹\Ú&?\‡©w²•ò}U­}àöš¶oê¿ËÌ%ïy‹\×ù½Ý_¾ý÷n¯"?‹"ø*?3BÛÙÖ¸©Ð±×ÚòÒãQÚxÕgÿzåݽ0Ÿý©iyšcý‰¨‚Vq­¼æzÇ:7áswl†ºàfÊ岺!¾àQ×{åݼ» éb¦”U~WYzD°$¿kª¡/›)PÚ{À=ÍPÜíye¹9\øÛ7ò¥kTèu¢ØÊOŠ<ÛÚ¯CÙZÇ9^<íÕÞ͇›·Üú‚ël[Ûjß5C{Ø$öÂÒürmŒRyÌ#9PéÔëú¼í­tÎHg^y-`Nà <éÄíIü¸| N L}YÉ‘'ûÈ­;yr~Þ¤óAD¤e‹Ö@eky¨&jxôc*'¼|§CÐ}_Gqˆfê”-æ5ÈW…Æ{?”Uÿë½ ïuÞ•ÈíÄxoÐzV;è?°ñ;‰ ¸š£„ùš¹­Á%¡òÓPñ%¢¤(¼s^Ö…m™FÖS=ê©öŠ…’ŠòG^Qv‡¡ël7¾j'òÔ[–šª²‡‰,Íè ã‡*úˆ®¯øhÿ)ùû0|X»äýŸeBêÞ:fÊË« •(xû…—È;CÛÉ4ì.kžÌùÓ•õ=N Ó‡¾iyªo­E ;½)A<ú íÖ¶>Ž_/žGCs”)ˆkÀ§¼æêXâY¨0` ›JÁǶ9c È%¼x|8YÖ´u v"ÓéM¸\d¢<12„gpëS`‚q ¢¾O7Cïq¡ì¢›²;6 ®ðÔ¨k"¬pƒÔhË[z$2¶¡aa××IÛb†/V =w Iê«Äi„Ïsxª*öC£Ýºæ»g†ÐLS·qÝÄ“#u4_6Ó€éÉã3pOù,çÐd¾Î²¥ ßL‚Ž3T/å!W‘{IÀfãÌ86홇>)m1%L|¥ ;á ‡s±ñ l=t«y·h–gð-_Iàûßü÷†œn‚–"D<ÊD^‹Flj¯“åCÑ÷^Þݵö[™32ã@Çߪ©ï—#ôtl,}ŠÛxÉ[Fì »{h 6.2’ N uùu@;M2ã½ Ø@ì¹ jïÒ–“óüj΂d'[]Àzû—Ì>à`ë91Å)\´–¬G)ÑaûÓSi*Í4ù§W@£YéÕ{92Œ$\鸓óÜ¢¸Mê’žÁw t,J7Š”÷i?‹˜Bç·°q¹T%Y5tí&ïàú(g×üí›ËóxÇŠ‹¢Cã.ï¤å°$ö.ÕÐq‹ ›†ÀòlQ¢ÒPwA¿‰´ÓN˜cÅ£&ÒŽ¡;1,ÅL)ÞÈ!—ò.lÐsâ6ÀnÆË0N /·bX¯$Žë‘‚§¢ŽߤÊ-GyÁî†T9ŒÍ¡¹ˆY|ZÆ¡yñÇ~Ž@~?“- Éë°øVðûiΩ$×§g°†”¾àI.ü4‹ðsh¥*^ªÄ‘D†Ú>²ˆ#A@ƒ|PÃÚ6 )# )§¥ í¶-­L"xTÖµ·9‘¦~¯e…ä §ÒÂ(m NE#ˆû­\# Wq'²ÄÓ[Öï`¶híÊlXJÉÞ`iÊyîM:¡Z?)˜Lx l‚lö¦3ýÔ˜#É»#¾7ïŒÐ'þѹñƹý¦ ? Ò•¡hHÈ;çÔec4“;.¢ûê¦æ+°ÀhÅü ï2¡^¾.Ilûò0°ß„ás3‹„aþ9e‹À†ÂõkaÞd tœ|{h’z㼡~VÔqèCÖ¶2ã¼ÑëG¦½°Ç| À9‚ìŽl ibpôá÷ü&^*éEó$*ɺŽI6Ì㦓„Cz¦êìùŽDÀøÏ“Å›ø†Þq§”AÆDh¸˜Ÿpæa|æ t€§¼¾·Å §5M7M¦<)÷¸$¢ƒP´ânO»ø ²4æ¯iC ÄÝ'f,Ì&¾@p$YnYpj…‚̽9…ã’“fL9µàÒðHbR5ÝJaê½+ù°$dáÑÐá“aÚ˜ìl¥Eï‚o>?2!]€î:Y;ùoÜPðÛ¦qð2wæT®(ä>¶ß€á´>7Ü&AË™âȇrI]Ryʤ„‘º ´å}Yçs‘r¿nsÃ(йJº·R“2à'–­j­Ý "önÏ–}bÕ"€½÷¶Æj€íx GžMÀÌñÕ±Çl WptM{é^DMÃ’¹“6Þ6®™ëùVÊi¼vúÍJùÙ>hF(A¼õ;t6*Iô% Q”PÓÌ3é&zãHÿ87‡dF„ý ZðxÊRT8"¶]êMãð2á&À(‚ñ#Õ~´wåý@ ŠŒ§\ü•>§Bt9ÒÞøõ·ëBd\yõööêëÁNíB ™äÖ:Ð~’f»Ãùêãç`WÀ$È ²Øt÷@KÏ»2aŒªÝÍÕû«×X»]ª-äÊ!ø{<ÊÀJÜûê:¼Û7ÿz{³áæb?JÆp…ýè·²mê™O…'s(Ù–JÒGùИP:CG -òAVG]íĶ-à£ÃèØÏ‚l \!Îf*CubÕ‚ÉÓˆ—”ž@ ó¡3^"…›–×~÷Ä;¤ì‘v 5ì `¢ìe¿º¬ŒËÆmµ]Y–+“¼ô™à'¢W‰öuïÂ$ƒ@"ýD¯Œ 'Ùk*ÚÌ2´YÔf0ýmmÖМ’ŸÇ£K)”e¯:\:°I½ö ·«¤ c„÷0Cá<»Ð4•Ìxjðt²²—²/®åFàmNQˆQ#ÐàðêÒ1a†©):4® £NU6œ· ( þ”}s|;HIH©Ñ¯ÑüÔüiR¿1…‹ÝŸåè‡ÕC7LçP|›€c.ã}\CÄy*ÃmPˆš@Ìg{npN­Ë_:ö~­7Ô-}•¥?Ô70$×”öl>²y~“1–& šÅ-‚XL, Ò‰xˆž9J‚˜ž’§(Y,U¤à[WÅæo Τ;VYqtT•+®¸0Êë\…:—:óx[é~±Ñ¢f*go@™æ¥ëïX~ èÿ„³Óda/ŒT±ñM²‚ª£ •¦‘Ý5W؃™sã©Ý/|&ZŒµ?Õ[¾,†O}!ã>ŽSï·²v—;Ê8ˆ&p”ºÃÎR?Ö«?2$ŸH¥+›«LªÕ%74pÊ;ì·Íþ«EùÐÌlBú9/oùÛFáæç5¾Kâq`ü} ™âX‘çñÑ”ƒÑÚ¢@'Œ9DV³?¸û•f?Š×3t»&-ר™9Y4Í|VÏ3k¼‚¡+ gIÚ¸Ì ¦&¤L¦˜Åv}€'x¯ ¡é~•¬€i–±âc¡U®˜M~—q½!Y¹ àBF¢\íŠÊÈš~¯à(ƒ%ÍËû«iv‚EP²A8ÿvÎLØÊVŠ9SBL½B‚0“Ì×(0¬‚™ÐýÙ–¨ôÌOо endstream endobj 24 0 obj << /Type /Page /Contents 25 0 R /Resources 23 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 23 0 obj << /Font << /F8 7 0 R /F32 11 0 R /F34 20 0 R /F33 12 0 R /F35 26 0 R >> /ProcSet [ /PDF /Text ] >> endobj 29 0 obj << /Length 2425 /Filter /FlateDecode >> stream xÚ­YKÛȾϯ rY 1Ûì_¾­w×#ˆ‘1‚`w’3"†"µ$ey€üøÔ‹)QÈeÔ¬®®îz}UÝóþþîíy‰J£Èy÷žq‰2V{Q¨4ÖÞ}áýº9µÝóÛ­špãÿÙçRjûûý_=kTjÏ×À¦Ìÿoá9dC¾+ûË¥}ÙUeO«Y˜È­Ù X 0ª¨ìé+ìú¿²_ªpÁ6MòË“g‡C]•…/ŠÑjg”ÂW Àºe¿à••æYy1ýöCâ¥àV¡[ý4VQh`E¬’8檧cWn}kíF¿ÛúÎ…›ÏǪ˜ô[ ] JÒGÕà¯ÛdüÙ·Ç.—¥CW–|"?Ž•N¬ç;­âD|ús‚lÙ•ÍÖ$”Ú1h|Þ'4›™’ÞLEÕ•ùÐv/[°‡d_ìE 6AnHϪH‹¶æZd¢yþŒé~'ê^ئÍQ7´÷|Àp%bâˆåÕUqæŒ!?áo~ì(2ãÍP¿0iŠü˜6F ƒgͼ.£]›w//”†S¦“1ªÔÖµÞ|ʆ²ã=O;8"Ÿ QŽÔª?«l/ö©lÊd¡B:¼uþ0QΆã1þ` Dþ®|„¤_ €0P.ZÒÁÙˆ“—>H®øMy‚sK+F "…ó‹ÑXµF&ÊÜ;o÷ø(øT§j؉ù âG‘^Si)L`ëúªm¤DPò#ôkV È4{YBxúØ#°²Æn®Œ³Êž#å/ûÂ€Íøz­¼ ”¸Õ¨a¢ât©àÏŒ3ùqâl¨÷ô ]YKäš2 ‰Îc¨T¶Že+F%¦ã ‹BÁ©nOUÓP!A%%0eüyÞá&f²!c¢(+· büÍÁÏÇ?Q Þ  ËŽÝÇ3„Ö85”ßaÞeÃÄž—E)EX“ÇL–MU—?)_Çe?E;ÕÌŒ-Ùu»Ä:ç¦~Ǭ5޹Â!­f7¶Ï¤VÁDÊ<Ç¡‡ßÃ(­kÉKíÀŸdøùüš¸CS;6"ÇžùæðxÓI‹âð†%d,‰4úFÕJ#eŒ¹„ë`×ÔŽôF5òc¨ lHØ×e`²ªLU.Þj%¸ÿØùÈgöd’XZ[8}é;ªSi´Ùg/ü‘Õ}Ë£s‡‡dþé_öÈËYÔÖUŽä*W½É3ZOCõê˜*kÆ“ã˜àŒ7E9ØÚÔCÅ]¬Øe]ÁÓ ñ¹ÇÌhüÒC(CýKøg¸¢IÛ`q´&…QɃ©…ñ´¿‘Ò ¿Ò°ÂˆÛCdãÊAd!\‚f=+vT6Ø sjÈ®ãÂX«\¸ÄÿµêjŠì?ýñÁ?ÇÆâ¸Ù ƒä¢†æm#ÍVÂÝ!º¢ZÔɾœ°s%›þ¹«Øé²±@·v8˜zÕTÚš4‘¢„©hà¤d¦Ž^±”1*H¿+ƒÂÔ^gmTÉ˾—"Qô±ÅBè×L¼´¹ÜÅ!>±¿ðWË»c;‚EŽê ¯|›@¦!{–±[ÞfHÕ:šc ÷äñæ™é7C7𦗬— Ía%z•Úè¢ÅÁ##z‘öV‡À^ö\ê¬Åuio1»cl/O^ëÁBkWšÇU=6¬U3BÚZx@¼'‰þ>€5áJxPWÚ lfǡ݃ssBŽ™ªÍ¥…àv³¸¿Ä‘t¹8‚£¾ðˆ“ æA 8Øbò=Qv2UBu.è.3rñ(ˆ6Êåð…0¦‘¸^ødq^—Y³†ƒXO-”= k×4FRB5fÅ­ÐáCï*¦ûüåã',K÷Èy÷ËýÝwhþÀÓÐá9hßMÁ½%òòýݯ¿^SphýïDŒ{Ϩ4ÁH®½Ü}¾{OOX‹Xw±2À¢\"oÿiÕ«:š¼Ï©ýµêÚfv)w!¸)DWT?3…)Àç†íc>Ì“%±±Xg×!r"ä|6pyJ.bd©óþÚÞ ePV'ßʲ¯^\¡`x[z8JŒ‚>rÌîÈh£M¸ù‘"6Üü"/W›A ©£-Å'À|T,ÜM?à5M¦w-؉?šRË¢Îä]É:QÙN½¹˜wX s(x€³a•ru‘m°_íÛšýY(n?•Ã=ÏwR¥ 9wºý®ç¸É>ßÞ‰Ù¯°p¿cû¡©•þ6øÀ·Ïºç 䟧8©0àà¡­eþþtuÙAϾ;áK&ñ$€*¸®{~ª\4{Gà0OfZ£v‹W#’¯˜IÉ j¥#j™¹\¸üCóx+phÉmA<½•,€07µÊtM×'¸€€õè¡É{’í×ó 84&W\¤ÑU`/+¤É‹Ôåã1«gNz,Jé±HnT›XRzfšÝöÉ]N€,tÒ/5=å–Aãä<”ûKˆXUÔZELùŸ€öAœŽh/9òmé©C endstream endobj 28 0 obj << /Type /Page /Contents 29 0 R /Resources 27 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 27 0 obj << /Font << /F36 30 0 R /F8 7 0 R /F33 12 0 R /F37 31 0 R /F7 21 0 R /F34 20 0 R /F32 11 0 R /F23 22 0 R /F22 14 0 R /F38 32 0 R /F28 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 35 0 obj << /Length 1969 /Filter /FlateDecode >> stream xÚíXKÜ6¾Ï¯Ðah0#Y$E=,;;»™Ý’ä{š±‰švç×§ŠEª»Õr¼Á"Èeû"ªºX¬*~õÒˇ›g¯Š ŒËŒgÁÃ6`i猙Ìc.dðP?„oÔá6âYî+³¹åE¸S#ªAáB†›AUFÕD=h³»ýéáëg¯„8—ÍË8aeÔ_&ÝÚÝÁ–ÿ\‘ÇYÁµé Eäl‰_ÉC8Î\8e1ç¹gMGâ®è º9G²º±é+ϦpM8ëénµÚV) PÈ¥ÉcY (õƒuhnï‡Le,TOzè»–Ö(ŽñðéV¢Ãuõ\q„(bžÍ–}õ×oÿµÀrŽßqï2¹}$ ;í¾jG6^Ó‘¨n­O†¼Þ®(±< ðù…õ¿£_^p¯ =[ˆ°ëñ8‘†£2÷îŒôüV³8Iç$ö¤¯åâÙyº”;€5 w’YìÈR«wžÄL– v—ÂáôoL.=Ìpië.¶MPC Ñä½IC¼'`~Ir¾…l¿»Þg ¨œ•Ü;ÉX ð õbEÏ…äk m ØÕÛw `›æÓb”_í²ï.¼I#zî×͹º…ˆñ8O8b|*è¤o”ù ‹¼€Ç©U´¦@+GÚöMÓcàl¾BR£;å6´jp¼NK»¿_«{¨‚,<"Þºœz់đDz˜Ã«ž†Yô/¼<_ñiÄ!ò‹T\‚ÈÆ:úêçIoܲ÷—o.ï|l”ÚÛ£ìUUÔèÚ¤©t='Ó³«û^7 q´Õ{'¿ò'·èyègR[Õ˜ÁqYc%^‘üïýŒEoC§<.ýäh¶E›åY+siܨÔÿ—è Ä˜Á…n Ô\³ó^ ÿš³væÒÐæ6‰˜a)Ã?MEè%À9]ÕêG;%a›¹E© ƒÚjÜ­€–¼8k,%/­E¶,VÄ’-z$DÉU¸~²^åÒ•Ã?ô£C[®rQàaY&P’9Yb-­É…´Æ“XJþ±¤qfÒ ‚â‚yãoÕ¿Ÿý¡øº«Õ‡çÕªvß(öì2?-·üýÿ­‰¢èR¸ôã't¹»»ûCºñ±Gü^ÐêŽßg´‚ÿpG Ø/NrÞ*ÐÓ€•:c|¢>¨Ýçáû5e^ºÎѽnÞGPñº_Tý4ìgÉt^ÿ¤>}zõ„+zhFo„O(+Ò]¤ëFA§”D+ޏûÓR¦ÃôÝŸ—3ïþ‚¤ù†²f§8þ]åĹš©»=ô 볚žF›÷öµÆ¹&÷s °ž¬p²Y©Y†Áq92ënTƒ±sAµECšÌ‰ÿ:WÃÜ-Oý§‹{óSqÇ´›&"¬¸’úHGí«Áq‡Oãµ8îk_"²¸3?Š1éîB¯0BÆ4¿®(IšÍ»ïñËDŽ=)  ¿A1€H7xà ³Æùô‰"õ7G/‹á‹ˆ^=çF_–yø¢ÁDSýdÍhÜìºR3tæe¶¬™NÞêxVÌÜö…¶Ø³†³$$ `sžŸ}lp]Ö¨!1©pönÐé|ß¿§ÂJÂi¦™JzK´™sî5Îë³  (öÔí┹m¡L·†ô4ž§ F CÑšb3u#yš¸.Ü"Á„ÿƒ{Ö`ˆs¯Xö.È_ã' >ûýz})’Åy6ƒÐôÄ ùÈiây)Ò…HæC’›ª{TN}§2]_×g›ä3G@fUÏWúžC–}j*;MSÞ ÿ7#kÍH67#ùy3róÕÃÍ/7˜?“€L@O„צ½ùá§$¨áO‹²–µ–> endobj 33 0 obj << /Font << /F8 7 0 R /F33 12 0 R /F34 20 0 R /F39 36 0 R /F36 30 0 R /F7 21 0 R /F23 22 0 R /F22 14 0 R >> /ProcSet [ /PDF /Text ] >> endobj 39 0 obj << /Length 1940 /Filter /FlateDecode >> stream xÚÕËŽÜ6잯¤2‹ÆŠ-ù¹=%m‚¤(’4Ø"(šœ±fÇY?¦¶¼Óýû’"å±g¼IÚKÑ“)Š”HŠO?»zðä…ŠW©Èâ8\]mWA‹@ÊU%BªhuU¬~_¿2^$£õVWAþmÊéS•ÆTšàƒîîx[µÝ=¾øãê§•¿ò_dQFÇ>ÓÛ¶cžº¬n¼Ã®4ú1!šö@À~èöãÉ¥Ùñ}í­~Ô3¶šb~CJ7ôŠ>ýN#“µÍF_Ú‹î½r‡}ÊcØÎµpÒWZïËæšVúN{UY°îU^K/ñ¾t6©ó={Ø:çsÛÎY{DÕyQÝX´F/üëè(£Aý—3|y˸M§s3tg&uÊõZÓ³=/ }ô¸‰ðDQ™„ëAMðôVXÒ­ð€¿#ü°'-€17ÖÑ‹ž‚”÷¼ æ5ÉÓ—†No;ÝïΟ&ò…”‰ãíãÀjßðEè3Ú¦™n'82ìL-zË a’ÍͱíÚ¨•b6®{“[¶ÂߣW ©;HNÕz2R»?×K%"ˆY.ùÐlR¼,I†9(†¸Jˆð[ŠD¾Á™åfUä$ ¼#BÍI ²›¦L¹]ãä˜s öN¿Ïß^··cB<¹ñ´b¼ƒÚÕv#õ›ºka c1±„W ˜øu;QHsŽÍ÷ûª$§?MV2»œg«× ¡â)®+m°¢))×yßX_”T” ÚWðFÊ=ãÎViOM*Ât$? gå|Û˜0âl†ä‡@…þ7˜ë‡—ÓЇMËÞv¬¤ g&Eà‰…wÁJfBÉd'/LÓu¡9 a”‰ÁÛ «á®Ž¿ª²ýd˦ |ßui&t¨*.:½¯òæ{&15UA* ¶ œ 5M݈…7•ˆã¯H(É›1””„ô”œØcÓR‚Ï˦¿\ðs™ˆ8ŒçQú›6®6w7®ËàÆã­ˆ>)Æ[K®Ÿøaؗű߻\ªêÿ¿†0;iéQÿYKø¹p–®QÃÆxæÐCJ8wš(‚2¶àÞ;‚õqo£‰TlX>Ã8D'²·U-”áŽp˜€îXˆJçX‹ÓëWªÒõ{[¿p.$Ó1ƒ;w?ôKÕÜ3q&ç~:Õ!±:@üÞ§FÅgìwÐgþEÑK2!}µTô†¥B0ÊŒ¦{ÌG»R ðµ6'rlÛª"•¨Á€=¨`CeËe%UÙ—êåĨŸ)WOñù¾X®˜ØVž#qéââ¼nM¹^Í Ñ}Ð÷ÅÓW??ÿ‘˜Å•b‰—l—:MŒßGOô<×1|ÒÃQW6_)5WÛ·Ëm®üÚf×ÕaN>ø‘¯È-›³´áma3øÊbý {Z˜ÙîsÒe†ºlòö ös¶A…ÅÆ‚•mŠÃÔI†´coH§¤<úàÖ.玒fÀ°õ°Ïüõ[[×–ØmE B‘…áIE‰#I¢"À’ èR-¬À -°¬ÙP‘‘²m5¤Ç}ÎC"ºo ò3Ðâ“PE ò¶ ! íÁ1Â!de ±¸+Ý †| ðÑB=ᬉPx¶‚Œ “ \³ù  ´XœY/„ ŒC};X?±ÈN3v‹ã/¢´5Í8§ÄéqN2~¾#¾ª8&È’^.Š|(m¯Ï6‰­F‡žq#èÂ騭HwìØ’ØNê°¬£¥Ê&:#·+RIpXpM«5ÀÓÙ –4'ñññqá&/žƒƒ‘µôì`ö88›ƒásÓ–gDzh­$à £.ɇc¡‰=1D­kݵ_X€ï@• œ>qiæsÔ3ïÆª%¶ßÁ=ÞVu»°µϵžlY‡ܨ[z®Y ‡¾O¥/ËðWö'|ûá8gÇŸº‡÷ ƒˆ]8&ÞŒ¢:!Çì E¹(˦ƒ){àkÚå©¥ a5㜬oÄ’OiR™™ˆ¦”©ÿE»Ç)rš@H¶„eÃD‚û,°‘LrÞÈ{›™)‘ÉÓTƒü{kkgX-¦›DøAzL7äm¡žBw“fí–Û0k®_Úæ›û[ JíÀVd„fܳÿÔÔ˜wX+ –/è¦|¥K=ãû-è}ŽÓØb÷"¡' ì_´/w/\3ÿ“.f®HL™]"å!F²ϯü Dué¹ endstream endobj 38 0 obj << /Type /Page /Contents 39 0 R /Resources 37 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 37 0 obj << /Font << /F36 30 0 R /F8 7 0 R /F33 12 0 R /F39 36 0 R /F34 20 0 R >> /ProcSet [ /PDF /Text ] >> endobj 42 0 obj << /Length 1948 /Filter /FlateDecode >> stream xÚ•Ù®Û¶ò=_aਠD¬¸hKžÒÞ7EÅ)Š¢íƒŽDÇìÑâ«å8ùûÎpHÙ²é“öE"‡ÃÙ93ä·¯¾y/ÓMΊ4U›‡ý†§œ)žlÒ$cB&›‡zóûös÷´‹‘lÿÃéÿþ݇¿ÿ/ˉþ‚íþ|øao"³")h¯ÛÐÏ«ßÓßÁ éK’QDÿ±|6ÝGú/]M#M¦žþ{Óhýô¨‡¾cÓ§‰æJ’œ$yw<6F×ncÓŸôÀj³wòü'ñ¾*]¿%@§u=zÖûA@áHø›÷ù¦‹‰-qÁ²XÂ?c…”Ž×~ÒÃ.’¹‚ÍQY×V ™ƒäMðÆtz$ÚAÏ;‘oõ0j%~@öÌg*Pϲú#æIO;‘m­N;ŽPy+«JX,3¿Œ .Xš§å§Ç]de"Ó)Š,ñè¯Að"CI`)1-…ºœ´uJ$ ÎR•‚½8øÆEYEÊí±œ*Ôã@Ó“™!SN•{®ÿŸM3¾óT@Θ.š3G³¸ˆü(/€hr¥àÇŒ¿¢pp¨k3]G\(îow®d[º«­?¢U4Éá6jï¢p(œç,¡º²ÁÉ9ÐLßÑj¿X9ÏYÊå?…œ%Å ô©4Ýø& 3H«X§k{ÿ¦±ÚrxúÚàýN=¸ÃnÃ}s•W¾›ÆŸqÝ4oB¾ù0h4Ñ6›Ñ¯1ÓäSËIpš»K¼‘ýVCq{ZÓí¨Vã¬$${Šç¿þÎáv+¼óñ·C^Dû®b—Ÿ’° » 'kø8·šj#6‰Ú~Ø»% òÇãH|tÕ´ÃÔ Ê¥ˆp{\_¤×;¾Ë¥W;WÅÏÕé²®-I €¯oIŸ*®¼…øw@0ž]<$$œ°ÑÎ ä4ä%øÓuñeÖ)$È" ±¾(‹fzÉýÈÖ‚ÚNqég;u.αþÈ?Èâ–.LJÑ‘ÇLåÉU;aÛ&èòœiqxG?|@×%ñ3.еiÛ†°Î´ùÙ´/°NKRbM¦Åô2oÆ”à·"ÌT%MCSêÜ`¨5B^§hr«Gçv“cÁ¬EÌ2%×ö¥‡-ß ç|;NÔñ=§(=¾xq_{®ÓO 9*[ì•·j"?¿NéžB בé«jk;ã…§Œz0´È]q¥q‰]¿»ô;~qÁâü¦ßÄ;]Ââäª Ç ä[‘®œöڽРôtCZ ôÏ™çg3¯"¢ ÚWê%в­G·/‹väÞÔÙ3þ¹(¬"^OÓÀýòõá0LÄÕ)§ˆr%s(l:²ÜÝL3\{õý뿹ÍV endstream endobj 41 0 obj << /Type /Page /Contents 42 0 R /Resources 40 0 R /MediaBox [0 0 612 792] /Parent 43 0 R >> endobj 40 0 obj << /Font << /F36 30 0 R /F8 7 0 R /F33 12 0 R /F39 36 0 R /F32 11 0 R /F37 31 0 R >> /ProcSet [ /PDF /Text ] >> endobj 46 0 obj << /Length 2626 /Filter /FlateDecode >> stream xÚYK㸾÷¯0rYsÅ—Då¶d‚Ù$‹é`;{PÛt[ÙòJrz:ùó©I=Zì¥M)²X¬úê+öÇLJï?iµ‘R”ÖªÍãi#µEî6¹-„ÒvóxÜü²µBîöR*»ýçNËm5ðç¼ÛëÂn?]}ãæßü¿wZm}Óï~}üë÷ŸÜ¦e®r\8Ûì¥Ú•¼äO÷ºà+¥¶Ußß/¾çÎp®‚ø¶ãT±=ÇѪóØ€Û­©ý‘¥/õpãüÓ• Ù€JÊJÜmOü}{õ,ø’Ùl8{ÖWë‰Âª,A]Š“Âû›|{(™‹ÜÚ8¥½ u{ÅY›½†¡Lph²m˜p û˜éR›¶ùóßÿŠåŽoéüç·»šR䙎_À àv´1Û'<é+·þTݛỽÉó-žÄz;´·K Æ”ÛǺó‡¡íÂgd®‚Í£d.ɤi<·¯_4ë+ÿÞèžÝ>—"ƒCÏ_ãGEÆ—·ƒ·rdQ ëk±Û[›'Çqç/þ‚ë>ñì.¬À§)dºgMïFHqûŠãÞ-úwIý°ÞÛû×™ÊÑ̽ïj¿â×ÊB³/ %‚('”4Á 9Ïøùìa[UÚí³¿ú®êë3ö :/Š5ZƒÛè+ªÉÌ —›¸éol²ÉÇo´ÔV䲜» Îo;ÞûÎrLêXVÇLm†Ýw4ÂX)Wôéü©óýº«\Mú—‘©¹|ƽ6¨*3!õ¯‚(—M½»‡ -í$ùˆ¹Óß;àÆ?à†j×#EÞ…ÞcœtC5µzÇXÀöKÝ4ãnÄ£5}X´:Úî¶m^wNoÁ× h¾«7|ºl~,RÞHCP÷ÊÍÛQÀÈG³h6ÜêûT]Õ½²$Ø'¥ 3mùÌ´pײÆðñýO;néÞn‰²¢v I=É€%ðû›‘¤ ¿WÁŸëíÏŒä «ø'-‡HŽj­.  +·4ŒNäTDM`5Ÿ›†Fä[9FHCp±‡–=°ª¯=Kxh¼à@Û}¥¡‘·¡:̽÷„qЪ–_WÇcù¢j¸–>Ç-/7òX0Ìï{@󸂂ïs»¦/A™†SÞѦÚlý·êrkü‡•X-¤)gý#bk{÷a%P°e§Ó¹`²JAV¡‚(ª0³ëà‚°wió äJbÕNäiSAxÅ«ÍÈÊ^å…ÈK B¸H-¬P­üíL¥í֣̌ÿÿDåqH8Ç€1<ê Ç~‹¾Ñ­ØÓ¡U‚J¸êKŠÂê>´ÀŒiä)hut‡p Dw^…„šÝµ­a‚Š„¢æ½Û×~ðp³"³tdÀ§l¢un5míŠ8pw²µz/«*Hô.OçÇVo–3Ê„¥ÐöQ'ˆ¡ QS$“¹yÎE•´-ÞS©NþŽ4ï´]¦ù½•ùö":al11 v#~A3Á!†mº¨Â7¶ âÂòˆSëK Ò5,¢€„_°"™ÀÂýšE’¬NmÄ’ÎË™ª O†6ñt¦$ÌùáÊ⌉,Â'8ôJŒ¥°clTâ=N&U6y ñ°l<0l8M!0R \êç3è|¯2#œ™þ‹Ô&(šoìÔ ‘M”#½G5OS`cËVp°Y‘H÷&Í+„”r¾å×p½ªTFí•Ûm`HüXÆÉÇÐMñ·¾Y0ó¬\Å_ÖXÂÑÍÂHSozËØcŸ‘*ÔKÓ'Hgt¸AÞ#D^°‘˜vŽ\u‘8T*°ä™¢y.ÕtÌŽ7R”* ¿a BÆEªp0/3!»1q50FʘÀ™)JU*ÒÑ;ÍÅ801ÓÅLç'3¬L&G^A—‰1FŠìèp+ð— k\œ²x±ÉEYhGËQ•®ÉùÍÛE ÈbpË“IhêPš˜`ç(I•I¬®_Ùâ*2%g.‚òv1þ²£$õuüøú†ÉÞM£X!-­‚ŸžÚfÅ,&›V¾)=áСRn9¡Ê:örIì<òz$*ý@@Šï T‹5Š‘ná"·Ð[|>W]"· ¡ A@3h¼O3ËH9sY—6xAæîSâWÙ"ñ«,s˜ÒCàS¨¡ò ¦cBób]Hå2Á>-f8cÁK>Nü¼Ê•‰cá¯{bA*°½¬t¬8 ê‰ ½°Vxe1=ðÐD~à¡BEÅÏâ¤ZòŠÍKï›1AöãŠ+JŒU^~×sûê=dQdA°gòX#¥·‘‰.†éÃÊÓzM±J`J€¤&´æå…Ñ…ß…þ¬ÊÀOúrÆê1 ¥ÒB•nÁêÎí½9rù ‰©RÅαÆlûtèØ6—Û«¯»q¼¿w¡*"h1©ÊZ\M‰_Ýoû¡ÝYa¬Ì¢Â‹ëˆï“åÜ¸Ü #žÂ|ßcmËU´µå;Ð"sX‘ÛV0ECúV‹7<Ú,=×éùtçô±È”ë40++Óúœç×ÊÄðÄ!¡¢Qs뜈]dMŸŒ°Ê«’áÃB@µ)HÃŒö>„ÊðÄ¿|{:”³/ÈÜÚ¤J.͈xƒ“®÷°2Õa&`å¾{NX9BãýÎç«ËïªÁÁ Œ–ƒ¿!ÈÇ ÂK\;¯-Xco|¼’#(€<`%´’Ô«Ãx} …w}@J€"*kà7åÆ/7í£BÓ3_[òÒvÁ¾€ ñ‹Fĺ¾Ž_ðåMî¬oO(ühãǯ Yý£?ñ>€žÁRŠì6F:Œ…H—:‘¾À@o3Þ¥§‡\"< î}0Î2ÕÎßÄÍ›möÕúD dâš]âú!>µK!Õ‚ÎNžà ‘«‰Ú*Ç÷ "¦GÿTõDQ ~ªÿñû¾ 9>@SšâWE^§}êÛÆóÃ^¾€>œ: "Ôb¶˜áƒÂôz˜',\jáSÑRèP÷Õ—TÖIæIºCNIH| ÿGà1OâD¨eëÕIM°¬Í'4?iÁ@L› Úß~{Àô˜mdúg’tRdPt.¿üšmŽ0±äÇm^hê¦ÂP9Öl>?üôðÿ5¥ôÆã-Ðá .‡¼j„)éU ¸nYd’Ë:iñE¸Ÿ^<á(7™ ÚÈD±›~Šß³•¦Hÿ>ÔM ±W‚G¹’m ($ë3w¹*G^Ø ,¡ɰ®K{˜·ÌÄ—ܬ_Q ŸÇF•níýuɰzöA¥+|P¥b)s4°FùX0Ñ,zu? 1É2Ê@¡P “|âÃÃ|N@6¸_¬ý¬¾ÝP³í¢¯üÆKT endstream endobj 45 0 obj << /Type /Page /Contents 46 0 R /Resources 44 0 R /MediaBox [0 0 612 792] /Parent 43 0 R >> endobj 44 0 obj << /Font << /F32 11 0 R /F8 7 0 R /F33 12 0 R /F34 20 0 R /F36 30 0 R /F7 21 0 R /F41 47 0 R /F23 22 0 R /F22 14 0 R /F28 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 50 0 obj << /Length 2951 /Filter /FlateDecode >> stream xÚ•M—£6ò޿§]üÞ˜ABHÛäe'/{Ø—l:™C’chÃ6Ýéùõ[_ÂØ¦;»'¤’T*ÕwßÞß½ÿëRa–$zsÿ°Qq:›nlâB'›ûbó[„Év§”N‚ÛÌ]ÿX·‡í÷ÿ|ÿ1ÝdafµÅ³Ñf§Ò0N3>u_•}¹Ýʼn r?êqÊǺkž×-~Ó๪÷[ƒ§Óv³¶¶[xS΋§|\î­ÛÝ©É÷rA-ˆÛn@QæÍ7ÛÉt0V%còc‰ôÉôx&y‰Z«à˜ãä…'Ÿ‰$D £`Ê‚ÁôÜÛÑa4VyË»ºV@CÙ×åÀãß#eš2ŠLü0®Ü”7C7Ÿ{Úú[aa`¼û®ÝjðR[—-ƵQ½ŸŽ²‰˜w'Y0vøM¤¨Îkà´,uMÁ¾¢Xb´ôÀß™Uåð¹y+‡ö}™%Ûò™o^†©-Êþ‚X+ÄÖÀ›”FÞ”Û Q È-F!/ì‘Ë8˜£ÓÜ–ÌÅqE´áúJt¢&Ó,ç û}á¾v^´Á ®Ï‰[0Øã¾Š÷ý%ë0‚VqÄ{§ÅÑÎ8^(LòÓ©©Ëp©wA²q°4ˆƒX™ÙRiŽ ãRÍóÎø¬†°èÕiU&ÌŒ¹$¬—-<Ž&®²0Ixíù2Õ ŠÉÄÁC‡Oïo½B Gtêì»ã‘…a xƒ#¼)AªÍXÕkµ`fmøD.0” Še l ·¦ît솑¡gásw΄Qâ.ßKÌŠA™¥F”‰0`‹*ÃHÆ3ð9kÎŒŽÌÂÞë¿´M9ÈBΟ¥ø`*âƒQ-XË?Iûzl^9__îwkŠÆì,Þ­O›ÐÅ׋­!ᥫÂ3€Y;ä¹n>q(Û²§ÇãŒßMˆš†p=³šZdÅ—©l÷²Å„ßå£-?ä¾Brœ„‘µU!û‰UMÓÊø½kØÅ&ºUuºӯâ5.L”{ ¯ £ô’È]ü6:;£ÍPÖô±A(Ø/‚òNE*TZmvÚ…©¯Ih%*W‚JÄ bA¬FÍû«Øü©*Qßá^‘8ZòPG4côJÜ>ï`™¹¥Çg™Œ%çHë=”$ þSîG†zVÙßäý¡Dcr Y7Âä*6è#c¶€­~%¥_ kÈZ»ŸH¢P;M¶FVŠ0z úúPá«d¯O`øÐõ|./ VXGþ?¸pm©ªNâ½ÓgôëZL?DNdÁ‡ÛÀ,±oQ&Ø—=^D©’àD¼èj î#2J¥W\‡#b„°ÿPŽ ª[¸u¤ŒfùÈËL!ÊVVH’Ë•%í mÅЃ_«Ù­ K!å‡`ж5ɰˆ™FY¸i‹iÌr ÀŽS‘+LlŒJ|8„ !+#ç//]!øl!£û¡åzh:u?µ˜˜Ä¤Ÿ¸çHDÃÙù~?qˆn0ؼ·iŒäh“€Hš({{Ú’ô a$ãÑœrÀøQ²9 ääS[m¬[°¹>ðàTïÇ©GsÑ–#ËŠwTQh“ì&ƒjôù©Zu=QdWbqÂ# [‡6Ê®X4z¿›% QÅ3Ê¢ooUPJÌ;ˆ2Já ÄVì”}R*æƒ8l(J‰u³c#°¨ÉȇqX¶|ra-âI8çÌÅ)ó+ “ÌlâÐ*_ÚÜ’›B”W»Øtïéé¦ñ42~ðÄÖƒ°ÍšÐ¢—^²mfrì 笱[æ}}ª‡)oê¯dÀ°8 âŒ|duñlÍÀ }w䕨‘÷»gø¿Ë¡Ì{æÁßeï÷¤ ´ù×z·æø~© bç‚É—[ïË‚.!úµþêC`²2Dß(š³‹jOß¼ÿüü’ÄŸê¯a×Þ¯h‡N– "f¿è=}%…5¾Îaœ{Mãw:ƒ ^ fÅÓ‰µ¬ëÇAËJ„¡è-d)¤sx)èm5¬†íHâuê㵓xý¡xÚZˆ:¿£€öFQ-qû'y°Ó>Õx>É—b!|%ý€1Ö@eÁãž=2D?pí7T|ä2Ö ®*÷·Qu‹.R02@býyº^çÒ¤JDÏiÍ㠵ϙa0Œ9]þÈSÔ·é'<¥7ò×ñù¹0Þý('Ýò¤ c}™¤Ýr[Û0‰´ß„*²ZiëVHèˇ¾ªµ»uè¬ú«»ãPŸk+±c–½ßà¿ÓP>LÀ¨Ù %&KÁž7â’â(t€þRûó‹v8E)ª¢ü3‡àZXÏ)FW¨@X/ën%àIq½,œàxŒÅ ÷¼dtdWVÔ¨€/‹mõ#ÊSV4†5%uRQ!+RëU4uqqDeúèësÜ5ßÉÅ&fpÏ't‚”]3Öøx¯qær_ÎÓ¡Ê ¼p¾l`¥ÎÇëWûKD}¢gÞʼnbƒIæ.•º°‚÷ó‰ØW¢ÎÛÏla$/ >³ûŸ‹:•e¾H”×Z9 æ¿oŽv]âmÞè>p`œ›dÙÀˆÝ Ø=À`Á@ÔXñƒhõ-ñ87MxÆû<ž&Ñü¾-³À£’´k%Ú±rê‹Ôm’U¤'(wsnûqF«gvq›†Aô8Œ9çw-OkîcuŒRÌnbÈÀE)§F«KíÜKtÕòñíæu±ÍW·ÒçáÃÜ-Ã㥼`‹”ØDê¤S%©?On8ü{HZ….K¯ü§ªïÕ‚PÚø&kÅ#Ë ˆóI¾Ät ÊQBÉÉ IïǼC.¬ÑPÙ9 fÔIÄÁB“v²CÈr.CÙ %¤¼p«snЀɱÞ`·•„íV´še/õªÆ;·f3NŠ©ìj`4r­d(Wyku¨Œ½fn’ÎñÏïÖJƒ Rc{}Ry!BB ovFßdRHùçºåòS];_Í+6Ä©‰#*Æ:R.òL$•ÊÏi$êÉcézS½,)LÁ+\@GÈãA6_„,¾zÏM87¿èʺÀ¬¹¡jÎNRlÉn±cÀbD€!}ýðTŸ¯ä)}>1pg±Ê†Qšº‹ñ…^¬ø±«þ®t}¡~áaQôøƒ¾7÷ºÿ 1y¬¹/aº6‘ž[“ân–?"8]Ž$(Wa@.MR_É0´9RÒ1x¥ÂÄÄ蜹}ÿ¯_úèuw‘„*Û€ìÿˆÖã)ï¥èæä(…R"±· vˆ™"Cc0YdH礲£Þç Oç,4ÃHA-Žãü;M--€µw¦¡Éæäs||íÚ@ª¯LÕªt®à±9±+‡ pÝýãþîË&£ÑFÍÿû”u!\¶Ùï~û#Ú°úuGºy¦­GØêB“â½Íæç»Ÿî¾Å¿‡:Þ$P_;ÎŒ S ¸à S¶Öû"E U‚ÍÌ0…¯"EºØ§\hcuiƒ…,нKÄ*L]r)Ä^¡t/Åò¨±:´h, øs>xk¦ô ¾œØeÞªÙ$3ñ+ Øy'vqÀÿkp&Ûì²ÐXs¡bôÛLþñP¼Y†ˆ],BŽrƒÄ3¹{¿Úy‘3xXëø„ʾסg>$ÉÐþ)JRL²‰§=>¨ö§ªö!rÞ·Ïíð1¾-t:õ]NUܼõ àEc)=âÙ¹r˜…/à„wIó™¥Ñ õX?!*âNl³s{ºÉÇ‘;Òh{à”ùZ‘ Æ÷¾üO×µå!Ç›WÃòQ³„’H’­ļ[QÎXC©xÝ{Ãío(§Ñó3¹É•èX¡ºGÆv£©lï7N!K»ƒ(…Òoȼµÿb&7· endstream endobj 49 0 obj << /Type /Page /Contents 50 0 R /Resources 48 0 R /MediaBox [0 0 612 792] /Parent 43 0 R >> endobj 48 0 obj << /Font << /F32 11 0 R /F8 7 0 R /F33 12 0 R /F34 20 0 R /F7 21 0 R /F35 26 0 R /F37 31 0 R /F23 22 0 R /F22 14 0 R /F38 32 0 R >> /ProcSet [ /PDF /Text ] >> endobj 53 0 obj << /Length 3114 /Filter /FlateDecode >> stream xÚ­Z[ÜD~Ÿ_ÑBZ­GJ;®‹]å•ò@`ƒ‚2Àƒ§Û3mÅÝn\v†ÀŸßs©ò­Ý±¼L•ë~nß¹ô¼¼»yþÊnò8Ïd¶¹{Ø¥b“ÙM–šXªts·ßüuÍíVÚ¨©ÝíVe"jºCÙr·;§Û_î¾~þJéÉ1FÇR§›„÷õí{XmU´¯~N„âõÓ[u«D„åO‡òħ÷gºx_tÕ釒è\t»[i¢Céós’&þjJHbc›äáÌ_ûªîxC[>´¥;¬¼ºR…p®x†;ltßw+7H¸@g+\£r«àMBêÍVˆ8O=swÀÀ­V*º'ZKþ8Ε{îw·È]yÕq6’¸ÝòÅ/üJ3}«‰Í@YßUuÕÝÂeŸ.)óXäƒ(Šö±?‚4`mßnVÑUwðï:TŽ{ÓeÀ3B{ð”8–a¹ÃÇi  ®h§jΉé»@]d„ÇSK'Ä?Íü‹œÁ‰‡¦åNYìpüÀ_xQ]bŸ´›ŸæùÌ+ެÝûð>ZôDTò%5mõXŠzy‡ŒŠS•Ìé9•O¨f\ ºT8›²ÌkSm¢W·VGD,<Ôaˆf‡8TI“ùWùáÖu—‡ò)OU]ó\P¯5E±Imùó}ùñù©‡}Ê¡@9ì òôê _­ðÕ$W%“8× oKà1Kаì@/&ô.!=JG®Ü5'¿dAŒxr`’cVÉÖÆ™4ƒ¢@ Û,÷d<÷#BÒ:ä鄹 ÊÆy>X,i$¬ÆŽý‚›ºrþ¨æÛA‰ *ŽÌ9™xÎwRßóIŒb÷§«.Ü„¨Ní¡q%ÓnteçÂórBëÏÒ`ýšï½äˆ‘q2°~ûÃ%„Ž…8p.Z ¥+[DÌxÔ€ÓGcÃ/40êIaÇ¿ÊO·´KDî u¥8{ÈÙÓ©8”Š}†§2‹e’/UÔõuçX˪ëXÁŸmIÐS¶Îë(sšõè¹Ð÷w ÐTéyÆF€iÐæ$nüî]ùÐ×ÜG!`»kË¢+¹_ðò OòR$p$Kt‘´8´í}ÕµEû‰?"G7‰JD×Ê€¿—Ϧƒ›ö#£ÐQ×–¤8) €†XÛt´ëÛv4M<ªšSŒÈo£»+xÊ>«¥ÑÞ+½öª¨.`¿àfÔê4ìîP–V€—÷”ãû¤QÓ÷9A¦`[`#ÇÈ‚?1®pH?.yWî:ØÈiœúà@Úž³Cz¥Žîy7ûF\]žö~¥Çœ.êº!*÷~10bJGŸ®`¯‡@.‰1e¸Sqv‡ÆÇ„™ ~A,„ 3ûª"T? ›lç£O¢šá¾ “NoGPCÖ gyôMÁ–M~o1!Eur‡]ÁL6$smб.£õ©£ËPHªIÅÖ[è±â©©â© fûàRºÃ´‹.©:ÞÂêa&±7ß}œÜ½Ú]S – Vtfò$Ôšý%›LBNÉoõQÅ‚¤½>(V“×yu×WÄ”ËX[óW¥¤eœ·O¡n<—ÀxzÐÀ-/1¾Pn˜+’$-!ÍÈ xVh­Íù°4¶ ZBBìp›ëÑNM‚lèýðö wÞÞ*¸e‡?Üf€ÍàE/^‹Ò°± W¼ š‚sð<ßpÆÐÿÆŸû žÎºŽª^A>Ç^')xÀÎ}ÁþH˜œxÈCŒñ·`P²ñá6Mñ}¼âMq‚~Ë«~JA‹KyãŠþœçG›”D¾ÎÇ}ÊÇ} ÷Ð iÏú´&ö%ÆB§pÆý ¬_ÃÃ!÷(RÐÑg>ôd'ï¯Tóðˆ½}´<O[¡©Øï+ä+ Ñð£®F|-|’S´œ·U,@ÎnŒwÅ“|Ÿï€—EùQÊa£7óù &3LªAR³@*LG W ‚´ŒÂ¥ÛÀ[³]E/‹ÍCˆ´LàV>afæÅÑ÷¹îOÜ\aZîå™Oi‹9|}YBë/såta¨tÀ€¢òi*·Øjuîkvo2ÞÆ°Gp„ìLÈ¡à+Û OÇ~È/d.#z~<Æ™ñcðøÁZˆ;0_qaÐ/PÊ‹ŠºÓ¿§Á©Wô\×Vg­½×îzÐ}·î¬D¬.24 `äÊ®?¯Ö€d¦Ãú]sÇš°OŠi[Ôxë8á³#Ò@œ+Ö FÍrïïß¿þ!õ—Þü÷îæ× n’Ø(Hª­T%3v³;ÞüôK²ÙØ*švóD+°‹'Ö›w7ß߼ğYg?ÈAPÛŒJ­×û/¾{óæóo¿¼¼VcTªìß¼Vͼ¢Œ!KŸßûù_½[«Û@Š­ÓÅ!)m«â¾öÕ>þÎHð³Åñ¼îÈs3ñ˜,3|£Þ£Òÿ‡\™A $•Ioi_¾~õjåVkb!òäÖ<‰Ebç·"“_|öÇ®©©zÓ¾Àtâ³K¶ç,dHXvàŒcÞõ­¦ïÎ}ǃœŠ/Á‹ŽEº(3^–0×~Sr¸œ—éÓäy>±×+~ó>j‡Z*ÿrÎã©­º±ë*¼7*Û#þ¶Ã•búCä¿@Ä×Þÿ„º‚ßܯTt¾J6! ˆ§ê÷Ò¥1ö{MÍŒÊfSUvÿafèCš Î)v¢¸Ë®(®mÓàÄ–Áróg*±¥µsÒs/ec„G8êOW&™ôŸ¹•\ˆßúÝÛ»tPpV>·?Ÿ”~@÷&žêñ§ƒ pЊÚ/Fp÷+›•%ädþ¿$økÊÕÿ%ѱLåìIØ÷ M 4À„/4-’ÀÐÿè' endstream endobj 52 0 obj << /Type /Page /Contents 53 0 R /Resources 51 0 R /MediaBox [0 0 612 792] /Parent 43 0 R >> endobj 51 0 obj << /Font << /F8 7 0 R /F34 20 0 R /F33 12 0 R /F37 31 0 R /F32 11 0 R /F43 54 0 R >> /ProcSet [ /PDF /Text ] >> endobj 57 0 obj << /Length 2938 /Filter /FlateDecode >> stream xÚ­YK“ÛÆ¾ï¯`r Yµ„0˜Á+U9È*)‘J¤ÚUr°|À‚CY€ ñÐzã?Ÿ~ $VVª|f0žžî¯¿n|wóê]²J½4 ¢Õý~¥ÂÄ‹âp…±èpu¿[ý¸>Ø“m²®86Û@ëõ9ëòM¬¶õ6[£Ôú5è[»ïK|Ö­íÆûºá—7ühë¾É-¿ç5<ãõNšEËÏÏJ›ÍO÷ß¿z§õDÀÀ„žÖfå³hÛ3™ž!ñL”¸¼…åB½~:,³l𬭬o&“q°—øÁj«”—†¢¿þãÓf«Ãd½+>ûJ_ï Rűv›vp$Ç<Ö8Ú·Š?»£å—$تu¿Që’u'µËƒ&‚ã×}Ê»¢–¥2~ä¸Ë1;daÔ!ï豨fªÂmì{  ­‚®@øñÓû¿oÒ`}ãoÞÞßü|£à4þJ­Tz&P«(½04«¼ºùñ'µƒß¯|O§ÉꉆV+í j¾\ÝÝ|¼ùk¶³Š/öSZJ;Ý~À}_oRµ¾ó·ëíßx~ü{ìø1ìÏwÿç‡û»ëëÔ°V¸ë|½Û¨ó¬D#ð×õ[¨ãPÁmÂõe7~ãAí1+eü9kÝàzÁäT{©Œ‡m-7Û„¸r~¼–oDе̬ôéhÑ.°‹ó¹|¹Ø¨‚+—5jýÙýw›D¯Ñ5u¬í/Yu.í-¶B°Íƒ/ðßmÓÊÁ¡§Þ/œ%0±—DÁü,&ùÚYÂÀ‹‚aFÛŸ·8fµÕ¾ï™ÄÌx÷M@d”ÊÄâJ°þ haŒ§Õ°ö¯ýÍ»í¾ÆÃ4UÖý¥?¡C»»–+»Óñ€#¼!_=ïI †S|ļ ÃÕKôsü@°«RéÄÓ&•CF¼—HD.,€C¾ßv(÷s)^Ž7X—;Ûpó ‚ÀxC Ç²Ê êQˆu#Vþ:hc+šrÒ_)'N<è©rÊ£ Ý1ë@:µˆ>AyIúÿãO&Gú÷À\*ŒÌþ¼½[4PÁõMìr]‚ÕdŽyÆF½àðÔSÇîÁ ð^\ke™;›»Ùz­YkÛ$ a£BÆ»PJ4i:÷ŠÝg}Ùɵsô1/]zh¼p U(çq醵"t7,W©ƒ•Ÿ2àâx—Jù^4ÁK˜o AM„|(º=` J‡ëì´ã—NõF«õÓ‰›šú¡´Õ‚>ØŠò¸zFa"Ѻ\¥¡yKYÛ¬) ÛP¨G]ÓhÛƒçÐÀº/ËŸ²ÝÎ-€*Ã'ßZŒ09›–meäÑ>óô<;-,Z ›G"µáI¦×õ~rèàX‚sÛ3¿q˜Š.^]ò²õ#5w·2âdyJ½wŽ'ûº,iþ“ð 8(™†­tÈO)\‚6Èó¾ù3ˆx"¥{"½2.¬8åe¿cÐ „ïLR‚9¯ €È4°rÃÚÜ–#]ß’é²?0Ê.£Ëy¼½øÀË"ýi¹Ã*À@ÈKgÍ\(„¨¥#L¥Œ ©ðVt•év ÝØ=ð·#ßø±Ø·CÁ˜QßÎDزxʾ@ní™tðMÇ&hºþ¶k”7‚S^W•2Ü-Š”%£G`ªgñfnäq@g 䬨ΊÜ!0dØO7€iÐä–ûNu'ƒUp‹?gäÅÏ܉|¥à /ÖºtbÆê¦8HÄ®n´OǵÍȵŸ6ÄÅà+víØrÅh>w]@»Ô\¸ÖÄNÔs´2ë*“£á—öÒA^où½Í*Ësáq>:(XÑ0 ,éÄŸêSn½%Þ¥ÕG;Þåÿï2#S;f"|Æ[>ôGÃà䱚k@L[Aì«›¦?SèÖCFJyìÏÜž¨EØBÒVHOžµ–訤›ð sƒ24„/›»(³a¨JN%ÎÎq{öõa; •yhÈé}·Œ\è)1%ŒmøuB|¹c‘÷¦>Õ¹öÓ¯²^“’Ê PBGÌ-p§†8–‹AÑÊÆf»gnˆËZ‘Éõ4”àw쫹%€ƒŒh”Òóãß}º{;°H:.jªØ86˧Ž5Eÿ"IþÚ±€™`<6‹‰Y¤/@ tpd d+y;‹¡m Þg„ûØËfISÚ¶wcÇÞ¢û“ŒÌøq`—•A;+_QwøllU³rœ§JAÔ%€°Õ¹sNÈŸNù›º?ë¾ãw?á>¥ŒO`éÆO@Ç/˱CGž æTË™R~}*ò¡~²+ Ñëêæ3A°BÈÉ ¯ï¨3x›WebOÐééËL4(C8]oD^ä)G—5KšˆØáɘ‚² ÷¿pÿ#›æÉ–ü™‹H­L–g&‹`6‹6|&ʃ'#þ(¾Sù‡Þþk›z[ÚÓ¡;ºI.Ä4Ÿ‚˵þ‘§É7©?ÒÉ´R„KVYóˆof¾“PT|}ƒÂ1“lM$@ÏàQm?d4ÎyIä¼ÄŸ„'œ øÍeËÚVE:š+ä+ ÁÅ“— Ì脱~4y’œ‚ñ\â1< ºà™îuv ~&^Ï(X—EÎÝ`0‹´ !ï[îE`¼˜Ëö/s_CˆÍ(/¸DU‰’X1eA’…{»*aæ2}§)\, vŒÃ;¦j½ÀI.ßQTî#Ó_ðŠþ@I•*VpŠ•„Aõ‚!`qØWéo§Ž¡ç›ôÚhipwÙŒ!¤¢ì:ÚçSÎoOÅàŒ>î\*…¢‹auð†I¶õÞ­#㘷ᇊ5 vä¨Ö0Ÿ¯`]†1,ÁKÏÜ{'‘z& ¼Áùÿºã1ÐP•f(\²wÅEI(yAãÀÑR|¨ø‰YÒ8,=š4²¡ß„BäSE¤Ý[ ú”!bvÚ‰fn¹‚yΚ®È{8])+{)ÁM+]²¹\‘Âõ]`e²Ho:rÔs3M¤÷Ït»ØJªx&Þî ªÆ ( ”lµÀF€ûƒ¡¾ZX0õôhð“åì®è ?Ð:\—ÔrâЧ„‰@5X`âš„á²1y IæRg³œb¨8`CRö-J—/Ôülì9+š…´C~¿P?ó 8&p~„î®÷†rÙîˆ £ ®Ë^*¢J*ÃþX°kYrWÚHÖPÄ$d¯§·ŒmÞLÒf1ów蘚zâŠL (N²L“€kªD †©1oû‡íUò}GRqk©ˆÀ힎£9:ŸêO–‹##ø3©áÒ“b®ï:‡ÂÚjSWcJ»dùÊû&öBìPKH1Ëš‡Â”‘$m±úÅà?j^ýK¤úw×W@jž_.ëñð£6©Š©ÎÔ,L’ð´„j…Ø> endobj 55 0 obj << /Font << /F8 7 0 R /F33 12 0 R /F34 20 0 R /F43 54 0 R /F32 11 0 R >> /ProcSet [ /PDF /Text ] >> endobj 60 0 obj << /Length 1199 /Filter /FlateDecode >> stream xÚ…VKsÛ6¾ûWèVp&‚ˆ¾9©ºÓÄn¬ÌtÆñ!‰5_A+î¡ýëÝ([¯L"—‹Å¾ðí½ŸŸÍ®²INó„'“ùrÂdFSÆ'‰J)j2/&÷d¾6ÑT*NþÊÊ¡ÈHgÛhªò§Y¸°¸nkÓé• ëe=Ì]]ï1•©šÄÁïÚ¹î|6ëõ³n½¦MÛ¬š¶v5÷蹟¡—É”)E%ËA`4WcZ>›Y³[ƒ`Td|„FÓœI2¦Œ¬#F 62÷‰Â;&:¼ óñŒ˜ªíjÓ èÂB­ËªlVá£*ûQ­Ý©:sNcÁêD»5†Ò8PšÜ/ MkÝÌ0NÙ,Û™¯u ÕÌDBe–îÄŠ\EéʶÑU4YB–F»Áš¿RâÖ¼—¾ÅLº`RBͰԆ/ö§Ñ¾%ô£0㙌!÷o—`+i;ok¬ÆøA§­AA]m°±/}ÐmB×¢w£‹eXY´ƒí ÛÌDTÈ„cÕñd*8Íe‚1KcM³0ýqƒPÐmF3΂ù={À†Æä¢)¬ÙNN>µÖµÍ9€$9¹õyºöd=è@þ† ÔÝ-lÙ¹þÝ (p@.ÏŪMCã¶9Mód¿“Ö•‹Êô3&ËNÀ<Áøcº)NEϨ‚îìzc7æ‘>Û˜ê Šˆæ…„ýŽüT ØäM«ŸºzÖ»a¹ÜÄÀÙ~ôm Û‡þP§-]ý}½±¢ð{CoisÀ’g|ÏwM÷3F>Zx§äßHÁsðGó¨øZLŒÃ7 lEát%ËðpÓp¸`†ÁÖ>… ¿#öO)ƒ‰UìXl¬!O¡#Ó½GpSOWR&ÓÃŽÄ9M¤;2z»cG®///¡2.È+(Jœ°8”My3¨:áÖ*ÚÁrÙÚ \7(2R#=ŽC‹æQ&ˆ =jÚª]½ FTJÆF?VÐt~@ 7;T€ü)RHð¥w¦FYBd?IÆ.õ„åo±Šooî®ÿ½·¬MU…ˆu¯ûꀓ]iz´É$) €ÈL;  ÑŸ!rÅ:;èO$,¥›Þù±alïû€ OVÏÜx@;^¯^Ú¶FI›ŽªùV¸¼ƒüRÙºÚž@¿—×+‡=—ý+e~´íÐÂ` ðÈ!¸ÙlhÛ™f…»ü\kŸÂ ò`IJEÊðÅáÖe~€/ù0& w„“÷üüVp9„öœЦé+ â• Ä? ã €‡>;;@žïüù‘„Ü¥Å-€`Cã†=®E Êùk-7ƒëʹŠÒ^k ¯ãPЦ¦4;è—çñ²×Î1ù€8Œ¼™G‘ ¸N¾—5š u°úrûé<ØÁèîžüÐàw@š˜"h~Á 5ážòSú)Eüß0\·•ýápº±›Þ7žÂoe]žd=•S‘œBœíjµZlŠSˆ“Ìßûˆ¯I„&€S35^ÌŒãâÙåüì?ß6Âq endstream endobj 59 0 obj << /Type /Page /Contents 60 0 R /Resources 58 0 R /MediaBox [0 0 612 792] /Parent 43 0 R >> endobj 58 0 obj << /Font << /F8 7 0 R /F35 26 0 R /F32 11 0 R /F34 20 0 R /F33 12 0 R >> /ProcSet [ /PDF /Text ] >> endobj 61 0 obj [733.3 733.3 702.8 794.5 641.7 611.1 733.3 794.5 330.6 519.4 763.9 580.6 977.8 794.5 794.5 702.8 794.5 702.8 611.1 733.3 763.9] endobj 62 0 obj [277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6] endobj 63 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 64 0 obj [295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 336.8 826.4 501.7 501.7 708.3 708.3 708.3 678.8 767.4 637.2 607.6 708.3 750 295.1 501.7 737.9 578.1 927.1 750 784.7 678.8 784.7 687.5 590.3 725.7 729.2 708.3 1003.5 708.3 708.3 649.3 309 531.3 309 531.3 295.1 295.1 510.4 548.6 472.2 548.6 472.2 324.7 531.3 548.6 253.5 283 519.1 253.5 843.8 548.6 531.3 548.6 548.6 362.9 407.3 383.7 548.6] endobj 65 0 obj [666.7 666.7 638.9 722.2 597.2 569.4 666.7 708.3 277.8 472.2 694.4 541.7 875 708.3 736.1 638.9 736.1 645.8 555.6 680.6 687.5 666.7 944.5 666.7 666.7 611.1 288.9 500 288.9 500 277.8 277.8 480.6 516.7 444.4 516.7 444.4 305.6 500 516.7 238.9 266.7 488.9 238.9 794.4 516.7 500 516.7 516.7 341.7 383.3 361.1 516.7 461.1 683.3 461.1 461.1] endobj 66 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 67 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 68 0 obj [611.1 611.1 611.1 611.1 611.1] endobj 69 0 obj [569.5 569.5 569.5 569.5 569.5] endobj 70 0 obj [613.3 562.2 587.8 881.7 894.4 306.7 332.2 511.1 511.1 511.1 511.1 511.1 831.3 460 536.7 715.6 715.6 511.1 882.8 985 766.7 255.6 306.7 514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9] endobj 71 0 obj [658.3 603.5 630.9 946.4 960.1 329.2 356.6 548.6 548.6 548.6 548.6 548.6 884.5 493.8 576 768.1 768.1 548.6 946.9 1056.6 822.9 274.3 329.2 550 877.8 816 877.8 822.9 329.2 438.9 438.9 548.6 822.9 329.2 384 329.2 548.6 548.6 548.6 548.6 548.6 548.6 548.6 548.6 548.6 548.6 548.6 329.2 329.2 329.2 822.9 548.6 548.6 822.9 796.5 754.9 768.1 809.7 727.4 700 830 796.5 412.5 562.8 824 672.6 961.1 796.5 822.9 727.4 822.9 782.3 603.5 768.1 796.5 796.5 1070.8 796.5 796.5 658.3 329.2 550 329.2 548.6 329.2 329.2 548.6 493.8 493.8 548.6 493.8 329.2 493.8 548.6 329.2 329.2 493.8 274.3 877.8 603.5 548.6 548.6 493.8 452.6 438.9 356.6 576 493.8 713.2 494.8] endobj 72 0 obj [619.8 590.3 590.3 885.4 885.4 295.1 324.7 531.3 531.3 531.3 531.3 531.3 795.8 472.2 531.3 767.4 826.4 531.3 958.7 1076.8 826.4 295.1 295.1 531.3 885.4 531.3 885.4 826.4 295.1 413.2 413.2 531.3 826.4 295.1 354.2 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 295.1 826.4 501.7 501.7 826.4 795.8 752.1 767.4 811.1 722.6 693.1 833.5 795.8 382.6 545.5 825.4 663.6 972.9 795.8 826.4 722.6 826.4 781.6 590.3 767.4 795.8 795.8 1091 795.8 795.8 649.3 295.1 531.3 295.1 531.3 295.1 295.1 531.3 590.3 472.2 590.3 472.2 324.7 531.3 590.3 295.1 324.7 560.8 295.1 885.4 590.3 531.3 590.3 560.8 414.1 419.1 413.2 590.3 560.8 767.4 560.8 560.8] endobj 73 0 obj [638.9] endobj 74 0 obj [583.3 536.1 536.1 813.9 813.9 238.9 266.7 500 500 500 500 500 666.7 444.4 480.6 722.2 777.8 500 861.1 972.2 777.8 238.9 319.4 500 833.3 500 833.3 758.3 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 319.4 777.8 472.2 472.2 666.7 666.7 666.7 638.9 722.2 597.2 569.4 666.7 708.3 277.8 472.2 694.4 541.7 875 708.3 736.1 638.9 736.1 645.8 555.6 680.6 687.5 666.7 944.5 666.7 666.7 611.1 288.9 500 288.9 500 277.8 277.8 480.6 516.7 444.4 516.7 444.4 305.6 500 516.7 238.9 266.7 488.9 238.9 794.4 516.7 500 516.7 516.7 341.7 383.3 361.1 516.7 461.1 683.3 461.1 461.1 434.7 500] endobj 75 0 obj [937.5 937.5 312.5 343.7 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 812.5 875 562.5 1018.5 1143.5 875 312.5 342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 593.7 500] endobj 76 0 obj [314.8 367.3 314.8 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 314.8 314.8 314.8 787 524.7 524.7 787 763 722.5 734.6 775 696.3 670.1 794.1 763 395.7 538.9 789.2 643.8 920.4 763 787 696.3 787 748.8 577.2 734.6 763 763 1025.3 763 763 629.6 314.8 527.8 314.8 524.7 314.8 314.8 524.7 472.2 472.2 524.7 472.2 314.8 472.2 524.7 314.8 314.8 472.2 262.3 839.5 577.2 524.7 524.7 472.2 432.9 419.8 341.1 550.9] endobj 77 0 obj [599.5 571 571 856.5 856.5 285.5 314 513.9 513.9 513.9 513.9 513.9 770.7 456.8 513.9 742.3 799.4 513.9 927.8 1042 799.4 285.5 285.5 513.9 856.5 513.9 856.5 799.4 285.5 399.7 399.7 513.9 799.4 285.5 342.6 285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5 285.5 799.4 485.3 485.3 799.4 770.7 727.9 742.3 785 699.4 670.8 806.5 770.7 371 528.1 799.2 642.3 942 770.7 799.4 699.4 799.4 756.5 571 742.3 770.7 770.7 1056.2 770.7 770.7 628.1 285.5 513.9 285.5 513.9 285.5 285.5 513.9 571 456.8 571 457.2 314 513.9 571 285.5 314 542.4 285.5 856.5 571 513.9 571 542.4 402 405.4 399.7 571 542.4 742.3 542.4 542.4] endobj 78 0 obj [892.9 840.9 854.6 906.6 776.5 743.7 929.9 924.4 446.3 610.8 925.8 710.8 1121.6 924.4 888.9 808 888.9 886.7 657.4 823.1 908.6 892.9 1221.6 892.9 892.9 723.1 328.7 617.6 328.7 591.7 328.7 328.7 575.2 657.4 525.9 657.4 543 361.6 591.7 657.4 328.7 361.6 624.5 328.7 986.1 657.4 591.7 657.4 624.5 488.1 466.8 460.2] endobj 79 0 obj [583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 500 500] endobj 80 0 obj [500] endobj 81 0 obj [272 326.4 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4 462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2 734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6 272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6 544 516.8 380.8 386.2 380.8 544 516.8 707.2 516.8 516.8 435.2 489.6 979.2 489.6 489.6 489.6] endobj 82 0 obj [693.3 327.6 471.5 719.4 576 850 693.3 719.8 628.2 719.8 680.5 510.9 667.6 693.3 693.3 954.5 693.3 693.3 563.1 249.6 458.6 249.6 458.6 249.6 249.6 458.6 510.9 406.4 510.9 406.4 275.8 458.6 510.9 249.6 275.8 484.7 249.6 772.1 510.9 458.6 510.9 484.7 354.1 359.4 354.1 510.9 484.7 667.6 484.7 484.7] endobj 83 0 obj << /Length1 1493 /Length2 8824 /Length3 0 /Length 9679 /Filter /FlateDecode >> stream xÚ­—eTœÍÒ®qw.ÜapîîN Øà00Xpw·àwÜ]‚»äÌ»÷Ù;9ß÷÷,þpuWWÝw=Õ½ÖнV×b“°›ƒdÁNnl@v @JERȲs¢ÑÑIA@fn¶`'i37((H¸[¸8@>!n!^4:€ØÙ bkmã`”bú'ˆ á‚ØZ˜9TÌÜl@ŽÐf-°…-ÈÍ‹ áàÐüç„+@ä ‚x€,ÙÑ€@€¥­…Àdmë„Æñ"'+0€ÿßË–îÎÿÙòA\¡¢ŒP‘L¨DK°“ƒÀd…Æ¡ †ÖA•üÿõ?“˺;8¨š9þ“þ_]ú_ûf޶^ÿ7ìèìî‚TÀ– ˆÓÿ Õý[œ$Øá•Qp3s°µp²v8ÿ½dë*kûd©nëfa°2spýkädù?%@Ûö/ª†ŠÒÊ’,ÿ÷{þkSÝÌÖÉMÛËù¿iÿ‰þÿ0´;Û÷#NvNN 4ú÷ŸÿŒÿG1' °¥­t xùfˆ™t2 Ä ðl,Aï ÷PÅìN`7è´%~+0íŸÏÉÇ àøgéßÄàüCü©?$àþC‚™ÿ?'€Cöq8þ´‚Ò‚VPþCÐ *šSí¿$Í©þ‡€?ÄàÐüCÐzZšSï¿9³?õ`þ‡ õ,þK¼Ð= °t¦ÿ³ä„J°ü ¡@â¡Nþ=@ ²¬þ ”¬lÿ€Ê´²õø+Ã?á`wÈ_  !Ö!4ƒÍ_í¤í_µfÿBõ;ü…Ps޵ò—3èEçÿy ±`'Ð_ÛPeζ¡N¡÷üW/þ1÷—p TšëcÿÈô§ /4Ü:Ñ@sþé/TŽ› ôWo zÝ<Á€ºuÿ ¡n=þB¨Ï?}9þ*ÆMïõBÝyÿ ÿ÷½•”¿÷aƒ~*6.¨( [:Àœ~ÿO …;rrûד½ýÿa+[è[½Y -̓-Þ„Ú¥7‡WøËMV"2ÃJZ·$ª6ôÌt¢‡,&Á:”+¹0¯}Ö¨ÊÂÇÚCÜ£ò|$sîðÕ“= rI̘{Þó0ÝËòn#Ó¿ÌRñÚu¦¾ 9Ænožýõ“Vmzm¤"Õ ¸/÷¼ÿ¸@QZ{yå5ÌW#Ư١|üú²Y:aŸé¹_kâd¸TDòD¬zâ¤&#¬N„øÛE ´²ü¸w¸ã=¡ä§<¿ƒ·Ó5½U:ýà…¹mø8z‹Wh\½íž¯’i_óhn´B•4r¸ŒÍže¸bu{›YÛå¼\;›Wlx¯†BÂS)¥Èiý¥³øµL}â'ú€‰–ÕÂSCÕÊÑ¢yr%¹—¦Hï7'3Xñ_º4@zâc¬OŒÙL´/ŠÜJaK óa2O5™”®‰õXv²%Ÿ"­zp¨ÕiçvÃÙÖšޤ-I†ô¡ñ‰Ø'ºHë✠o›¢ÊàFÛ÷4Tʤà¨B_¿þXE¹;ÔåK¾ ›æ«j…x>²û ªO: ×Û£^˜œ¡ÖJ¢ôL`Qx.²·:Æ´úzÑQûl@«¢¾ñ†ªz† I  ã½^„H¾òùº2^·â5v56cÕxt)$í‰R²¢ôž_S=TkôûÂ~å] H=Ãa\_‚‰³ÂÜEÏ^(,‡dvó¬‚pÈÚt·‘¤ ²S?ø“î¸|äDÖ·:Ÿ_6é3!"¥iA>+¢› ã·<̬lj z{Y]óà kqÀfl-|Ý’ð.øc@!}•Þ¹¨Ÿªï6ÖLË1&'oA\ùÒ<ÁSùöJžƒ\žèin¾vÀÊ»b Ò©œC¾ ƒx`:  ¬ÝIgbî Rû•-ëƒ;-¹· О n«À•…'¯Xv„ «}k?8hì< ‹Òì‚Ï@IÃíë¾ÏäL™2×Õc± šáþ‰zO´;ì,ìŸú*Ë5T¬ß,wƒhPNÈ‘Œe—€í¸0¬-¡`ÔÄrº¦-hOŽÉ%4T£Pfõ¦òM0Ýau¼,gÝ ×¼×O†êš°~AÕÒ[šfÓÓH‘kþÃãâ–ò+”P"6Å·ŠóƒhznJEäø«!, ¿ÄÎýb¸á,HÉgª/Fï&3p§ß5KoŸè#wzPKúZßd×™d—w;ÔI{¬ÙBD]1 ¬õBFˆ‚@×E¿SÆÒû£k?ã÷e?¡Yz¾¼aEŸbF2Þ`4Î[®ebáÑæ®à elž±D‡§õ"»8E.ú  ip#nùlf? UÐ V+0V9—‰:Ù³¾ëŽ55uÀýÎIÙØß„1÷ZŒ?€jÙ|ö´³…uvοØèôO¢zmå;ÞÂ3UW_„7¹«Ðð»áT¡9Y˜k/ÈN½Å ȦnÓ¾3¡Y U߉"ïÜIõdry¡ÅàYq­~3QŠŠéžñ>‘]Àü³óÙ̵NEê¾s±UVèðÑu>¹”e§7CA±âªÍË–pî9ÚÔ¿âNVI6ùª)2ºDÈ> âÑ¢îñˆ,°üj™@ _ óàŸ˜ ³ ƒc•Î]"GŸlS³«Î´¤÷ÚI•UýŒ k4âÜò€²…ºÛþ*£‘¶¯Ÿ)Vwo_«ð`AN‚¡ÐTZË@è¾EÎ&GQ®Ô/ªZû7í:âïòYÚØ‹—æ˜1Ù—Œœiœ&RëØ¸õ{¿¿{#w'U\¤çv>€õ Q2C浊fª(ŽÁ£I󇨔5dìaM+äóÙ& â¬Î½eæv²“¢U|#¤ˆeb[±Ì—˜?É(è&1F½¿ZÔ÷TZ,¥õ©ì´ø?oÃ!ñ82ìr–å[ýœÿ•±ËTTÍSñí-¤œP§ë×½”•)S‰2/Œü¦ëû&ͦ*ʤ—Huׄj¢·÷N”4³9 ?8§‡FÁµ¬ýT¸”OFî\+Íÿ°é<¸ç7a²ÐƃÀuJü’¦£Ÿœ…jăÙ41$Á2ï´™J©¥hÑjyßä³®<*~Š1ËÙDƦ†íE(à*hÓ~Kyk*ÔHƒLö¨ìŒÒôcÅ|â™–‚ФÙÝ5fº=bßU´©à½*ézÇ®3»l¦×lÓЧìB©Nj-“dw]ÖáÎÚqÙ¦É9Šn'}w4=­É6†ÁêúNrñ¶’GtRáíö×LúeÄ'k¥hlÛÖJ®vz~^tÚkîãÕkÚëuaýužôAª¯?psádŸrüœÏu-ö {ÖúŠÚߪœœöT¨ à¹ñ=‘dpÆùdR¾ïHw¥eÁÀ*¸ã»ƒw2¨¥i÷LS…a9qéÐÜ÷!è­NK·Øc|Á2ÑšmÄCÈz’{[äè¬0dЙw}ÿñp1y´T4”è×pÊû)¼ì”'9ÊsS€E@IHNDÙÜtG ãˆȸdÝ`ÇTüuª‘¡ª ³ýÔ£åÚåÙøp,/‹Ý¤ÆØoÉd'﫾Æiy8O›†“AnûJöÏ»öËÂržgÉ1å²êÙ8ðÔäK²ª‚ëQ…’d »ªUMÛ“ TŒŒŽæ¢!Ä%g«¡jJªLûéMZÛ(Š}Ë|,øû÷Ösa¹í2hØøè†|Dž=­"0OñÒ,ö».„_æÏÉ-<â¸jŒ‚f¶N¨PN«,:M·zžûC8«ðêB$×mú¤¤Í.¼Ð[“ºü $ß…µ5dþY ’CúhLl ô ½} ÏüÕy¸GÚá~’蚇¶C?{É”×-žI;Cë¼Ò(27EP¸0A‹Îµç˜u8Ò7Æ7BΧç׈’gôí2©!wÑ^¥5ÏíAL«ŸIçC…êpXÏ¿¬uÉdŒ$2*ÊHüôÐÙÒ¾ÙhV$b>¢R^¯î;³ÿ>ž©Üêäv÷ZlyáVYLv§£ÅAͿĔж^ËçÞ€•D÷ΔÌÈɽ騊^¬}qÍ4û |‘'(ބܥÞ,¸ñ®Žæ[Í(ú‘_—Ç¥¯ð°”%–°‚²”Æòhµšf|æ³ê/ª­ ¶: KNÍ—öV_x1j"uó§‡Áî ¦dª n¿fuïÏ„›FdJÅ•Æá ["Cò’NÕA”dÕ¶%G­»tŪ¤Nq# Œ5ÎPVµœ'Ô-ƒßÌ7}¼]ÿžëfÅú‰éOΕ³Ñ=Gíw þ†\R¿í.Ó]àÛPF’¾x8Ö%¥wËŒóÉ@£0¶©ï;s«¥æw*²ë6œ^$ôýLKêI–J›õ¯vºWÏu%èZ’.˨¸I s醒ÎÚo‰Ød‰ú§¼P´EhŽÝŒ†çk~§[9TÅ ”’²ìš;ùài î_® OÇÞgûÁyó\¡B_ÅšC®GœoªíD!^C;õ±)¥íž )›N1c—í,á.¢“Šx7.ô߆:lLBÊy“Dù9•è/yiÉ®´÷p{N:ò¤;ùì_;¶/¸šH ߬CϧYoùÜV£5¯üòûÓ! ¹Ëå†X檵¸?œ¶³îíõwµñ­/)XXŽ1ù¸Ù%«Œð è·ƒ\q_‘/fC*×8að¼19¤MŽÝð'©NÔ.^|2HSA-†Ã·Q¾)rÌÑ^Ò-K$Ac»ÌÏ9KwBó7°Ë-O¬dº=ÓŸ&V´—^›YøpÌuó”ÈÏ•ÑГzõ4lNS´¸C¶å¸lÆN§ÇÆ«u£•Ü:ªÞÊö>>ÆÎ~L·<ÎN^Mœ „  ¢®.W—AWÓkJAÚzƒUQ]³²¤*6¶êÎrO_­Û×&ã2Øz[•R~ùYˆ,ßf*’úÎãÕHð®”Ä›ÜHTŒµ•»°nmeô´™uÍÊ—w ÍN}nêû…Ìrmû%ƒz³iê Øp%Ÿ'SâÁ%^ú ©_0zµ/gNä¹£è¹û¯“Šã{‚HŒFp¨8ï‹ïwP²·N–‚IJqfp8j‚¡~T™²üÏ”\Ƚ¿"’Ü^!—aæùÓ–·ž\-¿cаeû©ë\(öUèíÐɾÆÌ·i¼¦@„ò4³‹[‹ &g—“|¬¨ö#T ¾—£ðà þ+2y£z5 º÷ÿf¥›ÎzPM‘ϱǸ]øˆÇ‡Ô9Jb2…¬ìË h Þe£\)( ¯¸=Ù{Åó¶I¢æŽ¼žðU¥bŸ xõõÞêÕÙL—˜lqÈSá ¨(jÌøÑû1§rØ8fãîhÝ»]ùͯ&”3zÞ8úìÙ´˜ëäó­‚r¸1„7hÁÖxÑþŠ,Ýs›µ<ŒßgÐK-Å7n…2eµD–á`{tn(µ+ƒê¯·¬{0Åï„• {4=¿–ù™-iŒDÌÌ\F·=¾G¦RHXz‰‡÷jv Q«V±··ãmúqƒÌ »ÑÔÂÓ1ˆ}qËô¾s0²J'õ•s~„VºØ/×€H‰Eö½Ö¢L«`Nçy ô _Ü+SÞ‰;e¼Ýl™ãάÏ´°löî-à3S‘sí[8ÒŠ÷p“]q‘o›ø­`˜[òÅå4>/1ï˜ÛŽ®%À·-\ÞóX®ñí|[Ò4€¶&É>Þ}Wo#g#£ƒ4M9í¸y>m¡f>}ù„X)¾»B¨ÊH›…ÿ9»?Ï9àY'Óu™Î¦ !ŽáŠLi}<ƒÉªë5 ¢ÝûßD }çÿíÖÝ`;žžŠ&ÅÈ×"ò«H:VÒ|…ÜU_$•ºö¶ŒPòðPy œTƤèï»ô™Ûá¸J\sQàËœ2GÍ#b„Ú~Ñð†qÚðLÃ`E8~â2= 96Í"æ-P•û]WÌO¸ÖÐË#„?Ü,ðdWÀYâ®Z,h³ã‹ñ™E´wLi$±»³/9¨ÁíJèùzõÛþBQÄ•â%½èfÉ ‡þkdçA„]„ª6a1J@[WñsU„¯<1køýàî­±Åüõ> µ…Û¸^ÌÖ3X¾.\jÓ#B'[Í¥Ïï­.){×2*}(÷ƒ›3ˆÊ“GUs÷ÝÅ÷j.ky¾Ìá ÉQÈÑS–¥RN›žEŽ×ûm!¤£®¯XM_+÷í#+ZUöVx}ŠrO‘UÝÊ¡‹1ò$qêãBlwÙœ|¸ø´_œ33“um@=z°ˆ7}þs¢ñ1OEÉ=I—ž|cT‘Øù‰ â(QCnZ®žIË›eßg·HKö²ËÅ{œÏ­W_aK‘xÎúãjD¥Ib»Ë'ÍcQ+ˆÐ)uiwG¥×ÒÊ©¸„áÓnìW÷›R5º÷‡¸¾P&ÝòÙmóan[n_$"q½Y£,ì|aD²”\Û¥MÖÞQ¨ÎáXL€E 7µR:ZåÙò4› €R.éñ¶zx ¯ˆ$vípeÀ°¿ÊÅ–1õÕ€µsÇ¥xó!€•†Õÿ@vüûµÞXÎÛõ†<¸Î*;¤”nïBÝߌõ:û–©ßZWœ‚Ÿ¢Ì‡Æãèã­LÈx¿Þ q˜½ 1jÀ¯Ëi>,LpüÊY¤ÅäŒgÛŒº"¨ø ó!–óMèŸöƒàCãMc! ‹òí(°ßWø‰¥L¤9[sJo4CS#Úü¨6¶fîøòÝÇÇ‘ŸI€¼½"MÒN¤÷#õ¥j¦7yI¤9UîŠTþûÞ´õ²VÛÏ8ç±>ul‰?c Nb|7_ùŽª58¨^j¾8À. ‚­¸‡zð)ñ¢íüe’'Óm†A¢pò:QîÈT&7S )©ãÛ–ž(®éóÛÐ<±ãÜÉŸµ]‘–n0~vEb©9\ ^àí•â룘5c5¹ìSœ#¹ÛÊéÔÐëzÇïe»F’JCÁ]†ùªKãÊNÌ8ýy¢{U±ÐD>«¯Ø>±âièµÑ¬—ÒÁ_T Ön²¬oèÒEO6¦_¾|ˆ¡.ªÌ^ÁR\¶Ö-ê~(ñÙW;¯žð'ÔxüYaž Óu`7Û ÇžKˆ`ð1Nm¨úM? øêެסªú¦¾›H²hçŠ=®ºSП°*ô¹ÇãØÖÍèýñqº¯í·d,H#Å%>¾VM®; &é0‚³…i=L¹¯ü‚ã³'m¿ÝƒÐ]Óºg/(öVnM€d–ßüUFäm`w‘®þN%å:Ñb£²ú€|š7‹LSD|ƒ3ªó•ÇdKIc¢µêØþô oom»MÈ×ËâTðY¥ßG¿{yÒLUÕšfCÜñ¥{]sûþGÓr'.Íåƒd®‚6”’Ëé# nÙ[Ì$Gnœ°cgÓâë)}šÖÃÖ)Èi¸ÞœÃK]%I‚b¡øcŸäEÚ&5ç}g5ªÜQ[2èŸsDHÕ[#« \lZ¨{{R%-Öã>¶ïú. Õ|P“@â0;õ ~y•F[çÙÓ¿æ;ÑãkVG&¹ìOÙc6S1òºãö©X`eJà 3º¯ò[ùØ`Q.#]‘SD;ôÑWàΙºø5nÂ,þ*Ê\ª õi‰ìÏÒWÒÑÑŽ$…ˆítG¦ãú ñ%V‰•»‚WÆoƒ–éÊ4VìZ˜÷âÒ;r–s†´7• ¤K´fžÁCêû¥®CdIçß´µQï4Ôpà†¶ÌXÝú¶íéÔkä£å„Š|ÚÑ¡|µB0¡3AÒÓÙpÄœ|úš¡Þ­VpB¤vâdUªXøD\•¾Ïߣ“p¶_zéöƒ¿h^-Œë£óB¸ß¤°×æ<3PH9Òw§æ0Ͼ¼[f…Ör†š_)ÍWtEå&/LѱŸ·óX¤ÕM‹ñ… [00”럚·Kgb]|

w„'wžøÈ7’u…„`n>£õD»‡ê Œý–`2–LÉVä‚ùž ~Ï x”záÒKÔÜëÞÛÞ'vê³pÆÎ”;Xäö€% Éçè§Rü-þ7GXŽ×}7¯4¨¼a²AËT`™²^ßNÂÕÌh›L£iX®£‰I\Ð"Cñ¥Æ]ˆâ8WY‰ˆ‡Ùä÷Kp»“ÑÊÍÐ:VzÍ<%¸iOÖ¯˜û¢‘Ýî}tçâ>Èž··® ±4ÿeø½I«Òö‹ •\ZšÕŒZË犘W qÅhÛL©CáuIŽjî’r†.²8±äÙÁÍôEwy€ó›¼%a */’-¡P߃ëÕÆÉùé‡ÃÔS9náì{Ï9<°»±Þ³ˆ„øn,œ9 q@º’Á!*cƒú¾I²\JÁò}¯/ùº¿ gÔú‹ìãñýøuèÓn ÷•¥ÙOR86ØÊnÅ¥³oN:”*ä't«"¸‚áf<„Iø‰äFä^‡`‰Ë£hOšß‡¾þÕ<ÖG}§UW€òM–W…°¾ºMðÓ­uÙOîÁì œ!›Òž‚¥zû=¯åÝKÿjÅ\¼˜÷B=ŒÌ̈Ÿl¥Wu—¾ —÷Ð.ª„‰«ŽO[^Ф¶VÖ¼fu¡ŒKÓS* ½ ;un¯PÑ{ZÀ›£”‰™>ÆŸó½ Íd,;æw¨l]¦ ¥ÝÓÞ1้² •æ*ÁðéÛ{ýàÌã N{ô\-tv }‡VhÌyÖŽôkb­}^qnG¢ÃÃsœØ“‹¦3ŸRbö:&´®ÝhÒöÖc¬órtÜ€K‰Ë.7¶äj,èî„©]–oþ¹Y?ÛQH˜ËKM 9¦ÿ2rM~âø”Œw­»òNPN„…ö¦žX);¿ãÇÖí­I®‹¯ýd-z”tÉ3Ë—r»Ü‡„RgšÉ³Èl l®òuLé-é€q_*Ü1ùzþŠ—V‰KçÚÕ]çª^‹Ë=•¨Xç§·yYeJðþI¥Iëj­õu$È5 WÙ¨CŽ(X"™•×q_æ_÷.¢Á’4_zÙö¸c¸9¼/Ži¥•ß‘{¤ü°vO ¬1BÌ Ö=9 ‘è.÷†øÿ°m»~žT½™h;Ú~‹¸¥Mq <ýÈå™8&Šüì£Iióiï#Í«LuÜÉï{*à+Û)–WÊÊ4•3n‚3Âpê$Ÿ¬oü–Õ·´Ú‹ž6ìC5ƒØÏä<œsKüsãYdQB×OÀÐoQ~ï¿t-aŠ¡¶Â#Npãþ, AÿâÀtç3Ü éýt!¥eèþü…‰jM ‚îôÌá_ƒµE”Ü=½DsP­=ÍÐà*6œ‡z*$‘VPˆºRyù%ÐQé"FãÅ?ÆÞx®ËûňœþPqÎsà $ítôˆR‡ª¡:[>v8Ç:4nÆ‘Z?öUæ¼™Òþ´k âè!Þ5ºüÔ,j¬¢x3Pžf/­'è´9^V¬ïÒb‹Ñ[ý0ó-$õ U›û'÷— ‰•HÞĶwÖ´*.³–¥%á×//}2ˆÒMëÚoÎ÷cÆy1¯øA;'_!d¥áíMì9b@d™±Ê ÐÈx®v2Â9šà)‚[…¬ OÉLEÐÛ)9üGyOKcßÞÀjZóùHR²äyçcù |Ä%6U3WZè9=¤ªiÌ(öÂ/¥x® pÍNù'Õ!U3¢ÒÌólúQµQðqþÉÕ$ö|ýá맯¥tG:²ü–ØsgT•ªcÇ¿«­ˆk„-^¾|/9x”læf(Ü-1K¬EŸuoÃ’­[¦É…t˜t?Œ<*fPW}Ô›¶–,ÆÑªÃtxwÙ¯YÎ Nߨ° $ç€ÕsÒƒ7•¹>HÑUž)ÍEH¯Ù§œ2I‰Þ̳e°|Çü™îZº™¸äùêŒÓ¸¿,Ê`M  ©x\ [À “QŠîN'ßyÂÆŠysXY¦€‘o1cíhº›é15Œcün™µ{‹èå‰AfÿÇu›_öŸnÉžyoðÔÕèÖŽìu«L¢¸óÉ|’?ññö„JÌ\Æyœ3ö xýL~yHVfáŸç¦©'*‹2mÁ^¯5¦=1“å›WÆÍ”dÞ¼,êžT¨äøÄ Çw«Ðb”@¶9*}+»t¨è.\Y€Q:NMö@'3òXEæ1 endstream endobj 84 0 obj << /Type /FontDescriptor /FontName /NZJDLB+CMBX12 /Flags 4 /FontBBox [-53 -251 1139 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 109 /XHeight 444 /CharSet (/A/B/C/D/E/F/I/K/L/M/O/P/Q/R/S/W/a/b/c/colon/d/e/eight/f/ffi/five/four/g/h/i/k/l/m/n/o/one/p/period/r/s/seven/six/t/three/two/u/v/w/x/y/z) /FontFile 83 0 R >> endobj 85 0 obj << /Length1 821 /Length2 1985 /Length3 0 /Length 2549 /Filter /FlateDecode >> stream xÚ­Ry8”{j¢lÉ^d‰ÆcÆv”¥dÉ2(dc F³0‹%KöýØ¥¤&ei±&KY:ÊÙ÷DMNÖFÔúÎòuþý®÷Ÿ÷~žûw?÷u?œ´• Xßä†5"©`¨ T047°× *ª 99C2MÅ‘ˆ§ÐT¬6ÕÒ‚ú4O@M€"´am58H0$ù’qž^T@ÑðØIÐ'`É8 š˜£©^XKƒÆ6$ K TôñxÀzç°ÆR°d?¬»  Üq*à†õÄAC&D ñ£ìNóù³å‡%SX¦E–ÉcË¢;‰ˆܱ ˆ‰5 Ëròÿ0õ³¸ ·@väwBúWMÀáÿK |hT,0'¹cÉÄŸ©vØÞ HøM1¡¢ñ8Œ>ÑT”p#\ÖÝ GÅxh<»[ÇݶÀJm×äô9;˳g•ls·g…Æ©¶>©îw1ôoÌʆŒ UUTU¡,"ëûóÏù§Y§‰’;ŽÈ:8@“Éè@ë.XAÑ`X†!*D•õ`%xÈ e"àD§´‹Xû ÿFšÄío¤@0!(T€ÿY:”@¡îÂ'c`@ Ã5°œeª4àª!ÿCÄÐÈd,‘º{s¬|ÿÄ8Ö6°Ø,4<@ÂèDy_­Š) =}§»ˆS‰ÍÀóIªEyCoýþÈ¡46|A›™¯ÒD™ýfñ5Á N†”ÿ–8%¡.Ùi´Ýÿáçʸv驸ýò5óÀ>2둳k«úVçàl–=í…™ôßn,µÌæ[)ž²ýÈ=&½§Ñѯ¢ñzBÃÞèþ\lt™…•ãT§œ‡Ï|Föݤ_`ZîU/:oªÁ‹qÎ(8ÑìR õÎáêÈù\&µçƒ)Zé+°ÔG3~Ö˜vø÷^L| ·ÿ=qA§Ædà]ÆC¼rgüêmšðhÏsF3×Öÿ 3~2Âñbÿjz¹÷għ´jy+±QÑ@:`v¼²yY93ó:à¿"ÜS>"‡ÏY·½yñÅcËwùñuKgc%ïiäÊÕÑèvï@$£,ÑÖCjvïe6©ýß=Àof"œD¸eeúw¢=z\y ÒЮڳ”ì{µ(à°ïT}˜øÄÌrÞ’ȯ…oÌêšKw›’“Ž7@/‚n<¿ûÕŽq>žç¨¯§ §Ç7#>ůœ6* „õÐ5Þ}e€Ní…DG²üû\‹)Ú•ñóò¼¼´J¯×·TùjÄÑ··O Ühã¡ùÀ8›œ³B¾§âƒ|‡¯*¾’í7ùÀfq9§¤ qÿ/éa6~Ý+ËaöÖ¯ïZ:µN0çÏD˜qÃzÕÅÕ3(ÂC³”†•îÓÂç°KÁUM— üòÀ»èRÎE|Fü^§g•*¿,ᤄwÙÆž¬—¼D—)?££Q9¯øç4'…šÚËRÎ:Í*7GŒjõ~Ýc)×–ÜÛë"Ookóïé{3¯4®ÓЬg§ßÖO˜J öšÉ4ñlé8—¤»Ù!¹¹­Ù;?"ö jªkîÙæ«A‘ù_Œš¡nº)Exæ1åq½®[}a)È»uW×(Ÿ\ÍC“;Q ãù±ãbmJ¢ƒlÁÆåŸõôÔ¥¿Ì“Ǹ冓ú2_8×dêGD}´’Ú¯7ÚjRj»õfd_BPw ù²¹óMocÛÝW‡?F÷€0GfâÃ6˜”qÑÖêÝšŽ§À¼˜Ï7‹¸užn[Y]ÊQ(> endobj 87 0 obj << /Length1 2027 /Length2 15071 /Length3 0 /Length 16170 /Filter /FlateDecode >> stream xÚ­¶st¥ß²¶ÛfǶŽm³ÓÁŠmwl'ÛèØ¶m[ÛúòÛûœÝ½Ïûï7’‘±®ªšU÷¼ç|Ö2"e:A#€˜µ#=7¡°¬#!=#£ ™°=@ßÑÌÆZDßÀMÈÄÅÅL(0øüðùËÍÆÊÍÆ CF(lcëfofbêHH)LõO¡ ÀÞÌPßšPVßÑ`õÙÃPß’PÙÆÐ àèFO(hiI¨ôÏ B%€ÀÞ`DÃÄDhdfèHh01³†aøG’¤µ± !Ç¿ÃFN¶ÿ›rØ;|Š"¤ü—L*ÂO‘F6Ö–n„Fc9›Ïi€O-ÿÈú¿ÍÅœ,-åô­þiÿQÿOZßÊÌÒí l¬lö„²6F{ëÿ[ªø·6Y€‘™“ÕÿÍJ:ê[š Z›Xÿ2s3s)˜9šë[:þXý_ŸÎýKƒº°ªœ²*Í¿Ïô_9}3kG7Ûÿtý§ø_Ìô‡?ݱ7s%Ôfü´—é³ðóç?éþŸY¢Ö†6FfÖ&„Ìlì„úööún0Ÿ·ç“Ø=˜ͬ®„×OÁ ôÖ6ŽŸK?=ñ"4¶±‡ùç@ÙÙÿ ý›Ø „þ!ƒðâ$dùC\„ ¢ÿ!FB±?ÄDÈ þ‡˜ $þ !ƒäb%dúCŸÓeþÐçtÙ?ô9]î}N—ÿq~NWøCŸÓÿÐçt¥?ô9]ù}NWùCŸN¨þ¡O-jèS‹úúÔ¢ñú¼Õ úÿ!–Ïœ¾•íçó¡ÿy-þãÖç$}Ç?K>‹ þЧ`{}C €£%Àø¯*–ÿÄÿýý'ñ¹{ÃÿÛg3CËϧñ#¬¬ÿD¬¬þ¨bbü´è&æOÍFf{€ƒ™Ã_EŸBú~:ø¯¹,Ÿ‚>¯’¥¾Õ_k>ý5þƒŸŒÿBÖÐ쯹ŸüÙXþAç?#™þ XþÉÿSnãdÿ×´Ï“¿ð³¿éŸm ©›­)Àú¯ŠÏØ_ó?÷dþ~Ú`ñ~:iù~Úü×N?`†?Ù>—Z›Yÿ¥ýŸ½Ûü󹨿¿ÒŸ›±ý“þlf«o°þ¯geúŸèŸ7ë§êÏefó× þc•ÝŸñÙÜÎÉÆ`d`ù_YXÿ$þ») ×ÿdþ;ÌôÏ™ýå8Ó§®Ûç"€•Ùß7¶jÎùÎöÙÄáó ì?;øtËÁRßÁô¯ÆŸ›ú3–ís玦ö€¿®ß§CŽ.6-øìáô~–ó_ø©Ì寋ö¹Úõ/ülïö~ÚåþGÜg'w€ý¿Gý¿_äBB6®tÌŸ ?ÿ0þó(qr±syýW¥¡“ýç±9þë=ùù>ø_66û|{®C˜åCžó¤† oѼ©Rpj`!“ƹڮÙvXÿ¥X`ËÂi;êç²TT„ð—W\‡°6OÅq± _»˜äù÷çï©î͸ש²nû¶Äþ'ˆ­ s·§lÀò3£% šùý—'9 ”"*‡kD@ÝÚÎuÝiìb©–ªÁ5ä,DJHÉv%!¬Áë.H q`ë“þÞæÁPM4«W6mN(ÏyPÙñï:èÑȆm,J;ÔhJ‡_O‹óƒ‘«?ú†*ÒM”í ÀW ”F$ý3Qƒ*3ÜqDõ¦/1'DCd/h›Û4ˆÞÈØu7 ÷ôXhôLó¥– /ãòl~ERrå¶IÇÿ Ýò¹ðDŒw̉TÓ¡Ò'‚o6'ÁÔêOM›BsgB¸MWÅô†!¶ýšðáá$ª+èUèc¶‹ôl.Dõê-o‹Ø7À«p”‰™YÿEFºO ÓžáK”ÀÕ¶P”}å–Ž–Âl„²ì댬 ˆg'Ê:² ˜á†€RQ¹rƒ`®·ïžo‚kÀ›1®$úלLê 8}Õ ;F¾ƒ ˆb9QLgçƒÖ:êTÒ_müU#î<ïÅòg\c/V*Ú5m}™ß0’Œ Ë2T-ç.¡H/ÔÓLÖ¸+`¿øQÚ³Gñ9®CŒ°WFŠuã Ú‘2ðÑJ/GÚåɤ&œÅ¼Ôo·œÄ+ “Oó€›*L‘“9÷}¯ Ð$7µÀ˜sßòê´8듨˺I ²qR^±2ìšVo*´§_5{vŽ%JFŇã`"5ؼŽH 5WƒÕÑ<Ð`$ (wŸz½°Bjb„Eá¶ÚÐÏö"Æ Cn^y.––û€€µˆ ÊV jäÕ0f‹Ìƒ9þV†:Œ]g¶Tû-ŒÍ¿ÃH{™ÍgnäÅëŹêBÈÊS¦1e¤NE:­JR6Þ˜ Øu ܈ü¯ÍN‡Üið"Ê-]öõ« “:hG˜ë”œî%q4§ïÙÄøíL2•~ȋڸHS?¾ß, ð0„§¼#:´ˆÔN¢¢ŠÉÌwåã¯#šØ'tJ3—1ÞYBx ²(‡Øßc€|õ>™[Š¡ßƒqÆì­ø5ê9Ä”áRjÕ¸E«hæÒ ùÖ~;¥!"çåëyœâÙ.Co‚-í‘7{«òZ›JÈoQO>3_Ïüe;r&»ú›r[Óî’I-ÂÌ:ms•q‡°2øÝÑ@ZœÅ›È&Ò´ÈÉÙ,š4^Ú ƒ›’Áûñ;ÓPQÏœy6’)nI<ôÕ±|ŽšEâQ”h®ÔÊ©á=^Ö´¿ól²ˆdÎSr/Vñ;ûÔ<V~""Oh ¿ñ‡ ƒ9³ð×Çv*ÓÅô= î©­ñEåžÎÇ|sb‘'.)ÉY®û"A^* ¢±*L[­»Ð*WCPäwö2]G9_ŽXˆPˆQí>ä•ð'Ù‘‡”QêˆÇ„ý¿~ÿ~$mÕÏÏæ,óõorˆÕÇu‰ '”ðP8t鲟/]{Ö Æs –4Õ›øèÑ6 {QñW ä ßÙLAºðæé>àòQñ’ÁMݸ+ü\ØO¯\Θ^…÷.•A“½ÿÐ#árs߯³ PEìæ²þ5À®YófMN©íOûn]t”È%öåµ<#'çúZ›NþÍ4³qãÑÜäÏ"¯xŒ"̰½û$vì†QDþDZ¹$Ï „þâ¦×‡?ùê¯Ó¼‹OõE¼Tº©KÇÑl“é±%ŠÈsõy±oÎç¤û„ë;ÕøzEžI¹½¿t‰*×l*ç1\Þäd’ȸI&íÒ¼ð¶†ÍbX‘x²^öÄ•…ìò»€AÜQ|ª}’ciß ôBâÖŽì þßÇ]^È&ÔðÆØ±Ž~8íÐNú¹†]]ׯ/Њ7­×&Š‚7/"êcÔ ùÀ±Ç05…“*°­!Á vßV‘Oš§t¥ÄìïX¹<~R] w„´æÀùnåh2P5pîÀ¥‡qû¹¹”i”=(ioë6Xþ>jBSW%t¨ÜüZ«ÄÔ'Þo/‡æóÌv†«Njƒ¡1…}¡e5ËÒ»·Jÿò&PKžÿ–åÉʹªñ$­àÝÌÈü”²¥›¥QÅÔÚÙVœ£¥ï>±~¿Ü³|N„™Uí¾ŒZשî#–":Ýfnø¡§e²ÒóF½¼ßV®¢|ÞoJ鱨LAÞ1R·1CjÀæ‚ÉªÐ°ï ¥4IIüVõñ²M›Ã=iÄZq[ŸùÁ_ýÛ‹ R_õŠ!“‰–^ŒZ—ËñÁõÃôú#l>'c¨<Œù©# °¥¦,¨æ¦ ¢‡O½\Ë^Ì çO _~žÈ¦6—ð­{¯€øtJ×:þRÑN¤õkZÊžn‰‰>%}‰Ý‘"QŠæk±n ¢Ã㺋†åß’ãXÌ}í™Z»Ü¹P–dÇäm$ ¡A†ñÆÍéÁl)è'Vv¥Æî’*SÕÛ>Ï=b5ï¹jQ$«=ÀG 9èD(©P‘¡»‡””5®:8áä7¦%üe¢Y> Fl$Åʉ‰™Ô}[ {Uá(Çãè@’¡BÝPͦÂè"PB µì w€i†QWP½IfÒHÜ×ÐbpW°$å°š*nIé/ ÓròͰÐ/¬2üzÒÔÙ[ýÎ:Ç®Œ©SÐàÀh$jßÛíØÆß*.„@ª¶«žöà…%W^fËÌ~¿¶KKª9êÀÙeö0O&8–˜ë{!ˆ94£Û¯~;‚+T9Á™'…„螺!º@™/Œ£’Û5¦°”V†O¯>³àÔlÝÁŸô¬*Oa'úFÉoyÊ rúô\«ÑÿŠ¦Ç«¼Î‚âC;'?Ì: ®NöMŠè-ƒ¶#öûÐtJE‘ªÊüñfUÊ=PÌ Àô¶·Íœ3HÕ®b.ð§'úÞãx¼ÁBdôJp=¢w”×5FZ/æŽ=‘<\’ϽŽi|od9àj Ëõ! N}‹mJxͦIDÞJÂmô‹†,á·Ülø&IBŠ'[﵌‰^–…<œzßqGgÅ^?Ë6‹áf¤™°€'ššÃsñî"ìrˆÍ,ê;hÎ7§ÁÑ2eÃLaÒeùG¾ü`ÅÒŠM•OKÿîì–® Û>+'°NHwJœhÇcP°*2ãEð²›mQ óU¢Š÷°¦¸éº{ºy) sÑV(eÓ=‚,yáF9‰ß±l(”xÞ£¡8 £ ä#…Âà§ySÓ5]9 !‚ø¨?LcÕyÕ±Œìh>Å¢j`.¡àb±íïþ„INðõ¡øÍië«o8‘ì®·ŸÐ{Œräüqɪ` ¸$ágh'ÌÒdî s΢áîn!?"%<¶Ïòv6`ìT4´Òµ'CsrÉxCo .’ã@1«x®{° <2Y<¦¾Ó¶úx¹XÈ#@ÛÝßšûwˆà÷SK¡"˜ÓQ2Øcƒ¨¹G¸¬j§úàë(Å3}Vƒ_O4ÅÕA:ìT“yë½t$xc 6¯›çt*¯[Õ‘€ùH(“Ñj¶NÏWŽ2)?Ùb[ûÀò‡”qoéžéŠ·ÄÂÜÔY‚Ù·PŒMöÊÝ{> ó»¢òo@£€òÉ5Ǭ>ùv@%°ñö9^t´É²D³íÌ)í¾Vµ(B•ùïк•Àþ^ëÇg:FI‘+^ƒÁ°z»ù¶tr¤=P•Ô=}ê,T5ÊÎAó コ3’Í0¿Íþbï°íX&òñ%M•<·½ÚÖ‚œKèÁ¿%m—É’Š–¤»{NToÉ9F$/õÌnCäkk¾ZŠç¨ª¡=í7Ý£;x‚R6áý”v}©ŒL@ Ëá ~ã“)ˆW„š°{W\‰u>€ºþ…ëUR=Êl„Sƒœ˜+Ɇ’|†ØmŽuû¨ÑæÓ2ý¼íêéNº7Äß ÃDÓü|ÿÁlóÖrs²«štNŽ?Ê‹sŽÕ³7BQ+z†Š¿ÛxÝØV/ùî•”à«%_U ð1ñAŠHñ n`l¸ |ç­]Íâ½zqÉy0.£.,|µ˜IÑvŒy¥ÌÖ Œ˜m7rH¶£ø)N.‚>FÛQS?ñ£3ô©e|K"mŽM<ÉV,8(sþÈ‘ôë¾9ãÀãšÜ 2Ž5ž™Á§Ó@q—x2üÁäU± %è(pL2åA‚¶nnj„û/}ã€kÂlÌ’+-<½>“úÔ®¡ÍvÚ÷LÚ£Õ@¶sßëñ†‹Q8x’- Ô~ö¡åÜÒÈåè{i‡¶ Æ€†°§1RÖÒƒîüÎÝ@BhØE(ËõàXµ×•“1‘ ͨ@…Ï]YZ›©(˜Ðk%r•*ç ÈÓvzív¤[yRš]‘Ê|¨j1:*Ù…Ý)éúøÒþQc1zk‘ûCsCÎC£ž¥pÜ ÝÁ7”fÑWÔIµ"]h³"Õ:z_¨!_ n½Ïæ;I’×®¾+¯™¦OÙ1 5Gç÷Ü=)/b¨D‚gÐ æRŒ¢S•³Ê7Ý嘡rˆÄj'?n±Ü]^g™mÎ PƒXœÌêA=òÒ‘ÄAƒýp¿:xî• çiê0ußÂÿ¹»®öÔW6“õÑÎÎfãªwè‹h*¼·¤,Ø@…èWÖnù%ÖyÍË+÷é@;«\åc[.Z€Ô¬àÜG¼Ö4ÅŒÁÄv÷¹öDïºl?/y¯SĘÜ\`ˆ¹Mëy‡ôƒ°x?ñÈ™¬CŠ'ÇUfõgXŒàꌕ…NåÎjÙ —>MD’Èê4ësY¯Æ/~­² ¦¸¶§_ “fI³ª &Šœ/XJŠ!!ÁÕÏâx„w*™ “±R=›DÈ•‹òYKe“¿…¿V›å-²j1ÓC|[ŒÀ˜\,LègB¾nêÐ?ì ¹ÔZ:$ùÂ}oñ®‘ÿ5A7Aj=¼j«Ç\I–ˆ®#Œ©ùø^x?ì.ãW¼Ï*§ÚÔ‘‚ÖR C¤û;8Zd).Æ ¡øœ×Æ—Ñ:Adq}t½7ìÌ"U1jПéO&Oó®Ueßän=žQJE§F¾ó›Zèb± Îɰ·#‡WÄÔíF>â Êúÿ²<“ +ítN˜(S÷´¾wsB-eñC³¤)Ç£„ªîHK¯*¡êUaªÁj/r»Á‹&¦5FÓ!Àaê½jûŒMæ{Xê×8\F8Æv¢…u!} r°‚Âso"B¬öw7f¨èþîÌåØŒá>†ø Ý8…"çêÎö.†ŸÁ9ë™lE,A÷R–¥¢_àÂÚ!*êb•Îu÷q¨Dÿ1õËesžÂ`”® ËÖŠrÿ›+Å)eMâð ƒíÉR^ÍÑÌGT/û»‰‰&TeÏÿ<ËK3s­þcñN„s{”l*ò¸\?“•¯ =,/^.ÝÔ‡Â-xs8º²ã?úvÚÙA2Ñ׌×§Só¿¥»=CþòíyK÷‚Z.Ÿ^NÒÇÆ9N5"-t~éåòf\âþþ¢U,Fæ–*ÝhÉ@©¡¥5ú­‡bw˜oäã´…òQÜ£äPà KÙpr¨ ®Ô¹¤cmÈQÖv—/™€vhÙ—rjõ8¾7sNëzö{°Üܵ?£`º°Î¿cZÞ#qXü‹ßNñïçnu =¼½—>›/,¾ 6áó䪡¾@Ž3æ‹Úq§[DØdî²Â…v¡ 0qƒ³z&¶Z-ÇüÃsØå‹@èƒç„]±£Ê:³N¶ƒ+¦“1Œ€ÐxE:Å2%¨Ú Fÿá…ª{&Q¤ôãY¾H…Ö ï1ÍÁrÞe­Ë–nS’ß@: [œÕbA7ÚÒ7ð°:•ñbÛ_5$"~ÌHûWb|6Ènº §ò5<<~Òöæ ¨õ=Ï©>Xo™Ù°Š º«·S>„VTU¥:ÈfOÁ@0³¡'ÐÃKìMÍSññoad´#_v¢Pð~ðÜ^‘çD¸Þh#ç‹—ØÚh꣟¬N‘©–D8ë°5äè‹miÅ›÷€&Pо8öY»JK½÷UÀqvxYÒõvsŽSÑmX:+{vîø˜ƒ¾ä:­Bi›Ö)ù)® Ë®…Ÿ¾¾ÌVA^µ²vÓ§ÇM*PP‡Õä{ ¼¨-h…YKBt¶tæ£X@ݿǼÖÔTikÀŠð'«jÇiŸßU_³34/³(¯ëØdއÎ&^ý²›“m4áK½×$^= µÈÉòÃ/Êë€&â3dÓ™în¼šIÃ[ì´c;gñ6øiÈ`øücæ|®2lqÆèÁÁs‹×:ÍjÍÄ=9,‹-LÖKŒ_'•¨&*þْݯG™K‚–±:FTö´7†_’`x¬Þà äaŠˆ4µl©A4ºÁãß¡Yð³/°BÑl}t«ÍTzuí":›&Ë?½`»s!ˆLäœgɸT;‚ëmSñÉ\éÁzL^øyßè—B^¹ºW`æBÖéèLv}õÕ=üxÑ…ñîÎVqeÓ€1Hìe‰.Š0’š´ðA×Ì‘Eè)-'¨š1ן®Šã$Çæ,¤9P•L*èôP™$2¾~âœÕ{»Ьz£‹¯æ ¤yÖÈ.qíuŽU.²t†M ¼:ñ» æ ŒxEx—½Š¶²ÂØu}ŒnÃGù‚Ô¯°3E(´7d:¸óßÍMgkøÑ&S#´5¦Ñq#˜»st<³†ÄäÃ9t³-Ùw©¦òÑ“½Å-2T‚´ Ò)²—Å‘"Nk=×£:÷{ª@¾^5WY9¦ìÄ;ÌÕØ´¨œQ‡af¡û)QMæåÙþëfH¾~ŠYί áÉM£]\Hà³Uìl×™Ôt©ß=üÀbuO¨äJ\°&¯ôªH/¹:¡#ËLˆ}£c\ ²¡nð;§*£Áíù2âG0>DÏß‘ÍBŒ±CÚ{:OZpY7zfóKƒ¸ÎÜï^Î}Uóm;oOß<·¨«Fp™5¥Þ-gs´æöˆÄöj`6@Ÿ^Ú†;F¹·ÁdQ)kц!òG‚­¸ê‰@qcU1-µŠbq}ŠíÌÀ EîýGÐêStª“hºX|»Ï¦k2–­ôN›0ÍÎs…}²ºŠá¥\ˆ]ÛÀG¢ZÂÛSÁ¨¤r—j>åö8¡ù·~Øð1ܰŠÙ³âæ²7íå ¿²j³7IÆ\ª§';p&¦3¾cRØTˆæAÐ ˆ;P+U§Þéöoì/Q+]³4+†?A½ó\æòÝs NÉe4ï<Ã'—~Ò& ‹MîŸt‰Y>¬út '<Ç-·6 ˜]’Ðèk _J8 0C.DnÒ2|Ä®]qðHÕvÅùo|C¹Ž.öÑÏsiI_Çö ×b¤½aØâÈ}×"$ø¨2#Ö8]@d@ QLž°W¥{`¬Sçj®ï§e¹Ç`¢\Â_DǺæ- }òRò_iÖÅ̺™Ý—ÈÀo^å³d,m…wËŒ+ðÅÑŠæ~õRRLLGˆÿõ†&ˆaåòÛ¸ºì?¨ùwdW=F>?y9\m‘Åw£^^O9{öãd z˜yQûÚTZB™‚°¬}ME8‹åÜF½ªÞ¥ÊÇl¥ÉÐ^C‹}in°âÝ„EuÙžäT,±„:%ÕdžSsQí=ƒ÷¹¿ß†ÅÒ¿&¯¯ÕJ&¢¤9Z„:¢£RõÉOuš÷ŽœðÍ'ù³~~qÉoÍ=sæX+N€µWvƒ{êHõ¬N~ëÓ[‚EÇj¶àKRš5Ê,Æs‡psݯ¦wq¸´é~Ã)] ÔÂ’‰æ 7+6ÂdýQAæÓ^[v蛥Œ½š(ÓO§osFR°aƒ·‡•Eg§€¥š1µAËê=ü~þµÀ‘qSÖzŒïÝb³IÜtq…U„»ƒÁ¬FǪ%¸ExÕòÒv0C =RTXªÝ-F]m#ûoÛ?VŸËH·Á•§h`¯‚HDm¬;q î H ùØ p­_Šdîxr3paºÊJPCÿ`$gXq+es3·O±•qÑz5ÉxŒª7á°¼EMJ4-µçºv….rpžãm…ñõ‚…l‰œ蛵ãKÿнå)j^F‰„ çÆ%é·Xðs$ðxø«þ&?°7cÜY6d²^n_É`Éìoè¹)a ,oì玀±Û@€Ê*—KˆÞΫA©ánRùc£ÀÁÀn¸ZM¬AšÅv÷=yzæüH›™ÁÔ¶â9{Ò5½ÿ œ=2»kká^»ïÓëØ$ã!MŠ1Þ2›/Åóþ›Ô¡•gF–)‰¶2þÆ1ÔtÙcÌÕûäDw¬ß´Â°šA&º°êxÈ®NphËO—õ–õEåòй²ÚcÃx©êÛ_fûõM‹<ü‡¥ _ úùTÊrh»ˆr³ÉAÑFø¦HºV"t¹^!ó+=$À ¿ G þÛ ™¡îºF ˜!yÜl l®@[ì;°PËv¿@!m4[ÃÔÜ.xV´3:ßÌËÇôŒìº“ŽùšŒlQPb­æžî²¤ˆ5ýÐ* ÿ8˜) ´qcƒ2´å*]XñwÈÞ #Ú³:q¥Ž³4÷›‹wþF5œ cÌöË®’I‘t€!{:8IîÉ`q-žÎî4ˆÞsÍ£2÷B1ë]^|9ZP.U4›½Ôiv ­ihr¤•©æÌö ¥ì¥›jî½:W)½ÐÔ!2™Åð¬&Å/¤A›7½I^3KnÜšhò̉:¨t)gàŠ>—Ø&)\uo‡Õò»Ü3f[*¦5lOx¶ aÌÑ7­ž±U«îŽÀW^F?>q\šDéå5i0y~?3#óB{Pù®úë—» ‚ ““Ø»«ÜªOU‹â{/;n°yPê!½”žfè$)—`½ ÞÍdØÀç†^k·ˆ öÉ<(jœË%éIŒ 7‘2Œ2˜qoUBÎ2­9&öZ•P†÷Ú(⸶'"ìÀþ«¶• ,S}¶à¯îø>푺,¨ú³L f?÷ƒæ€P’MB(§íÊ•@Nøv$ªÞayyô”ºþf (Z®oTþvîÙ©¶9Ÿ¾?Î–¥²&í•“ ~¸¾õnópÝ žá3æy+ú2]¤ð`³ŸP£Qxèh!ˆ2®és¿Õ,rU B1ò¡ÝtNäÖæFZÎæ P¿´ E°fîu-àw?ÔЩ/¹w^æ@“xÆÇ×ÖØù€Ü†¿P׃ ͦwå/kaIúƒ&2õÂ69/Gߘpä€hK!öþ–ð—ÙÝPVš¿3_©‚ ¯gµâ ¥²Ó¶²¼ô6¡ãíü:œ ìòèM«§óòÆo¯õÔlnm~ö“ovŽIàqÍhŠá¤œEä=¶üÊ{ d¯­_p{Åê„äâ„_Dñë»(Å.2› í-ÍÂòÕ,økúˆY ”Q§Häž·å|-óÎWœ൚ý0•ÍhÓ!î!¡xwVäŒÅÌ:'U»¬4`”È…E'¢¸^{/L©›ŽƒÔtˆl‰ÓÐÊ׉™ aЏ!=®Æ·nµQ¼yåù\«žž"d(U¢q-Œ[¢ œ±À~Î Ò_ȶU{Y!ÈÒäî;þ:GÑÖê&Ÿê0)-XR †`G¯é2xjçs‘ª5þnÛ´êð8žÓ›ùè>xLn”ÑŽA¤m>ØÂsä]Éø ÕÙƒ¥A+ÏŸ4(û{Ô³òU Ñ·¸Üb}p#i$ð¤“!9õ#×Âtœ09däÙj++A°žñ$Õwm16‚zïîò¯ú?ƒ¿ùh\-14ΦîUˆ´&%{“¹Ñ.Iøê3O޼.œijΫ†Ò‹ŸYPÅ#¾¼qÜ­É3+QÔ÷ù .5Ú y «Ë nÇÕY]•éÅ ¡BÖþXâ8þ‚\1;wBI\”ŠÜ0E3œýõl0GåîÊøìöaeרíÆõR$Ë—±hFË9”@¬¥¨lV˜ƒžªÓ; ÷ð©&l $ƒZÇÙ²ôâý!nĺ¬ ðXnä࿞Æêáä›–aN Wx©À{‚²c\TéÉÎÈͰ&­”j¢¹b± ̶¯žlA”?”Œ6‹˜´¢Tåv£¨±Ç/£sx~8ƒÝ•a™mq¿l\=o\±—-ášÏ\z›*«Š&{ƒ(ꂜ1^¡Ù²S®}Øß¼,«w(>~ÞÀq©ûÂ_"\G %h²µ_ټȘ_Ú ÛÍ’Á=ÉÁ’ wa×=×´`\F¹n«BM’\¡=îÁ›éÄY2mâÚOqÛfúæøÒÒ·"'/wÑ5¢¶(ᱬ•PÓsgfÜŠÐÑßb2ª¡»åM¾ýîcª:Ç©ÂKU—Â7k{¿GûEibM¡³‰¿jˆà¢c\ ý [[¼ÈÔnô$[ø~šÿ؆-—h¨QiV‚Ýl÷-*j+³*‡¸±­+ù 1!\®î†=~Õ¦"\+çn-—§X¼þJàÒæ‰¬ËWޤyÊ*»­AKç«0Ù¶¨q¬¡@6|¹Ç—Zx'ظ¹îvöË­‚þ 0ü\êA²áe'Ë¢ðøLK¯÷Ë” rôXnc ¼òD÷ќ撛 ˆ¦aù¥‰`—sO Sùë¼åÁ½&ƒàšÃàû`ró£åu^©á€“3“lhc^¤oíý¼üdç)œ©É2{?öÑÈj;OÆ×¾]H.¹tdPqÒ‘·–ëâéêÛ²8ý(=á™gÍ…SéHò3Ó¨ºP… 3)Óº/©ô±EPÑ̶Y:êäR O†ÛÂ{ahÇýˆÆ–qôì ÔÏÈÛ4F%8ªY.eÁ}V‰L]Ïe·'W==˜º7ÕXÓðŸOj©O­ìâ¦&fXRó/¡ÞŠU—©_“ÀÚ¹‹tDæ™íí<#“1sVÙ¦Œž1…«‚Gkÿ©˜5sQeÈè-Û”ÁYw¤ýˆW`.ÍŸØ¡ôD.½€»”ùœ±œn×ÊÏÉt ÙP?iˆÚ¾'}[ͽAËSN((š…& 1+ªŒAnÜBÀYÿêa‚Š;•CGáüTþæ7 O¦hèßÃBì2JÀÞ-}Z4ýÙŽß•ëO{šió•i/!÷´r}ëRɨ}ÑâŒç{ʵéÕE ä÷ãu=‡~ (ñtáÒŽW-ðb~¢M†Ò2àZyü0ól’²*õàÔÅõðŹ’]81Á ¡¨ UJómvÛ¬©¤Ÿ¥®»gf¤þßúôùøkeòTßòD»—T|v±Åók‚&µ†c– 8NÚpc Y˜_¨Þ& ÇoÖoÁ ˜d/Ç‘ä_#¢•Ä ”/ƳÆf°£T¥~áÏs°+vëé.óZT¥m쥼&¶z  ~kâÙ`FݬfÙ_Šg˹¨nß<ÕNðH’©%'‚U yz6Ÿ§)¿7®zL#Ü9^`¶KÚ˯›ØJ>"žø$W.ññ|°KÉòy+‡õŠgå¦àœÌü&ZWZ‚éôµ]–èõM´\ !ð­ôìwª‰è pØ$G[p«Õ ²Ûïô¶z,é3;Iõ‹…þ·DnˆÄ'a¼¶Øf`~~ò¢Õµïª1`Ä˪£LäÞto Ñ0mÆé|Å2®6eš=É·6‰¨Ð54†þüGä¢ÄD´E>2&»ž<ݹ[(„ïQ3“œ˜ó@ÁÙƒ‰*rºÓÈjœ!U©;¿<ý(ô†ŸC]™Kñ<Xš¸†ql…º(_2˜èÚ´ž¢½)öSø'= <[»×ÔFCúgeqš$k\á˜)èRÓ3¿ˆº¼CþîléÿØ ¹ÃEY3jÞë cWêN^6ñý®/Q=CjÚ§û™l0Lb‘]û[£=—âÉN‘à¦S>6vm Îny‚+“}v_˜‡(˜¼î ³°È*”ÿNÍdqBô“Ö.+WH¢ïÿFÆÆìÀ$W÷£-Ä.®¶Jüahì…¿z¨ª—( J„ƒä3e( rThG­F¥ª‰¨/çP¹øf ³Oz¡ðP¥!âH}vn-­öÁ¨É`´Ü]y-ž°7t~&ýÎì!f>Ó³9<· -óZÿ4GƒS›óÏ‚š Õu¥ !œ¦ï—S&E Â#¯óÀÞ"™k¿]q˜aûáöTÙs÷Åi=Õ‡IúüÃ4M¼âäÉ–ìQlÁ¾5D FEë]žÜ1öÖ+QméK¶E+à·Yh5¤}OêlÛóXNúÆÐ¥%uO*¦L"1ˆ%,°|ùXGð |÷Ùv ÊO!p{wPµõâ°ð bù¥ãòrx ÁÙ>ˆ5„¬*ÛòÞÑ3M©ûBYÑF$Õý¦jÈ’®“I—’K ¥¤wkRt mØ3ñëÕ¢?·ƒ5ŽÞÖ¿Ý|j^xjé’ƒDè| 9z»©"ï k¾á…ZŒ™Ýó%"ÀÛiópK"ƒ)Ý¥:þ>ÅØØ*LŒ×Ä“‚Çþk"YËqy×ÉBÝH¤´Ë[İÑ~‹e%«gÜ <Ä·h¡bª8®KI‰÷íðQ‰ƒÉÄÌræW ‚š`Sr;RæÎ:MKœŸÈ+”Ì44Ð&çvz$•s`x¥ñ;u1 =‘Ø8F¿Œ «@׎e=êò0³Ç2ËßÒ_Ì‚©ó¿ûm—_/l_nnK‚éÎsA=ʘ>,bË™ùhí¦lJj  ^O•]uÑaö‰6Ã¥‘¸! ®ç*ºÍÚ¦†—ËÁØ.2½vÇÓð*¬¡å ·ò‚A³‘jàEÝ£f]pfÛ¡×ô,cS¡9KÝÚCCëGHsÇú¶‘*1ëé1’:ßY’¨ƒK›Ü€Ïµº‚nx#4eè „mî0ÁÌ„ÈOt0dR´8"Zøٖé½’‰êóýiײµïi»d°XK”éåR7Ó·gkaЄl¤Àü¹%³@©n•òHpÙ÷ÖjÓ^mý•´\Æþ⑲vÊ>ÃÅ x…ÛÆµ¸ÝdCßUý¡ò8eî’Am3 bb1ã4¿Ž~‘ |-ÚˆE¾˜Ììâs,§àÚQÎK¬ú‘[½d–úk7Ö‰_6KPP»|vš—ý¨O€§R ìÏ`á[º*mã°þM˨Á?ÖjiÐV̤ù‰ ?Ÿ%Gæ[L,ÑãW®/MuÑ€†8Ⱦ8iÌ&|àûîo°™.F̵›'|jcïòXØÝJ`ƒ¿Ê)Å6€v(¡Zö1PjʤT‚‘Þ]Å.еlg uGó¼£ÖÜj¢òÓ¸l:ìÐ;–ѳ¬m‰Øô@–‘®&¶û” •uä&À•a.¤¹?Š£%¢…‘õ™r·{ÝÊézo_’¾ò™ö‹†ÆË”ý0>ŒD£kº!YSßt-É• ÝYq>§ójˆ¾ñ“–o³Ôh|ÖJ&¶s©þ.>€¨/3J…˜Ïrhæ~rlÆŠº«NY]#WZ&šGlÅ­Q‰ÀpÍh; x¢õÊ£FÌ‹jd±ø5ÿìyI\¥UËã–VQ½î^Çúâº6xawX™³[Q䥦'íR¢A½ðž =2_BûǪI§-¬à ç{ÝÔ’ä-¥’Ûö¼…ï¸OgÁ³ñN;lÞÁÓDñ~•½3:ú5ø þ, ½DúT|f‹¿Yºd¶y7j9W¥SH¬6YTŒèUob.! ½&œ2Œ¢«Á@‘˜«%ƒß§zD¾ý4Xc¤=©:2ÐŒÒD ¨MàËXé÷øxö‡~–æìÁm_¯¾ÈÐ`žcH4WW6œEßòúȹ‰{ëào!½ “Wn&êåË—¸6'=²`ñn¾YYÏωÜ+ ¡)Ó O*A˜ ¤)Ée\+?ø[ç›ð„æÎ6Aس¹.Õ%æ¸m :¸ô=r¡p¢U0 #æçÚΆž„'åsŽC£ úäËñ]õH¥à}–ƒüR;õ®ÑQ!L/·{: sPž\Ywº±UyLX¹¼@\’qRÝY»ä·é-xØUb <¢ÇmBaÙÜÂ×JRyhqÑsv«¿ˆV Gú±Ù<§+’Pd"¼HD4¦L®:]ÃH)ï^U¼Ñy] òP¨Î®¾ÜY¤ Ò©âZyO@ØñZ^†t6þ&MIh?ñw²­˜Åß12Õr ÷Ö¹z»ŒÀþ!Ê!›áˆ–?nõœ°clššˆ*J,Š ½‹[F Xí,A9kÓ•CìÛ·H mæ-ÂÝu–¤Gâ¸1A3ïg;§“PCÍÔóƒoÿBpÁáönRŠÿ·ƒŸÆ!§‡­} Ohǰö‡sŽ ëSh<¾¨ÄÆ3|ë ÑV ñ` "›@+¯²§q«3W×½Z´Åêmø¼&EÄÜ€©*C+}àÎÄ\Eas. üƒ7ü‚ªNBdÖXèòQˆÌlÖ`ëÍJÿ¹d#¤7ÏG1;{”‹ÿˆcÿíû«Û™z²4P½)µ8ù^ ø½‘iœÃÖlm%ü¯ šhôžQ4OhšXÅ ª*ý½/{ÄÏ P?˜CÖ›$.V2sÔ~*B4ŠÄ&\zwÉÉ‘ç?Ê9šž!¨ù'÷®yŽ k,R©¦¾Ã[qr#ã„-mͶêþ`’"?à.|þgëÆà™wWVíîܵ\=»“N[ÚsBœêýó4ˆ•¦Ò,È'M\ÇØø¥·¦Ÿ{B+ß,ܾ ‘a +b¤kÛÑ‚CǦ‹—¿×ªøSÕw“Ï’É)&|“”ÅHá}ÜÒ¥»˜âšrÕ5,|&²ôМåë¡!¼^0¶â5[…‡1bÌŽ:‰\Y“u·ãe ¬8ƒâŒGnÒcƒŒ0Ð>JãFTºJ˜„Ì·ß{鉄–ñîa|שˆÔ\¯ŽÚpšuê÷³Ð@áN‚õ ÄïC9½—ç“o½ã†tdÃ"ý†›nªÒ÷ÉiÉÞ¥ÀªU³²7”IlÏ,wkÉÅ çóHIXh¨3"°¢ãìÍ%/yG•Öˆ°ûz ßÂZòD>šùµ'ƒˆFæÑs ØòÁ/GX{ò~²œßÐRˆÂ¡]Á5Œ›lõ{ÄæJš€ó”Ô\ W•~Aê_ö×iN9¯X šb24”kçr¶ê‘üµ¹_ùø…MœVä”bñÑ7«$´ƒó¼<ÀmL4BAºœÇ1.ÅLv5é§‹ Ö×Yïgá›”€Ý—¥8> endobj 89 0 obj << /Length1 1071 /Length2 4453 /Length3 0 /Length 5138 /Filter /FlateDecode >> stream xÚ­—W\S[·Å¥* ©Ò܈ E!!tÞk(Ò $ $ôŽ E¤÷^E&½#Ò‘"(R•.‚An<ç~Gïù^ïo¿ä¿ÖXcŽ=×Üáâ€Ü‘‡cl*´ë°XPÔÖ `9—"sEaÐJ0W„$–ònö€‹JBÄ%A"ä\€"ÆÙ ‹²Gº<м¿Db€¼‹²…¡m˜+á„÷°…9[ÂÕKwtôÀú뎀 ƒÁeë Ø ìQhrÁ_ÔÑv@ìïe¸›ó¶ÜX>ÀƒÉ à#Â1hG/ް#ÔÁàk!ðIþ?BýÛ\ÅÍÑQæôËþW“þkæ„rôú_ÆÉÙÍ´1pýo©1âïlÚ8ÊÍéß»ê®0G”­<ÚÞ€þ^BáTPž8åj‹ì`Ž8Ä_ë4üß!ð}û+‚ ¡†Ž¡’ÿß÷ù׆B»z9ÿãúKüƒ3¾;X”'`Àx!þùϯûÿª¥Œ¶ÅÀQhü@ˆˆ0,æEŽŸ <‰>`…†#<„'>° ãŠ?à{âØa°ä¿®ST”ÿµô7I‚ÊÿTùM`@Põ7‰‚Zÿ84ø‡ð÷,ûM†ÍoÂW°ý‡„…ñ„qrú­ƒðEá¿QïG!° ÷‡Ÿñâm¿Œ·@ÿx1æwI| úÃ`üaìˆoÈïJ"x+WÌÛø'á#P°oˆÕ©éxÛF<GàX4 éÂ÷±Úä¤4–r•dõºÇ) îq«¯Þ°ÊNKlêäÏUwëÕtï&“½tm¯ç‡ÁT-õû›"ºãKM _gíöläAy” ×.Îr\xeî^û*#DTÌD%Ýñ^Ø£jn‡>uªKI¸pØœub<ñÜH°¿CØ¥Fþ_1­nWO .å&ü´Øÿ2.gÎ9)zýfr ùÎÉ ‹|¢Æ/|ýIAtFSóéIy¦ ì(¤ž;6=q73&ªÜÈ?9ð‰Ù·6Ë_àáìÄ£Á\-!êÕgY¸Ùk:¦¯€ü÷-‡·÷ŒæÐu:›Í&A¥3:ßϹcxô¦ÔuqdNR³v-GÉuaóÉŠ`?+Øå™K1©êW1œs  Ãj¹4‹HšÌŠÌ4úÇÝŸ Ã§·í¶â7j‡Èøž_|òÉF5böVè} tœ(陸ä»^ÀlᎶµRîî@–û¶—ˆ! záÛ¤Í{NægzžK*Q[šö?dOzêÄf.ŸãÍgâ íêeÑQ¼×"¶wï]µØ›ä=CûCª¼lªGžVû±ÈÄÌ!¯½£ ãÉÃŒ¦×#–[÷S›’ý2’‡Gp“ï¬ÍNZìprLÍ‹pS,З3†óâv×H õ¬Ý äe|óŽúâvþ\ÕµŠð×þ#;š.ËtäÂIl³"Èb­~N—g„ÌÔ’ÌÂÎг¢ÍÃXYûqZ¶Ë¾ª±¡èÌðUK”PsØ3ÑÐõ GÚô©dÝ©ìÞ ­DjšW^´öû‹î] pýzË OEJ²1?,Ÿ‚½),¹ÑÚ³•¨¼^l×M8oz°õÖ$yÒDé)Òñü®.½Ý4{qæÄ˜ö‡$ÙÈ8ŠÓÇDPàÀòè”[®¼<ÏèûHŒ@=ŒÊÿs˜÷àÚ0½ªiË=ül½×ùǺŒú×f‡—| #ݶk\«2†˜“eè’l>?ÞÞ¯vRÔ˜' '4Ü.Ã1¬£é‚”ئlw!ƒD`ûÎk:›9ûVwlbWÌýâ‚|(Ç ü&‡2d—b‘øçø¨.rù±IFy|×èãVñ)yÈã‚§i!jÖðpQuKx°¶ÖÓÀiÝ…5;;lBÓ4Ð9tµïG²ëK·rã ì—#Þöïæ#‘äî_¨B£)ܪ ·<³ž–±ÑE˜Ù7B¾‚´FCb§¶gQ÷Êê¾oª¼WÙS°å:¼#ÁÙuÈ{j)šóMÒ€ì¼ü`žÙmíEOAŒÙª£TžVT‰·µnðV[o9Û[•Þ4U¹’b È]ËJš•Ó伤ÁƒíZÎ`òcËìéz¯$©}d`V}n6‹£ íÌ'\‘i.‡ÈàòóúâKÎe®¨&d‹ˆ ¶´Ã;Ö[õDâ’ÜÅ`·5PŠÅ¬Ä3k=º•Ý®óØáºúÐóNεÌ! 8…Yµœ¶„ÈðˆÔðèf€³pjÆD|…oI®7ö¡»:ƒÒ—¹Ú™QËØ‹<‚ñ£¯"Û ?=OÜéÜ¿­Æt¼Ú]½Û¹ý^ÿɱح„õ‰Ú<ºõhe†boÏ+{J€³^.ÁhÓê†Ú“œ¥¯}ÓoML¶à“Ý0UÖ Ë³ˆSΣ|¶)y%–±Ðؘq×E©ÔG¬3}*ÕFOs÷/íåªÕŸ¿ií÷\x~Gé­D {e•-žx¬Æwî]-£KD³Fg^Þ{h Õ…å·9\²ñðh¡+Òî,4×ê£Á$lvǰø1­àšïØ ‚Êx5W¡\+rê'ý¨î¸Óìֺ͈4}ÈUî«A8ô~”.ÀtPÑIÆ6ü~í´(=³˜$)ןŒ€Y§ûlmow««”]jÌÚy{ûmeÌ|náWkÞÎRS ãCíúH³0(‹R5Ô½€ó•ïçÊœTU%:¨¹CÔ}ã̈Gãã{.³¦ Ò[Šcu:LÁ´ŸòS´°Ü¼[x#iC‡úŒ0=~|%iŤu¢"d_ŸWÅ_{©ËTaqÆ}%Lz‘øf_(HŠœ³RáðTVcÇÓc¡}ðL°<µ†Ï;²Êà³YðÖ¢!Ú"¤4±¥Ñí/{2µß‚c£0¿¯\ 9va$ŠnµŠ¬¶lÅLd»èI«Êøtu-ú’nÑÏÂ~F– ³³½×´O4 ‹(èÜ\BÚùlʯ€†úíÕ§êíB…2ˆ'È%ã^\I_áàm ûªá«!ë~+­>2—ʸ£÷Ùn¸ºÅÎ_°º3•fY„¥R¦á­™¬X§¸»F{­=›¶$jJÂÔYQZ¦V›ø0ôâž”qtÅ:aeîÚD5«®Th‡_7w[ÈuWw¹¡Ï Ú;VuHMNs¶òð ï‹÷ôj¶ 'œÏmühÎhý”ØŠ/€ø¬¿5û¦L$[®†msó8úÝH¢ÇÈ-Ðû®÷SìØªœ)«*$×íÂëÈŽ¹ÒŸR7fÔ”½ÚÙí·÷³5á®+w er~Ó`GQ¤ûÐfÙt2ï!šÁ’K©²’k)ɇçT‚¥¸gþU× ;ÊF`¾¸0cíÑcµÕkÐ-û[¨X0îP^ÝxÍ0“ß š묪tï[• ¥Ù'ðˆ'y¿Ê˜¬÷Ð<ÓbÍí ATª&Üœ˜¦{,ïÍýžóg±îoaïj¤ç.=pÖý‘Emâ04Ù¬C ?òa³)…¤3ÜZÈ!kìÓÊ0ì'¨Ö„NqLEw0ñ²~Wòܪ4CÉsô••g6­E°½Ïnîñ‹&ö»taÅGf‡.ŒBZù$_£â‹q&»œwu(ó6@ËÚˆØÆv ,!ÇZëL×Yèôù{ŸôâC¿iû0ßOÌDEÓú O)°ãÏÕHE'kÜ£æÛ¦70&}Ù»aŠ ‡oFÃUC­‡):Ëœyk濪a§iYvþr&ð¬ûÖ;+WÖ í²ãÞ{ù!$üЏÁˆâR'éàõ5´r@Om5Ÿ¹_ƒúL¢©›Ü"@«´Ï]ÏF[Tl>,ŠF_`¹ºM/ÌÞ_eÑ]Ô;¾7Èn]~›×ÿÖH«…¾¾Á'ÿìï?h@ã1¥26kØWUobžË2Ò±“¾®ŽÐývþJýEe2_²EvÆH8©~ÒÙM³~jDyŒ^¼±¨P DÉ'uæL™}{¶¶ÁAîaœ_Þ1Ý‚Íåy$átÔËú^KµÅM\ï}EŸNÁbÞFbÂø·—ñJMþ²qú‘—0#]èÏö*û/§Ôš-¸ÒÑ- <ñÏ)y@n>,?_m&Fæ‚ãu;¯ñe\ÔY< ætêŸÝ ©Ë¬ÊÉän™­èa„{í÷“»ÙR%°–û ̬dÚñ´úôéºñ5…`ï£ÄKg»Hž‹‘:K &Ö\ƒ5È¥\Ý5±+_á)5wÃ1èr~à!\ŽºÂèÅöRUÔ2›æ0•†UU‘ôù:\Â/ì’Ï4¬•¸#Û8ººÇïIZ²ÒíÄ%EA²<À‹ æ>iæj;;v¹Z¥I›p0Sq½ç ÑëúñeéËî×a¤^~RzyùâÙܼÛÏí*ðPç´%4”Q&Ôëf,x¶8E×O†ìQøAv¬}»˜º=›ñ^t–@ó)á× !Æç=Ò|y1ßW F|[Õß ~'”å5¶êy†S‚ËSm‰ƒ{ÙØN T¬¸?r_ÅzT;ã¤Î?ž/RõX3»Hk>ãÏî ýey'•¢Šd²¦êGûà7±‰>e²9ëGŒ3mVœŽëÛ·KÙaAÒ­¤²ÙB×£¨›-_¿#ènÏ uÎá4’O¡ô¥õãJ{+ª€jëÔe×ÿŠyçÍÆ´±ºOÕ首É(bÅ?eýe˹t}yÛ—ý}ºŒ‚õâ`ÕɑɼY…á¤ãÞ³8rÒ=îéÞß?ß7xßM½åÅ%i—?øRl›çVt–hÀhä*ã·F†éU-ªÛˆ…ŸÕa3 Eð.L$ÿš:i¢>u7~²Ô:ÓöK» óç¼§o<0éÉf´J¹qt#"\Ðúýà~ns¥I¬Ýg’‹ÿ¿ËDj¬ÂÄ©ºâ·÷ŒCY4wPõœöþòµ•#öª§&ó« ÒVP[m¶[Oc©*³n‡Üø·2góŒÂ†›óùvvÛYÞíñhdrݸ/óisë,É«¯Lq<èXçå&jë¼#÷µÝ…‚®Ë?*PÕ[ßEÆÚùž4Ä:R(s÷÷IÎò_åÊ%ãï.^ò8H]ßZ¾°¶hÖjçrî·êyx­|º-àU«^SÔFÏkèóݽ;8Å¡Øñ¨í¸,Æ×ú6éÝÛ5ËæBÚ§Ù\:¹7 ï=4ÒŒ_$‘/õÁ5Õj’í jUÏåÏÙ•›ßpû  ‡bùf=b’|ªñšáíœ\÷òA©1=©Naã³”.“ £ÍÓ4^‚€"¶y5‹RïÔô®;–í›'2ÄÔ_>^,U_Åûâióî?h޾\Vl¶Ü•\X`ô:‚Gbð½¾HÕ½ a‹X?pê1V×ð¡ó^Ða~«×­á3‚n¦Qõêo3HHJò>œ}Âv#”Ÿ˜eAy óƧ÷ã(.ʽݸ—­ÓD&^.6‘9H±TÛ›²³'#©5œ/B+»ô27€×lÅsã‚îv¼!"Ù«sΫ¿n 9ÏTÒø>ñæar!Ö´D°Ú˜SE­gõÚAfÔvš¢sÊÅדæ:¥[ÂÞ÷z%ê•úÜL”TIÉõšüì-ýéÉÑL;S1í2« ïdŠÚ„2Ÿûy¡¼©c«ºž'CUmšæ'±6l„ËСݳÜp¾+çèël T§5é^uþœõ5yà›yÙP’Ùdçoîv¡=†Òýž[ sf½]Ä9¬çö'­+Oä`”S¯áD×åœÃ;—ë×F(äÚÌ?êdæ Ë‚QWí'[6JÃïè;ñ4Õ0w>²+¼1sí*ؾ} ®Fª&€5‹ˆ¨ÓTA)¨Ýö=œ ¨¿Ÿ4ÑP©—ÌÅÆRðâóN¸h§;ij;~AMÊTò±ã£¦ÀØJ…0hê‹Qà»zR¶ÏA¨4¿•0?~Ç|gÿa[EeÈè–ÇÚ€d™—Цј(“å ñnkä-F}ØðÜ»ÜqmfwÁÀ²J÷2ç÷‹wÿï×ý« endstream endobj 90 0 obj << /Type /FontDescriptor /FontName /TJNTDN+CMR12 /Flags 4 /FontBBox [-34 -251 988 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet (/A/E/F/G/L/S/a/b/c/comma/d/dieresis/e/h/n/o/one/r/s/two/u/y/zero) /FontFile 89 0 R >> endobj 91 0 obj << /Length1 1071 /Length2 4770 /Length3 0 /Length 5440 /Filter /FlateDecode >> stream xÚ­“e\Tkׯ¥DAR•M—0ÌC7H—`3Â30 %Ý¡„t7 ´”„¤(Ò¡ HJH(!ýŽç¼ÏÑ÷<_ßßþ²ÿk­ûZ×^÷ÚÜìúFBŠp´5B  …Á0@YÇ ÀÂ"dÜÜÊ„‰F©Xa0,%Ýlˆ–€‰J bdÜ€2ÚÙ ƒ´µÃ|Êü¿Š €¢ƒ´±B:VX;„^ÃÆÊ0BÛ X/a@ÑÑ0üuÂ0D¸"0î¸0 À‘6XÀa‹D‘~ÒD=DпÃp7çÿ¤ÜW¼)€o’À[„£QŽ^ñ ¤‹Æ÷Bàü˜ú·¸š›££®•Ó/ù_Cú¯´•ÒÑë ÐNÎnXÐAÃÔ¿KM{ÓAÀ‘nNÿÎjb­‘6Š([G òw骆ôDÀõ‘X;à¡•£+â¯8ÿ· üÜþ²2¼uKKIQðïûü+§o…Da½œÿQýUüƒ3~:¤'pODXDŒ/Ä?ÿy3ÿW/U” ŽDáB\°Â`¬¼Èð›'qÀ Qp„'€ðÄ £ÐXü?_à!Cöë:¡¤ñ+ô7‰ Íß@:ÿ¤ÒÿM`dð›ðçŒ~“2þMxÓ¿ «ß$€lþ!°¾üÄ÷@üxY»?P!ÿ@IäøÁx)Ôˆ—Bÿx)̈—rý%öÄ[vûñÜÿ@ü'xüF¾‘×_øß+¡¤„öô„ â"€”˜8“òý?u6n …ýëoÃïÕø!¿…„'†lòÚF:Ä>¥. ç§Z0TJ"@ d[§[Ó6ÚB<ñ”ÀñY¯–‹Àçj³£çéW)—I–ÙãÒiö í÷Ü_¶g„H@ÍÔÒMÂC«yDÙ ©S]pbá3Ô‰ñÄ3ƒÁ~öá—§vÐÍn´G—rÎ,I-róÈè+¿‘Œe²BªPI)Ü…ü5÷ʼ´'ß!º÷P”:¯îfáçÿ“ ¥’2#ã’ÃÔò·Á¹Š7{|zßdlB_éÎØ¢’“ÇMÜ4X/xÊnÊ»LÈ—ÖL~žˆMî¡,¿·4Àñõú¹7ź$ж0çÝñáËŽûàÅZAžy•YÅ«åz¯*8¿íÌùJIšÒ«w–>©'ÑtC½ŠÙU­¸¥éƒãzÑ';®ŠŽ¹é'‘hoGW8)5éàžæUÌíVµ[œa!ã¼ñœȵ/Ï&Êv¿HÖ'bFpdޏlÎÄ> _RÑUDñ0Ð åä}}U)曽h6¤cª°²ÌLwu¶–‰o´áGhˆ•YGfz§¦c#Rh˜é-<6ÆÝ™ä?Ñõ€Â}NµÛеm.ɈQî¤ „Ìë–Þ°b^ÊgÈðáÑÞÎjú¥`Eu“Â4—s”ÊqnBtwœ[-…*xsd”òyÕ¢Ë7šiŠ ´Mò Pzæ"9Ü+ì7îü%c› œ÷b›–Ôr m’ã[n¡ºcºçp#-­þÛ¹œDS%ûWx¿ÆÖU¶<ýRõÓò­3Ä9¼C!à!{p ÐÆæ £!”„ôÛ[G¥x(²ëÄâÚ:.\e“òp9à;Í^ò9ó}ß¾!W¥¯oÇs½ëB¤·/° ïLj³ïKù¯Õ”‰c&KxEIL•¸¬COxƒˆýµ‰¤>f0„ %äÀ 1ºìØÅãˆQfýÀ+íÂé±´?lâ7É×—ïü¹E(ÐñuSßGCó>"ì“ÜÉ¡brû„¬i ÿ{ë±ÎF÷ê;¢ßMºæB·žüè¡ê02…Ð4X´Ä£D!ÙÛ¸OŒÛä‹z‚Œ‘ÃT’7ϱ=9%•ö+!U,Ém3Ÿ_`ÚíH™ªAa–#—Ûüú×£6§¢™P¶'^ð ‚šñí†`E¹^=A=Wß«¹¢K4fØõ­´‡B¥^ÅGsþój]t6grWƦ`]Gµœ¢SâíÚ›Ž[…Q¥2GuÄ-tÝ©”V3÷V>¸@!Ü~¨èUm1{™«ðôÂã%Ú`Aøg¹´%<™¤ÒðùÙDyJ•ü[š_Ké‹Ú K™W²°4ª¢ü§)EL´Á”ŠÄy«‘½_BÍyœ,Àj6T•¼úÙŸý;Ž^\=46¡> ¡¢èËÈ/ªæ[×”¡|U²¡?k®DÑ·ˆ#˜cH¹ˆ£ÄäŸI"‘14fSCÚ ÷U;m}ÎäcºwÇÐ#d±Á”Wî7 I$g©.&Ó=˜[hÖœ~1U)¦±œ;ΰ#ï†fžÀNµ—¹Ûw´ €±ôáôǰ °×L¦£¢‚ƒ2‰‚¬eÉb˜·ð¶ȱÎý‚ª¡ú’Üͳçëä_wÌrˆ4"Æß@„‡v%Bä3nÖMòBªZÞûŠCkïPÚr©Ú½×ÖѪBÀjªúãr±±ao Fûªýelð:îæzûcëÉLc—x-áÁt*‡®9‘:CêHõÖÓ×a©¤«pCZã“q/æp2¹IM7(Ò3Ú3hyŸw©ÕêËS[ïD÷Ïò?Ò/½’ПÁ!ËRëûH¨§iÔr[¨bEæGš{Ý!/EWÞì(X®0¾°|bxcÊù.ËÒu’ÅE’ªV7ÖöG*I”»ú†ö¸ã«5¿—»ÖvvŒŸ–x¾ßP8`y½µ#ûù¤7sHÒî‚rÃÇ?Wë™÷Û錴3ê<Æ>6Ao‰ö_ö"6–Ó\÷P¯žÍ®!˜ÙS8¶Ôo®ÉNÊVø‰j|ù`’ÌNí¶~q¯zWï²øÆ$L×yP†¤ÜL1¯<.¹Â‘–w¯Ëf÷‰5)g4¹ÐƒË«kg<«{\ ÞKÃÕ ÕÛó—3¼ÒGç>Æíb…ŸÍ¾a—YÍqâ·zHVõÉîcI¬|<<^¬CЉüò–þ޾àmÖÌOî ÑS•u¤ÍÑŠ¢=¬+<<÷âBev%é –¸"†#t7€Š–¡Ý’¢'?i•˵ÿÜ«ŽÎ ÞìC¹ê4ˆHŽ¢9µUÎWe‘:áZm>¢µ6ésÒ0ש™øU¡‰:ú7]f¨k 9™ü*Íʺ ±j¦¯çmU/LÒt…–`œä^ш2(¼ë‚r2¸¦¿Êª±ŠxÎ…ýZô1ðxÀ$C $¨ÜZ!«†ÙÓåî$Ð7hôm&—k…_R~)ÐÙFS}%-ƒ•ëXµM8uÛ|P†éúÞëò¢üh½š)d¼µ º[Âoq‘X#&[öp¶¹ízñÛÓù+SÞ'†·jX7·É*ò#f€k÷Ý {zBÔ“ EiÏŒûYuL+1Ì“ý 7ãArR·ÐaæÓâ6^-†×(T+TG4{æöO‚BÏÙÆ9m+QŠLê0©Ö3Ü …"°æë٩Ѫð¼E¹úh‹ŸzkÒÊt Bw„ÃÃË·‰åŠ¥;Ïzngˆ¶B ÔO¤žfº¬iï½»™átYˆR@ÓCÿý·\ï´a:¹Ù"›õêBí‘hgÜîráS†ˆÎ€Ã±šúØ‘÷ æ b·¨Ìœ3,«ï@°Ÿj˜¨„Xü˜;«o?7ì*R3„nS•hZ†¨Î5ÅËtÊV—)–kÝö³kæ«Ë˜{Zž¾“À¼JªÇtʪÌ11û‰ÌgÁÕ,\&·À>‚¡Ü"äƒÏ³‡™@.MF´ÄóH~Á2.ºðšÑiur‘‹•|$­L½RŽÒÿ¡é’ò@fWdEú¶u¥39]˜ þ¼9ÃbZ̸0]âÝ"ǶÆM|õM“´Û¬èb•ÜsP“NU÷5Þ6îÓ‡m‡½l8ݑǃ@Ûºïi·¯Â­K·Ü!oõ_tü(È»U~Ʋ’“ö°‰„„Õjláj­fì¦rŶÕªÚ¾‚ØEÔ8æÏÎÒw_µœ$ÍD´ª¶<¯Ûu>*Ä#÷9Ç•…¿»Ôcë^ÓÐ׋…4n QlòùÁ‹„.¶|ù¼Fóºë”Ó–©ª.~_[ çrÒ1Ðpwäyx>[AÜòˆ¤ÓÞ¦,ÞÕ8¾ØœÁ%y•ƦŠùü\Üó!넯>{,È»â‡ËJŽ—h•™ˆï©ÛSŸQK?g[ùQøuÆ÷гË×ýÄÕžt{ñÔò £œ"„Ýví¯î žÎ.’÷~ìf/ni`ž®Š»¨ÏeÞ»K-æ`ûaW?õeíÒÖÛï$ ²lù7?>¤Q]H«FÛºn°ž‡E\NT¤{ŒëêbUuäxªZ:Fæy·rŠaéÚ¤zwW­¡ë¼0¢8[½rž?7íÙôZhµK¡%u×DUþ¦‰ |-n„IÄ]ÔÂîâ^šÄa%§¡FQÒNÚ¨l†$™.‘ëçmÆ—w¯“^‹å9«£ô™'΄¿9 ×ŸÚ i~êâ‹ýD× öží81ß°{1_„ Ñ­Yë0ÉEe…؃z&¶gfü~Šô<±ŠÄ+¨À™pAòþɆ²¸!Ö ^_³~þ¢²¦03Ûë:Fä¾`¢;¼yŠ™ÆÍ–‘wæ%tâ®ÑšSáDvÍz¹ë‡[•êò£Õ ²Ê©&Ç®íe™5Ð6>lm_Ê¢äˆ7’0vh–'«eŽî …úõHÚPºí*}O^^«ãõ®ñÜí»õrñ=0e(À¢$híWXwth<Ûciø(ê\«sWAçÉqcY SðQPï›ÞÂøSZŽPíÀ ÐùÝ=q¦~®0²†Ä‹‘ªBUÍK±!áȻʎ„:ÃÃÝŒX:?8jºxl%ÀÈ‚u!üœ¼/‡†jqÙɤÖõ ¯Åºæ¦ZúÉ KŠ:e|È'5Ö(Þã²U>á­ý/$+~WBžÐ¶ÎÍG“øµ«‘ãÄ.ë¨ÇKFrs1ôkw<?=¾FïVPe+kÞBU1ä%’E fYgPÇm`5žsvåß·aŽKU¿F¤û¨éƒ}1Mr‘±½ 9‡%&ìɉ¯˜«[µ:«œ™yé-O¡ƒpåêTgí{åЪ}.IT{ê)OÐó, c“ÂØ‹vZ+°>W>ÆFWvÛZqgñ.X ˆ'6‚?K0zÈ€–.˜!¹óŒBð~ع›éù›RšPýö;Æž{ï-½!þr ë°R=ÚsŽØwˆ@ËŽ­êaDþ2ÕkÝÔî³Ú3ÿÇ I‚){Q}…ì®Zí­ó¯.³_„u£ãÚö.†lK#*šç’ý:Æ£Tà·çÂÀè=¿Xô~vR䉽 }ZÏð,gN»»†·Jê_X@Ô/Ö†›äà²Ô.r† ®Nœ‘ˆY)ô{»É¦?G537‡«¨±„‘ßé»tºvÒ=A<£-üD^£F«íR6{…¿rHåó³í¡1×,Á€^®epïÁÑ »gü^¤y¹×£Wöv¥E4di‘ 9hS¨C8qA(é=«z'ž9z¡•·mÆ+&˜5ußHÃM¿ÐÝl-£ØšxQ\ÿÍä¡9¤µ܃w$Èê`.Ç›æ‹åícÕØ!PéOË\Ö33Ö÷òQwH .‹R4¾Ý“$Œgir¹¹W{uxˆÙA¸Ò>:¢3з|ÁÚ4ã›:vfdÆaþK6ƒ¹e¢· ‘ÌI mš_H~Stéíý‡¥¡ÏÝ“T²i£È  †Ìù¬GQãßKÉò\PßšìfcIŸ:Vá¦Ú·:)à½eˆ—ÕDºSßvÌúÉ…ÅE÷0ÍÖP˜±pºÈEyÞ€ö]ƒ ?ýŠ›¦OYeבy«œ^÷}-}Ë/ŒlÝÞ»‘_|ÊÂÆË¼Úhð>¦~Ù{Øv1W”ðRåOƶϮúc9C*ÊuKZPÿ}.¹]xŠLueA') qÉJûõÓ¶¤M¶Žé ÍTú­½2Í"zl«†‹YÏP÷Ã’ø‚µ6Å]媣ò%ƒ âWP†Ð½<‰6l†—à“g7íÖˆçMÖÎ:”N¨Ñ„¢Û值–4†¨‘p8"5þ?jw™% endstream endobj 92 0 obj << /Type /FontDescriptor /FontName /RJJKBA+CMR17 /Flags 4 /FontBBox [-33 -250 945 749] /Ascent 694 /CapHeight 683 /Descent -195 /ItalicAngle 0 /StemV 53 /XHeight 430 /CharSet (/H/I/M/P/Q/S/T/W/a/c/d/e/h/i/l/n/o/r/s/t/u/v/w/y) /FontFile 91 0 R >> endobj 93 0 obj << /Length1 803 /Length2 1751 /Length3 0 /Length 2306 /Filter /FlateDecode >> stream xÚ­R{<“mOÚS)‰„º‘"9 s¨SŠ9&Qf»ÙØî±–*E5•¨‰õ"ä‘WS•Ca ¥,)É! ‰,Í3z{Þçíù÷ýÜÿÜßÃõ»¾ŸïõÓTøéZá)þ =¢ë"ôf€Í~W€Ð3€kjÚPA,Hl±tÐ @ ÑÀŠ”™ÚÌÀ® ØPB˜Tb hÙh/˜L+2H%â°°K'€dñ –¸QpDÎÔ¬H$Àuá pi 5 ÄëÁOÄÑ0Áõòì(€ÉOÏù%…Tš8 %© ˆ#â)‰ àÁ¸¾E|(Nòÿõûp{‰ä„%/ŒwôK&’˜ÿÑ)ä¤û)x ýn=þŒ¶ÄäßÕ=t,‰ˆ³‚I `ð“"Òì‰ C¤ã@–DyÂÿB\Ûb}½®ëÝ:‹¯¹(a°DˆîÎ ùkè‚w#þ‹ÅÝP‰À!=„Ø(þ~ýùþv•„£à‰x(K¥b™pñ^ˆˆDDF`„8¯¾D¡‹âJ¢€ ¾ð˜H#@?€.°? C1AaPÿ"ŒÑ€>ú›èÓ TðoŒ˜ §,âö`mM‰ˆÔ/«®¡Øˆ@ ¤AÔÿq *„è‹+&nó Š»Áïé¦àÌã‚ØÜÓÑvÙ¼BØ6 ëÀŠ‹Nÿ~øüÌÉ—I¤ÍŽ¡ÛÞ”y o¦­]5Ü>§L;[uÌ¥Õ^p<ôbj—h0Ìo0íè=e¯É´ýÌ!ê3'Ge+¹SŸÎoZ RæÔ_oÍÂhÙº\Þ«¶äÑ¡°òGéq(/û4’Gü©²-Fj®«SC Œãùá«S.-ã·ŸŒŠ—º«óz‚RÅfKe&‹|¦†;vRàt¡|¡¶®„n2‰€=ÇrÐ1ÞÄÊ>Ÿ~ïþœ°˜£¿“gÄÝr1ê´ä$cQvw5.u5÷o8V~-ZïDoç©–¬¨ ó³G¬7·G· øÔT4>9¦ž©bŒ‰èHÜÑòmYëcFS¸ö´^ð°î[tËØZ~ßãeS¡ |=#UÚPzUèÇš„ ÿdæNwßäÒ¸áû£¨}!I63…Ûµ<õ[†¦4kxôµ_yïœ1ò.³­Ÿúá3ýÎ>Îr_ær¢zZ-ŽŽ$®s‘ˆÒX«"=¶z pw]JÈZàLï“&öY¾¿?9‚Ô†Þ¿ìÞãÞ¯:ï&Â7æ×ZeäÑw[âÔw ­Znùq,ÙÁÉ}åËÓz9Ó$gM¥øÓ.ÓÊOg.{ÀÒl[JâòÖS¥,^+Ý‹HôºëæBÌÚ“N(ñrÙ¹Ó±Ü?)Åßj’r¥ƒbÉ\§¦TÁIvÇ6z²^…qÇñð°[‹El!ÎqN«0™âø*±îÒå©Hgk\õ¹¯vKG J:Ó™‘O Se0¼ú\)TÄð ÊL¼Ë,¼ˆ–´ÊÌ+s¸2…fÚÙkh \BÀ,L^퇯µ¬sÌÒWY÷•ºM!ÎÄÁ"š¦@ñÞŒ“”Ž€ÑG<‘P‘^­`·¹§ûØi$ò„üà«FED-Ýñž×_óXo¥ÐËnôºn™?;ÈSî›ÒUX£ü0W±!؆ ÄöðÍÓ>~_SŠl õ‘[_ö‚¦š}mô]¸›r×ÄŽ[ß› ®ÕcžœØp®Ê<£ï̵èB™”=æì’‘zÉÑÃ/ònúT ‹¥Š»ñ瑎°qM!5_Èé•>' ³wjî+ý‚”äØ×Ú¬çÀ`Ǥ}ŸI ø7måÇàÈò`靸Ŭ~Þõ´$‘‘ml+²$ßy¥aQ‹çÂO ĸQó¾Í¢¯ôOž.SØgï(#ÅpŒgï˜Ãîúº+Û/”Ɇ&·©Ô¾Ìgêk¥#µ*²îfäæsÒ6?ʬ1Œzì—ÖŒÞ÷8e9´ãò2|L§¦ñ`«Âi«äí´ûŠ‚{²+XLǨ‘妶·¦×¥EÔÇ¿ûµb·oA·7^Ý#ˆPF£ÕŸNmù·Á¼ÞÓOnv? Çé½ÃEAì?¤]›Çº¦JQ·ù„ï%óÒØ×S#;$¿nv”^“ôUiöÄ w²º~ªR±Î4ɶóþ”~à}ŒRÊJÿ÷·ò9„û%MW·Ò^m#%Ljð?ÜÜòãóÙó©ò°í´©ý¥Þ÷–)¨y½/tûfã$DP¼U V²ÕhÃn°*ÏtûÄH)[L]GØäEþxK¢e‚ÎØô«û%åÊUÎø˜qP—sá2[5g*õß–ŸA6xµÈ»áYÚ¬yù[þ«¤£òŸ¿¿Ù’7pý6W„ :$‹f—·•»²;¬Ò‡ÖÖ x¡ªÏ§ÓB‰õ:cXÖ ÇäŠØ½+ŸžÝÛƒ÷ŽÕ®p´ Þ+ZºÎe‚ƒûÁVË ,×ÐmœV ·öÈ÷†ï•î«Ú”+išš¹™~eÏ´È!_¥}XéEFÔÿ*¥—ª:HåúG?B…ï0JðÀÂÒ/)šÅÙD5ìR=1ûè`‘‘a>‚;nXfâÜ«±ÞiC1¯ˆ«•O½ºª¹=Ç­¬£ÖÞÃ"l°¸w×ògGÞ…xéÊÀåÞJš2;<^šØ4µdYÓ8--û&Úe~:kNÎrŽŸdÇþX,QVœ–ŒI­Ôjä©”[yqS7ݵWézy·KúÆÈí3º7ãy–«Ã°lÓ ‹çTYÙsº§éÁ¤3¡?î[M© L‡gj·ó;ä$襫MÈ’e°€äü n_X“‘Ùv2QnÍôœÆuYšèOõ{„Y endstream endobj 94 0 obj << /Type /FontDescriptor /FontName /UJRPBG+CMR6 /Flags 4 /FontBBox [-20 -250 1193 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 83 /XHeight 431 /CharSet (/five/four/one/three/two) /FontFile 93 0 R >> endobj 95 0 obj << /Length1 803 /Length2 1744 /Length3 0 /Length 2299 /Filter /FlateDecode >> stream xÚ­R{8Të¦]rÛ㺓´YÈ=ÌLÌ„ro\ÆýÆÌ2Ö4f1f˜)䊹´%Bä–\³EI„dÕT"•K!v´‡NûìÓþ÷<ëŸõ^¾ß÷>ï÷SQtrÑ6#Á Lch£tP†€P:Ha :H`@0í(`Æ$h$€Âî30D£„U 8„M‡ÈA @ÝBcÄÌ‚A:D$Ðóf TÀ&B ƒ­˜Q©~ãD€Ã@z8HÒF¡Dd ¢ ënä±¥ÂöMb†|—ÂAz/ Î ©ð"’`• À@a]˜wÈKòÿõãp+&•ê@ÞÏëè*!¢²ÿ£ÃÁ!LHp0 ¤Ó~´z€ß¢á@Ä þQµe¨ÑŒF¦‚ò…YA,ä1ˆA@ nò ôc^m›t=9ºÒÚ|ÍMɉѮ쿆nx71ê¿˜× bÞH$Å3ò¾ïG~¸Ê’F„I·ú€@§ØÂ¼½à!}à8 €h$€,^^]Ìàx•D0]xã1õ÷ºP8¸Á~#Ð<fÒÿ"ô ]˜ö7 ÐeÑÁ¿1Hoâö`n³Žk£±€6šgD¡Ðh«Œú#‘I§ƒ4ÆæŠñÚüŽ!^÷ ȉÂca¢Qå·¦ÄòhËâûÛ4ùÍÉ×ÒêÛ‡ÛDâGÏòSK{íC5ŸÕy®VæJ!¦¶M)D|‘ ;ÝéÜoõ>64=gd}*Ü*÷Øïrž‹¹8ö«¥Ïñ3b×›8K³úüŽžõ•gy•ÜΟè¤~Èõõö§Š|Þá 0XO«\ª[ÒÉ:Õ}ŠxñœÐòd½$n„xVÆVî`|4%I°YëÉÜÊ”\-,Ì\÷ùØÜ{½à µsáíô¢ÞŒÿzÔ„mvmÕW¼yZ‘hg-l"Óg†ƒ@T‡´'³”—ÛÕc}å™ÙÙ{ORz~÷CÖ]˜£fg¸–ÖEÎõŸ~½™·ßí":ånÂn!«·¾ÄêØ–’fÿ,Øî„(Ó/è•Ooÿ”Øy]íݪåˆÍç¶í‡§Çøî‚·†.{¤ Y]dÚ™{1\QÛqlÿÝ*Á–‰Œ¸—”c¸Ô_.d/ªµÅÖ”?žù àdS'(Y$1X0#¡s+×´¾Í$6¦ [C/©ÌÒ·¾™ý ¡Í*K«vÏþsªÖJ}^ÒTS°Íëw £V«.WʵFÆ­(J“]÷´—“nG0üOõÕF%9nRè¼íÝ$a:1ïs#ØêŽ›²uZxš¹ûÓ­s[µÇˆþ£žXUÁ KÊŠ?Î\¯. J´²Ä(`æ±Ûû uý7wC§Šñ…ìä$ƒE²by¬¼O®]´ÈG÷SÈêe1n•ÑŽÓBñ¢#J˜A1veI(UO,Çù,0V=ºw$¦øcXÏC+"ö.|æ*í=ºŸ6?x­ îVî—²Ý^‰õû]Ízy§O‘Ý¥¾Oãî¤þëù­š÷[ ½ê—” 1õ8ÓÑ}Ö*-ýÖš¶åÆ7!µ©½?%!bˆ+ŒšUÌÆ-â]#¸ÀÆævÁq„ íÖb4­dð%sÄ?œ8"ÄÁšTÉá–}ò°r½.–ë¡‚äìîó]Ë9—eØr'škì–›GT„7¤£Wï½=`è)Äÿÿ~»~Qþ-cUF‰÷XÞú—ãTɽ]nÙ]ñ“Híú‚»ö‚Y‰³Pô Ç¬Û ?—Áby2»lg¥xF#[)Vâ·½ïœ0%>]ž4VxÌqî¼="ô\¨|šû¤/ÖSàUd7:õÁ–K;†Ýí( g+¥´å}H¸“ØzSºcn­uû£Ô÷ ‘%×ëÛÈ”]MÅúÚ+7%ú8ù(sR,LMŠÛjR°~U{Bˆ];ÿ‚ÙTSèïŸW·8™Ë«ŸM¡G7ßþØ(týµä—°¡—Cq$_÷Û§Ÿ/ öF¬\Nv"-×-hWUÙ(á÷äókÔœ³8Ûè¨ú?ÞÛÌ&Ó‹ùªKÏ“YöÏ‘«Ýé5ufºåÎùIŽ×˜¼ŒW=Ï4¥ÁUéÝÛÌ‹QZ~ƒµœû¬þ"sÆ^ã®ØaÓÑYfX‡˜QMb©”¤«ž¯®D/½wÏùª^Ý„TЯmôÍmŽáàQ™w…Z<º³öf†·J­È¬OŸ͵Xᰠ߆¼u{0çy5Ýnǽuû°]3ë§Í7Þ¼KícNKYÑðob,F[ÚLÐ)÷Ž_ Ì!Î5vÀ=°”‘b_ǼœÊÕ§œŒK3Ñ Xî¸t‘<çÜC ráeÿDùŒÙµ¸Ú}s¯KF;^a›ò°”¼/;\mÇôá…–~™õ°·ó"Ë˜Ô ™H¼È¬äàòVògJ ,cÕÜ2¹ûeg¢³»îÄ4 Hz6{~ÇeÌ ,¶sN­òb¯¼,.^"¯ø IéÂHs…i·²‰Ü¸›Ï‹\­ÆžâŠƒ_9¡µÖä> endobj 97 0 obj << /Length1 1559 /Length2 9073 /Length3 0 /Length 9946 /Filter /FlateDecode >> stream xÚ­–e\›Ûò¶âîÅ¡¸—âîî.ACp ^ÜÝ­¸S(îR\ŠK¡x)”âVÞì}ÎÙí9ÿ¯ï/_rÍÌš¹×½Vž'´Tª,b–Žæ@iG° +Ç€„’:?€ƒ••–VÂhæfë–4s¾ppÄÜ­œìÞ7\o¸¡E G'ˆ‹­µ€A‚ñ¯">€˜ÐÅÖ P2s³:@{X˜Ž¶@7+@ ¨ÿµÂ tºx-YQ98–¶ns µ-•í/=r`+G߿–îNÿIy]\¡¢ P‘Œ¨DKG0°Z¡²);Bg¡JþˆúßæÒî ²™Ã_í¡ýŸ¬™ƒ-òï¼£ƒ“»Ð äh tÿo©ð_Ò”€–¶îÿ›•s3ÙZˆ­A@û¿B¶®Ò¶^@KU[7 €•Èøw¶ü_PÛþ–À&&&­¬.Áü÷iþR5³»iBœþiúWíßÌñ›¡Þ¸Øz ØYÙÙ9 …ÐϾýÏ()°…£¥-zxxf..fTè½€À‡` ¶z€^P½l¬`G7èÔ?€•£ ê_‡ÉËÕøWè_$`“ú‡ø8l2¿‰ À&÷›xlŠ¿‰À¦ô›ølÊÿ?;€Mõ7A{ªý&hOßÄ `ÓüMPeZ¿ :Aç‚Þ#6³ßgþ› Ì]Ì,ìn  •Ûï8×?ñ]ÉÐM[üCÜPŽ¿Ûs°Cw`ùBÿ@N›Õo„&­þ@î¿Ðö7ÿUü²CEYÿÐr›ßR Ø@œl€à?* ±?×CÁî„úbÿBýÐ:ü¡º­?:ÿ¥Üñ÷lh­#ømþ¥ÜéwºÖÉÌþ/‹¹9þýoƒ¹¡" ¿zÇ?Lä€nÜù÷@›;»;º-ÍAÿÕ‘‹ûwâ¿›r ü;óßaŽ¿wù¡~¹þP)Cýrÿ¡~yüОtÏ^ t³¿ñÿþöÅŽ|X¸x,œ<ì ;€‡Ýï¿ -Ü] N¹ýýX…>AþÃV¶Ðç è´@]^t´ ±Ko«ð—*š®D`‚·nIPnèëB þ’ *SpfZ¯×½«ÊÂÃÜEØ¥ô| uêôUû,}òÎ9!cái×Ãt7Ë»T÷R³íœ’­?Õ­1ÿbcî0\t¡Nð:³=MøÖ$j†¼µnN •hçÓ þ—¼f1—d£·€¢Œ‹ãã~µ4;7þ‘cñ×Ê\€…êá&æ£ …»Þ“\€[4´ώ˜¼Eºí¬ËÝ]ìç^vünu]d×Ábf§»DŠáV[„³7OZp®WAÁáÉ­Œö±[«S¸ª:ã˜/ ýWa’ŽR0øò5“Y•QÚBŠ«üX ‚:ÏèÞJÖù÷þL CòFxïôž]"dܤLöA¥&Ë[bþ§8äe—˜ŠÏÞ´_Æ×гû‰?½)†˜ÞŽ˜îÓ‡sw{^WbÏ×Ù2¹Æežr:xrG¢àæÅ+W ª~Nœ•–¨U¸ß$Š÷»¦Ärà˨ø#êõ/·“+'—K»†ãÌVÈÄ/&^†^›w4Ž5_T>-Œ C8~FÅ<<=k„#=ºàÇ-¹hÖñ]‰2‰¼"ÏlË’“¹ƒO ÛD¾'–xì#" rÔÍþÞhÄxQâä{-V¿KÝÝ›Øà瞆eÕ ƒ¸ÿwÅÛŸ(”—6ùA ÙèmI9™G~»ÛÊ ™ërœ}qµ@Ðü"ªçqbÊ×[ȃ˜ä;ý3Ù5iÒç*ÆÂÇj+E‹{*úå&¡ÒWªTß탫@ø[Úý„ÓöBÔê°×åp¹:Ó®So@¶v{MŸ†ÝÇ”ÄÞ=Ô6¿¬ïï$a¤NI)Rî%Ù3:·Ó[Óv8 1Xvu¡ê^ƒ¯÷ÊèLÛÜî¿úï@º«Ò>ꃘmòx;ZyÝ.'[lZì‰2ýŒq¢’ðfS¶CêPbX|Èe$Ø0Ä36õUáKeê3àß“;âU›}Ô%GU®EîÉ¢4·K(¿Çå[ê¼ûyØ@yË€­Õ‰è•2Ó€ìcœXlÀtfƵ|xžXWi6 wð a~öYŠ]N߼᫩ÿ®ó§ bÇ“„UîQl™s2¯ù}Þ‹dE;¤†`çóÝ­Ìa ïø¹d€f„ÿGºЋʾ‰§0–_EXC"T8KH ¹Û¤bj_eĘ¦æ¦ŒwŒ¸¸µ¬ŽòNêíBvÃz’¦?6^‰ÐÊÒ¤OHÇ?½1‡cô ÊYdQžG˜è’)â¸!x­-™Aç¯å`ö­¿òy¼e_¼mLÞé ’³W~¯~žÁwa\˜HaŒ<ýÅR0Ê'â?.Úþ‰¦Úœ–QMeÃNºøš'¬õÖΕé¯G?9„NŘx„?ÉÎ„Ë‰Ø 5{ë†Ý{Vlj/×ùM’ŽGanVLÁèu˜ª³ì5Œ/ÞI•yÙèM øfå×{5¦'9ôð `G#Ð êq²ž­Æ€ek¼)–öÎ:kZÂà¹Ø=áîë>jƨ¨Âgæ(š¯áJÔP›àcÔËwŽð´vì(ž±¾+ˆ”[|Ð%´šŒvN–™FÞ°0ñÔH8KÕŽRO­ƒ)ÙÑ”j¹×ï›ÿ$5R­F·ç®IÕ¥_i»_W¹‘ §©²½ ·fKqœi¹¬JC9g ±ð—å¶DÆ!"9Ù&F_ü©Ø…;‹à:Ûy“ö–¥[‘ñ%3yF®n üc(Ò…î_òYØÇ>Y:U,Ä‹,„4dTá))7¥jk‰pŸ§ä„Ù½>àò‘.A÷Èp;jîž[Á´r‰HëP*éì.®9%Vü±Ðƒo?ÍwÏ´6O¾óuÛ±ðž·&ÇRðl¤ú''?}×9.×¥8ËÂ)”G¾Ø\ó;lÅbà{ï×¶&e^Òìq’;÷tO¤™o [òóÒN<]“ûËn¡d§× ªÀ¾)¬ ~*®Mz·e_ÛCÙ2Õ/¢ÄøC×TâkÁqÚgϾð~71&q$É|³"èK‡J­¹ªãóQí„è*„)jßIĉ$«¦û9žë• €ú×WûK¡î,*MÓ\¤Cg,ΆrZüo'Vµ­—Ç^å„×ɉş®$Ïy/?áõ('·Àä©èA¾×Œw´ ó\`x%ùÇ3Ñ_îP} ¿‚×C¢ø”G1*†ûÒ8pµ[ÍÛj&†ÔIê±Ù ÛpD×Ç"ͳÌ{+÷“üA÷ÊO[ß%®cg#(×6õµÐê5¹ÒìÂ[‹˜½35µð×t¨Šùó‘«ã¿Þáæ­â…ží•}ŒF€ …3èH©‹~,_™ëÈ|‰áÁôXÔàÈœ/_Ï1ÿ|xëGÅÐßy§C^Þ^fÎÜÍäª,f¬h]}š²àBŠf’«±¥{à‡·D P¤Ö;-Ð4ÖmÜû…¡Úà?ì-Bôv÷×û´|J,¢7ËæéåõozŸq™Ÿ¸`iš.¿RŒád®|âsçÁºä²$Jˆ^]_9·tlÚ´w$CCDœ:7$Ûž¦1FA $æYÌÆY,êZ«Žw#³E†Ü—Þ¿Z *•ÅY6Ü ‰ØòR@ÆZ+Ì^ÕE±O"B’i5®Ûö½¯\cÁR6áæ^ÿ”¿_&s`6ÓªýéãWÀ\‚|iJDÙ ¬/R]øF2hæYö¥YŸh‰¬=ëш{A9œÈ’bÝGjïÎaû­Oø¹¹j ‘¨æí”–|Í ,>…Ûç·ê£U·¬m,øï ¡Ëxaç¦j£‡? Ù–òfaÚƒÄføêóJq‰ãêôU A,?·ÆÐ¾éhzS¹í|gù $Øò3r,Áõ£CÔ(©ÀT.wATcm ÿv³ ÓèS’ât¸´Ð´ RøÙzÏ)·Mhèˆ5ãÁ}ì«$vÔ€VÏs'¸bè—ªúkl2oÖà[al\ÿThdM–x.bgßý«™.¹±›I«Åf"š.oc§ê<û»)`ŠÅä¶$O™sì –¼xâ:Y÷ZX¶Kˆg‘ßOŸ‰T'Õ”ã%Fm’/sݘÇM•è/-xà?ä‘8ysä”oóƒ#y YÏ™Fvõ¬¦ÖRØ‘Ѽ¥C\Jkôrá³u7g$åI…Ø{â$£2ù—*\;§æ9x'‹H$H>ÇÄfËeô½¦>¥4Ÿ¢/öžx΂¬l Ç5’k½ Ò¦©"RϤkwõ©!X7ºüÂ¥ ¹:79ž:$#9¸g˜á/þãKW3’-¤ÛÉÎmK‘Îzí•uW‘­É †PÁ~‘púݸ‘{é\7”‚Û·ž¨ŽóÛN_'§Yn¶[ŒâqLüKÐx’KêNÕžà˜¨‘é <²”é°ô»·d¡úÐì@…Ê¢‰R‡ðÃÁ vÒŠ^1»”àå{ކOÕý»ë•.Ÿì´3ÿ—ÜÏlöKïìe¶NÏ4m%»®Ö_ × "¹Ûµ%^?9ºy÷ )I%y<὘W:ÌÔbª¡ÒËÓ8ANâjçC !Í4GˆÆq[ñœ\™{ìÍT†yµó#‡æß3Us^ÈΙ¦Ûî°HMþ”ZÒRaÿ‘7ò´u[±n€•‚¤¼ëÍ…72m<&þ _€ÅC%÷§öÒ þZæ*÷‡ìùøDV1=`CnÆ—ºøÒ®7çãù%èau4TJj·ªâëD²…ÕÒJ6_Î&µµèÓß–,Ž9‰CߢÏR<ˆšyЬ¯ýjÝ ߯&8à°?_Lo ‡Ï¢¬.¼G.~ÈdÊ#ÐðÑí¹\ÉÉQŒóýådì³âù=·8)Îøþâ¡ué‹Û®EÏ"öȯTëΰá4M³¼†Åæ696õw¸1ÄVH]+ýôì¥W"6Ìùe8uj`=‹ßÅÊG_”*òØÚ4? ùɳÞ3ðßÝÀ&–¿›N‰Õ¸Q„}qÕe©&åñ#¼d,ÞxJÞÅ_UAÁʮʪ ·ÍeÇ `\?0 ÎVû5𖮉×L¾ùlyX^qlω€&‹só£™FÅÔÌ‘ÝçÆõÖYoÅÎI“láfq?ðŒ‚leTžPPýÇYSž˜њȂïNx#¬NÏDãâ—ª?•Ýa÷q”žR¢\I‰ê®z)ïmµa€Ð+K6ŒÒa æ]àÈõ¬MÁ%~ÏV? _O!½î´½#‰ŒÏǶÞ`2iñ¾âx+ ë51ñƒÒª”î›Á·›z†¨× ùÛ$ÌwÊuM`‡È+÷6¥È:oêý˜ÆñQ¢ëéjÀ›"Uj¤§ß_…ò¢’LŒX(ûÆïXÛÙoP¥H|Ð;05‡ —‹ÿ`P{„yÝa°õqÆ;qþÂ0ÉuS‘lHÐæ²úꎢ’óëªR¼Ð[¶¥ VFðÑËèæÈŸÖ†ô|Ù96ÚÎË,GM‹#Ís^½«2žëšTƒ«fRuy[…Ù˜ºfw·,Û­A§‘WRl-7ž‡ëL¥›UsÌÓcÍú#•4ÆåG™ÖSßï&o*rb´q@2Íjôc„¾½[kG3)p¹'Wäèͼóâ¶)gSa½Äx “Ù”hLFðømKTòfv èé3滾g˜áJó‹e±Ã¤z³(—à::{`×±á"µ€OÁMÕ=K*¿„>…þDÅEœžµ¼C§b±ûV*¾}ÕwðX°½ØTÝojfÆ¥•_€uÁ¸b—„õ¨ ˆË§H¯Ü¿aýkòH&ÏÆó›ÿ./{Ä¿³íÆK³ÎV¬.¾ß×ì8ˆŸ +¹çdËÒÆž<im¥å`=†[nõRg§ZDzrïi¶ ‰=ÆÃìvé¾¾¾ç9’tnÍäŸÖJaú?kïÿiz»Ç¤Wù¤/£%;žÂã©{·ú¬Kð„˜4dSZ¹òKˆ „G(-~Psºã{5TéM‘ý „¹f©ë—­”p›]K=ã¶@¶WpÞW`Þ6f%û0«ÄÿξÕ|=3Ûõ"¿pë!SP6I÷ݵ2……¼?Îoë„+=â5lEK»ÁT>Ö ß—a#Au¸ÿ|ºñö ˜ÞyÚÃ2ú ¦]šSâBÐ ;vFl£tãŽs²Ôìùgäó²ºN÷ÙΘ«¿|] é\Ì06|+BeîùìÈÛPýÚø+pè’€t]{2þÓBFØf"%ÒO¥v‚nŽ@Uh Ôt³D±±²R—Æ‚qœ”äa_ËxÂ#Ë#w ÍÓ§3×¹qæpé3Åè{;Hª[°ÿ©õçÀ£9ž9zÏt|~¾…D«itï·±ø˜Ø¢iNMƒËøIeTˆD‰[æfê–jü¯¡åHõ€Ô·›—¯MˆL`T[|îxe0óy„U&ò£í÷ñŽxUYó´J„7ŸE¦/ÏØw·tœ|y(S6á=`ãé(^F­óG¿Êg¯ û êÕ7_…ÇZN_­Ö¨>h%-–$t³ô£:«„©iDU<;Õà7ä¨&È,ÏkùôˆêL+º ² §q6…Éô}3^=[èØÁJ_B“'ÇK¬ za,½@8s˜ ˜?myk¦3µ8†É˜R?,Ηâ˜îøDíË`V‰c„‡jÊ ð ×ý\·\kÔCˆMyTߥ¢Š•©l;¡…b=²ùCЇK²KO­ŠZÍùw‡.'Ù½dân ÞŒµ!|'«Þï€ýÕU„"Ïøþ3Òñ’?pZùE5Ísv§!á¾6âê#ß±aØÇ<ÚUõ§»¾#±íst?)Äõ#ºÌi’Szô\k“_U¹%P,#sÔ^‡÷~f ro£åE1QúIh.¶â`©vìÿdl£îŒ¢eu$-‚Ã&9:êI€Üûòîõ²¸sçJ}`¢Ka¨Œ¿Ç@wI+×NâBaO_]~)q}³«õJˆ¯!ÃÔ»ºv¸¯Ž+*cš5T¿$õ`ŒÏΉû‚ÕBóURÊëi™÷CÜݲÉôwÉa‘üI¢îŒEB‘q8JÏk²«Ð“zÈi7îs¶Àðú²ìÄ ˜5{ñÈñWGƒokiáY) _(bù|ÌPúæÞŒâÉ»ü²jo·Yz -†µñk\•!·wå4àû¯†¢h€ÕÐ&qtÐ7/þ7ŒF°Ù©¡ôXKW½œ-p˜<²]!Üd”ÕEw/²&aää‘èÓ‡æ Š^^.ª5.s ûs&n¥÷˜©³FÝŠ:;É,ß×̤Ù>§ïZ)Ê„ÒÂhTêÚp±ì‰6µä¿c‰„1m 1vot›£9|"¯lÞQyS"RWßQÏlb¶žŽ#è:XÁ…щ-gÖY~äã%ˆÙº²_8²Íó~«Ýmé$HÚε­~M®’¢+5\D”ÉòîšpýB@"ÿZm’J÷sVšãì”®¨.× Ë»c$/NÔ%l·å͹Vƒv`É {é—ZæpšÈÈD¼ïXÞȰȩQ\žÍ_L¬Oâ‰1ºÎÿ¤QCF/q†åÙ:gÚý$‹#éB_xу'ÿ..)FŒV¤6!Ô•SJ1 %èq;n•m!‘üÜ O5CfˆüLaM?.àqäâ ùÉ;<•î>ª»êÞ†sã\÷‡/V )ï®qäÅ`1²²ÊÑ9$œþýôÂdÈ—¯ÊcÁƒ÷j§>ÒnÛ´»‘ø€­.Žq0PÞ$Ìc{¶ù«]bºðÀ”*0„ueÐU쓜ñº˜™ºZ‰$'›y“÷Q;äÄS>ª¹óŠEVÖÅBÆïL/rÏ‚Nf]*Wm6Y3} ²#Ï>/åÔ?v;$g+‹é¬6mûQà. 2Z|FòŽb]³”³Ô£±êA7·ÀÊØsM\ÓÃ9ëØÓ¨¦râ¶T…oç ç2”N:åÕ•-×2“`Ô`ecŠ‘¦“ßy{~WÏ€æëÉwÆâ²¬ƒO²(ÍØK}1Ê=ËügZ³¾ŸO Ÿú]"Ím.U‚›hs1yJS@‚/wí¿”AôjÐúÞ$ÓGRäCÄ\Ùf¹ÞNë+|{ÄMzÔ¹»i‰#6uÍýææÍøB•@²ÞŽ¥Œž–B3Gˉ)K›„lá }¦Þ;á£3aÈ“³¤ÖgyÝ÷2ÎÚZ8'' (lÖ½s)ÃeÅ•Vt©Ǻ)ìœ_g±­AÊ(¤y÷Wý1™ µØÞ–BaíVχ\ÊÆG¥ÓÚ÷ê¦@ü³!Ë4}$;w! ÿ†ÈOñaj°¼ƒ–/¯6X©Ãê©ÒêÆ(yeynR½¤ß¡Äc?…5O¬‰y/°Ä»ñ“jøGˆç/ÕCšiÅA—fÔ,»PÐèèHð¶LügSø«,.Ô…œE¶Š²q|]vܨ[èÿñØ»èpxV•¬ñ׬‘®¯Þz—èŠå-vÞ¸O{ñcÒ¹‰®O[ÊQÑ#NœîY”dÐõv}EÝï B®qiFõdžºW#Tï8+Ûú¥Cˆ¨¢jĦRµXÌä¬-óšß²Õǯ{­T’z¼4®Û„—UÆe'<§d<·ÐM„ö(Ógûš²cW†.®·L²Ím‰6¬z¸Â#ø@D’鸷τUéU˜8Ž~´»¼nì C‘0ç6Ug¢ÈËF—Åf:î˜`»3„öí—7î(½{Iº¹ÑŽ{ýþÀ“f¼º'ÌË cÖbɲ˜“8 ÃßÓL*µ:Ñç€üñ>µè O’˃ AÌwRŠ5=íÇ4Û¬åY±g•u_7U鎆Ǩü§hGú:Oó#æza(•÷#¥fh&.ÈaÓ¸ÃÆå5ƒs ßÑHížµqºú·c‘eŒ]èk¢t¯ Òø‘[|ç¦Ú®_Ä\-ZÝ™ #~)‘7Ë¥ú¶äÍ\ô}Ñæà ¤Q,âžÌó#òÕ´R&ã¾7ÑÞÉ; r¤×QßRy¼n‚Û•KçÚ¶/å?–ì6«ßÅÇ‹¯FŽË¢< ‰ã©;:O6]UJœFp0chd“œ1ä(ŸâÅd¾ÇRdO\–õF¾¡*ý">éÿKüÊ[{h Ù±X”‰–®û“m@…3Ieñ¾wj¶œ¼mýžŠè)÷±|ù‘Qcu[2üˆoný±ÏûNð`ˆµvSd©ü¡‰¸Æ6ý[´[ù3ܧ^êÄi/º¤î+ûX%ϯ¾ì»ÙÒ0ןIF¦ÚfÁWûïßeÅÏ,þ°3w½‰›Ð¶RÞrr/ÊQy¸Ïõ…>Fª¶, F6ñ3º¶ó„t•ÕIm!€ð"EBƒV³_&5³”6…ÖŠçj/CÚÜüèþ¦ºÿÓ£@A]Ë$çæ>×içzõò·€ #4 @hm‰ 1R3q½Õ®gÞNIâW©ØÒÑÌ®`Ó/™â_¨lY»ân9{•‚ô;·h!D´ËÅ¡/˜¸U[.ù9Q ¸'Ÿ759KY~ú¡—4eÅÎŪđZ1¤ó9¸SKs1®*:]bèõ–øÓv‹÷‘Pn²Ye€Áñ[s¸·’uðÉa45y®ÜN¸Jg÷ÕR¨ž^êyÉ„ÏNZ_æ¢<¤¿Ò‡•÷Šd#z°µØkƒÌ˜tï³SÝÕ´vÙ,—ô—£]CD•ý)^kU¾‰Ât›aº6Áj=“Ϭ¼åÀ¶æPIB‡7‘ïÊP|ЪîWbŽ=Æ@có™ñס¤‰Âô{lÄ"|;ê°ÝçxcÛbeD<°L\/`ÈÉÄL„߯þ™yÔ›³‘:¸ÕJßÞòB“€{›Ü=^¨eT3K¦éÀÜB HCÙj¬¡üÙÊñÒ26 ËkM¿:ýiõËX‘Ì݉½xF Ù~‚ÒVrJ¾>ØX ÉVBùw×/œæ¬¼\Ê'½`òñpoü¬ •î$—Mÿ•§Àý|¦  ødâtÛ9¾HF0Á¿Üw×CÖˆ:ǘ%îhˆn±ÜìñUôyEx aÙ¤jKéÎU˜}çuÎŽu²-òã¦.N=[aÌ-cîÖHÚvÜpi¥S}ÇÆV•éY£Aoæz_S4‰r{ŽåãÕd ŸyJ™ÂX[TexÓ82 íËËÄå(WÙ[¸M+ŽX[K6~1‰R F£çoÍ”Ñ]F6îáÛÔÕÏsR •Fï,•Nûh7¥’cðÁh|NGù]˜©þ1x„\ózùkêbjÂñMZsu’Çp1@ã}¥îw¼-ZÝ6¬ºÅ0†»ˆ DâK0ysq%2Q°Ö5KÀÎÇÀ»ö CÚ§å/³p\¶æ9–ð/ƒ¹_| ’j«™ý1½0oò²úó?ët0êÝ µ´¶ÍYˆºjKâ§A«ò!?móåfiË ®Ä ñr¯7øÔZmÒRøñ„ràß›Khv–¯¿ñë’I»‰¬ìbñ+Àª’ž¬²ìó9ŒÅ,´È7u^郌It]:Fï™8¡¯ì_e–@@YÙû“µ{ì3¥ãÌ2Ö—¢#QºÆŽ/0Pºjû˜²*1Ið­uþ(¤bŒ õRÈïÙpvw¡Å‰ °Wkxð¶Òæx7S_„)»¡wør³!*½T•0ťľœA­ÖJ6–¬ü.ÍØâ NM8 +ØæÞ*nŸ}±*\A/ïÀï:ç¿ œ¿*o¥÷ÃÃµÊ ‰½£ÛECøhwÑA šÑ¶ã:Ø·ï>LÃdmL0X^ÉTQ T\ RÄ9d͹6ø²£Ú|“ÔíÚ\€#Áò¡xíðD>ÙXŽÕW¢/ì±ÛãÊÍ @©4ÜþÜÔø¡pΰsÚ(2SÅÕo8]*Š–56› ùYšJéÿ˜}E endstream endobj 98 0 obj << /Type /FontDescriptor /FontName /AAFNRC+CMR8 /Flags 4 /FontBBox [-36 -250 1070 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet (/A/E/G/I/L/M/N/P/Q/S/T/U/W/a/b/bracketleft/bracketright/c/comma/d/e/f/ff/ffi/fi/g/h/hyphen/i/j/k/l/m/n/o/one/p/parenleft/parenright/period/q/quotedblleft/quotedblright/quoteright/r/s/t/u/v/w/x/y) /FontFile 97 0 R >> endobj 99 0 obj << /Length1 1112 /Length2 5145 /Length3 0 /Length 5827 /Filter /FlateDecode >> stream xÚ­“g<Üݶ€%ˆÞ{Í zF%„è½EgF˘‘A´è„¨‰^'Ñ;Ñ ¢DoŒ-ˆÞ‰ļçžóºïùzóåÿìµö^Ï^{ ;‹Ž>¿n Q†ÃÜù@)€¢¦ž$( „Ïήˆ€Ø¸;ÁaJ6î)PRPðp €bR"’R¢’øìE¸«7ÂÉÁÑÀ¥Èý'I àA8ÙÙÀš6îŽôv6P€>ÜÎ âî-P€Bzv¸ô nÄ X€ìܶ'¾àU˜= þ¯e°‡ë¿C/ 7´€ -É @+‚á0¨7 ±ÇÔ‚£kAÐ&ÿRÿ<\Ù Õ²qùs<ºGÿµqq‚zÿoîâêáA4á`öÏTcÈ¿Ô4!`'—FUÝm Nv 0( ô¯%'7e'/XÇÉÝÎ`ouƒüµÿ)nÛ_ ‚ªš&ZÚxÿzÍ¿B:6N0wo×ÿú'÷/þÍèÞ œ¼fBBB@t"ú÷ï/‹”z ³ƒƒ`èqØ 6Þøè¹@“(Àp‚!^ˆÚWPwGo [â°‡#ðÿ<¦˜(@PáÏÒ_„~A›¿I hû7IíþC šà..g…„‚à[Bn¡0@ÐþoDío០ӭd€ Ã-Ds¼…hçÛÉhég·m ½…hm—[uÑ’°[ˆö€ßB´‡ëßwCzZá·nD« n!ZÅí¢w¸ßB´™Ç-D«xÞº3º¶÷_øßÃóèÜË—_DÀ/,*ô§bqQ!¿ÿ“hç@@`îý/Ñ#øo¶wB,â±ÃŸ™„ÛI‡:§Ô¿*öœ;Z‚Ísç‘CíšöñV‚é·w êÏyªM~•¦S¯a¯Ý÷¼bp‹ly©;¬¼ôüM*ê÷Ú ëµtŸ&“£tMﮬg!Û$Íõ';¢w´Ç‹Móº³z¶³u¸” ÖqæX0:Ì^Ôvd„Љ›(§C Ãê9DXôHSŸG€Âç=Iã±æ¿„ø;‡ã6ò~;„·xÿÊÅ}ŸðÛüŒ*ŽÌ®å¾ˆÞ2¥ÞºÜNQ^8)IÕMW_¥|ÀAXÞÅÕP AR¼ªÌò¡lõõ€fäq„æ‹}¾¦–kv1‹…‚U+^+Ç<µé|¡ƒø\xy½÷“×ã?˜®Ç)›è­ ©¦¸÷]ìØ×Z¸¢2Ybf”í˜-.ãz¬‘ÑÔ÷iøÙu‡† XP˜XðÊ‹*ò·ñLÓ|¦à‹ùÅ¥1GGV«>Z`±Âq÷ð,|<Ãw.LÒÄ 4"¦O—¶¬.^‰û$ß#8äÉ®c~W¨ð› ¥&üiذÈqÞŽ,]Ñõ\˜op'"£³mPžêJ­Ãm‹rB‚¯ø QÌ%ä t÷:Ü,§éÆ,À˜Nóš5îDš ßõ³dPò‹»<5 æ™&é›xêxÝreñŽçD ód¾Z¾*¡ MÌBðorS%Uª—Õôe3†ëŒ):‘!iIZªrÊÃÁMÑDž ­gûâo쯀¬¾;-ï–ΦèÐÖøn›#W¹HR$ºãû .Ø[~ªÜ¦* ‡IwܤZjZ‘F R“—|þ3æú|z2à}ãÑûéÐóöô§ º&²oïsM1ÃÝ?û~†ZÖ°ésò3ÃPWdŸ€éþÌ¡| ư—à yDâw;7À “äã;Ó˾Q²2ªaùÄP0çÕŠ+÷§ðÍ7´Ûñ"Éý6XÀmÉ™íÔÒ¼"Ã}’kjµâéy2HTà˜èh¢h­®'Ç+>ÚAÂm)ÊÏ ©x b\ˆ!…OÓÞ×?¾3”Ú2¥„M*…»ôéøq–q,÷ûNHä¸VºáÁ=¦è×ÊL^aWý¸ï?uP,‰#¸üÒÂE`¤´–@eM¾w¢ø.¼ÂZ{T&g§F‹Q·ÏÏêÙ€a¶ó:7ýÀºòâ€b#)™b¹h¨ºX=[áP(Afÿ:r?¨=/ð1­)@?ž‘º4¶QÑ9Œh$¤ð¯R0xh,LIñDv`€Ø í'ÞBJÜÓ—"ª|šSÓú·ºl×B3f¾9ÂÛŠá­¯›çÓ)v­BÇVv^ä¿xÙ¿ÿ$²gA<Ùõþœ{îp+p´P+:ç ¦ÛõòWÁäÂÒ«h S½ªñÝ2’§2ÕM§ýIêsë¢Á#ùʉŠ'ã™R#Rö $ûJYËXo3‹LÀcóë€EŒé˜z5sß.* YHYÔî~ØYËð•éÎÑ‘¯0;B×?êȘ#6ûðeÎMkæ“(çIn[±:¿Þ1ëË­ÃßJcê‡áäµ>Gt»y´v?&-|5A"øs$E“ÂŒ ,fþ‡Op; (³îyDôLMŸáù"gXLØP Ú)…5q^T\#§ÔÜæØJgâøþ´|¿õÏäê!‡òŠì=Öò¤77¹²â?.Òû®AˆÓ<ç~C²²O.±qgx_µöóøhy°F‰HoM-–rÇû©× ¸¹5®QKÉÂ%Å»ÕWF_çB§ÿùç—e)2´qc–B§E½­ï/#^Cžs3ŽZzñ%”zÔOr§ ‚†HýØpÃÁ?EP˜«íÔa­Céì7fº™8< ø D7?? kK^µ­_ÏB¿öÝí7 @ñ@ h&èÝ23öEÅÔU qÚWßD^K_Ÿ¡8å#k):¼•ÃÞ9Êϲáɼ‘¬LµŒ2vóÝ$îþ>p`0 Kòr¾8½à$õ;kÕ _ÇðtÔ”§iq·“µÉ#i¥:æÅÉU¥Iül?P&a3Œxkk7Šu%Soáh×ÙÃCFëî|èã#fÓ ‘¤ê騲_û„õ%õ¤æ·¾JcîVY”i§ ] °-#R9ø›Ëû‡£¿1nÖÂûžæ"És äL 6J¸°) Ðo¦8iFÛ,vO¼é11TL‰ Ýâ’=Å‘•§4ÇÿÉâ!#A´¾æáÒ"×6ÇžX2qlí¾ûBäÉøhõ‚©ÃØÝn×|ÕNö|”¯ ß>ܱSxmýmÍDоlò•\âÊN¹l˜Ï‚Õ;µWÌ’%rþ97ë¨Rq¥gë3‡%(ŸÎ!å¦È ª’å™jÂ^ÏOú×"e€¯S//jGÏs«£çƒ»‚-í?Y÷õ$À¿Ç|ŽÍÎtºæºÃC'm<·_•g‘-Šoæ&¸Ž1 µeú×VþÙêÁÁ aæQéú3€ŠàlÕŒÆ5áæ‹ÈÅŠHL3{eŠýåáQýƒè¯º*@*nà€¹¼41$Át­6ùìgÒ›=Ï0­æ¾“^Ø}"¥D¶ô«;RÌj, ¹êÌè–ת5—UDó8AŸšžX¸ë>bpŸrõxz†…ÈAÒÞ#HYƒoDîá ô©ÆÄñVÖšO¥ä^ âƒ$4{I„Ú)»ð¦¾’ôL=)ù¡c,ïËz¦cʽJ9„µ]ëÃO?f&Ò¥ú„(­ EJæž—Ì”™5 §û@kú0í—@Ý/?¿14«j¢Vڢɥ9’]‚¡±De&hf”XIAýšˆÓ`Õšs •ç›yç¯ʇ±Ñ~fL*×#‘ {™wÏlﻑ™(#éÉ<’šŸÊĆb..£ÇI¸¶†„¼&ë¦æñ/¿{Ö9bC4Ìâæ>«W$_³<¹š!Ђ¾Ð ‡l< ‰Îßéwä£kªc¶AÈãJ”î C\Ê>Ndˆ)ÿFù2‰êµ0ìt Â’– …($c”óckŽ×st KYÀ › ÷p õÙRn1·uüEb³ØžªŽ¯…¬Ì¤»bԦػÄv¿<;D2m%'Òzfêàë8‘'äÚó½ 0  1EPAðͬOCFCÝjc$ƒ,ñFä&Iæ^ÙÓÏ’UA|ß[É¿>Y†·¾Ù..SWéraº"¹Î˜Wß!4½•æO–ιäë¯9êÌ»üÜ>rýú‡ì³Ê§W7ŸsϨu°‘– ÞšùÛò}ùAƒÞ”y?•úæ®J¸U0é0/×Í5° “Áû°yýW¸~Ï∥°c=Ël‡æcÍϰºYÒÁvy¥GGr¢<–õ’8õФ{±$gx&B°³ ¾œ(Òç VÀQÔÐí %qA~ê<›Èì­_×’ÚV½Ùãéù ÝYz&X ê#²ä>A‹jlðnªÉß‘z¯Ç"©\)» ì-áÌŒrGMáP•@kgï_ /'r»Ÿ¦Zž /\)Kz¥ô>ˆ>unÖÙ:¹cꟴÁEè&<º‡›M-M¹UÝf]Âg·ïèÝÌoM©Olû„SøÞ¢Œ®`Ý6÷®ž!›•VyœH€Ü†ì(z³Ê?ÁÐ¥Û@b]4m„ÿµE1Uk å=â­ÈÿÆì.½Á2_qΰòî÷TƒV?9œDÛ_çÖë`¯fX]P™íùöw X8N3ݸ\¼ ªÒ†æ9ŒÃ;ƒœæ)¿ðüÞ—èXp?úFÒpwï‚ï°ÑÕK'NÊâï!G”iÂ{yù} ¤?)}Y˜:Xí³ùà´O8вáH´P ðá`ψ8‚åt¶J[Ϫw,j"ã-GðÕÊ<™ VÀ™9¦D)†òñü°îEˆý|UYãÅbÆjè:x>¦—•QÉ+ØVV)<º:gQ-f®´˜ò1ÚÏH §okÝ] â Óø”G¶9ÀV¤Na5¿«g5-V—Æs0 Z\=­Ý3 ˆ3’3´ Î׿d¤3åÛòâvë-nùÑÊõÿ"qýPÖ°M3›ÃÔã¤ësŸ½O6#\ó¬‚G˜<ý|­õ\•ÙÇõ>É™uˆ§òÄn嘪 …² ûfãƒñ‡ú"æ-ÜÒj ÷‹@ËÁx;¹NMò£‘d6CdÀé‰Þ½zqƒx¶¡¢ª¯kÁýn§X5Wjò“õ]ÃînÊeŠ:\~°}µ`|_ø–¯‚ŒŸ^dË÷³ºâí†øË\ÙúàBZ‹ÆÐ%’ëÊð= ø—ý!!s?[ò5n{íV)'¨¡\'õÉ@h™™]OJ’w7­/wÂÙyÏËãÙì)±â”˜È=ýfï…ü6Œön—Ð>燪´ì ¦øJfÆ®XT@`jJf 7ÖÌVVÕÞfÛDËq¢íúûF¼mü6©c©R»•<³/*ÊIΗd)"—GL˜ÈP1Èh/»eÀ²ž<"SÉ¿»áÙ¾bd4tª ({ùjQo%gN j·|(¦)'«ou]|ðIäB¾ZýôØaŸ½û:„"³êKÓÕ\Ûx×âÊûŒö…{)DðÝ­²éUŠÐ}g„ÀàG³î/ëý8«ï³Ê2±÷æõœ'?RIìkŠ2!ƒ‡C7­¸R¬Eî•δ ù3ÅÞ´7Â9WSº5Ô\+ÎŒLŽ >OỸ’ ®^K‹!ú‹üY¢sæMîÙ íÌ6-.ÐÖüzp¼óX;ËÚÊ ¼#A”×wÚ’æð&Ãó ™Eöùf€‡"ˆÎ€cF]â­÷ üŠ0:äyRÀh!¯DKâÝA>{@×C`Óà9ñ|XÇiöå½þ» È“$™¨ˆ HN }êù·Nlü ¶¥† ¼J°Ó²÷39.o¶úO‚¶D~zyO”½ÕŽ389ÀŽCY£¾CÅÉvÁO¸\7XÊÞÕN¦ÆU”_K~ˆ7ÌwcZÖ(oqÓžSñ>城ÔÇŽ:D¿lÜ·7fiì[ÕÆ0ðÓÙ m ˜þ’)ûEå²^‚¿w.ô—'Ðt.YHIߥJ˜“i€KÞÁ“Ô/«¦Kµ" Ê‘^)øê+`&5ê¥;Û臩õ6V“-_ãኲS?qÂ7=øž#,òkÄŒºµ7ë1x B°«ó ­Yü€Ò_={é‚{LoÌÆØL[…祶’ °É#gOIL1w°½T"?Zä>Õ¼[aü¼Ü´ÅædÔ@…4µ-A4ÊzªŠL3!©º' K¥+¯kΗã;â’e%Þ¢:@Y©üh ª$º¤/)×üðgšº»py#ÞÏž%ÛÙë‚õÁor}Ô RËYú>D•Å}˜ —_Cö—¢Â5¼3EûÏqéçéú’ä³f·–æ9tc22WH‚¸ÜÓ_k¶o’²•ðŠ9{k''˜·EÙ’¬1#Ǽq“ød\’F·F»¢Ôõ®E*K0Å‘‚ ì~øP=g3 {aàû Ù Á[vž»N ý×½‚Œ¹:‰vêq¢|Î ZFýœTȻԠÍ ¹°Š„ç¼s¸E︹#2)MTŒ&pʧ&Í+÷G¸ŠØr®¼ì è!æÁñ¤®Ûmìm®ÂìÛ¤dnßQê½ë¢€1б@s9¾âD½$:Xuòœ~г³·Âþ{É¿6r#æ«K픸þîÓ·Äî87~²%âº(”߸nlâj2¤9׎™±,§^Oóˆãêl*`®ú…³…„Ø{T»í}n<¬Äý8ë,a¬"Û‚Ox³¿ypùÄ´BȱO5à©éé¼Á™/‰t`¸Hëêÿš”Lòã3#Aé<ÁÅ8±9(Ùó•ý"öΪÿ˜ò¶ý ê«Õšùȧ¯IŠqÏàzg˜„Ïó,Û;ˆb5úWºÊyêpé[~Úªæ9'йÖ<˜EPªyóRP_RLû†ÌK6ı°¾AÃ\c')ËM—ÄíË“5w6;kë ¶7m¨‰Ž«ÞE+ô ºÃ&zbµºëïi'ò¬•}(®ˆªš6ýv­rð~ÑH4ÈëY¹ý(¡S{ ×h¯bŸ÷C‘¾âZ ŒóçÅ_î;×iÔ¶þi9ø– áßQöè¥÷ó^7¥Âz> endobj 101 0 obj << /Length1 777 /Length2 1289 /Length3 0 /Length 1836 /Filter /FlateDecode >> stream xÚ­Ry<”kž²}áè«ôYÞ,Ÿ-³Èp˜’­†û‰²œÆÌ; cÞ1†FÖ²•œcw:- ‘mŽÈ–A–,9B–¦ÓO²”ŠÄ÷Òé;¿Ïù÷û=ÿ<×}_÷ý\Ïußšœ\õ-(/xb°õ±(¬)`EtµÇb, ƒÔÔ´b$6 bX“Ø )€51Á¡~€œ725ĘÀ$À b†³h~þl@ÛJg“d X,™Äˆ$¶?÷ “è€+D¦ìp`A§.›!€ ²Â@ ‰Å™ ø‚~4½©È–A…ã/aJ(ók* d…À¢mX¤K¤@ z8@©H´¿ÂJþ¢¶7?J§;‚6Ûo¹ô·<)ˆFÿ“1CÙ BÅØNu¿ˆ#‚ZhÐö¬-›D§‘-~tÐ7A} ÓBŽÓ8 ʼnÆ&ûT=ÜŠƒ Êv!°y[2Ð6ßÙ:ˆzNu+éD¢1ØnáLÀüÅÞÂØ¿0ì‹Æ<1(  áóõæ½í±c 2D¡1àµÀ$‹Ž„÷F8  ЀX1Å€Øp P!rs¨&&š¼ÚBX¬€fþÂ?G3á±A”­Ðßii q"ô }f³ú`ŒÃDý‘Êb öÖÁ^}ÅTì.r@2R0‘ññ9µJ¢]T*¦¢”WßÓ”P‡GÍŽã¿fÕõ»*Kò ò´[rÙsveh ÷\±Ö"’áŠNx"Ï—Ù­S˜ï*1OžõòÙÙYÐÑ*ôKòKê ³No~T}y"¬I¬ÂþÖøšâ\ŠhÉï#ŸßFÆô>HåRÔ_d#½ ì³À“L¤?\}M€®C‚›{½ò—ÖŠ­cƒÏdòLR ˆ"óެIbt8ÔÉ^$öç@UG¦oXRã™X†¦`¸GÄúíJNÉUz³Ÿn¶×ÿôí-ÿ1ºÎO­Þ¿†V:'×øNÙ7\Ûá=¢6'¬ûŸ÷R #1œÃ.E²Mf83Ýi·þijjü0>·æ–×äŠÅ|« »•yßüœŸªÜ ÿÑr÷QǨu¡ÕoøÆTÞôÒ‰{ý1ȉԛ_éó"få–ZÆM„.Þm¨…$à9nßÔëùmp+Ü÷é©aV–‚c»=ŠUj¢MôGÊVUÝL>Ïõ½ fä•ÊÃR¯qùSw^\‰{Z–=ÒÙù[¥±Ã{—iY³—rÖ¬®KCîºúÇŠ¥>ˆï&L©L·ÝWŸ0i¸ëiÙë’ÓÔØåùK‡P¥#ÚÑur] n74S³?¸r0òƋҫʱ±ÂѬ„ü›‘æ %¸Ê,ò8r%y5.§qÃÚ@k}"ª*ªÍ;ù“’•7—”ï•TÁÇ'_›ð ‹ôt äï9”6ht/$ ó£dÎç·AoÑé)NÌ·:q ¶ñ´“DÞ„r(i@,H^ò|U€âµ´¶[ÎryôŒ›[b‡_ [–ï›M+%iÌÆdó:mÇØ'Ï8ÎÅ ý|AæÍ@æCÝ¥ºÛß[š˵°Ï…Ýœ¾Â|\ˆÕÔjˆm®ÖXÛ;¼{ mÏåÔÐ×IEÂ'Dm—pùøÿl†G endstream endobj 102 0 obj << /Type /FontDescriptor /FontName /HUIQGM+CMSL10 /Flags 4 /FontBBox [-62 -250 1123 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -9 /StemV 79 /XHeight 431 /CharSet (/c/p/period) /FontFile 101 0 R >> endobj 103 0 obj << /Length1 1119 /Length2 4534 /Length3 0 /Length 5232 /Filter /FlateDecode >> stream xÚ­”g8\íÖÇ’˜¨At†}ÆèDD'z$ê†1£Gރè¢×(Ñ¢E¢GHHˆˆáÌ“sÎïs¾¾×þ²kýïµþ׺×Þœlºú p¬5B‹q€€ R@¨–¾¦D 89¡Î+W£dåŠB$%!@7 ./&%‘p¡XGOg”­+Êó—H¨à€pFÁ¬0@-+W[„®Ì ÔÇÂPWOPêýu¨‡pA8»#à „£`®@k„ ÿåI ƒÄÅÿ†»9þ7åŽpvÁ™rãLòqáX ÚG `m,®çäÿÃÔ?‹«¸¡ÑÚV•ÿÏœþGaå€B{þGƒuptsE8µ°p„3æŸRcÄ¿íi!à(7‡fÕ\­Ð(˜Æ H‚DÄþF¹¨ <p]”+Ìèêì†øF`àÿô›Þo`See}-C¾¿/öwZ× …q5ðtDÿè3äãÆäŒò> BpBÜóß7³´SÆÀ°p·¢b@+gg+OnEp$ ô†Q8ˆðÀYƒ0XWÜ n2¾@$Öð×½ŠKÁ:…~îªÀVH¶þC8%ìo‚ Áð¿QX GX4ÚÊù’#.¡Œ¼„"@°íß("Š#OG[æ’C]BœôÄÍ|IŒ[a0öâš9þ©ŽsçˆÛ@,ü’Bvº„8;—¼Cp½]þœÇÅmåb{I€+éz q ·Kˆ›Õã?ˆûhÁ—gÎë7þïæ(*b=¼p„„…b¸ºb’b¾ÿGssvF`\š¸õû/#Q¸}E <0À§I,ìnˆ]jã“R?åüÑDÜDs4»25ÝÓQ¡„c2 —éeR–Qý+TD~©¬ýßÞ†¯0Íd<šd%w§µFav•«éËB7=8¢˜5}&÷8|ÀÜ«Ž,äX>zKo-¦~ä»Õø )÷»(ÀW ?ž§~ËOA£IKÏx2†ÓÒ%Jü30O÷Óª[¿—vü ÚÚOéktµ‡ñõE:¢¬Z“³SÖ™¤)Ë7•CžcÇ˽dk•JE.ˆr¶œS«u-¤y’*ùo͸¸«Ef“Õ#O(X2N̘˜ $¢š{ÓšR®ïÞ*+é¼FØÝ6oè°j±u:µXoȳÛxä# jº–>Üü={§ŸXÎúº]ÅhÓFrþCFª¸S£¹ç¹L&³'öÅ6%ù~÷=¤-¯]µD[jÓ.Íô!åä|â/‰ó‘V•=M;ì¹ÕXÛ …9ê.ÝÆ‹¹nçþü¢ŽkÐÿ£²öJÁ>MÐþƒŒ c1 нõÁñ‹že‹Ö1T6Óöù‡AØ>=»ÞÕu¼–÷x³ÓÍB⎊-CW%5k>€sÚ³Õ~ ܦb(OÑmxÿ†È´Ë5–Œ©­DP¸’ÑWÌ•»:ç¾CZ«íF©äG^IðÓ½UfÑ ·Ç ºˆîõ”»ÇÕ=×À§ÃÀ†ŒmxŽ-f0ëŒÉ Íy+4´˜z¶½s—É@¦ ~Ï-´–´‚Êå#K4bOl~ö©y¿òÇ÷!J«ybv±{æ²òy­ao¿_¡Ïuën©ÌÿµØ‡eoV‚·ý£¾î¹Øw©’±Ú·‰0/ »¸g$îc:)‘è_‹¿žy6þ BIåˆjŒoþ qH?*×Ç ×Ùt¼eȦü y‡Öá¨Ø'’¡Ö }ò³­¹.êõÝå‹q¾ƒž+µ}ÝÝ'Õ4wV‡ÒnûªgÊËC„ØÁE$ôvô¯ò$¥V‘GÙœ13P³q/ÉL‰dËý85ºßiØrÒ,—²¿î®—ùêb=‰êÓs]3E¦L1?=þö‡îQwK㱚 i Özbƒ­‰ÕÛeŒ¶ñ¾_Ýó²3#Ÿø‰\ãäem6¤Ïq1úñqØEmh´‡s×å¹”ÙUñ^P÷1ô湟tÎP/ïqSêÉsÕhRS¤­áߤäÉÉMÝÎâÝÄcNj’OÈR´”úêׯ-Õ@@7è ù Ög•w +ñ/šn¿²¸ûmûBιB9yƒà—ÿ&K~¿¥¥DËrl—8Æ®ß[UôN@–)˜±ÅT°ãǾk¾ª1cSô˜5 çäκSd¿õ¸Ùg( MÞüA†W+ ¥êŠzÙ‰õŨÌã2Ë;J9f˜×¦£²bv~"ýî™ Ð˜*1É$5ki·1ÜVh¨ tB ÁÅ»ÒR5R–ržÛ4Ø¢ßÑ>1е`=?kÄ&)ädßµ…w%ð~”eW7aõ5–Ñlì@Í|ü´ –ë(ÂŽ±µ'µä‰hœŒn¸ÎÞë&|½ãú†÷V8òÊán%¥^¼ÜóŠAÂÁꞟtÏœFÚ¤å]Ý£N·ç?™×Ò^´ÐN8|þÞöKe0Íþ…1­ òuÄoª.+mì÷$´¸)™‰Rԑʱ Š7ûíV,Åì‹É“õ/AþóÛÔÆÏ]„ÈKŠ}jGè;;O¤&wLGÑëïÇÕšâ2I˜SŽ«¦"΀ÎM ½3A7hë£ÂéÉ6J€t#k´iЈøç AN`_¶Õ ˜¦‚1{Æ/¿+Èw1†ã¡}3Áå^ûº’¨ÌŸÓo¼§%zs»‡MëïuU+©Z¬*σ_Ž?=½öÄ– ‹:\ÉX Ìo§4ú-_Eª½÷5v"^™O‹¡ïuà2ÉÛð €Ìi¡"_Ïï‡ì¦ú¨”1MoŠa… D#h¤²^ï•$‹i†î¨tSbÙF C¾’6ÑËgc6¼‘ÍT÷ÔªŸª 4’F£+ƒ’]ÃOòSYÓÅæhþrë“_…Ý×*üM­ÀÏOªzã¡þiˆÚ†ã~ªÜHöµ/Ó⨇*‹¯ÙdƒB®æ|ÓrcäÞ v·¤ù(/~ ßz"("šº+S·GÕE{Ådr¨Yˆ®ò ø¦à[;{Iäx7!jšÑ·ivøâ”4• oï\7&€ «‹y²ÑJ8—¡L$á’?Ÿšµæ#æÌìö Õx¡O_Z"{wmçÃ>+†i_¿€/¸PŸ©„–•|ñ1a²ÎÖ’?S“Ìd@t'æÊóM«²tê.Péå«äŒÞiª]O&i4°Š Xf­º¿}³]–ð×·r‰£^…“•Š’h‡÷Q_µ Ø=1š{fúdg>ÄÓŽÇÇú=Ë|^Àª°Jȯc¿¹Pëp¬Ì|S¶‰fÒŸò@/¥ Šÿá÷¨Šÿ@àÜ¡ØB{>2éh{ -$æ T¼iVúšlyLXbbF±evömOd|Z\´¸8i…N5¸xp0!-âS„ÿBŸÀŽ—T’}¸º ¾=yÐ× />ò^T°l>Ÿ<òs«~ir·—T\¡MþÖÆ›ñã€è»Õ/·GÙ‹–žr–ìÆ±¶r„ûÕÐ=³‘oè^rB'ɺßoGdê¬Å@‘è”U (òYüÒ”¯§Q¦°õOúBŠÈj=»òº4"û^&w[ÎXhNVÍ“&O¬ÆëNw £Mj3ú†F^Ð@Üú™¯>#46 õµÙñ ¶Sá6 lï½[:²ðžzˆ4úžKÂòñ~4o°VtKÏ„°ÙÃÙúx ª^`ï¦2Á‚PfJñ0@ÜG>™”ðµB‡kÜ{CRZÏ®µ‹‰ æJ6›|$.ê¤ óX®öÞ+÷‘à’CŒ©žÆ&ܤ=ÎA{ÛíÎs.Ô@¹Å’FZrŒuy£ ":ņ¯C—5{ÂHõ‰ë#a­w\´­> «˜ð˜ÙSÈK ´÷øm„OèO»] ×HGšU$ûÒΓeWk Åd'’Aш£:þu±â¦,ƒRaw>5Þè<#Ý.°ÇéÍöÇ"w‡IÏ׿¢ñ"LFVn'‚“­[yz‰«Øo½Ž¿* Q¾(iÑ.a;gH¿ãõºÓ›Àù­¢ 9£öׄ°ˆú[Ü?WøŠ?Šã÷›˜wtËi¸ ³Ð>IïN½ùIh?«~Y+§F®ãâqN†ýýdUFVc‚@5‘páÿÐÜ ¹RB ¿†ß鯱xŠX›ì7̽#¾ÕÌ—Õ2naÏÍE¶WU*‰4fÚvÒöi/ ›{IóE… ·Ï;üŠîXtû2šw«J¡uï­ºKP‡¶œWÚfÕY3}BZÓ³èµÌÓììø˜z_9Í£FgÚ7W5Ê\‡«‡‡Åð´¶5‹lKÇ™ð‹$(™`‡×å²U–¬®\!ŠbÞ}[)ŸTšÙ`ìqßÄìg_R„*®fKLË "ÓŸhgl7`ìÛhÑtBáªÄNjJ=&uÐìÆT™©ùÕrŸ#z³€ï®‚£äÝ6Þ%Ï,‰ÜÕºÈ åøW¬2ÏÙöBeMÉÐ{È|I#&j2ob‹#p%熯]\´ê%è'×Îä™ÃTÃfxÿáÝâCÚ!«Ü3‘ïÃ2FÖĘa¥g]wð³÷T:Ìõv9³²£²ú'¤‡¬¾ìÊî¹}’õ¿çX¯È©,¹U!ÃSv^FØùì×ù2ªÇù¦²Œz8H^À^ò±¸[€ÊbzŒ35Më— ž®±±Ù†Ü#Tªß™ÿ*¬ÎvðÍ f÷©îDF¯²CRÕôåN&1‰ñŸÊߤ#ëzßÕð!ºÐצ€XÌvޏê*gMÙ•ë©°Y¿êdX©«v+vÿüa±é  AÀΖ¢ükýŵâ Ïw’‡´sOB”¾z†¿äy+dÚ:sfo4Sãù(´÷=鿀ƒ5ì]Å5c¾Ù/¤ê2MÊZ\k-û¢@#ʳâd}ÖMA–·÷”™*ð#y; [L´œBÙå-ùçŠó­x“‡êüYˆ<+ËøUöÙíÍ4™cwêÀw’ù8HÌdZ²÷¿/‹Ã†ëñªX¯·v߉Ís°¿å¢_Ñ8%½Î_bst`6²MDœ°HæÑ6¾ª*fEO]IÚ*Èßç—qÜÒ_*©šBö„*y6u뛘Y€ü˜Òb$²º¾¹]áìÁ+ÊÊsÒ}±˜nwèø«åþÜ‹ëw ¥š…Žrþ,—4µ¾<´ßÕñë¹4,YÕ‹bnyú¢µþ™Ñ`@j€ãS_)S+r‰/×Z„7¿ÿÐÏ8çÑá§1ç[µ°5“ `“¢Ø“”æ˜:ïêlË{Ǭó@uÞå–¦"#ø]B¥ß ßÒ¹ë Êžñ^*4r‡´Š°•2¥<¥œ/ÀÉ$Õø¨¯aa“¡¶aôÌM¼S’Eê.¼”úû@׃ëÑ\:ïN ½üËŠ•¼ýÓœaâ^gv%h%.¶¶‡x"õ|9à U ™<§ÏT¥iÉ;ô:[4Å4?§Ðö/Œc…:²Â4H°]·WÔ?•6ùñ*œ” $Íf†ãÓÖ£üe¼ï÷‹Î2¹Øa®È[ ›—ßëʹ¡¬ZãÚñUº½(¥™¨Õ î¤\t{H°+É¥+‘ SYñšÜµƒêPÑTùGßïö„.³Býl)àÞüÞ¢²µ÷‡˜&\‘Òþ`}¯:Ó¤¯{§q1«©vj) ~^VÕ^¯÷qpP&ÜײN$ Θ4ÈoÁ=@f,Çù®ðµ}\Bo$åk¥ûäT¤£Åßor“WÇZš>BñT~¥çߢF¦Â ±»Î¾ß”ó€ïigï­ÈWÇ<Ô§Å»#¶¦¥è³óvºÓ>›ÀHˆ{rÏ_'6î)|‘fF&z¯özZ¼4Õ˜/±õ¥zÒÚü¾d>:½ÿ€w´tÄ Ÿ®hú4B»*nNŸÛ¢àF6Bß'8±|j+:À8•”tÜ2[Ô“4ZqRöM){7¼VšÜ-¯?’Œf3U½¶ÂŒvøè˜Ðþñ à+)Yª¨¿`i$ØTWŸ·ÒCg(sneäÓú/²d(Á endstream endobj 104 0 obj << /Type /FontDescriptor /FontName /ZEESMU+CMSLTT10 /Flags 4 /FontBBox [-20 -233 617 696] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle -9 /StemV 69 /XHeight 431 /CharSet (/O/a/b/c/d/dollar/e/f/h/hyphen/i/l/n/o/p/period/q/r/s/slash/t/u/w/x/z) /FontFile 103 0 R >> endobj 105 0 obj << /Length1 1555 /Length2 6640 /Length3 0 /Length 7512 /Filter /FlateDecode >> stream xÚ­•eXZ»†i¤C¡›¡‘îî‰`d¨¡én¤‘DB¤[BJ@RP)i‘î:ãÞß·ñìó÷\ógîµÞxžw­YÃL¯­Ç-q²‚*:9ºqóñð‰ä4ôôøx|<¼¸ÌÌr(Ø æä(vƒŠøDEù2î¶r_XŒŸ_Œ_— çäì€ÙÚ¹ØäØ d ˜5Ø v³ƒ: kXƒá='kÔÍ› ‡tg¸t¡®P„ƒËÇ€À¬ÝVP[˜#.ð·"G'€ðßËwçÿny@®HQ6¤HvR"ÄÉî €@mpšNÈ^P¤’ÿQÿ.®è‡k‚~—ÿkJÿgìƒ{ÿ'ÂÉÁÙÝ Šh8A Ç‡Aÿ§…ÀÜþ½«â†Ã¬emáPïßK0WE˜¢ s³¶Ø€á®Ð¿Ö¡Ž‹@î/ @EM¹'JÆœÿ9Ñ¿6µÁ0G7}oçÊþŽþ‹ùî9Ì `ÊËÃˡ D~þûÍì_Í­ 0Gä•€°7.òn IàË€9B ^¨R1ÇÑÉ ™@Å`ã„Àý} B‚ Ì勵I”»#PþŽD@…H˜éîŽø@¥;€ÊwĪܑ¨~GÈšZÿ²¦ö!kêܲ¦î!kêÝ‘¨GHGÿòÖÁw„tduGÈîÖÿ/²=äDö‡Þ!ÙyÔ`W»»‰üŽpqG^á»$¤L›;DØü¿7awˆ¬hóg.’mÿ@¤«»^HWvÞÎvPÇ?"k”ãEŽöÙˆtnÿ"­ÿÙ éÝá¡HïTþ-Üé®72ÖÉñYü6âüò#9CÖPG·»¡¿Ö`N ô·_—»,¤=w'7(Ä þ÷3qˆÜBüH›®w•‘Ý\á²Ù]º R»›z§WiÎÍÓéd ÷?9?i×óCCf{ýHï>áÿýÑËÊ:yùr#¯7ÙSy¿„EýÿWœµ;Ô_*ò:ý—m`Èw õ‚Zã~v²~ú,½!¼,@¡hì &ª¬mc¢fmçd;^È—$TxÉG5Ž…ã‹ò,R‚uÌu:Ï+j×è6?ÅÝç.‰ŸoÖ=,׳|š©²4¼×œNC¶ [¦Ž~ ¢jM, •¥š÷æîõmh³Éëo`ÏÑ£t™zÔue‡ +fÁ "ÂjXøéu‰2\Ê""æ=‰R“1æGCžEà4qÎî;µ¹“\áä§Ü<=%O ¶nÿ´‡]':;µY78žÑ)âV¿~vy” €–qö¬;`.è¥?z'«@´™,Ïf<³tê¨Q è·.®¹Ñê¿Å&4íXƒÃž?`ä¯*“mú’KÅ¿¶øXÑÉ·©{ xGýÛ­Á•ƒä:îÁ§÷]bŽ6Ég­ÏϸÃ[6µ)*­®ªõmq¸xžL*ËËåpšœ$®ùå/(Sùldò½ÓWç%;Kg©5)N‘Œ;‹žÄfØçn+î«këŽÃªžHR™ÿ©{?¡…Ô>xyÉ›¥†‚ ¸Ï°‹¯ÔˆKÍ®£±è‡!¸ÃKÖ~ìP(GØq*š¾f≽cÝçÐB­¸EYþî[{K-ň6¡dèrõ|¨gý™€¬¿¸Æ}9V"¶”ççï¿RkÑŠEÁ%·€|˜Ý#üá÷í=„-/„4P°ÌUåzì°=ËTœ+),qþuOèR kØjY`ôפj ù‡86D~Äá½ÄsH‹Ýáç®$¶³2^r;Ù;w­è~ðtáMQ«kMõެ`ÊXdÆ#ãwÖ¿– my¶ÇZçˆyߎ5ªI°í©¨[°ÉŒFG²–âœ;}ÉŒ¶¾”¸Ëï‡9¬.ÇuNoª¥ò¹_‰Ü~àȹßJZ†“›ñ~ ]+R™Ô¼PsÍp2„U­Pކv?xåØÅ¡OÌöÒÄoÙ ‘ÝK:eh^Ži¤â­ˆ¸g­®á&ýpqƒKòAÆ`Ï€"R÷-W“«Rov«!#*¦W‘Q³n+‘$bãQÉ‹|"bM#Сd)8áôÅ\cH¹^Ëë“äˆWE¹|ÃOózÞùqÇN0Íä^]yÏÑÑ3ò@åºÞ;MÙVQ}ˉÚ=óKÛµ-ñÙiŒ5t¯ÞRÙÜót\>¶T& ‡-¬÷%ÓúœàÉòÉA°?Õ¾ëllª¹õåÃeÇd ¢_T}M-#ŸoKàdzƒ1£«QRY*9öÁɡ˪‚’mdbF”pû Z8ëŠ4©1ÖäòôˆW6kŽ…r¿CÓË–ä‹ÝòJ{3jûQ½ß¸ÞìÚF”ùò)OÇ3c¦¿É}e ç#r¦±W„V~0æµD'9t­rzÚŒpƒ¯:¼Ý?bgî%XŽTš1sz– ÎÛf;¹¥D’Çdv|¸.$cx ÷¸–¿qÛ[Gd£¤®Q<ÑSŽ÷YcìÔ Ø3$ipŸDG™Uˆ?°:¦‰‰gêÂÎ,~•Àà¨eÐiœ½‘C:µ[-?± ,|b›–·^œØÞ”R¡aF(ã¼¹/ü–&@¶!Ñÿ9vÓ3X‰Ó¤R¤8?E SOn¸¦ÞgežûZ&=$ªˆ“Œ­˜Š,Ì»ij8‚ïP¯kéñò|d‘W3ùý¸¯Ãf*¼×ÓzI¥M¸uàE6gµî##ª‡Ç\î§xè««aöFÙ‚|ò¬4Ñâ^Jr†¤•z”]1\y´až[¿¬ñVŸLÌC a²”ÌFŽé,öç~é&n "&|‹‰ãxœä!0#ž´Õ´ÄÇþ$¼ôy“ŽéjAfVÚ·CKÏgžÅ§Í†‚½3óaœt5?ë›e‡Újè庰Ûù8ÒÁÂÁ\óy a“µãA¬E µ‘UcÜ®‹"ÆŸu©N¬Iz¤H®ÓP8æŒíäŒ8SN%Yé2†,ô–Aˆ[äëŸy§-÷£ñ\d F{ÓXy3”}ç»I¥ŸêSù—Èh7D·»bë¿X©"¶Ù‰ÌÔ‡È`WZ=¤ËDýâ1³ã¯) sp¼9ò0iýåÚ;±MõûbKnhÁ¬±‰Q-Fåm–îŽÜ˜î7摞Ú×’7NÞ'NfBH|ªpò\ ^;ÈÍl®" ”zûø…ºï/ñY%æ´"°_*ŸGCLgÌPR>)§ A5œ?)kmôË}ÝûÔ“½4AïÃúýÕ%Ëàã¡9T9g'¶ßT NÖ ÁAæZ*_IaõFG–.ÀøC+ý[í‰ÍfU/o1âŽpÙ ÆSÞÌ9ÿݵÝ`Bí$é«ÕÒ…42e¬¼šïÖ"û(u bƒ>¿À2P0¦åô®Ñü®Î}w¿Æ[ùê¸EòZ›–Bà½Ö1uA‘ÕÐF@}t£á/[¥)Ò7ÒñœqïwZàˆm±N—̘7Œb~)¦K(- Äï7W¯ÅF ¥½@' çepfÌà¤i=ÅÀ~ñ±€½Ì~µÁsôˆÞÛÞëAÅ=t¡é*/ƒçrË0¼à»ŠKb_> ½ËôˆArþ=µ^á º¬ÎÆž¬©²óBsŠåË/WÄ#Tœ‰Ëüä¾,ýlO¬i~-œ7.Û6ÑAÖ”!GKR$½«7ÈÊG•þÊóWÙ'fË®ÌfÛ ã•ÔN­“d5ÏÒ™Rx½™¶$µÃ$D‹bcß´°¥)>n¥Ð„ŸR«dŽ:jì9{XQØ.Jž³èü¨' ®Aµv­Ç u¦N‰\ź ÷±µ“¯ðÌ®}~Eß\’•;^£lj뜇*EÛµy3؆îë I¥BsîËÌî/qûÕ¾„ªQ‡ƒ(¾þ4Úg ×XÂîv‰ë½9ÁÙUMªy<°éâÁÁDH8µQ0 ¾-DÛ³=ußÀ°Ý1a’SHeÞD`bWï¢äÝ,ÓX¥’£fÿˆHÒû)õ1ÛT³ø<Íë^ì ~ywFP'3oõ ýÒŸïj)CâׯòÃÚý'L!iŸµÏ£±kºò__¼¯ªÞN‹stɵár²â°i•œf¯Ùà5̽ØÎÆ×O¹âiQH à.!eïW0àܽ<ï&כԥ÷Ò¡<:¦´FßÐÆ¦â¢M¨mU`k9Žd¦@Ä3AðÈ©zY)E¸Õh¿û!ÔH[Fª¤èRÔm m¥û™nX¯âz`+‰OˆÓàܘx*G7â+]iR, ѽ¹¶àδ~‡~|•ÄX’£){üª´­òOõgTý *~£G쓤—TÕ[êš~´»W4§7v 4^%ÿkÙs±JP*ãæAŸíÛKÆaƧÁ]–Òìc:E¨kü"3´ù^Âu¥†G‚ðËC‚u‹êýï\GDåš’ÇrP…Ú+Ú•c” ob·‹Þ2ÊŒ°«Õma“]ñžR‘1ãôØM• ¬µjü–Ï…:ºúáùiÆ´”¤÷ða_ÓCj¹ô÷M=•¨jÛüº¦aÉhžý6M:®µ:8±Ê•¿¸ÛoK·íÊI3Ê{†SKßà ŽNz=a¼èïžÁŸˆ!• ¤xJqcÔªmBrÿæÿQ9ãfÝâgû‹ Áêp‹&ýÝ*üŒ8ÚdÕÍ4œÑIü‹üº°‘ˆ|–LeS}¹Í‘Ðȑҫ`¹„Oz¨óéÏ8+ߊ¶š ÊçKF\Yó$“¾âîC}¥Ô8«”uXJÖ)Åm•'ºMzþ݆u²+D(§|6ûŒÒ&B¬û~Jî¸ýÁ¤n¿îM}ÀtÔûxV4õ«ëA%“·˜×uó4 ½,ŠÁnï_œ «ÓûÞì ¢Že1Ž©ŽPÄ’–Þ“Jµ*$!ø;DºÌÝ=‚Iq¸È7?Š  ¼{Z­†£MßVµ8ùIx-t($œ |`%J’ü¡Ÿ’(0Ëçùm5ûž]’¨ßc²W챜#3Ü+ ´ïËc‹Oœ-Ö#ÝJHmÝöÚ&ûðÑŒšÛQÌ~ßv—<ÒPoów³ýîvpO»ñ×aˆSs£Â+.`|ò]î3NâÖ—Š" xp)eµÎƒ×º&moe-¡üfñ ©Q5â„3?Õ…× å3ó_…Hù[°v‰]vmfK1Õ¤ÅÙi‰'}v-,ù=!2Q~o‹t(œ[ö”6aõ¶óI­Öt(u/ªI¬£ÓæLnµia¥`ðœjùrÏÝìêË£pt—*wz,­±û#¸í9Ǫf'ÅM:ë‹|!VÛ–×_¿äöƒ<öA‹T#$âS›Sr<ÈUµ“[IB$!R©„Áäv-§«ÎðËÎÜœ3‹dþ¹…×}ù²•ozý™­Þ‡Cøsµ®\„! ô.<ãqäÉ Zº<. §‡û‹DœhXEáIëTDî"þ;»Ê´•ä(ƒÑ·Ryl+º¤%2Û(”ô5’³\_7½Ã|Á—u‹i8ì=o8À!z‚&¼-aÁd?n TŠÊÈõ1ú¶?z{#¹ —Yûµ“ÑzR8–Ÿ8(ˆ“‰¸å ö52•S‡…Râô".{.£éê/YpöIוå^q­º<èo©x^±ß/(SÐCn *!©mT1Zˆ–í®TÒÆy‘©‚WÉc’'œMyé<öì6áeß0ZÎbäè)c7«ç8bBYöûÓ´O,(ÖK»_=AÂh ÖE–O_¿$6“Œ«ÿR¼˜6W·gðvV¡g‚þÕ.ÁKªžÒa ŒN›©É©(\–ãKF'/—jÂGÁj”Âý[öÊ|¸=Öyn+ãBlypÆÀ‹%çð•èùÕD¼^,ÅØõC<ÌÖ1/ùÖ#HUš’ÞYHµK4dWªòÒÙ7Úé-plKä+ú1^ӆЎè¶DZ˜WÝ>Æ×§, }Õ'û+‹1¤ß¶óJÁž»í¦gê»tu;ë33^jp8Z¨?!«×[çj¥µù·y—ôocƒ{˜³aúÅbgÅ!”4ÁZv/q$›üO¡ùt»>`\T$—Ì Y\O¿A¬p-‡˜È÷lÉÕ –1abD›4Õ/Xß/Ü M,EFób­ˆ>òoº1•"ÊH6ÍÀrO•V×lÐ% À«Ó<¾>v–Ö$4@ b£“J"’öÔ§Ýèô@eÓôò¥¹¿Äá¢ýEŽ·gÊ„¹ý­¹’S7ôJ×uÙ£á’üÛá\þaÈyä¶¡v.3úû=|óx 1_”:ÿêjžD}œ0 ²‡äQ^å=^Fýd{NÏàí¹ßÆÕšü²0“RâL.‹—ŸxíÝ›ây…rß‹"ºá_Óô±ÇôËGBíÕL“ÇØ§N|0¤f`! a<":¥òùÎwúR)n3p9xz¦ Í8‰«1þã[ƒ×õ¦®®þèªÝ5^,?Öž‰áøˆËRGæ&‚¥”ÓÁцí=ü ª’œ,w­5&„ÿŒ‘zek{­Ÿsà礛E2Öû‚xÆÂ¡±§j¥!ë¢xWõdx¹ñ êì0( ¿?öÑŒžˆÒ›ûߘd?•÷3n<|mvNÉ33já±ThLB*Pwv!róò0TÄ@×_Ž]¼›”ñò‘)@í2ø™ÊYm"“Š;S¯Û·÷¤Œäëzl“Ó´–¸ªNÈä'ôé’à×Þ%Y®® È2~B™÷O2!±d&Zl´@òHi‡­Æ%ðÙuŠû>Öç2WÅ”’_•rðŽÍÏ÷õ{¨k2Ÿ-7 ¶:F’\X¶Fÿà°[eT> Ø‹Å÷îÌuÿ ÂåúÜ&ٽ檂H¥'N\Á]éÞY+M4¯ö[GO¶,ÇÜ ý…Á/°o’5•D-(ì<®'úÎÿºo" çg2n!曃Ðê ãÕϟLJ^ ¾€=%-Ý6Æ«@6qç†tôÏ—CÓ!¯ˆ˜q¢¸Ë¿[?Mˆ¤—΢‚hÉ{ ¾”H8’½ég-ÍÕ[Î;•‘«ë£Ë s¤vê­ÞÚ*D,$8@i:F¢ÊçưÈßï²u§0š¼HáˆÑPŸf-óa=½:÷{¼¢<ésâ^{)NúÚ ÕÖZÀyÒØÆŒ}=¾ÕÄvÍöz`•¸6c•ÆçÑÅ 2Ѻ¯ˆÇ o)†p0YbÜ9bßÄ:;êz”ÊŠCv“ø·br÷l¼&‰û,Yyœ§zÓ²[!VßE~ÎW¨ŸGž9Ô"¨LíÞ‡")±CY–¨à½I¾eÆIãQ5×4Ôˆy—Mø¨ê‚e µ!;tOí3žÚôÁ¶wÁ¿ê ¿á}u‹-[QÌJ“PÞ„H˜»EÕSð†»²‘ø«‚åi*ŸžuTš*¡]ËM–Á¼€sO~+»›Ãà îyßL Â..ö©9¨rØ' xÇÎ^Lð40$‹¼õI¯à·MÓéšpÛ³'¢ŸoWêú »Êœ=²ž×¼¨Ï¤¥è5! {Žº?U­B·à .»5Ïôÿ€ñËtõLÅÓ‘ò¹º9ÞW„>6'6ª9O…¿ZWafG+,ŒsßÔÎN×ë­Aê¦æÆiÑÂÉNû*qãhM ¦ÚIRbõéìVªØmHa'áñ‘47³d²èá¯_Y´]±N¬8œùÛ×ýLçªß.gmîbµ†Qñ½«Š>Î8|r³¯ˆ{”ö3\båò3ºFeïLmyE Cù¯cσLÑNªƒ[ øÊ½:B/Âý†¢j×=*%‚îµÅ®Ùdܳ’É$8ô„šÙ"ÿ‰*ýžwäº?òOX²ž/òïmEßôr|ìbdî‹\O{svtÕÅ€çàÃX…)”öC‰v#­f¬4¥Éd:³·ÿ©vÛ9ˆïAÁ'ߟ Þ:Ì iö¡+DÿeÿM=‹Ìntpæ“=ùÃIóÜ´¥±!=<ÿŒN}~¥Àˆ«ÜAÄüce*,­Jí|ÖJàqý}áðpïIÃx³·¡h3Á_®„«£(ûÃåN ÙŠ_n÷o6^.m•Bç2z˜IG+¼Þ/Ή—ê-L}*|éÍ“3ä¾ …~‹ú…ý~ÄPÚ5,— lÛ´P…ÿ8•Òë±\ä`´ª|'rèËíÖC<t˲}Ác×ûÚJ©n-Ù)Ð.eå?&ÿªŠÃhAXYN½×ÀÇžùú“G›ÉJçÞÖ‰ùæ'õ}Ž™/Lö9tØ´­7¡J ñ.ßf­¤Ø‰fÚÓv2öíµÏÛ¬ÚЕ·f¿rÏ]Øž›ƒü:‰L¯jÇÆV>&»zÏE V8$M•`SÂÁFÅxœ”LEh¬dƒA —ïFã¹)”ZP¡ê|ÈM(i”üBÛd(Ξø’ÓÉ,.Ÿ÷\Û”`ßÁÑÇp.G"‚F*f÷Ü6ù,´Ï–ó– }Ø0XkÔ~çÛC¹û¥%÷XQ 뽘fT±¾ë÷B…ɳI nbic¥µ·¢‹Ñµ¬ý‚ðéª „_ÄÒ™ØÓƯìÒTI–%H¾ª@+ÔFp9 Ñ»^=¥T4Ô0²Óð®Æ³Ýàt/§¿ï;SÇìim¯Còz–÷8sçt;»ÿió«; endstream endobj 106 0 obj << /Type /FontDescriptor /FontName /FNCZGX+CMSS10 /Flags 4 /FontBBox [-61 -250 999 759] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 78 /XHeight 444 /CharSet (/A/C/D/E/F/G/H/I/L/O/P/Q/R/S/T/U/a/b/c/d/e/endash/equal/f/ff/fi/fl/g/h/hyphen/i/j/k/l/m/n/o/one/p/percent/period/q/quotedblright/r/s/slash/t/three/two/u/v/w/x/z) /FontFile 105 0 R >> endobj 107 0 obj << /Length1 904 /Length2 2170 /Length3 0 /Length 2762 /Filter /FlateDecode >> stream xÚ­’y<Ô{ÇG%,¡H~ÉV2 “ìK#»¬³üŒß˜E³ÙEW)¤D·(t³æQ¶¤lÙ—âf+•[‘…Ñ3ê¹÷ötÿ}^¿~ïs>ßóý|Ï9ª»œ\´ÌÈL"hÍdp´0HÌ~ÀÂÁÅÅÀ ÑpUU Hà@L†%î080ãRm4€Ñ߯£»£ W,˜!á,ˆÄ4,ö¬‰ô3:È‚Hà@àtA ¸0IÈ Gf4à¼v‚ 8ƒlÅÉH8! ‚ˆG­²e2ýïa27äÏd±¦ É=€À"™É …d0Žrd îNþ¦~.n괄 ôµòkMúGš@‡háÿ0é!\ȘdÅøYê~÷æ’!.ýç¬-‡@ƒHf ÐßCÛ ÉN‡hlð[d6!èÛ7 (/+sû#šßçù-çD€×𿪮‰¿1æot‡…Þh$ߟ¾?ÝeÅ 1ÉC°X=€ÀbÂá‚͈ă †`˜À0 É`rGAO¢@& ¾6NÁLP„µÐwÂ(Ò_„Aë(ʨ  ‚~@,€‚~@Eû1Ú*ä/ÔÕ`ôLò Aõ£?  :ëœàü€ŸÜoøÏV››3Ã"µô°€–6Vðv´ž6 ¯‡‰þ!‰Ëb η5 ìO„ãÁ0d’ OP3«NÆXå=,Þ+dN©Nu¼Õ0P/?œ&D»ÞyèèÞgžKÅÙÒâ““J¡+ ìä»Q‡{¬?ÄM½øxu’0™Q«àù1Û!üuˆòbüÔ–ºªßç§±Bøþg]…^ù.ÿ»uꪓ†¥ë"OwÁ½y·/ÐÓ÷´Î¦¹%&T¨éìr–¸x´0I7q,T"#}ÃX_| 5Q´FóÉ,ó.Wj)O4÷ܪÏüÛ~So9Ûã¼/爜³ŒLíè¨Q®Ša»,%ÝH?^|Z?WVjÜÎ<ðätŠ])®5[ÍFz)¼É/¡ä|›|-¸Ðhg'ßç]¦^° ñ/ÖÁ>ª,ÁÓ"‰³ý×Ý\¡jÍÕUrÕÆ‡33†³2¦ó¢úzDZ×fÐÎþé2:²e÷Îy޳³ß¦NXRŸ·U „54™¨IÃe§ÅKßuFE^0Iin-ÿl,fF  å¯»¥¹pcqZs³¥jòí¾ì‘Y=„V1·í­°­r𘖘f á®oÉ{SfxIŠ"GÞ„ébla¯sÝ9î«2@½¹rw2Ц:ôÔã_‹^V{Po"TwËVÛÆ›×/äWŒ‡ÈÊTñ“œgvÆ5”mhßÜ3 l›Óq']l÷—*z´ÏmTÒé}ÉÕîõüýa'fÒS̳bõÇü|}‚ s±¡2ŽùƆªÕfË·p¤cÍ"ÖÅž[•ÏÒ<åSÿ[©Ò0­9vÓ>ÿZ•Ø;¸…áÕK‹gnÔ=’Û“q€hsA©%¾1@Ö-×ç€";a›0Àö9Ô7QšúiôœÝuöQsQî)§FVÒ×BÐ9Q0&ŽÂ›NºÕqˆª±ÑÝà°\t’ÛÞðEßf_×r®±ºróÔpôΨ­î’“Š—)D"ëfši¡Ê‚e©ã~dÂ;‡rܦŠÈëćå5ÇÚŒ÷öF̳JÏ4ÎÉKzQ™BZÿj$ß¶Ê»ãý[‘nÌv zÄoW_wÓÓiµ\vÛ\]õŽ?ä 2äMÅüjBVFÓ<*,dXÖzrÜ©|þ’y&¶žøðºXæ¦2Tf“•®XÌùz"ë˜YQÌ™ÎÉÑ8YI±0ð#e|b>hÙ¸gb¤ÌŒb1²}!žW½ °ÞÜ}öͤ[-uºõ`vQS¯ß­ 6^’£É¢n%ý¯˜™¬]`˜wkUmÛÍS!»ï„Ÿ$9ÌYw>E LϘHœú­ÆÒ]g󜑧!ÇV *ŠYi®0Þa ¿L*¾úI¸0LþVˆ¥ ¿s¬‡>Ÿ£âA‹ y 2ýÖ¾i‹ìQã&X^)Çæ±êyÞ™‹ƒoÊdT;¤ý¡7[·ïÚÐÆÙ‚ã§(çÏyÓ÷>l¦Ž+Ö¦DöÕ,‰ÙR3AâKé ä1áAýcýuWJ„óÜM§—–äÐŽ@-ïÚz[aÊŽÁÄO:¥T¨A&Ëüùoñûj¯¥¤·=ßwS1àÖ—)®—KöÌœf®^¬²) ×µ/¢’5ì¼Ñþyl ‘•¿õ¬O—woÝ(´'s, ÜÐàëŠ=Vyv®æ¬qg£WÆ}Öaêeq2ÂÉTÄþ}î}›ÉØD¥ Éþ~LµWt³q𠹓'fÚ÷ê ^‘ΩÚn–¦÷¾m?’¬œxñ½óc’RÙ¸ù6m…¨/†Ñ‘O“%:æq{¦ ˆ`DÜ=­?®Áo‘¼û$E¦§.4ÁzÇ뺪Ž;EMe'*„?Qì$ˆ,(=áΪÏçBâéç&ó—Vqå¢]%S+c ­åÃÌëçÅ›3òa¢F)Q¢åýL†˜hi7{]ËsÞêÇûÝ-ù7Ê”³¸qcØ¡NÛõ>iLfÏæ2Ó³°Í—gNË|àJvÒ»ëG£¯Šy-Ò76­ž^^8½+æÜ¥»Ý:8œÞr rdÌoüÀèa*Ú?ÐÓ»;)ÞËß'ëÍQK\ endstream endobj 108 0 obj << /Type /FontDescriptor /FontName /YSEBLZ+CMSS8 /Flags 4 /FontBBox [-65 -250 1062 761] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 87 /XHeight 444 /CharSet (/a/c/g/h/i/l/p/period/q/r/t/u) /FontFile 107 0 R >> endobj 109 0 obj << /Length1 925 /Length2 2724 /Length3 0 /Length 3326 /Filter /FlateDecode >> stream xÚ­’y8”mƳk,ƒd‹<²„2‹}­ìû¾f«af3Œ±%”}©Èš²K²„$4Šˆ„¯5kê-kdkù¦úÞ×ñ½ï¿ßñüóü®û¼Ïë<®ë±°–ÑDÜ@=ž$ƒ„!UmSkk-$@Âqqm"ˆ"a x T**H@3À¥ž+ªÊË©"!â€6Á7„ˆõÄIm©Ÿ"%@Ó$bÝQxÀE€>Tw°&¸cAR ÐÄ᫟7ü+Ð$‚h‰ÐXwàzbñøÏL†x ô»Œðýë($úSC’ÔR5"š€Ç…hÐ7#P{Ô$ÿPÿ4× ÀáÌP>?íÿ;§)P>X\È5ßHL hˆÿ§ÔüO‹€ûW#C ‡u×Ä{â@ñ»„õ×Ãh ,Éx pþà¯:ˆGÿ3up¿À-´í ´ìOý½Ó_Ç(,ždâû·ñOý/F0uBDl0à„€!Hªúýõçòvºxw‹§> EE$¢B Ô×A%  `ñh0ƒ©™á0¹ ŸÆ…?ø6œZ}+º5ØÌPm²€T*â_I¤/ù¶îÑ;;Îr -úg&Ä%¿É$´›ŸIéÙ[Ö'ÆK^ñ:ßÞ:ò}œ¿mjÐ{’-[%)ß”n8[ãëaä$¦Œ+ÔÅŒ…ý¹Xèû]»º<³j|Y>7pÎ2}slD‡’ün-eže«s8#¦µJ¯_üÞåá’¼žiéê¸mñ²h…¹ä˜—¼øŸ @–DvžÌ–Éò€N¨¸ ÅÎaÄ-ª9§{z"‹5ƒRœ`›—ï•tÇßË»ò¨ðÄÅ'kâÌ™«bÈMk¦“=M=î.¬/õ²<Ïÿ «É8YK ñõ®ÐÜgt2ÏRîešòy'µÑ1~B|{ÔèÚó,,ò¾Óå'}ÛqGT{Àûµ <}ðËýä8ç~Žû{{ ãNZ·üm^Ú¯âUYÑáOU5U§ù˜íé¸yiD¬RµB%erDFÁû/#9.m“È«E¦=2µbÝê6¬Ð\Ž(·®®Wƒç[ŠÏJæ¿ÌT ®ÃõÅé|Í^g,IãDãq&x+Hy™_.&E¶ãŒºògdñBö…šH&òÎYhßUkP2*]òÁñD ŦÞyÙkbâ±Ø{Z¼’‘3©Ý‡òMÑYÏŸ±"Û²Áhi¦cüy£™÷‹ö`Ó×Úôˆ²¸n™CõH†š;ùb±ï÷6Í•vÎÙ0?PKº¨,ÐÿHêm›ûߦ³„.óÎb[¬ÿçH.ÌÝãøãÇãÁªOšEA¹/_¥;ö0dœ$±z7 n2ìbŒ·bNÛ•ê]åÕyšmn&_p†« ÉåE’Aé}¥›Þ¶°“1§?Ífê+e±©Ú{…çêúÛ•i”€"g4¢iXúP+¬»ìÄm‘“üô&Ó³þBl«(£KBß±²ËʤÒÒ%z·MÑZ^¡[ÉB[‡Öê]赤߿Ϋú'nK1[.;ϲ{¦=¨o´%~6¢sIýAß®°x¢ŠUc.ýعr?²šŸÙž¥c.€7Ͷ>­W³ŽR²šC#¹Å;”Ún0ÜÙw9ÂmP1:I®f™X¥aíßx,QŠö‘|ür„h ÆÞêxmªHêíoFé`Ï #Üô„e§~¤mèëP¹d'lÉ6a¸@ž«&”;!MÞj$û8B2ªq¼ûg2>°m±7l‘m½*_WíŸޤ§tÐ ÷Þ~ûªÛÈœ§sÑŠ‚½/ú"àãèù·QáEñþïøñûAl³ÇÊÓO—ônz,ï=ô»á©Ì‚>á̵˜{)ÅÞßÂ6_ä.”"îj¹@ùÀc.ÍÇü>Ô>_íT´‰§¿HåÌÊ;Õ³9#ƒ:Ñ7?C/ø­Ó{m ‡i­¥ì¹“t;ºiDO]ŽÓ&¬úz~Ú=ƒyZ¶#ÿˆ˜b®Û¨öZ ÁÔtØRxh5f ù1‡ƒ¢}ìj^ïð†^c`Ž:óÔnJ|”\*Ï€àÂ8b䘦ä&¯l“¬®Û_l‚¡"$5QÊô¬îÝ[߈ú„S™Rú»Ù\/®‰eÒ!óND6|ˆz]8Ã+q䬭ˆDé˜[Ów#y툘Pü—:9Á^·ÞèœU‹ÏýCì'j.°³Ó+éÉk nZ^GÉÇ»f¤1^yÞ;Jãsb¼bâÉq¾AåQK8.9íhŒ~_q|Ò•SÀ—5oóÇÍGbJËéŸZ§ÒKõ·J…( Áš»éS2¶äJøPj힤v„çN®-Œ!?¿Ó»°tWp¢eA¿qVßX¬Š«]ñe›á*t°*æéëÊôûºôÆÕs¸~?tüÁSa'ºð¹ÁdÏTÆÞqc‹C±ÒZîH;¡4O'|D½i“Ø nuª.†­V­ŠÕûÍ‹cÙ|–ý ßôôL´ÓãÕc¢¯ÑÆ¿¬W»P±>ìÌÏ#§N÷e£’t2†{ú£a’Á“.$>̦š„®sðjãSNì(PÛ¬ J=d=§K{%›mÒWÐU€¶çš¶á®®Ã5Ü(uy®‡|Tn-ÕP 7qHßÙ÷vÞë”Øú”»¨Ë×0¼Xêð»$ïm Lç}™"§ÐÓ1»ø¯£ÜÉÉy’n]R–3OžÝ5£××m1é8’PÌ~“qà‡¼üª+žô9Íq/m¹s±ï/B-rÉQ=¤ÊïêÚ¼f7*Å/ûO⟂åf aP«…ë-¼·às£½„MkÆ×pJâV©n°NÎ¥TUe õªÐÁL5CÛéâ!ø ¦å³W¹4CK`éA’Â$VµLàiô|ðàd¡¥PŠºÇFö8$WÛâ–ú6Œ]«›ý½á¢ýš|È1úÑYccŽ#÷RŠåûN ©ú0I¯YŒ@½Úç,ë·ß^iWï!°j.¤iäV›ªÓ’ –E[%Tn·NÎùÜ¥Ø&êOSO7Ö³dßý²úú>íüT[FàÍíÔ¨õø(“Z·¯>ó¦'ŽWþÌÊù´‡oÖärH‘!ßFɼ±ß´ŽTŽ~T}‹¥YŒ9ÉØap1àÁ¹Ùȵ¦SqPçl»3šák¢cºxÑh;{¿EVevæÒnqËÛ臟.)8!gº*r——rŬ{1'ü]ìFÒæì§+­Žïì0×®²™Æ-Aíù l=o4r îÔÄÙ®p2 Uy“oþÀ­“Ûœ|õ[Ìãy2$_@ËDžou¶¹<)/,i»VNëñ=;ëÎbcëº=y8¨=2d‡~¸¯óþÓëyª¨í8+åKØô5)6k\Qxždò(ÄˉÌÞë6Æ•1¶m•߬Vúá!ûÚöÕPÖ6†Œ¤™2“o}ÝÅ6æŸòÍ„R¤½ c+̧þ§?ª]ñèǰTçyõý¡ïêÒ&Ï^ánP4ʱµuÄ/̉Õ{6, Æœ’™c×åìõc}Ç¿%s¦Meæ ɯÜ;"î¥tùyÝ´— & ¶h*y:Öm|Á-\¥lÓùóÊîMòž|R’_ê06S#‘›Ø-ájp}oh¬šGˆ&vÎ:pÃW—r#±š.ûòFN·ÄbÜŒ¹Dañ°Dª)¥¶Oœ­X5îPM€‹×¼3 s†Ð<rýáÛg™ endstream endobj 110 0 obj << /Type /FontDescriptor /FontName /PCVHBW+CMSSBX10 /Flags 4 /FontBBox [-71 -250 1099 780] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 136 /XHeight 458 /CharSet (/A/C/D/E/F/H/I/L/O/P/Q/S/T/U) /FontFile 109 0 R >> endobj 111 0 obj << /Length1 977 /Length2 2795 /Length3 0 /Length 3418 /Filter /FlateDecode >> stream xÚ­“yÊRCcæb˜…Yk(JŠD–ٕʾSÈÒ"k„ ¥„*[‘ßT¿ç©_Ï¿¿×ýç¾Ïç|ÏùÜs¾*c…é¨. •€¡à(ÀÀƒ1E! B h ŽA¤R q P@ik£}¦ ÂÑ5uTÕtT5!PÀ€êåG#º¹3€} ß“4}2H#âqÀÇpÉœx ÀPñDáôI$Àæû :`ÒAšH€CP(€@Ä3ÐH ¾[2¥¸RÍŸaÓëoɤÑ9¦€}“ Ç"J!ùЂ° rz'ÿS7b’H8ò÷ò?Çô¯™Hòûo •ìÅd€4ÀœJi”?SíÀŸîÌA‘IþS5eàHD¼>Å0”ÊÏ ‘nDd+"ï¸âHtðG¤þ´Á™Ý; 4F_éï­þP­pD ÃÖÏ ¿Ò0êsfD#²€H8‰â$rž¿ß°tCSðT‘¹êŽFÃùA8÷ƒCê@ R YË8…Êà8s \©4È÷¥j¨ý¤ ~‘€0ü‡49šù/âh¿H@XþCœm#p¿ˆ£áÿ! ¿¡€pÿ 9vˆ¿!§ é7ä”"ÿBÎf^¿¡€`ü†Ì_¨‚~?ðßÛ:|˜Ê €qlÃTÔ9ÃCr>US];èñL ¤0~ü œÿÍ®DÎAˆ‡ öSñºg=+" ‚ÑY]7yè’ÉygŸ4„—%ë§_énë£UvÚ‚R…Ã…=ˆ·¶&̽ ¸ªŠUè¶`áÏ…Ûv(ܸ†ù‹Ÿ>éÄÕžÞÚ$D¾91(=îU©Ä’]ñià¹k6‰ÒÌ›¹À]0пö)ØótÇè Aöm›^kv<þ~äòã/Œ©YÔÁœö]'¯-lÿ6(Öô²Çó…@²vTºù¦gÉz«›Q/Ü ¶`- ˜‡!óÐr£ ÔËæ# »±u—™º³3±è¾–ÒÔ•ˆ¬¾®ÆGÍVa7W}_]`T«É0k(-£÷ŒÅ2+|é%9•2Ëž¸ ðJ64<£=äê[RßÑì‘jóDoòd߉!7·xÑ àÒжüÓqÍšP‰ÓÌÍš’>™‡SÙ š{Њ—4ð$wljŦ`–¶ÑÑÒóò89w¦Û‚ñؘ§Eуֺv^ÜC…Í¡\47ÅΆÌ)¼umØlù ÉR¯õ¿c:NaÜ(hÁóH©¹{9±‚ (Î+,züvqö]þ+‚à»»µ!jÜ<@.·½æõ1q º¶ï`óg€|Ò£G¥å8¿×L¶ƒÿ€ç> %Þuäqeë^lG¥^V€¨†NÑÆ°Å±]ÑñÛÚtÖ½¾ˆÍS×= uN6ö\c<Ús4*ã•î×eiåtÞšR‰@‚ÓÕ©G‚¯†¢Óz“‹g}ƒD,[&å—ÉFV©§?0/]qG«d–æÄµÚLϺ†‡\ 韒˓؛{´8"0Šïª™ý%? µ‚×ðý»§èí½¼øS“s¸DIŸm§œ1v(óÛÕÓÃç¶bG†l£½T”üD¨þ÷ “Ù¡áu!ºÕˆ´¢úÔuöíê¯pÓ&ÎÄ̵¤M„rN˜ñ ümy|{Á›‡¯çËÉïñcíù¦³©åÙ¼±Ck\{î ìcH [¥‡v Nr…à .¾©XÍÍß¿ásõÁ#]ù«¾!»3‚Ô&'Ì›œÈÐJòâ\ßÛk Õ•NJÝ{s`ÐÍF»Oƪ]ÚXÊn¹-ÍzÉŸ$Ó%Ï>À[P}*ŽàqÊÉ}ìÆœ)ÛªvÌŠ +‡è S_¬F‚7¼×;ÉnÏïSQžxÓ™Eöäpª(-E<ìEÖSI*iUJœ[[ƒZÚô@Ð×ø¹Ò‚ë9yY²:Õ×íUØzå›!ÖZg:ß8ˈÖɪlizþ„Û®–ë<ÓCAó°G™,.•ªÅzö¹Iäü5…‰Ó.ÇŒå·Òxzt]0Ë—«krÓv3á«Íã¼Ïw(FÌÇòä vj4{.—¤ÔóÕ=P–vÎK§+¤xv² ”(/oU7ïý2†µwë>£Ýß¾Û+a5Viç'­i6Ôw-^_Û9dK !Qùˆ1l:pËý@Le£°‚®OÝÊÁ†E§^Õ¹Z<¶*_,'ÔÌEuI„Œ®µÅÄÑÁœóIŽá탣†·¯‹?’7Máš‘}{Ì\oå™XÿîÏÓÍ—„Z£Ï |¨2ä}½›eëš”%ØWs zcvDŠïe/…Á']©–še§Û(;W–çÁº+öĶ ‘zéÃóñÉçU¬®æo‡OT rO¿ êœP2Ë3ó–~Z³¹êö1»o]{„W¸¦3~·d:3ÿfÎ1»hãk|ëÑxµaîmeé‹ú…V¦”žˆFcí„ß¡_0`'ϽWzÖkùê®á닱gM_pÛíûG>Êp³lòç4wtOÇL¹’$°ûcLù ]lKú¹—C£Šw…!ëè;}e·’k»d_?Çǃúë(ÞÍ»lž5ÐvWx{"&ejtD¶ïÖ·ŒŽþ/Ýû'öïÔùR—¸¸ßâh€ƒYUûá›åû!¶Ë+ÐÏ¡îÙÜŸ:‚«}$ Ðp¦\ZtÏHŒ:«6¬mnË5E<ÙÔa8°Yrÿ.:Ãæ[¿‡²hN}.ÿ–ŠŒ2)p°žÐ½¨·!¦Å>”T“¨†íJô¾|"W>&ÿ¾@z·£q¯¥kÌ»;ø ñ¸¨–¤ñÖ”gQ¬T¥$/:¾NjÞ)yäS–j«Jîý,Kì!y=Oç6éñõJM;G¡ÛùZt¢ïJÝõÞ_°¯b¹4.7\B¹ÿÙü7Ô¸‘µúÃóYÞcä5sÅäªÏ„Ìo/²ÚiÛX^Í–I±í¹NHæfFŽ…œìÄy„CpvqËC š·»½E·ö¨Z>R½¢ÛŠ-;iï<‹Æáœ#$³›‚^æµÉ ½¡¹¾ë!Fu!ÖÈ•íÁ­—•ʺô7éà**ÉÐ~+–¬äØ…Ò™EvÄë°=tt¹Ðç7Â9(£n²;Óp&hå¶m(£¬ŽIíØ>Ü7.`¾¡ðÁÍÊ[Ô‡Š¦žÞ®%[6î}%Vbõ)íÁfA˜™ü‰Õk“ ‡º®«ÌŒ‡‹Ñ -:[`*{cç\5Ëqn‰y×rXÄò8§ð6TUºP=v]5;¤%ä_«QÈͳT0Qã8Òl-"±jû—Þ½rÿ‰d2†áoÈà¿WfÑýÐB’-_jqð™­Ð r£Öš±^^]jÆ iìð׉ÀDËü­öÍÐŽÚ)5sëËÂôhWW€7¶)É…|ìq =ewõSMÇ“ægáÙIçVV\¼rÜú>ž~:³jÉuÚ#4–§­Ý‘ÑåG;'G’–afIKÔÃË•³vªÜ‘¢^‰Ÿ¯ú»ªdÔÜLäs1±º| §£ÆeLn-•‡Œi+øz­–ìÄ,RùÆ¥46s_:®[U𣠵’xð[ýÚq™‚Y™6uÂh)3ž]Ñ~M0à–I-tF÷+ÅÑ×þ.;ù­=ÅñõrèÒ@ì\¤з^uèºâš‹òñ;pŒ ÓÒ–ðQr34rÄ6.ÞbÖÈ….ŒlDíÙî“1ðHšŽ3§^ʧ—=Xh;š®àûª>äeæ}¾â×Jb'Ù&»ÔÛm.V(LîHƒ¼R)K²Í•YÌQÌÿôlĉᛦþñftÀ¥Sû;æ6(MÕ¯ôÞPy×^|ÌæB÷Ò˘–âôë‚YØ€ø’…·dÏ{›²ZM$âêšöñc7lŒ”b»žeˆgïPÜð(GE=÷}QÖ›#qªIrW ôÎ%QÝï9ìÓìñVBÌ¿%Nçíá(ƒD¿A¸ý”˜ù,‰™:¨ÎŠL¨“µm;oñ¸)Ø*€1¾Ï6ɹÝE¼K»ÐƒæÓ•»K¹?yyA•'’›|B³ÕÚ[ZÈî]ðm-V]¶¨óþ™6û[Syðfà[ÉpDµõâhlËÁ Èôyc^·‡F‘æŸÈ^ï$8zo™§$¦Ç}¿z=Ãî¯Z›¦=Y%”S‰ÿúçÅ ¯gèÐj ¢¢¯2…{m¸KÐÁÏ—@Ê«þ4d®Ú endstream endobj 112 0 obj << /Type /FontDescriptor /FontName /HWNESA+CMSSI10 /Flags 4 /FontBBox [-97 -250 1077 759] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle -12 /StemV 80 /XHeight 444 /CharSet (/A/C/D/M/N/O/a/c/d/h/i/l/m/p/t/u/y) /FontFile 111 0 R >> endobj 113 0 obj << /Length1 755 /Length2 716 /Length3 0 /Length 1241 /Filter /FlateDecode >> stream xÚ­’kPW†½T(‹Z/ÅÈm<ˆHvÁo„ "á­"b»fO’…ÍnÜlh"‚X±jĶ^* ¥"¢[;"mEж´•R£C´xCj[Ð:(vA§ø·³ö;ï{¾óœ÷;BŸxU œ`ÖÂH†æ1 ±ª$ ˜E„B qŽdèÅ8C&“a@nÒLPih*‘"B ` –Ôê80K1{Ð$r=dI5NƒXœÓA=ßCS@ŨIÈYD@NQ qp‡$B#dÓ!!B0 ¤šk¡–¤ñ Q4­a€ôù2a2¼”Ò!kä¡À,r6à †¦,€€D¬dø³ Oò@ oi¢(%®l?”Òk:®')Ë £7˜8È‚X†€,=ܺ>‡‹…iÒW£9œ"ÕrZKAˆÍ¡Á’çiŒ$͈'9µhpʇÖ!M Gáã/ˆ^•´ÂÿÅ\‡Äxœ¤¹eè+÷P½ªù”XÒ ’QŠb¼‘ÿ^þ¥ ;,‚V3IkA$à,‹[þñ•d`€¤ hÐÌ‹E4Ãñ[M&Ð0,28Ö` Æ|T¤1ŸŠnPD^¿Mx8cÎ ’@YßÃB€T*ÉüQmbYHsC†Ïäe­!ù!4C5boeÔórR÷þèXVÄá¦ãcÄ.*îÙϯ´eD¦JR˜à£åJ:‹Û+ójiÍS—¨çí™ÌžrÏUî\ÓûÅäòJëç¥+ó³%Õ¢+*e³u︿ÎèÚuïî?¸¥Ý3´š½y`»o€½×wcÃØB¢#|Õás­®“æ$~> endobj 115 0 obj << /Length1 751 /Length2 733 /Length3 0 /Length 1257 /Filter /FlateDecode >> stream xÚSU ÖuLÉOJuËÏ+Ñ5Ô3´Rpö Ž4S0Ô3àRUu.JM,ÉÌÏsI,IµR0´´4Tp,MW04U00·22´26áRUpÎ/¨,ÊLÏ(QÐpÖ)2WpÌM-ÊLNÌSðM,ÉHÍš‘œ˜£œŸœ™ZR©§à˜“£ÒQ¬”ZœZT–š¢Çeh¨’™\¢”šž™Ç¥rg^Z¾‚9D8¥´&U–ZT t”‚Бš @'¦äçåT*¤¤¦qéûåíJº„ŽB7Ü­4'Ç/1d<(0¤s3s*¡ òs JKR‹|óSR‹òЕ†§BÜæ›š’Yš‹.ëY’˜“™ì˜—ž“ª kh¢g`l ‘È,vˬHM È,IÎPHKÌ)N‹§æ¥ ;z`‡è»‡ú‡‡xkCb,˜™WRYª`€P æ"øÀ0*ʬPˆ6Ð300*B+Í.×¼äü”̼t#S3…Ä¢¢ÄJ. QF¦¦ Õ† ™y)© ©@ëëåå—µ(C¦V!-¿ˆ ©Æ ú‰ÅÀÊ,ÎÆIH’ Ó3NNùÕº& º–& †ÆF– æfµ(ê’K‹ŠRóJÀ©"0~Z&0SS+R“¹n^ËO¶nÉš¾­meëâ «Xõ9žXûò&ûˆu³3SjƒMç*¦—,yµðÑÖ¾ÃâÙ%¼’­§ m‘ìõë‰û²HxÍÖ®Ë"&4˜î×»,^ÙÜ5÷Ÿ¶ú+ÏÃ…a3æ´>’¶Ú_ôxV§²ÎÍ/Êõ'x楼pŠZ¼ïû½kÜBZA“´”¤Ìo®`¿Ë(&^y÷ùÕ?ÒŠœÍó¢ƒîoOˆ­^~Æôšç·×©ÒÍå&»x,o÷:e©„Ø} š§;y¢êVÑ’¦Œ¾ ®‡Tô½~ùxÌÃ4±ülÊôWg%ä?.‰’òqp>$oWö>ÚhâJÇ;õûǺ' D¨G2O^ý»kÉÅ$[ñĬ÷e C6¨W¿P,Ô~¾Ù¸õù¸~ゟ;þͳùü€¡ºg¾îd•«xÔÞŸóæMPÄ‘:o£àþ)]ØŠ^õ¤U‹j”n:uÄ{2wG×Ù¹Þ¡iªN…Ê“Ún艜Zý\=kãÌGNs|¬« d |ý˜Óິ¡íâó ë‚_l{Ý·®^Ñx¥BY÷Zìž‹¯gqxœT÷ÝþDþ³”5oî\kÈù;YûÞC¦s”¾(ÏTòü£TüyNäºïÑ AU+‹Ke ûª½—Úµ=\qºŸ_PòÜ•z2ÖZù[ƒN5û§8?Hê½y.ó¥î‚;Ö¬7süÅU/¨Öû£Á.ÃêÌ™{'¿lî>W×¶`OO<3à ‘Ê¥õwlKUßQ_Y~X*äA@N®ñë“L-RÛw\>±ö©e%ëû=;³žl­5è=Ï_²Ò°üÓÝÏiNK,LnG ÙürÐó^˜·åPÕ'™i“õX·Ïùhêÿ--ãX€Í²¿ +¥z3±Zß endstream endobj 116 0 obj << /Type /FontDescriptor /FontName /GUOWTK+CMSY6 /Flags 4 /FontBBox [-4 -948 1329 786] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 93 /XHeight 431 /CharSet (/asteriskmath) /FontFile 115 0 R >> endobj 117 0 obj << /Length1 1259 /Length2 8406 /Length3 0 /Length 9162 /Filter /FlateDecode >> stream xÚ­—eXÍ–pq·àÎÁÝÝÝ5¸ûî.ÁàÁ-¸Kpw ,¸»Ûpß™¹Éwçï÷tÿèUµkתÝU}žCIª¢Æ(jî` ”r°wedebåˆ+ªË²²X™XXÄ()Å&® { W €•—— 4}x¿ù8¹øX¹(âŽ^Î K+W8í¿‚¸¢v@g™‰=@ÑÄÕ h÷žÃÌÄ æ`ºz1DmmªÿáPºÝæL¬¬s™+Àh ²G`þ—“¬½…€û¿›ÍÝÿ·Ëèìò. ùG“ð.iî`oë0Z 0+9¼Ï|wùÿ¡õŸÉ¥Ülm•Lìþ•þŸJýŸ~;­×ÿD8Ø9º¹Šæ@gûÿ Õþ·œ"Ðäf÷Ÿ½²®&¶ 3Q{K[ €‘•ƒ‰…ã¿ÛA.R O ¹ ÈÕÌ `abëü§hoþŸ&ïõûǃYC壂Ž(ýÿ¼Ú:UL@ö®ê^Ž@ËŸè˜õ¿Éä Ðcy¯2ë{àûõ¿Oÿ1™¤½™ƒ9ÈÞÀÆÉ0qv6ñBxßDïÄ ða€ìÍž ç»13“½ƒëûÀ{eüÎÿz¯\Üfñ5ýCÜ,f©?Ä `–þC<f¥?Ä `Vþ7ñ°˜Uÿ;€Yíq¾×áq˜5ÿMïƒÙä½ç4û7qp¼“ƒÝŸ~V–w=ó¿ðÝøßÉÂâ¾+Y€þœÿB7ç¿F¿[Zþ…ïÓYý…ïÖ ¿ð]Ôæ/|¯…í_ø.n÷—È»¦ý_ø.æð¾›8þYå{=߆Ã_ëb}7sú ßÍþòf}7sù ߸þYæûÔ®Ïö.îö¾‹»ÿU£÷pÏðÿî`11OFV.v#Û{Úw ./¯ßÿiææì ´wýç3ñ~þ—-@ïgôš!,-8˜ñ‡X§4†•úKæO•AÓº¦‡Œu†Ö§ñ3­ñ£Ï97Mª‰/?„~°•£%ŸÈW2›[pnà5Šúú¨1‡þü0ˆŒI›—®{fv¤o1”3Ѓj—¹·D²íØD¶L~³îÞ ]¥pÀÊý ï$ ªtqáåÊß&`|c 1Õœ|'Á §M! ¨¹¿?úx,íï°T8„£Ÿ~ƒñº„׳:có 97:Gr>Mðž…ÖÓbs5ÆdI;›Wæ­º~•”iØ}A%í§2wq±S/‘õŒ54÷gÒc.qØìãárõz&ƒ‘ ©¹ŠÁkæú„2¨ür 0Ç›a¬™/£øû³û,Ôã|Ÿç,JöGPœÌ'5êØç8‚\cçòF…EFI -ñ胰s¾²<œëcß4Œa ÈÃ&ŸÂ¨'‰1·jtüXÊ‚’RLõî›áî{ CüÀ¤1áÔ/ßÃ$¸…£±Tu‘-‹'Þlˆs¼PÒ‚ŒM1£ÌÝ›ñÂèº{,âìÝ…˜)Ç7»LHÖ2ñGX¾Q'»¤1TW|xž/´hz² ‚f‘TD^èGðæq½?ö]Ñ‘tw9·® {$Π€qÒÐá@ApÚëf.•ÿDèã S ÞÖ.¦úªz­NØf®Z—=¯Èn‡ˆ÷5.sºœª2øÍ4¨òá›94¿A„¼¯ iÃå0¥ú&â–ãñÔOéqÃÏ_Pײ‘Ã$}+ª5P)» Ûæ46 ìY?±©NªTÿðC0¿Ê "F8igòùÞ ûJô.‹;m`#²a~ÁP‰‘^iä‘|¬Ö I_|(‘‚sª, Úèî²w(<¿Ô¶ôÂAç·MéC¦Â«lie$£"«»2ÂVŒÄw^‹êâx+yÌi’‚”Ðc àLíNÈèK(º‘p;Ï'žø¯ƒ*èçˤô´X±ÑcÕ¯U³søÐâ3^ëeiÜôÄÕ‡ÅçÍùKxþ¼ìªgd‰,±Å`À%´D>Ž»ùKxÔú2±ÇÑPé­|RÑSA{äÊ07pë»496ãÕÃBÇžß|8ÂÚP<²™T’OHïDDÉC£Tós!òµ8?bÔ‰µYÝ2½Ýƒ’©H–|Ù€ =E&H¯ë‘û[XÚR×ÕibÛVÿçØ€Oü”àŠâùj‹x5òÞá‘QÉÈ·1HˆUŽC¼8ö9>|cæ+߯^Æù>u•Çûo‰íˆ/ÀjØvêÆG6ÛíY]ú¹a\[º€ÇWk úÜ@66AR`»ù¯õjš@(¸E”•Q%^*ç®òbŽÂçh§æZÎ8<§Pj›Ze|ä΀Ïf²|¦oÕ~dT¿b£ÍÏëod+ÌÇÔ]%ä—BÊ/ÑY˜­Òu=Ö9…½„~e®AU[¾ äa$è*‚:An£ÿrµs¸c£P»%øIë+ótxáôsÑÌYÙÞŽ ÔÇ.šo,‰C»‰ø±MÕö(A%x/ ÑÓ×ÞV#XK1 Ÿ+Q¡ß“;´\áš!H$VeœËD¯<åÄJ˜óQ=H<•Á˜œ¿ãÿ!\ʃTõa@Û¤Ø55ÇC|ì§ãÑÖÞXajH³~*HÈm¸ q›…ØR;Iõ%CÕìNª)$ŒÖA‘.0Ä’ƒŽE¿ïº³RͳÇh*@òjØåòë¦8Ü8Ïxi\å¼rº¯ÿ7A̵c©‘ö#hÜÒêü_ütžû•01î«Þ$½Ê$vâ›ÇB_P3yÍ_ú?Í ‡`ÓÒY`“øw £|@4¸%ßazdøÛ¯ÊZv–bú;lМCS¦¼jPç9y|‰Ú¶‚R?@š…ÈýÀì\Àø Ëásb±Þ±`û)>=\ÁD“–·•šŸ=£sC¹¹:ïg¶B*ºÍ×NAYïŒe¼G7­ª›Ù.¤áǧänhv…Ëa“6÷B[ÄH\ñ ‹Uþ‚È]eÛá«%èž™'i²ûÁ•šÄÝæ}ÛyðïååWð×µýÁ·aòjb}Xô=r7K¶IG¬ °‚f¤i²HÂé³åÉ(^¿­ø3ŽCy™{ºŸ^úq—b@*Wž^jspp¨øk¥Ðþâµ21ˆ¡”Öôdƒ3 UoA°æéðíý®˜jTV«CúGYq(™Ì›—å>OÝl}ÊÙËr¡Ü7ư*Þóuy¹†@À@1ü´9ƒBüä}Û/õ[•'÷‡ä Èš`åŠ(à­yDät©NCš'&>M q!SWžP}íÎ _š¿8ÚŽ lˆkÁj]»¸u›€˜Hüù¤+Yð—@ý 6aê§É°9ÆRZe¾U²%Óø§íÄ 3Ž ›ú½ ç²›ê¢ÊܽF—@M¨oÎ]óÊ `³<5œÃö&ž,=›Ë'à'¿YÕ¤ÅyT˜¬rûbtynxýÆ®-¸?¯5Íîཌ~í€/q™Tà3¢±Í Ü„³•×q®ý螢n ð.¿‘¯5Øã0%ÈÞ£½EýD5²›Ð¡¦fmOCí?˜½ÉW ½ƒ¢öâðv»Ã¢Ÿ¤R !ºJ08çë¨'áãL¤A¶JÙãÌ'46ë>.œ´~õ/UöVƒÛÔ}äú‚¥8ŽR(’`"‘ª)mìΓ["€øµ e-U~_T™ÎWÙQIã¤,â| )]MŽ}âoùyv(²¸תW(éP'ú…;¡WS„L å§ìÓiyâNºKÆÄA¡ %5O9Uí²B·KÏg˳ςÍÄ…c³‡ŠÑ„ _&µ^ÎSUŠÌ»ŠÙ‘Í\õß~ú=öÖ{¤ÀF®>:4­îþ FÅ×!Þ°Í×uµ‚v0jz’“¨]ÝÀ?;4µ•¢´öExÔõå ;Þ8ï]ò]‚Ó¤ M§\¹<ЋKáõßür×g€|‹ÌT¿±&jdò N†De»ú«œ[‡d¦I<hC ¸ê·‹%ׄ{χ²Êí¿O´XÅ©¹¸fó½ùoÔ $ÒhåÍ„}‰b;äz6¬ÿ¦ö‚vD¿Ø¹+oáÔb4»dç¡ÔÔ7XU.\ªë²(Þ6}þK¬ ϤÇú1 Ö¶í"EWÙ}[4†²^¸Õ©‡£Å¼SnàTˆ˜Õ3H¨ÕzБ34Ñ¿…þĤ17öUD¸þ°a±Æ”„|……ÏEƒíSž'r’ó1—‡^įüǩĿó:ìnDÍ,›;Uù¼iOÝY¸ êÀKâöw>íÖL±%Ùš5öèMèÙM³:ì!¡¢¶6Jz³6CHÈúŠSZÃO<°ß¿Ë“øF“§Eñ›.ë¶Ì»v˜*ÏD,S˜ÐÕçóU+|m”Zí¬‚1µRÞ^u¹·*è[ÎÐ\‹¦èz”Ãþ]× æ./9뙀h:ßöŒ)×—Ó8¶6–xb©xÇ âGâŸÃT*ÔãD›Â®Â’>½¸Êƒá»T(á ¯Q$ ˆúÑmŸÜÈ1Bݾd@ÿLÁ>?™þÒQ{—Æ {—›-€íò˜óè—Õ Vàœ¼×çÑwgO1Ä» ñì"1aýðð%ÍÆÂ½þ&*VE·ô7új+ÄëSeöæ%2åâ/ãÀ§xMZ AØÏ3òƒé¯ÑÚ§–âElGk~j‚h©`¯µòsò-r2*:A·\<.À_`5ŸÉ……«z9b–1äȬ‰”›M¹0Ø·ŸXNž hç>Ž{F˜ê!Ÿ& —ƒøh­£Q–Ù ä ªí–0Ë´£llXkF‡°3JïÝ~VÀÜù´Øñ/½‡bCÒç"w=GÉõ˜S3zd ²—8-Д¯ƒ/nêîJÆG'aé%‡šL%ˆ.¶œ¿v ^:ô9|n§+/Ê¿üØÔ¼"0_âTÌÈG=0½$W­7ØC¥OžÌªm7ßý8w¤*m™ËqMÿÜÈ籫°üMS½“©£tU)‚½6-‰§:½£h°ï¼¢ývÄÆ5k¼“û%ÃçÒÐÖqLÁ¦‘½(¢0Av…íÒ0ëŽéµosÝݧÖü2–>bp½‡$¥ì—hºF#º¡ü0ò7–™Ñ¡ÊQ”Cb-XIpgÓ—†™oPXÎ8ÉŸSª]â™§5 ™Q}Ã,àý_n{»9¬•µ—Û#ŒøX¹Y-_‰Ðó8%%tÚŸcÁ}>$?nÒzpÓ —þÊó;¤»‘Õ¿€D†SªH7ʧqcxú}©|ÄôºÒƯK8½µý2,'&Š“QùúV?È~Hý 7 71¡ª>ìKz1$û>*ÃG ÷®/ô$ãŽJ>·`…P<·v‹s\ÒñüY›ô¶¤-NÓ“ÄA4ÀìeF'u+Á,w°7ÀÎí¶ÀÇpÀû÷„“=»¦áhc³?hm¶–ДۊdéI–™Œ¬î8ÀSIJ¯<9^§gˆ…âFtÑKгhºTMû„µO°8À±lŒM\íýd¥j!ªÏ$IÕ÷"@^.AÉCkaÅìðbGÙA‡žOmºÉw¾èeNNº<&$0w¡CËÖÜcËEľøØO$Isœ}æS=šÇµî­­^Ìú¹Åž.SªK¥O˹R«i'Ž Ú]VmkýB2N6ÝÛ}Ö7Öº¾½$ëmH#\ß-xä˜'«Îõ!ZTkÙ  „r0fj9”…ÇÉ@{ÄC!c¨7– ¢ˆb¥Ú¡µ C1çM1ÑXâ:Í, …Ðî–Ès˜É·Ðý ñµ]bûÅÇI) b>7Åq!>bºöníg±çŸCȦ64&RâOûÞ°Í7ñûF¬Ãê1ÚGx¦ v¹?újoK÷¢ Ê‘Ë+wØâªÖïB’WóÛŠ¾ÖwkûúJ“±ÝÞš7ëšî3¢p5øf õw‰ø³’ôàoÇ`SŒƒF`ÌÀÉ6~á3 `Eï¨)êÇ2•xá|ø(™cªÌ^8†TYz2}úáºyûé÷^‰5K2Ißß^ä§Q 0k£»fÇÛèÑ,¥£ƒº½d;B*ñRäi¯v¿š< ࣫ÿµALr~ÍÂDý´â”á,‘‰ÿ€GÃ>Z}*Ý5Ô2¾ õPP#$/à’ÑgWÔùm§%¬hðºl(bÒ1bº?¹ŸÐRÍÏÙ1¿J]€¼²€yŸî.O(F$ÈIŠ3|·ìÛñ'¢aÐ1T8I† …†—[¼ýÉ>îÈ›B/¥@‰Ué\ú«—Ñ^¯ú.-ÝîŽ'ÂAðjè3·9¬zvTš’ jø{‰rÃ%ø–’S}†nÜf‡”Þ£ QïÜM3ƒ}Ï- ¾·~xÕ/üâXhâ.ÜÉΜHZª È3X«ž…ZìÁ¸¾H†TäŽr Á›aÄO:Øæõ‡!*X€9¨)‘¬*aǵÞÈY„9·âTaÖ¤œ'(*47b÷"¡MyÇ!OýÞXÙá;·Î‡ 5B&M²`¬uW¿†E¿žsí_ŽŸ´÷jDkãzïw"áâ&‡cölFÃTcGóŽI/´$ÕàKÞ,3»Ì:bžî¡ÇPêB¨r~‹Ô?I˜½ŒmëÃsAÒöÛavH_œdÊÕADàÂñÍÃ?ôÁ[:ö´:øÌÚØ™0-\xŒ‰Y èºn­ui?xžQš*cá¦eDswÓ”#@êfÔøQ§ŠcÁÛÏ«ðÀø§ÁÖd B»¥ŠÛK¬îD_Ð+=”ëèßî, Ì[œs˜¬×}´«n8ä2ðej¼™ß3( %‰­þ@÷ *l% %æ+Àl9É-/¬µ5]ðwQÂÌ¡MÝ×WŠtÓcp½ÜäLe ÎΉžõ-®så †œ òŒgB»x¶t®É¦³o‹ÓÅuvaw UBpï§"±D,Vub£ì‡ xY¦¨õ:DÙðµ÷šZbc̶ ®ëÜ‘‹—[«7ákŸ÷ò\Ö°ö§hù`৉0­#øÃ‹'Lé@:˜#aÀ†ì’Q²ßÁ›\ô¤…ÌíV,,¾U‡fs¸?*H‰14#ÈpOZ+kï¥kîg¾8AÈ…VÄËwtÌ𸠳ÞRÅC~¾ïDÏ2Œ><%WP[‚³Tƒ[ÉFá ‹áGÈGØ­Ê\‡+×!-W¸aòUÚ65Y(,p·ñûwï8<*sÎÀ¿1Θ³¦ÈKLêr?j1ÖM^»mlàÓ¼âƒãÏÙ6ùý Åv¶±âauí`¨€!om{4%àøIrw—´e|å1µËðÁÆZÏ]FU¢ƒ8œ(*‡_íDØU¯ÀÌLÅ2Šó«sd àÓSÞ‚ùüdê¿É.8¦¨›_€³„™_{@|À åýtSÒe°kЪ¾£ð¡œ™i䉅·ªi£ë3ïóï0TU5¦RÐU™òã×­D`—° Ö³ÐwÃS—•*ÏñkG˜—õ-lÝL_6 EYÞçd÷a0(éCº gª‹·n½ˆ‘"Š<ˆbìûq,(ÉgGÏÂ_P,Zm2j¬øÁ!çK¹ã)ýV¯*³CêÂoûKÄKUùŠ'iáÏ™š¬­p…º®Ó—6eîÒ9›C½& ɘˆÏÉgZŒYr»‡&90gígcþNæÝgyK3gòeaœ—2O~þ,~Žª»¹£øZмrÇ—ÌZâ†xûjýM]e‹EŽ$ÝvÓ[^­¥nŠÎKàð…´.”)}m±G•_¾s„C±@jumÃæ#P¨oߤ² ²[ªÓòaV¨>g3' 5`'«ŸMÉ:ìzÿþzú°•ÝW†*ÈGB/ÃÔ‘,iÁæö£§—aÞÝR×—ªÝñ–îuœ+¦¦mdj–`GÚèÞÈ p”ßH¯îÝ(z`êÏ‘:v¬R<Š®…ÀßÈ4zT›/‹ã¯?ÄñB˜æjßco´Ì } ˜ãêòÓ ¼«ÖïÀ^ÀBH'ŸÛWq m~uç½¼c¤ #[ÈE–¸<@Bü,=;ˆú4M©"(™Ñ?(ÍhIʱ`ˆøšXRŒ/^Ø}þdG"mþvRÓC• À–’ÍU±qœ.ÆØì3°ÝùXË×9#º‚ßèN¥–£o¤r³©<ñŽ™{¤+_ñb—5oE];m­ç|ç³XŒ€º?¬ÜÙu{c|ÿ­Ñ)íÄf0ŒÆ¦¯–*-C:Õ­QvñÃhú´;mÈý¦§ˆZœÊ#ºeb=ÆË×$¬‹µ°ÇÒÉñL.›RºXä›X-oEræäÎÞøãóI?ðÍ’.Ž•NoŒÏ¤NAŠïÇÎ|ªó¯÷84¦h]ÛÊ`t:PÌk†o×[ÿ(±{iÒ\ßvBgÞÌ"ßmŽú©eŒC+pùª;ðZP|0•¼ƾ2¸¾Æ§r‹RzûªL°ÕÕ“?=®µ,PKT/YY5"(%<&Åcµ”£Á‹7€êùð¦ÖÓp‚ÁÁTˆsÃÉ ù¸õ}†HØïžjfäèŽÃĨyÛ1¶;‘¬ÚøTÓ_±öYÄù;ZÚï»¶Ö×@Yis9ÔÖ8ÇhšäoŽ0ž“ÎLºváçâ¨ýš(¹pàª)aÙÅÒÕTD×oÇ { l&K´ãI“Õ€e§ømA“Ì`³p5Išå¶Ö\žI²t¤g%ßDhÑÿ´äv=øCèpÖå#Ùty“ßš˜/ôÚä@‹iþ¸$[‰–ˆF W 9Yƒß’ÆC(œ´§Æ‡‚„‚‰ß¶ÂGFÔ¦¤]úïû}³]¦l•—´S[¤“›‘Ûsë–î´,³¡{Îפ´î®‚=X©ƒ(»–w{!íž–äBÌ”¹‡Æqrø‘ø¬à”‘ЉÅ5bÀÍœQõ¢* sßœ+øa:b2°Im=ˆTZ¾¸>•6%BOÈ5BÂÁýMal,i†; ¦rìgS~ηîx ´±ûH`›!0üƒBË ç¤îô‡%Ä>Çqvð0ûamÃÔAI‰e;>‰O:l¯Õ¦M=Ñ;?ø»†åÚWï[«;‡Eð5†ÍCòNùâ›p̱óH ,[õŒ£½†§édŸ†ŒØ"§¡rý€<„ä-¥ÍÅy5ëS`qgnæUëÍÅ'T)Å^íû·ž.\^5m]xš_‹yÛs^jóõè䂸HJº]®:äJmW‹yV ÎH¹¾[c1ž¶‡rMTºOQö þÐ?#Û½°%" tZœôÁ9k~F“wuB®Â§L/éeÖÅØÝ´žiÀË õdl‹ Ü2,¯Ù›Ž½Àmb忦©¤ ó9ÉÉ?’+g–ÛI gÊ »‡‹&«kyƳa¸,E_ÇX<«ÐîmŸª=ÈÌá%œÑ*;%•Ï÷ªáuŸ<²ÿ(Æá‚·£[¦Æ¿øØüZ)H¬ü†¼Ö€˜°Æ¤„߬ûÜÐ9…O÷m¶Ï‡Í,ß¶‰NüIåÙmA]<³~}'(ñaúøÂéú ùAÙ€öѤt÷¶‰Â­¦ XæG{ƒÐÚN€â±±7ˆ6‡ÁEE„¸Êœê9ˆÙÈʆR•)æÒ-¹§Ì×îà«xR§ˆ\ïêb±\«x<õ˜Æ´ØÁÞè Ö gç©¿U¥Ø"“^ž ^±#b9‡Ñ<ÜLG ó»û5mdÔÁio#Ýb™sáïm–¸l­ŒæÈ–]—î*Zœ<¥(`‰¡½É 9ÿà‰D%ÍóêµÇÚ­<¦ ©kˆÜG»ì¥ŸÈеª5¡çF¹£Lf“T[NÍZL$ê‘å1TÕ ÈÛ¼º¤í£ñ2F‚ ô³Í}éä'½Rö«¼ÓéyU-’Óšž Ä@Tßå< ÿÝ„ó™­HõtœArÏ#–¯ÒOàÑÝÉsæ\Cz˜k›ÙžMMý)`ÁW©!¤ P÷{IÓy\{(šïw{ó¯I߃ÁÔ:;ŒVèA°#«ö¹°û‰ËpÇá©ᶉ@œOݶ³ÆN Óµ4Àä6ì"=G¬‘Ïöi%0˜°7ÐNóK~±Øókÿ•Ïó¾@¨î$´Gt6¸î|]äÝË:¶ÁüÁ‘mùPr¾ÿ [®ù[ G-XwuBbÉú¯åîÛ7¸h8­ ¸<~„gݘ¬‰¬/‘x«þ’z³Ðû%BoP! 2–A”½6=ù*_ùu–s»W„69)2_á$p¨ïáЪ¢‰n°¼Ä=šîF.º&{|‹öŠr7<ßËÕ»\§«È™ÕÖÕHé/;ª®Ëv™„¼Xåú>Ä …–l4.zJÒà×¥ΟB›™é/ªhÇÅÔ:ï]øƒBKH8y æÑ+¾îŠVu*RVLx~;$(³ “lec¤ Þ7á'º÷¼NžµòÑz_ɪÎÚ7ÇyÅ{ëc߯^½žåb0Þ–iãžàbt"—t˜Ú(Û[qêôKyéèìx°)QôM u>fo²É—|7úFÔB IX,š ÿѽë~ endstream endobj 118 0 obj << /Type /FontDescriptor /FontName /UPQLYA+CMTI10 /Flags 4 /FontBBox [-163 -250 1146 969] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 68 /XHeight 431 /CharSet (/C/F/G/N/O/R/S/U/V/a/c/comma/d/e/ff/fi/four/g/h/i/k/l/m/n/o/p/period/q/r/s/t/two/u/v/x) /FontFile 117 0 R >> endobj 119 0 obj << /Length1 1121 /Length2 5936 /Length3 0 /Length 6635 /Filter /FlateDecode >> stream xÚ­“g8Ük·Æ½÷^†0Á½‹ÞEïÝÌ0Ú£÷$j¢‹NˆÞÙˆ JôÞ-z¢ÇÞû¼;9ûýz®ùòÿ­µž{Ý×Zkؘ5u¸¤!k¨ÂÉæ‹dÕu•…`n\66YW¨Žp–³BBE`0@ÚÝð‚Ey„DùyqÙ²oW¸­À.Ëñg‘@Ú ê ·±r¨[!í N÷6VŽ„ ŠôæH;:´ÿ|áІºA]= n\0Û ÖP[¸3.èOCÊÎ0@èï0ÄÝå?)¨«Û½)û½IÀ½EÂÙÑÂpAˆû^Ð{'ÿ¦þ-®àîè¨aåô§üŸCú¯´•ÜÑû N.îH¨+@º:ÿ»Ôú·7u(îîôï¬2ÒÊn#ílëpù¹yøÿŽÃÝà^Pˆ&ic€Y9ºAÿŠC!ÿvr?¼¿|€ÔŒUeõžü½Ô¿ršVpg¤®· Àó«ø/ÿâû¹Â½&<Ü<<àûÂûß¾ÌþÕKÞÙ;ÛxV®®VÞ¸<÷R¼_0î z ^÷†AÜÎäýÀý`ü0„+îŸ;€¤ÿ ýMÂÜ?$€‘¤þ‹î+5þ!á{½è~Ù «_$ÙüC`òÞ÷€þÂ{‚Á~Ëò@¶¿!?d÷Þw…ÿ†÷–Ãû¾N¿)ßK#~C^Èåä¼§ûóDürÆwÿü¹;âþ†þ:•_ï=¸þ†÷Ü~Ã{¡ß‹ï'áþÞ;ôø…¼÷£ðú ÿû|dd^¾\|.^û}‚ExB<þÿ§ÐÆÝÕêŒüëÿy„ÿaüþn¡P/¨ îÜ4ÂF,Ì>¥!¼8@>´ƒÃ>­(lð㋺41îÝE1ÒIׯ](ã1É {x)qò¾j9X¦iöûì«z1Kò™€œ#7]ëÐf×Ô­7»ç‘SæËÍ9¦5—Æ'‡óO—<>bTªmƒ…òhö_¡ÏLßœ8-Ïá¥B®'ãše·¨%Aõ·–â®öùˆ¹w½T¦é§d·s4ŸÆ¾¤‰De«?˜~d¢X™tÈ^Ümõåkj—ß©¶æƒ“ù™ÉúÿjîÌx„SœÉùS€#c÷‰3JÉÝÉ!B”íéú¥¾:=³IÇæF†?ú¼Yõ>YßÀæ|Ë°Š“BÖˆÀ‚ån }n­_˜”q®ÎðbÙõ™>™X³É˜Ül}¦ŸÔô ¹ ’Lç!KI1Î3Zd¤{ÖŽÙÂðiÒ$ՇŮÈoë+šiÕXmJdËùëI˜šTô‰ûÄ6¸ñ­Â–&s‚fôÀ5 þBSžÍ-q«R ÍöäÑcÃÖLßuI<“ü,™z|¬WQ¢HçýÚàÁUÇ„ŸªcïǦËF'ô¶•FVSÕY%ë)RƵF›7"Õ]¶nWh¸iDнøÉ—ŒÞÝQp|†ÝáÊ%˜j¥š•¬Ü©*v¤<Õµå/Àùæ(ï‡é‚¯÷Ò1¾…oY®HHÁˆ ;O&ømÒã£à˜HŽÉ]®GùjíÆœí6®ï ±Ï’]PU?ÉRÊ×3|Á(g´´ÊZÆé(8âl|L(r»d+¹8{B%®hÊßV{f-nžôL¹]=dÐÝfˆŸÁrÄMŽXå÷c9Þìy cí@hlݨ+1Pï>“î°¢Û÷Ú‡uíº $ÆÁ!6ðŒð» ×Ü–w-|òi[¤@%k•‚ünvùeMDïÙ7Ô1†Ñcœ«Ù¯+O`¢×dWD¾ >Ò®ó‰^t:ºª“­ :9—wj˜ISúøÚÄ3_«ÝT°»K‰o½IW"/xw® 芷M7LM$ æi³šúÑÂ71}YLdVÝÇLž‘ß ã4‘lºeœbl3(ö%àÜçM[©t#ÈÕdËg#×ßÕµÉ ¸²‚+Ží•N³KÅ m½Ž_¶ÜjÐÿ‰eŒàW?tè=&N;¥«Q!‚;hûj^÷±£ŠÂO–ß™¼È¹Lè15ó(t"ljÐfôI±´òØO-" *sîÚ·ÎjlATL^™'¤§o‡ÀfúÄQÑK%*(ŠXkâ ù•²yRŽá<(<];ìaí˜äXµ´Cºýgç¤N&_Æ‚ÁØ[9±#ø cÁú§?Èíà›Ô¢#5€šØÉ–Pj“$’ð¥â—¯‹ÏAÕ Kóî@1:'ÝoêOª·¬GÙÄQ¶÷º¶W‰¥!zµìsAþòÝÖ^,ŒùÑo¹”}~tßà[ &±Îc§³€ùä† Æ€Â÷H§àÚ}Ÿ0å²Fµx6ïŠ5ÍŠ¶ô5ßÊ5ìÂãà 3†ú7fuYã®Q]B¹"ŒN„ÚE0Ãç©8ËŽŠˆ£±Œ~Ó·¦U <„Zùî†;iëdåäVÆááºqj=qŠx—%a%*ÇXv㊷u35Ø}8Ü<¤S¯Lçk|OÐaä+ºÞDµZ6쇫 jéÇp“á]~žÄÞÐ[D)£"{ïÿ¨2”{hý¬xlëiôNÅŸ]˜j´’´‹ÓžEÊÞœÎæq7*-j¿ŽAS|ncî"ºnZðm»ø±éÃ=¢˜ºI£lAb"4eçDG<Ú‘µdÜÈvŸMŒ¶7>× ¬Ï‰4½ _Èc€f’ˆ{f áí¼ ‡`‡ª¯î±œ·ŒB;ývõ"c#ô7]ƒ‡14«§F\ _¿õˆmkÒ¶v¹ì›r^§:”²sûÔèx™ŸKq¿˜¨Jo¥æß#hýùéå0ÉÚ7œ6{ y·A Þ|¼ÆÐuKŸŽù¬Æ…ëös™€È‡Ã}ê×!Ýv*(œlJÆ‘Ÿ:0Ööª¥±÷,û‡ü„ŽV>í{pUcVü”GÖQEš³,¬–œ„ÝùŸ2-Ä)ü,İR‘ N´¢©-::?‹~-ì¼y*à2ÝG~¬Fð×Ê*÷Kfª;N (SI54ÌóË:T1oçâ%î˜)dÑ ÎO˜~ÉšRlÒÓ¤%Ldžðg,2OY?'¢Êʪ³µn ÖõÆÒ¹ùÅÛëߪ±`>ÚÝê D;*a6‚{.…ˆªß©É± Ó…Õ],(‹¿Ž7Unn&ø„.ÝÇzeÿÉQíéôDr\¡d¢ñÌ]DPÛòëÊfª:9~²p¿Á#˜qšBVJ£Ge—![çqãðŒQÆfEŒ_Øq¯}Ý ³ãH¨Åɧ—9#(Z…Ïöaиó%Iýl?þ¬NZ˦ïÉN"u1R${ÚФ!·)¯Ò"›¸bI”4l?¢†Ýbeƒ=ÐÚ fGæoo ÆÄ¶™ðv6ðÏpâ«KdͼO­q¤(°ÎÞàÛJ›\Écgâ3vb8¿ûÑmM|d[q)ÊÝåî&žMÄ®\Nu=oÎ{¹x"WÎ)Xìj¢É’üѾv]Ô}ÞûŒ™\v{FEÕÅ+,8b85kid™&dÜ£i¦×ÛO†½h‚¼·øà©š¬˜»ÔmÉuŒű«Ñ…·‡b¨a¢ ¿{¿tIHÁ «R¡9tl™ÛxÄ9}_ÒX°*¾!ð¤Ig;óm¾©¯Èð¯AxŒû§ê0¬»$c§]±¿|ÔöV¥xbpjç –+ ¡~@FŒ5ży§Pq•ÕÝ-f$.C݉RA“‚hOh koïÌœ¤Wb¼û.8nF@Tõl³OWŒ ÆÔæÄ´SXš«ã¹L:7ÄþìJ†Á&ûÁ.…T¦Õá±­À`j‚2•»Y1ÛÃ{VMý“0«O_õÜG«Ë÷ö#( lh*Ƽu#ѶA/ëÕŠný&3€C"|ÔˆûSûÞ¯ÂöÉð˜1Ù„ã’û>Šmf£™ŠL¸NÙuî%¡ÐÚƒþ‰ñõµÊ G½¶ ó„ ¾¨7/´¼ \-;™ç³HV¦±’d `õê?¾é›ö{û;+NfÓ|áãÖzÏ!e•~3Ÿ#ç<ŸÕ·{‘–ì´Y™¯DG}lþ:ÂD¼•ui ß}ÃÕ ibGç[ì‰]¬NXÇbštº,Øá xÕL>ŒöÐ(˜õ›+¢éðì”O×±}ÈVİf&Æ\mê7,’‚R%Ãô¿ÐÅuEÔÁÎÔ¤ Iæ?™p°5wÈüÁBÀf·K\Áq5ö¸·HïG¸\PÓ»ƒjRðŸ‡F±µû¼:Ç¡¼`fçØö¤à"¡j®sôµ—å´L¾Ó Rv@UiÒ÷|¨ã™ î¿1nÚ³ÜÑ#="~ÀN•d }²½6þɃ“¬º|y°y š÷x KÑ;è¤ûXþÓ|2ıh.3ÎÛѽ›Õ”$’îèÌÅÛJè\hD^Ç&ÛŸ}åb;h|ÀÎêLGÙZ÷®=Ô¼mZÉ—×ß³2¦±#Ê ¬ŸÝr» oad‹Q°CÌÙ¶Òè–¿2l@eaºþQT¿LúsMX·ÏæäèêœéYOþËÑ:<+&S’eŸHÈÏ)\†äz5ÄÉ')Af¥F(jäè‚gš·Dâƒú4»,µ‰ôl¦å˜‡/ ÿ³ê"oœ6« fª}aS†Ž†î&£.÷çLÕÄiç]V³8/tŽ œ9ñ-?ÆÜŠÖëšæ­AJ|I½Pf²†P»­p\(L^Ò4•ÜgüªIÖ}+ü#n;_·pÉSlð&]íº¹Ü-²L ±ƒ|W,p"®Äün¤ñ€ïáþÍJaÔXÅx5VhúúY@'ГÂã™ÅÃož¦Z•xø!Z,æ«I¯«Xe.¤2 âõ­FËu?ºìDG‘ìÙ8Þ¥QWÎÎVò{øS_øÃ ¿Up¼ôöe6[Z›Š„Á*ñ¾ hÿ1!zij®I÷0zͺ°¨ÏýD`ssáB÷ÁàDð”3šÑÛâáÙ³z‚\ÜåÒ«'¢q]I¬Ÿj_š™—‰>:ÇÇmLÅöò]7¥Óu¹Vœðü¡}ý;É^á°îàK¢þ's޲ŸwËi¨·By£\}uü¹lNÈ.ý¾Ÿ¦¡v%gæ¢hŽ¢é2h^ø¡ŠŸ®g½.§êëÅDÎPnà%e×Xkf€>éÃw÷»õ°„ý9·¬ðy(Ÿûá;¶ñž¶%T1ãâë,•…}}ÆtÌ+ÇhU ÿ]Ëø¤Ç9bÙ!C›=¯¯8ûF¡E½žPtîhG7¥äw~ ¢( \ ¹Ë²fxÊdWÑ”Þa•Ç|ÚvÁE¿‹ûÙX8NkŽï³àqjóÜôq£† Ë ®&ÌTI&šÃÊ‚k¥ƒ-‡ë•PêLÊz—5>¤ÊE‡ó|À0­ÓF R_u¼—X9%îÃR¢>’óØv‘ÒöuçÖÎVeƒ^Pê—rœ¤É«å)ùìfÔ¨>•& ÊP+om¦ƒe‰oX"ÜÑ4Q™'—Ò܃š úÄBÖÃÀUp¯\gQ—c®u辚m¡:ÆF€QNêP¶Ýúu{¾äµügq®ˆZ¾ò²i‰W8^€©öfe ijölcK™¼R Je~`èVеÌ*â/^_  ÷ø<0pÂÎÁ':šp(ì–Rç{Úuf3Ùö”™9T,¿5t²T&äM a "åÒ}þÐGö)€^Ãé*w½:©áÒ¬tÙ‹‚Ë(zôk{Q²aÕDpÂ-z¨;(3úÝéᇴ°CÅJF¹vOœ- m¸±1a¾ÏRŠv¯ªžê³<ŽÔ ."jû}Ö¤CÐGÏÀïT1TÂ<êݪAùÈgOIæÜAIŸù…pi,MnPÈ3õ¾²2æÓE@Ü#…˜Q²a@ j’BuÍó$¹Ö±—"ßCá„…§ì¼ò/ƒ–$G%Ùz¿ ŽïàM?q {-߀Ÿ‡:[Ã6~ê~Í ’Xa›t”‹½yÎö"Ž {ASwße)zÄPËÿŠVeíý—ŠÓŽ6K^è-¬ VÁÏ¡~V¡0# ÏM7·ÙWÖ‹“ï¸H²¤áãŠ?c#Eú×=ú;¾tzúÝþr‘‘ŸUX×%°Rý+ÈôýñX\ ×9kòNDMlyYà9§s p >=1ÀùqLÚ½¹>¯Ü¢îÖ Æ± )¹ŠOÆ;‡T£ös.'rzÜï„>K†aq\[þP†M|릱èzÄé TöP”ž¦zQEÞÓ¸;5cBiÄ6¶F2C¾÷ôG}ßíq»·Ñ{ÝPùää) Ý‘iHÒÃïá$Òù^nÜùméÃÎA¾o¶ïË6ÖQk°’àߢ¯~dxDt®»«ÂÜâÙt„VƒL‚x£-&@¯‡³H²18ɬ‡h4{Òƒ›9·úÄM»+¨ ©ìžávz\ÂqDƒÊLëY¢G.Ó ¥k§:FT½ýf”r2+ÝäŽü;Ä ØéwÁiœÞ£•ˆ×zÃâŸ3Å2{wúH§¨ßOP­l#M³ïµãߣLªÍpÑòaLNÁ.«“F6³Q$”$]Ý}ãÕââÛìރܖÔ†%¶1®a:ð¹nþ塌ùÕ·Ó±(Å4|Ó¨ï;›Im¥«§ªf²db°¡è Ÿ~~S¾­öZÆ ªº‹b™Záóâv׉ ‚ÂzfÇR–ÍJÌ…>!¡§×TÂF‘2"(],G³2Â'{…«UƒÄòyŸÊÌ vxÒ2lcbrú×™·š]î?¡Ì;•·YÎ;ôloNyûŠÁˆ=Våçd•Ýywå¢{V:úÖ‡›?'©ÙPÇ'—¸^Û5ï{÷Û3PÇPQï=ªÍÉC©šÍ9òµ»~V'cÁ· aO×äᢓ—ú¤ÒÝäJ’?-ršc"*½UÊòú<‘òAX]Ç:€l;Wlx–”ÆŽšÈ:oÂ0¨T¥‚¹¤l÷,[Û”nÔ%cÍ%ˆÈhBY`N mÉ]ð=eÇ* endstream endobj 120 0 obj << /Type /FontDescriptor /FontName /LZKCUF+CMTI8 /Flags 4 /FontBBox [-35 -250 1190 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 73 /XHeight 431 /CharSet (/A/D/G/M/N/U/a/c/d/e/ff/g/h/i/l/m/o/p/period/quoteright/r/s/t/u/v/x) /FontFile 119 0 R >> endobj 121 0 obj << /Length1 820 /Length2 1950 /Length3 0 /Length 2513 /Filter /FlateDecode >> stream xÚ­’y<”kDz5*is†Ò#{af0ÃP„Érì[Y3ÏŒG³hÌh&"ëI :Çr,r²†,I4Ö#9%‘m¤P!ÙJ–ˆ¼CoŸsÞοïçùçþ]×ï¾îïçw=JòöNÆDºhF§15Pš(}ÀÔÆÙ  4‘0%%SˆgBtÏõ‹ŒYd¥h¡ô‘zúH]˜`J÷ç0 ²/P5U[7éÆTð4ÀÏô©‚<p¢ ÉÑŒ)ÀqýFà€Œ@¨ C¡"D`> ¢Áë@–4ÐýZ&²ü¿µAF€ P@ªD"FáDCØÒo’ÿÔ÷ÃÍXŠ-žº>~=¤µñTˆÂù¯Nõg1A`C'‚ Ú÷VWð+› H„XÔï»–L<"ÓÈÐ@éh"u¾Ö¡3ˆ í!&Á á)àF¤¿'„·Áps0±°t:üu©={®ªH1Мxi°³‹q·Ý”›•Š’òƒ w$MY!ˆ$ô¼Ò8¸%È Õ'Õ²m·ZVª“Ø aÂÃkÓCîƒFIêõ˜1þ7þwÏô+ÌÖŠ”X£toÀ§. ç÷ö¬~ 9Ú6Ä—ø¨0’óäÖX'‚'ÞÆ?Zž4§gÓù7J{¤Îïú‡7¾è<=°-{™k³¹;åèʤ›4ÜC¥>ÀwËÀZ¬•­íhåý13²péJ©#ß>7Ú¹ØØ9™dk^žAÞ9#ž­ìå]xìDH4EÑb7Ž+—¢_h¢n´0¯E**rvÚU—Wœ‘x„ÒEV—œ—3nʇ3ÓeÞ“ì­½¤-剼ûƒO¥2ërRNåXq¸+‡.0Ý¢8Š1oxõóc‹ãËðšÊ¤£àt”–ó¯Ìê‰ÁY»œÍ ž²¯ƒEK»ôêgÕ齸ÿKÖΫ`ïpŒ{m¢è=y¸ ËÇŸ™ù!àZ'ÉOØçl6Ìò‚ÝÊ”Ñ;¯²¦Í៸,E¹¬­×’­û}0‘’]6Ô—6iZ¤¦{iÏ.÷¡ïç= KÓ¹ð9Y½^µóÇ…¬g¸'²„¹Ï³•çvÓ$Dnà•¢Ýw¯ù#+Ø5—ÜÇ:¡›ª¶ïÓ 'Ï-Á–‚j_99À}Ž•öDC‹OÝU£déöÞ”$ç/²ó'Ï;5ñ p›UŒ1tRºxNX¾ÅXú¤¸Dw×îV®|›—…Í´«p„ñ%õÇ•· UOÎj0Ú§ôw‰vß–Žo’o(›oÿ² þf¶±S?4íàÙ­¾Û’-ní1îWåÈü’YaÕäέIåÞØé#Íœ”¸ôj9$ÿ¶ú9*O˜”yd.k‹íÈãì´:×—O8-)Ó]¹wU¢šßTxÝÆ¿‰ ˆ*ÅÏX£ʦB­d„µŽP¿c6ºžp­LÔ¬r±]L‘X+f^á³Ý+\=¾åy߯±ÆSC9wG0©£Eü„tîžÆÅÂÜ5ÊsuXw_OÀþÄHëM+TE{æ¥y¬ZD„•%id¼ N¡l[2,ŸW    vYÂ&¹ƒÏÎ]ˆŸÂŠÿYš.»_³³PÈŒùW[öõJ“ºoöﯗ`áãOߢ‚½f$y§sJaO—,Í)m[½Û݃¹.úúwûÞu÷†¼ /²¼‚`ƒŸ<‡ 5®\k³©u®wU¼¸g F;&çI{º||Ÿ³wSæÇèU9üÉÄÜ– Ãr8Ûâ ·=E‘ &ÚszÚ±­(…g%t³–Ë䟛EÜŸ\gøÝÒ½£Hº'C¾ëÅ)ŠI¾À½­Îêúàã;Õ‰á4bÊÊâ0 ›Ô¾ös”VXNZÑÅ8.MÌ>©¯F†·Èœ"hg—LÍ…j_€ÉÝ{~¨ã¥èì1¦†°dUÒ|L ¥£v˜GŽ[j‡E`:¸2¸o–µ|S"rãGë›zíá ^Œ;!ÁŽV>u.ìƒ{`¼¾¯È²ë¾Œ ûKàÓ¥Íð;Ív_]ÌÔþ›q½±Ùœ÷°pf¹oÇHxåà$³jÊï‰Áö-¡‰ÇÈ+V÷lÅÂí9ÏÇ·OU~hö®Ü’ä]=$zPôhÝ{v®ðOðp6l«LÉ\oÉilPÍÎJí×ö•zªªp_ß 1â—ôëÄ%_-Š­»&”­õ|ÎëÀšë½Ž]Ò½¶"ðŸ2Ÿ ´þ¸T=~Ô9ø„Ùšvõcö«kv°6Ъö„}–Ë \t¥ÊUÜ-\¯RųÞa¶aÖƒ¹qt ì½Òî#ò6Ïb3i®J©¼q9ÅàÞL·äÍŠX\‰Z,XíÀ->Æp­].½ª²bvïµê†úÉâ¸×Ê™vKa™·Nnât±¯h¿Ñ¿¨š*Ää+·dŽ]]“úùK¹T»]Í£~wGuòàžz^‚ê«}¸±+M²áKmžc#9’Ÿúk-ömÚo5Ï-›3tWØèúÞ?Í;]¶Îš ¹™°ïhÍÕ’37M{q›> 1UñÁÒ1¶tõÞŒ:;ÇÐÓIwâB÷7_>cºµµøÏ] §"‹ãbq1fÅý|ë©®¼ø|Q¥á&Û½òÃhm•b5ÿ¥YÚì endstream endobj 122 0 obj << /Type /FontDescriptor /FontName /XQBHIS+CMTI9 /Flags 4 /FontBBox [-35 -250 1148 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 70 /XHeight 431 /CharSet (/comma/i/l/q/t/u) /FontFile 121 0 R >> endobj 123 0 obj << /Length1 1302 /Length2 6868 /Length3 0 /Length 7659 /Filter /FlateDecode >> stream xÚ­—eX”k×÷IA¤Q$†.‰¡éé†b€¡»Aº•–îînQº;¥»$žÙû~î­ï~¾¾Ç5®ßZë\ç­ó\×q -¥Š‹˜Ä$ ±ƒ²Y %uu ;ÈÊÎ.ŽAK+á2†‚!v’ÆPÈÏϳwpð€ì\ð-@bïæ¶°„$ÿ âˆÙ‚Á¦Æv%c¨%ÈžÃÔØ 1ƒ n¬1À»¿V8Þœ@Ž. 3V `6…L@`; ¶¿4ÉÙ™C¼ÿ1›9Ûÿ×årt‚‹0ü-“i±³q˜Ì1ØÞBà»àZþÈúwrig›·Æ¶¥ÿ»SÿÇol ¶qû߈­½3äP‚˜íþªú8%ØÙöß^9¨± ØTÌÎÂ`ÿ ì$ †ÌTÀPSKÔÑô·dgöo ðÎý­€MYBEYI“ùõo§Š1تîfÿOÖ¿¢ÿfào†·Ç è±Ãû „Ÿÿ¾½ÿ×fRv¦3°€ƒ›`ìèh솿>pâx`;3 ‚Á³±ÚA ð%xO¼æGŒ¿N”‡À&ö—éo‚›ñ?„_36c'S0 ¶1ýŽâ°™ü&~›é?Ä ÷™Blà—ãŸ,ìì6³?`û .ší?çð;€Àfþ;€N`Ð~¸Åâä°Yþƒ\ðz,Ýì-A €ÛÀ |K«?^³õ/Àæ„Wgûá§Èö;3'<±³­É_ã`ñdžðIbƒü–O±û£ ¼@ûßn¸{øX@þè^¢Ã/Ññ„oëô{=\¿“±“åð”¿Ê Wµtý©¾Æù„×ìò»þq à5Ãþ@¸z÷¿ñÿÞzqq̃… ÀÂo /'ÀÇÎîõÿ„™:;:‚ì Qà“ó_6ÃÇ ‚L1æg ¦‚VÉõÁEÞR¹cŨLˆâ 1ok:'ÛžÌÅ"Úä+80­Tkß–¤áco£nS¸Þ½r oõTý*}äç“2ý°íb´æÞôJû4MÉí»=ÕUÀÞó–ú©ó}nD剕/E :y}ŸŽû÷²U$ÕwЖ(ºô\j»Òyxµ¥Ól4B‚ªé8)ßá¤8…r…,»â$Ä¡,x[… 72/ž@Zñnsѳâ nLŸDøsˆgÌ5ŒZ ‡¤±¼ä[Ö—´¸YŽ|O@¨Éï`£5I/ïJ-˜j¶›o¹Zè[Wk®êrC˜ºÛxjÂôõå΀"Ú¿“ÖZ‰4Ö;”=©†R%k'ä²Ù vŽ©sâÑtås€n^2}a-®û#™Â·ò:œú ⤱v°ƒ9à‹ÐZ÷ëÒe©øSÉ®·ûغžò½Ôqפˆ­âZxœç»±è¸£ÉJ3ûö9½][g Ù{´[Ü´¿È‰:½F¸?]Rˆ[{‰íZa.›Ò«%~F.þ‰¾>È—9ÎDùœê–áCS” Ú]îúÔâi;nñ„<û¼ág2GŒ_‚8k¥Q]Ù…Ž³›ETXëK^{®yatL‰Øïn=Ê7wÔn_p3ÉõÚ‹H6žs ™ÚÉ™ÇL­QîFžbuOÛšÛVÓðI1P}Ù=ù¹[ÈMo×9ÏäÓë‚¡.²É{ýú ™©¶ßãQF\‰þUò²ìÉâÅjñ|+)ŽøÜYJË~/×FQrôœ†±yTþ…Š*ƒÐ„3uHxgžÛI~aÁÀ¤ wJ~Z$WOëûXÝÝ3Ù€-ªÅwÓ“Ø„7ÍìÊ…nü¬k­ëùäКì;ab¤³4R¾ÅXýï_B)>?@";Œh1Fè¥:Г‡b>|6wL yw `à¶lä¢Lh|œq›étzä=¨ëú.¤^y«¤…·3Æ)K¢–cÏ\ þÚá ¥r û(Ã\S¿ FRQ-3çÎâ=¾¡k7”#©«Mw u›úè2¤' “Ý_bH¹ôÊè¹!AéuYåbPd[•œ*‡ÞI¬Yêãùîr_.óÅ ½á˜ì9ð=+jëÓí] {Sp¾Ç#s¶ÎERÕqk‚f§àUÏQtÐ4„_½€a]˜ïê§.ù¨€ž¬•rƒBä7ÃϼLSéäžo$A½Ò©ð–°ØÞô°4c¹‘¨I¯6 ›„3xäH*Užô¨ê‚Á9¦a?+š :M´Ì3¼•±T¾&j°°Q*=N߆0©\þ) ª‚7Á>/ ù«Bv:¤T÷;˾ q…'œ.&M²Ú»¨gYâK Þ‡UW\¼AÓ¨»u˜ UªZOX)f®øV?ô‰i&N:–WÕ:l­íûþ ÃEÊg6&ÒD4JÃþÏ—÷ĵ(!€˜$^Ç >Œ_M<×”Áöo•{iͦդt:Ž_\-M›åT•_l®=å'W‘“‡ŽË‹]"ÙiÈ~zðèì·×lO4ú¸ûC:Dƒmý<ð´(6N˜q%V¥µ¬çÄy SM©Ü‚¢¯pÞêò{Š“Šs£›úø½ª…žœr’Qä-t«BÖ¡ »{³IV²¢ÜI^a¸ö8íXNû^=½4<b«zu0êÓØ\Šn?eÞ¥êvÒÐÒnè!è]ôæ=•‰ãjUxŸæ×†¥o¦EÕO")¬Ý#è~ÙÇñ¸%á'AýiÒÆ7K Æ£ u¼É÷}Ú¾W¾–”åã™æ!?£óe"Ë]¯lÀG`¢C ¼OqËÛUs'<šy¯ RRQ‰"póØX ŸbX¦X”É–ßÔ-8%jÇÍ•óOnn !Eòd:ßáé1æ¢oÍ8ÛVznÅÖ+$ñ¼¿©aÔqM5âG=5¯Ûá4Õ~&\õ²o¼¡a•þóô\yÓ•Vî¡ö8Ë”þj{šß—2z§£GS¿€÷~sÏñ”\ѤÏÙôÛ°PÐ+‹È2RTòL]pH$‹ü’WæQG*@†%K 7’?2°üjtfÐ~ySpâGDbÄLj e¶•íUŸolì¤ÛdiúÇš±t$puñ!ˆ½‹_w¡×¸}RO³‚.“@ZGK 47X®É•R¢ã0[‘5]=a‹rÆåÛ,ZF¶!H$ŠÉa¾~m[㳌*¤bsAÏÙp×Ê<Û>`¬˜UXN…¸˜áÞ) @Π'×r¸s…„Á4-™!@@„¹š 6€Î>"“„G¢ëwÕ$qÐ †wM®œCK?¾q‰8õçFQÉç°ÄÚsD¼[ì¨.5÷b¹»ÞiIì¢^$/¼AÄ1¿Öy&Ø ]@è£÷õ£I΢е`²iü~iZ¾ïfvP4Už„XŸ¾ÈWãâ¹ùÇý Æ‘vmæÍ“É÷k _=?5 ö›¼IŸvèTûîÕ¬}.tÙl òÚñâDeb¾U0ëÝËÎn¾]¼ °S¦lg±xëÀõñ.:.)nJ{±é˜oû8Tôq§$8l̕ӦYÇñiÉ±Ì CRN÷QS€•™U?sŽGñúß+KôO 46$ Î?œÇ Э“iÍ|v¦DIi›¼-bˆðsª*wˆ{)ŒB ÑëðH;‘ãJªFQØ_IçbSªÈ/áu:í3qÞ9{3˜ZëSûª¨Ñ«ä›MzoÑ+Ñ œÁúM-š¢HÊw߆¤W£ØrÙØï~©Mñ>^øÎ-„e³K²Ç²?Å -H,ÆléÖ.ìbPNb3êZ2<Õ&†SºÕ);· !weO–öúõt˜Iž~'ãÅdÆbB,ÎA"DNyú4Ó£%M‹g\͘ql`’ið’ù¬9<¹ÿE0ûç½w™ªÚZûqšÿ¥¨{ºEκa'ŸÄO’˥ĔMs){p‡HÞAŸ¾z ¨©UîÆ~R]m‹ Œ˜ø5íë1$»ezJZ !hý¶<”KäMÿ¶µ"äŠ>øª‹O”^¶~uQÃÈr”°VÚM¦“ÁÜgP5;-Dm[S£ÉÌáÌ]¿Ç=tÉwÙöµ¯ùöbäø£Çú’= «‰9>¸ºþMiõ@!¹h%*°˜ÀF¿Wõ.b.Ò| @Te~ЖSç¡{]‚Û Ç ¾ÀÈIVBt±Ó&?—rv œçÉc Pœ{-gÓÑtlùLPÔĈuk.ˆ{«+XfzÛ-¢‰¢D–6”x&mAB¿«km±ÔóÊE¯Y#ÕŸøš •·D®Ó³M=wÖ¢’1êû¥Aé %÷廡ŽB"t¼.yËkI<íMÆçd(ôÌþãà=CÖäÍL$èóGwKFSR·4„%Žžšý´×n1†<¾ kJL½¬¢]€ÖI LÀ")˜®Ê†p'³¥Ÿåø“B'ƒÆ<ê“e‡»µ—x~Hˆäãâ^ä©”À¼ó:¬W‘|qð=µêæ=ˆ­¶¿?My·šû@{ 7ïËh~c\yŸHë+kaå!Âud®ÎŒ~„ÈQ ©ï-°À,f»0¾ço=cûZ=Ü®ïŽ$Ï'¥˜ÚrÝœÓC1¤äC9™o‰ÞÏÆd½À0Õ5T|õmÐòîÆZö)Qp.²Æv¯¦úÊ£@Àñ»‰1[\Ÿûœ6`CöbúT¤ä@ëÐ…êàße(1t» õõå#õØÅË6¯zð5í€ùsþ¾Æš¬-§ý‰m¥Žµ©ªJãG,*É]Wq{zMµž 53(ƒ.%Õ¯pÄúª@“ZE³51KsǬõMȇŠÖ[CºÏ,µõ]UBÈ>c‡HåLÜÑìP[‡QZECˆgI’˜8}ô¡ƒÂ¡#Û¤à“•ÓlÒåyª¬ÓömÏ‹–Î1‘+'8džû!µNvªK|,ó5â8 Êå—Ü"pâ^‚r‰„ÒÒr(ô°‡Q^öôÚSf9cÌÍvä<åO)‹z7¡Èd¯¢y§à]kdÙyÍÊQœSÕ ýø Œ#¦'[”Þ2Ú[=g9䉥tÏÈà€Ád¹D+5QaàËM¤Å÷s=M~﫯ýP(U×’ÄöêµYýtkƒüé\¨åšÁ/_˜ˆ“"2©Œ0ûz‚¥e}ã….7î)ÄA¿ [-ò¡ü4é+2†•îËãTq¯õ»ôl©ÇÁÍz@!œ<ýò™ðª"JÚ(k‡l¢k§/.î·ÎßÖÔ8… ºÎÒÓœ1< štŽ9à%{M×h`šuÀâ) Õ`PÀZN®Î{y¸ê¬ ºÌÏ{íî¿®—=±×"8ò Fª#÷Äk÷À_k‰÷s&šWÀù€ôz(Ì7¨ßãrµGöã„[ÁkŽFåù_ ŠëZG_̰T.ÊŠ’¹ëxÔ«§Õ"®­ƒžægý½n3„BõêL¸¢#/ÑJ4ÚXwü4g¨Ÿ·Ù„2:oN—*–áÖ¥Tß= Æ=Êi´W+J*üjÙÔw·›ä\ì²(Y3ùUú0âRöŸÜ$°ÖR³øÅŽñå¹ò/©T wûܽh ŽŠOÖ7\sÅö4¹ìà2$VHÊ,:{Ϲ>/)‹]õkŸLù •.Ø‹UñúOû»/³7´xÓew{pÍßM|N%jM þ†³Âò9FÏú  ¥„H‡&6¿n…-Ï;q¡ýñ§¿Ö£ê©®‹õ ð)µ¿‘A¼€{ …¶áÜ%¿*MÇýâÜ\aÕ2‘…´.’ç)ÙÞœ)nW·„lîÙÙmPcmh×¼Lö{o²ÁÓ36ý»ì~ßJr\ÕTÀú‘LƒÎ×ËæÚrŒÌ‡>)n`öhv‡T©îhäÝæ‘ËÇÖÔFyšXŒ¬–.£!D­¦Õ])¢&žˆ˜ã¢1x•“A~Ϊ`¿&SWEŽö:4¡>ð+[v|h³{‹æCÕ{9”ml‰½RÎàÐÁ‚JËío¨ ~‘Œqû6\ƒ%™/î~T´Ås ¬X˜_°ÃtžBY™ÂMÈ2kÚ‡ObBöJvQA:&_¬S,Ãj²qv$ë/KuÇ6¢2¹)HÙÌÝÊ ³lÆ,R΂òn{V>F>Úq%+V6†hçQˆ€Õ3¸Þ¢—Wš›…~Ó[Üxù‰!êêÌhU6½›ñíÍ{É+ŸQÜ¢0-šÜ¢æ˜Ï5ë€lÖçá0-±&dF¾ÒÓ;¾Á™Gè»1ê‡XÖcY˜¸½öö¾g‰ðÔñrfûñ[Ÿ±vçÕøç¶Xý»ßLì&¤]mdŠ?|8ÇFôµZZ;ÊëÜW2.A˜Ž*á Së§¹&%³b˜™}©à¾FòiÌM¦¤Ñ$$¹1“Ì—RM´7/s ½&Ï !Yõ°cµç•upÚÖiÌýFYÌêöL+h±NÀc‹&°@¼ÕøY7ŠÐ‰Z…¿/c/'¢²ílÁÉsˤ8ÐãÚ;“që³eÆì÷0/¯ArëÈÞ©¦ž­í©÷ èjÔXA[n-U|@¸ ˆvˆöñ.‡ƒ˜ þé¸1s¡Þì“0L­y±@ M?O¸V¤t¤E~6ô‡Ý/++óñÇÁö­ hµ‹$žLï»}¢«&þHÛo™Êö°ÇbáY:ŸÎ&~0 ‹´JE®Í€=ÆžJØ'âÅ5Ž=ÞËn'ïoIUgY’$>¶mˆ¹Õ²’å òš¥ãÑ·¼sÎl\´Ë½¢@çË¥|tï›Å:p¸Ìþ÷ê ’ògúYÀïåǾúƒ248̳ï¤Åí~šÎ?¯µ%¤¼Ûó¯Ôûx¤ˆ|FQ÷áUz‰Û£­µÞ#þQq«°ª0кŽÚ‘Y´Â9PdýÇlåÁ4‡…ÞjG'·Ù8-«~?r¢~¬Hy'‰s›´t¹“¢»—Rò®úGûȸä gÅ#£‹üK3Éc¼Ÿ»ñ]G‚8ážû ÷øgܯÌ} èÃ[çAT4œ¢Ž–])ó°è3â™ë“䵈Ëè(3Ä“,N4ñçÏR󎼦ֻÙ©7Ü#°1ª}3æ}ip#e$Î0­LÂð¾[ݼŠã”Uõ_æërñÉdø6œP—C˜?+2Hééfp +ýàYOMTuweŠ Q 8ÌH³Ö‰â ®Î¦|ý4 ˜„»ˆÙ P '»V8/3l¸…`7,ô¯n•¦îvòµì/‘u±L_3¸I›zÃØ5œ3öDÎfóÇ2çWF_,Mzf~rg’0zŸ`Qh¸"*q¸Í)–ã9°Ñ0VYKhd>7eú±ÄP‹R…mÊ $‰»'ïLSåÄ׬²E&1àŸ×O”G.•‚¥˜‹/ºÃÙõÊžºð¢\‘ËGF̹Mà¹@"ë*7¸nšºQßUZ.ëwùŽ5-…+W¯ö(Ê›~ª–èJ»wº¤–`r§Gã,WÄöD')ÃF1F…Ý^ 9pn¡½u7 Ãâ °ZùÎ'‰íydQÓ0P¶¹!Ñæµü¢®Shkü3Öó ûØs 0z椉_nÙk|Bv>¦;/Å[0=Y1h¥EŸî+Â¥™¾®™ð5²ICn†©ÃþúW˜ ÏšáéÏ@JÍ`”]qLÉb©³ÿ®oN1”ø¤‘Ëö¤úPÝmá¬×·™ä³—&‰·Æ&ë3wd¹×‰eœ«žêþ Ã"!¸=ñÕž¡e¾=8o}/òu‘õúV4¢]¢ÜÊŽš½xŠ‘Sõ ïI|Ô[êE“8™ÔT'ûžøU‰[>næÓâî¯-©ˆÌü>'=WëGí3²€Åª.ì¨\?éü:wýàüN÷èMãlËnÛ†«G*óOoZ´ƒFâ\ûPYHµù6µÙ謂ÏF®_mÎZ>´Ô‰©Šö× ä'0Ö莟ìOo>w!e‰N ©Jp!'û(Ølá‰Ü¼Ï êUµ¨‘@ÐB"Ä0L3|rOxçèŠÐ¡ø@*Œ©ª˜´Ý»Š4Ú’ëùCúÅe×w®íÑæ:z°9ü%è^’V¾Ñ·Ÿ£tŽVO¦;¦”·$™ÓûóQÞ¤;½Ék™Ü¤.|C›Vo‡Í€"±¨¢@;s?1Õ}Èä’­v¼ë’Xæ³6³$“‹”Ö+2ê«`÷aò “¨“8vnÂz;[ $¬`z+°ñÕ\ÑøÁöº endstream endobj 124 0 obj << /Type /FontDescriptor /FontName /OCPOMV+CMTT10 /Flags 4 /FontBBox [-4 -235 731 800] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/a/asciitilde/b/c/colon/d/e/eight/f/five/g/h/hyphen/i/j/k/l/m/n/numbersign/o/one/p/period/q/r/s/slash/t/three/u/v/w/x/z) /FontFile 123 0 R >> endobj 125 0 obj << /Length1 1687 /Length2 9355 /Length3 0 /Length 10312 /Filter /FlateDecode >> stream xÚ­˜eTœK³¶!¸‚;ƒ»[pwwwœÁ-x°à®Á5@ð@ ’ ÁÝ‚»ùfï}ÞMÎ{þ~‹?\ÕÕwÝUOw³´”êZ¬Ö.–@YgVN6NA€”ж¶€“•–V ´ð¹8K[xœœ ˆ-€‹ÀÉ'ÈÃ'ÈŃJ rqõƒlí< RŒ%ñ$œ€`•…3@ÅÂÃèÕ°²ph¹X€>l GG€æ_;Üš@w Øh͆ÊÉ °Yy,¶ gTö¿ )8Û¸øÿ [C\ÿ³ä »CM &P‹Ö.ÎŽ>k  *»ª ´êäÿ‡©ÿ—…8:ªZ8ý%ÿ×þϲ…ÈÑç\œ\!@0@ÅÅvþïT=à?ÞT€Ö ˆÓ¯*xX8‚¬$œmŽB wY7ÐZäaeðC€‡ÎÖÿí:¶¿°Ë©Këh0ÿó9ÿ^S·9{hû¸þ+úWòßÌùÌÐá€AÞ#6Nh"ôç?¿™üW-g+k3ô<ðò,À` TèÁ€/Àr¶z€ÞP¿ìlÎ.Ð-èH6.`Ô¿¾&/€]â¯Ð?Ä`—|&~»Ô3½°K?“€]æ_âç°Ë>€]þ™¸ì Ï­ üLPMÕg‚jªýK¯¡šêÏÕÔ|&»ö3A{Ðy&¨k½g‚jüKÐÈnñÜTÅÂãyjÆò_âä‚®ZZ€Ÿ—¡JVÿ/4ÙÊÅzþááù+âäô¬ÏÉmÁúä°Ÿ«ÿEnèéN€6ióB'gûB Ø=—ƒ6mçãjtþ#ýÐYÛÿÐæþ@hÖ†¶çôŒœPëÏÊÜPagˆ“å_wÞö‚Ðç‚ÝåÙTÂÅøÇ2´×çe¨¤«èì´yž:çÿDÿy(þ C½»BŸ —çùñ@Çáêqv­çq^ðÿµ•“:(ð5ÿ¼‰ºÉèúß÷¯ çÃä…Š¸Cïà¿Õ¡Ósw´p·ûCêñ¹,/´;0ð¹^hÃ^.l€j@þ@èðü¡Î¼þ8ÐÝÞ TÞçÙ t«/üöÿ}|$%]¼ýXù¬\ÜÜÐN¸ ×õuÀÿJ³‚€¡3÷øûU‡>`ÿaôµ½V¨sÓ.VBaöéÍ2Ec•L°’¶- ª»';ÑBgaK‡•ܘ–ô者p^n#lSxÝ“¸Gwøk|—=~ã–ñóqÛÓ|;Ë·Dÿ,KÅgË•ê:tóSóÔÅ/¬ÚÄòHEŠAqîÉÀ~¡:ƒ´ö/¤EJ˜#ÏÆžì0>~}Ù,GÈð:nJM¬ ·Š(žÈ%/¬”$ø¥ÑÐ@ûHäVæ…S—ö]rAò£Ì­bL—dÞl˨½Hd+9#ç3Â}s€Á‰ß¶³ó}’ÀL{kñÈ>¤õà̈θ%„[ýR€ÉF^¾'L‰ôà«ñoðX¢ƒ­qV9ï)]Z郜°¹b*¿µÝª3£áôµã~rnÊ+^.´\É â¼ß)4sÔ8­y9ÑnœÜâ òWáBä 'ÌAyrT˜kœ3?•G2µï¹oÛG(ðe4¿¡6 MÕ+fíT»PI.ìÌË6+9Ü¿òdG ;ÿILG»JÅà^n-`ʲ¶ÄØpgR©uBþ9È3hRK´×ÙŽ”†oüJ££«~%ޱT0fa!›z$dŒ’Ñ*¦Æ\áIä¤Bz@¾ðÖfK¾{®'eˆ‹3 ë·ÔIû¶D•¼æ©Ð¤Œ.—:JW„Xž¨?¼)#I6òóŠÇÂçøMñv¦.†½fwì ììtÆ%ë7©²” BaŸ†o²úk’iÀ+Œ5ï;;ÇÌ€gïÌ”5Óp¦ õW‘‘™Âé±J™pýÓ\˜Ã›HÐvÌ^M øÛÅóhù¨5nL™Ùi!±ü½H¥`ƒÌõrxý¾ðSæyÃk±Ê ¢Ò)±‘M´P®èŸ—0ÆÑqVÞ]óåøÓ¯ÂÜ]aΑëv§¦5À· $óªÝ¢1 ~*F§[æ]Òù Ž^ßî_º¤ ©§ —YqA(<I¢:¯‘jÛM­+žRc&oÃîŽ+ò±5q«W\ãlîÄjRÔ^ݪ•+ó§my÷Õ@¢û)ó~@¤ˆOâ™»IäSÀU2E¶+¯•5mh>ÝoTª÷ß+üÞŒzµÞr\ÁïnE1f¿—¿ËÿͰc«kù¥Ò“šx³·ûÁûÞ!ºITX )â.7Œ>u­ÇâËk»÷)Ÿ[H²ý©›4‚èðsÌy•hçdz ¦Á9ãµzÊ2$Ý.ãî_xšÉ}8žõœ%j"O "Мˆ‚|…`úŠ0f"•ul iZÅTŸÏÅò[|_üÒúxKHÿ+˜óó'ƒ£5ô >|2ÝÈ+¼»¶M¾xÄ`/â@qGªä‡lžÏy¡ûÔËm*”#a7‡‘¾âš99CèÃ'W=Ñç²ÂÔ…6yû2—TùŒe+£vç¿âSoÜs£¸XâÔƒ Yœd_þؤ&Ufä^Þâ†ãºôOh`ÉDŒ78 ßþJ;€)4<)@úy*Ù‚.õhK;E¬GX’áë“9Iõ$j§T‹¸Ô¤ðØ0Þ ÈEúvF˜M±^ÊõØò ­Ø_©&˜GvTš¶Qç“EZl—)±¥‚€dáÕܱ¬Ì¡JöÓKg’N#w÷ÝØÛ S38Üü¨_Z~#Q âï™dך =ÛÅU¼ú(D‡É–TÊÿA%=hn&6¸(Õ4‚`»»¡ýÑu ,äüñfj¥¦N˜™ò•cœZ÷ÆÛZõ]ÊŸo¬Bà%(+·Pçù9²–·O"ëÚ¬ßriâàøµØú_ ön¯Þ Š6¥e1¤mdokN©wúÔTß=‘™Û®à8Ù^—Á£ÃeˆèuSÕ.õq'i÷v^ݸ¹V.jòZP®!KÈ›àÖ&IŸÓۢا0EÔ²_­ŽÒùʇ|\|!À°ˆ¬kW]ì'‰P~2ãiZægÄ™BÔt T«sÚ›‡-ž­U²ÃÅî¼¶îB†½Ïù]¤Þ¬lK2EH¶Ž1Ô½ÆËù(¡ *©R¶ã—sWNqîº~çodiç;pˆ[èçÃpi4I0"Äà0Ý# Eÿ§~ì;YŒSÿãQ~ v 3˜ '+’r—¡âÈÆ^¤Ëø4ÏôÓ®ÞA}o×üøqs֚ݪ6-q2’œCV›ÅSlKš{¸G ÄÙzr¬7q%&>î·¸wŽ {Ø<ù¾ÓBïÕcgS\.&ñº0«&¢«ÞHy¿uoà}b¿“ 8ªæú«PÙ˜>¾1ШÈh~abѾJRigÓãûJ¯ Ô«ƒÉŠ€WH5œx`€½r¨ò)Ú`2°—> ‰¦¤œ¦‰qó’‰ÈÞÃä§®ü©1¿–JÓ-° áe`)ƒ r!ì<A?ò¡.‰†¿¥·Hkó¦:éýK˜¹ù>³Ò£a¾7g‡p)µèòy|^jœvýÈq›ú„T©`ëÙ#j‡ÂÇ=PJª¥[ú¯eÛ,¦¦ \XOª(ªîï½å‰„ŸDú?eÄ‹'—o¤¯üY^&rXßvaŠÐ¾æ˜x[Ež¡P÷K/Pí,‹Ÿ·yÞo$…ovÇh·ïƒ°(FQ• ÖˆŸz£s›4âNk•}›àoeé‡AŒ›kRó€´†dzu6Ž,Yù éBz:¾TÊ-®„w@Š ïÞx%WS™‹¼hŸá'ø¸¦¥õY?û2x?Ñ|âË~´+¡²–Ï©½­N`J%bE2^ð’0M&Fb”&Ú‘™¸ ¡Ùð·swóVÍ@M¹À#ˆì-wHø†%Ðêá¶Oﳃ ä úLr#¦ÖvÄá5?Ž^ÃKµHÌ´ÒÜ^­¶ÊÑ^3?IX.W="äq²c^mÜû¬RlúP¸XwC­oN>  ¢¦·Nh…_ªÈ(WÅŠ^zhäšQ›äú$·$¤jç Ù}UÏ4|L­ ò4­hþ–ñ~Ÿ7ä}3±°ðâ0ˆÇéé<þ…üTøâz뎢ÎÙi؃©¶,Eü·ÞZÓUØ"‡_¤9¢íìî'¾Õ997'Œh O?5gèº3¾m¯¯Î£ÂݬÌÿ®÷ÃÒN×`ÂÓ¸Ñ5,[ñ·«ãã£cƒ›r~à4UÏ.ÃzuÄêÐn…ÒúÑxDª«Š4€ù¦¬·'™ä£߯|ÔŊЦ_ß,p‘_‘—TaÙw[­7\K$L0"™~hßl£< )ä¬wƧ8 æä[J-ó#þ.¯ìýÖ=¼ÑçyºG<¢ýTz›Úàe8~.{zÁ}h PlrË‘¼KGªH95è¾"Æ&O€¨ÑtZ¥ñ,¯1êæ£>9„VÚ0ìv[y³t=ái¶‡êc.䱩닫š2­_~‡]Ó2‡æà‚:’Î÷z °³Ž8G-^Wã½0_ÁaV„‘ÛÚcð‘B :›ûra- Tô#Œ.¨S¸‘!%¬5 Yl}ìâ6ÇkgŒRðe¿ë65Ó5pvßxâKòt?¢ŽXÐSlDF+-ùø9¼á¹ÍòšdUßXt¬>ŸÚK±\ûÔ¨º”UÓ‚aç÷¼¯`ei)MÐÒ•}`(J¤Ê•ìMwÃ4FE÷-üšú´uG´pb‚w4¸eà »›O´P±puÜÙG—ϪÞõÓëißï0Kp˜>â…󱆴OâÑ€ÛÞÏ"”ÆæÓ̶7ÌkÓ]~ý¢/† £¦OĘߡáäÙû¾û}wh1E/U³*¦8º)pÑÀÇ}}F—YÎÓþÛDɆ¾„D$¿Îsc«ó2gQ+ Ì,ã½u"Þ8tukYà³Æö•íéÌÛ‹îî¤(”¿÷´Zšý;®ñ‚woIË›NÈqü©#ù0¢¯ZÔ/ikÓ€ô?i0 ®­å¹¿k$ ÚÍãÝ+Åÿ î€ÿ2;ŸŸòe¶ûŠMïû7Ü pOÎ; õÉŽ<Ææ¢¶èZd@ØpÅá;㪱î`M'çe\i*Þ¢‡¦Ð’¿¤G¨ê^TÔΊÂ`7œÎ—EjIáA\[ËÜ$l¤œ5†°á<ñ±îÏCþ` kÖ“¦¾òtç’@žB²Mݧ=zš²v©ÜƒéœƒÊi§QUË=Äkë½W˜æýXçuÒÈ%op·ŒE:ûHLæ±(ÅÃadâ­¨þ‹# ¿!¤0½À8d5.jQ]/ŒåžÙGù8ÃŽˆqÍ,u$›í‹;òù]bXœuU/bt+YN¯áw¶ˆ£¸Šële/†uk]™Á­‰òIDÜ4óü÷ÒÁˤiªQ 9;ƒän–ê¿„W|4ué‡]®äðarsTÌiÛ0ÚqÚÝæOR¹rî'ø¸ðDŒ1ÝBrSáÍÏûâÜl(‘+-íYž`ÔâKù ð¿{—5‡)d° —þJk!‹¾†Ãc©øÌÅBMLÖÔr?¬rHÛ‚ýqçiL¡{Ì«]b†ê•€ÀšêšìÇÔ'‰;YŽ™fDŸ©êE‡u! yœz06l9÷éٖˆý‘%½7O&Ï‹N¬]͉÷ ¼š‰¦åª,s=›A­¨5þ‡rÆ+8ãVŒÜÕD¨w·©žkƒß9 590a)_Ì |óÞÌ"-zË“© 1¿ŸŽÈôN"2¡bùñˆ %úšœ·†äš}|ªâ’AáßQŽà,´ôbèÂ㥢q™Ÿ f±û3½R½ch4ü©b…r®ŽxZ*!@?b“Õ ‘Ž˜ø“×£ùi€j†6…“.''–(ZƇšÎwEHνÕhó]b—Únn½4Ÿ±(êf-}•Ç´ ²>ܳK ™Úõ^!ÇRçŠ()N;ÒÏ-Tjð“ë«Ä8LÀ›iÚº¿³WÕÍÎååËꤾ%ßrújÉXá’5vØÒ7Å_{6ÈöIüh*~pM¹fJ×̧évZµcÛýNÈñSæÁ<-ðh×(­ w:•Ûúš,æé¹SÊ8 Rã•ùí°lZâàÉ7¥?& ÍñWüRb&ŒÈçÇÄt“×òUè”où Qµ6ôcgDz€§¸&¯«3Û-ëÃOÇìtL(ìV]ØyûÌ$½ßçD3‹›>CÝœê“Ô`TTgR¢1¸"Í=¸ËLò6øþ³p§¢U8¸výwö½š€MnÞô¼Ì‚é›ZÙ\t0†'«6¦qÏhD9ö†vXm-îQÁ6êTøŽuw® óá›ñíThU<}ϼ“i…Õ»Á§RÚæ~·Ïß=š¾ÇtÉsYyt¥M†ÌNE˜ÜÖóñz1®Æ©,W‘ÒË;кü¬ &ødJ_Cü_~µ×·›ç5ï@âÕu.©Qß 塲›m¤£v+­ü© q§ðA‰¤@‹>‹gxù MñÕÂßÌ«)Âï¤g$_…uQ’<…ª”i•Œ[βpXS~”‘3š#sï_eÖ<ÖbFð@P“&obئk“´Cm°&œaMíÒ[!HÞñ£€r;£).Dv*•W…D ®ÂÚüþA(ôM(òsŒ{/ñ‰Þû¼¹6ÎðþÛ«5ƒ+HRCvLë·W¬kåƒâÕ.~Oº·:0þt2p¡øNÌYœ…÷~Ö—•Pd`g;|’çËþìiµY®2 È‹¤nQ±0=€œöãÇnÆRÙ]h%ïY@úI÷;í“‹j»Ÿ£Ë=orƒÓ¿/1ÔHŽTÆ1Ä¡®iC–ĘÕnšÞcΘ$¾«_DT7s”m:o\¢Á w³4H¿ ¬µtöÚ"Õ@õª¿Rsëf¹4ÎOï®î*! ª©9W„±¹Êk A·öèCw FŠZuA3]/Ô4°};8˜âÆö²\ØÑ~Aa `×ø±H'U£çy·(?GæFcÑDÕøº3DÛô~"u_çrãS=À5éÃ=S4ÏÅɉÁeª‹gZ ð*.E.¾¤±R¾ª$wÁVm¡6’®§â&Ÿëò…ÿtáS+žI¶2º û¤?[¯û„‹ø(wy«€bT&Üü”; ‚öÐíi²àwFd¬ì²1¡ÜKœÝÑÎ7AÛ^k¢qï°=˜„Z@Nš¶§e­,£#š †üp–·7²äÖ-Ì~Ñû²6S5g¦gÌ ¬¢q]ÖšÝ7Sò˜nÌVÙ%OGÝÔSC£?¢•˜íÚ*h&Sľ®‘KÒúÖ˜À1í¤&p¹Ûƒ‹%|Õ'X46„ÍuÚ[°ªƒIq×"ñX0‡YÅ* ŠYi¢”acn üè Ãwæ½:‚W¯ßððçÊ)Ðû=Ÿ¼ß?½[YìO³Ý:·Óª°Œç.«œ÷R›Rã2Î# +º¦¸ÒrÒê²ÞH6;€Ÿê,~#r±–7C;’H×ù6],î༞Nl˜èFG0q.F{èG¡"b½j¾¨)w]x‹¡«cè+ ™‚ļqGG뱑fßǸ³0¹†¤™lü®l>.~+×#W`à¨;$#ýÎ#2¯-3Q„‘ü2¨òã+¬@q¾8Ú"µÙ-enuÙW÷)Fy©Ù0Ø ”Be{s1N›E3ÑhA{Bi¤³äžÎ?9Ò[ùñÓ‰ooþþõ®YÔtùPüØû Âc¹/SØ¡”.‘­.ã•5S„ƒ:¤x´A&.•{íM!ÕÔ‰‚„‰‰{Ós ™áæœ5Çé„“@{éÑ®ÎÙ%}Ô&rûî,b\D,ˆ> endobj 11 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NZJDLB+CMBX12 /FontDescriptor 84 0 R /FirstChar 14 /LastChar 122 /Widths 75 0 R >> endobj 8 0 obj << /Type /Font /Subtype /Type1 /BaseFont /EUWOLL+CMBX9 /FontDescriptor 86 0 R /FirstChar 65 /LastChar 116 /Widths 78 0 R >> endobj 7 0 obj << /Type /Font /Subtype /Type1 /BaseFont /WCUNSU+CMR10 /FontDescriptor 88 0 R /FirstChar 11 /LastChar 127 /Widths 79 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /TJNTDN+CMR12 /FontDescriptor 90 0 R /FirstChar 44 /LastChar 127 /Widths 81 0 R >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RJJKBA+CMR17 /FontDescriptor 92 0 R /FirstChar 72 /LastChar 121 /Widths 82 0 R >> endobj 22 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UJRPBG+CMR6 /FontDescriptor 94 0 R /FirstChar 49 /LastChar 53 /Widths 68 0 R >> endobj 21 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XNDOVD+CMR7 /FontDescriptor 96 0 R /FirstChar 49 /LastChar 53 /Widths 69 0 R >> endobj 14 0 obj << /Type /Font /Subtype /Type1 /BaseFont /AAFNRC+CMR8 /FontDescriptor 98 0 R /FirstChar 11 /LastChar 121 /Widths 72 0 R >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /BaseFont /IMXNOB+CMR9 /FontDescriptor 100 0 R /FirstChar 11 /LastChar 121 /Widths 77 0 R >> endobj 47 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HUIQGM+CMSL10 /FontDescriptor 102 0 R /FirstChar 46 /LastChar 112 /Widths 62 0 R >> endobj 36 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZEESMU+CMSLTT10 /FontDescriptor 104 0 R /FirstChar 36 /LastChar 122 /Widths 63 0 R >> endobj 12 0 obj << /Type /Font /Subtype /Type1 /BaseFont /FNCZGX+CMSS10 /FontDescriptor 106 0 R /FirstChar 11 /LastChar 123 /Widths 74 0 R >> endobj 32 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YSEBLZ+CMSS8 /FontDescriptor 108 0 R /FirstChar 46 /LastChar 117 /Widths 64 0 R >> endobj 54 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PCVHBW+CMSSBX10 /FontDescriptor 110 0 R /FirstChar 65 /LastChar 85 /Widths 61 0 R >> endobj 31 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HWNESA+CMSSI10 /FontDescriptor 112 0 R /FirstChar 65 /LastChar 121 /Widths 65 0 R >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UEIZYW+CMSY10 /FontDescriptor 114 0 R /FirstChar 3 /LastChar 3 /Widths 80 0 R >> endobj 13 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GUOWTK+CMSY6 /FontDescriptor 116 0 R /FirstChar 3 /LastChar 3 /Widths 73 0 R >> endobj 20 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UPQLYA+CMTI10 /FontDescriptor 118 0 R /FirstChar 11 /LastChar 120 /Widths 70 0 R >> endobj 15 0 obj << /Type /Font /Subtype /Type1 /BaseFont /LZKCUF+CMTI8 /FontDescriptor 120 0 R /FirstChar 11 /LastChar 120 /Widths 71 0 R >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XQBHIS+CMTI9 /FontDescriptor 122 0 R /FirstChar 44 /LastChar 117 /Widths 76 0 R >> endobj 26 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OCPOMV+CMTT10 /FontDescriptor 124 0 R /FirstChar 35 /LastChar 126 /Widths 67 0 R >> endobj 30 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GPDUTY+CMTT9 /FontDescriptor 126 0 R /FirstChar 35 /LastChar 124 /Widths 66 0 R >> endobj 16 0 obj << /Type /Pages /Count 6 /Parent 127 0 R /Kids [2 0 R 18 0 R 24 0 R 28 0 R 34 0 R 38 0 R] >> endobj 43 0 obj << /Type /Pages /Count 6 /Parent 127 0 R /Kids [41 0 R 45 0 R 49 0 R 52 0 R 56 0 R 59 0 R] >> endobj 127 0 obj << /Type /Pages /Count 12 /Kids [16 0 R 43 0 R] >> endobj 128 0 obj << /Type /Catalog /Pages 127 0 R >> endobj 129 0 obj << /Producer (pdfTeX-1.40.3) /Creator (TeX) /CreationDate (D:20120222144602+01'00') /ModDate (D:20120222144602+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6) >> endobj xref 0 130 0000000000 65535 f 0000002450 00000 n 0000002345 00000 n 0000000015 00000 n 0000174301 00000 n 0000174162 00000 n 0000175849 00000 n 0000174023 00000 n 0000173884 00000 n 0000174855 00000 n 0000176408 00000 n 0000173743 00000 n 0000175280 00000 n 0000175987 00000 n 0000174716 00000 n 0000176267 00000 n 0000176832 00000 n 0000006079 00000 n 0000005971 00000 n 0000002644 00000 n 0000176125 00000 n 0000174578 00000 n 0000174440 00000 n 0000009473 00000 n 0000009365 00000 n 0000006218 00000 n 0000176549 00000 n 0000012202 00000 n 0000012094 00000 n 0000009589 00000 n 0000176691 00000 n 0000175706 00000 n 0000175422 00000 n 0000014546 00000 n 0000014438 00000 n 0000012389 00000 n 0000175136 00000 n 0000016825 00000 n 0000016717 00000 n 0000014697 00000 n 0000019077 00000 n 0000018969 00000 n 0000016941 00000 n 0000176941 00000 n 0000022019 00000 n 0000021911 00000 n 0000019205 00000 n 0000174994 00000 n 0000025333 00000 n 0000025225 00000 n 0000022194 00000 n 0000028810 00000 n 0000028702 00000 n 0000025508 00000 n 0000175563 00000 n 0000032064 00000 n 0000031956 00000 n 0000028938 00000 n 0000033567 00000 n 0000033459 00000 n 0000032180 00000 n 0000033683 00000 n 0000033827 00000 n 0000034200 00000 n 0000034566 00000 n 0000035007 00000 n 0000035357 00000 n 0000035735 00000 n 0000036121 00000 n 0000036169 00000 n 0000036217 00000 n 0000036873 00000 n 0000037535 00000 n 0000038219 00000 n 0000038243 00000 n 0000038887 00000 n 0000039519 00000 n 0000039958 00000 n 0000040610 00000 n 0000040938 00000 n 0000041581 00000 n 0000041603 00000 n 0000042068 00000 n 0000042382 00000 n 0000052180 00000 n 0000052534 00000 n 0000055201 00000 n 0000055431 00000 n 0000071721 00000 n 0000072253 00000 n 0000077510 00000 n 0000077788 00000 n 0000083347 00000 n 0000083609 00000 n 0000086033 00000 n 0000086271 00000 n 0000088688 00000 n 0000088926 00000 n 0000098991 00000 n 0000099399 00000 n 0000105345 00000 n 0000105623 00000 n 0000107578 00000 n 0000107808 00000 n 0000113160 00000 n 0000113449 00000 n 0000121081 00000 n 0000121458 00000 n 0000124339 00000 n 0000124585 00000 n 0000128030 00000 n 0000128279 00000 n 0000131816 00000 n 0000132071 00000 n 0000133430 00000 n 0000133663 00000 n 0000135038 00000 n 0000135269 00000 n 0000144551 00000 n 0000144858 00000 n 0000151613 00000 n 0000151899 00000 n 0000154531 00000 n 0000154766 00000 n 0000162545 00000 n 0000162882 00000 n 0000173314 00000 n 0000177051 00000 n 0000177119 00000 n 0000177172 00000 n trailer << /Size 130 /Root 128 0 R /Info 129 0 R /ID [ ] >> startxref 177444 %%EOF quilt-0.63/doc/Makefile0000644000175000017500000000101412332477113015310 0ustar mquinsonmquinsonall : quilt.pdf quilt-rus.pdf quilt.ps : quilt.dvi dvips -t letter -o $@ $< quilt.pdf: main.tex pdflatex --jobname=quilt -t letter $< quilt.dvi : main.tex latex $< && \ mv main.dvi $@ quilt-rus.ps : quilt-rus.dvi dvips -t letter -o $@ $< quilt-rus.pdf: main-rus.tex pdflatex --jobname=quilt-rus -t letter $< quilt-rus.dvi : main-rus.tex latex $< && \ mv main-rus.dvi $@ clean: rm -f {main,quilt}.{dvi,log,aux} {main,quilt}-rus.{dvi,log,aux} distclean: clean rm -f quilt.{ps,pdf,dvi} quilt-rus.{ps,pdf,dvi} quilt-0.63/doc/README.MAIL0000644000175000017500000001003512332477113015254 0ustar mquinsonmquinsonQUILT MAIL COMMAND ================== The mail command starts up the system editor ($EDITOR, or vi if $EDITOR is undefined) with an template in Internet Message Format (RFC 2822). This template is used to generate an introduction, as well as one message for each patch in the selected range of the series file. The template is used as follows: The headers are used in each message generated, and modified as required. The template body is used only for the introduction. In the template, the headers can be modified, additional headers added, and unneeeded headers can be removed. The template header also contains a special Subject-Prefix header which defines a prefix for each subject header. The @num@ and @total@ macros in the Subject-Prefix header are replaced with the patch number and the total number of patches, respectively. The patch number @num@ is zero-padded to the same width that @total@ has. Each message is assigned a unique Message-Id header, and all messages other than the introduction are made to refer to the introduction (using a References header) for proper message threading in mail clients. Patch filenames are stored in Content-Disposition headers so that mail clients will know the original filename. The message timestamps in Date headers in each message is incremented by one second per message, starting with the timestamp of the introduction. If a ~/.signature file exists, this file is appended to each message generated. Recipients and headers can be added, and existing headers can be replaced, individually in each message based on the headers in the introduction. Quilt does not enforce a specific patch file format. The mail command has a built-in heuristic for extracting subjects from patches, though: * if the patch starts with something that looks like a mail header, and there is a Subject header, use this as the subject, or else * if the patch has DESC a line followed by an EDESC line, use the text in between as the subject, or else * if the first paragraph is short enough to serve as a subject (150 characters or less), use the first paragraph as the subject. All bracketed fields and Fwd:, Fw:, Re:, Aw: are stripped from subject headers as well. If no subject can be extracted from a patch, or there are duplicate subjects, the mail command will print an error message and abort. In case a patch header contains a line starting with `Cc:', `Acked-by:', or `Signed-off-by:', the email address specified is added to the CC header for this patch. If a patch header contains a line starting with `To:', the email address specified is added to To header for this patch. If the user specified in `To:', `Cc:', `Acked-by:', or `Signed-off-by:' equals the current user's name ($LOGNAME or $(whoami) if LOGNAME is undefined), this does not add a recipient. Each recipient will occur in the resulting message only once. Duplicates are filtered out. This happens as the headers are read, so the relative order of the To, Cc, and Bcc headers should not be changed. Recipients are checked for RFC 2822 conformance (at least that is the intention; actually the checks are not perfect). This means that special characters must be quoted, and 8-bit characters must be encoded. In practice it probably makes little sense to use anything fancy right now; this area still needs some work. Character set recognition and proper qualifying is also still missing. The heuristic can be overridden by defining a quilt_mail_patch_filter function in ~/.quiltrc or /etc/quilt.quiltrc. This function is passed the patch name as argument (without the $QUILT_PATCHES prefix). It shall read the patch from standard input, and write a RFC 2822 message header and the patch to standard output. Headers of the form ``Recipient-$X: ...'' denote recipients to be added to the $X header (for example, ``Recipient-Cc: agruen@suse.de''). Headers of the form ``Replace-$X: ...'' specify that header $X is to be replaced by this header (for eaxmple, ``Replace-Subject: Patch description''). All other headers are appended to the existing headers. quilt-0.63/doc/README.EMACS0000644000175000017500000000134712332477113015370 0ustar mquinsonmquinsonIntroduction ============ quilt-el minor mode (lib/quilt.el) is toggled by `M-x quilt-mode'. It provides the following features: - You can issue many quilt sub-commands by shortcut keys. By using these keys, quilt-el can also detect moving the patch stack and can refresh corresponding buffers automatically. - If a buffer is associated with the file which is not included in the topmost patch, the buffer becomes read-only. So you can avoid editing wrong files accidentally. - After quilt-el is once enabled, all files which you open are checked whether it is in a quilt hierarchy or not. If so, corresponding buffer becomes quilt-mode automatically. -- Satoru Takeuchi , Sun, 14 Jan 2007 23:57:29 +0900 quilt-0.63/po/quilt.pot0000644000175000017500000007576112332477667015445 0ustar mquinsonmquinson#: bin/quilt.in:40 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "" #: bin/quilt.in:41 msgid " quilt --version" msgstr "" #: bin/quilt.in:43 msgid "Commands are:" msgstr "" #: bin/quilt.in:48 msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately." msgstr "" #: quilt/add.in:22 msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "" #: quilt/add.in:25 msgid "" "\n" "Add one or more files to the topmost or named patch. Files must be\n" "added to the patch before being modified. Files that are modified by\n" "patches already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" #: quilt/add.in:48 quilt/add.in:54 msgid "File %s is located below %s\\n" msgstr "" #: quilt/add.in:103 msgid "File %s is already in patch %s\\n" msgstr "" #: quilt/add.in:111 quilt/remove.in:82 quilt/revert.in:84 msgid "File %s modified by patch %s\\n" msgstr "" #: quilt/add.in:119 msgid "Cannot add symbolic link %s\\n" msgstr "" #: quilt/add.in:126 msgid "Failed to back up file %s\\n" msgstr "" #: quilt/add.in:137 msgid "File %s added to patch %s\\n" msgstr "" #: quilt/annotate.in:22 msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "" #: quilt/annotate.in:25 msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" #: quilt/applied.in:22 msgid "Usage: quilt applied [patch]\\n" msgstr "" #: quilt/applied.in:25 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" #: quilt/delete.in:22 msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "" #: quilt/delete.in:25 msgid "" "\n" "Remove the specified or topmost patch from the series file. If the\n" "patch is applied, quilt will attempt to remove it first. (Only the\n" "topmost patch can be removed right now.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" #: quilt/delete.in:89 msgid "No next patch\\n" msgstr "" #: quilt/delete.in:102 quilt/scripts/patchfns.in:604 msgid "Patch %s is currently applied\\n" msgstr "" #: quilt/delete.in:114 msgid "Removed patch %s\\n" msgstr "" #: quilt/delete.in:116 msgid "Failed to remove patch %s\\n" msgstr "" #: quilt/delete.in:127 msgid "Failed to backup patch file %s\\n" msgstr "" #: quilt/delete.in:134 msgid "Failed to remove patch file %s\\n" msgstr "" #: quilt/diff.in:24 msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color[=always|auto|never]] [file ...]\\n" msgstr "" #: quilt/diff.in:28 msgid "" "\n" "Produces a diff of the specified file(s) in the topmost or specified\n" "patch. If no files are specified, all files that are modified are\n" "included.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine patch\n" "\tCreate a combined diff for all patches between this patch and\n" "\tthe patch specified with -P. A patch name of \\`-' is equivalent\n" "\tto specifying the first applied patch.\n" "\n" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" #: quilt/diff.in:226 msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" #: quilt/diff.in:240 msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" #: quilt/diff.in:249 msgid "No snapshot to diff against\\n" msgstr "" #: quilt/diff.in:283 quilt/files.in:105 quilt/mail.in:422 msgid "Patch %s not applied before patch %s\\n" msgstr "" #: quilt/diff.in:351 msgid "File %s is not being modified\\n" msgstr "" #: quilt/diff.in:370 msgid "Diff failed, aborting\\n" msgstr "" #: quilt/diff.in:377 msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "" #: quilt/edit.in:24 msgid "Usage: quilt edit file ...\\n" msgstr "" #: quilt/edit.in:27 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" #: quilt/files.in:22 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "" #: quilt/files.in:25 msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" #: quilt/fold.in:22 msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "" #: quilt/fold.in:25 msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" #: quilt/fold.in:131 msgid "File %s may be corrupted\\n" msgstr "" #: quilt/fork.in:22 msgid "Usage: quilt fork [new_name]\\n" msgstr "" #: quilt/fork.in:25 msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" #: quilt/fork.in:84 msgid "Patch %s exists already, please choose a new name\\n" msgstr "" #: quilt/fork.in:96 msgid "Fork of patch %s to patch %s failed\\n" msgstr "" #: quilt/fork.in:102 quilt/refresh.in:347 msgid "Fork of patch %s created as %s\\n" msgstr "" #: quilt/graph.in:22 msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" #: quilt/graph.in:26 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" #: quilt/grep.in:22 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "" #: quilt/grep.in:25 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" #: quilt/header.in:24 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" #: quilt/header.in:28 msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" #: quilt/header.in:169 msgid "Replaced header of patch %s\\n" msgstr "" #: quilt/header.in:172 msgid "Appended text to header of patch %s\\n" msgstr "" #: quilt/import.in:22 msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "" #: quilt/import.in:25 msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" #: quilt/import.in:73 msgid "Patch %s does not exist\\n" msgstr "" #: quilt/import.in:96 msgid "Patch headers differ:\\n" msgstr "" #: quilt/import.in:99 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" #: quilt/import.in:164 msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "" #: quilt/import.in:194 msgid "Patch %s is applied\\n" msgstr "" #: quilt/import.in:203 msgid "Patch %s already exists in series.\\n" msgstr "" #: quilt/import.in:209 msgid "Patch %s exists. Replace with -f.\\n" msgstr "" #: quilt/import.in:220 msgid "Replacing patch %s with new version\\n" msgstr "" #: quilt/import.in:224 msgid "Importing patch %s\\n" msgstr "" #: quilt/import.in:226 msgid "Importing patch %s (stored as %s)\\n" msgstr "" #: quilt/import.in:239 msgid "Failed to import patch %s\\n" msgstr "" #: quilt/import.in:248 quilt/refresh.in:334 msgid "Failed to insert patch %s into file series\\n" msgstr "" #: quilt/mail.in:24 msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [first_patch [last_patch]]\\n" msgstr "" #: quilt/mail.in:27 msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" #: quilt/mail.in:192 quilt/mail.in:200 msgid "Introduction message already specified" msgstr "" #: quilt/mail.in:262 msgid "You have to install 'formail' to use 'quilt mail'" msgstr "" #: quilt/mail.in:305 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "" #: quilt/mail.in:450 msgid "Unable to extract a subject header from %s\\n" msgstr "" #: quilt/mail.in:474 msgid "Patches %s have duplicate subject headers.\\n" msgstr "" #: quilt/mail.in:483 msgid "File %s does not exist\\n" msgstr "" #: quilt/mail.in:543 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "" #: quilt/mail.in:546 msgid "Introduction has no subject header\\n" msgstr "" #: quilt/mail.in:660 msgid "Introduction saved as %s\\n" msgstr "" #: quilt/new.in:22 msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "" #: quilt/new.in:25 msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" #: quilt/new.in:76 msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "" #: quilt/new.in:97 quilt/refresh.in:185 msgid "Patch %s exists already\\n" msgstr "" #: quilt/new.in:108 msgid "Patch %s is now on top\\n" msgstr "" #: quilt/new.in:110 quilt/refresh.in:343 msgid "Failed to create patch %s\\n" msgstr "" #: quilt/next.in:22 msgid "Usage: quilt next [patch]\\n" msgstr "" #: quilt/next.in:25 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" #: quilt/patches.in:24 msgid "" "Usage: quilt patches [-v] [--color[=always|auto|never]] {file} [files...]\\n" msgstr "" #: quilt/patches.in:27 msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" #: quilt/pop.in:22 msgid "Usage: quilt pop [-afRqv] [num|patch]\\n" msgstr "" #: quilt/pop.in:25 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\n" "\n" "-a\tRemove all applied patches.\n" "\n" "-f\tForce remove. The state before the patch(es) were applied will\n" "\tbe restored from backup files.\n" "\n" "-R\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" msgstr "" #: quilt/pop.in:100 quilt/scripts/patchfns.in:880 msgid "Failed to copy files to temporary directory\\n" msgstr "" #: quilt/pop.in:125 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" #: quilt/pop.in:150 msgid "Patch %s appears to be empty, removing\\n" msgstr "" #: quilt/pop.in:155 msgid "Removing patch %s\\n" msgstr "" #: quilt/pop.in:226 msgid "Patch %s needs to be refreshed first.\\n" msgstr "" #: quilt/pop.in:236 msgid "No patch removed\\n" msgstr "" #: quilt/pop.in:252 quilt/scripts/patchfns.in:513 msgid "No patches applied\\n" msgstr "" #: quilt/pop.in:259 quilt/push.in:422 msgid "Now at patch %s\\n" msgstr "" #: quilt/previous.in:22 msgid "Usage: quilt previous [patch]\\n" msgstr "" #: quilt/previous.in:25 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" #: quilt/push.in:24 msgid "" "Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" msgstr "" #: quilt/push.in:27 msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" #: quilt/push.in:68 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "" #: quilt/push.in:181 msgid "Applying patch %s\\n" msgstr "" #: quilt/push.in:215 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "" #: quilt/push.in:219 msgid "Patch %s appears to be empty; applied\\n" msgstr "" #: quilt/push.in:223 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "" #: quilt/push.in:233 msgid "Patch %s can be reverse-applied\\n" msgstr "" #: quilt/push.in:236 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "" #: quilt/push.in:291 msgid "Patch %s is already applied; check your series file\\n" msgstr "" #: quilt/push.in:396 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "" #: quilt/refresh.in:22 msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" #: quilt/refresh.in:26 msgid "" "\n" "Refreshes the specified patch, or the topmost patch by default.\n" "Documentation that comes before the actual patch in the patch file is\n" "retained.\n" "\n" "It is possible to refresh patches that are not on top. If any patches\n" "on top of the patch to refresh modify the same files, the script aborts\n" "by default. Patches can still be refreshed with -f. In that case this\n" "script will print a warning for each shadowed file, changes by more\n" "recent patches will be ignored, and only changes in files that have not\n" "been modified by any more recent patches will end up in the specified\n" "patch.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" #: quilt/refresh.in:171 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "" #: quilt/refresh.in:202 msgid "" "Cannot refresh patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" #: quilt/refresh.in:235 msgid "Diff failed on file '%s', aborting\\n" msgstr "" #: quilt/refresh.in:241 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" #: quilt/refresh.in:247 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" #: quilt/refresh.in:253 quilt/refresh.in:355 msgid "Nothing in patch %s\\n" msgstr "" #: quilt/refresh.in:325 msgid "Patch %s is unchanged\\n" msgstr "" #: quilt/refresh.in:353 msgid "Refreshed patch %s\\n" msgstr "" #: quilt/remove.in:22 msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "" #: quilt/remove.in:25 msgid "" "\n" "Remove one or more files from the topmost or named patch. Files that\n" "are modified by patches on top of the specified patch cannot be removed.\n" "\n" "-P patch\n" "\tRemove named files from the named patch.\n" msgstr "" #: quilt/remove.in:73 quilt/revert.in:75 msgid "File %s is not in patch %s\\n" msgstr "" #: quilt/remove.in:91 msgid "Failed to remove file %s from patch %s\\n" msgstr "" #: quilt/remove.in:105 msgid "File %s removed from patch %s\\n" msgstr "" #: quilt/rename.in:22 msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "" #: quilt/rename.in:25 msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" #: quilt/rename.in:84 msgid "Patch %s exists already, please choose a different name\\n" msgstr "" #: quilt/rename.in:98 msgid "Renaming of patch %s to %s failed\\n" msgstr "" #: quilt/rename.in:104 msgid "Patch %s renamed to %s\\n" msgstr "" #: quilt/revert.in:22 msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "" #: quilt/revert.in:25 msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" #: quilt/revert.in:103 quilt/revert.in:112 msgid "File %s is unchanged\\n" msgstr "" #: quilt/revert.in:120 msgid "Failed to revert changes to %s in patch %s\\n" msgstr "" #: quilt/revert.in:124 msgid "Changes to %s in patch %s reverted\\n" msgstr "" #: quilt/scripts/edmail.in:96 #, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "" #: quilt/scripts/edmail.in:114 #, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "" #: quilt/scripts/patchfns.in:232 quilt/scripts/patchfns.in:526 msgid "%s is not a regular file\\n" msgstr "" #: quilt/scripts/patchfns.in:480 quilt/scripts/patchfns.in:497 msgid "No patches in series\\n" msgstr "" #: quilt/scripts/patchfns.in:482 quilt/scripts/patchfns.in:499 msgid "No series file found\\n" msgstr "" #: quilt/scripts/patchfns.in:555 msgid "Patch %s is not in series\\n" msgstr "" #: quilt/scripts/patchfns.in:583 msgid "Patch %s is not applied\\n" msgstr "" #: quilt/scripts/patchfns.in:620 msgid "File series fully applied, ends at patch %s\\n" msgstr "" #: quilt/scripts/patchfns.in:898 msgid "Failed to patch temporary files\\n" msgstr "" #: quilt/scripts/patchfns.in:941 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" #: quilt/scripts/patchfns.in:1094 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "" #: quilt/series.in:22 msgid "Usage: quilt series [--color[=always|auto|never]] [-v]\\n" msgstr "" #: quilt/series.in:25 msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "-v\tVerbose, more user friendly output.\n" msgstr "" #: quilt/setup.in:35 quilt/setup.in:55 msgid "Directory %s exists\\n" msgstr "" #: quilt/setup.in:61 msgid "File %s exists\\n" msgstr "" #: quilt/setup.in:102 msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] " "{specfile|seriesfile}\\n" msgstr "" #: quilt/setup.in:105 msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" msgstr "" #: quilt/setup.in:176 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" #: quilt/setup.in:179 msgid "The -v option will show rpm's output\\n" msgstr "" #: quilt/setup.in:231 quilt/setup.in:243 msgid "File %s not found\\n" msgstr "" #: quilt/setup.in:234 quilt/setup.in:246 msgid "Unpacking archive %s\\n" msgstr "" #: quilt/setup.in:255 msgid "Trying alternative patches and series names..." msgstr "" #: quilt/snapshot.in:22 msgid "Usage: quilt snapshot [-d]\\n" msgstr "" #: quilt/snapshot.in:25 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" #: quilt/top.in:22 msgid "Usage: quilt top\\n" msgstr "" #: quilt/top.in:25 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" #: quilt/unapplied.in:22 msgid "Usage: quilt unapplied [patch]\\n" msgstr "" #: quilt/unapplied.in:25 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" #: quilt/upgrade.in:25 msgid "Usage: quilt upgrade\\n" msgstr "" #: quilt/upgrade.in:28 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" #: quilt/upgrade.in:67 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "" #: quilt/upgrade.in:71 msgid "Converting meta-data to version %s\\n" msgstr "" #: quilt/upgrade.in:102 msgid "Conversion failed\\n" msgstr "" #: quilt/upgrade.in:103 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" quilt-0.63/po/fr.po0000644000175000017500000016501312332477667014520 0ustar mquinsonmquinson# quilt french translation # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # Martin Quinson , 2003, 2013, 2014. # Jean Delvare , 2005, 2011. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: quilt 0.43\n" "PO-Revision-Date: 2014-05-07 19:52+0200\n" "Last-Translator: Martin Quinson \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: bin/quilt.in:40 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "Usage : quilt [--trace[=verbose]] [--quiltrc=XX] commande [-h] ..." #: bin/quilt.in:41 msgid " quilt --version" msgstr " quilt --version" #: bin/quilt.in:43 msgid "Commands are:" msgstr "Les commandes sont :" #: bin/quilt.in:48 msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately." msgstr "" "\n" "Options globales :\n" "\n" "--trace\n" "\tLance la commande en mode trace de bash (-x). Pour le debug interne.\n" "\n" "--quiltrc fichier\n" "\tUtilise le fichier de configuration spécifié au lieu de ~/.quiltrc\n" "\t(ou @ETCDIR@/quilt.quiltrc si ~/.quiltrc n'existe pas). Voir la\n" "\tdocumentation pdf pour plus de détails sur son contenu potentiel.\n" "La valeur spéciale \\\"-\\\" spécifie à quilt de ne lire aucun fichier\n" "de configuration.\n" "\n" "--version\n" "\tAffiche le numéro de version et sort immédiatement." #: quilt/add.in:22 msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "Usage : quilt add [-P patch] {fichier} ...\\n" #: quilt/add.in:25 msgid "" "\n" "Add one or more files to the topmost or named patch. Files must be\n" "added to the patch before being modified. Files that are modified by\n" "patches already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" "\n" "Ajoute un ou plusieurs fichiers au patch indiqué ou à celui au sommet.\n" "Les fichiers doivent être ajoutés au patch avant toute modification.\n" "Les fichiers modifiés par d'autres patches à la fois plus haut dans la pile\n" "et déjà appliqués ne peuvent pas être ajoutés.\n" "\n" "-P patch\n" "\tPatch auquel les fichiers doivent être ajoutés.\n" #: quilt/add.in:48 quilt/add.in:54 msgid "File %s is located below %s\\n" msgstr "Le fichier %s est situé en dessous de %s\\n" #: quilt/add.in:103 msgid "File %s is already in patch %s\\n" msgstr "Le fichier %s est déjà dans le patch %s\\n" #: quilt/add.in:111 quilt/remove.in:82 quilt/revert.in:84 msgid "File %s modified by patch %s\\n" msgstr "Le fichier %s est modifié par le patch %s\\n" #: quilt/add.in:119 msgid "Cannot add symbolic link %s\\n" msgstr "Impossible d'ajouter le lien symbolique %s\\n" #: quilt/add.in:126 msgid "Failed to back up file %s\\n" msgstr "Impossible de faire une copie de sécurité de %s\\n" #: quilt/add.in:137 msgid "File %s added to patch %s\\n" msgstr "Le fichier %s a été ajouté au patch %s\\n" #: quilt/annotate.in:22 msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "Usage : quilt annotate [-P patch] {fichier}\\n" #: quilt/annotate.in:25 msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" "\n" "Affiche une version annotée du fichier spécifié, montrant quel\n" "patch modifie chaque ligne. Seuls les patches appliqués sont\n" "pris en compte.\n" "\n" "-P patch\n" "\tAnnote le fichier tel qu'il se trouve après application du patch\n" "\tspécifié plutôt que d'aller jusqu'au patch au sommet.\n" #: quilt/applied.in:22 msgid "Usage: quilt applied [patch]\\n" msgstr "Usage : quilt applied [patch]\\n" #: quilt/applied.in:25 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" "\n" "Affiche la liste des patches appliqués, ou la liste de tous les patches\n" "jusqu'à celui passé en paramètre (inclus).\n" #: quilt/delete.in:22 msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "Usage : quilt delete [-r] [--backup] [patch|-n]\\n" #: quilt/delete.in:25 msgid "" "\n" "Remove the specified or topmost patch from the series file. If the\n" "patch is applied, quilt will attempt to remove it first. (Only the\n" "topmost patch can be removed right now.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" "\n" "Efface le patch spécifié (ou celui au sommet de la pile) de la série \n" "actuelle. Si le patch est appliqué, quilt tentera de le retirer avant.\n" "(Seul le patch au sommet peut être retiré pour l'instant).\n" "\n" "-n\tEfface le patch qui suit celui qui est au sommet, au lieu du\n" "\tpatch spécifié ou de celui qui est au sommet.\n" "\n" "-r\tSupprime également le patch enlevé du répertoire patches.\n" "\n" "--backup\n" "\tRenomme le fichier en patch~ au lieu de le supprimer.\n" "\tIgnoré si \\`-r' n'est pas également utilisé.\n" #: quilt/delete.in:89 msgid "No next patch\\n" msgstr "Pas de patch suivant\\n" #: quilt/delete.in:102 quilt/scripts/patchfns.in:604 msgid "Patch %s is currently applied\\n" msgstr "Le patch %s est actuellement appliqué\\n" #: quilt/delete.in:114 msgid "Removed patch %s\\n" msgstr "Patch %s retiré\\n" #: quilt/delete.in:116 msgid "Failed to remove patch %s\\n" msgstr "Impossible de retirer le patch %s\\n" #: quilt/delete.in:127 msgid "Failed to backup patch file %s\\n" msgstr "Impossible de faire une copie de sécurité du fichier %s\\n" #: quilt/delete.in:134 msgid "Failed to remove patch file %s\\n" msgstr "Impossible de retirer le patch %s\\n" #: quilt/diff.in:24 msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color[=always|auto|never]] [file ...]\\n" msgstr "" "Usage : quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utilitaire] [--no-timestamps] [--no-" "index] [--sort] [--color[=always|auto|never]] [fichier ...]\\n" #: quilt/diff.in:28 msgid "" "\n" "Produces a diff of the specified file(s) in the topmost or specified\n" "patch. If no files are specified, all files that are modified are\n" "included.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine patch\n" "\tCreate a combined diff for all patches between this patch and\n" "\tthe patch specified with -P. A patch name of \\`-' is equivalent\n" "\tto specifying the first applied patch.\n" "\n" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" "\n" "Produit un diff du ou des fichiers spécifiés par le patch spécifié (ou à\n" "défaut, par le patch au sommet). Si aucun fichier n'est indiqué, tous les\n" "fichiers modifiés par ce patch sont inclus.\n" "\n" "-p n\tCrée un patch au style -p n (-p0 et -p1 sont possibles).\n" "\n" "-p ab\tCrée un patch au style -p 1, mais utilise a/fichier et b/fichier\n" "\tcomme noms de l'ancien et du nouveau fichier, au lieu des noms par\n" "\tdéfaut rep.orig/fichier et rep/fichier.\n" "\n" "-u, -U num, -c, -C num\n" "\tCrée un diff unifié (-u, -U) ayant num lignes de contexte. \n" "\tCrée un diff contextuel (-c, -C) ayant num lignes de contexte. \n" "\tPar défaut, les diffs ont 3 lignes de contexte.\n" "\n" "--no-timestamps\n" "\tOmet les tampons («timestamps») dans les entêtes de patch.\n" "\n" "--no-index\n" "\tOmet les lignes Index:.\n" "\n" "-z\tAffiche sur la sortie standard les changements effectués par rapport\n" "\tau patch spécifié (ou celui au sommet à défaut).\n" "\n" "-R\tCrée un diff inverse.\n" "\n" "-P patch\n" "\tCrée un diff pour ce patch (par défaut, le patch au sommet)\n" "\n" "--combine patch\n" "\tCrée un patch combiné pour tous les patches entre celui spécifié\n" "\tici et celui spécifié avec l'argument -P. Utiliser «-» comme nom\n" "\tde patch est équivalent à spécifier le premier patch appliqué.\n" "\n" "--snapshot\n" "\tCrée un diff à partir de l'instantané (voir «quilt snapshot -h»).\n" "\n" "--diff=utilitaire\n" "\tUtilise le programme spécifié pour générer le diff. Ce programme\n" "\test invoqué avec le nom du fichier originel et celui du nouveau \n" "\tfichier comme arguments.\n" "\n" "--color[=always|auto|never]\n" "\tColorise la syntaxe toujours («always»), de manière automatique\n" "\t(«auto») ou jamais («never»).\n" "\t«auto» n'est activé par défaut que si la sortie est un tty.\n" "\n" "--sort\tTrie les fichiers par leur nom au lieu de préserver leur ordre\n" "\td'origine.\n" #: quilt/diff.in:226 msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" "Les options «--combine», «--snapshot» et «-z» ne peuvent pas être combinées." "\\n" #: quilt/diff.in:240 msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "Impossible de créer des patches avec -p%s. Veuillez spécifier -p0, -p1 ou -" "pab à la place\\n" #: quilt/diff.in:249 msgid "No snapshot to diff against\\n" msgstr "Pas d'instantané avec lequel comparer\\n" #: quilt/diff.in:283 quilt/files.in:105 quilt/mail.in:422 msgid "Patch %s not applied before patch %s\\n" msgstr "Le patch %s n'est pas appliqué avant %s\\n." #: quilt/diff.in:351 msgid "File %s is not being modified\\n" msgstr "Le fichier %s n'est pas modifié.\\n" #: quilt/diff.in:370 msgid "Diff failed, aborting\\n" msgstr "Le diff a échoué. Abandon.\\n" #: quilt/diff.in:377 msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "Attention: un patch plus recent modifie des fichiers communs à %s\\n" #: quilt/edit.in:24 msgid "Usage: quilt edit file ...\\n" msgstr "Usage : quilt edit {fichier} ...\\n" #: quilt/edit.in:27 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" "\n" "Édite le(s) fichier(s) spécifiés au sein de \\$EDITOR (%s) après addition \n" "au patch du sommet.\n" #: quilt/files.in:22 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "Usage : quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" #: quilt/files.in:25 msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" "\n" "Affiche la liste des fichiers que le patch au sommet (ou celui spécifé)\n" "modifie.\n" "\n" "-a\tListe tous les fichiers de tous les patches actuellement appliqués.\n" "\n" "-l\tAffiche également le nom du patch.\n" "\n" "-v\tAffichage verbeux, plus simple à lire.\n" "\n" "--combine patch\n" "\tAffiche la liste pour tous les patches entre ce patch et le patch au\n" "\tsommet (ou le patch spécifié). Le nom de fichier « - » correspond au\n" "\tpremier patch appliqué.\n" #: quilt/fold.in:22 msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "Usage : quilt fold [-R] [-q] [-f] [-p strip-level]\\n" #: quilt/fold.in:25 msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" "\n" "Intégrer le patch lu depuis l'entrée standard dans le patch au sommet :\n" "Après s'être assuré que tous les fichiers modifiés par le patch en entrée \n" "font déjà partie du patch au sommet, le patch d'entrée est appliqué avec \n" "le strip-level spécifié (1 par défaut).\n" "\n" "-R\tApplique le patch à l'envers.\n" "\n" "-q\tOpère silencieusement.\n" "\n" "-f\tForce l'application, même si cela doit produire des rejets. Excepté en\n" "\tmode silencieux, applique le patch interactivement : l'utilitaire patch\n" "\tpeut poser des questions.\n" "\n" "-p strip-level\n" "\tNombre de niveaux de répertoires à retirer lors de l'application du \n" "\tpatch.\n" #: quilt/fold.in:131 msgid "File %s may be corrupted\\n" msgstr "Le fichier %s est peut-être corrompu\\n" #: quilt/fork.in:22 msgid "Usage: quilt fork [new_name]\\n" msgstr "Usage : quilt fork [nouveau_nom]\\n" #: quilt/fork.in:25 msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" "\n" "Crée un embranchement («fork») au niveau du patch au sommet. Créer un\n" "embranchement signifie créer une copie à l'identique d'un patch sous un\n" "nouveau nom, et utiliser ce nouveau nom au lieu du nom d'origine dans la\n" "série courante. C'est utile lorsqu'un patch doit être modifié mais que\n" "la version originale doit également être préservée, par exemple parce\n" "qu'elle est utilisée dans une autre série, ou pour conserver\n" "l'historique d'un patch. Une séquence de commandes classique serait :\n" "fork (créer un embranchement), edit (éditer le patch), refresh\n" "(rafraîchir le patch).\n" "\n" "Si nouveau_nom n'est pas précisé, le nouveau nom du patch sera le nom\n" "actuel suivi de \\`-2'. Si le nom du patch se termine déjà par un\n" "tiret suivi d'un nombre, ce nombre est augmenté à la place (par\n" "exemple : patch.diff, patch-2.diff, patch-3.diff).\n" #: quilt/fork.in:84 msgid "Patch %s exists already, please choose a new name\\n" msgstr "Le patch %s existe déjà, veuillez choisir un nouveau nom\\n" #: quilt/fork.in:96 msgid "Fork of patch %s to patch %s failed\\n" msgstr "Le fork de %s en %s a échoué\\n" #: quilt/fork.in:102 quilt/refresh.in:347 msgid "Fork of patch %s created as %s\\n" msgstr "Le fork de %s a été créé en tant que %s\\n" #: quilt/graph.in:22 msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" "Usage : quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" #: quilt/graph.in:26 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" "\n" "Génère un graphe orienté compatible dot(1), qui représente les\n" "dépendances entre les patches appliqués. Un patch dépend d'un autre patch\n" "si les deux modifient un même fichier, ou, avec l'option --lines, si\n" "leurs modifications se recouvrent. Par défaut, le graphe inclut tous les\n" "patches dont le patch au sommet dépend.\n" "Si le nom d'un patch est spécifié, le graphe est créé pour celui-ci au\n" "lieu du patch au sommet. Le graphe inclura alors tous les patches qui\n" "en dépendent, ainsi que tous les patches dont lui-même dépend.\n" "\n" "--all\tGénère un graphe incluant tous les patches appliqués et\n" "\tleurs dépendances. (Les patches non-appliqués ne sont pas\n" "\tinclus.)\n" "\n" "--reduce\n" "\tElimine les arcs transitifs du graphe.\n" "\n" "--lines[=num]\n" "\tGénère les dépendances en regardant les lignes modifiées par\n" "\tles patches. A moins qu'une valeur différente ne soit spécifiée,\n" "\tdeux lignes de contexte sont incluses.\n" "--edge-labels=files\n" "\tEtiquette les arcs avec le nom des fichiers modifiés par les\n" "\tpatches adjacents.\n" "\n" "-T ps\tProduit directement un fichier PostScript.\n" #: quilt/grep.in:22 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "Usage : quilt grep [-h|options] {motif}\\n" #: quilt/grep.in:25 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" "\n" "Recherche récursivement un motif dans les fichiers source, en omettant\n" "les patches et les meta-informations de quilt. Si aucun fichier n'est\n" "précisé, recherche dans tout l'arbre des sources. Voir la page de manuel\n" "de grep(1) pour les options.\n" "\n" "-h\tAffiche cette aide. L'option -h de grep peut être passée\n" "\taprès un double tiret (--). Les motifs qui commencent par un\n" "\ttiret peuvent être passées après un second double tiret\n" "\t(-- --).\n" #: quilt/header.in:24 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "Usage : quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" #: quilt/header.in:28 msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" "\n" "Affiche ou modifie l'en-tête du patch au sommet ou spécifié.\n" "\n" "-a, -r, -e\n" "\tAjoute à la fin de (-a) ou remplace (-r) l'en-tête existant, ou\n" "\tédite (-e) l'en-tête en utilisant \\$EDITOR (%s). Si aucune de\n" "\tces options n'est utilisée, affiche l'en-tête actuel du patch.\n" "\n" "--strip-diffstat\n" "\tOmet la partie diffstat de l'en-tête.\n" "\n" "--strip-trailing-whitespace\n" "\tSupprime les espaces de fin de ligne de l'en-tête.\n" "\n" "--backup\n" "\tCrée une sauvegarde de la version originale du patch en tant\n" "\tque patch~.\n" #: quilt/header.in:169 msgid "Replaced header of patch %s\\n" msgstr "En-tête du patch %s remplacé\\n" #: quilt/header.in:172 msgid "Appended text to header of patch %s\\n" msgstr "Texte ajouté à la fin de l'en-tête du patch %s\\n" #: quilt/import.in:22 msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "" "Usage : quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] " "fichier_de_patch ...\\n" #: quilt/import.in:25 msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" "\n" "Importe des patchs externes. Ces patches sont insérés juste après\n" "le patch au sommet, et doivent ensuite être appliqués (utiliser\n" "« quilt push »).\n" "\n" "-p num\n" "\tNombre de niveaux de répertoires à retirer lors de l'application du \n" "\tpatch (1 par défaut).\n" "\n" "-R\n" "\tApplique le patch à l'envers.\n" "\n" "-P patch\n" "\tNom de fichier à utiliser au sein de quilt. Cette option ne peut être\n" "\tutilisée que lors de l'import d'un patch unique.\n" "\n" "-f\tÉcrase/met à jour les patchs existants.\n" "\n" "-d {o|a|n}\n" "\tLors du remplacement d'un patch existant, garde l'ancien (o), tous\n" "\t(a), ou le nouvel (n) en-tête. Si les deux patches incluent des\n" "\ten-têtes, cette option doit être spécifiée. Cette option n'est\n" "\teffective que lorsque -f est utilisé.\n" #: quilt/import.in:73 msgid "Patch %s does not exist\\n" msgstr "Le patch %s n'existe pas\\n" #: quilt/import.in:96 msgid "Patch headers differ:\\n" msgstr "Les en-têtes des patches diffèrent :\\n" #: quilt/import.in:99 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" "Veuillez utiliser -d {o|a|n} pour spécifier quel(s) en-tête(s) conserver.\\n" #: quilt/import.in:164 msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "" "L'option « -P » ne peut être utilisé que lors de l'import d'un seul patch.\\n" #: quilt/import.in:194 msgid "Patch %s is applied\\n" msgstr "Le patch %s est appliqué\\n" #: quilt/import.in:203 msgid "Patch %s already exists in series.\\n" msgstr "Le patch %s existe déjà dans la série.\\n" #: quilt/import.in:209 msgid "Patch %s exists. Replace with -f.\\n" msgstr "Le patch %s existe. Utilisez -f pour le remplacer.\\n" #: quilt/import.in:220 msgid "Replacing patch %s with new version\\n" msgstr "Remplacement du patch %s avec la nouvelle version\\n" #: quilt/import.in:224 msgid "Importing patch %s\\n" msgstr "Import du patch %s\\n" #: quilt/import.in:226 msgid "Importing patch %s (stored as %s)\\n" msgstr "Import du patch %s (enregistré dans %s)\\n" #: quilt/import.in:239 msgid "Failed to import patch %s\\n" msgstr "Impossible d'importer le patch %s\\n" #: quilt/import.in:248 quilt/refresh.in:334 msgid "Failed to insert patch %s into file series\\n" msgstr "Impossible d'inserer %s dans le fichier de série.\\n" #: quilt/mail.in:24 msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [first_patch [last_patch]]\\n" msgstr "" "Usage : quilt mail {--mbox fichier|--send} [-m texte] [-M fichier] [--prefix " "préfixe] [--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [premier_patch [dernier_patch]]\\n" #: quilt/mail.in:27 msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" "\n" "Crée des messages de courrier à partir de tous les patches de la série.\n" "Ces fichiers sont ensuite stockés dans un fichier mbox ou expédiés\n" "immédiatement. Un éditeur est ouvert avec un patron pour saisir une\n" "introduction. Voir %s pour plus de détails.\n" "Lorsqu'un intervalle de patches est spécifié, \\`-' utilisé comme nom du\n" "premier patch désigne le premier patch de la série, tandis que \\`-'\n" "utilisé comme nom du dernier patch désigne le dernier patch de la série.\n" "\n" "-m texte\n" "\n" "\tTexte à utiliser pour l'introduction. Lorsque cette option est\n" "\tutilisée, l'éditeur n'est pas invoqué, et les patches sont traités\n" "\timmédiatement.\n" "\n" "-M fichier\n" "\tComme l'option -m, mais lit l'introduction depuis un fichier.\n" "\n" "--prefix préfixe\n" "\tUtiliser un préfixe alternatif pour générer la partie du sujet qui se\n" "\ttrouve entre crochets. Le préfixe par défaut est \\`patch'.\n" "\n" "--mbox fichier\n" "\tStocke les messages dans le fichier spécifié au format mbox. Le\n" "\tfichier peut être expédié plus tard en utilisant par exemple\n" "\tformail.\n" "\n" "--send\n" "\tExpédie les messages directement en utilisant %s.\n" "\n" "--sender\n" "\tL'adresse d'expéditeur à utiliser pour l'enveloppe. L'adresse doit\n" "\têtre de la forme \\`utilisateur@nom.de.domaine' (sans nom\n" "\td'affichage).\n" "\n" "--from, --subject\n" "\tLes valeurs pour les champs d'en-tête De (From) et Objet (Subject),\n" "\trespectivement.\n" "\n" "--to, --cc, --bcc\n" "\tAjoute un destinataire dans le champ d'en-tête A, Copie ou Copie\n" "\tcachée, respectivement.\n" "\n" "--reply-to message\n" "\tAjoute les en-têtes appropriés pour répondre au message spécifié.\n" #: quilt/mail.in:192 quilt/mail.in:200 msgid "Introduction message already specified" msgstr "Message d'introduction déjà spécifié" #: quilt/mail.in:262 msgid "You have to install 'formail' to use 'quilt mail'" msgstr "" "Vous devez installer le programme «formail» afin d'utiliser la commande " "«quilt mail»" #: quilt/mail.in:305 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "Impossible de déterminer l'adresse d'expéditeur. Utilisez --sender." #: quilt/mail.in:450 msgid "Unable to extract a subject header from %s\\n" msgstr "Impossible d'extraire une ligne de sujet de %s\\n" #: quilt/mail.in:474 msgid "Patches %s have duplicate subject headers.\\n" msgstr "Les patches %s ont des sujets dupliqués.\\n" #: quilt/mail.in:483 msgid "File %s does not exist\\n" msgstr "Le fichier %s n'existe pas\\n" #: quilt/mail.in:543 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "" "L'introduction n'a pas de ligne de sujet (sauvegardé en tant que %s)\\n" #: quilt/mail.in:546 msgid "Introduction has no subject header\\n" msgstr "L'introduction ne contient pas de ligne de sujet\\n" #: quilt/mail.in:660 msgid "Introduction saved as %s\\n" msgstr "Introduction sauvegardée en tant que %s\\n" #: quilt/new.in:22 msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "Usage : quilt new [-p n|-p ab] {nom_de_patch}\\n" #: quilt/new.in:25 msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" "\n" "Crée un nouveau patch au nom spécifié, et l'insère après le patch\n" "au sommet dans le fichier de série. Le nom peut être préfixé avec\n" "le nom d'un répertoire, ce qui permet de grouper les patches apparentés.\n" "\n" "-p n\tCrée un patch de type -p n (-p0 et -p1 sont supportés).\n" "\n" "-p ab\tCrée un patch de type -p1, mais utilise a/fichier et b/fichier\n" "\tcomme nom original et nouveau nom, respectivement, au lieu des valeurs\n" "\tpar défaut rép.orig/fichier and rép/fichier.\n" "\n" "Quilt peut être utilisé dans les sous-répertoires d'une arborescence\n" "source. La racine de l'arbre est déterminée en cherchant un répertoire\n" "nommé %s en amont du répertoire courant. Créez un repertoire %s dans le\n" "répertoire devant être la racine si quilt choisi un répertoire trop haut\n" "dans l'arborescence.\n" #: quilt/new.in:76 msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "" "Impossible de créer des patchs avec -p%s. Veuillez spécifier -p0, -p1 ou -" "pab à la place.\\n" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "QUILT_PATCHES(%s) et QUILT_PC(%s) doivent être différents\\n" #: quilt/new.in:97 quilt/refresh.in:185 msgid "Patch %s exists already\\n" msgstr "Le patch %s existe déjà\\n" #: quilt/new.in:108 msgid "Patch %s is now on top\\n" msgstr "Le patch %s est maintenant au sommet\\n" #: quilt/new.in:110 quilt/refresh.in:343 msgid "Failed to create patch %s\\n" msgstr "Impossible de créer le patch %s\\n" #: quilt/next.in:22 msgid "Usage: quilt next [patch]\\n" msgstr "Usage : quilt next [patch]\\n" #: quilt/next.in:25 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" "\n" "Affiche le nom du patch après celui spécifié (ou après celui au sommet)\n" "dans le fichier de série.\n" "\n" "-n\tAffiche le nom de fichier au lieu du nom de patch.\n" #: quilt/patches.in:24 msgid "" "Usage: quilt patches [-v] [--color[=always|auto|never]] {file} [files...]\\n" msgstr "" "Usage : quilt patches [-v] [--color[=always|auto|never]] {fichier} " "[fichiers...]\\n" #: quilt/patches.in:27 msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "Affiche la liste des patches modifiant l'un des fichiers spécifiés. \n" "\n" "Une heuristique est utilisée pour déterminer quels fichiers sont \n" "modifiés par les patches n'étant pas appliqués. Veuillez noter que \n" "cette heuristique est bien plus lente que l'étude des patches \n" "appliqués.\n" "\n" "-v\tAffichage verbeux, plus simple à lire.\n" "\n" "--color[=always|auto|never]\n" "\tColorise la syntaxe toujours («always»), de manière automatique\n" "\t(«auto») ou jamais («never»).\n" "\t«auto» n'est activé par défaut que si la sortie est un tty.\n" #: quilt/pop.in:22 msgid "Usage: quilt pop [-afRqv] [num|patch]\\n" msgstr "Usage : quilt pop [-afRqv] [num|patch]\\n" #: quilt/pop.in:25 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\n" "\n" "-a\tRemove all applied patches.\n" "\n" "-f\tForce remove. The state before the patch(es) were applied will\n" "\tbe restored from backup files.\n" "\n" "-R\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" msgstr "" "\n" "Retire un ou plusieurs patches de la pile. Si aucun argument n'est \n" "spécifié, le patch au sommet est retiré. Si un nombre est passé en\n" "argument, cela indique la quantité de patchs à retirer. Si un nom \n" "de patch est spécifié, il est retiré ainsi que tous ceux placés avant\n" "lui dans la série. Le nom des patchs peut contenir le préfix patches/\n" "de façon à pouvoir profiter de la complétion sur le nom de fichier.\n" "\n" "-a\tRetire tous les patches de la série.\n" "\n" "-f\tForce l'action. L'état avant que les patches ne soient retirés\n" "\tsera restauré depuis les fichiers de sauvegarde.\n" "\n" "-R\tVérifie que le patch s'enlève proprement ; ne se base pas sur\n" "\tles horaires de dernière modification des fichiers.\n" "\n" "-q\tOpère silencieusement.\n" "\n" "-v\tOpère verbeusement.\n" #: quilt/pop.in:100 quilt/scripts/patchfns.in:880 msgid "Failed to copy files to temporary directory\\n" msgstr "Impossible de copier les fichiers dans le répertoire temporaire\\n" #: quilt/pop.in:125 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" "Le patch %s ne se retire pas proprement (rafraichissez le, ou forcez avec -" "f)\\n" #: quilt/pop.in:150 msgid "Patch %s appears to be empty, removing\\n" msgstr "Le patch %s semble vide, enlevé\\n" #: quilt/pop.in:155 msgid "Removing patch %s\\n" msgstr "Retrait de %s\\n" #: quilt/pop.in:226 msgid "Patch %s needs to be refreshed first.\\n" msgstr "Le patch %s doit être rafraichi au préalable.\\n" #: quilt/pop.in:236 msgid "No patch removed\\n" msgstr "Aucun patch retiré\\n" #: quilt/pop.in:252 quilt/scripts/patchfns.in:513 msgid "No patches applied\\n" msgstr "Aucun patch n'est appliqué\\n" #: quilt/pop.in:259 quilt/push.in:422 msgid "Now at patch %s\\n" msgstr "Le patch %s est maintenant au sommet\\n" #: quilt/previous.in:22 msgid "Usage: quilt previous [patch]\\n" msgstr "Usage : quilt previous [-n] [patch]\\n" #: quilt/previous.in:25 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" "\n" "Affiche le nom du patch avant celui spécifié (ou après celui au sommet)\n" "dans le fichier de série.\n" "\n" "-n\tAffiche le nom de fichier au lieu du nom de patch.\n" #: quilt/push.in:24 msgid "" "Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" msgstr "" "Usage : quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" #: quilt/push.in:27 msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "Applique un ou plusieurs patches de la série. Si aucun argument n'est\n" "spécifié, le prochain patch est appliqué. Si un nombre est passé en " "argument,\n" "cela indique la quantité de patchs à appliquer. Si un nom de patch est\n" "spécifié, il est appliqué ainsi que tous ceux placés avant lui dans la\n" "série. Le nom des patchs peut contenir le préfix patches/ de façon à " "pouvoir\n" "profiter de la complétion sur le nom de fichier.\n" "\n" "-a\tApplique tous les patches de la série.\n" "\n" "-f\tForce l'application, même si cela doit produire des rejets.\n" "\n" "-q\tOpère silencieusement.\n" "\n" "-v\tOpère verbeusement.\n" "\n" "--fuzz=N\n" "\tDéfinit le niveau maximum de flou (valeur par défaut : 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tFusionne le patch avec les fichiers originaux (voir patch(1)).\n" "\n" "--leave-rejects\n" "\tLaisse les fichiers de rejets produits, même si l'application du\n" "\tpatch a échoué et qu'il n'est finalement pas appliqué.\n" "\n" "--color[=always|auto|never]\n" "\tApplique une coloration syntaxique, toujours («always»), de manière\n" "\tautomatique («auto») ou jamais («never»).\n" "\t«auto» n'est activé par défaut que si la sortie est un tty.\n" #: quilt/push.in:68 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "Interrompu par l'utilisateur ; le patch %s n'a pas été appliqué.\\n" #: quilt/push.in:181 msgid "Applying patch %s\\n" msgstr "Application de %s\\n" #: quilt/push.in:215 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "Le patch %s n'existe pas ; patch vide appliqué\\n" #: quilt/push.in:219 msgid "Patch %s appears to be empty; applied\\n" msgstr "Le patch %s semble vide. Il a été appliqué.\\n" #: quilt/push.in:223 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "%s a été appliqué (forcé ; vous devriez le rafraîchir)\\n" #: quilt/push.in:233 msgid "Patch %s can be reverse-applied\\n" msgstr "Le patch %s peut être appliqué à l'envers\\n" #: quilt/push.in:236 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "" "Le patch %s ne s'applique pas proprement (forcez l'application avec -f)\\n" #: quilt/push.in:291 msgid "Patch %s is already applied; check your series file\\n" msgstr "Le patch %s est déjà appliqué. Vérifiez votre fichier series.\\n" #: quilt/push.in:396 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "Le patch au sommet %s doit être rafraichi au préalable.\\n" #: quilt/refresh.in:22 msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "Usage : quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" #: quilt/refresh.in:26 msgid "" "\n" "Refreshes the specified patch, or the topmost patch by default.\n" "Documentation that comes before the actual patch in the patch file is\n" "retained.\n" "\n" "It is possible to refresh patches that are not on top. If any patches\n" "on top of the patch to refresh modify the same files, the script aborts\n" "by default. Patches can still be refreshed with -f. In that case this\n" "script will print a warning for each shadowed file, changes by more\n" "recent patches will be ignored, and only changes in files that have not\n" "been modified by any more recent patches will end up in the specified\n" "patch.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" "\n" "Rafraîchit un patch appliqué, ou celui au sommet à défaut. La " "documentation \n" "placée avant le début du patch dans le fichier est conservée.\n" "\n" "Il est possible de rafraîchir un patch ne se trouvant pas au sommet. Dans\n" "ce cas et si un autre patch placé plus haut modifie les mêmes fichiers, le \n" "script abandonne par défaut. Il est encore possible de forcer le \n" "rafraichissement avec -f. Dans ce cas, un avertissement sera affiché pour\n" "chaque fichier masqué, les changements apportés à ces fichiers seront \n" "ignorés et seuls les nouveaux changements apportés à des fichiers n'étant \n" "pas masqués par d'autres patches seront placés dans le patch généré.\n" "\n" "-p n\tCrée un patch du style -p n (-p0 ou -p1)\n" "\n" "-p ab\tCrée un patch au style -p 1, mais utilise a/fichier et b/fichier\n" "\tcomme noms de l'ancien et du nouveau fichier, au lieu des noms par\n" "\tdéfaut rep.orig/fichier et rep/fichier.\n" "\n" "-u, -U num, -c, -C num\n" "\tCrée un diff unifié (-u, -U) ayant num lignes de contexte.\n" "\tCrée un diff contextuel (-c, -C) ayant num lignes de contexte.\n" "\tPar défaut, les diffs ont 3 lignes de contexte.\n" "\n" "-z[nouveau_nom]\n" "\tCrée un nouveau patch contenant les modifications au lieu de\n" "\trafraîchir le patch au sommet. Si le nouveau nom n'est pas spécifié,\n" "\t\\`-2' est ajouté au nom du patch d'origine, etc. (voir la commande\n" "\tfork.)\n" "\n" "--no-timestamps\n" "\tOmet les tampons («timestamps») dans les entêtes de patch.\n" "\n" "--no-index\n" "\tOmet les lignes Index:.\n" "\n" "--diffstat\n" "\tAjoute une section diffstat aux entêtes du patch, ou remet celle\n" "\texistante à jour.\n" "\n" "-f\tForce le rafraîchissement, même si des patches plus haut changent \n" "\tles mêmes fichiers.\n" "\n" "--backup\n" "\tCrée une copie de sauvegarde du patch en ajoutant ~ à la fin de \n" "\tson nom.\n" "\n" "--sort\tTrie les fichiers par leur nom au lieu de conserver leur ordre\n" "\td'origine.\n" "\n" "--strip-trailing-whitespace\n" "\tSupprime les espaces à la fin des lignes.\n" #: quilt/refresh.in:171 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "Seul le patch au sommet peut actuellement être rafraîchi avec -z\\n" #: quilt/refresh.in:202 msgid "" "Cannot refresh patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "Impossible de rafraîchir des patchs avec -p%s. Veuillez spécifier -p0, -p1 " "ou -pab à la place.\\n" #: quilt/refresh.in:235 msgid "Diff failed on file '%s', aborting\\n" msgstr "Le diff a échoué sur le fichier «%s». Abandon.\\n" #: quilt/refresh.in:241 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" "Des fichiers plus récents modifient les mêmes fichiers que %s.\n" "Forcez le rafraîchissement avec -f.\\n" #: quilt/refresh.in:247 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" "Impossible d'utiliser --strip-trailing-whitespace sur un patch dont\n" "certains fichiers sont masqués.\\n" #: quilt/refresh.in:253 quilt/refresh.in:355 msgid "Nothing in patch %s\\n" msgstr "Le patch %s ne contient rien\\n" #: quilt/refresh.in:325 msgid "Patch %s is unchanged\\n" msgstr "Patch %s inchangé\\n" #: quilt/refresh.in:353 msgid "Refreshed patch %s\\n" msgstr "Patch %s rafraîchi\\n" #: quilt/remove.in:22 msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "Usage : quilt remove [-P patch] {fichier} ...\\n" #: quilt/remove.in:25 msgid "" "\n" "Remove one or more files from the topmost or named patch. Files that\n" "are modified by patches on top of the specified patch cannot be removed.\n" "\n" "-P patch\n" "\tRemove named files from the named patch.\n" msgstr "" "\n" "Retire un ou plusieurs fichiers du patch au sommet ou du patch spécifié.\n" "Des fichiers modifiés par des patches plus haut dans la série ne peuvent\n" "pas être retirés.\n" "\n" "-P patch\n" "\tPatch dont les fichiers doivent être retirés.\n" #: quilt/remove.in:73 quilt/revert.in:75 msgid "File %s is not in patch %s\\n" msgstr "Le fichier %s n'est pas dans le patch %s.\\n" #: quilt/remove.in:91 msgid "Failed to remove file %s from patch %s\\n" msgstr "Impossible d'enlever le fichier %s du patch %s\\n" #: quilt/remove.in:105 msgid "File %s removed from patch %s\\n" msgstr "Le fichier %s a été enlevé du patch %s.\\n" #: quilt/rename.in:22 msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "Usage : quilt rename [-P patch] nouveau_nom\\n" #: quilt/rename.in:25 msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" "\n" "Renomme le patch au sommet ou spécifié.\n" "\n" "-P patch\n" "\tPatch à renommer.\n" #: quilt/rename.in:84 msgid "Patch %s exists already, please choose a different name\\n" msgstr "Le patch %s existe déjà, veuillez choisir un nom différent\\n" #: quilt/rename.in:98 msgid "Renaming of patch %s to %s failed\\n" msgstr "Le renommage de %s en %s a échoué\\n" #: quilt/rename.in:104 msgid "Patch %s renamed to %s\\n" msgstr "Patch %s renommé en %s\\n" #: quilt/revert.in:22 msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "Usage : quilt revert [-P patch] {fichier} ...\\n" #: quilt/revert.in:25 msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" "\n" "Restaure un ou plusieurs fichiers du patch au sommet ou du patch spécifié :\n" "après l'opération, 'quilt diff -z' ne montrera plus aucune différence pour\n" "ces fichiers. Des fichiers modifiés par des patches plus haut dans la série\n" "ne peuvent pas être restaurés.\n" "\n" "-P patch\n" "\tPatch dont les fichiers doivent être restaurés.\n" #: quilt/revert.in:103 quilt/revert.in:112 msgid "File %s is unchanged\\n" msgstr "Le fichier %s est inchangé\\n" #: quilt/revert.in:120 msgid "Failed to revert changes to %s in patch %s\\n" msgstr "Impossible de restaurer le fichier %s du patch %s.\\n" #: quilt/revert.in:124 msgid "Changes to %s in patch %s reverted\\n" msgstr "Modifications de %s dans le patch %s annulées\\n" #: quilt/scripts/edmail.in:96 #, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "Le nom `%s' est mal parenthésé\n" #: quilt/scripts/edmail.in:114 #, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "L'adresse de destination `%s' est invalide\n" #: quilt/scripts/patchfns.in:232 quilt/scripts/patchfns.in:526 msgid "%s is not a regular file\\n" msgstr "%s n'est pas un fichier régulier\\n" #: quilt/scripts/patchfns.in:480 quilt/scripts/patchfns.in:497 msgid "No patches in series\\n" msgstr "Aucun patch dans la série\\n" #: quilt/scripts/patchfns.in:482 quilt/scripts/patchfns.in:499 msgid "No series file found\\n" msgstr "Fichier de série non trouvé\\n" #: quilt/scripts/patchfns.in:555 msgid "Patch %s is not in series\\n" msgstr "Le patch %s n'est pas dans la série\\n" #: quilt/scripts/patchfns.in:583 msgid "Patch %s is not applied\\n" msgstr "Le patch %s n'est pas appliqué\\n" #: quilt/scripts/patchfns.in:620 msgid "File series fully applied, ends at patch %s\\n" msgstr "La série est complètement appliquée. Le dernier patch est %s.\\n" #: quilt/scripts/patchfns.in:898 msgid "Failed to patch temporary files\\n" msgstr "Impossible de patcher les fichiers temporaires\\n" #: quilt/scripts/patchfns.in:941 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" "Les méta-données de quilt dans cet arbre de travail sont au format \n" "v%s, mais cette version de quilt ne peut traiter que jusqu'au \n" "format %s (inclus). Veuillez retirer vos patches avec la version \n" "utilisée pour les appliquer avant d'installer une version plus ancienne.\\n" #: quilt/scripts/patchfns.in:1094 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" "Votre arbre a été créé par une vieille version de quilt. Veuillez \n" "utiliser « quilt upgrade ».\\n" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "SYNOPSIS : %s [-p num] [-n] [patch]\n" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "%s : Je suis confus.\n" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "Attention : espaces à la fin de la ligne %s de %s\n" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "Attention : espaces à la fin des lignes %s de %s\n" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "Suppression des espaces à la fin de la ligne %s de %s\n" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "Suppression des espaces à la fin des lignes %s de %s\n" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "En renommant %s en %s : %s\n" #: quilt/series.in:22 msgid "Usage: quilt series [--color[=always|auto|never]] [-v]\\n" msgstr "Usage : quilt series [--color[=always|auto|never]] [-v]\\n" #: quilt/series.in:25 msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "-v\tVerbose, more user friendly output.\n" msgstr "" "\n" "Affiche le nom de tous les patches de la série.\n" "\n" "--color[=always|auto|never]\n" "\tColorise la syntaxe toujours («always»), automatiquement\n" "\tsi la sortie est un tty («auto») ou jamais («never»).\n" "\n" "-v\tAffichage verbeux, plus simple à lire.\n" #: quilt/setup.in:35 quilt/setup.in:55 msgid "Directory %s exists\\n" msgstr "Le répertoire %s existe\\n" #: quilt/setup.in:61 msgid "File %s exists\\n" msgstr "Le fichier %s existe\\n" #: quilt/setup.in:102 msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] " "{specfile|seriesfile}\\n" msgstr "" "Usage : quilt setup [-d répertoire_source] [-v] [--sourcedir répertoire] [--" "fuzz=N] {fichier_spec|fichier_séries}\\n" #: quilt/setup.in:105 msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" msgstr "" "\n" "Initialise un arbre de sources à partir d'un fichier de\n" "spécification rpm, ou d'un fichier de série quilt.\n" "\n" "-d\tPréfixe de chemin optionel (sous-répertoire).\n" "\n" "--sourcefdir\n" "\tRépertoire contenant les sources. Valeur par défaut : \\`.'.\n" "\n" "-v\tAffichage verbeux pour le debug.\n" "\n" "--fuzz=N\n" "\tDéfinit le niveau maximum de flou (nécessite rpm 4.6 ou supérieur).\n" #: quilt/setup.in:176 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" "La section %%prep de %s a échoué ; les résultats sont peut-être incomplets\\n" #: quilt/setup.in:179 msgid "The -v option will show rpm's output\\n" msgstr "L'option -v montre les affichages de rpm\\\\n" #: quilt/setup.in:231 quilt/setup.in:243 msgid "File %s not found\\n" msgstr "Le fichier %s est introuvable\\n" #: quilt/setup.in:234 quilt/setup.in:246 msgid "Unpacking archive %s\\n" msgstr "Désarchivage de %s\\n" #: quilt/setup.in:255 msgid "Trying alternative patches and series names..." msgstr "Tentative d'utilisation des noms de patches et séries alternatifs..." #: quilt/snapshot.in:22 msgid "Usage: quilt snapshot [-d]\\n" msgstr "Usage : quilt snapshot [-d]\\n" #: quilt/snapshot.in:25 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" "\n" "Prend un instantané de l'état courant du répertoire de travail. Après " "cela, \n" "il reste possible de travailler normalement avec quilt en poussant et en \n" "retirant des patches. Un différentiel entre l'arbre au moment de " "l'instantané \n" "et son état courant peut être généré avec «quilt diff --snapshot».\n" "\n" "-d\tSupprime l'instantané actuel et termine.\n" #: quilt/top.in:22 msgid "Usage: quilt top\\n" msgstr "Usage : quilt top\\n" #: quilt/top.in:25 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" "\n" "Affiche le nom du patch au sommet de la pile des patches actuellement\n" "appliqués.\n" #: quilt/unapplied.in:22 msgid "Usage: quilt unapplied [patch]\\n" msgstr "Usage : quilt unapplied [patch]\\n" #: quilt/unapplied.in:25 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" "\n" "Affiche la liste de tous les patches non appliqués, ou de tous les patches\n" "suivant celui indiqué en paramètre.\n" #: quilt/upgrade.in:25 msgid "Usage: quilt upgrade\\n" msgstr "Usage : quilt upgrade\\n" #: quilt/upgrade.in:28 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" "\n" "Convertit les méta-données contenues dans un arbre de travail d'une \n" "ancienne version de quilt à la version actuelle. Cette commande n'est\n" "nécessaire que lorsque le format de ces méta-données change lors d'une\n" "mise à jour de quilt, mais que l'arbre de travail contient des données\n" "à l'ancien format. Dans ce cas, quilt vous demandera d'utiliser\n" "« quilt upgrade » explicitement.\n" #: quilt/upgrade.in:67 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "" "Les méta-données de quilt dans %s sont déjà au format %s ; rien à faire\\n" #: quilt/upgrade.in:71 msgid "Converting meta-data to version %s\\n" msgstr "Conversion des méta-données au format v%s\\n" #: quilt/upgrade.in:102 msgid "Conversion failed\\n" msgstr "Échec de la conversion\\n" #: quilt/upgrade.in:103 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" "\n" "Veuillez retirer tous les patchs en utilisant « quilt pop -a » avec la \n" "version utilisée pour créer cet arbre de travail, ou effacez le répertoire\n" "%s et réappliquez complètement vos patchs.\\n" quilt-0.63/po/de.po0000644000175000017500000015747012332477667014511 0ustar mquinsonmquinson# translation of de.po to # German quilt translation # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # Andreas Gruenbacher , 2003, 2005. # msgid "" msgstr "" "Project-Id-Version: de\n" "PO-Revision-Date: 2005-07-19 11:32+0200\n" "Last-Translator: Andreas Gruenbacher \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.10\n" #: bin/quilt.in:40 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "Verwendung: quilt [--trace[=verbose]] [--quiltrc=XX] befehl [-h] ..." #: bin/quilt.in:41 msgid " quilt --version" msgstr " quilt --version" #: bin/quilt.in:43 msgid "Commands are:" msgstr "Vorhandene Befehle:" #: bin/quilt.in:48 msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately." msgstr "" "\n" "Globale Optionen:\n" "\n" "--trace\n" "\tFührt die Kommandos im bash Trace-Modus (-x) aus. Für Debugging.\n" "\n" "--quiltrc datei\n" "\tVerwende die angegebene Konfigurationsdatei statt ~/.quiltrc (oder\n" "\t@ETCDIR@/quilt.quiltrc, wenn ~/.quiltrc fehlt). Siehe die pdf-" "Dokumentation\n" "\tfür mögliche Einstellungen. Der Dateiname \\`-' bedeutet, dass keine\n" "\tResource-Datei eingelesen werden soll.\n" "\n" "--version\n" "\tGibt die Versionsummer aus." #: quilt/add.in:22 msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "Verwendung: quilt add [-P patch] {datei} ...\\n" #: quilt/add.in:25 msgid "" "\n" "Add one or more files to the topmost or named patch. Files must be\n" "added to the patch before being modified. Files that are modified by\n" "patches already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" "\n" "Fügt eine oder mehrere Dateien zum obersten oder angegebenen Patch\n" "hinzu. Dateien müssen einem Patch hinzugefügt werden, bevor sie\n" "verändert werden. Dateien können einem Patch nur hinzugefügt werden,\n" "solange sie von keinem Patch höher auf dem Stapel verändert werden.\n" "\n" "-P patch\n" "\tPatch, zu dem die Dateien hinzugefügt werden sollen.\n" #: quilt/add.in:48 quilt/add.in:54 msgid "File %s is located below %s\\n" msgstr "Die Datei %s befindet sich unter dem Verzeichnis %s\\n" #: quilt/add.in:103 msgid "File %s is already in patch %s\\n" msgstr "Datei %s ist bereits in Patch $patch\\n" #: quilt/add.in:111 quilt/remove.in:82 quilt/revert.in:84 msgid "File %s modified by patch %s\\n" msgstr "Datei %s wird von Patch %s verändert\\n" #: quilt/add.in:119 msgid "Cannot add symbolic link %s\\n" msgstr "Kann symbolische Verknüpfung %s nicht hinzufügen\\n" #: quilt/add.in:126 msgid "Failed to back up file %s\\n" msgstr "Konnte Datei %s nicht sichern\\n" #: quilt/add.in:137 msgid "File %s added to patch %s\\n" msgstr "Datei %s zu Patch %s hinzugefügt\\n" #: quilt/annotate.in:22 msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "Verwendung: quilt annotate [-P patch] {datei}\\n" #: quilt/annotate.in:25 msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" "\n" "Erzeuge ein Listing der angegebenen Datei das anzeigt, welche\n" "Patches welche Zeilen verändern. Nur angewandte Patches werden\n" "angezeigt.\n" "\n" "-P patch\n" "\tNur bis zum angegebenen Patch anstatt bis zum obersten Patch\n" "\tnach Änderungen suchen.\n" #: quilt/applied.in:22 msgid "Usage: quilt applied [patch]\\n" msgstr "Verwendung: quilt applied [patch]\\n" #: quilt/applied.in:25 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" "\n" "Gibt eine Liste der angewandten Patches aus, oder eine Liste aller Patches\n" "vom Anfang der series-Datei bis zum angegebenen Patch.\n" #: quilt/delete.in:22 msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "Verwendung: quilt delete [-r] [--backup] [patch|-n]\\n" #: quilt/delete.in:25 msgid "" "\n" "Remove the specified or topmost patch from the series file. If the\n" "patch is applied, quilt will attempt to remove it first. (Only the\n" "topmost patch can be removed right now.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" "\n" "Löscht den obersten oder angegebenen Patch aus der series-Datei. Falls\n" "dieser Patch angewandt ist, entfernt quilt ihn zuerst. (Momentan kann \n" "nur der oberste Patch entfernt werden.)\n" "\n" "-n\tLösche den nächsten (dem obersten folgenden) Patch statt des obersten\n" "\toder angegebenen.\n" "\n" "-r\tEntferne den Patch auch aus dem patches-Verzeichnis.\n" "\n" "--backup\n" "\tBenenne den Patch auf patch~, anstatt ihn zu löschen.\n" "\tHat nur in Kompination mit -r eine Wirkung.\n" #: quilt/delete.in:89 msgid "No next patch\\n" msgstr "Kein Patch %s\\n" #: quilt/delete.in:102 quilt/scripts/patchfns.in:604 msgid "Patch %s is currently applied\\n" msgstr "Patch %s ist momentan angewandt\\n" #: quilt/delete.in:114 msgid "Removed patch %s\\n" msgstr "Entferne Patch %s\\n" #: quilt/delete.in:116 msgid "Failed to remove patch %s\\n" msgstr "Konnte Patch %s nicht entfernen\\n" #: quilt/delete.in:127 msgid "Failed to backup patch file %s\\n" msgstr "Konnte Datei %s nicht sichern\\n" #: quilt/delete.in:134 msgid "Failed to remove patch file %s\\n" msgstr "Konnte Patch %s nicht entfernen\\n" #: quilt/diff.in:24 #, fuzzy msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color[=always|auto|never]] [file ...]\\n" msgstr "" "Verwendung: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-" "z] [-R] [-P patch] [--snapshot] [--diff=programm] [--no-timestamps] [--no-" "index] [--sort] [--color] [datei ...]\\n" #: quilt/diff.in:28 #, fuzzy msgid "" "\n" "Produces a diff of the specified file(s) in the topmost or specified\n" "patch. If no files are specified, all files that are modified are\n" "included.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine patch\n" "\tCreate a combined diff for all patches between this patch and\n" "\tthe patch specified with -P. A patch name of \\`-' is equivalent\n" "\tto specifying the first applied patch.\n" "\n" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" "\n" "Erzeugt ein Diff der angegebenen Dateien im obersten oder angegebenen\n" "Patch. Wenn keine Dateien angegeben sind, werden alle im Patch\n" "enthaltenen Dateien einbezogen.\n" "\n" "-p n\tErzeuge einen -p n Patch (n=0 oder n=1 wird unterstützt).\n" "\n" "-p ab\tErzeuge einen -p1-artigen Patch, verwende aber a/datei und\n" "\tb/datei als den ursprünglichen und neuen Dateinamen anstelle von\n" "\tdir.orig/datei und dir/datei.\n" "\n" "-u, -U anzahl, -c, -C anzahl\n" "\tErzeuge ein Unified Diff (-u, -U) mit anzahl Kontextzeilen. Erzeuge\n" "\tein Context Diff (-c, -C) mit anzahl Kontextzeilen. Die Anzahl der\n" "\tKontextzeilen ist 3, wenn nicht anders angegeben.\n" "\n" "--no-timestamps\n" "\tKeine Zeitstempel in Patches angeben.\n" "\n" "--no-index\n" "\tErzeuge keine \\`Index:'-Zeilen\n" "\n" "-z\tÄnderungen relativ zum angewandten Patch ausgeben.\n" "\n" "-P patch\n" "\tErzeuge ein Diff für den angegebenen Patch. (Wenn nicht angegeben,\n" "\toberster Patch.)\n" "\n" "--combine patch\n" "\tErzeuge ein kombiniertes Diff für alle Patches zwischen diesem und\n" "\tdem mit -P angegebenen Patch.\n" "\n" "-R\tErzeuge ein umgekehrtes Diff.\n" "\n" "--snapshot\n" "\tErzeuge einen Patch gegen den Snapshot (siehe \\`quilt snapshot -h').\n" "\n" "--diff=programm\n" "\tVerwendet das angegebene Programm, um den Patch zu generieren. Das\n" "\tProgramm wird mit dem Dateinamen der ursprünglichen und der\n" "\tneuen Datei aufgerufen.\n" "\n" "--color[=always|auto|never]\n" "\tSyntaxeinfärbung verwenden (immer, nur für Terminals, nie).\n" "\n" "--sort\tSortiere Dateien im Patch nach ihrem namen, statt die ursprüngliche\n" "\tReihenfolge zu erhalten.\n" #: quilt/diff.in:226 msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" "Die Optionen \\`--combine', \\`--snapshot', und \\`-z' können nicht " "kombiniert werden.\\n" #: quilt/diff.in:240 msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "Kann kein Diff mit -p%s erzeugen, bitte -p0, -p1 oder -pab verwenden.\\n" #: quilt/diff.in:249 msgid "No snapshot to diff against\\n" msgstr "" #: quilt/diff.in:283 quilt/files.in:105 quilt/mail.in:422 msgid "Patch %s not applied before patch %s\\n" msgstr "Patch %s ist nicht vor Patch %s angewandt\\n" #: quilt/diff.in:351 msgid "File %s is not being modified\\n" msgstr "Datei %s wird nicht verändert.\\n" #: quilt/diff.in:370 msgid "Diff failed, aborting\\n" msgstr "Diff fehlgeschlagen, Abbruch.\\n" #: quilt/diff.in:377 msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "Warnung: später angewandte Patches verändern Dateien von %s\\n" #: quilt/edit.in:24 msgid "Usage: quilt edit file ...\\n" msgstr "Verwendung: quilt edit datei ...\\n" #: quilt/edit.in:27 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" "\n" "Füge die angegebene(n) Datei(en) dem obersten Patch hinzu, und editiere\n" "sie dann in \\$EDITOR (%s).\n" #: quilt/files.in:22 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "Verwendung: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" #: quilt/files.in:25 msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" "\n" "Gibt eine Liste der Dateien aus, die der oberste oder angegebene Patch\n" "beinhaltet.\n" "\n" "-a\tZeigt alle Dateien in allen angewandten Patches an.\n" "\n" "-l\tGibt auch die Patchnamen mit aus.\n" "\n" "-v\tAusführlichere, benutzerfreundliche Ausgabe.\n" "\n" "--combine patch\n" "\tErzeige eine Liste für alle Patches zwischen diesem und dem obersten\n" "\toder angegebenen Patch am Stack. Der Patchname \\`-'\n" "\tentspricht dem ersten angewandten Patch.\n" "\n" #: quilt/fold.in:22 msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "Verwendung: quilt fold [-R] [-q] [-f] [-p strip-ebenen]\\n" #: quilt/fold.in:25 msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" "\n" "Integriert den Patch von der Standardeingabe in den obersten Patch:\n" "Stellt zuerst sicher, dass alle Dateien, die verändert werden, im\n" "obersten Patch enthalten sind, und wendet dann den neuen Patch\n" "mit der angegebenen Anzahl an Strip-Ebenen an (Standardwert = 1).\n" "\n" "-r\tPatch vekehrt herum anwenden.\n" "\n" "-q\tWenige Meldungen ausgeben.\n" "\n" "-f\tAnwenden erzwingen, selbst wenn dabei Fehler auftreten. Wenn -q nicht\n" "\tangegeben wird der Patch interaktiv angewandt, und das Patch-Utility\n" "\tkann fragen stellen.\n" "\n" "-p strip-ebenen\n" "\tDie Anzahl der Komponenten im Pfadnamen, die beim Anwenden des Patches\n" "\tentfernt werden sollen.\n" #: quilt/fold.in:131 msgid "File %s may be corrupted\\n" msgstr "Datei %s ist möglicherweise defekt\\n" #: quilt/fork.in:22 msgid "Usage: quilt fork [new_name]\\n" msgstr "Verwendung: quilt fork [neuer_name]\\n" #: quilt/fork.in:25 msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" "\n" "Spalte den obersten Patch auf. Ausfspalten bedeutet, dass eine neue Kopie\n" "des Patches unter einem anderen Namen angelegt wird, und der neue Patch\n" "anstelle des ursprünglichen in die Series-Datei eingetragen wird. Das ist\n" "praktisch wenn ein Patch verändert werden soll, aber die ursprüngliche " "Version\n" "erhalten bleiben soll. Eine typische Abfolge von Befehlen ist: fork, edit, " "refresh.\n" "\n" "Wenn neuer_name fehlt, wird der Name des ursprünglichen Patches verwendet,\n" "gefolgt von \\`-2'. Falls der name bereits in Strich-Nummer endet, wird " "die\n" "Nummer erhöht (z.B. patch.diff, patch-2.diff, patch-3.diff).\n" #: quilt/fork.in:84 msgid "Patch %s exists already, please choose a new name\\n" msgstr "Patch %s existiert bereits, bitte neuen Namen wählen\\n" #: quilt/fork.in:96 msgid "Fork of patch %s to patch %s failed\\n" msgstr "Fehler beim Aufspalten von %s auf %s\\n" #: quilt/fork.in:102 quilt/refresh.in:347 msgid "Fork of patch %s created as %s\\n" msgstr "Neue Version von %s erstellt als %s\\n" #: quilt/graph.in:22 msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" "Verwendung: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-" "labels=files] [-T ps] [patch]\\n" #: quilt/graph.in:26 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" "\n" "Erzeuge einen gerichteten dot(1)-Graphen, der die Abhängigkeiten zwischen\n" "den angewandten Patches zeigt. Ein Patch hängt voni einem anderen ab, wenn\n" "beide dieselbe Datei verändern, oder mit der --lines-Option, wenn sich die\n" "Anderungen in den Patches überlappen. Wenn nicht anders angegeben, zeigt\n" "der Graph alle Patches, von denen der oberste Patch abhängt.\n" "Wenn ein Patchname angegeben wird, wird ein Graph erzeugt, der alle Patches\n" "beinhaltet, von denen der angegebene Patch abhängt, sowie alle, die von\n" "diesem Patch abhängen.\n" "\n" "--all\tErzeuge einen Graph, der alle Abhängigkeiten zwischen allen\n" "\tangewandten Patches beinhaltet. (Nicht angewandte Patches sind nicht\n" "\tbeinhaltet.)\n" "\n" "--reduce\n" "\tEliminiere transitive Kanten.\n" "\n" "--lines[=num]\n" "\tErmittle Abhängigkeiten durch Vergleich der veränderten Zeilen.\n" "\tSolange nicht anders angegeben, werden zwei Kontextzeilen angenommen.\n" "\n" "--edge-labels=files\n" "\tBeschrifte Kanten mit den Namen der betroffenen Dateien.\n" "\n" "-T ps\tErzeuge direkt eine PostScript-Datei.\n" #: quilt/grep.in:22 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "Verwendung: quilt grep [-h|options] {suchausdruck}\\n" #: quilt/grep.in:25 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" "\n" "Durchsuche die Quelldateien rekursiv, und überspringe Patches und Quilt-\n" "Metainformation. Wenn kein Dateiname angegeben wird, wird der gesamte\n" "Quellbaum durchsucht. Siehe die grep(1) Manual Page zu Optionen.\n" "\n" "-h\tGib diese Hilfsmeldung aus. Die grep -h - Option kann nach einem\n" "\tDoppelstrick (--) angegeben werden. Suchausdrücke, die mit einem Strich\n" "\tbeginnen, können nach einem weiteren Doppelstrich (--) angegeben werden.\n" #: quilt/header.in:24 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "Verwendung: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" #: quilt/header.in:28 msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" "\n" "Zeige den Header des obersten oder angegebenen Patches an, oder verändere " "ihn.\n" "\n" "-a, -r, -e\n" "\tFüge Text von der Standardeingabe an den Header an (-a), ersetze den " "Header\n" "\tmit der Standardeingabe, oder editiere den Header in \\$EDITOR (%s). Wenn " "keine\n" "\tdieser Optionen angegeben ist, gib den Header aus.\n" "\n" "--strip-diffstat\n" "\tEntferne diffstat-Ergebnisse vom Header.\n" "\n" "--strip-trailing-whitespace\n" "\tEntferne Whitespace an Zeilenenden im Header.\n" "\n" "--backup\n" "\tErzeuge eine Sicherungskopie von patch als patch~.\n" #: quilt/header.in:169 msgid "Replaced header of patch %s\\n" msgstr "Header von Patch %s ersetzt\\n" #: quilt/header.in:172 msgid "Appended text to header of patch %s\\n" msgstr "Text an Header von Patch %s angefügt\\n" #: quilt/import.in:22 msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "" "Verwendung: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] " "[patchdatei] ...\\n" #: quilt/import.in:25 msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" "\n" "Importiere externe Patches. Die Patches werden nach dem momentan obersten\n" "Patch eingefügt, und können dann mit dem push-Befehl angewandt werden.\n" "\n" "-p num\n" "\tDie Anzahl der Komponenten im Pfadnamen, die beim Anwenden des Patches\n" "\tentfernt werden sollen (Standard=1).\n" "\n" "-R\n" "\tPatch umgekehrt anwenden.\n" "\n" "-P patch\n" "\tPatch-Dateiname, den Quilt verwenden soll. Diese Option kann nur beim\n" "\tImport eines einzelnen Patches angegeben werden.\n" "\n" "-f\tÜberschreibe/aktualisiere existierende Patches.\n" "\n" "-d {o|a|n}\n" "\tErhalte beim Überschreiben von Patches den alten (o), alle (a), oder den\n" "\tneuen (n) Patch-Header. Wenn beide Patches Header enthalten, muss diese\n" "\tOption angegeben werden. Diese Option ist nur in Kombination mit -f " "wirksam.\n" #: quilt/import.in:73 msgid "Patch %s does not exist\\n" msgstr "Patch %s existiert nicht\\n" #: quilt/import.in:96 msgid "Patch headers differ:\\n" msgstr "Die Patch-Header unterscheiden sich:\\n" #: quilt/import.in:99 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" "Bitte verwenden Sie die Option -d {o|a|n} um anzugeben, welche Patch-Header " "erhalten bleiben sollen.\\n" #: quilt/import.in:164 msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "" "Die Option \\`-P' kann nur beim Importieren eines einzelnen Patches " "verwendet werden\\n" #: quilt/import.in:194 msgid "Patch %s is applied\\n" msgstr "Patch %s ist angewandt\\n" #: quilt/import.in:203 msgid "Patch %s already exists in series.\\n" msgstr "Patch %s existiert bereits in der series-Datei\\n" #: quilt/import.in:209 msgid "Patch %s exists. Replace with -f.\\n" msgstr "Patch %s existiert bereits. Ersetzen mit -f.\\n" #: quilt/import.in:220 msgid "Replacing patch %s with new version\\n" msgstr "Ersetze Patch %s durch neuere Version\\n" #: quilt/import.in:224 msgid "Importing patch %s\\n" msgstr "Importiere patch %s\\n" #: quilt/import.in:226 msgid "Importing patch %s (stored as %s)\\n" msgstr "Importiere Patch %s (abgelegt als %s)\\n" #: quilt/import.in:239 msgid "Failed to import patch %s\\n" msgstr "Konnte Patch %s nicht importieren\\n" #: quilt/import.in:248 quilt/refresh.in:334 msgid "Failed to insert patch %s into file series\\n" msgstr "Konnte Patch %s nicht in die series-Datei einfügen\\n" #: quilt/mail.in:24 #, fuzzy msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [first_patch [last_patch]]\\n" msgstr "" "Verwendung: quilt mail {--mbox datei|--send} [-m text] [--prefix prefix] [--" "sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--subject ...] " "[first_patch [last_patch]]\\n" #: quilt/mail.in:27 #, fuzzy msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" "\n" "Erzeuge E-Mail-Nachrichten für alle Patches in der series-Datei, und\n" "speichere sie in einer Mailbox-Datei, oder versende sie sofort. Der Editor\n" "wird mit der Vorlage einer Einleitung geöffnet. Für Details siehe\n" "%s.\n" "Wenn ein Bereich von Patches angegeben wird, kann \\`-' für den ersten bzw.\n" "letzten Patch in der Series-Datei angegeben werden.\n" "\n" "-m text\n" "\tText, der für die Einleitung verwendet werden soll. Wenn\n" "\tdiese Option verwendet wird, wird der Editor nicht gestartet, und\n" "\tdie Patches werden sofort abgearbeitet.\n" "\n" "--prefix Prefix\n" "\tVerwende einen anderen Prefix als \\`patch' in dem eckig umklammerten\n" "\tText in der Subject-Kopfzeile.\n" "\n" "--mbox datei\n" "\tAlle Nachrichten in der angegebenen Datei im mbox-Format speichern. Die\n" "\tMailbox kann dann später mit formail o.ä. verschickt werden.\n" "\n" "--send\n" "\tVerschicke die Nachrichten direkt.\n" "\n" "--sender\n" "\tVerwende die angegebene Envelope-Adresse. Die Adresse muss von der Form\n" "\t\\`user@domain.name' sein; Anzeigenamen sind nicht möglich.\n" "\n" "--from, --subject\n" "\tDie Werte für die From- und Subject-Kopfzeilen.\n" "\n" "--to, --cc, --bcc\n" "\tFüre einen Empfänger an die To, Cc, or Bcc-Kopfzeilen an.\n" #: quilt/mail.in:192 quilt/mail.in:200 #, fuzzy msgid "Introduction message already specified" msgstr "Einleitung gespeichert als %s\\n" #: quilt/mail.in:262 msgid "You have to install 'formail' to use 'quilt mail'" msgstr "" #: quilt/mail.in:305 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "" "Konnte die Envelope-Adresse nicht feststellen. Bitte verwenden Sie --sender." #: quilt/mail.in:450 msgid "Unable to extract a subject header from %s\\n" msgstr "Konnte keine Subject-Kopfzeile aus %s extrahieren\\n" #: quilt/mail.in:474 msgid "Patches %s have duplicate subject headers.\\n" msgstr "Die Patches %s haben die selben Subject-Kopfzeilen.\\n" #: quilt/mail.in:483 msgid "File %s does not exist\\n" msgstr "Datei %s existiert nicht\\n" #: quilt/mail.in:543 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "Die Einleitung hat keine Subject-Kopfzeile (gespeichert als %s)\\n" #: quilt/mail.in:546 msgid "Introduction has no subject header\\n" msgstr "Die Einleitung hat keine Subject-Kopfzeile\\n" #: quilt/mail.in:660 msgid "Introduction saved as %s\\n" msgstr "Einleitung gespeichert als %s\\n" #: quilt/new.in:22 msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "Verwendung: quilt new [-p n|-p ab] {patchname}\\n" #: quilt/new.in:25 #, fuzzy msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" "\n" "Erzeuge einen neuen Patch mit dem angegebenen Dateinamen, und fügt\n" "ihn nach dem obersten Patch ein.\n" "\n" "Quilt kann aus Unterverzeichnissen eines Quellbaums heraus verwendet " "werden.\n" "Es bestimmt die Wurzel des Quellbaums, in dem es nach %s-Verzeichnissen\n" "über dem aktuellen Verzeichnis sucht. Erzeugen Sie ein %s-Verzeichnis\n" "im vorgesehenen Wurzelverzeichnis, falls Quilt ein Verzeichnis zu weit oben\n" "im Verzeichnisbaum verwendet.\n" #: quilt/new.in:76 #, fuzzy msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "" "Kann Patches mit Level -p%s nicht aktualisieren, bitte -p0, -p1 oder -pab " "angeben\\n" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "" #: quilt/new.in:97 quilt/refresh.in:185 msgid "Patch %s exists already\\n" msgstr "Patch %s existiert bereits\\n" #: quilt/new.in:108 msgid "Patch %s is now on top\\n" msgstr "Der oberste Patch ist jetzt %s\\n" #: quilt/new.in:110 quilt/refresh.in:343 msgid "Failed to create patch %s\\n" msgstr "Konnte Patch %s nicht erzeugen\\n" #: quilt/next.in:22 msgid "Usage: quilt next [patch]\\n" msgstr "Verwendung: quilt next [patch]\\n" #: quilt/next.in:25 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" "\n" "Gibt den Namen des nächsten Patches nach dem obersten oder angegebenen\n" "Patch in der series-Datei aus.\n" #: quilt/patches.in:24 #, fuzzy msgid "" "Usage: quilt patches [-v] [--color[=always|auto|never]] {file} [files...]\\n" msgstr "Verwendung: quilt patches [-v] {file}\\n" #: quilt/patches.in:27 #, fuzzy msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "Gibt die Liste der Patches aus, die die angegebene Datei verändern.\n" "(Verwendet für Patches, die nicht angewandt sind, eine Heuristik. Diese\n" "Heuristik ist langsamer als die Suche in angewandten Patches.)\n" "\n" "-v\tAusführlichere, benutzerfreundliche Ausgabe.\n" #: quilt/pop.in:22 msgid "Usage: quilt pop [-afRqv] [num|patch]\\n" msgstr "Verwendung: quilt pop [-afRqv] [num|patch]\\n" #: quilt/pop.in:25 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\n" "\n" "-a\tRemove all applied patches.\n" "\n" "-f\tForce remove. The state before the patch(es) were applied will\n" "\tbe restored from backup files.\n" "\n" "-R\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" msgstr "" "\n" "Entferne Patches vom Stapel der angewandten Patches. Es kann eine Anzahl\n" "von Patches, die entfernt werden soll, oder der Name eines Patches\n" "angegeben werden. Wenn ein Name angegeben wird, werden alle Patches über\n" "dem angegebenen Patch entfernt. Wenn weder ein Patchname noch eine Nummer\n" "angegeben wird, wird der oberste Patch entfernt.\n" "\n" "-a\tAlle angewandten Patches entfernen.\n" "\n" "-f\tErzwungenes Entfernen. Der Zustand vor dem Anwenden das Patches wird\n" "\tüber die Sicherungsdateien wiederhergestellt.\n" "\n" "-R\t Überprüfe immer, ob sich Patches vollständig entfernen lassen;\n" "\tnicht auf Datei-Zeitspempel verlassen.\n" "\n" "-q\tWenige Meldungen ausgeben.\n" "\n" "-v\tViele Meldungen ausgeben.\n" #: quilt/pop.in:100 quilt/scripts/patchfns.in:880 msgid "Failed to copy files to temporary directory\\n" msgstr "Konnte Dateien nicht in temporäres Verzeichnis kopieren\\n" #: quilt/pop.in:125 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" "Patch %s kann nicht entfernt werden (Patch aktualisieren oder entfernen " "erzwingen mit -f)\\n" #: quilt/pop.in:150 msgid "Patch %s appears to be empty, removing\\n" msgstr "Patch %s scheint leer zu sein; wird entfernt\\n" #: quilt/pop.in:155 msgid "Removing patch %s\\n" msgstr "Entferne patch %s\\n" #: quilt/pop.in:226 msgid "Patch %s needs to be refreshed first.\\n" msgstr "Patch %s muss zuerst aktualisiert werden (Refresh).\\n" #: quilt/pop.in:236 msgid "No patch removed\\n" msgstr "Kein Patch entfernt\\n" #: quilt/pop.in:252 quilt/scripts/patchfns.in:513 msgid "No patches applied\\n" msgstr "Keine Patches angewandt\\n" #: quilt/pop.in:259 quilt/push.in:422 msgid "Now at patch %s\\n" msgstr "Jetzt in Patch %s\\n" #: quilt/previous.in:22 msgid "Usage: quilt previous [patch]\\n" msgstr "Verwendung: quilt previous [patch]\\n" #: quilt/previous.in:25 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" "\n" "Gibt den Namen des Patches vor dem obersten oder angegebenen\n" "Patch in der series-Datei aus.\n" #: quilt/push.in:24 msgid "" "Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" msgstr "" "Verwendung: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" #: quilt/push.in:27 #, fuzzy msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "Patches in der series-Datei anwenden. Es kann eine Anzahl von Patches,\n" "die angewandt werden soll, oder der Name eines Patches angegeben werden.\n" "Wenn ein Name angegeben wird, werden alle Patches bis einschliesslich\n" "diesem Patch angewandt. Wenn weder ein Patchname noch eine Nummer angegeben\n" "wird, wird der nächste Patch angewandt.\n" "\n" "-a\tAlle folgenden Patches anwenden.\n" "\n" "-q\tWenige Meldungen ausgeben.\n" "\n" "-f\tAnwenden erzwingen, selbst wenn dabei Fehler auftreten. Wenn -q nicht\n" "\tangegeben wird der Patch interaktiv angewandt, und das Patch-Utility\n" "\tkann fragen stellen.\n" "\n" "-v\tViele Meldungen ausgeben.\n" "\n" "--leave-rejects\n" "\tReject-Dateien (von \\`patch') bestehen lassen, selbst wenn ein Patch\n" "\tnicht sauber angewandt werden kann.\n" "\n" "--color[=always|auto|never]\n" "\tSyntax-Einfärbung aktivieren (immer, automatisch, nie).\n" #: quilt/push.in:68 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "Unterbrechung durch Benutzer; Patch %s wurde nicht angewandt.\\n" #: quilt/push.in:181 msgid "Applying patch %s\\n" msgstr "Wende Patch %s an\\n" #: quilt/push.in:215 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "Patch %s existiert nicht; wende leeren patch an\\n" #: quilt/push.in:219 msgid "Patch %s appears to be empty; applied\\n" msgstr "Patch %s scheint leer zu sein; angewandt\\n" #: quilt/push.in:223 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "Patch %s angewandt (erzwungen, muss aktualisiert werden (Refresh))\\n" #: quilt/push.in:233 msgid "Patch %s can be reverse-applied\\n" msgstr "Patch %s kann verkehrt angewandt werden\\n" #: quilt/push.in:236 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "Patch %s lässt sich nicht anwenden (erzwingen mit -f)\\n" #: quilt/push.in:291 #, fuzzy msgid "Patch %s is already applied; check your series file\\n" msgstr "Patch %s existiert bereits, bitte einen anderen Namen wählen\\n" #: quilt/push.in:396 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "Der oberste Patch %s muss zuerst aktualisiert werden (Refresh).\\n" #: quilt/refresh.in:22 msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "Verwendung: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] " "[-f] [--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--" "strip-trailing-whitespace] [patch]\\n" #: quilt/refresh.in:26 msgid "" "\n" "Refreshes the specified patch, or the topmost patch by default.\n" "Documentation that comes before the actual patch in the patch file is\n" "retained.\n" "\n" "It is possible to refresh patches that are not on top. If any patches\n" "on top of the patch to refresh modify the same files, the script aborts\n" "by default. Patches can still be refreshed with -f. In that case this\n" "script will print a warning for each shadowed file, changes by more\n" "recent patches will be ignored, and only changes in files that have not\n" "been modified by any more recent patches will end up in the specified\n" "patch.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" "\n" "Frischt den obersten oder angegebenen Patch auf. Dokumentation in der\n" "Patch-Datei, die vor dem eigentlichen Patch steht, bleibt dabei\n" "erhalten.\n" "\n" "Es können beliebige angewandte Patches aktualisiert werden. Wenn\n" "Patches, die nach dem angegebenen Patch angewandt sind, dieselben\n" "Dateien verändern, die auch dieser Patch verändert, bricht dieses Script\n" "normalerweise ab. Mit der Option -f kann das Aktalisieren trotzdem\n" "erzwungen werden. Dann wird für jede Datei, die später noch verändert\n" "wurde, eine Warnung ausgegeben, und nur Änderungen in Dateien, die\n" "danach nicht von anderen Patches weiter verändert werden, werden beim\n" "Aktalisieren berücksichtigt.\n" "\n" "-p n\tErzeuge einen -p n Patch (n=0 oder n=1 werden unterstützt).\n" "\n" "-p ab\tErzeuge einen -p1-artigen Patch, verwende aber a/datei und\n" "\tb/datei als den ursprünglichen und neuen Dateinamen anstelle von\n" "\tdir.orig/datei und dir/datei.\n" "\n" "-u, -U anzahl, -c, -C anzahl\n" "\tErzeuge ein Unified Diff (-u, -U) mit anzahl Kontextzeilen. Erzeuge\n" "\tein Context Diff (-c, -C) mit anzahl Kontextzeilen. Die Anzahl der\n" "\tKontextzeilen ist 3, wenn nicht anders angegeben.\n" "\n" "-z[neuer_name]\n" "\tErzeuge einen neuen Patch mit den Änderungen, statt den obersten\n" "\tPatch zu aktualisieren. Wenn kein neuer Name angegeben wird, wird\n" "\t\\`-2' an den Namen angehängt, usw (siehe das fork-Kommando).\n" "\n" "--no-timestamps\n" "\tKeine Zeitstempel in Patches angeben.\n" "\n" "--no-index\n" "\tErzeuge keine \\`Index:'-Zeilen\n" "\n" "--diffstat\n" "\tFüge dem Patch-Kopf einen diffstat-Abschnitt hinzu, oder ersetzte den\n" "\tbestehenden Abschnitt.\n" "\n" "-f\tErzwinge das Aktalisieren eines Patches, der sich nicht an oberster\n" "\tPosition befindet.\n" "\n" "--no-timestamps\n" "\tKeine Zeitstempel in Patches angeben (wie QUILT_DIFF_NO_TIMESTAMPS in~/." "quiltrc).\n" "\n" "--backup\n" "\tErzeuge ein Backup der alten Version von patch als patch~\n" "\n" "--sort\tSortiere Dateien im Patch nach ihrem namen, statt die ursprüngliche\n" "\tReihenfolge zu erhalten.\n" "\n" "--strip-trailing-whitespace\n" "\tEntferne Whitespace an Zeilenenden.\n" #: quilt/refresh.in:171 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "Kann nur den obersten Patch mit -z aktualisieren\\n" #: quilt/refresh.in:202 #, fuzzy msgid "" "Cannot refresh patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "Kann Patches mit Level -p%s nicht aktualisieren, bitte -p0, -p1 oder -pab " "angeben\\n" #: quilt/refresh.in:235 #, fuzzy msgid "Diff failed on file '%s', aborting\\n" msgstr "Diff fehlgeschlagen, Abbruch.\\n" #: quilt/refresh.in:241 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" "Später angewandte Patches verändern Dateien von %s. Aktalisieren mit -f " "erzwingen.\\n" #: quilt/refresh.in:247 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" "Kann --strip-trailing-whitespace nicht für Patches verwenden, die Dateien " "enthalten, die danach von anderen Patches weiter verändert werden.\\n" #: quilt/refresh.in:253 quilt/refresh.in:355 msgid "Nothing in patch %s\\n" msgstr "Patch %s ist leer\\n" #: quilt/refresh.in:325 msgid "Patch %s is unchanged\\n" msgstr "Patch %s ist unverändert\\n" #: quilt/refresh.in:353 msgid "Refreshed patch %s\\n" msgstr "Patch %s aktualisiert\\n" #: quilt/remove.in:22 msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "Verwendung: quilt remove [-P patch] {datei} ...\\n" #: quilt/remove.in:25 #, fuzzy msgid "" "\n" "Remove one or more files from the topmost or named patch. Files that\n" "are modified by patches on top of the specified patch cannot be removed.\n" "\n" "-P patch\n" "\tRemove named files from the named patch.\n" msgstr "" "\n" "Änderungen an den angegebenen Dateien am obersten oder angegebenen Patch\n" "zurücknehmen. Änderungen in Dateien, die durch Patches über dem angegebenen\n" "Patch verändert werden, können nicht zurückgenommen werden.\n" "\n" "-P patch\n" "\tPatch, aus dem Dateien entfernt werden sollen.\n" #: quilt/remove.in:73 quilt/revert.in:75 msgid "File %s is not in patch %s\\n" msgstr "Datei %s ist nicht in Patch %s\\n" #: quilt/remove.in:91 msgid "Failed to remove file %s from patch %s\\n" msgstr "Konnte Datei %s aus Patch %s nicht entfernen\\n" #: quilt/remove.in:105 msgid "File %s removed from patch %s\\n" msgstr "Datei %s aus Patch %s entfernt\\n" #: quilt/rename.in:22 msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "Verwendung: quilt rename [-P patch] neuer_name\\n" #: quilt/rename.in:25 msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" "\n" "Benennt den obersten oder angegebenen Patch um.\n" "\n" "-P patch\n" "\tPatch, der umbenannt werden soll.\n" #: quilt/rename.in:84 msgid "Patch %s exists already, please choose a different name\\n" msgstr "Patch %s existiert bereits, bitte einen anderen Namen wählen\\n" #: quilt/rename.in:98 msgid "Renaming of patch %s to %s failed\\n" msgstr "Fehler beim Umbenennen von Patch %s auf %s\\n" #: quilt/rename.in:104 msgid "Patch %s renamed to %s\\n" msgstr "Patch %s auf %s umbenannt\\n" #: quilt/revert.in:22 msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "Verwendung: quilt revert [-P patch] {datei} ...\\n" #: quilt/revert.in:25 #, fuzzy msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" "\n" "Änderungen an den angegebenen Dateien am obersten oder angegebenen Patch\n" "zurücknehmen. Änderungen in Dateien, die durch Patches über dem angegebenen\n" "Patch verändert werden, können nicht zurückgenommen werden.\n" "\n" "-P patch\n" "\tPatch, aus dem Dateien entfernt werden sollen.\n" #: quilt/revert.in:103 quilt/revert.in:112 msgid "File %s is unchanged\\n" msgstr "Datei %s ist unverändert\\n" #: quilt/revert.in:120 msgid "Failed to revert changes to %s in patch %s\\n" msgstr "Konnte Änderungen an %s in Patch %s nicht zurücknehmen\\n" #: quilt/revert.in:124 msgid "Changes to %s in patch %s reverted\\n" msgstr "Änderungen an %s in Patch %s zurückgenommen\\n" #: quilt/scripts/edmail.in:96 #, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "Anzeigename `%s' enthält eine unvollständige Klammerung\n" #: quilt/scripts/edmail.in:114 #, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "Zustelladresse `%s' ist ungültig\n" #: quilt/scripts/patchfns.in:232 quilt/scripts/patchfns.in:526 #, fuzzy msgid "%s is not a regular file\\n" msgstr "Patch %s ist nicht in der series-Datei\\n" #: quilt/scripts/patchfns.in:480 quilt/scripts/patchfns.in:497 msgid "No patches in series\\n" msgstr "Keine Patches in der series-Datei\\n" #: quilt/scripts/patchfns.in:482 quilt/scripts/patchfns.in:499 msgid "No series file found\\n" msgstr "" #: quilt/scripts/patchfns.in:555 msgid "Patch %s is not in series\\n" msgstr "Patch %s ist nicht in der series-Datei\\n" #: quilt/scripts/patchfns.in:583 msgid "Patch %s is not applied\\n" msgstr "Patch %s ist nicht angewandt\\n" #: quilt/scripts/patchfns.in:620 msgid "File series fully applied, ends at patch %s\\n" msgstr "series-Datei vollständig angewandt, endet in Patch %s\\n" #: quilt/scripts/patchfns.in:898 msgid "Failed to patch temporary files\\n" msgstr "Konnte temporäre Dateien nicht patchen\\n" #: quilt/scripts/patchfns.in:941 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" "Die quilt-Metadaten in diesem Arbeitsverzeichnis haben Version $version, " "aber diese Version von quilt kann nur mit Metadaten in den Versionen " "$DB_VERSION und darunter umgehen. Bitte entfernen Sie vor dem Downgrade von " "quilt alle Patches mit der Version von quilt, die zur Erstellung des " "Arbeitsverzeichnisses verwendet wurde.\\n" #: quilt/scripts/patchfns.in:1094 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" "Das Arbeitsverzeichnis wurde von einer älteren Version von quilt erstellt. " "Bitte führen Sie \\`quilt upgrade' aus.\\n" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "Aufruf: %s [-p num] [-n] [patch]\n" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "%s: Ich bin verwirrt.\n" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "Warnung: abschliessende Leerzeichen in Zeile %s von %s\n" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "Warnung: abschliessende Leerzeichen in den Zeilen %s von %s\n" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "Entferne abschliessende Leerzeichen in Zeile %s von %s\n" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "Entferne abschliessende Leerzeichen in den Zeilen %s von %s\n" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "Umbenennen von %s auf %s: %s\n" #: quilt/series.in:22 #, fuzzy msgid "Usage: quilt series [--color[=always|auto|never]] [-v]\\n" msgstr "" "Verwendung: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" #: quilt/series.in:25 #, fuzzy msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "-v\tVerbose, more user friendly output.\n" msgstr "" "\n" "Gibt die Namen aller Dateien in der series-Datei aus.\n" "\n" "-v\tAusführlichere, benutzerfreundliche Ausgabe.\n" #: quilt/setup.in:35 quilt/setup.in:55 msgid "Directory %s exists\\n" msgstr "Verzeichnis %s existiert\\n" #: quilt/setup.in:61 msgid "File %s exists\\n" msgstr "Datei %s existiert\\n" #: quilt/setup.in:102 msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] " "{specfile|seriesfile}\\n" msgstr "" "Verwendung: quilt setup [-d pfad-präfix] [-v] [--sourcedir verzeichnis] [--" "fuzz=N] {spec-datei|series-datei}\\n" #: quilt/setup.in:105 #, fuzzy msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" msgstr "" "\n" "Initialisiere einen Quellbaum aus einer rpm spec-Datei oder einer quilt " "series-Datei.\n" "\n" "-d\tOptionaler Pfad-Präfix für den erzeugten Quellbaum.\n" "\n" "--sourcedir\n" "\tVerzeichnis, das die Paketquellen enthält. (Default: \\`.'.)\n" "\n" "-v\tAusführliche Ausgabe.\n" #: quilt/setup.in:176 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" "Der %%prep-Abschnitt von %s ist fehlgeschlagen; die Ergebnisse sind " "möglicherweise unvollständig\\n" #: quilt/setup.in:179 msgid "The -v option will show rpm's output\\n" msgstr "Die Option -v zeigt die Ausgaben von rpm an\\n" #: quilt/setup.in:231 quilt/setup.in:243 msgid "File %s not found\\n" msgstr "Datei %s nicht gefunden\\n" #: quilt/setup.in:234 quilt/setup.in:246 msgid "Unpacking archive %s\\n" msgstr "Entpacke Archiv %s\\n" #: quilt/setup.in:255 msgid "Trying alternative patches and series names..." msgstr "" #: quilt/snapshot.in:22 msgid "Usage: quilt snapshot [-d]\\n" msgstr "Verwendung: quilt snapshot [-d]\\n" #: quilt/snapshot.in:25 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" "\n" "Erzeuge einen Snapshot des aktuellen Zustands des Quellbaums. Danach kann\n" "der Quellbaum auf die üblichen Arten verändert werden, inklusive dem\n" "Hinzufügen und Entfernen von Patches. Ein Patch zwischen dem Quellbaum\n" "zum Zeitpunkt des Snapshots und dem aktuellen Zustand kann mit\n" "\\`quilt diff --snapshot' erzeugt werden.\n" "\n" "-d\tEntferne lediglich den aktuellen Snapshot.\n" #: quilt/top.in:22 msgid "Usage: quilt top\\n" msgstr "Verwendung: quilt top\\n" #: quilt/top.in:25 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" "\n" "Gibt den Namen des obersten Patches auf dem Stapel aus.\n" #: quilt/unapplied.in:22 msgid "Usage: quilt unapplied [patch]\\n" msgstr "Verwendung: quilt unapplied [patch]\\n" #: quilt/unapplied.in:25 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" "\n" "Gint eine Liste der Patches aus, die momentan nicht angewandt sind, bzw.\n" "eine Liste der Patches, die dem angegebenen Patch folgen.\n" #: quilt/upgrade.in:25 msgid "Usage: quilt upgrade\\n" msgstr "Verwendung: quilt upgrade\\n" #: quilt/upgrade.in:28 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" "\n" "Aktualisiere die Metadaten in einem Arbeitsverzeichnis von einer älteren " "Version\n" "von quilt zur aktuellen. Dieses Kommando wird nur benötigt, wenn sich das\n" "Format der Metadaten verändert hat, und das Arbeitsverzeichnis noch alte\n" "Metadaten enthält. In diesem Fall fordert quilt dazu auf, \\`quilt upgrade'\n" "auszuführen.\n" #: quilt/upgrade.in:67 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "" "Die Metadaten in $QUILT_PC/ sind bereits in Format Version $DB_VERSION; " "nichts zu tun\\n" #: quilt/upgrade.in:71 msgid "Converting meta-data to version %s\\n" msgstr "Konvertiere Metadaten in Version %s\\n" #: quilt/upgrade.in:102 msgid "Conversion failed\\n" msgstr "Konvertierung fehlgeschlagen\\n" #: quilt/upgrade.in:103 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" "\n" "Bitte entfernen Sie alle Patches mit \\`quilt pop -a' der quilt-Version, die " "zur Erzeugung des Arbeitsverzeichnis verwendet wurden, oder entfernen Sie " "das Verzeichnis %s, und wenden Sie die Patches neu an.\\n" #~ msgid "" #~ "Cannot refresh patches with -p%s, please specify -p0 or -p1 instead\\n" #~ msgstr "" #~ "Kann Patches mit Level -p$opt_strip_level nicht aktualisieren, bitte -p0 " #~ "oder -p1 angeben\\n" #~ msgid "Usage: quilt series [-v]\\n" #~ msgstr "Verwendung: quilt series [-v]\\n" quilt-0.63/po/ja.po0000644000175000017500000017410712332477667014507 0ustar mquinsonmquinson# Quilt japanese translation # Copyright (C) 2003 Free Software Foundation, Inc. # Yasushi SHOJI , 2003. # msgid "" msgstr "" "Project-Id-Version: quilt 0.33\n" "PO-Revision-Date: 2011-02-01 19:37+0900\n" "Last-Translator: Yasushi SHOJI \n" "Language-Team: Quilt\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: bin/quilt.in:40 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "ä½¿ã„æ–¹: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." #: bin/quilt.in:41 msgid " quilt --version" msgstr " quilt --version" #: bin/quilt.in:43 msgid "Commands are:" msgstr "コマンド一覧:" #: bin/quilt.in:48 msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately." msgstr "" "\n" "全コマンド共通オプション:\n" "\n" "--trace\n" "\tコマンドをbashã®ãƒˆãƒ¬ãƒ¼ã‚¹ãƒ¢ãƒ¼ãƒ‰(-x)ã§å®Ÿè¡Œã€‚内部デãƒãƒƒã‚°ç”¨ã€‚\n" "\n" "--quiltrc file\n" "\t~/.quiltrc (存在ã—ãªã„å ´åˆã¯ @ETCDIR@/quiltrc) ã®ä»£ã‚Šã«èª­ã¿è¾¼ã‚€\n" "\tコンフィギュレーションファイルを指定。内容ã®è©³ç´°ã«ã¤ã„ã¦ã¯\n" "\tPDFã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’å‚照。特別ãªãƒ•ァイルå \\\"-\\\"を使ã†ã¨ã€\n" "\tコンフィギュレーションファイルを読ã¿è¾¼ã¾ãªã„。\n" "\n" "--version\n" "\tãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…報を出力ã—ã¦çµ‚了。" #: quilt/add.in:22 msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "ä½¿ã„æ–¹: quilt add [-P パッãƒ] {file} ...\\n" #: quilt/add.in:25 msgid "" "\n" "Add one or more files to the topmost or named patch. Files must be\n" "added to the patch before being modified. Files that are modified by\n" "patches already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã«ãƒ•ァイル(複数å¯)を追加ã™ã‚‹ã€‚ファイルã¯ç·¨\n" "集ã™ã‚‹å‰ã«ã‹ãªã‚‰ãšè¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚る。指定ã—ãŸãƒ‘ッãƒã‚ˆã‚Šä¸Šã®ãƒ‘ッãƒã§å¤‰\n" "æ›´ã•れã¦ã„るファイルã¯è¿½åŠ ã™ã‚‹ã“ã¨ãŒã§ããªã„。\n" "\n" "-P パッãƒ\n" "\tファイルを追加ã™ã‚‹ãƒ‘ッãƒ\n" #: quilt/add.in:48 quilt/add.in:54 msgid "File %s is located below %s\\n" msgstr "ファイル %s ã¯ã€%s 以下ã«ã‚りã¾ã™\\n" #: quilt/add.in:103 msgid "File %s is already in patch %s\\n" msgstr "ファイル %s ã¯ã€ã™ã§ã«ãƒ‘ッム%s ã«å«ã¾ã‚Œã¦ã„ã¾ã™\\n" #: quilt/add.in:111 quilt/remove.in:82 quilt/revert.in:84 msgid "File %s modified by patch %s\\n" msgstr "ファイル %s ã¯ã€ãƒ‘ッム%s ã«ã‚ˆã£ã¦ã™ã§ã«å¤‰æ›´ã•れã¦ã„ã¾ã™\\n" #: quilt/add.in:119 msgid "Cannot add symbolic link %s\\n" msgstr "シンボリックファイル %s ã¯è¿½åŠ ã§ãã¾ã›ã‚“" #: quilt/add.in:126 msgid "Failed to back up file %s\\n" msgstr "ファイル %s ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/add.in:137 msgid "File %s added to patch %s\\n" msgstr "ファイル %s をパッム%s ã«è¿½åŠ ã—ã¾ã—ãŸ\\n" #: quilt/annotate.in:22 msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "ä½¿ã„æ–¹: quilt annotate [-P パッãƒ] {file}\\n" #: quilt/annotate.in:25 msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" "\n" "パッãƒãŒå¤‰æ›´ã—ãŸè¡Œã«è¨»é‡ˆã‚’付ã‘ã¦è¡¨ç¤ºã€‚é©å¿œã•れるã®ã¯ã€ã‚ã¦ã‚‰ã‚Œã¦ã„るパッ\n" "ãƒã®ã¿ã€‚\n" "\n" "-P パッãƒ\n" "\t最上ä½ã®ãƒ‘ッãƒã¾ã§å‡¦ç†ã‚’行ãªã‚ãšã€æŒ‡å®šã•れãŸãƒ‘ッãƒã§å‡¦ç†ã‚’終了\n" #: quilt/applied.in:22 msgid "Usage: quilt applied [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt applied [パッãƒ]\\n" #: quilt/applied.in:25 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" "\n" "é©ç”¨ã•れã¦ã„るパッãƒã®ä¸€è¦§ã‚’表示ã—ã¾ã™ã€‚指定ã•れãŸãƒ‘ッãƒãŒã‚ã‚‹å ´åˆã¯ã€\n" "seriesファイル内ã®ãƒ‘ッãƒä¸€è¦§ã®ä¸­ã‹ã‚‰æŒ‡å®šã•れãŸãƒ‘ッãƒã¾ã§ã‚’表示ã—ã¾ã™ã€‚\n" #: quilt/delete.in:22 msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "ä½¿ã„æ–¹: quilt delete [-r] [--backup] [パッãƒ|-n]\\n" #: quilt/delete.in:25 msgid "" "\n" "Remove the specified or topmost patch from the series file. If the\n" "patch is applied, quilt will attempt to remove it first. (Only the\n" "topmost patch can be removed right now.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" "\n" "指定ã•れãŸãƒ‘ッãƒã€ã¾ãŸã¯æœ€ä¸Šä½ã®ãƒ‘ッãƒã‚’シリーズファイルã‹ã‚‰å‰Šé™¤ã™ã‚‹ã€‚\n" "パッãƒãŒã™ã§ã«é©ç”¨ã•れã¦ã„ã‚‹å ´åˆã¯ã€æœ€åˆã«ãƒ‘ッãƒã‚’外ã™ã€‚( ç¾çŠ¶ã€æœ€ä¸Šä½\n" "ã®ãƒ‘ッãƒã—ã‹å‰Šé™¤ã™ã‚‹ã“ã¨ã¯ã§ããªã„。)\n" "\n" "-n\t最上ä½ãƒ‘ッãƒã‚„指定ã•れãŸãƒ‘ッãƒã§ã¯ãªãã€æœ€ä¸Šä½ãƒ‘ッãƒã®æ¬¡ã®ãƒ‘ッãƒã‚’\n" "\t削除ã™ã‚‹ã€‚\n" "\n" "-r\tシリーズファイルã‹ã‚‰ãƒ‘ッãƒã‚’消ã™ã¨ãã«ã€patchesディレクトリã‹ã‚‰ã‚‚\n" "\t削除ã™ã‚‹ã€‚\n" "\n" "--backup\n" "\tパッãƒã‚’削除ã›ãšã€ãƒ‘ッãƒ~ã«åå‰ã‚’変更ã—ã¾ã™ã€‚オプション\\`-r'ãŒ\n" "\t有効ã§ã¯ãªã„ã¨ãã¯ç„¡è¦–ã•れる。\n" #: quilt/delete.in:89 msgid "No next patch\\n" msgstr "次ã®ãƒ‘ッãƒã¯ã‚りã¾ã›ã‚“\\n" #: quilt/delete.in:102 quilt/scripts/patchfns.in:604 msgid "Patch %s is currently applied\\n" msgstr "パッム%s ã¯ç¾åœ¨é©ç”¨ã•れã¦ã„ã¾ã™\\n" #: quilt/delete.in:114 msgid "Removed patch %s\\n" msgstr "パッム%s を削除ã—ã¾ã—ãŸ\\n" #: quilt/delete.in:116 msgid "Failed to remove patch %s\\n" msgstr "パッム%s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/delete.in:127 msgid "Failed to backup patch file %s\\n" msgstr "ファイル %s ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/delete.in:134 msgid "Failed to remove patch file %s\\n" msgstr "パッム%s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/diff.in:24 #, fuzzy msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color[=always|auto|never]] [file ...]\\n" msgstr "" "ä½¿ã„æ–¹: quilt diff [-p n|-p ab] [-u|-U æ•°|-c|-C æ•°] [--combine パッãƒ|-z] [-" "R] [-P パッãƒ] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color] [ファイル ...]\\n" #: quilt/diff.in:28 #, fuzzy msgid "" "\n" "Produces a diff of the specified file(s) in the topmost or specified\n" "patch. If no files are specified, all files that are modified are\n" "included.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine patch\n" "\tCreate a combined diff for all patches between this patch and\n" "\tthe patch specified with -P. A patch name of \\`-' is equivalent\n" "\tto specifying the first applied patch.\n" "\n" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã«ã€æŒ‡å®šã•れãŸãƒ•ァイルã®å·®åˆ†ã‚’作æˆã™ã‚‹ã€‚\n" "ãƒ•ã‚¡ã‚¤ãƒ«ãŒæŒ‡å®šã•れãªã‹ã£ãŸå ´åˆã¯ã€å¤‰æ›´ã•れãŸãƒ•ァイルã™ã¹ã¦ãŒå«ã¾ã‚Œã‚‹ã€‚\n" "\n" "-p n\t-p n スタイルã®ãƒ‘ッãƒã‚’ä½œæˆ (-p0 ã¾ãŸã¯ -p1ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã‚‹)\n" "\n" "-p ab\t-p1スタイルã®ãƒ‘ッãƒã‚’作æˆã€‚ãŸã ã—デフォルト㮠dir.orig/fileã¨\n" "\tdir/fileã¨ã„ã†åå‰ã§ã¯ãªãã€a/fileã¨b/fileã‚’ãれãžã‚Œã‚ªãƒªã‚¸ãƒŠãƒ«\n" "\tã¨æ–°ã—ã„ファイルåã¨ã™ã‚‹ã€‚\n" "\n" "-u, -U num, -c, -C num\n" "\tnum行ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã§unified diff (-u, -U) を作æˆã€‚num行ã®ã‚³ãƒ³\n" "\tテキスト㧠context diff (-c, -C)を作æˆã€‚デフォルトã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹\n" "\tト行数㯠3行。\n" "\n" "--no-timestamps\n" "\tパッãƒãƒ˜ãƒƒãƒ€ã«ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã‚’å«ã‚ãªã„。\n" "\n" "--no-index\n" "\tIndex: ã®è¡Œã‚’出力ã—ãªã„。\n" "\n" "-z\t最上ä½ã€ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã«é–¢é€£ã—ãŸå¤‰æ›´ã‚’ã€æ¨™æº–出力ã«è¡¨ç¤ºã€‚\n" "\n" "-R\treverse diffを作æˆã€‚\n" "\n" "-P パッãƒ\n" "\t指定ã•れãŸãƒ‘ッãƒç”¨ã« diffを作æˆã€‚(デフォルトã§ã¯æœ€ä¸Šä½ã®ãƒ‘ッãƒã€‚)\n" "\n" "--combine パッãƒ\n" "\tã“ã®ãƒ‘ッãƒã¨ -Pã§æŒ‡å®šã•れãŸãƒ‘ッãƒã®é–“ã™ã¹ã¦ã®ãƒ‘ッãƒã®å·®åˆ†ã‚’åˆ\n" "\tã›ã¦ä¸€ã¤ã®ãƒ‘ッãƒã‚’作æˆã€‚\\`-' ã¨ã„ã†ãƒ‘ッãƒåã¯æœ€åˆã«é©ç”¨ã•れãŸ\n" "\tパッãƒã‚’指定ã™ã‚‹ã®ã¨åŒã˜æ„味ãŒã‚る。\n" "\n" "--snapshot\n" "\tスナップショットã¨ã®å·®åˆ†ã‚’ä½œæˆ (å‚ç…§ \\`quilt snapshot -h')。\n" "\n" "--diff=utility\n" "\t指定ã•れ㟠utilityを使ã£ã¦å·®åˆ†ã‚’生æˆã€‚オリジナルã®ãƒ•ã‚¡ã‚¤ãƒ«ã¨æ–°\n" "\tã—ã„ファイルを引数ã¨ã—㦠utilityã«æ¸¡ã•れる。\n" "\n" "--color[=always|auto|never]\n" "\tシンタックスã®è‰²ä»˜ã‘指定。\n" "\n" "--sort\té †ç•ªã‚’ä¿æŒã›ãšã€åå‰é †ã«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä¸¦ã³æ›ãˆã‚‹ã€‚\n" #: quilt/diff.in:226 msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" "オプション \\`--combine'㨠\\`--snapshot'〠\\`-z'ã¯åŒæ™‚ã«ä½¿ãˆã¾ã›ã‚“。\\n" #: quilt/diff.in:240 msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "-p%s ã§ãƒ‘ッãƒã®å·®åˆ†ã¯ã¨ã‚Œã¾ã›ã‚“。-p0ã€-p1ã€ã¾ãŸã¯ -pab を指定ã—ã¦ãã ã•ã„\\n" #: quilt/diff.in:249 msgid "No snapshot to diff against\\n" msgstr "" #: quilt/diff.in:283 quilt/files.in:105 quilt/mail.in:422 msgid "Patch %s not applied before patch %s\\n" msgstr "パッム%s ã¯ã€ãƒ‘ッム%s ã®å‰ã«é©ç”¨ã•れã¦ã„ã¾ã›ã‚“\\n" #: quilt/diff.in:351 msgid "File %s is not being modified\\n" msgstr "ファイル %s ã¯å¤‰æ›´ã•れã¦ã„ã¾ã›ã‚“\\n" #: quilt/diff.in:370 msgid "Diff failed, aborting\\n" msgstr "差分ã«å¤±æ•—ã—ã¾ã—ãŸã€‚異常終了ã—ã¾ã™\\n" #: quilt/diff.in:377 msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "警告: 最近ã®ãƒ‘ッãƒãŒã€ãƒ‘ッム%s 内ã®ãƒ•ァイルを変更ã—ã¦ã„ã¾ã™\\n" #: quilt/edit.in:24 msgid "Usage: quilt edit file ...\\n" msgstr "ä½¿ã„æ–¹: quilt edit ファイル ...\\n" #: quilt/edit.in:27 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" "\n" "最上ä½ã®ãƒ‘ッãƒã«æŒ‡å®šã•れãŸãƒ•ァイルを追加後ã€\\$EDITOR (%s) を使ã£ã¦ç·¨é›†ã€‚\n" #: quilt/files.in:22 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt files [-v] [-a] [-l] [--combine パッãƒ] [パッãƒ]\\n" #: quilt/files.in:25 msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" "\n" "最上ä½ãƒ‘ッãƒã€ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒãŒå¤‰æ›´ã‚’加ãˆã‚‹ãƒ•ァイルã®ä¸€è¦§ã‚’表示\n" "ã™ã‚‹ã€‚\n" "\n" "-a\té©ç”¨ã•れã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒãŒå¤‰æ›´ã™ã‚‹ãƒ•ァイルã®ä¸€è¦§ã‚’表示\n" "\n" "-l\tパッãƒåを追加表示\n" "\n" "-v\t詳細ã§è¦‹ã‚„ã™ã„表示。\n" "\n" "--combine パッãƒ\n" "\t最上ä½ãƒ‘ッãƒã‹ã‚‰æŒ‡å®šã•れãŸãƒ‘ッãƒã¾ã§ã®ãƒ‘ッãƒä¸€è¦§ã‚’作æˆã€‚パッãƒ\n" "\tåã« \\`-' を指定ã™ã‚‹ã¨ã€ä¸€ç•ªæœ€åˆã«é©ç”¨ã•れã¦ã„るパッãƒã‚’指定ã—ãŸ\n" "\tã“ã¨ã«ãªã‚‹ã€‚\n" "\n" #: quilt/fold.in:22 msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "ä½¿ã„æ–¹: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" #: quilt/fold.in:25 msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" "\n" "標準入力ã‹ã‚‰èª­ã¿è¾¼ã‚“ã ãƒ‘ッãƒã‚’最上ä½ã®ãƒ‘ッãƒã«çµ±åˆã™ã‚‹:パッãƒã«ã‚ˆã£ã¦\n" "変更ã•れるファイルãŒã€æœ€ä¸Šä½ã®ãƒ‘ッãƒã«è¿½åŠ ã•れã¦ã„ã‚‹ã“ã¨ãŒç¢ºèªã•れãŸå¾Œã€\n" "パッãƒã¯æŒ‡å®šã•れãŸã‚¹ãƒˆãƒªãƒƒãƒ—レベルを使ã£ã¦é©ç”¨ã•れる (デフォルト㯠1)。\n" "\n" "-R\tパッãƒã‚’å転ã—ã¦é©ç”¨ã€‚\n" "\n" "-q 表示を抑制。\n" "\n" "-f\tリジェクトãŒã‚ã£ã¦ã‚‚強制的ã«é©ç”¨ã€‚表示抑制モード以外ã§ã¯ã€ã‚¤ãƒ³ã‚¿\n" " ラクティブã«ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã€‚ã¤ã¾ã‚Šã€ãƒ‘ッãƒé©ç”¨æ™‚ã«è³ªå•ã•れるã“ã¨\n" "\tãŒã‚る。\n" "\n" "-p strip-level\n" "\tパッãƒã‚’é©ç”¨ã™ã‚‹ã¨ãã«ã€ãƒ•ァイルåã‹ã‚‰çœãパスåè¦ç´ ã®æ•°\n" #: quilt/fold.in:131 msgid "File %s may be corrupted\\n" msgstr "ファイル %s ã¯å£Šã‚Œã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™\\n" #: quilt/fork.in:22 msgid "Usage: quilt fork [new_name]\\n" msgstr "ä½¿ã„æ–¹: quilt fork [new_name]\\n" #: quilt/fork.in:25 msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" "\n" "最上ä½ãƒ‘ッãƒã‚’フォークã™ã‚‹ã€‚パッãƒã‚’フォークã™ã‚‹ã¨ã¯åŒã˜å†…容ã®ã‚³ãƒ”ーを別ã®å" "å‰ã§ä½œæˆã™ã‚‹ã“ã¨ã§ã€æ–°ã—ã„åå‰ã‚’å…ƒã®æ–¹ã«ã‹ã‚ã£ã¦ä½¿ç”¨ã™ã‚‹ã€‚ã“れã¯ãƒ‘ッãƒã‚’変更" "ã—ãªã‘れã°ãªã‚‰ãªã„ãŒã€å…ƒã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚‚残ã•ãªã‘れã°ãªã‚‰ãªã„å ´åˆã«ä¾¿åˆ©ã§ã‚ã‚‹" "(例: 別シリーズã§ã®ä½¿ç”¨ã‚„éŽç¨‹ã®ä¿å­˜) 。典型的ãªã‚³ãƒžãƒ³ãƒ‰ã®é †ç•ªã¨ã—ã¦ã¯ã€forkã€" "editã€refreshã¨ãªã‚‹ã€‚\n" "\n" "new_nameãŒæŒ‡å®šã•れãªã‹ã£ãŸå ´åˆã€ãƒ•ォークã—ãŸãƒ‘ッãƒåã¯ç¾åœ¨ã®ãƒ‘ッãƒåã®å¾Œã« " "\\`-2' ãŒä»˜ã。ã™ã§ã«ãƒ‘ッãƒå㌠-番å·ã§çµ‚ã£ã¦ã„ã‚‹å ´åˆã€ç•ªå·ã®å€¤ãŒ1増ãˆã‚‹ " "(例: patch.diffã€patch-2.diffã€patch-3.diff)。\n" #: quilt/fork.in:84 msgid "Patch %s exists already, please choose a new name\\n" msgstr "パッム%s ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚æ–°ã—ã„åå‰ã‚’é¸ã‚“ã§ãã ã•ã„\\n" #: quilt/fork.in:96 msgid "Fork of patch %s to patch %s failed\\n" msgstr "パッム%s ã‹ã‚‰ãƒ‘ッム%s ã¸ã®åˆ†å²ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/fork.in:102 quilt/refresh.in:347 msgid "Fork of patch %s created as %s\\n" msgstr "パッム%s ã®åˆ†å²ã§ %s ãŒä½œæˆã•れã¾ã—ãŸ\\n" #: quilt/graph.in:22 msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" "ä½¿ã„æ–¹: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [パッãƒ]\\n" #: quilt/graph.in:26 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" "\n" "dot(1)を使ã£ã¦é©ç”¨ã•れã¦ã„るパッãƒã®ä¾å­˜é–¢ä¿‚ã®ã‚°ãƒ©ãƒ•を作æˆã™ã‚‹ã€‚ã‚るパッ\n" "ãƒãŒä»–ã®ãƒ‘ッãƒã«ä¾å­˜ã—ã¦ã„る状態ã¨ã¯ã€ä¸¡æ–¹ã®ãƒ‘ッãƒãŒåŒã˜ãƒ•ァイルを変更\n" "ã—ã¦ã„ã‚‹å ´åˆã‚„変更箇所ãŒé‡ãªã£ãŸ(オプション --lines使用時)を指ã™ã€‚特ã«\n" "示ã•れãªã„ã‹ãŽã‚Šã€ã‚°ãƒ©ãƒ•ã¯ç¾åœ¨æœ€ä¸Šä½ã®ãƒ‘ッãƒãŒä¾å­˜ã™ã‚‹ãƒ‘ッãƒã™ã¹ã¦ã‚’å«\n" "む。\n" "\n" "最上ä½ãƒ‘ッãƒä»¥å¤–ã®ãƒ‘ッãƒåãŒæŒ‡å®šã•れãŸå ´åˆã¯ã€æŒ‡å®šã•れãŸãƒ‘ッãƒã®ã‚°ãƒ©ãƒ•\n" "を作æˆã™ã‚‹ã€‚ã‚°ãƒ©ãƒ•ã¯æŒ‡å®šã•れãŸãƒ‘ッãƒãŒä¾å­˜ã™ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒã¨ã€æŒ‡å®šã•\n" "れãŸãƒ‘ッãƒã«ä¾å­˜ã™ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’å«ã‚€ã€‚\n" "\n" "--all\té©ç”¨ã•れã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒã¨ãã®ä¾å­˜é–¢ä¿‚ã®ã‚°ãƒ©ãƒ•を作æˆã™ã‚‹ã€‚\n" "(é©ç”¨ã•れã¦ã„ãªã„パッãƒã¯å«ã¾ãªã„)\n" "\n" "--reduce\n" "\tTransitive edgeã‚’çœç•¥ã™ã‚‹ã€‚tred(1)ã‚’å‚照。\n" "\n" "--lines[=行数]\n" "\tパッãƒãŒå¤‰æ›´ã™ã‚‹è¡Œã‹ã‚‰ä¾å­˜é–¢ä¿‚を計算ã™ã‚‹ã€‚è¡Œæ•°ãŒæŒ‡å®šã•れãªã„å ´\n" "\tåˆã¯2行分ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆãŒä½¿ç”¨ã•れる。\n" "\n" "--edge-labels=files\n" "\tグラフ内ã®ã‚¨ãƒƒã‚¸ã«ãƒ‘ッãƒãŒå¤‰æ›´ã™ã‚‹ãƒ•ァイルåを付ã‘る。\n" "\n" "-T ps\t直接ãƒã‚¹ãƒˆã‚¹ã‚¯ãƒªãƒ—トファイルを生æˆã™ã‚‹ã€‚\n" #: quilt/grep.in:22 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "ä½¿ã„æ–¹: quilt grep [-h|options] {パターン}\\n" #: quilt/grep.in:25 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" "\n" "Quiltã«ã‚ˆã£ã¦ç®¡ç†ã•れã¦ã„るパッãƒã¯ãƒ¡ã‚¿æƒ…報以外ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’å†å¸°çš„\n" "ã«grepã™ã‚‹ã€‚ファイルåãŒä¸Žãˆã‚‰ã‚Œãªã‹ã£ãŸå ´åˆã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå†…ã™ã¹ã¦ãŒå¯¾\n" "象ã¨ãªã‚‹ã€‚オプションã«ã¤ã„ã¦ã¯ grep(1)ã®ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãƒšãƒ¼ã‚¸ã‚’å‚照。\n" "\n" "-h\tã“ã®ãƒ˜ãƒ«ãƒ—を表示。二é‡ãƒ€ãƒƒã‚·ãƒ¥è¨˜å· (--)を使ã†ã“ã¨ã«ã‚ˆã‚Šã€grepã«\n" "-hを渡ã™ã“ã¨ãŒã§ãる。ダッシュ記å·ã§å§‹ã¾ã‚‹æ¤œç´¢ãƒ‘ターンã¯2ã¤ç›®ã®äºŒé‡ãƒ€ãƒƒ\n" "シュ記å·ã®å¾Œã«æ¸¡ã™ã“ã¨ãŒã§ãる。\n" #: quilt/header.in:24 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "ä½¿ã„æ–¹: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [パッãƒ]\\n" #: quilt/header.in:28 msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã®ãƒ˜ãƒƒãƒ€ã‚’出力ã¾ãŸã¯å¤‰æ›´ã™ã‚‹ã€‚\n" "\n" "-a, -r, -e\n" "\tパッãƒã®ãƒ˜ãƒƒãƒ€ã«è¿½åŠ  (-a) ã¾ãŸã¯ãƒ˜ãƒƒãƒ€ã‚’変更 (-r)ã€$EDITOR (%s)ã‚’\n" "\t使ã£ã¦ç·¨é›† (-e)ã™ã‚‹ã€‚ã‚ªãƒ—ã‚·ãƒ§ãƒ³ãŒæŒ‡å®šã•れãªã‹ã£ãŸå ´åˆã¯ãƒ‘ッãƒã®\n" "\tヘッダを出力ã™ã‚‹ã€‚\n" "\n" "--strip-diffstat\n" "\tdiffstatã®å‡ºåŠ›ã‚’ãƒ˜ãƒƒãƒ€ã‹ã‚‰å‰Šé™¤ã™ã‚‹ã€‚\n" "\n" "--strip-trailing-whitespace\n" "\t末尾ã®ç©ºç™½æ–‡å­—をヘッダã‹ã‚‰å‰Šé™¤ã™ã‚‹ã€‚\n" "\n" "--backup\n" "\tå¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ‘ッãƒã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—コピーをパッãƒ~ã¨ã—ã¦ä½œæˆã™ã‚‹ã€‚\n" #: quilt/header.in:169 msgid "Replaced header of patch %s\\n" msgstr "パッム%s ã®ãƒ˜ãƒƒãƒ€ã‚’変更ã—ã¾ã—ãŸ\\n" #: quilt/header.in:172 msgid "Appended text to header of patch %s\\n" msgstr "パッム%s ã®ãƒ˜ãƒƒãƒ€ã«è¿½åŠ ã—ã¾ã—ãŸ\\n" #: quilt/import.in:22 msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "" "ä½¿ã„æ–¹: quilt import [-p num] [-R] [-P パッãƒ] [-f] [-d {o|a|n}] パッãƒãƒ•ァイ" "ル ...\\n" #: quilt/import.in:25 #, fuzzy msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" "\n" "外部パッãƒãƒ•ァイルをå–り込む。パッãƒã¯æœ€ä¸Šä½ãƒ‘ッãƒã®æ¬¡ã®ä½ç½®ã«å–り込ã¾\n" "れる。å–り込んã ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã«ã¯ pushãŒå¿…è¦ã€‚\n" "\n" "-p num\n" "\tパッãƒã‚’é©ç”¨ã™ã‚‹ã¨ãã«çœãã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¬ãƒ™ãƒ«ã®æ•° (デフォルト㯠1)\n" "\n" "-R\n" "\tパッãƒã‚’å転ã—ã¦é©ç”¨ã€‚\n" "\n" "-P パッãƒ\n" "\tquiltã®å†…部ã§ä½¿ç”¨ã™ã‚‹ãƒ‘ッãƒã®ãƒ•ァイルå。ã“ã®ã‚ªãƒ—ションã¯ãƒ‘ッãƒã‚’\n" "\t一ã¤ã ã‘å–り込むã¨ãã«æœ‰åŠ¹ã€‚\n" "\n" "-f\t存在ã™ã‚‹ãƒ‘ッãƒã®ä¸Šæ›¸ãã€ã¾ãŸã¯ã‚¢ãƒƒãƒ—デート。\n" "\n" "-d {o|a|n}\n" "\tパッãƒã‚’上書ãã™ã‚‹ã¨ãã®ãƒ‘ッãƒãƒ˜ãƒƒãƒ€ã®æŒ™å‹•を示ã™ã€‚å¤ã„方を残ã™\n" "\t(o)ã€å…¨ã¦ (a)ã€ã¾ãŸã¯æ–°ã—ã„æ–¹ã‚’残㙠(n)。両方ã®ãƒ‘ッãƒã«ãƒ˜ãƒƒãƒ€\n" "\tãŒã‚ã‚‹å ´åˆã¯å¿…ãšã“ã®ã‚ªãƒ—ションを指定ã™ã‚‹å¿…è¦ãŒã‚る。ã“ã®ã‚ªãƒ—ショ\n" "\tン㯠-fãŒæŒ‡å®šã•ã‚ŒãŸæ™‚ã®ã¿æœ‰åŠ¹ã€‚\n" #: quilt/import.in:73 msgid "Patch %s does not exist\\n" msgstr "パッム%s ãŒå­˜åœ¨ã—ã¾ã›ã‚“\\n" #: quilt/import.in:96 msgid "Patch headers differ:\\n" msgstr "パッãƒãƒ˜ãƒƒãƒ€ã®å·®ç•°:\\n" #: quilt/import.in:99 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" "ã©ã®ãƒ‘ッãƒãƒ˜ãƒƒãƒ€ã‚’残ã™ã‹ã€ã‚ªãƒ—ション -d {o|a|n}を使ã£ã¦æŒ‡å®šã—ã¦ãã ã•ã„" #: quilt/import.in:164 msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "オプション \\`-P'ã¯ã€ãƒ‘ッãƒã‚’一ã¤ã ã‘å–り込むã¨ãã®ã¿æœ‰åйã§ã™\\n" #: quilt/import.in:194 msgid "Patch %s is applied\\n" msgstr "パッム%s ã¯ã€ã™ã§ã«é©ç”¨ã•れã¦ã„ã¾ã™\\n" #: quilt/import.in:203 msgid "Patch %s already exists in series.\\n" msgstr "パッム%s ã¯ã€ã™ã§ã« seriesã®ä¸­ã«ã‚りã¾ã™\\n" #: quilt/import.in:209 msgid "Patch %s exists. Replace with -f.\\n" msgstr "パッム%s ã¯ã€ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚-fã§ç½®ãæ›ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™\\n" #: quilt/import.in:220 msgid "Replacing patch %s with new version\\n" msgstr "パッム%s ã‚’æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ç½®ãæ›ãˆã¾ã™\\n" #: quilt/import.in:224 msgid "Importing patch %s\\n" msgstr "パッム%s ã‚’å–り込ã¿ã¾ã™\\n" #: quilt/import.in:226 msgid "Importing patch %s (stored as %s)\\n" msgstr "パッム%s ã‚’å–り込んã§ã„ã¾ã™ (%s ã¨ã—ã¦ä¿å­˜ã•れã¾ã™)\\n" #: quilt/import.in:239 msgid "Failed to import patch %s\\n" msgstr "パッム%s ã®å–り込ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/import.in:248 quilt/refresh.in:334 msgid "Failed to insert patch %s into file series\\n" msgstr "seriesファイルã¸ã®ãƒ‘ッム%s ã®æ›¸ãè¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/mail.in:24 #, fuzzy msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [first_patch [last_patch]]\\n" msgstr "" "ä½¿ã„æ–¹: quilt mail {--mbox file|--send} [-m text] [--prefix prefix] [--" "sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--subject ...] " "[--reply-to message] [first_patch [last_patch]]\\n" #: quilt/mail.in:27 #, fuzzy msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" "\n" "指定ã•れãŸç¯„囲内ã€ã¾ãŸã¯ã‚·ãƒªãƒ¼ã‚ºãƒ•ァイル内ã®å…¨ã¦ã®ã®ãƒ‘ッãƒã‹ã‚‰ãƒ¡ãƒ¼ãƒ«ã‚’\n" "作æˆã—ã€mailboxファイルã¨ã—ã¦ä¿å­˜ã™ã‚‹ã‹ã€ã™ãã«é€ã‚Šå‡ºã™ã“ã¨ãŒã§ãる。テ\n" "ンプレート付ãã§èª¬æ˜Žæ–‡ä½œæˆç”¨ã«ã‚¨ãƒ‡ã‚£ã‚¿ãŒå®Ÿè¡Œã•れる。詳細ã«ã¤ã„ã¦ã¯\n" "%s ã‚’å‚照。\n" "\n" "-m テキスト\n" "\tãƒ†ã‚­ã‚¹ãƒˆã‚’åºæ–‡ã¨ã—ã¦ä½¿ç”¨ã€‚ã“ã®ã‚ªãƒ—ションãŒä½¿ç”¨ã•れã¦ãŸå ´åˆã«\n" "\tã¯ã‚¨ãƒ‡ã‚£ã‚¿ã¯èµ·å‹•ã•れãšã€ã™ãã«ãƒ‘ッãƒãŒå‡¦ç†ã•れる。\n" "\n" "--prefix 接頭文字列\n" "\tä»¶åã®å‰ã«ç½®ãæ‹¬å¼§å†…ã®æ–‡å­—列を指定。デフォルトã¯\\`patch'。\n" "\n" "--mbox ファイル\n" "\t全メッセージを指定ã•れãŸãƒ•ァイル㫠mboxå½¢å¼ã§ä¿å­˜ã€‚後ã«ä¾‹ãˆã°\n" "\tformailãªã©ã‚’使ã£ã¦é€ä¿¡ã™ã‚‹ã“ã¨ãŒã§ãる。\n" "\n" "--send\n" "\t直接メッセージをé€ä¿¡ã™ã‚‹ã€‚\n" "\n" "--sender\n" "\tエンベロープ用é€ä¿¡è€…ã‚¢ãƒ‰ãƒ¬ã‚¹ã®æŒ‡å®šã€‚アドレスã¯å¿…ãš \n" "\t\\`user@domain.name'ã¨ã„ã†å½¢ã«ãªã£ã¦ã„ãªã‘れã°ãªã‚‰ãªã„。表示用\n" "\tã®åå‰ã¯ä½¿ç”¨ä¸å¯ã€‚\n" "\n" "--from, --subject\n" "\t使用ã™ã‚‹ Fromã¨Subjectヘッダã®å€¤ã€‚--formオプションãŒä¸Žãˆã‚‰ã‚Œãª\n" "\tã„å ´åˆã¯ --senderオプションãŒä½¿ç”¨ã•れる。\n" "\n" "--to, --cc, --bcc\n" "\tToã‚„CCã€BCCã¸ã®å—信者ã®è¿½åŠ ã€‚\n" "\n" "--signature ファイル\n" "\t指定ã•れãŸã‚·ã‚°ãƒãƒãƒ£ã‚’メッセージã«è¿½è¨˜ (ã‚‚ã—ã‚れã°ã€~/.signature\n" " ãŒãƒ‡ãƒ•ォルトã§ä½¿ã‚れる。\\`-' を指定ã™ã‚‹ã¨ã‚·ã‚°ãƒãƒãƒ£ç„¡ã—ã¨ãªã‚‹)。\n" "\n" "--reply-to メッセージ\n" "\t指定ã•れãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¸ã®ãƒªãƒ—ライã¨ãªã‚‹ã‚ˆã†ã«ã€é©åˆ‡ãªãƒ˜ãƒƒãƒ€ã‚’追加。\n" #: quilt/mail.in:192 quilt/mail.in:200 #, fuzzy msgid "Introduction message already specified" msgstr "åºæ–‡ã¯ %s ã¨ã„ã†åå‰ã§ä¿å­˜ã•れã¾ã—ãŸ\\n" #: quilt/mail.in:262 msgid "You have to install 'formail' to use 'quilt mail'" msgstr "" #: quilt/mail.in:305 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "" "エンベロープã®é€ä¿¡è€…アドレスを確定ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚--senderオプション\n" "を使用ã—ã¦ãã ã•ã„。" #: quilt/mail.in:450 msgid "Unable to extract a subject header from %s\\n" msgstr "%s ã‹ã‚‰ä»¶åã‚’å–り出ã›ã¾ã›ã‚“。\\n" #: quilt/mail.in:474 msgid "Patches %s have duplicate subject headers.\\n" msgstr "パッム%s ã®ä»¶åãŒé‡è¤‡ã—ã¦ã„ã¾ã™ã€‚\\n" #: quilt/mail.in:483 msgid "File %s does not exist\\n" msgstr "ファイル %s ãŒå­˜åœ¨ã—ã¾ã›ã‚“\\n" #: quilt/mail.in:543 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "åºæ–‡ã«ä»¶åãŒã‚りã¾ã›ã‚“(%s ã¨ã—ã¦ä¿å­˜ã•れã¾ã—ãŸ)\\n" #: quilt/mail.in:546 msgid "Introduction has no subject header\\n" msgstr "åºæ–‡ã«ä»¶åãŒã‚りã¾ã›ã‚“\\n" #: quilt/mail.in:660 msgid "Introduction saved as %s\\n" msgstr "åºæ–‡ã¯ %s ã¨ã„ã†åå‰ã§ä¿å­˜ã•れã¾ã—ãŸ\\n" #: quilt/new.in:22 msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "ä½¿ã„æ–¹: quilt new [-p n | -p ab] {パッãƒå}\\n" #: quilt/new.in:25 #, fuzzy msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" "\n" "指定ã•れãŸãƒ•ァイルåã§æ–°ã—ã„パッãƒã‚’作æˆã—ã€ãƒ‘ッãƒã‚·ãƒªãƒ¼ã‚ºãƒ•ァイルã«ã‚\n" "る最上ä½ãƒ‘ッãƒã®æ¬¡ã«è¿½åŠ ã™ã‚‹ã€‚\n" "\n" "-p n\t-p n スタイルã®ãƒ‘ッãƒã‚’ä½œæˆ (-p0 ã¾ãŸã¯ -p1 ã«å¯¾å¿œ)。\n" "\n" "-p ab\t-p1 スタイルã®ãƒ‘ッãƒã‚’作æˆã€‚ãŸã ã—デフォルト㮠dir.orig/file ã¨\n" "\tdir/file ã¨ã„ã†åå‰ã§ã¯ãªãã€ã‚ªãƒªã‚¸ãƒŠãƒ«å´ã‚’ a/file ã€æ–°ã—ã„æ–¹ã‚’\n" "\tb/file ã¨ã„ã†åå‰ã«ã™ã‚‹\n" "\n" "Quilt ã¯ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®ä»»æ„ã®ã‚µãƒ–ディレクトリã§å®Ÿè¡Œã™ã‚‹ã“ã¨ãŒå¯èƒ½ã€‚実行\n" "ã•れãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚ˆã‚Šä¸Šã«ã‚ã‚‹ %s ディレクトリを探ã™ã“ã¨ã§ã€\n" "ソースコードã®ãƒ«ãƒ¼ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’自動的ã«åˆ¤æ–­ã™ã‚‹ã“ã¨ãŒã§ãる。æ„図ã—\n" "ãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚ˆã‚Šä¸Šã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’ Quilt ãŒé–“é•ã£ã¦é¸ã‚“ã§ã—ã¾ã£ãŸå ´\n" "åˆã¯ã€æ­£ã—ã„場所㫠%s ディレクトリを作æˆã™ã‚‹ã“ã¨ã€‚\n" #: quilt/new.in:76 msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "" "-p%s ã§ãƒ‘ッãƒã‚’作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。-p0ã€-p1 ã¾ãŸã¯ -pab を指定ã—ã¦ãã " "ã•ã„\\n" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "" #: quilt/new.in:97 quilt/refresh.in:185 msgid "Patch %s exists already\\n" msgstr "パッム%s ã¯ã€ã™ã§ã«å­˜åœ¨ã—ã¾ã™\\n" #: quilt/new.in:108 msgid "Patch %s is now on top\\n" msgstr "パッム%s を最上ä½ã«ã—ã¾ã—ãŸ\\n" #: quilt/new.in:110 quilt/refresh.in:343 msgid "Failed to create patch %s\\n" msgstr "パッム%s ã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/next.in:22 msgid "Usage: quilt next [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt next [パッãƒ]\\n" #: quilt/next.in:25 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã®æ¬¡ã®ãƒ‘ッãƒåを表示。\n" #: quilt/patches.in:24 #, fuzzy msgid "" "Usage: quilt patches [-v] [--color[=always|auto|never]] {file} [files...]\\n" msgstr "ä½¿ã„æ–¹: quilt patches [-v] {ファイル}\\n" #: quilt/patches.in:27 #, fuzzy msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "指定ã•れãŸãƒ•ァイルã«å¯¾ã—ã€å¤‰æ›´ã‚’行ãªã†ãƒ‘ッãƒã®ãƒªã‚¹ãƒˆã‚’表示。 (é©ç”¨ã•れã¦\n" "ã„ãªã„パッãƒãŒæŒ‡å®šã•れãŸãƒ•ァイルã«å¯¾ã—ã¦å¤‰æ›´ã‚’åŠã¼ã™ã‹ã©ã†ã‹ã‚’調ã¹ã‚‹ã«ã¯\n" "発見的方法 (a heuristic)ãŒç”¨ã„られる。ã“ã®æ–¹æ³•ã¯é©ç”¨ã•れã¦ã„るパッãƒã‚’\n" "スキャンã™ã‚‹ã‚ˆã‚Šå¤§å¹…ã«é…ã„。\n" "\n" "-v\t詳細ã§è¦‹ã‚„ã™ã„表示。\n" #: quilt/pop.in:22 msgid "Usage: quilt pop [-afRqv] [num|patch]\\n" msgstr "ä½¿ã„æ–¹: quilt pop [-afRqv] [æ•°å­—|パッãƒ]\\n" #: quilt/pop.in:25 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\n" "\n" "-a\tRemove all applied patches.\n" "\n" "-f\tForce remove. The state before the patch(es) were applied will\n" "\tbe restored from backup files.\n" "\n" "-R\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" msgstr "" "\n" "é©ç”¨ã•れã¦ã„るパッãƒã‚¹ã‚¿ãƒƒã‚¯ã‹ã‚‰ãƒ‘ッãƒã‚’ã¯ãšã™ã€‚オプションãŒç„¡ã„å ´åˆã¯\n" "最上ä½ãƒ‘ッãƒã‚’ã¯ãšã™ã€‚æ•°å­—ãŒæŒ‡å®šã•れãŸã¨ãã¯ã€æŒ‡å®šã•ã‚ŒãŸæ•°ã®ãƒ‘ッãƒã‚’ã¯\n" "ãšã™ã€‚パッãƒåãŒæŒ‡å®šã•れãŸã¨ãã¯ã€æŒ‡å®šã•れãŸãƒ‘ッãƒãŒæœ€ä¸Šä½ãƒ‘ッãƒã«ãªã‚‹\n" "ã¾ã§ã€ãã®ä¸Šã«ç©ã¾ã‚Œã¦ã„るパッãƒã‚’ã¯ãšã—ã¦ã„ã。シェルã®ãƒ•ァイルå補完\n" "機能を有効ã«ä½¿ã†ãŸã‚ã«ã€ãƒ‘ッãƒåã®å‰ã« patches/を付ã‘ã¦æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚\n" "å¯èƒ½ã€‚\n" "\n" "-a\té©ç”¨ã•れã¦ã„ã‚‹ã€ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’ã¯ãšã™ã€‚\n" "\n" "-f\tå•題ãŒã‚るパッãƒã§ã‚‚ã€å‡¦ç†ã‚’進ã‚る。ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ファイルを使ã£ã¦ã€\n" "\tパッãƒãŒé©ç”¨ã•れるå‰ã®çŠ¶æ…‹ã«å¾©æ—§ã™ã‚‹ã€‚\n" "\n" "-R\tå¿…ãšãƒ‘ッãƒãŒæ­£å¸¸ã«ã¯ãšã›ã‚‹ã‹æ¤œè¨¼ã™ã‚‹ (タイムスタンプã®ãƒã‚§ãƒƒã‚¯ã«\n" "\tä¾å­˜ã—ãªã„)\n" "\n" "-q\t表示を抑制。\n" "\n" "-v\t詳細ã«è¡¨ç¤ºã€‚\n" #: quilt/pop.in:100 quilt/scripts/patchfns.in:880 msgid "Failed to copy files to temporary directory\\n" msgstr "テンãƒãƒ©ãƒªãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¸ã®ãƒ•ァイルコピーã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/pop.in:125 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" "パッム%s ã‚’ã€æ­£å¸¸ã«ã¯ãšã™ã“ã¨ãŒã§ãã¾ã›ã‚“ (リフレッシュã™ã‚‹ã‹ -fを付\n" "ã‘ã¦ã¯ãšã—ã¦ãã ã•ã„)\\n" #: quilt/pop.in:150 msgid "Patch %s appears to be empty, removing\\n" msgstr "パッム%s ã¯ã€ç©ºã®ã‚ˆã†ã§ã™ã€‚ã¯ãšã—ã¾ã™\\n" #: quilt/pop.in:155 msgid "Removing patch %s\\n" msgstr "パッム%s ã‚’ã¯ãšã—ã¾ã™\\n" #: quilt/pop.in:226 msgid "Patch %s needs to be refreshed first.\\n" msgstr "最åˆã«ã€ãƒ‘ッム%s ã®ãƒªãƒ•レッシュãŒå¿…è¦ã§ã™ã€‚\\n" #: quilt/pop.in:236 msgid "No patch removed\\n" msgstr "é©ç”¨ã•れã¦ã„るパッãƒã¯ã‚りã¾ã›ã‚“\\n" #: quilt/pop.in:252 quilt/scripts/patchfns.in:513 msgid "No patches applied\\n" msgstr "é©ç”¨ã•れã¦ã„るパッãƒã¯ã‚りã¾ã›ã‚“\\n" #: quilt/pop.in:259 quilt/push.in:422 msgid "Now at patch %s\\n" msgstr "ç¾åœ¨ä½ç½®ã¯ãƒ‘ッム%s ã§ã™\\n" #: quilt/previous.in:22 msgid "Usage: quilt previous [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt previous [パッãƒ]\\n" #: quilt/previous.in:25 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" "\n" "最上ä½ã®ãƒ‘ッãƒã®å‰ã®ãƒ‘ッãƒåを表示。パッãƒåãŒæŒ‡å®šã•れãŸã¨ãã¯ã€æŒ‡å®š\n" "ã•れãŸãƒ‘ッãƒã®å‰ã®ãƒ‘ッãƒåを表示。\n" #: quilt/push.in:24 msgid "" "Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" msgstr "" "ä½¿ã„æ–¹: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" #: quilt/push.in:27 #, fuzzy msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "seriesã«ç™»éŒ²ã•れã¦ã„るパッãƒã‚’é©ç”¨ã™ã‚‹ã€‚オプションãŒç„¡ã„å ´åˆã¯ series\n" "ãƒ•ã‚¡ã‚¤ãƒ«å†…ã®æ¬¡ã®ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã€‚æ•°å­—ãŒä¸Žãˆã‚‰ã‚ŒãŸå ´åˆã¯ã€ä¸Žãˆã‚‰ã‚ŒãŸå€‹\n" "æ•°ã®ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã€‚パッãƒåãŒæŒ‡å®šã•れãŸå ´åˆã¯ã€æŒ‡å®šã•れãŸãƒ‘ッãƒã¾ã§\n" "ã‚’é©ç”¨ã™ã‚‹(指定ã•れãŸãƒ‘ッãƒã‚’å«ã‚€)。ファイルå補完機能を活用ã™ã‚‹ãŸã‚ã«ã€\n" "パッãƒåã« patches/を付ã‘ã¦æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã€‚\n" "\n" "-a\tseriesファイルã«ç™»éŒ²ã•れã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’é©ç”¨ã€‚\n" "\n" "-q\t表示を抑制。\n" "\n" "-f\tリジェクトãŒã‚ã£ã¦ã‚‚強制的ã«é©ç”¨ã€‚表示抑制モード以外ã§ã¯ã€ã‚¤ãƒ³ã‚¿ãƒ©\n" "\tクティブã«ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã€‚ã¤ã¾ã‚Šã€ãƒ‘ッãƒé©ç”¨æ™‚ã«è³ªå•ã•れるã“ã¨ãŒ\n" "\tã‚る。\n" "\n" "-v\t詳細ã«è¡¨ç¤ºã€‚\n" "\n" "--fuzz=N\n" "\t最大何行ã®ãšã‚Œã‚’許ã™ã‹æŒ‡å®šã™ã‚‹ã€‚\n" "\n" "-m, --merge[=merge|diff3]\n" "\tパッãƒãƒ•ァイルをオリジナルã®ãƒ•ァイルã«ãƒžãƒ¼ã‚¸ (patch(1)ã‚’å‚ç…§)。\n" "\n" "--leave-rejects\n" "\tパッãƒãŒé©ç”¨ã•れãªãã¦ã‚‚ã€patchコマンドã«ã‚ˆã£ã¦ç”Ÿæˆã•れãŸãƒªã‚¸ã‚§\n" "\tクトファイルをãã®ã¾ã¾æ®‹ã™ã€‚\n" "\n" "--color[=always|auto|never]\n" " シンタックスã®è‰²ä»˜ã‘を行ãªã†ã€‚\n" "\n" #: quilt/push.in:68 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "ユーザã«ã‚ˆã£ã¦ä¸­æ–­ã•れã¾ã—ãŸã€‚パッム%s ã¯é©ç”¨ã•れã¦ã„ã¾ã›ã‚“。\\n" #: quilt/push.in:181 msgid "Applying patch %s\\n" msgstr "パッム%s ã‚’é©ç”¨ã—ã¦ã„ã¾ã™\\n" #: quilt/push.in:215 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "パッム%s ã¯å­˜åœ¨ã—ã¾ã›ã‚“。空ã®ãƒ‘ッãƒã‚’é©ç”¨ã—ã¾ã—ãŸ\\n" #: quilt/push.in:219 msgid "Patch %s appears to be empty; applied\\n" msgstr "パッム%s ã¯ç©ºã®ã‚ˆã†ã§ã™ãŒã€é©ç”¨ã—ã¾ã—ãŸ\\n" #: quilt/push.in:223 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "" "パッム%s ã‚’é©ç”¨ã—ã¾ã—㟠(強制é©ç”¨ã—ãŸãŸã‚ã«ã€ãƒªãƒ•レッシュãŒå¿…è¦ã§ã™)\\n" #: quilt/push.in:233 msgid "Patch %s can be reverse-applied\\n" msgstr "パッム%s ã¯ã€å転ã—ã¦é©ç”¨ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™\\n" #: quilt/push.in:236 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "パッム%s ãŒé©ç”¨ã§ãã¾ã›ã‚“ (強制é©ç”¨ã™ã‚‹å ´åˆã¯ -fを付ã‘ã¦ãã ã•ã„)\\n" #: quilt/push.in:291 #, fuzzy msgid "Patch %s is already applied; check your series file\\n" msgstr "パッム%s ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚æ–°ã—ã„åå‰ã‚’é¸ã‚“ã§ãã ã•ã„\\n" #: quilt/push.in:396 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "最上ä½ãƒ‘ッãƒã®ãƒªãƒ•ãƒ¬ãƒƒã‚·ãƒ¥ãŒæœ€åˆã«å¿…è¦ã§ã™ã€‚\\n" #: quilt/refresh.in:22 msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "ä½¿ã„æ–¹: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[æ–°ã—ã„åå‰]] [-" "f] [--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [パッãƒ]\\n" #: quilt/refresh.in:26 msgid "" "\n" "Refreshes the specified patch, or the topmost patch by default.\n" "Documentation that comes before the actual patch in the patch file is\n" "retained.\n" "\n" "It is possible to refresh patches that are not on top. If any patches\n" "on top of the patch to refresh modify the same files, the script aborts\n" "by default. Patches can still be refreshed with -f. In that case this\n" "script will print a warning for each shadowed file, changes by more\n" "recent patches will be ignored, and only changes in files that have not\n" "been modified by any more recent patches will end up in the specified\n" "patch.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" "\n" "指定ã•れãŸãƒ‘ッãƒã‚’作æˆã—ç›´ã™ã€‚ã“れをリフレッシュã™ã‚‹ã¨å‘¼ã¶ã€‚デフォルト\n" "ã§ã¯æœ€ä¸Šä½ãƒ‘ッãƒã®ãƒªãƒ•レッシュを行ã†ã€‚パッãƒã®å…ˆé ­ã«æ›¸ã‹ã‚Œã¦ã„るドキュ\n" "メントã¯ä¿æŒã•れる。\n" "\n" "スタックã®ä¸€ç•ªä¸Šä»¥å¤–ã®ãƒ‘ッãƒã‚‚リフレッシュã™ã‚‹ã“ã¨ãŒã§ãる。リフレッシュ\n" "ã™ã‚‹ãƒ‘ッãƒã¨ãã®ä¸Šã«ä¹—ã£ã¦ã„るパッãƒãŒã€åŒã˜ãƒ•ァイルを変更ã—ã¦ã„ã‚‹å ´åˆ\n" "ã¯ãƒ‡ãƒ•ォルトã§ç•°å¸¸çµ‚了ã™ã‚‹ã€‚-fオプションを付ã‘ã‚‹ã“ã¨ã§ãƒªãƒ•レッシュを強\n" "制ã™ã‚‹ã“ã¨ãŒã§ãã‚‹ãŒã€å½±ã«ãªã£ãŸãƒ•ァイルã”ã¨ã« quiltã¯è­¦å‘Šã‚’出ã™ã€‚最近\n" "ã®ãƒ‘ッãƒã«ã‚ˆã‚‹å¤‰æ›´ã¯ç„¡è¦–ã•れるãŸã‚ã€ãれ以外ã®å¤‰æ›´ã ã‘ãŒæŒ‡å®šã•れãŸãƒ‘ッ\n" "ãƒã«å映ã•れる。\n" "\n" "-p n\t-p n スタイルã®ãƒ‘ッãƒã‚’ä½œæˆ (-p0 ã¾ãŸã¯ -p1ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã‚‹)。\n" "\n" "-p ab\t-p1スタイルã®ãƒ‘ッãƒã‚’作æˆã€‚ãŸã ã—デフォルト㮠dir.orig/fileã¨\n" "\tdir/fileã¨ã„ã†åå‰ã§ã¯ãªãã€a/fileã¨b/fileã‚’ãれãžã‚Œã‚ªãƒªã‚¸ãƒŠãƒ«\n" "\tã¨æ–°ã—ã„ファイルåã¨ã™ã‚‹ã€‚\n" "\n" "-u, -U num, -c, -C num\n" "\tnum行ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã§unified diff (-u, -U) を作æˆã€‚num行ã®ã‚³ãƒ³\n" "\tテキスト㧠context diff (-c, -C)を作æˆã€‚デフォルトã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹\n" "\tト行数㯠3行。\n" "\n" "-z[æ–°ã—ã„åå‰]\n" "\t一番上ã®ãƒ‘ッãƒã‚’リフレッシュã›ãšã«ã€æ–°ã—ã„パッãƒã‚’作æˆã™ã‚‹ã€‚ã‚‚\n" "\tã—æ–°ã—ã„åå‰ãŒä¸Žãˆã‚‰ã‚Œãªã„å ´åˆã¯ã€\\`-2'ãŒå…ƒã®ãƒ‘ッãƒåã«ä»˜åŠ ã•\n" "\tれる。(forkコマンドå‚ç…§)\n" "\n" "--no-timestamps\n" "\tパッãƒãƒ˜ãƒƒãƒ€ã«ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã‚’å«ã‚ãªã„。\n" "\n" "--no-index\n" "\tIndex: ã®è¡Œã‚’出力ã—ãªã„。\n" "\n" "--diffstat\n" "\tdiffstatã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’パッãƒã®å…ˆé ­éƒ¨åˆ†ã«è¿½åŠ ã€ã¾ãŸã¯æ—¢å­˜ã® \n" "\tdiffstatセクションを上書ãã™ã‚‹ã€‚\n" "\n" "-f\tスタックã®ä¸€ç•ªä¸Šã«ãªã„パッãƒã®ãƒªãƒ•レッシュを強è¦ã™ã‚‹ã€‚\n" "\n" "--backup\n" "\tãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—用ã®ã‚³ãƒ”ーã¨ã—ã¦å¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ‘ッãƒã‚’パッãƒ~ã®\n" "\tå½¢ã§ä½œæˆã™ã‚‹ã€‚\n" "\n" "--sort\té †ç•ªã‚’ä¿æŒã›ãšã€åå‰é †ã«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä¸¦ã³æ›ãˆã‚‹ã€‚\n" "\n" "--strip-trailing-whitespace\n" "\t末尾ã®ç©ºç™½æ–‡å­—を削除ã™ã‚‹ã€‚\n" #: quilt/refresh.in:171 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "-zオプションãŒã‚ã‚‹å ´åˆã€æœ€ä¸Šä½ãƒ‘ッãƒä»¥å¤–ã®ãƒªãƒ•レッシュã¯ã§ãã¾ã›ã‚“\\n" #: quilt/refresh.in:202 #, fuzzy msgid "" "Cannot refresh patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "-p%s ã§ãƒ‘ッãƒã‚’作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。-p0ã€-p1 ã¾ãŸã¯ -pab を指定ã—ã¦ãã " "ã•ã„\\n" #: quilt/refresh.in:235 #, fuzzy msgid "Diff failed on file '%s', aborting\\n" msgstr "差分ã«å¤±æ•—ã—ã¾ã—ãŸã€‚異常終了ã—ã¾ã™\\n" #: quilt/refresh.in:241 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" "より最近ã®ãƒ‘ッãƒãŒãƒ‘ッム%s ã®ãƒ•ァイルã«å¤‰æ›´ã‚’加ãˆã¦ã„ã¾ã™ã€‚リフレッシュを実" "行ã™ã‚‹å ´åˆã¯ -f オプションを使用ã—ã¦ãã ã•ã„。\\n" #: quilt/refresh.in:247 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" "--strip-trailing-whitespace ã¯å½±ã«ãªã£ã¦ã„るファイルãŒã‚ã‚‹å ´åˆã¯ä½¿ãˆã¾ã›ã‚“" #: quilt/refresh.in:253 quilt/refresh.in:355 msgid "Nothing in patch %s\\n" msgstr "パッム%s ã«ã¯ãªã«ã‚‚å«ã¾ã‚Œã¦ã„ã¾ã›ã‚“\\n" #: quilt/refresh.in:325 msgid "Patch %s is unchanged\\n" msgstr "パッム%s ã«å¤‰æ›´ã¯ã‚りã¾ã›ã‚“\\n" #: quilt/refresh.in:353 msgid "Refreshed patch %s\\n" msgstr "パッム%s をリフレッシュã—ã¾ã—ãŸ\\n" #: quilt/remove.in:22 msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "ä½¿ã„æ–¹: quilt remove [-P パッãƒ] {ファイル} ...\\n" #: quilt/remove.in:25 msgid "" "\n" "Remove one or more files from the topmost or named patch. Files that\n" "are modified by patches on top of the specified patch cannot be removed.\n" "\n" "-P patch\n" "\tRemove named files from the named patch.\n" msgstr "" "\n" "指定ã•れãŸãƒ•ァイルを最上ä½ãƒ‘ッãƒã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã‹ã‚‰å‰Šé™¤ã™ã‚‹ã€‚指\n" "定ã•れãŸãƒ•ァイルãŒã‚ˆã‚Šä¸Šã®ãƒ‘ッãƒã§å¤‰æ›´ã•れã¦ã„ã‚‹å ´åˆã¯ã€å‰Šé™¤ã§ããªã„。\n" "\n" "-P パッãƒ\n" "\tファイルを削除ã™ã‚‹ãƒ‘ッãƒã‚’指定。\n" #: quilt/remove.in:73 quilt/revert.in:75 msgid "File %s is not in patch %s\\n" msgstr "ファイル %s ã¯ã€ãƒ‘ッム%s ã«å«ã¾ã‚Œã¦ã„ã¾ã›ã‚“\\n" #: quilt/remove.in:91 msgid "Failed to remove file %s from patch %s\\n" msgstr "ファイル %s をパッム%s ã‹ã‚‰å‰Šé™¤ã™ã‚‹ã®ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/remove.in:105 msgid "File %s removed from patch %s\\n" msgstr "ファイル %s ã‚’ã€ãƒ‘ッム%s ã‹ã‚‰å‰Šé™¤ã—ã¾ã—ãŸ\\n" #: quilt/rename.in:22 msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "ä½¿ã„æ–¹: quilt rename [-P patch] new_name\\n" #: quilt/rename.in:25 msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã®åå‰ã‚’変更ã™ã‚‹\n" "\n" "-P patch\n" "\tåå‰ã‚’変更ã™ã‚‹ patch\n" #: quilt/rename.in:84 msgid "Patch %s exists already, please choose a different name\\n" msgstr "パッム%s ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚æ–°ã—ã„åå‰ã‚’é¸ã‚“ã§ãã ã•ã„\\n" #: quilt/rename.in:98 msgid "Renaming of patch %s to %s failed\\n" msgstr "パッム%s ã‹ã‚‰ %s ã¸ã®åå‰ã®å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/rename.in:104 msgid "Patch %s renamed to %s\\n" msgstr "パッム%s ã‹ã‚‰ %s ã¸åå‰ã‚’変更ã—ã¾ã—ãŸ\\n" #: quilt/revert.in:22 msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "ä½¿ã„æ–¹: quilt revert [-P パッãƒ] {ファイル} ...\\n" #: quilt/revert.in:25 msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" "\n" "最上ä½ãƒ‘ッãƒã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã«ã‚³ãƒŸãƒƒãƒˆã•れã¦ã„ãªã„ã€æŒ‡å®šãƒ•ァイル\n" "ã¸ã®å¤‰æ›´ã‚’å…ƒã«æˆ»ã™ã€‚å…ƒã«æˆ»ã—ãŸå¾Œã€'quilt diff -z' ã¯ã“れらã®ãƒ•ァイルã«\n" "é•ã„ãŒãªã„ã“ã¨ã‚’示ã™ã€‚指定ã•れãŸãƒ•ァイルãŒã‚ˆã‚Šä¸Šã®ãƒ‘ッãƒã§å¤‰æ›´ã•れã¦ã„ã‚‹\n" "å ´åˆã¯ã€å‰Šé™¤ã§ããªã„。\n" "\n" "-P パッãƒ\n" "\tファイルを削除ã™ã‚‹ãƒ‘ッãƒã‚’指定。\n" #: quilt/revert.in:103 quilt/revert.in:112 msgid "File %s is unchanged\\n" msgstr "ファイル %s ã«å¤‰æ›´ã¯ã‚りã¾ã›ã‚“\\n" #: quilt/revert.in:120 msgid "Failed to revert changes to %s in patch %s\\n" msgstr "%s ã¸ã®å¤‰æ›´(パッム%s 内)ã‚’å…ƒã«æˆ»ã™ã“ã¨ã«å¤±æ•—ã—ã¾ã—ãŸ" #: quilt/revert.in:124 msgid "Changes to %s in patch %s reverted\\n" msgstr "%s ã¸ã®å¤‰æ›´ (パッム%s 内) ã‚’å…ƒã«æˆ»ã—ã¾ã—ãŸ" #: quilt/scripts/edmail.in:96 #, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "表示用ã®åå‰ `%s' ãŒå¯¾ã«ãªã‚‰ãªã„括弧をå«ã‚“ã§ã„ã¾ã™\n" #: quilt/scripts/edmail.in:114 #, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "é…é€å…ˆã®ã‚¢ãƒ‰ãƒ¬ã‚¹ `%s' ãŒä¸æ­£ã§ã™\n" #: quilt/scripts/patchfns.in:232 quilt/scripts/patchfns.in:526 msgid "%s is not a regular file\\n" msgstr "%s ã¯æ™®é€šã®ãƒ•ァイルã§ã¯ã‚りã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:480 quilt/scripts/patchfns.in:497 msgid "No patches in series\\n" msgstr "シリーズã«ç™»éŒ²ã•れã¦ã„るパッãƒãŒã‚りã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:482 quilt/scripts/patchfns.in:499 msgid "No series file found\\n" msgstr "シリーズファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:555 msgid "Patch %s is not in series\\n" msgstr "パッム%s 㯠seriesã®ä¸­ã«ã‚りã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:583 msgid "Patch %s is not applied\\n" msgstr "パッム%s ã¯é©ç”¨ã•れã¦ã„ã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:620 msgid "File series fully applied, ends at patch %s\\n" msgstr "" "seriesファイルã®ãƒ‘ッãƒã¯ã™ã¹ã¦é©ç”¨ã•れã¦ã„ã¾ã™ã€‚最終パッãƒã¯ %s ã§ã™ã€‚\\n" #: quilt/scripts/patchfns.in:898 msgid "Failed to patch temporary files\\n" msgstr "テンãƒãƒ©ãƒªãƒ•ァイルã¸ã®ãƒ‘ッãƒé©ç”¨ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/scripts/patchfns.in:941 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" "ã“ã®ãƒ„リー内ã«ã¯ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %sã® quiltメタデータãŒå­˜åœ¨ã—ã¾ã™ã€‚ã—ã‹ã—ã“\n" "ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® quiltã§ã¯ã€ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %s ã¾ã§ã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã—ã‹ã‚µãƒãƒ¼ãƒˆã—\n" "ã¦ã„ã¾ã›ã‚“。ダウングレードã™ã‚‹å‰ã«ã€pushã—ãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® quiltを使ã£ã¦ã€\n" "ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’ pop ã—ã¦ãã ã•ã„。\\n" #: quilt/scripts/patchfns.in:1094 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" "ç¾åœ¨ä½œæ¥­ä¸­ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¯å¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® quiltã«ã‚ˆã£ã¦ä½œã‚‰ã‚ŒãŸã‚‚ã®ã§" "ã™ã€‚'quilt upgrade'を実行ã—ã¦ãã ã•ã„。\\n" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "書å¼: %s [p num] [-n] [パッãƒ]\n" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "%s: æ··ä¹±ã—ã¾ã—ãŸ\n" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "警告: %2$s ã® %1$s 行目末尾ã«ç©ºç™½æ–‡å­—ãŒã‚りã¾ã™\n" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "警告: %2$s ã® %1$s 行目末尾ã«ç©ºç™½æ–‡å­—ãŒã‚りã¾ã™\n" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "%2$s ã® %1$s 行目末尾ã«ã‚る空白文字を削除ã—ã¾ã™\n" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "%2$s ã® %1$s 行目末尾ã«ã‚る空白文字を削除ã—ã¾ã™\n" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "%s ã‹ã‚‰ %s ã¸åå‰ã‚’変更ã—ã¾ã—ãŸ: %s\n" #: quilt/series.in:22 #, fuzzy msgid "Usage: quilt series [--color[=always|auto|never]] [-v]\\n" msgstr "" "ä½¿ã„æ–¹: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" #: quilt/series.in:25 #, fuzzy msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "-v\tVerbose, more user friendly output.\n" msgstr "" "\n" "seriesファイルã«ç™»éŒ²ã•れã¦ã„ã‚‹ã€ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’表示。\n" "\n" "-v\t詳細ã§è¦‹ã‚„ã™ã„表示。\n" "\n" #: quilt/setup.in:35 quilt/setup.in:55 msgid "Directory %s exists\\n" msgstr "ディレクトリ %s ã¯ã€ã™ã§ã«å­˜åœ¨ã—ã¾ã™\\n" #: quilt/setup.in:61 msgid "File %s exists\\n" msgstr "ファイル %s ã¯ã€ã™ã§ã«å­˜åœ¨ã—ã¾ã™\\n" #: quilt/setup.in:102 msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] " "{specfile|seriesfile}\\n" msgstr "" "ä½¿ã„æ–¹: quilt setup [-d path-prefix] [-v] [--sourcedir ディレクトリ] [--" "fuzz=N] {specファイル|シリーズファイル}\\n" #: quilt/setup.in:105 msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" msgstr "" "\n" "rpmã® specファイルã¾ãŸã¯ quiltã® seriesファイルを使ã£ã¦ã‚½ãƒ¼ã‚¹ãƒ„リーを\n" "åˆæœŸåŒ–ã™ã‚‹ã€‚\n" "\n" "-d\tソースツリー用ã®ä»»æ„ã®ãƒ‘スプレフィクス\n" "\n" "--sourcedir\n" "\tパッケージソースãŒå…¥ã£ã¦ã„るディレクトリ。デフォルトã¯\\`.'。\n" "\n" "-v\t詳細ãªãƒ‡ãƒãƒƒã‚°è¡¨ç¤º\n" "\n" "--fuzz=N\n" "\t最大何行ã®ãšã‚Œã‚’許ã™ã‹æŒ‡å®šã™ã‚‹\n" #: quilt/setup.in:176 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" "%%prepセクションã®è§£æžã«å¤±æ•—ã—ã¾ã—ãŸã€‚完全ã«ä½œæ¥­ãŒå®Œäº†ã—ã¦ã„ãªã„å ´åˆãŒã‚りã¾" "ã™\\n" #: quilt/setup.in:179 msgid "The -v option will show rpm's output\\n" msgstr "-vオプションを使ã£ã¦ã€rpmã®å‡ºåŠ›ã‚’è¡¨ç¤ºã§ãã¾ã™" #: quilt/setup.in:231 quilt/setup.in:243 msgid "File %s not found\\n" msgstr "ファイル %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" #: quilt/setup.in:234 quilt/setup.in:246 msgid "Unpacking archive %s\\n" msgstr "アーカイブ %s を展開ã—ã¦ã„ã¾ã™\\n" #: quilt/setup.in:255 msgid "Trying alternative patches and series names..." msgstr "" #: quilt/snapshot.in:22 msgid "Usage: quilt snapshot [-d]\\n" msgstr "ä½¿ã„æ–¹: quilt snapshot [-d]\\n" #: quilt/snapshot.in:25 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" "\n" "ç¾åœ¨ã®ä½œæ¥­çŠ¶æ…‹ã®ã‚¹ãƒŠãƒƒãƒ—ショットを作æˆã™ã‚‹ã€‚スナップショットを作æˆã—ãŸ\n" "後ã€ãƒ„リーã¯ã„ã¤ã‚‚ã®ã‚ˆã†ã«å¤‰æ›´ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã€‚パッãƒã‚’ pushã—ãŸã‚Š pop\n" "ã™ã‚‹ã“ã¨ãŒã§ãる。スナップショットã¸ã® diffã¯ã€\\`quilt diff\n" "--snapshot'ã¨ã™ã‚‹ã“ã¨ã§ç”Ÿæˆã§ãる。\n" "\n" "-d\tç¾åœ¨ã®ã‚¹ãƒŠãƒƒãƒ—ショットを削除。\n" "\n" #: quilt/top.in:22 msgid "Usage: quilt top\\n" msgstr "ä½¿ã„æ–¹: quilt top\\n" #: quilt/top.in:25 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" "\n" "ç¾åœ¨é©ç”¨ã•れã¦ã„るパッãƒã‚¹ã‚¿ãƒƒã‚¯ã®æœ€ä¸Šä½ãƒ‘ッãƒåを表示\n" #: quilt/unapplied.in:22 msgid "Usage: quilt unapplied [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt unapplied [パッãƒ]\\n" #: quilt/unapplied.in:25 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" "\n" "é©ç”¨ã•れã¦ã„ãªã„パッãƒã‚’表示。パッãƒãŒæŒ‡å®šã•れãŸå ´åˆã¯ã€æŒ‡å®šã•れãŸãƒ‘ッ\n" "ãƒä»¥é™ã§é©ç”¨ã•れã¦ã„ãªã„パッãƒã‚’表示。\n" #: quilt/upgrade.in:25 msgid "Usage: quilt upgrade\\n" msgstr "ä½¿ã„æ–¹: quilt upgrade\\n" #: quilt/upgrade.in:28 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" "\n" "作業ツリーã«ã‚ã‚‹å¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã‚’æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã‚¢ãƒƒãƒ—ã‚°\n" "レードã™ã‚‹ã€‚ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã¯ã€quiltã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ãƒ•ォーマットãŒå¤‰æ›´ã•れãŸ\n" "å ´åˆã®ã¿å¿…è¦ã€‚変更ãŒç¢ºèªã•れãŸå ´åˆã€quiltã‹ã‚‰ \\`quilt upgrade'ã®å®Ÿè¡ŒãŒ\n" "è¦æ±‚ã•れる。\n" #: quilt/upgrade.in:67 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "" "%s 内㮠quilt メタデータã¯ã™ã§ã« version %s フォーマットã®ãŸã‚ã€å‡¦ç†ã™ã‚‹å¿…è¦" "ãŒã‚りã¾ã›ã‚“。\\n" #: quilt/upgrade.in:71 msgid "Converting meta-data to version %s\\n" msgstr "メタデータを version %s ã«å¤‰æ›´ä¸­ã§ã™\\n" #: quilt/upgrade.in:102 msgid "Conversion failed\\n" msgstr "変更ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/upgrade.in:103 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" "\n" "ç¾åœ¨ä½œæ¥­ä¸­ã®ãƒ„リーを作æˆã—㟠quiltã¨åŒã˜ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® quiltã§ \\`quilt\n" "pop -a'を実行ã—ã€ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’ã¯ãšã—ã¦ãã ã•ã„。ã¾ãŸã¯ã€%s ディレク\n" "トリを削除ã—ã€æœ€åˆã‹ã‚‰ãƒ‘ッãƒã‚’ã‚ã¦ç›´ã—ã¦ãã ã•ã„。\\n" #~ msgid "" #~ "Cannot refresh patches with -p%s, please specify -p0 or -p1 instead\\n" #~ msgstr "" #~ "-p%s ã§ã¯ãƒªãƒ•レッシュã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。-p0ã¾ãŸã¯ -p1を指定ã—ã¦ãã ã•ã„" #~ "\\n" #~ msgid "Usage: quilt series [-v]\\n" #~ msgstr "ä½¿ã„æ–¹: quilt series [-v]\\n" quilt-0.63/po/ru.po0000644000175000017500000017665112332477667014551 0ustar mquinsonmquinson# Russian translation for quilt # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the quilt package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: quilt\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-09-20 08:04+0000\n" "PO-Revision-Date: 2011-09-20 07:55+0000\n" "Last-Translator: Sergey Basalaev \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-20 08:04+0000\n" "X-Generator: Launchpad (build 13980)\n" #: bin/quilt.in:40 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "СинтакÑиÑ: quilt [--trace[=verbose]] [--quiltrc=XX] команда [-h] ..." #: bin/quilt.in:41 msgid " quilt --version" msgstr " quilt --version" #: bin/quilt.in:43 msgid "Commands are:" msgstr "Команды:" #: bin/quilt.in:48 #, fuzzy msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately." msgstr "" "\n" "Общие опции:\n" "\n" "--trace\n" "\tЗапуÑкает команду в режиме траÑÑировки bash (-x). Ð”Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÐµÐ¹ отладки.\n" "\n" "--quiltrc файл\n" "\tИÑпользовать указанный файл конфигурации вмеÑто ~/.quiltrc (или\n" "\t/etc/quilt.quiltrc, еÑли ~/.quiltrc не ÑущеÑтвует). Смотрите\n" "\tpdf-документацию, чтобы узнать о возможном Ñодержимом.\n" "\n" "--version\n" "\tÐапечатать номер верÑии и выйти из программы." #: quilt/add.in:22 #, fuzzy msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "СинтакÑиÑ: quilt add [-p патч] {файл} ...\\n" #: quilt/add.in:25 #, fuzzy msgid "" "\n" "Add one or more files to the topmost or named patch. Files must be\n" "added to the patch before being modified. Files that are modified by\n" "patches already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" "\n" "Добавить один или более файлов к верхнему или к названному патчу.\n" "Файлы необходимо добавлÑть к патчу перед тем, как изменÑть их.\n" "Файлы, которые изменены патчами, уже наложенными поверх выбранного,\n" "не могут быть добавлены.\n" "\n" "-p патч\n" "\tПатч, к которому добавлÑть файлы.\n" #: quilt/add.in:48 quilt/add.in:54 #, fuzzy msgid "File %s is located below %s\\n" msgstr "Файл \\`%s' раÑположен ниже \\`%s'\\n" #: quilt/add.in:103 msgid "File %s is already in patch %s\\n" msgstr "Файл %s уже в патче %s\\n" #: quilt/add.in:111 quilt/remove.in:82 quilt/revert.in:84 msgid "File %s modified by patch %s\\n" msgstr "Файл %s изменён патчем %s\\n" #: quilt/add.in:119 msgid "Cannot add symbolic link %s\\n" msgstr "Ðе удалоÑÑŒ добавить Ñимвольную ÑÑылку %s\\n" #: quilt/add.in:126 msgid "Failed to back up file %s\\n" msgstr "Ðе удалоÑÑŒ Ñоздать резервную копию файла %s\\n" #: quilt/add.in:137 msgid "File %s added to patch %s\\n" msgstr "Файл %s добавлен к патчу %s\\n" #: quilt/annotate.in:22 #, fuzzy msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "СинтакÑиÑ: quilt annotate {файл}\\n" #: quilt/annotate.in:25 #, fuzzy msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" "\n" "ВывеÑти ÑпиÑок, показывающий, какие Ñтроки указанного файла\n" "какими патчами изменены.\n" #: quilt/applied.in:22 msgid "Usage: quilt applied [patch]\\n" msgstr "СинтакÑиÑ: quilt applied [патч]\\n" #: quilt/applied.in:25 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" "\n" "ВывеÑти ÑпиÑок применённых патчей или вÑех патчей, до и включаÑ\n" "указанный патч в файле series.\n" #: quilt/delete.in:22 #, fuzzy msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "СинтакÑиÑ: quilt delete [патч | -n]\\n" #: quilt/delete.in:25 #, fuzzy msgid "" "\n" "Remove the specified or topmost patch from the series file. If the\n" "patch is applied, quilt will attempt to remove it first. (Only the\n" "topmost patch can be removed right now.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" "\n" "Удалить указанный или верхний патч из файла series. ЕÑли патч применён,\n" "то quilt попытаетÑÑ ÐµÐ³Ð¾ отменить. (Ð’ наÑтоÑщий момент можно удалить\n" "лишь верхний патч).\n" "\n" "-n\tУдалить патч, предшеÑтвующий верхнему, вмеÑто указанного\n" "\tили верхнего.\n" #: quilt/delete.in:89 msgid "No next patch\\n" msgstr "ОтÑутÑтвует Ñледующий патч\\n" #: quilt/delete.in:102 quilt/scripts/patchfns.in:604 msgid "Patch %s is currently applied\\n" msgstr "Патч %s применён\\n" #: quilt/delete.in:114 msgid "Removed patch %s\\n" msgstr "Удалён патч %s\\n" #: quilt/delete.in:116 msgid "Failed to remove patch %s\\n" msgstr "Ðе удалоÑÑŒ отменить патч %s\\n" #: quilt/delete.in:127 #, fuzzy msgid "Failed to backup patch file %s\\n" msgstr "Ðе удалоÑÑŒ Ñоздать резервную копию файла %s\\n" #: quilt/delete.in:134 #, fuzzy msgid "Failed to remove patch file %s\\n" msgstr "Ðе удалоÑÑŒ отменить патч %s\\n" #: quilt/diff.in:24 #, fuzzy msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color[=always|auto|never]] [file ...]\\n" msgstr "" "СинтакÑиÑ: quilt diff [-p n] [-u|-U чиÑло|-c|-C чиÑло] [--combine патч|-z] [-" "R] [-P патч] [--snapshot] [--diff=утилита] [--no-timestamps] [--no-index] [--" "sort] [--color] [файл ...]\\n" #: quilt/diff.in:28 #, fuzzy msgid "" "\n" "Produces a diff of the specified file(s) in the topmost or specified\n" "patch. If no files are specified, all files that are modified are\n" "included.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine patch\n" "\tCreate a combined diff for all patches between this patch and\n" "\tthe patch specified with -P. A patch name of \\`-' is equivalent\n" "\tto specifying the first applied patch.\n" "\n" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" "\n" "Создаёт diff указанных файлов в верхнем или указанном патче. ЕÑли не\n" "указано файлов, то в diff включаютÑÑ Ð²Ñе изменённые файлы.\n" "\n" "-p n\tСоздать патч в Ñтиле -p n (поддерживаютÑÑ -p0 и -p1).\n" "\n" "-u, -U чиÑло, -c, -C чиÑло\n" "\tСоздать универÑальный diff (-u, -U) Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ чиÑлом Ñтрок\n" "\tконтекÑта. Создать контекÑтный diff (-c, -C) Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ чиÑлом\n" "\tÑтрок контекÑта. По умолчанию чиÑло Ñтрок контекÑта равно 3.\n" "\n" "--no-timestamps\n" "\tÐе включать отметки времени в заголовки патчей.\n" "\n" "--no-index\n" "\tÐе выводить Ñтроки Index:\n" "\n" "-z\tВывеÑти на Ñтандартный вывод изменениÑ, Ñделанные\n" "\tотноÑительно Ñамого верхнего или указанного патча.\n" "\n" "-R\tСоздать обратный diff.\n" "\n" "-P патч\n" "\tСоздать diff Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ патча. (По умолчанию Ð´Ð»Ñ Ð²ÐµÑ€Ñ…Ð½ÐµÐ³Ð¾.)\n" "\n" "--combine патч\n" "\tСоздать объединённый diff Ð´Ð»Ñ Ð²Ñех патчей между Ñтим патчем и\n" "\tуказанным в опции -P. Ð˜Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð° «-» Ñквивалентно первому\n" "\tприменённому патчу.\n" "\n" "--snapshot\n" "\tdiff отноÑительно Ñнимка (Ñм. \\`quilt snapshot -h').\n" "\n" "--diff=утилита\n" "\tИÑпользовать указанную утилиту Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ diff. Утилита вызываетÑÑ\n" "\tÑ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸ оригинального файла и нового файла в качеÑтве аргументов.\n" "\n" "--color[=always|auto|never]\n" "\tИÑпользовать подÑветку ÑинтакÑиÑа.\n" "\n" "--sort\tСортировать файлы по имени, не ÑохранÑÑ Ð¸Ñ… иÑходного порÑдка.\n" #: quilt/diff.in:226 #, fuzzy msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" "Опции \\`-c patch', \\`--snapshot' и \\`-z' не могут иÑпользоватьÑÑ " "ÑовмеÑтно.\\n" #: quilt/diff.in:240 #, fuzzy msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "Ðевозможно Ñравнить патчи Ñ -p%s, иÑпользуйте -p0 либо -p1\\n" #: quilt/diff.in:249 msgid "No snapshot to diff against\\n" msgstr "" #: quilt/diff.in:283 quilt/files.in:105 quilt/mail.in:422 msgid "Patch %s not applied before patch %s\\n" msgstr "Патч %s не был применён перед патчем %s\\n" #: quilt/diff.in:351 msgid "File %s is not being modified\\n" msgstr "Файл %s не изменÑетÑÑ\\n" #: quilt/diff.in:370 msgid "Diff failed, aborting\\n" msgstr "Ðе удалоÑÑŒ выполнить diff, завершение\\n" #: quilt/diff.in:377 #, fuzzy msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "Более новые патчи изменÑÑŽÑ‚ файлы в патче %s\\n" #: quilt/edit.in:24 msgid "Usage: quilt edit file ...\\n" msgstr "СинтакÑиÑ: quilt edit файл ...\\n" #: quilt/edit.in:27 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" "\n" "Редактировать указанные файлы в редакторе \\$EDITOR (%s) поÑле\n" "Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ñ… к верхнему патчу.\n" #: quilt/files.in:22 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "СинтакÑиÑ: quilt files [-v] [-a] [-l] [--combine патч] [патч]\\n" #: quilt/files.in:25 #, fuzzy msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" "\n" "ВывеÑти ÑпиÑок файлов, которые указанный или верхний патч изменÑет.\n" "\n" "-a\tСпиÑок вÑех файлов во вÑех применённых патчах.\n" "\n" "-l\tДобавить Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð° к выводу.\n" "\n" "-v\tПодробный, более дружеÑтвенный вывод.\n" "\n" "--combine патч\n" "\tСоздать ÑпиÑок вÑех патчей между Ñтим патчем и верхним\n" "\tприменённым патчем. Указание имени «-» Ñквивалентно\n" "\tуказанию первого применённого патча.\n" "\n" #: quilt/fold.in:22 #, fuzzy msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "Usage: quilt fold [-p strip-level]\\n" #: quilt/fold.in:25 #, fuzzy msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" "\n" "Интегрировать патч, Ñчитанный Ñо Ñтандартного ввода, в верхний:\n" "ПоÑле проверки того, что вÑе изменённые файлы чаÑть Ñамого верхнего\n" "патча, патч применÑетÑÑ Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ уровнем очиÑтки (по умолчанию 1).\n" "\n" "-p strip-level\n" "\tЧиÑло компонент пути, которые необходимо удалить из имён файлов\n" "\tпри наложении патча.\n" #: quilt/fold.in:131 msgid "File %s may be corrupted\\n" msgstr "Файл %s может быть повреждён\\n" #: quilt/fork.in:22 msgid "Usage: quilt fork [new_name]\\n" msgstr "СинтакÑиÑ: quilt fork [новое_имÑ]\\n" #: quilt/fork.in:25 #, fuzzy msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" "\n" "Создать ответвление верхнего патча. СоздаётÑÑ Ñ‚Ð¾Ñ‡Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ð°Ñ‚Ñ‡Ð° Ñ Ð½Ð¾Ð²Ñ‹Ð¼\n" "именем, и Ñто Ð¸Ð¼Ñ Ð¸ÑпользуетÑÑ Ð²Ð¼ÐµÑто оригинального патча в файле series.\n" "Это полезно, еÑли необходимо изменить патч, но иÑÑ…Ð¾Ð´Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð°\n" "быть Ñохранаена, например, потому что она иÑпользуетÑÑ Ð² другой Ñерии\n" "патчей или Ð´Ð»Ñ Ð¸Ñтории. Типичной поÑледовательноÑтью команд в Ñтом Ñлучае\n" "может быть: fork, edit, refresh.\n" "\n" "ЕÑли новое_Ð¸Ð¼Ñ Ð¾Ñ‚ÑутÑтвует, иÑпользуетÑÑ Ð¸Ð¼Ñ Ð¸Ñходного патча, к которому\n" "добавлÑетÑÑ Â«-2». ЕÑли патч уже заканчиваетÑÑ Ð´ÐµÑ„Ð¸Ñом и чиÑлом, то Ñто\n" "чиÑло увеличиваетÑÑ (Ñ‚.е. patch.diff, patch-2.diff, patch-3.diff).\n" #: quilt/fork.in:84 msgid "Patch %s exists already, please choose a new name\\n" msgstr "Патч %s уже ÑущеÑтвует, выберите новое имÑ\\n" #: quilt/fork.in:96 msgid "Fork of patch %s to patch %s failed\\n" msgstr "Ðе удалоÑÑŒ Ñоздать ответвление патча %s в патч %s\\n" #: quilt/fork.in:102 quilt/refresh.in:347 msgid "Fork of patch %s created as %s\\n" msgstr "Ответвление патча %s Ñоздано как %s\\n" #: quilt/graph.in:22 #, fuzzy msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" "СинтакÑиÑ: quilt graph [--all] [--reduce] [--lines[=чиÑло]] [--edge-" "labels=файлы] [патч]\\n" #: quilt/graph.in:26 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" "\n" "Создать ориентированный граф dot(1), показывающий завиÑимоÑти между\n" "применёнными патчами. Патч завиÑит от другого патча, еÑли оба изменÑÑŽÑ‚\n" "один и тот же файл или, Ñ Ð¾Ð¿Ñ†Ð¸ÐµÐ¹ --lines, еÑли их Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÑекаютÑÑ.\n" "ЕÑли не указано иное, граф включает вÑе патчи, от которых завиÑит Ñамый\n" "верхний патч.\n" "Когда указано Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð°, ÑоздаётÑÑ Ð³Ñ€Ð°Ñ„ завиÑимоÑтей Ð´Ð»Ñ Ð½ÐµÐ³Ð¾. Граф\n" "включает вÑе патчи, от которых завиÑит Ñтот патч, а также вÑе патчи,\n" "которые завиÑÑÑ‚ от него.\n" "\n" "--all\tСоздать граф, включающий вÑе применённые патчи и их\n" "\tзавиÑимоÑти. (Ðеприменённые патчи не включаютÑÑ.)\n" "\n" "--reduce\n" "\tУдалить транзитивные рёбра из графа.\n" "\n" "--lines[=чиÑло]\n" "\tВычиÑлÑть завиÑимоÑти по Ñтрокам, которые патчи изменÑÑŽÑ‚.\n" "\tЕÑли не указано другое чиÑло, включает две Ñтроки контекÑта.\n" "\n" "--edge-labels=files\n" "\tПомечать рёбра именами файлов, которые Ñмежные патчи изменÑÑŽÑ‚.\n" "\n" "-T ps\tСразу Ñоздать файл PostScript.\n" #: quilt/grep.in:22 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "СинтакÑиÑ: quilt grep [-h|параметры] {шаблон}\\n" #: quilt/grep.in:25 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" "\n" "ПроизвеÑти поиÑк Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ grep(1) по файлам иÑходного кода рекурÑивно,\n" "пропуÑÐºÐ°Ñ Ð¿Ð°Ñ‚Ñ‡Ð¸ и метаинформацию quilt. ЕÑли Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° не указано,\n" "поиÑк выполнÑетÑÑ Ð¿Ð¾ вÑему дереву. Опции Ñмотрите на Ñтранице Ñправки\n" "grep(1).\n" "\n" "-h\tВывеÑти Ñту Ñправку. ÐžÐ¿Ñ†Ð¸Ñ grep -h может быть передана поÑле\n" "\tдвойного дефиÑа (--). Ð’Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка, начинающиеÑÑ Ñ Ð´ÐµÑ„Ð¸Ñа,\n" "\tмогут быть переданы поÑле второго двойного дефиÑа (-- --).\n" #: quilt/header.in:24 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "СинтакÑиÑ: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [патч]\\n" #: quilt/header.in:28 #, fuzzy msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" "\n" "ВывеÑти или изменить заголовок верхнего или указанного патча.\n" "\n" "-a, -r, -e\n" "\tДобавить к (-a) или заменить (-r) текущий заголовок патча, или\n" "\tредактировать (-e) заголовок в редакторе \\$EDITOR (%s). ЕÑли\n" "\tне дано ни одной из Ñтих опций, вывеÑти заголовок патча.\n" "\n" "--strip-diffstat\n" "\tУдалить вывод diffstat из заголовка.\n" "\n" "--strip-trailing-whitespace\n" "\tУдалить пробелы из концов Ñтрок заголовка.\n" "\n" "--backup\n" "\tСоздать резервную копию Ñтарой верÑии патча в файле патч~.\n" #: quilt/header.in:169 msgid "Replaced header of patch %s\\n" msgstr "Заменён заголовок патча %s\\n" #: quilt/header.in:172 msgid "Appended text to header of patch %s\\n" msgstr "Добавлен текÑÑ‚ к заголовку патча %s\\n" #: quilt/import.in:22 #, fuzzy msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "Usage: quilt import [-f] [-p чиÑло] [-n патч] файл-патча ...\\n" #: quilt/import.in:25 msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" #: quilt/import.in:73 #, fuzzy msgid "Patch %s does not exist\\n" msgstr "Патч %s не в Ñерии\\n" #: quilt/import.in:96 msgid "Patch headers differ:\\n" msgstr "" #: quilt/import.in:99 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" #: quilt/import.in:164 #, fuzzy msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "Опцию \\`-n' можно иÑпользовать только при импорте одного патча\\n" #: quilt/import.in:194 msgid "Patch %s is applied\\n" msgstr "Патч %s применён\\n" #: quilt/import.in:203 #, fuzzy msgid "Patch %s already exists in series.\\n" msgstr "Патч %s не в Ñерии\\n" #: quilt/import.in:209 msgid "Patch %s exists. Replace with -f.\\n" msgstr "Патч %s ÑущеÑтвует. Принудительно заменить можно опцией -f.\\n" #: quilt/import.in:220 msgid "Replacing patch %s with new version\\n" msgstr "Замена патча %s новой верÑией\\n" #: quilt/import.in:224 #, fuzzy msgid "Importing patch %s\\n" msgstr "Удаление патча %s\\n" #: quilt/import.in:226 msgid "Importing patch %s (stored as %s)\\n" msgstr "Импорт патча %s (Ñохранён как %s)\\n" #: quilt/import.in:239 msgid "Failed to import patch %s\\n" msgstr "Ðе удалоÑÑŒ импортировать патч %s\\n" #: quilt/import.in:248 quilt/refresh.in:334 msgid "Failed to insert patch %s into file series\\n" msgstr "Ðе удалоÑÑŒ вÑтавить патч %s в файл series\\n" #: quilt/mail.in:24 #, fuzzy msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [first_patch [last_patch]]\\n" msgstr "" "СинтакÑиÑ: quilt mail {--mbox file|--send} [--from ...] [--to ...] [--" "cc ...] [--bcc ...] [--subject ...]\\n" #: quilt/mail.in:27 msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" #: quilt/mail.in:192 quilt/mail.in:200 msgid "Introduction message already specified" msgstr "" #: quilt/mail.in:262 msgid "You have to install 'formail' to use 'quilt mail'" msgstr "" #: quilt/mail.in:305 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "" #: quilt/mail.in:450 msgid "Unable to extract a subject header from %s\\n" msgstr "" #: quilt/mail.in:474 msgid "Patches %s have duplicate subject headers.\\n" msgstr "" #: quilt/mail.in:483 #, fuzzy msgid "File %s does not exist\\n" msgstr "Файл %s ÑущеÑтвует\\n" #: quilt/mail.in:543 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "" #: quilt/mail.in:546 msgid "Introduction has no subject header\\n" msgstr "" #: quilt/mail.in:660 msgid "Introduction saved as %s\\n" msgstr "" #: quilt/new.in:22 #, fuzzy msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "СинтакÑиÑ: quilt new {имÑ-патча}\\n" #: quilt/new.in:25 msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" #: quilt/new.in:76 #, fuzzy msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "Ðе удалоÑÑŒ обновить патчи Ñ -p%s, иÑпользуйте -p0 или -p1\\n" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "" #: quilt/new.in:97 quilt/refresh.in:185 msgid "Patch %s exists already\\n" msgstr "Патч %s уже ÑущеÑтвует\\n" #: quilt/new.in:108 msgid "Patch %s is now on top\\n" msgstr "Патч %s теперь наверху\\n" #: quilt/new.in:110 quilt/refresh.in:343 msgid "Failed to create patch %s\\n" msgstr "Ðе удалоÑÑŒ Ñоздать патч %s\\n" #: quilt/next.in:22 msgid "Usage: quilt next [patch]\\n" msgstr "СинтакÑиÑ: quilt next [патч]\\n" #: quilt/next.in:25 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" "\n" "ВывеÑти Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð°, Ñледующего за указанным или верхним патчем в\n" "файле series.\n" #: quilt/patches.in:24 #, fuzzy msgid "" "Usage: quilt patches [-v] [--color[=always|auto|never]] {file} [files...]\\n" msgstr "СинтакÑиÑ: quilt patches {файл}\\n" #: quilt/patches.in:27 #, fuzzy msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "ВывеÑти ÑпиÑок вÑех патчей, изменÑющих указанный файл. (ИÑпользует\n" "ÑвриÑтику, чтобы определить, какие файлы изменÑÑŽÑ‚ неналоженные патчи.\n" "Учтите, что ÑвриÑтика медленнее, чем Ñканирование наложенных патчей.)\n" "\n" "-v\tПодробный, более дружеÑтвенный вывод.\n" #: quilt/pop.in:22 msgid "Usage: quilt pop [-afRqv] [num|patch]\\n" msgstr "СинтакÑиÑ: quilt pop [-afRqv] [чиÑло|патч]\\n" #: quilt/pop.in:25 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\n" "\n" "-a\tRemove all applied patches.\n" "\n" "-f\tForce remove. The state before the patch(es) were applied will\n" "\tbe restored from backup files.\n" "\n" "-R\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" msgstr "" "\n" "Убрать патчи из Ñтека наложенных патчей. ЕÑли не указаны опции,\n" "отменÑетÑÑ Ð²ÐµÑ€Ñ…Ð½Ð¸Ð¹ патч. ЕÑли указано чиÑло, отменÑетÑÑ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ðµ\n" "чиÑло патчей. Когда указано Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð°, патчи убираютÑÑ Ð´Ð¾ тех пор,\n" "пока указанный патч не окажетÑÑ Ð½Ð° вершине Ñтека. Имена патчей могут\n" "Ñодержать Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ patches/ Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ.\n" "\n" "-a\tОтменить вÑе наложенные патчи.\n" "\n" "-f\tПринудительно убрать патч. СоÑтоÑние перед тем, как патчи были\n" "\tналожены, может быть воÑÑтановлено из резервных копий.\n" "\n" "-R\tÐ’Ñегда проверÑть, чиÑто ли удалÑÑŽÑ‚ÑÑ Ð¿Ð°Ñ‚Ñ‡Ð¸; не надеÑтьÑÑ\n" "\tна проверки отметок времени.\n" "\n" "-q\tРаботать тихо.\n" "\n" "-v\tПодробный вывод.\n" #: quilt/pop.in:100 quilt/scripts/patchfns.in:880 msgid "Failed to copy files to temporary directory\\n" msgstr "Ðе удалоÑÑŒ Ñкопировать файлы во временный каталог\\n" #: quilt/pop.in:125 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" "Ðе удалоÑÑŒ чиÑто удалить патч %s (обновите его или удалите принудительно Ñ -" "f)\\n" #: quilt/pop.in:150 msgid "Patch %s appears to be empty, removing\\n" msgstr "Похоже, патч %s пуÑÑ‚, удаление\\n" #: quilt/pop.in:155 msgid "Removing patch %s\\n" msgstr "Удаление патча %s\\n" #: quilt/pop.in:226 msgid "Patch %s needs to be refreshed first.\\n" msgstr "Сначала нужно обновить патч %s.\\n" #: quilt/pop.in:236 msgid "No patch removed\\n" msgstr "Ðе удалено ни одного патча\\n" #: quilt/pop.in:252 quilt/scripts/patchfns.in:513 msgid "No patches applied\\n" msgstr "Ðет применённых патчей\\n" #: quilt/pop.in:259 quilt/push.in:422 msgid "Now at patch %s\\n" msgstr "Текущий патч: %s\\n" #: quilt/previous.in:22 msgid "Usage: quilt previous [patch]\\n" msgstr "СинтакÑиÑ: quilt previous [патч]\\n" #: quilt/previous.in:25 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" "\n" "ВывеÑти Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð°, предшеÑтвующего указанному или верхнему\n" "в файле series.\n" #: quilt/push.in:24 #, fuzzy msgid "" "Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" msgstr "СинтакÑиÑ: quilt push [-afqv] [--leave-rejects] [чиÑло|патч]\\n" #: quilt/push.in:27 #, fuzzy msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "Применить патчи из файла series. Без опций накладываетÑÑ Ñледующий\n" "патч из файла series. ЕÑли указано чиÑло, накладываетÑÑ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ðµ\n" "чиÑло патчей. ЕÑли указано Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°, накладываютÑÑ Ð²Ñе патчи\n" "до и Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¹ патч. Имена патчей могут Ñодержать префикÑ\n" "patches/, чтобы можно было иÑпользовать автодополнение имён.\n" "\n" "-a\tПрименить вÑе патчи из файла series.\n" "\n" "-f\tПринудительно применить, даже еÑли наложение вызывает ошибки.\n" "\n" "-q\tРаботать тихо.\n" "\n" "-v\tПодробный вывод.\n" "\n" "--leave-rejects\n" "\tОÑтавлÑть файлы reject, Ñозданные программой patch, даже еÑли патч\n" "\tне был применён.\n" "\n" "--interactive\n" "\tПозволить утилите patch Ñпрашивать о разрешении конфликтов. ЕÑли\n" "\tÑта Ð¾Ð¿Ñ†Ð¸Ñ Ð½Ðµ указана, Ð¾Ð¿Ñ†Ð¸Ñ -f будет передана программе patch.\n" "\n" "--color[=always|auto|never]\n" "\tИÑпользовать подÑветку ÑинтакÑиÑа.\n" #: quilt/push.in:68 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "Прервано пользователем; патч %s не был наложен.\\n" #: quilt/push.in:181 msgid "Applying patch %s\\n" msgstr "Ðаложение патча %s\\n" #: quilt/push.in:215 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "Патч %s не ÑущеÑтвует; наложен пуÑтой патч\\n" #: quilt/push.in:219 msgid "Patch %s appears to be empty; applied\\n" msgstr "Похоже, патч %s пуÑÑ‚; наложен\\n" #: quilt/push.in:223 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "Применён патч %s (принудительно; Ñледует Ñделать refresh)\\n" #: quilt/push.in:233 #, fuzzy msgid "Patch %s can be reverse-applied\\n" msgstr "Патч %s применён\\n" #: quilt/push.in:236 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "Патч %s не применÑетÑÑ (принудить Ñ -f)\\n" #: quilt/push.in:291 #, fuzzy msgid "Patch %s is already applied; check your series file\\n" msgstr "Патч %s уже применён\\n" #: quilt/push.in:396 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "Сначала необходимо обновить Ñамый верхний патч %s.\\n" #: quilt/refresh.in:22 #, fuzzy msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "СинтакÑиÑ: quilt refresh [-p n] [-f] [--no-timestamps] [--no-index] [--" "diffstat] [--sort] [--backup] [--strip-trailing-whitespace] [патч]\\n" #: quilt/refresh.in:26 #, fuzzy msgid "" "\n" "Refreshes the specified patch, or the topmost patch by default.\n" "Documentation that comes before the actual patch in the patch file is\n" "retained.\n" "\n" "It is possible to refresh patches that are not on top. If any patches\n" "on top of the patch to refresh modify the same files, the script aborts\n" "by default. Patches can still be refreshed with -f. In that case this\n" "script will print a warning for each shadowed file, changes by more\n" "recent patches will be ignored, and only changes in files that have not\n" "been modified by any more recent patches will end up in the specified\n" "patch.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" "\n" "ОбновлÑет указанный патч, или по умолчанию верхний патч. ДокументациÑ,\n" "ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑодержитÑÑ Ð² файле патча перед данными, ÑохранÑетÑÑ.\n" "\n" "ЕÑть возможноÑть обновлÑть патчи, которые раÑполагаютÑÑ Ð½Ðµ Ñверху.\n" "ЕÑли какой-нибудь патч поверх обновлÑемого патча изменÑет те же файлы,\n" "то по умолчанию программа прекращает выполнение. Такие патчи вÑÑ‘ же\n" "можно обновить Ñ Ð¾Ð¿Ñ†Ð¸ÐµÐ¹ -f. Ð’ таком Ñлучае Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ такого файла\n" "программа выведет предупреждение, Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ новыми патчами будут\n" "игнорированы, и только Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файлах, которые не были изменены\n" "более новыми патчами, попадут в указанный патч.\n" "\n" "-p n\tСоздать патч в Ñтиле -p n (поддерживаютÑÑ -p0 и -p1).\n" "\n" "-u, -U чиÑло, -c, -C чиÑло\n" "\tСоздать универÑальный diff (-u, -U) Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ чиÑлом Ñтрок\n" "\tконтекÑта. Создать контекÑтный diff (-c, -C) Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ чиÑлом\n" "\tÑтрок контекÑта. По умолчанию чиÑло Ñтрок контекÑта равно 3.\n" "\n" "--no-timestamps\n" "\tÐе включать отметки времени в заголовки патчей.\n" "\t\n" "--no-index\n" "\tÐе выводить Ñтроки Index:\n" "\n" "--diffstat\n" "\tДобавить Ñекцию diffstat в заголовок патча, или заменить\n" "\tÑущеÑтвующую Ñекцию diffstat.\n" "\n" "-f\tПринудительно обновить патч, находÑщийÑÑ Ð½Ðµ вверху Ñтека.\n" "\n" "--backup\n" "\tСоздать резервную копию Ñтарой верÑии патча Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ патч~.\n" "\n" "--sort\tСортировать файлы по имени, не ÑÐ¾Ð±Ð»ÑŽÐ´Ð°Ñ Ð¸Ñходный порÑдок.\n" "\n" "--strip-trailing-whitespace\n" "\tУдалÑть пробелы на концах Ñтрок.\n" #: quilt/refresh.in:171 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "" #: quilt/refresh.in:202 #, fuzzy msgid "" "Cannot refresh patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "Ðе удалоÑÑŒ обновить патчи Ñ -p%s, иÑпользуйте -p0 или -p1\\n" #: quilt/refresh.in:235 #, fuzzy msgid "Diff failed on file '%s', aborting\\n" msgstr "Ðе удалоÑÑŒ выполнить diff, завершение\\n" #: quilt/refresh.in:241 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" "Более новые патчи изменÑÑŽÑ‚ файлы в патче %s. Принудительное обновление можно " "Ñделать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ опции -f.\\n" #: quilt/refresh.in:247 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" "ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать --strip-trailing-whitespace на патче Ñ Ð·Ð°Ñ‚ÐµÐ½Ñ‘Ð½Ð½Ñ‹Ð¼Ð¸ " "файлами.\\n" #: quilt/refresh.in:253 quilt/refresh.in:355 msgid "Nothing in patch %s\\n" msgstr "Ðичего нет в патче %s\\n" #: quilt/refresh.in:325 msgid "Patch %s is unchanged\\n" msgstr "Патч %s не изменён\\n" #: quilt/refresh.in:353 msgid "Refreshed patch %s\\n" msgstr "Патч %s обновлён\\n" #: quilt/remove.in:22 #, fuzzy msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "СинтакÑиÑ: quilt remove [-p патч] {файл} ...\\n" #: quilt/remove.in:25 #, fuzzy msgid "" "\n" "Remove one or more files from the topmost or named patch. Files that\n" "are modified by patches on top of the specified patch cannot be removed.\n" "\n" "-P patch\n" "\tRemove named files from the named patch.\n" msgstr "" "\n" "Удалить один или более файлов из Ñамого верхнего или названного\n" "патча. Файлы, изменённые патчами поверх указанного патча, не\n" "могут быть удалены.\n" "\n" "-p патч\n" "\tПатч, из которого нужно удалить файлы.\n" #: quilt/remove.in:73 quilt/revert.in:75 msgid "File %s is not in patch %s\\n" msgstr "Файл %s отÑутÑтвует в патче %s\\n" #: quilt/remove.in:91 msgid "Failed to remove file %s from patch %s\\n" msgstr "Ðе удалоÑÑŒ удалить файл %s из патча %s\\n" #: quilt/remove.in:105 msgid "File %s removed from patch %s\\n" msgstr "Файл %s удалён из патча %s\\n" #: quilt/rename.in:22 #, fuzzy msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "СинтакÑиÑ: quilt rename [-p патч] новое_имÑ\\n" #: quilt/rename.in:25 #, fuzzy msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" "\n" "Переименовать верхний или указанный патч.\n" "\n" "-p патч\n" "\tПатч, который нужно переименовать.\n" #: quilt/rename.in:84 msgid "Patch %s exists already, please choose a different name\\n" msgstr "Патч %s уже ÑущеÑтвует, выберите другое имÑ\\n" #: quilt/rename.in:98 msgid "Renaming of patch %s to %s failed\\n" msgstr "Ðе удалоÑÑŒ переименовать патч %s в %s\\n" #: quilt/rename.in:104 msgid "Patch %s renamed to %s\\n" msgstr "Патч %s переименован в %s\\n" #: quilt/revert.in:22 #, fuzzy msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "СинтакÑиÑ: quilt remove [-p патч] {файл} ...\\n" #: quilt/revert.in:25 #, fuzzy msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" "\n" "Добавить один или более файлов к верхнему или к названному патчу.\n" "Файлы необходимо добавлÑть к патчу перед тем, как изменÑть их.\n" "Файлы, которые изменены патчами, уже наложенными поверх выбранного,\n" "не могут быть добавлены.\n" "\n" "-p патч\n" "\tПатч, к которому добавлÑть файлы.\n" #: quilt/revert.in:103 quilt/revert.in:112 #, fuzzy msgid "File %s is unchanged\\n" msgstr "Патч %s не изменён\\n" #: quilt/revert.in:120 #, fuzzy msgid "Failed to revert changes to %s in patch %s\\n" msgstr "Ðе удалоÑÑŒ удалить файл %s из патча %s\\n" #: quilt/revert.in:124 #, fuzzy msgid "Changes to %s in patch %s reverted\\n" msgstr "Ðе удалоÑÑŒ вÑтавить патч %s в файл series\\n" #: quilt/scripts/edmail.in:96 #, fuzzy, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "Отображаемое Ð¸Ð¼Ñ '%s' Ñодержит непарные Ñкобки\n" #: quilt/scripts/edmail.in:114 #, fuzzy, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "Ðекорректный Ð°Ð´Ñ€ÐµÑ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ '%s'\n" #: quilt/scripts/patchfns.in:232 quilt/scripts/patchfns.in:526 #, fuzzy msgid "%s is not a regular file\\n" msgstr "Патч %s не входит в файл series\\n" #: quilt/scripts/patchfns.in:480 quilt/scripts/patchfns.in:497 #, fuzzy msgid "No patches in series\\n" msgstr "Ðет применённых патчей\\n" #: quilt/scripts/patchfns.in:482 quilt/scripts/patchfns.in:499 msgid "No series file found\\n" msgstr "" #: quilt/scripts/patchfns.in:555 msgid "Patch %s is not in series\\n" msgstr "Патч %s не в Ñерии\\n" #: quilt/scripts/patchfns.in:583 msgid "Patch %s is not applied\\n" msgstr "Патч %s не применён\\n" #: quilt/scripts/patchfns.in:620 msgid "File series fully applied, ends at patch %s\\n" msgstr "Ð¡ÐµÑ€Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² полноÑтью применена, заканчиваетÑÑ Ð½Ð° патче %s\\n" #: quilt/scripts/patchfns.in:898 msgid "Failed to patch temporary files\\n" msgstr "Ðе удалоÑÑŒ применить патч к временным файлам\\n" #: quilt/scripts/patchfns.in:941 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" "Метаданные quilt в Ñтом дереве имеют верÑию %s, но Ñта верÑÐ¸Ñ quilt может " "обрабатывать форматы метаданных толь до верÑии %s включительно. ПожалуйÑта, " "отмените вÑе патчи, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð²ÐµÑ€Ñию quilt, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¸ÑпользовалаÑÑŒ Ð´Ð»Ñ Ð¸Ñ… " "наложениÑ, прежде чем иÑпользовать Ñту верÑию.\\n" #: quilt/scripts/patchfns.in:1094 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" "Рабочее дерево было Ñоздано более Ñтарой верÑией quilt. ПожалуйÑта, " "выполните 'quilt upgrade'.\\n" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "СИÐТÐКСИС: %s [-p чиÑло] [-n] [патч]\n" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "%s: Ñ Ð² раÑтерÑнноÑти.\n" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "Предупреждение: пробел в конце Ñтроки %s файла %s\n" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "Предупреждение: пробел в конце Ñтрок %s файла %s\n" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "Удаление пробела из конца Ñтроки %s файла %s\n" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "Удаление пробела из конца Ñтрок %s файла %s\n" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "Переименование %s в %s: %s\n" #: quilt/series.in:22 #, fuzzy msgid "Usage: quilt series [--color[=always|auto|never]] [-v]\\n" msgstr "СинтакÑиÑ: quilt push [-afqv] [--leave-rejects] [чиÑло|патч]\\n" #: quilt/series.in:25 #, fuzzy msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "-v\tVerbose, more user friendly output.\n" msgstr "" "\n" "ВывеÑти имена вÑех патчей в файле series.\n" "\n" "-v\tПодробный, более дружеÑтвенный вывод.\n" #: quilt/setup.in:35 quilt/setup.in:55 msgid "Directory %s exists\\n" msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s ÑущеÑтвует\\n" #: quilt/setup.in:61 msgid "File %s exists\\n" msgstr "Файл %s ÑущеÑтвует\\n" #: quilt/setup.in:102 #, fuzzy msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] " "{specfile|seriesfile}\\n" msgstr "" "СинтакÑиÑ: quilt setup [-d префикÑ-пути] [-v] {файл-spec|файл-series}\\n" #: quilt/setup.in:105 #, fuzzy msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" msgstr "" "\n" "Инициализирует иÑходное дерево из файла rpm spec или файла quilt series.\n" "\n" "-d\tопциональный Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð¿ÑƒÑ‚Ð¸ (поддиректориÑ).\n" "\n" "-v\tвывод отладочной информации.\n" #: quilt/setup.in:176 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" "Ð¡ÐµÐºÑ†Ð¸Ñ %%prep файла %s Ñодержит ошибки; результаты могут быть незавершены\\n" #: quilt/setup.in:179 msgid "The -v option will show rpm's output\\n" msgstr "ÐžÐ¿Ñ†Ð¸Ñ -v покажет вывод rpm\\n" #: quilt/setup.in:231 quilt/setup.in:243 #, fuzzy msgid "File %s not found\\n" msgstr "Файл %s не изменÑетÑÑ\\n" #: quilt/setup.in:234 quilt/setup.in:246 msgid "Unpacking archive %s\\n" msgstr "РаÑпаковка архива %s\\n" #: quilt/setup.in:255 msgid "Trying alternative patches and series names..." msgstr "" #: quilt/snapshot.in:22 msgid "Usage: quilt snapshot [-d]\\n" msgstr "СинтакÑиÑ: quilt snapshot [-d]\\n" #: quilt/snapshot.in:25 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" "\n" "Сделать Ñнимок текущего ÑоÑтоÑÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ дерева. ПоÑле ÑнÑÑ‚Ð¸Ñ Ñнимка,\n" "дерево можно модифицировать обычными ÑпоÑоами, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ и\n" "отмену патчей. СпиÑок изменений diff отноÑительно дерева в момент взÑтиÑ\n" "Ñнимка может быть Ñоздан Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ \\`quilt diff --snapshot'.\n" "\n" "-d\tПроÑто удалить текущий Ñнимок.\n" #: quilt/top.in:22 msgid "Usage: quilt top\\n" msgstr "СинтакÑиÑ: quilt top\\n" #: quilt/top.in:25 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" "\n" "Ðапечатать Ð¸Ð¼Ñ Ð²ÐµÑ€Ñ…Ð½ÐµÐ³Ð¾ патча в текущем Ñтеке применённых патчей.\n" #: quilt/unapplied.in:22 msgid "Usage: quilt unapplied [patch]\\n" msgstr "СинтакÑиÑ: quilt unapplied [патч]\\n" #: quilt/unapplied.in:25 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" "\n" "ВывеÑти ÑпиÑок неприменённых патчей или вÑех патчей, Ñледующих\n" "за указанным патчем в файле series.\n" #: quilt/upgrade.in:25 msgid "Usage: quilt upgrade\\n" msgstr "СинтакÑиÑ: quilt upgrade\\n" #: quilt/upgrade.in:28 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" "\n" "Обновить метаданные в рабочем дереве Ñо Ñтарой верÑии quilt до текущей\n" "верÑии. Эта команда необходима только, еÑли формат метаданных quilt\n" "изменилÑÑ, а рабочее дерево по-прежнему Ñодержит метаданные Ñтарого\n" "формата. Ð’ Ñтом Ñлучае quilt попроÑит запуÑтить \\`quilt upgrade'.\n" #: quilt/upgrade.in:67 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "Метаданные quilt в %s уже в формате верÑии %s; нечего делать\\n" #: quilt/upgrade.in:71 msgid "Converting meta-data to version %s\\n" msgstr "Преобразование метаданных к верÑии %s\\n" #: quilt/upgrade.in:102 msgid "Conversion failed\\n" msgstr "Преобразование не удалоÑÑŒ\\n" #: quilt/upgrade.in:103 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" "\n" "ПожалуйÑта, удалите вÑе патчи, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ \\`quilt pop -a' верÑией quilt, " "иÑпользованной при Ñоздании Ñтого рабочего дерева, или удалите директорию %s " "и примените вÑе патчи Ñ Ð½ÑƒÐ»Ñ.\\n" #~ msgid "" #~ "Cannot refresh patches with -p%s, please specify -p0 or -p1 instead\\n" #~ msgstr "Ðе удалоÑÑŒ обновить патчи Ñ -p%s, иÑпользуйте -p0 или -p1\\n" #~ msgid "Usage: quilt series [-v]\\n" #~ msgstr "СинтакÑиÑ: quilt series [-v]\\n" #~ msgid "Patch is not applied\\n" #~ msgstr "Патч не применён\\n" #~ msgid "" #~ "\n" #~ "Import external patches.\n" #~ "\n" #~ "-p num\n" #~ "\tNumber of directory levels to strip when applying (default=1)\n" #~ "\n" #~ "-n patch\n" #~ "\tPatch filename to use inside quilt. This option can only be\n" #~ "\tused when importing a single patch.\n" #~ "\n" #~ "-f\tOverwite/update existing patches.\n" #~ msgstr "" #~ "\n" #~ "Импортировать внешние патчи.\n" #~ "\n" #~ "-p чиÑло\n" #~ "\tЧиÑло уровней директорий, которые нужно убрать перед наложением\n" #~ "\t(по умочанию=1)\n" #~ "\n" #~ "-n патч\n" #~ "\tÐ˜Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð° Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² quilt. Эту опцию можно иÑпользовать\n" #~ "\tтолько прии импорте одного патча.\n" #~ "\n" #~ "-f\tПерезапиÑать или обновить ÑущеÑтвующие патчи.\n" #~ msgid "" #~ "\n" #~ "Create mail messages from all patches in the series file, and either " #~ "store\n" #~ "them in a mailbox file, or send them immediately. The editor is opened\n" #~ "with a template for the introductory message. Please see the file\n" #~ "%s for details.\n" #~ "\n" #~ "--mbox file\n" #~ "\tStore all messages in the specified file in mbox format. The mbox\n" #~ "\tcan later be sent using formail, for example.\n" #~ "\n" #~ "--send\n" #~ "\tSend the messages directly using %s.\n" #~ "\n" #~ "--from, --subject\n" #~ "\tThe values for the From and Subject headers to use.\n" #~ "\n" #~ "--to, --cc, --bcc\n" #~ "\tAppend a recipient to the To, Cc, or Bcc header.\n" #~ msgstr "" #~ "\n" #~ "Создать почтовые ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸Ð· вÑех патчей в файле series, и либо\n" #~ "Ñохранить их в файле mailbox, либо немедленно отоÑлать. ОткрываетÑÑ\n" #~ "редактор Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼ Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑообщениÑ. ПодробноÑти Ñмотрите в\n" #~ "файле %s.\n" #~ "\n" #~ "--mbox файл\n" #~ "\tСохранить вÑе ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² указанном файле в формате mbox.\n" #~ "\tmbox затем можно отправить, иÑпользуÑ, например, formail.\n" #~ "\n" #~ "--send\n" #~ "\tОтоÑлать ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ %s.\n" #~ "\n" #~ "--from, --subject\n" #~ "\tÐ—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ñ‡Ð½Ñ‹Ñ… полей From и Subject.\n" #~ "\n" #~ "--to, --cc, --bcc\n" #~ "\tДобавить Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ Ðº заголовку To, Cc, или Bcc.\n" #~ msgid "" #~ "\n" #~ "Create a new patch with the specified file name, and insert it after the\n" #~ "topmost patch in the patch series file.\n" #~ msgstr "" #~ "\n" #~ "Создать новый патч Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ именем файла, и вÑтавить его поÑле\n" #~ "верхнего патча в файле series.\n" #~ msgid "Patch %s not found in file series\\n" #~ msgstr "Патч %s не найден в файле series\\n" #~ msgid "Display name '%s' contains invalid characters\n" #~ msgstr "Отображаемое Ð¸Ð¼Ñ '%s' Ñодержит некорректные Ñимволы\n" #~ msgid "Display name '%s' contains non-printable or 8-bit characters\n" #~ msgstr "Отображаемое Ð¸Ð¼Ñ '%s' Ñодержит непечатные или 8-битные Ñимволы\n" quilt-0.63/test/add-filename-check.test0000644000175000017500000000043512332477113020352 0ustar mquinsonmquinson$ mkdir patches $ quilt new test.diff > Patch patches/test.diff is now on top $ echo foo > foo $ quilt add foo > File foo added to patch patches/test.diff $ quilt add patches/bar > File patches/bar is located below patches/ $ quilt add .pc/baz > File .pc/baz is located below .pc/ quilt-0.63/test/annotate.test0000644000175000017500000000320112332477113016574 0ustar mquinsonmquinson $ mkdir patches $ cat > foo < foo < bar < baz $ quilt new patch > Patch patches/patch is now on top $ quilt add foo > File foo added to patch patches/patch $ sed -e 's:b:B:' foo > foo.new $ mv foo.new foo $ quilt refresh > Refreshed patch patches/patch $ quilt annotate foo > foo > 1 Bar > 1 Baz > > 1 patches/patch $ quilt new patch2 > Patch patches/patch2 is now on top $ quilt add foo > File foo added to patch patches/patch2 $ sed -e 's:Baz:baz:' foo > foo.new $ mv foo.new foo $ quilt refresh > Refreshed patch patches/patch2 $ quilt annotate foo > foo > 1 Bar > 2 baz > > 1 patches/patch > 2 patches/patch2 $ quilt new patch3 > Patch patches/patch3 is now on top $ quilt add foo > File foo added to patch patches/patch3 $ sed -e '/Bar/d' foo > foo.new $ mv foo.new foo $ quilt refresh > Refreshed patch patches/patch3 $ quilt annotate foo > foo > 2 baz > > 1 patches/patch > 2 patches/patch2 > 3 patches/patch3 $ quilt annotate -P patch3 foo > foo > 2 baz > > 1 patches/patch > 2 patches/patch2 > 3 patches/patch3 $ quilt annotate -P patch2 foo > foo > 1 Bar > 2 baz > > 1 patches/patch > 2 patches/patch2 $ quilt annotate -P patch foo > foo > 1 Bar > 1 Baz > > 1 patches/patch $ quilt new patch4 > Patch patches/patch4 is now on top $ cat > jkl < abc < def $ quilt add jkl wrz > File jkl added to patch patches/patch4 > File wrz added to patch patches/patch4 $ rm -f jkl $ cat > wrz < one < two $ quilt refresh > Refreshed patch patches/patch4 $ quilt annotate jkl > > 1 patches/patch4 $ quilt annotate wrz > 1 one > 1 two > > 1 patches/patch4 quilt-0.63/test/applied.test0000644000175000017500000000140512332477113016405 0ustar mquinsonmquinson $ mkdir patches $ echo a > a $ echo b > b $ diff -u a b > patches/patch $ echo patch -p0 > patches/series $ rm -f b $ quilt push -q > Applying patch patches/patch > Now at patch patches/patch $ quilt pop -q > Removing patch patches/patch > No patches applied $ patch -s -p0 < patches/patch $ quilt push -q > Applying patch patches/patch > 1 out of 1 hunk FAILED > Patch patches/patch can be reverse-applied $ echo patch -p0 -R > patches/series $ quilt push -q > Applying patch patches/patch > Now at patch patches/patch $ quilt pop -q > Removing patch patches/patch > No patches applied $ patch -s -p0 -R < patches/patch $ quilt push -q > Applying patch patches/patch > 1 out of 1 hunk FAILED > Patch patches/patch can be reverse-applied quilt-0.63/test/backup-files.test0000644000175000017500000001452212332477113017340 0ustar mquinsonmquinsonUnit test of the backup-files script. # Test backup without options; it should link, not copy $ echo foo > foo $ echo bar > "space bar" $ sleep 1 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b foo > Copying foo $ ls -l foo | awk '{ print $2 }' > 2 $ ls -l backup/foo | awk '{ print $2 }' > 2 $ [ backup/foo -nt foo ] && echo "mtimes differ" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r foo > Restoring foo $ ls -l foo | awk '{ print $2 }' > 1 # Test silent backup with -L; it should copy, not link $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L foo $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l backup/foo | awk '{ print $2 }' > 1 $ [ backup/foo -nt foo ] && echo "mtimes differ" # Test restore without options $ echo modified > foo $ sleep 1 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r foo > Restoring foo $ cat foo > foo $ [ -e backup/foo ] && echo "backup/foo not deleted" $ [ -e backup ] && echo "backup directory not deleted" # Test backup files with hard links $ ln foo foo2 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L foo $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l backup/foo | awk '{ print $2 }' > 2 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L foo2 $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l foo2 | awk '{ print $2 }' > 1 $ ls -l backup/foo | awk '{ print $2 }' > 2 $ ls -l backup/foo2 | awk '{ print $2 }' > 2 # Test restore of files with hard links $ rm -f foo foo2 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s foo $ ls -l foo | awk '{ print $2 }' > 2 $ ls -l backup/foo2 | awk '{ print $2 }' > 2 $ [ -e backup/foo ] && echo "backup/foo not deleted" $ [ ! -e foo2 ] || echo "file foo2 shouldn't exist" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s foo2 $ ls -l foo | awk '{ print $2 }' > 2 $ ls -l foo2 | awk '{ print $2 }' > 2 $ [ -e backup/foo2 ] && echo "backup/foo2 not deleted" $ [ -e backup ] && echo "backup directory not deleted" # Test restore with -t $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s foo $ touch -r foo foo.timeref $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s -t foo $ ls -l foo | awk '{ print $2 }' > 2 $ [ foo -nt foo.timeref ] || echo "touch failed" # Test restore with -k $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L foo "space bar" $ touch -r "space bar" bar.timeref $ ls -l backup/foo | awk '{ print $2 }' > 2 $ ls -l "backup/space bar" | awk '{ print $2 }' > 1 $ mkdir tmp $ cd tmp $ %{QUILT_DIR}/scripts/backup-files -B ../backup/ -r -s -k foo "space bar" $ cd .. $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l "space bar" | awk '{ print $2 }' > 1 $ ls -l backup/foo | awk '{ print $2 }' > 3 $ ls -l "backup/space bar" | awk '{ print $2 }' > 2 $ ls -l tmp/foo | awk '{ print $2 }' > 3 $ ls -l "tmp/space bar" | awk '{ print $2 }' > 2 $ rm -rf tmp # Test restore all (-) $ rm -f foo "space bar" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s -t - $ cat foo > foo $ cat "space bar" > bar $ [ "space bar" -nt bar.timeref ] || echo "touch failed" # Backup and restore a non-existing files $ mkdir "dir with spaces" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L new "dir with spaces/space file" $ echo data > new $ echo data2 > "dir with spaces/space file" $ ls -l backup/new | awk '{ print $5 }' > 0 $ ls -l "backup/dir with spaces/space file" | awk '{ print $5 }' > 0 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s - $ [ ! -e backup/new ] || echo "file backup/new shouldn't exist" $ [ ! -e new ] || echo "file new shouldn't exist" $ [ ! -e "backup/dir with spaces/space file" ] || echo "file backup/dir with spaces/space file shouldn't exist" $ [ ! -e "dir with spaces/space file" ] || echo "file dir with spaces/space file shouldn't exist" # Test restore involving a dir name with spaces $ echo data > "dir with spaces/space file" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -L "dir with spaces/space file" > Copying dir with spaces/space file $ rm -rf "dir with spaces" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r - > Restoring dir with spaces/space file $ cat "dir with spaces/space file" > data $ [ -e backup ] && echo "backup directory not deleted" # Test backup reading file list from a file $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L -f - < foo < new < space bar $ echo data > new $ echo modified > foo $ rm -f "space bar" $ [ -e backup/new -a ! -s backup/new ] || echo "file backup/new isn't empty" $ ls -l backup/new | awk '{ print $5 }' > 0 $ cat backup/foo > foo $ cat "backup/space bar" > bar $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s -f - < foo < new < space bar $ [ ! -e backup/new ] || echo "file backup/new shouldn't exist" $ [ ! -e new ] || echo "file new shouldn't exist" $ cat foo > foo $ cat "space bar" > bar # Test the special -L alone case $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -L -f - < new < foo < space bar > New file new > Copying foo > Copying space bar $ ln "space bar" "linked space" $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l "space bar" | awk '{ print $2 }' > 2 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -L - $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l "space bar" | awk '{ print $2 }' > 1 $ [ ! -e new ] || echo "file new shouldn't exist" # Second call should be idempotent $ %{QUILT_DIR}/scripts/backup-files -B backup/ -L - $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l "space bar" | awk '{ print $2 }' > 1 $ [ ! -e new ] || echo "file new shouldn't exist" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r - | sort > Removing new > Restoring foo > Restoring space bar $ rm "linked space" # Test copy (as used by quilt snapshot) $ %{QUILT_DIR}/scripts/backup-files -B snapshot/ -c -f - < new < foo < space bar < dir with spaces/space file > New file new > Copying foo > Copying space bar > Copying dir with spaces/space file $ ls -l foo | awk '{ print $2 }' > 2 $ ls -l "space bar" | awk '{ print $2 }' > 1 $ ls -l "dir with spaces/space file" | awk '{ print $2 }' > 1 $ [ ! -e new ] || echo "file new shouldn't exist" $ ls -l snapshot/new | awk '{ print $2 }' > 1 $ ls -l snapshot/foo | awk '{ print $2 }' > 1 $ ls -l snapshot/"space bar" | awk '{ print $2 }' > 1 $ ls -l snapshot/"dir with spaces/space file" | awk '{ print $2 }' > 1 $ [ ! -s new ] || echo "file snapshot/new should be empty" $ rm -rf snapshot quilt-0.63/test/colon-in-patch-name.test0000644000175000017500000000350612332477113020524 0ustar mquinsonmquinson# Test that patch names including special characters such as a colons, # brackets or parentheses are properly handled by all quilt commands $ mkdir patches $ quilt new "patch_with:strange[name]" > Patch patches/patch_with:strange[name] is now on top $ echo foo > foo $ quilt add foo > File foo added to patch patches/patch_with:strange[name] $ quilt files > foo $ echo bar > foo $ quilt diff -p ab -P "patch_with:strange[name]" > Index: b/foo > =================================================================== > --- a/foo > +++ b/foo > @@ -1 +1 @@ > -foo > +bar $ quilt refresh -p ab > Refreshed patch patches/patch_with:strange[name] $ quilt applied > patches/patch_with:strange[name] $ quilt pop -q > Removing patch patches/patch_with:strange[name] > No patches applied $ quilt next > patches/patch_with:strange[name] $ quilt push -q "patch_with:strange[name]" > Applying patch patches/patch_with:strange[name] > Now at patch patches/patch_with:strange[name] $ quilt top > patches/patch_with:strange[name] $ quilt rename "another:strange(name)" > Patch patches/patch_with:strange[name] renamed to patches/another:strange(name) $ quilt new "{%'}.patch" > Patch patches/{%'}.patch is now on top $ quilt add foo > File foo added to patch patches/{%'}.patch $ echo baz > foo " $ quilt previous > patches/another:strange(name) $ quilt series > patches/another:strange(name) > patches/{%'}.patch $ quilt refresh -p0 "{%'}.patch" > Refreshed patch patches/{%'}.patch $ cat "patches/{%'}.patch" > Index: foo > =================================================================== > --- foo.orig > +++ foo > @@ -1 +1 @@ > -bar > +baz $ quilt pop "another:strange(name)" > Removing patch patches/{%'}.patch > Restoring foo > > Now at patch patches/another:strange(name) $ quilt remove foo > File foo removed from patch patches/another:strange(name) quilt-0.63/test/comments.test0000644000175000017500000000227212332477113016617 0ustar mquinsonmquinsonRegresion test case: Empty lines in patch descriptions were accidentally removed. $ mkdir patches $ echo one > f $ cat > patches/test.diff < C1 < < C3 < < Index: f < =================================================================== < --- f.orig foo < +++ f bar < @@ -1 +1 @@ < -one < +two $ cat > patches/series < test.diff -p0 # What a wonderful patch $ quilt push > Applying patch %{P}test.diff >~ patching file `?f'? > > Now at patch %{P}test.diff $ quilt refresh > Refreshed patch %{P}test.diff $ cat patches/test.diff > C1 > > C3 > > Index: f > =================================================================== > --- f.orig > +++ f > @@ -1 +1 @@ > -one > +two $ quilt refresh -c > Refreshed patch %{P}test.diff $ cat patches/test.diff > C1 > > C3 > > Index: f > =================================================================== > *** f.orig > --- f > *************** > *** 1 **** > ! one > --- 1 ---- > ! two $ quilt refresh > Refreshed patch %{P}test.diff $ cat patches/test.diff > C1 > > C3 > > Index: f > =================================================================== > --- f.orig > +++ f > @@ -1 +1 @@ > -one > +two quilt-0.63/test/conflicts.test0000644000175000017500000000502612332477113016756 0ustar mquinsonmquinsonThis test case creates a patch and then applies that patch to a modified source file. The source file is modified until the patch doesn't apply anymore, then the patch is fixed. $ mkdir patches $ cat > one.txt < 1 < 2 < 3 < 4 < 5 < 6 < 7 < -- < a < b < c < d < e < f < g $ quilt new a.diff > Patch %{P}a.diff is now on top $ echo %{?} > 0 $ quilt add one.txt > File one.txt added to patch %{P}a.diff $ echo %{?} > 0 $ mv one.txt one.orig $ sed -e "s/4/4+/" -e 's/d/d+/' one.orig > one.txt $ quilt refresh > Refreshed patch %{P}a.diff $ echo %{?} > 0 $ quilt pop -q > Removing patch %{P}a.diff > No patches applied $ echo %{?} > 0 $ sed -e "s/^\\([17]\\)\$/\\1-/" one.orig > one.txt $ quilt push -q > Applying patch %{P}a.diff > Now at patch %{P}a.diff $ echo %{?} > 0 $ quilt pop -q > Removing patch %{P}a.diff > No patches applied $ echo %{?} > 0 $ sed -e "s/^\\([1267]\\)\$/\\1-/" one.orig > one.txt $ quilt push -q > Applying patch %{P}a.diff > Now at patch %{P}a.diff $ echo %{?} > 0 $ quilt pop -q > Removing patch %{P}a.diff > No patches applied $ echo %{?} > 0 $ sed -e "s/^\\([123567]\\)\$/\\1-/" one.orig > one.txt $ quilt push -q > Applying patch %{P}a.diff > 1 out of 2 hunks FAILED > Patch %{P}a.diff does not apply (enforce with -f) $ echo %{?} > 1 $ quilt push -qf > Applying patch %{P}a.diff >~ 1 out of 2 hunks FAILED -- saving rejects to (file )?`?one.txt.rej'? > Applied patch %{P}a.diff (forced; needs refresh) $ echo %{?} > 1 $ mv one.txt one.x $ sed -e "s/4/4+/" one.x > one.txt $ rm -f one.x $ quilt diff -z | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/one\.txt > =================================================================== > @@ -1,7 +1,7 @@ > 1- > 2- > 3- > -4 > +4+ > 5- > 6- > 7- $ echo %{?} > 0 $ quilt diff | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/one\.txt > =================================================================== > @@ -1,7 +1,7 @@ > 1- > 2- > 3- > -4 > +4+ > 5- > 6- > 7- > @@ -9,7 +9,7 @@ > a > b > c > -d > +d+ > e > f > g $ echo %{?} > 0 $ quilt refresh > Refreshed patch %{P}a.diff $ echo %{?} > 0 $ cat patches/a.diff | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/one\.txt > =================================================================== > @@ -1,7 +1,7 @@ > 1- > 2- > 3- > -4 > +4+ > 5- > 6- > 7- > @@ -9,7 +9,7 @@ > a > b > c > -d > +d+ > e > f > g $ quilt pop -q > Removing patch %{P}a.diff > No patches applied $ echo %{?} > 0 quilt-0.63/test/create-delete.test0000644000175000017500000000255612332477113017502 0ustar mquinsonmquinsonCheck whether quilt generates patches properly so that GNU patch recognizes file creates and deletions. $ mkdir patches $ echo delete > delete $ quilt new test.diff > Patch %{P}test.diff is now on top $ quilt add create > File create added to patch %{P}test.diff $ echo create > create $ quilt refresh > Refreshed patch %{P}test.diff $ quilt add delete > File delete added to patch %{P}test.diff $ rm -f delete $ quilt refresh > Refreshed patch %{P}test.diff $ quilt header -r < --- < create | 1 + < delete | 1 - < 2 files changed, 1 insertion(+), 1 deletion(-) < > Replaced header of patch %{P}test.diff $ quilt patches -v create > = %{P}test.diff $ quilt patches delete > %{P}test.diff $ quilt pop -q > Removing patch %{P}test.diff > No patches applied $ quilt patches create > %{P}test.diff $ quilt patches -v delete > %{P}test.diff $ quilt patches -- /dev/null dev/null null --- $ echo create > create $ rm -f delete $ patch -p1 --dry-run < patches/test.diff >~ The next patch would create the file `?create'?, > which already exists! Assume -R? [n] > Apply anyway? [n] > Skipping patch. >~ 1 out of 1 hunk ignored( -- saving rejects to( file)? create.rej)? >~ The next patch would delete the file `?delete'?, > which does not exist! Assume -R? [n] > Apply anyway? [n] > Skipping patch. > 1 out of 1 hunk ignored quilt-0.63/test/delete.test0000644000175000017500000000341412332477113016233 0ustar mquinsonmquinsonTest the delete command. $ mkdir patches $ quilt delete > No series file found $ cat > test.txt < Calling pci_match_id() would be more feasible. $ quilt new test1 > Patch %{P}test1 is now on top $ quilt add test.txt > File test.txt added to patch %{P}test1 $ cat > test.txt < Try the following patch instead. $ quilt refresh > Refreshed patch %{P}test1 $ quilt new test2 > Patch %{P}test2 is now on top $ quilt add test.txt > File test.txt added to patch %{P}test2 $ cat > test.txt < Ok, that's fine with me if you want to do that instead. $ quilt refresh > Refreshed patch %{P}test2 $ quilt delete test1 > Patch %{P}test1 is currently applied $ quilt pop > Removing patch %{P}test2 > Restoring test.txt > > Now at patch %{P}test1 $ quilt series > %{P}test1 > %{P}test2 $ quilt delete -n > Removed patch %{P}test2 $ quilt series > %{P}test1 $ quilt pop > Removing patch %{P}test1 > Restoring test.txt > > No patches applied $ quilt delete test1 > Removed patch %{P}test1 $ quilt series $ echo "test1" > %{P}series $ quilt delete -n > Removed patch %{P}test1 $ quilt series # Force the pop operaton to fail $ echo "test3" > %{P}series $ echo "test3" > .pc/applied-patches $ mkdir -p .pc/test3/dir $ touch .pc/test3/dir/file $ chmod a-rx .pc/test3/dir # Note that this will succeed (instead of the expected failure) if # running as root, but you shouldn't do that anyway. $ quilt delete "test3" > Removing patch %{P}test3 >~ .*find: [`']?\./dir'?: Permission denied $ chmod a+rx .pc/test3/dir $ find .pc/test3 > .pc/test3 > .pc/test3/dir > .pc/test3/dir/file $ quilt applied > No patches applied $ quilt series > %{P}test3 $ quilt delete > No patches applied $ quilt delete test3 > Removed patch %{P}test3 quilt-0.63/test/dir-a-b.test0000644000175000017500000000171712332477113016210 0ustar mquinsonmquinson $ mkdir patches $ echo a > test.txt $ echo d > test3.txt $ cat > patches/ab.diff < --- a/test.txt < +++ b/test.txt < @@ -1 +1 @@ < -a < +b < --- /dev/null < +++ b/test2.txt < @@ -0,0 +1 @@ < +c < --- a/test3.txt < +++ /dev/null < @@ -1 +0,0 @@ < -d $ echo "ab.diff" > patches/series $ quilt push -q > Applying patch patches/ab.diff > Now at patch patches/ab.diff $ quilt diff -p ab --no-index > --- a/test.txt > +++ b/test.txt > @@ -1 +1 @@ > -a > +b > --- /dev/null > +++ b/test2.txt > @@ -0,0 +1 @@ > +c > --- a/test3.txt > +++ /dev/null > @@ -1 +0,0 @@ > -d $ rm -f patches/ab.diff $ quilt refresh -p ab --no-index > Refreshed patch patches/ab.diff $ cat patches/ab.diff > --- a/test.txt > +++ b/test.txt > @@ -1 +1 @@ > -a > +b > --- /dev/null > +++ b/test2.txt > @@ -0,0 +1 @@ > +c > --- a/test3.txt > +++ /dev/null > @@ -1 +0,0 @@ > -d $ quilt pop -qR > Removing patch patches/ab.diff > No patches applied quilt-0.63/test/dotglob.test0000644000175000017500000000063112332477113016421 0ustar mquinsonmquinson $ mkdir patches $ quilt new dotglob.diff > Patch patches/dotglob.diff is now on top $ quilt add .foo > File .foo added to patch patches/dotglob.diff $ echo dot-foo > .foo $ quilt refresh > Refreshed patch patches/dotglob.diff $ quilt pop -q > Removing patch patches/dotglob.diff > No patches applied $ quilt push -q > Applying patch patches/dotglob.diff > Now at patch patches/dotglob.diff quilt-0.63/test/duplicate-patch-in-series.test0000644000175000017500000000133612332477113021735 0ustar mquinsonmquinson# Check that duplicate patches in generated series files won't cause havoc # See bug #20628 at https://savannah.nongnu.org/bugs/?20628 $ mkdir patches $ echo "old line" > file.txt $ cat > patches/first.patch < --- file.txt < +++ file.txt < @@ -1 +1 @@ < -old line < +new line $ cat > patches/series < first.patch -p0 < first.patch -p0 $ quilt push > Applying patch %{P}first.patch > patching file file.txt > > Now at patch %{P}first.patch $ quilt push > Patch %{P}first.patch is already applied; check your series file $ quilt pop > Removing patch %{P}first.patch > Restoring file.txt > > No patches applied $ quilt push -qa > Patch %{P}first.patch is already applied; check your series file $ quilt pop -q > No patch removed quilt-0.63/test/edit.test0000644000175000017500000000103012332477113015706 0ustar mquinsonmquinson$ mkdir patches subdir $ cat > editor < #! /bin/sh < echo Editing $1 < sed -e 's:foo:bar:' $1 > $1.new < mv $1.new $1 $ chmod +x editor $ export EDITOR=%{PWD}/editor $ quilt new patch > Patch patches/patch is now on top $ echo foobar > foobar $ quilt edit foobar > File foobar added to patch patches/patch > Editing foobar $ cd subdir $ echo foo > foo $ quilt edit foo > File subdir/foo added to patch ../patches/patch > Editing subdir/foo $ cd .. $ cat foobar > barbar $ cat subdir/foo > bar $ quilt files > foobar > subdir/foo quilt-0.63/test/empty-files.test0000644000175000017500000001006612332477113017230 0ustar mquinsonmquinson# Check that quilt properly deals with patches which delete vs. empty files # Prepare the working tree $ mkdir patches $ echo "will be deleted" > deleted1 $ echo "will be emptied" > emptied1 $ echo "will be deleted" > deleted2 $ echo "will be emptied" > emptied2 # Prepate the patches and series $ cat > patches/series < using-filenames.patch < using-timestamps.patch $ cat > patches/using-filenames.patch < diff -ruN a/deleted1 b/deleted1 < --- a/deleted1 < +++ /dev/null < @@ -1 +0,0 @@ < -will be deleted < diff -ruN a/emptied1 b/emptied1 < --- a/emptied1 < +++ b/emptied1 < @@ -1 +0,0 @@ < -will be emptied $ cat > patches/using-timestamps.patch < diff -ruN a/deleted2 b/deleted2 < --- a/deleted2 2014-01-15 11:19:43.000000000 +0100 < +++ b/deleted2 1970-01-01 01:00:00.000000000 +0100 < @@ -1 +0,0 @@ < -will be deleted < diff -ruN a/emptied2 b/emptied2 < --- a/emptied2 2014-01-15 11:19:59.000000000 +0100 < +++ b/emptied2 2014-01-15 11:20:11.000000000 +0100 < @@ -1 +0,0 @@ < -will be emptied # Test quilt push $ quilt push > Applying patch patches/using-filenames.patch > patching file deleted1 > patching file emptied1 > > Now at patch patches/using-filenames.patch $ [ ! -e deleted1 ] && echo "File deleted1 does not exist" > File deleted1 does not exist $ [ -e deleted1 -a ! -s deleted1 ] && echo "File deleted1 is empty" $ [ ! -e emptied1 ] && echo "File emptied1 does not exist" $ [ -e emptied1 -a ! -s emptied1 ] && echo "File emptied1 is empty" > File emptied1 is empty $ quilt push > Applying patch patches/using-timestamps.patch > patching file deleted2 > patching file emptied2 > > Now at patch patches/using-timestamps.patch $ [ ! -e deleted2 ] && echo "File deleted2 does not exist" > File deleted2 does not exist $ [ -e deleted2 -a ! -s deleted2 ] && echo "File deleted2 is empty" $ [ ! -e emptied2 ] && echo "File emptied2 does not exist" $ [ -e emptied2 -a ! -s emptied2 ] && echo "File emptied2 is empty" > File emptied2 is empty # Test quilt fold $ quilt pop -aq > Removing patch patches/using-timestamps.patch > Removing patch patches/using-filenames.patch > No patches applied $ quilt new fold.patch > Patch patches/fold.patch is now on top $ quilt fold < patches/using-filenames.patch > patching file deleted1 > patching file emptied1 $ [ ! -e deleted1 ] && echo "File deleted1 does not exist" > File deleted1 does not exist $ [ -e deleted1 -a ! -s deleted1 ] && echo "File deleted1 is empty" $ [ ! -e emptied1 ] && echo "File emptied1 does not exist" $ [ -e emptied1 -a ! -s emptied1 ] && echo "File emptied1 is empty" > File emptied1 is empty $ quilt fold < patches/using-timestamps.patch > patching file deleted2 > patching file emptied2 $ [ ! -e deleted2 ] && echo "File deleted2 does not exist" > File deleted2 does not exist $ [ -e deleted2 -a ! -s deleted2 ] && echo "File deleted2 is empty" $ [ ! -e emptied2 ] && echo "File emptied2 does not exist" $ [ -e emptied2 -a ! -s emptied2 ] && echo "File emptied2 is empty" > File emptied2 is empty # Test quilt refresh $ quilt delete > Removing patch patches/fold.patch > No patches applied > Removed patch patches/fold.patch $ quilt push -q > Applying patch patches/using-filenames.patch > Now at patch patches/using-filenames.patch $ quilt refresh -pab --sort --no-index > Refreshed patch patches/using-filenames.patch $ quilt pop -q > Removing patch patches/using-filenames.patch > No patches applied $ quilt push > Applying patch patches/using-filenames.patch > patching file deleted1 > patching file emptied1 > > Now at patch patches/using-filenames.patch $ [ ! -e deleted1 ] && echo "File deleted1 does not exist" > File deleted1 does not exist $ [ -e deleted1 -a ! -s deleted1 ] && echo "File deleted1 is empty" $ [ ! -e emptied1 ] && echo "File emptied1 does not exist" $ [ -e emptied1 -a ! -s emptied1 ] && echo "File emptied1 is empty" > File emptied1 is empty $ cat patches/using-filenames.patch > --- a/deleted1 > +++ /dev/null > @@ -1 +0,0 @@ > -will be deleted > --- a/emptied1 > +++ b/emptied1 > @@ -1 +0,0 @@ > -will be emptied quilt-0.63/test/empty.test0000644000175000017500000000162512332477113016131 0ustar mquinsonmquinson $ mkdir patches $ cat > patches/series < empty1.diff < empty2.diff $ touch patches/empty1.diff patches/empty2.diff $ quilt push -qa > Applying patch %{P}empty1.diff > Patch %{P}empty1.diff appears to be empty; applied > Applying patch %{P}empty2.diff > Patch %{P}empty2.diff appears to be empty; applied > Now at patch %{P}empty2.diff $ quilt rename empty3.diff > Patch %{P}empty2.diff renamed to %{P}empty3.diff $ quilt pop -qa > Patch %{P}empty3.diff appears to be empty, removing > Patch %{P}empty1.diff appears to be empty, removing > No patches applied $ quilt new empty_new.diff > Patch %{P}empty_new.diff is now on top $ quilt pop -q > Patch %{P}empty_new.diff appears to be empty, removing > No patches applied $ quilt delete empty_new.diff > Removed patch %{P}empty_new.diff $ quilt rename -P empty3.diff empty_new.diff > Patch %{P}empty3.diff renamed to %{P}empty_new.diff quilt-0.63/test/example1.test0000644000175000017500000001055112332477113016505 0ustar mquinsonmquinsonThe text used here was taken from: http://the-tech.mit.edu/Shakespeare/midsummer/full.html $ mkdir patches $ cat > Oberon.txt < Yet mark'd I where the bolt of Cupid fell: < It fell upon a little western flower, < Before milk-white, now purple with love's wound, < And girls call it love-in-idleness. $ quilt new flower.diff > Patch %{P}flower.diff is now on top $ quilt files $ quilt add Oberon.txt > File Oberon.txt added to patch %{P}flower.diff $ cat >> Oberon.txt < The juice of it on sleeping eye-lids laid < Will make a man or woman madly dote < Upon the next live creature that it sees. Or ``quilt edit Oberon.txt'' $ quilt refresh -p ab > Refreshed patch %{P}flower.diff $ cat patches/flower.diff > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,3 +2,6 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And girls call it love-in-idleness. > +The juice of it on sleeping eye-lids laid > +Will make a man or woman madly dote > +Upon the next live creature that it sees. $ sed -ne '1,4p' Oberon.txt > Oberon.new $ echo "Fetch me that flower; the herb I shew'd thee once:" >> Oberon.new $ sed -e '1,4d' Oberon.txt >> Oberon.new $ mv Oberon.new Oberon.txt $ quilt diff -z -p ab > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,6 +2,7 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And girls call it love-in-idleness. > +Fetch me that flower; the herb I shew'd thee once: > The juice of it on sleeping eye-lids laid > Will make a man or woman madly dote > Upon the next live creature that it sees. $ quilt diff -p ab > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,3 +2,7 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And girls call it love-in-idleness. > +Fetch me that flower; the herb I shew'd thee once: > +The juice of it on sleeping eye-lids laid > +Will make a man or woman madly dote > +Upon the next live creature that it sees. $ quilt refresh > Refreshed patch %{P}flower.diff $ quilt top > %{P}flower.diff $ quilt files > Oberon.txt $ quilt patches Oberon.txt > patches/flower.diff $ quilt pop -f > Removing patch %{P}flower.diff > Restoring Oberon.txt > > No patches applied $ sed -e "s/girls/maidens/" Oberon.txt > Oberon.new $ mv Oberon.new Oberon.txt $ quilt push > Applying patch %{P}flower.diff >~ patching file `?Oberon.txt'? > Hunk #1 FAILED at 2. >~ 1 out of 1 hunk FAILED -- rejects in file `?Oberon.txt'? > Patch %{P}flower.diff does not apply (enforce with -f) $ quilt push -f > Applying patch %{P}flower.diff >~ patching file `?Oberon.txt'? > Hunk #1 FAILED at 2. >~ 1 out of 1 hunk FAILED -- saving rejects to (file )?`?Oberon.txt.rej'? > Applied patch %{P}flower.diff (forced; needs refresh) $ cat >> Oberon.txt < Fetch me that flower; the herb I shew'd thee once: < The juice of it on sleeping eye-lids laid < Will make a man or woman madly dote < Upon the next live creature that it sees. $ quilt refresh -p ab > Refreshed patch %{P}flower.diff $ rm -f Oberon.txt.rej $ cat Oberon.txt > Yet mark'd I where the bolt of Cupid fell: > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And maidens call it love-in-idleness. > Fetch me that flower; the herb I shew'd thee once: > The juice of it on sleeping eye-lids laid > Will make a man or woman madly dote > Upon the next live creature that it sees. $ cat patches/flower.diff > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,3 +2,7 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And maidens call it love-in-idleness. > +Fetch me that flower; the herb I shew'd thee once: > +The juice of it on sleeping eye-lids laid > +Will make a man or woman madly dote > +Upon the next live creature that it sees. $ quilt grep love > Oberon.txt:Before milk-white, now purple with love's wound, > Oberon.txt:And maidens call it love-in-idleness. quilt-0.63/test/faildiff.test0000644000175000017500000000140712332477113016535 0ustar mquinsonmquinson $ mkdir patches $ quilt new test.diff > Patch %{P}test.diff is now on top $ cat > test.txt < This is test.txt. $ quilt add test.txt > File test.txt added to patch %{P}test.diff What happens when diff fails because of a permission error? $ chmod -r test.txt $ quilt refresh > diff: test.txt: Permission denied > Diff failed on file 'test.txt', aborting $ echo %{?} > 1 $ chmod +r test.txt What happens on binary files? $ printf "\\002\\000\\001" > test.bin $ quilt add test.bin > File test.bin added to patch %{P}test.diff $ printf "\\003\\000\\001" > test.bin $ quilt diff -pab --no-index >~ (Files|Binary files) a/test\.bin and b/test\.bin differ $ echo %{?} > 1 $ quilt refresh > Diff failed on file 'test.bin', aborting $ echo %{?} > 1 quilt-0.63/test/failpop.test0000644000175000017500000000102612332477113016420 0ustar mquinsonmquinson $ mkdir patches $ cat > test.txt < This is test.txt. $ quilt new test.diff > Patch %{P}test.diff is now on top $ echo %{?} > 0 $ quilt add test.txt > File test.txt added to patch %{P}test.diff $ echo %{?} > 0 $ cat >> test.txt < Line two. $ quilt refresh > Refreshed patch %{P}test.diff $ echo %{?} > 0 $ sed -e "s/ /_/g" patches/test.diff > patches/test.new $ mv patches/test.new patches/test.diff $ quilt pop > Patch %{P}test.diff does not remove cleanly (refresh it or enforce with -f) $ echo %{?} > 1 quilt-0.63/test/fold.test0000644000175000017500000000270612332477113015720 0ustar mquinsonmquinson $ mkdir patches $ cat > patches/series < patch1.diff $ cat > patches/patch1.diff < --- q.orig/file1.txt < +++ q/file1.txt < @@ -0,0 +1 @@ < +This is file1.txt. < --- q.orig/file2.txt < +++ q/file2.txt < @@ -0,0 +1 @@ < +This is file2.txt. $ quilt push -q > Applying patch %{P}patch1.diff > Now at patch %{P}patch1.diff $ quilt files > file1.txt > file2.txt $ quilt fold -q < --- q.orig/file2.txt < +++ q/file2.txt < @@ -1 +0,0 @@ < -This is file2.txt. < --- q.orig/dir/file3.txt < +++ q/dir/file3.txt < @@ -0,0 +1 @@ < +This is file3.txt. $ quilt diff -p ab > Index: b/file1.txt > =================================================================== > --- /dev/null > +++ b/file1.txt > @@ -0,0 +1 @@ > +This is file1.txt. > Index: b/dir/file3.txt > =================================================================== > --- /dev/null > +++ b/dir/file3.txt > @@ -0,0 +1 @@ > +This is file3.txt. $ cd dir $ quilt fold -q < --- dir.orig/file3.txt < +++ dir/file3.txt < @@ -1 +1 @@ < -This is file3.txt. < +This is file3.txt, now modified. $ cd .. $ quilt diff -p ab > Index: b/file1.txt > =================================================================== > --- /dev/null > +++ b/file1.txt > @@ -0,0 +1 @@ > +This is file1.txt. > Index: b/dir/file3.txt > =================================================================== > --- /dev/null > +++ b/dir/file3.txt > @@ -0,0 +1 @@ > +This is file3.txt, now modified. quilt-0.63/test/formats.test0000644000175000017500000000347212332477113016450 0ustar mquinsonmquinson # We create our own working directory to be able to verify # all patch formats, including the ones which mention the # base directory. $ mkdir -p d/patches $ cd d $ cat > test.txt < 1 < 2 < old < 4 < 5 $ quilt new test > Patch %{P}test is now on top $ quilt add test.txt > File test.txt added to patch %{P}test $ cat > test.txt < 1 < 2 < new < 4 < 5 $ quilt diff > Index: d/test.txt > =================================================================== > --- d.orig/test.txt > +++ d/test.txt > @@ -1,5 +1,5 @@ > 1 > 2 > -old > +new > 4 > 5 $ quilt diff --no-index > --- d.orig/test.txt > +++ d/test.txt > @@ -1,5 +1,5 @@ > 1 > 2 > -old > +new > 4 > 5 $ quilt diff -R > Index: d/test.txt > =================================================================== > --- d.orig/test.txt > +++ d/test.txt > @@ -1,5 +1,5 @@ > 1 > 2 > -new > +old > 4 > 5 $ quilt diff -U1 > Index: d/test.txt > =================================================================== > --- d.orig/test.txt > +++ d/test.txt > @@ -2,3 +2,3 @@ > 2 > -old > +new > 4 $ quilt diff -c > Index: d/test.txt > =================================================================== > *** d.orig/test.txt > --- d/test.txt > *************** > *** 1,5 **** > 1 > 2 > ! old > 4 > 5 > --- 1,5 ---- > 1 > 2 > ! new > 4 > 5 $ quilt diff -C1 > Index: d/test.txt > =================================================================== > *** d.orig/test.txt > --- d/test.txt > *************** > *** 2,4 **** > 2 > ! old > 4 > --- 2,4 ---- > 2 > ! new > 4 $ quilt diff -p ab > Index: b/test.txt > =================================================================== > --- a/test.txt > +++ b/test.txt > @@ -1,5 +1,5 @@ > 1 > 2 > -old > +new > 4 > 5 quilt-0.63/test/half-applies.test0000644000175000017500000000216012332477113017333 0ustar mquinsonmquinson$ mkdir patches $ echo foo > foo.orig $ echo foo2 > foo $ echo bar > bar.orig $ echo bar2 > bar $ diff -u foo.orig foo >> patches/foorab.diff $ diff -u bar bar.orig >> patches/foorab.diff $ mv foo.orig foo $ mv bar.orig bar $ echo foorab.diff -p0 > patches/series $ quilt push > Applying patch patches/foorab.diff >~ patching file `?foo'? >~ patching file `?bar'? > Hunk #1 FAILED at 1. >~ 1 out of 1 hunk FAILED -- rejects in file `?bar'? > Patch patches/foorab.diff does not apply (enforce with -f) $ echo %{?} > 1 $ quilt push > Applying patch patches/foorab.diff >~ patching file `?foo'? >~ patching file `?bar'? > Hunk #1 FAILED at 1. >~ 1 out of 1 hunk FAILED -- rejects in file `?bar'? > Patch patches/foorab.diff does not apply (enforce with -f) $ echo %{?} > 1 $ quilt push -qf > Applying patch patches/foorab.diff >~ 1 out of 1 hunk FAILED( -- saving rejects to( file)? bar.rej)? > Applied patch patches/foorab.diff (forced; needs refresh) $ echo %{?} > 1 $ quilt diff > Index: foo > =================================================================== > --- foo.orig > +++ foo > @@ -1 +1 @@ > -foo > +foo2 $ echo %{?} > 0 quilt-0.63/test/header.test0000644000175000017500000000140212332477113016214 0ustar mquinsonmquinson $ mkdir patches $ echo foo > foo $ quilt new patch > Patch patches/patch is now on top $ quilt add foo > File foo added to patch patches/patch $ echo bar > foo $ quilt refresh -p ab > Refreshed patch patches/patch $ mv patches/patch patches/patch~ $ echo Header > patches/patch $ cat patches/patch~ >> patches/patch $ quilt header > Header $ quilt header -r < Header2 > Replaced header of patch patches/patch $ quilt header > Header2 $ quilt header -a < Appended > Appended text to header of patch patches/patch $ quilt header > Header2 > Appended $ cat patches/patch > Header2 > Appended > Index: b/foo > =================================================================== > --- a/foo > +++ b/foo > @@ -1 +1 @@ > -foo > +bar quilt-0.63/test/import2.test0000644000175000017500000000604412332477113016367 0ustar mquinsonmquinson# same as import.test, but with compressed patches $ mkdir patches $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ quilt add f > File f added to patch %{P}patch1.diff $ echo f > f $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt pop > Removing patch %{P}patch1.diff > Removing f > > No patches applied $ mkdir t $ gzip < patches/patch1.diff > t/patch1.diff.gz $ rm -f patches/patch1.diff # test importing into an empty series $ rm -rf patches/ .pc/ $ mkdir patches $ quilt import t/patch1.diff.gz > Importing patch t/patch1.diff.gz (stored as %{P}patch1.diff.gz) $ quilt push > Applying patch %{P}patch1.diff.gz >~ patching file `?f'? > > Now at patch %{P}patch1.diff.gz $ quilt new patch2.diff.gz > Patch %{P}patch2.diff.gz is now on top $ quilt add g > File g added to patch %{P}patch2.diff.gz $ echo g > g $ quilt refresh > Refreshed patch %{P}patch2.diff.gz $ quilt pop > Removing patch %{P}patch2.diff.gz > Removing g > > Now at patch %{P}patch1.diff.gz $ quilt header -a < original description > Appended text to header of patch %{P}patch1.diff.gz $ quilt pop > Removing patch %{P}patch1.diff.gz > Removing f > > No patches applied $ quilt delete patch1 > Removed patch %{P}patch1.diff.gz $ cat %{P}series > patch2.diff.gz # test a few error cases $ quilt import missing.diff.gz > Patch missing.diff.gz does not exist $ quilt import patches/patch1.diff.gz > Importing patch %{P}patch1.diff.gz $ quilt import patches/patch2.diff.gz > Patch %{P}patch2.diff.gz already exists in series. # a simple use of import $ quilt import t/patch1.diff.gz > Patch %{P}patch1.diff.gz exists. Replace with -f. $ quilt import -f t/patch1.diff.gz > Replacing patch %{P}patch1.diff.gz with new version # an import requiring a description merge $ zcat patches/patch1.diff.gz | sed -e 's/original/new/' | gzip > t/patch1.diff.gz $ quilt import t/patch1.diff.gz > Patch %{P}patch1.diff.gz exists. Replace with -f. $ quilt import -f t/patch1.diff.gz > Patch headers differ: > @@ -1 +1 @@ > -original description > +new description > Please use -d {o|a|n} to specify which patch header(s) to keep. $ quilt import -d a -f t/patch1.diff.gz > Replacing patch %{P}patch1.diff.gz with new version # quilt header does not work in this case because it stops at '---' $ zcat patches/patch1.diff.gz | head -n 3 > original description > --- > new description $ quilt import -d n -f t/patch1.diff.gz > Replacing patch %{P}patch1.diff.gz with new version $ quilt header patch1 > new description $ quilt delete patch1 > Removed patch %{P}patch1.diff.gz # make sure it accepts non-conflicting names # a small presentation problem here $ cp patches/patch1.diff.gz t/patch1.patch.gz $ quilt import t/patch1.patch.gz > Importing patch t/patch1.patch.gz (stored as %{P}patch1.patch.gz) $ ls patches/ > patch1.diff.gz > patch1.patch.gz > patch2.diff.gz > series $ cat %{P}series > patch1.patch.gz > patch2.diff.gz $ quilt delete patch1.diff.gz > Patch patch1.diff.gz is not in series quilt-0.63/test/import.test0000644000175000017500000001316312332477113016305 0ustar mquinsonmquinson $ mkdir patches $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ quilt add f > File f added to patch %{P}patch1.diff $ echo f > f $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt new patchR.diff > Patch %{P}patchR.diff is now on top $ quilt add f > File f added to patch %{P}patchR.diff $ rm -f f $ quilt refresh > Refreshed patch %{P}patchR.diff $ quilt fork patchRp0.diff > Fork of patch %{P}patchR.diff created as %{P}patchRp0.diff $ quilt refresh -p0 > Refreshed patch %{P}patchRp0.diff $ quilt pop -a > Removing patch patches/patchRp0.diff > Restoring f > > Removing patch patches/patch1.diff > Removing f > > No patches applied $ mkdir t $ mv patches/patch1.diff t/patch1.diff $ mv patches/patchR.diff t/patchR.diff $ mv patches/patchRp0.diff t/patchRp0.diff # test importing into an empty series $ rm -rf patches/ .pc/ $ mkdir patches $ quilt import t/patch1.diff > Importing patch t/patch1.diff (stored as patches/patch1.diff) $ quilt push > Applying patch patches/patch1.diff >~ patching file `?f'? > > Now at patch patches/patch1.diff $ quilt new patch2.diff > Patch %{P}patch2.diff is now on top $ quilt add g > File g added to patch %{P}patch2.diff $ echo g > g $ quilt refresh > Refreshed patch %{P}patch2.diff $ quilt pop > Removing patch patches/patch2.diff > Removing g > > Now at patch patches/patch1.diff $ quilt header -a < original description > Appended text to header of patch patches/patch1.diff $ quilt pop > Removing patch patches/patch1.diff > Removing f > > No patches applied $ quilt delete patch1 > Removed patch patches/patch1.diff $ cat %{P}series > patch2.diff # test a few error cases $ quilt import missing.diff > Patch missing.diff does not exist $ quilt import patches/patch1.diff > Importing patch patches/patch1.diff $ quilt import patches/patch2.diff > Patch patches/patch2.diff already exists in series. # a simple use of import $ quilt import t/patch1.diff > Patch patches/patch1.diff exists. Replace with -f. $ quilt import -f t/patch1.diff > Replacing patch patches/patch1.diff with new version # an import requiring a description merge $ sed -e 's/original/new/' patches/patch1.diff > t/patch1.diff $ quilt import t/patch1.diff > Patch patches/patch1.diff exists. Replace with -f. $ quilt import -f t/patch1.diff > Patch headers differ: > @@ -1 +1 @@ > -original description > +new description > Please use -d {o|a|n} to specify which patch header(s) to keep. $ quilt import -d a -f t/patch1.diff > Replacing patch patches/patch1.diff with new version # quilt header does not work in this case because it stops at '---' $ head -n 3 patches/patch1.diff > original description > --- > new description $ quilt import -d n -f t/patch1.diff > Replacing patch patches/patch1.diff with new version $ quilt header patch1 > new description $ quilt delete patch1 > Removed patch patches/patch1.diff # make sure it accepts non-conflicting names # a small presentation problem here $ cp patches/patch1.diff t/patch1.patch $ quilt import t/patch1.patch > Importing patch t/patch1.patch (stored as patches/patch1.patch) $ ls patches/ > patch1.diff > patch1.patch > patch2.diff > series $ cat %{P}series > patch1.patch > patch2.diff $ quilt delete patch1.diff > Patch patch1.diff is not in series # test importing a reverse patch $ rm -rf patches/ .pc/ $ mkdir patches $ quilt import -R t/patchR.diff > Importing patch t/patchR.diff (stored as patches/patchR.diff) $ quilt push > Applying patch patches/patchR.diff >~ patching file `?f'? > > Now at patch patches/patchR.diff $ cat f > f $ cat patches/series > patchR.diff -R # test that comments are preserved $ echo "# Test of -R import" > patches/series $ echo "patchR.diff -R # This patch was originally -R -p1" >> patches/series # refreshing a reverse patch un-reverses it $ quilt refresh > Refreshed patch %{P}patchR.diff $ cat patches/series > # Test of -R import > patchR.diff # This patch was originally -R -p1 $ touch f $ quilt pop > Removing patch patches/patchR.diff > Removing f > > No patches applied # test importing a reverse patch with strip level $ rm -rf patches/ .pc/ $ mkdir patches $ quilt import -R -p0 t/patchRp0.diff > Importing patch t/patchRp0.diff (stored as patches/patchRp0.diff) $ quilt push > Applying patch patches/patchRp0.diff >~ patching file `?f'? > > Now at patch patches/patchRp0.diff $ cat f > f $ cat patches/series > patchRp0.diff -p0 -R # refreshing a reverse patch un-reverses it $ quilt refresh > Refreshed patch %{P}patchRp0.diff $ cat patches/series > patchRp0.diff -p0 $ touch f $ quilt pop > Removing patch patches/patchRp0.diff > Removing f > > No patches applied # Test importing multiple patches at once $ rm -rf patches/ .pc/ $ mkdir patches $ quilt import t/patch1.diff t/patchR.diff > Importing patch t/patch1.diff (stored as patches/patch1.diff) > Importing patch t/patchR.diff (stored as patches/patchR.diff) $ cat patches/series > patch1.diff > patchR.diff $ rm -rf patches/ .pc/ $ mkdir patches $ quilt import t/patchR.diff > Importing patch t/patchR.diff (stored as patches/patchR.diff) $ quilt import t/patch1.diff > Importing patch t/patch1.diff (stored as patches/patch1.diff) $ cat patches/series > patch1.diff > patchR.diff # Also test importing when in a subdirectory $ touch empty.patch $ cd t $ touch empty2.patch $ quilt import ../empty.patch > Importing patch ../empty.patch (stored as ../patches/empty.patch) $ quilt import %{PWD}/empty2.patch > Importing patch %{PWD}/empty2.patch (stored as ../patches/empty2.patch) quilt-0.63/test/mail.test0000644000175000017500000000613712332477113015720 0ustar mquinsonmquinson $ mkdir patches $ cat > no-subject < Here goes a longer description of the patch, which is < totally useless except as a test case for the quilt mail < command. This paragraph is longer than 150 characters so < that it won't be taken for a subject header itself. < < Index: anything $ cat no-subject > patches/1.diff $ ls patches/ > series $ quilt mail --mbox mbox --prefix "test" --subject "This is a test" -m "Message" > Unable to extract a subject header from patches/1.diff $ cat - no-subject > patches/1.diff < Subject: Subject of 1.diff < < Acked-by: Dummy < $ quilt mail --mbox mbox --prefix "test" -m "Message" > Introduction has no subject header $ cat - no-subject > patches/2.diff < DESC < Subject of 2.diff < is: split < into multiple < lines < EDESC < < Signed-off-by: Dummy < $ cat - no-subject > patches/3.diff < Subject of 3.diff < < To: John X. Doe < $ cat - no-subject > patches/4.diff < First paragraph used as < subject of 4.diff. < < Signed-off-by: Joe R. Hacker < Cc: "John X. Doe" < Cc: Ü is an umlaut < $ cat - no-subject > patches/5.diff < Subject of 1.diff < $ cat - no-subject > patches/6.diff < Subject of 1.diff < # Test 3 duplicate headers $ ls patches/ > series $ quilt mail --mbox mbox --prefix "test" --subject "This is a test" -m "Message" > Patches patches/1.diff, patches/5.diff, patches/6.diff have duplicate subject headers. # Test 2 duplicate headers $ rm patches/6.diff $ ls patches/ > series $ quilt mail --mbox mbox --prefix "test" --subject "This is a test" -m "Message" > Patches patches/1.diff, patches/5.diff have duplicate subject headers. $ cat - no-subject > patches/5.diff < Aw: [patch] Fwd: Re: [patch 5/7] Fw: Subject of 5.diff < $ cat - no-subject > patches/6.diff < Subject: Must not expand * ? [abc] < $ cat - no-subject > patches/7.diff < Subject of 7.diff < < Signed-off-by: someone@without.name < $ ls patches/ > series $ quilt mail --mbox mbox --prefix "test" --subject "This is a test" -m "Message" $ sed -nre "s/^(From [^ ]*).*/\\1/p" -e "/^Subject:/p" -e "/^To:/p" -e "/^Cc:/p" -e "/^ /p" -e "/^Replace-.*:/p" -e "/^Recipient-.*:/p" mbox > From a@b.c > Subject: [test 0/7] This is a test > From a@b.c > Cc: Dummy > Subject: [test 1/7] Subject of 1.diff > From a@b.c > Cc: Dummy > Subject: [test 2/7] Subject of 2.diff is: split into multiple lines > From a@b.c > To: "John X. Doe" > Subject: [test 3/7] Subject of 3.diff > To: John X. Doe > From a@b.c > Cc: "Joe R. Hacker" , > "John X. Doe" , > =?UTF-8?q?=C3=9C=20is=20an=20umlaut?= > Subject: [test 4/7] First paragraph used as subject of 4.diff. > Cc: "John X. Doe" > Cc: Ü is an umlaut > From a@b.c > Subject: [test 5/7] Subject of 5.diff > From a@b.c > Subject: [test 6/7] Must not expand * ? [abc] > From a@b.c > Cc: someone@without.name > Subject: [test 7/7] Subject of 7.diff quilt-0.63/test/merge.test0000644000175000017500000000302712332477113016070 0ustar mquinsonmquinsonTest the patch merging functionality of `quilt diff'. $ mkdir patches $ cat > abc.txt < a < b < c $ cat > patches/series < a.diff < b.diff < c.diff $ cat > patches/a.diff < --- merge.orig/abc.txt < +++ merge/abc.txt < @@ -1 +1 @@ < -a < +a+ $ cat > patches/b.diff < --- merge.orig/abc.txt < +++ merge/abc.txt < @@ -2 +2 @@ < -b < +b+ $ cat > patches/c.diff < --- merge.orig/abc.txt < +++ merge/abc.txt < @@ -3 +3 @@ < -c < +c+ $ quilt push -qa > Applying patch %{P}a.diff > Applying patch %{P}b.diff > Applying patch %{P}c.diff > Now at patch %{P}c.diff $ quilt diff -P b.diff | grep -v "^\\(---\\|+++\\)" > Warning: more recent patches modify files in patch %{P}b.diff >~ Index: [^/]+/abc\.txt > =================================================================== > @@ -1,3 +1,3 @@ > a+ > -b > +b+ > c $ quilt diff --combine a.diff -P b.diff | grep -v "^\\(---\\|+++\\)" > Warning: more recent patches modify files in patch %{P}b.diff >~ Index: [^/]+/abc\.txt > =================================================================== > @@ -1,3 +1,3 @@ > -a > -b > +a+ > +b+ > c $ quilt diff --combine b.diff | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/abc\.txt > =================================================================== > @@ -1,3 +1,3 @@ > a+ > -b > -c > +b+ > +c+ $ quilt diff --combine - | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/abc\.txt > =================================================================== > @@ -1,3 +1,3 @@ > -a > -b > -c > +a+ > +b+ > +c+ quilt-0.63/test/missing.test0000644000175000017500000000112012332477113016432 0ustar mquinsonmquinson $ mkdir patches $ cat > patches/series < missing1.diff < missing2.diff $ quilt push -qa > Applying patch patches/missing1.diff > Patch patches/missing1.diff does not exist; applied empty patch > Applying patch patches/missing2.diff > Patch patches/missing2.diff does not exist; applied empty patch > Now at patch patches/missing2.diff $ quilt rename missing3.diff > Patch %{P}missing2.diff renamed to %{P}missing3.diff $ quilt pop -qa > Patch %{P}missing3.diff appears to be empty, removing > Patch patches/missing1.diff appears to be empty, removing > No patches applied quilt-0.63/test/new-nosubdir.test0000644000175000017500000000014612332477113017404 0ustar mquinsonmquinson $ mkdir patches $ mkdir sub $ cd sub $ quilt new here.diff > Patch %{_P}here.diff is now on top quilt-0.63/test/new.test0000644000175000017500000000201512332477113015556 0ustar mquinsonmquinson $ mkdir patches $ echo reject > f $ echo p.diff > patches/series $ cat > patches/p.diff < --- d.orig/f < +++ d/f < @@ -1 +1 @@ < -old < +new < --- d.orig/g < +++ d/g < @@ -0,0 +1 @@ < +added $ quilt push > Applying patch %{P}p.diff >~ patching file `?f'? > Hunk #1 FAILED at 1. >~ 1 out of 1 hunk FAILED -- rejects in file `?f'? >~ patching file `?g'? > Patch %{P}p.diff does not apply (enforce with -f) $ quilt push -f > Applying patch %{P}p.diff >~ patching file `?f'? > Hunk #1 FAILED at 1. >~ 1 out of 1 hunk FAILED -- saving rejects to (file )?`?f.rej'? >~ patching file `?g'? > Applied patch %{P}p.diff (forced; needs refresh) $ echo new > f $ quilt refresh -p ab > Refreshed patch %{P}p.diff $ cat patches/p.diff > Index: b/f > =================================================================== > --- a/f > +++ b/f > @@ -1 +1 @@ > -reject > +new > Index: b/g > =================================================================== > --- /dev/null > +++ b/g > @@ -0,0 +1 @@ > +added quilt-0.63/test/no-file-to-patch.test0000644000175000017500000000117412332477113020040 0ustar mquinsonmquinson# Test case for patches which attempt to modify a file which doesn't exist. # As no part of the patch applies, this triggers a corner case in # backup-files (restore called but no file to restore.) $ mkdir patches $ cat > patches/series < one.patch $ cat > patches/one.patch < --- a/foo < +++ b/foo < @@ -1 +1 @@ < -foo < +bar $ quilt push -q > Applying patch patches/one.patch > The text leading up to this was: > -------------------------- > |--- a/foo > |+++ b/foo > -------------------------- > No file to patch. Skipping patch. > 1 out of 1 hunk ignored > Patch patches/one.patch does not apply (enforce with -f) $ echo %{?} > 1 quilt-0.63/test/nolink.test0000644000175000017500000000273112332477113016264 0ustar mquinsonmquinson $ mkdir patches # quilt should preserve hard links and not create new ones $ echo foo > foo $ ln foo foo2 $ ls -l foo | awk '{ print $2 }' > 2 $ quilt new test.diff > Patch patches/test.diff is now on top $ quilt add foo > File foo added to patch patches/test.diff $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l .pc/test.diff/foo | awk '{ print $2 }' > 2 $ echo "foo changed" > foo $ quilt refresh > Refreshed patch patches/test.diff $ quilt new test2.diff > Patch patches/test2.diff is now on top $ quilt add foo > File foo added to patch patches/test2.diff $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l .pc/test2.diff/foo | awk '{ print $2 }' > 1 $ echo "foo changed again" > foo $ quilt refresh > Refreshed patch patches/test2.diff $ quilt pop -q > Removing patch patches/test2.diff > Now at patch patches/test.diff $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l .pc/test.diff/foo | awk '{ print $2 }' > 2 $ quilt pop -q > Removing patch patches/test.diff > No patches applied $ ls -l foo | awk '{ print $2 }' > 2 # quilt revert should not create hard links $ echo bar > bar $ quilt push -q > Applying patch patches/test.diff > Now at patch patches/test.diff $ quilt add bar > File bar added to patch patches/test.diff $ echo "bar changed" > bar $ quilt revert bar > Changes to bar in patch patches/test.diff reverted $ ls -l bar | awk '{ print $2 }' > 1 $ quilt pop -q > Removing patch patches/test.diff > No patches applied quilt-0.63/test/null-bug.test0000644000175000017500000000131412332477113016513 0ustar mquinsonmquinson $ mkdir patches $ echo file > file $ quilt new remove.diff > Patch patches/remove.diff is now on top $ quilt add file > File file added to patch patches/remove.diff In this case, the original file in the --- line must not have .orig appended or else patch won't know the real original filename anymore. $ rm -f file $ quilt diff -p0 > Index: file > =================================================================== > --- file > +++ /dev/null > @@ -1 +0,0 @@ > -file $ quilt refresh -p0 > Refreshed patch patches/remove.diff $ quilt pop -q > Removing patch patches/remove.diff > No patches applied $ quilt push -q > Applying patch patches/remove.diff > Now at patch patches/remove.diff quilt-0.63/test/one.test0000644000175000017500000000724312332477113015556 0ustar mquinsonmquinsonThis is a minimal test script that runs a few quilt commands and verifies their output. Much needs to be done; particularly it sould be possible to run the tests using the built instead of the installed quilt with `make check'. $ mkdir patches $ mkdir dir $ echo "This is file one." > dir/file1 $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ quilt add dir/file1 > File dir/file1 added to patch %{P}patch1.diff $ quilt add file2 > File file2 added to patch %{P}patch1.diff $ quilt diff $ quilt diff -z $ quilt refresh > Nothing in patch %{P}patch1.diff $ echo "This is file two." > file2 $ quilt diff -p ab > Index: b/file2 > =================================================================== > --- /dev/null > +++ b/file2 > @@ -0,0 +1 @@ > +This is file two. $ quilt diff -z -p ab > Index: b/file2 > =================================================================== > --- /dev/null > +++ b/file2 > @@ -0,0 +1 @@ > +This is file two. $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt diff -z $ echo "Another line has been added." >> dir/file1 $ quilt diff -z -p ab > Index: b/dir/file1 > =================================================================== > --- a/dir/file1 > +++ b/dir/file1 > @@ -1 +1,2 @@ > This is file one. > +Another line has been added. $ quilt diff -z -p ab dir/file1 > Index: b/dir/file1 > =================================================================== > --- a/dir/file1 > +++ b/dir/file1 > @@ -1 +1,2 @@ > This is file one. > +Another line has been added. $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt new patch2.diff > Patch %{P}patch2.diff is now on top $ quilt add dir/file3 > File dir/file3 added to patch %{P}patch2.diff $ echo "This is file three." > dir/file3 $ quilt refresh > Refreshed patch %{P}patch2.diff $ quilt add -P patch1 dir/file3 > File dir/file3 modified by patch %{P}patch2.diff $ quilt pop -R > Removing patch %{P}patch2.diff > Removing dir/file3 > > Now at patch %{P}patch1.diff $ quilt add file4 > File file4 added to patch %{P}patch1.diff $ echo "This is file 4." > file4 $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt push > Applying patch %{P}patch2.diff >~ patching file `?dir/file3'? > > Now at patch %{P}patch2.diff $ quilt new subdir/patch3.diff > Patch %{P}subdir/patch3.diff is now on top $ quilt add file4 > File file4 added to patch %{P}subdir/patch3.diff $ rm -f file4 $ quilt diff -p ab > Index: b/file4 > =================================================================== > --- a/file4 > +++ /dev/null > @@ -1 +0,0 @@ > -This is file 4. $ quilt add -P patch2 file4 > File file4 modified by patch %{P}subdir/patch3.diff $ quilt refresh > Refreshed patch %{P}subdir/patch3.diff $ echo "Another line here, too." >> dir/file3 $ quilt refresh patch2 > Refreshed patch %{P}patch2.diff $ echo "Another line added." >> file2 $ quilt diff -z -P patch1 -p ab > Index: b/file2 > =================================================================== > --- a/file2 > +++ b/file2 > @@ -1 +1,2 @@ > This is file two. > +Another line added. > Warning: more recent patches modify files in patch %{P}patch1.diff $ quilt refresh patch1 > More recent patches modify files in patch %{P}patch1.diff. Enforce refresh with -f. $ quilt refresh -f patch1 > Refreshed patch %{P}patch1.diff $ echo "Another line here, too." >> dir/file3 $ quilt pop -R > Removing patch %{P}subdir/patch3.diff > Restoring file4 > > Now at patch %{P}patch2.diff $ quilt refresh patch2 > Refreshed patch %{P}patch2.diff $ quilt pop -qaR > Removing patch %{P}patch2.diff > Removing patch %{P}patch1.diff > No patches applied quilt-0.63/test/patch-wrapper.test0000644000175000017500000000340412332477113017545 0ustar mquinsonmquinson$ mkdir somewhere $ cat > foo.orig < 1 < < 3 < < 5 $ sed -e 's/3/3a/' foo.orig > foo $ diff -u foo.orig foo > foo.diff $ mv foo.orig foo $ mkdir ${QUILT_PATCHES:-patches} $ patch-wrapper -s -p0 < foo.diff $ quilt pop -q > Removing patch patches/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-.pc} $ mkdir ${QUILT_PATCHES:-patches} $ patch-wrapper --backup -B xxx/ -s -p0 < foo.diff $ find xxx -type f > xxx/foo $ quilt pop -q > Removing patch patches/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-.pc} $ mkdir ${QUILT_PATCHES:-patches} $ patch-wrapper -s -p0 -i foo.diff $ quilt pop -q > Removing patch patches/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-.pc} $ mkdir ${QUILT_PATCHES:-patches} $ patch-wrapper -p0 < foo.diff > patching file foo $ quilt pop -q > Removing patch patches/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-.pc} $ mv foo.diff somewhere/ $ mkdir ${QUILT_PATCHES:-patches} $ patch-wrapper -p0 < somewhere/foo.diff > patching file foo $ quilt pop -q > Removing patch patches/somewhere/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-.pc} $ mkdir ${QUILT_PATCHES:-patches} $ patch-wrapper -p0 -i somewhere/foo.diff > patching file foo $ quilt pop -q > Removing patch patches/somewhere/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-.pc} $ sed -e 's/5/5b/' foo > foo.new $ mv foo.new foo $ mkdir ${QUILT_PATCHES:-patches} $ patch-wrapper -p0 < somewhere/foo.diff > patching file foo > Hunk #1 succeeded at 1 with fuzz 1. $ cat foo.orig > 1 > > 3 > > 5b $ quilt pop -q > Removing patch patches/somewhere/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-.pc} quilt-0.63/test/perms.test0000644000175000017500000000233212332477113016115 0ustar mquinsonmquinson $ umask 022 $ mkdir patches $ echo foo > foo $ chmod 704 foo $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx---r-- foo $ quilt new test.diff > Patch %{P}test.diff is now on top $ quilt add foo > File foo added to patch %{P}test.diff $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx---r-- foo $ echo foobar > foo $ quilt refresh > Refreshed patch %{P}test.diff $ quilt new test2.diff > Patch %{P}test2.diff is now on top $ quilt add foo > File foo added to patch %{P}test2.diff $ chmod 702 foo $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx----w- foo $ echo foobaz > foo $ quilt refresh > Refreshed patch %{P}test2.diff The permissions of foo as they were in patch2 are lost here (there is no way to preserve them in the patch). Quilt will restore the permissions of the backup file. $ quilt pop -q > Removing patch %{P}test2.diff > Now at patch %{P}test.diff $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx---r-- foo $ quilt push -q > Applying patch %{P}test2.diff > Now at patch %{P}test2.diff $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx---r-- foo $ quilt pop -q > Removing patch %{P}test2.diff > Now at patch %{P}test.diff quilt-0.63/test/refresh_patch_order.test0000644000175000017500000000250512332477113021001 0ustar mquinsonmquinson`quilt refresh` must respect the specified file order within patch: All files that were already in the patch must be first in the file (in the current order), and any new file must be in alphabetic order, after the last file that were already in the file. $ mkdir patches $ echo foo >foo $ echo fnord >fnord $ echo zulu >zulu $ quilt new bar > Patch %{P}bar is now on top Adding two files: they are in alphabetic order $ quilt add fnord zulu > File fnord added to patch %{P}bar > File zulu added to patch %{P}bar $ echo x >>fnord $ echo x >>zulu $ quilt refresh --no-timestamps -p ab > Refreshed patch %{P}bar $ grep '^--- ' patches/bar > --- a/fnord > --- a/zulu Add a new file: must be placed after the last one $ quilt add foo > File foo added to patch %{P}bar $ echo x >>foo $ quilt refresh --no-timestamps -p ab > Refreshed patch %{P}bar $ grep '^--- ' patches/bar > --- a/fnord > --- a/zulu > --- a/foo Remove the first file: should not change the relative order of others $ echo fnord >fnord $ quilt refresh --no-timestamps -p ab > Refreshed patch %{P}bar $ grep '^--- ' patches/bar > --- a/zulu > --- a/foo Readd the file: must now be last $ echo x >>fnord $ quilt refresh --no-timestamps -p ab > Refreshed patch %{P}bar $ grep '^--- ' patches/bar > --- a/zulu > --- a/foo > --- a/fnord quilt-0.63/test/refresh.test0000644000175000017500000000060412332477113016425 0ustar mquinsonmquinson $ mkdir patches $ echo a > a $ echo b > b $ diff -u a b > patches/patch $ echo patch -p0 > patches/series $ rm -f b $ quilt push -q > Applying patch patches/patch > Now at patch patches/patch $ echo a > a $ quilt refresh > Nothing in patch patches/patch $ quilt pop > Removing patch patches/patch > Restoring a > > No patches applied $ cat a > a $ cat patches/patch quilt-0.63/test/refresh-z.test0000644000175000017500000000100612332477113016671 0ustar mquinsonmquinson $ mkdir patches $ quilt new test.diff > Patch patches/test.diff is now on top $ quilt add foo > File foo added to patch patches/test.diff $ echo foo > foo $ quilt refresh > Refreshed patch patches/test.diff $ echo bar >> foo $ quilt refresh -z > Fork of patch patches/test.diff created as patches/test-2.diff $ echo baz >> foo $ quilt refresh -zbaz.diff > Fork of patch patches/test-2.diff created as patches/baz.diff $ quilt series > patches/test.diff > patches/test-2.diff > patches/baz.diff quilt-0.63/test/remember-locations.test0000644000175000017500000000123712332477113020561 0ustar mquinsonmquinson $ mkdir -p my/changes $ export QUILT_PATCHES=my/changes $ export QUILT_SERIES=patchlist $ quilt new mychange1 > Patch my/changes/mychange1 is now on top $ unset QUILT_PATCHES $ unset QUILT_SERIES $ cat .pc/.quilt_patches > my/changes $ cat .pc/.quilt_series > patchlist $ cat my/changes/patchlist > mychange1 # Verify that the custom location is still used even # if QUILT_PATCHES is not set $ quilt new mychange2 > Patch my/changes/mychange2 is now on top # Verify that the root directory can be identified even # without QUILT_PATCHES with the .pc directory $ cd my $ quilt applied > ../my/changes/mychange1 > ../my/changes/mychange2 $ cd .. quilt-0.63/test/remove-trailing-ws.test0000644000175000017500000000671612332477113020534 0ustar mquinsonmquinson# Unit test for the remove-trailing-ws script. # Prepare the working directory $ mkdir files.orig files $ cat > files.orig/add < Line 1 < Line 2 < Line 3 < < Line 5 < Line 6 $ cat > files.orig/change < change < from < this $ cat > files.orig/complex < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 < < Line 7 < Line 8 < < Line 9 < Line 10 $ cat > files.orig/delete < delete < an old < file $ cat > files.orig/remove < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 $ cat > files.orig/remove-at-end < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 < < Line 7 < Line 8 < < Line 9 < Line 10 $ cat > files/add < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 $ cat > files/change < change < to < that $ cat > files/complex < Line 1 < Line 2 < Line 3 < Line 4 < < Line 5 < Line 6 < < Line 7 < Line 8 < < Line 9 < Line A < < Line B < Line C < < Line D < Line E < Line F < Line 10 $ cat > files/create < create < a new < file $ cat > files/remove < Line 1 < Line 2 < Line 3 < < Line 5 < Line 6 $ cat > files/remove-at-end < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 $ cp -r files files.backup # Generate the two patches $ diff -ruN files.orig files > unified.diff # For the context diff we need the files listed in a certain order to # cover some corner cases $ diff -c files.orig/add files/add > context.diff $ diff -C 10 files.orig/remove-at-end files/remove-at-end >> context.diff $ diff -cN files.orig/create files/create | sed -e '/^diff /d' >> context.diff $ diff -cN files.orig/delete files/delete >> context.diff $ diff -c files.orig/remove files/remove | sed -e '/^diff /d' >> context.diff $ diff -c files.orig/change files/change | sed -e '/^diff /d' >> context.diff $ diff -c files.orig/complex files/complex >> context.diff $ %{QUILT_DIR}/scripts/remove-trailing-ws < unified.diff > unified-wsok.diff > Removing trailing whitespace from line 5 of files/add > Removing trailing whitespace from lines 2,3 of files/change > Removing trailing whitespace from lines 12,16 of files/complex > Removing trailing whitespace from lines 1,2,3 of files/create $ wc -l files/add >~ (\s+)?8 files/add $ wc -l files/change >~ (\s+)?3 files/change $ wc -l files/complex >~ (\s+)?21 files/complex $ wc -l files/create >~ (\s+)?3 files/create $ wc -l files/remove >~ (\s+)?6 files/remove $ wc -l files/remove-at-end >~ (\s+)?8 files/remove-at-end $ wc -l unified.diff >~ (\s+)?85 unified.diff $ wc -l unified-wsok.diff >~ (\s+)?85 unified-wsok.diff $ diff -u unified.diff unified-wsok.diff | grep '^++[^+]' > ++Line 4 > ++to > ++that > ++Line 9 > ++Line C > ++create > ++a new > ++file $ rm -rf files $ mv files.backup files $ %{QUILT_DIR}/scripts/remove-trailing-ws < context.diff > context-wsok.diff > Removing trailing whitespace from line 5 of files/add > Removing trailing whitespace from lines 2,3 of files/change > Removing trailing whitespace from lines 12,16 of files/complex > Removing trailing whitespace from lines 1,2,3 of files/create $ wc -l files/add >~ (\s+)?8 files/add $ wc -l files/change >~ (\s+)?3 files/change $ wc -l files/complex >~ (\s+)?21 files/complex $ wc -l files/create >~ (\s+)?3 files/create $ wc -l files/remove >~ (\s+)?6 files/remove $ wc -l files/remove-at-end >~ (\s+)?8 files/remove-at-end $ wc -l context.diff >~ (\s+)?104 context.diff $ wc -l context-wsok.diff >~ (\s+)?104 context-wsok.diff $ diff -u context.diff context-wsok.diff | grep '^+[+!] ' > ++ Line 4 > ++ create > ++ a new > ++ file > +! to > +! that > +! Line 9 > +! Line C quilt-0.63/test/rename.test0000644000175000017500000000254512332477113016244 0ustar mquinsonmquinson $ mkdir patches $ cat > announce.txt < A short summary of the fixes are below. $ quilt new original-name.diff > Patch %{P}original-name.diff is now on top $ quilt add announce.txt > File announce.txt added to patch %{P}original-name.diff $ cat > announce.txt < The diffstat and short summary of the fixes are below. $ quilt refresh > Refreshed patch %{P}original-name.diff $ quilt series -v > = %{P}original-name.diff $ quilt rename _tmp_name.diff > Patch %{P}original-name.diff renamed to %{P}_tmp_name.diff $ quilt series -v > = %{P}_tmp_name.diff $ quilt pop > Removing patch %{P}_tmp_name.diff > Restoring announce.txt > > No patches applied $ quilt series -v > %{P}_tmp_name.diff $ quilt rename -P random_name.diff final.name.diff > Patch random_name.diff is not in series $ quilt rename final.name.diff > No patches applied $ quilt rename -P _tmp_name.diff _tmp_name.diff > Patch %{P}_tmp_name.diff exists already, please choose a different name $ quilt rename -P _tmp_name.diff newsubdir/final.name.diff > Patch %{P}_tmp_name.diff renamed to %{P}newsubdir/final.name.diff $ quilt series -v > %{P}newsubdir/final.name.diff $ quilt push -q > Applying patch %{P}newsubdir/final.name.diff > Now at patch %{P}newsubdir/final.name.diff $ quilt pop -q > Removing patch %{P}newsubdir/final.name.diff > No patches applied quilt-0.63/test/revert2.test0000644000175000017500000000114512332477113016361 0ustar mquinsonmquinson $ mkdir patches $ quilt new revert.patch > Patch patches/revert.patch is now on top $ quilt add foo bar baz > File foo added to patch patches/revert.patch > File bar added to patch patches/revert.patch > File baz added to patch patches/revert.patch $ echo foo > foo $ echo bar > bar $ echo baz > baz $ quilt revert baz > Changes to baz in patch patches/revert.patch reverted $ quilt refresh > Refreshed patch patches/revert.patch $ echo will-revert > bar $ quilt revert bar > Changes to bar in patch patches/revert.patch reverted $ quilt refresh > Patch patches/revert.patch is unchanged quilt-0.63/test/revert.test0000644000175000017500000000201512332477113016274 0ustar mquinsonmquinson $ mkdir patches $ mkdir sub $ echo f1 > sub/f $ echo g1 > sub/g $ quilt new p.diff > Patch patches/p.diff is now on top $ quilt add sub/f sub/g sub/h > File sub/f added to patch patches/p.diff > File sub/g added to patch patches/p.diff > File sub/h added to patch patches/p.diff $ rm -f sub/g $ echo h1 > sub/h $ quilt refresh > Refreshed patch patches/p.diff $ cd sub $ echo f2 > f $ quilt revert f > Changes to sub/f in patch ../patches/p.diff reverted $ quilt diff -z $ quilt pop -qf > Removing patch ../patches/p.diff > No patches applied $ quilt push -q > Applying patch ../patches/p.diff > Now at patch ../patches/p.diff $ echo g2 > g $ quilt revert g > Changes to sub/g in patch ../patches/p.diff reverted $ quilt diff -z $ quilt pop -qf > Removing patch ../patches/p.diff > No patches applied $ quilt push -q > Applying patch ../patches/p.diff > Now at patch ../patches/p.diff $ echo h2 > h $ quilt revert h > Changes to sub/h in patch ../patches/p.diff reverted $ quilt diff -z quilt-0.63/test/setup.test0000644000175000017500000000616012332477113016132 0ustar mquinsonmquinson$ mkdir dir $ echo 1 > dir/foo.orig $ echo 2 > dir/foo $ diff -u dir/foo.orig dir/foo > foo.diff $ diff -u dir/foo.orig dir/foo > revert.diff $ diff -u dir/foo.orig dir/foo > again.diff $ mv dir/foo.orig dir/foo $ tar cf - dir | gzip > dir.tar.gz $ mkdir dir/patches $ echo crap > dir/patches/foo.diff $ tar cf - dir | gzip > dir_with_patches.tar.gz $ rm -rf dir $ cat > series < # Source: dir.tar.gz < # Patchdir: dir < # < foo.diff -p1 < revert.diff -p1 -R < again.diff $ quilt setup series > Unpacking archive dir.tar.gz $ cd dir $ ls -l patches series | sed -e 's:.* -> ::' > .. > ../series $ quilt push -qa > Applying patch patches/foo.diff > Applying patch patches/revert.diff > Applying patch patches/again.diff > Now at patch patches/again.diff $ cd .. $ rm -rf dir $ quilt setup -d other series > Unpacking archive dir.tar.gz $ cd other/dir $ ls -l patches series | sed -e 's:.* -> ::' > ../.. > ../../series $ quilt push -qa > Applying patch patches/foo.diff > Applying patch patches/revert.diff > Applying patch patches/again.diff > Now at patch patches/again.diff $ cd ../.. $ rm -rf other $ mkdir dir1 $ mv series dir1 $ cd dir1 $ quilt setup -d ../other series > File dir.tar.gz not found $ quilt setup --sourcedir .. -d ../other series > Unpacking archive ../dir.tar.gz $ cd ../other/dir $ ls -l patches series | sed -e 's:.* -> ::' > ../.. > ../../dir1/series $ quilt push -qa > Applying patch patches/foo.diff > Applying patch patches/revert.diff > Applying patch patches/again.diff > Now at patch patches/again.diff $ cd ../.. $ rm -rf "dir" # Now test the cases where the directory already exists, or the tarball # contains a patches directory $ cat > series_with_patches < # Source: dir_with_patches.tar.gz < # Patchdir: dir < # < foo.diff $ mkdir dir $ quilt setup series_with_patches > Directory dir exists $ rmdir dir $ quilt setup series_with_patches > Unpacking archive dir_with_patches.tar.gz > Directory dir/patches exists > Trying alternative patches and series names... $ cd dir $ ls -l quilt_patches quilt_series | sed -e 's:.* -> ::' > .. > ../series_with_patches $ quilt push -qa > Applying patch quilt_patches/foo.diff > Now at patch quilt_patches/foo.diff $ cd .. $ rm -rf "dir" # Now a basic test with space in dir name $ mkdir "space [dir]" $ echo 1 > "space [dir]/foo.orig" $ echo 2 > "space [dir]/foo" # Recent versions of GNU diff will quote such file names, but old versions # of GNU patch do not support that, so strip the quotes $ diff -u "space [dir]/foo.orig" "space [dir]/foo" | sed -e 's:"::g' > foo.diff $ cp foo.diff revert.diff $ cp foo.diff again.diff $ mv "space [dir]/foo.orig" "space [dir]/foo" $ tar cf - "space [dir]" | gzip > "space [dir].tar.gz" $ rm -rf "space [dir]" $ cat > series < # Source: space [dir].tar.gz < # Patchdir: space [dir] < # < foo.diff -p1 < revert.diff -p1 -R < again.diff $ quilt setup series > Unpacking archive space [dir].tar.gz $ cd space\ [dir] $ ls -l patches series | sed -e 's:.* -> ::' > .. > ../series $ quilt push -qa > Applying patch patches/foo.diff > Applying patch patches/revert.diff > Applying patch patches/again.diff > Now at patch patches/again.diff $ cd .. $ rm -rf "space [dir]" quilt-0.63/test/snapshot2.test0000644000175000017500000000201712332477113016710 0ustar mquinsonmquinson $ mkdir patches d $ quilt new snapshot > Patch %{P}snapshot is now on top $ cd d $ quilt add f.txt > File d/f.txt added to patch %{_P}snapshot $ cat > f.txt < f.txt $ quilt add g.txt > File d/g.txt added to patch %{_P}snapshot $ cat > g.txt < g.txt $ quilt refresh > Refreshed patch %{_P}snapshot $ quilt snapshot $ quilt fork > Fork of patch %{_P}snapshot created as %{_P}snapshot-2 $ rm g.txt $ quilt add h.txt > File d/h.txt added to patch %{_P}snapshot-2 $ cat > h.txt < h.txt $ cat >> f.txt < more changes $ quilt refresh > Refreshed patch %{_P}snapshot-2 $ quilt diff --snapshot | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/d/f\.txt > =================================================================== > @@ -1 +1,2 @@ > f.txt > +more changes >~ Index: [^/]+/d/g\.txt > =================================================================== > @@ -1 +0,0 @@ > -g.txt >~ Index: [^/]+/d/h\.txt > =================================================================== > @@ -0,0 +1 @@ > +h.txt quilt-0.63/test/snapshot.test0000644000175000017500000000176212332477113016634 0ustar mquinsonmquinson $ mkdir patches $ quilt new snapshot > Patch %{P}snapshot is now on top $ quilt add f.txt > File f.txt added to patch %{P}snapshot $ cat > f.txt < f.txt $ quilt add g.txt > File g.txt added to patch %{P}snapshot $ cat > g.txt < g.txt $ quilt refresh > Refreshed patch %{P}snapshot $ quilt snapshot $ quilt fork > Fork of patch %{P}snapshot created as %{P}snapshot-2 $ rm g.txt $ quilt add h.txt > File h.txt added to patch %{P}snapshot-2 $ cat > h.txt < h.txt $ cat >> f.txt < more changes $ quilt refresh > Refreshed patch %{P}snapshot-2 $ quilt diff --snapshot | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/f\.txt > =================================================================== > @@ -1 +1,2 @@ > f.txt > +more changes >~ Index: [^/]+/g\.txt > =================================================================== > @@ -1 +0,0 @@ > -g.txt >~ Index: [^/]+/h\.txt > =================================================================== > @@ -0,0 +1 @@ > +h.txt quilt-0.63/test/sort.test0000644000175000017500000000316012332477113015756 0ustar mquinsonmquinson $ mkdir patches $ quilt new sort.diff > Patch patches/sort.diff is now on top $ quilt add b f > File b added to patch patches/sort.diff > File f added to patch patches/sort.diff $ echo b > b $ echo f > f $ quilt refresh > Refreshed patch patches/sort.diff $ quilt add c > File c added to patch patches/sort.diff $ echo c > c $ quilt refresh > Refreshed patch patches/sort.diff $ quilt files > b > c > f $ quilt diff | grep '^Index' >~ Index: [^/]+/b >~ Index: [^/]+/f >~ Index: [^/]+/c $ quilt add z x > File z added to patch patches/sort.diff > File x added to patch patches/sort.diff $ echo z > z $ echo x > x $ quilt files > b > c > f > x > z $ quilt diff | grep '^Index' >~ Index: [^/]+/b >~ Index: [^/]+/f >~ Index: [^/]+/c >~ Index: [^/]+/x >~ Index: [^/]+/z $ quilt add a > File a added to patch patches/sort.diff $ echo a > a $ quilt files > a > b > c > f > x > z $ quilt diff | grep '^Index' >~ Index: [^/]+/b >~ Index: [^/]+/f >~ Index: [^/]+/c >~ Index: [^/]+/a >~ Index: [^/]+/x >~ Index: [^/]+/z $ quilt refresh > Refreshed patch patches/sort.diff $ grep '^Index' patches/sort.diff >~ Index: [^/]+/b >~ Index: [^/]+/f >~ Index: [^/]+/c >~ Index: [^/]+/a >~ Index: [^/]+/x >~ Index: [^/]+/z $ quilt diff --sort | grep '^Index' >~ Index: [^/]+/a >~ Index: [^/]+/b >~ Index: [^/]+/c >~ Index: [^/]+/f >~ Index: [^/]+/x >~ Index: [^/]+/z $ quilt refresh --sort > Refreshed patch patches/sort.diff $ grep '^Index' patches/sort.diff >~ Index: [^/]+/a >~ Index: [^/]+/b >~ Index: [^/]+/c >~ Index: [^/]+/f >~ Index: [^/]+/x >~ Index: [^/]+/z quilt-0.63/test/space-in-filenames.test0000644000175000017500000000415212332477113020431 0ustar mquinsonmquinson$ mkdir patches $ quilt new test.diff > Patch patches/test.diff is now on top $ echo foo > foo $ quilt add foo > File foo added to patch patches/test.diff $ quilt files > foo $ quilt patches foo > patches/test.diff $ quilt patches "foo bar" $ echo foo > "foo bar" $ quilt add "foo bar" > File foo bar added to patch patches/test.diff $ quilt files > foo > foo bar $ quilt patches "foo bar" > patches/test.diff $ quilt patches bar $ quilt patches "foo bar baz" $ quilt add "a: b [c]" > File a: b [c] added to patch patches/test.diff $ quilt files > a: b [c] > foo > foo bar $ quilt patches 'a: b [c]' > patches/test.diff $ quilt patches a $ quilt patches b $ quilt patches 'a: b c' $ echo bar > "foo bar" $ echo "new line" > "a: b [c]" $ quilt diff -p ab > Index: b/a: b [c] > =================================================================== > --- /dev/null > +++ b/a: b [c] > @@ -0,0 +1 @@ > +new line > Index: b/foo bar > =================================================================== > --- a/foo bar > +++ b/foo bar > @@ -1 +1 @@ > -foo > +bar $ quilt refresh -p ab > Refreshed patch patches/test.diff $ cat patches/test.diff > Index: b/a: b [c] > =================================================================== > --- /dev/null > +++ b/a: b [c] > @@ -0,0 +1 @@ > +new line > Index: b/foo bar > =================================================================== > --- a/foo bar > +++ b/foo bar > @@ -1 +1 @@ > -foo > +bar $ quilt refresh -p ab --sort > Patch patches/test.diff is unchanged $ cat patches/test.diff > Index: b/a: b [c] > =================================================================== > --- /dev/null > +++ b/a: b [c] > @@ -0,0 +1 @@ > +new line > Index: b/foo bar > =================================================================== > --- a/foo bar > +++ b/foo bar > @@ -1 +1 @@ > -foo > +bar $ quilt grep bar > foo bar:bar $ quilt grep new > a: b [c]:new line $ quilt grep " " > a: b [c]:new line $ quilt remove "a: b [c]" > File a: b [c] removed from patch patches/test.diff $ quilt files > foo > foo bar $ quilt remove "foo bar" > File foo bar removed from patch patches/test.diff $ quilt files > foo quilt-0.63/test/subdir.test0000644000175000017500000000325312332477113016262 0ustar mquinsonmquinson $ mkdir patches $ mkdir subdir $ cat > subdir/file < old file $ quilt new test.patch > Patch %{P}test.patch is now on top $ quilt add subdir/file > File subdir/file added to patch %{P}test.patch $ cat > subdir/file < new contents This creates the patches/ directory: $ quilt refresh > Refreshed patch %{P}test.patch $ cd subdir $ quilt add file2 > File subdir/file2 added to patch %{_P}test.patch $ cat > file2 < another file $ cat > file3 < yet another file $ quilt add file3 > File subdir/file3 added to patch %{_P}test.patch $ rm -f file3 $ quilt files -v > subdir/file > + subdir/file2 > - subdir/file3 $ quilt diff -p ab > Index: b/subdir/file > =================================================================== > --- a/subdir/file > +++ b/subdir/file > @@ -1 +1 @@ > -old file > +new contents > Index: b/subdir/file2 > =================================================================== > --- /dev/null > +++ b/subdir/file2 > @@ -0,0 +1 @@ > +another file > Index: b/subdir/file3 > =================================================================== > --- a/subdir/file3 > +++ /dev/null > @@ -1 +0,0 @@ > -yet another file # Test diff called with multiple file names, from a subdirectory $ quilt diff --no-index -p ab file file2 no > --- a/subdir/file > +++ b/subdir/file > @@ -1 +1 @@ > -old file > +new contents > --- /dev/null > +++ b/subdir/file2 > @@ -0,0 +1 @@ > +another file # Test diff called with "./" file name prefix, from a subdirectory $ quilt diff --no-index -p ab ./file3 ./no > --- a/subdir/file3 > +++ /dev/null > @@ -1 +0,0 @@ > -yet another file $ quilt refresh > Refreshed patch %{_P}test.patch quilt-0.63/test/tester.test0000644000175000017500000000073112332477113016276 0ustar mquinsonmquinson# Test the testing code itself # Exported variables should be available immediately after being set $ echo %{VAR} > $ export VAR=foo $ echo %{VAR} > foo $ export VAR=bar $ echo %{VAR} > bar # Exported variables should survive accross commands and comments $ true $ echo %{VAR} > bar # Test multiple use cases $ echo "A %{VAR}%{VAR}ian walks into a %{VAR}" > A barbarian walks into a bar # Test combined use and set $ export PLACE=%{VAR}racks $ echo %{PLACE} > barracks quilt-0.63/test/three.test0000644000175000017500000000661612332477113016107 0ustar mquinsonmquinson $ mkdir patches $ touch e $ quilt annotate e > No series file found $ quilt top > No series file found $ quilt next > No series file found $ quilt previous > No series file found $ quilt unapplied > No series file found $ quilt applied > No series file found $ quilt next patch1 > No series file found $ quilt push patch1 > No series file found $ quilt push > No series file found $ quilt pop > No patch removed $ echo %{?} > 2 $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ quilt top > patches/patch1.diff $ quilt add f > File f added to patch %{P}patch1.diff $ echo f > f $ ls %{P} > series $ quilt new patch2.diff > Patch %{P}patch2.diff is now on top $ quilt previous > patches/patch1.diff $ quilt add g > File g added to patch %{P}patch2.diff $ echo g > g $ quilt refresh > Refreshed patch %{P}patch2.diff # Test diff called with multiple file names $ quilt diff -p0 f g > Index: g > =================================================================== > --- /dev/null > +++ g > @@ -0,0 +1 @@ > +g # Test that diff strips the "./" prefix $ quilt diff -p0 ./f ./g > Index: g > =================================================================== > --- /dev/null > +++ g > @@ -0,0 +1 @@ > +g $ quilt pop > Removing patch patches/patch2.diff > Removing g > > Now at patch patches/patch1.diff $ ls %{P} > patch2.diff > series $ quilt next > patches/patch2.diff $ quilt previous $ quilt previous patch2 > patches/patch1.diff $ quilt pop > Patch %{P}patch1.diff does not remove cleanly (refresh it or enforce with -f) $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt refresh patch2 > Patch patches/patch2.diff is not applied $ quilt pop > Removing patch patches/patch1.diff > Removing f > > No patches applied $ quilt top > No patches applied $ quilt pop > No patch removed $ echo %{?} > 2 $ quilt applied > No patches applied $ quilt unapplied > patches/patch1.diff > patches/patch2.diff $ quilt previous > No patches applied $ quilt next > patches/patch1.diff $ quilt applied patch1 > Patch patches/patch1.diff is not applied $ quilt unapplied patch2 $ quilt unapplied patch1 > patches/patch2.diff $ quilt revert f > No patches applied $ quilt delete patch3.diff > Patch patch3.diff is not in series $ quilt push -qa > Applying patch patches/patch1.diff > Applying patch patches/patch2.diff > Now at patch patches/patch2.diff $ quilt push patch2 > Patch patches/patch2.diff is currently applied $ quilt push > File series fully applied, ends at patch patches/patch2.diff $ echo %{?} > 2 $ quilt diff --combine patch1 -P patch2 -p ab > Index: b/f > =================================================================== > --- /dev/null > +++ b/f > @@ -0,0 +1 @@ > +f > Index: b/g > =================================================================== > --- /dev/null > +++ b/g > @@ -0,0 +1 @@ > +g $ quilt diff -P patch1 --combine patch2 > Patch patches/patch2.diff not applied before patch patches/patch1.diff $ echo patch3.diff >> %{P}series $ quilt diff -P patch1 --combine patch3 > Patch patches/patch3.diff is not applied $ quilt pop -qaR > Removing patch %{P}patch2.diff > Removing patch %{P}patch1.diff > No patches applied $ quilt annotate f > No patches applied $ quilt pop patch4.diff > Patch patch4.diff is not in series $ quilt grep "not there" quilt-0.63/test/timestamps.test0000644000175000017500000000224112332477113017154 0ustar mquinsonmquinson# Test how quilt behaves when patches include timestamps $ mkdir patches $ cat > patches/series < unified-create.patch < unified-update.patch < unified-delete.patch $ cat > patches/unified-create.patch < diff -ruN a/file b/file < --- a/file 1970-01-01 01:00:00.000000000 +0100 < +++ b/file 2014-01-15 11:19:43.000000000 +0100 < @@ -0,0 +1 @@ < +new line $ cat > patches/unified-update.patch < diff -ruN a/file b/file < --- a/file 2014-01-15 11:19:43.000000000 +0100 < +++ b/file 2014-01-15 11:20:17.000000000 +0100 < @@ -1 +1 @@ < -new line < +updated line $ cat > patches/unified-delete.patch < diff -ruN a/file b/file < --- a/file 2014-01-15 11:20:17.000000000 +0100 < +++ b/file 1970-01-01 01:00:00.000000000 +0100 < @@ -1 +0,0 @@ < -updated line $ quilt patches file > patches/unified-create.patch > patches/unified-update.patch > patches/unified-delete.patch $ quilt push -qa > Applying patch patches/unified-create.patch > Applying patch patches/unified-update.patch > Applying patch patches/unified-delete.patch > Now at patch patches/unified-delete.patch $ quilt patches file > patches/unified-create.patch > patches/unified-update.patch > patches/unified-delete.patch quilt-0.63/test/trailing-ws.test0000644000175000017500000000260612332477113017233 0ustar mquinsonmquinson $ mkdir patches $ cat > a < a < b < c $ quilt new test.diff > Patch patches/test.diff is now on top $ quilt add a > File a added to patch patches/test.diff $ cat > a < a < b < c $ quilt refresh > Warning: trailing whitespace in lines 1,3 of a > Refreshed patch patches/test.diff $ grep '[ \t]$' patches/test.diff > +a > +c $ quilt refresh -U0 > Warning: trailing whitespace in lines 1,3 of a > Refreshed patch patches/test.diff $ quilt refresh --strip-trailing-whitespace > Removing trailing whitespace from lines 1,3 of a > Refreshed patch patches/test.diff $ grep '[ \t]$' patches/test.diff $ quilt pop -q > Removing patch patches/test.diff > No patches applied $ cat > a < a < b < c $ quilt new test2.diff > Patch patches/test2.diff is now on top $ quilt add a > File a added to patch patches/test2.diff $ cat > a < a < b < c $ quilt refresh -c > Warning: trailing whitespace in lines 1,3 of a > Refreshed patch patches/test2.diff $ grep '[ \t]$' patches/test2.diff > ! a > ! c $ quilt refresh -C0 > Warning: trailing whitespace in lines 1,3 of a > Refreshed patch patches/test2.diff $ quilt refresh -c --strip-trailing-whitespace > Removing trailing whitespace from lines 1,3 of a > Refreshed patch patches/test2.diff $ grep '[ \t]$' patches/test2.diff $ quilt pop -q > Removing patch patches/test2.diff > No patches applied quilt-0.63/test/two.test0000644000175000017500000001021012332477113015572 0ustar mquinsonmquinson $ mkdir patches d $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ cd d $ mkdir dir $ echo "This is file one." > dir/file1 $ quilt add dir/file1 > File d/dir/file1 added to patch %{_P}patch1.diff $ quilt add file2 > File d/file2 added to patch %{_P}patch1.diff $ quilt diff $ quilt diff -z $ quilt refresh > Nothing in patch %{_P}patch1.diff $ echo "This is file two." > file2 $ quilt diff -p ab > Index: b/d/file2 > =================================================================== > --- /dev/null > +++ b/d/file2 > @@ -0,0 +1 @@ > +This is file two. $ quilt diff -z -p ab > Index: b/d/file2 > =================================================================== > --- /dev/null > +++ b/d/file2 > @@ -0,0 +1 @@ > +This is file two. $ quilt refresh > Refreshed patch %{_P}patch1.diff $ quilt diff -z $ echo "Another line has been added." >> dir/file1 $ quilt diff -z -p ab > Index: b/d/dir/file1 > =================================================================== > --- a/d/dir/file1 > +++ b/d/dir/file1 > @@ -1 +1,2 @@ > This is file one. > +Another line has been added. $ cd dir $ quilt diff -z file1 -p ab > Index: b/d/dir/file1 > =================================================================== > --- a/d/dir/file1 > +++ b/d/dir/file1 > @@ -1 +1,2 @@ > This is file one. > +Another line has been added. $ cd .. $ quilt refresh > Refreshed patch %{_P}patch1.diff $ cd .. $ quilt new patch2.diff > Patch %{P}patch2.diff is now on top $ cd d $ quilt add dir/file3 > File d/dir/file3 added to patch %{_P}patch2.diff $ echo "This is file three." > dir/file3 $ quilt refresh > Refreshed patch %{_P}patch2.diff $ quilt add -P patch1 dir/file3 > File d/dir/file3 modified by patch %{_P}patch2.diff $ quilt pop -R > Removing patch %{_P}patch2.diff > Removing d/dir/file3 > > Now at patch %{_P}patch1.diff $ quilt add file4 > File d/file4 added to patch %{_P}patch1.diff $ echo "This is file 4." > file4 $ quilt refresh > Refreshed patch %{_P}patch1.diff $ quilt push > Applying patch %{_P}patch2.diff >~ patching file `?d/dir/file3'? > > Now at patch %{_P}patch2.diff $ cd .. $ quilt new subdir/patch3.diff > Patch %{P}subdir/patch3.diff is now on top $ cd d $ quilt add file4 > File d/file4 added to patch %{_P}subdir/patch3.diff $ rm -f file4 $ quilt diff -p ab > Index: b/d/file4 > =================================================================== > --- a/d/file4 > +++ /dev/null > @@ -1 +0,0 @@ > -This is file 4. $ quilt add -P patch2 file4 > File d/file4 modified by patch %{_P}subdir/patch3.diff $ quilt refresh > Refreshed patch %{_P}subdir/patch3.diff $ echo "Another line here, too." >> dir/file3 $ quilt refresh patch2 > Refreshed patch %{_P}patch2.diff $ echo "Another line added." >> file2 $ quilt diff -z -P patch1 -p ab > Index: b/d/file2 > =================================================================== > --- a/d/file2 > +++ b/d/file2 > @@ -1 +1,2 @@ > This is file two. > +Another line added. > Warning: more recent patches modify files in patch %{_P}patch1.diff $ quilt refresh patch1 > More recent patches modify files in patch %{_P}patch1.diff. Enforce refresh with -f. $ quilt refresh -f patch1 > Refreshed patch %{_P}patch1.diff $ echo "Another line here, too." >> dir/file3 $ quilt pop -R > Removing patch %{_P}subdir/patch3.diff > Restoring d/file4 > > Now at patch %{_P}patch2.diff $ quilt refresh patch2 > Refreshed patch %{_P}patch2.diff $ quilt grep -- two > d/file2:This is file two. $ quilt pop -qaR > Removing patch %{_P}patch2.diff > Removing patch %{_P}patch1.diff > No patches applied $ quilt patches file4 > %{_P}patch1.diff > %{_P}subdir/patch3.diff $ quilt push -qa > Applying patch %{_P}patch1.diff > Applying patch %{_P}patch2.diff > Applying patch %{_P}subdir/patch3.diff > Now at patch %{_P}subdir/patch3.diff $ quilt patches file4 > %{_P}patch1.diff > %{_P}subdir/patch3.diff $ quilt pop -q patch2.diff > Removing patch %{_P}subdir/patch3.diff > Now at patch %{_P}patch2.diff $ quilt patches -v dir/file3 file4 > + %{_P}patch1.diff > = %{_P}patch2.diff > %{_P}subdir/patch3.diff quilt-0.63/test/run0000755000175000017500000001704512332477113014627 0ustar mquinsonmquinson#!/usr/bin/perl -w # Copyright (c) 2007, 2008 Andreas Gruenbacher. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions, and the following disclaimer, # without modification, immediately at the beginning of the file. # 2. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # Alternatively, this software may be distributed under the terms of the # GNU Public License ("GPL"). # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # Possible improvements: # # - distinguish stdout and stderr output # - resume at a specific line # # # Command line parameters: # # -l N Stop the test after line N # -q Quiet mode: buffer the output while processing and print the # result at the end; on success, only the summary is printed # -v Verbose mode: print the output of successful commands (by # default the output is only printed for failed commands) # use strict; use FileHandle; use Getopt::Std; use POSIX qw(isatty setuid getcwd); use Text::ParseWords; use vars qw($opt_l $opt_q $opt_v %output $OK $FAILED $tests $failed); $opt_l = ~0; # a really huge number getopts('l:qv'); $OK = "ok"; $FAILED = "failed"; if (isatty(fileno(STDOUT))) { $OK = "\033[32m" . $OK . "\033[m"; $FAILED = "\033[31m\033[1m" . $FAILED . "\033[m"; } $tests = $failed = 0; my $prog; my ($in, $out) = ([], []); my $prog_line = 0; my $last_status = 0; my $lineno; my $width = ($ENV{COLUMNS} || 80) >> 1; my $origdir = getcwd; my $workdir = "d.$$"; sub print_header($) { if ($opt_q) { $output{header} = $_[0]; } else { print $_[0]; } } sub print_body($) { if ($opt_q) { $output{body} .= $_[0]; } else { print $_[0]; } } sub print_footer($) { if ($opt_q) { $output{footer} .= $_[0]; } else { print $_[0]; } } sub flush_output() { return unless $opt_q; print $output{header} || "", $failed ? $output{body} : "", $output{footer} || ""; } # Substitute %{VAR} with environment variables sub substitute_vars($) { my ($line) = @_; $line =~ s[%{(\w+)}][defined $ENV{$1} ? $ENV{$1} : ""]eg; return $line; } sub exec_test($$) { my ($raw_prog, $in) = @_; local (*IN, *IN_DUP, *IN2, *OUT_DUP, *OUT, *OUT2); my $prog = [ shellwords($raw_prog) ]; my $needs_shell; if ($prog->[0] eq "umask") { umask oct $prog->[1]; return 0, []; } elsif ($prog->[0] eq "cd") { if (!chdir $prog->[1]) { return 1, [ "chdir: $prog->[1]: $!\n" ]; } $ENV{PWD} = getcwd; return 0, []; } elsif ($prog->[0] eq "export") { my ($name, $value) = split /=/, $prog->[1]; $ENV{$name} = $value; return 0, []; } elsif ($prog->[0] eq "unset") { delete $ENV{$prog->[1]}; return 0, []; } $needs_shell = ($raw_prog =~ /[][|&<>;`\$*?]/); pipe *IN2, *OUT or die "Can't create pipe for reading: $!"; open *IN_DUP, "<&STDIN" or *IN_DUP = undef; open *STDIN, "<&IN2" or die "Can't duplicate pipe for reading: $!"; close *IN2; open *OUT_DUP, ">&STDOUT" or die "Can't duplicate STDOUT: $!"; pipe *IN, *OUT2 or die "Can't create pipe for writing: $!"; open *STDOUT, ">&OUT2" or die "Can't duplicate pipe for writing: $!"; close *OUT2; *STDOUT->autoflush(); *OUT->autoflush(); if (fork()) { # Server if (*IN_DUP) { open *STDIN, "<&IN_DUP" or die "Can't duplicate STDIN: $!"; close *IN_DUP or die "Can't close STDIN duplicate: $!"; } open *STDOUT, ">&OUT_DUP" or die "Can't duplicate STDOUT: $!"; close *OUT_DUP or die "Can't close STDOUT duplicate: $!"; foreach my $line (@$in) { #print "> $line"; print OUT $line; } close *OUT or die "Can't close pipe for writing: $!"; my $result = []; while () { #print "< $_"; if ($needs_shell) { s#^/bin/sh: line \d+: ##; } push @$result, $_; } wait(); return $? >> 8, $result; } else { # Client $< = $>; close IN or die "Can't close read end for input pipe: $!"; close OUT or die "Can't close write end for output pipe: $!"; close OUT_DUP or die "Can't close STDOUT duplicate: $!"; local *ERR_DUP; open ERR_DUP, ">&STDERR" or die "Can't duplicate STDERR: $!"; open STDERR, ">&STDOUT" or die "Can't join STDOUT and STDERR: $!"; if ($needs_shell) { exec ('/bin/sh', '-c', $raw_prog); } else { exec @$prog; } print STDERR $prog->[0], ": $!\n"; exit; } } sub process_test($$$$) { my ($prog, $prog_line, $in, $out) = @_; print_body "[$prog_line] \$ $prog -- "; my ($exec_status, $result) = exec_test($prog, $in); my @good = (); my $good = 1; my $nmax = (@$out > @$result) ? @$out : @$result; for (my $n = 0; $n < $nmax; $n++) { my $use_re = defined($out->[$n]) && ($out->[$n] =~ s/^~ //); if (!defined($out->[$n]) || !defined($result->[$n]) || (!$use_re && $result->[$n] ne $out->[$n]) || ( $use_re && $result->[$n] !~ /^$out->[$n]/)) { push @good, ($use_re ? '!~' : '!='); $good = 0; } else { push @good, ($use_re ? '=~' : '=='); } } $tests++; $failed++ unless $good; print_body(($good ? $OK : $FAILED)."\n"); if (!$good || $opt_v) { for (my $n = 0; $n < $nmax; $n++) { my $l = defined($out->[$n]) ? $out->[$n] : "~"; chomp $l; my $r = defined($result->[$n]) ? $result->[$n] : "~"; chomp $r; print_body sprintf("%-" . ($width - 3) . "s %s %s\n", $r, $good[$n], $l); } } return $exec_status; } # Create a dedicated working directory mkdir $workdir or die; chdir $workdir or die; $ENV{PWD} = getcwd; if (defined $ARGV[0]) { open(SOURCE, "$origdir/$ARGV[0]"); print_header "[$ARGV[0]]\n"; } else { *SOURCE = *STDIN; } while (defined(my $line = )) { $lineno++; # Collect input and output for the previous command if ($line =~ s/^\s*< ?//) { push @$in, substitute_vars($line); next; } if ($line =~ s/^\s*> ?//) { push @$out, substitute_vars($line); next; } # We have all input and output, we can execute the command if (defined $prog) { $last_status = process_test($prog, $prog_line, $in, $out); $prog = undef; last if $prog_line >= $opt_l; } # Parse the next command if ($line =~ s/^\s*\$ ?//) { # Substitute %{?} with the last command's status $line =~ s[%{\?}][$last_status]eg; chomp($prog = substitute_vars($line)); $prog_line = $lineno; $in = []; $out = []; } } # Execute last command if needed process_test($prog, $prog_line, $in, $out) if defined $prog; close(SOURCE); # Clean up the mess chdir $origdir or die; system "rm -rf $workdir"; my $status = sprintf("%d commands (%d passed, %d failed)", $tests, $tests - $failed, $failed); if (isatty(fileno(STDOUT))) { if ($failed) { $status = "\033[31m\033[1m" . $status . "\033[m"; } else { $status = "\033[32m" . $status . "\033[m"; } } print_footer "$status\n"; flush_output; exit $failed ? 1 : 0; quilt-0.63/test/test.quiltrc0000644000175000017500000000036212332477113016453 0ustar mquinsonmquinson# Define this to generate diffs without timestamps. QUILT_DIFF_ARGS="--no-timestamps" QUILT_REFRESH_ARGS="--no-timestamps" QUILT_MAIL_ARGS="--charset=UTF-8 --sender a@b.c --signature=-" QUILT_PATCHES_PREFIX=yes export QUOTING_STYLE=literal quilt-0.63/configure0000755000175000017500000050227012332477452015032 0ustar mquinsonmquinson#! /bin/sh # From configure.ac . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for quilt 0.63. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: quilt-dev@nongnu.org about your system, including any $0: error possibly output before this message. Then install $0: a modern shell, or manually run the script under such a $0: shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='quilt' PACKAGE_TARNAME='quilt' PACKAGE_VERSION='0.63' PACKAGE_STRING='quilt 0.63' PACKAGE_BUGREPORT='quilt-dev@nongnu.org' PACKAGE_URL='' ac_subst_vars='LTLIBOBJS LIBOBJS COMPAT_PROGRAMS COMPAT_SYMLINKS RPMBUILD USE_NLS PATCH_WRAPPER MSGCAT MSGUNIQ XGETTEXT MSGFMT MSGMERGE MD5SUM SENDMAIL DIFFSTAT XARGS FIND PATCH DIFF MKTEMP GETOPT COLUMN POD2MAN AWK SED STAT_HARDLINK STAT TR TAIL GREP PERL DATE CP BASH INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM PACKAGE_RELEASE target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking with_bash with_cp with_date with_perl with_grep with_tail with_tr with_stat with_sed with_awk with_pod2man with_column with_getopt with_mktemp with_diff with_patch with_find with_xargs with_diffstat with_sendmail with_md5sum enable_nls with_patch_wrapper with_rpmbuild ' ac_precious_vars='build_alias host_alias target_alias' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures quilt 0.63 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/quilt] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of quilt 0.63:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-nls exclude natural language support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-bash name of the bash executable to use --with-cp name of the cp executable to use --with-date name of the date executable to use (use --without-date to use an internal mechanism) --with-perl name of the perl executable to use --with-grep name of the grep executable to use --with-tail name of the tail executable to use --with-tr name of the tr executable to use --with-stat name of the stat executable to use --with-sed name of the sed executable to use --with-awk name of the awk executable to use --with-pod2man name of the pod2man executable to use (use --without-pod2man to disable) --with-column name of the column executable to use (use --without-column to use an internal mechanism) --with-getopt name of the getopt executable to use (use --without-getopt to use an internal mechanism) --with-mktemp name of the mktemp executable to use (use --without-mktemp to use an internal mechanism) --with-diff name of the diff executable to use --with-patch name of the patch executable to use --with-find name of the find executable to use --with-xargs name of the xargs executable to use --with-diffstat name of the diffstat executable to use --with-sendmail name of the sendmail executable to use (use --without-sendmail to use an internal mechanism) --with-md5sum name of the md5sum executable to use --with-patch-wrapper include GNU patch wrapper --with-rpmbuild name of the rpmbuild executable to use Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF quilt configure 0.63 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by quilt $as_me 0.63, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in config "$srcdir"/config; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ($Revision: 1.84 $) PACKAGE_RELEASE=1 # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether #! works in shell scripts" >&5 $as_echo_n "checking whether #! works in shell scripts... " >&6; } if ${ac_cv_sys_interpreter+:} false; then : $as_echo_n "(cached) " >&6 else echo '#! /bin/cat exit 69 ' >conftest chmod u+x conftest (SHELL=/bin/sh; export SHELL; ./conftest >/dev/null 2>&1) if test $? -ne 69; then ac_cv_sys_interpreter=yes else ac_cv_sys_interpreter=no fi rm -f conftest fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_interpreter" >&5 $as_echo "$ac_cv_sys_interpreter" >&6; } interpval=$ac_cv_sys_interpreter if test "$interpval" != yes ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no bash/perl scripts may not be invoked correctly due to problems with your systems implementation of #! being either broken or non-existant. " >&5 $as_echo "$as_me: WARNING: no bash/perl scripts may not be invoked correctly due to problems with your systems implementation of #! being either broken or non-existant. " >&2;} fi unset BASH # bash sets this itself! # Check whether --with-bash was given. if test "${with_bash+set}" = set; then : withval=$with_bash; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-bash" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bash" >&5 $as_echo_n "checking for bash... " >&6; } BASH="$withval" if test -e "$BASH"; then if test ! -f "$BASH" -a ! -h "$BASH" || test ! -x "$BASH"; then as_fn_error $? "$BASH is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASH" >&5 $as_echo "$BASH" >&6; } if test ! -e "$BASH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $BASH does not exist" >&5 $as_echo "$as_me: WARNING: $BASH does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS bash" fi else # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_BASH+:} false; then : $as_echo_n "(cached) " >&6 else case $BASH in [\\/]* | ?:[\\/]*) ac_cv_path_BASH="$BASH" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_BASH="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi BASH=$ac_cv_path_BASH if test -n "$BASH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASH" >&5 $as_echo "$BASH" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$BASH"; then as_fn_error $? "Please specify the location of bash with the option '--with-bash'" "$LINENO" 5 fi # It would be nice not to have to use backticks, but too many retarded sh # implementations still don't support $( ) # BEWARE: There is a distinct possibility that we are currently running under # bash in this configure script (/bin/sh being a symlink to /bin/bash). Even # though the result /could/ be available to us directly as $BASH_VERSION we # don't want to use, or trust it, incase the user is specifying a different # bash executable. if `$BASH -c '[ "$BASH_VERSION" \< "3.0" ]'` ; then as_fn_error $? " $PACKAGE_NAME requires at least version 3.0 of bash, you can download a current version of bash from ftp.gnu.org " "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $BASH quoting works" >&5 $as_echo_n "checking whether $BASH quoting works... " >&6; } if test `$BASH -c "echo \"\\\$(set -- \\\$'a b'; echo \\\$#)\"" 2>/dev/null` = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " You have a version of \`bash' which suffers from a quoting bug. This is a known bug of bash 3.1, which was fixed by patch bash31-011. You can get this patch at ftp://ftp.gnu.org/gnu/bash/ " "$LINENO" 5 fi # Check whether --with-cp was given. if test "${with_cp+set}" = set; then : withval=$with_cp; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-cp" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cp" >&5 $as_echo_n "checking for cp... " >&6; } CP="$withval" if test -e "$CP"; then if test ! -f "$CP" -a ! -h "$CP" || test ! -x "$CP"; then as_fn_error $? "$CP is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 $as_echo "$CP" >&6; } if test ! -e "$CP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $CP does not exist" >&5 $as_echo "$as_me: WARNING: $CP does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS cp" fi else for ac_prog in gcp cp do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_CP+:} false; then : $as_echo_n "(cached) " >&6 else case $CP in [\\/]* | ?:[\\/]*) ac_cv_path_CP="$CP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi CP=$ac_cv_path_CP if test -n "$CP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 $as_echo "$CP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CP" && break done if test -n "$CP" -a "`expr "$CP" : '.*/\([^/]*\)$'`" != "cp"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS cp" fi fi if test -z "$CP"; then as_fn_error $? "Please specify the location of cp with the option '--with-cp'" "$LINENO" 5 fi # Check whether --with-date was given. if test "${with_date+set}" = set; then : withval=$with_date; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-date" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for date" >&5 $as_echo_n "checking for date... " >&6; } DATE="$withval" if test -e "$DATE"; then if test ! -f "$DATE" -a ! -h "$DATE" || test ! -x "$DATE"; then as_fn_error $? "$DATE is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DATE" >&5 $as_echo "$DATE" >&6; } if test ! -e "$DATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $DATE does not exist" >&5 $as_echo "$as_me: WARNING: $DATE does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS date" fi else for ac_prog in gdate date do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_DATE+:} false; then : $as_echo_n "(cached) " >&6 else case $DATE in [\\/]* | ?:[\\/]*) ac_cv_path_DATE="$DATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_DATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi DATE=$ac_cv_path_DATE if test -n "$DATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DATE" >&5 $as_echo "$DATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DATE" && break done if test -n "$DATE" -a "`expr "$DATE" : '.*/\([^/]*\)$'`" != "date"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS date" fi fi if test -z "$DATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal date mechanism. Use option '--with-date' to override" >&5 $as_echo "$as_me: WARNING: Using internal date mechanism. Use option '--with-date' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS date" DATE=date INTERNAL_DATE=1 fi if test -z "$INTERNAL_DATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $DATE --rfc-822 works" >&5 $as_echo_n "checking whether $DATE --rfc-822 works... " >&6; } if $DATE --rfc-822 >/dev/null 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else as_fn_error $? "no If you don't have a version of \`date' that supports --rfc-822, you can specify '--without-date' and $PACKAGE_NAME will use its own internal date. " "$LINENO" 5 fi fi # Check whether --with-perl was given. if test "${with_perl+set}" = set; then : withval=$with_perl; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-perl" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl" >&5 $as_echo_n "checking for perl... " >&6; } PERL="$withval" if test -e "$PERL"; then if test ! -f "$PERL" -a ! -h "$PERL" || test ! -x "$PERL"; then as_fn_error $? "$PERL is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } if test ! -e "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $PERL does not exist" >&5 $as_echo "$as_me: WARNING: $PERL does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS perl" fi else for ac_prog in perl perl5 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$PERL" && break done if test -n "$PERL" -a "`expr "$PERL" : '.*/\([^/]*\)$'`" != "perl"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS perl" fi fi if test -z "$PERL"; then as_fn_error $? "Please specify the location of perl with the option '--with-perl'" "$LINENO" 5 fi # Check whether --with-grep was given. if test "${with_grep+set}" = set; then : withval=$with_grep; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-grep" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep" >&5 $as_echo_n "checking for grep... " >&6; } GREP="$withval" if test -e "$GREP"; then if test ! -f "$GREP" -a ! -h "$GREP" || test ! -x "$GREP"; then as_fn_error $? "$GREP is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5 $as_echo "$GREP" >&6; } if test ! -e "$GREP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $GREP does not exist" >&5 $as_echo "$as_me: WARNING: $GREP does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS grep" fi else # Extract the first word of "grep", so it can be a program name with args. set dummy grep; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else case $GREP in [\\/]* | ?:[\\/]*) ac_cv_path_GREP="$GREP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GREP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GREP=$ac_cv_path_GREP if test -n "$GREP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5 $as_echo "$GREP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$GREP"; then as_fn_error $? "Please specify the location of grep with the option '--with-grep'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $GREP -q works" >&5 $as_echo_n "checking whether $GREP -q works... " >&6; } if echo first | $GREP -q first 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of grep which doesn't understand -q. $PACKAGE_NAME needs it. If you have access to a version of grep which does understand -q, you can supply its path with the '--with-grep=' option. " "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $GREP understands (foo|bar)" >&5 $as_echo_n "checking whether $GREP understands (foo|bar)... " >&6; } if echo first | $GREP '^\(fir\|las\)' >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of grep which doesn't understand constructs of the form (foo|bar). $PACKAGE_NAME needs it. If you have access to a version of grep which does understand such constructs, you can supply its path with the '--with-grep=' option. " "$LINENO" 5 fi # Check whether --with-tail was given. if test "${with_tail+set}" = set; then : withval=$with_tail; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-tail" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tail" >&5 $as_echo_n "checking for tail... " >&6; } TAIL="$withval" if test -e "$TAIL"; then if test ! -f "$TAIL" -a ! -h "$TAIL" || test ! -x "$TAIL"; then as_fn_error $? "$TAIL is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAIL" >&5 $as_echo "$TAIL" >&6; } if test ! -e "$TAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $TAIL does not exist" >&5 $as_echo "$as_me: WARNING: $TAIL does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS tail" fi else # Extract the first word of "tail", so it can be a program name with args. set dummy tail; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_TAIL+:} false; then : $as_echo_n "(cached) " >&6 else case $TAIL in [\\/]* | ?:[\\/]*) ac_cv_path_TAIL="$TAIL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_TAIL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi TAIL=$ac_cv_path_TAIL if test -n "$TAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAIL" >&5 $as_echo "$TAIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$TAIL"; then as_fn_error $? "Please specify the location of tail with the option '--with-tail'" "$LINENO" 5 fi # Solaris' /usr/bin/tail doesn't understand -n. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $TAIL -n works" >&5 $as_echo_n "checking whether $TAIL -n works... " >&6; } if test "`(echo first; echo second) | $TAIL -n 1 2>/dev/null`" = "second"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of tail which doesn't understand -n. $PACKAGE_NAME needs it. If you have access to a version of tail which does understand -n, you can supply its path with the '--with-tail=' option. Solaris users can use /usr/xpg4/bin/tail. " "$LINENO" 5 fi # Check whether --with-tr was given. if test "${with_tr+set}" = set; then : withval=$with_tr; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-tr" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tr" >&5 $as_echo_n "checking for tr... " >&6; } TR="$withval" if test -e "$TR"; then if test ! -f "$TR" -a ! -h "$TR" || test ! -x "$TR"; then as_fn_error $? "$TR is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR" >&5 $as_echo "$TR" >&6; } if test ! -e "$TR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $TR does not exist" >&5 $as_echo "$as_me: WARNING: $TR does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS tr" fi else # Extract the first word of "tr", so it can be a program name with args. set dummy tr; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_TR+:} false; then : $as_echo_n "(cached) " >&6 else case $TR in [\\/]* | ?:[\\/]*) ac_cv_path_TR="$TR" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_TR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi TR=$ac_cv_path_TR if test -n "$TR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR" >&5 $as_echo "$TR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$TR"; then as_fn_error $? "Please specify the location of tr with the option '--with-tr'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $TR understands a-z " >&5 $as_echo_n "checking whether $TR understands a-z ... " >&6; } if test "`echo first | $TR a-z A-Z 2>/dev/null`" = "FIRST"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of tr which doesn't understand constructs of the form a-z. $PACKAGE_NAME needs it. If you have access to a version of tr which does understand such constructs, you can supply its path with the '--with-tr=' option. Solaris users can use /usr/xpg4/bin/tr. " "$LINENO" 5 fi # Check whether --with-stat was given. if test "${with_stat+set}" = set; then : withval=$with_stat; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-stat" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stat" >&5 $as_echo_n "checking for stat... " >&6; } STAT="$withval" if test -e "$STAT"; then if test ! -f "$STAT" -a ! -h "$STAT" || test ! -x "$STAT"; then as_fn_error $? "$STAT is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STAT" >&5 $as_echo "$STAT" >&6; } if test ! -e "$STAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $STAT does not exist" >&5 $as_echo "$as_me: WARNING: $STAT does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS stat" fi else # Extract the first word of "stat", so it can be a program name with args. set dummy stat; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_STAT+:} false; then : $as_echo_n "(cached) " >&6 else case $STAT in [\\/]* | ?:[\\/]*) ac_cv_path_STAT="$STAT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_STAT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi STAT=$ac_cv_path_STAT if test -n "$STAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STAT" >&5 $as_echo "$STAT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$STAT"; then as_fn_error $? "Please specify the location of stat with the option '--with-stat'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $STAT -c '%h' works" >&5 $as_echo_n "checking whether $STAT -c '%h' works... " >&6; } if $STAT -c '%h' /dev/null >/dev/null 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } STAT_HARDLINK="-c '%h'" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $STAT -f '%l' works" >&5 $as_echo_n "checking whether $STAT -f '%l' works... " >&6; } if $STAT -f '%l' /dev/null >/dev/null 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } STAT_HARDLINK="-f '%l'" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of stat which understands neither -c nor -f. $PACKAGE_NAME needs it. If you have access to a version of stat which does understand -c or -f, you can supply its path with the '--with-stat=' option. " "$LINENO" 5 fi fi # Check whether --with-sed was given. if test "${with_sed+set}" = set; then : withval=$with_sed; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-sed" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sed" >&5 $as_echo_n "checking for sed... " >&6; } SED="$withval" if test -e "$SED"; then if test ! -f "$SED" -a ! -h "$SED" || test ! -x "$SED"; then as_fn_error $? "$SED is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 $as_echo "$SED" >&6; } if test ! -e "$SED"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $SED does not exist" >&5 $as_echo "$as_me: WARNING: $SED does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS sed" fi else # Extract the first word of "sed", so it can be a program name with args. set dummy sed; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else case $SED in [\\/]* | ?:[\\/]*) ac_cv_path_SED="$SED" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi SED=$ac_cv_path_SED if test -n "$SED"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 $as_echo "$SED" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$SED"; then as_fn_error $? "Please specify the location of sed with the option '--with-sed'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $SED understands (foo|bar)" >&5 $as_echo_n "checking whether $SED understands (foo|bar)... " >&6; } if test "`echo first | $SED -e 's/\(fir\|lo\)/la/' 2>/dev/null`" = "last"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of sed which doesn't understand constructs of the form (foo|bar). $PACKAGE_NAME needs it. If you have access to a version of sed which does understand such constructs, you can supply its path with the '--with-sed=' option. " "$LINENO" 5 fi # Check whether --with-awk was given. if test "${with_awk+set}" = set; then : withval=$with_awk; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-awk" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for awk" >&5 $as_echo_n "checking for awk... " >&6; } AWK="$withval" if test -e "$AWK"; then if test ! -f "$AWK" -a ! -h "$AWK" || test ! -x "$AWK"; then as_fn_error $? "$AWK is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } if test ! -e "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $AWK does not exist" >&5 $as_echo "$as_me: WARNING: $AWK does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS awk" fi else for ac_prog in gawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_AWK+:} false; then : $as_echo_n "(cached) " >&6 else case $AWK in [\\/]* | ?:[\\/]*) ac_cv_path_AWK="$AWK" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_AWK="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi AWK=$ac_cv_path_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done if test -n "$AWK" -a "`expr "$AWK" : '.*/\([^/]*\)$'`" != "awk"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS awk" fi fi if test -z "$AWK"; then as_fn_error $? "Please specify the location of awk with the option '--with-awk'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $AWK supports sub" >&5 $as_echo_n "checking whether $AWK supports sub... " >&6; } if test "`echo first | $AWK 'sub(/first/, "last")' 2>/dev/null`" = "last"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of awk which doesn't understand sub( ). $PACKAGE_NAME needs it. If you have access to a version of awk which does understand such constructs, you can supply its path with the '--with-awk=' option. Solaris users can use /usr/xpg4/bin/awk. " "$LINENO" 5 fi # Check whether --with-pod2man was given. if test "${with_pod2man+set}" = set; then : withval=$with_pod2man; if test x"$withval" = xno; then POD2MAN= else POD2MAN=$withval fi else # Extract the first word of "pod2man", so it can be a program name with args. set dummy pod2man; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_POD2MAN+:} false; then : $as_echo_n "(cached) " >&6 else case $POD2MAN in [\\/]* | ?:[\\/]*) ac_cv_path_POD2MAN="$POD2MAN" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_POD2MAN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi POD2MAN=$ac_cv_path_POD2MAN if test -n "$POD2MAN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POD2MAN" >&5 $as_echo "$POD2MAN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi # Check whether --with-column was given. if test "${with_column+set}" = set; then : withval=$with_column; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-column" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for column" >&5 $as_echo_n "checking for column... " >&6; } COLUMN="$withval" if test -e "$COLUMN"; then if test ! -f "$COLUMN" -a ! -h "$COLUMN" || test ! -x "$COLUMN"; then as_fn_error $? "$COLUMN is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COLUMN" >&5 $as_echo "$COLUMN" >&6; } if test ! -e "$COLUMN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $COLUMN does not exist" >&5 $as_echo "$as_me: WARNING: $COLUMN does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS column" fi else # Extract the first word of "column", so it can be a program name with args. set dummy column; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_COLUMN+:} false; then : $as_echo_n "(cached) " >&6 else case $COLUMN in [\\/]* | ?:[\\/]*) ac_cv_path_COLUMN="$COLUMN" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_COLUMN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi COLUMN=$ac_cv_path_COLUMN if test -n "$COLUMN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COLUMN" >&5 $as_echo "$COLUMN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$COLUMN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal column mechanism. Use option '--with-column' to override" >&5 $as_echo "$as_me: WARNING: Using internal column mechanism. Use option '--with-column' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS column" COLUMN=column INTERNAL_COLUMN=1 fi # Check whether --with-getopt was given. if test "${with_getopt+set}" = set; then : withval=$with_getopt; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-getopt" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getopt" >&5 $as_echo_n "checking for getopt... " >&6; } GETOPT="$withval" if test -e "$GETOPT"; then if test ! -f "$GETOPT" -a ! -h "$GETOPT" || test ! -x "$GETOPT"; then as_fn_error $? "$GETOPT is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GETOPT" >&5 $as_echo "$GETOPT" >&6; } if test ! -e "$GETOPT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $GETOPT does not exist" >&5 $as_echo "$as_me: WARNING: $GETOPT does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS getopt" fi else # Extract the first word of "getopt", so it can be a program name with args. set dummy getopt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GETOPT+:} false; then : $as_echo_n "(cached) " >&6 else case $GETOPT in [\\/]* | ?:[\\/]*) ac_cv_path_GETOPT="$GETOPT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GETOPT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GETOPT=$ac_cv_path_GETOPT if test -n "$GETOPT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GETOPT" >&5 $as_echo "$GETOPT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$GETOPT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal getopt mechanism. Use option '--with-getopt' to override" >&5 $as_echo "$as_me: WARNING: Using internal getopt mechanism. Use option '--with-getopt' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS getopt" GETOPT=getopt INTERNAL_GETOPT=1 fi if test -z "$INTERNAL_GETOPT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getopt --long syntax" >&5 $as_echo_n "checking for getopt --long syntax... " >&6; } $GETOPT -o t --long test -- --test | grep 'illegal option' >/dev/null getopt_long_errors=$? $GETOPT -o t --long test -- --test | grep '^ *--test *--' >/dev/null getopt_long_works=$? if test $getopt_long_errors -eq 1 -a $getopt_long_works -eq 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " $GETOPT does not support the --long option. If you don't have a version of getopt that supports long options, you can specify '--without-getopt' and $PACKAGE_NAME will use its own internal getopt. " "$LINENO" 5 fi fi # Check whether --with-mktemp was given. if test "${with_mktemp+set}" = set; then : withval=$with_mktemp; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-mktemp" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mktemp" >&5 $as_echo_n "checking for mktemp... " >&6; } MKTEMP="$withval" if test -e "$MKTEMP"; then if test ! -f "$MKTEMP" -a ! -h "$MKTEMP" || test ! -x "$MKTEMP"; then as_fn_error $? "$MKTEMP is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKTEMP" >&5 $as_echo "$MKTEMP" >&6; } if test ! -e "$MKTEMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $MKTEMP does not exist" >&5 $as_echo "$as_me: WARNING: $MKTEMP does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS mktemp" fi else # Extract the first word of "mktemp", so it can be a program name with args. set dummy mktemp; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MKTEMP+:} false; then : $as_echo_n "(cached) " >&6 else case $MKTEMP in [\\/]* | ?:[\\/]*) ac_cv_path_MKTEMP="$MKTEMP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MKTEMP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MKTEMP=$ac_cv_path_MKTEMP if test -n "$MKTEMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKTEMP" >&5 $as_echo "$MKTEMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$MKTEMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal mktemp mechanism. Use option '--with-mktemp' to override" >&5 $as_echo "$as_me: WARNING: Using internal mktemp mechanism. Use option '--with-mktemp' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS mktemp" MKTEMP=mktemp INTERNAL_MKTEMP=1 fi if test -z "$INTERNAL_MKTEMP" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $MKTEMP -d works" >&5 $as_echo_n "checking whether $MKTEMP -d works... " >&6; } if tempdir=`$MKTEMP -d ${TMPDIR:-/tmp}/$PACKAGE_NAME.XXXXXX 2>/dev/null` && \ rmdir "$tempdir" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " '$MKTEMP -d' does not create temporary directories. If you don't have a version of mktemp that can create directories, you can specify '--without-mktemp' and $PACKAGE_NAME will use its own internal tempfile generation mechanism. " "$LINENO" 5 fi fi # Check whether --with-diff was given. if test "${with_diff+set}" = set; then : withval=$with_diff; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-diff" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for diff" >&5 $as_echo_n "checking for diff... " >&6; } DIFF="$withval" if test -e "$DIFF"; then if test ! -f "$DIFF" -a ! -h "$DIFF" || test ! -x "$DIFF"; then as_fn_error $? "$DIFF is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFF" >&5 $as_echo "$DIFF" >&6; } if test ! -e "$DIFF"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $DIFF does not exist" >&5 $as_echo "$as_me: WARNING: $DIFF does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS diff" fi else # Extract the first word of "diff", so it can be a program name with args. set dummy diff; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_DIFF+:} false; then : $as_echo_n "(cached) " >&6 else case $DIFF in [\\/]* | ?:[\\/]*) ac_cv_path_DIFF="$DIFF" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_DIFF="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi DIFF=$ac_cv_path_DIFF if test -n "$DIFF"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFF" >&5 $as_echo "$DIFF" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$DIFF"; then as_fn_error $? "Please specify the location of diff with the option '--with-diff'" "$LINENO" 5 fi # Check whether --with-patch was given. if test "${with_patch+set}" = set; then : withval=$with_patch; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-patch" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for patch" >&5 $as_echo_n "checking for patch... " >&6; } PATCH="$withval" if test -e "$PATCH"; then if test ! -f "$PATCH" -a ! -h "$PATCH" || test ! -x "$PATCH"; then as_fn_error $? "$PATCH is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PATCH" >&5 $as_echo "$PATCH" >&6; } if test ! -e "$PATCH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $PATCH does not exist" >&5 $as_echo "$as_me: WARNING: $PATCH does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS patch" fi else # Extract the first word of "patch", so it can be a program name with args. set dummy patch; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PATCH+:} false; then : $as_echo_n "(cached) " >&6 else case $PATCH in [\\/]* | ?:[\\/]*) ac_cv_path_PATCH="$PATCH" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PATCH="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PATCH=$ac_cv_path_PATCH if test -n "$PATCH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PATCH" >&5 $as_echo "$PATCH" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$PATCH"; then as_fn_error $? "Please specify the location of patch with the option '--with-patch'" "$LINENO" 5 fi # Sun diff and others will not work because GNU patch options are used. { $as_echo "$as_me:${as_lineno-$LINENO}: checking the version of $DIFF" >&5 $as_echo_n "checking the version of $DIFF... " >&6; } if $DIFF --version 2>/dev/null | grep GNU >/dev/null; then set -- `$DIFF --version 2>/dev/null | $AWK '{ print $NF; exit }'` diff_version=$1 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $diff_version" >&5 $as_echo "$diff_version" >&6; } saved_IFS=$IFS; IFS='.' set -- $diff_version IFS=$saved_IFS set -- `echo $1 | $TR -cd 0-9` `echo $2 | $TR -cd 0-9` if test 0$1 -lt 2 || test 0$1 -eq 2 -a 0$2 -lt 7 ; then diff_version= fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no GNU diff" >&5 $as_echo "no GNU diff" >&6; } fi if test -z "$diff_version" ; then as_fn_error $? " $PACKAGE_NAME requires at least version 2.7 of GNU diffutils. You can download a current version of patch from ftp.gnu.org, or if you already have GNU diff then you can supply its path with the '--with-diff=' option. " "$LINENO" 5 fi # Sun's patch, and others, do not work because GNU patch options are used. { $as_echo "$as_me:${as_lineno-$LINENO}: checking the version of $PATCH" >&5 $as_echo_n "checking the version of $PATCH... " >&6; } if $PATCH --version 2> /dev/null | grep GNU >/dev/null; then set -- `$PATCH --version 2> /dev/null` if test x$1 = xGNU ; then patch_version=$3 else patch_version=$2 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $patch_version" >&5 $as_echo "$patch_version" >&6; } saved_IFS=$IFS; IFS='.' set -- $patch_version IFS=$saved_IFS set -- `echo $1 | $TR -cd 0-9` `echo $2 | $TR -cd 0-9` if test 0$1 -lt 2 || test 0$1 -eq 2 -a 0$2 -lt 5 ; then patch_version= fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no GNU patch" >&5 $as_echo "no GNU patch" >&6; } fi if test -z "$patch_version" ; then as_fn_error $? " $PACKAGE_NAME requires at least version 2.5 of GNU patch. You can download a current version of patch from ftp.gnu.org, or if you already have GNU patch then you can supply its path with the '--with-patch=' option. " "$LINENO" 5 fi # Check whether --with-find was given. if test "${with_find+set}" = set; then : withval=$with_find; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-find" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for find" >&5 $as_echo_n "checking for find... " >&6; } FIND="$withval" if test -e "$FIND"; then if test ! -f "$FIND" -a ! -h "$FIND" || test ! -x "$FIND"; then as_fn_error $? "$FIND is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIND" >&5 $as_echo "$FIND" >&6; } if test ! -e "$FIND"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $FIND does not exist" >&5 $as_echo "$as_me: WARNING: $FIND does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS find" fi else # Extract the first word of "find", so it can be a program name with args. set dummy find; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_FIND+:} false; then : $as_echo_n "(cached) " >&6 else case $FIND in [\\/]* | ?:[\\/]*) ac_cv_path_FIND="$FIND" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_FIND="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi FIND=$ac_cv_path_FIND if test -n "$FIND"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIND" >&5 $as_echo "$FIND" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$FIND"; then as_fn_error $? "Please specify the location of find with the option '--with-find'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $FIND -path works" >&5 $as_echo_n "checking whether $FIND -path works... " >&6; } if $FIND . -path '*' >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of find which doesn't understand -path. $PACKAGE_NAME needs it. If you have access to a version of find which does understand -path, you can supply its path with the '--with-find=' option. " "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $FIND -print0 works" >&5 $as_echo_n "checking whether $FIND -print0 works... " >&6; } if $FIND . -path '*' -print0 >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of find which doesn't understand -print0. $PACKAGE_NAME needs it. If you have access to a version of find which does understand -print0, you can supply its path with the '--with-find=' option. " "$LINENO" 5 fi # Check whether --with-xargs was given. if test "${with_xargs+set}" = set; then : withval=$with_xargs; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-xargs" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xargs" >&5 $as_echo_n "checking for xargs... " >&6; } XARGS="$withval" if test -e "$XARGS"; then if test ! -f "$XARGS" -a ! -h "$XARGS" || test ! -x "$XARGS"; then as_fn_error $? "$XARGS is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XARGS" >&5 $as_echo "$XARGS" >&6; } if test ! -e "$XARGS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $XARGS does not exist" >&5 $as_echo "$as_me: WARNING: $XARGS does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS xargs" fi else # Extract the first word of "xargs", so it can be a program name with args. set dummy xargs; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XARGS+:} false; then : $as_echo_n "(cached) " >&6 else case $XARGS in [\\/]* | ?:[\\/]*) ac_cv_path_XARGS="$XARGS" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XARGS="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XARGS=$ac_cv_path_XARGS if test -n "$XARGS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XARGS" >&5 $as_echo "$XARGS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$XARGS"; then as_fn_error $? "Please specify the location of xargs with the option '--with-xargs'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $XARGS -0 works" >&5 $as_echo_n "checking whether $XARGS -0 works... " >&6; } if echo | $XARGS -0 echo >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of xargs which doesn't understand -0. $PACKAGE_NAME needs it. If you have access to a version of xargs which does understand -0, you can supply its path with the '--with-xargs=' option. " "$LINENO" 5 fi # Check whether --with-diffstat was given. if test "${with_diffstat+set}" = set; then : withval=$with_diffstat; if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for diffstat" >&5 $as_echo_n "checking for diffstat... " >&6; } DIFFSTAT="$withval" if test -e "$DIFFSTAT"; then if test ! -f "$DIFFSTAT" -a ! -h "$DIFFSTAT" || test ! -x "$DIFFSTAT"; then as_fn_error $? "$DIFFSTAT is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFFSTAT" >&5 $as_echo "$DIFFSTAT" >&6; } if test ! -e "$DIFFSTAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $DIFFSTAT does not exist" >&5 $as_echo "$as_me: WARNING: $DIFFSTAT does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS diffstat" fi else # Extract the first word of "diffstat", so it can be a program name with args. set dummy diffstat; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_DIFFSTAT+:} false; then : $as_echo_n "(cached) " >&6 else case $DIFFSTAT in [\\/]* | ?:[\\/]*) ac_cv_path_DIFFSTAT="$DIFFSTAT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_DIFFSTAT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi DIFFSTAT=$ac_cv_path_DIFFSTAT if test -n "$DIFFSTAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFFSTAT" >&5 $as_echo "$DIFFSTAT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$DIFFSTAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: diffstat not found, some optional functionalities will be missing" >&5 $as_echo "$as_me: WARNING: diffstat not found, some optional functionalities will be missing" >&2;} fi fi if test -z "$DIFFSTAT"; then DIFFSTAT=diffstat fi if test "$DIFFSTAT" != "diffstat"; then # We need diffstat version 1.32 or better, else quilt refresh --diffstat # will show progress data we don't want to see. This is only a warning # and we continue even if version is older, as this is only a minor # annoyance. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for diffstat version" >&5 $as_echo_n "checking for diffstat version... " >&6; } diffstat_version=`$DIFFSTAT -V 2>/dev/null | \ sed 's/^[^0-9]*\([0-9]*\)\.\([0-9]*\).*/\1 \2/'` eval set -- "$diffstat_version" diffstat_major_version="$1" diffstat_minor_version="$2" if test -z "$diffstat_major_version" -o -z "$diffstat_minor_version"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 $as_echo "unknown" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: diffstat utility version couldn't be checked; chances are good that the --diffstat option of the refresh command will not work properly. " >&5 $as_echo "$as_me: WARNING: diffstat utility version couldn't be checked; chances are good that the --diffstat option of the refresh command will not work properly. " >&2;} else { $as_echo "$as_me:${as_lineno-$LINENO}: result: $diffstat_major_version.$diffstat_minor_version" >&5 $as_echo "$diffstat_major_version.$diffstat_minor_version" >&6; } if test "$diffstat_major_version" -lt 1 \ -o \( "$diffstat_major_version" -eq 1 -a "$diffstat_minor_version" -lt 32 \); then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: diffstat utility is too old; the --diffstat option of the refresh command will not work correctly until a newer version (>= 1.32) is installed. " >&5 $as_echo "$as_me: WARNING: diffstat utility is too old; the --diffstat option of the refresh command will not work correctly until a newer version (>= 1.32) is installed. " >&2;} fi fi fi # Check whether --with-sendmail was given. if test "${with_sendmail+set}" = set; then : withval=$with_sendmail; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-sendmail" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sendmail" >&5 $as_echo_n "checking for sendmail... " >&6; } SENDMAIL="$withval" if test -e "$SENDMAIL"; then if test ! -f "$SENDMAIL" -a ! -h "$SENDMAIL" || test ! -x "$SENDMAIL"; then as_fn_error $? "$SENDMAIL is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SENDMAIL" >&5 $as_echo "$SENDMAIL" >&6; } if test ! -e "$SENDMAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $SENDMAIL does not exist" >&5 $as_echo "$as_me: WARNING: $SENDMAIL does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS sendmail" fi else # Extract the first word of "sendmail", so it can be a program name with args. set dummy sendmail; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_SENDMAIL+:} false; then : $as_echo_n "(cached) " >&6 else case $SENDMAIL in [\\/]* | ?:[\\/]*) ac_cv_path_SENDMAIL="$SENDMAIL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:/usr/sbin" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_SENDMAIL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi SENDMAIL=$ac_cv_path_SENDMAIL if test -n "$SENDMAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SENDMAIL" >&5 $as_echo "$SENDMAIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -n "$SENDMAIL"; then as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for dir in "/usr/sbin"; do if test "`dirname $SENDMAIL`" = "$dir"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS sendmail" break fi done IFS="$as_save_IFS" fi fi if test -z "$SENDMAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal sendmail mechanism. Use option '--with-sendmail' to override" >&5 $as_echo "$as_me: WARNING: Using internal sendmail mechanism. Use option '--with-sendmail' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS sendmail" SENDMAIL=sendmail INTERNAL_SENDMAIL=1 fi # Check whether --with-cp was given. if test "${with_cp+set}" = set; then : withval=$with_cp; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-cp" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cp" >&5 $as_echo_n "checking for cp... " >&6; } CP="$withval" if test -e "$CP"; then if test ! -f "$CP" -a ! -h "$CP" || test ! -x "$CP"; then as_fn_error $? "$CP is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 $as_echo "$CP" >&6; } if test ! -e "$CP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $CP does not exist" >&5 $as_echo "$as_me: WARNING: $CP does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS cp" fi else for ac_prog in cp do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_CP+:} false; then : $as_echo_n "(cached) " >&6 else case $CP in [\\/]* | ?:[\\/]*) ac_cv_path_CP="$CP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi CP=$ac_cv_path_CP if test -n "$CP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 $as_echo "$CP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CP" && break done if test -n "$CP" -a "`expr "$CP" : '.*/\([^/]*\)$'`" != "cp"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS cp" fi fi if test -z "$CP"; then as_fn_error $? "Please specify the location of cp with the option '--with-cp'" "$LINENO" 5 fi # Check whether --with-md5sum was given. if test "${with_md5sum+set}" = set; then : withval=$with_md5sum; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-md5sum" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for md5sum" >&5 $as_echo_n "checking for md5sum... " >&6; } MD5SUM="$withval" if test -e "$MD5SUM"; then if test ! -f "$MD5SUM" -a ! -h "$MD5SUM" || test ! -x "$MD5SUM"; then as_fn_error $? "$MD5SUM is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MD5SUM" >&5 $as_echo "$MD5SUM" >&6; } if test ! -e "$MD5SUM"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $MD5SUM does not exist" >&5 $as_echo "$as_me: WARNING: $MD5SUM does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS md5sum" fi else for ac_prog in gmd5sum md5sum do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MD5SUM+:} false; then : $as_echo_n "(cached) " >&6 else case $MD5SUM in [\\/]* | ?:[\\/]*) ac_cv_path_MD5SUM="$MD5SUM" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MD5SUM="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MD5SUM=$ac_cv_path_MD5SUM if test -n "$MD5SUM"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MD5SUM" >&5 $as_echo "$MD5SUM" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$MD5SUM" && break done if test -n "$MD5SUM" -a "`expr "$MD5SUM" : '.*/\([^/]*\)$'`" != "md5sum"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS md5sum" fi fi if test -z "$MD5SUM"; then as_fn_error $? "Please specify the location of md5sum with the option '--with-md5sum'" "$LINENO" 5 fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msguniq", so it can be a program name with args. set dummy msguniq; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGUNIQ+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGUNIQ in [\\/]* | ?:[\\/]*) ac_cv_path_MSGUNIQ="$MSGUNIQ" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGUNIQ="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGUNIQ=$ac_cv_path_MSGUNIQ if test -n "$MSGUNIQ"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGUNIQ" >&5 $as_echo "$MSGUNIQ" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgcat", so it can be a program name with args. set dummy msgcat; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGCAT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGCAT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGCAT="$MSGCAT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGCAT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGCAT=$ac_cv_path_MSGCAT if test -n "$MSGCAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGCAT" >&5 $as_echo "$MSGCAT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -n "$MSGFMT" -a -n "$MSGMERGE" -a -n "$XGETTEXT" -a -n "$MSGUNIQ" -a -n "$MSGCAT" ; then HAVE_NLS=yes else HAVE_NLS=no fi USE_NLS=no # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=$HAVE_NLS fi if test $USE_NLS = yes -a $HAVE_NLS = no ; then as_fn_error $? " You do not appear to have msgfmt, which is part of the GNU Gettext package. It is a required package as you chose the '--enable-nls' option to configure. You can download GNU Gettext from ftp.gnu.org " "$LINENO" 5 fi # Check whether --with-patch-wrapper was given. if test "${with_patch_wrapper+set}" = set; then : withval=$with_patch_wrapper; fi PATCH_WRAPPER=$withval if test $USE_NLS = no ; then { $as_echo "$as_me:${as_lineno-$LINENO}: Building without natural language support" >&5 $as_echo "$as_me: Building without natural language support" >&6;} fi # Check whether --with-rpmbuild was given. if test "${with_rpmbuild+set}" = set; then : withval=$with_rpmbuild; if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rpmbuild" >&5 $as_echo_n "checking for rpmbuild... " >&6; } RPMBUILD="$withval" if test -e "$RPMBUILD"; then if test ! -f "$RPMBUILD" -a ! -h "$RPMBUILD" || test ! -x "$RPMBUILD"; then as_fn_error $? "$RPMBUILD is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RPMBUILD" >&5 $as_echo "$RPMBUILD" >&6; } if test ! -e "$RPMBUILD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $RPMBUILD does not exist" >&5 $as_echo "$as_me: WARNING: $RPMBUILD does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS rpmbuild" fi else for ac_prog in rpmbuild rpm do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_RPMBUILD+:} false; then : $as_echo_n "(cached) " >&6 else case $RPMBUILD in [\\/]* | ?:[\\/]*) ac_cv_path_RPMBUILD="$RPMBUILD" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_RPMBUILD="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi RPMBUILD=$ac_cv_path_RPMBUILD if test -n "$RPMBUILD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RPMBUILD" >&5 $as_echo "$RPMBUILD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$RPMBUILD" && break done if test -n "$RPMBUILD" -a "`expr "$RPMBUILD" : '.*/\([^/]*\)$'`" != "rpmbuild"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS rpmbuild" fi if test -z "$RPMBUILD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: rpmbuild not found, some optional functionalities will be missing" >&5 $as_echo "$as_me: WARNING: rpmbuild not found, some optional functionalities will be missing" >&2;} fi fi if test -z "$RPMBUILD"; then RPMBUILD=rpmbuild fi ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by quilt $as_me 0.63, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ quilt config.status 0.63 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_NAME version $PACKAGE_VERSION configured." >&5 $as_echo "$PACKAGE_NAME version $PACKAGE_VERSION configured." >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using '$prefix' for installation prefix." >&5 $as_echo "Using '$prefix' for installation prefix." >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Report bugs to $PACKAGE_BUGREPORT" >&5 $as_echo "Report bugs to $PACKAGE_BUGREPORT" >&6; } quilt-0.63/quilt.spec0000644000175000017500000001371512332477771015142 0ustar mquinsonmquinson# # spec file for quilt - patch management scripts # Name: quilt Summary: Scripts for working with series of patches License: GPL Group: Productivity/Text/Utilities Version: 0.63 Release: 1 Requires: coreutils diffutils findutils patch gzip bzip2 perl mktemp gettext Autoreqprov: off Source: quilt-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build %description The scripts allow to manage a series of patches by keeping track of the changes each patch makes. Patches can be applied, un-applied, refreshed, etc. The scripts are heavily based on Andrew Morton's patch scripts found at http://userweb.kernel.org/~akpm/stuff/patch-scripts.tar.gz. Authors: -------- Andrew Morton Andreas Gruenbacher %prep %setup %build CFLAGS="$RPM_OPT_FLAGS" \ ./configure --prefix=/usr \ --mandir=%_mandir \ --docdir=%_docdir/%{name}-%{version} make RELEASE=%release %install rm -rf $RPM_BUILD_ROOT make install prefix=/usr BUILD_ROOT=$RPM_BUILD_ROOT %{find_lang} %{name} %clean rm -rf $RPM_BUILD_ROOT %files -f %{name}.lang %defattr(-, root, root) /usr/bin/guards /usr/bin/quilt /usr/share/quilt/ /usr/share/emacs/ /etc/bash_completion.d/quilt %config(noreplace) /etc/quilt.quiltrc %doc %{_mandir}/man1/guards.1* %doc %{_mandir}/man1/quilt.1* %doc %{_docdir}/%{name}-%{version}/README %doc %{_docdir}/%{name}-%{version}/README.MAIL %doc %{_docdir}/%{name}-%{version}/quilt.pdf %changelog * Wed May 07 2014 - upstream - Update to version 0.63 + New NEWS file, containing a human-readable changelog + Option -E is no longer passed to patch by default + Huge performance improvement (e.g., for commands series, applied and unapplied) + configure: Add compat symlinks for cp and md5sum + Return 2 when there is nothing to do, contrasting with errors (ret=1) + Exit with an error when diff's retcode=2 (error) on patch refresh + bash_completion: cleanups and performance improvement (Savannah's #27111) + test/run: Use perl module Text::ParseWords (+ performance improvement) + Add some tests to our testsuite, for a better coverage + Fix heuristic for unapplied patches with timestamps + Bug fix: Patches emptying files should work now + Bug fix: Check for duplicate patch in series (Savannah's #20628) + Portability fixes for older Bash and GNU patch * was a buggy release, with an incomplete tarfile - upstream - Update to version 0.62 * Sun Dec 08 2013 - upstream - Update to version 0.61 + Almost two years of fixes and minor improvements + Fix support for ./configure --with-xargs + Parameter quoting fixes to many commands + Various fixes to the pop, push, refresh and patches commands + Translation fixes + setup: Many fixes and improvements + remove-trailing-ws: Several fixes and improvements + remove-trailing-ws: Add a dedicated test case + quilt.el: Many fixes and improvements (emacs integration) * Wed Feb 29 2012 - upstream - Update to version 0.60 + BSD compatibility improvements + grep: Support file names which include spaces + import: Fix import of relative patches + mail: Several fixes + setup: Support directory and archive names which include spaces + backup-files: rewritten from C to bash + backup-files: Add a dedicated test case * Sat Jan 28 2012 - upstream - Update to version 0.51 + Fix support for ./configure --docdir + Various $TMPDIR fixes + mail: Fix delivery address checking + mail: CC people in more common patch headers + push: Fix bash completion + inspect: Complain if wrapper script can't be executed * Mon Dec 5 2011 - upstream - Update to version 0.50 + 34 months of fixes and improvements, too many to list them all + Fix detection of the patch version + Avoid error messages when building due to missing git-desc file + Add support for lzma and xz compression formats + import: Fix confusing French translation + mail: Stop using =~ for older versions of bash + mail: Fix a temporary directory leak + revert: Stop using cp -l + revert: Add bash completion support + setup: Add --fuzz parameter + setup: Add support for reverse patches + inspect: Fix shell syntax errors + Fix error in test case create-delete * Thu Jan 29 2009 - upstream - Update to version 0.48 + fold: Fix bash completion + mail: Don't use GNU awk extensions + mail: Check for formail + setup: Fix for rpm 4.6 + Fix error in test case import * Thu Aug 21 2008 - upstream - Update to version 0.47 + Change summary not available * Thu Oct 19 2006 - upstream - Update to version 0.46 + Change summary not available * Mon Apr 24 2006 - upstream - Update to version 0.45 + Change summary not available * Tue Feb 14 2006 - upstream - Update to version 0.44 + Change summary not available * Wed Feb 01 2006 - upstream - Update to version 0.43 + Change summary not available * Tue Jul 26 2005 - upstream - Update to version 0.42 + Change summary not available * Fri Apr 29 2005 - upstream - Update to version 0.40 + Change summary not available * Thu Feb 10 2005 - upstream - Update to version 0.39 + Change summary not available * Sun Oct 17 2004 - upstream - Update to version 0.37 + Change summary not available * Wed Sep 22 2004 - upstream - Update to version 0.36 + Change summary not available * Thu Jul 15 2004 - upstream - Update to version 0.35 + Change summary not available * Thu Jun 10 2004 - upstream - Update to version 0.34 + Change summary not available * Sun Jun 06 2004 - upstream - Update to version 0.33 + Change summary not available * Sat Mar 13 2004 - upstream - Update to version 0.32 + Change summary not available * Wed Jan 28 2004 - upstream - Update to version 0.30 + Change summary not available * Wed Nov 12 2003 - upstream - Update to version 0.29 + Change summary not available * Fri Oct 31 2003 - upstream - Update to version 0.28 + Change summary not available * Tue Oct 28 2003 - upstream - Update to version 0.27 + Change summary not available * Tue Oct 21 2003 - upstream - Update to version 0.26 + Change summary not available