pax_global_header00006660000000000000000000000064126316324040014513gustar00rootroot0000000000000052 comment=a1700aa875f1f98d22475b554d83df846173d8d8 java-comment-preprocessor-6.0.1/000077500000000000000000000000001263163240400166245ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/.gitignore000066400000000000000000000000241263163240400206100ustar00rootroot00000000000000/target/ /nbproject/java-comment-preprocessor-6.0.1/.projectKnowledge/000077500000000000000000000000001263163240400222105ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/.projectKnowledge/JCPreprocessor.mmd000066400000000000000000000007151263163240400256150ustar00rootroot00000000000000Mind Map generated by NB MindMap plugin > __version__=`1.0`,showJumps=`true` --- # Java Comment
preprocessor - LINK
https://github.com/raydac/java-comment-preprocessor
## Current > fillColor=`#FFFF99` ## Issues > fillColor=`#FF9999`,topicLinkUID=`15150167A1AA` - LINK
https://github.com/raydac/java-comment-preprocessor/issues
## Backlog > fillColor=`#99FF99` ## Changelog > leftSide=`true` - FILE
changelog.txt
java-comment-preprocessor-6.0.1/README.md000066400000000000000000000200761263163240400201100ustar00rootroot00000000000000Introduction ============= It is the most powerful multi-pass preprocessor for Java but also it can be used everywhere for text processing if the destination technology supports Java like comment definitions. The Initial version was developed in 2002 by Igor Maznitsa to make easier development for J2ME platform to avoid bunch of repeated class sources for different devices, so that the preprocessor is a powerful tool to avoid DRY (Don't Repeat Yourself) problems. Injection of preprocessor directives into Java comments allows to keep full compatibility with standard Java development chain and make transparent usage in all Java IDEs. The Latest prebuilt version ============================ [The Version 6.0.0](http://search.maven.org/#artifactdetails|com.igormaznitsa|jcp|6.0.0|maven-plugin) Changelog ========== - **6.0.0** - bugfixing and log improvement - RENAMED DIRECTIVE! //#assert renamed to appropriate name //#echo - RENAMED FUNCTIONS! renamed XML functions to more appropriate and short names - xml_getRoot to xml_root - xml_elementAt to xml_get - xml_elementsNumber to xml_size - xml_getAttribute to xml_attr - xml_getElementName to xml_name - xml_getElementsForName to xml_list - xml_getElementText to xml_text - fixed //#exit and //#exitif behavior to prevent total exit and return level up in include stack - added //#abort directive to provide possibility to stop preprocessing immediately without errors - added function 'STR evalfile(STR)' for local preprocessing of a file body and return it as a string - added predefined variables '__line__','__filename__','__filefolder__' and '__file__' which allow to get name and path parameters for the current preprocessing file path - added predefined variables '__time__','__date__' and '__timestamp__' which work similar C++ predefined macroses - added function 'STR str2java(STR,BOOL)' to escape and split string to be presented as java sources - added functions 'STR str2js(STR)', 'STR str2json(STR)','STR str2xml(STR)' and 'STR str2csv(STR)' - added functions 'STR xml_xlist(STR,STR)' and 'STR xml_xelement(STR,STR)' which allow to use xpath to get element lists an elements - apache common-io and common-lang libraries have been packed into the jar and hidden - added the short variant '//#ifdef BOOL' for '//#ifdefined BOOL' - added '//#ifndef BOOL' to check that a variable is undefined - added '//#definel NAME' and '//#define NAME' to define local and global variables, they can use not only the default TRUE value for defined variables, but also result of expression (example: //#define ten 2*5) - added '//#undef NAME' to remove a variable definition from context - added '//#error EXPR' and '//#warning EXPR' directives to throw exception and log warnings - added support of custom line separator through the 'jcp.line.separator' system property - added '//#noautoflush' to prevent auto saving text buffers after file preprocessing How to use =========== The Preprocessor can be used by different ways: - as ANT task, and with Android SDK - as Maven plugin - [with Gradle through ANT task](https://github.com/raydac/java-comment-preprocessor/wiki/AndroidGradlePreprocessing) - as Java framework with direct class calls - as external utility through CLI (command line interface) The Preprocessor is published in the Maven Central so that can be added in Maven projects without any problems ``` ... com.igormaznitsa jcp 6.0.0 preprocessSources generate-sources preprocess clearGeneratedFolders clear ... ``` How to use from command line ============================= The Preprocessor jar can be started under Java as a console application. Let's take a look at short example below how to start in command line under Linux The Easy variant of usage: ``` java -jar jcp-6.0.0.jar --i:./test --o:./result ``` The Example just preprocess files from ./test folder which extensions allowed to be preprocessed by default, and places result into ./result folder, but keep in your mind that the preprocessor copies not all files, XML files will not be preprocessed by default. Files which extension are not marked for preprocessing will be just copied (of course if the extensions is not in the list of excluded file extensions) More complex example: ``` java -jar jcp-6.0.0.jar --c --r --v --f:java,xml --ef:none --i:./test --o:./result '--p:HelloWorld=$Hello world$' ``` - --c clear the destination folder before work - --r remove all Java-style comments from preprocessed result files - --v show verbose log about preprocessing process - --f include .java and .xml files into preprocessing (by default the preprocessor doesn't preprocess XNL files and the extension should to be defined explicitly) - --ef don't exclude any extension from preprocessing - --i use ./test as source folder - --o use ./result as destination folder - --p define named global variable HelloWorld? with the 'Hello world' content The Main idea ============== The Java language was born without any preprocessor in creator's mind and even now there are not any plans to include preprocessing into Java. It was good until mass usage Java on mobile and TV devices where we have bunches of half-compatible devices with (sometime) very bizarre standard framework implementations. In the case, preprocessing allows to decrease support of sources dramatically. The only possible way to include preprocessing directives into Java and to not break standard processes and Java tool chain is to inject them into comments, take a look at the example below: ```Java //#local TESTVAR="TEST LOCAL VARIABLE" //#echo TESTVAR=/*$TESTVAR$*/ //#include "./test/_MainProcedure.java" public static final void testproc() { System.out.println(/*$VARHELLO$*/); System.out.println("// Hello commentaries"); //#local counter=10 //#while counter!=0 System.out.println("Number /*$counter$*/"); //#local counter=counter-1 //#end System.out.println("Current file name is /*$SRV_CUR_FILE$*/"); System.out.println("Output dir is /*$SRV_OUT_DIR$*/"); //#if issubstr("Hello","Hello world") System.out.println("Substring found"); //#endif } ``` Multi-sectioned documents ========================== Java sources usually have sections, there are the import section and the main section thus JCP has support for such case and there are three section where the preprocessor can write results - the prefix, the middle part and the postfix. Usually I use the prefix to form the import section for Java files. You can switch the text output for sections with //#prefix[+|-] and //#postfix[+|-] directives. ```Java //#prefix+ import java.lang.*; //#prefix- public class Main { //#prefix+ import java.util.*; //#prefix- public static void main(String ... args){} } ``` OMG! It allows to remove all your comments! ============================================ Sometime it is very useful to remove all comments from my sources at all, JCP has such feature which can be turned on by special flag or command line switcher (see wiki). The Example of use for comment removing through CLI interface ``` java -jar ./jcp-6.0.0.jar --i:/sourceFolder --o:/resultFolder -ef:none --r ``` Donation ========= If you like the software you can make some donation to the author [![https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=AHWJHJFBAWGL2) java-comment-preprocessor-6.0.1/changelog.txt000066400000000000000000000074441263163240400213250ustar00rootroot000000000000006.0.1 - improved the MAVEN plugin to hide content of potentially sensitive properties from printing into Maven log (issue #2) - added --z option ('compareDestination' in MAVEN and ANT) to check content of existing result file and to not replace it if content equals (issue #1), by default turned off because makes some overhead - fixed --c argument usage in CLI, now by default the preprocessor started in CLI doesn't clear its output folder, use --c to turn it on - improved tests - minor bug-fixing 6.0.0 - bugfixing and log improvement - RENAMED DIRECTIVE! //#assert renamed to appropriate name //#echo - RENAMED FUNCTIONS! renamed XML functions to more appropriate and short names - xml_getRoot to xml_root - xml_elementAt to xml_get - xml_elementsNumber to xml_size - xml_getAttribute to xml_attr - xml_getElementName to xml_name - xml_getElementsForName to xml_list - xml_getElementText to xml_text - fixed //#exit and //#exitif behavior to prevent total exit and return level up in include stack - added //#abort directive to provide possibility to stop preprocessing immediately without errors - added function 'STR evalfile(STR)' for local preprocessing of a file body and return it as a string - added predefined variables 'line','filename','filefolder' and 'file' which allow to get name and path parameters for the current preprocessing file path - added predefined variables 'time','date' and 'timestamp' which work similar C++ predefined macroses - added function 'STR str2java(STR,BOOL)' to escape and split string to be presented as java sources - added functions 'STR str2js(STR)', 'STR str2json(STR)','STR str2xml(STR)' and 'STR str2csv(STR)' - added functions 'STR xml_xlist(STR,STR)' and 'STR xml_xelement(STR,STR)' which allow to use xpath to get element lists an elements - apache common-io and common-lang libraries have been packed into the jar and hidden - added the short variant '//#ifdef BOOL' for '//#ifdefined BOOL' - added '//#ifndef BOOL' to check that a variable is undefined - added '//#definel NAME' and '//#define NAME' to define local and global variables, they can use not only the default TRUE value for defined variables, but also result of expression (example: //#define ten 2*5) - added '//#undef NAME' to remove a variable definition from context - added '//#error EXPR' and '//#warning EXPR' directives to throw exception and log warnings - added support of custom line separator through the 'jcp.line.separator' system property - added '//#noautoflush' to prevent auto saving text buffers after file preprocessing 5.3.4 - added support of test source folder preprocessing for maven projects - added the "clear" maven goal to clear created preprocessing folders or any defined folders and files - by default the maven plugin trying to keep numeration of lines in preprocessed files (the 'keepLines' is true by default) 5.3.3 - fixed the bug in the comment removing (multiple stars before closing slash) - fixed the exception if there is not any organization tag in a project pom.xml - added support for '-' and '--' prefixes in CLI arguments - improved CLI argument error messaging - the license has been changed to Apache 2.0 5.3.2 - very minor refactoring. - fixed issue (ID 5) "Removing strings contain only spaces" - the first version published in the maven central 5.3.1 - very minor bug-fixing, added the main-class attribute in the preprocessor JAR Manifest 5.3 - Added feature to keep non-executing lines as commented ones (/k command line key), all non-executing lines will be saved in the output as commented ones 5.2 - Fixed issue (ID 3). The default charset was used to read text files. 5.1 - Fixed issue (ID 1). Inaccessible functionality both "load a file with global variables" and "define global variable" through a command line call. 5.0 - The initial published version of totally reworked preprocessor java-comment-preprocessor-6.0.1/logo.svg000066400000000000000000000430621263163240400203120ustar00rootroot00000000000000 image/svg+xml java-comment-preprocessor-6.0.1/pom.xml000066400000000000000000000310411263163240400201400ustar00rootroot00000000000000 4.0.0 com.igormaznitsa jcp 6.0.1 maven-plugin Java Comment Preprocessor A Multi-pass java based preprocessor which directives can be injected as Java comments https://github.com/raydac/java-comment-preprocessor UTF-8 ${maven.build.timestamp} yyyyMMddHHmm ${user.home}/Programs/apache-maven-3.3.9 GitHub Issues https://github.com/raydac/java-comment-preprocessor/issues 2011 raydac Igor Maznitsa rrg4400@gmail.com http://www.igormaznitsa.com +2 Author 3.0 https://github.com/raydac/java-comment-preprocessor scm:git:git://github.com/raydac/java-comment-preprocessor.git scm:git:git@github.com:raydac/java-comment-preprocessor.git Igor Maznitsa http://www.igormaznitsa.com The Apache Software License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt repo integration-tests maven-failsafe-plugin 2.19 integration-test verify UTF-8 maven.home ${maven.home} plugin.jar ${project.build.directory}/${project.build.finalName}.jar project.pom ${basedir}/pom.xml prepare-distributive org.apache.maven.plugins maven-assembly-plugin 2.4 make-distributive install single false ${project.artifactId}-${project.version}-${timestamp}-distr src/assemble/distribution.xml make-bundle install single src/assemble/bundle.xml org.apache.maven.plugins maven-javadoc-plugin 2.9 generate-javadoc package jar org.apache.maven.plugins maven-gpg-plugin 1.4 sign-artifacts verify sign org.apache.maven.plugin-tools maven-plugin-annotations 3.3 provided org.apache.maven maven-plugin-api 3.0.3 compile org.apache.maven maven-core 3.0.3 compile junit junit 4.11 test org.mockito mockito-all 1.10.8 test org.apache.ant ant 1.8.2 compile org.apache.maven.plugin-testing maven-plugin-testing-harness 2.0 test org.apache.maven.shared maven-verifier 1.3 test org.apache.maven.shared maven-shared-jar 1.1 test org.apache.maven.shared file-management 1.2.1 org.apache.ant ant-testutil 1.8.2 test commons-io commons-io 2.4 compile org.apache.commons commons-lang3 3.4 compile org.apache.maven.plugins maven-plugin-plugin 3.3 true mojo-descriptor descriptor help-goal helpmojo org.apache.maven.plugins maven-shade-plugin 2.4.2 package shade org.apache.commons hidden.jcp.org.apache.commons commons-io:* org.apache.commons:* org.apache.maven.plugins maven-jar-plugin 2.6 com.igormaznitsa.jcp.JCPreprocessor org.apache.maven.plugins maven-site-plugin 3.4 org.codehaus.mojo cobertura-maven-plugin 2.6 org.apache.maven.plugins maven-compiler-plugin 3.3 -Xlint:all true 1.6 1.6 true true **/JCPreprocessor/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project/**/*.java org.apache.maven.plugins maven-source-plugin 2.4 generate-sources package jar org.codehaus.mojo animal-sniffer-maven-plugin 1.14 org.codehaus.mojo.signature java16-sun 1.10 ensure-java-1.6-class-library test check org.codehaus.mojo exec-maven-plugin 1.4.0 java com.igormaznitsa.jcp.JCPreprocessor --i:/home/igorm/1/cc/Source --o:/home/igorm/1/cc/Preprocessed java-comment-preprocessor-6.0.1/src/000077500000000000000000000000001263163240400174135ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/assemble/000077500000000000000000000000001263163240400212065ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/assemble/bundle.xml000077500000000000000000000017701263163240400232110ustar00rootroot00000000000000 bundle false false jar ${project.build.directory} / *.jar.asc *.jar *.pom *.pom.asc original*.* *.zip java-comment-preprocessor-6.0.1/src/assemble/distribution.xml000077500000000000000000000026661263163240400244640ustar00rootroot00000000000000 distr false false tar.gz ${project.basedir} /project target/ texts/ nbactions.xml catalog.xml **/.* /lib ${project.basedir}/target ${project.build.finalName}.jar /lib ${project.basedir} pom.xml / ${basedir}/texts *.* java-comment-preprocessor-6.0.1/src/main/000077500000000000000000000000001263163240400203375ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/000077500000000000000000000000001263163240400212605ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/000077500000000000000000000000001263163240400220365ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/000077500000000000000000000000001263163240400245455ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/000077500000000000000000000000001263163240400253215ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/InfoHelper.java000077500000000000000000000150731263163240400302300ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp; import com.igormaznitsa.jcp.cmdline.CommandLineHandler; import com.igormaznitsa.jcp.context.JCPSpecialVariableProcessor; import com.igormaznitsa.jcp.directives.AbstractDirectiveHandler; import com.igormaznitsa.jcp.expression.ValueType; import com.igormaznitsa.jcp.expression.functions.AbstractFunction; import com.igormaznitsa.jcp.expression.operators.AbstractOperator; import java.util.*; public final class InfoHelper { private InfoHelper() { } public static final String DELIMITER = "-------------------------------------------------"; public static String getVersion() { return "v6.0.1"; } public static String getCopyright() { return "2003-2015 Author: Igor A. Maznitsa (igor.maznitsa@igormaznitsa.com)"; } public static String getSite() { return "Project page: https://github.com/raydac/java-comment-preprocessor"; } public static String getProductName() { return "Java Comment Preprocessor"; } public static List makeTextForHelpInfo() { final List result = new ArrayList(); result.add(JCPreprocessor.class.getCanonicalName() + " [@cfg_file] [cli_directives]"); result.add(""); result.add("Command line directives\n------------"); result.add("\n(!)Historically all directives are prefixed by '/' but since 5.3.3 both '-' and '--' prefixes are allowed\n"); result.add(makeColumns("@cfg_file", "file contains global definition list", 14)); for (final CommandLineHandler handler : JCPreprocessor.getCommandLineHandlers()) { result.add(makeCommandLineKeyReference(handler)); } result.add(DELIMITER); result.add("Preprocessor directives (THE PREPROCESSOR IS A TWO-PASS ONE)\n------------"); for (final AbstractDirectiveHandler handler : AbstractDirectiveHandler.DIRECTIVES) { result.add(makeDirectiveReference(handler)); } result.add(DELIMITER); result.add("Special string directives\n------------"); result.add(makeSpecialDirectiveReference("//$", "replace macroses in following text and out result")); result.add(makeSpecialDirectiveReference("//$$", "works like //$ but without macros replacement")); result.add(makeSpecialDirectiveReference("/*-*/", "discard the following text tail")); result.add("Operators\n------------"); for (final AbstractOperator handler : AbstractOperator.ALL_OPERATORS) { result.add(makeOperatorReference(handler)); } result.add(DELIMITER); result.add("Functions\n------------"); for (final AbstractFunction handler : AbstractFunction.ALL_FUNCTIONS) { result.add(makeFunctionReference(handler)); } result.add(DELIMITER); result.add("Data types\n------------"); result.add("BOOLEAN: true,false"); result.add("INTEGER: 2374,0x56FE (signed 64 bit)"); result.add("STRING : \"Hello World!\" (or $Hello World!$ for the command string)"); result.add("FLOAT : 0.745 (signed 32 bit)"); result.add(DELIMITER); result.add("Special variables\n------------"); for (final JCPSpecialVariableProcessor.NameReferencePair p : JCPSpecialVariableProcessor.getReference()) { result.add(makeSpecialVariableReference(p)); } return result; } private static String makeSpecialVariableReference(final JCPSpecialVariableProcessor.NameReferencePair p) { final String name = p.getName(); final String ref = p.getReference(); return makeColumns(name, ref, 24); } private static String makeCommandLineKeyReference(final CommandLineHandler handler) { final String key = handler.getKeyName(); final String descr = handler.getDescription(); return makeColumns(key, descr, 14); } private static String makeDirectiveReference(final AbstractDirectiveHandler directive) { final StringBuilder activityPasses = new StringBuilder(); int i = 0; if (directive.isGlobalPhaseAllowed()){ i++; activityPasses.append("1st"); } if (directive.isPreprocessingPhaseAllowed()){ if (i>0) activityPasses.append(','); activityPasses.append("2th"); i++; } activityPasses.append(i>1 ? "passes" : " pass"); final String directiveName = directive.getFullName(); final String descr = (directive.isDeprecated() ? "{DEPRECATED} " : "") + directive.getReference() + " (" + activityPasses.toString() + ')'; return makeColumns(directiveName, descr, 16); } private static String makeSpecialDirectiveReference(final String name, final String reference) { return makeColumns(name, reference, 14); } private static String makeOperatorReference(final AbstractOperator operator) { final String operatorName = operator.getKeyword(); final String descr = operator.getReference(); return makeColumns(operatorName, descr, 14); } private static String makeFunctionReference(final AbstractFunction func) { final String funcName = func.getName(); final String descr = func.getReference(); final StringBuilder variants = new StringBuilder(" ["); final String result = func.getResultType().getSignature().toUpperCase(Locale.ENGLISH); int variantIndex = 0; for (ValueType[] signature : func.getAllowedArgumentTypes()) { if (variantIndex > 0) { variants.append(" | "); } variants.append(result).append(' ').append(funcName).append(" ("); for (int i = 0; i < signature.length; i++) { if (i > 0) { variants.append(','); } variants.append(signature[i].getSignature().toUpperCase(Locale.ENGLISH)); } variants.append(')'); variantIndex++; } variants.append(']'); return makeColumns(funcName, descr, 24) + variants.toString(); } private static String makeColumns(final String name, final String reference, final int firstColumnWidth) { final int spaces = firstColumnWidth - name.length(); final StringBuilder result = new StringBuilder(name); for (int i = 0; i < spaces; i++) { result.append(' '); } result.append(reference); return result.toString(); } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/JCPreprocessor.java000077500000000000000000000356161263163240400311050ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp; import com.igormaznitsa.jcp.cmdline.*; import com.igormaznitsa.jcp.containers.FileInfoContainer; import com.igormaznitsa.jcp.context.*; import com.igormaznitsa.jcp.directives.*; import com.igormaznitsa.jcp.exceptions.*; import com.igormaznitsa.jcp.expression.*; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.io.*; import java.util.*; import org.apache.commons.io.FileUtils; /** * The main class implements the Java Comment Preprocessor, it has the main * method and can be started from a command string * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class JCPreprocessor { public static final class PreprocessingStatistics { private final int numberOfPreprocessed; private final int numberOfCopied; public PreprocessingStatistics (final int numberOfPreprocessed, final int numberOfCopied) { this.numberOfPreprocessed = numberOfPreprocessed; this.numberOfCopied = numberOfCopied; } public int getNumberOfCopied () { return this.numberOfCopied; } public int getNumberOfPreprocessed () { return this.numberOfPreprocessed; } } private final PreprocessorContext context; static final CommandLineHandler[] COMMAND_LINE_HANDLERS = new CommandLineHandler[]{ new HelpHandler(), new InCharsetHandler(), new OutCharsetHandler(), new ClearDstDirectoryHandler(), new SourceDirectoryHandler(), new DestinationDirectoryHandler(), new FileExtensionsHandler(), new ExcludedFileExtensionsHandler(), new RemoveCommentsHandler(), new KeepLineHandler(), new CompareDestinationContentHandler(), new VerboseHandler(), new GlobalVariableDefiningFileHandler(), new GlobalVariableHandler(), new CareForLastNextLineCharHandler() }; public static Iterable getCommandLineHandlers () { return Arrays.asList(COMMAND_LINE_HANDLERS); } public PreprocessorContext getContext () { return context; } public JCPreprocessor (final PreprocessorContext context) { PreprocessorUtils.assertNotNull("Configurator is null", context); this.context = context; } public PreprocessingStatistics execute () throws IOException { final long timeStart = System.currentTimeMillis(); processCfgFiles(); final File[] srcDirs = context.getSourceDirectoryAsFiles(); final Collection filesToBePreprocessed = findAllFilesToBePreprocessed(srcDirs); final List excludedIf = processGlobalDirectives(filesToBePreprocessed); processFileExclusion(excludedIf); if (!context.isFileOutputDisabled()) { createDestinationDirectory(); } final PreprocessingStatistics stat = preprocessFiles(filesToBePreprocessed); final long elapsedTime = System.currentTimeMillis() - timeStart; this.context.logInfo("-----------------------------------------------------------------"); this.context.logInfo("Completed, preprocessed " + stat.getNumberOfPreprocessed() + " files, copied " + stat.getNumberOfCopied() + " files, elapsed time " + elapsedTime + "ms"); return stat; } private void processFileExclusion (final List foundExcludeIf) { final String DIRECTIVE_NAME = new ExcludeIfDirectiveHandler().getFullName(); for (final PreprocessingState.ExcludeIfInfo item : foundExcludeIf) { final String condition = item.getCondition(); final File file = item.getFileInfoContainer().getSourceFile(); Value val = null; if (context.isVerbose()) { context.logForVerbose("Processing condition '" + condition + "' for file '" + file.getAbsolutePath() + "'"); } try { val = Expression.evalExpression(condition, context); } catch (IllegalArgumentException ex) { throw new PreprocessorException("Wrong expression at " + DIRECTIVE_NAME, condition, new FilePositionInfo[]{new FilePositionInfo(file, item.getStringIndex())}, ex); } if (val.getType() != ValueType.BOOLEAN) { throw new PreprocessorException("Expression at " + DIRECTIVE_NAME + " is not a boolean one", condition, new FilePositionInfo[]{new FilePositionInfo(file, item.getStringIndex())}, null); } if (val.asBoolean()) { item.getFileInfoContainer().setExcluded(true); if (context.isVerbose()) { context.logForVerbose("File '" + file.getAbsolutePath() + "' excluded because '" + condition + "' returns TRUE"); } } } } private List processGlobalDirectives (final Collection files) throws IOException { final List result = new ArrayList(); for (final FileInfoContainer fileRef : files) { if (!(fileRef.isExcludedFromPreprocessing() || fileRef.isForCopyOnly())) { final long startTime = System.currentTimeMillis(); result.addAll(fileRef.processGlobalDirectives(null, context)); final long elapsedTime = System.currentTimeMillis() - startTime; if (context.isVerbose()) { context.logForVerbose("Global search completed for file '" + PreprocessorUtils.getFilePath(fileRef.getSourceFile()) + "', elapsed time " + elapsedTime + "ms"); } } } return result; } private PreprocessingStatistics preprocessFiles (final Collection files) throws IOException { int prepFileCounter = 0; int copFileCounter = 0; for (final FileInfoContainer fileRef : files) { if (fileRef.isExcludedFromPreprocessing()) { // do nothing } else if (fileRef.isForCopyOnly()) { if (!context.isFileOutputDisabled()) { final File destinationFile = context.createDestinationFileForPath(fileRef.getDestinationFilePath()); boolean doCopy = true; if (this.context.isCompareDestination()) { if (PreprocessorUtils.isFileContentEquals(fileRef.getSourceFile(), destinationFile)){ doCopy = false; if (context.isVerbose()) { context.logForVerbose("Ignore copying because exists with the same content : " + PreprocessorUtils.getFilePath(fileRef.getSourceFile()) + " -> {dst}" + fileRef.getDestinationFilePath()); } } } if (doCopy) { if (context.isVerbose()) { context.logForVerbose("Copy file " + PreprocessorUtils.getFilePath(fileRef.getSourceFile()) + " -> {dst}" + fileRef.getDestinationFilePath()); } PreprocessorUtils.copyFile(fileRef.getSourceFile(), destinationFile); copFileCounter++; } } } else { final long startTime = System.currentTimeMillis(); fileRef.preprocessFile(null, context); final long elapsedTime = System.currentTimeMillis() - startTime; if (context.isVerbose()) { context.logForVerbose("File preprocessing completed '" + PreprocessorUtils.getFilePath(fileRef.getSourceFile()) + "', elapsed time " + elapsedTime + "ms"); } prepFileCounter++; } } final PreprocessingStatistics stat = new PreprocessingStatistics(prepFileCounter, copFileCounter); return stat; } private void createDestinationDirectory () throws IOException { final File destination = context.getDestinationDirectoryAsFile(); final boolean destinationExistsAndDirectory = destination.exists() && destination.isDirectory(); if (context.doesClearDestinationDirBefore()) { if (destinationExistsAndDirectory) { try { FileUtils.cleanDirectory(destination); } catch (IOException ex) { throw new IOException("I can't clean the destination directory [" + PreprocessorUtils.getFilePath(destination) + ']', ex); } } } if (!destinationExistsAndDirectory) { if (!destination.mkdirs()) { throw new IOException("I can't make the destination directory [" + PreprocessorUtils.getFilePath(destination) + ']'); } } } private Collection findAllFilesToBePreprocessed (final File[] srcDirs) throws IOException { final Collection result = new ArrayList(); for (final File dir : srcDirs) { final String canonicalPathForSrcDirectory = dir.getCanonicalPath(); final Set allFoundFiles = findAllFiles(dir); for (final File file : allFoundFiles) { if (context.isFileExcludedFromProcess(file)) { // ignore excluded file continue; } final String filePath = file.getCanonicalPath(); final String relativePath = filePath.substring(canonicalPathForSrcDirectory.length()); final FileInfoContainer reference = new FileInfoContainer(file, relativePath, !context.isFileAllowedToBeProcessed(file)); result.add(reference); } } return result; } private Set findAllFiles (final File dir) { final Set result = new HashSet(); final File[] allowedFiles = dir.listFiles(); for (final File file : allowedFiles) { if (file.isDirectory()) { result.addAll(findAllFiles(file)); } else { result.add(file); } } return result; } public static void main (final String... args) { printHeader(); final String[] normalizedStrings = PreprocessorUtils.replaceStringPrefix(new String[]{"--", "-"}, "/", PreprocessorUtils.replaceChar(args, '$', '\"')); final PreprocessorContext preprocessorContext; try { preprocessorContext = processCommandString(null, args, normalizedStrings); } catch (IOException ex) { System.err.println("Error during command line processing [" + ex.getMessage() + ']'); System.exit(1); throw new RuntimeException("To show compiler executiion stop"); } final JCPreprocessor preprocessor = new JCPreprocessor(preprocessorContext); try { preprocessor.execute(); } catch (Exception unexpected) { System.err.println(PreprocessorException.referenceAsString(' ', unexpected)); System.exit(1); } System.exit(0); } private static PreprocessorContext processCommandString (final PreprocessorContext context, final String[] originalStrings, final String[] normalizedStrings) throws IOException { final PreprocessorContext result = context == null ? new PreprocessorContext() : context; for (int i = 0; i < normalizedStrings.length; i++) { final String arg = normalizedStrings[i]; boolean processed = false; for (final CommandLineHandler processor : getCommandLineHandlers()) { if (processor.processCommandLineKey(arg, result)) { processed = true; if (processor instanceof HelpHandler) { help(); System.exit(2); } break; } } if (!processed) { System.err.println("Can't process a command line argument, may be some wrong usage : " + originalStrings[i]); System.out.println(); System.out.println("Take a look at the CLI help below, please"); help(); System.exit(1); } } return result; } void processCfgFiles () throws IOException { for (final File file : context.getConfigFiles()) { final String[] wholeFile = PreprocessorUtils.readWholeTextFileIntoArray(file, "UTF-8", null); int readStringIndex = -1; for (final String curString : wholeFile) { final String trimmed = curString.trim(); readStringIndex++; if (trimmed.isEmpty() || trimmed.charAt(0) == '#') { // do nothing } else if (trimmed.charAt(0) == '@') { PreprocessorUtils.throwPreprocessorException("You can't start any string in a global variable defining file with \'@\'", trimmed, file, readStringIndex, null); } else if (trimmed.charAt(0) == '/') { // a command line argument boolean processed = false; try { for (CommandLineHandler handler : getCommandLineHandlers()) { if (context.isVerbose()) { context.logForVerbose("Processing сonfig file key \'" + trimmed + "\' at " + file.getName() + ':' + (readStringIndex + 1)); } if (handler.processCommandLineKey(trimmed, context)) { processed = true; break; } } } catch (Exception unexpected) { PreprocessorUtils.throwPreprocessorException("Exception during directive processing", trimmed, file, readStringIndex, unexpected); } if (!processed) { PreprocessorUtils.throwPreprocessorException("Unsupported or disallowed directive", trimmed, file, readStringIndex, null); } } else { // a global variable final String[] splitted = PreprocessorUtils.splitForEqualChar(trimmed); if (splitted.length != 2) { PreprocessorUtils.throwPreprocessorException("Wrong variable definition", trimmed, file, readStringIndex, null); } final String name = splitted[0].trim().toLowerCase(Locale.ENGLISH); final String expression = splitted[1].trim(); if (name.isEmpty()) { PreprocessorUtils.throwPreprocessorException("Empty variable name detected", trimmed, file, readStringIndex, null); } try { final Value result = Expression.evalExpression(expression, context); context.setGlobalVariable(name, result); if (context.isVerbose()) { context.logForVerbose("Register global variable " + name + " = " + result.toString() + " (" + file.getName() + ':' + (readStringIndex + 1) + ')'); } } catch (Exception unexpected) { PreprocessorUtils.throwPreprocessorException("Can't process the global variable definition", trimmed, file, readStringIndex, unexpected); } } } } } private static void printHeader () { System.out.println(InfoHelper.getProductName() + ' ' + InfoHelper.getVersion()); System.out.println(InfoHelper.getSite()); System.out.println(InfoHelper.getCopyright()); } private static void help () { System.out.println(); for (final String str : InfoHelper.makeTextForHelpInfo()) { System.out.println(str); } } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/ant/000077500000000000000000000000001263163240400261035ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/ant/PreprocessTask.java000077500000000000000000000311221263163240400317200ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.ant; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.context.SpecialVariableProcessor; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.logger.PreprocessorLogger; import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; /** * The class implements an ANT task to allow calls for preprocessing from ANT * build scripts. Also it allows to out messages from preprocessor directives * into the ANT log and read ANT properties as global variables (with the "ant." * prefix) * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class PreprocessTask extends Task implements PreprocessorLogger, SpecialVariableProcessor { /** * Inside class describes a "cfgfile" item, it has the only attribute "file", * the attribute must be defined * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public static class CfgFile { private File file; public void setFile(final File file) { this.file = file; } public File getFile() { return this.file; } } /** * Inside class describes a "global" item, it describes a global variable * which will be added into the preprocessor context It has attributes "name" * and "value", be careful in the value attribute usage because you have to * use """ instead of \" symbol inside string values * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public static class Global { private String name; private String value; public void setName(final String name) { this.name = name; } public String getName() { return this.name; } public void setValue(final String value) { this.value = value; } public String getValue() { return this.value; } } private File sourceDirectory = null; private File destinationDirectory = null; private String inCharSet = null; private String outCharSet = null; private String excludedExtensions = null; private String processing = null; private boolean disableOut = false; private boolean verbose = false; private boolean clearDstFlag = false; private boolean removeComments = false; private boolean keepLines = false; private boolean careForLastNextLine = false; private boolean compareDestination = false; private Map antVariables; private final List globalVariables = new ArrayList(); private final List configFiles = new ArrayList(); /** * Set the "compareDestination" attribute, it allows to turn on the mode to compare destination file content and to not override the file by generated one if there is the same content. * * @param flag true if to compare destination file content, false otherwise */ public void setCompareDestiation(final boolean flag){ this.compareDestination = flag; } /** * Set the "source" attribute, it allows to define the source directory to be * preprocessed * * @param src a directory to be used as the source one, must not be null */ public void setSource(final File src) { this.sourceDirectory = src; } /** * Set the "careforlastnextline" attribute, it allows to make precise processing of last next line char * * @param flag shows to turn on or turn off the mode */ public void setCareForLastNextLine(final boolean flag) { this.careForLastNextLine = flag; } /** * Set the "destination" attribute, it allows to define the destination * directory where the preprocessed files will be placed in * * @param dst a directory to be used as the destination one, must not be null */ public void setDestination(final File dst) { this.destinationDirectory = dst; } /** * Set the "inCharset" attribute, it allows to define the text encoding for * the reading text files * * @param charSet the character set to be used to decode read texts, must not * be null */ public void setInCharset(final String charSet) { this.inCharSet = charSet; } /** * Set the "outCharset" attribute, it allows to define the text encoding for * the writing text files * * @param charSet the character set to be used to encode written texts, must * not be null */ public void setOutCharset(final String charSet) { this.outCharSet = charSet; } /** * Set the "excluded" attribute, it defines the excluded file extensions which * will be ignored by the preprocessor in its work (also those files will not * be copied) * * @param ext the list of ignored file extensions, must not be null */ public void setExcluded(final String ext) { this.excludedExtensions = ext; } /** * Set the "processing" attribute, it defines the file extensions to be * processed * * @param ext the list of file extensions which should be preprocessed, must * not be null */ public void setProcessing(final String ext) { this.processing = ext; } /** * Set the "clear" attribute, it is a boolean attribute allows to make the * preprocessor to clear the destination directory before its work * * @param flag true if the destination directory must be cleared before * preprocessing, otherwise false */ public void setClear(final boolean flag) { this.clearDstFlag = flag; } /** * Set the "removeComments" attribute, it is a boolean attribute allows to * make the preprocessor to remove all Java-like comments from the result * files * * @param flag true if the result file must be cleared from comments, * otherwise false */ public void setRemoveComments(final boolean flag) { this.removeComments = flag; } /** * Set the "verbose" attribute, it is a boolean attribute allows to set the * verbose level of preprocessor messages * * @param flag true if the verbose level must be set, otherwise false */ public void setVerbose(final boolean flag) { this.verbose = flag; } /** * Set the "keepLines" attribute, it is a boolean attribute to keep * non-executing lines as commented ones in the output * * @param flag true if preprocessor should keep the lines as commented ones, * false otherwise */ public void setKeepLines(final boolean flag) { this.keepLines = flag; } /** * Set the "disableOut" attribute, it is a boolean attribute allows to disable * any output operations into the destination directory * * @param flag true if the output operations must be disabled, otherwise false */ public void setDisableOut(final boolean flag) { this.disableOut = flag; } public Global createGlobal() { final Global result = new Global(); globalVariables.add(result); return result; } public CfgFile createCfgFile() { final CfgFile result = new CfgFile(); configFiles.add(result); return result; } private void fillCfgFiles(final PreprocessorContext context) { for (final CfgFile f : configFiles) { if (f.getFile() != null) { context.addConfigFile(f.getFile()); } else { throw context.makeException("A Config file record doesn't contain the 'file' attribute",null); } } } private void fillGlobalVars(final PreprocessorContext context) { for (final Global g : globalVariables) { if (g.getName() != null && g.getValue() != null) { context.setGlobalVariable(g.getName(), Value.recognizeRawString(g.getValue())); } else { throw context.makeException("Wrong global definition, may be there is neither 'name' nor 'value' attribute",null); } } } PreprocessorContext generatePreprocessorContext() { fillAntVariables(); final PreprocessorContext context = new PreprocessorContext(); context.setPreprocessorLogger(this); context.registerSpecialVariableProcessor(this); if (this.destinationDirectory != null) { context.setDestinationDirectory(this.destinationDirectory.getAbsolutePath()); } if (this.sourceDirectory != null) { context.setSourceDirectories(this.sourceDirectory.getAbsolutePath()); } else { context.setSourceDirectories(getProject().getBaseDir().getAbsolutePath()); } if (this.excludedExtensions != null) { context.setExcludedFileExtensions(this.excludedExtensions); } if (this.processing != null) { context.setProcessingFileExtensions(this.processing); } if (this.inCharSet != null) { context.setInCharacterEncoding(this.inCharSet); } if (outCharSet != null) { context.setOutCharacterEncoding(this.outCharSet); } context.setCompareDestination(this.compareDestination); context.setClearDestinationDirBefore(this.clearDstFlag); context.setFileOutputDisabled(this.disableOut); context.setRemoveComments(this.removeComments); context.setVerbose(this.verbose); context.setKeepLines(this.keepLines); context.setCareForLastNextLine(this.careForLastNextLine); fillCfgFiles(context); fillGlobalVars(context); return context; } @Override public void execute() throws BuildException { PreprocessorContext context = null; JCPreprocessor preprocessor; try { context = generatePreprocessorContext(); } catch (Exception unexpected) { final PreprocessorException pp = PreprocessorException.extractPreprocessorException(unexpected); throw new BuildException(pp == null ? unexpected.getMessage() : pp.toString(), pp == null ? unexpected : pp); } preprocessor = new JCPreprocessor(context); try { preprocessor.execute(); } catch (Exception unexpected) { final PreprocessorException pp = PreprocessorException.extractPreprocessorException(unexpected); throw new BuildException(pp == null ? unexpected.getMessage(): pp.toString(), pp == null ? unexpected : pp); } } @Override public void error(final String message) { log(message, Project.MSG_ERR); } @Override public void info(final String message) { log(message, Project.MSG_INFO); } @Override public void debug(final String message) { log(message, Project.MSG_DEBUG); } @Override public void warning(final String message) { log(message, Project.MSG_WARN); } private void fillAntVariables() { final Project theProject = getProject(); Map result; if (theProject == null) { result = Collections.emptyMap(); } else { result = new HashMap(); for (final Object key : getProject().getProperties().keySet()) { final String keyStr = key.toString(); final String value = theProject.getProperty(keyStr); if (value != null) { result.put("ant." + keyStr.toLowerCase(Locale.ENGLISH), Value.valueOf(value)); } } } antVariables = result; } @Override public String[] getVariableNames() { String[] result; if (antVariables == null) { result = new String[0]; } else { result = antVariables.keySet().toArray(new String[antVariables.size()]); } return result; } @Override public Value getVariable(final String varName, final PreprocessorContext context) { if (antVariables == null) { throw context.makeException("Non-initialized ANT property map detected",null); } final Value result = antVariables.get(varName); if (result == null) { throw context.makeException("Request for unsupported Ant property \'" + varName + '\'',null); } return result; } @Override public void setVariable(final String varName, final Value value, final PreprocessorContext context) { throw context.makeException("Request to change ANT property \'" + varName + "\'. NB! ANT properties are read only!",null); } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/000077500000000000000000000000001263163240400267345ustar00rootroot00000000000000CareForLastNextLineCharHandler.java000066400000000000000000000024411263163240400354310ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; public class CareForLastNextLineCharHandler implements CommandLineHandler { private static final String ARG_NAME = "/N"; @Override public String getDescription() { return "accurate reproduction of the last line end char state (not the next line char!)"; } @Override public boolean processCommandLineKey(final String key, final PreprocessorContext context) { boolean result = false; if (ARG_NAME.equalsIgnoreCase(key)) { context.setCareForLastNextLine(true); result = true; } return result; } @Override public String getKeyName() { return ARG_NAME; } } ClearDstDirectoryHandler.java000077500000000000000000000027311263163240400344120ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The handler to process the key signals that the preprocessor must clear the * destination directory before preprocessing * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class ClearDstDirectoryHandler implements CommandLineHandler { private static final String ARG_NAME = "/C"; @Override public String getDescription() { return "clear destination folder before processing"; } @Override public boolean processCommandLineKey(final String key, final PreprocessorContext context) { boolean result = false; if (ARG_NAME.equalsIgnoreCase(key)) { context.setClearDestinationDirBefore(true); result = true; } return result; } @Override public String getKeyName() { return ARG_NAME; } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/CommandLineHandler.java000066400000000000000000000031251263163240400332640ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The interface describes a command line key handler. It is not just a handler * but it will be called for all met keys to recognize one to be processed. * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public interface CommandLineHandler { /** * Get the key name for the handler * * @return the key name as a String, must not be null */ String getKeyName(); /** * Get the description of the key (it will be printed into the help text) * * @return the description as a String */ String getDescription(); /** * Process a command line key * * @param key the command line key to be processed, must not be null * @param context the preprocessor context, must not be null * @return true if the key has been recognized and processed else false */ boolean processCommandLineKey(String key, PreprocessorContext context); } CompareDestinationContentHandler.java000066400000000000000000000027751263163240400361540ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2015 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * the Handler processes command to disable overriding of existing file if content the same. * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) * @since 6.0.1 */ public class CompareDestinationContentHandler implements CommandLineHandler { private static final String ARG_NAME = "/Z"; @Override public String getKeyName () { return ARG_NAME; } @Override public String getDescription () { return "to compare destination file content if it is detected and to not override if the content the same (makes overhead)"; } @Override public boolean processCommandLineKey (final String key, final PreprocessorContext context) { boolean result = false; if (ARG_NAME.equalsIgnoreCase(key)) { context.setCompareDestination(true); result = true; } return result; } } DestinationDirectoryHandler.java000077500000000000000000000034111263163240400351660ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.util.Locale; /** * The handler for the output directory command line key * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class DestinationDirectoryHandler implements CommandLineHandler { private static final String ARG_NAME = "/O:"; @Override public String getDescription() { return "define the destination folder (by default " + PreprocessorContext.DEFAULT_DEST_DIRECTORY + ')'; } @Override public boolean processCommandLineKey(final String key, final PreprocessorContext context) { boolean result = false; if (key != null && !key.isEmpty()) { if (key.toUpperCase(Locale.ENGLISH).startsWith(ARG_NAME)) { final String name = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key); if (!name.isEmpty()) { context.setDestinationDirectory(PreprocessorUtils.extractTail(ARG_NAME, key)); result = true; } } } return result; } @Override public String getKeyName() { return ARG_NAME; } } ExcludedFileExtensionsHandler.java000077500000000000000000000035411263163240400354410ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.util.Locale; /** * The handler for the excluded extension list (with comma) * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class ExcludedFileExtensionsHandler implements CommandLineHandler { private static final String ARG_NAME = "/EF:"; @Override public String getDescription() { return "set (case insensitive) file extensions which will be be excluded from preprocessing, they won't be both preprocessed and copied (by default " + PreprocessorContext.DEFAULT_EXCLUDED_EXTENSIONS + ')'; } @Override public boolean processCommandLineKey(final String key, final PreprocessorContext context) { boolean result = false; if (key != null && !key.isEmpty()) { if (key.toUpperCase(Locale.ENGLISH).startsWith(ARG_NAME)) { final String extensions = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key); if (!extensions.isEmpty()) { context.setExcludedFileExtensions(extensions); result = true; } } } return result; } @Override public String getKeyName() { return ARG_NAME; } } FileExtensionsHandler.java000077500000000000000000000034561263163240400337700ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.util.Locale; /** * The handler for the preprocessing file extension list (with comma) * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class FileExtensionsHandler implements CommandLineHandler { private static final String ARG_NAME = "/F:"; @Override public String getDescription() { return "set (case insensitive) preprocessing file extension list (with comma) (by default " + PreprocessorContext.DEFAULT_PROCESSING_EXTENSIONS + ')'; } @Override public boolean processCommandLineKey(final String key, final PreprocessorContext context) { boolean result = false; if (key != null && !key.isEmpty()) { if (key.toUpperCase(Locale.ENGLISH).startsWith(ARG_NAME)) { final String extensions = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key); if (!extensions.isEmpty()) { context.setProcessingFileExtensions(extensions); result = true; } } } return result; } @Override public String getKeyName() { return ARG_NAME; } } GlobalVariableDefiningFileHandler.java000077500000000000000000000055251263163240400361420ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.*; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.io.File; /** * The handler for '@' prefixed files in the command string * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class GlobalVariableDefiningFileHandler implements CommandLineHandler { private static final String ARG_NAME = "@"; @Override public String getDescription() { return "load global variable list from file defined by either path or expression (last one needs @@)"; } @Override public boolean processCommandLineKey(final String key, final PreprocessorContext context) { boolean result = false; if (key != null && !key.isEmpty() && key.charAt(0) == '@') { String stringRest = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key); if (stringRest.isEmpty()) { throw context.makeException("Empty string",null); } File file = null; if (stringRest.charAt(0) == '@') { stringRest = PreprocessorUtils.extractTrimmedTail("@", stringRest); if (context.isVerbose()){ context.logForVerbose("Global parameter file defined through expression \'"+stringRest+'\''); } final Value resultValue = Expression.evalExpression(stringRest, context); if (resultValue != null) { final String fileName = resultValue.toString(); file = new File(fileName); } else { throw context.makeException("Can't recognize expression to get global definition file [" + stringRest + ']',null); } } else { file = new File(stringRest); } if (context.isVerbose()) { context.logForVerbose("Reading global definition file [" + PreprocessorUtils.getFilePath(file) + "] \'" + stringRest + '\''); } if (file.isFile()) { context.addConfigFile(file); } else { throw context.makeException("Can't find the global definition file \'" + PreprocessorUtils.getFilePath(file) + '\'',null); } result = true; } return result; } @Override public String getKeyName() { return ARG_NAME; } } GlobalVariableHandler.java000077500000000000000000000045721263163240400336770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.*; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.util.Locale; /** * The handler for global variables, it adds met global variables into the * inside storage * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class GlobalVariableHandler implements CommandLineHandler { private static final String ARG_NAME = "/P:"; @Override public String getDescription() { return "define global variable, for instance /P:DEBUG=true (in command line use $ instead \" char)"; } @Override public boolean processCommandLineKey(final String key, final PreprocessorContext context) { boolean result = false; if (key != null && !key.isEmpty() && key.toUpperCase(Locale.ENGLISH).startsWith(ARG_NAME)) { final String nameAndExpression = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key); if (!nameAndExpression.isEmpty()) { final String[] splitted = PreprocessorUtils.splitForEqualChar(nameAndExpression); if (splitted.length != 2) { throw context.makeException("Illegal expression for directive '" + ARG_NAME + "' [" + nameAndExpression + ']',null); } final String value = splitted[0]; final String expression = splitted[1]; if (context.containsGlobalVariable(value)) { throw context.makeException("Duplicated global definition [" + value + ']',null); } final Value resultVal = Expression.evalExpression(expression, context); context.setGlobalVariable(value, resultVal); result = true; } } return result; } @Override public String getKeyName() { return ARG_NAME; } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/HelpHandler.java000077500000000000000000000035051263163240400317730ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import java.util.Locale; /** * The handler processes a help command from the command string * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class HelpHandler implements CommandLineHandler { private static final String[] ARG_NAMES = new String[]{"/H", "/?", "-H", "-?"}; @Override public String getDescription() { return "print information about preprocessor usage and its directives"; } @Override public boolean processCommandLineKey(final String key, final PreprocessorContext context) { boolean result = false; if (key != null && !key.isEmpty()) { final String argUpperCase = key.trim().toUpperCase(Locale.ENGLISH); for (final String str : ARG_NAMES) { if (str.equals(argUpperCase)) { result = true; break; } } } return result; } @Override public String getKeyName() { final StringBuilder result = new StringBuilder(); for (int li = 0; li < ARG_NAMES.length; li++) { if (li > 0) { result.append(','); } result.append(ARG_NAMES[li]); } return result.toString(); } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/InCharsetHandler.java000077500000000000000000000032731263163240400327650ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.util.Locale; /** * To set the input text character encoding * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class InCharsetHandler implements CommandLineHandler { private static final String ARG_NAME = "/T:"; @Override public String getKeyName() { return ARG_NAME; } @Override public String getDescription() { return "set the input encoding for text files (by default " + PreprocessorContext.DEFAULT_CHARSET + ')'; } @Override public boolean processCommandLineKey(final String key, final PreprocessorContext context) { boolean result = false; if (key != null) { if (key.toUpperCase(Locale.ENGLISH).startsWith(ARG_NAME)) { final String value = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key); if (!value.isEmpty()) { context.setInCharacterEncoding(value); result = true; } } } return result; } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/KeepLineHandler.java000077500000000000000000000027531263163240400326030ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The handler processing the flag tells the preprocessor to be try to keep * non-executing lines of code as commented ones * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class KeepLineHandler implements CommandLineHandler { private static final String ARG_NAME = "/K"; @Override public String getDescription() { return "keep line numeration in result files, print non-processed strings as commented ones"; } @Override public boolean processCommandLineKey(final String key, final PreprocessorContext context) { boolean result = false; if (ARG_NAME.equalsIgnoreCase(key)) { context.setKeepLines(true); result = true; } return result; } @Override public String getKeyName() { return ARG_NAME; } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/OutCharsetHandler.java000077500000000000000000000032441263163240400331640ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.util.Locale; /** * To set the output text character encoding * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class OutCharsetHandler implements CommandLineHandler { private static final String ARG_NAME = "/TT:"; @Override public String getKeyName() { return ARG_NAME; } @Override public String getDescription() { return "set the output encoding for text files (by default " + PreprocessorContext.DEFAULT_CHARSET + ')'; } @Override public boolean processCommandLineKey(final String key, final PreprocessorContext context) { boolean result = false; if (key != null && key.toUpperCase(Locale.ENGLISH).startsWith(ARG_NAME)) { final String value = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key); if (!value.isEmpty()) { context.setOutCharacterEncoding(value); result = true; } } return result; } } RemoveCommentsHandler.java000077500000000000000000000027071263163240400337720ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The handler processing the flag to clear all sources in the destination * directory from inside comments * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class RemoveCommentsHandler implements CommandLineHandler { private static final String ARG_NAME = "/R"; @Override public String getDescription() { return "remove comments from result files"; } @Override public boolean processCommandLineKey(final String argument, final PreprocessorContext configurator) { boolean result = false; if (ARG_NAME.equalsIgnoreCase(argument)) { configurator.setRemoveComments(true); result = true; } return result; } @Override public String getKeyName() { return ARG_NAME; } } SourceDirectoryHandler.java000077500000000000000000000034251263163240400341520ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.util.Locale; /** * The handler processing the key to set the source directory * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class SourceDirectoryHandler implements CommandLineHandler { private static final String ARG_NAME = "/I:"; @Override public String getDescription() { return "define the source folder for preprocessing (by default " + PreprocessorContext.DEFAULT_SOURCE_DIRECTORY + ')'; } @Override public boolean processCommandLineKey(final String key, final PreprocessorContext context) { boolean result = false; if (key != null && !key.isEmpty()) { if (key.toUpperCase(Locale.ENGLISH).startsWith(ARG_NAME)) { final String tail = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key); if (!tail.isEmpty()) { context.setSourceDirectories(PreprocessorUtils.extractTail(ARG_NAME, key)); result = true; } } } return result; } @Override public String getKeyName() { return ARG_NAME; } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/cmdline/VerboseHandler.java000077500000000000000000000027021263163240400325060ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The handler processing the flag that the preprocessor to be verbose in its * messages and information * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class VerboseHandler implements CommandLineHandler { private static final String ARG_NAME = "/V"; @Override public String getDescription() { return "turn on verbose logging, verbose messages printed in info stream"; } @Override public boolean processCommandLineKey(final String key, final PreprocessorContext context) { boolean result = false; if (ARG_NAME.equalsIgnoreCase(key)) { context.setVerbose(true); result = true; } return result; } @Override public String getKeyName() { return ARG_NAME; } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/containers/000077500000000000000000000000001263163240400274665ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/containers/FileInfoContainer.java000077500000000000000000000423461263163240400337030ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.containers; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.directives.AbstractDirectiveHandler; import com.igormaznitsa.jcp.directives.AfterDirectiveProcessingBehaviour; import com.igormaznitsa.jcp.directives.DirectiveArgumentType; import com.igormaznitsa.jcp.exceptions.FilePositionInfo; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.io.File; import java.io.IOException; import java.util.List; import java.util.Set; /** * The class is one from the main classes in the preprocessor because it * describes a preprocessing file and contains business logic for the process * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class FileInfoContainer { /** * The source file for the container */ private final File sourceFile; /** * The flag shows that the file should be just copied into the destination * place without any preprocessing */ private final boolean forCopyOnly; /** * The flag shows that the file has been excluded from preprocessing and it * will not be preprocessed and copied */ private boolean excludedFromPreprocessing; /** * The destination directory for the file */ private String destFolder; /** * The destination name for the file */ private String destFileName; public File getSourceFile() { return sourceFile; } public boolean isExcludedFromPreprocessing() { return excludedFromPreprocessing; } public boolean isForCopyOnly() { return forCopyOnly; } public String getDestinationDir() { return destFolder; } public String getDestinationName() { return destFileName; } public FileInfoContainer(final File srcFile, final String dstFileName, final boolean copyOnly) { PreprocessorUtils.assertNotNull("The source file is null", srcFile); PreprocessorUtils.assertNotNull("The destination file name is null", dstFileName); forCopyOnly = copyOnly; excludedFromPreprocessing = false; sourceFile = srcFile; int lastDirSeparator = dstFileName.lastIndexOf('/'); if (lastDirSeparator < 0) { lastDirSeparator = dstFileName.lastIndexOf('\\'); } if (lastDirSeparator < 0) { destFolder = "." + File.separatorChar; destFileName = dstFileName; } else { destFolder = dstFileName.substring(0, lastDirSeparator); destFileName = dstFileName.substring(lastDirSeparator + 1); } } public String getDestinationFilePath() { String dir = this.destFolder; if (!dir.isEmpty() && dir.charAt(dir.length() - 1) != File.separatorChar) { dir = dir + File.separatorChar; } return dir + destFileName; } @Override public String toString() { return "FileInfoContainer: source=" + PreprocessorUtils.getFilePath(sourceFile) + " destFolder=" + destFolder + " destFile=" + destFileName; } public List processGlobalDirectives(final PreprocessingState state, final PreprocessorContext context) throws IOException { final PreprocessingState preprocessingState = state == null ? context.produceNewPreprocessingState(this,0) : state; String leftTrimmedString = null; try { while (true) { String nonTrimmedProcessingString = preprocessingState.nextLine(); final Set processFlags = preprocessingState.getPreprocessingFlags(); if (processFlags.contains(PreprocessingFlag.END_PROCESSING) || processFlags.contains(PreprocessingFlag.ABORT_PROCESSING)) { if (!processFlags.contains(PreprocessingFlag.ABORT_PROCESSING)) { processFlags.remove(PreprocessingFlag.END_PROCESSING); } nonTrimmedProcessingString = null; } if (nonTrimmedProcessingString == null) { preprocessingState.popTextContainer(); if (preprocessingState.isIncludeStackEmpty()) { break; } else { continue; } } leftTrimmedString = PreprocessorUtils.leftTrim(nonTrimmedProcessingString); if (leftTrimmedString.startsWith(AbstractDirectiveHandler.DIRECTIVE_PREFIX)) { switch (processDirective(preprocessingState, PreprocessorUtils.extractTail(AbstractDirectiveHandler.DIRECTIVE_PREFIX, leftTrimmedString), context, true)) { case PROCESSED: case READ_NEXT_LINE: case SHOULD_BE_COMMENTED: continue; default: throw new Error("Unsupported result"); } } } } catch (Exception unexpected) { final PreprocessorException pp = PreprocessorException.extractPreprocessorException(unexpected); if (pp == null) { throw preprocessingState.makeException("Unexpected exception detected", leftTrimmedString, unexpected); } else { throw pp; } } if (!preprocessingState.isIfStackEmpty()) { final TextFileDataContainer lastIf = preprocessingState.peekIf(); throw new PreprocessorException("Unclosed " + AbstractDirectiveHandler.DIRECTIVE_PREFIX + "_if instruction detected", "", new FilePositionInfo[]{new FilePositionInfo(lastIf.getFile(), lastIf.getNextStringIndex())}, null); } return preprocessingState.popAllExcludeIfInfoData(); } /** * Preprocess file, NB! it doesn't clear local variables automatically for * cloned contexts * * @param state the start preprocessing state, can be null * @param context the preprocessor context, must not be null * @return the state for the preprocessed file * @throws IOException * @throws PreprocessorException */ public PreprocessingState preprocessFile(final PreprocessingState state, final PreprocessorContext context) throws IOException { // do not clear local variables for cloned context to keep them in the new context if (!context.isCloned()) { context.clearLocalVariables(); } final PreprocessingState preprocessingState = state != null ? state : context.produceNewPreprocessingState(this,1); String leftTrimmedString = null; TextFileDataContainer lastTextFileDataContainer = null; try { while (true) { String rawString = preprocessingState.nextLine(); final boolean presentedNextLine = preprocessingState.hasReadLineNextLineInEnd(); final Set processFlags = preprocessingState.getPreprocessingFlags(); if (processFlags.contains(PreprocessingFlag.END_PROCESSING) || processFlags.contains(PreprocessingFlag.ABORT_PROCESSING)) { if (!processFlags.contains(PreprocessingFlag.ABORT_PROCESSING)) { processFlags.remove(PreprocessingFlag.END_PROCESSING); } rawString = null; } if (preprocessingState.getPreprocessingFlags().contains(PreprocessingFlag.END_PROCESSING)) { preprocessingState.getPreprocessingFlags().remove(PreprocessingFlag.END_PROCESSING); rawString = null; } if (rawString == null) { lastTextFileDataContainer = preprocessingState.popTextContainer(); if (preprocessingState.isIncludeStackEmpty()) { break; } else { continue; } } leftTrimmedString = PreprocessorUtils.leftTrim(rawString); final String stringPrefix; if (leftTrimmedString.isEmpty()) { stringPrefix = rawString; } else { final int numberOfSpacesAtTheLineBeginning = rawString.indexOf(leftTrimmedString); if (numberOfSpacesAtTheLineBeginning > 0) { stringPrefix = rawString.substring(0, numberOfSpacesAtTheLineBeginning); } else { stringPrefix = ""; } } String stringToBeProcessed = leftTrimmedString; final boolean usePrintLn = presentedNextLine || !context.isCareForLastNextLine(); if (stringToBeProcessed.startsWith(AbstractDirectiveHandler.DIRECTIVE_PREFIX)) { final String extractedDirective = PreprocessorUtils.extractTail(AbstractDirectiveHandler.DIRECTIVE_PREFIX, stringToBeProcessed); switch (processDirective(preprocessingState, extractedDirective, context, false)) { case PROCESSED: case READ_NEXT_LINE: { if (context.isKeepLines()) { final String text = stringPrefix + AbstractDirectiveHandler.PREFIX_FOR_KEEPING_LINES_PROCESSED_DIRECTIVES + extractedDirective; if (usePrintLn) { preprocessingState.getPrinter().println(text); } else { preprocessingState.getPrinter().print(text); } } continue; } case SHOULD_BE_COMMENTED: { final String text = stringPrefix + AbstractDirectiveHandler.PREFIX_FOR_KEEPING_LINES_PROCESSED_DIRECTIVES + extractedDirective; if (usePrintLn) { preprocessingState.getPrinter().println(text); } else { preprocessingState.getPrinter().print(text); } continue; } default: throw new Error("Unsupported result"); } } if (preprocessingState.isDirectiveCanBeProcessed() && !preprocessingState.getPreprocessingFlags().contains(PreprocessingFlag.TEXT_OUTPUT_DISABLED)) { final boolean startsWithTwoDollars = leftTrimmedString.startsWith("//$$"); if (!startsWithTwoDollars) { stringToBeProcessed = PreprocessorUtils.processMacroses(leftTrimmedString, context); } if (startsWithTwoDollars) { // Output the tail of the string to the output stream without comments and macroses preprocessingState.getPrinter().print(stringPrefix); final String text = PreprocessorUtils.extractTail("//$$", leftTrimmedString); if (usePrintLn) { preprocessingState.getPrinter().println(text); } else { preprocessingState.getPrinter().print(text); } } else if (stringToBeProcessed.startsWith("//$")) { // Output the tail of the string to the output stream without comments preprocessingState.getPrinter().print(stringPrefix); final String text = PreprocessorUtils.extractTail("//$", stringToBeProcessed); if (usePrintLn) { preprocessingState.getPrinter().println(text); } else { preprocessingState.getPrinter().print(text); } } else { // Just string final String strToOut = processStringForTailRemover(stringToBeProcessed); if (preprocessingState.getPreprocessingFlags().contains(PreprocessingFlag.COMMENT_NEXT_LINE)) { preprocessingState.getPrinter().print(AbstractDirectiveHandler.ONE_LINE_COMMENT); preprocessingState.getPreprocessingFlags().remove(PreprocessingFlag.COMMENT_NEXT_LINE); } preprocessingState.getPrinter().print(stringPrefix); if (usePrintLn) { preprocessingState.getPrinter().println(strToOut); } else { preprocessingState.getPrinter().print(strToOut); } } } else if (context.isKeepLines()) { final String text = AbstractDirectiveHandler.PREFIX_FOR_KEEPING_LINES + rawString; if (usePrintLn) { preprocessingState.getPrinter().println(text); } else { preprocessingState.getPrinter().print(text); } } } } catch (Exception unexpected) { final String message = unexpected.getMessage() == null ? "Unexpected exception" : unexpected.getMessage(); throw preprocessingState.makeException(message, leftTrimmedString, unexpected); } if (!preprocessingState.isIfStackEmpty()) { final TextFileDataContainer lastIf = preprocessingState.peekIf(); throw new PreprocessorException("Unclosed " + AbstractDirectiveHandler.DIRECTIVE_PREFIX + "if instruction detected", "", new FilePositionInfo[]{new FilePositionInfo(lastIf.getFile(), lastIf.getNextStringIndex())}, null); } if (!preprocessingState.isWhileStackEmpty()) { final TextFileDataContainer lastWhile = preprocessingState.peekWhile(); throw new PreprocessorException("Unclosed " + AbstractDirectiveHandler.DIRECTIVE_PREFIX + "while instruction detected", "", new FilePositionInfo[]{new FilePositionInfo(lastWhile.getFile(), lastWhile.getNextStringIndex())}, null); } if (!context.isFileOutputDisabled() && lastTextFileDataContainer != null && lastTextFileDataContainer.isAutoFlush()) { final File outFile = context.createDestinationFileForPath(getDestinationFilePath()); final boolean wasSaved = preprocessingState.saveBuffersToFile(outFile, context.isRemoveComments()); if (context.isVerbose()) { context.logForVerbose("Content was " + (wasSaved ? "saved" : "not saved") + " into file '" + outFile + "\'"); } } return preprocessingState; } private static String processStringForTailRemover(final String str) { final int tailRemoverStart = str.indexOf("/*-*/"); if (tailRemoverStart >= 0) { return str.substring(0, tailRemoverStart); } return str; } private boolean checkDirectiveArgumentRoughly(final AbstractDirectiveHandler directive, final String rest) { final DirectiveArgumentType argument = directive.getArgumentType(); boolean result; final String trimmedRest = rest.trim(); switch (argument) { case NONE: { result = trimmedRest.isEmpty(); } break; case ONOFF: { if (trimmedRest.isEmpty()) { result = false; } else { final char firstChar = rest.charAt(0); result = firstChar == '+' || firstChar == '-'; if (rest.length() > 1) { result = result && Character.isSpaceChar(rest.charAt(1)); } } } break; case TAIL:{ result = true; }break; default: { result = !trimmedRest.isEmpty() && Character.isSpaceChar(rest.charAt(0)); } break; } return result; } protected AfterDirectiveProcessingBehaviour processDirective(final PreprocessingState state, final String directiveString, final PreprocessorContext context, final boolean firstPass) throws IOException { final boolean executionEnabled = state.isDirectiveCanBeProcessed(); for (final AbstractDirectiveHandler handler : AbstractDirectiveHandler.DIRECTIVES) { final String name = handler.getName(); if (directiveString.startsWith(name)) { if ((firstPass && !handler.isGlobalPhaseAllowed()) || (!firstPass && !handler.isPreprocessingPhaseAllowed())) { return AfterDirectiveProcessingBehaviour.READ_NEXT_LINE; } final boolean allowedForExecution = executionEnabled || !handler.executeOnlyWhenExecutionAllowed(); final String restOfString = PreprocessorUtils.extractTail(name, directiveString); if (checkDirectiveArgumentRoughly(handler, restOfString)) { if (allowedForExecution) { return handler.execute(restOfString, context); } else { return context.isKeepLines() ? AfterDirectiveProcessingBehaviour.SHOULD_BE_COMMENTED : AfterDirectiveProcessingBehaviour.PROCESSED; } } else { throw context.makeException("Detected bad argument for " + AbstractDirectiveHandler.DIRECTIVE_PREFIX + handler.getName(), null); } } } throw context.makeException("Unknown preprocessor directive [" + directiveString + ']', null); } public void setDestinationDir(final String destDir) { PreprocessorUtils.assertNotNull("String is null", destDir); destFolder = destDir; } public void setDestinationName(final String destName) { PreprocessorUtils.assertNotNull("String is null", destName); destFileName = destName; } public void setExcluded(final boolean flag) { excludedFromPreprocessing = flag; } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/containers/PreprocessingFlag.java000077500000000000000000000026531263163240400337570ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.containers; /** * The enumeration contains flags describe inside special preprocessor states * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public enum PreprocessingFlag { /** * This flag shows that it is allowed to print texts into an output stream */ TEXT_OUTPUT_DISABLED, /** * This flag shows that we must comment the next line (one time flag) */ COMMENT_NEXT_LINE, /** * This flag shows that the current //#if construction in the passive state */ IF_CONDITION_FALSE, /** * This flag shows that //#break has been met */ BREAK_COMMAND, /** * This flag shows that preprocessing must be ended on the next string */ END_PROCESSING, /** * This flag allows to stop preprocessing immediately */ ABORT_PROCESSING } TextFileDataContainer.java000077500000000000000000000064131263163240400344420ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/containers/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.containers; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.io.File; /** * The class contains text data of a file and the string position index for the * file * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class TextFileDataContainer { private final String[] text; private final boolean fileEndedByNextLine; private final File file; /** * Flag shows to save automatically buffers after file preprocessing end. */ private boolean autoFlush = true; private int nextStringIndex; public void disableAutoFlush(){ this.autoFlush = false; } public boolean isAutoFlush(){ return this.autoFlush; } public String[] getText() { return text.clone(); } public File getFile() { return file; } public void reset() { nextStringIndex = 0; } public boolean isPresentedNextLineOnReadString(){ return this.nextStringIndex= text.length) { return null; } else { return text[nextStringIndex++]; } } public void setNextStringIndex(final int index) { if (index < 0 || index >= text.length) { throw new IndexOutOfBoundsException("String index out of bound [" + index + ']'); } this.nextStringIndex = index; } public int getLastReadStringIndex() { return nextStringIndex - 1; } public int getNextStringIndex() { return nextStringIndex; } public TextFileDataContainer(final TextFileDataContainer item, final int stringIndex) { this(item.file, item.text, item.fileEndedByNextLine, stringIndex); } public TextFileDataContainer(final File currentFile, final String[] text, final boolean fileEndedByNextLine, final int stringIndex) { PreprocessorUtils.assertNotNull("File is null", currentFile); PreprocessorUtils.assertNotNull("Text is null", text); this.file = currentFile; this.text = text; setNextStringIndex(stringIndex); this.fileEndedByNextLine = fileEndedByNextLine; } @Override public int hashCode() { return file.hashCode(); } @Override public boolean equals(final Object that) { if (that == null) { return false; } if (this == that) { return true; } if (that instanceof TextFileDataContainer) { final TextFileDataContainer thatItem = (TextFileDataContainer) that; return file.equals(thatItem.file) && nextStringIndex == thatItem.nextStringIndex; } return false; } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/context/000077500000000000000000000000001263163240400270055ustar00rootroot00000000000000EnvironmentVariableProcessor.java000077500000000000000000000054021263163240400354470ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/context/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.context; import com.igormaznitsa.jcp.expression.Value; import java.util.Collections; import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.Properties; /** * The class allows to get access to environment variables from preprocessor * expression, the variables have the "env." prefix and all them are String type * All environment variables are allowed for reading and disallowing for writing * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class EnvironmentVariableProcessor implements SpecialVariableProcessor { private static final String PREFIX = "env."; private final Map environmentVars; public EnvironmentVariableProcessor() { final Map env = new HashMap(); final Properties properties = System.getProperties(); for (final String key : properties.stringPropertyNames()) { env.put(PREFIX + key.toLowerCase(Locale.ENGLISH).replace(' ', '_'), Value.valueOf(properties.getProperty(key))); } environmentVars = Collections.unmodifiableMap(env); } @Override public String[] getVariableNames() { return environmentVars.keySet().toArray(new String[environmentVars.size()]); } @Override public Value getVariable(final String varName, final PreprocessorContext context) { final Value result = environmentVars.get(varName); if (result == null) { if (context==null){ throw new IllegalArgumentException("Reaing undefined environment record \'" + varName + '\''); }else{ throw context.makeException("Reaing undefined environment record \'" + varName + '\'',null); } } return result; } @Override public void setVariable(final String varName, final Value value, final PreprocessorContext context) { if (context!=null){ throw context.makeException("Illegal change of environment record '" + varName + "'. Environment records accessible only for reading!",null); }else{ throw new UnsupportedOperationException("Illegal change of environment record '" + varName + "'. Environment records accessible only for reading!"); } } } JCPSpecialVariableProcessor.java000077500000000000000000000213031263163240400350560ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/context/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.context; import com.igormaznitsa.jcp.InfoHelper; import com.igormaznitsa.jcp.containers.TextFileDataContainer; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.text.SimpleDateFormat; import java.util.*; /** * The class implements the special variable processor interface and allows to * get access to inside JCP variables Inside JCP variables have the "jcp." * prefix * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class JCPSpecialVariableProcessor implements SpecialVariableProcessor { public static final String VAR_DEST_DIR = "jcp.dst.dir"; public static final String VAR_VERSION = "jcp.version"; public static final String VAR_DEST_FILE_NAME = "jcp.dst.name"; public static final String VAR_DEST_FULLPATH = "jcp.dst.path"; public static final String VAR_SRC_FILE_NAME = "jcp.src.name"; public static final String VAR_SRC_FILE_NAME2 = "__filename__"; public static final String VAR_SRC_DIR = "jcp.src.dir"; public static final String VAR_SRC_DIR2 = "__filefolder__"; public static final String VAR_SRC_FULLPATH = "jcp.src.path"; public static final String VAR_SRC_FULLPATH2 = "__file__"; public static final String VAR_LINE = "__line__"; public static final String VAR_DATE = "__date__"; public static final String VAR_TIME = "__time__"; public static final String VAR_TIMESTAMP = "__timestamp__"; static final SimpleDateFormat dateFormat = new SimpleDateFormat("MMM dd yyyy"); static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); static final SimpleDateFormat timestampFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy"); public static final class NameReferencePair{ private final String name; private final String reference; private NameReferencePair(final String name, final String reference){ this.name = name; this.reference = reference; } public String getName(){ return this.name; } public String getReference(){ return this.reference; } } public static List getReference(){ final List result = new ArrayList(); result.add(new NameReferencePair(VAR_VERSION, "The Preprocessor version")); result.add(new NameReferencePair(VAR_SRC_FULLPATH, "Full path to the current preprocessing file, read only")); result.add(new NameReferencePair(VAR_SRC_FULLPATH2, "The Synonym for '"+VAR_DEST_FULLPATH+"', read only")); result.add(new NameReferencePair(VAR_SRC_DIR, "The Current preprocessing file folder, read only")); result.add(new NameReferencePair(VAR_SRC_DIR2, "The Synonym for '"+VAR_SRC_DIR+"', read only")); result.add(new NameReferencePair(VAR_SRC_FILE_NAME, "The Current preprocessing file name, read only")); result.add(new NameReferencePair(VAR_SRC_FILE_NAME2, "The Synonym for '"+VAR_SRC_FILE_NAME+"', read only")); result.add(new NameReferencePair(VAR_LINE, "The Current preprocessing line number in the current source file, read only")); result.add(new NameReferencePair(VAR_DEST_FULLPATH, "The Full Destination File path for the preprocessing file, read only")); result.add(new NameReferencePair(VAR_DEST_DIR, "The Destination File path for the preprocessing file, read only")); result.add(new NameReferencePair(VAR_DEST_FILE_NAME, "The Destination File name for the preprocessing file, allowed for reading and writing")); result.add(new NameReferencePair(VAR_TIME, "The Current time")); result.add(new NameReferencePair(VAR_DATE, "The Current date")); result.add(new NameReferencePair(VAR_TIMESTAMP, "The Timestamp of the current source file")); return result; } @Override public String[] getVariableNames() { return new String[]{ VAR_DEST_DIR, VAR_DEST_FILE_NAME, VAR_DEST_FULLPATH, VAR_SRC_DIR, VAR_SRC_DIR2, VAR_SRC_FILE_NAME, VAR_SRC_FILE_NAME2, VAR_SRC_FULLPATH, VAR_SRC_FULLPATH2, VAR_VERSION, VAR_LINE, VAR_TIME, VAR_TIMESTAMP, VAR_DATE }; } @Override public Value getVariable(final String varName, final PreprocessorContext context) { final PreprocessingState state = context == null ? null:context.getPreprocessingState(); if (VAR_DEST_DIR.equals(varName)) { return state == null ? null : Value.valueOf(state.getRootFileInfo().getDestinationDir()); } else if (VAR_DEST_FILE_NAME.equals(varName)) { return state == null ? null : Value.valueOf(state.getRootFileInfo().getDestinationName()); } else if (VAR_DEST_FULLPATH.equals(varName)) { return state == null ? null : Value.valueOf(state.getRootFileInfo().getDestinationFilePath()); } else if (VAR_SRC_DIR.equals(varName) || VAR_SRC_DIR2.equals(varName)) { return state == null ? null : Value.valueOf(state.getRootFileInfo().getSourceFile().getParent()); } else if (VAR_SRC_FILE_NAME.equals(varName) || VAR_SRC_FILE_NAME2.equals(varName)) { return state == null ? null : Value.valueOf(state.getRootFileInfo().getSourceFile().getName()); } else if (VAR_SRC_FULLPATH.equals(varName) || VAR_SRC_FULLPATH2.equals(varName)) { return state == null ? null : Value.valueOf(PreprocessorUtils.getFilePath(state.getRootFileInfo().getSourceFile())); } else if (VAR_VERSION.equals(varName)) { return Value.valueOf(InfoHelper.getVersion()); } else if (VAR_TIME.equals(varName)) { return Value.valueOf(timeFormat.format(new Date())); } else if (VAR_DATE.equals(varName)) { return Value.valueOf(dateFormat.format(new Date())); } else if (VAR_TIMESTAMP.equals(varName)) { if (state == null){ return Value.valueOf(""); }else{ return Value.valueOf(timestampFormat.format(new Date(state.peekFile().getFile().lastModified()))); } } else if (VAR_LINE.equals(varName)) { final TextFileDataContainer currentFile = state == null ? null : state.peekFile(); final long line; if (currentFile == null){ line = -1L; }else{ line = currentFile.getLastReadStringIndex()+1; } return Value.valueOf(line); } else { final String text = "Attempting to read unexpected special variable [" + varName + ']'; throw context == null ? new IllegalStateException(text) : context.makeException(text,null); } } @Override public void setVariable(final String varName, final Value value, final PreprocessorContext context) { final PreprocessingState state = context == null ? null : context.getPreprocessingState(); if (VAR_DEST_DIR.equals(varName)) { if (value.getType() != ValueType.STRING) { throw new IllegalArgumentException("Only STRING type allowed"); } if (state!=null) state.getRootFileInfo().setDestinationDir(value.asString()); } else if (VAR_DEST_FILE_NAME.equals(varName)) { if (value.getType() != ValueType.STRING) { throw new IllegalArgumentException("Only STRING type allowed"); } if (state!=null) state.getRootFileInfo().setDestinationName(value.asString()); } else if (VAR_DEST_FULLPATH.equals(varName) || VAR_SRC_DIR.equals(varName) || VAR_SRC_DIR2.equals(varName) || VAR_SRC_FILE_NAME.equals(varName) || VAR_SRC_FILE_NAME2.equals(varName) || VAR_SRC_FULLPATH.equals(varName) || VAR_SRC_FULLPATH2.equals(varName) || VAR_VERSION.equals(varName) || VAR_LINE.equals(varName) || VAR_TIME.equals(varName) || VAR_TIMESTAMP.equals(varName) || VAR_DATE.equals(varName) ) { final String text = "The variable \'" + varName + "\' can't be set directly"; throw context == null ? new IllegalStateException(text) : context.makeException(text,null); } else { final String text = "Attempting to write unexpected special variable [" + varName + ']'; throw context == null ? new IllegalArgumentException(text) : context.makeException(text,null); } } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/context/PreprocessingState.java000077500000000000000000000375041263163240400335100ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.context; import com.igormaznitsa.jcp.containers.FileInfoContainer; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.containers.TextFileDataContainer; import com.igormaznitsa.jcp.exceptions.FilePositionInfo; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.removers.JavaCommentsRemover; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import com.igormaznitsa.jcp.utils.ResetablePrinter; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedWriter; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.StringReader; import java.io.StringWriter; import java.io.Writer; import java.util.ArrayList; import java.util.EnumSet; import java.util.LinkedList; import java.util.List; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; /** * The class describes a preprocessor state also it contains inside buffers and * save data on disk * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class PreprocessingState { public static final FilePositionInfo[] EMPTY_STACK = new FilePositionInfo[0]; public static final int MAX_WRITE_BUFFER_SIZE = 65536; public static class ExcludeIfInfo { private final FileInfoContainer fileInfoContainer; private final String condition; private final int stringIndex; public ExcludeIfInfo(final FileInfoContainer fileInfoContainer, final String condition, final int stringIndex) { this.fileInfoContainer = fileInfoContainer; this.condition = condition.trim(); this.stringIndex = stringIndex; } public int getStringIndex() { return this.stringIndex; } public FileInfoContainer getFileInfoContainer() { return fileInfoContainer; } public String getCondition() { return condition; } } public enum PrinterType { NORMAL, PREFIX, POSTFIX } private final String globalInCharacterEncoding; private final String globalOutCharacterEncoding; private final TextFileDataContainer rootReference; private final FileInfoContainer rootFileInfo; private final LinkedList whileStack = new LinkedList(); private final LinkedList ifStack = new LinkedList(); private final LinkedList includeStack = new LinkedList(); private final LinkedList deferredExcludeStack = new LinkedList(); private final ResetablePrinter prefixPrinter = new ResetablePrinter(1024); private final ResetablePrinter postfixPrinter = new ResetablePrinter(64 * 1024); private final ResetablePrinter normalPrinter = new ResetablePrinter(1024); private final boolean overrideOnlyIfContentChanged; private ResetablePrinter currentPrinter; private final EnumSet preprocessingFlags = EnumSet.noneOf(PreprocessingFlag.class); private TextFileDataContainer activeIf; private TextFileDataContainer activeWhile; private String lastReadString; private final PreprocessorContext context; PreprocessingState(final PreprocessorContext context, final FileInfoContainer rootFile, final String inEncoding, final String outEncoding, final boolean overrideOnlyIfContentChanged) throws IOException { PreprocessorUtils.assertNotNull("The root file is null", rootFile); PreprocessorUtils.assertNotNull("InEncoding is null",inEncoding); PreprocessorUtils.assertNotNull("OutEncoding is null",outEncoding); this.context = context; this.overrideOnlyIfContentChanged = overrideOnlyIfContentChanged; this.globalInCharacterEncoding = inEncoding; this.globalOutCharacterEncoding = outEncoding; this.rootFileInfo = rootFile; init(); rootReference = openFile(rootFile.getSourceFile()); } PreprocessingState(final PreprocessorContext context, final FileInfoContainer rootFile, final TextFileDataContainer rootContainer, final String inEncoding, final String outEncoding, final boolean overrideOnlyIfContentChanged) { PreprocessorUtils.assertNotNull("The root file is null", rootFile); PreprocessorUtils.assertNotNull("InEncoding is null", inEncoding); this.context = context; this.globalInCharacterEncoding = inEncoding; this.globalOutCharacterEncoding = outEncoding; this.overrideOnlyIfContentChanged = overrideOnlyIfContentChanged; this.rootFileInfo = rootFile; init(); rootReference = rootContainer; includeStack.push(rootContainer); } public String getLastReadString(){ return this.lastReadString; } public void pushExcludeIfData(final FileInfoContainer infoContainer, final String excludeIfCondition, final int stringIndex) { PreprocessorUtils.assertNotNull("File info is null", infoContainer); PreprocessorUtils.assertNotNull("Condition is null", excludeIfCondition); if (stringIndex < 0) { throw new IllegalArgumentException("Unexpected string index ["+stringIndex+']'); } deferredExcludeStack.push(new ExcludeIfInfo(infoContainer, excludeIfCondition, stringIndex)); } public List popAllExcludeIfInfoData() { final List result = new ArrayList(deferredExcludeStack); deferredExcludeStack.clear(); return result; } public ExcludeIfInfo popExcludeIfData() { return deferredExcludeStack.pop(); } public Set getPreprocessingFlags() { return preprocessingFlags; } public ResetablePrinter getPrinter() throws IOException { return currentPrinter; } public TextFileDataContainer getRootTextContainer() { return rootReference; } public TextFileDataContainer openFile(final File file) throws IOException { PreprocessorUtils.assertNotNull("The file is null", file); final AtomicBoolean endedByNextLineContainer = new AtomicBoolean(); final String[] texts = PreprocessorUtils.readWholeTextFileIntoArray(file, globalInCharacterEncoding, endedByNextLineContainer); final TextFileDataContainer newContainer = new TextFileDataContainer(file, texts, endedByNextLineContainer.get(), 0); includeStack.push(newContainer); return newContainer; } public TextFileDataContainer peekFile() { return includeStack.peek(); } List getCurrentIncludeStack(){ return this.includeStack; } public FilePositionInfo [] makeIncludeStack(){ final FilePositionInfo[] stack = new FilePositionInfo[includeStack.size()]; for (int i = 0; i < includeStack.size(); i++) { final TextFileDataContainer fileContainer = includeStack.get(i); stack[i] = new FilePositionInfo(fileContainer.getFile(), fileContainer.getLastReadStringIndex()); } return stack; } public TextFileDataContainer popTextContainer() { if (includeStack.isEmpty()){ throw new IllegalStateException("Include stack is empty"); } return includeStack.pop(); } public FileInfoContainer getRootFileInfo() { return rootFileInfo; } public boolean isIncludeStackEmpty(){ return includeStack.isEmpty(); } public boolean isOnlyRootOnStack() { return includeStack.size() == 1; } private TextFileDataContainer cloneTopTextDataContainer(final boolean useLastReadStringIndex) { final TextFileDataContainer topElement = includeStack.peek(); return new TextFileDataContainer(topElement, useLastReadStringIndex ? topElement.getLastReadStringIndex() : topElement.getNextStringIndex()); } public PreprocessingState popWhile() { final TextFileDataContainer whileOnTop = whileStack.pop(); if (whileOnTop == activeWhile) { preprocessingFlags.remove(PreprocessingFlag.BREAK_COMMAND); if (whileStack.isEmpty()) { activeWhile = null; } else { activeWhile = whileStack.peek(); } } return this; } public PreprocessingState pushWhile(final boolean makeActive) { final TextFileDataContainer whileRef = cloneTopTextDataContainer(true); whileStack.push(whileRef); if (makeActive) { activeWhile = whileRef; } return this; } public TextFileDataContainer peekWhile() { return whileStack.peek(); } public boolean hasReadLineNextLineInEnd(){ return includeStack.peek().isPresentedNextLineOnReadString(); } public String nextLine() { final String result = includeStack.peek().nextLine(); this.lastReadString = result; return result; } public PreprocessingState goToString(final int stringIndex) { includeStack.peek().setNextStringIndex(stringIndex); return this; } public PreprocessingState pushIf(final boolean makeActive) { final TextFileDataContainer ifRef = cloneTopTextDataContainer(true); ifStack.push(ifRef); if (makeActive) { activeIf = ifRef; } return this; } public void popAllIFUntilContainerWithFile(final TextFileDataContainer container) { final File file = container.getFile(); final int stringIndex = container.getNextStringIndex(); while (!ifStack.isEmpty()) { final TextFileDataContainer top = ifStack.peek(); if (!top.getFile().equals(file) || top.getNextStringIndex() <= stringIndex) { break; } else { ifStack.pop(); } } } public PreprocessingState popIf() { final TextFileDataContainer ifRef = ifStack.pop(); if (ifRef == activeIf) { if (ifStack.isEmpty()) { activeIf = null; } else { activeIf = ifStack.peek(); } } return this; } public boolean isAtActiveWhile() { if (whileStack.isEmpty()) { return true; } else { return activeWhile == whileStack.peek(); } } public boolean isAtActiveIf() { if (ifStack.isEmpty()) { return true; } else { return ifStack.peek() == activeIf; } } public boolean isDirectiveCanBeProcessedIgnoreBreak() { return isAtActiveIf() && isAtActiveWhile() && !preprocessingFlags.contains(PreprocessingFlag.IF_CONDITION_FALSE); } public boolean isDirectiveCanBeProcessed() { return isDirectiveCanBeProcessedIgnoreBreak() && !preprocessingFlags.contains(PreprocessingFlag.BREAK_COMMAND); } public TextFileDataContainer peekIf() { return ifStack.peek(); } public boolean isIfStackEmpty() { return ifStack.isEmpty(); } public boolean isWhileStackEmpty() { return whileStack.isEmpty(); } private void init() { preprocessingFlags.clear(); resetPrinters(); setPrinter(PrinterType.NORMAL); } public void setPrinter(final PrinterType type) { PreprocessorUtils.assertNotNull("Type is null", type); switch (type) { case NORMAL: currentPrinter = normalPrinter; break; case POSTFIX: currentPrinter = postfixPrinter; break; case PREFIX: currentPrinter = prefixPrinter; break; default: throw new IllegalArgumentException("Unsupported type detected [" + type.name() + ']'); } } public void resetPrinters() { normalPrinter.reset(); prefixPrinter.reset(); postfixPrinter.reset(); currentPrinter = normalPrinter; } public void saveBuffersToStreams(final OutputStream prefix, final OutputStream normal, final OutputStream postfix) throws IOException { prefixPrinter.writeBufferTo(new BufferedWriter(new OutputStreamWriter(prefix, globalOutCharacterEncoding))); normalPrinter.writeBufferTo(new BufferedWriter(new OutputStreamWriter(prefix, globalOutCharacterEncoding))); postfixPrinter.writeBufferTo(new BufferedWriter(new OutputStreamWriter(prefix, globalOutCharacterEncoding))); } public boolean saveBuffersToFile(final File outFile, final boolean removeComments) throws IOException { final File path = outFile.getParentFile(); if (path != null && !path.exists() && !path.mkdirs()) { throw new IOException("Can't make directory [" + PreprocessorUtils.getFilePath(path) + ']'); } Writer writer = null; try { final int totatBufferedChars = prefixPrinter.getSize() + normalPrinter.getSize() + postfixPrinter.getSize(); final int BUFFER_SIZE = Math.min(totatBufferedChars << 1, MAX_WRITE_BUFFER_SIZE); boolean wasSaved = false; if (this.overrideOnlyIfContentChanged){ String content = ((StringWriter) writePrinterBuffers(new StringWriter(totatBufferedChars))).toString(); if (removeComments){ content = ((StringWriter)new JavaCommentsRemover(new StringReader(content), new StringWriter(totatBufferedChars)).process()).toString(); } boolean needWrite = true; // better write than not final byte [] contentInBinaryForm = content.getBytes(globalOutCharacterEncoding); if (outFile.isFile() && outFile.length() == contentInBinaryForm.length) { // If file exists and has the same content, then skip overwriting it InputStream currentFileInputStream = null; try { currentFileInputStream = new BufferedInputStream(new FileInputStream(outFile),Math.max(16384, (int)outFile.length())); needWrite = !IOUtils.contentEquals(currentFileInputStream,new ByteArrayInputStream(contentInBinaryForm)); } finally { IOUtils.closeQuietly(currentFileInputStream); } } if (needWrite) { FileUtils.writeByteArrayToFile(outFile, contentInBinaryForm, false); wasSaved = true; } else { this.context.logDebug("Ignore writing data for "+outFile+" because its content has not been changed"); } }else{ if (removeComments) { final String joinedBufferContent = ((StringWriter) writePrinterBuffers(new StringWriter(totatBufferedChars))).toString(); writer = new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream(outFile, false), BUFFER_SIZE), globalOutCharacterEncoding); new JavaCommentsRemover(new StringReader(joinedBufferContent), writer).process(); wasSaved = true; } else { writer = new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream(outFile, false), BUFFER_SIZE), globalOutCharacterEncoding); writePrinterBuffers(writer); wasSaved = true; } } return wasSaved; } finally { IOUtils.closeQuietly(writer); } } public Writer writePrinterBuffers(final Writer writer) throws IOException { if (!prefixPrinter.isEmpty()) { prefixPrinter.writeBufferTo(writer); } if (!normalPrinter.isEmpty()) { normalPrinter.writeBufferTo(writer); } if (!postfixPrinter.isEmpty()) { postfixPrinter.writeBufferTo(writer); } return writer; } public PreprocessorException makeException(final String message, final String causeString, final Throwable cause) { return new PreprocessorException(message, causeString, makeIncludeStack(), cause); } public void dispose() { this.deferredExcludeStack.clear(); this.ifStack.clear(); this.includeStack.clear(); this.whileStack.clear(); } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/context/PreprocessorContext.java000077500000000000000000001075141263163240400337160ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.context; import com.igormaznitsa.jcp.containers.FileInfoContainer; import com.igormaznitsa.jcp.containers.TextFileDataContainer; import com.igormaznitsa.jcp.exceptions.FilePositionInfo; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.extension.PreprocessorExtension; import com.igormaznitsa.jcp.logger.PreprocessorLogger; import com.igormaznitsa.jcp.logger.SystemOutLogger; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.io.*; import java.nio.charset.Charset; import java.util.*; import org.apache.commons.io.FilenameUtils; /** * The preprocessor context class is a main class which contains all options of * the preprocessor and allows to work with variables in expressions * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class PreprocessorContext { public static final String DEFAULT_SOURCE_DIRECTORY = "." + File.separatorChar; public static final String DEFAULT_DEST_DIRECTORY = ".." + File.separatorChar + "preprocessed"; public static final String DEFAULT_PROCESSING_EXTENSIONS = "java,txt,htm,html"; public static final String DEFAULT_EXCLUDED_EXTENSIONS = "xml"; public static final String DEFAULT_CHARSET = "UTF8"; private boolean verbose = false; private boolean removeComments = false; private boolean clearDestinationDirectoryBefore = false; private boolean fileOutputDisabled = false; private boolean keepNonExecutingLines = false; private boolean careForLastNextLine = false; private boolean compareDestination = false; private String sourceDirectories; private String destinationDirectory; private File destinationDirectoryFile; private File[] sourceDirectoryFiles; private Set processingFileExtensions = new HashSet(Arrays.asList(PreprocessorUtils.splitForChar(DEFAULT_PROCESSING_EXTENSIONS, ','))); private Set excludedFileExtensions = new HashSet(Arrays.asList(PreprocessorUtils.splitForChar(DEFAULT_EXCLUDED_EXTENSIONS, ','))); private PreprocessorExtension preprocessorExtension; private String inCharacterEncoding = DEFAULT_CHARSET; private String outCharacterEncoding = DEFAULT_CHARSET; private final Map globalVarTable = new HashMap(); private final Map localVarTable = new HashMap(); private final Map mapVariableNameToSpecialVarProcessor = new HashMap(); private final Map sharedResources = new HashMap(); private PreprocessorLogger preprocessorLogger = new SystemOutLogger(); private final List configFiles = new ArrayList(); private transient PreprocessingState currentState; private final boolean cloned; private final TextFileDataContainer currentInCloneSource; /** * The constructor */ public PreprocessorContext() { setSourceDirectories(DEFAULT_SOURCE_DIRECTORY).setDestinationDirectory(DEFAULT_DEST_DIRECTORY); registerSpecialVariableProcessor(new JCPSpecialVariableProcessor()); registerSpecialVariableProcessor(new EnvironmentVariableProcessor()); this.cloned = false; this.currentInCloneSource = null; } /** * Set the flag to care to be precise in processing the last file next line char * @param flag true to turn on the mode, false to turn off */ public void setCareForLastNextLine(final boolean flag){ this.careForLastNextLine = flag; } public boolean isCareForLastNextLine(){ return this.careForLastNextLine; } /** * Check that the preprocessor context is a clone of another context. * * @return true if the context is a clone, false otherwise */ public boolean isCloned() { return this.cloned; } /** * Make clone of a preprocessor context but without cloning state. * * @param context the context to be cloned, must not be null. */ public PreprocessorContext(final PreprocessorContext context) { PreprocessorUtils.assertNotNull("Source context must not be null", context); this.verbose = context.verbose; this.removeComments = context.removeComments; this.clearDestinationDirectoryBefore = context.clearDestinationDirectoryBefore; this.fileOutputDisabled = context.fileOutputDisabled; this.keepNonExecutingLines = context.keepNonExecutingLines; this.sourceDirectories = context.sourceDirectories; this.destinationDirectory = context.destinationDirectory; this.destinationDirectoryFile = context.destinationDirectoryFile; this.sourceDirectoryFiles = context.sourceDirectoryFiles.clone(); this.careForLastNextLine = context.careForLastNextLine; this.processingFileExtensions.clear(); this.processingFileExtensions.addAll(context.processingFileExtensions); this.excludedFileExtensions.clear(); this.excludedFileExtensions.addAll(context.excludedFileExtensions); this.preprocessorExtension = context.preprocessorExtension; this.inCharacterEncoding = context.inCharacterEncoding; this.outCharacterEncoding = context.outCharacterEncoding; this.compareDestination = context.compareDestination; this.globalVarTable.putAll(context.globalVarTable); this.localVarTable.putAll(context.localVarTable); this.mapVariableNameToSpecialVarProcessor.putAll(context.mapVariableNameToSpecialVarProcessor); this.sharedResources.putAll(context.sharedResources); this.configFiles.addAll(context.configFiles); this.currentState = context.currentState; this.cloned = true; this.currentInCloneSource = context.getPreprocessingState() == null ? null : context.getPreprocessingState().peekFile(); } /** * Set the logger to print information and error messages * * @param logger a logger to be used for output, it can be null */ public void setPreprocessorLogger(final PreprocessorLogger logger) { preprocessorLogger = logger; } /** * It allows to register a special variable processor which can process some * special global variables * * @param processor a variable processor to be registered, it must not be null * @see SpecialVariableProcessor */ public void registerSpecialVariableProcessor(final SpecialVariableProcessor processor) { PreprocessorUtils.assertNotNull("Processor is null", processor); for (final String varName : processor.getVariableNames()) { PreprocessorUtils.assertNotNull("A Special Var name is null", varName); if (mapVariableNameToSpecialVarProcessor.containsKey(varName)) { throw new IllegalStateException("There is already defined processor for " + varName); } mapVariableNameToSpecialVarProcessor.put(varName, processor); } } /** * Print an information into the current log * * @param text a String to be printed into the information log, it can be null */ public void logInfo(final String text) { if (text != null && this.preprocessorLogger != null) { this.preprocessorLogger.info(text); } } /** * Print an information about an error into the current log * * @param text a String to be printed into the error log, it can be null */ public void logError(final String text) { if (text != null && this.preprocessorLogger != null) { this.preprocessorLogger.error(text); } } /** * Print some debug info into the current log * * @param text a String to be printed into the error log, it can be null * @since 6.0.1 */ public void logDebug(final String text){ if (text != null && this.preprocessorLogger != null) { this.preprocessorLogger.debug(text); } } /** * Print an information about a warning situation into the current log * * @param text a String to be printed into the warning log, it can be null */ public void logWarning(final String text) { if (text != null || this.preprocessorLogger != null) { this.preprocessorLogger.warning(text); } } /** * Set the remove comments flag * * @param removingComments the flag to set, true if comments must be removed * from the result files, otherwise else * @return the preprocessor context instance */ public PreprocessorContext setRemoveComments(final boolean removingComments) { this.removeComments = removingComments; return this; } /** * It returns the flag shows that all comments must be removed from the result * * @return true if comments must be returned, otherwise false */ public boolean isRemoveComments() { return this.removeComments; } /** * It allows to disable all writing operations of the preprocessor * * @param flag true if preprocessor must not make any writing operations, * otherwise false */ public void setFileOutputDisabled(final boolean flag) { fileOutputDisabled = flag; } /** * Check that writing operations is disabled * * @return true if writing operations disabled, otherwise false */ public boolean isFileOutputDisabled() { return fileOutputDisabled; } /** * Set source directories * * @param directories semi separated list of source directories, must not be * null * @return this preprocessor context instance */ public PreprocessorContext setSourceDirectories(final String directories) { PreprocessorUtils.assertNotNull("Source directory is null", directories); this.sourceDirectories = directories; this.sourceDirectoryFiles = getParsedSourceDirectoryAsFiles(); return this; } /** * Set a shared source, it is an object saved into the inside map for a name * * @param name the name for the saved project, must not be null * @param obj the object to be saved in, must not be null */ public void setSharedResource(final String name, final Object obj) { PreprocessorUtils.assertNotNull("Name is null", name); PreprocessorUtils.assertNotNull("Object is null", obj); sharedResources.put(name, obj); } /** * Get a shared source from inside map * * @param name the name of the needed object, it must not be null * @return a cached object or null if it is not found */ public Object getSharedResource(final String name) { PreprocessorUtils.assertNotNull("Name is null", name); return sharedResources.get(name); } /** * Remove a shared object from the inside map for its name * * @param name the object name, it must not be null * @return removing object or null if it is not found */ public Object removeSharedResource(final String name) { PreprocessorUtils.assertNotNull("Name is null", name); return sharedResources.remove(name); } /** * Get the source directories as semi separated string * * @return the current source directories semi separated list */ public String getSourceDirectories() { return sourceDirectories; } /** * Get the current source directories as a file array * * @return the current source directories as a file array */ public File[] getSourceDirectoryAsFiles() { return sourceDirectoryFiles; } /** * Inside auxiliary method to parse the source directories list into file * array * * @return parsed file list, each file must exist and be a directory */ private File[] getParsedSourceDirectoryAsFiles() { final String[] splitted = PreprocessorUtils.splitForChar(sourceDirectories, ';'); final File[] result = new File[splitted.length]; int index = 0; for (final String dirName : splitted) { final File dir = new File(dirName); if (!dir.isDirectory()) { throw new IllegalStateException("Can't find a source directory [" + PreprocessorUtils.getFilePath(dir) + ']'); } result[index++] = dir; } return result; } /** * Set a destination directory for result files * * @param directory a path to the directory as String, it must not be null * @return this preprocessor context instance */ public PreprocessorContext setDestinationDirectory(final String directory) { PreprocessorUtils.assertNotNull("Directory is null", directory); this.destinationDirectory = directory; destinationDirectoryFile = new File(this.destinationDirectory); return this; } /** * Get the current destination directory as a File object * * @return the current destination directory as an object */ public File getDestinationDirectoryAsFile() { return destinationDirectoryFile; } /** * Get the string representation of the destination directory * * @return the current destination directory as a String */ public String getDestinationDirectory() { return destinationDirectory; } /** * Set file extensions of files to be preprocessed, it is a comma separated * list * * @param extensions comma separated extensions list of file extensions to be * preprocessed, must not be null * @return this preprocessor context */ public PreprocessorContext setProcessingFileExtensions(final String extensions) { PreprocessorUtils.assertNotNull("Argument is null", extensions); processingFileExtensions = new HashSet(Arrays.asList(PreprocessorUtils.splitExtensionCommaList(extensions))); return this; } /** * Get file extensions of files to be preprocessed as a string array * * @return a string array of file extensions to be preprocessed */ public String[] getProcessingFileExtensions() { return processingFileExtensions.toArray(new String[processingFileExtensions.size()]); } /** * Check that a file is allowed to be preprocessed fo its extension * * @param file a file to be checked * @return true if the file is allowed, false otherwise */ public final boolean isFileAllowedToBeProcessed(final File file) { if (file == null || !file.exists() || file.isDirectory() || file.length() == 0) { return false; } return processingFileExtensions.contains(PreprocessorUtils.getFileExtension(file)); } /** * Check that a file is excluded from preprocessing and coping actions * * @param file a file to be checked * @return true if th file must be excluded, otherwise false */ public final boolean isFileExcludedFromProcess(final File file) { final boolean result; if (file != null && file.isFile()) { result = excludedFileExtensions.contains(PreprocessorUtils.getFileExtension(file)); } else { result = false; } return result; } /** * Set comma separated list of file extensions to be excluded from * preprocessing * * @param extensions a comma separated file extension list, it must not be * null * @return this preprocessor context */ public PreprocessorContext setExcludedFileExtensions(final String extensions) { PreprocessorUtils.assertNotNull("Argument is null", extensions); excludedFileExtensions = new HashSet(Arrays.asList(PreprocessorUtils.splitExtensionCommaList(extensions))); return this; } /** * Get excluded file extension list as a string array * * @return a string array contains file extensions to be excluded from * preprocessing act */ public String[] getExcludedFileExtensions() { return excludedFileExtensions.toArray(new String[excludedFileExtensions.size()]); } /** * Set the flag to clear the destination directory before preprocessing * * @param flag true if the directory must be cleaned, otherwise false * @return this preprocessor context */ public PreprocessorContext setClearDestinationDirBefore(final boolean flag) { this.clearDestinationDirectoryBefore = flag; return this; } /** * Get the flag to clear the destination directory before preprocessing * * @return true if the directory must be cleaned, otherwise false */ public boolean doesClearDestinationDirBefore() { return this.clearDestinationDirectoryBefore; } /** * Set a local variable value * * @param name the variable name, must not be null, remember that the name * will be normalized and will be entirely in lower case * @param value the value for the variable, it must not be null * @return this preprocessor context * @see Value */ public PreprocessorContext setLocalVariable(final String name, final Value value) { PreprocessorUtils.assertNotNull("Variable name is null", name); PreprocessorUtils.assertNotNull("Value is null", value); final String normalized = PreprocessorUtils.normalizeVariableName(name); if (normalized.isEmpty()) { throw makeException("Not defined variable name", null); } if (mapVariableNameToSpecialVarProcessor.containsKey(normalized) || globalVarTable.containsKey(normalized)) { throw makeException("Attempting to set either a global variable or a special variable as a local one [" + normalized + ']', null); } localVarTable.put(normalized, value); return this; } /** * Remove a local variable value from the context. * * @param name the variable name, must not be null, remember that the name * will be normalized and will be entirely in lower case * @return this preprocessor context * @see Value */ public PreprocessorContext removeLocalVariable(final String name) { PreprocessorUtils.assertNotNull("Variable name is null", name); final String normalized = PreprocessorUtils.normalizeVariableName(name); if (normalized.isEmpty()) { throw makeException("Empty variable name", null); } if (mapVariableNameToSpecialVarProcessor.containsKey(normalized) || globalVarTable.containsKey(normalized)) { throw makeException("Attempting to remove either a global variable or a special variable as a local one [" + normalized + ']', null); } if (isVerbose()){ logForVerbose("Removing local variable '"+normalized+"\'"); } localVarTable.remove(normalized); return this; } /** * Remove a global variable value from the context. * * @param name the variable name, must not be null, remember that the name * will be normalized and will be entirely in lower case * @return this preprocessor context * @see Value */ public PreprocessorContext removeGlobalVariable(final String name) { PreprocessorUtils.assertNotNull("Variable name is null", name); final String normalized = PreprocessorUtils.normalizeVariableName(name); if (normalized.isEmpty()) { throw makeException("Empty variable name", null); } if (mapVariableNameToSpecialVarProcessor.containsKey(normalized)) { throw makeException("Attempting to remove a special variable as a global one [" + normalized + ']', null); } if (isVerbose()) { logForVerbose("Removing global variable '" + normalized + "\'"); } globalVarTable.remove(normalized); return this; } /** * Get a local variable value * * @param name the name for the variable, it can be null. The name will be * normalized to allowed one. * @return null either if the name is null or the variable is not found, * otherwise its value */ public Value getLocalVariable(final String name) { if (name == null) { return null; } final String normalized = PreprocessorUtils.normalizeVariableName(name); if (normalized.isEmpty()) { return null; } return localVarTable.get(normalized); } /** * Check that a local variable for a name is presented * * @param name the checking name, it will be normalized to the support format * and can be null * @return false either if the name is null or there is not any local variable * for the name, otherwise true */ public boolean containsLocalVariable(final String name) { if (name == null) { return false; } final String normalized = PreprocessorUtils.normalizeVariableName(name); if (normalized.isEmpty()) { return false; } return localVarTable.containsKey(normalized); } /** * Remove all local variables from the inside storage * * @return this preprocessor context */ public PreprocessorContext clearLocalVariables() { localVarTable.clear(); return this; } /** * Set a global variable value * * @param name the variable name, it must not be null and will be normalized * to the supported format * @param value the variable value, it must not be null * @return this preprocessor context */ public PreprocessorContext setGlobalVariable(final String name, final Value value) { PreprocessorUtils.assertNotNull("Variable name is null", name); final String normalizedName = PreprocessorUtils.normalizeVariableName(name); if (normalizedName.isEmpty()) { throw makeException("Name is empty", null); } PreprocessorUtils.assertNotNull("Value is null", value); if (mapVariableNameToSpecialVarProcessor.containsKey(normalizedName)) { mapVariableNameToSpecialVarProcessor.get(normalizedName).setVariable(normalizedName, value, this); } else { if (isVerbose()) { final String valueAsStr = value.toString(); if (globalVarTable.containsKey(normalizedName)) { logForVerbose("Replacing global variable [" + normalizedName + '=' + valueAsStr + ']'); } else { logForVerbose("Defining new global variable [" + normalizedName + '=' + valueAsStr + ']'); } } globalVarTable.put(normalizedName, value); } return this; } /** * Check that there is a named global variable in the inside storage * * @param name the checking name, it will be normalized to the supported * format, it can be null * @return true if such variable is presented for its name in the inside * storage, otherwise false (also it is false if the name is null) */ public boolean containsGlobalVariable(final String name) { if (name == null) { return false; } final String normalized = PreprocessorUtils.normalizeVariableName(name); if (normalized.isEmpty()) { return false; } return mapVariableNameToSpecialVarProcessor.containsKey(normalized) || globalVarTable.containsKey(normalized); } /** * Find value among local and global variables for a name. It finds in the * order: special processors, local variables, global variables * * @param name the name for the needed variable, it will be normalized to the * supported format * @return false if either the variable is not found or the name is null, * otherwise the variable value */ public Value findVariableForName(final String name) { if (name == null) { return null; } final String normalized = PreprocessorUtils.normalizeVariableName(name); if (normalized.isEmpty()) { return null; } final SpecialVariableProcessor processor = mapVariableNameToSpecialVarProcessor.get(normalized); if (processor != null && currentState != null) { return processor.getVariable(normalized, this); } final Value val = getLocalVariable(normalized); if (val != null) { return val; } return globalVarTable.get(normalized); } /** * Check that there is a global variable with such name. * * @param variableName a name to be checked, can be null * @return false if there is not such variable or it is null, true if such * global or special variable exists */ public boolean isGlobalVariable(final String variableName) { boolean result = false; if (variableName != null) { final String normalized = PreprocessorUtils.normalizeVariableName(variableName); result = this.globalVarTable.containsKey(normalized) || mapVariableNameToSpecialVarProcessor.containsKey(normalized); } return result; } /** * Check that there is a local variable with such name. * * @param variableName a name to be checked, can be null * @return false if there is not such variable or it is null, true if such * local variable exists */ public boolean isLocalVariable(final String variableName) { boolean result = false; if (variableName != null) { final String normalized = PreprocessorUtils.normalizeVariableName(variableName); result = this.localVarTable.containsKey(normalized); } return result; } /** * Set the verbose flag * * @param flag true if the preprocessor must be verbose, otherwise false * @return this preprocessor context */ public PreprocessorContext setVerbose(final boolean flag) { verbose = flag; return this; } /** * Check the verbose flag * * @return true if the preprocessor must be verbose, otherwise false */ public boolean isVerbose() { return verbose; } /** * Set the flag to check before saving if the content changed. * @param flag true if to check, false otherwise * @return the preprocessor context */ public PreprocessorContext setCompareDestination(final boolean flag){ this.compareDestination = flag; return this; } /** * Check the flag to check content of existing file before saving. * @return true if the content should be checked and new content must not be replaced if it is the same */ public boolean isCompareDestination(){ return this.compareDestination; } /** * Set the flag to keep lines as commented ones * * @param flag true if the preprocessor must keep non-executing lines, * otherwise false * @return this preprocessor context */ public PreprocessorContext setKeepLines(final boolean flag) { keepNonExecutingLines = flag; return this; } /** * Check that the preprocessor must keep lines as commented ones * * @return true if the preprocessor must keep lines, false otherwise */ public boolean isKeepLines() { return keepNonExecutingLines; } /** * Set a preprocessor extension, it is a module implements the * PreprocessorExtension interface which can process and get some calls from a * preprocessor during its work * * @param extension an object implements the PreprocessorExtension interface, * it can be null * @return this preprocessor context * @see PreprocessorExtension */ public PreprocessorContext setPreprocessorExtension(final PreprocessorExtension extension) { this.preprocessorExtension = extension; return this; } /** * Get the current preprocessor extension * * @return the current preprocessor extension, it can be null * @see PreprocessorExtension */ public PreprocessorExtension getPreprocessorExtension() { return preprocessorExtension; } /** * Set the character encoding for reading texts, it must be supported by the * Java platform else an exception will be thrown * * @param characterEncoding a character encoding as a String, it must not be * null and must be supported by the Java platform * @return this preprocessor context */ public PreprocessorContext setInCharacterEncoding(final String characterEncoding) { PreprocessorUtils.assertNotNull("Value is null", characterEncoding); if (!Charset.isSupported(characterEncoding)) { throw makeException("Unsupported character encoding [" + characterEncoding + ']', null); } this.inCharacterEncoding = characterEncoding; return this; } /** * Set the output texts character encoding, it must be supported by the Java * platform else an exception will be thrown * * @param characterEncoding a character encoding as a String, it must not be * null and must be supported by the Java platform * @return this preprocessor context */ public PreprocessorContext setOutCharacterEncoding(final String characterEncoding) { if (!Charset.isSupported(characterEncoding)) { throw makeException("Unsupported character encoding [" + characterEncoding + ']', null); } this.outCharacterEncoding = characterEncoding; return this; } /** * Get the current character encoding for text reading * * @return the current read texts character encoding as a String */ public String getInCharacterEncoding() { return inCharacterEncoding; } /** * Get the current character encoding for text writing * * @return the current text writing character encoding as a String */ public String getOutCharacterEncoding() { return outCharacterEncoding; } /** * It allows to create a File object for its path subject to the destination * directory path * * @param path the path to the file, it must not be null * @return a generated File object for the path */ public File createDestinationFileForPath(final String path) { PreprocessorUtils.assertNotNull("Path is null", path); if (path.isEmpty()) { throw makeException("File name is empty",null); } return new File(getDestinationDirectoryAsFile(), path); } /** * It returns a File object for a path to a source file subject to the source * directory path * * @param path the path to the needed source file, it must not be null and the * file must exist and be a file * @return a generated File object for the path * @throws IOException it will be thrown for problem to create the File or to * find it on the disk */ public File getSourceFile(final String path) throws IOException { if (path == null) { throw makeException("Path is null", null); } if (path.isEmpty()) { throw makeException("Folder path is empty", null); } File result = null; String parentDir = null; if (currentState != null && currentState.peekFile() != null) { parentDir = currentState.peekFile().getFile().getParent(); } if (FilenameUtils.getPrefixLength(path) <= 0 && parentDir != null) { // relative path result = new File(parentDir, path); } else { final List findFiles = new ArrayList(); for (final File root : getSourceDirectoryAsFiles()) { final File variant = new File(root, path); if (variant.exists() && variant.isFile()) { findFiles.add(variant); } } if (findFiles.size() == 1) { result = findFiles.get(0); } else if (findFiles.isEmpty()) { result = null; } else { throw makeException("Found several variants for path \'" + path + "\' in different source roots",null); } } if (result == null || !result.isFile()) { throw makeException("The File \'" + PreprocessorUtils.getFilePath(result) + "\' is not found or not a file",null); } return result; } /** * Add a configuration file, it is a file which contains directives and global * variable definitions * * @param file a file, it must not be null */ public void addConfigFile(final File file) { PreprocessorUtils.assertNotNull("File is null", file); configFiles.add(file); } /** * Get array of current registered configuration files * * @return a file array contains the current registered configuration files */ public File[] getConfigFiles() { return configFiles.toArray(new File[configFiles.size()]); } /** * Generate new preprocessing state object, also the new preprocessing state * will be saved as the current one in the context * * @param fileContainer a file container which will be using the preprocessor * state, it must not be null * @param phaseIndex index of phase (0 - global, 1 - preprocessing) * @return new generated preprocessor state * @throws IOException it will be throws if there is any error in opening and * reading operations */ public PreprocessingState produceNewPreprocessingState(final FileInfoContainer fileContainer, final int phaseIndex) throws IOException { PreprocessorUtils.assertNotNull("File container is null", fileContainer); if (verbose) { if (phaseIndex == 0){ logInfo("Start search global definitions in '" + PreprocessorUtils.getFilePath(fileContainer.getSourceFile()) + '\''); }else{ logInfo("Start preprocessing '" + PreprocessorUtils.getFilePath(fileContainer.getSourceFile()) + '\''); } } this.currentState = new PreprocessingState(this, fileContainer, getInCharacterEncoding(), getOutCharacterEncoding(), this.compareDestination); return this.currentState; } /** * Generate new preprocessing state for a file container and a text container, * also the new preprocessing state will be saved as the current one in the * context * * @param fileContainer the file container to be used to create the new * preprocessing state, it must not be null * @param textContainer the text container to be used to create the new * preprocessing state, it must not be null * @return new generated preprocessing state */ public PreprocessingState produceNewPreprocessingState(final FileInfoContainer fileContainer, final TextFileDataContainer textContainer) { this.currentState = new PreprocessingState(this, fileContainer, textContainer, getInCharacterEncoding(), getOutCharacterEncoding(), this.compareDestination); return this.currentState; } /** * Get the last generated preprocessing state, it is the current one * * @return the last generated preprocessing state or null if there is not * anyone */ public PreprocessingState getPreprocessingState() { return this.currentState; } /** * Prepare exception with message and cause, or return cause if it is a * preprocessor exception * * @param text the message text, must not be null * @param cause the cause, it can be null * @return prepared exception with additional information */ public PreprocessorException makeException(final String text, final Throwable cause) { if (cause != null && cause instanceof PreprocessorException) { return (PreprocessorException) cause; } final FilePositionInfo[] includeStack; final String sourceLine; if (this.currentState == null) { includeStack = PreprocessingState.EMPTY_STACK; sourceLine = ""; } else { includeStack = this.currentState.makeIncludeStack(); sourceLine = this.currentState.getLastReadString(); } return new PreprocessorException(text, sourceLine, includeStack, cause); } public void logForVerbose(final String str) { if (isVerbose()) { final String stack; if (this.currentState!=null){ stack = makeStackView(this.currentInCloneSource, this.cloned, this.currentState.getCurrentIncludeStack()); }else{ stack = ""; } this.logInfo(str + (stack.isEmpty() ? ' ' : '\n') + stack); } } private static String makeStackView(final TextFileDataContainer cloneSource, final boolean cloned, final List list) { if (list == null || list.isEmpty()) return ""; final StringBuilder builder = new StringBuilder(); int tab = 5; for (int s = 0; s < tab; s++) { builder.append(' '); } builder.append('{'); if (cloned){ builder.append(cloneSource == null ? "*No src info" : "*" + cloneSource.getFile().getName()+':'+cloneSource.getNextStringIndex()); }else{ builder.append("File chain"); } builder.append('}'); tab +=5; int fileIndex = 1; for (int i = list.size() - 1; i >= 0; i--) { final TextFileDataContainer cur = list.get(i); builder.append('\n'); for (int s = 0; s < tab; s++) { builder.append(' '); } builder.append("└>"); builder.append(fileIndex++).append(". "); builder.append(cur.getFile().getName()).append(':').append(cur.getLastReadStringIndex() + 1); tab += 3; } return builder.toString(); } } SpecialVariableProcessor.java000066400000000000000000000034651263163240400345270ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/context/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.context; import com.igormaznitsa.jcp.expression.Value; /** * The interface describes a special variable processor which will be called for * variables met by a preprocessor in expressions * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public interface SpecialVariableProcessor { /** * Get all variable names allowed by the processor as an array, all names must * be in lower case * * @return allowed variable names as a String array */ String[] getVariableNames(); /** * Get the value for the variable * * @param varName the variable name, must not be null * @param context the preprocessor context, it can be null * @return the value, it must not return null because it will notified * preprocessor that it supports the variable */ Value getVariable(String varName, PreprocessorContext context); /** * Set a value to the variable * * @param varName the variable name, must not be null * @param value the value to be set to the variable, must not be null * @param context the preprocessor context, it can be null */ void setVariable(String varName, Value value, PreprocessorContext context); } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/000077500000000000000000000000001263163240400274625ustar00rootroot00000000000000AbortDirectiveHandler.java000066400000000000000000000036641263163240400344630ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.utils.PreprocessorUtils; /** * The class implements the //#abort directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class AbortDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "abort"; } @Override public String getReference() { return "abort preprocessing and show the line tail as message (allows macroses)"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.TAIL; } @Override public AfterDirectiveProcessingBehaviour execute(final String rawTail, final PreprocessorContext context) { final String normal = (!rawTail.isEmpty() && Character.isSpaceChar(rawTail.charAt(0))) ? rawTail.substring(1) : rawTail; final String message = "ABORT: "+PreprocessorUtils.processMacroses(normal, context); if (context.isVerbose()) { context.logForVerbose(message); } else { context.logInfo(message); } context.getPreprocessingState().getPreprocessingFlags().add(PreprocessingFlag.ABORT_PROCESSING); return AfterDirectiveProcessingBehaviour.READ_NEXT_LINE; } } AbstractDirectiveHandler.java000077500000000000000000000131671263163240400351610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class is the abstract parent for all classes process preprocessor * directives * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public abstract class AbstractDirectiveHandler { /** * The common preprocessor prefix for all directives */ public static final String DIRECTIVE_PREFIX = "//#"; /** * The prefix for lines to be kept by preprocessor */ public static final String PREFIX_FOR_KEEPING_LINES = "//JCP> "; /** * The prefix for lines to be kept by preprocessor, which contain processed * directives */ public static final String PREFIX_FOR_KEEPING_LINES_PROCESSED_DIRECTIVES = "//JCP! "; /** * The prefix for one line comment */ public static final String ONE_LINE_COMMENT = "//"; /** * The array contains all directives of the preprocessor */ public static final AbstractDirectiveHandler[] DIRECTIVES = new AbstractDirectiveHandler[]{ // Order makes sense !!! new LocalDirectiveHandler(), new IfDefinedDirectiveHandler(), new IfNDefDirectiveHandler(), new IfDefDirectiveHandler(), new IfDirectiveHandler(), new ElseDirectiveHandler(), new EndIfDirectiveHandler(), new WhileDirectiveHandler(), new BreakDirectiveHandler(), new ContinueDirectiveHandler(), new EndDirectiveHandler(), new ExitIfDirectiveHandler(), new ExitDirectiveHandler(), new OutDirDirectiveHandler(), new OutEnabledDirectiveHandler(), new OutNameDirectiveHandler(), new OutDisabledDirectiveHandler(), new CommentNextLineDirectiveHandler(), new DefinelDirectiveHandler(), new DefineDirectiveHandler(), new UndefDirectiveHandler(), new FlushDirectiveHandler(), new IncludeDirectiveHandler(), new ActionDirectiveHandler(), new PostfixDirectiveHandler(), new PrefixDirectiveHandler(), new GlobalDirectiveHandler(), new GlobalElseDirectiveHandler(), new GlobalEndIfDirectiveHandler(), new GlobalIfDirectiveHandler(), new ExcludeIfDirectiveHandler(), new ErrorDirectiveHandler(), new WarningDirectiveHandler(), new EchoDirectiveHandler(), new MsgDirectiveHandler(), new NoAutoFlushHandler(), new AbortDirectiveHandler() }; /** * The array contains preprocessor directives active only during the global * preprocessing phase */ public static final AbstractDirectiveHandler[] GLOBAL_DIRECTIVES = new AbstractDirectiveHandler[]{ new GlobalDirectiveHandler(), new GlobalElseDirectiveHandler(), new GlobalEndIfDirectiveHandler(), new GlobalIfDirectiveHandler(), new ExcludeIfDirectiveHandler() }; /** * Get the name of the directive without prefix * * @return the directive name, must not be null */ public abstract String getName(); /** * Get the directive reference, it will be printed for a help request * * @return the directive reference as a String, must not be null */ public abstract String getReference(); /** * Get the directive name with prefix * * @return the full directive name (it including prefix) */ public String getFullName() { return DIRECTIVE_PREFIX + getName(); } /** * Get the argument type needed by the directive * * @return the argument type needed by the directive, it can't be null */ public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.NONE; } /** * Execute directive * * @param tailString the tail of the string where the directive has been met, must not be null but can be empty * @param context the preprocessor context, it can be null * @return the needed preprocessor behavior, must not be null */ public abstract AfterDirectiveProcessingBehaviour execute(String tailString, PreprocessorContext context); /** * Shows that the directive can be executed only when the preprocessing n * active state i.e. if it is in active block //#if..//#endif of //#while * * @return true if the directive can be executed only if it is in active * block, else the directive will be called in any case */ public boolean executeOnlyWhenExecutionAllowed() { return true; } /** * Shows that the directive can be executed during a global preprocessing * phase * * @return true if the directive allows the global directive phase, false if * the directive must be ignored during that phase */ public boolean isGlobalPhaseAllowed() { return false; } /** * Shows that the directive can be executed during the second preprocessing * phase * * @return true uf the directive can be executed during the second * preprocessing phase else false if the directive must be ignored */ public boolean isPreprocessingPhaseAllowed() { return true; } /** * Check that the directive is deprecated one and can be removed in a next release * @return true if the directive is deprecated, false otherwise */ public boolean isDeprecated() { return false; } } ActionDirectiveHandler.java000077500000000000000000000077251263163240400346360ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.exceptions.FilePositionInfo; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.expression.ExpressionItem; import com.igormaznitsa.jcp.expression.ExpressionParser; import com.igormaznitsa.jcp.expression.ExpressionTree; import com.igormaznitsa.jcp.expression.Value; import java.io.IOException; import java.io.PushbackReader; import java.io.StringReader; import java.util.ArrayList; import java.util.List; /** * The class implements the //#action directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class ActionDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "action"; } @Override public String getReference() { return "call preprocessor user extension, arguments are comma separated"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.MULTIEXPRESSION; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { if (context.getPreprocessorExtension() != null) { try { final List args = parseString(string, context); final Value[] results = new Value[args.size()]; int index = 0; for (final ExpressionTree expr : args) { final Value val = Expression.evalTree(expr, context); results[index++] = val; } if (!context.getPreprocessorExtension().processAction(context, results)) { throw context.makeException("Extension can't process action ",null); } } catch (IOException ex) { throw context.makeException("Unexpected string detected [" + string + ']',ex); } } return AfterDirectiveProcessingBehaviour.PROCESSED; } private List parseString(final String str, final PreprocessorContext context) throws IOException { final ExpressionParser parser = ExpressionParser.getInstance(); final PushbackReader reader = new PushbackReader(new StringReader(str)); final List result = new ArrayList(); final PreprocessingState state = context.getPreprocessingState(); final FilePositionInfo[] stack; final String sources; if (state == null) { stack = null; sources = null; } else { stack = state.makeIncludeStack(); sources = state.getLastReadString(); } while (true) { final ExpressionTree tree; if (state == null) { tree = new ExpressionTree(); } else { tree = new ExpressionTree(stack, sources); } final ExpressionItem delimiter = parser.readExpression(reader, tree, context, false, true); if (delimiter != null && ExpressionParser.SpecialItem.COMMA != delimiter) { throw context.makeException("Wrong argument format detected",null); } if (tree.isEmpty()) { if (delimiter == null) { break; } else { throw context.makeException("Empty argument",null); } } else { result.add(tree); if (delimiter == null) { break; } } } return result; } } AfterDirectiveProcessingBehaviour.java000066400000000000000000000024121263163240400370470ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; /** * The enumeration contains flags after directive processing behavior * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public enum AfterDirectiveProcessingBehaviour { /** * Notify preprocessor that a directive has been processed successfully */ PROCESSED, /** * Notify preprocessor that a directive has been processed and need to read * the next line immediately */ READ_NEXT_LINE, /** * Notify preprocessor that the directive has not been processed */ NOT_PROCESSED, /** * Notify preprocessor that the line should be commented */ SHOULD_BE_COMMENTED; } BreakDirectiveHandler.java000077500000000000000000000033031263163240400344310ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#break directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class BreakDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "break"; } @Override public String getReference() { return "break the current " + DIRECTIVE_PREFIX + "while..." + DIRECTIVE_PREFIX + "end loop"; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (state.isWhileStackEmpty()) { throw context.makeException("Detected "+getFullName() + " without " + DIRECTIVE_PREFIX + "while",null); } state.getPreprocessingFlags().add(PreprocessingFlag.BREAK_COMMAND); return AfterDirectiveProcessingBehaviour.PROCESSED; } } CommentNextLineDirectiveHandler.java000077500000000000000000000026531263163240400364650ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#// directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class CommentNextLineDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "//"; } @Override public String getReference() { return "comment the next line (just after the directive)"; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { context.getPreprocessingState().getPreprocessingFlags().add(PreprocessingFlag.COMMENT_NEXT_LINE); return AfterDirectiveProcessingBehaviour.PROCESSED; } } ContinueDirectiveHandler.java000077500000000000000000000034711263163240400351770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.containers.TextFileDataContainer; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#continue directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class ContinueDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "continue"; } @Override public String getReference() { return "jump to current active " + DIRECTIVE_PREFIX + "while"; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (state.isWhileStackEmpty()) { throw context.makeException("Detected "+getFullName() + " without " + DIRECTIVE_PREFIX + "while",null); } final TextFileDataContainer whileContainer = state.peekWhile(); state.popAllIFUntilContainerWithFile(whileContainer); state.popWhile(); state.goToString(whileContainer.getNextStringIndex()); return AfterDirectiveProcessingBehaviour.PROCESSED; } } DefineDirectiveHandler.java000077500000000000000000000062211263163240400346010ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.*; import java.io.IOException; /** * The class implements the //#define directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class DefineDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "define"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.TAIL; } @Override public String getReference() { return "define global(!) variable as true (by default) or initialize it by expression result (if presented)"; } protected void process(final PreprocessorContext context, final String varName, final Value value, final boolean exists){ if (exists){ context.logWarning("Variable \'" + varName + "\' has been already defined"); } context.setGlobalVariable(varName, value); } @Override public AfterDirectiveProcessingBehaviour execute(final String rawTail, final PreprocessorContext context) { try { final String trimmedTail = rawTail.trim(); final int spaceIndex = trimmedTail.indexOf(' '); final String name; final String expression; if (spaceIndex>0){ name = trimmedTail.substring(0,spaceIndex).trim(); final String trimmed = trimmedTail.substring(spaceIndex).trim(); expression = trimmed.isEmpty() || trimmed.startsWith("//") || trimmed.startsWith("/*") ? null : trimmed; }else{ name = trimmedTail; expression = null; } final ExpressionTree nameTree = ExpressionParser.getInstance().parse(name, context); if (nameTree.isEmpty()){ throw context.makeException("Var name is empty",null); } final ExpressionTreeElement root = nameTree.getRoot(); final ExpressionItem item = root.getItem(); if (item.getExpressionItemType() != ExpressionItemType.VARIABLE) { throw context.makeException("Can't recognize variable name ["+name+']',null); } final Value value; if (expression!=null){ value = Expression.evalExpression(expression, context); }else{ value = Value.valueOf(Boolean.TRUE); } process(context, ((Variable) item).getName(), value, context.findVariableForName(name) != null); } catch (IOException ex) { throw context.makeException("Unexpected exception",ex); } return AfterDirectiveProcessingBehaviour.PROCESSED; } } DefinelDirectiveHandler.java000066400000000000000000000025621263163240400347560ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the //#definel directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class DefinelDirectiveHandler extends DefineDirectiveHandler { @Override public String getName() { return "definel"; } @Override public String getReference() { return "define local(!) variable as true (by default) or initialize it by expression result (if presented)"; } @Override protected void process(final PreprocessorContext context, final String varName, final Value value, final boolean exists) { context.setLocalVariable(varName, value); } } DirectiveArgumentType.java000066400000000000000000000022751263163240400345370ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; /** * The enumeration contains possible argument types are being used by directives * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public enum DirectiveArgumentType { NONE(""), STRING("STRING"), TAIL("TAIL"), BOOLEAN("BOOLEAN"), VARNAME("VAR"), EXPRESSTION("EXPR"), MULTIEXPRESSION("EXPR1,EXPR2...EXPRn"), SET("VAR=EXPR"), ONOFF("[+|-]"); private final String str; private DirectiveArgumentType(final String str) { this.str = str; } public String getAsText() { return this.str; } } EchoDirectiveHandler.java000077500000000000000000000030161263163240400342640ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.utils.PreprocessorUtils; /** * The class implements //#assert directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class EchoDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "echo"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.TAIL; } @Override public String getReference() { return "macroses will be replaced in the text tail and the result will be out as info"; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { context.logInfo(PreprocessorUtils.processMacroses(string.trim(), context)); return AfterDirectiveProcessingBehaviour.PROCESSED; } } ElseDirectiveHandler.java000077500000000000000000000040411263163240400342750ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#else directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class ElseDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "else"; } @Override public String getReference() { return "invert condition result for " + DIRECTIVE_PREFIX + "if.." + DIRECTIVE_PREFIX + "endif control structure"; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (state.isIfStackEmpty()) { throw context.makeException("Detected "+getFullName() + " without " + DIRECTIVE_PREFIX + "if",null); } if (state.isAtActiveIf()) { if (state.getPreprocessingFlags().contains(PreprocessingFlag.IF_CONDITION_FALSE)) { state.getPreprocessingFlags().remove(PreprocessingFlag.IF_CONDITION_FALSE); } else { state.getPreprocessingFlags().add(PreprocessingFlag.IF_CONDITION_FALSE); } } return AfterDirectiveProcessingBehaviour.PROCESSED; } @Override public boolean executeOnlyWhenExecutionAllowed() { return false; } } EndDirectiveHandler.java000077500000000000000000000042221263163240400341140ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.containers.TextFileDataContainer; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#end directive * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class EndDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "end"; } @Override public String getReference() { return "end of " + DIRECTIVE_PREFIX + "while..." + getFullName() + " loop, do jump to the loop start"; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (state.isWhileStackEmpty()) { throw context.makeException("Detected "+getFullName() + " without " + DIRECTIVE_PREFIX + "while",null); } if (state.isDirectiveCanBeProcessedIgnoreBreak()) { final TextFileDataContainer thisWhile = state.peekWhile(); final boolean breakIsSet = state.getPreprocessingFlags().contains(PreprocessingFlag.BREAK_COMMAND); state.popWhile(); if (!breakIsSet) { state.goToString(thisWhile.getNextStringIndex()); } } else { state.popWhile(); } return AfterDirectiveProcessingBehaviour.PROCESSED; } @Override public boolean executeOnlyWhenExecutionAllowed() { return false; } } EndIfDirectiveHandler.java000077500000000000000000000035701263163240400344000ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#endif directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class EndIfDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "endif"; } @Override public boolean executeOnlyWhenExecutionAllowed() { return false; } @Override public String getReference() { return "end of " + DIRECTIVE_PREFIX + "if..." + getFullName() + " control structure"; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (state.isIfStackEmpty()) { throw context.makeException("Detected "+getFullName() + " without " + DIRECTIVE_PREFIX + "if",null); } if (!state.isDirectiveCanBeProcessed() && state.isAtActiveIf()) { state.getPreprocessingFlags().remove(PreprocessingFlag.IF_CONDITION_FALSE); } state.popIf(); return AfterDirectiveProcessingBehaviour.PROCESSED; } } ErrorDirectiveHandler.java000066400000000000000000000036111263163240400344750ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.utils.PreprocessorUtils; /** * The class implements //#error directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class ErrorDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "error"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.EXPRESSTION; } @Override public String getReference() { return "throw fatal preprocessor exception with message and stop work"; } protected void process(final PreprocessorContext context, final String message) { final String text = PreprocessorUtils.processMacroses(message, context); context.logError(text); throw context.makeException(text, null); } @Override public AfterDirectiveProcessingBehaviour execute(final String trimmedString, final PreprocessorContext context) { final String message = trimmedString.isEmpty() ? "Thrown fatal error" : Expression.evalExpression(trimmedString, context).toString(); process(context, message); return AfterDirectiveProcessingBehaviour.PROCESSED; } } ExcludeIfDirectiveHandler.java000077500000000000000000000034061263163240400352610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#excludeif directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class ExcludeIfDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "excludeif"; } @Override public String getReference() { return "exclude file from preprocessing if flag is true"; } @Override public boolean isGlobalPhaseAllowed() { return true; } @Override public boolean isPreprocessingPhaseAllowed() { return false; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.BOOLEAN; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); state.pushExcludeIfData(state.getRootFileInfo(), string, state.peekFile().getLastReadStringIndex()); return AfterDirectiveProcessingBehaviour.PROCESSED; } } ExitDirectiveHandler.java000077500000000000000000000031371263163240400343230ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#exit directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class ExitDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "exit"; } @Override public String getReference() { return "return to previous one in include stack"; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); state.getPreprocessingFlags().add(PreprocessingFlag.END_PROCESSING); if (context.isVerbose()) { context.logForVerbose("Detected " + getFullName()); } return AfterDirectiveProcessingBehaviour.READ_NEXT_LINE; } } ExitIfDirectiveHandler.java000077500000000000000000000045561263163240400346100ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; /** * The class implements the //#exitif directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class ExitIfDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "exitif"; } @Override public String getReference() { return "return to previous one in include stack if flag is true"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.BOOLEAN; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); AfterDirectiveProcessingBehaviour result = AfterDirectiveProcessingBehaviour.PROCESSED; // To end processing the file processing immediatly if the value is true final Value condition = Expression.evalExpression(string, context); if (condition == null || condition.getType() != ValueType.BOOLEAN) { throw context.makeException(getFullName() + " needs boolean argument", null); } if (((Boolean) condition.getValue())) { state.getPreprocessingFlags().add(PreprocessingFlag.END_PROCESSING); result = AfterDirectiveProcessingBehaviour.READ_NEXT_LINE; if (context.isVerbose()){ context.logForVerbose("Detected "+getFullName()+" with active flag"); } } return result; } } FlushDirectiveHandler.java000077500000000000000000000041451263163240400344730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.context.PreprocessorContext; import java.io.File; import java.io.IOException; /** * The class implements the //#flush directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class FlushDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "flush"; } @Override public String getReference() { return "flush text buffers to disk and clear the buffers"; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (!context.isFileOutputDisabled()) { final File outFile = context.createDestinationFileForPath(state.getRootFileInfo().getDestinationFilePath()); try { if (context.isVerbose()){ context.logForVerbose("Flush buffers into file '"+outFile+'\''); } final boolean saved = state.saveBuffersToFile(outFile, context.isRemoveComments()); if (context.isVerbose()) { context.logForVerbose("Content was "+(saved? "saved" : "not saved")+" into file '"+outFile+"\'"); } state.resetPrinters(); } catch (IOException ex) { throw context.makeException("Can't flush text buffers", ex); } } return AfterDirectiveProcessingBehaviour.PROCESSED; } } GlobalDirectiveHandler.java000077500000000000000000000042141263163240400346070ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.utils.PreprocessorUtils; /** * The class implements the //#global directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class GlobalDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "global"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.SET; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { processDefinition(string, context); return AfterDirectiveProcessingBehaviour.PROCESSED; } @Override public String getReference() { return "define global variable"; } @Override public boolean isGlobalPhaseAllowed() { return true; } @Override public boolean isPreprocessingPhaseAllowed() { return false; } private void processDefinition(final String string, final PreprocessorContext context) { final String[] splitted = PreprocessorUtils.splitForEqualChar(string); if (splitted.length != 2) { throw context.makeException("Can't find expression [" + string + ']', null); } final String name = splitted[0].trim(); final Value newValue = Expression.evalExpression(splitted[1].trim(), context); context.setGlobalVariable(name, newValue); } } GlobalElseDirectiveHandler.java000077500000000000000000000043111263163240400354160ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#_else directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class GlobalElseDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "_else"; } @Override public String getReference() { return "invert condition result for "+DIRECTIVE_PREFIX +"_if.."+DIRECTIVE_PREFIX +"_endif control construction"; } @Override public boolean isGlobalPhaseAllowed() { return true; } @Override public boolean isPreprocessingPhaseAllowed() { return false; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (state.isIfStackEmpty()) { throw context.makeException("Detected "+getFullName() + " without " + DIRECTIVE_PREFIX + "_if",null); } if (state.isAtActiveIf()) { if (state.getPreprocessingFlags().contains(PreprocessingFlag.IF_CONDITION_FALSE)) { state.getPreprocessingFlags().remove(PreprocessingFlag.IF_CONDITION_FALSE); } else { state.getPreprocessingFlags().add(PreprocessingFlag.IF_CONDITION_FALSE); } } return AfterDirectiveProcessingBehaviour.PROCESSED; } @Override public boolean executeOnlyWhenExecutionAllowed() { return false; } } GlobalEndIfDirectiveHandler.java000077500000000000000000000040441263163240400355160ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#_endif directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class GlobalEndIfDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "_endif"; } @Override public boolean executeOnlyWhenExecutionAllowed() { return false; } @Override public String getReference() { return "end "+DIRECTIVE_PREFIX +"_if.."+DIRECTIVE_PREFIX +"_endif control construction"; } @Override public boolean isGlobalPhaseAllowed() { return true; } @Override public boolean isPreprocessingPhaseAllowed() { return false; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (state.isIfStackEmpty()) { throw context.makeException("Detected "+getFullName() + " without " + DIRECTIVE_PREFIX + "_if",null); } if (!state.isDirectiveCanBeProcessed() && state.isAtActiveIf()) { state.getPreprocessingFlags().remove(PreprocessingFlag.IF_CONDITION_FALSE); } state.popIf(); return AfterDirectiveProcessingBehaviour.PROCESSED; } } GlobalIfDirectiveHandler.java000077500000000000000000000047031263163240400350710ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; /** * The class implements the //#_if directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class GlobalIfDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "_if"; } @Override public String getReference() { return "start "+getFullName() +".."+DIRECTIVE_PREFIX +"_endif control construction"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.BOOLEAN; } @Override public boolean executeOnlyWhenExecutionAllowed() { return false; } @Override public boolean isGlobalPhaseAllowed() { return true; } @Override public boolean isPreprocessingPhaseAllowed() { return false; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (state.isDirectiveCanBeProcessed()) { final Value expressionResult = Expression.evalExpression(string, context); if (expressionResult == null || expressionResult.getType() != ValueType.BOOLEAN) { throw context.makeException("Non boolean argument", null); } state.pushIf(true); if (!expressionResult.asBoolean()) { state.getPreprocessingFlags().add(PreprocessingFlag.IF_CONDITION_FALSE); } } else { state.pushIf(false); } return AfterDirectiveProcessingBehaviour.PROCESSED; } } IfDefDirectiveHandler.java000066400000000000000000000023651263163240400343660ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; /** * The class implements short synonym for the //#ifdefined directive * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class IfDefDirectiveHandler extends IfDefinedDirectiveHandler { @Override public String getName() { return "ifdef"; } @Override public String getReference() { return "the short variant of "+ DIRECTIVE_PREFIX + super.getName(); } @Override public boolean executeOnlyWhenExecutionAllowed() { return false; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.VARNAME; } } IfDefinedDirectiveHandler.java000077500000000000000000000044631263163240400352320ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#ifdefined directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class IfDefinedDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "ifdefined"; } @Override public String getReference() { return "check existence of variable in the current context, it starts "+ DIRECTIVE_PREFIX +"ifdefined.."+DIRECTIVE_PREFIX +"else.."+DIRECTIVE_PREFIX+"endif control structure"; } protected boolean postprocessFlag(final boolean variableExists){ return !variableExists; } @Override public boolean executeOnlyWhenExecutionAllowed() { return false; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.VARNAME; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (state.isDirectiveCanBeProcessed()) { if (string.isEmpty()) { throw context.makeException(getFullName()+" needs variable name",null); } state.pushIf(true); final boolean variableExists = context.findVariableForName(string) != null; if (postprocessFlag(variableExists)) { state.getPreprocessingFlags().add(PreprocessingFlag.IF_CONDITION_FALSE); } } else { state.pushIf(false); } return AfterDirectiveProcessingBehaviour.PROCESSED; } } IfDirectiveHandler.java000077500000000000000000000045051263163240400337500ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; /** * The class implements the //#if directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class IfDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "if"; } @Override public String getReference() { return "check flag and start " + DIRECTIVE_PREFIX + "if.." + DIRECTIVE_PREFIX + "else.." + DIRECTIVE_PREFIX + "endif construction"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.BOOLEAN; } @Override public boolean executeOnlyWhenExecutionAllowed() { return false; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (state.isDirectiveCanBeProcessed()) { final Value expressionResult = Expression.evalExpression(string, context); if (expressionResult == null || expressionResult.getType() != ValueType.BOOLEAN) { throw context.makeException("Non boolean flag",null); } state.pushIf(true); if (!expressionResult.asBoolean()) { state.getPreprocessingFlags().add(PreprocessingFlag.IF_CONDITION_FALSE); } } else { state.pushIf(false); } return AfterDirectiveProcessingBehaviour.PROCESSED; } } IfNDefDirectiveHandler.java000066400000000000000000000022571263163240400345040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; /** * The class implements the //#ifndef directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class IfNDefDirectiveHandler extends IfDefinedDirectiveHandler { @Override public String getName() { return "ifndef"; } @Override protected boolean postprocessFlag(final boolean variableExists) { return variableExists; } @Override public String getReference() { return "works like "+DIRECTIVE_PREFIX+super.getName()+" but active if variable is not defined"; } } IncludeDirectiveHandler.java000077500000000000000000000041741263163240400347770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.expression.Value; import java.io.File; import java.io.IOException; /** * The class implements the //#include directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class IncludeDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "include"; } @Override public String getReference() { return "include file and preprocess in the current file context"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.STRING; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); final Value includingFilePath = Expression.evalExpression(string, context); final String filePath = includingFilePath.toString(); try { final File thefile = context.getSourceFile(filePath); if (context.isVerbose()) { context.logForVerbose("Including file '" + thefile.getCanonicalPath() + '\''); } state.openFile(thefile); } catch (IOException ex) { throw context.makeException("Can't open file '" + filePath + '\'', ex); } return AfterDirectiveProcessingBehaviour.PROCESSED; } } LocalDirectiveHandler.java000077500000000000000000000037771263163240400344560ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.utils.PreprocessorUtils; /** * The class implements the //#local directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class LocalDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "local"; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { processLocalDefinition(string, context); return AfterDirectiveProcessingBehaviour.PROCESSED; } @Override public String getReference() { return "make local definition which is visilble only in the current file context"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.SET; } private void processLocalDefinition(final String string, final PreprocessorContext context) { final String[] splitted = PreprocessorUtils.splitForEqualChar(string); if (splitted.length != 2) { throw context.makeException("Can't find expression", null); } final String name = splitted[0]; final Value value = Expression.evalExpression(splitted[1], context); context.setLocalVariable(name, value); } } MsgDirectiveHandler.java000066400000000000000000000033671263163240400341420ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.utils.PreprocessorUtils; /** * The class implements //#msg directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class MsgDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "msg"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.TAIL; } @Override public String getReference() { return "string tail macroses will be replaced and message will be printed as info"; } @Override public AfterDirectiveProcessingBehaviour execute(final String rawTail, final PreprocessorContext context) { final String normal = (!rawTail.isEmpty() && Character.isSpaceChar(rawTail.charAt(0))) ? rawTail.substring(1) : rawTail; final String message = PreprocessorUtils.processMacroses(normal, context); if (context.isVerbose()){ context.logForVerbose(message); }else{ context.logInfo(message); } return AfterDirectiveProcessingBehaviour.PROCESSED; } } NoAutoFlushHandler.java000066400000000000000000000031231263163240400337520ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#noautoflush directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class NoAutoFlushHandler extends AbstractDirectiveHandler { @Override public String getName() { return "noautoflush"; } @Override public String getReference() { return "disable autoflush for text buffers in the end of file processing"; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (state!=null){ if (context.isVerbose()){ context.logForVerbose("AutoFlush for file has been disabled"); } state.peekFile().disableAutoFlush(); } return AfterDirectiveProcessingBehaviour.PROCESSED; } } OutDirDirectiveHandler.java000077500000000000000000000036141263163240400346200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.JCPSpecialVariableProcessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the //#outdir directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class OutDirDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "outdir"; } @Override public String getReference() { return "change result file folder (works like change \'" + JCPSpecialVariableProcessor.VAR_DEST_DIR + "\')"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.STRING; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final Value name = Expression.evalExpression(string, context); final String nameAsString = name.toString(); if (context.isVerbose()) { context.logForVerbose("Change result file folder '" + nameAsString + "\'"); } context.getPreprocessingState().getRootFileInfo().setDestinationDir(nameAsString); return AfterDirectiveProcessingBehaviour.PROCESSED; } } OutDisabledDirectiveHandler.java000077500000000000000000000027671263163240400356210ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#- directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class OutDisabledDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "-"; } @Override public String getReference() { return "turn off text output"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.NONE; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { context.getPreprocessingState().getPreprocessingFlags().add(PreprocessingFlag.TEXT_OUTPUT_DISABLED); return AfterDirectiveProcessingBehaviour.PROCESSED; } } OutEnabledDirectiveHandler.java000077500000000000000000000027701263163240400354360ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#+ directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class OutEnabledDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "+"; } @Override public String getReference() { return "turn on text output"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.NONE; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { context.getPreprocessingState().getPreprocessingFlags().remove(PreprocessingFlag.TEXT_OUTPUT_DISABLED); return AfterDirectiveProcessingBehaviour.PROCESSED; } } OutNameDirectiveHandler.java000077500000000000000000000036311263163240400347610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.JCPSpecialVariableProcessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the //#outname directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class OutNameDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "outname"; } @Override public String getReference() { return "change result file name (works like change \'" + JCPSpecialVariableProcessor.VAR_DEST_FILE_NAME+"\')"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.STRING; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final Value fileName = Expression.evalExpression(string, context); final String fileNameAsStr = fileName.toString(); if (context.isVerbose()){ context.logForVerbose("Change result file name to '"+fileNameAsStr+"\'"); } context.getPreprocessingState().getRootFileInfo().setDestinationName(fileNameAsStr); return AfterDirectiveProcessingBehaviour.PROCESSED; } } PostfixDirectiveHandler.java000077500000000000000000000037571263163240400350560ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#postfix[+|-] directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class PostfixDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "postfix"; } @Override public String getReference() { return "turn on(+) or turn off(-) writing into result file postfix"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.ONOFF; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (!string.isEmpty()) { switch (string.charAt(0)) { case '+': { state.setPrinter(PreprocessingState.PrinterType.POSTFIX); } break; case '-': { state.setPrinter(PreprocessingState.PrinterType.NORMAL); } break; default:{ throw context.makeException("Unsupported ending ["+string+']', null); } } return AfterDirectiveProcessingBehaviour.PROCESSED; } throw context.makeException(getFullName() + " needs ending [+|-]", null); } } PrefixDirectiveHandler.java000077500000000000000000000037561263163240400346560ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.context.PreprocessorContext; /** * The class implements the //#prefix[+|-] directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class PrefixDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "prefix"; } @Override public String getReference() { return "turn on(+) or turn off(-) writing into result file prefix"; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.ONOFF; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (!string.isEmpty()) { switch (string.charAt(0)) { case '+': { state.setPrinter(PreprocessingState.PrinterType.PREFIX); } break; case '-': { state.setPrinter(PreprocessingState.PrinterType.NORMAL); } break; default:{ throw context.makeException("Unsupported ending [" + string + ']', null); } } return AfterDirectiveProcessingBehaviour.PROCESSED; } throw context.makeException(getFullName() + " needs ending [+|-]", null); } } UndefDirectiveHandler.java000066400000000000000000000030721263163240400344460ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the //#undef directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class UndefDirectiveHandler extends DefineDirectiveHandler { @Override public String getName() { return "undef"; } @Override public String getReference() { return "undefine either local or global variable if it is defined"; } @Override protected void process(final PreprocessorContext context, final String varName, final Value value, final boolean exists) { if(context.isLocalVariable(varName)){ context.removeLocalVariable(varName); }else if (context.isGlobalVariable(varName)){ context.removeGlobalVariable(varName); }else{ throw context.makeException("Attempting to undefine unknown variable '"+value+"\'",null); } } } WarningDirectiveHandler.java000066400000000000000000000025711263163240400350150ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.utils.PreprocessorUtils; /** * The class implements //#warning directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class WarningDirectiveHandler extends ErrorDirectiveHandler { @Override public String getName() { return "warning"; } @Override public String getReference() { return "log warning message"; } @Override protected void process(final PreprocessorContext context, final String message) { context.logWarning(PreprocessorUtils.processMacroses(message, context)); if (context.isVerbose()){ context.logForVerbose("Detected warning : "+message); } } } WhileDirectiveHandler.java000077500000000000000000000044041263163240400344600ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.containers.PreprocessingFlag; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; /** * The class implements the //#while directive handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class WhileDirectiveHandler extends AbstractDirectiveHandler { @Override public String getName() { return "while"; } @Override public String getReference() { return "start " + getFullName() + ".."+DIRECTIVE_PREFIX+"end loop structure"; } @Override public boolean executeOnlyWhenExecutionAllowed() { return false; } @Override public DirectiveArgumentType getArgumentType() { return DirectiveArgumentType.BOOLEAN; } @Override public AfterDirectiveProcessingBehaviour execute(final String string, final PreprocessorContext context) { final PreprocessingState state = context.getPreprocessingState(); if (state.isDirectiveCanBeProcessed()) { final Value condition = Expression.evalExpression(string, context); if (condition == null || condition.getType() != ValueType.BOOLEAN) { throw context.makeException("Non boolean argument", null); } state.pushWhile(true); if (!condition.asBoolean()) { state.getPreprocessingFlags().add(PreprocessingFlag.BREAK_COMMAND); } } else { state.pushWhile(false); } return AfterDirectiveProcessingBehaviour.PROCESSED; } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/exceptions/000077500000000000000000000000001263163240400275025ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/exceptions/FilePositionInfo.java000077500000000000000000000031241263163240400335700ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.exceptions; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.io.File; /** * The class implements a file data storage where an exception can store a * snapshot of the current preprocessing file data * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class FilePositionInfo { /** * The preprocessing file */ private final File file; /** * The current string index in the file */ private final int stringIndex; public FilePositionInfo(final File file, final int stringIndex) { PreprocessorUtils.assertNotNull("File is null", file); this.file = file; this.stringIndex = stringIndex; } public File getFile() { return this.file; } public int getStringIndex() { return this.stringIndex; } @Override public String toString() { final String filePath = PreprocessorUtils.getFilePath(this.file); return filePath + ':' + Integer.toString(stringIndex + 1); } } PreprocessorException.java000077500000000000000000000106321263163240400346400ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/exceptions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.exceptions; import java.io.*; /** * The exception allows to save some useful data about preprocessing files like * the current include stack and the error string index * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class PreprocessorException extends RuntimeException { private static final long serialVersionUID = 2857499664112391862L; private final String processingString; private transient final FilePositionInfo[] includeStack; public PreprocessorException(final String message, final String processedText, final FilePositionInfo[] includeStack, final Throwable cause) { super(message, cause); this.processingString = processedText; this.includeStack = includeStack == null ? new FilePositionInfo[0] : includeStack.clone(); } public File getRootFile() { if (includeStack.length == 0) { return null; } else { return includeStack[includeStack.length - 1].getFile(); } } public File getProcessingFile() { if (includeStack.length == 0) { return null; } else { return includeStack[0].getFile(); } } public int getStringIndex() { if (includeStack.length == 0) { return -1; } else { return includeStack[0].getStringIndex() + 1; } } public String getProcessingString() { return processingString; } private String convertIncludeStackToString() { final StringBuilder result = new StringBuilder(); for (int i = 0; i < this.includeStack.length; i++) { if (i > 0) { result.append("<-"); } result.append(this.includeStack[i].toString()); } return result.toString(); } public FilePositionInfo[] getIncludeChain() { return this.includeStack.clone(); } @Override public String toString() { final StringBuilder result = new StringBuilder(); result.append(getMessage()).append(", include stack: ").append(convertIncludeStackToString()).append(", source line: ").append(this.processingString); return result.toString(); } private static String makeStackView(final FilePositionInfo[] list, final char fill) { if (list == null || list.length == 0) { return ""; } final StringBuilder builder = new StringBuilder(); int tab = 5; for (int s = 0; s < tab; s++) { builder.append(fill); } builder.append("{File chain}"); tab += 5; int fileIndex = 1; for (int i = list.length - 1; i >= 0; i--) { final FilePositionInfo cur = list[i]; builder.append('\n'); for (int s = 0; s < tab; s++) { builder.append(fill); } builder.append("└>"); builder.append(fileIndex++).append(". "); builder.append(cur.getFile().getName()).append(':').append(cur.getStringIndex()); tab += 3; } return builder.toString(); } public static PreprocessorException extractPreprocessorException(final Throwable thr){ if (thr == null) return null; Throwable result = thr; do{ if (result instanceof PreprocessorException) return (PreprocessorException)result; result = result.getCause(); }while(result!=null); return null; } public static String referenceAsString(final char fillChar, final Throwable thr) { if (thr == null) { return ""; } final StringWriter buffer = new StringWriter(1024); final PrintWriter out = new PrintWriter(buffer); final PreprocessorException pp = PreprocessorException.extractPreprocessorException(thr); if (pp == null) { out.println(thr.getMessage()); thr.printStackTrace(out); } else { out.println(pp.getMessage()); out.println(makeStackView(pp.getIncludeChain(),fillChar)); if (pp.getCause() != null) { pp.getCause().printStackTrace(out); } } return buffer.toString(); } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/000077500000000000000000000000001263163240400275205ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/Expression.java000077500000000000000000000313631263163240400325330ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.exceptions.FilePositionInfo; import com.igormaznitsa.jcp.expression.functions.AbstractFunction; import com.igormaznitsa.jcp.expression.functions.FunctionDefinedByUser; import com.igormaznitsa.jcp.expression.operators.AbstractOperator; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Arrays; /** * The main class to calculate expressions * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class Expression { /** * Precreated array for speed up operations */ private static final Class[] OPERATOR_SIGNATURE_1 = new Class[]{Value.class}; /** * Precreated array for speed up operations */ private static final Class[] OPERATOR_SIGNATURE_2 = new Class[]{Value.class, Value.class}; /** * The variable contains the preprocessor context for the expression, it can * be null */ private final PreprocessorContext context; /** * The variable contains the expression tree */ private final ExpressionTree expressionTree; /** * Evaluate the expression * * @return the result as a Value object, it can't be null */ public Value eval() { return this.eval(null); } /** * Evaluate expression * * @param expression the expression as a String, must not be null * @param context a preprocessor context to be used for expression operations, * it can be null * @return the result as a Value object, it can't be null */ public static Value evalExpression(final String expression, final PreprocessorContext context) { try { final ExpressionTree tree = ExpressionParser.getInstance().parse(expression, context); return evalTree(tree, context); } catch (IOException unexpected) { throw context.makeException("[Expression]Wrong expression format detected [" + expression + ']',unexpected); } } /** * Evaluate an expression tree * * @param tree an expression tree, it must not be null * @param context a preprocessor context to be used for expression operations, * it can be null * @return the result as a Value object, it can't be null */ public static Value evalTree(final ExpressionTree tree, final PreprocessorContext context) { final Expression exp = new Expression(context, tree); return exp.eval(context == null ? null : context.getPreprocessingState()); } private Expression(final PreprocessorContext context, final ExpressionTree tree) { if (tree == null) { throw context.makeException("[Expression]The expression tree is null",null); } this.context = context; this.expressionTree = tree; } private ExpressionTreeElement evalFunction(final ExpressionTreeElement functionElement, final PreprocessingState state) { final AbstractFunction function = (AbstractFunction) functionElement.getItem(); final int arity = function.getArity(); final Value[] arguments = new Value[arity]; final Class[] methodArguments = new Class[arity + 1]; methodArguments[0] = PreprocessorContext.class; final FilePositionInfo [] stack; final String sources; if (state == null){ stack = PreprocessingState.EMPTY_STACK; sources = ""; }else{ stack = state.makeIncludeStack(); sources = state.getLastReadString(); } final StringBuilder signature = new StringBuilder(AbstractFunction.EXECUTION_PREFIX); for (int i = 1; i <= arity; i++) { methodArguments[i] = Value.class; } for (int i = 0; i < arity; i++) { final ExpressionTreeElement item = calculateTreeElement(functionElement.getChildForIndex(i), state); if (item == null) { throw this.context.makeException("[Expression]There is not needed argument for the \'" + function.getName() + "\' function",null); } final ExpressionItem itemValue = item.getItem(); if (itemValue instanceof Value) { arguments[i] = (Value) itemValue; } else { throw this.context.makeException("[Expression]Wrong argument type detected for the \'" + function.getName() + "\' function",null); } } final ValueType[][] allowedSignatures = function.getAllowedArgumentTypes(); ValueType[] allowed = null; for (final ValueType[] current : allowedSignatures) { boolean allCompatible = true; int thatIndex = 0; for (final ValueType type : current) { if (!type.isCompatible(arguments[thatIndex].getType())) { allCompatible = false; break; } thatIndex++; } if (allCompatible) { allowed = current; for (final ValueType type : allowed) { signature.append(type.getSignature()); } break; } } if (allowed == null) { throw this.context.makeException("[Expression]Unsupported argument detected for \'" + function.getName() + '\'', null); } if (function instanceof FunctionDefinedByUser) { final FunctionDefinedByUser userFunction = (FunctionDefinedByUser) function; try { return new ExpressionTreeElement(userFunction.execute(context, arguments),stack, sources); } catch (Exception unexpected) { throw this.context.makeException("[Expression]Unexpected exception during a user function processing", unexpected); } } else { try { final Method method = function.getClass().getMethod(signature.toString(), methodArguments); final Object[] callArgs = new Object[arity + 1]; callArgs[0] = context; System.arraycopy(arguments, 0, callArgs, 1, arity); final Value result = (Value) method.invoke(function, callArgs); if (!result.getType().isCompatible(function.getResultType())) { throw this.context.makeException("[Expression]Unsupported function result detected [" + result.getType().getSignature() + ']',null); } return new ExpressionTreeElement(result, stack, sources); } catch (NoSuchMethodException unexpected) { throw this.context.makeException("[Expression]Can't find a function method to process data [" + signature.toString() + ']', unexpected); } catch (Exception unexpected) { throw this.context.makeException("[Expression]Can't execute a function method to process data [" + function.getClass().getName()+'.'+signature.toString() + ']', unexpected); } } } private ExpressionTreeElement evalOperator(final ExpressionTreeElement operatorElement, final PreprocessingState state) { final AbstractOperator operator = (AbstractOperator) operatorElement.getItem(); final int arity = operator.getArity(); final Value[] arguments = new Value[arity]; final Class[] methodArguments = arity == 1 ? OPERATOR_SIGNATURE_1 : OPERATOR_SIGNATURE_2; final StringBuilder signatureNormal = new StringBuilder(AbstractOperator.EXECUTION_PREFIX); final StringBuilder signatureAnyLeft = new StringBuilder(AbstractOperator.EXECUTION_PREFIX); final StringBuilder signatureAnyRight = new StringBuilder(AbstractOperator.EXECUTION_PREFIX); final FilePositionInfo [] stack; final String sources; if (state == null){ stack = PreprocessingState.EMPTY_STACK; sources = ""; }else{ stack = state.makeIncludeStack(); sources = state.getLastReadString(); } for (int i = 0; i < arity; i++) { final ExpressionTreeElement arg = operatorElement.getChildForIndex(i); if (arg == null) { throw this.context.makeException("[Expression]There is not needed argument for the operator [" + operator.getKeyword() + ']',null); } final ExpressionTreeElement currentElement = calculateTreeElement(arg, state); final ExpressionItem item = currentElement.getItem(); if (item instanceof Value) { arguments[i] = (Value) item; } else { throw this.context.makeException("[Expression]Non-value detected for the \'" + operator.getKeyword() + "\' operator",null); } } int argIndex = 0; for (final Value value : arguments) { final String typeSignature = value.getType().getSignature(); signatureNormal.append(typeSignature); if (argIndex == 0) { signatureAnyLeft.append(ValueType.ANY.getSignature()); } else { signatureAnyLeft.append(typeSignature); } if (argIndex == 1) { signatureAnyRight.append(ValueType.ANY.getSignature()); } else { signatureAnyRight.append(typeSignature); } argIndex++; } Method executeMehod = null; try { executeMehod = operator.getClass().getMethod(signatureNormal.toString(), methodArguments); } catch (NoSuchMethodException ex) { try { executeMehod = operator.getClass().getMethod(signatureAnyLeft.toString(), methodArguments); } catch (NoSuchMethodException ex2) { try { executeMehod = operator.getClass().getMethod(signatureAnyRight.toString(), methodArguments); } catch (NoSuchMethodException ex3) { } } } if (executeMehod == null) { throw this.context.makeException("[Expression]Unsupported arguments detected for operator \'" + operator.getKeyword() + "\' " + Arrays.toString(arguments),null); } try { return new ExpressionTreeElement((Value) executeMehod.invoke(operator, (Object[]) arguments), stack, sources); } catch (ArithmeticException arithEx) { throw arithEx; } catch (InvocationTargetException ex) { final Throwable thr = ex.getTargetException(); if (thr instanceof ArithmeticException) { throw (ArithmeticException) thr; } throw new RuntimeException("Invocation exception during \'" + operator.getKeyword() + "\' processing", thr); } catch (Exception unexpected) { throw this.context.makeException("[Exception]Exception during \'" + operator.getKeyword() + "\' processing", unexpected); } } private ExpressionTreeElement calculateTreeElement(final ExpressionTreeElement element, final PreprocessingState state) { ExpressionTreeElement treeElement = element; switch (element.getItem().getExpressionItemType()) { case VARIABLE: { PreprocessorUtils.assertNotNull("[Expression]Variable can't be used without context [" + element.getItem().toString() + ']',context); final Variable var = (Variable) element.getItem(); final String name = var.getName(); final Value value = context.findVariableForName(name); if (value == null) { throw new RuntimeException("Unknown variable [" + name + ']'); } else { treeElement = new ExpressionTreeElement(value, state.makeIncludeStack(), state.getLastReadString()); } } break; case OPERATOR: { treeElement = evalOperator(element, state); } break; case FUNCTION: { treeElement = evalFunction(element, state); } break; } return treeElement; } private Value eval(final PreprocessingState state) { if (expressionTree.isEmpty()) { throw this.context.makeException("[Expression]The expression is empty",null); } final ExpressionTreeElement result = calculateTreeElement(expressionTree.getRoot(), state); final ExpressionItem resultItem = result.getItem(); if (resultItem == null) { throw this.context.makeException("[Expression]Expression doesn't have result",null); } if (resultItem instanceof Value) { return (Value) resultItem; } else { throw this.context.makeException("[Expression]The expression returns non-value result [" + resultItem + ']',null); } } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/ExpressionItem.java000066400000000000000000000022101263163240400333340ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression; /** * The interface describes an object which can be used during expression * calculations * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public interface ExpressionItem { /** * Get the type of the item * * @return the item type, must not be null */ ExpressionItemType getExpressionItemType(); /** * Get the priority of the item * * @return the item priority, must not be null */ ExpressionItemPriority getExpressionItemPriority(); } ExpressionItemPriority.java000066400000000000000000000017501263163240400350270ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression; public enum ExpressionItemPriority { LOGICAL(0), COMPARISON(1), ARITHMETIC_ADD_SUB(2), ARITHMETIC_MUL_DIV_MOD(3), FUNCTION(5), VALUE(6); private final int priority; public int getPriority() { return priority; } private ExpressionItemPriority(final int priority) { this.priority = priority; } } ExpressionItemType.java000066400000000000000000000013611263163240400341250ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression; public enum ExpressionItemType { FUNCTION, OPERATOR, VALUE, VARIABLE; } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/ExpressionParser.java000077500000000000000000000534171263163240400337140ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.exceptions.FilePositionInfo; import com.igormaznitsa.jcp.expression.functions.AbstractFunction; import com.igormaznitsa.jcp.expression.functions.FunctionDefinedByUser; import com.igormaznitsa.jcp.expression.operators.AbstractOperator; import com.igormaznitsa.jcp.expression.operators.OperatorSUB; import com.igormaznitsa.jcp.extension.PreprocessorExtension; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.io.IOException; import java.io.PushbackReader; import java.io.StringReader; import java.util.*; /** * This class is a parser allows to parse an expression and make a tree as the * output * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class ExpressionParser { /** * The enumeration describes inside states of the parses * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ private enum ParserState { WAIT, NUMBER, HEX_NUMBER, FLOAT_NUMBER, STRING, SPECIAL_CHAR, VALUE_OR_FUNCTION, OPERATOR } /** * The enumeration describes some special items which can be met in the * expression * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public enum SpecialItem implements ExpressionItem { BRACKET_OPENING('('), BRACKET_CLOSING(')'), COMMA(','); private final char chr; private SpecialItem(final char chr) { this.chr = chr; } public ExpressionItemPriority getExpressionItemPriority() { return null; } public ExpressionItemType getExpressionItemType() { return null; } } /** * It contains the instance for the parser, because the parser is a singletone */ private static final ExpressionParser INSTANCE = new ExpressionParser(); /** * The constant has been added to avoid repeating operations */ private static final OperatorSUB OPERATOR_SUB = AbstractOperator.findForClass(OperatorSUB.class); public static ExpressionParser getInstance() { return INSTANCE; } /** * To parse an expression represented as a string and get a tree * * @param expressionStr the expression string to be parsed, must not be null * @param context a preprocessor context to be used to get variable values, it * can be null * @return a tree containing parsed expression * @throws IOException it will be thrown if there is a problem to read the * expression string */ public ExpressionTree parse(final String expressionStr, final PreprocessorContext context) throws IOException { PreprocessorUtils.assertNotNull("Expression is null",expressionStr); final PushbackReader reader = new PushbackReader(new StringReader(expressionStr)); final ExpressionTree result; if (context == null) { result = new ExpressionTree(); } else { final PreprocessingState state = context.getPreprocessingState(); if (state == null) { result = new ExpressionTree(); } else { result = new ExpressionTree(state.makeIncludeStack(), state.getLastReadString()); } } if (readExpression(reader, result, context, false, false) != null) { final String text = "Unexpected result during parsing [" + expressionStr + ']'; throw context == null ? new IllegalStateException(text) : context.makeException(text,null); } result.postProcess(); return result; } /** * It reads an expression from a reader and fill a tree * * @param reader the reader to be used as the character source, must not be * null * @param tree the result tree to be filled by read items, must not be null * @param context a preprocessor context to be used for variables, it can be * null * @param insideBracket the flag shows that the expression can be ended by a * bracket * @param argument the flag shows that the expression can be ended by a comma * @return the last read expression item (a comma or a bracket for instance), * it can be null * @throws IOException it will be thrown if there is a problem in reading from * the reader */ public ExpressionItem readExpression(final PushbackReader reader, final ExpressionTree tree, final PreprocessorContext context, final boolean insideBracket, final boolean argument) throws IOException { boolean working = true; ExpressionItem result = null; final FilePositionInfo[] stack; final String sourceLine; if (context == null) { stack = PreprocessingState.EMPTY_STACK; sourceLine = ""; } else { final PreprocessingState state = context.getPreprocessingState(); stack = state == null ? null : state.makeIncludeStack(); sourceLine = state == null ? null : state.getLastReadString(); } ExpressionItem prev = null; while (working) { final ExpressionItem nextItem = nextItem(reader, context); if (nextItem == null) { working = false; result = null; } else { if (nextItem.getExpressionItemType() == null) { if (nextItem == SpecialItem.BRACKET_CLOSING) { if (insideBracket) { working = false; result = nextItem; } else { if (argument) { working = false; result = nextItem; } else { final String text = "Detected alone closing bracket"; throw context == null ? new IllegalStateException(text) : context.makeException("Detected alone closing bracket", null); } } } else if (nextItem == SpecialItem.BRACKET_OPENING) { if (prev != null && prev.getExpressionItemType() == ExpressionItemType.VARIABLE){ final String text = "Unknown function detected ["+prev.toString()+']'; throw context == null ? new IllegalStateException(text) : context.makeException(text, null); } final ExpressionTree subExpression; subExpression = new ExpressionTree(stack, sourceLine); if (SpecialItem.BRACKET_CLOSING != readExpression(reader, subExpression, context, true, false)) { final String text = "Detected unclosed bracket"; throw context == null ? new IllegalStateException(text) : context.makeException(text, null); } tree.addTree(subExpression); } else if (nextItem == SpecialItem.COMMA) { return nextItem; } } else { if (nextItem.getExpressionItemType() == ExpressionItemType.FUNCTION) { final AbstractFunction function = (AbstractFunction) nextItem; ExpressionTree functionTree = readFunction(function, reader, context, stack, sourceLine); tree.addTree(functionTree); } else { tree.addItem(nextItem); } } } prev = nextItem; } return result; } /** * The auxiliary method allows to form a function and its arguments as a tree * * @param function the function which arguments will be read from the stream, * must not be null * @param reader the reader to be used as the character source, must not be * null * @param context a preprocessor context, it will be used for a user functions * and variables, it can be null * @param includeStack the current file include stack, can be null * @param sources the current source line, can be null * @return an expression tree containing parsed function arguments * @throws IOException it will be thrown if there is any problem to read chars */ private ExpressionTree readFunction(final AbstractFunction function, final PushbackReader reader, final PreprocessorContext context, final FilePositionInfo[] includeStack, final String sources) throws IOException { final ExpressionItem expectedBracket = nextItem(reader, context); if (expectedBracket == null) { throw context.makeException("Detected function without params [" + function.getName() + ']',null); } final int arity = function.getArity(); ExpressionTree functionTree = null; if (arity == 0) { final ExpressionTree subExpression = new ExpressionTree(includeStack, sources); final ExpressionItem lastItem = readFunctionArgument(reader, subExpression, context, includeStack, sources); if (SpecialItem.BRACKET_CLOSING != lastItem) { throw context.makeException("There is not closing bracket for function [" + function.getName() + ']',null); } else if (subExpression.getRoot() != null) { throw context.makeException("The function \'" + function.getName() + "\' doesn't need arguments",null); } else { functionTree = new ExpressionTree(includeStack, sources); functionTree.addItem(function); } } else { final List arguments = new ArrayList(arity); for (int i = 0; i < function.getArity(); i++) { final ExpressionTree subExpression = new ExpressionTree(includeStack, sources); final ExpressionItem lastItem = readFunctionArgument(reader, subExpression, context, includeStack, sources); if (SpecialItem.BRACKET_CLOSING == lastItem) { arguments.add(subExpression); break; } else if (SpecialItem.COMMA == lastItem) { arguments.add(subExpression); } else { throw context.makeException("Wrong argument for function [" + function.getName() + ']',null); } } functionTree = new ExpressionTree(includeStack, sources); functionTree.addItem(function); ExpressionTreeElement functionTreeElement = functionTree.getRoot(); if (arguments.size() != functionTreeElement.getArity()) { throw context.makeException("Wrong argument number detected \'" + function.getName() + "\', must be " + function.getArity() + " argument(s)",null); } functionTreeElement.fillArguments(arguments); } return functionTree; } /** * The auxiliary method allows to read a function argument * * @param reader a reader to be the character source, must not be null * @param tree the result tree to be filled by read items, must not be null * @param context a preprocessor context, it can be null * @param callStack the current file call stack, can be null * @param source the current source line, can be null * @return the last read expression item (a comma or a bracket) * @throws IOException it will be thrown if there is any error during char * reading from the reader */ ExpressionItem readFunctionArgument(final PushbackReader reader, final ExpressionTree tree, final PreprocessorContext context, final FilePositionInfo[] callStack, final String source) throws IOException { boolean working = true; ExpressionItem result = null; while (working) { final ExpressionItem nextItem = nextItem(reader, context); if (nextItem == null) { throw context.makeException("Non-closed function detected",null); } else if (SpecialItem.COMMA == nextItem) { result = nextItem; working = false; } else if (SpecialItem.BRACKET_OPENING == nextItem) { final ExpressionTree subExpression = new ExpressionTree(callStack, source); if (SpecialItem.BRACKET_CLOSING != readExpression(reader, subExpression, context, true, false)) { throw context.makeException("Non-closed bracket inside a function argument detected", null); } tree.addTree(subExpression); } else if (SpecialItem.BRACKET_CLOSING == nextItem) { result = nextItem; working = false; } else { if (nextItem.getExpressionItemType() == ExpressionItemType.FUNCTION) { final AbstractFunction function = (AbstractFunction) nextItem; ExpressionTree functionTree = readFunction(function, reader, context, callStack, source); tree.addTree(functionTree); } else { tree.addItem(nextItem); } } } return result; } private static boolean isDelimiterOrOperatorChar(final char chr) { return isDelimiter(chr) || isOperatorChar(chr); } private static boolean isDelimiter(final char chr) { switch (chr) { case ',': case '(': case ')': return true; default: return false; } } private static boolean isOperatorChar(final char chr) { switch (chr) { case '-': case '+': case '%': case '*': case '/': case '&': case '|': case '!': case '^': case '=': case '<': case '>': return true; default: return false; } } /** * Read the next item from the reader * * @param reader a reader to be used as the char source, must not be null * @param context a preprocessor context, it can be null * @return a read expression item, it can be null if the end is reached * @throws IOException it will be thrown if there is any error during a char * reading */ ExpressionItem nextItem(final PushbackReader reader, final PreprocessorContext context) throws IOException { PreprocessorUtils.assertNotNull("Reader is null", reader); ParserState state = ParserState.WAIT; final StringBuilder builder = new StringBuilder(12); boolean found = false; while (!found) { final int data = reader.read(); if (data < 0) { if (state != ParserState.WAIT) { found = true; } break; } final char chr = (char) data; switch (state) { case WAIT: { if (Character.isWhitespace(chr)) { // do nothing } else if (chr == ',') { return SpecialItem.COMMA; } else if (chr == '(') { return SpecialItem.BRACKET_OPENING; } else if (chr == ')') { return SpecialItem.BRACKET_CLOSING; } else if (Character.isDigit(chr)) { builder.append(chr); if (chr == '0') { state = ParserState.HEX_NUMBER; } else { state = ParserState.NUMBER; } } else if (chr == '.') { builder.append('.'); state = ParserState.FLOAT_NUMBER; } else if (Character.isLetter(chr) || chr == '$' || chr == '_') { builder.append(chr); state = ParserState.VALUE_OR_FUNCTION; } else if (chr == '\"') { state = ParserState.STRING; } else if (isOperatorChar(chr)) { builder.append(chr); state = ParserState.OPERATOR; } else { throw context.makeException("Unsupported token character detected \'" + chr + '\'', null); } } break; case OPERATOR: { if (!isOperatorChar(chr) || isDelimiter(chr)) { reader.unread(data); found = true; } else { builder.append(chr); } } break; case FLOAT_NUMBER: { if (Character.isDigit(chr)) { builder.append(chr); } else { found = true; reader.unread(data); } } break; case HEX_NUMBER: { if (builder.length() == 1) { if (chr == 'X' || chr == 'x') { builder.append(chr); } else { if (chr == '.') { builder.append(chr); state = ParserState.FLOAT_NUMBER; } else { if (Character.isDigit(chr)) { state = ParserState.NUMBER; } else { state = ParserState.NUMBER; found = true; reader.unread(data); } } } } else { if (Character.isDigit(chr) || (chr >= 'a' && chr <= 'f') || (chr >= 'A' && chr <= 'F')) { builder.append(chr); } else { found = true; reader.unread(data); } } } break; case NUMBER: { if (Character.isDigit(chr)) { builder.append(chr); } else { if (chr == '.') { builder.append(chr); state = ParserState.FLOAT_NUMBER; } else { reader.unread(data); found = true; } } } break; case VALUE_OR_FUNCTION: { if (Character.isWhitespace(chr) || isDelimiterOrOperatorChar(chr)) { reader.unread(data); found = true; } else { builder.append(chr); } } break; case SPECIAL_CHAR: { switch (chr) { case 'n': builder.append('\n'); break; case 't': builder.append('\t'); break; case 'b': builder.append('\b'); break; case 'f': builder.append('\f'); break; case 'r': builder.append('\r'); break; case '\\': builder.append('\\'); break; case '\"': builder.append('\"'); break; case '\'': builder.append('\''); break; default:{ throw context.makeException("Unsupported special char detected \'\\" + chr + '\'',null); } } state = ParserState.STRING; } break; case STRING: { switch (chr) { case '\"': { found = true; } break; case '\\': { state = ParserState.SPECIAL_CHAR; } break; default: { builder.append(chr); } } } break; default: throw new Error("Unsupported parser state [" + state.name() + ']'); } } if (!found) { switch (state) { case SPECIAL_CHAR: case STRING:{ throw context.makeException("Unclosed string has been detected", null); } default: return null; } } else { ExpressionItem result = null; switch (state) { case FLOAT_NUMBER: { result = Value.valueOf(Float.parseFloat(builder.toString())); } break; case HEX_NUMBER: { final String text = builder.toString(); if ("0".equals(text)) { result = Value.INT_ZERO; } else { final String str = PreprocessorUtils.extractTail("0x", text); result = Value.valueOf(Long.parseLong(str, 16)); } } break; case NUMBER: { result = Value.valueOf(Long.parseLong(builder.toString())); } break; case OPERATOR: { final String operatorLC = builder.toString().toLowerCase(Locale.ENGLISH); for (final AbstractOperator operator : AbstractOperator.ALL_OPERATORS) { if (operator.getKeyword().equals(operatorLC)) { result = operator; break; } } if (result == null) { throw context.makeException("Unknown operator detected \'" + operatorLC + '\'',null); } } break; case STRING: { result = Value.valueOf(builder.toString()); } break; case VALUE_OR_FUNCTION: { final String str = builder.toString().toLowerCase(); if (str.charAt(0) == '$') { PreprocessorUtils.assertNotNull("There is not a preprocessor context to define a user function [" + str + ']',context); final PreprocessorExtension extension = context.getPreprocessorExtension(); if (extension == null) { throw context.makeException("There is not any defined preprocessor extension to get data about user functions [" + str + ']',null); } final String userFunctionName = PreprocessorUtils.extractTail("$", str); // user defined result = new FunctionDefinedByUser(userFunctionName, extension.getUserFunctionArity(userFunctionName), context); } else { if ("true".equals(str)) { result = Value.BOOLEAN_TRUE; } else if ("false".equals(str)) { result = Value.BOOLEAN_FALSE; } else { final AbstractFunction function = AbstractFunction.findForName(str); if (function == null) { result = new Variable(str); } else { result = function; } } } } break; default: { throw new Error("Unsupported final parser state detected [" + state.name() + ']'); } } return result; } } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/ExpressionTree.java000077500000000000000000000065521263163240400333550ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.exceptions.FilePositionInfo; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.utils.PreprocessorUtils; /** * The class describes an object contains an expression tree * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class ExpressionTree { private ExpressionTreeElement last; private final FilePositionInfo[] includeStack; private final String sources; public ExpressionTree() { this(null, null); } public ExpressionTree(final FilePositionInfo[] callStack, final String sources) { this.includeStack = callStack == null ? PreprocessingState.EMPTY_STACK : callStack; this.sources = sources == null ? "" : sources; } /** * Allows to check that the tree is empty * * @return true if the tree is empty one else false */ public boolean isEmpty() { return last == null; } /** * Add new expression item into tree * * @param item an item to be added, must not be null */ public void addItem(final ExpressionItem item) { if (item == null) { throw new PreprocessorException("[Expression]Item is null", this.sources, this.includeStack, null); } if (last == null) { last = new ExpressionTreeElement(item, this.includeStack, this.sources); } else { last = last.addTreeElement(new ExpressionTreeElement(item, this.includeStack, this.sources)); } } /** * Add whole tree as a tree element, also it sets the maximum priority to the * new element * * @param tree a tree to be added as an item, must not be null */ public void addTree(final ExpressionTree tree) { PreprocessorUtils.assertNotNull("Tree is null", tree); if (last == null) { final ExpressionTreeElement thatTreeRoot = tree.getRoot(); if (thatTreeRoot != null) { last = thatTreeRoot; last.makeMaxPriority(); } } else { last = last.addSubTree(tree); } } /** * Get the root of the tree * * @return the root of the tree or null if the tree is empty */ public ExpressionTreeElement getRoot() { if (last == null) { return null; } else { ExpressionTreeElement element = last; while (true) { final ExpressionTreeElement next = element.getParent(); if (next == null) { return element; } else { element = next; } } } } /** * It can be called after the tree has been formed to optimize inside * structures */ public void postProcess() { final ExpressionTreeElement root = getRoot(); if (root != null) { root.postProcess(); } } } ExpressionTreeElement.java000077500000000000000000000301041263163240400345760ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression; import com.igormaznitsa.jcp.exceptions.FilePositionInfo; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.functions.AbstractFunction; import com.igormaznitsa.jcp.expression.operators.AbstractOperator; import com.igormaznitsa.jcp.expression.operators.OperatorSUB; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.util.List; /** * The class describes a wrapper around an expression item to be saved into an * expression tree * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class ExpressionTreeElement { /** * Inside constant to be used for speed up some operations */ private static final OperatorSUB OPERATOR_SUB = AbstractOperator.findForClass(OperatorSUB.class); /** * Empty array to avoid unnecessary operations */ private static final ExpressionTreeElement[] EMPTY = new ExpressionTreeElement[0]; /** * The variable contains the wrapped expression item */ private ExpressionItem savedItem; /** * The array contains links to the tree element children */ private ExpressionTreeElement[] childElements; /** * The link to the parent element, if it is the tree root then it contains * null */ private ExpressionTreeElement parentTreeElement; /** * The priority of the tree element, it is very strongly used during tree * sorting */ private int priority; /** * Because I fill children sequentially, the variable contains the index of * the first empty child slot */ private int nextChildSlot = 0; /** * Contains the source string for the expression. */ private final String sourceString; /** * Current include stack of the preprocessor to the source string. */ private final FilePositionInfo [] includeStack; /** * The constructor * * @param item an expression item to be wrapped, must not be null */ ExpressionTreeElement(final ExpressionItem item, final FilePositionInfo [] callStack, final String sourceString) { this.sourceString = sourceString; this.includeStack = callStack; if (item == null) { throw new PreprocessorException("[Expression]The item is null", this.sourceString, this.includeStack, null); } int arity = 0; if (item.getExpressionItemType() == ExpressionItemType.OPERATOR) { arity = ((AbstractOperator) item).getArity(); } else if (item.getExpressionItemType() == ExpressionItemType.FUNCTION) { arity = ((AbstractFunction) item).getArity(); } priority = item.getExpressionItemPriority().getPriority(); this.savedItem = item; childElements = arity == 0 ? EMPTY : new ExpressionTreeElement[arity]; } /** * Inside auxiliary function to set the maximum priority the the element */ void makeMaxPriority() { priority = ExpressionItemPriority.VALUE.getPriority(); } /** * Get the wrapped item * * @return the item to be wrapped by the object */ public ExpressionItem getItem() { return this.savedItem; } /** * Get arity for the element (I mean possible children number) * * @return the arity, zero for elements without children */ public int getArity() { return childElements.length; } /** * Get the parent for the element * * @return the parent for the element or null if the element is the tree root */ public ExpressionTreeElement getParent() { return parentTreeElement; } /** * Get the current priority of the element * * @return the priority */ public int getPriority() { return priority; } /** * Add a tree as new child and make the maximum priority for it * * @param tree a tree to be added as a child, must not be null * @return it returns this */ public ExpressionTreeElement addSubTree(final ExpressionTree tree) { final ExpressionTreeElement root = tree.getRoot(); if (root != null) { root.makeMaxPriority(); addElementToNextFreeSlot(root); } return this; } /** * It replaces a child element * * @param oldOne the old expression element to be replaced (must not be null) * @param newOne the new expression element to be used instead the old one * (must not be null) * @return true if the element was found and replaced, else false */ public boolean replaceElement(final ExpressionTreeElement oldOne, final ExpressionTreeElement newOne) { if (oldOne == null) { throw new PreprocessorException("[Expression]The old element is null", this.sourceString, this.includeStack, null); } if (newOne == null) { throw new PreprocessorException("[Expression]The new element is null", this.sourceString, this.includeStack, null); } boolean result = false; final ExpressionTreeElement[] children = childElements; final int len = children.length; for (int i = 0; i < len; i++) { if (children[i] == oldOne) { children[i] = newOne; newOne.parentTreeElement = this; result = true; break; } } return result; } /** * Get the child element for its index (the first is 0) * * @param index the index of the needed child * @return the child or null if the slot is empty * @throws ArrayIndexOutOfBoundsException it will be thrown if an impossible * index is being used */ public ExpressionTreeElement getChildForIndex(final int index) { return childElements[index]; } /** * Add tree element with sorting operation depends on priority of the elements * * @param element the element to be added, must not be null * @return the element which should be used as the last for the current tree */ public ExpressionTreeElement addTreeElement(final ExpressionTreeElement element) { PreprocessorUtils.assertNotNull("The element is null", element); final int newElementPriority = element.getPriority(); ExpressionTreeElement result = this; final ExpressionTreeElement parentTreeElement = this.parentTreeElement; final int currentPriority = getPriority(); if (newElementPriority < currentPriority) { if (parentTreeElement == null) { element.addTreeElement(this); result = element; } else { result = parentTreeElement.addTreeElement(element); } } else if (newElementPriority == currentPriority) { if (parentTreeElement != null) { parentTreeElement.replaceElement(this, element); } if (element.nextChildSlot>=element.childElements.length){ throw new PreprocessorException("[Expression]Can't process expression item, may be wrong number of arguments", this.sourceString, this.includeStack, null); } element.childElements[element.nextChildSlot] = this; element.nextChildSlot++; this.parentTreeElement = element; result = element; } else { if (isFull()) { final int lastElementIndex = getArity() - 1; final ExpressionTreeElement lastElement = childElements[lastElementIndex]; if (lastElement.getPriority() > newElementPriority) { element.addElementToNextFreeSlot(lastElement); childElements[lastElementIndex] = element; element.parentTreeElement = this; result = element; } } else { addElementToNextFreeSlot(element); result = element; } } return result; } /** * It allows to check that all children slots have been filled * * @return true if there is not any free child slot else false */ public boolean isFull() { return nextChildSlot >= childElements.length; } /** * It fills children slots from a list containing expression trees * * @param arguments the list containing trees to be used as children */ public void fillArguments(final List arguments) { if (arguments == null) { throw new PreprocessorException("[Expression]Argument list is null",this.sourceString, this.includeStack, null); } if (childElements.length != arguments.size()) { throw new PreprocessorException("Wrong argument list size",this.sourceString, this.includeStack, null); } int i = 0; for (ExpressionTree arg : arguments) { if (arg == null) { throw new PreprocessorException("[Expression]Argument [" + (i + 1) + "] is null", this.sourceString, this.includeStack, null); } if (childElements[i] != null) { throw new PreprocessorException("[Expression]Non-null slot detected, it is possible that there is a program error, contact a developer please",this.sourceString, this.includeStack, null); } final ExpressionTreeElement root = arg.getRoot(); if (root == null) { throw new PreprocessorException("[Expression]Empty argument [" + (i + 1) + "] detected", this.sourceString, this.includeStack, null); } childElements[i] = root; root.parentTreeElement = this; i++; } } /** * Add an expression element into the next free child slot * * @param element an element to be added, must not be null */ private void addElementToNextFreeSlot(final ExpressionTreeElement element) { if (element == null) { throw new PreprocessorException("[Expression]Element is null", this.sourceString, this.includeStack, null); } if (childElements.length == 0) { throw new PreprocessorException("[Expression]Unexpected element, may be unknown function [" + savedItem.toString() + ']',this.sourceString, this.includeStack, null); } else { if (isFull()) { throw new PreprocessorException("[Expression]There is not any possibility to add new argument [" + savedItem.toString() + ']', this.sourceString, this.includeStack, null); } else { childElements[nextChildSlot++] = element; } } element.parentTreeElement = this; } /** * Post-processing after the tree is formed, the unary minus operation will be * optimized */ public void postProcess() { switch (savedItem.getExpressionItemType()) { case OPERATOR: { if (savedItem == OPERATOR_SUB) { if (childElements[0] != null && childElements[1] == null) { final ExpressionTreeElement left = childElements[0]; final ExpressionItem item = left.getItem(); if (item.getExpressionItemType() == ExpressionItemType.VALUE) { final Value val = (Value) item; if (val.getType() == ValueType.INT) { childElements = EMPTY; savedItem = Value.valueOf(0 - val.asLong()); makeMaxPriority(); } else if (val.getType() == ValueType.FLOAT) { childElements = EMPTY; savedItem = Value.valueOf(Float.valueOf(0 - val.asFloat())); makeMaxPriority(); } else { left.postProcess(); } } } else { for (final ExpressionTreeElement element : childElements) { if (element != null) { element.postProcess(); } } } } else { for (final ExpressionTreeElement element : childElements) { if (element != null) { element.postProcess(); } } } } break; case FUNCTION: { for (final ExpressionTreeElement element : childElements) { if (element != null) { element.postProcess(); } } } break; } } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/Value.java000077500000000000000000000175111263163240400314470ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression; import com.igormaznitsa.jcp.utils.PreprocessorUtils; /** * The class describes an expression value i.e. an atomic constant expression * item like string or number * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) * @see ValueType */ public final class Value implements ExpressionItem { public static final Value BOOLEAN_TRUE = new Value(Boolean.TRUE); public static final Value BOOLEAN_FALSE = new Value(Boolean.FALSE); public static final Value INT_ZERO = new Value(Long.valueOf(0L)); public static final Value INT_ONE = new Value(Long.valueOf(1L)); public static final Value INT_TWO = new Value(Long.valueOf(2L)); public static final Value INT_THREE = new Value(Long.valueOf(3L)); public static final Value INT_FOUR = new Value(Long.valueOf(4L)); public static final Value INT_FIVE = new Value(Long.valueOf(5L)); private final Object value; private final ValueType type; public ValueType getType() { return type; } public Object getValue() { return value; } private Value(final String val) { value = val == null ? "null" : val; type = ValueType.STRING; } private Value(final Long val) { value = val; type = ValueType.INT; } private Value(final Float val) { value = val; type = ValueType.FLOAT; } private Value(final Boolean val) { value = val; type = ValueType.BOOLEAN; } public static Value valueOf(final Long val) { return new Value(val); } public static Value valueOf(final Boolean val) { return val ? BOOLEAN_TRUE : BOOLEAN_FALSE; } public static Value valueOf(final Float val) { return new Value(val); } public static Value valueOf(final String val) { return new Value(val); } public Long asLong() { if (type != ValueType.INT) { throw new IllegalStateException("Value is not integer"); } return (Long) value; } public Float asFloat() { if (type != ValueType.FLOAT) { throw new IllegalStateException("Value is not float"); } return (Float) value; } public String asString() { if (type != ValueType.STRING) { throw new IllegalStateException("Value is not string"); } return (String) value; } public Boolean asBoolean() { if (type != ValueType.BOOLEAN) { throw new IllegalStateException("Value is not boolean"); } return (Boolean) value; } public static Value recognizeRawString(final String str) { PreprocessorUtils.assertNotNull("Parameter is null", str); if (str.equals("true")) { return Value.BOOLEAN_TRUE; } if (str.equals("false")) { return Value.BOOLEAN_FALSE; } try { return new Value(Long.parseLong(str)); } catch (NumberFormatException ex) { } try { return new Value(Float.parseFloat(str)); } catch (NumberFormatException ex) { } return new Value(str); } public static Value recognizeOf(final String str) { final ValueType type = recognizeType(str); Value result = null; switch (type) { case BOOLEAN: { result = "true".equalsIgnoreCase(str) ? BOOLEAN_TRUE : BOOLEAN_FALSE; } break; case INT: { result = new Value((Long) getValue(str, ValueType.INT)); } break; case FLOAT: { result = new Value((Float) getValue(str, ValueType.FLOAT)); } break; case STRING: { result = new Value((String) getValue(str, ValueType.STRING)); } break; default: { throw new IllegalArgumentException("Illegal value [" + str + ']'); } } return result; } public static Object getValue(final String value, final ValueType type) { try { switch (type) { case STRING: { return value.substring(1, value.length() - 1); } case BOOLEAN: { return value.equalsIgnoreCase("true") ? Boolean.TRUE : Boolean.FALSE; } case INT: { if (value.length() > 2 && value.charAt(0) == '0' && (value.charAt(1) == 'x' || value.charAt(1) == 'X')) { // HEX value return Long.valueOf(PreprocessorUtils.extractTail("0x", value), 16); } else { // Decimal value return Long.valueOf(value); } } case FLOAT: { return Float.valueOf(value); } default: return null; } } catch (NumberFormatException e) { return null; } } public static ValueType recognizeType(final String value) { if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("false")) // Boolean { return ValueType.BOOLEAN; } else if (value.length() > 1 && value.charAt(0) == '\"' && value.charAt(value.length() - 1) == '\"') // String value { return ValueType.STRING; } else { try { if (value.indexOf('.') >= 0) { // Float Float.parseFloat(value); return ValueType.FLOAT; } else { // Integer if (value.startsWith("0x")) { // HEX value Long.parseLong(PreprocessorUtils.extractTail("0x", value), 16); } else { // Decimal value Long.parseLong(value, 10); } return ValueType.INT; } } catch (NumberFormatException e) { return ValueType.UNKNOWN; } } } public String toStringDetail() { switch (type) { case BOOLEAN: { return "Boolean : " + ((Boolean) value).booleanValue(); } case INT: { return "Integer : " + ((Long) value).longValue(); } case UNKNOWN: { return "Unknown : -"; } case FLOAT: { return "Float : " + ((Float) value).floatValue(); } case STRING: { return "String : " + (String) value; } } return "!!! ERROR , UNSUPPORTED TYPE [" + type + "]"; } @Override public String toString() { switch (type) { case BOOLEAN: { return asBoolean().toString(); } case INT: { return asLong().toString(); } case UNKNOWN: { return ""; } case FLOAT: { return asFloat().toString(); } case STRING: { return asString(); } } return "!!! ERROR , UNSUPPORTED TYPE [" + type + "]"; } public ExpressionItemType getExpressionItemType() { return ExpressionItemType.VALUE; } public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.VALUE; } @Override public boolean equals(final Object var) { if (var == null) { return false; } if (this == var) { return true; } if (var.getClass() == Value.class) { final Value thatValue = (Value) var; return this.type == thatValue.type && this.value.equals(thatValue.value); } return false; } @Override public int hashCode() { return this.value.hashCode(); } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/ValueType.java000077500000000000000000000031271263163240400323070ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression; /** * The enumeration contains all allowed types for expression values and their * signatures * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public enum ValueType { ANY("Any"), STRING("Str"), BOOLEAN("Bool"), INT("Int"), FLOAT("Float"), UNKNOWN("Unknown"); /** * The signature for the type it will be used in method calls */ private final String signature; public String getSignature() { return this.signature; } private ValueType(final String signature) { this.signature = signature; } /** * To check that the type is compatible with another one * * @param type the type to be checked, must not be null * @return true if the type is compatible else false */ public boolean isCompatible(final ValueType type) { if (this == type) { return true; } if (this == UNKNOWN || type == UNKNOWN) { return false; } return this == ANY || type == ANY; } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/Variable.java000077500000000000000000000036061263163240400321200ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression; import com.igormaznitsa.jcp.utils.PreprocessorUtils; /** * The class describes an expression variable * * @author Igor Mznitsa (igor.maznitsa@igormaznitsa.com) */ public final class Variable implements ExpressionItem { /** * The variable contains the expression variable name */ private final String variableName; /** * The constructor * * @param varName the variable name, it must not be null */ public Variable(final String varName) { PreprocessorUtils.assertNotNull("Var name is null", varName); this.variableName = varName; } /** * Get the variable name * * @return the name saved by the object */ public String getName() { return this.variableName; } /** * Get the expression item type * * @return it returns only ExpressionItemType.VARIABLE */ @Override public ExpressionItemType getExpressionItemType() { return ExpressionItemType.VARIABLE; } /** * Get the expression item priority * * @return it returns only ExpressionItemPriority.VALUE */ @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.VALUE; } @Override public String toString(){ return this.variableName; } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/000077500000000000000000000000001263163240400315305ustar00rootroot00000000000000AbstractFunction.java000077500000000000000000000125151263163240400355740ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.expression.functions.xml.FunctionXML_TEXT; import com.igormaznitsa.jcp.expression.functions.xml.FunctionXML_ATTR; import com.igormaznitsa.jcp.expression.functions.xml.FunctionXML_LIST; import com.igormaznitsa.jcp.expression.functions.xml.FunctionXML_GET; import com.igormaznitsa.jcp.expression.functions.xml.FunctionXML_SIZE; import com.igormaznitsa.jcp.expression.functions.xml.FunctionXML_OPEN; import com.igormaznitsa.jcp.expression.functions.xml.FunctionXML_ROOT; import com.igormaznitsa.jcp.expression.functions.xml.FunctionXML_NAME; import com.igormaznitsa.jcp.expression.ExpressionItem; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.ExpressionItemType; import com.igormaznitsa.jcp.expression.ValueType; import com.igormaznitsa.jcp.expression.functions.xml.*; import java.util.concurrent.atomic.AtomicLong; /** * The abstract class is the base for each function handler in the preprocessor * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public abstract class AbstractFunction implements ExpressionItem { /** * The string contains the prefix for all executing methods of functions */ public static final String EXECUTION_PREFIX = "execute"; /** * Inside array contains all functions supported by the preprocessor */ public static final AbstractFunction[] ALL_FUNCTIONS = new AbstractFunction[]{ new FunctionABS(), new FunctionROUND(), new FunctionSTR2INT(), new FunctionSTR2WEB(), new FunctionSTR2CSV(), new FunctionSTR2JS(), new FunctionSTR2JSON(), new FunctionSTR2XML(), new FunctionSTR2JAVA(), new FunctionSTRLEN(), new FunctionISSUBSTR(), new FunctionEVALFILE(), new FunctionXML_GET(), new FunctionXML_SIZE(), new FunctionXML_ATTR(), new FunctionXML_ROOT(), new FunctionXML_NAME(), new FunctionXML_LIST(), new FunctionXML_TEXT(), new FunctionXML_OPEN(), new FunctionXML_XLIST(), new FunctionXML_XELEMENT() }; /** * Allows to find a function handler instance for its class * * @param the class of the needed function handler extends the * AbstractFunction class * @param functionClass the class of the needed handler, must not be null * @return an instance of the needed handler or null if there is not any such * one */ public static E findForClass(final Class functionClass) { E result = null; for (final AbstractFunction function : ALL_FUNCTIONS) { if (function.getClass() == functionClass) { result = functionClass.cast(function); break; } } return result; } /** * Inside counter to generate UID for some cases */ protected static final AtomicLong UID_COUNTER = new AtomicLong(1); /** * Find a function handler for its name * * @param str the function name, must not be null * @return an instance of the needed handler or null if there is not any such * one */ public static AbstractFunction findForName(final String str) { AbstractFunction result = null; for (final AbstractFunction func : ALL_FUNCTIONS) { if (func.getName().equals(str)) { result = func; break; } } return result; } /** * Get the function name * * @return the function name in lower case, must not be null */ public abstract String getName(); /** * Get the function reference to be output for a help request * * @return the function information as a String, must not be null */ public abstract String getReference(); /** * Get the function arity * * @return the function arity (zero or greater) */ public abstract int getArity(); /** * Get arrays of supported argument types * * @return the array of argument type combinations allowed by the function * handler, must not be null */ public abstract ValueType[][] getAllowedArgumentTypes(); /** * Get the result type * * @return the result type of the function, must not be null */ public abstract ValueType getResultType(); /** * Get the priority of the function in the expression tree * * @return the expression item priority for the function, must not be null */ @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.FUNCTION; } /** * Get the expression item type * * @return the expression item type, in the case it is always * ExpressionItemType.FUNCTION */ @Override public ExpressionItemType getExpressionItemType() { return ExpressionItemType.FUNCTION; } @Override public String toString() { return "FUNCTION: " + getName(); } } AbstractStrConverter.java000066400000000000000000000025351263163240400364450ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; /** * The class is parent for converting classes. * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public abstract class AbstractStrConverter extends AbstractFunction { private static final ValueType[][] ARG_TYPES = new ValueType[][]{{ValueType.STRING}}; public abstract Value executeStr(final PreprocessorContext context, final Value stringToConvert); @Override public final int getArity() { return 1; } @Override public final ValueType[][] getAllowedArgumentTypes() { return ARG_TYPES; } } FunctionABS.java000077500000000000000000000035031263163240400344330ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; /** * The class implements the abs function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionABS extends AbstractFunction { private static final ValueType[][] ARGUMENT_TYPES = new ValueType[][]{{ValueType.INT}, {ValueType.FLOAT}}; @Override public String getName() { return "abs"; } public Value executeInt(final PreprocessorContext context, final Value value) { return Value.valueOf(Long.valueOf((Math.abs(value.asLong().longValue())))); } public Value executeFloat(final PreprocessorContext context, final Value value) { return Value.valueOf(Float.valueOf((Math.abs(value.asFloat().floatValue())))); } @Override public int getArity() { return 1; } @Override public ValueType[][] getAllowedArgumentTypes() { return ARGUMENT_TYPES; } @Override public String getReference() { return "get absolute value of numeric value"; } @Override public ValueType getResultType() { return ValueType.ANY; } } FunctionDefinedByUser.java000077500000000000000000000045461263163240400365260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import com.igormaznitsa.jcp.utils.PreprocessorUtils; /** * The class implements the user defined function handler (a function which name * begins with $) * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionDefinedByUser extends AbstractFunction { private final String name; private final int argsNumber; private final ValueType[][] argTypes; public FunctionDefinedByUser(final String name, final int argsNumber, final PreprocessorContext context) { super(); PreprocessorUtils.assertNotNull("Name is null", name); PreprocessorUtils.assertNotNull("Context is null", context); if (argsNumber < 0) { throw context.makeException("Unexpected argument number ["+argsNumber+']',null); } this.name = name; this.argsNumber = argsNumber; final ValueType[] types = new ValueType[argsNumber]; for (int li = 0; li < argsNumber; li++) { types[li] = ValueType.ANY; } this.argTypes = new ValueType[][]{types}; } @Override public String getName() { return name; } @Override public int getArity() { return argsNumber; } public Value execute(final PreprocessorContext context, final Value[] values) { return context.getPreprocessorExtension().processUserFunction(name, values); } @Override public ValueType[][] getAllowedArgumentTypes() { return argTypes; } @Override public String getReference() { return "it's a user defined function"; } @Override public ValueType getResultType() { return ValueType.ANY; } } FunctionEVALFILE.java000066400000000000000000000062051263163240400352140ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.containers.FileInfoContainer; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import java.io.*; import org.apache.commons.io.IOUtils; /** * The Function makes preprocessing of a file and return result as a string * value. It uses the current preprocessor context as the context for * preprocessing the file. * * @author Igor Maznitsa (http://www.igormaznitsa.com) */ public class FunctionEVALFILE extends AbstractFunction { private static final ValueType[][] ARG_TYPES = new ValueType[][]{{ValueType.STRING}}; @Override public String getName() { return "evalfile"; } @Override public String getReference() { return "load and preprocess file and return text result as string"; } @Override public int getArity() { return 1; } @Override public ValueType[][] getAllowedArgumentTypes() { return ARG_TYPES; } @Override public ValueType getResultType() { return ValueType.STRING; } public Value executeStr(final PreprocessorContext context, final Value strfilePath) { final PreprocessorContext clonedContext = new PreprocessorContext(context); clonedContext.setFileOutputDisabled(true); clonedContext.setKeepLines(false); clonedContext.setClearDestinationDirBefore(false); clonedContext.setRemoveComments(true); clonedContext.setCareForLastNextLine(true); final String filePath = strfilePath.asString(); final File theFile; try { theFile = context.getSourceFile(filePath); } catch (IOException ex) { throw context.makeException("Can't get get source file '" + filePath + '\'',null); } if (theFile == null) { throw context.makeException("Can't find any file for path \'" + filePath + "\' in defined source folders",null); } if (context.isVerbose()){ context.logForVerbose("Eval file '"+theFile+'\''); } try { final FileInfoContainer fileContainer = new FileInfoContainer(theFile, theFile.getName(), false); final PreprocessingState state = fileContainer.preprocessFile(null, clonedContext); final StringWriter strWriter = new StringWriter(1024); state.writePrinterBuffers(strWriter); IOUtils.closeQuietly(strWriter); return Value.valueOf(strWriter.toString()); } catch (Exception ex) { throw context.makeException("Unexpected exception",ex); } } } FunctionISSUBSTR.java000077500000000000000000000035101263163240400353020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; /** * The class implements the ISSUBSTR function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionISSUBSTR extends AbstractFunction { private static final ValueType[][] ARG_TYPES = new ValueType[][]{{ValueType.STRING, ValueType.STRING}}; @Override public String getName() { return "issubstr"; } public Value executeStrStr(final PreprocessorContext context, final Value subStrValue, final Value strValue) { final String str = strValue.asString().toLowerCase(); final String subStr = subStrValue.asString().toLowerCase(); return Value.valueOf(Boolean.valueOf(str.indexOf(subStr) >= 0)); } @Override public int getArity() { return 2; } @Override public ValueType[][] getAllowedArgumentTypes() { return ARG_TYPES; } @Override public String getReference() { return "check that substring presented in string (case insensitive)"; } @Override public ValueType getResultType() { return ValueType.BOOLEAN; } } FunctionROUND.java000077500000000000000000000033661263163240400347240ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; /** * The class implements the round function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionROUND extends AbstractFunction { private static final ValueType[][] SIGNATURES = new ValueType[][]{{ValueType.FLOAT}, {ValueType.INT}}; @Override public String getName() { return "round"; } public Value executeInt(final PreprocessorContext context, final Value value) { return value; } public Value executeFloat(final PreprocessorContext context, final Value value) { return Value.valueOf(Long.valueOf(Math.round(value.asFloat()))); } @Override public int getArity() { return 1; } @Override public ValueType[][] getAllowedArgumentTypes() { return SIGNATURES; } @Override public String getReference() { return "round float value to nearest integer"; } @Override public ValueType getResultType() { return ValueType.INT; } } FunctionSTR2CSV.java000066400000000000000000000030041263163240400351250ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.apache.commons.lang3.StringEscapeUtils; /** * The class implements the str2csv function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionSTR2CSV extends AbstractStrConverter { @Override public String getName() { return "str2csv"; } @Override public Value executeStr(final PreprocessorContext context, final Value value) { final String escaped = StringEscapeUtils.escapeCsv(value.asString()); return Value.valueOf(escaped); } @Override public String getReference() { return "escape string for Comma Separated Values"; } @Override public ValueType getResultType() { return ValueType.STRING; } } FunctionSTR2INT.java000077500000000000000000000026361263163240400351410ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; /** * The class implements the str2int function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionSTR2INT extends AbstractStrConverter { @Override public String getName() { return "str2int"; } @Override public Value executeStr(final PreprocessorContext context, final Value value) { return Value.valueOf(Long.parseLong(value.asString().trim())); } @Override public String getReference() { return "convert string into integet number"; } @Override public ValueType getResultType() { return ValueType.INT; } } FunctionSTR2JAVA.java000066400000000000000000000052231263163240400352200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import org.apache.commons.lang3.StringEscapeUtils; /** * The class implements escape function handler to escape strings to be used in java. * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionSTR2JAVA extends AbstractFunction { private static final ValueType[][] ARG_TYPES = new ValueType[][]{{ValueType.STRING, ValueType.BOOLEAN}}; @Override public String getName() { return "str2java"; } public Value executeStrBool(final PreprocessorContext context, final Value source, final Value splitAndQuoteLines) { if (splitAndQuoteLines.asBoolean()){ final boolean endsWithNextLine = source.asString().endsWith("\n"); final String [] splitted = source.asString().split("\\n"); final StringBuilder result = new StringBuilder(source.asString().length()*2); final String nextLineChars = PreprocessorUtils.getNextLineCodes(); int index = 0; for(final String s : splitted){ final boolean last = ++index == splitted.length; if (result.length()>0){ result.append(nextLineChars).append('+'); } result.append('\"').append(StringEscapeUtils.escapeJava(s)); if (last ){ result.append(endsWithNextLine ? "\\n\"":"\""); }else{ result.append("\\n\""); } } return Value.valueOf(result.toString()); }else{ return Value.valueOf(StringEscapeUtils.escapeJava(source.asString())); } } @Override public int getArity() { return 2; } @Override public ValueType[][] getAllowedArgumentTypes() { return ARG_TYPES; } @Override public String getReference() { return "escapes a string to be compatible with java"; } @Override public ValueType getResultType() { return ValueType.STRING; } } FunctionSTR2JS.java000066400000000000000000000030071263163240400350110ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.apache.commons.lang3.StringEscapeUtils; /** * The class implements the str2js function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionSTR2JS extends AbstractStrConverter { @Override public String getName() { return "str2js"; } @Override public Value executeStr(final PreprocessorContext context, final Value value) { final String escaped = StringEscapeUtils.escapeEcmaScript(value.asString()); return Value.valueOf(escaped); } @Override public String getReference() { return "escape string for EcmaScript/JavaScript"; } @Override public ValueType getResultType() { return ValueType.STRING; } } FunctionSTR2JSON.java000066400000000000000000000027661263163240400352610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.apache.commons.lang3.StringEscapeUtils; /** * The class implements the str2json function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionSTR2JSON extends AbstractStrConverter { @Override public String getName() { return "str2json"; } @Override public Value executeStr(final PreprocessorContext context, final Value value) { final String escaped = StringEscapeUtils.escapeJson(value.asString()); return Value.valueOf(escaped); } @Override public String getReference() { return "escape string for JSON"; } @Override public ValueType getResultType() { return ValueType.STRING; } } FunctionSTR2WEB.java000077500000000000000000000036131263163240400351200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.apache.commons.lang3.CharUtils; import org.apache.commons.lang3.StringEscapeUtils; /** * The class implements the str2web function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionSTR2WEB extends AbstractStrConverter { @Override public String getName() { return "str2web"; } @Override public Value executeStr(final PreprocessorContext context, final Value value) { final String escaped = StringEscapeUtils.escapeHtml3(value.asString()); final StringBuilder result = new StringBuilder(escaped.length()*2); for(int i=0;i= list.getLength()) { throw context.makeException("The Element Index is out of bounds [" + elementIndex + ']',null); } final Element element = (Element) list.item(elementIndex); if (element == null) { throw context.makeException("Wrong index [" + elementIndex + ']',null); } container = new NodeContainer(UID_COUNTER.getAndIncrement(), element); context.setSharedResource(elementCacheId, container); } return elementCacheId; } } FunctionXML_ATTR.java000077500000000000000000000033741263163240400361260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; /** * The class implements the xml_attr function * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionXML_ATTR extends AbstractXMLFunction { private static final ValueType[][] ARG_TYPES = new ValueType[][]{{ValueType.STRING, ValueType.STRING}}; @Override public String getName() { return "xml_attr"; } public Value executeStrStr(final PreprocessorContext context, final Value elementId, final Value attributeName) { return Value.valueOf(getAttribute(context, elementId.asString(), attributeName.asString())); } @Override public int getArity() { return 2; } @Override public ValueType[][] getAllowedArgumentTypes() { return ARG_TYPES; } @Override public String getReference() { return "get named attribute from element, nonexisting attribute returns empty string"; } @Override public ValueType getResultType() { return ValueType.STRING; } } FunctionXML_GET.java000077500000000000000000000033731263163240400357720ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; /** * The class implements the xml_get function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionXML_GET extends AbstractXMLFunction { private static final ValueType[][] ARG_TYPES = new ValueType[][]{{ValueType.STRING, ValueType.INT}}; @Override public String getName() { return "xml_get"; } public Value executeStrInt(final PreprocessorContext context, final Value elementListId, final Value elementIndex) { return Value.valueOf(findElementForIndex(context, elementListId.asString(), elementIndex.asLong().intValue())); } @Override public int getArity() { return 2; } @Override public ValueType[][] getAllowedArgumentTypes() { return ARG_TYPES; } @Override public String getReference() { return "get element from element list by its index (first 0)"; } @Override public ValueType getResultType() { return ValueType.STRING; } } FunctionXML_LIST.java000077500000000000000000000043061263163240400361230ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.w3c.dom.Element; import org.w3c.dom.NodeList; /** * The class implements the xml_list function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionXML_LIST extends AbstractXMLFunction { private static final ValueType[][] ARG_TYPES = new ValueType[][]{{ValueType.STRING, ValueType.STRING}}; @Override public String getName() { return "xml_list"; } public Value executeStrStr(final PreprocessorContext context, final Value elementId, final Value elementTag) { final String tagName = elementTag.asString(); final Element element = getCachedElement(context, elementId.asString()); final String listId = makeElementListId(element, tagName); NodeContainer container = (NodeContainer) context.getSharedResource(listId); if (container == null) { final NodeList list = element.getElementsByTagName(tagName); container = new NodeContainer(UID_COUNTER.getAndIncrement(), list); context.setSharedResource(listId, container); } return Value.valueOf(listId); } @Override public int getArity() { return 2; } @Override public ValueType[][] getAllowedArgumentTypes() { return ARG_TYPES; } @Override public String getReference() { return "get element list by element tag"; } @Override public ValueType getResultType() { return ValueType.STRING; } } FunctionXML_NAME.java000077500000000000000000000033421263163240400360670ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.w3c.dom.Element; /** * The class implements the xml_name function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionXML_NAME extends AbstractXMLFunction { private static final ValueType[][] ARG_TYPES = new ValueType[][]{{ValueType.STRING}}; @Override public String getName() { return "xml_name"; } public Value executeStr(final PreprocessorContext context, final Value elementId) { final Element cachedelement = getCachedElement(context, elementId.asString()); return Value.valueOf(cachedelement.getTagName()); } @Override public int getArity() { return 1; } @Override public ValueType[][] getAllowedArgumentTypes() { return ARG_TYPES; } @Override public String getReference() { return "get element name (tag)"; } @Override public ValueType getResultType() { return ValueType.STRING; } } FunctionXML_OPEN.java000077500000000000000000000071201263163240400361060ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.xml.sax.SAXException; /** * The class implements the xml_open function handler * * @author Igor Maznits (igor.maznitsa@igormaznitsa.com) */ public final class FunctionXML_OPEN extends AbstractXMLFunction { public static final String RES_XML_DOC_PREFIX = "xml_doc_"; public static final String RES_XML_ELEMENT_PREFIX = "xml_elem_"; private static final ValueType[][] ARG_TYPES = new ValueType[][]{{ValueType.STRING}}; @Override public String getName() { return "xml_open"; } public Value executeStr(final PreprocessorContext context, final Value filePath) { final String name = filePath.asString(); final String documentId = makeDocumentId(name); final String documentIdRoot = makeDocumentRootId(documentId); NodeContainer docContainer = (NodeContainer) context.getSharedResource(documentId); if (docContainer == null) { File file = null; try { file = context.getSourceFile(name); } catch (IOException unexpected) { throw context.makeException("Can't read \'" + name + '\'',null); } final Document document = openFileAndParse(context, file); docContainer = new NodeContainer(UID_COUNTER.getAndIncrement(), document); context.setSharedResource(documentId, docContainer); final NodeContainer rootContainer = new NodeContainer(UID_COUNTER.getAndIncrement(), document.getDocumentElement()); context.setSharedResource(documentIdRoot, rootContainer); } return Value.valueOf(documentId); } private Document openFileAndParse(final PreprocessorContext context, final File file) { final DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); docBuilderFactory.setIgnoringComments(true); docBuilderFactory.setCoalescing(true); docBuilderFactory.setValidating(false); try { return docBuilderFactory.newDocumentBuilder().parse(file); } catch (ParserConfigurationException unexpected) { throw context.makeException("XML parser configuration exception",unexpected); } catch (SAXException unexpected) { throw context.makeException("Exception during XML parsing",unexpected); } catch (IOException unexpected) { throw context.makeException("Can't read XML file",unexpected); } } @Override public int getArity() { return 1; } @Override public ValueType[][] getAllowedArgumentTypes() { return ARG_TYPES; } @Override public String getReference() { return "open XML file and parse as DOM"; } @Override public ValueType getResultType() { return ValueType.STRING; } } FunctionXML_ROOT.java000077500000000000000000000036271263163240400361400ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; /** * The class implements the xml_getroot function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionXML_ROOT extends AbstractXMLFunction { private static final ValueType[][] ARG_TYPES = new ValueType[][]{{ValueType.STRING}}; @Override public String getName() { return "xml_root"; } public Value executeStr(final PreprocessorContext context, final Value documentId) { final String documentRootId = makeDocumentRootId(documentId.asString()); final NodeContainer root = (NodeContainer) context.getSharedResource(documentRootId); if (root == null){ throw context.makeException("Can't find any root for document ["+documentId+']',null); } return Value.valueOf(documentRootId); } @Override public int getArity() { return 1; } @Override public ValueType[][] getAllowedArgumentTypes() { return ARG_TYPES; } @Override public String getReference() { return "get the document root element"; } @Override public ValueType getResultType() { return ValueType.STRING; } } FunctionXML_SIZE.java000077500000000000000000000032361263163240400361230ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; /** * The class implements the xml_elementsnumber function * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionXML_SIZE extends AbstractXMLFunction { private static final ValueType[][] ARG_TYPES = new ValueType[][]{{ValueType.STRING}}; @Override public String getName() { return "xml_size"; } public Value executeStr(final PreprocessorContext context, final Value elementListId) { return Value.valueOf(Long.valueOf(getElementListSize(context, elementListId.asString()))); } @Override public int getArity() { return 1; } @Override public ValueType[][] getAllowedArgumentTypes() { return ARG_TYPES; } @Override public String getReference() { return "get element list size"; } @Override public ValueType getResultType() { return ValueType.INT; } } FunctionXML_TEXT.java000077500000000000000000000034061263163240400361340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.w3c.dom.Element; /** * The class implements the xml_getelementtext function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionXML_TEXT extends AbstractXMLFunction { private static final ValueType[][] ARG_TYPES = new ValueType[][]{{ValueType.STRING}}; @Override public String getName() { return "xml_text"; } public Value executeStr(final PreprocessorContext context, final Value elementid) { final Element element = getCachedElement(context, elementid.asString()); return Value.valueOf(element.getTextContent()); } @Override public int getArity() { return 1; } @Override public ValueType[][] getAllowedArgumentTypes() { return ARG_TYPES; } @Override public String getReference() { return "get element text content, text of children also included"; } @Override public ValueType getResultType() { return ValueType.STRING; } } FunctionXML_XELEMENT.java000066400000000000000000000060011263163240400365600ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import javax.xml.xpath.*; import org.w3c.dom.*; /** * The class implements the xml_xpathelement function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionXML_XELEMENT extends AbstractXMLFunction { private static final ValueType[][] ARG_TYPES = new ValueType[][]{{ValueType.STRING,ValueType.STRING}}; @Override public String getName() { return "xml_xelement"; } public Value executeStrStr(final PreprocessorContext context, final Value documentId, final Value xPath) { final String documentIdStr = documentId.asString(); final String pathStr = xPath.asString(); final String xpathElementId = makeXPathElementId(documentIdStr, pathStr); final Document document = getCachedDocument(context, documentIdStr); Element elem = findCachedElement(context, xpathElementId); if (elem == null){ try { final XPathExpression expression = prepareXPathExpression(pathStr); elem = (Element) expression.evaluate(document, XPathConstants.NODE); if (elem == null){ throw context.makeException("Can't find element for xpath [" + pathStr + ']',null); } } catch (XPathExpressionException ex) { throw context.makeException("Error during XPath compilation [" + pathStr + ']',ex); } catch (ClassCastException ex){ throw context.makeException("Can't get element for XPath [" + pathStr + ']',ex); } final NodeContainer container = new NodeContainer(UID_COUNTER.getAndIncrement(), elem); context.setSharedResource(xpathElementId, container); } return Value.valueOf(xpathElementId); } private XPathExpression prepareXPathExpression(final String path) throws XPathExpressionException { final XPathFactory factory = XPathFactory.newInstance(); final XPath xpath = factory.newXPath(); return xpath.compile(path); } @Override public int getArity() { return 2; } @Override public ValueType[][] getAllowedArgumentTypes() { return ARG_TYPES; } @Override public String getReference() { return "get element for XPath"; } @Override public ValueType getResultType() { return ValueType.STRING; } } FunctionXML_XLIST.java000066400000000000000000000053371263163240400362550ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import javax.xml.xpath.*; import org.w3c.dom.*; /** * The class implements the xml_xpathlist function handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class FunctionXML_XLIST extends AbstractXMLFunction { private static final ValueType[][] ARG_TYPES = new ValueType[][]{{ValueType.STRING, ValueType.STRING}}; @Override public String getName() { return "xml_xlist"; } public Value executeStrStr(final PreprocessorContext context, final Value documentId, final Value xPath) { final String documentIdStr = documentId.asString(); final String pathStr = xPath.asString(); final String xpathId = makeXPathListId(documentIdStr, pathStr); final Document document = getCachedDocument(context, documentIdStr); NodeList list = findCachedElementList(context, xpathId); if (list == null){ try { final XPathExpression expression = prepareXPathExpression(pathStr); list = (NodeList) expression.evaluate(document, XPathConstants.NODESET); } catch (XPathExpressionException ex) { throw context.makeException("Error during XPath compilation [" + pathStr + ']',ex); } final NodeContainer container = new NodeContainer(UID_COUNTER.getAndIncrement(), list); context.setSharedResource(xpathId, container); } return Value.valueOf(xpathId); } private XPathExpression prepareXPathExpression(final String path) throws XPathExpressionException { final XPathFactory factory = XPathFactory.newInstance(); final XPath xpath = factory.newXPath(); return xpath.compile(path); } @Override public int getArity() { return 2; } @Override public ValueType[][] getAllowedArgumentTypes() { return ARG_TYPES; } @Override public String getReference() { return "get element list for XPath"; } @Override public ValueType getResultType() { return ValueType.STRING; } } NodeContainer.java000077500000000000000000000031211263163240400356440ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * It's a special auxiliary class to save XML node data in a preprocessor * storage * * @author Igor Maznitsa (igor.maznitsa@igormaznnitsa.com) */ public class NodeContainer { private final Node node; private final NodeList nodeList; private final long id; public NodeContainer(final long id, final Node node) { PreprocessorUtils.assertNotNull("Node is null", node); this.id = id; this.node = node; this.nodeList = null; } public NodeContainer(final long id, final NodeList list) { PreprocessorUtils.assertNotNull("NodeList is null", list); this.id = id; this.node = null; this.nodeList = list; } public NodeList getNodeList() { return this.nodeList; } public Node getNode() { return this.node; } public long getId() { return this.id; } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/000077500000000000000000000000001263163240400315365ustar00rootroot00000000000000AbstractOperator.java000066400000000000000000000056261263163240400356120ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItem; import com.igormaznitsa.jcp.expression.ExpressionItemType; /** * The class is the base for all operator handlers * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public abstract class AbstractOperator implements ExpressionItem { /** * The constant is the prefix for executing methods of operators */ public static final String EXECUTION_PREFIX = "execute"; /** * The array contains all operators allowed by the preprocessor */ public static final AbstractOperator[] ALL_OPERATORS = new AbstractOperator[]{ new OperatorEQU(), new OperatorGREAT(), new OperatorGREATEQU(), new OperatorLESS(), new OperatorLESSEQU(), new OperatorNOTEQU(), new OperatorADD(), new OperatorSUB(), new OperatorMUL(), new OperatorDIV(), new OperatorMOD(), new OperatorNOT(), new OperatorAND(), new OperatorOR(), new OperatorXOR(),}; /** * Find an operator handler for its class * * @param the handler class extends AbstractOperator * @param operatorClass the class to be used for search, must not be null * @return an instance of the handler or null if there is not any such one */ public static E findForClass(final Class operatorClass) { for (final AbstractOperator operator : ALL_OPERATORS) { if (operator.getClass() == operatorClass) { return operatorClass.cast(operator); } } return null; } /** * Get the expression item type * * @return for operators it is always ExpressionItemType.OPERATOR */ public ExpressionItemType getExpressionItemType() { return ExpressionItemType.OPERATOR; } /** * Get the operator arity * * @return the operator arity (1 or 2) */ public abstract int getArity(); /** * Get the operator keyword * * @return the operator keyword, must not be null */ public abstract String getKeyword(); /** * Get the operator reference to be shown for a help information request * * @return the operator reference as a String, must not be null */ public abstract String getReference(); @Override public String toString() { return "OPERATOR: " + getKeyword(); } } OperatorADD.java000077500000000000000000000041641263163240400344360ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the ADD operator handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class OperatorADD extends AbstractOperator { @Override public int getArity() { return 2; } @Override public String getReference() { return "additive operator (also used for string concatenation)"; } @Override public String getKeyword() { return "+"; } public Value executeIntInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() + arg2.asLong()); } public Value executeFloatFloat(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asFloat() + arg2.asFloat()); } public Value executeIntFloat(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong().floatValue() + arg2.asFloat()); } public Value executeFloatInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asFloat() + arg2.asLong().floatValue()); } public Value executeStrAny(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asString() + arg2.toString()); } public Value executeAnyStr(final Value arg1, final Value arg2) { return Value.valueOf(arg1.toString() + arg2.asString()); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.ARITHMETIC_ADD_SUB; } } OperatorAND.java000077500000000000000000000030521263163240400344430ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the AND operator handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class OperatorAND extends AbstractOperator { @Override public int getArity() { return 2; } @Override public String getReference() { return "conditional-AND and bitwise-AND"; } @Override public String getKeyword() { return "&&"; } public Value executeIntInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() & arg2.asLong()); } public Value executeBoolBool(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asBoolean() && arg2.asBoolean()); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.LOGICAL; } } OperatorDIV.java000077500000000000000000000034561263163240400344730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the DIV operator handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class OperatorDIV extends AbstractOperator { @Override public int getArity() { return 2; } @Override public String getReference() { return "division operator"; } @Override public String getKeyword() { return "/"; } public Value executeIntInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() / arg2.asLong()); } public Value executeIntFloat(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() / arg2.asFloat()); } public Value executeFloatInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asFloat() / arg2.asLong()); } public Value executeFloatFloat(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asFloat() / arg2.asFloat()); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.ARITHMETIC_MUL_DIV_MOD; } } OperatorEQU.java000077500000000000000000000042361263163240400345000ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the EQU operator handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class OperatorEQU extends AbstractOperator { @Override public int getArity() { return 2; } @Override public String getReference() { return "equal to"; } @Override public String getKeyword() { return "=="; } public Value executeIntInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() == arg2.asLong().longValue()); } public Value executeFloatInt(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asFloat(), arg2.asLong().floatValue()) == 0); } public Value executeIntFloat(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asLong().floatValue(), arg2.asFloat()) == 0); } public Value executeFloatFloat(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asFloat(), arg2.asFloat()) == 0); } public Value executeStrStr(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asString().equals(arg2.asString())); } public Value executeBoolBool(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asBoolean() == arg2.asBoolean().booleanValue()); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.COMPARISON; } } OperatorGREAT.java000077500000000000000000000040031263163240400347000ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the GREAT operator handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class OperatorGREAT extends AbstractOperator { @Override public int getArity() { return 2; } @Override public String getReference() { return "greater than"; } @Override public String getKeyword() { return ">"; } public Value executeIntInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() > arg2.asLong()); } public Value executeFloatInt(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asFloat(), arg2.asLong().floatValue()) > 0); } public Value executeIntFloat(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asLong().floatValue(), arg2.asFloat()) > 0); } public Value executeFloatFloat(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asFloat(), arg2.asFloat()) > 0); } public Value executeStrStr(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asString().compareTo(arg2.asString()) > 0); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.COMPARISON; } } OperatorGREATEQU.java000077500000000000000000000040331263163240400352560ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the GREATEQU operator handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class OperatorGREATEQU extends AbstractOperator { @Override public int getArity() { return 2; } @Override public String getReference() { return "greater than or equal to"; } @Override public String getKeyword() { return ">="; } public Value executeIntInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() >= arg2.asLong()); } public Value executeFloatInt(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asFloat(), arg2.asLong().floatValue()) >= 0); } public Value executeIntFloat(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asLong().floatValue(), arg2.asFloat()) >= 0); } public Value executeFloatFloat(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asFloat(), arg2.asFloat()) >= 0); } public Value executeStrStr(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asString().compareTo(arg2.asString()) >= 0); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.COMPARISON; } } OperatorLESS.java000077500000000000000000000037761263163240400346240ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the LESS operator handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class OperatorLESS extends AbstractOperator { @Override public int getArity() { return 2; } @Override public String getReference() { return "less than"; } @Override public String getKeyword() { return "<"; } public Value executeIntInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() < arg2.asLong()); } public Value executeFloatInt(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asFloat(), arg2.asLong().floatValue()) < 0); } public Value executeIntFloat(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asLong().floatValue(), arg2.asFloat()) < 0); } public Value executeFloatFloat(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asFloat(), arg2.asFloat()) < 0); } public Value executeStrStr(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asString().compareTo(arg2.asString()) < 0); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.COMPARISON; } } OperatorLESSEQU.java000077500000000000000000000037551263163240400351740ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the LESSEQU operator handler * * @author igorm */ public final class OperatorLESSEQU extends AbstractOperator { @Override public int getArity() { return 2; } @Override public String getReference() { return "less than or equal to"; } @Override public String getKeyword() { return "<="; } public Value executeIntInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() <= arg2.asLong()); } public Value executeFloatInt(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asFloat(), arg2.asLong().floatValue()) <= 0); } public Value executeIntFloat(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asLong().floatValue(), arg2.asFloat()) <= 0); } public Value executeFloatFloat(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asFloat(), arg2.asFloat()) <= 0); } public Value executeStrStr(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asString().compareTo(arg2.asString()) <= 0); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.COMPARISON; } } OperatorMOD.java000077500000000000000000000035111263163240400344600ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the MOD operator handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class OperatorMOD extends AbstractOperator { @Override public int getArity() { return 2; } @Override public String getReference() { return "remainder operator"; } @Override public String getKeyword() { return "%"; } public Value executeIntInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() % arg2.asLong()); } public Value executeIntFloat(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong().floatValue() % arg2.asFloat()); } public Value executeFloatInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asFloat() % arg2.asLong().floatValue()); } public Value executeFloatFloat(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asFloat() % arg2.asFloat()); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.ARITHMETIC_MUL_DIV_MOD; } } OperatorMUL.java000077500000000000000000000035161263163240400345030ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the MOD operator handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class OperatorMUL extends AbstractOperator { @Override public int getArity() { return 2; } @Override public String getReference() { return "multiplication operator"; } @Override public String getKeyword() { return "*"; } public Value executeIntInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() * arg2.asLong()); } public Value executeIntFloat(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong().floatValue() * arg2.asFloat()); } public Value executeFloatInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asFloat() * arg2.asLong().floatValue()); } public Value executeFloatFloat(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asFloat() * arg2.asFloat()); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.ARITHMETIC_MUL_DIV_MOD; } } OperatorNOT.java000077500000000000000000000030041263163240400344760ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the NOT operator handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class OperatorNOT extends AbstractOperator { @Override public int getArity() { return 1; } @Override public String getReference() { return "logical complement operator and unary bitwise complement"; } @Override public String getKeyword() { return "!"; } public Value executeInt(final Value arg1) { return Value.valueOf(0xFFFFFFFFFFFFFFFFL ^ arg1.asLong()); } public Value executeBool(final Value arg1) { return Value.valueOf(!arg1.asBoolean()); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.FUNCTION; } } OperatorNOTEQU.java000077500000000000000000000042521263163240400350570ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the NOTEQU operator handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class OperatorNOTEQU extends AbstractOperator { @Override public int getArity() { return 2; } @Override public String getReference() { return "not equal to"; } @Override public String getKeyword() { return "!="; } public Value executeIntInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() != arg2.asLong().longValue()); } public Value executeFloatInt(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asFloat(), arg2.asLong().floatValue()) != 0); } public Value executeIntFloat(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asLong().floatValue(), arg2.asFloat()) != 0); } public Value executeFloatFloat(final Value arg1, final Value arg2) { return Value.valueOf(Float.compare(arg1.asFloat(), arg2.asFloat()) != 0); } public Value executeStrStr(final Value arg1, final Value arg2) { return Value.valueOf(!arg1.asString().equals(arg2.asString())); } public Value executeBoolBool(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asBoolean() != arg2.asBoolean().booleanValue()); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.COMPARISON; } } OperatorOR.java000077500000000000000000000030571263163240400343660ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the OR operator handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class OperatorOR extends AbstractOperator { @Override public int getArity() { return 2; } @Override public String getReference() { return "conditional-OR and bitwise inclusive OR"; } @Override public String getKeyword() { return "||"; } public Value executeIntInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() | arg2.asLong()); } public Value executeBoolBool(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asBoolean() || arg2.asBoolean()); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.LOGICAL; } } OperatorSUB.java000077500000000000000000000035071263163240400344770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the SUB operator handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public final class OperatorSUB extends AbstractOperator { @Override public int getArity() { return 2; } @Override public String getReference() { return "subtraction operator"; } @Override public String getKeyword() { return "-"; } public Value executeIntInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() - arg2.asLong()); } public Value executeIntFloat(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong().floatValue() - arg2.asFloat()); } public Value executeFloatInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asFloat() - arg2.asLong().floatValue()); } public Value executeFloatFloat(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asFloat() - arg2.asFloat()); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.ARITHMETIC_ADD_SUB; } } OperatorXOR.java000077500000000000000000000030531263163240400345120ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; /** * The class implements the XOR operator handler * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class OperatorXOR extends AbstractOperator { @Override public int getArity() { return 2; } @Override public String getReference() { return "conditional-XOR and bitwise exclusive OR"; } @Override public String getKeyword() { return "^"; } public Value executeIntInt(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asLong() ^ arg2.asLong()); } public Value executeBoolBool(final Value arg1, final Value arg2) { return Value.valueOf(arg1.asBoolean() ^ arg2.asBoolean()); } @Override public ExpressionItemPriority getExpressionItemPriority() { return ExpressionItemPriority.LOGICAL; } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/extension/000077500000000000000000000000001263163240400273355ustar00rootroot00000000000000PreprocessorExtension.java000077500000000000000000000043451263163240400345150ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/extension/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.extension; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; /** * The interface describes an extension which can be connected to a preprocessor * and to be notified about some calls and actions * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public interface PreprocessorExtension { /** * To process an action (it will be called if the preprocessor is met * //#action directive) * * @param context the current preprocessor context, must not be null * @param parameters the parameters of the action directive, must not be null * @return true if the action has been processed successfully or false, if it * is false then exception will be thrown and preprocessing will be stopped */ public boolean processAction(PreprocessorContext context, Value[] parameters); /** * Call to process a user function (the function starts with $) * * @param functionName the name of the function (without $ and in low case), * must not be null * @param arguments the function arguments as an array, must not be null * @return a calculated value, it must not be null */ public Value processUserFunction(String functionName, Value[] arguments); /** * When a preprocessor meets a user defined function (the function starts with * $) then it will ask for its arity * * @param functionName the function name without $ and in low case, must not * be null * @return the function arity (the argument number), zero or a great value */ public int getUserFunctionArity(String functionName); } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/logger/000077500000000000000000000000001263163240400266005ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/logger/PreprocessorLogger.java000066400000000000000000000026351263163240400332770ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.logger; /** * The interface describes a logger to be used by a preprocessor during its work * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public interface PreprocessorLogger { /** * Log an error message * * @param message the text to be output into the error log */ void error(String message); /** * Log an information message * * @param message the text to be output into the information log */ void info(String message); /** * Log a debug message * * @param message the text to be output into the information log * @since 6.0.1 */ void debug(String message); /** * Log a warning message * * @param message the text to be output into the warning log */ void warning(String message); } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/logger/SystemOutLogger.java000077500000000000000000000034401263163240400325630ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.logger; /** * An Easy logger which just output log messages into the system output streams * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class SystemOutLogger implements PreprocessorLogger { /** * Name of system property to enable debug level logging. */ public static final String PROPERTY_DEBUG_FLAG = "jcp.log.debug"; private static final boolean FLAG_DEBUG_LEVEL = Boolean.parseBoolean(System.getProperty(PROPERTY_DEBUG_FLAG)); @Override public void error(final String text) { if (text != null) { final String out = "[JCP.ERR] " + text; System.err.println(out); } } @Override public void info(final String text) { if (text != null) { final String out = "[JCP.INFO] " + text; System.out.println(out); } } @Override public void warning(final String text) { if (text != null) { final String out = "[JCP.WARN] " + text; System.out.println(out); } } @Override public void debug(final String text) { if (FLAG_DEBUG_LEVEL && text != null) { final String out = "[JCP.DEBUG] " + text; System.out.println(out); } } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/maven/000077500000000000000000000000001263163240400264275ustar00rootroot00000000000000MavenPropertiesImporter.java000077500000000000000000000145601263163240400340710ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/maven/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.maven; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.context.SpecialVariableProcessor; import com.igormaznitsa.jcp.expression.Value; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.*; import java.util.regex.Pattern; import org.apache.maven.model.Profile; import org.apache.maven.project.MavenProject; /** * The class imports some properties from the maven which can be accessible from * preprocessed sources as global variables * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class MavenPropertiesImporter implements SpecialVariableProcessor { private static final Pattern PATTERN_FOR_PROPERTY_WHICH_CAN_CONTAIN_PRIVATE_INFO = Pattern.compile("key|pass", Pattern.CASE_INSENSITIVE); private static final String[] TO_IMPORT = { "project.name", "project.version", "project.url", "project.packaging", "project.modelVersion", "project.inceptionYear", "project.id", "project.groupId", "project.description", "project.artifact.id", "project.artifact.artifactId", "project.artifact.baseVersion", "project.artifact.dependencyConflictId", "project.artifact.downloadUrl", "project.artifact.groupId", "project.artifact.scope", "project.artifact.type", "project.artifact.version", "project.build.directory", "project.build.defaultGoal", "project.build.outputDirectory", "project.build.scriptSourceDirectory", "project.build.sourceDirectory", "project.build.testOutputDirectory", "project.build.testSourceDirectory", "project.organization.name", "project.organization.url"}; private final Map insideVarMap = new HashMap(); private final MavenProject project; private void printInfoAboutVarIntoLog(final PreprocessorContext context, final String varName, final String value) { final boolean possibleContainsPrivateInfo = PATTERN_FOR_PROPERTY_WHICH_CAN_CONTAIN_PRIVATE_INFO.matcher(varName).find(); final String textValue = possibleContainsPrivateInfo ? "***** [hidden because may contain private info]" : value; context.logInfo("Added MAVEN property " + varName + '=' + textValue); } private void addVariableIntoInsideMap(final PreprocessorContext context, final String name, final Value value) { if (insideVarMap.containsKey(name)) { throw context.makeException("Duplicated importing value detected [" + name + ']',null); } insideVarMap.put(name, value); printInfoAboutVarIntoLog(context, name, value.asString()); } public MavenPropertiesImporter(final PreprocessorContext context, final MavenProject project) { this.project = project; for (final String paramName : TO_IMPORT) { final String varName = "mvn." + paramName.toLowerCase(Locale.ENGLISH); final String value = getProperty(this.project, paramName); addVariableIntoInsideMap(context, varName, Value.valueOf(value)); } // add active profile ids final StringBuilder profileIds = new StringBuilder(); for (final Profile profile : project.getActiveProfiles()) { if (profileIds.length() > 0) { profileIds.append(';'); } profileIds.append(profile.getId()); } addVariableIntoInsideMap(context, "mvn.project.activeprofiles", Value.valueOf(profileIds.toString())); // add properties for (final String propertyName : this.project.getProperties().stringPropertyNames()) { final String varName = "mvn.project.property." + propertyName.toLowerCase().replace(' ', '_'); final String value = this.project.getProperties().getProperty(propertyName); addVariableIntoInsideMap(context, varName, Value.valueOf(value)); } } static String getProperty(final MavenProject project, final String name) { final String[] splitted = name.split("\\."); Object root = null; if ("project".equals(splitted[0])) { root = project; } try { if (root == null) { throw new IllegalArgumentException("Unsupported root object detected [" + splitted[0] + ']'); } else { for (int i = 1; i < splitted.length - 1; i++) { final Method getter = root.getClass().getMethod(normalizeGetter(splitted[i])); root = getter.invoke(root); if (root == null) { return ""; } } final Method finalStringGetter = root.getClass().getMethod(normalizeGetter(splitted[splitted.length - 1])); final Object result = finalStringGetter.invoke(root); return result == null ? "" : result.toString(); } } catch (NoSuchMethodException ex) { throw new RuntimeException("Can't find method", ex); } catch (IllegalAccessException ex) { throw new RuntimeException("Security exception", ex); } catch (InvocationTargetException ex) { throw new RuntimeException("Exception during invocation", ex.getCause()); } } static String normalizeGetter(final String str) { return "get" + Character.toUpperCase(str.charAt(0)) + str.substring(1); } @Override public String[] getVariableNames() { return insideVarMap.keySet().toArray(new String[insideVarMap.size()]); } @Override public Value getVariable(final String varName, final PreprocessorContext context) { if (!insideVarMap.containsKey(varName)) { throw new IllegalArgumentException("Unsupported property request detected [" + varName + ']'); } return insideVarMap.get(varName); } @Override public void setVariable(final String varName, final Value value, final PreprocessorContext context) { throw new UnsupportedOperationException("An attempt to change a maven property detected, those properties are accessible only for reading [" + varName + ']'); } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/maven/PreprocessorClearMojo.java000066400000000000000000000107301263163240400335550ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.maven; import java.io.File; import java.io.IOException; import java.util.List; import org.apache.commons.io.FileUtils; import org.apache.maven.plugin.*; import org.apache.maven.plugin.logging.Log; import org.apache.maven.plugins.annotations.*; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.shared.model.fileset.FileSet; import org.apache.maven.shared.model.fileset.util.FileSetManager; /** * The Mojo allows to delete preprocessed folders. * * @author Igor Maznitsa (http://www.igormaznitsa.com) */ @Mojo(name = "clear", defaultPhase = LifecyclePhase.PACKAGE, threadSafe = true, requiresProject = true) public class PreprocessorClearMojo extends AbstractMojo { /** * The Destination folder where generated sources can be placed in non-test * mode and which will be removed. */ @Parameter(name = "preprocessedSources", readonly = true, defaultValue = "${project.build.directory}/generated-sources/preprocessed") private File preprocessedSources; /** * Destination folder where generated sources can be placed in test-mode and * which will be removed. */ @Parameter(name = "preprocessedTestSources", readonly = true, defaultValue = "${project.build.directory}/generated-test-sources/preprocessed") private File preprocessedTestSources; /** * List of folders and files to be removed, every folder defined as a FileSet and can contain exclude and include lists. *
   *  <fileSets>
   *    <fileSet>
   *      <directory>${basedir}/someFolder</directory>
   *      <includes>
   *        <include>*.txt</include>
   *      </includes>
   *    </fileSet>
   *  </fileSets>
   * 
* @see FileSet javadoc */ @Parameter(name = "fileSets", required = false) private List fileSets; private void processPredefinedFolders(final Log log) throws MojoFailureException { if (this.preprocessedSources != null) { final String path = preprocessedSources.getAbsolutePath(); log.info("Removing preprocessed source folder '" + path + '\''); if (this.preprocessedSources.isDirectory()) { try { FileUtils.deleteDirectory(this.preprocessedSources); } catch (IOException ex) { throw new MojoFailureException("Can't delete preprocessed source folder", ex); } } else { log.info("Preprocessed Source folder '" + path + "' doesn't exist"); } } if (this.preprocessedTestSources != null) { final String path = preprocessedTestSources.getAbsolutePath(); log.info("Removing preprocessed test source folder '" + path + '\''); if (this.preprocessedTestSources.isDirectory()) { try { FileUtils.deleteDirectory(this.preprocessedTestSources); } catch (IOException ex) { throw new MojoFailureException("Can't delete preprocessed test source folder", ex); } } else { log.info("Preprocessed Test Source folder '" + path + "' doesn't exist"); } } } @Override public void execute() throws MojoExecutionException, MojoFailureException { final Log log = getLog(); log.info("Cleaning has been started"); if (this.fileSets == null) { processPredefinedFolders(log); } else { processFileSet(this.fileSets, log); } log.info("Cleaning has been completed"); } private void processFileSet(final List fileSets, final Log log) throws MojoExecutionException { final FileSetManager manager = new FileSetManager(log,true); for (final FileSet fs : fileSets) { try { manager.delete(fs, true); } catch (IOException ex) { throw new MojoExecutionException("Exception during cleaning", ex); } } } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/maven/PreprocessorMojo.java000077500000000000000000000340031263163240400326100ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.maven; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.logger.PreprocessorLogger; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Properties; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.*; import org.apache.maven.project.MavenProject; /** * The Mojo makes preprocessing of defined or project root source folders and place result in defined or predefined folder, also it can replace the source folder for a maven project to use the preprocessed sources. * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ @Mojo(name = "preprocess", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true, requiresProject = true) public class PreprocessorMojo extends AbstractMojo implements PreprocessorLogger { /** * The Project source roots for non-test mode. */ @Parameter(name="compileSourceRoots", defaultValue = "${project.compileSourceRoots}", required = true, readonly = true) private List compileSourceRoots; /** * The Project source roots for test mode. */ @Parameter(name = "testCompileSourceRoots", defaultValue = "${project.testCompileSourceRoots}", required = true, readonly = true) private List testCompileSourceRoots; /** * The Maven Project to be preprocessed. */ @Parameter(defaultValue = "${project}", required = true, readonly = true) private MavenProject project; /** * The Directly defined source directory, it will make plugin to preprocess the folder instead of project and maven defined ones. By default it is empty and is not used. */ @Parameter(name = "source", defaultValue = "") private String source; /** * The Destination folder where generated sources will be placed in non-test mode. */ @Parameter(name = "destination", defaultValue = "${project.build.directory}/generated-sources/preprocessed") private File destination; /** * Destination folder where generated sources will be placed in test-mode. */ @Parameter(name = "testDestination", defaultValue = "${project.build.directory}/generated-test-sources/preprocessed") private File testDestination; /** * The Input text encoding to be used for preprocessing, by default it uses defined in project properties. */ @Parameter(name = "inEncoding", defaultValue = "${project.build.sourceEncoding}") private String inEncoding; /** * The Encoding for preprocessed text output, by default it uses defined in * project properties. */ @Parameter(name="outEncoding",defaultValue = "${project.build.sourceEncoding}") private String outEncoding; /** * List of file extensions to be excluded from the preprocessing process. By default excluded XML files. */ @Parameter(name = "excluded") private String excluded; /** * List of file extensions to be preprocessed. By default java,txt,htm,html */ @Parameter(name = "processing") private String processing; /** * Make dry run of the preprocessor without any saving of result. */ @Parameter(name="disableOut", defaultValue = "false") private boolean disableOut; /** * Turn on the verbose mode for preprocessing process. */ @Parameter(name="verbose", defaultValue = "false") private boolean verbose; /** * Clear the destination folder before preprocessing (if it exists). */ @Parameter(name = "clear", defaultValue = "false") private boolean clear; /** * Be precise in processing of the last next line char in files, it will not be added if it is not presented if to turn on the mode.. */ @Parameter(name = "careForLastNextLine", defaultValue = "false") private boolean careForLastNextLine; /** * Disable overriding of the source root folders for maven project after preprocessing. */ @Parameter(name = "keepSrcRoot", defaultValue = "false") private boolean keepSrcRoot; /** * Remove all Java like commentaries from preprocessed sources. */ @Parameter(name = "removeComments", defaultValue = "false") private boolean removeComments; /** * List of global preprocessing variables. */ @Parameter(name = "globalVars") private Properties globalVars; /** * List of external configuration files. */ @Parameter(name = "cfgFiles") private File[] cfgFiles; /** * Disable removing lines from preprocessed files, it allows to keep line numeration similar to original sources. */ @Parameter(name = "keepLines", defaultValue = "true") private boolean keepLines; /** * Allow usage of the preprocessor for test sources (since 5.3.4 version). */ @Parameter(name="useTestSources", defaultValue = "false") private boolean useTestSources; /** * Flag to compare generated content with existing file and if it is the same then to not override the file, it brings overhead */ @Parameter(name="compareDestination", defaultValue = "false") private boolean compareDestination; public PreprocessorMojo() { super(); } public void setUseTestSources(final boolean flag) { this.useTestSources = flag; } public boolean getUseTestSources() { return this.useTestSources; } public void setClear(final boolean flag) { this.clear = flag; } public boolean getClear() { return this.clear; } public void setCareForLastNextLine(final boolean flag) { this.careForLastNextLine = flag; } public boolean getCarForLastNextLine() { return this.careForLastNextLine; } public void setKeepSrcRoot(final boolean flag) { this.keepSrcRoot = flag; } public boolean getKeepSrcRoot() { return this.keepSrcRoot; } public void setGlobalVars(final Properties vars) { this.globalVars = vars; } public Properties getGlobalVars() { return this.globalVars; } public void setCfgFiles(final File[] files) { this.cfgFiles = files; } public File[] getCfgFiles() { return this.cfgFiles; } public void setCompareDestination(final boolean flag){ this.compareDestination = flag; } public boolean isCompareDestination(){ return this.compareDestination; } public void setSource(final String source) { this.source = source; } public String getSource() { return this.source; } public void setDestination(final File destination) { this.destination = destination; } public File getDestination() { return this.destination; } public void setTestDestination(final File destination) { this.testDestination = destination; } public File getTestDestination() { return this.testDestination; } public void setInEncoding(final String value) { this.inEncoding = value; } public String getInEncoding() { return this.inEncoding; } public void setOutEncoding(final String value) { this.outEncoding = value; } public String getOutEncoding() { return this.outEncoding; } public void setExcluded(final String excluded) { this.excluded = excluded; } public String getExcluded() { return this.excluded; } public void setProcessing(final String processing) { this.processing = processing; } public String getProcessing() { return this.processing; } public void setDisableOut(final boolean value) { this.disableOut = value; } public boolean getDisableOut() { return this.disableOut; } public void setVerbose(final boolean verbose) { this.verbose = verbose; } public boolean getVerbose() { return this.verbose; } public void setKeepLines(final boolean keepLines) { this.keepLines = keepLines; } public boolean getKeepLines() { return this.keepLines; } public void setRemoveComments(final boolean value) { this.removeComments = value; } public boolean getRemoveComments() { return this.removeComments; } private String makeSourceRootList() { String result = null; if (this.source != null && !this.source.isEmpty()) { result = this.source; } else if (this.project != null) { final StringBuilder accum = new StringBuilder(); for (final String srcRoot : (this.useTestSources ? this.testCompileSourceRoots : this.compileSourceRoots)) { if (accum.length() > 0) { accum.append(';'); } accum.append(srcRoot); } result = accum.toString(); } return result; } private void replaceSourceRootByPreprocessingDestinationFolder(final PreprocessorContext context) throws IOException { if (this.project != null) { final String sourceDirectories = context.getSourceDirectories(); final String[] splitted = sourceDirectories.split(";"); final List sourceRoots = this.useTestSources ? this.testCompileSourceRoots : this.compileSourceRoots; final List sourceRootsAsCanonical = new ArrayList(); for (final String src : sourceRoots) { sourceRootsAsCanonical.add(new File(src).getCanonicalPath()); } for (final String str : splitted) { int index = sourceRoots.indexOf(str); if (index < 0) { // check for canonical paths final File src = new File(str); final String canonicalPath = src.getCanonicalPath(); index = sourceRootsAsCanonical.indexOf(canonicalPath); } if (index >= 0) { info("A Compile source root has been removed from the root list [" + sourceRoots.get(index) + ']'); sourceRoots.remove(index); } } final String destinationDir = context.getDestinationDirectoryAsFile().getCanonicalPath(); sourceRoots.add(destinationDir); info("The New compile source root has been added into the list [" + destinationDir + ']'); } } PreprocessorContext makePreprocessorContext() throws IOException { final PreprocessorContext context = new PreprocessorContext(); context.setPreprocessorLogger(this); if (this.project != null) { final MavenPropertiesImporter mavenPropertiesImporter = new MavenPropertiesImporter(context, project); context.registerSpecialVariableProcessor(mavenPropertiesImporter); } context.setSourceDirectories(makeSourceRootList()); context.setDestinationDirectory(this.useTestSources ? this.testDestination.getCanonicalPath() : this.destination.getCanonicalPath()); if (this.inEncoding != null) { context.setInCharacterEncoding(this.inEncoding); } if (this.outEncoding != null) { context.setOutCharacterEncoding(this.outEncoding); } if (this.excluded != null) { context.setExcludedFileExtensions(this.excluded); } if (this.processing != null) { context.setProcessingFileExtensions(this.processing); } info("Preprocess sources : " + context.getSourceDirectories()); info("Preprocess destination : " + context.getDestinationDirectory()); context.setCompareDestination(this.compareDestination); context.setClearDestinationDirBefore(this.clear); context.setCareForLastNextLine(this.careForLastNextLine); context.setRemoveComments(this.removeComments); context.setVerbose(getLog().isDebugEnabled() || this.verbose); context.setKeepLines(this.keepLines); context.setFileOutputDisabled(this.disableOut); // process cfg files if (this.cfgFiles != null && this.cfgFiles.length != 0) { for (final File file : this.cfgFiles) { PreprocessorUtils.assertNotNull("Detected null where a config file was expected", file); context.addConfigFile(file); } } // process global vars if (this.globalVars != null && !this.globalVars.isEmpty()) { for (final String key : this.globalVars.stringPropertyNames()) { final String value = this.globalVars.getProperty(key); PreprocessorUtils.assertNotNull("Can't find defined value for '" + key + "' global variable",value); context.setGlobalVariable(key, Value.recognizeRawString(value)); } } return context; } @Override public void execute() throws MojoExecutionException, MojoFailureException { PreprocessorContext context = null; try { context = makePreprocessorContext(); } catch (Exception ex) { final PreprocessorException pp = PreprocessorException.extractPreprocessorException(ex); throw new MojoExecutionException(pp==null ? ex.getMessage() : pp.toString(), pp == null ? ex : pp); } try { final JCPreprocessor preprocessor = new JCPreprocessor(context); preprocessor.execute(); if (!getKeepSrcRoot()) { replaceSourceRootByPreprocessingDestinationFolder(context); } } catch (Exception ex) { final PreprocessorException pp = PreprocessorException.extractPreprocessorException(ex); throw new MojoFailureException(pp == null ? ex.getMessage() : PreprocessorException.referenceAsString('.',pp), pp == null ? ex : pp); } } @Override public void error(final String message) { getLog().error(message); } @Override public void info(final String message) { getLog().info(message); } @Override public void warning(final String message) { getLog().warn(message); } @Override public void debug(final String message) { getLog().debug(message); } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/removers/000077500000000000000000000000001263163240400271635ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/removers/JavaCommentsRemover.java000077500000000000000000000073531263163240400337700ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.removers; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.io.IOException; import java.io.Reader; import java.io.Writer; /** * A remover allows to cut off all Java like comments from a reader and write * the result into a writer * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class JavaCommentsRemover { private final Reader srcReader; private final Writer dstWriter; public JavaCommentsRemover(final Reader src, final Writer dst) { PreprocessorUtils.assertNotNull("The reader is null", src); PreprocessorUtils.assertNotNull("The writer is null", dst); this.srcReader = src; this.dstWriter = dst; } void skipUntilNextString() throws IOException { while (true) { final int chr = srcReader.read(); if (chr < 0) { return; } if (chr == '\n') { dstWriter.write(chr); return; } } } void skipUntilClosingComments() throws IOException { boolean starFound = false; while (true) { final int chr = srcReader.read(); if (chr < 0) { return; } if (starFound) { if (chr == '/') { return; } else { starFound = chr == '*'; } } else { if (chr == '*') { starFound = true; } } } } public Writer process() throws IOException { final int STATE_NORMAL = 0; final int STATE_INSIDE_STRING = 1; final int STATE_NEXT_SPECIAL_CHAR = 2; final int STATE_FORWARD_SLASH = 3; int state = STATE_NORMAL; while (true) { final int chr = srcReader.read(); if (chr < 0) { break; } switch (state) { case STATE_NORMAL: { switch (chr) { case '\"': { dstWriter.write(chr); state = STATE_INSIDE_STRING; } break; case '/': { state = STATE_FORWARD_SLASH; } break; default: { dstWriter.write(chr); } break; } } break; case STATE_FORWARD_SLASH: { switch (chr) { case '*': { skipUntilClosingComments(); state = STATE_NORMAL; } break; case '/': { skipUntilNextString(); state = STATE_NORMAL; } break; default: { dstWriter.write('/'); dstWriter.write(chr); state = STATE_NORMAL; } break; } } break; case STATE_INSIDE_STRING: { switch (chr) { case '\\': { state = STATE_NEXT_SPECIAL_CHAR; } break; case '\"': { state = STATE_NORMAL; } break; } dstWriter.write(chr); } break; case STATE_NEXT_SPECIAL_CHAR: { dstWriter.write(chr); state = STATE_INSIDE_STRING; } break; } } return dstWriter; } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/utils/000077500000000000000000000000001263163240400264615ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/utils/PreprocessorUtils.java000077500000000000000000000315371263163240400330470ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.utils; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.exceptions.FilePositionInfo; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.expression.Value; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.concurrent.atomic.AtomicBoolean; import org.apache.commons.io.*; /** * It is an auxiliary class contains some useful methods * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public enum PreprocessorUtils { ; public static final String LINE_END; static { final String jcpLlineEnd = System.getProperty("jcp.line.separator"); LINE_END = jcpLlineEnd == null ? System.getProperty("line.separator", "\r\n") : jcpLlineEnd; } public static String getFileExtension (final File file) { String result = null; if (file != null) { result = FilenameUtils.getExtension(file.getName()); } return result; } public static String[] splitExtensionCommaList (final String extensions) { PreprocessorUtils.assertNotNull("String of extensions is null", extensions); final String trimmed = extensions.trim(); String[] result; if (trimmed.isEmpty()) { result = new String[0]; } else { result = splitForChar(extensions, ','); for (int li = 0; li < result.length; li++) { result[li] = result[li].trim().toLowerCase(Locale.ENGLISH); } } return result; } public static void assertNotNull (final String message, final Object obj) { if (obj == null) { throw new NullPointerException(message); } } public static BufferedReader makeFileReader (final File file, final String charset, final int bufferSize) throws IOException { PreprocessorUtils.assertNotNull("File is null", file); PreprocessorUtils.assertNotNull("Charset is null", charset); if (!Charset.isSupported(charset)) { throw new IllegalArgumentException("Unsupported charset [" + charset + ']'); } BufferedReader result; if (bufferSize <= 0) { result = new BufferedReader(new InputStreamReader(new FileInputStream(file), charset)); } else { result = new BufferedReader(new InputStreamReader(new FileInputStream(file), charset), bufferSize); } return result; } public static String[] replaceChar (final String[] source, final char toBeReplaced, final char replacement) { final String[] result = new String[source.length]; int index = 0; for (final String curStr : source) { result[index++] = curStr.replace(toBeReplaced, replacement); } return result; } public static String extractTrimmedTail (final String prefix, final String value) { return extractTail(prefix, value).trim(); } public static String extractTail (final String prefix, final String value) { PreprocessorUtils.assertNotNull("Prefix is null", prefix); PreprocessorUtils.assertNotNull("Value is null", value); if (prefix.length() > value.length()) { throw new IllegalArgumentException("Prefix is taller than the value"); } return value.substring(prefix.length()); } public static void copyFile (final File source, final File dest) throws IOException { PreprocessorUtils.assertNotNull("Source is null", source); PreprocessorUtils.assertNotNull("Destination file is null", dest); if (source.isDirectory()) { throw new IllegalArgumentException("Source file is directory"); } if (!dest.getParentFile().exists() && !dest.getParentFile().mkdirs()) { throw new IOException("Can't make directory [" + getFilePath(dest.getParentFile()) + ']'); } FileChannel fileSrc = null; FileChannel fileDst = null; final FileInputStream fileSrcInput = new FileInputStream(source); FileOutputStream fileOutput = null; try { fileSrc = fileSrcInput.getChannel(); fileOutput = new FileOutputStream(dest); fileDst = fileOutput.getChannel(); long size = fileSrc.size(); long pos = 0L; while (size > 0) { final long written = fileSrc.transferTo(pos, size, fileDst); pos += written; size -= written; } } finally { IOUtils.closeQuietly(fileSrcInput); IOUtils.closeQuietly(fileOutput); IOUtils.closeQuietly(fileDst); IOUtils.closeQuietly(fileSrc); } } public static String processMacroses (final String processingString, final PreprocessorContext context) { int position; String result = processingString; while (true) { position = result.indexOf("/*$"); if (position >= 0) { final String leftPart = result.substring(0, position); final int beginIndex = position; position = result.indexOf("$*/", position); if (position >= 0) { final String macrosBody = result.substring(beginIndex + 3, position); final String rightPart = result.substring(position + 3); final Value value = Expression.evalExpression(macrosBody, context); result = leftPart + value.toString() + rightPart; } else { break; } } else { break; } } return result; } private static void checkFile (final File file) throws IOException { PreprocessorUtils.assertNotNull("File is null", file); if (!file.isFile()) { throw new FileNotFoundException("File " + getFilePath(file) + " doesn't exist"); } } public static String[] readWholeTextFileIntoArray (final File file, final String encoding, final AtomicBoolean endedByNextLine) throws IOException { checkFile(file); final String enc = encoding == null ? "UTF8" : encoding; final BufferedReader srcBufferedReader = PreprocessorUtils.makeFileReader(file, enc, (int) file.length()); final List strContainer = new ArrayList(1024); try { final StringBuilder buffer = new StringBuilder(); boolean stringEndedByNextLine = false; boolean meetCR = false; while (true) { final int chr = srcBufferedReader.read(); if (chr < 0) { break; } if (chr == '\n') { stringEndedByNextLine = true; strContainer.add(buffer.toString()); buffer.setLength(0); meetCR = false; } else if (chr == '\r') { if (meetCR) { buffer.append((char) chr); } else { stringEndedByNextLine = false; meetCR = true; } } else { if (meetCR) { buffer.append('\r'); } meetCR = false; stringEndedByNextLine = false; buffer.append((char) chr); } } if (buffer.length() != 0) { strContainer.add(buffer.toString()); buffer.setLength(0); } if (endedByNextLine != null) { endedByNextLine.set(stringEndedByNextLine); } } finally { srcBufferedReader.close(); } return strContainer.toArray(new String[strContainer.size()]); } public static byte[] readFileAsByteArray (final File file) throws IOException { checkFile(file); int len = (int) file.length(); final ByteBuffer buffer = ByteBuffer.allocate(len); final FileChannel inChannel = new FileInputStream(file).getChannel(); try { while (len > 0) { final int read = inChannel.read(buffer); if (read < 0) { throw new IOException("Can't read whole file [" + getFilePath(file) + '\''); } len -= read; } } finally { IOUtils.closeQuietly(inChannel); } return buffer.array(); } public static String[] splitForEqualChar (final String string) { final int index = string.indexOf('='); final String[] result; if (index < 0) { result = new String[]{string}; } else { final String leftPart = string.substring(0, index).trim(); final String rightPart = string.substring(index + 1).trim(); result = new String[]{leftPart, rightPart}; } return result; } public static String[] splitForChar (final String string, final char delimiter) { final char[] array = string.toCharArray(); final StringBuilder buffer = new StringBuilder((array.length >> 1) == 0 ? 1 : array.length >> 1); final List tokens = new ArrayList(10); for (final char curChar : array) { if (curChar == delimiter) { if (buffer.length() != 0) { tokens.add(buffer.toString()); buffer.setLength(0); } } else { buffer.append(curChar); } } if (buffer.length() != 0) { tokens.add(buffer.toString()); } return tokens.toArray(new String[tokens.size()]); } public static String normalizeVariableName (final String name) { if (name == null) { return null; } return name.trim().toLowerCase(Locale.ENGLISH); } public static String getFilePath (final File file) { String result = ""; if (file != null) { try { result = file.getCanonicalPath(); } catch (IOException ex) { result = file.getAbsolutePath(); } } return result; } public static void throwPreprocessorException (final String msg, final String processingString, final File srcFile, final int nextStringIndex, final Throwable cause) { throw new PreprocessorException(msg, processingString, new FilePositionInfo[]{new FilePositionInfo(srcFile, nextStringIndex)}, cause); } public static String[] replaceStringPrefix (final String[] allowedPrefixesToBeReplaced, final String replacement, final String[] strings) { final String[] result = new String[strings.length]; for (int i = 0; i < strings.length; i++) { final String str = strings[i]; String detectedPrefix = null; for (final String prefix : allowedPrefixesToBeReplaced) { if (str.startsWith(prefix)) { if (detectedPrefix == null || detectedPrefix.length() < prefix.length()) { detectedPrefix = prefix; } } } if (detectedPrefix != null) { result[i] = replacement + str.substring(detectedPrefix.length()); } else { result[i] = str; } } return result; } public static String getNextLineCodes () { return System.getProperty("line.separator", "\r\n"); } public static String leftTrim (String rawString) { int firstNonSpace = 0; for (int i = 0; i < rawString.length(); i++) { final char ch = rawString.charAt(i); if (ch > 32) { break; } firstNonSpace++; } return rawString.substring(firstNonSpace); } public static boolean isFileContentEquals (final File src, final File dst) throws IOException { if (src == null && dst == null) { return true; } if (src == null || dst == null) { return false; } if (src.isDirectory() && dst.isDirectory()) { return true; } if (src.isDirectory() || dst.isDirectory()) { return false; } if (src.length() != dst.length()) { return false; } final int bufferSize = Math.min((int) src.length(), 65536); final byte[] srcBuffer = new byte[bufferSize]; final byte[] dstBuffer = new byte[bufferSize]; final InputStream srcIn = new BufferedInputStream(new FileInputStream(src),bufferSize); final InputStream dstIn = new BufferedInputStream(new FileInputStream(dst),bufferSize); try { while (true) { final int readSrc = IOUtils.read(srcIn, srcBuffer); final int readDst = IOUtils.read(dstIn, dstBuffer); if (readDst != readSrc) return false; if (readSrc == 0) break; if (!Arrays.equals(srcBuffer, dstBuffer)) { return false; } } return true; } finally { IOUtils.closeQuietly(srcIn); IOUtils.closeQuietly(dstIn); } } } java-comment-preprocessor-6.0.1/src/main/java/com/igormaznitsa/jcp/utils/ResetablePrinter.java000077500000000000000000000033721263163240400326060ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.utils; import java.io.CharArrayWriter; import java.io.IOException; import java.io.Writer; /** * The class implements a resetable char printer * * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class ResetablePrinter { private final CharArrayWriter outStream; public ResetablePrinter(final int initialCapacity) { outStream = new CharArrayWriter(initialCapacity); } public boolean isEmpty() { return outStream.size() == 0; } public void writeBufferTo(final Writer writer) throws IOException { outStream.flush(); writer.write(outStream.toCharArray()); writer.flush(); } public int getSize() { return outStream.size(); } public void reset() { outStream.reset(); } public void print(final String text) throws IOException { for (final char chr : text.toCharArray()) { outStream.write(chr); } } public void println(final String text) throws IOException { for (final char chr : text.toCharArray()) { outStream.write(chr); } outStream.write(PreprocessorUtils.LINE_END, 0, PreprocessorUtils.LINE_END.length()); } } java-comment-preprocessor-6.0.1/src/main/resources/000077500000000000000000000000001263163240400223515ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/resources/com/000077500000000000000000000000001263163240400231275ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/resources/com/igormaznitsa/000077500000000000000000000000001263163240400256365ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/resources/com/igormaznitsa/jcp/000077500000000000000000000000001263163240400264125ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/resources/com/igormaznitsa/jcp/ant/000077500000000000000000000000001263163240400271745ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/main/resources/com/igormaznitsa/jcp/ant/antlib.xml000077500000000000000000000002201263163240400311640ustar00rootroot00000000000000 java-comment-preprocessor-6.0.1/src/main/resources/com/igormaznitsa/jcp/ant/tasks.properties000066400000000000000000000000621263163240400324350ustar00rootroot00000000000000preprocess=com.igormaznitsa.jcp.ant.PreprocessTaskjava-comment-preprocessor-6.0.1/src/test/000077500000000000000000000000001263163240400203725ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/000077500000000000000000000000001263163240400213135ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/000077500000000000000000000000001263163240400220715ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/000077500000000000000000000000001263163240400246005ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/000077500000000000000000000000001263163240400253545ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/JCPreprocessorTest.java000077500000000000000000000114031263163240400317640ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp; import com.igormaznitsa.jcp.cmdline.CommandLineHandler; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import java.io.*; import java.util.*; import org.apache.commons.io.IOUtils; import static org.junit.Assert.*; import org.junit.Test; public final class JCPreprocessorTest { private void assertGVDFPreprocessorException(final String file, final int stringIndex) throws Exception { final PreprocessorContext context = new PreprocessorContext(); context.addConfigFile(new File(this.getClass().getResource(file).toURI())); final JCPreprocessor preprocessor = new JCPreprocessor(context); try { preprocessor.processCfgFiles(); fail("Must throw a PreprocessorException"); } catch (PreprocessorException expected) { if (stringIndex != expected.getStringIndex()) { fail("Wrong error string index [" + expected.toString() + ']'); } } } @Test public void testProcessGlobalVarDefiningFiles() throws Exception { final PreprocessorContext context = new PreprocessorContext(); context.addConfigFile(new File(this.getClass().getResource("./global_ok.txt").toURI())); final JCPreprocessor preprocessor = new JCPreprocessor(context); preprocessor.processCfgFiles(); assertEquals("Must have the variable", "hello world", context.findVariableForName("globalVar1").asString()); assertEquals("Must have the variable", Value.INT_THREE, context.findVariableForName("globalVar2")); assertEquals("Character input encoding must be changed", "ISO-8859-1", context.getInCharacterEncoding()); } @Test public void testProcessGlobalVarDefiningFiles_ATsymbol() throws Exception { assertGVDFPreprocessorException("global_error_at.txt", 8); } @Test public void testJavaCommentRemoving() throws Exception { final File testDirectory = new File(getClass().getResource("removers/java").toURI()); final File resultFile = new File(testDirectory, "w_o_comments.ttt"); final File etalonFile = new File(testDirectory, "etalon.etl"); if (resultFile.exists()) { assertTrue("We have to remove the existing result file", resultFile.delete()); } final PreprocessorContext context = new PreprocessorContext(); context.setSourceDirectories(testDirectory.getCanonicalPath()); context.setDestinationDirectory(testDirectory.getCanonicalPath()); context.setClearDestinationDirBefore(false); context.setRemoveComments(true); context.setProcessingFileExtensions("ppp"); context.setExcludedFileExtensions("etl"); final JCPreprocessor preprocessor = new JCPreprocessor(context); preprocessor.execute(); assertTrue("There must be the result file", resultFile.exists()); assertTrue("There must be the etalon file", etalonFile.exists()); String differentLine = null; int lineIndex = 1; BufferedReader resultReader = null; BufferedReader etalonReader = null; try { resultReader = new BufferedReader(new FileReader(resultFile)); etalonReader = new BufferedReader(new FileReader(etalonFile)); while (true) { final String resultStr = resultReader.readLine(); final String etalonStr = etalonReader.readLine(); if (resultStr == null && etalonStr == null) { break; } if (resultStr == null || !resultStr.equals(etalonStr)) { differentLine = resultStr; break; } lineIndex++; } } finally { IOUtils.closeQuietly(etalonReader); IOUtils.closeQuietly(resultReader); } if (differentLine != null) { fail("Line " + lineIndex + " There is a different strings [" + differentLine + '['); } } @Test public void testCLIHandlerNameConflicts(){ final List checked = new ArrayList(); for(final CommandLineHandler h : JCPreprocessor.COMMAND_LINE_HANDLERS){ final String name = h.getKeyName(); for(final String l : checked){ if (l.startsWith(name) || name.startsWith(l)) fail("Conflict ["+l+" and "+name+']'); } checked.add(name); } } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/ant/000077500000000000000000000000001263163240400261365ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/ant/PreprocessTaskTest.java000077500000000000000000000153571263163240400326270ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.ant; import com.igormaznitsa.jcp.ant.PreprocessTask.Global; import com.igormaznitsa.jcp.expression.Value; import java.io.File; import java.util.Arrays; import java.util.HashSet; import java.util.Hashtable; import java.util.Set; import org.apache.tools.ant.Project; import static org.junit.Assert.*; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.mockito.Mockito.*; public class PreprocessTaskTest { static File THIS_DIRECTORY; final static Project projectMock = mock(Project.class); static { when(projectMock.getBaseDir()).thenReturn(new File("base/dir")); when(projectMock.getProperties()).thenReturn(new Hashtable()); } PreprocessTask antTask; @BeforeClass public static void beforeClass() throws Exception { THIS_DIRECTORY = new File(PreprocessTaskTest.class.getResource("./").toURI()); } @Before public void beforeTest() { antTask = new PreprocessTask(); antTask.setProject(projectMock); antTask.setSource(THIS_DIRECTORY); } @Test public void testSetSource() throws Exception { final File[] sourceDirs = antTask.generatePreprocessorContext().getSourceDirectoryAsFiles(); assertEquals("There must be only root", 1, sourceDirs.length); assertEquals("File must be equal the original", THIS_DIRECTORY, sourceDirs[0]); } @Test public void testCareForLastNextLine() throws Exception { antTask.setCareForLastNextLine(true); assertTrue("Must be true", antTask.generatePreprocessorContext().isCareForLastNextLine()); antTask.setCareForLastNextLine(false); assertFalse("Must be false", antTask.generatePreprocessorContext().isCareForLastNextLine()); } @Test public void testCompareDestination() throws Exception { antTask.setCompareDestiation(true); assertTrue("Must be true", antTask.generatePreprocessorContext().isCompareDestination()); antTask.setCompareDestiation(false); assertFalse("Must be false", antTask.generatePreprocessorContext().isCompareDestination()); } @Test public void testSetDestination() throws Exception { antTask.setDestination(THIS_DIRECTORY); assertEquals("Files must be equal", THIS_DIRECTORY.getCanonicalFile(), antTask.generatePreprocessorContext().getDestinationDirectoryAsFile()); } @Test public void testSetInCharset() throws Exception { final String TEST = "ISO-8859-1"; antTask.setInCharset(TEST); assertEquals("Must be the same charset", TEST, antTask.generatePreprocessorContext().getInCharacterEncoding()); } @Test public void testSetOutCharset() throws Exception { final String TEST = "ISO-8859-1"; antTask.setOutCharset(TEST); assertEquals("Must be the same charset", TEST, antTask.generatePreprocessorContext().getOutCharacterEncoding()); } @Test public void testSetExcluded() throws Exception { final String TEST = "bin,vb,cpp"; antTask.setExcluded(TEST); final String[] splitted = TEST.split(","); final String[] contextExtensions = antTask.generatePreprocessorContext().getExcludedFileExtensions(); final Set thoseExts = new HashSet(Arrays.asList(contextExtensions)); assertEquals("Must have the same size", splitted.length, thoseExts.size()); assertTrue("Must contains all extensions", new HashSet(Arrays.asList(splitted)).containsAll(thoseExts)); } @Test public void testSetExtensions() throws Exception { final String TEST = "pl,frt,bat"; antTask.setProcessing(TEST); final String[] splitted = TEST.split(","); final String[] contextExtensions = antTask.generatePreprocessorContext().getProcessingFileExtensions(); final Set thoseExts = new HashSet(Arrays.asList(contextExtensions)); assertEquals("Must have the same size", splitted.length, thoseExts.size()); assertTrue("Must contains all extensions", new HashSet(Arrays.asList(splitted)).containsAll(thoseExts)); } @Test public void testSetClear() throws Exception { antTask.setClear(true); assertTrue("Must be true", antTask.generatePreprocessorContext().doesClearDestinationDirBefore()); antTask.setClear(false); assertFalse("Must be false", antTask.generatePreprocessorContext().doesClearDestinationDirBefore()); } @Test public void testSetRemoveComments() throws Exception { antTask.setRemoveComments(true); assertTrue("Must be true", antTask.generatePreprocessorContext().isRemoveComments()); antTask.setRemoveComments(false); assertFalse("Must be false", antTask.generatePreprocessorContext().isRemoveComments()); } @Test public void testSetVerbose() throws Exception { antTask.setVerbose(true); assertTrue("Must be true", antTask.generatePreprocessorContext().isVerbose()); antTask.setVerbose(false); assertFalse("Must be false", antTask.generatePreprocessorContext().isVerbose()); } @Test public void testSetDisableOut() throws Exception { antTask.setDisableOut(true); assertTrue("Must be true", antTask.generatePreprocessorContext().isFileOutputDisabled()); antTask.setDisableOut(false); assertFalse("Must be false", antTask.generatePreprocessorContext().isFileOutputDisabled()); } @Test public void testAddGlobal() throws Exception { final Global global = antTask.createGlobal(); global.setName("hello_world"); global.setValue("4"); final Value value = antTask.generatePreprocessorContext().findVariableForName("hello_world"); assertEquals("Must be 4", Value.INT_FOUR, value); } @Test public void testAddCfgFile() throws Exception { final File file1 = new File("what/that"); final File file2 = new File("what/those"); final PreprocessTask.CfgFile cfgFile1 = antTask.createCfgFile(); cfgFile1.setFile(file1); final PreprocessTask.CfgFile cfgFile2 = antTask.createCfgFile(); cfgFile2.setFile(file2); final File[] cfgFiles = antTask.generatePreprocessorContext().getConfigFiles(); assertEquals("Must be 2", 2, cfgFiles.length); assertEquals("Must be equals", file1.getCanonicalFile(), cfgFiles[0].getCanonicalFile()); assertEquals("Must be equals", file2.getCanonicalFile(), cfgFiles[1].getCanonicalFile()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/000077500000000000000000000000001263163240400267675ustar00rootroot00000000000000AbstractCommandLineHandlerTest.java000066400000000000000000000033001263163240400355570ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.JCPreprocessor; import static org.junit.Assert.*; import org.junit.Test; public abstract class AbstractCommandLineHandlerTest { @Test public abstract void testExecution() throws Exception; @Test public abstract void testName(); @Test public abstract void testDescription(); @Test public abstract void testThatTheHandlerInTheHandlerList(); protected void assertDescription(final CommandLineHandler handler) { assertNotNull("Reference must not be null", handler.getDescription()); assertFalse("Reference must not be empty one", handler.getDescription().isEmpty()); assertTrue("Reference length must be great than 10 chars", handler.getDescription().length() > 10); } protected void assertHandlerInTheHandlerList(final CommandLineHandler handler) { for (final CommandLineHandler h : JCPreprocessor.getCommandLineHandlers()) { if (handler.getClass() == h.getClass()) { return; } } fail("There is not the handler in the common command line handler list"); } } CareForLastNextLineCharHandlerTest.java000066400000000000000000000035401263163240400363250ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; import static org.mockito.Mockito.*; public class CareForLastNextLineCharHandlerTest extends AbstractCommandLineHandlerTest{ private static final CareForLastNextLineCharHandler HANDLER = new CareForLastNextLineCharHandler(); @Override public void testThatTheHandlerInTheHandlerList() { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution() throws Exception { final PreprocessorContext mock = mock(PreprocessorContext.class); assertFalse(HANDLER.processCommandLineKey("/n:", mock)); assertFalse(HANDLER.processCommandLineKey("/NN", mock)); assertFalse(HANDLER.processCommandLineKey("/N ", mock)); verify(mock, never()).setClearDestinationDirBefore(anyBoolean()); assertTrue(HANDLER.processCommandLineKey("/N", mock)); verify(mock).setCareForLastNextLine(true); reset(mock); assertTrue(HANDLER.processCommandLineKey("/n", mock)); verify(mock).setCareForLastNextLine(true); reset(mock); } @Override public void testName() { assertEquals("/N", HANDLER.getKeyName()); } @Override public void testDescription() { assertDescription(HANDLER); } } ClearDstDirectoryHandlerTest.java000077500000000000000000000035671263163240400353150ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; import static org.mockito.Mockito.*; public class ClearDstDirectoryHandlerTest extends AbstractCommandLineHandlerTest { private static final ClearDstDirectoryHandler HANDLER = new ClearDstDirectoryHandler(); @Override public void testThatTheHandlerInTheHandlerList() { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution() throws Exception { final PreprocessorContext mock = mock(PreprocessorContext.class); assertFalse(HANDLER.processCommandLineKey("/c:", mock)); assertFalse(HANDLER.processCommandLineKey("/CC", mock)); assertFalse(HANDLER.processCommandLineKey("/C ", mock)); verify(mock, never()).setClearDestinationDirBefore(anyBoolean()); assertTrue(HANDLER.processCommandLineKey("/C", mock)); verify(mock).setClearDestinationDirBefore(true); reset(mock); assertTrue(HANDLER.processCommandLineKey("/c", mock)); verify(mock).setClearDestinationDirBefore(true); reset(mock); } @Override public void testName() { assertEquals("/C", HANDLER.getKeyName()); } @Override public void testDescription() { assertDescription(HANDLER); } } CompareDestinationContentHandlerTest.java000066400000000000000000000040141263163240400370330ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2015 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; import static org.mockito.Matchers.anyBoolean; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; public class CompareDestinationContentHandlerTest extends AbstractCommandLineHandlerTest { private static final CompareDestinationContentHandler HANDLER = new CompareDestinationContentHandler(); @Override public void testThatTheHandlerInTheHandlerList () { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution () throws Exception { final PreprocessorContext mock = mock(PreprocessorContext.class); assertFalse(HANDLER.processCommandLineKey("/z:", mock)); assertFalse(HANDLER.processCommandLineKey("/ZZ", mock)); assertFalse(HANDLER.processCommandLineKey("/Z ", mock)); verify(mock, never()).setCompareDestination(anyBoolean()); assertTrue(HANDLER.processCommandLineKey("/Z", mock)); verify(mock).setCompareDestination(true); reset(mock); assertTrue(HANDLER.processCommandLineKey("/z", mock)); verify(mock).setCompareDestination(true); reset(mock); } @Override public void testName () { assertEquals("/Z", HANDLER.getKeyName()); } @Override public void testDescription () { assertDescription(HANDLER); } } DestinationDirectoryHandlerTest.java000066400000000000000000000032501263163240400360570ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.mockito.Mockito.*; import static org.junit.Assert.*; public class DestinationDirectoryHandlerTest extends AbstractCommandLineHandlerTest { private static final DestinationDirectoryHandler HANDLER = new DestinationDirectoryHandler(); @Override public void testThatTheHandlerInTheHandlerList() { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution() throws Exception { final PreprocessorContext mock = mock(PreprocessorContext.class); assertFalse(HANDLER.processCommandLineKey(null, mock)); assertFalse(HANDLER.processCommandLineKey("/s:", mock)); assertFalse(HANDLER.processCommandLineKey("/O:", mock)); assertTrue(HANDLER.processCommandLineKey("/O:test", mock)); verify(mock).setDestinationDirectory("test"); } @Override public void testName() { assertEquals("/O:", HANDLER.getKeyName()); } @Override public void testDescription() { assertDescription(HANDLER); } } ExcludedFileExtensionsHandlerTest.java000066400000000000000000000035761263163240400363410ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; import static org.mockito.Mockito.*; public class ExcludedFileExtensionsHandlerTest extends AbstractCommandLineHandlerTest { private static final ExcludedFileExtensionsHandler HANDLER = new ExcludedFileExtensionsHandler(); @Override public void testThatTheHandlerInTheHandlerList() { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution() throws Exception { final PreprocessorContext mock = mock(PreprocessorContext.class); assertFalse(HANDLER.processCommandLineKey(null, mock)); assertFalse(HANDLER.processCommandLineKey("", mock)); assertFalse(HANDLER.processCommandLineKey("/ef:", mock)); assertFalse(HANDLER.processCommandLineKey("/ef", mock)); assertFalse(HANDLER.processCommandLineKey("/EF:", mock)); verify(mock, never()).setExcludedFileExtensions(anyString()); assertTrue(HANDLER.processCommandLineKey("/ef:rrr,Ggg,bBb", mock)); verify(mock).setExcludedFileExtensions("rrr,Ggg,bBb"); } @Override public void testName() { assertEquals("/EF:", HANDLER.getKeyName()); } @Override public void testDescription() { assertDescription(HANDLER); } } FileExtensionsHandlerTest.java000066400000000000000000000035431263163240400346550ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; import static org.mockito.Mockito.*; public class FileExtensionsHandlerTest extends AbstractCommandLineHandlerTest { private static final FileExtensionsHandler HANDLER = new FileExtensionsHandler(); @Override public void testThatTheHandlerInTheHandlerList() { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution() throws Exception { final PreprocessorContext mock = mock(PreprocessorContext.class); assertFalse(HANDLER.processCommandLineKey(null, mock)); assertFalse(HANDLER.processCommandLineKey("", mock)); assertFalse(HANDLER.processCommandLineKey("/f:", mock)); assertFalse(HANDLER.processCommandLineKey("/f", mock)); assertFalse(HANDLER.processCommandLineKey("/F:", mock)); verify(mock, never()).setExcludedFileExtensions(anyString()); assertTrue(HANDLER.processCommandLineKey("/f:rrr,Ggg,bBb", mock)); verify(mock).setProcessingFileExtensions("rrr,Ggg,bBb"); } @Override public void testName() { assertEquals("/F:", HANDLER.getKeyName()); } @Override public void testDescription() { assertDescription(HANDLER); } } GlobalVariableDefiningFileHandlerTest.java000077500000000000000000000070211263163240400370260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.io.File; import static org.junit.Assert.*; import org.junit.Test; public class GlobalVariableDefiningFileHandlerTest extends AbstractCommandLineHandlerTest { private static final GlobalVariableDefiningFileHandler HANDLER = new GlobalVariableDefiningFileHandler(); @Override public void testThatTheHandlerInTheHandlerList() { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution() throws Exception { final PreprocessorContext context = new PreprocessorContext(); final File testFile = new File(this.getClass().getResource("./global_variable_def.txt").toURI()); final String param = "@" + PreprocessorUtils.getFilePath(testFile); HANDLER.processCommandLineKey(param, context); final File[] configFiles = context.getConfigFiles(); assertEquals("File must be added", 1, configFiles.length); assertEquals("File must be equals", testFile, configFiles[0]); } @Test public void testExecution_Expression() throws Exception { final PreprocessorContext context = new PreprocessorContext(); final File testFile = new File(this.getClass().getResource("./global_variable_def.txt").toURI()); final String path = testFile.getParent().replace('\'', '/').replace("\"", "\\\""); final String param = "@@\"" + path.replace("\\", "\\\\") + "\"+\"/\"+\"" + "global_variable_def.txt" + "\""; HANDLER.processCommandLineKey(param, context); final File[] globalVarFiles = context.getConfigFiles(); assertEquals("File must be added", 1, globalVarFiles.length); assertEquals("File must be equals", testFile, globalVarFiles[0]); } @Test(expected = PreprocessorException.class) public void testExecution_nonExistingFileWithExpression() { final PreprocessorContext context = new PreprocessorContext(); HANDLER.processCommandLineKey("@@\"undefinded_file.111111.txtt\"", context); } @Test(expected = PreprocessorException.class) public void testExecution_nonExistingFile() { final PreprocessorContext context = new PreprocessorContext(); HANDLER.processCommandLineKey("@undefinded_file.111111.txtt", context); } @Test(expected = PreprocessorException.class) public void testExecution_emptyFile() { final PreprocessorContext context = new PreprocessorContext(); HANDLER.processCommandLineKey("@", context); } @Test(expected = PreprocessorException.class) public void testExecution_emptyFileForExpressionMode() { final PreprocessorContext context = new PreprocessorContext(); HANDLER.processCommandLineKey("@@", context); } @Override public void testName() { assertEquals("@", HANDLER.getKeyName()); } @Override public void testDescription() { assertDescription(HANDLER); } } GlobalVariableHandlerTest.java000066400000000000000000000035141263163240400345620ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import static org.junit.Assert.*; import static org.mockito.Mockito.*; public class GlobalVariableHandlerTest extends AbstractCommandLineHandlerTest { private static final GlobalVariableHandler HANDLER = new GlobalVariableHandler(); @Override public void testThatTheHandlerInTheHandlerList() { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution() throws Exception { final PreprocessorContext mock = mock(PreprocessorContext.class); assertFalse(HANDLER.processCommandLineKey(null, mock)); assertFalse(HANDLER.processCommandLineKey("", mock)); assertFalse(HANDLER.processCommandLineKey("/p", mock)); assertFalse(HANDLER.processCommandLineKey("/pp:", mock)); assertFalse(HANDLER.processCommandLineKey("/P:", mock)); assertTrue(HANDLER.processCommandLineKey("/P:hello=0", mock)); verify(mock).setGlobalVariable("hello", Value.INT_ZERO); } @Override public void testName() { assertEquals("/P:", HANDLER.getKeyName()); } @Override public void testDescription() { assertDescription(HANDLER); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/HelpHandlerTest.java000077500000000000000000000036161263163240400326710ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import org.mockito.Mockito; import static org.junit.Assert.*; public class HelpHandlerTest extends AbstractCommandLineHandlerTest { private static final HelpHandler HANDLER = new HelpHandler(); @Override public void testThatTheHandlerInTheHandlerList() { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution() throws Exception { final PreprocessorContext context = Mockito.mock(PreprocessorContext.class); assertFalse(HANDLER.processCommandLineKey(null, context)); assertFalse(HANDLER.processCommandLineKey("", context)); assertFalse(HANDLER.processCommandLineKey("/HH", context)); assertFalse(HANDLER.processCommandLineKey("/??", context)); assertFalse(HANDLER.processCommandLineKey("-??", context)); assertTrue(HANDLER.processCommandLineKey("/?", context)); assertTrue(HANDLER.processCommandLineKey("/h", context)); assertTrue(HANDLER.processCommandLineKey("-H", context)); assertTrue(HANDLER.processCommandLineKey("-?", context)); } @Override public void testName() { assertEquals("/H,/?,-H,-?", HANDLER.getKeyName()); } @Override public void testDescription() { assertDescription(HANDLER); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/InCharsetHandlerTest.java000077500000000000000000000035511263163240400336570ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import org.mockito.Mockito; import static org.junit.Assert.*; public class InCharsetHandlerTest extends AbstractCommandLineHandlerTest { private static final InCharsetHandler HANDLER = new InCharsetHandler(); @Override public void testThatTheHandlerInTheHandlerList() { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution() throws Exception { final PreprocessorContext mock = Mockito.mock(PreprocessorContext.class); assertFalse(HANDLER.processCommandLineKey(null, mock)); assertFalse(HANDLER.processCommandLineKey("/o:UUU", mock)); assertFalse(HANDLER.processCommandLineKey("/T:", mock)); assertFalse(HANDLER.processCommandLineKey("/t", mock)); assertTrue(HANDLER.processCommandLineKey("/t:HELLOWORLD", mock)); Mockito.verify(mock).setInCharacterEncoding("HELLOWORLD"); Mockito.reset(mock); assertTrue(HANDLER.processCommandLineKey("/T:NEW", mock)); Mockito.verify(mock).setInCharacterEncoding("NEW"); } @Override public void testName() { assertEquals("/T:", HANDLER.getKeyName()); } @Override public void testDescription() { assertDescription(HANDLER); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/KeepLineHandlerTest.java000077500000000000000000000035461263163240400334770ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; import static org.mockito.Mockito.*; public class KeepLineHandlerTest extends AbstractCommandLineHandlerTest { private static final KeepLineHandler HANDLER = new KeepLineHandler(); @Override public void testThatTheHandlerInTheHandlerList() { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution() throws Exception { final PreprocessorContext mock = mock(PreprocessorContext.class); assertFalse(HANDLER.processCommandLineKey("/k:", mock)); assertFalse(HANDLER.processCommandLineKey("/KK", mock)); assertFalse(HANDLER.processCommandLineKey("/K ", mock)); verify(mock, never()).setKeepLines(anyBoolean()); assertTrue(HANDLER.processCommandLineKey("/K", mock)); verify(mock).setKeepLines(true); reset(mock); assertTrue(HANDLER.processCommandLineKey("/k", mock)); verify(mock).setKeepLines(true); reset(mock); } @Override public void testName() { assertEquals("/K", HANDLER.getKeyName()); } @Override public void testDescription() { assertDescription(HANDLER); } } OutCharsetHandlerTest.java000066400000000000000000000035631263163240400340010ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import org.mockito.Mockito; import static org.junit.Assert.*; public class OutCharsetHandlerTest extends AbstractCommandLineHandlerTest { private static final OutCharsetHandler HANDLER = new OutCharsetHandler(); @Override public void testThatTheHandlerInTheHandlerList() { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution() throws Exception { final PreprocessorContext mock = Mockito.mock(PreprocessorContext.class); assertFalse(HANDLER.processCommandLineKey(null, mock)); assertFalse(HANDLER.processCommandLineKey("/o:UUU", mock)); assertFalse(HANDLER.processCommandLineKey("/TT:", mock)); assertFalse(HANDLER.processCommandLineKey("/tT", mock)); assertTrue(HANDLER.processCommandLineKey("/tt:HELLOWORLD", mock)); Mockito.verify(mock).setOutCharacterEncoding("HELLOWORLD"); Mockito.reset(mock); assertTrue(HANDLER.processCommandLineKey("/TT:NEW", mock)); Mockito.verify(mock).setOutCharacterEncoding("NEW"); } @Override public void testName() { assertEquals("/TT:", HANDLER.getKeyName()); } @Override public void testDescription() { assertDescription(HANDLER); } } RemoveCommentsHandlerTest.java000066400000000000000000000034001263163240400346510ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; import static org.mockito.Mockito.*; public class RemoveCommentsHandlerTest extends AbstractCommandLineHandlerTest { private static final RemoveCommentsHandler HANDLER = new RemoveCommentsHandler(); @Override public void testThatTheHandlerInTheHandlerList() { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution() throws Exception { final PreprocessorContext mock = mock(PreprocessorContext.class); assertFalse(HANDLER.processCommandLineKey(null, mock)); assertFalse(HANDLER.processCommandLineKey("", mock)); assertFalse(HANDLER.processCommandLineKey("/r:", mock)); assertFalse(HANDLER.processCommandLineKey("/R:", mock)); assertFalse(HANDLER.processCommandLineKey("/RR", mock)); assertTrue(HANDLER.processCommandLineKey("/r", mock)); verify(mock).setRemoveComments(true); } @Override public void testName() { assertEquals("/R", HANDLER.getKeyName()); } @Override public void testDescription() { assertDescription(HANDLER); } } SourceDirectoryHandlerTest.java000066400000000000000000000034251263163240400350420ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; import static org.mockito.Mockito.*; public class SourceDirectoryHandlerTest extends AbstractCommandLineHandlerTest { private static final SourceDirectoryHandler HANDLER = new SourceDirectoryHandler(); @Override public void testThatTheHandlerInTheHandlerList() { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution() throws Exception { final PreprocessorContext mock = mock(PreprocessorContext.class); assertFalse(HANDLER.processCommandLineKey(null, mock)); assertFalse(HANDLER.processCommandLineKey("", mock)); assertFalse(HANDLER.processCommandLineKey("/i:", mock)); assertFalse(HANDLER.processCommandLineKey("/I:", mock)); assertFalse(HANDLER.processCommandLineKey("/II", mock)); assertTrue(HANDLER.processCommandLineKey("/i:testdir", mock)); verify(mock).setSourceDirectories("testdir"); } @Override public void testName() { assertEquals("/I:", HANDLER.getKeyName()); } @Override public void testDescription() { assertDescription(HANDLER); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/cmdline/VerboseHandlerTest.java000066400000000000000000000032501263163240400333750ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.cmdline; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; import static org.mockito.Mockito.*; public class VerboseHandlerTest extends AbstractCommandLineHandlerTest { private static final VerboseHandler HANDLER = new VerboseHandler(); @Override public void testThatTheHandlerInTheHandlerList() { assertHandlerInTheHandlerList(HANDLER); } @Override public void testExecution() throws Exception { final PreprocessorContext mock = mock(PreprocessorContext.class); assertFalse(HANDLER.processCommandLineKey(null, mock)); assertFalse(HANDLER.processCommandLineKey("", mock)); assertFalse(HANDLER.processCommandLineKey("/v:", mock)); assertFalse(HANDLER.processCommandLineKey("/VV", mock)); assertTrue(HANDLER.processCommandLineKey("/v", mock)); verify(mock).setVerbose(true); } @Override public void testName() { assertEquals("/V", HANDLER.getKeyName()); } @Override public void testDescription() { assertDescription(HANDLER); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/context/000077500000000000000000000000001263163240400270405ustar00rootroot00000000000000EnvironmentVariableProcessorTest.java000066400000000000000000000033471263163240400363450ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/context/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.context; import com.igormaznitsa.jcp.expression.Value; import org.junit.Test; import static org.junit.Assert.*; public class EnvironmentVariableProcessorTest { @Test public void testReadVariable() { final String javaVersion = System.getProperty("java.version"); final String osName = System.getProperty("os.name"); assertNotNull("Must not be null", javaVersion); assertNotNull("Must not be null", osName); final EnvironmentVariableProcessor test = new EnvironmentVariableProcessor(); assertEquals("Must be equals", javaVersion, test.getVariable("env.java.version", null).asString()); assertEquals("Must be equals", osName, test.getVariable("env.os.name", null).asString()); } @Test(expected = IllegalArgumentException.class) public void testReadUnknownVariable() { new EnvironmentVariableProcessor().getVariable("kjhaksjdhksajqwoiueoqiwue", null); } @Test(expected = UnsupportedOperationException.class) public void testWriteVariable() { new EnvironmentVariableProcessor().setVariable("kjhaksjdhksajqwoiueoqiwue", Value.BOOLEAN_FALSE, null); } } JCPSpecialVariableProcessorTest.java000077500000000000000000000035351263163240400357600ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/context/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.context; import com.igormaznitsa.jcp.InfoHelper; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import org.junit.Test; import static org.junit.Assert.*; public class JCPSpecialVariableProcessorTest { @Test public void testReadVariable() { assertEquals("Must be equals", InfoHelper.getVersion(), new JCPSpecialVariableProcessor().getVariable("jcp.version", null).asString()); assertNotNull(new JCPSpecialVariableProcessor().getVariable("__line__", null).toString()); assertNotNull(new JCPSpecialVariableProcessor().getVariable("__date__", null).asString()); assertNotNull(new JCPSpecialVariableProcessor().getVariable("__time__", null).asString()); assertNotNull(new JCPSpecialVariableProcessor().getVariable("__timestamp__", null).asString()); } @Test(expected = PreprocessorException.class) public void testReadUnknownVariable() { new JCPSpecialVariableProcessor().getVariable("jcp.version2", new PreprocessorContext()); } @Test(expected = PreprocessorException.class) public void testWriteDisallowed() { new JCPSpecialVariableProcessor().setVariable("jcp.version", Value.INT_ONE, new PreprocessorContext()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/000077500000000000000000000000001263163240400275155ustar00rootroot00000000000000AbortDirectiveHandlerTest.java000066400000000000000000000034131263163240400353460ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.junit.Test; import static org.junit.Assert.*; public class AbortDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final AbortDirectiveHandler HANDLER = new AbortDirectiveHandler(); @Test public void testExecution_wrongExpression() { assertPreprocessorException("\n\n //#abort /*$akljldksajdsad$*/", 3, null); } @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_abort.txt", false, null, null); } @Override public void testKeyword() throws Exception { assertEquals("abort", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.TAIL, HANDLER.getArgumentType()); } } AbstractDirectiveHandlerAcceptanceTest.java000077500000000000000000000304711263163240400400200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.junit.BeforeClass; import com.igormaznitsa.jcp.context.PreprocessingState.ExcludeIfInfo; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.context.PreprocessingState; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.extension.PreprocessorExtension; import com.igormaznitsa.jcp.containers.FileInfoContainer; import com.igormaznitsa.jcp.containers.TextFileDataContainer; import com.igormaznitsa.jcp.logger.PreprocessorLogger; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.StringReader; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.apache.commons.io.IOUtils; import org.junit.Test; import static org.junit.Assert.*; public abstract class AbstractDirectiveHandlerAcceptanceTest { protected static File THIS_CLASS_FILE; @BeforeClass public static void beforeClass() throws Exception { THIS_CLASS_FILE = new File(AbstractDirectiveHandler.class.getResource(AbstractDirectiveHandlerAcceptanceTest.class.getSimpleName() + ".class").toURI()); } @Test public abstract void testExecution() throws Exception; @Test public abstract void testKeyword() throws Exception; @Test public abstract void testExecutionCondition() throws Exception; @Test public abstract void testReference() throws Exception; @Test public abstract void testArgumentType() throws Exception; @Test public abstract void testPhase() throws Exception; protected void assertReference(final AbstractDirectiveHandler handler) { assertNotNull("Handler must not be null", handler); final String reference = handler.getReference(); assertNotNull("Reference must not be null", reference); assertNotNull("Reference must not empty", reference.isEmpty()); assertFalse("Reference must not be too short", reference.length() < 10); } private PreprocessorContext setGlobalVars(final PreprocessorContext context, final VariablePair... vars) { if (vars.length != 0) { for (final VariablePair p : vars) { context.setGlobalVariable(p.getName(), p.getValue()); } } return context; } public void assertPreprocessorException(final String preprocessingText, final int exceptionStringIndex, final PreprocessorExtension extension, final VariablePair... globalVars) { try { final PreprocessorContext context = preprocessString(preprocessingText, null, extension, globalVars); fail("Must throw PreprocessorException"); } catch (PreprocessorException expected) { assertEquals("Expected " + PreprocessorException.class.getCanonicalName(), exceptionStringIndex, expected.getStringIndex()); } catch (Exception unExpected) { unExpected.printStackTrace(); fail("Unexpected exception " + unExpected.getClass().getCanonicalName()); } } public void assertGlobalPhaseException(final String preprocessingText, final int exceptionStringIndex, final PreprocessorExtension extension) { try { preprocessStringAtGlobalPhase(preprocessingText, null); fail("Must throw PreprocessorException"); } catch (PreprocessorException expected) { assertEquals("Expected " + PreprocessorException.class.getCanonicalName(), exceptionStringIndex, expected.getStringIndex()); } catch (Exception unExpected) { unExpected.printStackTrace(); fail("Unexpected exception " + unExpected.getClass().getCanonicalName()); } } private PreprocessorContext preprocessStringAtGlobalPhase(final String encoding, final List excludeInfoList) throws IOException { final List parsedText = parseStringForLines(encoding); final PreprocessorContext context = new PreprocessorContext(); context.setFileOutputDisabled(true); final FileInfoContainer reference = new FileInfoContainer(THIS_CLASS_FILE, "fake_name", false); final TextFileDataContainer textContainer = new TextFileDataContainer(reference.getSourceFile(), parsedText.toArray(new String[parsedText.size()]),false,0); final PreprocessingState state = context.produceNewPreprocessingState(reference, textContainer); final List result = reference.processGlobalDirectives(state, context); if (excludeInfoList != null) { excludeInfoList.addAll(result); } return context; } public PreprocessorContext executeGlobalPhase(final String fileName, final List excludeIf) throws Exception { final File file = new File(getClass().getResource(fileName).toURI()); final PreprocessorContext context = new PreprocessorContext(); context.setFileOutputDisabled(true); final FileInfoContainer reference = new FileInfoContainer(file, file.getName(), false); final List result = reference.processGlobalDirectives(null, context); if (excludeIf != null) { excludeIf.addAll(result); } return context; } private void readWholeDataFromReader(final BufferedReader reader, final List accumulator) throws IOException { while (true) { final String line = reader.readLine(); if (line == null) { break; } accumulator.add(line); } } private void assertEqualsStringLists(final List etalon, final List result) { final String[] etalonStrings = etalon.toArray(new String[etalon.size()]); final String[] resultStrings = result.toArray(new String[result.size()]); final int len = Math.max(etalonStrings.length, resultStrings.length); for (int i = 0; i < len; i++) { final String etalonStr = i < etalonStrings.length ? etalonStrings[i] : null; final String resultStr = i < resultStrings.length ? resultStrings[i] : null; if ((etalonStr != null && !etalonStr.equals(resultStr)) || (resultStr != null && !resultStr.equals(etalonStr))) { throw new LinesNotMatchException(etalonStrings.length, resultStrings.length, i, etalonStr, resultStr); } } } private PreprocessorContext insidePreprocessingAndMatching(final File srcfile, final List preprocessingText, final List result, final List etalonList, final PreprocessorExtension extension, final PreprocessorLogger logger, final boolean keepLines, final VariablePair... globalVariables) throws Exception { PreprocessorUtils.assertNotNull("Preprocessing text is null", preprocessingText); PreprocessorUtils.assertNotNull("Result container is null", result); final PreprocessorContext context = new PreprocessorContext(); if (logger != null) { context.setPreprocessorLogger(logger); } context.setFileOutputDisabled(true); context.setSourceDirectories(srcfile.getParent()); context.setKeepLines(keepLines); context.setPreprocessorExtension(extension); setGlobalVars(context, globalVariables); final FileInfoContainer reference = new FileInfoContainer(srcfile, srcfile.getName(), false); final PreprocessingState state = context.produceNewPreprocessingState(reference, new TextFileDataContainer(reference.getSourceFile(), preprocessingText.toArray(new String[preprocessingText.size()]),false, 0)); reference.preprocessFile(state, context); final ByteArrayOutputStream prefix = new ByteArrayOutputStream(); final ByteArrayOutputStream normal = new ByteArrayOutputStream(); final ByteArrayOutputStream postfix = new ByteArrayOutputStream(); state.saveBuffersToStreams(prefix, normal, postfix); final BufferedReader prefixreader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(prefix.toByteArray()), "UTF8")); final BufferedReader normalreader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(normal.toByteArray()), "UTF8")); final BufferedReader postfixreader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(postfix.toByteArray()), "UTF8")); readWholeDataFromReader(prefixreader, result); readWholeDataFromReader(normalreader, result); readWholeDataFromReader(postfixreader, result); try { if (etalonList != null) { assertEqualsStringLists(etalonList, result); } } catch (Exception unexpected) { if (etalonList != null) { int index = 1; for (final String str : etalonList) { System.out.print(index++); System.out.print('\t'); println(str, true); } System.out.println("---------------------"); index = 1; for (final String str : result) { System.out.print(index++); System.out.print('\t'); println(str, true); } } throw unexpected; } return context; } private void println(final String str, final boolean showWhitespaces) { for (final char chr : str.toCharArray()) { if (Character.isWhitespace(chr)) { System.out.print(showWhitespaces ? '.' : chr); } else { System.out.print(chr); } } System.out.println(); } private List parseStringForLines(final String text) throws IOException { if (text == null || text.isEmpty()) { return Collections.emptyList(); } final BufferedReader reader = new BufferedReader(new StringReader(text), text.length() * 2); final List preprocessingPart = new ArrayList(100); try { while (true) { final String line = reader.readLine(); if (line == null) { break; } preprocessingPart.add(line); } } finally { IOUtils.closeQuietly(reader); } return preprocessingPart; } private PreprocessorContext preprocessString(final String text, final List preprocessedText, final PreprocessorExtension ext, final VariablePair... globalVars) throws Exception { final List preprocessingPart = parseStringForLines(text); return insidePreprocessingAndMatching(THIS_CLASS_FILE, preprocessingPart, preprocessedText == null ? new ArrayList() : preprocessedText, null, ext, null, false, globalVars); } public PreprocessorContext assertFilePreprocessing(final String testFileName, boolean keepLines, final PreprocessorExtension ext, final PreprocessorLogger logger, final VariablePair... globalVars) throws Exception { final File file = new File(getClass().getResource(testFileName).toURI()); if (!file.exists() || !file.isFile()) { throw new FileNotFoundException("Can't find the test file " + testFileName); } final InputStream stream = new FileInputStream(file); final BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "UTF8"), 1024); final List preprocessingPart = new ArrayList(100); final List etalonPart = new ArrayList(100); boolean readFirestPart = true; try { while (true) { final String line = reader.readLine(); if (line == null) { break; } if (line.startsWith("---START_ETALON---")) { if (readFirestPart) { readFirestPart = false; continue; } else { throw new IllegalStateException("Check etalon prefix for duplication"); } } if (readFirestPart) { preprocessingPart.add(line); } else { etalonPart.add(line); } } } finally { IOUtils.closeQuietly(reader); } return insidePreprocessingAndMatching(file, preprocessingPart, new ArrayList(), etalonPart, ext, logger, keepLines, globalVars); } } AbstractDirectiveHandlerTest.java000066400000000000000000000023471263163240400360470ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import java.util.ArrayList; import java.util.List; import org.junit.Test; import static org.junit.Assert.*; public class AbstractDirectiveHandlerTest { @Test public void testPotentialConflictsBetweenDirectives() { final List processed = new ArrayList(); for(final AbstractDirectiveHandler h : AbstractDirectiveHandler.DIRECTIVES){ final String name = h.getName(); for(final String p : processed){ assertFalse(h.getFullName()+" conflicts with "+(AbstractDirectiveHandler.DIRECTIVE_PREFIX+p) ,name.startsWith(p)); } processed.add(name); } } } ActionDirectiveHandlerTest.java000066400000000000000000000057221263163240400355210ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.mockito.Mockito; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.extension.PreprocessorExtension; import org.junit.Test; import static org.junit.Assert.*; import static org.mockito.Mockito.*; public class ActionDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final ActionDirectiveHandler HANDLER = new ActionDirectiveHandler(); @Test @Override public void testExecution() throws Exception { final PreprocessorExtension mockup = mock(PreprocessorExtension.class); when(mockup.processAction(any(PreprocessorContext.class), any(Value[].class))).thenReturn(Boolean.TRUE); assertFilePreprocessing("directive_action.txt", false, mockup, null); final Value val1 = Value.valueOf(1L); final Value val2 = Value.valueOf(2L); final Value val3 = Value.valueOf(7L); final Value val4 = Value.valueOf(11L); final Value val5 = Value.valueOf(Boolean.TRUE); final Value val6 = Value.valueOf("hello,"); verify(mockup).processAction(any(PreprocessorContext.class), eq(new Value[]{val1, val2, val3, val4, val5, val6})); } @Test public void testExecutionWrongExpression() { final PreprocessorExtension mock = Mockito.mock(PreprocessorExtension.class); assertPreprocessorException("\n//#action", 2, mock); assertPreprocessorException("\n//#action illegal_variable", 2, mock); assertPreprocessorException("\n//#actionno_space", 2, mock); assertPreprocessorException("\n//#action 1,2,3,4,,5", 2, mock); assertPreprocessorException("\n//#action 1,2,3,4,", 2, mock); } @Test @Override public void testKeyword() throws Exception { assertEquals("action", HANDLER.getName()); } @Test @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Test @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.MULTIEXPRESSION, HANDLER.getArgumentType()); } @Test @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } } CommentNextLineDirectiveHandlerTest.java000066400000000000000000000032521263163240400373510ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import static org.junit.Assert.*; public class CommentNextLineDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final CommentNextLineDirectiveHandler HANDLER = new CommentNextLineDirectiveHandler(); @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_comment_next_line.txt", false, null, null); } @Override public void testKeyword() throws Exception { assertEquals("//", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.NONE, HANDLER.getArgumentType()); } } DefineDirectiveHandlerTest.java000077500000000000000000000037131263163240400354770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.junit.Test; import static org.junit.Assert.*; public class DefineDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final DefineDirectiveHandler HANDLER = new DefineDirectiveHandler(); @Override public void testExecution() throws Exception { assertTrue(assertFilePreprocessing("directive_define.txt", false, null, null).isGlobalVariable("somevar")); } @Test public void testExecution_wrongCases() { assertPreprocessorException("\n\n//#define \n", 3, null); assertPreprocessorException("\n\n//#define 1223\n", 3, null); assertPreprocessorException("\n\n//#define \"test\"\n", 3, null); } @Override public void testKeyword() throws Exception { assertEquals("define", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.TAIL, HANDLER.getArgumentType()); } } DefinelDirectiveHandlerTest.java000066400000000000000000000041611263163240400356460ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.junit.Test; import static org.junit.Assert.*; public class DefinelDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final DefinelDirectiveHandler HANDLER = new DefinelDirectiveHandler(); @Override public void testExecution() throws Exception { assertTrue(assertFilePreprocessing("directive_definel.txt", false, null, null).isLocalVariable("somevar")); } @Test public void testExecution_wrongCases() { assertPreprocessorException("\n\n//#definel \n", 3, null); assertPreprocessorException("\n\n//#definel 1223\n", 3, null); assertPreprocessorException("\n\n//#definel \"test\"\n", 3, null); assertPreprocessorException("\n\n//#definel var 3*8 \\\\ test \n", 3, null); assertPreprocessorException("\n\n//#definel var 3*8 /* hhhh */ \n", 3, null); } @Override public void testKeyword() throws Exception { assertEquals("definel", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.TAIL, HANDLER.getArgumentType()); } } EchoDirectiveHandlerTest.java000077500000000000000000000035131263163240400351610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.logger.PreprocessorLogger; import org.mockito.Mockito; import static org.junit.Assert.*; public class EchoDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final EchoDirectiveHandler HANDLER = new EchoDirectiveHandler(); @Override public void testExecution() throws Exception { final PreprocessorLogger mock = Mockito.mock(PreprocessorLogger.class); assertFilePreprocessing("directive_echo.txt", false, null, mock); Mockito.verify(mock).info("string 2 ok"); } @Override public void testKeyword() throws Exception { assertEquals("echo", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.TAIL, HANDLER.getArgumentType()); } @Override public void testPhase() throws Exception { assertTrue(HANDLER.isPreprocessingPhaseAllowed()); assertFalse(HANDLER.isGlobalPhaseAllowed()); } } ErrorDirectiveHandlerTest.java000066400000000000000000000046401263163240400353730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.logger.PreprocessorLogger; import org.mockito.Mockito; import static org.junit.Assert.*; import org.junit.Test; public class ErrorDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final ErrorDirectiveHandler HANDLER = new ErrorDirectiveHandler(); @Override public void testExecution() throws Exception { final PreprocessorLogger mock = Mockito.mock(PreprocessorLogger.class); try { assertFilePreprocessing("directive_error.txt", false, null, mock); } catch (Exception ex) { Mockito.verify(mock).error("string2"); final PreprocessorException pp = PreprocessorException.extractPreprocessorException(ex); assertEquals(2, pp.getIncludeChain()[0].getStringIndex()); } } @Test public void testExecution_wrongCases() { assertPreprocessorException("\n\n//#error 324444444444987987987982374987294873294324324\n", 3, null); assertPreprocessorException("\n\n//#error sjdasd\n", 3, null); assertPreprocessorException("\n\n//#error \n", 3, null); } @Override public void testKeyword() throws Exception { assertEquals("error", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.EXPRESSTION, HANDLER.getArgumentType()); } @Override public void testPhase() throws Exception { assertTrue(HANDLER.isPreprocessingPhaseAllowed()); assertFalse(HANDLER.isGlobalPhaseAllowed()); } } ExcludeIfDirectiveHandlerTest.java000066400000000000000000000044041263163240400361500ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import java.util.List; import com.igormaznitsa.jcp.context.PreprocessingState.ExcludeIfInfo; import java.util.ArrayList; import static org.junit.Assert.*; public class ExcludeIfDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final ExcludeIfDirectiveHandler HANDLER = new ExcludeIfDirectiveHandler(); @Override public void testExecution() throws Exception { final List list = new ArrayList(); executeGlobalPhase("directive_excludeif.txt", list); assertEquals("Must be two //#excludeif ", list.size(), 2); final ExcludeIfInfo info1 = list.get(1); final ExcludeIfInfo info2 = list.get(0); assertEquals("true", info1.getCondition()); assertEquals(2, info1.getStringIndex()); assertNotNull(info1.getFileInfoContainer()); assertEquals("hello+world", info2.getCondition()); assertEquals(6, info2.getStringIndex()); assertNotNull(info2.getFileInfoContainer()); } @Override public void testKeyword() throws Exception { assertEquals("excludeif", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertTrue(HANDLER.isGlobalPhaseAllowed()); assertFalse(HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.BOOLEAN, HANDLER.getArgumentType()); } } ExitDirectiveHandlerTest.java000066400000000000000000000031761263163240400352160ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import static org.junit.Assert.*; public class ExitDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final ExitDirectiveHandler HANDLER = new ExitDirectiveHandler(); @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_exit.txt", false, null, null); } @Override public void testKeyword() throws Exception { assertEquals("exit", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.NONE, HANDLER.getArgumentType()); } } ExitIfDirectiveHandlerTest.java000066400000000000000000000037351263163240400354760ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.junit.Test; import static org.junit.Assert.*; public class ExitIfDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final ExitIfDirectiveHandler HANDLER = new ExitIfDirectiveHandler(); @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_exitif.txt", false, null, null); } @Test public void testExecution_wrongExpression() { assertPreprocessorException("\n\n //#exitif \"test\"", 3, null); assertPreprocessorException("\n\n //#exitif ", 3, null); assertPreprocessorException("\n\n //#exitif 111", 3, null); assertPreprocessorException("\n\n //#exitif", 3, null); } @Override public void testKeyword() throws Exception { assertEquals("exitif", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.BOOLEAN, HANDLER.getArgumentType()); } } FlushDirectiveHandlerTest.java000077500000000000000000000031341263163240400353630ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import static org.junit.Assert.*; public class FlushDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final FlushDirectiveHandler HANDLER = new FlushDirectiveHandler(); @Override public void testExecution() throws Exception { //TODO make execution test } @Override public void testKeyword() throws Exception { assertEquals("flush", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.NONE, HANDLER.getArgumentType()); } @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } } GlobalDirectiveHandlerTest.java000066400000000000000000000053351263163240400355040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.junit.Test; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; public class GlobalDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final GlobalDirectiveHandler HANDLER = new GlobalDirectiveHandler(); @Override public void testExecution() throws Exception { final PreprocessorContext context = executeGlobalPhase("directive_global.txt", null); assertTrue(context.containsGlobalVariable("xxx")); final Value var = context.findVariableForName("xxx"); assertEquals(Long.valueOf(10), var.asLong()); } @Test public void testExecution_PreprocessingPhase() throws Exception { final PreprocessorContext context = assertFilePreprocessing("directive_global.txt", false, null, null); assertFalse(context.containsGlobalVariable("xxx")); assertNull(context.findVariableForName("xxx")); } @Test public void testExecution_WrongCases() throws Exception { assertGlobalPhaseException("\n\n//#global 23123", 3, null); assertGlobalPhaseException("\n\n//#global", 3, null); assertGlobalPhaseException("\n\n//#global ", 3, null); assertGlobalPhaseException("\n\n//#global hh=", 3, null); assertGlobalPhaseException("\n\n//#global xx==10", 3, null); assertGlobalPhaseException("\n\n//#global =10", 3, null); assertGlobalPhaseException("\n\n//#global ====", 3, null); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testKeyword() throws Exception { assertEquals("global", HANDLER.getName()); } @Override public void testPhase() throws Exception { assertTrue(HANDLER.isGlobalPhaseAllowed()); assertFalse(HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.SET, HANDLER.getArgumentType()); } } GlobalIfElseEndifTest.java000066400000000000000000000076551263163240400344140ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.junit.Test; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; public class GlobalIfElseEndifTest extends AbstractDirectiveHandlerAcceptanceTest { private static final GlobalIfDirectiveHandler HANDLER_GLOBAL_IF = new GlobalIfDirectiveHandler(); private static final GlobalElseDirectiveHandler HANDLER_GLOBAL_ELSE = new GlobalElseDirectiveHandler(); private static final GlobalEndIfDirectiveHandler HANDLER_GLOBAL_ENDIF = new GlobalEndIfDirectiveHandler(); @Override public void testExecution() throws Exception { final PreprocessorContext context = executeGlobalPhase("directive_globalifelseendif.txt", null); assertTrue(context.containsGlobalVariable("expected")); assertFalse(context.containsGlobalVariable("unexpected")); assertEquals(Boolean.TRUE, context.findVariableForName("expected").asBoolean()); } @Test public void testExecution_PreprocessingPhase() throws Exception { assertFilePreprocessing("directive_globalifelseendif.txt", false, null, null); assertFilePreprocessing("directive_globalifelseendif2.txt", false, null, null); } @Test public void testExecution_wrongCases() throws Exception { assertGlobalPhaseException("\n//#_if true", 2, null); assertGlobalPhaseException("\n//#_if true\n//#_else", 2, null); assertGlobalPhaseException("\n//#_if true\n//#_if true\n//#_else\n//#_endif", 2, null); assertGlobalPhaseException("\n//#_if true\n//#_if 111\n//#_else\n//#_endif", 3, null); assertGlobalPhaseException("\n//#_endif", 2, null); assertGlobalPhaseException("\n//#_else", 2, null); assertGlobalPhaseException("\n//#_else\n//#_endif", 2, null); assertGlobalPhaseException("\n//#_if xxx\n//#_endif", 2, null); assertGlobalPhaseException("\n//#global xxx=1\n//#_if xxx\n//#_endif", 3, null); } @Override public void testKeyword() throws Exception { assertEquals("_if", HANDLER_GLOBAL_IF.getName()); assertEquals("_else", HANDLER_GLOBAL_ELSE.getName()); assertEquals("_endif", HANDLER_GLOBAL_ENDIF.getName()); } @Override public void testExecutionCondition() throws Exception { assertFalse(HANDLER_GLOBAL_IF.executeOnlyWhenExecutionAllowed()); assertFalse(HANDLER_GLOBAL_ELSE.executeOnlyWhenExecutionAllowed()); assertFalse(HANDLER_GLOBAL_ENDIF.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER_GLOBAL_IF); assertReference(HANDLER_GLOBAL_ELSE); assertReference(HANDLER_GLOBAL_ENDIF); } @Override public void testPhase() throws Exception { assertTrue(HANDLER_GLOBAL_IF.isGlobalPhaseAllowed()); assertFalse(HANDLER_GLOBAL_IF.isPreprocessingPhaseAllowed()); assertTrue(HANDLER_GLOBAL_ELSE.isGlobalPhaseAllowed()); assertFalse(HANDLER_GLOBAL_ELSE.isPreprocessingPhaseAllowed()); assertTrue(HANDLER_GLOBAL_ENDIF.isGlobalPhaseAllowed()); assertFalse(HANDLER_GLOBAL_ENDIF.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.BOOLEAN, HANDLER_GLOBAL_IF.getArgumentType()); assertEquals(DirectiveArgumentType.NONE, HANDLER_GLOBAL_ELSE.getArgumentType()); assertEquals(DirectiveArgumentType.NONE, HANDLER_GLOBAL_ENDIF.getArgumentType()); } } IfDefDirectiveHandlerTest.java000066400000000000000000000036621263163240400352620ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import static org.junit.Assert.*; public class IfDefDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final IfDefDirectiveHandler HANDLER = new IfDefDirectiveHandler(); @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_ifdef.txt", false, null, null, new VariablePair("BYTECODE", "true")); try { assertFilePreprocessing("directive_ifdef.txt", false, null, null); } catch (LinesNotMatchException expected) { assertEquals("somebytecode", expected.getEtalonString()); assertEquals("end", expected.getResultString()); } } @Override public void testKeyword() throws Exception { assertEquals("ifdef", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertFalse(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.VARNAME, HANDLER.getArgumentType()); } } IfDefinedDirectiveHandlerTest.java000077500000000000000000000040141263163240400361150ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import static org.junit.Assert.*; public class IfDefinedDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final IfDefinedDirectiveHandler HANDLER = new IfDefinedDirectiveHandler(); @Override public void testExecution() throws Exception { // with defined global var assertFilePreprocessing("directive_ifdefined.txt", false, null, null, new VariablePair("BYTECODE", "true")); // with non-defined global var try { assertFilePreprocessing("directive_ifdefined.txt", false, null, null); } catch (LinesNotMatchException expected) { assertEquals("somebytecode", expected.getEtalonString()); assertEquals("end", expected.getResultString()); } } @Override public void testKeyword() throws Exception { assertEquals("ifdefined", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertFalse(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.VARNAME, HANDLER.getArgumentType()); } } IfElseEndifDirectiveHandlerTest.java000066400000000000000000000064711263163240400364230ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.junit.Test; import static org.junit.Assert.*; public class IfElseEndifDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final IfDirectiveHandler IF_HANDLER = new IfDirectiveHandler(); private static final ElseDirectiveHandler ELSE_HANDLER = new ElseDirectiveHandler(); private static final EndIfDirectiveHandler ENDIF_HANDLER = new EndIfDirectiveHandler(); @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_if_else_endif.txt", false, null, null); } @Test public void testIf_ExceptionWithoutExpression() throws Exception { assertPreprocessorException("\n\n\n \n //#if \ntest\n //#endif", 5, null); assertPreprocessorException("\n\n\n \n //#if\ntest\n //#endif", 5, null); } @Test public void testIf_ExceptionWithoutEndIf() throws Exception { assertPreprocessorException("\n\n\n \n //#if true\n\n", 5, null); assertPreprocessorException("\n\n\n \n //#if true\n//#if true\n//#endif\n", 5, null); } @Test public void testElse_ExeptionWithoutIf() throws Exception { assertPreprocessorException("\n\n\n \n //#else \ntest\n //#endif", 5, null); } @Test public void testEndIf_ExceptionWithoutIf() throws Exception { assertPreprocessorException("\n\n\n \n //#endif", 5, null); } @Override public void testKeyword() throws Exception { assertEquals("if", IF_HANDLER.getName()); assertEquals("else", ELSE_HANDLER.getName()); assertEquals("endif", ENDIF_HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertFalse(IF_HANDLER.executeOnlyWhenExecutionAllowed()); assertFalse(ELSE_HANDLER.executeOnlyWhenExecutionAllowed()); assertFalse(ENDIF_HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(IF_HANDLER); assertReference(ELSE_HANDLER); assertReference(ENDIF_HANDLER); } @Override public void testPhase() throws Exception { assertTrue(IF_HANDLER.isPreprocessingPhaseAllowed()); assertFalse(IF_HANDLER.isGlobalPhaseAllowed()); assertTrue(ELSE_HANDLER.isPreprocessingPhaseAllowed()); assertFalse(ELSE_HANDLER.isGlobalPhaseAllowed()); assertTrue(ENDIF_HANDLER.isPreprocessingPhaseAllowed()); assertFalse(ENDIF_HANDLER.isGlobalPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.BOOLEAN, IF_HANDLER.getArgumentType()); assertEquals(DirectiveArgumentType.NONE, ELSE_HANDLER.getArgumentType()); assertEquals(DirectiveArgumentType.NONE, ENDIF_HANDLER.getArgumentType()); } } IfElseEndifDirectiveWithKeepLinesHandlerTest.java000077500000000000000000000022501263163240400410510ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; public class IfElseEndifDirectiveWithKeepLinesHandlerTest extends IfElseEndifDirectiveHandlerTest { private static final IfDirectiveHandler IF_HANDLER = new IfDirectiveHandler(); private static final ElseDirectiveHandler ELSE_HANDLER = new ElseDirectiveHandler(); private static final EndIfDirectiveHandler ENDIF_HANDLER = new EndIfDirectiveHandler(); @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_if_else_endif_with_keptlines.txt", true, null, null); } } IfNDefDirectiveHandlerTest.java000066400000000000000000000036671263163240400354050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import static org.junit.Assert.*; public class IfNDefDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final IfNDefDirectiveHandler HANDLER = new IfNDefDirectiveHandler(); @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_ifndef.txt", false, null, null); try { assertFilePreprocessing("directive_ifndef.txt", false, null, null, new VariablePair("BYTECODE", "123")); } catch (LinesNotMatchException expected) { assertEquals("somebytecode", expected.getEtalonString()); assertEquals("end", expected.getResultString()); } } @Override public void testKeyword() throws Exception { assertEquals("ifndef", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertFalse(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.VARNAME, HANDLER.getArgumentType()); } } IncludeDirectiveHandlerTest.java000066400000000000000000000044641263163240400356710ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.junit.Test; import static org.junit.Assert.*; public class IncludeDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final IncludeDirectiveHandler HANDLER = new IncludeDirectiveHandler(); @Test @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_include.txt", false, null, null); } @Test public void testExecution_wrongCases() throws Exception { assertPreprocessorException("\n\n\n//#include 111\n", 4, null); assertPreprocessorException("\n\n\n//#include\n", 4, null); assertPreprocessorException("\n\n\n//#include \n", 4, null); assertPreprocessorException("\n\n\n//#include =\n", 4, null); assertPreprocessorException("\n\n\n//#include=\n", 4, null); assertPreprocessorException("\n\n\n//#include333\n", 4, null); assertPreprocessorException("\n\n\n//#include true\n", 4, null); assertPreprocessorException("\n\n\n//#include \"/some/nonexist/absolutnonexist/file.ttxt\"\n", 4, null); } @Override public void testKeyword() throws Exception { assertEquals("include", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.STRING, HANDLER.getArgumentType()); } } LinesNotMatchException.java000066400000000000000000000042351263163240400346740ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; public class LinesNotMatchException extends RuntimeException { private static final long serialVersionUID = 0x129894723894A123L; private final int etalonLineNumber; private final int resultLineNumber; private final int problemStringIndex; private final String etalonString; private final String resultString; public LinesNotMatchException(final int etalonLineNumber, final int resultLineNumber, final int problemStringIndex, final String etalonString, final String resultString) { super("Lines not match in the etalon and the result"); this.etalonLineNumber = etalonLineNumber; this.resultLineNumber = resultLineNumber; this.etalonString = etalonString; this.resultString = resultString; this.problemStringIndex = problemStringIndex; } public int getProblemStringIndex() { return this.problemStringIndex; } public int getEtalonLineNumber() { return this.etalonLineNumber; } public int getResultLineNumber() { return this.resultLineNumber; } public String getEtalonString() { return this.etalonString; } public String getResultString() { return this.resultString; } @Override public String toString() { return LinesNotMatchException.class.getName() + "(etalonLineNum=" + this.etalonLineNumber + ",resultLineNum=" + this.resultLineNumber + ",problemLine" + (this.problemStringIndex + 1) + ",etalonString=" + this.etalonString + ",resultString=" + this.resultString + ')'; } } LocalDirectiveHandlerTest.java000077500000000000000000000047221263163240400353400ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.junit.Test; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; public class LocalDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final LocalDirectiveHandler HANDLER = new LocalDirectiveHandler(); @Override public void testExecution() throws Exception { final PreprocessorContext context = assertFilePreprocessing("directive_local.txt", false, null, null); assertEquals(Long.valueOf(5), context.getLocalVariable("x").asLong()); assertEquals(Long.valueOf(10), context.getLocalVariable("y").asLong()); assertEquals(Long.valueOf(15), context.getLocalVariable("z").asLong()); assertEquals("", context.getLocalVariable("l_stringgamesNumber").asString()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Test public void testExecution_ExceptionOnExpressionAbsence() { assertPreprocessorException("1\n2\n //#local \n3 ", 3, null); assertPreprocessorException("1\n2\n //#local\n3 ", 3, null); } @Test public void testExecution_ExceptionOnWrongExpression() { assertPreprocessorException("1\n2\n //#local 3\n3 ", 3, null); assertPreprocessorException("1\n2\n //#local a=\n3", 3, null); } @Override public void testKeyword() throws Exception { assertEquals("local", HANDLER.getName()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.SET, HANDLER.getArgumentType()); } } MsgDirectiveHandlerTest.java000066400000000000000000000042221263163240400350240ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.logger.PreprocessorLogger; import java.util.List; import static org.mockito.Mockito.*; import static org.junit.Assert.*; import org.mockito.ArgumentCaptor; public class MsgDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final MsgDirectiveHandler HANDLER = new MsgDirectiveHandler(); @Override public void testExecution() throws Exception { final PreprocessorLogger mock = mock(PreprocessorLogger.class); assertFilePreprocessing("directive_msg.txt", false, null, mock); ArgumentCaptor varArgs = ArgumentCaptor.forClass(String.class); verify(mock,times(2)).info(varArgs.capture()); final List calls = varArgs.getAllValues(); assertEquals(2, calls.size()); assertEquals(" string 2 ok ",calls.get(0)); assertEquals("string 48 ok",calls.get(1)); } @Override public void testKeyword() throws Exception { assertEquals("msg", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.TAIL, HANDLER.getArgumentType()); } @Override public void testPhase() throws Exception { assertTrue(HANDLER.isPreprocessingPhaseAllowed()); assertFalse(HANDLER.isGlobalPhaseAllowed()); } } NoAutoFlushDirectiveHandlerTest.java000066400000000000000000000031421263163240400365050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import static org.junit.Assert.*; public class NoAutoFlushDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final NoAutoFlushHandler HANDLER = new NoAutoFlushHandler(); @Override public void testExecution() throws Exception { //TODO make execution test } @Override public void testKeyword() throws Exception { assertEquals("noautoflush", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.NONE, HANDLER.getArgumentType()); } @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/OnlySpacesTest.java000066400000000000000000000023571263163240400333070ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; public class OnlySpacesTest extends AbstractDirectiveHandlerAcceptanceTest { @Override public void testExecution() throws Exception { assertFilePreprocessing("only_spaces.txt", true, null, null); } @Override public void testKeyword() throws Exception { } @Override public void testExecutionCondition() throws Exception { } @Override public void testReference() throws Exception { } @Override public void testArgumentType() throws Exception { } @Override public void testPhase() throws Exception { } } OutDirDirectiveHandlerTest.java000077500000000000000000000036261263163240400355160ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.junit.Test; import static org.junit.Assert.*; public class OutDirDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final OutDirDirectiveHandler HANDLER = new OutDirDirectiveHandler(); @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_outdir.txt", false, null, null); } @Test public void testExecution_wrongExpression() { assertPreprocessorException("\n //#outdir", 2, null); assertPreprocessorException("\n //#outdir ", 2, null); assertPreprocessorException("\n //#outdir 234324 8", 2, null); } @Override public void testKeyword() throws Exception { assertEquals("outdir", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertTrue(HANDLER.isPreprocessingPhaseAllowed()); assertFalse(HANDLER.isGlobalPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.STRING, HANDLER.getArgumentType()); } } OutDisabledDirectiveHandlerTest.java000066400000000000000000000032271263163240400365010ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import static org.junit.Assert.*; public class OutDisabledDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final OutDisabledDirectiveHandler HANDLER = new OutDisabledDirectiveHandler(); @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_outdisabled.txt", false, null, null); } @Override public void testKeyword() throws Exception { assertEquals("-", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertTrue(HANDLER.isPreprocessingPhaseAllowed()); assertFalse(HANDLER.isGlobalPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.NONE, HANDLER.getArgumentType()); } } OutEnabledDirectiveHandlerTest.java000077500000000000000000000032231263163240400363230ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import static org.junit.Assert.*; public class OutEnabledDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final OutEnabledDirectiveHandler HANDLER = new OutEnabledDirectiveHandler(); @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_outenabled.txt", false, null, null); } @Override public void testKeyword() throws Exception { assertEquals("+", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertTrue(HANDLER.isPreprocessingPhaseAllowed()); assertFalse(HANDLER.isGlobalPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.NONE, HANDLER.getArgumentType()); } } OutNameDirectiveHandlerTest.java000077500000000000000000000035471263163240400356620ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.junit.Test; import static org.junit.Assert.*; public class OutNameDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final OutNameDirectiveHandler HANDLER = new OutNameDirectiveHandler(); @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_outname.txt", false, null, null); } @Test public void testExecution_wrongExpressionResult() { assertPreprocessorException("\n//#outname", 2, null); assertPreprocessorException("\n//#outname 882772 k", 2, null); } @Override public void testKeyword() throws Exception { assertEquals("outname", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertTrue(HANDLER.isPreprocessingPhaseAllowed()); assertFalse(HANDLER.isGlobalPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.STRING, HANDLER.getArgumentType()); } } PrefixPostfixDirectiveHandlerTest.java000066400000000000000000000052141263163240400371120ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.junit.Test; import static org.junit.Assert.*; public class PrefixPostfixDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final PrefixDirectiveHandler HANDLER_PREFIX = new PrefixDirectiveHandler(); private static final PostfixDirectiveHandler HANDLER_POSTFIX = new PostfixDirectiveHandler(); @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_prefixpostfix.txt", false, null, null); } @Test public void testPrefix_wrongArgument() { assertPreprocessorException("\n //#prefix -", 2, null); assertPreprocessorException("\n //#prefix-1", 2, null); assertPreprocessorException("\n //#prefixa", 2, null); } @Test public void testPostfix_wrongArgument() { assertPreprocessorException("\n //#postfix -", 2, null); assertPreprocessorException("\n //#postfix1", 2, null); assertPreprocessorException("\n //#postfix+q", 2, null); } @Override public void testKeyword() throws Exception { assertEquals("prefix", HANDLER_PREFIX.getName()); assertEquals("postfix", HANDLER_POSTFIX.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER_PREFIX.executeOnlyWhenExecutionAllowed()); assertTrue(HANDLER_POSTFIX.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER_PREFIX); assertReference(HANDLER_POSTFIX); } @Override public void testPhase() throws Exception { assertTrue(HANDLER_POSTFIX.isPreprocessingPhaseAllowed()); assertFalse(HANDLER_POSTFIX.isGlobalPhaseAllowed()); assertTrue(HANDLER_PREFIX.isPreprocessingPhaseAllowed()); assertFalse(HANDLER_PREFIX.isGlobalPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.ONOFF, HANDLER_POSTFIX.getArgumentType()); assertEquals(DirectiveArgumentType.ONOFF, HANDLER_PREFIX.getArgumentType()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/SpecVarsROTest.java000066400000000000000000000026371263163240400332170ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.logger.PreprocessorLogger; import org.mockito.Mockito; /** * Test for special read only predefined variables */ public class SpecVarsROTest extends AbstractDirectiveHandlerAcceptanceTest { @Override public void testExecution() throws Exception { final PreprocessorLogger mock = Mockito.mock(PreprocessorLogger.class); assertFilePreprocessing("specvars_ro.txt", false, null, mock); } @Override public void testKeyword() throws Exception { } @Override public void testExecutionCondition() throws Exception { } @Override public void testReference() throws Exception { } @Override public void testArgumentType() throws Exception { } @Override public void testPhase() throws Exception { } } SpecialDirectivesTest.java000066400000000000000000000030671263163240400345510ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; // This test checks work of //$$, //$ and /*-*/ // Those directives are very specific and they don't have any distinguished handler public class SpecialDirectivesTest extends AbstractDirectiveHandlerAcceptanceTest { @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_special.txt", false, null, null); } @Override public void testKeyword() throws Exception { // do nothing because it is a group test } @Override public void testExecutionCondition() throws Exception { // do nothing because it is a group test } @Override public void testReference() throws Exception { // do nothing because it is a group test } @Override public void testArgumentType() throws Exception { // do nothing because it is a group test } @Override public void testPhase() throws Exception { // do nothing because it is a group test } } UndefDirectiveHandlerTest.java000066400000000000000000000042041263163240400353370ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.context.PreprocessorContext; import org.junit.Test; import static org.junit.Assert.*; public class UndefDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final UndefDirectiveHandler HANDLER = new UndefDirectiveHandler(); @Override public void testExecution() throws Exception { final PreprocessorContext context = assertFilePreprocessing("directive_undef.txt", false, null, null, new VariablePair("somevar", "true")); assertFalse(context.isGlobalVariable("somevar")); assertFalse(context.isLocalVariable("localone")); } @Test public void testExecution_wrongCases() { assertPreprocessorException("\n\n//#undef \n", 3, null); assertPreprocessorException("\n\n//#undef 1223\n", 3, null); assertPreprocessorException("\n\n//#undef \"test\"\n", 3, null); } @Override public void testKeyword() throws Exception { assertEquals("undef", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testPhase() throws Exception { assertFalse(HANDLER.isGlobalPhaseAllowed()); assertTrue(HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.TAIL, HANDLER.getArgumentType()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/VariablePair.java000066400000000000000000000020341263163240400327200ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.expression.Value; public class VariablePair { private final String name; private final Value value; public VariablePair(final String name, final String value) { this.name = name; this.value = Value.recognizeOf(value); } public String getName() { return this.name; } public Value getValue() { return this.value; } } WarningDirectiveHandlerTest.java000066400000000000000000000042411263163240400357040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import com.igormaznitsa.jcp.logger.PreprocessorLogger; import org.mockito.Mockito; import static org.junit.Assert.*; import org.junit.Test; public class WarningDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final WarningDirectiveHandler HANDLER = new WarningDirectiveHandler(); @Override public void testExecution() throws Exception { final PreprocessorLogger mock = Mockito.mock(PreprocessorLogger.class); assertFilePreprocessing("directive_warning.txt", false, null, mock); Mockito.verify(mock).warning("string2"); } @Test public void testExecution_wrongCases() { assertPreprocessorException("\n\n//#warning 324444444444987987987982374987294873294324324\n", 3, null); assertPreprocessorException("\n\n//#warning sjdasd\n", 3, null); assertPreprocessorException("\n\n//#warning \n", 3, null); } @Override public void testKeyword() throws Exception { assertEquals("warning", HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertTrue(HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(HANDLER); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.EXPRESSTION, HANDLER.getArgumentType()); } @Override public void testPhase() throws Exception { assertTrue(HANDLER.isPreprocessingPhaseAllowed()); assertFalse(HANDLER.isGlobalPhaseAllowed()); } } WhileContinueBreakEndDirectiveHandlerTest.java000066400000000000000000000077741263163240400404660ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/directives/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.directives; import org.junit.Test; import static org.junit.Assert.*; public class WhileContinueBreakEndDirectiveHandlerTest extends AbstractDirectiveHandlerAcceptanceTest { private static final WhileDirectiveHandler WHILE_HANDLER = new WhileDirectiveHandler(); private static final ContinueDirectiveHandler CONTINUE_HANDLER = new ContinueDirectiveHandler(); private static final BreakDirectiveHandler BREAK_HANDLER = new BreakDirectiveHandler(); private static final EndDirectiveHandler END_HANDLER = new EndDirectiveHandler(); @Override public void testExecution() throws Exception { assertFilePreprocessing("directive_while_continue_break_end.txt", false, null, null); } @Test public void testWhile_ExceptionWithoutExpression() throws Exception { assertPreprocessorException("\n\n\n \n\n //#while \ntest\n //#end", 6, null); } @Test public void testWhile_ExceptionForNonBooleanExpression() throws Exception { assertPreprocessorException("\n\n\n \n\n //#while 234 \ntest\n //#end", 6, null); } @Test public void testWhile_ExceptionForNonClosed() throws Exception { assertPreprocessorException("\n\n\n \n\n //#while true \ntest\n", 6, null); } @Test public void testBreak_ExceptionWithoutWhile() throws Exception { assertPreprocessorException("\n\n\n \n\n //#break \ntest\n", 6, null); } @Test public void testContinue_ExceptionWithoutWhile() throws Exception { assertPreprocessorException("\n\n\n \n\n //#continue \ntest\n", 6, null); } @Test public void testEnd_ExceptionWithoutWhile() throws Exception { assertPreprocessorException("\n\n\n \n\n //#end \ntest\n", 6, null); } @Override public void testKeyword() throws Exception { assertEquals("while", WHILE_HANDLER.getName()); assertEquals("break", BREAK_HANDLER.getName()); assertEquals("continue", CONTINUE_HANDLER.getName()); assertEquals("end", END_HANDLER.getName()); } @Override public void testExecutionCondition() throws Exception { assertFalse(WHILE_HANDLER.executeOnlyWhenExecutionAllowed()); assertTrue(BREAK_HANDLER.executeOnlyWhenExecutionAllowed()); assertTrue(CONTINUE_HANDLER.executeOnlyWhenExecutionAllowed()); assertFalse(END_HANDLER.executeOnlyWhenExecutionAllowed()); } @Override public void testReference() throws Exception { assertReference(WHILE_HANDLER); assertReference(BREAK_HANDLER); assertReference(CONTINUE_HANDLER); assertReference(END_HANDLER); } @Override public void testPhase() throws Exception { assertFalse(WHILE_HANDLER.isGlobalPhaseAllowed()); assertFalse(BREAK_HANDLER.isGlobalPhaseAllowed()); assertFalse(CONTINUE_HANDLER.isGlobalPhaseAllowed()); assertFalse(END_HANDLER.isGlobalPhaseAllowed()); assertTrue(WHILE_HANDLER.isPreprocessingPhaseAllowed()); assertTrue(BREAK_HANDLER.isPreprocessingPhaseAllowed()); assertTrue(CONTINUE_HANDLER.isPreprocessingPhaseAllowed()); assertTrue(END_HANDLER.isPreprocessingPhaseAllowed()); } @Override public void testArgumentType() throws Exception { assertEquals(DirectiveArgumentType.BOOLEAN, WHILE_HANDLER.getArgumentType()); assertEquals(DirectiveArgumentType.NONE, BREAK_HANDLER.getArgumentType()); assertEquals(DirectiveArgumentType.NONE, CONTINUE_HANDLER.getArgumentType()); assertEquals(DirectiveArgumentType.NONE, END_HANDLER.getArgumentType()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/exceptions/000077500000000000000000000000001263163240400275355ustar00rootroot00000000000000PreprocessorExceptionTest.java000077500000000000000000000047671263163240400355470ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/exceptions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.exceptions; import com.igormaznitsa.jcp.containers.FileInfoContainer; import com.igormaznitsa.jcp.context.PreprocessorContext; import java.io.File; import org.junit.Test; import static org.junit.Assert.*; public class PreprocessorExceptionTest { @Test public void testExceptionStringIndex_WrongBracket() throws Exception { final File file = new File(this.getClass().getResource("wrong_bracket.txt").toURI()); final PreprocessorContext context = new PreprocessorContext(); context.setFileOutputDisabled(true); final FileInfoContainer container = new FileInfoContainer(file, "test", false); try { container.preprocessFile(null, context); fail("Must throw PreprocessorException"); } catch (PreprocessorException expected) { assertEquals("Must have the right line number", 17, expected.getStringIndex()); } } @Test public void testExceptionStringIndex_WrongBracketInIncluded() throws Exception { final File file = new File(this.getClass().getResource("wrong_bracket_include.txt").toURI()); final PreprocessorContext context = new PreprocessorContext(); context.setSourceDirectories(file.getParent()); context.setFileOutputDisabled(true); final FileInfoContainer container = new FileInfoContainer(file, "test", false); try { container.preprocessFile(null, context); fail("Must throw PreprocessorException"); } catch (PreprocessorException expected) { final FilePositionInfo[] fileStack = expected.getIncludeChain(); assertEquals("Must have depth 2", 2, fileStack.length); assertEquals("String index in the including file is 26", 25, fileStack[1].getStringIndex()); assertEquals("String index in the wrong bracket file is 15", 16, fileStack[0].getStringIndex()); assertEquals("Must have the right line number", 17, expected.getStringIndex()); } } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/000077500000000000000000000000001263163240400275535ustar00rootroot00000000000000ExpressionParserTest.java000066400000000000000000000271311263163240400345170ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression; import com.igormaznitsa.jcp.expression.functions.AbstractFunction; import com.igormaznitsa.jcp.expression.functions.FunctionABS; import com.igormaznitsa.jcp.expression.functions.xml.FunctionXML_ATTR; import com.igormaznitsa.jcp.expression.operators.AbstractOperator; import com.igormaznitsa.jcp.expression.operators.OperatorADD; import com.igormaznitsa.jcp.expression.operators.OperatorDIV; import com.igormaznitsa.jcp.expression.operators.OperatorEQU; import com.igormaznitsa.jcp.expression.operators.OperatorLESS; import com.igormaznitsa.jcp.expression.operators.OperatorMOD; import com.igormaznitsa.jcp.expression.operators.OperatorMUL; import com.igormaznitsa.jcp.expression.operators.OperatorSUB; import java.io.PushbackReader; import java.io.StringReader; import org.junit.Test; import static org.junit.Assert.*; public class ExpressionParserTest { @Test public void testReplacingNegativeNumber() throws Exception { final ExpressionTree tree = new ExpressionTree(); final OperatorSUB SUB = AbstractOperator.findForClass(OperatorSUB.class); tree.addItem(SUB); tree.addItem(Value.INT_ONE); tree.addItem(SUB); tree.addItem(Value.INT_TWO); tree.postProcess(); final ExpressionTreeElement root = tree.getRoot(); assertEquals("Root must be SUB", SUB, root.getItem()); assertEquals("Left must be -1", Value.valueOf(Long.valueOf(-1L)), root.getChildForIndex(0).getItem()); assertEquals("Right must be 2", Value.INT_TWO, root.getChildForIndex(1).getItem()); } @Test public void testNextItem_zero() throws Exception { final PushbackReader reader = new PushbackReader(new StringReader("0")); assertEquals("Must be 0", Value.INT_ZERO, ExpressionParser.getInstance().nextItem(reader, null)); assertNull("Must be null", ExpressionParser.getInstance().nextItem(reader, null)); } @Test public void testNextItem_negativeNumber() throws Exception { final PushbackReader reader = new PushbackReader(new StringReader("-1")); assertEquals("Must be SUB", AbstractOperator.findForClass(OperatorSUB.class), ExpressionParser.getInstance().nextItem(reader, null)); assertEquals("Must be 1", Value.INT_ONE, ExpressionParser.getInstance().nextItem(reader, null)); assertNull("Must be null", ExpressionParser.getInstance().nextItem(reader, null)); } @Test public void testNextItem_zeroLess() throws Exception { final PushbackReader reader = new PushbackReader(new StringReader("0<")); assertEquals("Must be 0", Value.INT_ZERO, ExpressionParser.getInstance().nextItem(reader, null)); assertEquals("Must be LESS", AbstractOperator.findForClass(OperatorLESS.class), ExpressionParser.getInstance().nextItem(reader, null)); assertNull("Must be null", ExpressionParser.getInstance().nextItem(reader, null)); } @Test public void testNextItem_oneValue() throws Exception { final PushbackReader reader = new PushbackReader(new StringReader("3")); assertEquals("Must be 3", Value.INT_THREE, ExpressionParser.getInstance().nextItem(reader, null)); assertNull("Must be null", ExpressionParser.getInstance().nextItem(reader, null)); } @Test public void testNextItem_oneHexValue() throws Exception { final PushbackReader reader = new PushbackReader(new StringReader("0xfF")); assertEquals("Must be 255", Value.valueOf(Long.valueOf(255L)), ExpressionParser.getInstance().nextItem(reader, null)); assertNull("Must be null", ExpressionParser.getInstance().nextItem(reader, null)); } @Test public void testNextItem_oneBooleanTrueValue() throws Exception { final PushbackReader reader = new PushbackReader(new StringReader("true")); assertEquals("Must be TRUE", Value.BOOLEAN_TRUE, ExpressionParser.getInstance().nextItem(reader, null)); assertNull("Must be null", ExpressionParser.getInstance().nextItem(reader, null)); } @Test public void testNextItem_oneBooleanFalseValue() throws Exception { final PushbackReader reader = new PushbackReader(new StringReader("false")); assertEquals("Must be FALSE", Value.BOOLEAN_FALSE, ExpressionParser.getInstance().nextItem(reader, null)); assertNull("Must be null", ExpressionParser.getInstance().nextItem(reader, null)); } @Test public void testNextItem_oneOperator() throws Exception { final PushbackReader reader = new PushbackReader(new StringReader("/")); assertEquals("Must be DIV", AbstractOperator.findForClass(OperatorDIV.class), ExpressionParser.getInstance().nextItem(reader, null)); assertNull("Must be null", ExpressionParser.getInstance().nextItem(reader, null)); } @Test public void testNextItem_complexExpression() throws Exception { final PushbackReader reader = new PushbackReader(new StringReader("xml_attr(1.3%abs(1+2)*3/4,\"hello\"==\"\nworld\t\")")); final ExpressionItem[] items = new ExpressionItem[]{ AbstractFunction.findForClass(FunctionXML_ATTR.class), ExpressionParser.SpecialItem.BRACKET_OPENING, Value.valueOf(Float.valueOf(1.3f)), AbstractOperator.findForClass(OperatorMOD.class), AbstractFunction.findForClass(FunctionABS.class), ExpressionParser.SpecialItem.BRACKET_OPENING, Value.INT_ONE, AbstractOperator.findForClass(OperatorADD.class), Value.INT_TWO, ExpressionParser.SpecialItem.BRACKET_CLOSING, AbstractOperator.findForClass(OperatorMUL.class), Value.INT_THREE, AbstractOperator.findForClass(OperatorDIV.class), Value.INT_FOUR, ExpressionParser.SpecialItem.COMMA, Value.valueOf("hello"), AbstractOperator.findForClass(OperatorEQU.class), Value.valueOf("\nworld\t"), ExpressionParser.SpecialItem.BRACKET_CLOSING }; int index = 0; for (final ExpressionItem item : items) { assertEquals("Position " + index + " must be equals", item, ExpressionParser.getInstance().nextItem(reader, null)); index++; } assertNull(ExpressionParser.getInstance().nextItem(reader, null)); } @Test public void testParsing_oneValue() throws Exception { final ExpressionParser parser = ExpressionParser.getInstance(); final ExpressionTree tree = parser.parse("3", null); final ExpressionTreeElement root = tree.getRoot(); assertEquals("Root is 3", Value.INT_THREE, root.getItem()); } @Test public void testParsing_negativeNumber() throws Exception { final ExpressionParser parser = ExpressionParser.getInstance(); final ExpressionTree tree = parser.parse(Long.toString(Long.MIN_VALUE + 1), null); final ExpressionTreeElement root = tree.getRoot(); assertEquals("Root is Long.MIN_VALUE+1", Value.valueOf(Long.valueOf(Long.MIN_VALUE + 1)), root.getItem()); } @Test public void testParsing_easyExpression() throws Exception { final ExpressionParser parser = ExpressionParser.getInstance(); final ExpressionTree tree = parser.parse("3*4/8", null); final ExpressionTreeElement root = tree.getRoot(); assertEquals("Root is DIV", AbstractOperator.findForClass(OperatorDIV.class), root.getItem()); assertEquals("Right is 8", Value.valueOf(Long.valueOf(8L)), root.getChildForIndex(1).getItem()); final ExpressionTreeElement left = root.getChildForIndex(0); assertEquals("Left is MUL", AbstractOperator.findForClass(OperatorMUL.class), left.getItem()); assertEquals("Left-left is 3", Value.INT_THREE, left.getChildForIndex(0).getItem()); assertEquals("Left-right is 4", Value.INT_FOUR, left.getChildForIndex(1).getItem()); } @Test public void testParsing_complexExpression() throws Exception { final ExpressionParser parser = ExpressionParser.getInstance(); final ExpressionTree tree = parser.parse("(var1+1)*xml_attr(\"first\",\"hello\"+\"world\")", null); final ExpressionTreeElement root = tree.getRoot(); assertEquals("Root must be MUL", AbstractOperator.findForClass(OperatorMUL.class), root.getItem()); final ExpressionTreeElement left = root.getChildForIndex(0); final ExpressionTreeElement right = root.getChildForIndex(1); assertEquals("Left must be ADD", AbstractOperator.findForClass(OperatorADD.class), left.getItem()); assertEquals("Right must be Function", AbstractFunction.findForClass(FunctionXML_ATTR.class), right.getItem()); } @Test public void testParsing_deepIncludingBrackets() throws Exception { final ExpressionParser parser = ExpressionParser.getInstance(); final ExpressionTree tree = parser.parse("((((((1+2))))))", null); final ExpressionTreeElement root = tree.getRoot(); assertEquals("Root must be ADD", AbstractOperator.findForClass(OperatorADD.class), root.getItem()); assertEquals("Left must be 1", Value.INT_ONE, root.getChildForIndex(0).getItem()); assertEquals("Left must be 2", Value.INT_TWO, root.getChildForIndex(1).getItem()); } @Test public void testParsing_insideFunctionCall() throws Exception { final ExpressionParser parser = ExpressionParser.getInstance(); final ExpressionTree tree = parser.parse("xml_get(xml_get(1,2),3)", null); final AbstractFunction xmlElementAt = AbstractFunction.findForName("xml_get"); assertNotNull(xmlElementAt); final ExpressionTreeElement root = tree.getRoot(); assertEquals("Must be xml_get", xmlElementAt, root.getItem()); final ExpressionTreeElement left = root.getChildForIndex(0); final ExpressionTreeElement right = root.getChildForIndex(1); assertEquals("Must be 3", Value.INT_THREE, right.getItem()); assertEquals("Must be xml_get", xmlElementAt, left.getItem()); assertEquals("Must be 1", Value.INT_ONE, left.getChildForIndex(0).getItem()); assertEquals("Must be 2", Value.INT_TWO, left.getChildForIndex(1).getItem()); } @Test public void testParsing_notEasyBrackets() throws Exception { final ExpressionParser parser = ExpressionParser.getInstance(); final ExpressionTree tree = parser.parse("(1+2*(3-4))", null); final OperatorADD ADD = AbstractOperator.findForClass(OperatorADD.class); final OperatorSUB SUB = AbstractOperator.findForClass(OperatorSUB.class); final OperatorMUL MUL = AbstractOperator.findForClass(OperatorMUL.class); final ExpressionTreeElement root = tree.getRoot(); assertEquals("Root must be ADD", ADD, root.getItem()); assertEquals("Left must be 1", Value.INT_ONE, root.getChildForIndex(0).getItem()); final ExpressionTreeElement right = root.getChildForIndex(1); assertEquals("Right must be MUL", MUL, right.getItem()); assertEquals("Right-left must be 2", Value.INT_TWO, right.getChildForIndex(0).getItem()); final ExpressionTreeElement rightRight = right.getChildForIndex(1); assertEquals("Right-right must be SUB", SUB, rightRight.getItem()); assertEquals("Right-right-left must be 3", Value.INT_THREE, rightRight.getChildForIndex(0).getItem()); assertEquals("Right-right-right must be 4", Value.INT_FOUR, rightRight.getChildForIndex(1).getItem()); } @Test public void testParsing_emptyBrakes() throws Exception { final ExpressionParser parser = ExpressionParser.getInstance(); final ExpressionTree tree = parser.parse("()", null); assertNull("Must be null", tree.getRoot()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/ExpressionTest.java000066400000000000000000000020121263163240400334100ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression; import com.igormaznitsa.jcp.context.PreprocessorContext; import org.junit.Test; import static org.junit.Assert.*; public class ExpressionTest { @Test public void testSimpleExpression() { final PreprocessorContext conext = new PreprocessorContext(); assertEquals("Must be equal", Value.INT_TWO, Expression.evalExpression("40/4-2*4", conext)); } } ExpressionTreeTest.java000066400000000000000000000225321263163240400341620ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression; import com.igormaznitsa.jcp.expression.operators.AbstractOperator; import com.igormaznitsa.jcp.expression.operators.OperatorADD; import com.igormaznitsa.jcp.expression.operators.OperatorDIV; import com.igormaznitsa.jcp.expression.operators.OperatorEQU; import com.igormaznitsa.jcp.expression.operators.OperatorMUL; import com.igormaznitsa.jcp.expression.operators.OperatorNOT; import org.junit.Test; import static org.junit.Assert.*; public class ExpressionTreeTest { @Test public void testAddHierarchyTree() { // 1+2 final ExpressionTree tree = new ExpressionTree(); tree.addItem(Value.INT_ONE); tree.addItem(AbstractOperator.findForClass(OperatorADD.class)); tree.addItem(Value.INT_TWO); final ExpressionTreeElement root = tree.getRoot(); assertNotNull("Root must not be null", root); assertEquals("Root must be add", AbstractOperator.findForClass(OperatorADD.class), root.getItem()); assertEquals("Left must be 1", Value.INT_ONE, root.getChildForIndex(0).getItem()); assertEquals("Right must be 2", Value.INT_TWO, root.getChildForIndex(1).getItem()); } @Test public void testAddDivHierarchyTree() { // 1+2/3 final ExpressionTree tree = new ExpressionTree(); tree.addItem(Value.INT_ONE); tree.addItem(AbstractOperator.findForClass(OperatorADD.class)); tree.addItem(Value.INT_TWO); tree.addItem(AbstractOperator.findForClass(OperatorDIV.class)); tree.addItem(Value.INT_THREE); final ExpressionTreeElement root = tree.getRoot(); assertNotNull("Root must not be null", root); assertEquals("Root must be add", AbstractOperator.findForClass(OperatorADD.class), root.getItem()); assertEquals("Left must be 1", Value.INT_ONE, root.getChildForIndex(0).getItem()); final ExpressionTreeElement right = root.getChildForIndex(1); assertEquals("Right must be div", AbstractOperator.findForClass(OperatorDIV.class), right.getItem()); assertEquals("Left for div must be 2", Value.INT_TWO, right.getChildForIndex(0).getItem()); assertEquals("Right for div must be 3", Value.INT_THREE, right.getChildForIndex(1).getItem()); } @Test public void testDivAddHierarchyTree() { // 1/2+3 final ExpressionTree tree = new ExpressionTree(); tree.addItem(Value.INT_ONE); tree.addItem(AbstractOperator.findForClass(OperatorDIV.class)); tree.addItem(Value.INT_TWO); tree.addItem(AbstractOperator.findForClass(OperatorADD.class)); tree.addItem(Value.INT_THREE); final ExpressionTreeElement root = tree.getRoot(); assertNotNull("Root must not be null", root); assertEquals("Root must be add", AbstractOperator.findForClass(OperatorADD.class), root.getItem()); assertEquals("Left must be div", AbstractOperator.findForClass(OperatorDIV.class), root.getChildForIndex(0).getItem()); final ExpressionTreeElement left = root.getChildForIndex(0); assertEquals("Left for div must be 1", Value.INT_ONE, left.getChildForIndex(0).getItem()); assertEquals("Right for div must be 2", Value.INT_TWO, left.getChildForIndex(1).getItem()); assertEquals("Right for add must be 3", Value.INT_THREE, root.getChildForIndex(1).getItem()); } @Test public void testAddAddAddHierarchyTree() { // 1+2+3+4 final ExpressionTree TREE = new ExpressionTree(); final OperatorADD ADD = AbstractOperator.findForClass(OperatorADD.class); TREE.addItem(Value.INT_ONE); TREE.addItem(ADD); TREE.addItem(Value.INT_TWO); TREE.addItem(ADD); TREE.addItem(Value.INT_THREE); TREE.addItem(ADD); TREE.addItem(Value.INT_FOUR); final ExpressionTreeElement root = TREE.getRoot(); assertEquals("Root is ADD", ADD, root.getItem()); assertEquals("Left for root is ADD", ADD, root.getChildForIndex(0).getItem()); assertEquals("Right for root is 4", Value.INT_FOUR, root.getChildForIndex(1).getItem()); ExpressionTreeElement left = root.getChildForIndex(0); assertEquals("Left is ADD", ADD, left.getChildForIndex(0).getItem()); assertEquals("Right is 3", Value.INT_THREE, left.getChildForIndex(1).getItem()); left = left.getChildForIndex(0); assertEquals("Left is 1", Value.INT_ONE, left.getChildForIndex(0).getItem()); assertEquals("Right is 2", Value.INT_TWO, left.getChildForIndex(1).getItem()); } @Test public void testMulAddMulHierarchyTree() { // 1*2+3*4 final ExpressionTree TREE = new ExpressionTree(); final OperatorADD ADD = AbstractOperator.findForClass(OperatorADD.class); final OperatorMUL MUL = AbstractOperator.findForClass(OperatorMUL.class); TREE.addItem(Value.INT_ONE); TREE.addItem(MUL); TREE.addItem(Value.INT_TWO); TREE.addItem(ADD); TREE.addItem(Value.INT_THREE); TREE.addItem(MUL); TREE.addItem(Value.INT_FOUR); final ExpressionTreeElement root = TREE.getRoot(); assertEquals("Root is ADD", ADD, root.getItem()); final ExpressionTreeElement left = root.getChildForIndex(0); final ExpressionTreeElement right = root.getChildForIndex(1); assertEquals("Left is MUL", MUL, left.getItem()); assertEquals("Right is MUL", MUL, right.getItem()); assertEquals("Left-Left is 1", Value.INT_ONE, left.getChildForIndex(0).getItem()); assertEquals("Left-Right is 2", Value.INT_TWO, left.getChildForIndex(1).getItem()); assertEquals("Right-Left is 3", Value.INT_THREE, right.getChildForIndex(0).getItem()); assertEquals("Right-Right is 4", Value.INT_FOUR, right.getChildForIndex(1).getItem()); } @Test public void testAddInBrakesMulHierarchyTree() { // (1+2)*3 final ExpressionTree MAIN_TREE = new ExpressionTree(); final ExpressionTree BRAKE_TREE = new ExpressionTree(); final OperatorADD ADD = AbstractOperator.findForClass(OperatorADD.class); final OperatorMUL MUL = AbstractOperator.findForClass(OperatorMUL.class); BRAKE_TREE.addItem(Value.INT_ONE); BRAKE_TREE.addItem(ADD); BRAKE_TREE.addItem(Value.INT_TWO); MAIN_TREE.addTree(BRAKE_TREE); MAIN_TREE.addItem(MUL); MAIN_TREE.addItem(Value.INT_THREE); final ExpressionTreeElement root = MAIN_TREE.getRoot(); assertEquals("Root must be MUL", MUL, root.getItem()); assertEquals("Right must be 3", Value.INT_THREE, root.getChildForIndex(1).getItem()); final ExpressionTreeElement left = root.getChildForIndex(0); assertEquals("Must be ADD", ADD, left.getItem()); assertEquals("Must be 1", Value.INT_ONE, left.getChildForIndex(0).getItem()); assertEquals("Must be 2", Value.INT_TWO, left.getChildForIndex(1).getItem()); } @Test public void testMulAddInBrakesMulHierarchyTree() { // 1*(2+3)*4 final ExpressionTree MAIN_TREE = new ExpressionTree(); final ExpressionTree BRAKE_TREE = new ExpressionTree(); final OperatorADD ADD = AbstractOperator.findForClass(OperatorADD.class); final OperatorMUL MUL = AbstractOperator.findForClass(OperatorMUL.class); BRAKE_TREE.addItem(Value.INT_TWO); BRAKE_TREE.addItem(ADD); BRAKE_TREE.addItem(Value.INT_THREE); MAIN_TREE.addItem(Value.INT_ONE); MAIN_TREE.addItem(MUL); MAIN_TREE.addTree(BRAKE_TREE); MAIN_TREE.addItem(MUL); MAIN_TREE.addItem(Value.INT_FOUR); final ExpressionTreeElement root = MAIN_TREE.getRoot(); assertEquals("Root must be MUL", MUL, root.getItem()); assertEquals("Right must be 4", Value.INT_FOUR, root.getChildForIndex(1).getItem()); final ExpressionTreeElement right = root.getChildForIndex(0); assertEquals("Right must be MUL", MUL, right.getItem()); assertEquals("Right-right must be 1", Value.INT_ONE, right.getChildForIndex(0).getItem()); final ExpressionTreeElement rightLeft = right.getChildForIndex(1); assertEquals("Right-left must be ADD", ADD, rightLeft.getItem()); assertEquals("Right-left-right must be 2", Value.INT_TWO, rightLeft.getChildForIndex(0).getItem()); assertEquals("Right-left-right must be 3", Value.INT_THREE, rightLeft.getChildForIndex(1).getItem()); } @Test public void testNotEquHierarchy() { // !true==false final OperatorNOT NOT = AbstractOperator.findForClass(OperatorNOT.class); final OperatorEQU EQU = AbstractOperator.findForClass(OperatorEQU.class); final ExpressionTree MAIN_TREE = new ExpressionTree(); MAIN_TREE.addItem(NOT); MAIN_TREE.addItem(Value.BOOLEAN_TRUE); MAIN_TREE.addItem(EQU); MAIN_TREE.addItem(Value.BOOLEAN_FALSE); final ExpressionTreeElement root = MAIN_TREE.getRoot(); assertEquals("Root must be EQU", EQU, root.getItem()); assertEquals("Root right must be FALSE", Value.BOOLEAN_FALSE, root.getChildForIndex(1).getItem()); final ExpressionTreeElement rootLeft = root.getChildForIndex(0); assertEquals("Left must be NOT", NOT, rootLeft.getItem()); assertEquals("Left-left must be TRUE", Value.BOOLEAN_TRUE, rootLeft.getChildForIndex(0).getItem()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/000077500000000000000000000000001263163240400315635ustar00rootroot00000000000000AbstractFunctionTest.java000077500000000000000000000114761263163240400364740ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import org.junit.Test; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import java.io.File; import java.io.IOException; import java.util.Arrays; import org.apache.commons.io.FileUtils; import org.junit.*; import static org.junit.Assert.*; import org.junit.rules.TemporaryFolder; public abstract class AbstractFunctionTest { public static TemporaryFolder destinationFolder; @BeforeClass public static void prepareClassTests() throws Exception{ destinationFolder = new TemporaryFolder(new File("./")); destinationFolder.create(); } @AfterClass public static void doJanitor() throws Exception { destinationFolder.delete(); } @Before public void beforeTest() throws Exception { FileUtils.cleanDirectory(destinationFolder.getRoot()); } @Test public abstract void testName(); @Test public abstract void testReference(); @Test public abstract void testArity(); @Test public abstract void testAllowedArgumentTypes(); @Test public abstract void testResultType(); protected void assertReference(final AbstractFunction function) { final String reference = function.getReference(); assertNotNull("Reference must not be null", reference); assertFalse("Reference must not be empty", reference.isEmpty()); assertTrue("Reference must not be too short", reference.length() > 10); } protected void assertAllowedArguments(final AbstractFunction function, final ValueType[][] checkingData) { final ValueType[][] argTypes = function.getAllowedArgumentTypes(); for (final ValueType[] currentTypes : argTypes) { boolean found = false; for (final ValueType[] etalon : checkingData) { if (Arrays.deepEquals(currentTypes, etalon)) { found = true; break; } } if (!found) { fail("Found not allowed argument types " + Arrays.toString(currentTypes)); } } } protected File getCurrentTestPath() throws Exception { final File root = new File(this.getClass().getProtectionDomain().getCodeSource().getLocation().toURI()); final String clazz = this.getClass().getCanonicalName().replace('.', File.separatorChar)+".class"; return new File(root,clazz); } protected File getDestinationFolder(){ return destinationFolder.getRoot(); } protected void assertDestinationFolderEmpty() throws Exception { assertEquals("Destination folder must be enpty",0, destinationFolder.getRoot().list().length); } protected PreprocessorContext preparePreprocessorContext(final String sourceFolder) throws Exception { final PreprocessorContext preprocessorcontext = new PreprocessorContext(); preprocessorcontext.setSourceDirectories(sourceFolder); preprocessorcontext.setDestinationDirectory(destinationFolder.getRoot().getAbsolutePath()); return preprocessorcontext; } protected void assertFunction(final String expression, final Value expected) throws Exception { final PreprocessorContext context = preparePreprocessorContext("./"); final Value result = Expression.evalExpression(expression, context); assertEquals("Must be equals", expected, result); } protected Throwable getRootCause(final Throwable thr){ if (thr == null) return null; Throwable t = thr; while(t!=null){ if (t.getCause()==null) return t; t = t.getCause(); } return t; } protected void assertFunctionException(final String expression) throws IOException { final PreprocessorContext context = new PreprocessorContext(); try { Expression.evalExpression(expression, context); fail("Must throw RuntimeException [" + expression + ']'); } catch (RuntimeException ex) { final PreprocessorException cause = PreprocessorException.extractPreprocessorException(ex); if (cause!=null) return; ex.printStackTrace(); fail("Expression must contain preprocessor exception as cause [" + expression + "] but it doesn't have ["+ex.getClass().getName()+']'); } } } FunctionABSTest.java000077500000000000000000000041641263163240400353320ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionABSTest extends AbstractFunctionTest { private static final FunctionABS HANDLER = new FunctionABS(); @Test public void testExecution_Int() throws Exception { assertFunction("abs(-10)", Value.valueOf(Long.valueOf(10))); assertFunction("abs(1-3*2)", Value.valueOf(Long.valueOf(5))); assertDestinationFolderEmpty(); } @Test public void testExecution_Float() throws Exception { assertFunction("abs(-10.5)", Value.valueOf(Float.valueOf(10.5f))); assertDestinationFolderEmpty(); } @Test public void testExecution_wrongCases() throws Exception { assertFunctionException("abs(\"test\")"); assertFunctionException("abs()"); assertFunctionException("abs(false)"); assertFunctionException("abs(1,2,3)"); assertDestinationFolderEmpty(); } @Override public void testName() { assertEquals("abs", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.INT}, {ValueType.FLOAT}}); } @Override public void testResultType() { assertEquals(ValueType.ANY, HANDLER.getResultType()); } } FunctionDefinedByUserTest.java000077500000000000000000000050041263163240400374070ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.expression.Value; import static org.mockito.Mockito.*; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.extension.PreprocessorExtension; import org.junit.Test; import org.mockito.AdditionalMatchers; import static org.junit.Assert.*; public class FunctionDefinedByUserTest { @Test public void testExecution_withArguments() { final PreprocessorExtension mock = mock(PreprocessorExtension.class); final PreprocessorContext context = new PreprocessorContext(); final Value testResult = Value.valueOf("result"); context.setPreprocessorExtension(mock); when(mock.processUserFunction(eq("test"), any(Value[].class))).thenReturn(testResult); when(mock.getUserFunctionArity(eq("test"))).thenReturn(Integer.valueOf(5)); assertEquals(testResult, Expression.evalExpression("$test(1,2,3,4,5+6)", context)); verify(mock).processUserFunction(eq("test"), AdditionalMatchers.aryEq(new Value[]{ Value.valueOf(Long.valueOf(1L)), Value.valueOf(Long.valueOf(2L)), Value.valueOf(Long.valueOf(3L)), Value.valueOf(Long.valueOf(4L)), Value.valueOf(Long.valueOf(11L))})); } @Test public void testExecution_withoutArguments() { final PreprocessorExtension mock = mock(PreprocessorExtension.class); final PreprocessorContext context = new PreprocessorContext(); final Value testResult = Value.valueOf("result"); context.setPreprocessorExtension(mock); when(mock.processUserFunction(eq("test"), any(Value[].class))).thenReturn(testResult); when(mock.getUserFunctionArity(eq("test"))).thenReturn(Integer.valueOf(0)); assertEquals(testResult, Expression.evalExpression("$test()", context)); verify(mock).processUserFunction(eq("test"), AdditionalMatchers.aryEq(new Value[0])); } } FunctionEVALFILETest.java000066400000000000000000000110611263163240400361030ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.*; import java.io.File; import org.junit.Test; import static org.junit.Assert.*; public class FunctionEVALFILETest extends AbstractFunctionTest { private static final FunctionEVALFILE HANDLER = new FunctionEVALFILE(); @Test public void testExecution_ErrorForUndefinedVariable() throws Exception { final File theTestPath = getCurrentTestPath(); final PreprocessorContext context = preparePreprocessorContext(theTestPath.getParent()); try{ Expression.evalExpression("evalfile(\"./eval/TestEval.java\")", context); }catch(Exception ex){ assertTrue(getRootCause(ex).getMessage().contains("hello_world")); } assertDestinationFolderEmpty(); } @Test public void testExecution_VisibilityLocalVariable() throws Exception { final File theTestPath = getCurrentTestPath(); final PreprocessorContext context = preparePreprocessorContext(theTestPath.getParent()); context.setLocalVariable("hello_world", Value.valueOf("Hello World!")); final Value result = Expression.evalExpression("evalfile(\"./eval/TestEval.java\")", context); assertEquals("System.out.println(\"Hello World!\");", result.asString().trim()); assertDestinationFolderEmpty(); } @Test public void testExecution_IncludedEvalCall() throws Exception { final File theTestPath = getCurrentTestPath(); final PreprocessorContext context = preparePreprocessorContext(theTestPath.getParent()); context.setLocalVariable("hello_world", Value.valueOf("Hello World!")); final Value result = Expression.evalExpression("evalfile(\"./eval/TestEvalWithIncluded.java\")", context); final String resultstr = result.asString().trim(); assertTrue(resultstr.startsWith("System.out.println(\"Hello World!\");")); assertTrue(resultstr.endsWith("TestEvalWithIncluded.java")); assertDestinationFolderEmpty(); } @Test public void testExecution_VisibilityGlobalVariable() throws Exception { final File theTestPath = getCurrentTestPath(); final PreprocessorContext context = preparePreprocessorContext(theTestPath.getParent()); context.setGlobalVariable("hello_world", Value.valueOf("Hello World!")); final Value result = Expression.evalExpression("evalfile(\"./eval/TestEval.java\")", context); assertEquals("System.out.println(\"Hello World!\");", result.asString().trim()); assertDestinationFolderEmpty(); } @Test public void testExecution_ConditionsInsideFile() throws Exception { final File theTestPath = getCurrentTestPath(); final PreprocessorContext context = preparePreprocessorContext(theTestPath.getParent()); context.setGlobalVariable("includemeth", Value.valueOf(true)); context.setGlobalVariable("hello_world", Value.valueOf("Hello World!")); final Value result = Expression.evalExpression("evalfile(\"./eval/TestEval.java\")", context); assertTrue(result.asString().contains("public void main(String ... args){")); assertDestinationFolderEmpty(); } @Test public void testExecution_Str_wrongCases() throws Exception { assertFunctionException("evalfile()"); assertFunctionException("evalfile(true)"); assertFunctionException("evalfile(,)"); assertFunctionException("evalfile(1,\"ttt\")"); assertFunctionException("evalfile(\"d\",\"ttt\")"); assertFunctionException("evalfile(123)"); assertDestinationFolderEmpty(); } @Override public void testName() { assertEquals("evalfile", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionISSUBSTRTest.java000077500000000000000000000047071263163240400362060ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionISSUBSTRTest extends AbstractFunctionTest { private static final FunctionISSUBSTR HANDLER = new FunctionISSUBSTR(); @Test public void testExecution_StrStr() throws Exception { assertFunction("issubstr(\"test\",\"onetesttwo\")", Value.BOOLEAN_TRUE); assertFunction("issubstr(\"Test\",\"onetesttwo\")", Value.BOOLEAN_TRUE); assertFunction("issubstr(\"test\",\"oneTesttwo\")", Value.BOOLEAN_TRUE); assertFunction("issubstr(\"test\",\"one\")", Value.BOOLEAN_FALSE); assertFunction("issubstr(\"\",\"one\")", Value.BOOLEAN_TRUE); assertFunction("issubstr(\"\",\"\")", Value.BOOLEAN_TRUE); assertDestinationFolderEmpty(); } @Test public void testExecution_StrStr_wrongCases() throws Exception { assertFunctionException("issubstr()"); assertFunctionException("issubstr(\"test\")"); assertFunctionException("issubstr(,)"); assertFunctionException("issubstr(1,\"ttt\")"); assertFunctionException("issubstr(false,\"ttt\")"); assertFunctionException("issubstr(false,true)"); assertFunctionException("issubstr(\"d\",1)"); assertDestinationFolderEmpty(); } @Override public void testName() { assertEquals("issubstr", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING, ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.BOOLEAN, HANDLER.getResultType()); } } FunctionROUNDTest.java000077500000000000000000000042051263163240400356100ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionROUNDTest extends AbstractFunctionTest { private static final FunctionROUND HANDLER = new FunctionROUND(); @Test public void testExecution_Float() throws Exception { assertFunction("round(4.7)", Value.valueOf(Long.valueOf(5L))); assertFunction("round(3.1+3.6)", Value.valueOf(Long.valueOf(7L))); assertDestinationFolderEmpty(); } @Test public void testExecution_Int() throws Exception { assertFunction("round(4)", Value.valueOf(Long.valueOf(4L))); assertDestinationFolderEmpty(); } @Test public void testExecution_wrongCases() throws Exception { assertFunctionException("round(true)"); assertFunctionException("round(\"aaa\")"); assertFunctionException("round()"); assertFunctionException("round(0.3,2.1)"); assertDestinationFolderEmpty(); } @Override public void testName() { assertEquals("round", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.INT}, {ValueType.FLOAT}}); } @Override public void testResultType() { assertEquals(ValueType.INT, HANDLER.getResultType()); } } FunctionSTR2CSVTest.java000066400000000000000000000037141263163240400360300ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionSTR2CSVTest extends AbstractFunctionTest { private static final FunctionSTR2CSV HANDLER = new FunctionSTR2CSV(); @Test public void testExecution_Str() throws Exception { assertFunction("str2csv(\"1,2\")", Value.valueOf("\"1,2\"")); assertFunction("str2csv(\"33\")", Value.valueOf("33")); assertDestinationFolderEmpty(); } @Test public void testExecution_wrongCases() throws Exception { assertFunctionException("str2csv()"); assertFunctionException("str2csv(1,2)"); assertFunctionException("str2csv(true)"); assertFunctionException("str2csv(3)"); assertDestinationFolderEmpty(); } @Override public void testName() { assertEquals("str2csv", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionSTR2INTTest.java000077500000000000000000000036341263163240400360330ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionSTR2INTTest extends AbstractFunctionTest { private static final FunctionSTR2INT HANDLER = new FunctionSTR2INT(); @Test public void testExecute_Str() throws Exception { assertFunction("str2int(\"100\")", Value.valueOf(Long.valueOf(100L))); assertFunction("str2int(\"0\")", Value.INT_ZERO); assertDestinationFolderEmpty(); } @Test public void testExecute_wrongCase() throws Exception { assertFunctionException("str2int(true)"); assertFunctionException("str2int(0.3)"); assertFunctionException("str2int(1,2)"); assertDestinationFolderEmpty(); } @Override public void testName() { assertEquals("str2int", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.INT, HANDLER.getResultType()); } } FunctionSTR2JAVATest.java000066400000000000000000000050601263163240400361120ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import org.junit.Test; import static org.junit.Assert.*; public class FunctionSTR2JAVATest extends AbstractFunctionTest { private static final FunctionSTR2JAVA HANDLER = new FunctionSTR2JAVA(); @Test public void testExecution_NoSplit() throws Exception { assertFunction("str2java(\"\",false)", Value.valueOf("")); assertFunction("str2java(\"hello\nworld\",false)", Value.valueOf("hello\\nworld")); assertDestinationFolderEmpty(); } @Test public void testExecution_Split() throws Exception { assertFunction("str2java(\"\",true)", Value.valueOf("\"\"")); assertFunction("str2java(\"hello\nworld\",true)", Value.valueOf("\"hello\\n\""+PreprocessorUtils.getNextLineCodes()+"+\"world\"")); assertFunction("str2java(\"hello\nworld\n\",true)", Value.valueOf("\"hello\\n\""+PreprocessorUtils.getNextLineCodes()+"+\"world\\n\"")); assertDestinationFolderEmpty(); } @Test public void testExecution_wrongCases() throws Exception { assertFunctionException("str2web()"); assertFunctionException("str2web(1,2)"); assertFunctionException("str2web(true)"); assertFunctionException("str2web(true,\"ss\")"); assertFunctionException("str2web(\"ss\",3)"); assertDestinationFolderEmpty(); } @Override public void testName() { assertEquals("str2java", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING, ValueType.BOOLEAN}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionSTR2JSONTest.java000066400000000000000000000037421263163240400361470ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionSTR2JSONTest extends AbstractFunctionTest { private static final FunctionSTR2JSON HANDLER = new FunctionSTR2JSON(); @Test public void testExecution_Str() throws Exception { assertFunction("str2json(\"\\\"hmm\\\"\")", Value.valueOf("\\\"hmm\\\"")); assertFunction("str2json(\"33\")", Value.valueOf("33")); assertDestinationFolderEmpty(); } @Test public void testExecution_wrongCases() throws Exception { assertFunctionException("str2json()"); assertFunctionException("str2json(1,2)"); assertFunctionException("str2json(true)"); assertFunctionException("str2json(3)"); assertDestinationFolderEmpty(); } @Override public void testName() { assertEquals("str2json", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionSTR2JSTest.java000066400000000000000000000037161263163240400357130ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionSTR2JSTest extends AbstractFunctionTest { private static final FunctionSTR2JS HANDLER = new FunctionSTR2JS(); @Test public void testExecution_Str() throws Exception { assertFunction("str2js(\"\\\"1,2\\\"\")", Value.valueOf("\\\"1,2\\\"")); assertFunction("str2js(\"33\")", Value.valueOf("33")); assertDestinationFolderEmpty(); } @Test public void testExecution_wrongCases() throws Exception { assertFunctionException("str2js()"); assertFunctionException("str2js(1,2)"); assertFunctionException("str2js(true)"); assertFunctionException("str2js(3)"); assertDestinationFolderEmpty(); } @Override public void testName() { assertEquals("str2js", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionSTR2WEBTest.java000077500000000000000000000040221263163240400360060ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionSTR2WEBTest extends AbstractFunctionTest { private static final FunctionSTR2WEB HANDLER = new FunctionSTR2WEB(); @Test public void testExecution_Str() throws Exception { assertFunction("str2web(\"\")", Value.valueOf("<hello>")); assertFunction("str2web(\"<привет>\")", Value.valueOf("<привет>")); assertDestinationFolderEmpty(); } @Test public void testExecution_wrongCases() throws Exception { assertFunctionException("str2web()"); assertFunctionException("str2web(1,2)"); assertFunctionException("str2web(true)"); assertFunctionException("str2web(3)"); assertDestinationFolderEmpty(); } @Override public void testName() { assertEquals("str2web", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionSTR2XMLTest.java000066400000000000000000000037221263163240400360340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionSTR2XMLTest extends AbstractFunctionTest { private static final FunctionSTR2XML HANDLER = new FunctionSTR2XML(); @Test public void testExecution_Str() throws Exception { assertFunction("str2xml(\"<12/>\")", Value.valueOf("<12/>")); assertFunction("str2xml(\"33\")", Value.valueOf("33")); assertDestinationFolderEmpty(); } @Test public void testExecution_wrongCases() throws Exception { assertFunctionException("str2xml()"); assertFunctionException("str2xml(1,2)"); assertFunctionException("str2xml(true)"); assertFunctionException("str2xml(3)"); assertDestinationFolderEmpty(); } @Override public void testName() { assertEquals("str2xml", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionSTRLENTest.java000077500000000000000000000036741263163240400357410ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionSTRLENTest extends AbstractFunctionTest { private static final FunctionSTRLEN HANDLER = new FunctionSTRLEN(); @Test public void testExecution_Str() throws Exception { assertFunction("strlen(\"hello world\")", Value.valueOf(Long.valueOf(11L))); assertDestinationFolderEmpty(); } @Test public void testExecution_wrongCases() throws Exception { assertFunctionException("strlen()"); assertFunctionException("strlen(11)"); assertFunctionException("strlen(true)"); assertFunctionException("strlen(1,2)"); assertFunctionException("strlen(,)"); assertDestinationFolderEmpty(); } @Override public void testName() { assertEquals("strlen", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.INT, HANDLER.getResultType()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/000077500000000000000000000000001263163240400323635ustar00rootroot00000000000000AbstractFunctionXMLTest.java000077500000000000000000000036041263163240400376470ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.functions.AbstractFunctionTest; import java.io.File; import org.junit.Before; import static org.mockito.Mockito.*; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; public abstract class AbstractFunctionXMLTest extends AbstractFunctionTest { protected PreprocessorContext SPY_CONTEXT; protected Value OPENED_DOCUMENT_ID; protected Value OPENED_DOCUMENT_ROOT; @Before public void initTest() throws Exception { SPY_CONTEXT = spy(new PreprocessorContext()); final File thisRoot = new File(this.getClass().getResource("./").toURI()); doAnswer(new Answer() { @Override public Object answer(final InvocationOnMock invocation) throws Throwable { final String name = (String) invocation.getArguments()[0]; return new File(thisRoot, name); } }).when(SPY_CONTEXT).getSourceFile(any(String.class)); OPENED_DOCUMENT_ID = new FunctionXML_OPEN().executeStr(SPY_CONTEXT, Value.valueOf("test.xml")); OPENED_DOCUMENT_ROOT = new FunctionXML_ROOT().executeStr(SPY_CONTEXT, OPENED_DOCUMENT_ID); } } FunctionXML_ATTRTest.java000077500000000000000000000045511263163240400370170ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionXML_ATTRTest extends AbstractFunctionXMLTest { private static final FunctionXML_ATTR HANDLER = new FunctionXML_ATTR(); @Test(expected = PreprocessorException.class) public void testExecution_WrongAttributeName() throws Exception { HANDLER.executeStrStr(SPY_CONTEXT, OPENED_DOCUMENT_ID, Value.valueOf("lasjdlksajdlksajdlksad")); } @Test(expected = PreprocessorException.class) public void testExecution_WrongElementId() throws Exception { HANDLER.executeStrStr(SPY_CONTEXT, Value.valueOf("kajshdjksaoiqweqwjdsa"), Value.valueOf("test")); } @Test public void testExecution_ExistsAttribute() throws Exception { assertEquals("hello", HANDLER.executeStrStr(SPY_CONTEXT, OPENED_DOCUMENT_ROOT, Value.valueOf("attr")).asString()); } @Test public void testExecution_nonExistsAttribute() throws Exception { assertEquals("", HANDLER.executeStrStr(SPY_CONTEXT, OPENED_DOCUMENT_ROOT, Value.valueOf("hhhmattr")).asString()); } @Override public void testName() { assertEquals("xml_attr", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING, ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionXML_GETTest.java000077500000000000000000000067711263163240400366720ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionXML_GETTest extends AbstractFunctionXMLTest { private static final FunctionXML_GET HANDLER = new FunctionXML_GET(); private static final FunctionXML_TEXT GETTEXT = new FunctionXML_TEXT(); @Test(expected = PreprocessorException.class) public void testExecution_WrongElementId() throws Exception { HANDLER.executeStrInt(SPY_CONTEXT, Value.valueOf("12qwewqe"), Value.INT_ZERO); } @Test(expected = PreprocessorException.class) public void testExecution_WrongIndex() throws Exception { final Value elementList = new FunctionXML_LIST().executeStrStr(SPY_CONTEXT, OPENED_DOCUMENT_ROOT, Value.valueOf("element")); HANDLER.executeStrInt(SPY_CONTEXT, elementList, Value.valueOf(Long.valueOf(-1))); } @Test public void testExecution() throws Exception { final Value elementList = new FunctionXML_LIST().executeStrStr(SPY_CONTEXT, OPENED_DOCUMENT_ROOT, Value.valueOf("element")); assertEquals("elem1", GETTEXT.executeStr(SPY_CONTEXT, HANDLER.executeStrInt(SPY_CONTEXT, elementList, Value.INT_ZERO)).asString()); assertEquals("elem2", GETTEXT.executeStr(SPY_CONTEXT, HANDLER.executeStrInt(SPY_CONTEXT, elementList, Value.INT_ONE)).asString()); assertEquals("elem3", GETTEXT.executeStr(SPY_CONTEXT, HANDLER.executeStrInt(SPY_CONTEXT, elementList, Value.INT_TWO)).asString()); assertEquals("", GETTEXT.executeStr(SPY_CONTEXT, HANDLER.executeStrInt(SPY_CONTEXT, elementList, Value.INT_THREE)).asString()); final Value elementList2 = new FunctionXML_LIST().executeStrStr(SPY_CONTEXT, OPENED_DOCUMENT_ROOT, Value.valueOf("element")); assertEquals("elem1", GETTEXT.executeStr(SPY_CONTEXT, HANDLER.executeStrInt(SPY_CONTEXT, elementList2, Value.INT_ZERO)).asString()); assertEquals("elem2", GETTEXT.executeStr(SPY_CONTEXT, HANDLER.executeStrInt(SPY_CONTEXT, elementList2, Value.INT_ONE)).asString()); assertEquals("elem3", GETTEXT.executeStr(SPY_CONTEXT, HANDLER.executeStrInt(SPY_CONTEXT, elementList2, Value.INT_TWO)).asString()); assertEquals("", GETTEXT.executeStr(SPY_CONTEXT, HANDLER.executeStrInt(SPY_CONTEXT, elementList2, Value.INT_THREE)).asString()); } @Override public void testName() { assertEquals("xml_get", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING, ValueType.INT}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionXML_LISTTest.java000077500000000000000000000041701263163240400370150ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionXML_LISTTest extends AbstractFunctionXMLTest { private static final FunctionXML_LIST HANDLER = new FunctionXML_LIST(); @Test(expected = PreprocessorException.class) public void testExecution_ForWrongElement() throws Exception { assertNotNull(HANDLER.executeStrStr(SPY_CONTEXT, Value.valueOf("some wrong"), Value.valueOf("nonexist"))); } @Test public void testExecution_ForNonExistElements() throws Exception { assertNotNull(HANDLER.executeStrStr(SPY_CONTEXT, OPENED_DOCUMENT_ROOT, Value.valueOf("nonexist"))); } @Test public void testExecution_ForExistElements() throws Exception { assertNotNull(HANDLER.executeStrStr(SPY_CONTEXT, OPENED_DOCUMENT_ROOT, Value.valueOf("element"))); } @Override public void testName() { assertEquals("xml_list", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING, ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionXML_NAMETest.java000077500000000000000000000035761263163240400367730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionXML_NAMETest extends AbstractFunctionXMLTest { private static final FunctionXML_NAME HANDLER = new FunctionXML_NAME(); @Test(expected = PreprocessorException.class) public void testExecution_WrongElementId() throws Exception { HANDLER.executeStr(SPY_CONTEXT, Value.valueOf("nonexistelementaaaaaaaaaaa")); } @Test public void testExecution_RootElement() throws Exception { assertEquals("root", HANDLER.executeStr(SPY_CONTEXT, OPENED_DOCUMENT_ROOT).asString()); } @Override public void testName() { assertEquals("xml_name", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionXML_OPENTest.java000077500000000000000000000037671263163240400370160ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionXML_OPENTest extends AbstractFunctionXMLTest { private static final FunctionXML_OPEN HANDLER = new FunctionXML_OPEN(); @Test(expected = PreprocessorException.class) public void testExecute_FileNotFound() throws Exception { HANDLER.executeStr(SPY_CONTEXT, Value.valueOf("unknown_file.xxxxml")); } @Test(expected = PreprocessorException.class) public void testExecute_NoXMLFile() throws Exception { HANDLER.executeStr(SPY_CONTEXT, Value.valueOf("noxml.txt")); } @Test public void testExecute() throws Exception { HANDLER.executeStr(SPY_CONTEXT, Value.valueOf("test.xml")); } @Override public void testName() { assertEquals("xml_open", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionXML_ROOTTest.java000077500000000000000000000036111263163240400370240ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionXML_ROOTTest extends AbstractFunctionXMLTest { private static final FunctionXML_ROOT HANDLER = new FunctionXML_ROOT(); @Test(expected = PreprocessorException.class) public void testExecution_WrongDocId() throws Exception { HANDLER.executeStr(SPY_CONTEXT, Value.valueOf("jlskjlasjdsa123213213")); } @Test public void testExecution() throws Exception { assertEquals(OPENED_DOCUMENT_ID.asString() + "_#root", HANDLER.executeStr(SPY_CONTEXT, OPENED_DOCUMENT_ID).asString()); } @Override public void testName() { assertEquals("xml_root", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionXML_SIZETest.java000077500000000000000000000045741263163240400370240ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionXML_SIZETest extends AbstractFunctionXMLTest { private static final FunctionXML_SIZE HANDLER = new FunctionXML_SIZE(); @Test(expected = PreprocessorException.class) public void testExecution_WrongElementListID() throws Exception { HANDLER.executeStr(SPY_CONTEXT, Value.valueOf("ieqoidqoiuoiq")); } @Test(expected = PreprocessorException.class) public void testExecution_WrongElementType() throws Exception { HANDLER.executeStr(SPY_CONTEXT, OPENED_DOCUMENT_ID); } @Test public void testExecution() throws Exception { final Value languageElement = new FunctionXML_GET().executeStrInt(SPY_CONTEXT, new FunctionXML_LIST().executeStrStr(SPY_CONTEXT, OPENED_DOCUMENT_ROOT, Value.valueOf("languages")), Value.valueOf(0L)); final Value elementList = new FunctionXML_LIST().executeStrStr(SPY_CONTEXT, languageElement, Value.valueOf("language")); assertNotNull(elementList); assertEquals(6L, HANDLER.executeStr(SPY_CONTEXT, elementList).asLong().longValue()); } @Override public void testName() { assertEquals("xml_size", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.INT, HANDLER.getResultType()); } } FunctionXML_TEXTTest.java000077500000000000000000000040371263163240400370300ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionXML_TEXTTest extends AbstractFunctionXMLTest { private static final FunctionXML_TEXT HANDLER = new FunctionXML_TEXT(); @Test(expected = PreprocessorException.class) public void testExecution_IncompatibleCachedObjectId() throws Exception { HANDLER.executeStr(SPY_CONTEXT, OPENED_DOCUMENT_ID); } @Test public void testExecution() throws Exception { final Value elements = HANDLER.executeStr(SPY_CONTEXT, new FunctionXML_XELEMENT().executeStrStr(SPY_CONTEXT, OPENED_DOCUMENT_ID,Value.valueOf("/root/languages"))); assertEquals("rustext\n gertext\n esttext\n fintext\n frtext\n ittext", elements.asString().trim()); } @Override public void testName() { assertEquals("xml_text", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(1, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionXML_XELEMENTTest.java000066400000000000000000000044721263163240400374650ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionXML_XELEMENTTest extends AbstractFunctionXMLTest { private static final FunctionXML_XELEMENT HANDLER = new FunctionXML_XELEMENT(); @Test(expected = PreprocessorException.class) public void testExecution_ForWrongElement() throws Exception { assertNotNull(HANDLER.executeStrStr(SPY_CONTEXT, Value.valueOf("some wrong"), Value.valueOf("nonexist"))); } @Test(expected = PreprocessorException.class) public void testExecution_NonExistElement() throws Exception { HANDLER.executeStrStr(SPY_CONTEXT, OPENED_DOCUMENT_ID, Value.valueOf("/root/nonexist")); } @Test public void testExecution_ForExistElements() throws Exception { final Value value = HANDLER.executeStrStr(SPY_CONTEXT, OPENED_DOCUMENT_ID, Value.valueOf("/root/element")); assertNotNull(value); assertEquals("first", new FunctionXML_ATTR().executeStrStr(SPY_CONTEXT, value, Value.valueOf("attr")).asString()); } @Override public void testName() { assertEquals("xml_xelement", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING,ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } FunctionXML_XLISTTest.java000066400000000000000000000045751263163240400371530ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.functions.xml; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.expression.ValueType; import org.junit.Test; import static org.junit.Assert.*; public class FunctionXML_XLISTTest extends AbstractFunctionXMLTest { private static final FunctionXML_XLIST HANDLER = new FunctionXML_XLIST(); @Test(expected = PreprocessorException.class) public void testExecution_ForWrongElement() throws Exception { assertNotNull(HANDLER.executeStrStr(SPY_CONTEXT, Value.valueOf("some wrong"), Value.valueOf("nonexist"))); } @Test public void testExecution_NonExistElement() throws Exception { final Value value = HANDLER.executeStrStr(SPY_CONTEXT, OPENED_DOCUMENT_ID, Value.valueOf("/root/nonexist")); assertNotNull(value); assertEquals(0,new FunctionXML_SIZE().executeStr(SPY_CONTEXT, value).asLong().intValue()); } @Test public void testExecution_ForExistElements() throws Exception { final Value value = HANDLER.executeStrStr(SPY_CONTEXT, OPENED_DOCUMENT_ID, Value.valueOf("/root/element")); assertNotNull(value); assertEquals(4, new FunctionXML_SIZE().executeStr(SPY_CONTEXT, value).asLong().intValue()); } @Override public void testName() { assertEquals("xml_xlist", HANDLER.getName()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testAllowedArgumentTypes() { assertAllowedArguments(HANDLER, new ValueType[][]{{ValueType.STRING, ValueType.STRING}}); } @Override public void testResultType() { assertEquals(ValueType.STRING, HANDLER.getResultType()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/operators/000077500000000000000000000000001263163240400315715ustar00rootroot00000000000000AbstractOperatorTest.java000077500000000000000000000045641263163240400365100ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Expression; import com.igormaznitsa.jcp.expression.Value; import org.junit.Test; import static org.junit.Assert.*; public abstract class AbstractOperatorTest { @Test public abstract void testKeyword(); @Test public abstract void testReference(); @Test public abstract void testArity(); @Test public abstract void testPriority(); @Test public abstract void testExecution() throws Exception; @Test public abstract void testExecution_PreprocessorException() throws Exception; public void assertReference(final AbstractOperator operator) { final String reference = operator.getReference(); assertNotNull("The reference must not be null", reference); assertFalse("The reference must not be empty", reference.isEmpty()); assertTrue("The reference must be longer that 7 chars", reference.length() > 7); } public PreprocessorContext assertExecution(final Value expectedResult, final String expression) throws Exception { final PreprocessorContext context = new PreprocessorContext(); assertEquals("The expression result must be equals to the expected one", expectedResult, Expression.evalExpression(expression, context)); return context; } public void assertPreprocessorException(final String expression) { try { assertExecution(Value.INT_ZERO, expression); fail("Must throw PE"); } catch (PreprocessorException expected) { } catch (Exception unexpected) { unexpected.printStackTrace(); fail("Unexpected exception detected, must be you have a program error"); } } } OperatorADDTest.java000077500000000000000000000043011263163240400353220ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import org.junit.Test; import com.igormaznitsa.jcp.expression.Value; import static org.junit.Assert.*; public class OperatorADDTest extends AbstractOperatorTest { private static final OperatorADD HANDLER = new OperatorADD(); @Override public void testExecution() throws Exception { assertExecution(Value.valueOf(Long.valueOf(11)), "3+8"); assertExecution(Value.valueOf("helloworld"), "\"hello\"+\"world\""); assertExecution(Value.valueOf(Float.valueOf(2.2f)), "1.2+1"); assertExecution(Value.valueOf("1test"), "1+\"test\""); assertExecution(Value.valueOf("1.2test"), "1.2+\"test\""); } @Test public void testExecution_chain() throws Exception { assertExecution(Value.valueOf("1.2.3"), "1+\".\"+2+\".\"+3"); } @Override public void testExecution_PreprocessorException() throws Exception { assertPreprocessorException("+"); assertPreprocessorException("+1"); assertPreprocessorException("2+"); assertPreprocessorException("true+false"); assertPreprocessorException("1+true"); assertPreprocessorException("2.3+false"); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testKeyword() { assertEquals("+", HANDLER.getKeyword()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testPriority() { assertEquals(ExpressionItemPriority.ARITHMETIC_ADD_SUB, HANDLER.getExpressionItemPriority()); } } OperatorANDTest.java000077500000000000000000000044751263163240400353500ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; import org.junit.Test; import static org.junit.Assert.*; public class OperatorANDTest extends AbstractOperatorTest { private static final OperatorAND HANDLER = new OperatorAND(); @Test public void testExecution() throws Exception { assertExecution(Value.valueOf(Long.valueOf(1L)), "3 && 1"); assertExecution(Value.valueOf(Long.valueOf(0L)), "1 && 0"); assertExecution(Value.valueOf(Long.valueOf(1L)), "1 && 3"); assertExecution(Value.valueOf(Boolean.TRUE), "true && true"); assertExecution(Value.valueOf(Boolean.FALSE), "false && true"); assertExecution(Value.valueOf(Boolean.FALSE), "true && false"); assertExecution(Value.valueOf(Boolean.FALSE), "false && false"); assertExecution(Value.valueOf(Boolean.FALSE), "false && false && true"); assertExecution(Value.valueOf(Boolean.TRUE), "true && true && true"); } @Override public void testExecution_PreprocessorException() throws Exception { assertPreprocessorException("&&"); assertPreprocessorException("true &&"); assertPreprocessorException("&& false"); assertPreprocessorException("\"test\" && true"); assertPreprocessorException("false && 1.3"); } @Override public void testKeyword() { assertEquals("&&", HANDLER.getKeyword()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testPriority() { assertEquals(ExpressionItemPriority.LOGICAL, HANDLER.getExpressionItemPriority()); } } OperatorDIVTest.java000077500000000000000000000043671263163240400353700ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; import org.junit.Test; import static org.junit.Assert.*; public class OperatorDIVTest extends AbstractOperatorTest { private static final OperatorDIV HANDLER = new OperatorDIV(); @Override public void testExecution() throws Exception { assertExecution(Value.valueOf(Long.valueOf(5L)), "10/2"); assertExecution(Value.valueOf(Float.valueOf(1.5f)), "3.0/2"); assertExecution(Value.valueOf(Long.valueOf(1L)), "3/2"); } @Test public void testExecution_chain() throws Exception { assertExecution(Value.valueOf(8L), "160/4/5"); } @Override public void testExecution_PreprocessorException() { assertPreprocessorException("/"); assertPreprocessorException("1/"); assertPreprocessorException("/2.2"); assertPreprocessorException("1/true"); assertPreprocessorException("false/3"); assertPreprocessorException("\"hello\"/2.2"); assertPreprocessorException("1/\"hello\""); } @Test(expected = ArithmeticException.class) public void testExecution_arithmeticException() throws Exception { assertExecution(Value.INT_ZERO, "1/0"); } @Override public void testKeyword() { assertEquals("/", HANDLER.getKeyword()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testPriority() { assertEquals(ExpressionItemPriority.ARITHMETIC_MUL_DIV_MOD, HANDLER.getExpressionItemPriority()); } } OperatorEQUTest.java000077500000000000000000000043471263163240400353760ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; import static org.junit.Assert.*; public class OperatorEQUTest extends AbstractOperatorTest { private static final OperatorEQU HANDLER = new OperatorEQU(); @Override public void testExecution() throws Exception { assertExecution(Value.BOOLEAN_TRUE, "true==true"); assertExecution(Value.BOOLEAN_FALSE, "false==true"); assertExecution(Value.BOOLEAN_FALSE, "true==false"); assertExecution(Value.BOOLEAN_FALSE, "1==0"); assertExecution(Value.BOOLEAN_TRUE, "2==2"); assertExecution(Value.BOOLEAN_TRUE, "2.4==2.4"); assertExecution(Value.BOOLEAN_TRUE, "0x443==1091"); assertExecution(Value.BOOLEAN_TRUE, "1091==0x443"); assertExecution(Value.BOOLEAN_TRUE, "\"test\"==\"test\""); assertExecution(Value.BOOLEAN_FALSE, "\"test\"==\"test2\""); assertExecution(Value.BOOLEAN_TRUE, "1==1.0"); } @Override public void testExecution_PreprocessorException() throws Exception { assertPreprocessorException("true==1"); assertPreprocessorException("=="); assertPreprocessorException("1=="); assertPreprocessorException("==1"); } @Override public void testKeyword() { assertEquals("==", HANDLER.getKeyword()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testPriority() { assertEquals(ExpressionItemPriority.COMPARISON, HANDLER.getExpressionItemPriority()); } } OperatorGREATEQUTest.java000077500000000000000000000044751263163240400361630ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; import static org.junit.Assert.*; public class OperatorGREATEQUTest extends AbstractOperatorTest { private static final OperatorGREATEQU HANDLER = new OperatorGREATEQU(); @Override public void testKeyword() { assertEquals(">=", HANDLER.getKeyword()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testPriority() { assertEquals(ExpressionItemPriority.COMPARISON, HANDLER.getExpressionItemPriority()); } @Override public void testExecution() throws Exception { assertExecution(Value.BOOLEAN_TRUE, "1>=0"); assertExecution(Value.BOOLEAN_TRUE, "0>=0"); assertExecution(Value.BOOLEAN_TRUE, "\"test\">=\"t\""); assertExecution(Value.BOOLEAN_TRUE, "\"test\">=\"test\""); assertExecution(Value.BOOLEAN_FALSE, "\"t\">=\"test\""); assertExecution(Value.BOOLEAN_TRUE, "1.2>=1.1"); assertExecution(Value.BOOLEAN_FALSE, "1.5>=2.3"); assertExecution(Value.BOOLEAN_TRUE, "1.5>=1.5"); } @Override public void testExecution_PreprocessorException() throws Exception { assertPreprocessorException(">="); assertPreprocessorException("1>="); assertPreprocessorException(">=0"); assertPreprocessorException("true>=\"test\""); assertPreprocessorException("true>=1"); assertPreprocessorException("2.3>=\"test\""); assertPreprocessorException("2.3>=false"); assertPreprocessorException("true>=false"); assertPreprocessorException("1>=false"); } } OperatorGREATTest.java000077500000000000000000000041651263163240400356040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; import static org.junit.Assert.*; public class OperatorGREATTest extends AbstractOperatorTest { private static final OperatorGREAT HANDLER = new OperatorGREAT(); @Override public void testKeyword() { assertEquals(">", HANDLER.getKeyword()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testPriority() { assertEquals(ExpressionItemPriority.COMPARISON, HANDLER.getExpressionItemPriority()); } @Override public void testExecution() throws Exception { assertExecution(Value.BOOLEAN_TRUE, "1>0"); assertExecution(Value.BOOLEAN_FALSE, "0>0"); assertExecution(Value.BOOLEAN_TRUE, "\"test\">\"t\""); assertExecution(Value.BOOLEAN_TRUE, "1.2>1.1"); assertExecution(Value.BOOLEAN_FALSE, "1.5>2.3"); } @Override public void testExecution_PreprocessorException() throws Exception { assertPreprocessorException(">"); assertPreprocessorException("1>"); assertPreprocessorException(">0"); assertPreprocessorException("true>\"test\""); assertPreprocessorException("true>1"); assertPreprocessorException("2.3>\"test\""); assertPreprocessorException("2.3>false"); assertPreprocessorException("true>false"); assertPreprocessorException("1>false"); } } OperatorLESSEQUTest.java000077500000000000000000000044731263163240400360650ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; import static org.junit.Assert.*; public class OperatorLESSEQUTest extends AbstractOperatorTest { private static final OperatorLESSEQU HANDLER = new OperatorLESSEQU(); @Override public void testKeyword() { assertEquals("<=", HANDLER.getKeyword()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testPriority() { assertEquals(ExpressionItemPriority.COMPARISON, HANDLER.getExpressionItemPriority()); } @Override public void testExecution() throws Exception { assertExecution(Value.BOOLEAN_FALSE, "1<=0"); assertExecution(Value.BOOLEAN_TRUE, "0<=0"); assertExecution(Value.BOOLEAN_FALSE, "\"test\"<=\"t\""); assertExecution(Value.BOOLEAN_TRUE, "\"test\"<=\"test\""); assertExecution(Value.BOOLEAN_TRUE, "\"t\"<=\"test\""); assertExecution(Value.BOOLEAN_FALSE, "1.2<=1.1"); assertExecution(Value.BOOLEAN_TRUE, "1.5<=2.3"); assertExecution(Value.BOOLEAN_TRUE, "1.5<=1.5"); } @Override public void testExecution_PreprocessorException() throws Exception { assertPreprocessorException("<="); assertPreprocessorException("1<="); assertPreprocessorException("<=0"); assertPreprocessorException("true<=\"test\""); assertPreprocessorException("true<=1"); assertPreprocessorException("2.3<=\"test\""); assertPreprocessorException("2.3<=false"); assertPreprocessorException("true<=false"); assertPreprocessorException("1<=false"); } } OperatorLESSTest.java000077500000000000000000000041641263163240400355070ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/expression/operators/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.expression.operators; import com.igormaznitsa.jcp.expression.ExpressionItemPriority; import com.igormaznitsa.jcp.expression.Value; import static org.junit.Assert.*; public class OperatorLESSTest extends AbstractOperatorTest { private static final OperatorLESS HANDLER = new OperatorLESS(); @Override public void testKeyword() { assertEquals("<", HANDLER.getKeyword()); } @Override public void testReference() { assertReference(HANDLER); } @Override public void testArity() { assertEquals(2, HANDLER.getArity()); } @Override public void testPriority() { assertEquals(ExpressionItemPriority.COMPARISON, HANDLER.getExpressionItemPriority()); } @Override public void testExecution() throws Exception { assertExecution(Value.BOOLEAN_FALSE, "1<0"); assertExecution(Value.BOOLEAN_FALSE, "0<0"); assertExecution(Value.BOOLEAN_FALSE, "\"test\"<\"t\""); assertExecution(Value.BOOLEAN_FALSE, "1.2<1.1"); assertExecution(Value.BOOLEAN_TRUE, "1.5<2.3"); } @Override public void testExecution_PreprocessorException() throws Exception { assertPreprocessorException("<"); assertPreprocessorException("1<"); assertPreprocessorException("<0"); assertPreprocessorException("true<\"test\""); assertPreprocessorException("true<1"); assertPreprocessorException("2.3<\"test\""); assertPreprocessorException("2.3= 0 ? "\"" + jarFile + "\"" : jarFile).replace('/', File.separatorChar).replace('\\', File.separatorChar); final String processedPomFile = (pomFile.indexOf(' ') >= 0 ? "\"" + pomFile + "\"" : pomFile).replace('/', File.separatorChar).replace('\\', File.separatorChar); // check that manifest contains main class assertMainClass(jarFile, "com.igormaznitsa.jcp.JCPreprocessor"); verifier.setCliOptions(Arrays.asList("-Dfile=" + processedJarFileName, "-DpomFile=" + processedPomFile)); verifier.executeGoal("install:install-file"); verifier.verifyErrorFreeLog(); } @Test @SuppressWarnings("unchecked") public void testPreprocessorUsage() throws Exception { final File testDir = ResourceExtractor.simpleExtractResources(this.getClass(), "./dummy_maven_project"); final Verifier verifier = new Verifier(testDir.getAbsolutePath()); verifier.deleteArtifact("com.igormaznitsa", "DummyMavenProjectToTestJCP", "1.0-SNAPSHOT", "jar"); verifier.executeGoal("package"); assertFalse("Folder must be removed", new File("./dummy_maven_project/target").exists()); final File resultJar = ResourceExtractor.simpleExtractResources(this.getClass(), "./dummy_maven_project/DummyMavenProjectToTestJCP-1.0-SNAPSHOT.jar"); verifier.verifyErrorFreeLog(); verifier.verifyTextInLog("PREPROCESSED_TESTING_COMPLETED"); verifier.verifyTextInLog("Cleaning has been started"); verifier.verifyTextInLog("Removing preprocessed source folder"); verifier.verifyTextInLog("Removing preprocessed test source folder"); verifier.verifyTextInLog("Scanning for deletable directories"); verifier.verifyTextInLog("Deleting directory:"); verifier.verifyTextInLog("Cleaning has been completed"); verifier.verifyTextInLog(" mvn.project.property.some.datapass.base=***** "); verifier.verifyTextInLog(" mvn.project.property.some.private.key=***** "); final JarAnalyzer jarAnalyzer = new JarAnalyzer(resultJar); List classEntries; try { classEntries = (List) jarAnalyzer.getClassEntries(); assertEquals("Must have only class", 1, classEntries.size()); final JarEntry classEntry = classEntries.get(0); assertEquals("Class must be placed in the path", "com/igormaznitsa/dummyproject/testmain2.class", classEntry.getName()); DataInputStream inStream = null; final byte[] buffer = new byte[(int) classEntry.getSize()]; Class instanceClass = null; try { inStream = new DataInputStream(jarAnalyzer.getEntryInputStream(classEntry)); inStream.readFully(buffer); instanceClass = new ClassLoader() { public Class loadClass(final byte[] data) throws ClassNotFoundException { return defineClass(null, data, 0, data.length); } }.loadClass(buffer); } finally { IOUtils.closeQuietly(inStream); } if (instanceClass!=null){ final Object instance = instanceClass.newInstance(); assertEquals("Must return the project name", "Dummy Maven Project To Test JCP", instanceClass.getMethod("test").invoke(instance)); }else{ fail("Unexpected state"); } } finally { jarAnalyzer.closeQuietly(); } } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/maven/000077500000000000000000000000001263163240400264625ustar00rootroot00000000000000MavenPropertiesImporterTest.java000066400000000000000000000030061263163240400347520ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/maven/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.maven; import org.apache.maven.artifact.Artifact; import org.apache.maven.project.MavenProject; import org.junit.Test; import org.mockito.Mockito; import static org.junit.Assert.*; public class MavenPropertiesImporterTest { @Test public void testNormalizeGetter() { assertEquals("getHelloWorld", MavenPropertiesImporter.normalizeGetter("helloWorld")); } @Test public void testRequestProperty() throws Exception { final String property = "project.artifact.dependencyConflictId"; final MavenProject mockProject = Mockito.mock(MavenProject.class); final Artifact mockArtifact = Mockito.mock(Artifact.class); Mockito.when(mockProject.getArtifact()).thenReturn(mockArtifact); Mockito.when(mockArtifact.getDependencyConflictId()).thenReturn("nothing"); assertEquals("nothing", MavenPropertiesImporter.getProperty(mockProject, property)); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/maven/PreprocessorMojoTest.java000077500000000000000000000071421263163240400335070ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.maven; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.apache.maven.plugin.testing.AbstractMojoTestCase; import org.junit.After; import org.junit.Before; import org.junit.Test; public class PreprocessorMojoTest extends AbstractMojoTestCase { private static void assertArrayEqualsWithoutOrders(final Object[] array1, final Object[] array2) { final List list1 = new ArrayList(Arrays.asList(array1)); final List list2 = new ArrayList(Arrays.asList(array2)); while (!list1.isEmpty() && !list2.isEmpty()) { final Object list1obj = list1.get(0); for (int i = 0; i < list2.size(); i++) { if (list2.get(i).equals(list1obj)) { list2.remove(i); break; } } list1.remove(0); } assertTrue("Different values in arrays", list1.isEmpty() && list2.isEmpty()); } @Before @Override protected void setUp() throws Exception { super.setUp(); } @After @Override protected void tearDown() throws Exception { super.tearDown(); } @Test public void testConfiguration() throws Exception { final File testPom = new File(this.getClass().getResource("preprocessor_mojo_test_cfg.xml").toURI()); assertTrue("Must be existing", testPom.exists()); final PreprocessorMojo mojo = (PreprocessorMojo) lookupMojo("preprocess", testPom); assertNotNull("Must not be null", mojo); final PreprocessorContext context = mojo.makePreprocessorContext(); assertEquals("/", context.getSourceDirectories()); assertEquals("destination_dir", context.getDestinationDirectoryAsFile().getName()); assertArrayEqualsWithoutOrders(new String[]{"xml", "html"}, context.getExcludedFileExtensions()); assertArrayEqualsWithoutOrders(new String[]{"java", "txt"}, context.getProcessingFileExtensions()); assertEquals("UTF-16", context.getInCharacterEncoding()); assertEquals("UTF-32", context.getOutCharacterEncoding()); assertTrue("Must be true", context.isRemoveComments()); assertTrue("Must be true", context.isVerbose()); assertTrue("Must be true", context.isFileOutputDisabled()); assertTrue("Must be true", context.doesClearDestinationDirBefore()); assertTrue("Must be true", context.isKeepLines()); assertTrue("Must be true", context.isCareForLastNextLine()); assertTrue("Must be true", context.isCompareDestination()); final File[] cfgfiles = context.getConfigFiles(); assertEquals("Must be two", 2, cfgfiles.length); assertEquals("Must be test1.cfg", "test1.cfg", cfgfiles[0].getName()); assertEquals("Must be test2.cfg", "test2.cfg", cfgfiles[1].getName()); assertEquals("Must be 3", Value.INT_THREE, context.findVariableForName("globalvar1")); assertEquals("Must be 'hello world'", Value.valueOf("hello world"), context.findVariableForName("globalvar2")); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/removers/000077500000000000000000000000001263163240400272165ustar00rootroot00000000000000JavaCommentsRemoverTest.java000066400000000000000000000055541263163240400346020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/removers/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.removers; import java.io.StringReader; import java.io.StringWriter; import org.junit.Test; import static org.junit.Assert.*; public class JavaCommentsRemoverTest { @Test public void testRemovingSingleStringComments() throws Exception { final String SRC = "class main() {\n// hello world\nSystem.out.println(\"hello // world\");// a comment\n}"; final String DST = "class main() {\n\nSystem.out.println(\"hello // world\");\n}"; final StringReader reader = new StringReader(SRC); final StringWriter writer = new StringWriter(256); new JavaCommentsRemover(reader, writer).process(); assertEquals("Must be the same", DST, writer.toString()); } @Test public void testMultilineStringComments() throws Exception { final String SRC = "class main() {/**\ntest\n*/\n\n// hello world\nSystem.out.println(\"hello /*ooo*/ world\");/* a comment*/\n/* aslajdhkajhdkqwiueyoqiweuoqwueoqwiue}"; final String DST = "class main() {\n\n\nSystem.out.println(\"hello /*ooo*/ world\");\n"; final StringReader reader = new StringReader(SRC); final StringWriter writer = new StringWriter(256); new JavaCommentsRemover(reader, writer).process(); assertEquals("Must be the same", DST, writer.toString()); } @Test public void testMultipleStarsAtComments() throws Exception { final String SRC = "class main() {/**\ntest\n**/\n\n// hello world\nSystem.out.println(/**** some *** comment** ***/\"hello /*ooo*/ world\"/**** some *** comment*/);/* a comment*/\n/* aslajdhkajhdkqwiueyoqiweuoqwueoqwiue}"; final String DST = "class main() {\n\n\nSystem.out.println(\"hello /*ooo*/ world\");\n"; final StringReader reader = new StringReader(SRC); final StringWriter writer = new StringWriter(256); new JavaCommentsRemover(reader, writer).process(); assertEquals("Must be the same", DST, writer.toString()); } @Test public void testTabulation() throws Exception { final String SRC = "\thello world();//test"; final String DST = "\thello world();"; final StringReader reader = new StringReader(SRC); final StringWriter writer = new StringWriter(256); new JavaCommentsRemover(reader, writer).process(); assertEquals("Must be the same", DST, writer.toString()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/usecases/000077500000000000000000000000001263163240400271675ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/usecases/AbortTest.java000066400000000000000000000022341263163240400317420ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.usecases; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; public class AbortTest extends AbstractUseCaseTest { @Override protected void tuneContext(PreprocessorContext context) { context.setCareForLastNextLine(true); } @Override public void check(PreprocessorContext context, JCPreprocessor.PreprocessingStatistics stat) throws Exception { assertEquals(1,stat.getNumberOfPreprocessed()); assertEquals(0,stat.getNumberOfCopied()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/usecases/AbstractUseCaseTest.java000066400000000000000000000075501263163240400337150ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.usecases; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import java.io.File; import org.apache.commons.io.FileUtils; import org.junit.*; import static org.junit.Assert.*; import org.junit.rules.TemporaryFolder; public abstract class AbstractUseCaseTest { protected TemporaryFolder tmpResultFolder; protected File sourceFolder; protected File etalonFolder; @Before public void before() throws Exception { final File testDir = new File(this.getClass().getProtectionDomain().getCodeSource().getLocation().toURI()); final File base = new File(testDir, this.getClass().getName().replace('.', File.separatorChar)); final File simulfolder = new File(testDir.getParentFile(), "usecase_tests"); simulfolder.mkdirs(); tmpResultFolder = new TemporaryFolder(simulfolder); tmpResultFolder.create(); sourceFolder = new File(base, "src"); etalonFolder = new File(base, "etl"); } @After public void after() throws Exception { if (deleteResult()) { try { FileUtils.cleanDirectory(tmpResultFolder.getRoot()); } finally { tmpResultFolder.delete(); } } } public boolean deleteResult() { return true; } public abstract void check(PreprocessorContext context, JCPreprocessor.PreprocessingStatistics stat) throws Exception; private void assertFolder(final File folder1, final File folder2) throws Exception { assertTrue("Folder 1 must be folder",folder1.isDirectory()); assertTrue("Folder 2 must be folder",folder2.isDirectory()); final File [] folder1files = folder1.listFiles(); File [] folde2files = folder2.listFiles(); assertEquals("Must have the same number of files and folders", folder1files.length, folde2files.length); folde2files = null; for(final File f : folder1files){ final File f2 = new File(folder2,f.getName()); if (!f2.exists()){ fail("Doesn't exist :"+f2.getAbsolutePath()); } if (f.isFile() && !f2.isFile()){ fail("Must be file : "+f2.getAbsolutePath()); }else if (f.isDirectory()){ if (!f2.isDirectory()) fail("Must be file : " + f2.getAbsolutePath()); else assertFolder(f, f2); }else{ assertEquals("File size must be the same ("+f.getName()+')',f.length(),f2.length()); assertEquals("Checksum must be equal ("+f.getName()+')',FileUtils.checksumCRC32(f),FileUtils.checksumCRC32(f2)); } } } protected void tuneContext(final PreprocessorContext context){ } @Test public final void main() throws Exception { final PreprocessorContext context = new PreprocessorContext(); context.setClearDestinationDirBefore(true); context.setSourceDirectories(sourceFolder.getAbsolutePath()); context.setDestinationDirectory(tmpResultFolder.getRoot().getAbsolutePath()); context.setExcludedFileExtensions("xml"); context.setVerbose(true); tuneContext(context); System.setProperty("jcp.line.separator", "\n"); JCPreprocessor preprocessor = new JCPreprocessor(context); final JCPreprocessor.PreprocessingStatistics stat = preprocessor.execute(); assertFolder(etalonFolder, tmpResultFolder.getRoot()); check(context,stat); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/usecases/DefUndefTest.java000066400000000000000000000020651263163240400323550ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.usecases; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.assertEquals; public class DefUndefTest extends AbstractUseCaseTest { @Override public void check(PreprocessorContext context, JCPreprocessor.PreprocessingStatistics stat) throws Exception { assertEquals(0,stat.getNumberOfCopied()); assertEquals(1,stat.getNumberOfPreprocessed()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/usecases/EvalFileTest.java000066400000000000000000000022441263163240400323630ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.usecases; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; public class EvalFileTest extends AbstractUseCaseTest { @Override protected void tuneContext(PreprocessorContext context) { context.setCareForLastNextLine(true); } @Override public void check(PreprocessorContext context, JCPreprocessor.PreprocessingStatistics stat) throws Exception { assertEquals(1,stat.getNumberOfPreprocessed()); assertEquals(0,stat.getNumberOfCopied()); } } ExternalGlobalDefFileTest.java000066400000000000000000000023701263163240400347370ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/usecases/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.usecases; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import java.io.File; import static org.junit.Assert.assertEquals; public class ExternalGlobalDefFileTest extends AbstractUseCaseTest { @Override protected void tuneContext(PreprocessorContext context) { context.addConfigFile(new File(sourceFolder.getParent(),"list.cfg")); } @Override public void check(final PreprocessorContext context, final JCPreprocessor.PreprocessingStatistics stat) throws Exception { assertEquals(0,stat.getNumberOfCopied()); assertEquals(1,stat.getNumberOfPreprocessed()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/usecases/GenerationTest.java000066400000000000000000000020671263163240400327720ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.usecases; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.assertEquals; public class GenerationTest extends AbstractUseCaseTest { @Override public void check(PreprocessorContext context, JCPreprocessor.PreprocessingStatistics stat) throws Exception { assertEquals(0,stat.getNumberOfCopied()); assertEquals(1,stat.getNumberOfPreprocessed()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/usecases/IncludeAndExitTest.java000066400000000000000000000021071263163240400335320ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.usecases; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.assertEquals; public class IncludeAndExitTest extends AbstractUseCaseTest { @Override public void check(final PreprocessorContext context, final JCPreprocessor.PreprocessingStatistics stat) throws Exception { assertEquals(0,stat.getNumberOfCopied()); assertEquals(1,stat.getNumberOfPreprocessed()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/usecases/PrefixPostfixTest.java000066400000000000000000000020721263163240400335050ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.usecases; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.assertEquals; public class PrefixPostfixTest extends AbstractUseCaseTest { @Override public void check(PreprocessorContext context, JCPreprocessor.PreprocessingStatistics stat) throws Exception { assertEquals(0,stat.getNumberOfCopied()); assertEquals(1,stat.getNumberOfPreprocessed()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/usecases/SimpleTest.java000066400000000000000000000021001263163240400321140ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.usecases; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.assertEquals; public class SimpleTest extends AbstractUseCaseTest { @Override public void check(final PreprocessorContext context, final JCPreprocessor.PreprocessingStatistics stat) throws Exception { assertEquals(1,stat.getNumberOfPreprocessed()); assertEquals(0,stat.getNumberOfCopied()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/usecases/StaticSiteTest.java000066400000000000000000000020511263163240400327440ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.usecases; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.*; public class StaticSiteTest extends AbstractUseCaseTest { @Override public void check(PreprocessorContext context, JCPreprocessor.PreprocessingStatistics stat) throws Exception { assertEquals(10,stat.getNumberOfPreprocessed()); assertEquals(205,stat.getNumberOfCopied()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/usecases/Str2JavaTest.java000066400000000000000000000020631263163240400323270ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.usecases; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.assertEquals; public class Str2JavaTest extends AbstractUseCaseTest { @Override public void check(PreprocessorContext context, JCPreprocessor.PreprocessingStatistics stat) throws Exception { assertEquals(0,stat.getNumberOfCopied()); assertEquals(1,stat.getNumberOfPreprocessed()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/usecases/StringDirectiveTest.java000066400000000000000000000020741263163240400340020ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.usecases; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import static org.junit.Assert.assertEquals; public class StringDirectiveTest extends AbstractUseCaseTest { @Override public void check(PreprocessorContext context, JCPreprocessor.PreprocessingStatistics stat) throws Exception { assertEquals(0,stat.getNumberOfCopied()); assertEquals(1,stat.getNumberOfPreprocessed()); } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/usecases/UserFunctionTest.java000066400000000000000000000046601263163240400333240ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.usecases; import com.igormaznitsa.jcp.JCPreprocessor; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.extension.PreprocessorExtension; import static org.junit.Assert.*; public class UserFunctionTest extends AbstractUseCaseTest implements PreprocessorExtension { int calledfunc; int calledaction; @Override protected void tuneContext(PreprocessorContext context) { context.setPreprocessorExtension(this); } @Override public void check(PreprocessorContext context, JCPreprocessor.PreprocessingStatistics stat) throws Exception { assertEquals("User function must be called once", 1, calledfunc); assertEquals("User action must be called twice", 2, calledaction); assertEquals(0,stat.getNumberOfCopied()); assertEquals(1,stat.getNumberOfPreprocessed()); } @Override public boolean processAction(final PreprocessorContext context, final Value[] parameters) { calledaction ++; assertEquals(1000L, parameters[0].asLong().longValue()); assertEquals("hello", parameters[1].asString()); assertEquals(123L, parameters[2].asLong().longValue()); return true; } @Override public Value processUserFunction(final String functionName, final Value[] arguments) { if ("testfunc".equals(functionName) && arguments.length == 3){ calledfunc++; assertEquals(1L,arguments[0].asLong().longValue()); assertEquals("hry",arguments[1].asString()); assertEquals(3L,arguments[2].asLong().longValue()); return Value.valueOf("yayaya"); }else{ fail("Unexpected function '"+functionName+'\''); throw new RuntimeException("Error"); } } @Override public int getUserFunctionArity(final String functionName) { return functionName.equals("testfunc") ? 3 : -1; } } java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/utils/000077500000000000000000000000001263163240400265145ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/java/com/igormaznitsa/jcp/utils/PreprocessorUtilsTest.java000066400000000000000000000054761263163240400337420ustar00rootroot00000000000000/* * Copyright 2014 Igor Maznitsa (http://www.igormaznitsa.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.igormaznitsa.jcp.utils; import java.io.BufferedReader; import java.io.File; import java.io.InputStreamReader; import java.lang.reflect.Field; import java.nio.charset.Charset; import static org.junit.Assert.*; import org.junit.Test; public class PreprocessorUtilsTest { @Test public void testReplaceStringPrefix() throws Exception { final String[] testData = new String[]{"--ae:123", "-homa-", "-hbd", "---Some", "-", "--"}; final String[] processed = PreprocessorUtils.replaceStringPrefix(new String[]{"-", "--"}, "/", testData); assertArrayEquals(new String[]{"/ae:123", "/homa-", "/hbd", "/-Some", "/", "/"}, processed); } @Test public void testMakeFileReader_charsetAndBufferSizeChange() throws Exception { final Charset defaultCharset = Charset.defaultCharset(); final File testFile = new File(PreprocessorUtilsTest.class.getResource("somefile.txt").toURI()); Charset nonDefaultCharset = null; for (final Charset ch : Charset.availableCharsets().values()) { if (!defaultCharset.equals(ch)) { nonDefaultCharset = ch; break; } } assertNotNull("We must have found a non default charset, system must have more than one available charset", nonDefaultCharset); // some hack to get access to the wrapped reader final Field inField = BufferedReader.class.getDeclaredField("in"); inField.setAccessible(true); final Field cbField = BufferedReader.class.getDeclaredField("cb"); cbField.setAccessible(true); final int BUFFER_SIZE = 0xCAFE; final BufferedReader reader = PreprocessorUtils.makeFileReader(testFile, nonDefaultCharset.name(), BUFFER_SIZE); // check that we have selected the non standard charset final InputStreamReader wrappedReader = (InputStreamReader) inField.get(reader); assertNotNull("Must not be null", wrappedReader); assertEquals("The non default charset must be set", nonDefaultCharset.name(), wrappedReader.getEncoding()); // check that we have changed the buffer size final char[] insideCharBuffer = (char[]) cbField.get(reader); assertNotNull("Must not be null", insideCharBuffer); assertEquals("Must have our selected size", BUFFER_SIZE, insideCharBuffer.length); } } java-comment-preprocessor-6.0.1/src/test/resources/000077500000000000000000000000001263163240400224045ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/000077500000000000000000000000001263163240400231625ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/000077500000000000000000000000001263163240400256715ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/000077500000000000000000000000001263163240400264455ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/cmdline/000077500000000000000000000000001263163240400300605ustar00rootroot00000000000000global_variable_def.txt000066400000000000000000000000411263163240400344600ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/cmdline#some comment test="hello world" java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directives/000077500000000000000000000000001263163240400306065ustar00rootroot00000000000000directive_abort.txt000066400000000000000000000000601263163240400344310ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directives1 2 3 4 //#abort 5 6 ---START_ETALON--- 1 2 3 4 directive_action.txt000077500000000000000000000001751263163240400346110ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivestest //#action 1,2,3+4,5+6,true,"hello," end //#if false //#action unexpected //#endif ---START_ETALON--- test enddirective_comment_next_line.txt000066400000000000000000000001201263163240400370260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivesbegin //#// hello //#// test ---START_ETALON--- begin // hello // testdirective_define.txt000077500000000000000000000001601263163240400345600ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivestest //#define somevar //#define somenum 3*8 /*$somevar$*/ /*$somenum$*/ end ---START_ETALON--- test true 24 enddirective_definel.txt000066400000000000000000000001721263163240400347340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivestest //#definel somevar // test //#definel somenum 3*8 /*$somevar$*/ /*$somenum$*/ end ---START_ETALON--- test true 24 enddirective_echo.txt000077500000000000000000000001251263163240400342450ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivesstart //#local test=1 //#echo string /*$test+1$*/ ok end ---START_ETALON--- start enddirective_error.txt000066400000000000000000000001211263163240400344510ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivesstart //#local test=1 //#error "string"+(test+1) end ---START_ETALON--- start enddirective_excludeif.txt000066400000000000000000000001531263163240400352750ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivessome text test //#excludeif true //#_if false //#excludeif false //#_endif //#excludeif hello+world testdirective_exit.txt000066400000000000000000000000571263163240400343010ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivestest //#exit unexpected ---START_ETALON--- testdirective_exitif.txt000066400000000000000000000001301263163240400346100ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivestest //#exitif false expected //#exitif true unexpected ---START_ETALON--- test expecteddirective_global.txt000066400000000000000000000000531263163240400345640ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directives//#global xxx=10 ttt ---START_ETALON--- tttdirective_globalifelseendif.txt000066400000000000000000000005241263163240400367650ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directives//#_if true //#if true hello //#else world //#endif //#global expected=true //#_else //#_if true //#global expected=false //#_else //#global expected=false //#_endif //#global unexpected=false //#if false unexp //#else exp //#endif //#_endif test ---START_ETALON--- hello exp testdirective_globalifelseendif2.txt000066400000000000000000000002011263163240400370370ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directives//#if true a //#_if 0219384092384091 b //#_if true //#else c //#_endif d //#_else //#endif ---START_ETALON--- a bdirective_if_else_endif.txt000066400000000000000000000006411263163240400361020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directiveshello //#if false //#local test = 111 nonprocessed /*$test$*/ //#endif //#local x=true //#local y=false //#local z=false //#if x //#if y unexpected1 //#else //#if z unexpected2 //#else //#if !z expected //#endif //#endif //#endif //#else //#if y must not be out //#else unexpected3 //#endif //#endif world ---START_ETALON--- hello expected worlddirective_if_else_endif_with_keptlines.txt000066400000000000000000000015711263163240400412160ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directiveshello //#if false //#local test = 111 nonprocessed /*$test$*/ //#endif //#local x=true //#local y=false //#local z=false //#if x //#if y unexpected1 //#else //#if z unexpected2 //#else //#if !z expected //#endif //#endif //#endif //#else //#if y must not be out //#else unexpected3 //#endif //#endif world ---START_ETALON--- hello //JCP! if false //JCP! local test = 111 //JCP> nonprocessed /*$test$*/ //JCP! endif //JCP! local x=true //JCP! local y=false //JCP! local z=false //JCP! if x //JCP! if y //JCP> unexpected1 //JCP! else //JCP! if z //JCP> unexpected2 //JCP! else //JCP! if !z expected //JCP! endif //JCP! endif //JCP! endif //JCP! else //JCP! if y //JCP> must not be out //JCP! else //JCP> unexpected3 //JCP! endif //JCP! endif worlddirective_ifdef.txt000066400000000000000000000004061263163240400344030ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivesstart //#ifdef test unexpected //#else expected1 //#endif //#define test //#if true //#ifdef test expected2 //#else unexpected //#endif //#endif //#ifdef BYTECODE somebytecode //#endif end ---START_ETALON--- start expected1 expected2 somebytecode enddirective_ifdefined.txt000066400000000000000000000004221263163240400352410ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivesstart //#ifdefined test unexpected //#else expected1 //#endif //#define test //#if true //#ifdefined test expected2 //#else unexpected //#endif //#endif //#ifdefined BYTECODE somebytecode //#endif end ---START_ETALON--- start expected1 expected2 somebytecode enddirective_ifndef.txt000066400000000000000000000004111263163240400345550ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivesstart //#ifndef test expected1 //#else unexpected //#endif //#define test //#if true //#ifndef test unexpected //#else expected2 //#endif //#endif //#ifndef BYTECODE somebytecode //#endif end ---START_ETALON--- start expected1 expected2 somebytecode enddirective_include.txt000066400000000000000000000001701263163240400347470ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivesstart //#include "./directive_include2.txt" end ---START_ETALON--- start This text must be included and this one too enddirective_include2.txt000077500000000000000000000000531263163240400350340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivesThis text must be included and this one toodirective_local.txt000077500000000000000000000006051263163240400344240ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directives//#local l_stringGamesNumber = "" //#local l_menuID = "hello" //#local l_menuName = "menu" /*$l_menuID+l_menuName+l_stringGamesNumber$*/ //#if false //#local x =1 //#endif hello //#local x = 5 world //#local y= 10 and me //#local z=x+y //#local test.var = z+"."+x+"."+y /*$test.var$*/ ---START_ETALON--- hellomenu hello world and me 15.5.10 java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directives/directive_msg.txt000066400000000000000000000001631263163240400341730ustar00rootroot00000000000000start //#local test=1 //#msg string /*$test+1$*/ ok //#msg string /*$6*8$*/ ok end ---START_ETALON--- start enddirective_outdir.txt000066400000000000000000000002231263163240400346310ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directives//#local path="a/" //#outdir path+"expected" //#if false //#outdir path+"unexpected" //#endif /*$jcp.dst.dir$*/ ok ---START_ETALON--- a/expected okdirective_outdisabled.txt000066400000000000000000000001231263163240400356210ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directiveshello world //#- //#if true unexpected text //#endif ---START_ETALON--- hello worlddirective_outenabled.txt000066400000000000000000000001401263163240400354430ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directiveshello world //#- unexpected text //#+ expected text ---START_ETALON--- hello world expected textdirective_outname.txt000066400000000000000000000002061263163240400347740ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directives//#outname "expected.java" //#if false //#outname "unexpected.html" //#endif /*$jcp.dst.name$*/ ok ---START_ETALON--- expected.java okdirective_prefixpostfix.txt000077500000000000000000000011021263163240400362350ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directives//#postfix+ This string must be in the postfix //#postfix- This string must be in the normal (1) //#prefix+ This string must be in the prefix //#prefix- This string must be in the normal (2) //#if false //#postfix+ //#endif This string must be in the normal (3) //#if false //#prefix+ //#endif This string must be in the normal (4) ok ---START_ETALON--- This string must be in the prefix This string must be in the normal (1) This string must be in the normal (2) This string must be in the normal (3) This string must be in the normal (4) ok This string must be in the postfix directive_special.txt000066400000000000000000000002151263163240400347440ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directives//$hello /*$111+112$*/ world //$$hello /*$111+112$*/ world hello/*-*/world ---START_ETALON--- hello 223 world hello /*$111+112$*/ world hellodirective_undef.txt000066400000000000000000000002021263163240400344210ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivestest //#definel localone /*$somevar$*/ /*$localone$*/ //#undef somevar //#undef localone end ---START_ETALON--- test true true enddirective_warning.txt000066400000000000000000000001231263163240400347670ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivesstart //#local test=1 //#warning "string"+(test+1) end ---START_ETALON--- start enddirective_while_continue_break_end.txt000066400000000000000000000015171263163240400403400ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directivesbegin //#local counter = 3 //#while counter>0 //#if counter == 2 //#local counter = counter-1 //#continue //#endif //#local counter2 = 3 //#while counter2>0 //#if counter2==1 //#break //#endif /*$counter$*/ /*$counter2$*/ //#local counter2=counter2-1 //#end //#local counter=counter-1 //#end end //#local c=4 //#while c>=0 //#local c=c-1 //#if c==1 break detected //#break //#else /*$c$*/ //#endif //#end //#if false //#while true 000 //#continue //#break 222 //#local unknown = unknown //#break 111 //#while false //#if true 333 //#endif //#continue 444 //#end //#end //#endif endall ---START_ETALON--- begin 3 3 3 2 1 3 1 2 end 3 2 break detected endalljava-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directives/only_spaces.txt000066400000000000000000000006741263163240400336750ustar00rootroot00000000000000 ---START_ETALON--- java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/directives/specvars_ro.txt000066400000000000000000000005431263163240400336770ustar00rootroot00000000000000start //#outname "hello_world.jpg" line /*$__LINE__$*/ line /*$__LINE__$*/ line /*$__LINE__$*/ line /*$__LINE__$*/ line /*$__LINE__$*/ filesrc /*$__FILENAME__$*/ filesrc /*$jcp.src.name$*/ filedst /*$jcp.dst.name$*/ end ---START_ETALON--- start line 3 line 4 line 5 line 6 line 7 filesrc specvars_ro.txt filesrc specvars_ro.txt filedst hello_world.jpg endjava-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/exceptions/000077500000000000000000000000001263163240400306265ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/exceptions/wrong_bracket.txt000066400000000000000000000002271263163240400342170ustar00rootroot00000000000000//#local test=10 //#while test>0 //#local test=test-1 //#end //#if false //#local hello = (1+2)/45*334) //#endif //#local hello = ( testwrong_bracket_include.txt000066400000000000000000000002401263163240400356360ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/exceptionsufasd f dsasa dsa d sa d sa d sadli apodei qei pwqdsa d sad s ad sad sad s ad as d sad sad as d //#include "./wrong_bracket.txt" ijfda asd dasd as dsad java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/expression/000077500000000000000000000000001263163240400306445ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/expression/functions/000077500000000000000000000000001263163240400326545ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/expression/functions/eval/000077500000000000000000000000001263163240400336035ustar00rootroot00000000000000TestEval.java000066400000000000000000000010101263163240400361060ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/expression/functions/eval//#- package com.igormaznitsa.jcp; import com.igormaznitsa.jcp.context.PreprocessorContext; import com.igormaznitsa.jcp.exceptions.PreprocessorException; import com.igormaznitsa.jcp.expression.Value; import com.igormaznitsa.jcp.utils.PreprocessorUtils; import java.io.*; import static org.junit.Assert.*; import org.junit.Test; //#+ //#ifdefined includemeth public final class TestEval { public void main(String ... args){ //#endif System.out.println("/*$hello_world$*/"); //#ifdefined includemeth } } //#endif TestEvalWithIncluded.java000066400000000000000000000002301263163240400404150ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/expression/functions/eval//#- public final class TestEvalWithIncluded { public void main(String ... args){ //#+ /*$evalfile("./TestEval.java")+__filename__$*/ //#- } } //#+ java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/expression/functions/xml/000077500000000000000000000000001263163240400334545ustar00rootroot00000000000000noxml.txt000066400000000000000000000000561263163240400352740ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/expression/functions/xmladslkj ql;d sd sad sadsa d as wqe sd sad sadtest.xml000077500000000000000000000010621263163240400351000ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/expression/functions/xml elem1 elem2 elem3 ]]> rustext gertext esttext fintext frtext ittext java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/global_error_at.txt000066400000000000000000000000611263163240400323400ustar00rootroot00000000000000# error at the string 8 @yyejjw.txt var="h"java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/global_ok.txt000066400000000000000000000001651263163240400311410ustar00rootroot00000000000000# this is a comment #@ #@@@@@ #@@@ /T:ISO-8859-1 globalVar1="hello world" #tttest globalVar2=1*2+1 java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/000077500000000000000000000000001263163240400270615ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/ant/000077500000000000000000000000001263163240400276435ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/ant/build.xml000077500000000000000000000012021263163240400314620ustar00rootroot00000000000000 java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/ant/cfgfile.cfg000066400000000000000000000000421263163240400317170ustar00rootroot00000000000000#some comment cfg.test="hellocfg" java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/ant/src/000077500000000000000000000000001263163240400304325ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/ant/src/com/000077500000000000000000000000001263163240400312105ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/ant/src/com/igormaznitsa/000077500000000000000000000000001263163240400337175ustar00rootroot00000000000000000077500000000000000000000000001263163240400363625ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/ant/src/com/igormaznitsa/dummyprojectmain.java000066400000000000000000000003401263163240400401460ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/ant/src/com/igormaznitsa/dummyproject//#outname "testmain2.java" package com.igormaznitsa.dummyproject; //#- public class testmain { //#+ //$$public class testmain2 { public String test(){ return "/*$ant.ant.project.name+globalvar+cfg.test$*/"; } }java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/000077500000000000000000000000001263163240400301675ustar00rootroot00000000000000000077500000000000000000000000001263163240400341575ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_projectpom.xml000077500000000000000000000056171263163240400355100ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project 4.0.0 com.igormaznitsa DummyMavenProjectToTestJCP 1.0-SNAPSHOT jar Dummy Maven Project To Test JCP Dummy Maven Project UTF-8 worldUniverse helloBase 3.0 junit junit 4.11 test org.apache.maven.plugins maven-jar-plugin 2.5 ${basedir} com.igormaznitsa jcp 6.0.1 generateSources generate-sources preprocess true generateTests generate-test-sources preprocess true clearPreprocessingFolders clear clearOtherFolder clear ${basedir}/target org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.6 1.6 000077500000000000000000000000001263163240400347465ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project/src000077500000000000000000000000001263163240400356725ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project/src/main000077500000000000000000000000001263163240400366135ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project/src/main/java000077500000000000000000000000001263163240400373715ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project/src/main/java/com000077500000000000000000000000001263163240400421005ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project/src/main/java/com/igormaznitsa000077500000000000000000000000001263163240400446225ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project/src/main/java/com/igormaznitsa/dummyprojecttestmain.java000066400000000000000000000003111263163240400473040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project/src/main/java/com/igormaznitsa/dummyproject//#outname "testmain2.java" package com.igormaznitsa.dummyproject; //#- public class testmain { //#+ //$$public class testmain2 { public String test(){ return "/*$mvn.project.name$*/"; } }000077500000000000000000000000001263163240400357255ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project/src/test000077500000000000000000000000001263163240400366465ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project/src/test/java000077500000000000000000000000001263163240400374245ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project/src/test/java/com000077500000000000000000000000001263163240400421335ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project/src/test/java/com/igormaznitsa000077500000000000000000000000001263163240400446555ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project/src/test/java/com/igormaznitsa/dummyprojecttestmainTest.java000066400000000000000000000004421263163240400502040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/it/maven/dummy_maven_project/src/test/java/com/igormaznitsa/dummyprojectpackage com.igormaznitsa.dummyproject; import org.junit.Test; import static org.junit.Assert.*; public class testmainTest { @Test public void testTest(){ assertEquals("/*$mvn.project.name$*/",new testmain2().test()); System.out.println("PREPROCESSED_TESTING_COMPLETED"); } }java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/maven/000077500000000000000000000000001263163240400275535ustar00rootroot00000000000000preprocessor_mojo_test_cfg.xml000077500000000000000000000050231263163240400356510ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/maven 4.0.0 com.igormaznitsa JCPreprocessor-test 1.0-SNAPSHOT jar Test of Preprocessor Mojo The pom is used for test purposes UTF-8 com.igormaznitsa jcp 6.0.1 / destination_dir xml,html java,txt UTF-16 UTF-32 true true true true true true true true test1.cfg test2.cfg globalvar1 3 globalvar2 hello world generate-sources preprocess java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/removers/000077500000000000000000000000001263163240400303075ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/removers/java/000077500000000000000000000000001263163240400312305ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/removers/java/etalon.etl000066400000000000000000000005071263163240400332220ustar00rootroot00000000000000 public class test { public static void main(String ... args) { for(String a : args) { System.out.println("Arg: "+a); } System.out.println("//Hello /*World*/"); int a = 5+10; System.out.println("What a terrible comments/**aaaaa*/"); } } java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/removers/java/test_java.ppp000066400000000000000000000015101263163240400337260ustar00rootroot00000000000000//#outname "w_o_comments.ttt" /** * Test file to check the remove comment preprocessor feature * //////////////////////////////////////////////// * @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com) */ public class test { /* Some test method */ public static void main(String ... args) { // print each argument for(String a : args) { // to console System.out.println("Arg: "+a); } // ok, the loop is completed System.out.println("//Hello /*World*/"); // It's some test commented call /*It's a*/int a = /*It's the first arg*/5+/*It's the second one*/10;//Ha ha ha ha ha ha ha ha System.out.println("What a terrible comments/**aaaaa*/");// test /* float pi = 3.14f; // it's the most secret part of code, remove it after reading */ } }java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/000077500000000000000000000000001263163240400302605ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/AbortTest/000077500000000000000000000000001263163240400321675ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/AbortTest/etl/000077500000000000000000000000001263163240400327535ustar00rootroot00000000000000text.txt000066400000000000000000000000061263163240400344150ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/AbortTest/etl1 3 5 java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/AbortTest/src/000077500000000000000000000000001263163240400327565ustar00rootroot00000000000000text.txt000066400000000000000000000001041263163240400344170ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/AbortTest/src//#if false //#abort unexpected //#endif //#include "text1.txt" end text1.txt000066400000000000000000000000551263163240400345050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/AbortTest/src//#excludeif true 1 //#include "text2.txt" 2 text2.txt000066400000000000000000000000551263163240400345060ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/AbortTest/src//#excludeif true 3 //#include "text3.txt" 4 text3.txt000066400000000000000000000000501263163240400345020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/AbortTest/src//#excludeif true 5 //#abort expected 6 java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/DefUndefTest/000077500000000000000000000000001263163240400326005ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/DefUndefTest/etl/000077500000000000000000000000001263163240400333645ustar00rootroot00000000000000text.txt000066400000000000000000000000361263163240400350310ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/DefUndefTest/etlexpected1 expected2 expected3 java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/DefUndefTest/src/000077500000000000000000000000001263163240400333675ustar00rootroot00000000000000text.txt000066400000000000000000000003551263163240400350400ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/DefUndefTest/src//#ifdef HELLO_WORLD unexpected1 //#else expected1 //#endif //#define HELLO_WORLD "hello world" //#ifndef HELLO_WORLD unexpected2 //#else expected2 //#endif //#undef HELLO_WORLD //#ifdef HELLO_WORLD unexpected3 //#else expected3 //#endifjava-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/EvalFileTest/000077500000000000000000000000001263163240400326075ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/EvalFileTest/etl/000077500000000000000000000000001263163240400333735ustar00rootroot00000000000000000077500000000000000000000000001263163240400353015ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/EvalFileTest/etl/newfolderfile1.txt000066400000000000000000000000221263163240400370340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/EvalFileTest/etl/newfolderFile One ODYN end file2.txt000066400000000000000000000000211263163240400370340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/EvalFileTest/etl/newfolderFile Two DVA end java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/EvalFileTest/src/000077500000000000000000000000001263163240400333765ustar00rootroot00000000000000_file1.txt000066400000000000000000000000521263163240400352140ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/EvalFileTest/src//#excludeif TRUE File One /*$SOME_TEXT$*/_file2.txt000066400000000000000000000000521263163240400352150ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/EvalFileTest/src//#excludeif TRUE File Two /*$SOME_TEXT$*/text.txt000066400000000000000000000003351263163240400350450ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/EvalFileTest/src//#noautoflush //#outdir "newfolder" //#definel SOME_TEXT "ODYN" /*$evalfile("_file1.txt")$*/ end //#outname "file1.txt" //#flush //#definel SOME_TEXT "DVA" /*$evalfile("_file2.txt")$*/ end //#outname "file2.txt" //#flush000077500000000000000000000000001263163240400351635ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/ExternalGlobalDefFileTest000077500000000000000000000000001263163240400357475ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/ExternalGlobalDefFileTest/etltest.txt000066400000000000000000000000611263163240400374640ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/ExternalGlobalDefFileTest/etlhello world see on Java Comment Preprocessor end list.cfg000066400000000000000000000000671263163240400366220ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/ExternalGlobalDefFileTestvar1="world" var2="Java "+"Comment "+"Preprocessor" 000077500000000000000000000000001263163240400357525ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/ExternalGlobalDefFileTest/srctest.txt000066400000000000000000000000461263163240400374720ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/ExternalGlobalDefFileTest/srchello /*$var1$*/ see on /*$var2$*/ endjava-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/GenerationTest/000077500000000000000000000000001263163240400332135ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/GenerationTest/etl/000077500000000000000000000000001263163240400337775ustar00rootroot00000000000000file1.ttt000066400000000000000000000000071263163240400354520ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/GenerationTest/etlfile 1 file2.ttt000066400000000000000000000000071263163240400354530ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/GenerationTest/etlfile 2 file3.ttt000066400000000000000000000000071263163240400354540ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/GenerationTest/etlfile 3 java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/GenerationTest/src/000077500000000000000000000000001263163240400340025ustar00rootroot00000000000000text.txt000066400000000000000000000002631263163240400354510ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/GenerationTest/src//#noautoflush //#define COUNTER 1 //#while COUNTER<=3 file /*$COUNTER$*/ //#outname "file"+COUNTER+".ttt" //#define COUNTER COUNTER+1 //#msg "Counter is "+COUNTER //#flush //#endjava-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/IncludeAndExitTest/000077500000000000000000000000001263163240400337605ustar00rootroot00000000000000000077500000000000000000000000001263163240400344655ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/IncludeAndExitTest/etltext.txt000066400000000000000000000000311263163240400362040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/IncludeAndExitTest/etlstart 1 2 3 4 5 true end 000077500000000000000000000000001263163240400344705ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/IncludeAndExitTest/srctext.txt000066400000000000000000000002071263163240400362140ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/IncludeAndExitTest/srcstart //#include "text1.txt" //#definel HELLO //#include "text2.txt" //#if false //#exit //#else end //#endif //#exit unsuspected text text1.txt000066400000000000000000000000761263163240400363010ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/IncludeAndExitTest/src//#excludeif true 1 2 3 //#exitif false 4 5 //#exitif true 6 7text2.txt000066400000000000000000000000531263163240400362750ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/IncludeAndExitTest/src//#excludeif true /*$HELLO$*/ //#exit Worldjava-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/PrefixPostfixTest/000077500000000000000000000000001263163240400337325ustar00rootroot00000000000000000077500000000000000000000000001263163240400344375ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/PrefixPostfixTest/etltext.txt000066400000000000000000000000621263163240400361620ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/PrefixPostfixTest/etlthe most first start start middle middle2 the end 000077500000000000000000000000001263163240400344425ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/PrefixPostfixTest/srctext.txt000066400000000000000000000002131263163240400361630ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/PrefixPostfixTest/srcstart //#- ignored section at all oh my god! //#+ //#prefix+ the most first start //#prefix- middle //#postfix+ the end //#postfix- middle2java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/SimpleTest/000077500000000000000000000000001263163240400323515ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/SimpleTest/etl/000077500000000000000000000000001263163240400331355ustar00rootroot00000000000000text.txt000066400000000000000000000003631263163240400346050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/SimpleTest/etl1.Hello World at line 7 2.Hello World at line 7 3.Hello World at line 7 4.Hello World at line 7 5.Hello World at line 7 6.Hello World at line 7 7.Hello World at line 7 8.Hello World at line 7 9.Hello World at line 7 10.Hello World at line 7 java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/SimpleTest/src/000077500000000000000000000000001263163240400331405ustar00rootroot00000000000000text.txt000066400000000000000000000003531263163240400346070ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/SimpleTest/src//#define MESSAGE "Hello World" //#define MSG_NUMBER 10 //#define SHOW true //#if SHOW //#definel COUNTER 1 //#while COUNTER<=MSG_NUMBER /*$COUNTER$*/./*$MESSAGE$*/ at line /*$__LINE__$*/ //#definel COUNTER COUNTER+1 //#end //#endif java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/000077500000000000000000000000001263163240400331745ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/000077500000000000000000000000001263163240400337605ustar00rootroot00000000000000cc.gif000066400000000000000000000024161263163240400347600ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etlGIF89a7*(oxA  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~!,7*H *DX6ƒ!R(1ƍ3Q# i"ɓ1N\1!˙.e'D7<| O5?|Te΃;/vfӤ#_yRUBPVYMzjجE~-5#ۛ:%vnߑk WGFjUI60tW}hC*aDmiO2hؒY.ys g׾,H|e/oMA_8s̝?%SLI<]"/4>%Mg[,y0\,ўGI '[_eFthxyi4AƹZ(g@x #V0oc*SgaVAE,ºR9ufv~fEe6 gxYף~>,h0y/VzcRx =Wd"t|<(՚EB(ZS>TLy/ZO3MnnFS/t#jF,3tNB#I5l2X_ONAY >HU{E&g꼓ƦVhHץQ*eASBREkŖv$AZ`RN(_ VH}c6R-G!AH|)X]XiP@VdїypHn{os҃0V/-Cȫև%H"iN"'l "Ev=6ӎ\c)6v:bU1&΋E s㻮ϲ1vf= [ٽ;[ Kx+E/sv^ڰ.븰i%Gֹp\7ٳzhҎɍѶ-A3pYԊBױeZT`Kw<;!)˖U'jꪚSw.u3=My>WsE׼C $PNm|ǪW-J$2?]{slßT+a-{xZ>GiEܬC| 7m D2)Wmhl6ղA=b)`־U{U/GʩüKc {W:>f^8Tlm?Mxu:>F檖p.EqDˮj-vVb]ϛˆl9YX3r+rx;N>/l8{*6gM1*В) f .s4'p @HKXiKoMQ".ǖ'hVhIӅ+c$LΦeRBG`yҩ nT{@P@,IrݾzWMhp_1Zgg{-tk9}glvpۆI| )WƦ|&Ѝ,H/Yrè})3ir۲O2:IZUv2 ~Tj}>ڮd_MD}Gc!'aAt[*@<9n^<61|^+ dG';qZN|cBUn)h?nm1V,O"%AI*/V׭aK* ϣ\ -?lܦruBK~fDZĢv;jMuy㽵>qGR?a(xu:BNW6zFQ+t{R?k^%;cAmiV!mS\+ `FB -h)w$) $5jI^˜q[T#AM#eK(չM,ux9Ve-:GMaŔkA(/3XhP@P@shN[pyU-(a䉟&f w94Y1B<դ؍?pn' qɺBjc',o{Vёl[2JFq4.̗!*䎋Ji`˻wtb4er0B] dVJu f(Y3!b^>יj<{^5b.2ϑ$@#PyNЗntk:ߊ D\?+|.5XHΈW6!n^?pΒCk^k('OpG쬯U-&.TQp?v>N(q;{(ˏ /sz3%fe7];dI Dan3X"}xiw,wk$WٯIooCga~lmɑ)SfB}\{WF M~Evzl1v,q|{+H*OQ\1ۖ&q0TLce\h, a ʼ\S쎑C\vZI2:)4t-HP]mr(7sg!U9!|V3+]ؓUvak򣑼IqpU@ :a,'H[΄ىQZ`fԬdUYa<+BzOh (2[Ik~r#zc`C*:kn^`{k)+z9nOnKW8xEp9ȹn6[p)ykzǦG]+&#1Lk/6<;YN1n[^ dE$G+T>s,1;U%u~_wevS$-# ‡T× cL|¼E~{z}?/llȰO `DWLv(` rs3LT>HT{5-)#nHG^ml`@h v#Z,Y)f7v-r!'KR4"Ӆ]fuPua Y0<{ 3< Dzq͝"u Aj>%+g:>ׁEyP?O1 {"(\a#u$&YnKsUcvӘRҌ~#4,EMƖBw'iD]8.I cDDv3Ulwd)79g>q#V V",ځ3N*"8jmUX0F}NJI ,,A `F k$tqոR6:>@PР ( q 3k%$1ټbfwmm=Պ]bW 8ȴuKmUf+dH[\Օ$ jh2r|Ġ$7NW|vl~cwOC`1nxyTl_ _&m=D[y4Sn#*V<,r{oZ]yg])Ve@+D-O[T*d$oƄ[,tT˟=>,PЃy):~/?۳O]&K(iq]#HRhjd Sf4?TQE:R!@/lV z}ÕRL`c>:Z,9[ƕղh80HWo|jVtPvAj̙#xr8Gt~t\\MeW}a}/ma&Rn5P.:m pr:#|EcI$rK1;m\8Wȩ?2h8`<)$$Ev9S$IBJ"R/HFQh?N|kJOg@I4&ex OoX1PP@P@m-k(+c<ךY7wąRȅ=D}TԚj q3+|{k/rIa>ADS_kjneW-hMgewݸ/> h Òq߁єB*9p=He);ĈPnX2REٗuCS_/\mcl/^B4xW+PqkR>gdora${|Ko} ܝEgRGC_mP\!KAN¸u+Y1nqZ8]ıj7WEz6C{G\C6ҹr`%rfLݳqETYI[ʰL.5oM-Z!9{XŷdIDcPwHl4cƥkIz!uOHR#HnMQ"MȥQŸPeK)7ր'PtAI-PqPiְ = ( (g"<}&H0D":3CHs Ǒ.$"Ԅ'jNV/k+k&yݸsi-2jЛl8bbosKoI̗ݹ%=Ô#oğ2]tLJI"_#,be-,Uz|&2By@ս&n| ݿoꙕW¯Y1⺭w.ws#I^WƩ?[4v^@\VɼO bTV&yzsLӖ# IT:?kq@2QӒ[O ^(I=suߨ-ۡ_Q U(H oVvm:/h:N6w_X9dԅM%y86wxO(ir" O*FAД#oݻZ]iNQsL5QiH`rǖgG: VvjQg}c=eW4Щc`VT t2Jl4ZxHm4-Ax:렦]Y&$*F$Mi*-=EΰmMQ@p@ +B ( ({$Jzc:̋^--滛,9Wa5\nNUq]y@e~vכ Xd`z'ԕj2Óߴi{_sd\i ԆH r_Mk^uWt>ڣڎ,y;hP:[3Yԧ}$\8Qy]lܽv3{UM)ULǾcߙ|Ha@(r!e y~:Wlms~jsw.H"{+>s,*~f'El&XAyA?Q;j{  O֙!n:ѭ#יGKxywɱvD#9b-KӕJelҧKi¼XL~0]T[VJ嵭NHPZ4L=HMmE 1G3JEQDźNՆ<'" B˪躚 $H748EVP@P@۶|1O8oZ'6&Nß$Q@pj;Y,.n~!P'^e-YGI$XDQD@+ϞL::c k4yw7m3AASltin|(K%ntQX1I,4@HRujEAVP@P@| HGS 2Bxϓ @7Q t@mbxqAR5 tcQ|G<'?`է۝dOt܍i0b$CA#569V$Vpx@ #exaI{pƞQY芭qݣ1SH1-&UG^2qT]i #p"~2{LO?:c{9ִbdaS(-z : Cp6:Ck X*B ( ( (/rASZhU*4P kn6h`9dYAPoM[@f᩠- ?BEܪ暕OF3&aD.ZǪ1 }&%Uh?*07Պ|I<%#n0QHoϜz DCS`PQwۿOrYI%7Dt֧N '+ݲAp¦i2"bI4rȝӫLЕnȆ/+_oJFm-Zi Dc~/tK,n4D-[F)]V)V'h(bMͧm&@Y%A/b pG nܐq#ME9tӪy >S]͐*Z]xWOh2T@r8ZYgȃ^jmuTS1Le~ej^bYew7&EU-gOMxe#+V=4BR5/BRkiy&N {OU=mVT0c[G&!&BMD# °@P@P@P@P@sWCĶtVBab qe:󿤿 %K_b7CU6] iNȷa\ñeHT(?[9˜I9[l=7FOqa> U11B{gt8SbYwO+LGAEH#ݦRq!>ҎyPҰ ( ( ( cc_rght.jpg000066400000000000000000000226621263163240400360240ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etlJFIFddDucky<Adobed       I !1AQ"aq2BR#3rbCS4cTt6!1AQq"a#2R3 ? ( ( ([V@ր>V)`NƚEƒ"֙![": Q96QTLؖ8Ev'ωAo/!*($YW䩺VOVCa.nwjD,+V3鋷!(omMw7Mw+OٓX/J%TF8)S]=~1kʵ#"zT\ZaK|z1VJrMSNoNM$azxхP@P@P-z Xq%hY$+f HGة%ZWiPdxRZHn63iUUR#k6VƝbYwblhf@$^o%Hzdٺ]F96y(?\W'Z@Y M) "o֏^0 ( (h ) 1D^}]U a8, `9G#$bG<(5A1KO RrJfJ*$kWIWrk 0 r/JhFFsv75TɀDd9֣,-k($ֶ7Ѷf Ws򏎵˶pva?gKߢYԎ ( (5i%Bō@ń IleQ2Z)E  $5qRemE8VɐgK&o$%dv4FQR%vNtG?t"#v)Vy3}V 4Jݶ)M`Vl~<|)ځ?WH:TO#\:&'ʾ?Pasyi䌒b~CƅVH<^_]]RV!"aI  [ZB ӶE,A р>kk]gn>t0!չ_mIUEU/zO@( ( ( kLb֊Z`ȈJV2.@'ZkqկƘNn8RITDV:M)e%HEY҄ם2R#.kQ!ֲMq6:51^~KЪceE)%H*R5p89uJ'ZYŠ^CğkedNsĝ2qg1NWV6e "H&9U |O tS~ժF݊aƘBmX\? _432oIkpE0h Z܊ȦhKq6Ijww:9 Hlƴ=6 ( l]A(0&u h0[\@$ !~u"I?™!Ij (9v G VU)HGrQ]cZTkuI%R4cN^ ـHf#7Yȉ0z0DǝZ!,Ʃ)IlP#7%ik=u9e#3@kijeKf)],,$l4cR=q{>?*-UG4!R>^t[ (@Ӻh@3Rw S9+'1]θ>>LᗪR,h@xA-W(OKaR5έ8}S6-jDf`\T-CoBm /f+Hwb{95ް|( (?mvg`e}6_MWBۣ@WtYfKo 7|bw珽E2S #cn+oty!}K"^wUU1}vGc>67O%YPu/Qt RlI!1*2&YPu}=L 5+S>qcdNAaR\)&uF3wwvvT 4qHk VedHлUiP5=;/tz>}]\-kޭ=`ԙM@3 ݳa6ܼ,ÒM$adrAU!N5^MJ>ͯb{cv~Í4ō*8rM.wm. 2/ݩf!r,{j6l .Tj^o<> ݟws;M6m͑69Ȓ$!oqRp]zQeO+)S*pzv. 6Ǻn;fLYG.yԸE;Ȍ/A\$%ea,7W*g+6l8Q%z7pK`lU(7&/om1E-#{tFG/}:ͺ$b3J%OXۨ!f+rLJ&}q@0*کJ7pr1S2 Rxde AϥJc[Oyo?_rN-c:7/g[rv=  cKdC>7(jrXv۶1i/b֕xE!t[7idwS8ƭkU̶"/3Rm%#W*A^VS:5zRkMw]>O_gW}P@PW_+2WOj9=ؼ ip0 e\u[ֻ:dg{y}]H1J9gٺ֡buiq_F"V„:䞺}SfW;&5 )$nVVGj_N fs(|ݗ3ɶuAp;\GAյ_`G{[՗3_ps\~Ȃ?N̹VՓvv像 Yb6rBQTM/e[-_'=&2agמa}(x1k<k[A^_+s'>eK?D^G'[OyY/Zpy97_hf'Woşm,㻛D'lÊ<\y[((]`Qn]㑹O8f,αG+c]OEkjIhKNO,(@dde0N 'duӵf$'=fW/}^[V~qOoܽ'i;Iⅽ6f"YD#7#nE"Yq墍<]_jtq#cY{=Cƹʄ(~!-}WRuQ..6a`ݺfIm#2*Pmg9]È fW&0$yqo '_ cWʭ~N-/q}{[fϷS'PukW<_σQwV߽mJs(' Y]O,pyce۳. G褍gnH_~s+˹;I#v5SϾ :̨D&̗OS?Bv!W{@P@=w=zm8syHB(Qj=?cϋ"lyl$hm{ӽfs`l{@J"ݬQםGޖ_ 罩쯹ݳ>mx)MnGk+R{^_o+s({/u{uշ0[nT BЫ ǫKTbnjɖrPo6{K?jɏ!2N6CC 1d`q`>-Mldpe(!BUȶr=#+ /HC኱6`5tV#OLBj}1\?Hr߼66wWڧIQTQdN7#5W0Q*t|kVmZ\Ow;s m8zrIH°$7 m\~R 8vGQ&$v/ mu=qWj+;~Fۼ}{;uqR| у#ܻjxRgWyy1OYOۛ0lR!uHbmm_mW_fma듌$ŌYF3yi[](x2vʍ|[Jmry>}vXIJ^IZ6n6^FQYVՎ݇ٻcerssA;4JdzKtx5ЯT,G_h&^.1$q/3 n/=bmZnPo)"yNo_nǞ(r߈2z,T{JKO% ]W{ ͵Ȏ EHԹmne JsfVgj.歸 YrUJ i5'T_pUr<ٟp?Sl;"ē~#0J$u&*|_vLJG|?_pre1"2ZCQRE"[mývm>ѐmf^,^G zzbqA¶ l_Yk`Y2O3A||0)B,֤+c aƥy+H36BG6H8ioM~:2Xy\55V*М}He67O~k-hɍm)&ip5dN6j $ں|>å|9:)fHm-Fkzr-j 25j_͊YonUZ_B??h=Z ( h0>t![+KSlGIh<)On+;7,צHV3˜F)*ljM0 i:+ʤ@<X3XPak@-DP-JDz1o+͖Ga hN2|(< |jRo6Xʷb|بAG+(m}3jz<<~bNBflAY& 1)霛8q>C@wgnE^y*EQ3ȎifyS]hk`I&$fK4GPz(6>ikkuS2È`8k$k[eQ`,LD_.hbJSPښ-ᚉfU9d㵣_dx'tVs;Y:ړM#y.~/PeP@٫LZ+_[ iY1o39 aG8Q5ύ+cl>f>dv5ӰcO*Bg~B6.>4VW>'ƇcKAsƦV&S 0xf"ud:,d́l-) K%6$B[kQ͇ɐLvUgK_&C}uD9v7Ss´zS^舚]zM5RI$rAUZٶ ?C*%PXq~I4Œ 9(Km~Sٱ8ʋ}:D^z3:TiU 6MQwRj푋,)lLI(*IU eY |#t5GtVֳc fK<I}~Sv t?m+FYGdQjXJҠY:5Jv_"zDcSO rĖDPJ8刖tAv?g:jIȗʿOhCe(<='U33.\X/O[4yQ.[UR 6%7HF$šռ*K(-LQ}l=5bݦ ʍ'yiN7z꼮ĤZتfǘH:mζug[p6$a!@ gf{;ʴP^q)GH8PhZa V@2mn5k:H?$ =i5Pob:~|[" X8ЃqJF V5 2D-+O52"lEʣ@Tx?/ΑF R2XiOu?1M^ſG?UrRS1Qj6Ϣ(YRtJݕ|jKtiS?=v>ҿkmtdqDՎr-_'{:M7Оh~u[iЗ*6z4q>W"(3!4L9>?g"G٢*sOQs)m1okvg000077500000000000000000000000001263163240400344565ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/cmnsendfeedback.phtml000066400000000000000000000004531263163240400401240ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/cmn styles.css000066400000000000000000000034011263163240400365110ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/cmnbody { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; background-color: #FFFFFF; } .menuheader { FONT-WEIGHT: normal; FONT-SIZE: 14px; COLOR: #BFBFFF; FONT-FAMILY: "Small Fonts", "Arial Black", Arial, Helvetica, sans-serif} .menu { FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: white; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none; } .alltext { FONT-WEIGHT: normal; FONT-FAMILY: "Times New Roman", Times, serif; COLOR: black; TEXT-DECORATION: none; font-size: 12px; font-style: normal; } .newdata { FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: #000000; FONT-FAMILY: Arial, Helvetica, sans-serif} .footer { font-size: x-small; font-family: Arial, Helvetica, sans-serif; color: #999999; } .langtxt { font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-style: normal; font-weight: bold; } .rightnews { font-family: Arial, Helvetica, sans-serif; font-size: 9px; } .rightnewsHdr { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; } a:link { text-decoration: none; color: #00BBFF; } a:visited { text-decoration: none; color: #00BBFF; } a:hover { text-decoration: none; color: #00FF00; } a:active { text-decoration: none; color: #00BBFF; } .catalogheader { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000066; text-decoration: none; } .gameinfoheader { font-family: Arial, Helvetica, sans-serif; font-size: 16px; font-weight: bold; color: #000066; text-decoration: none; } .gameinfoheadermin { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000066; text-decoration: none; } styles2.css000066400000000000000000000051711263163240400366010ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/cmnbody { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; background-color: #FFFFFF; } .menuheader { FONT-WEIGHT: normal; FONT-SIZE: 14px; COLOR: #BFBFFF; FONT-FAMILY: "Small Fonts", "Arial Black", Arial, Helvetica, sans-serif} .menu { FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: white; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none; } .alltext { FONT-WEIGHT: normal; FONT-FAMILY: "Times New Roman", Times, serif; COLOR: black; TEXT-DECORATION: none; font-size: 12px; font-style: normal; } .newdata { FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: #000000; FONT-FAMILY: Arial, Helvetica, sans-serif} .footer { font-size: x-small; font-family: Arial, Helvetica, sans-serif; color: #999999; } .langtxt { font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-style: normal; font-weight: bold; } .rightnews { font-family: Arial, Helvetica, sans-serif; font-size: 9px; } .rightnewsHdr { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; } a:link { text-decoration: none; color: #000000; } a:visited { text-decoration: none; color: #000000; } a:hover { text-decoration: none; color: #000000; } a:active { text-decoration: none; color: #000000; } .catalogheader { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000066; text-decoration: none; } .gameinfoheader { font-family: Arial, Helvetica, sans-serif; font-size: 16px; font-weight: bold; color: #000066; text-decoration: none; } .gameinfoheadermin { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000066; text-decoration: none; } .devicename { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000066; text-decoration: none; } .devicelist { font-family: Arial, Helvetica, sans-serif; font-size: 10px; font-weight: normal; color: #000066; text-decoration: none; } .sendformref { font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold; color: #000066; text-decoration: none; } .sendformhdr { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000066; text-decoration: none; } .sendformtxt { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: normal; color: #000066; text-decoration: none; } .sendformfield { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000066; text-decoration: none; } 000077500000000000000000000000001263163240400344525ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/engend.txt000066400000000000000000000000011263163240400357500ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng gpage_airaggression.htm000066400000000000000000000111571263163240400411710ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/AIR AGGRESSION

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Nokia
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

AIR AGGRESSION

Eight alien monsters took control over all Earth's war-planes to enslave our planet. You were able to keep one plane from being captured and now you have got a chance to keep mankind free.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 

gpage_airboil.htm000066400000000000000000000136251263163240400377570ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/AIR BOIL

OWNER:

PUBLICATION DATE:
2005

DEVICES:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

AIR BOIL

In 2050, the remote planet with very low gravitation had been found. Inhabitants of the planet have been enslaved by four huge machine like aliens. The democratic Earth couldn’t reconcile with such state and a space shuttle had delivered to this planet a super agent John Petroff who had been dumped on a surface of the planet together with a bicycle and a rocket mount for prompting democracy and bridges of friendship. So, the task of a player is to pass 20 game levels and to destroy all flying objects on levels.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 

2.5$
 

gpage_aneks_ny2006.htm000066400000000000000000000150461263163240400404540ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/The collection 'New Year's jokes'

OWNER:

PUBLICATION DATE:
2005

DEVICES:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
6230i, 8800
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
6600, 6620
6630
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
D108, S100, S105, X400, X426, X427, X430
E400, S200, S208
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608
E105, E315, E316, E317, E710, E715, P400, P510, P518, X427M, X450, X458, X475
E217, E335, E635, X640
C200, C207, C208, C225, E600, E608, X105
D410, D415, D418, P207, P777
E300, E310, E810, X480
X120, X140
E610, E618, P730, P735
D500, D508, E730
E530, E620, E720, E880
D600
Z105, Z107
Z110
Z130
Z140, Z300, Z500

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

The collection 'New Year's jokes'

The application is a collection of jokes, the jokes are sorted on themes. The collection included 60 jokes.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 

2.5$
 

gpage_blazinggears.htm000066400000000000000000000106101263163240400407750ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/BLAZING GEARS

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

BLAZING GEARS

You are a driver of a sport car and your task is to pass loops for a limited time. You have to avoid collisions with other cars on the road.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_caspianmonster.htm000066400000000000000000000111761263163240400413630ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/CASPIAN MONSTER

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Nokia
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

CASPIAN MONSTER

You are a pilot of a secret soviet airfoil boat, which is armed with missiles and a quick-firer. Your main objective is to leave the enemy base destroying as much military equipment as possible.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 

gpage_castleassault.htm000066400000000000000000000111461263163240400412020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/CASTLE ASSAULT

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

CASTLE ASSAULT

You are the commander of a catapult crew and your task is to destroy two vertical neighbor parts of the castle wall with a missile. The wall can be destroyed top-down only. Left altimeter shows current altitude of the missile. You have to be careful because the enemy throws its missiles over the wall. You can't fire until the catapult has been charged.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_cockroach.htm000066400000000000000000000107401263163240400402650ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/COCKROACH

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

COCKROACH

You are driving a running cockroach in the maze and your task is as soon as possible to find a way out of the maze. There are a lot of scattered eatable things in the maze they increase and decrease game scores, so the game scores are decreased with time.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_coconutsfall.htm000066400000000000000000000107221263163240400410250ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/COCONUTS FALL

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

COCONUTS FALL

You are a monkey and hunters want to catch you. Your task is to save own freedom as long as possible. You can use coconuts to knock men and you have to be careful because a helicopter tries to catch you with a net.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_conecone.htm000066400000000000000000000105661263163240400401300ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/CONE! CONE!

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

CONE! CONE!

You are a squirrel defending your supplies against crows. You can throw cones at them but be careful because you should keep a distance from a crow.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_copterbomber.htm000066400000000000000000000127121263163240400410150ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/COPTER BOMBER

OWNER:

PUBLICATION DATE:
2006

DEVICES:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

COPTER BOMBER

You are a pilot of a top secret copter-bomber and your task is to destroy all enemy ground targets. You must avoid collisions with flying enemies.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_drunkman.htm000066400000000000000000000126101263163240400401460ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/TIPPLER

OWNER:

PUBLICATION DATE:
2006

DEVICES:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

TIPPLER

A mobile version of the TIPPLER card game. You can select one from three opponents and to play with it for undressing.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_firingline.htm000066400000000000000000000105611263163240400404600ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/FIRING LINE

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

FIRING LINE

You are the defender of the docking tunnel of your spaceship from space creatures. Don’t allow them to approach to you! Fire! Fire!

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_fisher.htm000066400000000000000000000105101263163240400376040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/FISHER

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

FISHER

You are a fisher and have to catch as many as possible fishes. Take care of big predatory fishes, they break your fishing-line.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_fruitmania.htm000066400000000000000000000117201263163240400404670ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/FRUITMANIA

OWNER:

PUBLICATION DATE:
2005

DEVICES:
Nokia
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
v300, v500, v600, v535, v550, v620, E398, E375, v3

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

FRUITMANIA

A mobile version of well-known casino game enables to make bet from real casino account and to play via internet from your mobile devices. You can win real money with the game.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_hardday.htm000066400000000000000000000107001263163240400377410ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/HARD DAY

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

HARD DAY

You are a courier in a big company and your task is to deliver documents inside of an office. All white folders must be delivered to recipients as soon as possible. Remember, your manager will be very angry if meet you without a folder.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_hunt.htm000066400000000000000000000105231263163240400373060ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/HUNT

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

HUNT

You are a brave hunter and your task is to kill as many as possible animals by 20 bullets. If you have missed 20 animals, one your bullet will be removed.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_icegifts.htm000066400000000000000000000126271263163240400401340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/ICE GIFTS

OWNER:

PUBLICATION DATE:
2006

DEVICES:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

ICE GIFTS

Help Santa to send all XMas gifts. Combine their identical parties and do not suppose absence of empty ice-holes for new gifts.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_ironstream.htm000066400000000000000000000107421263163240400405160ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/IRON STREAM

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

IRON STREAM

Warning! Warning! The enemy has dashed our protection line and marching into a populated area! Your tank is our only hope in the area and your duty is to defend it. You have to destroy as many enemy tanks as possible but keep buildings untouched.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_kalah.htm000066400000000000000000000107561263163240400374200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/KALAH

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Nokia
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

KALAH

A mobile version of the well known KALAH game. The object of the game is to move as many stones as possible into your KALAH (right bowl).

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 

gpage_kickkick.htm000066400000000000000000000105531263163240400401160ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/KICK! KICK!

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

KICK! KICK!

You drive footballers fixed on a pivot. Your task is to defend own goal and to kick as many balls as possible into the opponent’s goal.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_lifesaver.htm000066400000000000000000000106751263163240400403200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/LIFESAVER

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LIFESAVER

Fire! Fire! Fire has occupied the ground level! You are the chief of a fire brigade and must not let the fire to occupy all building; you can use a water cannon. Hopeless men jump from windows and you have to catch them.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_livebridge.htm000066400000000000000000000110251263163240400404420ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/LIVE BRIDGE

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LIVE BRIDGE

You are a porter and your task is to carry cargo from the left riverside to the right riverside but there is not any bridge on the river so you use turtles as a live bridge. Unfortunately it is dangerous to use turtles as a bridge because they catch fishes and dive in the depth from time to time.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_mobilechase.htm000066400000000000000000000110421263163240400406000ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/MOBILE CHASE

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Nokia
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

MOBILE CHASE

You are a brave policeman who has received the message about a bank robbery. Your have to overtake the gangsters and stop their van.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 

gpage_mobilesheriff.htm000066400000000000000000000111041263163240400411420ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/MOBILE SHERIFF

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

MOBILE SHERIFF

You are a brave sheriff of Wild West who is releasing a small town from a band. The number of the bandits is known but you don’t know their faces so you must be careful because there are a lot of inhabitants in the town and you must not kill them (we recommend you to wait an unkind action and don’t shoot before).

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_mtvpaparazzo.htm000066400000000000000000000103211263163240400410620ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/PAPARAZZO

OWNER:

PUBLICATION DATE:
2005

DEVICES:
Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

PAPARAZZO

You are a paparazzo and your task to get as many photos of celebrities as possible.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_mtvpillow.htm000066400000000000000000000103341263163240400403650ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/PILLOW

OWNER:

PUBLICATION DATE:
2005

DEVICES:
Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

PILLOW

You're a visitor of MTV office and your task is to belabour music stars by a pillow.You can find new pillows in rooms.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_mtvpuzzle.htm000066400000000000000000000102521263163240400404070ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/MTV PUZZLE

OWNER:

PUBLICATION DATE:
2005

DEVICES:
Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

MTV PUZZLE

Your task is to collect a full image with moved squares.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_mtvstage.htm000066400000000000000000000104311263163240400401600ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/HOLD OUT ON THE STAGE

OWNER:

PUBLICATION DATE:
2005

DEVICES:
Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

HOLD OUT ON THE STAGE

You are a rock-star and your worshipper throw different things on your stage.You have to avoid collision with bad things and catch flowers.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_nimble.htm000066400000000000000000000106051263163240400375770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/NIMBLE

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

NIMBLE

You are an airport loader and your task is to sort baggage. You have to take color bags and place them on the conveyer having the same color as the bag. Bags should not overload conveyers.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_opthunderclap.htm000066400000000000000000000105711263163240400412030ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/OPERATION THUNDERCLAP

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

OPERATION THUNDERCLAP

You are a pilot of a military copter and your task is to kill as many as possible enemy copters.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_oysterbank.htm000066400000000000000000000106531263163240400405150ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/OYSTER BANK

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

OYSTER BANK

You are a diver gathering pearls. You should collect as many pearls as possible. You have to avoid collisions with a shark. The oxygen cylinder is limited so you have to look after its level.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_papaninsquest.htm000066400000000000000000000121241263163240400412220ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/PAPANIN'S QUEST

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Nokia
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

PAPANIN'S QUEST

Ivan Papanin, the well-known Polar researcher, discovered an ancient Egyptian pyramid lost in the Antarctic ice. When examining the pyramid, he fell down and found himself inside of it. You have to help Papanin to find the way out of this terrible maze. The object of the game is to collect all magic stones in the maze to get the key that opens the door to the next level. You can use a pick to make holes in the floor. Swords scattered on the level will help you to fight with monsters. Be careful, after some period of time the destroyed monsters reappear. If you need to restore your life power, drink some water from a jar. But all these items can be used only once.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 

gpage_ravenscheese.htm000066400000000000000000000105051263163240400410030ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/RAVEN'S CHEESE

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

RAVEN'S CHEESE

You drive a fox and your task to catch cheeses that throwed by ravens.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_searoad.htm000066400000000000000000000105511263163240400377470ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/SEA ROAD

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

SEA ROAD

You are a driver of a speedboat and your task is to pass as many gates as possible during limited time. You should avoid collisions with other ships.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_searovers.htm000066400000000000000000000107271263163240400403470ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/SEA ROVERS

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

SEA ROVERS

You are a pirate hunting for cargo ships. When you have damaged a cargo ship (it has three-cornered sail), you should stop own ship near it to enable your crew to rob the ship. You have to avoid collisions with battleships. Good luck, captain!

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_slider_alpop.htm000066400000000000000000000130421263163240400410040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/Slider 'Aleosha Popovich'

OWNER:

PUBLICATION DATE:
2005

DEVICES:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
6230i, 8800
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
X100, X108, X600, X608
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

Slider 'Aleosha Popovich'

The slide-show contains 10 frames (with texts) from the cartoon film "Aleosha Popovich and Toogarin Zmey". You can view the frames in both automatic and manual modes as well you can magnify selected frame and consider it.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_smashingkick.htm000066400000000000000000000106321263163240400410040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/SMASHING KICK

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

SMASHING KICK

You are a training footballer and your task is to kick as many as possible balls into the goal. You have to keep the ball in the air with your foots and head.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_smscat.htm000066400000000000000000000135241263163240400376260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/SMS Catalog

OWNER:

PUBLICATION DATE:
2005

DEVICES:
Nokia
3410
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
6230i, 8800
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M(T)50, C55, C56, CT56, 6688i, M46, 3118
SL45i
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

SMS Catalog

The mobile catalog enables to a user to look through contents of a mobile content provider's base and to order liked content with automatically generated SMS (if the device is supporting). The application supports three SMS schemes: Siemens, Samsung and WMA. The application enables to organize complicated tree-structured catalogs. It can be started on any device supports MIDP-1.0 or older.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_spiders.htm000066400000000000000000000105151263163240400400020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/SPIDERS

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

SPIDERS

You are an ant bringing twigs into own anthill. You should bring as many twigs as possible and to avoid clutches of spiders.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_starharbor.htm000066400000000000000000000133341263163240400405020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/STAR HARBOR

OWNER:

PUBLICATION DATE:
2005

DEVICES:
Nokia
3410
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M(T)50, C55, C56, CT56, 6688i, M46, 3118
SL45i
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

STAR HARBOR

A terrible invasion threatens the Earth.A player is a gunner of a star cruiser gun and your task is to stop the invasion.You have to destroy both cruisers and fighters.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 

2.5$
 

gpage_strangehunt.htm000066400000000000000000000126251263163240400406770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/STRANGE HUNT

OWNER:

PUBLICATION DATE:
2006

DEVICES:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

STRANGE HUNT

You have come on military range but do not surrender! Shoot as many as possible ducks and wild boars!

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_tastydish.htm000066400000000000000000000106301263163240400403430ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/TASTY DISH

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

TASTY DISH

You are a crocodile living in a river. Your task is to catch as many animals on the beach as possible. Time to time the hunter visits the beach and attempts to kill you with a gun.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_vineyard.htm000066400000000000000000000126251263163240400401560ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/VINEYARD

OWNER:

PUBLICATION DATE:
2006

DEVICES:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

VINEYARD

Gather grapes and put its into mollies, you must collect all grapes to pass a game level. You must avoid collisions with snails!

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_waterway.htm000066400000000000000000000106211263163240400401720ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/WATER WAY

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

WATER WAY

You are an ant collecting dew for its ant heap. Your task is to catch drops with a leaf and pour out it in the flower of your workmate. Remember, the leaf can contain one drop only.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_wildballs.htm000066400000000000000000000106421263163240400403070ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/WILD BALLS

OWNER:

PUBLICATION DATE:
2004

DEVICES:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

WILD BALLS

You should clear as many as possible pins with own balls. You must use a rolling ball to clear pins; you have to direct the ball at a pin with your ball. If you miss, your ball will be lost.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

gpage_wildroad.htm000066400000000000000000000126711263163240400401430ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore(TM)/WILD ROAD

OWNER:

PUBLICATION DATE:
2006

DEVICES:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

WILD ROAD

Break away from persecutors, do not allow them to destroy your car or to jump on it. Pick up jerricans because fuel constantly drips out through the raked tanks.

The form enables you to send us your opinion, wish or problem description for the application. It's very important for us!
Name:

E-mail:
Message:

 PURCHASE 


 

menu1_about.htm000066400000000000000000000207461263163240400374140ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/ABOUT
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu1_contacts.htm000066400000000000000000000177341263163240400401230ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/CONTACTS
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu1_job.htm000066400000000000000000000177541263163240400370610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/JOB
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu1_news.htm000066400000000000000000000313211263163240400372450ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/NEWS
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu1_partnership.htm000066400000000000000000000177741263163240400406500ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/PARTNERSHIP
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu2_all.htm000066400000000000000000001146741263163240400370570ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/GAMES/ALL
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu2_arcade.htm000066400000000000000000000747041263163240400375250ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/GAMES/ARCADE
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu2_clientserver.htm000066400000000000000000000206531263163240400410050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/GAMES/CLIENT-SERVER
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu2_erotic.htm000066400000000000000000000205611263163240400375630ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/GAMES/EROTIC
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu2_fighting.htm000066400000000000000000000173321263163240400400770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/GAMES/FIGHTING
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu2_gambling.htm000066400000000000000000000221301263163240400400500ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/GAMES/GAMBLING
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu2_logic.htm000066400000000000000000000234271263163240400373770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/GAMES/PUZZLE
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu2_multiplayer.htm000066400000000000000000000173401263163240400406460ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/GAMES/MULTIPLAYER
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu2_quest.htm000066400000000000000000000207411263163240400374370ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/GAMES/QUEST
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu2_racing.htm000066400000000000000000000252011263163240400375350ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/GAMES/RACING
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu2_shooter.htm000066400000000000000000000236641263163240400377700ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/GAMES/SHOOTER
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu2_sport.htm000066400000000000000000000234721263163240400374510ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/GAMES/SPORT
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

menu3_appsall.htm000066400000000000000000000235751263163240400377430ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng ColdCore/APPLICATIONS/ALL
ColdCore(R)
 
Buy a bit of Game(TM)

ENG

 
Papanin's quest
The Papanin's quest game for Nokia Series 60 has been available on Playmobile.
read more...
Mobile chase
Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile.
read more...
Air aggression
The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile.
read more...
Caspian monster
The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile.
read more...
Kalah
The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile
read more...

send_error.html000066400000000000000000000012671263163240400375100ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng I can't deliver the message.

I can't deliver the message. May be the server has troubles, if it is possible resend the message later. Thank you.
 
send_ok.html000066400000000000000000000012271263163240400367640ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/eng Your message has been delivered successfully.

Your message has been delivered successfully. Thank you very much!
 
000077500000000000000000000000001263163240400347755ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesairaggression_scr1.gif000066400000000000000000000365631263163240400412660ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a-S\oe,H_qv!/ /?Y%&16ץʉ gRZ!cJRBJ#[Z1!Jε!,ŒLrIQn\c}2TEPkrj:Qel\oED^E xtx#{l np{vuuq}vwx|yusrj mn q?  l}s釥t~pp(b~<+eBt*T`l#3$hA'\r&f СX 4;adΐ? ,dM)P eЗRH9e6oC_ mK ( |X6 6 /ߡ}MӖJ^>weY#9ڨeFL Tx0 GA3y@ UZp6񐴥-tM&9v|/\ 8=07"u>ӔgS$J,bH5&i&UK ssLE{c=;Ƞf1r3mXs}^ E{F0 F &`Ixzpz8Pb Mqw,Ǟ "l4Ȅ 22%Ba>$IDv1TdĞ' Vz ~^tpV(bDR֕iIѤ XEE _XIX"vW(`|F.\<: 8)jCu^2)f=`બ꫰*무j뭯jE C!jE"{,*렳Ȋh!9k5d(*z^8.€ ^Xm*΋.7Yʡ6(np!<068CG,(/DX:X|qPM0a~p%ŋF1#) %HMo1Op2J6Doi&G\޵Q&FR,P{"=%av@%par|F 7FTl/:ȞȳGbI[kӟ5̀$դTa K5 KTbUٍaUM`ZsUT)7utd ĩ6qnuWXJ(j' h%6&q03l;6Z&띹3}isYR;?sD OK?EP) V ,6mzˬN&J[O<-Nvw6Wn˱acÛ_+K zh;\,ڨvY,t8ѫ$Ā2iN'ֳmY_}$$IXMdV8uDѷN^7kY6t/چ&xLjdH(!=%W~[wJ?vL"s)݈- +Y'4P9ƃ-lIJ GN [sg. cŹO٠T鈗*ш\ymy q.+a)PMۉ b[8EU?Ma9BlQ؛эX-mo/qiZ>\m_ 'D, $KdJZnG#Ŏp!$llpKt7NeISu:tRˮej+vcw]^'uRlpCʉsX G.I9t0 cbgNv6,3֔j֎,0 T,` X@ N Hֵ>S=(:*P nt+Nԩnug]^:Nvw=i_Pi%Y8O L@S{ҕK@U:.^_?3Ps8yK}@uE/io{ܛ^=Vs65}9hٯu \ z/P{+Pulwv {vT~uuG{xavGzug*~UiUwzztw {k'wq~uv^zm{s7uW{3|mg8<8>t0W]GuDŽDQ7sґ:C=!dW{wzJu~CXuDGt{Wx7Zgt{Hw{gtvu9uz{}tX88EG8牎`V92(_6' $3\Wu4`v({x{×GDvhuV|NxNNjhzFHyCzzv11%&?r! *\,dX@vgu~_L`98zGg|gG瀞uG 9u  tgxzzhO 9]'S77ӊ%M`DiRzx@wW{wsW 8z"|CXI7SuW{p >فlw'{EwV'{Hu5c'iH"%5vFILgeLJE|K Pt`tHg=XHS0 ЗtH{twti}w(Ik5d"#%NcBEXxQvuAhX8{ ttRutϘW=u` y=(IǘW~tMyv隒[(ρaT-7~x{Hd p {GtgX>nU ٝ p{ _ȋJ^gLJ8xВ(g\&,y8w||y{YI]xiUHV{W'{0N d*Vev|j{UzYz{[jM:Sd>wZۢ@svz Hs(P[uz*)( Pe%J'dx ( Rשzz 8%k*#(c0/SSבvMe}Qa¡ 8wgOtz|jd vr|wruzwzx)uxNs.#( ^DRLA!uIuqGtxXW*X{qzJvBF ݙW oJ{eGjiy80ĥF-Dܢ8@Jt uX([{ ŀz|pZ{e'[#* IeдOZVY;vKvIׅ92v#!IJE3GrX !zGg'W{v񚒩ztp V b+YJ`iـ xK׌ J')wR  X\A!PCR P))HxzzHz]j|*7 `jgf[ʛ[ΛZzۇJW^t@3gsDdU'-$EDžsLjux(Eu|8H $jyzDzjiZA"X'*?ݱ>ovkt (xמ'Hv=fיڹje'ĭ:jĭvI,KY XX!8`aJF37}z\ɪe7zUw˵{gT<ǦWǜG8[@aƎFf% Χivzv9w>wtv@zuUi f&k$  ˶L ,Ȝ%2Ƀ"+-Utoׇ3їyjg(iǗ=Ol[܁猅뼩PH3D2hRCC<>|x|w{WwzI[{CjӘOܹc):[iW=:N71q7]& m<q3.Ӷ̑;z},Ǭww>6?Ҿ.uvP{WՏMՎX91~[ɥj(:Słd(yyv`'8E`=T>#[ؽwب^ؿZ ٩U:IUR=٘גLw͑rK?fxLFȑL7wvB1))7 ͎N\> #JIr7z|g|1Hwtw#P|\[y:=v>tMLJBb`6+܀'AEzhsڄdi9Qtu+IuF;}- ٛW}Xz)t+-wHMvUޕ/vNR20hwu7}xP}ZwHhrguv&#{*l6XE7DNf~`9*2"#W5.w9)A8mGKY2}t4nҨz:ŏhNHQgv^~nfѠs6@jjׄ]C߈z{*wylLzaGn~vîudɏ һѷ7>=i<3K-tz{G'\v3fͨ}t8a]ǝɨ XG{}#BLpF=Tؾ7 "ilMvIhcX4(κP~.W8 >v6x5"eK r{ɛFlNvo؃Ǭ7 xtJ3X{JRg]`g_gq>[BO+qTg˟gghݳ.8v wLKm(C?xJɥX$Mto˸XucG] mE@~Ttފl^銗`,OCuS_ί.Wjt-9<68(='kR*xǬt]YQUe*1iq7EX%$dBla0EE&ɴqX.fvb(iFP yBp) Q`XHA ddHLDh {Ъ5kmHB \@4AX6(!\hܹ_4" RapL8@(p9 u vWeFkaD3ᤘ.LD`haQ?8@%U'RDxJM6ˏia?@( 39)#1L j%0 ѬZA}ёn~äsD,;A@D g9FI89(Fʤ}snn[m~W!8(a F 7b JxY IJ"P DpA V`&tCΞmR B)$Hw%vj.6P5>LdFQOt6"! E 7:]&—>I q  ǟRpts܊])p]ApA;C<К9VBRdf`4F4J۴#>@͏Թ[$WGyK" 1}o {bQX RA2i!+gC)8)8psyɫIYvڳX̲ҞShL41bJ҃XR \_ukM2 /{Ebfɱ)*dSDB8\W~ȯ Lw)+dž#@L\u"iڔkU~(:<P`0 QRL*3zD'-i1ADhH AzMBY' >겖: z6VV('R`vDŽm6ax HG3(:6wG(- $ A7! I3eϠV2v!y-Xy3 -f_@DP9$RI(V>Ǖ7%"1:Ɩ%Ŏ8 3@@Mz@g7X$1(\ G@PL VV 6 y bt'<&g  "@#RQaz'KEU:SU r  aiVҏ4   )%{(6 aFaɐY#B @f)A VE^Nxpי##nBg7ncHCn+x0eӹ< *;+2( Z ˫Œ w7`,;&TQN|:Ul̈L#2p*70~zDLBB͵~yS߉o+4QKLE_x2Z vխz>Eĵ%w7CVDKRpP(5-1=p $k,|Nc8@p@ao\ zfq+kWIe.&-zBpphAyRWJ 1H#&  [芹>\w>x@)'ȵaOr','m1رvCp˔DqD)c+{pSDHiCQ'tW Z IlŌn>$"D hU@IBkYB:͞)\dYjj4Ӡ&֝y:I-EweD>]hSE+$ dQă@+/#( -ܤvN,H@t@ұ_HU% n ꘁQ5X&ZJ8FfQNH;B92 @Ypm![e +QL%W`rPN"ň(&@urleҊK¡*e \KtO;@vuPn\"C;.9Cv1|mPl@ +Qn3Po+Et!]`!@$i\Y>\xbLEvs\| -\H#56yY/ "sܛy +,s&ByMRSUY^Ռl7,8DCB"|Xɥؚ4Q@M8% a|ZعM/9XZ.LJVQ:3av;IbFN])s8!.ICಃma@ p &8h ENeSoK)]-m!K CPG13%Mx;Ac$J$9 +J 1`Y {B 0c@f#=Aa*+ruTE6ђ>APA20Xق >V\S KeD 4)Т @563v p8Z55_Й6IL$80 9Q'pG" T Б rӜR>d(+3 T:w+ 8.߸B]3{(sp! 䤄]<$|Mb*IiEq]RA`:`'!C^m`2o9 r>!F~pF)eZhZְ kT1hP} cVF1+$Q+Y6Jmg똎O8 faJXp8Be+>A,"ڐ&5R}==N2B̊K̄POػ9X|<\̶78"l_)6! B&c<FɁswD`K*@М2D1Sv-Ṗ^3 e־r I< -%5#%g&0(65BLe=Tm~XU}Tr7?4rX!ivJI%"-shlK\"lmWٚ:ͯ]SZ +zIxZ'4su[ۈKkm}@Qw7_bj6<Ԧ^A5QpW]hp">s\(>rf4T]%] Hx,~ AC㊨¡rĬCeލC+g+yK;h$KF^zmDaܶa?x/(IsJWy0Yj6ǯ* RNm_=1tD^.ԫ~o_~_v5z/]ǓVաCGxk׋e#G?i A*Y(%63ݠ}x xy,mC'Z!FSz+(xې}7Raz'Z6y gOChȁU?wVsgy~7&icv U|,GրxzD|~1CR413wE b*7Rc6+6;q ȀJyVS/cv(r]66.3g=hj|۰x,u;Y?(?Q(xT"wisde{UY6z.|Ae;BGz8@ ^Eyw)RȁFxuH`(d{ UCJyЍm 0 ~0!y:G-KvH"-4u'GȌ()a& E 9  am"6&/#e{^R `{R3㋘WRFJw(9x)Hh6imr0Y:։w`P )GH%B󈮨l2Rנ}֕ pgI*@ pq*)aa{ ǒ$:3\J?#ܱX*='h)g) yCUqIN @` 7p+yg-)i*FؒYrYy q {0BRU)zpA f:zȅFGF>}@(*ZHyB97y /jO}~CJmlsyX䈝$cYz,i397 6v7/aBluqIObؚ90QaXy%8fV\ҸVW?X)Op,2ZD*c>gڟ^gbF:Z?1j6px3Y+Vp(:;xVrwș(/CKGv2/]yJb苌31Yxcy(6iNjʋpCB9&b6f3 8p%/wȊ.d4zw`)}iK7&y(K/8JHz?F6G5&*AZGR{{J CJ*D4kr`J6k/2':r&shփwp{gjZ+(Wo7wj`avX먬vV3cvHGkN'^ȥ+8sǏ׷YzV{S >xN,Twxvh:Du2> puxg8bP@ m$x;7^6J'fp#Vx? |w!Ee ocqp}p 0mNeHȂ1!Brׂ3N$yqEz1:}z^y r~N Rt{ҾI'Z6[zK6uЭl 5hP 0%vi!ܱn؊%\H«3I(q/EBǏ(y)EJ2ą`bԡ?{ 3#VqVvrK횁Rz0 xP«Ԡz/vqzVɕJ.y<3z"j|ڏlɗə ;airaggression_scr2.gif000066400000000000000000000370741263163240400412650ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a RZme,H`pw !/1@]%vW k'4?RiRZ!cJR?J"[):Z.!, KkB+ B󵂯U1HZQrhS /Zd8vH{m]pwvuur}vnwx|yunt lonqqr?9˹Ɏɇnnm p҉͊pq솤!ӨMB *ï:=`2Ls ۃ a1ckT)HBJ,%-)]\Y@uD!M?6¬Y%ʜ.{ꔚFD!4 F QJ Z,0[&œxuޭ·n|M5$8FT#St )2֖ [Efn*-G$g s~JbLn<v#PC5"YD"CX#$=p_< ,,=Eܼh\0NIf^qmT^TXI U)Bga%nCb ju(޴ă9\1lLō-pD`,(h] 8Ŕ0aoMnsNE0by-Xg5iaZb҆^UbR!!"Wm0~TjX!I&{=HxvI4}c_ޠإQ ?`DV jꩨꪬ꫰ƚ*UcE%ʪk뮩ꤰވ*A*leHY(Ԓ@Z-[RXz;P{kXm|F6Bܰ{0.&n<@! + 簉vh88[ '=pI!`5' 58qbV=H 1\~JԚ%(, JAÅiv ,2"7#aDbHzF6ԓɀ`g ~ t:uI(\^H*C>tb־G0D~ڐVDF%@\4(EKk NZgP_qzOeDfqK22\&mZ҅Qw $( [B3yiaPP-LbqO[ӎ0p]M iA5cgB[5q($JĒlsADS[k/Z~)8TK.6-VӔ]HZ&<V(YzsϮ;uo/ D1Qa=q&8 Stkiv5ۿŧd'"DF2%դ$lԏEw [LQ:`ܹN$fhK7ͭsxYh *sԸ^[ ֓\3E"Ѳ.m)&1Ӝ9ENCJQkPlhCWsu:[mmUz=o$U'Ms.8S]R0m ٴ9]ٕlg3n> UT:O@̴B-Qfp'yNQop9>Br [6s8 [l^ Hlce(OV0ߝ pjS̤D* T@+@2pX. d%:4xҗt<;σ>HwG}U@*u zNf(m` ذzOd: W y7S? @X 9P ~Us^<'}O]ǀ>ozyR˦4E(׈}`S\+x[=|{w@upsLw |NwcwguguWzwzzwh{ 0~c"&y :~cȊhsg8wwA|IWx|wTZ;7[H]EW~W{nhhztHT1Y3na`"eoN!0( ` {pgxgdHMvyM@wHG{hs#p8G|ėtCoȋ1qҐ+ X  @3}@:vzww?7xXsMWe1)=sg9|VlY+ 3FS' EKI ͸u^G bq|s 8M|ؗXz;'uVw8Rxi}izɗxiE)fj\-7҃QI~vt:Xz{DG{ y(z>< '}PJts Ozwi|)flj@0NBH@yODm({tTuג{gג膆{Qxtt(:tٷ*xF :`sY+> Q'Ĝb4i'-Y8sۉ扈0v1ږRw w|[*sW|wc imRKm2sha{ɖ_zyAҧ~*w{vlٍDžP7fJgkҤ>ro~, W ixMgz 97{ʖNv]x{~9w9YYdr7vM(s9i n.7%0ZOS|(zs p {0yk@;vJK|)ɍwSر0'E]q=#Zbo BpT(wv~QycuxvJ|xtq[tP*[= zdpN:E ZEF0""ZКy Bp'v wa: iz$zSؖz *s}p8|!zIzrb҅G2!E4%207REQd =tC(uZTؒ@>Xs`{sb(݋$5jx  <$ Th"R>&o,uPH9FGUM8}7}iz8}U=e' !wgğJ)\δh!TJېl ls#@9Q 'u)ZTv>J|@ 0xb|{Gttyp:ؚXȍG2RY(2?v6XtHw9Wt\ Ȗڒkw~-|hMeKQ qSvmEYXS`&-toܩh8Ip7҉Kt.;ɇzǝt->acgшSw MQ%:h׋c=ƝK왁zױ. |XV}w\0* WؗؿEӄW+Q7^'*QR=%zH٥zt vWҧ{/yaX*]"PvW 662'-Z -5I ch,|]W\|W瀤G>YHzJ=Ԅx!>QnQ> k5(q:+$)8%A+Cׄck簈[r8v'?Fgx!P pZ{*`$v.K*A;"n zIb݄ם ׊[8;uW-'}0^%ސ.%@Ύ:}nPߞRQܟ•k5ڒbm>S蟶rXs6 iTGk8~7z L=cОXN=?%pB~wi1@&Q*I2=Pxw`ziY}+ܼ~M =8 թQ;rG [VngLN"E$yL&^O=w]kz|)O>cXz<nn"vߧ0ʲҹͫ爣[trιr ubxT2c>c@O#u?غ*0Q%"!aN'!Wz6̛(zXuYVqihmV]Հ@h$ƇlBʱ6 "((B<^#@<c On\ XZиnlxlp] dVh"^TX$` DtH41n(F:1dDr ($,!$%+))?=?5& ZZpZd oA!B"jJ+C"~xՀ %,g\KF`9FϷ>km@A<#i F8HP,j P~WW AU 1ñ# BYyDpRCB7`Ll@Wh(+X(VC!?< -Z@Wp̢ [4|iqm Ane!mO '@IPzCul~NPA#H7)Y0> ;TBs\X{<Y˖mmt<ܐ7B X& b&] ! `!cV[dӈU ~l# G$!y2&Nq&3TB1-'ݩC )hWj6u|0^ cR4q2)Z\mHN3 qL&uT&D mr#Hv<ʑh"=4qΥZN 8H| IuڹFLZN#iH(5#6[t ^2 =kԳf}%ĆGd%256dz׮RYh14 M j2t&P2S"H P:װ8p|j_(؎7] 5)%0Ajnp;ōI\hv@ @3N':GI4Rdih@ыux@s$̧'Xp}αEԐRj>`+JF@@+x1KdRAPBL^%&"@(,w 0I#p}LDI?a ؤ11 2Qgdf& HsYBqD~I=.E"!"cփ\EEiUL~Ikq( n%-57w!"@"E_rƙ9B)XAOwG8-5GH ¡"NG)B4sQr!ăQh4;UK$ͣh wt#"XA(*+spUW=h0 H3)JHA7NHUUd~{ģp8AYUVe[,k+&ԬTY#>V20 KTMiז2[nl%F8F!B [fbi 2GE4w{Q[0zy-n *j6LeCUC;d$*i^ZY!"*e,W. :(1^&WUA&=78$s Ti p,GVEAH)zP4ȓ,ŏe`+u`34EK|B{q~"(c6ݼ%eCҲ ZIG:-%8 4r b1n=}.|.m}gЃc@o? C!qfc0l^hq X `jAź+/5eAqhgͿ+1w!imq!u@[~ HPwED)E)<;xJʤJ(5:Uzh/ps{q ]q@dʀU^'P_d  !98 `,[S L v#P |!hH M :uL\ɐHȠaܰnᜅ(FhZf$IR=OlI! `4R cYlGq"`Bҁyʅ(P`Ŏ@͍WAhP[ : ,(Q(QQ@(Gf Zy=B!#dH۴' I\(!d}AhQeYKx[EI eFM !lLM'(@IH(UQTgWŌh%53V4RV ]stҲE!%`[YaAT"|ȱ%7@DY@]dGpFhKJ"Yb\HeimJ ` }&b@t@YR4@#%rl ' D9U"H9 Q\@ߤS} E9"%KET Rt$U:#EPEx6Ճn(}Kݚp! (xbp d>@ Ԅd℅mH$ , )i,b -1)=\ %A ohO+$YBR0y  HI評 m@@R\=4]BJF XN!$AQC6%MLfchWm*e$,&8iZ4dܳeT')tHj|狽JXLH(ǼLcPf> P&R('8]2TA:!d׋EB@wx<$MxdD,x+ʈL.8JC5!pڸ1Nh}!LDn\Wv]7mAQD,uu/Pv2b udC#ǗXem^0,` ^bv[=hJhqKI䈀R4l]l=Ro *STr` ) ,L\{Lн\ M!ywqa|sE}3~..DArqT(l747wDuױtږq|J!cp~MՈou( tZNeH"͈v[|8W|<3@LӁEc}7ĿʱBopw\B,X@dn3wT 3|fd4)B/az~J* 7âSXy@dL:e⣁-:J,I^)(:ySӒB=;xS<@AD408i qEaUPpAbYM4 <;)\z}jR'̀P~BDHXDom@,yD1̠iڻF$_䇸x{˴M]WC,ip7FWD"XCNw_b؀M4ΰQ RL,Lq[<}8i#)$I|%#LkBʤAd /,5`EKel &e^l:' 'σrP*w1 MF)IOw5~ucvS!wù1 R.8Ԑ^}7$<`b4 :IV6XVBB>C 1~=mʑat% Ki}wXL"0HWU Heypv`@'O4Enqq'u Bh9~HAdR }%AGQTN  6!D*YEaU~] l/e Ohppl\A 2$ 8`N,AG֯`"FU9`B Є l"B Yq~-!tD(t&\`v.`Wy6aju(Mb#tTHM$}ӗ[uqYPLA_uZ@F`F5(`6F^ C;02+xy!b: oU'LEAp MKG4Yש1.qe>3mFZ5 `8jgC&H/K^{.¾@4@"%\j6HH#X#̒ʌB-!%*nT 8#05 C Ehݸ gFH`t!=@,E+ =3X+#ZhdR]C40a5񍚑 7!nS̗Xy@Q2Cڣ䧺UaaYR@RzK QPB͞p&Y/A׹Q2ATVNA2䥓F~)&;a(/=XrZ&]h MUml[N7yXS\p#%}3 D8ˉJ L,Lf*F[uɪ Q"R2f79F/ `Y PF "*J^oѼa@4'B,`:0Da%{UR% fsHZśq .RmT;jDfjK"6UE6Oj oUr2Er"j ^aRiXK~6%uO"BRLf Տ` {0x@mPl DFkD$Ky͕At0Cءb%u98d"+Z /`f1Fr¥fLZBT)>~S/]y4WѸg άW!,W= Y3)JgL0*Y<7L"&R7)*D8"rې_FIM+3s\(Wvז0#*^Om [?S{z},|A>Ov)j{y"K?ics\Lc&JAza#cPbMp {4&vPGz>iD`vfsf8 Տ=ڛBiN3!JyVA E˛Q.wн!AAҧ_W?mtѼ˯&Z웙G?&CzxIohEx!/+8@rPgy @ѧSR@!!%%//nBIJS=~'F4MXr+Ȃ-/1(1xLDBR'JXJ@a FYЬ(V -ye핊(KEmTAf&Ѧ,d \yZv1rPe5oWiq9!d?Gy#ivb޵. {Fg dx4 6$?"[TJd`QZǘ^y,v+ƐY,sAaxpa ld^zF0 iF !`9(Vÿ́Fnjb MqFv(⇄w ـqjO0Q1%`>9H@v&1dt# Rbq(\o }Ma@RѕB4%)%`eU[–aU8m @-1o3qBb^#_ 92ғP](i6HLM@գU%KAT!"tUcMƺmU],I[J-DSzuu&=۸?nn#㙸갍ihBP5>kNMN:?O!햑+rڧ5wH4"ݶ1T}%THHf--nk Gd:+ 12a m(7M_^o5\K5\Px]\kֹ/s%u Yma~Kq\B_JF9 ͯ645jvBc -t7!2*O7:H gN1BT) 8αwvTCoCbXȵT֋ 9P~#69Hq'NQ[-bτCdW e伢{ 3) 4gV@ps`>p d tP@@20$Jt0}@ms?@@8n@{n\>؁ؾYU4`\<@}s@>C]JMO:3CL:.w Pyɋ='s>w[s8ˏu+)Ɯf/E׷9 <H@]Bҗl#{Ohc>ishGQKy|1Ƞ%W"sgs'v?}gt PT75ytL{}m'~hvw{*xs@8@spv;s4b 4`oxs×svF}Ttx z%Pite焃vv7|vG{Nxkvv;|57Ck}3H*vGw`zHtht Ww*Pu[tvo7xPhzvm؆O({kws?׃a{_`"y&j ,|ww(v }SwPu%`M'ʘctN{M{~p{swvxy8iÇ2K2hGهsnwG7g{w&%8`wgsdDŽsgbxXv h8!WVW\/x}G|<@zV7e(v]v/19{5h|荳'LQ7W))#AHwvWwz'wʰM'up?7vGDg(xa{rvwxG |rY}vX{'nt. Rȷ7x;gp0`7 R ) PvpvHy{8|Ƿg7c(#i!Arb}789`p tѐPy胻gwisyw)EɊ7x}Yvzgl1Z)6peEh0#i2ɄW|W{POt{thjؠ'tLXxwMȚJAdW,$Z#c4表 H{9~ ʂّ/Z~ywrciMO:=KEH2١smp@+ {ws0T:xk:iV&0rr:DBs=({-y+{Issw鹢ZAj:اV%6N}o8ߪڗ}2K@ېkj˳ ɡxkH6ks5"JNs$br*ǧ>ˆȑ-+(KkˆA8&7o*ҫ'!h=!b@6(ې#x,+|?pZTtQ\иq{  e7?s:,$ub\oH(m:/ѧjPYL+@i)M"l]9<2A:PYB,mo5ģwG2,yG|r >M؆K졻ÈaG dꀚNN>]w-A[La 4ڲbᡃgG̾=\ﲸ;>J'dH[kؔ|f%bՒv"Ҿt/|ʉ0Y)+@ 4K/z,zJw+{ZChB^AޢlЬʂv;YtMnPS?4u4Kή֍H'\\~_^ZbiVr: =̰N*v}^wYz_~7ǍuWjo|YmD)th]SG`~gWNل<݈/_z{ \y?1ΤY[LZ,[,:wػTyeu$\CN,yd b/լ8TK:!M̆`ͦp H@f{,6ъ=V0 n&q@8IDxdN$|F<8}Ĝl%-EHJ U`Zi --C r&^Z9U8xxݐ><쨖ǜ+]<:dbdI 9J3@jdBظdЁ@&B7R'ΥӃ T^sXDd8|``Ab (̍ctY 8 @\ɂIђ={`^:O4pxS\URjCe1`Lbc'Wabp)6,F9]w8S{IZ֑t,٘sReCFBhrHTܭ}dЬ-)lυ`SC\L,Ww7E\ual\pTE~b-0pAx'D``|`5(SA0rSIIlX X-e>1!D#VvVU)e5P>$o]~I9R?] .R<RI!xFTg([Y@ @2TTg_x[HV-8P XB (XLwSHtA;*C쵍1QN\@#/0Ş %Z5<%L 0wa<,;#E5O"FI ,xLYUeQg薘\DKBzvSFY~ Q@m t &&EIM>Y6>9+]q!bk3LY(: ;"KR!@CDQj(׀keUaYU!*m? _(2tAȀȨ R!}tFe@LYoKoO'ޮpBJ\. KܔlLӻP͟gFuaPb2:tI# xC_CmX\aZ|IDR8DAvg!hҐ8 HeY[0g#:pCUza- j5M0*JxUf1;@+#j\JB #>dDf%=V$mY2q;M2'* I&)IIYTh< @cgmy; Е^CuEf\7h䎰- ȘRXGiaV dCPj0E{".5A!͊^RYݑsUBgЧi_7WڜE`b 8@U(]nCpZ\  vH\ ]|<<-4Isg*Sf(~ TDpC0{XtZ-] ]?}ծtHN, q7<@x)G(, \g:q YD᧹ _ W .L v5h*lh:ƺ/w;>nQt|;5 ⠻j-B>X@ /D*#p%3Wf?68,8\'U?CqڸA3@hm -fud\l0EM %ZpaҘƾto腐/ h[y7hވFHQ5 wK\U/`9 mrHCX- xZ M [5 " ^[ / x2S V@F[O wtvDQА bE!w``J bϨ_qŕe 7،| cc CA8\#B`0b#:ބ&c5ݢB"!- aDD"BlQTD,TqW-d$IҀXe[5#[=t$N^p/6@ dAh !P>RG n=mZ$)"Z\deneU=Q%DԦU J$Sa!ABDJ"c0K-%f,eeAP!1 ,Tg8HtӍMr$&3r$΅M"f\d1ib v  ~n5h< ~BƁk2&c.]CGd-F5 WNkw,Y3ᴘ2nb熆 LL:XG cRAJH1{jv=( /ޑa%/-#Wb iXeuϤJ0g+{N o X5]߶e7 j/qb &\:%ߤ953TڝbNcN0p`8zaG|S+T 5(k;b0 `Kbx<"|TX^ PQ%4o E4Q?sbP\-6iٝ4bڌNt~ o>*w)^Qe bTɯfBb  0`KN?Y+X a ^GPX+P*q{10H9 (@#ęGv pjsǑۺ h<@9Ph&_r>e$⍐P@T<6FNgłP(r]+ P(WVR`XSydC9A1QH98HUYiiu:fv6P1 0`00<<|!ӲaAm" C)Cu82r---"@>i4̚P>$3Ay1hgƎ$K$cNrcXb 1ɝɄ|irƎ Q`f((,80ƙ2ef-+̏6džEffb6Pͷʅ 7$ر6=Œ{6gڴeu|6 zy:RxB W 8wF4լ,4u}d X#B53}>YSٲ(GV!#QM3]]^ K/< }=ui^A| elAu 2`G dҥL}HQW)܆]X. q![⭘bv#(bvU$4JHd,#[qN> eRNIeV^e&bc/1>e!يV[jfn gr݌mHD1BdIOh.ht1G")Tmg~ jZ#F"B͘٨JkPFb r݄*aw c.%2%͖XTSFwU+&FQ3N:##"DwJfqXsQtu:ۉ!YFUfI>.f'o<v`ll[$AAܝB#`bmtp*#0GQ ɱO]*L# );a*,(!T+|ՙ2[t:nJ}oPbB-7(O/"1a.Pv1yRg Hs@WҐ񩬺QO 5L BL|?Z@A,ƻOA; 3Gzd=dKj]"VoRۺU/s@ڝ= 뷟>N!Qpпv,kgsJia󑴶G")~{A\ :HBgph3=Ce2( ۛҶ$0ePx tTe^Q9źH } 3_hC f-aՈF2VqJ\1'$BFK!6/!)_ ˱00ͭ)G/|{c0Qs:1~B4pZm XFbmb?2sGH2 ȟdL~wdv2BY&f3G\tKbO] J8(*CC6; E[fW\mXT6 ECQdI1C4'B9 L8f貜93ǧǕ ;4 m&:FE,DO v8KMhJ⒒'E2֤Nk"Ղ-s 2%t\ MЇ/jjs(V43 uZ$wlt:ztKAkζGՋ#T@1H =LQfqX6 Vq $Pkl QnNsNGK:! *nP?%HH">J[}{$o o] kqٽ=W9[%$SVlĬywl7awõ%j^p=O[c ()UڧT6nP*|'(8KwcȄŕH vx1 h^$8sJ6> N܈x 9NFB| >d̆-Ԫ?R!^BED5j+BuK?nW}H@\lՠȸC*ԋ4 Z Й O%#P@*4dy Yy[@a$@QA%XEa&0"5\L1ZҷHI0qa @5{(ѽ2HU)*ؑZJ:4npMy:[H,ho $IOI5z1Rn/;*`d7 ,i+:-]dom}<-Wn' Rб3S]%vu`Ɩ* ۄvwU )2s1df@0,K7OjwRF \ O)!x`^,TS\m)x ݹ.+'um}@R;airaggression_splash.jpg000066400000000000000000000063511263163240400417130ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDuckyAdobed##""'"!!"''.030.'>>AA>>AAAAAAAAAAAAAAA!!1!!$!!1>-''''->8;333;8AA>>AAAAAAAAAAAAAAAAAvd"!1A"Qaq2RB#3brS႒C$ 1!AQaq"2BR3C4DbSc ?XyP ҹN~{xO;G wZ0l'g}N-r 2BjFLE2e< sNHգzPc{#t{NQ4Ed-O@JsX;VKˆ7\~`}5g%9-TCLG8h[3Sth/14v@µq7X18>]4mẘܴԶX+ Wt3ZY(k25P~"ҁ2$t,C9.KZnXE1 u1Y^C^;ד=ò#NJʉ [:')(L"PLͼ)e(p傻CDDv;?Ƌ>]i97KkeA)Pt{:Tmk)6wxd27K$|NySD_nD@z//>+_o5U~(<.{Jb:OKJM*'<8~M'7iRغxzc)f9Vh$jdqI $9 7Qx9ni!Z=7k&DsL#BnW.$!Ks@im{+»7ek]m/!♏G6iX珙78 M$8d]U魻x9@gY ڀ5GyC[O9AS4bC ~|A[?nN鰝!6Yu V936!n*+>g_7=fALN#Ρ}ilm2y \N> Tm2mں$EC-ϊҟ:|f.;4&+V^Y9Hg׽ Wƹ]^F2* )z?R̀$YhGӍ),d&cR8nDU[pyRe1~{T{Qs96WnjWR60mgjq¶Jj(- *i\XLSe(P'fE(˴W(eI\{f^?zW\ކ2͛9@;{('1; eO-C.0>7"dAay~DN P= &ִy]Wѱx 囆CBwRv*;7TN#aݐ6d{ZʛѠ ^n |z["l(h!JBW1c1c5dPZnGƈ,r$^bMB .n osB /B'WE0iv-Ad xIHArTh'|K"Ԝ#5F Q.'p֥[Tpnm:jZon~# B6kY'?& q?zN`I P{qG!F1Ѱ䥡wֽG+(j]vv좇oõ.rx(FpwE:ªl6\%8h$ {л549['/b}r.~N֏&/63%C /lwlQ\UvۥDWPJ\Hza"r^‹U?7=C*QmEVj'g~Q4088Pަ0ž*\jV44s&%aEɕ7߳ Yw]vW|gwX@^Qu~JdDihP@ 0@@*"NeZaI&%HU`M4"I$OO 8>0@N׾;w3~Sϼ;`8 w7{I}@=wo;y  :O<` O)8A=J0$cYHCxDOHEQ`$%+y=Lf$R`LqC#EА2))JVXhyr^A%`K41`̯ b87nP͟RJ$"qJDӚ?Y nР86cl[09\Z@1f~E&6@O[r2i4^AjU3h7΂6+GPb4 e;czR⇘fKݰLZvOkҭt.م](*Yj %3MSfhU[PJWbh25(X"CҦHj2 Ƙ KթD\KyX 1aBׂ6*i)Y̔MB 64|Eq,`31O{Xc0pA4Xn_M4"k+h \NiQlتք-:]@?|@|gY` ?7Z Dˢ,ob =i6Y&.5Nw%?oea @~@:4c8 Dz=:F{8s:Uzۧ|;p|?p ;&-68#:'<7P7':S:43t|Z'( S @Lxg8 =#5-3C;s;,;G237 5s|w gpjx u&hyx||ć5]=zRfx Yy 7AP؉"@@gAV?Gpe:gY s8?؋kSVG&d[OFpf Xx(~xaa | `x4 0aZ7t8hIpzieV`uW Z ?,Љf *sZّؐ , zhmxx2 @ T@0I@Ci]!SZ*??%y y >d5[qMEnwU57 N?K P!)Z-@1[OЕe d`7' X~xi "g7 j%9#G|G# Hy lI?ѓ5-# 7*"@ ?}9~ͷȚi胛r-#M w۹`[we G:Èpc7 x@2#99n`7՝ *sc8{y4I< [͗7$@6c 85 *""7)~8A@zc:շ 9pW r[x97#8@8! ȣ x68TUV1ozHZgZ8Jӥ:ʠ= @fzH#:"[0U|:33S~*a@js67 9 i ` r~"?::38v0C* z89zZY [;{D@$4 #$[Sr3-4/@D:XZ}9Y Wig7D8akG2N" 7V۵A;>c(f>:{) 8mP|Y;Azٷڞ; ˹ ;|#j05J@@Ęk_Jù?!J9]ظ[+6[)x|,( 0Q1A*{;`kH[ c @ co %ĺ?pڛKJ GNk8ۿ $֛{J2Pf`CGa%2 `0 E/3\pidyy@E7 p@BЛ50 ӭlԾxI=T]V}XZ\ | PV5Lpl\lnI"-Ud-|Ϙ ~׀S]I ܋6}Ӿ ؒ=قM0=ˈ ٟٜٚ؍ ӖM٨V٫MIj =۴]۶-܋ڪ۾M ҧ 1 p=ی=Ͽ]mڼ ‹4-M}=ՅP.l 0Ϸ-}[=6>0~-ߠ .~">$^&N }.0)U 8~3c>>e` ÝF;v@>` ,~G>Hm=>ON1^m}@$Q2 /]ln^b\0ih?|~肮4b>ư#` Z䌐i҃>^}^X0`>]Sc. DB4@/M)N뢀T.=M\^@0 ^ LʞN_o>3]i= ٢n]#}~` oOwN~?;Q "?$_&(*;airboil_scr2.gif000066400000000000000000000103071263163240400400370ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aPXp@0بxxxpX p8 (H`0XX( 8x@X0`𨨨(h8XP`x hPpȸ舀`h@`ظXpx`8(@ `888H` PpHH`xh8p(8(X@Ȑ0Phhx``pؘp0X`H8x@( x(Hh@ (@ЈH8@pxH(P@@X`pxx 0 X`HH((h 0H0H`萰xH``HHHh8@(`xpX80``hؐPؘ`8XHh( XX`0H0!,/ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sꌙϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳE jkln ز u7Ld8=8f8 0ݛneԳCn q '80*^ (<1An zkn1I'༑A۹w:Ptc'A ,_l,aʼny桧dA]]t}Zhq%FwB=8FBvNA( Z :y!G!eݗ~ތiys΅q5cRƛoWu1>PZMkFV^yTq%1@EbBdhH' B)fuYg_ Ch_ݕׅ>E^}jXjꩨꪬ꫰*무j뭸뮼+k&6F+Vk͂@OGJbU"@fɻnkbr wPF[@\ v;.䦑T)e&wqOCrT&b)I4\s+Kr|@8,Uj&d M4q@QAJmb hV E}eQ_^kO|<BrnE?-/unmD,t})ק2L]xx`50Abt C@\"yǜ  !J>%-IMB~B"R)")8"A*xJqR.,(`&bsf⤙ѤplfSDAЈosi8 FD&08bŹ% P`9't"j%b?Hl$@8xT. n 0PԢ*H9NpՠHI( lHJ@œĄ*LA 7RѠaH*#0a3ࢅYSFԢ"0 Q!ljq dPnU˥qm5]~ń\Zє#ISE!Z6SzєW6ye! ͳ ó$5i5jkd'~OgS[=6-mn[;F6-qS=7}JJ–-!f6(LJo|[)J2zY,x= 8nq?< =~p<'Mp`\gNc$6ǹy=;xeH;P?z+A䕐n 5Թ^ CQOkTyۓL}s_8ЃNK\;~ᆿ;3v<7?D-CGx/Os~^xLU&1O><o >ő#0 t^&;+|ſ/yC?_g&bA/ج]Z.{zqwv0 7p@}7`KGs췀x)灈"h~$(y&{2w ~ds-9wD4 0~%~>sN\GFJȄ0p{~7 xZh<3:F_LuZ[ȅ[lHu `VznhxnsXuzw8xyrHW|Y`<;;x^10pCu^Gh~Ȋx0ASDhc(/r0Ȉ8 rXǨ?hl xP3q3(C/ rzHh~GZh騌ȇ(+&4jPw5|`}gIvɈ` U't.` y ɐT|Ii . y('q,4Y6y8)yC.0 8'@BkzEi @@MдTY(>sViX)[Y] xh&6OyQkinaoyqIsYZ8E$8w^u))@$L 4pxmU @Z9oX _ M4phb-070Sps8/p?7s Ij1`)01ya /`EUg vi/М=Y霈؛gI^9Yಜo \gFp[UǞiIuyP {y*YFdi jd9Xu 1?9: ڈjQI (P߹dydw!0: U!%آ<ڣ(%: $' c@肊N35zc0UT@ɥ?8 7)6I5i?]$ؤ'qjrzљKڧut|:ЩdGI9hȨXJڨj9YZJ::ꪚjm*Av z7ZʤʤZڦCz8Z zKzڭ y;:Zz蚮꺮ڮ:Zz;airboil_scr3.gif000066400000000000000000000133041263163240400400400ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aبp0`Xh(@0PȠ(@@ H pX(H`xxxp(h`xh8xPh8Ȱ舘`xبX@H8؈Ш`ظ`xx hа`pH` @``(PHHHHp(0X`p(`pX( ȐpX`x `8hH(x@HȸP`@@0@` @XP(PP@ph@P@hxX(pxh hP``8pxh `xxHȨh𠈐x0Hp0ppx888HH0(8 XX`H0!,U H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɪϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳE,Vh[olIϸrіX!,X-E1,z!qMZjڞL\ϛf]PÇMxZĆ/\/^\pх/ *: BDD~'g@L.kreݸixpᤈz<ϣWnvg{~L 5qAfsgi"jwCi@HFn7ejyWOD2(*h^aYdAO?F@FY֝ #t&qAn,G.VAh#a>c?~DydK^PF9B(Nf!ra v(\LRqVQ}M^}|n/$yVJ(sJG֕ʝw&laPm֙g*jiEjiZx+.H Uw[ Zi5G*: .$ n.+f#b/ /^( ܔj/h!Tl P#o' *r &+ȕ,,.D&;p4{PJ>wGFH')MK5S[W3Bl\' dMLүg A*dۻ6W=$w*tGzM*/^w@kx94 +_>:Kغޡo٥#_NwKNyye Ș(O|b}?b,em ˞Ӫ-ΥV 2,щ`OXXu/ftӨבּ_dGGe0*`ѥN {PDFBnt#ςRH+R Je@#0h$%YKV$[HHX R.'7B(G9(\њ%Mf8""ETbVFpVPTADt@X lEpe6OjV2ԧ pNeF0UPuC%2 +U4/YFR M(B0R( %X4\fYzPjI|zjtaxZU*Kf4f^*XTeiM_S͞$w˦ȾN,_i ,a>43XiUjug-֣ڶHd.B\V(6k 7zrJT_%?kՅ%7WJ7es M@.3;GmP;}mtP ^x\ꗚ=PosvǕl_~!q6M [(XŜe%XbĮb~ h69&-5W)B+d jF b(?R+X\O M mkU`K!r%Y08Y `x֢gɀ0e ߶BnX@;GZn35c,9f!8ԈSgyɯPӚ]skQN+ c{G<5.ﴩmhgݶ"xGiGo'#Wm ֡kzO0sgv'V<4+'p(sC3PSoUKЀPlpܫw|_1xɘ=n,E2oh;sg9B4a!+ѫ H`+ԇ#2 QVp_Pz|{f1vwm.[oxtw-c%oKgQjws[-Th@Ý᝼jDT<Z&!;C-fZG?{^ 1 F[b ~'_<*!S_Q~K~g/ DrwD =;=)z@h+G]Mi}d#"u 8Xx؁@Sz^ >{1veW&(=.b@8:<؃>@B8DXFr,2Ih3G(.@!BBF366(`,@9b9^B454/3c3#Y8;38Z(`hX0j0t03s/"9Ć x7:C3;.zc,5sE1H3S2x82t3h3!7,dӈ:x !@23.h36CUC6?!?u(ȈMc)`M7h3ӋH6Sȅ4{tI;"4dӇ5\ `hy}X36uZ%x9ZɗyY:s u& ٗyY阠I50~yI =чٛy&[49 ` cЌEȚ @:GC C>ac 9}x4xzǘyHidC`Y ` >aӞȚ҈,ْH( c6z7( sEy\*d:':#&ȠBٜ e6: I*8<:?3FJbؤը :;T*Z^s( x(*ชUz4t:qx,x@ >:Sʘ pC"8_ӈa#h/z/ȋcCʨD:X0c٪!s4(کO:j):lx( ک!Ӡ(RʣJgʟ$9Uz JIu:73y *2r#4sW@SYAD`5:0ʭRx㏞hӋ嚨J?9(`, *󊇫ؤ"ꯎ?*)DFj3'J2 ^*K@;?) P#IŊ4H2&{*>"+.ۤȍȂ4yC3D9ۙp6SHBFk31IKI*xP-3`ۈi;CKbض|K::4e67:};w9;w"ꐇKv?3r3?"i/;Ɋй+?˺@ivp>s'z۴ +ˣƻk/0.'ѩ74@ƫ7d˽ۛ7˾K6d3 !3Gj[@!. @ -` /\ L,L ,P{0͉4i2|1|L49;Dc:LBL>l@ |LL)\ @ X` daha,HLco|m\jL\L*0]ŀr<LƆȇ]ȍ,ɔ,|ɉ5ɢ<ʤ\ʦ|ʘ›0H˲l g9˳\˶˸l ˾,ɪLHȜʼ<CPL\ ټό\|Ώl,] \̜̃0\} {<Ŝ|\ |\ "=$]&}(  *2=4] қI;6@B  ˹ӉҲԭޕa!RZ=C+Ѿ9$^⯩ja c>k . y8:<㡘M,ڦ =NPRn/ $ULS`Rޥ!9M.ln=վ= ^-糬^o~嚍qַ z0ڡ-z p0 [ إ]zpZp&^~Cܗ!ר ~Z̞պz>ל >N᠞KN߱<~iRK I;>^~;airboil_splash.jpg000066400000000000000000000106351263163240400404770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDuckyAdobed   #%'%#//33//@@@@@@@@@@@@@@@&&0##0+.'''.+550055@@?@@@@@@@@@@@@td"!1AQa"2qBRbr#3Cc$4%!1AQa"23qBRr#Cb ?ͶR#*~,-ڶ׻,yy&7U{kyx!,y{ Ys `~Mck/XqҚ.pabmbUIJM#-Z+^; s=i8K"Flx]n1#uSSjl YtLZK8yzznlmiU *Ɨ”\hmiNWhs1ǒAegdeXϢ$wkYkF,6ᅀ1EwϳJwY̥ZCAҾUV]"Buyv̎HӤ1[`5[9=TšIC©! Pv{׳BMG4*R0LNksI›ŸbfG )B.?k}>5fyntȎ4 Ξ})"S>^ں_X#e&jEUt{\o{?rvy<Ĭc^MX (e7[墝)f)XznO&t͊ڭJIr7nn>9~m7PrsgA ' `/M)Er',"\yX6"X"8cN:\8Ǎ|+ &fLxz:Amqx #vk`jP[(,nĞzPj775E$T6u {oe"f-#,g?‰؏.G[g 'M5 ҇#M7W*2eh/ȭ(3+_`óOezpQtzun̹2XB}aerw) yaqjsׅ)$22ln+a>0-Ӥ˩e^z]x^Lj@Y'U"?$&e#-Ef}cN)M6 VḏUvܤ*3pEb֦0>YmgM114qeIaR#jΔfݱcۿ4V|8 i8gm/`6\5dBjej[huĵd xڇrV^K=Mƈ[ξ\tmvӬiզonڕOatzV7}:wTiNK[Sj6Ι@H/+~ު,:Mj\"Ծ_o:qAq!WjMn5oWMXó‡k+(8ݝ VR5֬#v6NlUA_0]FdVH%30cti^g.Ig#3ۗ;Z l;>iC :K:@ 4łP5yl%2.GƳc"pˊ5{kH\-fu+qă-LoxT%[\ (ZP I,$Ψ7C]mW=w۶5*ބ^=>Pk\{gly.e΅Tr93[PT~P̋/,~5dq,gr{3w%Cv3`;J6.R'VG3\y}C=)|a\F]ܫC2<,<.;fIÒWIUw*Tt崪k֦|`XԨsR im%DK؊3\>^O(WwFdLp<ʁ zb͎R#nain^aǒqwOpfLqp=l?U2e>j:-vU8w>.ٍdN<܈"F "/G.DrETRˉ]+6Z Ëem:pkW[6xrH+5O2<_:T kM >V#,obt'~ i&鈹oPJ]B߁FOx^Y:6L8ӦyLO6UYrw-a;fm۬",QsGVc|9x;y=EaKu_q 1tmTA<$2F51fhyZLD}V}_f?'ѕż55"O5/W?pw-tP:lD?.P?6COv$7TP2SEԿK0klk'7BʖeieNPo޷FE{ 1=@I׻emlu ~F~G'l$Λ+I EN뫉oeHpkwXwqX7`L1㤟m۫Kc $ Ǧ !wMuND 6^Dwaß@ed}˼4,baTA-=UNQ2iar Nj/c-|*sM%-e%smvOW{cHt)bd1V'%6:|gs̄9?CEÇ=hF/-28o|hb-76oԪ趣kԮ]A6kzC2,(o \xL6 ʋ(6'Il/fCT1bntܞS<51O5l_O6%6VBAgڶ<ݺl3Zq:-j,W;Dc`Y6+0~OPTu(#mk7x㈆U0[tmQo&R36ɒ1ri,t`&7۱HJ:c67F8}Po91fH)i%BIV~ً H59{Ulav*71lrEUw<َƤL>t!w\P=!͕}QQ}ԳJY(` !ڢr#[GqH$byJn½,о !1dp1iNذk5ȉŵ)ẽ\.CƤ,4V4xc[1P:#Y؞VdEFrBlG}Dž&+n^7VvR :W궣J{PW? j\oͧR7\ u~gT3tRГwTt33.tO"Wo~W 7RSރz?ڛ>g֧ƘE9_{{?*Z/9WJ)ݔ5aneks_ny2006_scr1.gif000066400000000000000000000105131263163240400405330ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aff̙f***f3lSf3ɿ@<<<7ׇXXffff3f3))ΫTT]aL; rClQQQ}rYxlGo3kW㻙WUݙVwVܸ##{åjܸOppYE58j|ku{uOOzYYظKbwrkֹ333͚ ΐsh#{l kϞ!,55Õǰˊȹպ̊^^ ؈ʷm~ (PAnSHqÆk2(^Ejtƀ,3  YAsBgpd"hʊVdsN2b I$*,P ˗}T{tځY06 3㨊;zPQ҈KRQ20AYO0$391 ]ß*@C'U|BV[uYʨMm@Q15޾5ǂ׶V9v tP$|ys淳@x|x|rCH@tC_چ~dE!m vw}G^wW Tʇ`)`xjse8C؞o5a~wFM(!h ]mHc2vٌIՅ]Ic;\S8䢁bf$CxexUb饒:ۋ!Ik-ۄZZXih: ^(!GqsީF_c>jɚ879k ߰Fj^^jJj`uNƩ2bb;>k F7`iKq Vd?BU%EIP`TMUݺQDG tpW]y$ (o@BJqːPl17!3r&| io.ünu5M;GG?H+tE_k3̆CaWo5ێ w(yAvJ3;wu?$kGb7{ كgtveD*R#߁r5Văi% I e4.!2m!f:3 b@͈g>S!9N$H:F '&5c`R<9>_zdię LBLF'=?*CԔBK..YU83Q Vk]5գPA'`'VAo~dWؓ}CdcY!*uSlU kruٺ3rmsnKU4 @B+{َ7ɧ2InMN%U- {\kMܦbt.nONwčyC6d"sv4 z]wõJ_NFpZq]_icG',_7z?=e݁?MxVohsheZqLe X"d= '?ymo Rx?4T/ֵ2,^/~׹d&LҴ鸧k_8Ϲog ) Ӷ44X5uuk4r~梒 ݛm',Lw-kV'q[SYԥftmKs )Л 6miZր1~ؠajn 2w]v'Zÿֶedq n]8f0ǝðVce9bb|5պhroĿ;[|/W\.^uX3jGTq.wm.= FUG8]ykv[d/{%x&aj=mn9wonyx:8{z٤gw5߽vbEj}Lhͳ@:ч~q[ڭj:{ux7_Ni?8~1w:C{Wj&w7{ue?RwwK\Gy7\}=5bѤ=QK}wmaf| y6g؀h:x({vhZtg?soQWl˅bdWY#=8wMRho'6svf6ׄ81U%d@$t%\dÄ`]b6eHihll]_؃xv CG}8_CcP`8sMSx `P7!v /S(4@V9Gp P;G@::pfCYpQ%HhO0ܘ,CM 3NK\@T.N/G. 1R"80Q1@eqp790%@2R0U0|15^PH@aP5b )xe hY@2<@qccqe:sD(,r*+'AR0TA2b)Q!+AuQI .P, &5)rX+ܒ H! q!x!'(1$0"R,0b $s0!1tge a!(r.(rɁ%TB@Gp:$l)>eIy!y@0qYd8!"( iޱ,Y,9!ù@"6(o0o"!%Ohy"h?2E @i E0p'].:b;B3 ))N :_(bAB)٠IY(N j!q"Ypr(YC$ $O&z!9:Qq%ipF,!(2Is2)0!yRQzW0Yp rQ82RaJɔR*\Ah-Z-Ʋ,΁Ҩ\:j:UfJ>P E@z`AG9?pp \3TARؐJ+@Zz@꺮? u8xTpjî* ?KiSfHtݰ6 WPKvk骰1$˯> [:>(N$ C&{C?2jQ9<94 B;/HPsS []O ZA[_e[0b˰fuH_4+j>fcmEF!ȏ 6 HI#!49Ip:f8C3( 9Ї8/B0%ōb5RI'8BdtI&Y$FbAPE(E*.l e^ JCL%Yf5&"Q(*ʹ"w% 9A_)fRCqi.~JPtzh_٨ur' ǤTji½uaAqjj`('Rp*vd⊫#L@ij6kɊt޺x9jk-KpϺb<Xֻ̽k<ۡ0l&Jl3VPckL )J޹.H*̲|oTUԕn:z+jUYC.&%; siox6Mp58\#ܮfAMNq[Jֆ)D0U,((?בΆ5ÀX7i14B8.sbp|>G1c-x;Z*Z XAsF]8,~"XV Y\  ֿB_^guǬz{d7AR1"MZtM@u_T{S L\ł;tnVwwHv7,ޭr]^8S*ۺr[pRǏFI!պ]9fq꼡͎V Vڵno8`0{.׭.I),5Rj&Y;kώED `p C)0X`8R0G Z505D(J-@6Z!JںQN Fy.NJ(FWçZlj^/ᗦ % w,jXN,fc4$tfr#쒟%O ,*t1}g:(>WFpg).2pGf`'zv_'4W*2 le{wy7}w lB2:!fc376譈66ܐR敘5?BNΎTZC-;_{l pb<5\|`a6&\o6ü~{w;a?vu+ɏ8^\]^>v~{͔g 1}?I/Xs`"(AR0H>] t`ŒoyO:BYԷ;NeNVD@wOI,E#4&&zT9݌t^uLD!cfc_dž:nQ;s6>T|}+˗)T:*_?>~g;[ RU{ ;q:dCu]_ooڍ`hJ[wCߵLèq_rfGNS%΃sP%HRTQJ'I+M>_:Ϗ摭~ti|:BmV+iOhKGeĽ̡$H&ŶQ}w8犻{~' q KW u[ }>? {; k[wK\۔sFj x33@ (;D:'%;܀s1qss?%cmm&X8 ΡrhQv"F3u3vr?~A2 gOJc FSEf㽎@7E6F71c82j5Y׫^zkrLj 7Ƭ޹ܧtkPg ډpMD.%]|let?48ߝM8E(yMb7!dУ2T>r9cx3hn"~S%BCtų" <T0N?4UpHes:hdkeq.VT_&l,nk0sVAXGb9 Qҏ=缗LTRrPn@?Ɂ/5@vuVءm$(:cfcNV$nWFNpҤ%l NO,  0ౡóԒ5[W'Tz]}|k?Ҽ%iV ydw2;Dژ3ViuI<)4F23$5[@Rȋ,VF× XΞ`Ÿ>_},cHy{("0fQcw㛛oY70mI"IY_`cK[DUxO"Qq%Yk!\BSWgyPxw:tFdtD#"3貸ٗ 66:==V8Gp <4VAiexn"WoTx,=>tW7[6#"&9wҊ,soqlV+ pp˃InjյԖHc!E z~t|1|S9X f7|1qy,طz[UݘBm4̑+c ޷c0u=Ovh$C?C؋/!e-tM/;}«/uٲš^Qչ :WbV=3#ǁS2|YqhWjSZV A?5QMuC_Etqf 3.f`;rG2yoC,7Eŕ H^ڹn~`ap#: 7}?)Upxll <$Nt#m~{\7l&*$c_)|.K(JZ~G2rY]yT,DXb,\cm#6} D R7^jo43KS KgG[Jߔtqfk@Y XЉ!b|CW#G]~!I^MobМ2&ZIw=U At&~&={]LDZW{in,yd4?:smz d6CR}P*!w IVk]!zwm>ӊv '37W8I;W S6$[9B#PN6JY‡=|U,1ɰ,=պۦ>V=0f-p9&NΊO* jVA)ur#qԓ]Y/q+~&SE ]10ƫ e/W!zrZ8ao5'f ~;kQk"b# m.ˆk-m463a⧞-a١%'a7@e'ޟf2F#2n.ԙ= ME٩j<ܰg3Yb'C#l6ٛzAfm1#!wB8<=) B(k7֬b8o''uܿڮ ӎ\G:. d㞬GZ87ŖEnryp&mʁ@UJNj|ԣs^^RsiڪYkM{i9U |ZzI)/'pTssKˏPxHהX(Qtg챕+z1騊:eh宋^k U˷)zTQJ)QDœ2\(S a[5Eblazinggears_scr1.gif000066400000000000000000000064611263163240400410730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a   *8$4 #(9A 3A H+.L8:dc)D1] 6pfRDJwA})klHKWEGhHKrMQgMQuRLfPMvTWhVXv\`_\as`__c[qefkegxnpolqzsdmtjxuuz%.7); G UGPM \Y gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZZR m~}/11<1HYR|wrRYqmj P}})szuz$-*/.(LtՉE@֭]I}kح LNY݊>W/_zӦT-\oy"SY;_ʁ]^6.L.n\1*L~Sϊhk^׫m ϳoνq?ȿK;\slլQ>= ^Cœ<Ye+;}pwuɴY C>D  ^fK$҂=wZQR:U݅ 0r\Xl'2ʏ@)} w"X} $HSn`%'pң\ɤG2Kv%d1^r>iaMvQI4~I(q)$u8&eA %jht"ix)̸獗X^~h瞡%<#Dꑝv cR㎣ kLzgrAd~ifJ@hf9 '(jJiɬZע]\-{KՎr2k(80|>3Z1)c#[ǍM<gP7J+Ǹz̲] s4j1)Cs^4|P=i[tSS4ZY6hgُvkaT5 x_v_M. y{-'.*qfz?^7l{ҷm4fy\ Pwxy_wdζs) o|uͶ) < Po}NaBC^/~w9p7rV/~)߱nlzS"x)~bK] <C <AGÞ1dWS7BEo{M' ?vO (H]Ѕ!7 "N/TF&y-׼ R$p%tB.mpd3/q"a|Q>I#=~.4(H{\C562"#$='9 R2jdC"u (%7 t3JVPp"Bفd- h9̇јGPǔ)\Gf6s inR v&Mv)IT<{z6Y=C3g;9P=;~ƑmL<%Ђ> hFrƲ èFG*Ғta(?MJɤ%IeSvE"ҙ”> jLIɜj)JyQ5$,7:PөKsJӂuN40´5Ūy $ 0:e{e+tf+Iƶ1+i"n J,b,i,$U"NX+փ:]L|>h,|&M<ntؓdR64 !2Iʋpbܥ. -h@4 Uk"}z3lx$Ѐ@R Lt㝐7Eʋ;5#GP5?paN$ w^#۷C ~7l8`nn%$k׀ j>h!Pt u?S u;=ͮe7/Dܭ ]B Qz",!6 :튂LdoC+n"`.ϐqmTy >8q)$l; Gى/2<P| 7 {/=h`)K{ x?D=sn`~aw g!G{C}{#LXaw h hSH0W q5 %HG+؂{~W|&8 QQ1GPG|J;sUH_} |DžeȄ'8{)|dX}~YPP G0"h8zh/"{Gz&zaH"X"wO ;blazinggears_scr2.gif000066400000000000000000000054371263163240400410760ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a    *"3 $(9A!A N+.L/1`1/`8:dfRuIKVEGhHKrMQgMQuRLfPMvTWhVXv\`_\as`__c[qefkegxnpolqzsdmtjxuuz%.75); G UGPM \Y gjsubkzs1I2V2n }.~JAJbjKq7;L83Q'3(cqrv~Ջ$7u7~wJh!4ZNZk̢K @gkL衇dCL/ >s'/_?A_8"6πdG^z\?Iwoz0> uC B . AeX[p G¹f8|_0VL ӎvЄ![bE ׄ=ZfŊi }`n/Qb غq`mH2LرaH4F:Td;o]@z$hMF]%%JTRd<*PުV-YҋpK]VO廀9*d64Μ,e%yMiRҔ?1!BEHFmt>u"\,1bbd!O|3숉O|b+T}CDO~qF42,Z0iIuȊ~ 7R~TLY-@5W4sEHzzԤ˗4\EUZ[jT7ڦ:ԡLcyJWOժTh5n*OGp;ӯ]oUZ@,+ۚ˭rU #p^dJSޑ}Ђr6_zF4gײK>cLӲ\=%rȔJNk0Z .ss]Vsdnsz7&pzN H+I:=&i b"$bK /oJH)"B4nk`U:: W50BJX%ncG+/~1XWZ'i ))",!2d"x,sH>x 42L*[Y ~ L?t)@`SiNyvD @cv*0:1i;Oz6g RYp !F3M4'=Q˨siPeԥ6uy,Ҕ3Y<kZ8Kg;6 jBv6 _NPӣBwq4, dLF!Yp#&XG B8AW.S-=<~X8?>#D&H@;blazinggears_scr3.gif000066400000000000000000000075441263163240400411000ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a    *3"3 1($(9A!A I+.L8:da(G1mfJYAY9QtA}){q{u ILVMOm\`_\as`__c[qijv%.7); G UGPM \Yu gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZRZnjR~}w /11<1HGR|wrRJqmj Py|(szuz$-*/.(LXDHQŠjQO-6ڷSE.D]:/b;#GG}mAoZL-$ULY"YM@ӣI.m:uk "V̸r#S|9g͛?R<2@ҫQV\9s䰓No1 ۷!K]2fN\q'WY]v{w/~z h|W_\9]%L& N1^Yވ%8؂%V_h2Ir0(wnh}薀&A64IM6Nv_`;cjIlC:&S%4.t `p!;؞ܕyet[DS5}Il$9 IZD7FdK^TGd)艌JhE.% Dɟ\a)Oz:*n11T!vmGIbZ:i!*خI#)0$dK!%*@l@  9;Ag+Ko^Q!gڬ+?PaF Y4p0p#ko滯XQOl̏f80.l8YB}V.T2zx8L"T<6Wmu]#G.5W>s #:x@f<ڀ Nxgq{5uOK7@QvIh"oКL8*{ /Cg:(H׵]{q2_:Wp+nPY~z LW<2= YXA\E4Mza+"EzDL)UT11J&4ɰsdmU_\fE[ ׸bΥ&b,3_S R]͌*vi$l1m=,.Y5v]Y%7)T xkiY h `mN.7f Up>\͊PLL$skV#(ܨH^TT !nmof8J ĺRM*y]w7BnYHSݨCJ]So/9+m1U$.UpqKCF^A sƨK`E182U `emOE]ՀcuYmUK `5CnLV d[ li~fj\6eiBsr#6]CҙmE[CW5me]> S̝_,MClnv'RN;^)[Lljz=l)۴.V{a_PǎteLI LTj{6Zd*> cdS0'٭o?068.icfrmf"Hm}T!ҡ M*R,G:?Ї;P UIP}Vߢמ:Ճ@ `AfCivƹӻ~$ >Wn_kVs@U}/t;>X{Mo+@#9nv5}5Z$fZ޼;σo|xW7fz?slfQ{kP @*L}0\/\eW_#áZ{L|Y8FD8~7F f2;EGGW4x0D ַ~Nvo]ZgDT.؀bg3" E&|'wCG8ywNp,8~җ0>ʧwCw w\}OX}CwwXhQu\Hsp}ԁUxp h78@rDwy{ȄGzO(@rDngh|(y+'}ӂ/8vs8{)H:hC@h|%}ؗ cNTuh&T(Y88Ax}AA v~;}H4OCiw8mg\g*y/xX:2UxpXw`lȃS~.Ps.8{w| `Kc -6|,I!R5{h8)*  68h*12yV's8; xk]!'n$= ? \Y \ AI"(G3fi5Ɓv=RASB%1[_a#tixpY%s Y^xY ay2>BCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCdd" !1A"Qaq2𑡱BRbr#3$Ғcs !1Qa"q2SABRr#3C ?=urP>p=`3TJfUJr/4t*OQmKxLG*b*nfX/J3 R%zڰj 1'T9nRdG(6mL%30򩪵3#$c ؒDg>ysܳR"i}<Zj- -]io5RΆ #IG +VbO8=e" U69,5+x:>4^30EvBiŨfppŮMKd ?,ަȹLj%AIR.үuke)|f3=&w+KА'i2Vw2JuW`U]~_u}4\NQyyhݓunef{'HmZ:Bwdgk[jqM eQg\9dAmڪ*e,/vے +#SxMY,xLJm)}R5v|AIrϭrR'=Bchvxʡ)144$F@pgQt* ޔ` WG6Z0i'8 )_~ bʫIq9'Y*3<55tRTe2oI[bDȳ{QZKr!u[`K7h0O}F S#)NqC:e//,[RrsN&ݩY]Sxu$rfPYr#mK28GK6Q;V49zz:"v'u ar8:ثjg4܀";XZlI)tF]M '{ jv#9$ܵ##n+.a\{L))Cm FpwAN:jS:x(~_oKW-yqsESuH[#S$ ]U#]q$EǮ+Ӧ)/й-I9(J +*IDO ƃkzfգ($KOZ@@(ұ9h-gI(N@rMdńZI?{nOhlP. M 6#aPʉG:7EIDۤLI7LJ'ojnAH)3kP{km\!f]65exJIY/(A㉋sRi.'" z@]EPpH tXZ͆..h!5̂) 2\[c s8VW"kܔY}y`tʺiQԡցp]oؑ֐*=(Q)b ֽP7PElL/ %ÓEX{Q;lTJۉ4I*)Qk< PD4O@u"A/i9Jx5P7g\d T-.:8鬜n2$y6)ge觯[)PSRd@{  `0 h ؀N0!@ s(8(;@>—~ T H n0@ ЀF"0G $6/_ Eُ~@D с| A H'8A6B` O_>0ELq/@Qxq`@8@v!p Ё4b(J!f`h8Vp`l#,(C"@hH Ĥ#Xb.x! WE~Qִ& G0Y/( "md89pgD )C25$)t98G@9"lL4LL8Ch4[̟ yȏz28A(!zƉѥBC{  B|tAqH.^,_1'X |`IqBUdA(U~dLȀ $%1XDKn:uʁjfU>I'g !*KbLHo`|%Ұ,@?@Zb_[9BBԧt>ghϋԢ x*рh@QȘPHɅNX@bӚ"+A&䤮k@:wg=.,`>ZZ,,O? R#+HIFpb& gؖ)N\?+y!,kX`P /Xr_hhбβn8v07lebIaI(Ȳ̼& :NII@5[bucvLD@g#7@sh@rrm9/I2f2uKOьV?#ЫVלޯ3Gnr-hF4(H|)@8Z{Um'CebfTDoZdT#Οd1嵩Ry 5bPBOL5,rѳRyK;/*'Ƈ_yw79v~|3ӾHE~|]'<@߈۸]D,~դN|yH%{oe AzPdW~(aSz x붵dQ?}* dNlk4Ӥa P]2ܲNv/qnDKPK-y&ArO_1j_T.m$aUx/9Z|1Y;pFnppLC-D.zWE E0e?4'RM6On#wTeHR4_ʇRDRPd3\n4nnQdMS5eQQlJ4N@Q'EIB~eM%g HN"CteZC@xW6w@Z.`TOcX"b!bGe'S@u6VD<ar?3(?5R He0JP6chIdN5LO$F[~D|d!O.6XSt 04/ KFƧWwTSJF$O?tPvwxW&K{ vt zsNUNɔY_dJ `B4GBD2rr1qhx|xve_UGJXJFZdEutEBGv/wP,%QĀ7S$GK\%OBSlFCx{˜$kr>r Pg鈀XJfrxphJtTX$r1'N3Vp5UsAWx_0EWj bfO &*ĒfPIpMԑOt~(h=\t|P˹$tOr'ectI4Y6\=6s]ڛ!jZ|j戠gVReklkMkfDE?\zHNplin%ՙIh%L\ t{IdJizws:@6;YyC|hlli:lZZkuoOHE]ʉmF$Ohr(oNudzT5ǫ8wͼ-A p T:DZq6gWEjZWpCǍ=Ŗ6CR @K;_RUc&CYwY7YtKpL:vXwwTsrZCEF'x+W`oj{`cĊ {GװKL$[x;OH{eWg=N Tٲ/{{jOf)G\TnhU|7vNB{Y蔵[pG*?U|.DNTj7+yF+H_m@oFsAV$ũCq;+F~+TA ۷d)jOVE%պëC[C䰬.D4dIFK]/񁌴}AG|>FhIV^Tt\A ގUF,Rn٪v@{Z~Otk~I;FpĽIƖg*M/$))bG+4KNw \Ll{HcBRzzL:ˈ $CnxX S!Yod<+W<}YZc?Q2)+.GTQBXCNQ (8$Xx{ Cm,WUinLiWVzƪrL<)=P&B\X? \TdD_Yoʚ TʹL[ZU%v oMʛfYXvT5bחL Gd!$q =L1HI.- 9HN<]` ̵-ǡA4X"d =$E%K5lbt~FD^bt ib]uڑs$C >pEc^C榀:q<ƨfΛ|9@DpiQPD|[T&J4jpDH.Dl|9jO3mT[6m!vb3_܊@:=f͟0'P$%\N]-)0Xp@RP8%Ca v&\$swα&sf6s~$ḯ: Q[t՛`bª6["u0X6$`A22( -pMiשXb9f!AIēh][@b+uqBBVl?  upD4p0nk@`w5-:t A#HN.|x%r?QR+`:RrʗiF2GLtHR3\0(PY@NXGNbc`fΘ%9$0 &VR6l1"L~f$*07BpPYH%ucA2h&@!|]m{\7pE)h0kI2`|јf|Sij- #bgv Hr#qBiHB edg+1 pxz~6["na,8 &.pэVV%sL V|tFl48qax0p8\@,1X@"$[,EX `( %d ZrE.^ds Hc&#c2B nyH7Zڒ8 @Nl!fNary; l#"Y CB@CDlyK~ WҤKVzH+9 A@tJE3j&\Y&`EBija- zm58iaLoѨA(ǸQ_641BIdܵg.CEHEk!`+{'1cLF)yPC045ل!jQNf(qQ^#qtķHx FЖ,x>J%/C<{BP 8MT׽bYtD]\ŠvȢ Kbpп ml%TAҫ& /xVrp4`[Tc|a% {]؋V+44mr.T@-^R-rPx kE$5*RK1/)CFn]o_~< ́Qt Ͱ',n(mvF*VN Q>qZ|Rg-"{sx(`ssЌƚD>_И1ӜXӱ yU%\gI[o6r֊$:ٿ.mC174hNe)aLFp!'r) -Dn"w-GIuX❺[ϔ#_=!s֐G$~/mC[W j]umSzLpУi9.[(k6 h-ĉ` moE! UC({l@Ϲ?p m%ƶ~@pzRo>_ Qbj8A{CL/R/bYbŜYwDIVr09>:vdd7kPˬXXQ"&# ||lSIa27*[]OE/!TK72@>DO3U-P7XU(ё 1\97X 8C9S j 8!:)E6t,L pR팑TLxńN{NpH@_(O\TIE[EuVR.uSʹ\LQ(N`ċ HBP cRSYUC"E!Z"b!Ra "=UkF±ȅ] H Ƹ=萎 Vs]UU BFn1R.VL#-\_cB`Ḙ:ًIZlljVJ!FG7Zjc8R8&EDkM@mB HE>c1תaGr8xyM z/?;0䮝 8w0$Hw@Ŋ ,(Xe(B,4$emIR@]|e# \[.uK.]b`@=䃙UR]L`C0>|B^&L$*lH|厑B񀢥ٷ5>FDwE ̥e,ES$SD( zxYLR0S@T d *BueIB\@%2 ~hU㮥UebflFg|0'e ybfpFm~^1& 3Yf(@MD݋[ @\dyGRD$@7X( aZ dhG |L02=X&X%QY^u؎g FOe:@$9:hϑOL鏝Y@P}A HJ$(HLZ Bmɇ)P}PיD^8im AP]EwIsc>p\AF6hQ7hEMMk*!:}I颒P[(z^~1h )%59 ˠź,ѵSKXڸI#I`hk+Zv́ (Uo a"!R"-YB1!*Zl*¥L1F M:C4F0Oz;;S:CάMj 9œ % Z'<P]C?3IkT5َLDFI*xqaAEeDFPhSF*}DTGTP!lNS9%ƄaUU bU#RQ!%.-\b\ܭ\Ybf!Ur"ućvs^b,&/^u_A>NOopgqB嘍diֆm/7J:#|7£H @dZn͙As%$w}䝌HUI k*$E*0\vy${$+ZT}Iũ[藯 ˘*fM^\5dN2eOR.X0ذ N5 ϡL9+\V@%tٴ81]&`hEcNVPۘY-,۪] 1.4ҝUhix`qLڙbj;LL!*qŒq1XZ} 8/B p wNjN'~F[| ^x)W b==dJlJ`M3MJL.dHh9P(ZA PHNNEN4474΋.s`}t%"1FIsۤ*,)PT&i:66IO>iPtQ;!P@ΰa z00N N`HAjIF!*ܕƂ9G2A90 z@@WW)70OEZ`੸X܁l?݈ E/YF ?411uiAC4m$eCA  'p$ JH$xA`45a@f @Z) `@0RCf'D3)f iSDŽeqd7! u[@3s6ll r&0hd{ʬlF~l6`8qn.߻BAXApM@[HQ)4E(fƸzqo ld#-@AClhbwDO; q]3MQL -L0 k{x,AMk|҈d  &Vcr~PoxjaH2ԖқTvxx, ֮]%LT ˜L%;t+tU-`CDu6`{9sGL>TKKY-+]oH@4BJL5 jQhq>~a/(EH$/ :GwixMWX0JH/ra8;@}PwSqߑh̐dpc`8S(ZLvD|VXԅfS22]C-4h n,1mCǂqiu`){7&=;~PaM0Oav` +;Z`V GS`0@ o}ߵ{й,# 2A':9ΟiqXEd-Zx@,Prp?($Wr5ZQZXsfnN*y^WVRxwTu\R!%\;|Pm|yRGq,ط>9^U ks0@[SgenA7px_f%E%3%")Q#Wm| [xȗ)~ٍ )uafu@e'=x pd DO+@HR jCoxC 0 v@ʬw f>$phXْPzm3S/wCw|':TDmA@ S}5FzU, D{ݗDJ^6'bus^";wZ@5b5ZA1"((D~%2`q= w#-@<7oр @$HwhZwUP!;caspianmonster_scr2.gif000066400000000000000000000327611263163240400414540ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a*lV8_HHZbf`eڜ}؅:s7w&*w3Azݦe5DKs}eTcuR!, "UE֨U io** Tp$+4Xť8?p,-3:Ank[.l6|zz{qyksysx-3%5/5.^;-U&$U#GB5BO2']Y&.N94UŬɩ'+63ɲ$LU˪ӻ4 NֻOq%ZbQQ Hp`"%V8q#Ə51dFGDHCViRF/~sΜ%xcI Ҵq&L'ydzѩK6kO&ɓJ,D%FΌmEj̛B B*h&e`1m`K|(m_p%jؠ V aK_3`+3h2oZ>;/O-QjZ: rx-:LҨ|>S)J7ܠ-OԎ3Kրy'z7Js٧m6|=l [c8TG Rk04o}a!X4f%SaB}XZprT1Dzbr^v[VNZm؀_bXBttH* $[Ϊ\0\>7‰ى* ܉q%y)^dVI#M&qcݎK.|{ҢܳBGDwy^n/C–\bj-E1z" )#B ,̇p@"0*cD 0@L0oH@O=[gՃ/ޗҏ܏/?_7#;Ĉ**pA 0Oycw ԣ>汯z lK(}0$ ]Bʰ{ oxBv/p<]o[WE`w]T@U PGH 7Ybǽ5ˡG后ֻۨ;P? <` lxQd:Z`(Ui@ L~D`B+?rklYBe-a .zi̞ Ei1@M JpX4TiQԌ Q.^'ѝ\qԓ;Iy³}؇#rP4@sdowElz3]8wMLl AΒpN SZӗz9<)/yfv?+'ݠk`FG!0 ǭ}"xPU<2/gOCgK:>γeWGFc7#qO;T*HPH!WZU[]V`o'j5}l5fCpV،xVɣ>vH_wX`#@6\X'j&]sHYuYZ5[%D5UZ؏dZ^["k\c`f; \UO_ .p4A%p%^%^&^$])]Œ॒/]u]iTJ LP$w5N``&`ALHVuURb bgbXfpCc|!Awh &FhTGdMB$qsreehvpb&[FgvfffsecUorf]G`@x`&@XPJmijl%iViiivjf]jvLs@#ǙI$@#IPD@%@lMuȶǦllYmӦmmΖmYmmn6J)@@I@$xTMPeatoPWppW>bJp m7R̓dc@(I oQd\;f@)@~F?2&<ȓr.s9ws57s: ԣ6<.9*8gv)[{RˣQn6h)DXMPjgwwlvXvwuvjwljvkRwZ<'?LPgIWg;Cd FBw?yCO7zWzz?ۖGzz <ŷxT@@IJE%bTAAKl}܇'}ŸC:j}gEšd9CTD?#yτ@KLoUIQg=IE'FDdJ[o:f< XWjMZT֔MPIu0:HUJW_K1KԃD38?h5X _'DNL&8tcS4AGcIe)=uTt_?=fpXOhmȆC+Aˠ3P>Yv< D Lyc1;QEMTA8=LHR;R(S3Rlj(<5SeTETT^KTVO%UDXNwyUmnjm UouAW`RT[[u;XʼniDNZYŏɻ eY[*<;y[[ۺ…YEz\)E^D6at֑T (_- _%k#9 wUJҚМnY`]Ԗ~FFFch(HW2AQwuNnYOE4@;Pi:[9VR fe98jelFe'{@ƒXTMAGI JHhmj)m9jb,jYja>c|ƳsijİatU@eI#lHFMԝ<,)OFfwm}ĞJV7npyn}oPbDJA{&e銡ʵpGz< 0;W@)AWD@ε2t4d*,ďyEɎ ܞmmYFAEU+{ gkd" ʰܠ OopKh!zk~PW+}cRGZ!^ j'G+r<ڬsA܌F= t`c @oJΔmEtZKOdG&RHDa vdMw}lsrovUU#1-o:VdǤ`Qq!=#,ҙz.=~%v`{;xRu}M%AtYJmO= վDX~GdOæ/x#?ޭO\I§*8Duas Ӽ*| ϿXy(6 1牶105/t<-7zI[Wpe 9 C`<A(c?hM@U؁!l9Ԡ `M8$EN $M\JfmZbfvVvFN\Z8$ (|Ua``((30 )G!A lDȴڴxz{sog3 @!1EN4pAv!L8 A: c#I B+!- HJ%{Ld $3\4I 4.(b2=\^ 4sO>,.:\ET"1Ԟ`6VgսnZJTQ[_rCqxI&>wҤ7l(,mIan;GUkcњղm{lڰAQҦ]™g̚,O*\떵0X[87jؿwɓ$i%ww]w9 !C@. &908v  E b:*b"X3Ȣ..CF1SnFxL]9 Z,PT`(Y:H2#c:fMh^l)ʙYSiTPsM2UdH !XYF`Q 5U~$p!MQ#_%i(ou'by: *Y)CJ(s0vTiN"oTP>Y%`=(}f2#)!LPa>t 2v᫱Xw %'s!Цi?6 Y30 'L0ywPn~cV$ R`$r' RlA 8:/OsМ;*<mV[Ѳ@}`Tg- b|]&) RL"$瞩gervIۨ۩~ib/Ruӷ(uǀ Rj b[ˏA63!8Un+aby+wsK<~CП!MdbUNldy/O6}~񨸙+_|Ih;6ΤUδ<ڌJ]Wn,EޗD!GP7>RɾJ {h03gXBB+,|0alY G qkK6` `b=idHYƐ #_S7tH"~h&+|m "äNPD/\:ND"й&Kh:'\I}",+U883BEp9UHnP@h-xK bM/K'E9P~a o QIa2+d#HH3h⇾ai%ʵP 9Zhgk @fnU'C)AJ+a%S'A/w ngڙb`F#oYQT}#ZI綰!A L1ٕ~GR: GЕT'.ukl-OHwF&EC-OqI*Б!LWZϙt1*|9R6x2LQW!c-J5yp-3 LezW@"b/֍,Ukذ`9)0( e cFNpTBNZNc% TCeYg\շW5J=9F;첸q`V?$+YR(F=bYZve- h`|$b^`UUݥN5J/+u4 u9r0 {S,x=5*,1 aC}U_r+oG\ CI$ ҋ(jh=˱p\3ftg=O,&!(j(D+Z`FjuY1 v{>6mm }\"8CAe}Ll#{0O0 %@` زwn lnN؊`3 $2'љ$t^(MLų:5 (D):ņµLuMֳ\ըIBia5lJ60 HԆ6nI1zUnL¬t 0`E/$Ѣ"0a@r[ ~ĥfexsa06Wge+cu'C,p.JI0 X_P}X=F0L~ (LK*] ]1;>h`qux^ TIh 0IK;{:>'FIO2-b*ˣ^X'Ǔ_u*G46ߎ1 C `~ G?>IJvL^j0Y\e( BKf>Z]KEV6, A  ]P@ Cn$FX BS̴9]a5G 1 Td1!SAA1 G\A,(]DP@P{ GDA}4T~D .!1TDE!E ! !!"b">ZF 2 f &&rb'z'b"E("!%+%"Αߊq l ec1-b3_-V3.4"4ZU#-b6^b7a#8#9891>-$آ1E@28:c@ d:?b@"$A?_BdDJD^`4@>v06>"cEIdJDV$L$dƤK$ܡ%J@%6@ RdL$N֤MҤL`SV%^eNbLrWNeXXK`@F 8 RQ@%cY]e^eY[e`faa" Zf-P@%*E$afeҥ$frfgzgv_`h_fKF%T¤Tv$!x`!`H^"DfR%H%llVpkqgqrpRej"leuڥёOVZ4o@db+fYzg{劥4$D~}]!/x"'z!JʧI(ED&D.hz>523U@Z~!@Hgo%^@\&b4Jh4RR#Jc6>#(,E )(Q\b!!>@vdHgo 4i2hJrdፒRbY!z~F D;…|0^R~'@ eM"@]Bџ^BDiYi!!=u"M`A@Yf!d1Ω/td1R@EZCFEF«U X@a.fEB@[Rk|&X@eRkIѫ>AVYUKE*Z%-L<Or&iUTRSh .^ULu]Y?IӮcU&9lXb/!WpEx՚^-`\ HE@Y-X56>Wo/eyeql,. \=l<o^D DV򸖨++Жiܫh@ǵn6m|Wrp9dkam 쀵}%F"wdDe yQ|QIsrWW~eژ";D<´09 F"tI9U%E?u"0H؎X XИzXiYII) ڡ ڵCZBHܪYYJׇ۴Y -@Aßa ;0WDX%`AeQmNŅ谚Ȁ6XEWP{aq׻SS1TFt^t׷uPz<Ƿzq aqm2u%ɍr CDhhe 9EýO-r`iqn֞[ ȑ0 e=3qٳ1%?>=;/_ >q@ydnDG ALQហDKSNL@"DO|Gq|t`fP#`Sor*ETsRUUӌSePQTQ;W"mtΆ2܁3<g52G%}S65q ^57i+ F,\1Pgs|FU$N pHTI#;¾!ߘMl$ȓXbLlA].hp6hHN^O/rr#sC7ȎXO$rLQKwv(NK  n{ 0mRlʜзw]}ϭ(@lgZ oWF!6 zv9p pDCU  AH!Px1L %wy +"#? LM/wO:  `ʃxfi9pvP {k܆w/ހK3L: K ʻZ7 oOF0 ! ݌<^̤WppxDuS<V  tuȐyV6H;SJ͜LpMSI+]ޤ0 x9A: iYQ 21@p;q{ڼ# uӺO A \uETNPDHr%;G@l|4\!GD8H1$bx \MLЊCMR63Ͳ.g22!}m1{XWG[jEXd\Ȃq x Gj&ҁ9к2-Q N5ԌsY7 t`Ń//aPtBxpQ!i{n|eE`\Q$2mOh\>4ܴ"hN="E!#m9GҼC%ST[ha$QU(ѿ'˘!!<(ykJD>~M8v*@t F`Ru2,^ H랤80*uH|/8get@PCbrCԓr)DcITY r1ĩCPS8x 蠛ppА,p ',˗{}]==Kk;H$rʣZJy:CRo $TpiDž$",yڒ-*'c22k8:{3@[JsH&O3`$QtD88q``~?k CťEipTBFРZ O.65Bbv/l/Ջ..-LʨG bӨȜɔD% hjx!(tc,hvp)͛ouV+ }?+;=u@a0y2DB΁ =0ǀNSc\)Q}(% P-#uCw A^aC !D2C%U8[lA|ua}ǣR\c$j@C$CYan!w=PdlXB$edxFIZKW3M2.!Ll`f9\yJl 9i@P5UB(D8pP!e\)! BYIA!j7؈b|b؊ pGz V=dr - p~@QiQ`i?eYBrti_ThMң-')a/=~5 H6P?-P}֞%@p{As)A(0VaFrobpGk t.S{Cunc wrKwKٺ9[?xK`@ˀFC/fnr80 @g:{Ywb>XBN 9|<~ OV:@<-ZvJa]ٻ8ha1`?؂ 3d>nY~-#׳f~Mnx0AԄ# >=[0(W5y94ن A)h`6HR J6$TB{Xl 4  QQEbĘA8}uVQsѝ)&I0Dǃr (c,c 8*Tb2!mj %P?-rIn^C<b4@BsL'{nd$!٠dS%,P #À@aD]4/63|J\JzšЬaq! .  9;(etgg[f" /%T;ON˩&P99%bJOLF> -40ii'ִ hb^WvD\2` P #/5j@8;,FwѮj/VQov`t/ &P>K}j(EQ嫐X1,i]ڥJZDQ^Ќm^zF<6Ƣr K1 gE٭\,wa<L)Y&[kj~|ڛ3%Bɱr*m uC!M\XVZ_/|މ|D^TםNE>+D""}:e0^!EcG%Zб 8kP (vnbuB :[*ŧbXV :xA_ Z=2@ZMk aL8l͝ONx?GX .ιU -0-,mRvO#%̒n5)40b^b@]-aױ""Vz{!j3Ks#9K:\it 5G [gJkFK.r[yjH党\>NHHus8vNP(!qګrf& / fʁnEr)ֹ.[nIqJb߃̶*%v; =K  BEz ΍xVD6XnիIUqjۤ_鞺WH ^evDC;+Hcm ))؃(ZAt@?cvi^  b-~`hb[. _l1I(I@;caspianmonster_scr3.gif000066400000000000000000000354411263163240400414530ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aȣ8S!H_dwcK_h:vEx*,rZ 8LO)c}c)s:s)c1k)kR1kA|)s!,"QDϨdjK)ꓞ #ۍ.lr9m&!ZJs9g(-#̶2uncaGfvn|~oyizG21.302)3$4/="_9>C%01GX9T/73єظ8[TLݜ+-J/_Cە: vJTU9Nyj,$zE%ٻn:H(\R岖0aSK-_\fMNk1it%ћ:fXjiMLjҭ8:婴L+&5h' Zx /Vtt/W|X#}̸ ʝ+QB&{)]ĨjMDbu '/;2N޹WmM |1,jҥf>vٚ۶/}c7! bM/O?s~hvݤ_OR!U`yZf˔ ]AF_iYj&݀YM]z^dHn0$d8fs8ާi$a=`I])>h@s`Ѐ/˟?r@_gh@ǀ~/|+ΗPFx {8">/{&gF`- (o~0 d@$Ё`(NW D(JVĢDO 'H( ,'CcjXCi ^ ?3_!f⋣#>-bX(\+] Sd@[E%ѕܤ&՗>Q2* ()Aư0b @:R#D b҃ H"$53pHϩK%L<@֫fFղ`,hO(Fx '?a|k6'r]\x[k&Wݢsԍ$y@ @0PV>^bxf<TGxqp381}^ShPSx?+l gxaD'e/Ѐ d1p_ShZOѷN+#lJZGϳ$pczE UX,;(be tZ沕)tb!rM <{a#3=ؑsWV0}dr)wdžj}4s=kFft0}@r9Dzr22^eʊ#1 K XyLm XNGoC1`HϛBf2-v޴%YN{7 p6ӬV&^S.ח~bD5&.`2}IO(V,9w2zs}7⶗ⶫkq|QԫhuCP. v6~Hw>;4u3Y|Qz̴:}l0ҏq,0&l.yZȓqozƞ 7~nKjnLTX5X&6%DOQD XFm]zAd?FW[LFtMGUrZ/==g'Cppr>4>#?@? @M5G@TKD@WUKCAD  Ay drG_kUQ$QwNN4?SdONOd8PhPF J "NN AtEqw-;Zg.(Uk>SNeGET(T#I=ecT>OR`7+@6='ChH~WHT_c˦GUWEDzuE}XY5XuXKDXXe咗e|ITYPlbK?YCL8{'^dH֓*6[nwAG\T]Х\ӥ]y]E]嘋y_]]ID]].~w3QhZ&c<0R>+|g``]D&aXaa)]#Vb'&\Ĉ 6QƖ$fbÜ k>1Mww{אdn>E`fUefeWF[uIfgɀjvmve$* AL퇗Q3({(UVAkA%i3WviVjj*j>,6NOjjAi&v6jnAgc4gU7gUΦEZN]Hnvm6nfnmVn\:fAn-IU mXzrhnn3?z#jMdWMrN'ov5m^qr0rzq"q稐j&wrʃuJ@ yLgH"BU_D9Vsvst]tt t(uaWuzuTu v:veGvvtDv`ĬvAVͤx醩ih;_y_|zI|Cyב7~yyڢy|EzJxjy+>J=CʄwzUzc=c%Vk.jW|I$\W}w}}%~' Z);g}* },K*|W~ܗ~hty1w3ȡ{&D!$ ؀N[ HhW;Y+˅ֆe'hX1dA>hxM%ԝ-bAs?ZHd䷕M+Jx;@_XbHVvqk=s;cJFpD\dFՇ;|+wcGNIH Ӄsd㌫I ZJKH{;TxdtCsԼ@kPEN>8u)PLPȎ \  5餏Y>4gVHZ5xnps#2ّ#IUT:Î% 9T18\:\9eT8f{{Z%DVp)=YwWQUɕXX[yR__ŒXXaTcY߄>`ZIWHkH3d_{M}fBŴ>ܗl)\٘K*lګ]Lb}"K}/۲܍4m>1K3KGg~t$`@0<&C+wq[0t=> #PkS˵aXb .&bTAaBjҨjw>'ϣozCy,@˄+.΅^HN~:щjBӝ/lxy躷KR˻VkW޺mez|g|?yߚK$d=':Ƚ+雋Kk|.۾b[d֘k#<=.dĎ6H5)Į[^dgp2BB6"k~҂dgI?iZY]9agf YkIYdIzbL"I<w;:Iv[DťȊIɆ\)]oO ^ꐒtc ׫k3¯d*v``y;a> bi0@wmP8@l ` 0$ 4PAd@1"b@FM2T`hRY~Fnv^6t6p rf(<Е%($p2,6$\56B1 nw|Bsóoo3VZW3Px Ńиi 7y@ 3lQ -K  Q` $HА!(6\`L6qlsfM7sO;4 tÆ ,"eA Bdh痁@<UпY¯0X@aÇ/nᰕSHrf˛%OšE^^iߒKWgu#1qbG4{W yrE@?`0'WQHWՔH^^ax,<Ђ x \ 'E%h]B [7) A5S3YL@)UT^`%LYf0L]^ U99%P\ !|LErhEy8/9?{2@^(1,U RAp:hJ@ *~i26,WK5`%ZYe&̢ElJ.YSUS-̉(1 *5Q`{|l=?7J DYNv \UNKṔ`͵y\W}Yakf=vT\N4uHS$| !r|sxm V1Oe$)YIR^%(& J6ECJJK:Ӗ"cXAVN\cp& un|\@H%0c^XuY:V<欘Ib>Df3M$ 0xwd\xش0[^rC%9]g<ߡdD6=e7{̒yWSCgzE%|155ġIP7 P(EJqUT9C$D7j1TT go *@Pkl tި8ɪp۔(iK{)2g_4J' D\+^XDD;oCQWR~ 2`շe"ܛ<*ŭRSKj-\#!*Jx25R99?N HZF-\^vW5fu9\d(EpF:I>F9`YpoٟdO7Wu5V+cw%YBv25d47=iFWZ#X_f-b8#-Fvֳr)ii XԈp㶵n+[kb_ܔ-ynxЃpC vQC1]jCwJHo \׉u9)X9{tw[ox9)mZ - H(`h ;-0u @`n8><{[_w>-PBP( ^GQEbxwIt^ds"?v+ Cg_: ~B2 Br~#WڰeT bXFn3jkˈd<7>1 betAMg0^0w (@0s2 ''9T}Z,H*7zX`#G{z_vB# Df3 /&3SF\Ӻ5PP3F9S~EBA bɵ>Ń@MX<@U10ijg[[L"}n{Bǒݰ j:Mre[l[.Ə<>tBMC^ ,k ID"Pą)^z)NM)K\ +x[Dfi`0HEԒ+5Ւ M&!]BH :nv>nieaeH+>^ i@!^` xᣓI\_E@nb!@B'ALHn"@F.VxoDt.6bply2Z/DY@vAި[it&NFI7J70q'P : ܇9ܑ*C?>/.CCI~N$XHɂhd%/q}k9=аpX,¹$XY\Zh[o eNs1 aSRՏٱ}BHنDB! j;R..5YRAospʖ Y_d8a$0ݏ77cxenE\4 |f {,ݰ&ej^9k oLyod/q"pMDXlՁE[ k?08ԁaqMJ"@ gkr8%˶g<(caJ?$gLJ[ŬFA7h0;/#n W~kFq<4GTۻTTN \1'0XRmnZ1( @y͢\^ą^(bA}_g_`i6p5gݐQXoQY!4] Xh3i ]ݥE $)\J+VBEҠa[WlD^^^ET+M^Ywawj7EYC$^~S=0kX3n"v/M%1& x%IR_3,X3Q%@zR8H/L@r/q/B ʪ_+𬉫x˒,"@..~TA384`(Bs#hb ΃vf S?mA`?$=3yƫi/@+lDGۍ .J@iilsX=.{ɉh^/ wHQWa3320`pЂbBCbSRׇAdDʄ!qq!p;[{+Kkk% [ ;{ZؓQ$XWJx#0@@q"3 )٢ ŴtpY~8( d!2XQaAZ:F m3ԀEs Li xTkICvZ"fa!) j5}RL!iM{\jקGNe@) \FO}bs3dcK*x7艠BW ͆6dX(fA-μg̢S{L1r"eYv2MhF5yfST=@y `:5L9c+x NA~8- $tj9w5 ]GhŜ=aυYڛ&X^ x.|'&q✳ ח%0$=GFǼ$3;iH)P%\ D 1u,`Kr+Pc.񲘻N /Ƕ(O @Ȕ.EDJRRu8TOvhso}=AL0B[@ aTN |S3BDZ6̽kR-rK[7r;]jXW&+ǸuP]WNJ=lpؼN6\ā+.6[< ^ @K`;\ \lԘFV2s * _%B7o,bǿ^a4`t ii[='k<7'නm}rg ;m鞛 I0 Б7o8΋Rbi|]yt u[GynӼbSFQm MJȎ>lU/ce}?ZD}X D@$f;el2O(ޗ|[>G}O;Q! 0äD/i?+KPpه0 wͩjBFOKU|'T+t-6dBC/CAQi5~`#U \ @1E`VtuqEEv|dW:5F;] yQ[=Fm$7qG|tG4HGtGx pH H?0$zPo!է>S{'?}:*73 ?v+۪$ DZ&!;caspianmonster_splash.jpg000066400000000000000000000065131263163240400421040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDuckyAdobed##""'"!!"''.030.'>>AA>>AAAAAAAAAAAAAAA!!1!!$!!1>-''''->8;333;8AA>>AAAAAAAAAAAAAAAAAvd"!1A"Qaq2#BRb3CS4 1!AQa2Bq"Rbr#3CSc4 ?" 5r*]viDž},+#"DN܏J槎!٘`bu7v8B1d][msQ\pG*\Q̂B XE2cYaGFb vmI6,8Y~VIˏ$HO3c圌hƂH_2T"'M-,q c'7o71AYbf۴['c˒qJֻ.@XaGͅV;9KQrmzag@eW-t G`I#w˦IjFqyX'gC x [_Ν!U*mc mo}Eq:G,` GӦ`\@NLFK1m$GՎQqeQJŹԧ0:.u`ڇSmmck=Ilm^^J2b>N7Ŕ{F᭺O977.b$xX`BBݫm*\8rY nq;+q.V;2HMu$5>r$அ|IɟY?pc*W x[6yFCP# Hu#F3r1EoR,{YY@"^P8Tt 8$ LdaoAd:H#IXG]~ux7PX*!*jl 3Nn$Xw԰ܣ[j,ѥ( ,Yjs|Jf#˱4Zj"&,n=8xwLH5e֧"?F2n8! }YfkȘ9TuuBXb,dᵝ⡺3P+qğ[񡙙X&DnSn߸{JJե{R)ծ>uHH,K[5*btWY &`,GEuH2<{F#(<}TRi$ޮcĸ䀚}7l)wf 46og#b1u'M5DƀuPn_ EV6,9{!JZ޾)-&H {il4]BrXna?mzy e]3bK7uRm q:@4rò@:H0\I.$QUY5PVmM֋eœh)!~T7^ӄ?UXP "{V@0"Zx'GT&[roD6.Z`'A&+sĉQm\'.l5Eā(ok#H^emΕh>>㹰wow?J럣'UgkӅ*Udj;yj4n iR3ۋ7UGyVu}*wU nώT悜Y.seć[?o]t[n?pݿQO*sӓ:E,F08t쿾*uMV,9+/γ1Xė *鮦ߵknozT'-j)w~zTU &~castleassault_scr1.gif000066400000000000000000000157071263163240400412760ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89ayR)1) J4ZJJ R(Z8mű; ]5X!K/ν24wPcűW"W? oN|C}`Lԓfyo[TƆ޷`=6֙v)d R G3H}7Zވ 6 i`$ClQF!ʨc\y5J)cj;!p+V# "$ 2ȰAJdSN!V(e[&_X{ x&%n_LnCpdtYQ0heL4c]*_~8ĩt hC=]f+p q`X2!eeRj2J맗)무ZęO}*n`FޤF tˬb{ދo*k q 0`Kf*O//cGrClgOqol ChpDJ/gq Lr& q+sosLG[ln u$FvDCC0D='Bx=cL D"p}<6ى4h hr,wM-;=ubxjP NkC] BCPbqA`A Ľm~W~h:c3mlw.".PL6nK4'3$4@Ir3l̔@X:Њ#ld (xCuHhRe<` ,ID¦Y$&f8iEM N#0*e2cJ&p`jyl^rDզ*"" L0xA!4? )ƋmH" Jr zYj&M"Ph&l4I?)9/ti유B >:hjFȪV7j-yݘJJF(|LIG9]iiH8ĕ"@6 )@ꀋ (zIYV.ٓ]G<ɩB+ʕG)S꣯ZU}zyHnyqY{ז7sZtpʕI)jEWJwݚߺCjY~ ꓮI)Dfg ʬĩYy 8"x˜J W YɂIڱB!ۭ띄`IHIAO8yfx*46k*3Kɳ8{~hXjL‹J} ȇ!*JN -شh!ʨ. @*x?kiKJZ%+\H []zIK};ۓVzZJt\}抪Ӻz|Zuktx H;R0:ʐ ۨۺ%Ŷۻ;:9#˔,M15ۼ;5z?L ZP\`tj[* k4 髾{5kT[{?C!{(ׂRY5  T+ [TP;+T =!J >S7B`l22|7̼7+\F"L-'u?Ĩ7R<6L|ܼ <S =MWn?[KWL7-&Q=ңQx  5Z=mc- Q`l g reXP*)+ف-2l}bo ƓٙCMQ,X<oϞ}smnX= }Tm_^M؍L۹} \]P-cm Pa= {fa, ۙ],_a`]Of׹ Xlͬ~m v Al⸝'|\`Їf|=.dNuPmPi`bI.ʡ 4mP][ЀN7}d cۯWvR\Eιm#05>[M΂V^} N.꫞c ӍWp階A0& ]۷ ɧثf~9-l$@P?`.:~~F<0"*Mf]NðN2\<^څL|ƁF=:ܛ>@ .(ugN@Ҏӗp @TN͎蜬̞#P*iO 8 90 ` d`^; 9<pu'0 [_l)|N__AP>6JnN#g'} eN``Eԝ-@(;OU> SS~0%'@PZ߃o<ю- `;po6PB_ XL!XP8r4$A$; bi!AiG' $iF6L@)X ZQA&Q'l )9@p`jF*TJjڴgN EHp߄5aĐ6D"E "E<.֐R+ IH#F\x&M{bmL콇@G?o9B/B1!qt@W,[ď#RKAV$*ثfސj?~hCߗ=^XaMP@ BX`L@o )xN ؂  N,Dj+=+b,$L"No!Pc$Yp[B,@r O T - O"-.p 5 |XD"Tą4p--P6Y61NQC RqS@-̐8lT^B1B 1 I&xp\ +A `#V &]P,rXĘu $LU1zs T U[ Gh?-XWMfPȠ|6]!,UeK1iQ$}MxbPa385TpSbLiD-##&#:f[P@fo f-XQɕ{ TkVa̤XjFzh|K7ķ.,nsSW]\Ww]<_}vq۶hs>W}q'^׏G^xpg^y觍^򤍟~;castleassault_scr2.gif000066400000000000000000000153111263163240400412660ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89ayR)1) J4ZJJ R(ZC{~d^BD!Tq3x5x` \7k{X;bAn7RtNsv`M2zȪQ.HJ|V,9B f,fq CO_q(8cql$pEM}ЎḶ? DSfEpOθHF, LGI`S$(/Me$6dz"Ri) ,<K!ظXģG0̪?9Ѓrҗd=8R|u~mzէNf?j'}_uNwst:z׺y| l?:-+ry3y6l>s^{t~m{]7F[F\|?u}ǿy_'џ~_?εrpvxg/muuuw|hx xxx/xx=Hd|x/_Pw u*Ȃ_~ghjd|7xׁ ~DHwԇHCX{w pLHX-}wy_d_phhwp0ehhj({loxiuk؆pgvۢu|tg[~vls(~{Euhu8//X_uWr`:wuGz(zy=dԊuouwɸr{ψhwӸ{t h߈tBzQxyxp~Hwzhx莻wTW_؋(  uxIY7gwӊ$xyw#x%Y xxdNՎ7w4Y5yw.}ؑ'||}G|x||Ey}MOلǔu/ xxzWx7~gfilY;Ñ:Hzi|9 (8TrFXw802Hhق98W9zC0>V590+ƪ;!ŋ뺶;K;[lmkXX!1뼾;#G0{kn˺k[K˺G0"0KG`C$/X!S@›# |{I0Mp<֫'<÷ ˿l['p*#$<-/,廹u[,۹;<3bĸl / (Æ;`;l ̶p &02\b<`byK\;",/ykK؋72 Ɠ,d|ɗ\#̻. ܿ Ŷ*]ۿl\̢lGpc>! ђ+dkŃԻ-;H: B켲\P*;Ԇ+"=ļԛ\ )}i|4 P{{b][һ+ TM`,l;ˍ{x]՛} ;OY]Qֈ: 9:T+ri,û,H.Zע=ڣ}̽\!`%(IY/a-H` (%`-Tù-ױ4\нb]V)|G۵۶ 8G \w=1L=ҭy8`@<2,aµ x'`8p(M)w cߒ\y߫^/_M*Nadջ H:%\~c|D9m%P'UPcpWX~_Q*㼍~ɻLn‹nj``"6)M-[>Z]`}~y.{I^ۑҵ>if@N>U NG{\\ l ˽|ɤl^K*?QM4mnUnF,inR #0Ȏ3_Q4_mlnڇ{) i Ppx60=}p\.bZoP?zDp L%nuMOf"i-e `,{pbO+ |?eHw(5?>N0><5o?]>y^_(;lO?J?< O?njN=#*Y nP@Y B` .tSH PTHPqU&^̸!%#HP &=5cT!A YhL(n``aDLJbP6͊"E%2J+@B>*[l*X5@ݴ¦ĚiQ`h0eтLKđ? ,@?*MZ?vm6R`/oĄ\YFG4̓EѢuٹ=<{{prHȱB("?̐:~8-p0KDo+B0 I *&31&hp#EZP LqEAv ; Б ȊK$"-c8ʳ2P@9.t.,Ӑ)m*x.p{:7TJt0 O@ l  QE9S @F%#?3N27NO%2t"*PʍVXpaR`eO5MQ5őSQ2U`,tRų!@"Wܠ I+hu[pOS5RcUw]p]x MV^vWw]UzM`;castleassault_scr3.gif000066400000000000000000000154501263163240400412730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89ayR)1) J4ZJJ R(ZqQS1$uz0QA#X-$xe!YxEFk(Sx$dg)4Ё'=)el<жp\X94l^6֔Yi2F :?>Ёu^m[9Ŭ.W6ŭo[U+J"6`\8xum;ڕNլ[=~7%|ۛ[/[]Eӥ$.woxsH 7k+H{ l 'ط PX 0aEثmˈ0ܶnCoF#n\%|\Ø3|]cٷ.Z -ӏr$ WL VJrUf1)l,~Y}{DRa-;q[9ܙ‚s,_%[lRe8sx_lf:ӆ(Jݴ;LWv`I?Ico4Y=d%Z ..bz׼&/|:Vnrb:a 9>įi=A MHnkw{ܾ6ݝm8~Uknk_@p nkٲ< sw#_'~呟|/_?~uU׹U?b7?UZwg<͏!Fbfze'w/ePws Ȁe^gꗀRfib7v~|$Hu(xx0%u'0(,X_~W-{],7zUVzqDhGׄOH:DŽNyPZ\}X?@x5#:W~Guuѷsgul؄qGz|X?ׇw<7dJ_xw8wsw~wq7wxwljfׁXDhi:wpybywPuRXvYh/I(VGgHu؊HuXbWX/~x[yǧT'_8G^8Ԉhvȍ(Xd]Hu'HV+}͈^wGvyov8xi6j}{SxIxXix9ԵOi5{zW{gzg'z-Iz+)-h{5 {iU͈1}|DuF }}}֗x!OG~ו(WvǕS镤XX-HU(h~8 vyxǁtG?0,&y/~Iʷ邔i})UUSbuvFSU؅'TXV_9YY3{7mXy8kHxM){ٜLJ需)pW h鉣Hɏw؋@n0ɟi)Iq}@ُ$؍ Xxu(H⨠ *59gw'Z~,}hY 9YJ*l ٓ!ZYxIwKjKJ"*w4ǒ9wz\jY`<ߙ9ωvTmZOyl rJ}LiJ9: *F [k9iIg d 2i$Gzyy}Y* 8ʈQOقY3)*98sb3bYɛ*Y`ڛa8h*{!hvHz٭yZڦV)}מx^4*[@zX) [xڧ F:(ZUۡ{U!&/4-+Ui*@AY#B-p1QPR;T[V{XCb]KF:j?$0Z+Q l˶O o Y۶PKT˶UwzKm?D!^(cfD@2)w U vrU xUUP=_LR=[@C0+j5}!KuQR뻕;]p]!K:SROۻ˹mS+˹qT@+[r[TpKOtL#/]!tY#u K۹QOpy˻Oܹv{y۾ȻN+L;#%",<+ ,̶+K˷=\ ,!5«Y`O]!;C,Us}%&` |M"8M۳@ؐ|˖L/ݾxԯ}ɼT<ݻ;`Fۺ;UF{8m Z-F=yKݻM:0 m+ۑ, p@$>`qn|q ċ2ɥ}ڝ j= 2ajP%`>=ٿA,׏,nٛ) $pA`lPZNK<"=+nP@i0B>ُ@,+a>'PS/Mу,.=`9nq>viGNpꨮKjU>UX> R 돭^ήO `nTɒL[ߒ D> RTP9anZЮJZ P.@"`a"?$_$NZnFB@9mkޓߎݲ>\`J=A)P> T@%d/ko;(p+ A`ɮy=M 8=`9 ??/ӈ0ܾ%Phr슐Zae:'|*]<짮 jj-j"^ao9I0SE`HFI< "F L$B#aҼyb0V"EPJReB"dK\18$-A"!@@$S.RD PF*G.mJ0 PD4iժU6C Y;N-,iW+XzQLy(4F%D @$B!Kl.]6W|ɇ;>$Jdp,D%TH15m(qw]fjmBč[BF È5P,\$HX` $w=xIU-XP~z˹*˒4P/撋 ,12L2B 300 QO@ c,a ^Q*&ѰE< 00$K`\/Bk2'Q`J̒-z$ǞBE׀q́X쀓8Bȁ&$hɠHb ,\%(DT(E mЧƪP<2#2cMMkA9RMSG-kL #ht$,Zo%SZmWOVWNtM0fPN,}v VNJgW[q/XcreX5aTN cQb޼TK I^hl·rw_w59}WZVWt]bv S#((h&vdSVyWvL_yfYao-Нwyq&Zgy%}Yiuz᠚j ;castleassault_splash.jpg000066400000000000000000000061521263163240400417250ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDuckyAdobed%%/$$/,$##$,:22222:C======CCCCCCCCCCCCCCCCCCCCCCCCCCCCC$$3$$3B3))3BCB>2>BCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCdd"!1AQaq"2BRr#bS3s$4!1QaAq"B2#Rrb ?X@MqyI ʵmVsOq2\$q|^P LKp^=@mf@wOd-ٸ.) p̏}Qw8vřGKrz\%H5_?G5ȵy~គ􏢚7ʀۯQۅrv&n\f'L0+6i/)nX1M_1'R[].8>$YkfvBh$2_ˎ]Q(]f̀:1֋vA7Ɇ̨oY~ܜjuy8Ubt^]]7uTb.xHl045 Fg``+#WS;ZZ ~u͵}ōd)wIdðӯ.3X-upȘq*pPJ`ӯ?GE[  8}qOڛo-ڑqg GN5{fma[ -,8kwҷ,WS 7Et۶{,q1],Wn{ْ.ؕFtd\eVٶ01#:׆[r揺 b96} ](@ue.1sny.g]#fFLX䤮_wgਵgسhsv⛫IoRM=䲹 zX~ڷiJyLDar([NdP,%߉ͼF{b74c𶐣+aYxNFܦ[RכYQNt~'Db16~Yx3G_z'Zv?n[{Iðǧ0{N"+@9,պEi,YϽ.sI@H=JO+Sw!YԖiyeUM1l]>ƾWiՊ ߺ-8N}䚠pР=BCn.\Tb<$Ft8e#`ãs9~92ÇO<_..JY)scdrAE"t `J::28W*1z#0 2Z5EQ)=>)CZ& VS0r8wv MbFr}PZ(ڲY*1ܰ]$@b4X@'afHvV훻+$-68Ğ˞bIoY>'lK(r[L²]) Z 2U7fgMOz |AVJJGRJl y091V~Gr+NEYcL ^mifeX+=uD}Q+hNpQLH:f}E,#EZ=ۇ:i(sT?GhM?v( (V{˞}R[Eڕ,;]  p` @S f:lW.|H뀀\&2 S&A7mR&D1B:$oЩEɋ C"@ ^LȜPBYd, qY{ bP`m 8B#ō4@@.\DI_DD4"c eV#j^ADLv #V0Lu!+6Ƣ0`8V(Ŏ߅_#IA 9A.w@4H(c۞ojs@`1W\u-WsV)!s/( ]D𑅹4A.EK&x.%_~%VFiQ+^A 3܀*K]/,Id"}c}$G8VSrhFWjɋ}F ť )IuCV}..Wj@\HE(~adѕh9ˡN6 9g pg' 1V| J@Q KY m y 뮴/'r² )1`׊'!(/%VZ0@-%@!닽kێ꣺f]C\+`c.>貸$EUmW:V5뒛9} H'v~q*_r,C{i'+4&oyV= ( Jhif]4Ӑ:۶֭ ]9D<7?vd=vfciTi_m}vF-7`@M |}d(/s/8-4 䔷z\0n鰫 Xyj`F̻.G~EO.%Y|dPyh@ ?NPP! ]=}, Bf(!5&B|8.qQ,vD8j{(*!~Gk@0r 1P 1}idTdG7ы4.q 5QÀb 6(:r E"Fz ;آ ,&EGw8&t@BLȀf> l`ȕ))`Y@4)钗00D=@JQ&3%|`px(D s7(K..@6m&ԉEls^qb[Q@I8XrhBƈP8X苵S09q 9 :ȍzSd;(H ( ROO.E< :`K@>㳍Ԏ#>APKP0O٣8d>62Q? [q!;7#Tҕ K3HMB@^@ @6I?#@%mA8DT0$$DY<@OMCBEK`Gb*yAC,đ_o/a>F <6Dj#CP]1D~>WDsHMVD~ niHiHOHtE^40P4hD+ Hu4FpTC0 s009bo x| 11_ƶȉHDH99>H2IS#,p+0ItC|8牞'9Ys4JEљoYT% 0,+#2bMfA\VZ6F/ccZc[A_BV@dg ba h6l 0 Qq@`e`z/t% 4Ifg]Yjg==De 0h@D"ظ"P  @P1P$  (%26A2&pV-Vj8˛1( VH pHk !h#T!^CmIזmۆxXe%3be^ 0cpxzU1,eSF3pPpRxp p m ^^  ˰Zqszk P&YA497s;w=w?1\&uZQG_([ëu]_p i{Y|]Dx(|2"pK""Ɔx[ wg!¹}yiJzh@V%zzW{ăz+2mrp(7'p#}6bE}P>~)c|Rbc-!+C! ~łaVc0( @9@.-($VPˬSp9؃/( 3Xrr[i+n$jL*-k%`i#rcsLvȗ)SR,SuHΞ4- IX,_4CͲa7r"=,9;'%mҳfZ_ sHT;8D493Һ% ']9XV;(j=Ti9 =-;9d@c0ec`I_?s\{ٗ!BAcai@S#ZԽMA7*:ICaPmܚ9@6C;4:URYEW=u6FjH4698Qv#AvG -`4^4!pMGcQD̒> U5GGֹP} /"+BR.0*2Z(-z@C]az|:JT:T0hcZ]N_Nb*MDLE-pDp'L; Dt-6NOx@w}z&P(O pгO3<*RvPNQOUʖ{qΥJSbSM<Ʃ CEC1nU{wSNuc%( xkG"?ʶڭʚmyΊ+@T P KNwѰ!f>H+_+4+1r66^б3߽0 w [.\ўi/+|4B `Z0o^ b{Z1Z<'&o0Q)V(X۳̍(ƊF; IzK "d;,Ƌ Y=EdaVAk;t* pchVwDz1Z]!h]v0 `@ \(U=+{ U{0+TB((ݻ 2F@ Q` &n~KƫɋfsKzL j ̐ll 0e/S3;[    ##   " " " &Šʤ  ȟ̦#""ʅɠ   ]]&P|Bu6-A' IQw"d@K6Ѐy\q̛X•@LE < % "&8:A%@!mc !2UkA}~z hi۷\24Cj5kU 17PT< 82HhuS^;:Pb3f8qn U9 e}qe8EF/Mf@;'z|⽏"d7f n}#3w: ^fR WHW$Q;$pD{pr[tC,UC)P"w\3A"UɅ`QCh8V& ~%"*:TT`8:$l>"%HXvHv- _ir@U uXQ`jӘ; '+ ``k)#真H:)Sz>XiUe׎^6%4`.KvD]Dj90Ai CndڟH KAoB|)"=慆DL*"MC ?Ӫ%5=- f`08 *H;3`Щwh (@Nzr%^`:@BD HB0b 4PM* .jYPQ I!UĤX+؉HVъB 4:N<@/]L bTQ!] P@ gM!B ox XUAH0gN^h,(6(c& ˚} U"@fd[aau%FXaO.+f]`D""`_WUP* ujV4#$Y`\ 0AbPp 7.kԭ!։ rJ0NeL: D s1!   TGLG$"4*rKDY{3 9 SZ Kbt=vЖRC!>XD_ : ?X ʂ!U5F ;iGf=4 طYv!``L"әπB4G B%LM84t@#l<' GɹsHGNzRÝ( uu8` @X!Pq#Z(JP@'@ElK?|4C}V8"Z@F`5K@n=E.b(#HDd1q!#T33$(tD+M䜈̜Ad|2)ۤ2]+喘&`3Ըhԛ=y$ Q&4| V ߼5AVndOdӼ*o>*dL^o{aR>( \,ib~{xۓ%=͐-ESRDGe+0xku['{`{8+3-^!}2`=ې.e-KkB:xws:x+/w0B6  v/B/F0t/EXLsZ_D7u!8n a.3-21C#N 8eh285Y8[Džp<L43>S/#5 3EO5SUUS uؗǃ:hG 2'f:^5q#0SlU016'qS462=XS U=ٓHQkN:Ǒ+PB ? t"$@[TAt?BJAB#@ZC eF8Ri@$A4*A]N`f}E;TDsCȀD;dEdDPE3TC%4C94cC.tD0` "Pg~D?/ĖEFbF]p6pn4G<25x9wihGFr$n&gFP HHI]ynE6 @Jc=2QV[QA1JK%ܰM>@06PTMyL@91L\ os"ل 0MMr1Mc e>XgAL PW104RL>pXe$`5o xaeQa#@CɀSi RNWXuNME:3EOW%Up]Yd$U^cq"CTN5+fzSbE KWàaRRUevx:Sv5Ppr imawM`XUDXv(!ЩeaKz*R$PڪGa`4A4WIu]a\\\y;cockroach_scr2.gif000066400000000000000000000224611263163240400403560ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aƔžƋ989{ΔZsmjJLJb10)JDA{}{sZURRbaZ{yA $ sb ()uZJ4 ZebRYZsAZR1Rj1y{u9b9 JL)Ljjm)(F=Sq~xes"]D!YnY_oC,ݐ <((|6͝ Jx057 2V(  pec"PD2 wʜ04 XeH F媠|X"hfY*SLƹٝJ:a*@*G I:{Beq P{) LE+FpU5]h=}DSpMY Z g`'nxc6 R&`з߀/0 GD$5<٦/ "y]3^;`9m7hcA*7!<".O1/GG~'l.|@ Ȁ *B@xAip8pCHp`2 @V#T2DAB8!xCPw3g# `pG "aLf&9Z"FpLE}g!Tn|_X=ATEhr8LښE^픔,'ER[ XiBb~,F1c@'C`'`ٰuU!gL%!3" b}njE C`> <Q:ڙ"~ Tjӝ>> ش5||@@0ЂfE# DHAit$+ (Oqaw4 bҖ)<@S4Ӏ4IjQI'hK*ԙӦ Vz"fHtGp*5tIs%Hֵ#C:״RoNwU}aGP3 HH o*LIx'@K ,@%1QahbE@޳fSH##g &+; D ƀVo ۀL\fX4e~uE hiDG 0@$= Nk@J-J*K=K'<;HH8g8 '>.K갅1\\S/f8de 7jX)FL``GǸm8"tMD̔]ƀO %#@~z2*?`]0OQ` 8I_ 1' iAfX + jۈC Egљa3eMܤ#7̲FQ7=&&R""z€ 51@7J0b Xt@EF{& 9+ˉb qC̡]Fր@C}$A65b[!I?c !`KZY9*R~2֭$+)~SL \h0t.q; 6`AsDѐ4AMjnK00Ac 8y@qT XәЌ%p:Ht<9.uJpv?S'T A&@xQln_EPBSváu @ 1#4ЫF}dDV14Pq$)qIMR3ɉ`x! H$e#h4G 3G`8 g$f^b$EwN m/SR'@`mֆ0S}B''@aY9**+jT+P|c`**`+$0L 0;uޤV-.7.C.wB-;q>,,2- f2! g. dv=[t008eW"1Є&w/k]l;;>'V;W=:cz9bE$5 YXq5Q95qL8)NQ'z$@|`Z _#cubH9TZ-f3!It8>S>9vZv(c8J#v:(8(1:C>oDLJ#8l h6gX$AڈBÏS ctMPCXAb9M SI#W@#*4 zt@?n4@q{+ 'c VS%$BjĔ/4~ o w{PAB%)$RBFyn棔DFj fKe8;C?D^k Iy cFlTF!5#p. 'tD?9H+Ia2bTHKIH5b0G&J䙏B8w){I"ReV# 5RuU?S<5U7TTQOXL%7,T\S^USTeU qv(Z+UčWtE=sIyH%WX UVa 0XcwpWڀ՗J2*C[Ee8beX@pU [8]KYZk:]N\:R]P\ɢx'#Uh%@}xc\ p]ٵs l[vo岂j^#^AC!_ͅv_ZVQuw>zz@` `:$($.)C aT&b$fb(b -1c=''JJa ;]AcR0Jd Q^I00huUveAe\eb6c&P >j`LhPFhx{b~`$ѱ_7%@L2j"ififNզ;v_؆%ppb*hL vGƲRK(Y96'll ;TJj nn-k pn_І}ƀH4t/wt,;hP3 ʡ>2īXXhc˷ XCHǼf.5<"*H& (X6K8/X|f#>S{38:8!:;y Y46 <ІC࣑S'QJP#R2D c'| =)*;nƔ@3A<J˼e?_:>4Hp);PB3X)O17 7`ի%G93TժղcGqC<a}MBDf)5hy3n])Fa_D1 R]Q ó:ymHacHĘ .ۗmٰ@LHf(1!yH} Kڏ-Y4Ҝyߵމ$K@㩞4!]"> >M i&9C}zMҤ8 PSP' Qt2Eljx >6^V%fU _qe[U@YzmK_u__U@*?J"4YjvIp u9YA 0[!9b\Y7&@I{$wg-`2 :a\ sb gإ=j=qfa6Cݦ{#n Cedf_ifEcCHVD`F8hdNa Pm! t `ݷi&j9QjsH-1 @f>pրih6uf(ƩA  p #`!P$ Omچ>VkwjPf/PCOpbEPU p^zK h& `ppq?}&Zd8q/ L ` ];G>sPQEʵs~@'?qbk<яfO ֯7w %  !## 99  ʸژߜ!!  ߚ%%  RQ&2!S02k@Gv(ABpU 4BB^џH B8X/ON0] (R"E(qn{cc4.=⻺-T}o k/(D崗T&w@$Hj[;X0)BŊ}++^},>I @{( s!/ v A7p/_'NL-$|v۹#j{<0`X'FzU!2pRVK,P N@ }z|;a[5TG!]XXrb4@K`c+ht!Û}d 5+m 6؏K5Y_iLF ‹5ā]tөBl%!aU:飛SE=I }ƛp)t \K/D ef ='uug4|9P MZiB\V`@ FWt-P Ȑ+1꨽x N CԐ;MUU%z^ⴂ:khKձlޛ$Y?BK]Kba  8po%o;a"mR$pSbb|@&]IS.먍 'yReqŘV |=dD%zvЉ[!F#x<=P@& #8Ҏ2/71Аdnk͋Ozެ".MH@&l Y-0*zlxsyL~ ӤP5>yp  wcBjh{+~0H" N?KəDr$@fѫC Pi ܽ| `3ip#"(4WhBR @ xD%lWxaADmr  <`xr0q@l3ǘ-Ja |" g@G.aQ C>І8!}F1H! <@&e:_.G 䰎HHю=?~HP, W= WZG.0C2B#CP2 xjC ~rA&=+p=V# @ #g%Sb*bEa&/"!8R Hp|Ӝ"I  LXX0&t@<#, L CPL`ȨF0`(&Zыj\7&P7u`O๓9 Z$بBw b H h%qQ 0 ԥ6(D70Ҕ-o(0qPv00%Y" @W ]@H ,9Bp@&TVy[j.` XX,c Yv XoXdPSlt0Hp1pI2H.fKL$;#4 L೔r%Ζnv^@N.*NaP@Tovf*0n*Pvw=."8`&;db* Dூ8q1 6Щ 610Rį(n'mO|>`@@F_Kq  : $@F,5@aqme>ռW4@&\0KMǔ !.jA9+\@|.9c>h u8`X01A`fIS/xĈ jtL0Fnj f9J05bA$8x h[ͳL$Erp7)LGp VKb-_ [@R{ݶ"< Le" 9$znt]1~j#!$Q(0LPk@QÁLCi82Aϸ`WXmw [(} IN|7di8w6Q"NbE]wi7V[Q[kETd5ofX]-QoHEq<ޜiLh&/NƯ'.N5M^R84_nG8Drd%<F #,; x@UYGb)aG|~C[$S`gB㣡>{`0`gB'Bq>N~T$t "OqPBS X$q$`"gM}Q$ `0%b09ru'14JB 8$Ta`pK =4*4r'T*r&b*#2,͒$B`2DH2\Xp` -ղ,t2 B"+$xA-Aj s 5012/Ӆ/5x1%Bh/](0-tR28wM+1>c31:1@vNg200PdSM#6!(4Js,44EI3^XHr6p#70}Ww)6jhqS%UT9d#>C;{2x9S;ۂkm8SMޣ8ai<y= il# ِ A>>D@s@p>x) "YREzc;sPB0x9B{@x;)2,4/t_ 0DIFLtNJn4F|2NDDUFo{"iFIFF?$FpTDODSRJɔ0GutJdHH4SzHGHJ$JT|J~J KyG}YJIwjK1,K=ŗ4KTDTk'TRM auNŗ >PSKv#X6yzqT|y_`( !%QVR&U'#T! 6SpS MdUTQpnqTWUPQ|6H.*(TLTPuQi#Tf+Fi|purl utZ ]j*GVJA75p(X0LGX$aZ:*UZ UEF[xOA^US f=)&$[ a ]]^b6f[ޅUev9R7Xn66aa5h lpz_h!@^Mab#l0c WQdgd @^ & `cZz:b@Z6A0 ;cockroach_scr3.gif000066400000000000000000000234441263163240400403610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aƔƋž989{ΔsmjJLJZ10)bJDA{}{sbaZZUR $ R{yAuZsb ()ZebRYZ{u9J4 Zͤju )½UZLjbRU)Ri (189mqssu9Ťj AJJL)9RPR1R0)D9Y RL)b0Aaju‹ U{P sD),) ){tMx0gYA0 ^~1)?_A,(8Px`s3f $.qBpW@cA bixJ0'la&@d袌>@FhTZI\q[l vg)&bv1f96B1 <@;:pe4kPk2,8:ijRz:G=Fq65ǥI dĆ^('[<Ki jR)UJ0Й, 'lY@h:y&A!w ">`^R%؄g=3zڙ@J/tq> aB Ы=Vsٕa1̥rpfTe}@m <59gI@~8]KWn(31u`+L sXv͐/Q&+TMd|sw>NZ#dW> EF`nF%UO<@ lЈzEw&7YsJ$F-`3G/%%9%,c\@Px$:8 ,A .? 6Gc_,lY@_@ 9  C^HL"%h9r(q  ">lK9_ [1 # p H(5s=8a HɁzH({QQkH%LR~A$F,f 6q`H%UC"2Ga$G6@eĉd%~3֊w Pd Z*pL4!awȎrD/́ J@̴4ҩ&'/i1k(C %6!ك&䠞\Ч E  hhQ$7@'B5byυ4!zԣZ$%A %XՑY$*F^ӏXCejt XڂghuH9͢ "9 "t+SS6s٫I@ ЉwHr7Kc_w3jDOnzlpB,} xQI_KZ}>*`bf5{̀N{؆gZK1 u!G.т6{09MړHYqCRJAr'!@5N\b[`(C$!0Q@qAHhG. #8PFkq3Xy8T! f<)!ނb,P3ъ"O"N=p8D *M( :hepCؚx2xG9Wt~H@;x9xe̿R <VV*X)`3v\c*酪UѥTT YV[ p bdU\EZ*E^p*F*ʭJ^]pFw/ &`zh?_YnaV$BZɊ b/fbi d&hDhc1֛F+:I "}9ogX=pff;MdU֦3VeЌ0 zhF ht@Bi}zRrC&7ekV=WU+_I`i<PC3S=ĦmiI{QlmhkV6rKMW0lԯ M)LlvNfG)Jyct5pWpKYW :p 'rGkr,s tBGr;ؠsIxt3Grkqq׻@B!#!jA~)q V u3u0umWuĀurG/Riw]o@ ul {% (!ԀxbyYI^xg_}xGz,05a##x7o|ŧzǗ|2{1W>R06'F'ki}}R+h_'@F(~ } W"Giq %6S͈$| Q8 a>~,!8`Hxǀ } A`aCMYA~jè PSORx7ք( +4}0<'h 7/sICRik4u(r ЇfYI1F,6 Љi񉡘.)cAH$Ab weF%R0ͳ {R)t"h@+,hhfpgP!`mϨ #UXh<$P#fQf{BqI)@]% %VPz@OϪgpZA"b Ы x8в(qVs\+Yő 1M9=9(@Y@YmW-ث֡7}Sl5<i!2'8QTibvFv3Vd>giii@(AXW9Ys( 8tqjQ4*F:w}Cb}-A`GI]p=oiz9tv;'S&cřIէy `pXqT]: Ci~9AI)"\4">"NYz)ݶ=] P]~S$D0 jr)י_[2!?7,@? 60Ia Y]W=ATmQ3BDqFR1$}!7x07T6` * Jy'xry'yCC# ~zlu+w*2?2r >}F`O79vFl7*;aJ,}֎2 5 nT N.`p'V!M)YJDqQlοOcZgfEFK.NnTrs q$[jSfVyjF:.볂IoTz.w!c(: 5.;ħַʩd CTp+@0MNO5P? Mɪ3zV $ jCJϟ6ZhJwxo0đxpE$ jrh?o o/[IZ\њI?@0Z@=_g&f<;!L5521 wOOw )(  41?,*,++70*0,72?ߑ٥ cCf0ʸq?ܾ '=|U|N7R}OcJzDЪ^1x01TA(QA"ڠAqQ##  h%jdɓ.SZSʰ.al"C 9 菡HB4 Fb)B$ȰaB$e-|8M p(` hаa# I\" : 4DpM4%\Gvy 0v[#8_DQ#OS0'mrTen-Go0 [@sW}ܧrR7 ="! X8}` Ɓ7w%6p$ P"=` X` Hےɶ# 0)gJOA:U$*\~Y^cbevD8 $#OlY FMϖP@d`[0)awYJU1T`8*A#<bL|S,B@b,J)(i6i" HpX 20dXfZU >p,j@%`V0T< kΤ!୬jϦG@@! LeoV%cɱ/;guq( @ j$A,,tPI=*2{P]kIh3XjכxJuU`)G-ܙIBtCX`ޒ$#D.y35YL;n٦^N.0;)Nt㙝B^*,3Tz6OE/Tf>3$ja6/l`B\@@jDx$UN* È$s?ESL>db$0?@SВx! d֪0TMBɗmS/a$fXHXXu.v,f6 Ϩbf#p8K&@C T0NBd Rk^$#Q" x`&z<S'=y`ցÉEo̲XW>@* M7TDy*Z~SD xƆfё #XtH`q@ {WrJpvSцpf ۔L3+j{L:׌@4OPOL@ϓ#~2&;٩Ox2t4dPP;YBC^RQЁH Bd #t`6ѬT2P0Cz"-) CZ,A Ha@2H+ޫ3g*+՟jWձPf94).uW00 \u5hG|P3 Qˮ= {؏DGME 6] ڬ|+V!H`$ AdŪtƳxqQhg%GO ka D %؀r/5imh^XwSp,<U)Y v ZZLK\X+=;#'dZ pUHXqA0& 0yTք@ZDe=Kla0A{ySL@ |D0(@B s"@7Qծ.dteldz2m3 X5pcaB@L1;`h+3{&ns' +n. -UJRY,Ոi{%6ƨն`i=.^ LQw JfSɕi^hu; o/ɒ2"FZ0<[8o&$rYEG^Z@u:[R՗xLj]aWq?Xk4BxfExIHKHlHg+*4 2N6\Kh$ w\$ah&ۢ/ AM H?p+rhgv*D?#~818yw8xK8C# u8CAǵB(4f<~?20@"pt@@x4MӊA_#TSwGC_0tI4Bh>&!x Dz7s4A( /PwhHЎP&0L'*$_Y@C7PwP7Bx$`$4; _%xgX-$y y\0P'(44NcBp #p'f($0a1RjkL1kuYw{ll6Mkt۷v  n{m" +pqwwoWs]e+I+7s xQ WCY*s4gq{to CtwcNu[/W8s/!3衼wJ',iv-5]M6x[@}yqxW~qzzg2wME{+GQ7GSgyz;cockroach_splash.jpg000066400000000000000000000060541263163240400410120ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d"!1AQaq"2BRb#r3C4!1AQa"2# ?}ՂށK5Q',5f \Ԥ,x=-_Yl*#۶QEgBWERd8o+q`X0udsOl nnNPEko^Kʀx-TVTc{q<6ua{}g$ecb>ں ]3_.?~ש@2rTe2o^b1FsW1G8 :+okIn'sSq ]mh: 7rll ?h њڦ&])R-I?*ꀶmXJ"QL :؁X4@B` =FVj]RdHy,JX6;S5p%K 8V3sSdl3rǴHb]{sJ*UҥW _4/NGQbӲiՎ Tc},^޺3ܶm*Ue®iIuͱSUլcVA> \9ufIb,<ݕ&f-ualBu[] [?;,4s{PYTh,J֠A)|OG'Q7'7/R#̋pm~D qal?»Hдr\\t ΌO`ㇾQiڗ˩^Mjť[nA[X@ cq5icWY1<xLrę2q|EoU+C&[+s9y./\e*S-醧MJw%|xUx4RQ ` ~BqϬzaMok@+%[U}baG硢3zΩ2s9H. N}M+a4,<{[#Z(5o([_5Ւ]uO&zkD?ExnwU(@p/hXL7 F3B,"ÀMl7)m`ac^)}GaM35bbۅlQSt;+˼޻*rǘ"Sl#Wϑl=m%6).N$YIۻDW,9 o ~",'0=VN& Opee3l^V[[/Ͽ|*R"˗m|*e"RAuab)C.L`[v Pqpڵ.]΁%i4k,b=nZ $}BY52"A"m4tF/%MPCePVbvJ_x';A ~RGA?udp$Q9]=4-FhH;fwLRg2 adE|XmƢXow쮫-+u7, A-k&zsWrBv\XvlƇIѲ2)n0%Ue}9ib1#]k}Z?߉ˤm0C;c;&,m1i͏8Ď9pSe%,6a}4ySPڭ<AZ& 0SOc~85bGTf!68?ʜ^џJ `me)hèH06/SC]0 yW1 EvQz,Y^=G#|Wn\S1<ܦn]l]^_䓮+p%joe@۰lFw(e/dlۻᲫ{_5dۍKH {w6>[c@k'yAA!wI 7.>\fGJWMOm\`_\as`__c[qijv%.7); G UGPM \Y gjsubkzs1I2V2n }.~JAs8Z[LY]cQq`^nprxZ19Rb1bRj~}b{7911<΋֬6 $HYR|wrRJZqmJ֜AAw2,GmSszuz&0-*%2,(E9jL7mUIhVvi[BoVys{~{y1Rsہȇ&%*ύoA|R1 bsėˡƧåѭƪԱDzдʷ҈ӺΑϞȡDz»¾ٽͶ½ƃդ,H*\ȰÇHŇ. ñG5)Be4hP"Pjt$J=z4Eʏ@ I#DH2%B"Xh))F3MKAsٳhz\ҷtԁZ54-ܥr\zꏧ?j+^,#3Eđ].eD1dɞ HSČSFTo uLTȭk$suե:u=v:[⸼ypo&u8Չl{ܕs9&mQ]OhƌaOyv_qpɥz)_eB_}DhaUhmRtr_q)>X`0cr&S#@R"c!ƛVjq (FbKm:-{),gq;{T`/ V QA[07-p"2\1f+p ,$l(| W[*,4l,CL@3}ѳL74yn#uK?mWG=5Xwh|m)&p Jksnrtj}p2M4AM86#89Fxp䋋4#QK,q^̭;걻N3e;奟>;뮿rE@`E4(o<ʫμCr~o@[|ϟC D=O=ś_,|+Η>}7@dkP HHZ 4Az"< M?fP, ~4B7Apv3_ SjEh_иO|; & Q4+/[5B#E(`5R"8=\$d 3q4YByЏ#<ь" 7H2`IA Qd!w ]TB+sȲk_pE]ѕ4$Q3fC/i)[OdcŒ}sȇ$u 7M_$9Xjp%1gLR\;(GꜛͱK9Q@f8Ç\#^Y؇= CLJe+c9Zn׶G$._9lv- N|9R.-/a)N1q۬=yf&> Cɒ/jzqⴇ3]iQKYĦMAT%F2>f]8xLz.K\05liO{ NCp f{Ǟ5?'pkpd6|vBzz5o<> NHx o!no.qoߝv#kMn'=i5z<?|;7w{MuPkK~bz^8.3`BWnqJܡ&^-훠%s<<1_v}LBwa =؅;g0|7kTwBI>o}bNgS}'D_n]7G.N:Lb?`wp̠xz @d 0 xsWbtPm v   Pgǀ%nyP4Xvvq3ypuw!Xbh ȂFz̠H_hd6f.Z(z@z5hf X\x^(Ugj!H/WyPvjOX&hfhzl"rhVЈ5y$ȃOUWZ_8fhq2o;}. =% u5  8\P PX `Dwn+wkFd8XȀ hX 5\)(Ƙsꨎʨ+l 혏X 쨏hӘ~F (Hz(n;@n ّ9БPeV&(p2l`I+ɒ0鐁3Gn`75ٓ>@0+W E9LٔK gtV' TZɕU@< SWu&d0ǖpWeOYvwjbm{xɖ}tƗP”}ZY^)~)L9ɖuReYCpYbIiR>Ɩmٚp b)x`_ɛyZ9\ɔ]˩9tle9>VL9ܩ}G֝@ tɞCb~pIi]h=~ ZR *%2l  Z:@ef婔!*}I%j#iƢ24j79ʢ8p;nCJdy ZJ ψkФ :%RBFjpYzm]*Zzɖ?ZciViZ@lpqsuyCqB zJK~eZ7ǦFn:w:pVj* zMtsJZsAGne.7j2 @u;`u|{Jtp:Jg L R jet'zL dZz:V}P)qJS ZJZZvR ƊJȪMR®jejaʮk!j {,7Ҋ J;}){/Zڲ*ªVzڠ;Su? WA[MD ;coconutsfall_scr2.gif000066400000000000000000000106131263163240400411120ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  *4"3'#(:A!A E+.L8:dPqa)f{DGJWMOm\`_\as`__c[qijv%.7); G UGPM \Y gjsubkzs1I2V2n }.~JAs8Z[LY]cQq`^nprxZ19Rb1bRj~}b{7911<΋֬5 $HYR|wrRJZqmJ֜AAw2,FmSszuz&0-*%2,(E9jL7mUIhVvi[BoVys{~{y1Rsہʼn (*ѐkA|R1 bsėˡƧåѭƪԱDzдʷ҈ӺΑϞȡDz»¾ٽͶ½ɐΤ,H*\ȰÇH81ŋ3.ñG VH2C %Tdʕ~{_#akDH0e94 ?p@Yn|F6y F!8 jE?2΄4@a% eBKz0H<FpaHD1Jd(EQ\a'F1CǸ&хl#`@ IȄ: rtG:zDE@QccH.R IHCR24B1iGr<%I A0 $*Y1!e-oT|/w(Ld.KX2|Äf.C%ı [eeR7>.юĦ9Ug3YLu~3>I$ehS-':` L$")@x"a dE/P)? zP9&4 E,UJPIr2;LI@}2@IǛ!8J60 J*AJHALuj*UV*Gեh!@%P OZD-eGv#ε~+^c\:(@>@rmп2H";K?%-LkYuu4c[V}ky;b\}+;Q2S.suGK\?p׻q{w߭`@6!Z|+_9_F0\l:XMt`nWUڎLఇA|5þTCX#[,VՔ; Bהދ$!9HQ _'y2+d"?N3aGD$0Ӽ6fF Ny3`6eM?+9~X4BBZp6rY`ESf >" 4JjS:^5N[}TZɴ~5o=j9.b5K_{آ^-ldzvv.ѹ PҖ#la6 Yp'}8{҆]4vyw">!ep~p6<~xBOk\hGN. $O9o@gNs˜8/ssG]yfA7:ΑtMyCkG}U]Z:rdWX>v}"wSϝ!wO f.Cx? 5a>8#K~| LlbxxC} kcf[׳8?io{{} ?~o֟y{wxGu8g.kb??|PGw @}b7xxh^ 8poxxsͰ{ <۰  fpx&*x)~ȁl<Ww6rzB8{r>XyF{Fl)ׁ1;5H<r WXJsk{\9D FY ;IMPR I;ӓR V]ЕW@ihfYdٖkWjIi<3tٕso q|ٕ~V=3)cYF=I0aiR l`9YUi ]a!PӉ靦UiFy] qr7dɞqiٗٹz q9s@ F)UyzI = *96=ŝF :& ,QƢ00ꢼ!6ڢ7+:ʣ@ M <*DZ9GjF6ꓞN P*SUfiW*p0bdZ`zh*f bkn. sojfzGL:p|*2 D*~ bj*j* ʢZ*1zf{DGJWMOm\`_\as`__c[qijv%.7); G UGPM \Y gjsubkzs1I2V2n }.~JAs8Z[LY]cQq`^nprxZ19Rb1bRj~}b{7911<΋֬5 $HYR|wrRJZqmJ֜AAw2,FmRszuz&0-*%2,(E9jL7mUIhVvi[BoVys{~{y1Rsہʼn )*ѐkA|R1 bsėˡƧåѭƪԱDzдʷ҈ӺΑϞȡDz»¾ٽͶ½ɐΤ,H*\ȰÇH81ŋ3.ñG VH2C %Tdʕ-QdIL=*ON1;{J$DH:u"E*e*K>4kՁCS穱e]vD=%ܹL낹W/߹zd '@f n˸㟏1-eHrD'W2e˟:kH`N€"Zװ5Ȑ\qOѶwڷg=îG8s}o҃6xGSBN;V쩾DݓxO_ͩg [L&  UW_d8aj($!G'Xʊ&(׋(d0!c;)Dh&'t#!!K6$Lv䤒U^"rY`)%"(" pZ!fav)|矀*蠄j衈 .裐~ ȥx@駠*ir)rj(*)"ۈ"P*찡Pk lj,a-"dkv fzZ^mچr;2.kʬv.J/ 6o'0fXA>.lzb,rj\))(,[ryܲjl8<1<-DmHApPG-uэ2a(XW:\wmt?|u(l ^6rl'eokm׶z؀7N-9/(~}5݄7.x-ƍF㘯m,JޗgyN8QN zD7M騫H~ͩ~t#H| 6 @<E[/<_Щ? H~G^w=_ħ0>#gI@O}<F@YxAP 5vЁSx ֌ 8d@(! #:!\B>P|(` D? "XD IEq1^D#aXBA PE1@4F#| al 92cGEQۃ$i={pXὑvT]$)YI7^ґ'+ɆP ${IFmU%)Mrrd(<Z06%29&.H}L2sL .pҴ0愦4k"s;d#L*P`t'9LtNO6ӝ|@:U\EِQ Txh2PEb4· /!HK*͓2!%gKuҘRRxe␥'L)S6 tE Cj5֙NVAGRyņ2rKװaXY+9<}:p  V8,IɊcc)u}noXⒷ=ܸfֹenrd7 O,"usݷ׼u^z[Ͼ]~EzHB{l@S[ú0{9l33s_(<*6N Uxn)qh/;Sb8 >SJ6C}쯅+c6<.qd?@YȤdCE/@DS޲H7i u%lev-%>~xBsxlovqp+ N݅ uaFðt﮷}|v7(h'Y/ #oR7-ixA.xw%_Cy+\l"n6ρ.k ǖ,ѝt?,uzs?=pճk}X:m&LlbxhW{ܗ Oc.w|O?|=+TGC&_ m3suȵ>wN8PA3~=_xES~?8σE-~7c{ @1 <=P{tQ `O8({ kq0i0؀𶂈q.zo4u6k8x ( )DdxׄWVS2ȄD8>Tȁk zz0tkMȁX8)]XozKo7H~~1hwxxnGtWx\؁K l&YTX~V 9n{kݠH nG ` 0h P@uhr` 8@^ ؍ k x8=G؍X 0i08ƨh +Ǐ)Xx xW xxّȑّ IƈUfmɒ+il1)yvbxv7 ? Dɏ8)yg GM= N) }"X}VyY _9a9Cig~fmɖ_ulft9qYc`h{ٗb|闂 c V^\cyhi OyYqIf陝ْYjecY `RIyG\yvp{EURٛi)ə55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1Aa"Qq2RB#3brC!1AQa"Bq2Rbr ?Ң.ȧdѲeWLP򪡗Ҫ5;}Uq}Kyo"iĖ\)ͶhmnH0⚖ <+:-lJ26sRX$9e-#3kԷv^6Wi %S,:{&+Lf;mC p akh8凾}&H忔#p/v<PKMΒU: p؊U~.2RmvJAMIfH1|Ψuv鱾Yo&AHTb3 q|ƯFwqSa4mΖ>ڢ@(sDz2RzdtIu!h@kȥWmwտ6H3(V68]MNudffvqԱ!2M,6p@'ǥϾ cAî}Y(ӭ 8׫NT^MNyWl$dkgo³Z=ߟf\e([+7&ZsZa.tۅ$ipo5V'OXwcekq1I:npը8xİ,Yr[  Uz5ÅZ9gnV$7߈GjJ2N)est`Er.$@ࡗD˅Jnˊl?5+$LVo| Zܙ@CX?r#q}4`*$ާ{64Ʊ ~0J)$"Mfl=AT*ѻu6N6}vIb:=[nstu_.5teG.GmYabά;9"jiؐp vǾzU7Me],5C|1 |AZ-d~92h@HcS|Ew)#%Je IW´=;hYR-R2!te٨;)nnciY`O0^8){YNq:z4㫶^*nQ-_3jV(U0T砆6|Ez۾Vpw0,MnFfܰ0I=$1EQI"./Ƴ=Hk B WZGq rV:/_*A+J׵j*@W'v1У cx_zFP&^|$ݫ]4 kUTUb꾑nh}#mQ1?hΖvQ$Mrbk_V i^nm%FG;U$\ mH‘kLkIcrQ@6EI719W ,%ϕ<Ӝ{YSE[H#=zl%ZJP$F9'h',mS><*Gտ.Iv?V1`Zr17L-H> IgX߅n˴BnH1V@C! cpjb&&U(;ѻጅygز{X`3KY'_I;~U7cIO4ǠfbPjP GJWMOm\`_Ugu`__c[qijv%.7); G UGPM \Y gjsubkzs1I2V2n }.~ZZLYVqVx`^nprxZ1 {9ZR)RZ~}jbA711<(HYJR|wjrRMqmjʽJb,7< 4j APmi qzUjkz&9-* %5-(D-z4@>J#pQIҦ֮:k*c" Erִ fP{Ky ä ̗0R\+I:Т'W|YmB-vWEPʣN'"Fvx6Tv4)Q" ٱʙ{^DѤ.{ ⳧)QŸ'o}A>Q?yDJiMG[Si%wćXv߄}YRa}(8X&ibPu F={b&z8xczY܀t2)N.wZ2F5uuykxFJzv2hSblA} G+u'Y FEd"ٔt@&Blj($)"V'bJRTVlA hc j]Eq:jPLz^# (} j"Ř쪬h:CaUSiV&՛y-jڳD"`xAC쒦" wpŽ ׻oM JE_pBXDhq;< $.M%4zr!7@,FA> - gb9?\BOp[O_TEPëX &W7]w5pny2֤[v= ' $ ` "'_`VT}X] &lG^6KYuxSjv/D@}.3We& Ԡg4bЬ]tu5fNcCO tҺ$wi8i@ 37DN'/;bMiҌtW;}."MF 5hw҈\ (E8 5[mx pޭ`A-unw;ysp{[֮ U MZ)׭ȝ |&ƕ{{>;(tan4Y``%0=֦4H˦G! QkJ~h<(/yMU|y &NC\'`P6{xEg=xa"^rn [e sׂ]ZdpPZz0[R\쭮3(oaʯʧ 3<݆9'SS}yP ߱_;j-iG|LӃѻzs|xzڷ} tV*rkl[Z35W~%~ P'wUct ǁ{nSrmV PhP0&EcA;qLgz i@hm9'iXf<ƅ)WSou3o[4ag#yy}@9 Q(;`GUpYx~\<1Db`\^206-P`p@cb@)Y3 P 艧{o^sMXvȘ7p 0Xn(|Frh02g0+TW"[-7v 6Ɉа@PnN@ NnT0S:c0\T ;,жf  XX \ȑ N0Xx1sMĨHEd'T/Dy(f~8BfPK&K8+1=dsn669S1%yw@Y!*(l;I(q(MR+Z4BvjL jYh٘x; xv0U4Vm9T2RIdy9XXgPghiK1D}_891 62|} ! ǘh`@jPYF R&` J>9|yS2)O NΠ   zsYku_Cy1 6 EGPH{% RE>-kژc hp`!\3 zs|pVh;޳h{j*[R״y.k { :`[ !' $:Pg0J3hۗ8SEgW` g:P2k][$q e9~ȣv+*U8j*/X+i ;6ZpU˵ p&Wn :v/*ylq-?/{sJ*Z0$ 6l@<;k=6zlz(QF@ksSZ <\ex#hZɋ_IL#3 *?@ˠG*3ܐ/g XLQπSJ]Nn(8B*a2[ ժXJ/ejS@&t4jZcTzi>UL ;conecone_scr2.gif000066400000000000000000000165461263163240400402220ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  *"3),"#(:A!A E+.L8:dS@ im 1U Y9 u }9fbPjP GJWMOm\`_Ugu`__c[qijv%.7); G UGPM \Y gjsubkzs1I2V2n }.~ZZLYVpVx`^nprxZ1 {9ZR)RZ~}jbA711<(HYJR|wjrRMqmjʽJb,7< 4j APmrzUjlz&8-* %5.(a6)+CDyuX1j 9kڄH3(B=@@B4m*pH^Q)E5WoʾWŌ:2HlyfihMx' <꘰F VQE[n1"E:tH!Buu|9t6i fuۈY8@6bBAgʽuh_ HheGZjEXv_SҞ|4p-a|G(ᢋj/h`X.]F]aABp@'\GxJ|DXUXF<[YTC5(ŗJ!Kzl # ɟz)`Vwdd;jAh&4r|5¥ *Y F E-r"(1N""1jA$NvIJ)BKAC}KS^Q=Ij?Jnvܫ]Nx$r@aڻ/HW仰>9$r:q>1ǮF,-F95 wo$_!@a8LڄrŦ.13 dabڑ2Fk3E!#+ڙtoM c-$-F^6bW EfL \3Aen'#j]fT1Au{+rZA2褗8,pxe^ΐ#.3D[ naUꍶu9~94LAԓ7T#_}c-\G*Q?O~?@A Lȏ{@^DŽ=|@ ,}< Ϫ=L<=L' :w^5֤,{dC=p(іx98PH*J!=lS<'+b>b613'x92  ^șk@ ޼FZ f4 HKԙɶ"d.ْK4!'}ɁS3iU: e/}"6.G5Ōa4[~bM:L:v Q IJ;AX=[Mo`ܜ^Mk ;ІʤWNzV϶X& X[#*%9h(uJWN,nPE9$"I5'EQVsĐ'ը.mDE{Tx @RN{&rMS:.QeݘxtxC$izIxbNb̋r!/ C3 Pk" A@hx hGKZveej=uOPN' @لLb|ؘO&kE&8Yk&XpVԖ*Cx6 d@@ .IΚ&sJkİ2 Z9o@5)Z&KL1g4 Z9`~ Oh&q9Ka 70<I ti+Mn8.Q؍ʤaGˆ&<Ϛ"q Թ t#e2 Mp Z ;ъpA0&LMb{bD~4#lR}FpLiu䰿U:uLnx1lcid h 64~-TX7*U; hqk1K(#i؞~l9| vo9p|0k4A3"P6<;Ww5^Cw D7Jn@-=l?n9D9Fww) glZkfL uW` `4TN_YR_u%vKu^_=h]2@]xvGof@@?_5ֺ >3]',aO0=N*<"ӣItMx lbw8Ǖ+p&D<1!Nc My7a;%1ɿ^jLDUx A{J͔"7V4 hz|w>l@S Gl hg<ǀ؀X[ݔ)'  ǃ'kTDXFTqKd hbhPu3 9 9lMp~(%9UUTPܤ1$!3hQPh RfgW}O̰K||@}MGbMn&U:Ux8]h-!|t9@%)$HalE#$1P('w;&}p8зh1>J$NWrMr+NC/Z~xK eh'xpxWΐ=#0MThrWL }𨈷S  }ؑ|ffY ipcxG}6xx 91N}w΀ QIQ֢!1i ?")QǗ*3ib^9Dy28Xf0⛔ Iy9ikʙeb#Ie[_a$e2tgp<(gə扞k6gjtCc'4U6Z9?4)(*x ڑk3e*A6hv8e2Ay Iejy9 D6&i<6hgЎsY5u!F{b#Dt`Qz rRjY@3w꩒0x5d~@s)09ᦓ¤yJi.i6 [1ک P<_zC5J9ʼnIhihiRx/*8^^`Z kPzuge&t>zF%{z<Pj* g` ȺheyɗZT6x'u`i;ccjJxIS*oigp4y &fZ*hfN if`;g [#c۩KjlKNih;@`}9)~~3&,j*rPLflJ/^d>Xwi;6fh#Kjf`zpy" xZԶ(Dg=Zٲdz تŴ$ hw@zRg8i jk-hE"I@>#9>c4{`#y', Whf0zR:{?_d)dCK5zb*EP/Vf绰y(;[{#8;f~Zzx#;` [I |E \K/S!:˿iл?Q Zi0{fsE0ğ3k%"|RG>s6 :Cly hhC䃲N,K?n;Rכ?|LJKC yGpr\ "\MNj ru@<Įjv9U &kb:f~NƜ 3ZDMh2ߖ^IF0\^mIߦ]tnޝxgb^)FNnf0݊-Un.oASyjTyF>.*@ ~ຝ|0~X5@vmb-j䌬~^ԙ$Σte.ڬ숒t/!ݻ b?p.J.?;ٝ/?d4wC]/*wm{H(_.־,nsj?jlnU-54_ia|#=?_C Jчb ^h23S6y]_C@nOh̏lZu몡5&]_CJN۪mf4dodZ-Vp @̘)8Á(@ŋh4nh!BiXTrUddN";p$OMlPA4 "h`M: M&Fh& edɯi[yfxpМC9BEFh$@h@JWJ(p,IdȊ<4wgO<9I$_ʑQ@P|ȒMj(|sk8Pp9Ctݼoo){cS5 |U&Oǚ5/¯>;@( RӠ4n5; 3|B 4| A|b%0 ! [|"`>.k<'A5h$pAnArr ]1ã2Á*hq ’ 3 :2Ĭ<)p ؜%O3ȼs̰.ÆBd,'T'>n8':-點\B&VnK]@RJ(y`I}C]mub ]K5%MJ:b'`JITӟt.Y[5YIhdFu '}? iCu LAB'BAsd+>'`P,M';\-]M{P^xդEXI?4MDfIMYDgC u3EzX|&Lnx@*ɓS5ז5EbՐM9a)`PDY[ho}3DNa'd?@ ҺC%!mNf]0{lYRDtn瞹g%uax=J ae݉ץ@]ǻVw.}rzv_اOmtJ@{{}Yf]La0? NSh zF14wv;JeժW^gQ(6Q 6f= [ρW?$i1oz |Y̲'fbPjP GJWMOm\`_Ugu`__c[qijv%.7); G UGPM \Y gjsubkzs1I2V2n }.~ZZLYVqVw`^nprxZ1 {9ZR)RZ~}jbA711<)HYJR|wjrRLqmjʽJb,7< 4j ALmrzUjkz&-* %5-(/C}7jxkYQz$j![rdްeM|jwdE|D'*h@mӪ\鞨[/N~tE1VtzA5"c MFހlz,a1A'׉YWUအEWF A!Rgٌ5Hbq&x!*2E.X 5g!fPv'ʔe)%}CU(dT1׋1O; O# WgU5D-$ YhWKx@`'JɝElB@@aAP*f)aTX)jر)*'ϳlZw׫ҤA)2($H4;Ypؒ`T&xE߂ѸrnX+q)K@+گH xǯkP0 !0 7J R ,pK&[\ Ϛ˰/K, @3M`Pk-Aft`-d=ВzK?2'<ğ|B| F5s]'uȁ]UJn#.zw)M $0 -XG`A^c!⬷6㧱CwXܞ0?~ $$ ) m.}iUxo޲`sÓ@AM.XLo?.&;HfoKĦF.ɍo]bTw>jjG/j="Ƨ! d N=cM@ga%u.0 H=@ph4F3(5q\U6h-Nr` bn`hi:L"F*!p~< 1:guqb<ܦPDbcbWDGLIH#0*|E@!YZHba{H'(k_B,IG6LLjfJqJ'~Y aphfȘ4Iz$|-{bX'*/+e9C`R eĞuIG`Q2*?h@uqHЧTS{Q8ͩNw:Ȳ! X)Rx)r>'"+e)M97XͪVq I E T3yP'rPHr"lC-Jlx)$U##膑+@Q~!^U4}t' la0SUAURCds/:=Ih7[bv&iPp@@Z!k5XoG fϒC"[16hȩ&C!í<J xKwYզkY"e6:=@[rj yah;pXR9fFfoi{8Cц X/49+w9r&`m|!+oinjnKWc7]vkKNLaш@ڐ䱶>0 ej 8{lƔAU7G]pNwϥoX}5œfB gT#wM:_OFQLxw||e*r}] g@}:C仾n|C Έok0";T!d\Gw  @}ifm8+VN|ko1g14x{WWzjvFWq 5*>hFH)) &>{0}Do`aMdF> P`zzW fhq$;*PqN' [ XHbzG؈G,ɑNhXxg|Рk g0xK+WQ5ֳ*Rad2O^3 P LŇXNȆx4,XXI"0 1(ꘁqHW4Pl'a=ۈ]GߘR"+ksˆ`~hȌ;GSTjRQ"ŕ&ThYkuՉI294x0;IǒC89YP6y&k +X#Ry5Y0gghTi4Ph=+*CxpW P'X)PUX jw]F yFF)s#{A$CYtO`2 Npΰ y [yhdPufz|L`1?@hR4sٚxIٜ2 jr&Y|@-$1 hR+cl% y9I\ɕFhh_cvV㗡EteYzY9]72Е \FfI-*mh m@9ԙʡDifkdqfi|9IxeY=0B5 [W _J5fin6yf3aҙ֕E$maZdʝ[ 3 b$gs&nop݆IYP%;#sIIڣ>hW@y 3ڡc' mDgDRʝIhj@l:Fs~tew4') 6Jj 3i@:.O6:[h:t:k nw\x[Dzd]hp* 1Ob:yhynk@:g$g{8ʝBb򪯪z=24w;)ݚg0~ƕF#)WJg2dgT[ dFd6fY#֘ag :jKkcI`+Ý 2uc9ǖ7W˝)n|y`\ J l"Tt˝2GJm+ 5w9iPMD!ikX#iO&0Bz+\pF]D";8;d]jg0?'lg˺eokakhdvhX󷿻N+nF9BfBf8 ܳ$OKXӘ5Lgp±וkF0? K|&ܳWl6|~t<+[lG kFr gvFpǂCw,f [ &ńM"e]2`o,w^5Յ3[&ztu\w,wl~ >XlKXAqMօ28z \\hKȗڽwW<F\٦\)"]*(N #^bx0p3[WY(!mʐ}{)LA޽\'`B`BL&> d\yi Lͤ\QeN#BPl1(e,]}z΄UupVolJg@!]rbmxx #~2^VkJ!GjV? !{^Ej>.>ԏ7i*u딽^ ' }*>wK}q^Χ@9nlǖluc))Ֆ^mqd5, ȃDS3oPowӺ>/cBS]K}hޫGf˦e>$s +4D=\,.wY~l Sk~[>f>BK)LDdOZ72RM0\vkc|1JQD-DFBk;Bv߆^ v&(a*dO/kBnAθӞDOFLH:q [̀ʟjlSCLϸᶿJ>վĢD`΍"ONF 3L΄n;t.3jMZ@i*J`Th`tPב4u z=-֚NݑY7YX$E'} ?YdB Dc75u#^& {0w HqEPdΉN va;$D~֐YA֏NHYR:QND!%TB J jii]ƚ{jO aZYQI$jCkZ)cRZZ(f dK\ ֑L3&[D/zVC^;AzVEh0]f¤ ك$EF1w0~ j^GF}AV_sz([h8>}#7xCޝ?b>uE$ @Xpx @ dyS:*·Z/hCkGR\ƣ]EyD s   kT(XA`0n92OB+'ObqS' ApQ)ˆ>Q #v@}!ЧJx LhNDfv!:qF)#e(Y-jcp+] E#*p彎oES<)ŏK dg "@ 7}lz ~@k,l$*vvxͬZ~اo|]R Öܲ $g.WNtkrYXMٵ VD!F"%̄#1ikr_: zPN |''x+\oyR|BeBMjҀ;conecone_splash.jpg000066400000000000000000000053051263163240400406450ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1Aa"Qq2𑡱B#r3cRC !1AQ"2aqBRb#3 ?*b ySK]w[HXx鴵|d1'`V[K$P#56{|nS}#]L(~ڵnRTcI̚eÕg *Wz%'#c^/v9iŧBS'M:Kh¤-L{)$](\1ొ3Z8 5#3:iiՂ ɏ=7w뗶Tۢ҈?@d.y dIrd#s':(w{&sKH]:4ʝ%*)("}8 6((g=bGvc7yx \NuNpj F{;}6F# hh`E`;ݺ݁O#1k>*4"nXֳS6ҫn'KYӎYn^IEZ (?2 :SA+S[^FHPB9H c=iR `"'H蝵B\JvBb]+[۰8C"/wcG;@2~j ifIT;a"Ra0(+בZ`+Lux\IlH^L'{@a'3#kw!'?^NW E4#D)%1.qm#5]ó}yxkWk%-EMc[d[`-JcN%~<yY+qn[ck8X]-kWN77esYiv8ɽ]Je=eJ"J3b4wViuԍk\F kBi]6(ၜR\bbzJO+#P#V3% eK$#L`~4hѰ#Z_K^HժH3 mV5ki) b!YKWEUNMTD-%Og۶*лϷ=Gh_~/L"mYE2o5c\mntZ(͏,F|^JV9ڝ%Լ^QEA+jj8}O (?copterbomber_scr1.gif000066400000000000000000000153661263163240400411120ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89ah@K.LlmmJJJq..-<) ^TT))4䝬LS4ck-V=~4.8pIo'QJ+S|*ě,^蒯_EQHԒKt)O"Yr83g*%TM(ȟ?i=ԬH -@-:kӾqlUU*$.pf;\>8tɤQ&h 2 eJtrYai餟g)%-$^r^UBLz ehV:fIRy1ZZ'P^Z韪J)c9v uHx®Z$.؂ )+En90܊kۧB mGr>ll -Vnn*mºYq6]/YۨhӈG(«,4m/$%V*h*lrjm6{J.s೓c.| 0'njL0 pGUd2X{f–*\3Yќ6-,A=̘ K4%% .xx),ʯմrLEI$>žЎ-.Iܲ;+Gb 砇|sn>븨5h%onâ~Kr[̲Lɿ3{7k*S[@mE蕽cJo-фni7MB~HAG>&ڷ1QB"%/o& [GxV>.@[h±D `"I5BX$H2ɭ)HW!Tĉ @qL*ԕXXEaAF!%(5{dj3nzWJE6 U; ?VbQx\#'Gq sr $p%aX7iv/eěuhk~d#Ouv^z*X~F7|FxGdJׄL7lHgk5%E+'[*~|r8d,'`acHp{NW/prHd\H|vyhp1pg0tM^W}HgZ-pwwu#{ng׷rچKA(ot^m6}+~N J;#@@(èܛ]ȷbÿ<|ڪHٴ=ٹ x\3R"Md\ᑋЍ_|װ'ⴽqL{m2γ۴\D+P-霧*mαqm >>{q+]y [޼:Ǡ|њ\,=MƋ}\1{V+$]1-`M{sKlG_ͧB|֞PMV20^L*Lҭ+r?&_=̱L|5-<~-֋ȎA+ژ_]'+0,%ȨM|]% jM;lQELSM.eogl^}{-ηzL[?s 50f2% V3ɂL̒@LL)92GmVRm?VgǞJ^M’$_2  ddl^RGNNL{,{M"2&QPX&AMJFPSX_\]eY8첃KۓL^X^xKM޻Z3XrR؈s:1V^{+8 ݠS̵r0l[^d\U2 SmD c$~Vem@$DQKk~SY+VВzY7!0,L he8Pɣu‰g GvFNۗהi+m `$h)7pz#=Ʊ=|"z =bDHDm &@FQFp Fhp"4H"ia w1[K-FfN,P0/Q4ռI'T&:SOdpRY Δ v;copterbomber_scr2.gif000066400000000000000000000153461263163240400411110ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aS48,L &h@lmmll7JJJ00$o^@@4LJck-V=~4*082aɃ&ITɇMEY.Q5@-D2!іN; 0aJ I5Ub:=r{X5 *2BfEVZg˩=k.-:T',ӽi9y)Oࢥml]7]k]ݻ 'm?u>nPAjoѽvZvmt^?ZQ6sfeO ӼH+G u X+zkӣ_47͔y5`d: {}sx՘ Pc-{&^PMv!xJ}F4`w$VZ (9| 9!Lr裏ՀbiԂ 0#, M> eN~ЂV7^?v饂3d58N29Sf |PQ-=ۖ| &eBpf8P"ڦT~܅gU{V %ৃc>PCRi3)UP@A^҉If lR*&7 {eBJ%D+(p*©B i,EvڲjI஻R` X ,ق sGBy>TlԲӆV@(@fmLv H_'0ܮP)ĚJL6ؠjsz.420/$\%XlԻؐ ؇f +,͍`ZMRk.W]C0J/8UCpRMEpɑd7rv3Z1] ]=sN>,K)mܘhI4`>/7ly_n< ;1&pW <9{ƛ.6*2jq=&L 3<byxA@ѝ9 ox忱i+Q+Ƹ$7JԳt܍s`5}Y8`& MۀGpj 3&6o-h - B ݢ8- -}H9Do氝 '^6 K~П?+H4}`_&O7jԭ~aβAci=v{ w@~QgHz 7nR.o~@xS hl^TL(N1 (\Ws;4֢5mK\_.a3].@~h:0 /VI'.qiOPoxŐv5SM8K"ku˜?ݯ)j_.ە 1?kow;wswюVw!Ⲙޤ2aqkhLt MP\/xNrvxnq ښծk0N[И]n@NlnDm;3\y-h;}~Û(>yёN@oRӟ=)qroOgNFWJkg0\9A{cG: a>#6<;v{+^_jHߦs{ow%Ô9y?A;ntwO~i4<|P^po' M3O?oF8wJs}_z'{G}ibw}FB-ePJRfymwfH [2?m6~Wh~7n@g~㖀RgEs*hw{j  r#Wu(6{J׃,VnvDp @j. 1kPd`8'Tx%^Y$_'p<ׂ[H}W~?k%){HsJؔyOW%ɧY+Iy] _ A(+ɒdoӶU_h/r9xHh$07)&^ɔiؒ6%~~)u9~ji9ٕ2ty9YyYy薽Y Yxgiəظ_؜IyIɚ){I~(霊ɒɞYȕw꩝Ʃɝ*Z * :z jJJ\y:9$ʡ',ڢ2:.ڟ 4:<ڣ>@B:DZFzHJLڤNPTZVzXZ\ڥ^\H fzhjlڦZ30vzxzpzjI:f* y*tZ:^zHXJJJzn:ڪWꌉHXJzFxFh+ ^ZzJlhl(Rк05 ^ƚmJ:Hdʬ @ p+hJl jz ʮ:^)bjaثڮ:^/2@HgJ*2 2P[`z)a].-[\`4[뷲 n5۳Uj?!qꎈ +ʯ[ 0*J+ @֫/ *XC; fz@&+fʯwŠ @3 ˯}r{ve[ZHl^ @{!++Z z0xKlt*eطDeX 3 [U;k { +cX 2Pjhk#{꫷0˽kP+JJ i+k)ۿ#+[Jb8 ))U{L{ pZA +뱖K+blP+2+4 -P k:5X3HUO"N/=B. 1@l=;n],ۮm}߇i -熍%ڇi^uS>$W?%FE]im_8扽6ꑾ>%)h~ܜmҫN=߹Ng൮zip0^EӘn Dm^m,b}u ~C䡎p]qah~ʞ; =ϖ$% #x 6o^.E/I<T_VeX\\^b? d}A@l]m?{OU,]*<jw}.ώ_xnχGj΃_n,`ܜ,O?vPs؝Ɵoϗ0NkOs?o)ߪ^8~{rQ_|+_=loԉo-ϳyZt*퐻P<":&ͪɼH\1Xw'is^oygĜ  銒 @ؐ:-@Nܸ0 )-]5(Mq/<gW uXNTSO<fݰJؿvҳʐ UR.ʠ&ad,s S7 X|ǢA81 =Z)ᐓ[Xh>4Ȍᘊ,JK#:6OY0!E,5AITԜa=vjZJiLeف+IT aKaKaŏ!G.L4S墀% ,=Ɍ+t> 5hүk[(w+pn1LcϾ~ZqU0).W [;TgF |z"ߴ_)]G޹{/ʲE0b(3NӬ ʤP]> Ic@"0I.9ʊW$ˆ$ :6udHQ $@&OT&+prS@5ءDж쌳@8bC<6jGx[G`Ӣ3mIOˤ +BsJ( PDPtG)}T,QK iA.b`:$T\|i=m>Nu-YiLJ%RyLN1G9o'e픈تUPA# )-zK9;!n/K˱@DLˇHxSrP U ((WJ!Wa)I}bJ2f%S0κZess#6XW-SH2 L{&xS|=j1E5,\QYufpC-bzi,M, ̰wR,]! F]pV+.ƣD툗T{K.z30Qp^2ʡ=@)1\9A]I/QO]Yoa]iq]y߁^/y;copterbomber_scr3.gif000066400000000000000000000146361263163240400411130ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a50h.LS4lmmJJJI-Nh@...qoo9TT))]4LJF둻ck-V=~4.082aɃ&ITɇMEY.Q5@-D2!іNU:0KRќ^iEs罫 BҲТC@m[oE.4BP',ӽi9u ϱ⮝kvqqG. ]ݻ 'm?u>pXpbjoѽvZjIgv۲j9si^[<6tЭCǞt} ڕY*5c6z}oǿ?xE՘ Pb){&^P va}J!n4`w$V@B:%3ΆPu{ɵW;x 1b%@d"dJI Yh7h AY$D2)^@BEǀoTWj9*p$_&w6IB 'rWTihr:dv.瘐z &O j S&։3t2Z撒BgM%³)'c% `k9FNf- CjJѫV:8L J箼%a!ˣ3HKXu`֖ENKmZ^SV""'4'ڮ M=I5ӽ@%Za6y`j ImfCf17gi >7aQ07AΧ,r#E%UkZK&-wjZ(wON\e3J+ڍ>#NfBeDOv@+,Izn:.gD.> voU V08a@0τ>c H"q+! GSa4T뙒Ļ@`(FK C`#b)?χbU0"|dFؽ6&(HIQ d tP )2XU62%(Ơgt"DŽGB򕡌% Dj(^t1 "44+a)83e3Yi昊H(f#kc2 d l3Mڱ]ʦ>$1S ( }D0esό$.h7At PYvUҋ6֯` CQhs R}n#GԐ*y͖^bLsy$:|gOH0@e:8TH)@@6kԤڲD ggFգ\Nf&8 ܢ9x>iֵ-H&W>) J٪^`* U&]S` 4H4JdJ͏N,:k*F8EJI33ӻTQP-ns˂j|Z,;[St*bɨj.vCIUr7{ed}0I-o+1RWԝʅC [1XF3P^@Z@U^mo=;^u}g!`L-pd'k UE9hPF-qƤeMK&;ٝ ޕ(cθ-0GL8id d!{Kb2T&;O^R΄< 2@^u0u2 Oe)M`-NialQ5O68My2ZSegy#J'/P+7zӳ6Uhn$( WJWѻ'#M5GkJYEL^fF 6< -iZpBZk7ۘ;}Gc9Ns$ Nxcik'V8o38m ]~qI^f<-{JN;q\qHw}$W-WjgN387,$X"wh\S?^hUu"<5'Aԩ^:]) upNƫDoa(vU:rۣ>3VENֲ"-" wP$G]-O/[_\"(Fi;j(k>}sٟa[ 7{m>}O˾O}y?pZT4}3_8~zpo`'s!g{ d/5,opW~7'~wXyvs$NaR-p7yȁvsm8 "%hm%e%*8 WBgbkR巁4LuFs&)2,E V(v䧃~'jh {^Ԓ*&_}g } ׁ^0 0pp+שM 0 L}\3|{0M6,OK= a}f]6}ƾ ̈́,NȲoN6@M~M6޳^2gM}]خ< NMNNʾ;4Ϋ,{.%?\.pٛ|Ƒ~$+393_ТTh ;<>6;`mao7>0۷N30-| U?޸cSd/ m;pڃ=7=z?  O6͠g#OQR-NՒl޼ܠ]`͏ Oz=y{Md.f׺on.|%| n_.OO9p8<Ò ~[ٯK2Y2&/^H\t(PA"J!Sپ ZIШ$ ]}₰;/e묟-4h1tI'蜀śQ& :fh dɓ|9=w5ަA$VU 3x5PÏ4 7p{|BH>=z^Hn[VSms7\D~ܧ'a2j6|87)ѫS 5^% . s#0ƺ& p6e,DD/(xaM;$ŋRxN#üU|-? #R"& ИŊB!/ (RJ-@: oC.k&R 7b:)*͌8eLiȑAL 3 MTQ' hG!TI)K1TM9OA UQI-SQMUUYmWaUYi[qU]y_ V[;copterbomber_splash.jpg000066400000000000000000000064241263163240400415420ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky!Adobed $$-##-*#""#*8000008B;;;;;;BBBBBBBBBBBBBBBBBBBBBBBBBBBBB##1##1@1''1@B@<0<@BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBvd"!1"#23!1AQaq"2BRbr#3C s !1A"Qaq2BRb#3 _" KGf!&U0j8m?MܬԞ]Q{-G>^&Of 14׭=]ۨmDؘl"U̼͸=RlVɦi n0ݲl:'Cf|n[5zf&dNaL9\׮hw4o&VRTc)?Q1k jݯվ6S>Nٵ,bFۅ3xE\^YQ :4%6_ ޒVIi_r !j̯_gJ}_UhiOYd\8896-[ ZkjSeFa_G6wysvkϲ;$Tvb|gRn挽ҵb_Л` +I %H6UMKKOe.(N]_Z`3nC?j]ֵ7>oaN%:3/e J6LjZb5)>l+f_}$f*l.l>DžYmyq|\)o 3?o5?F*5nR q;a뾘(NEP*<)>cUZm&5軩&[ODٺC]RE &dܩ !ȶ`FQ4Ԭ 6Օ4Kz3A ۀ9EB%_Qw؟ǧe)&/EÇfwӆׂX/,y?R«(;CqzUW[K*G<P?<)F[XPƹRT!Od$2@l`L*ך\kU޵|(珪z Z)uE6ѭrd:7eeZWfq04sZ$&b}hr:旵MH[6 BСҭ;+~m2 RoX*/rV<5|GRwAvwبyWXx+} 7Q4sѠ5@Aѣt\0TŞ_3g|* 66RW~5`w$Rp*JаJ3$\n.U'h l-zkCjL8&G? xAcUc 9V{`;ъwvG։P %P'5&T۴tk 9\mqݷh*Lzk>s,&!g NnKm+:[&̚h0AExeu@-O] .SxMWa]90 0p Ar5&ZFP,.iW$6sXWVz9V 47 )gPa<^VQbx|6M^r xrca@$H̥8|Wā:H0hOZŨbtq16V }L6&!/dap@ 7``ݡ,D <[P#OB& 9! 0@2g@C@pR OC; O=a2T@Xt8LK= #aHCڑ,cj!'`=X\ (ǚr#C Ļ.(N// `N cӧB`xCX/;f"T>m`~DdyO 0"0*l⦬@N?S+bC >'J %!ziMӝԧ?K:3s tع&6LVu TeFvX83R-015z ea6ya; W =wZ4{ڔYY!J SVX{$ T6˦&A9(fZ;@-Ҋ9/):E*430Ƕ3B\+(iI$ЛTm 4UA2pyM$pSQ4x8u0v|=*U#7/hQ8C{T|( !@B\Qx>8 ;Fe#2}YadD %Tĥ0쁞= 4P21\/W U!*m hOGw\J4b~%؀l%l .<ұ@ߖ+Mel duNg p`Jh0])LW#AXE GH@>y- p.*RMlL+q@ yzt6hhSY_y֗@WzBp2v胩%:1ەcZxet زPn $:y@ W[r+I(iJ35Vms)k|r[9 7)_"fFS \jnhG &0k#䜰B-|x;4)0fdz)/{ Ͻ+J`ij: QW-V*5lIPX//$gd z8q+ty؏'{+n ;qG˹+}>S=mc_=CmLC3AqvE{ Tڔz'HVi|gvnj`}I@nlFlHg|&r'an}FmFׂrL@Qi]kpzxx@'{)Njj_{rVn nsŖt)d|Hg}(pYi∔Qq7ٍEyzjTk|c6f*gXidy֝7?džyLչ dԉ ?YM} RY)cYpmpI0M8xrXfs.)Y^ɏyuW#g)Ǟe/lQf-ZiȞ֙Q6ʓP?7^Ry/VNڢvx>:mx.0YuNx'g';y'\l hXk(ygǜ^ʈ;*Wy}:LEiʢ՟}Ƈs6i)gtDȣnɩ3XFwYF YYl|SjǤvDzP`wQwǫ} š:ĊWfڬi5JweT}vXH0yIPFXvuJ6$8ʇW3`w**XJIe<:^0pF䪟Yzz8Zldd۪{v N y`rFjܺTбzȓ_yGe"/AlYqYUrLݺhLj 8k2 ytwUքk;sq;zuL=l:W\j G†iudˤ@{S)gXXWX؍G:p /䚓l+EAW{[d7Dj}xhF۹vh+nɴ9Xּ m+ Dalg;;Px]&|Gy9ciKF6y p;wʵUW@;{+yY`$5Xފi]k+yB{\+lnr.WfwQ\Ü(qgv6\[egdU{,ܢڳ(eX)2^J!:{k%/FۉKaW 駀ZHŕ.g+,fxۙo~f$ pOWe`;[7;+XQLٱn ˛(~llS):]sbQrBjF3 h{NXeHn{-!?x >f?^Yˏ c*J6SO5\Vpsٹ 5i_<ک&O}9h?f]&5P5dar}x1x O>~zLFQ+!őމX&YyDHzyJlg  *YCe ~ FbZ[kU0J5hw؉7VdTy0qL<'Rgΰ~pEڴe&m.{coɆ%B0Xԟgs[. 4l: {va@E#NzX{uz&p8NǒT2hNlD>1&8M,Lijip<g@Wutd6|48h8`|xH^hPdY,5&]E~Dd`@z=-ruq64`p8;la4044T`xLmwvnh`m vn86jh Cf(RԜXɱr$V(6[,T ϟ>Mه-CLKb ɕLVd 8Wh@ad" ;(QĊ#M!Kl1·r \rx+0 m"!S ~КP[UnajD__6W;cqjIH-i Y1NxCI|, M]xۀ`;AβKcɁԨ q/nGH?,5j,Då?Ȑ x! iKppz9 nXA[.NT0Fք FG`*70q]d#n$@I BN8PQd>\ F<5ƀR8&;"HWS,AXKfȀ ldPQ\#I~pV gp;@_* <ˢ߅l@ %x >"ݧoe\[L @| |B Bl;톋dÇO"1?~kjZĀDvn !JZ҈KuFi4@"O+d@Upj^G"KDF>a>vHlmk\UE*hF3:ڀ3 ?y  i`'θN[:8xST2gR NIE218x9ujEq#9 Sxj@rxcZaXoP'GSm@|(VXLc(G6*d&.It|@@&zn^U8*\ , ijgtfTY z͕1:U> Y#(E %[-)XF/X&*ӅG%U\3Y4\,Z% hiߒծHXOĶ, !nU? S)SYT\uxȂN'bSjȂS8Ebٲ.mQTA6EkIjв=&w:_P2F˔fwPXN 0#5ȫY8،JZ5~ZLeKRwZVIiX ݬ5 75´ A66@s9+0 B"խ"8v FmB]YR@8bTK5b:6qu ߷ U(k 0Vvw ΀|2Vvݴ!4q {1:`ws;pGi՞]'{ 3bvg fWydKIqmt v;drunkman_scr2.gif000066400000000000000000000216661263163240400402470ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a3,ўgpR\K"ʗk hbXb$$ƹşaʵ`=}m R6A q(1yaޭ!,`dihxt,[U[͂Ȥrl"E0Yq G_pctϫzn:ݼOvpADqq , u8Vx|}~B:EJ )4R379=CA * %SW|x_dp˭в1 Bـ\{|l.]-\b0a*U4.@jhՃ\z~a 16a4XFLC2a鳧.= 3YT[A<*١M\e3(AvYRf&:%v!l %8t Gzb -m ڈjy:$td`\/>b5GLPerYSb2ݖ16[W+|G4 6=o=H & ٗZ2"9|uaK≏M> ,LGN` L M%2h 0@wV_u83X*Μ6z>0.Q@tUx3@ Y~ѓnd1 *&@ HVU vxi*yT4L-06qS<C̅ŎzUh]B(BFjO^CpF&yfQYe $`\{C@#d^BTqC>@6\\lB9+^a,`|U;>sԫWP6b!@#u6_{U`K;*(Y9sf6FD)y&pſ`ܝxuB, 1a %Jr:x1Sqc덿@]f7@i( /RII1A_,PLizc, 9P ׽?fF>BBo V\ 'x`b ƝD1t2@|zv"pD36o}!]v 9@H!uѱ`4'b.L(  D͚h `8٪iGx9@wyfտloфѾHPtTU u`Y/1sw6Ǫ;z?Tls}t=c=zAKq a/* pp̏*CXFֳ ]UL! Whbm7cx$ q$6PALPƷ8pzTv:(B +ݵDqqtx) [ghpfxQE0asK70F2Bqd?=( &ckv 2q[t` c\rz]:hوЁ?lJ8s؆6%u J}[F<%$Qt l 7sE-R .pƪٴC#7'&A*2CٯἙ%cxR\[営حc ;Y@[o "SE/dsE;⨠V"+M7Pps5kEf? }a?0',Eب&S2;5+غ֞I 6W&$SQyJl sݍtZ)ň "\Wr_Fn@ hk&& z[Ƃ*B~jE1g~CPs%eѳ/BSP@}2 d" RT)9:ʳˁs̄da`U[>mKAt$O.OLptOz'Վg—nM 8`  \]&dF2YzmajjWN9.-#bˑ)wR!׷y`@xAFځ0J*v&0ǔL/p[52n:JEQ'qʗ¸gxtնv*K" 65+QgVg΁t_T-8ȶȄGL#)䰅$'63+2gNR<= k{X%ͱqE _#[9>S|}F%jiբfbyT2؞skd>P  ħH)aSڝnǬ+!G{ҚZOCqWSӴ 6=mʜ SN~.8\0 xNHi [428c2;lNjeiTNp1=q+iigf3Ui/:4f|-UI)jN3`a*EeqDdyB6`p!D>8FaP{FY4u81H!{7+7;NS+P+8B2lV06/D4<5gR&vR|'ETF8S%BQ>HVIu3( +_iJv|N r 0#c=`>]Ĉ&0gTXV~R^ tRYFA0 _!)]JQ#C:O2}}XtVxƃiv2 |CWZNm920Y@4F#VrmL"{Slnߒ#<{Pt9| t.%ȉ"S4fvTBٓ3D98#iו{Y;*ДKX1c@P]6#`8B)W,MC, .MMoQPiQiäY8T9ae>UyaU 0^=9`fi\xR_9fI6P,Ƙ7́  PU"Д0`$!PyPQ zCy+~L.YygI Kٔ ™w)!R ٜ8>ԙB 2 `PYcz`qy7'cJ y):Q;UȱUI  ty` P5Ac?Jx|S I)i*j. jZj p٥Y \U=աXI0&#o@b #  Pq~@ZAHK_Iz9JЖp6)caCdʸuʧɞX:ZI!LtWgW:KE4L P٠8 I}JP u)*ؓi/UTa4ȧ HPZy#wеaq*9 js*Xsc PT<LJFӧb] H8`lVOɡ"ivg82 .D&My$aE>U;z;MDLM^Y*{ w&߻s#|V.ߊQK#a#seg8BN Q?TA#L#^فx< :V:)(;Tt]쌉h7ld7zfP+x3,za;9N֎P[[*m 73?J>L}4jO_}DnrtKNmINj81$հ -m$uYԎs^WJj9mkENKf!O-"Rn0|ZUPzז%=7{&eRd轒&[TZߋ^ou(^hg=TZeޞeUPI\ùߧ[[HQQͻK/\uL.5j@`S1+XAPم92 ?UR?ޠdN LeP<n~mT,SYT>8οU Ы n8RUcMLt5׹Oy >l_P='0 ZmXbD !QQHD$mzDLXXAC,=UT~ "xhh YY1qF hL!eem} ]IPiE&+'><8T88f8nDdF~+mpVFvXazӾ٥ 2g@<"35J4d԰6dHeCQ>̕:EH@Uz! ,7yE玄 *{СD9Xh¶4:#dKF^)+[血X.d/`,J8tv jHTT5 #;a`x)ģSMY$Q+ZN[,zn~-D1R; t jԎWMeBRUWbl6t-9KÃw5F0t(a"/F?r&(ylk̫ͣ˗-HA\UZ48Q*Uc(UIݰS *)d#M1# \lmG4'TC"8b]RBRXrAF4zZ |,i6Z`4P^Ed1AC zA}lãCݙPxbCz@<fՅahnhV\1fdݓ.C6h&\'CM̜;g-@]^{"!8A Zʖ+qЊ[Ǎ&e1c5rP:6cP8R@$Xȓد9qa8A(|Wү{+}劗\db-  ]zǎPψ3PTI &1%{vIJ˪ ZeaKn׈$0fCmp"W>.1k. q$_W0U"r-چ1+. iΌ } }}3R͇]k &r(9@ߔh0ԑE7V>ÈZrƀ>l l$q^d׾](+"W}c?{!022UjVŇ(1@yq]L0^!%q?>ޘ,CÜ`ƾ# Σ7د\Vl@?9JRp}Q(1!r1 ]ii81C͖h&0T"Ҽg; e8Z"&0 q\ЀpLRIp(/s.BTAγl:(_P80F/1bܢЀa p$U;R`Nc,dHR4#պr`y>+mECC_J$%fR{,A}郥`.qqbd}N_ZҒq @R~ Fٲ$K>CfHa[r3T';IFIӌOHn7+#֐q|XjOfFlqՌHvgTô *N{qy EMC(E.T:](mèBщLYԹ/DdvPAL5Gu!'t,IN1(HॕJaMm-A wZ(QYS`dAD'HP$lĆ_}Ye EH^" e&̳"Pz*T/`hΚ #?m$W"n؝ x ^]z˼qU?6GxWi%F#ٟH/Pa#_23OK^ux Q _z"Ӕjq!$ ؈Xb$A`T `R$Cmǩ67OD]߹e5%Xևf&rHؽ+hy&/; hR29',b"Qv :>_@@L'^BHxah;#yi|x,%)ȱ1Ѐx#Zs?B nN`yfBcрOJ.1pj; 9Tdj텾晷 O?AKe\}钱|;)gP{B:uz{߳@1=F<ľn 8"P{p?;{zuNHT_2خx AN~aIOO(Iw퓆 GH^6DņmM}Y*}x͛mVE!<51Et֘N;|]d@bX]۵Z d&ZMYka9:I5y@F̕m<BiB ]Ġ] ]%@\ڄ_AiT dI_d@8Ix1Xɚxéރ虑N ۽mmaeAXW> 4h@zIE"&p A4JY#6 j$ tBT(FFP7\^AĕM%5#| @dA&4@B~@B&1 2d<C.Py:*(>.WXI꣤I`\9)?_MM^FA(NOdQf@XOAĆ#cGj ! y]BYax^&$ge[[$OT*$d\R& %RF%`ۛ "C9'cccBcNC\B^&ae*NeeOZ^Qg55a8` L* 1Nm[ 5*&n1hNLYY5۝r~h&RvGl,Y& `@&4j˯ hY&e"'PpfDgD|1݀Waէ-@3'ƅ~HY 5 窡j\4J(fڅbhjrhzZ;drunkman_scr3.gif000066400000000000000000000167471263163240400402540ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aiѯ! vRYĴ QRamlO6)Z>~섅>7ލ !,`dihl{HQ<^ 0))>$rlP)T\& :x| cuY;v{]`vx@E$2;>>129]8+fH 4;< b|\8_^<##>B}83\]|ک01ӱ<)ܤ97TJؗd 5A4I{ f)~ ԇQXd*"ɫ'oڽ|%_ 8)v TB1(5~(&~7i闖`ȅt'CIDHNƫ$) s4-hYQ$O6fQu+dJ#xo_$'^( Y"w%2-<尰otZ k*MU;4Yy眡 !orw$G~4آaƠDbYr&*N2 x%M:dc_p4),3EA!=@@8v"[Wa%Ո4Ӽrmh"di=@9pK(HM{471Qt~Y`A{" nN@M9e-Q#jcM4⧁TA~a`iB G#~-E2ꂀ/()C0d*H"HSc5R⁡8c\0i(Jqibhk]jHFJ7 *{yjaH9:q(I#'*>#8*Y hV$(U1$cq(H)0,^""W! oWq,$D(νL vJPW &,+kP :ʚE Oxd`{@0\AUd1'm!:V፺͒_8v v 3$mfa_uu HzPp#Y}=Epž]W+P*K7 9C@*A#A|[O@A>ŀjIHJ]o@/?LZk]٤ k RQ.n *3>3J0y ..$?X\ ܑ80C5pAU D9-d  D"^ʈC+!(` EPTʁ <ӠD>eepThKDaDZ r+[DlwC 8>YE;@Г/ wYj5uQ XG]/է8(\$LQ% XJG!`*iK)|a8  `E+Y  \ۈ\ ϔeYM\z4Ћ|?X7Yas HҒe,(`'w1"Vs,rAJ &l\GX@J4jB,sy-An4`@rEN npv[֥8f}3`ϛ[0"!nWy˫5' :qCbtn"$^B$AT M]W@3Dͨ 6Eőu_"4 h` N*`ܤZU8N`kXr*ذ  kb]mzWɫ$R.(&>/xDS/0G!_r.`˝b h opEQ%s(ȡJUr5Ht_+/A- PU߲ѣuDU7^IC) 3qny˅Cmy Vѯ($4rl\ xJU0 Xix2kX5x"NmhN`բYA6 sp 4@ ж`K[I5g[l0r(6bȁ@$pFW~hcHֵsb n 55P Hy!ωJMpM ^y GQ׾.;R`7Ͷ%T? Oazg!ˋO"aޙh, x~ם^_T1!L}fbb+n_;${ ݺh2.2jȇ//SnANɣ*\Tzym)K#m"[ͬ72rQ)w;О5~o ]O~~K5@~@rVyh]jg] S)?2OSJ~as(yyS{tg]D5& E!2r"k` sP]wA~`dP2<*r9w,m0ELd@pS]uW s6x#^pgă>hL%XiR?gxDpdx pipwC_M.~hyZągC]ĉ~v Pe8s0u2fD+ qzXr*W?3w- `iy`] $qôLxt& p8qE׊n1mk=.$h\.'{wwS'$P5k0A#n2&BHD]Xi]tkX|8pw7=2+;`QEC腩"b؈'iy5Iw<4yICIW f$^dgI8s''lipDy\Y dwI nw7~i(Th-"Au)R;^g]gIjwj1$ҘՐ*0nؤXu9Y`tͩyR9 nK).֕CTUt٨]jw痾=9B7 ȏj0(H(0SYw~{OCdE fC /}x;* %!iÏyoꟳ3צ4 lI>/Uئ\Eȧy72Xvƫ #y}zkާyAzOl:,h  xz UTgyۡ{vGgig8ʦk J ұz.X2wW89uPp`${K:;nFHZ .dyl{Mk9_1 l5mïȏJEȵ^yE |MYkZwɶ_qaC6ڱ᪊k'uE{M NY7?! Ī0IZKiHXKcۖ S9/t' ŠH਷]۳mh9 Ng CJgM(nFhpMIpػ‘#M;{j9{(xw5z wi(KAjZ׾6 z*kSDԨ{e:/HHj}d(g*WyÄȷt{ږ t8n 0A!1jw[M@H?XgH+A:nj3r?t{ۤh؄LZk< |g]i@֋L?hgHcKMСrLph3 𲒌G\?M?Jp!exwM Ӕ{c 0 a R,k\?eh`[]Lir??iH3-E.1T ;ۯB+jjΨ¨;8`n2 |={̂XsĵꂬllJ1"JgڳvGgJ]\ak`b2?z[=s60?ȱM(*. c*X^zд; ye$G6;]Ҵ Pp$}lNGHDXRLq2Kڗ+?ჸyQR]‡\m.Ƿ\J&؉JS~|۵xe(\n|c>uW­.nEߪAS8R{F<{|N#NGNsnPnvnxOeZuSoC3 y*LX1HZnV8.= Kj⧨^wT\ȨO ZH6s% e]ʠx]> TL6=ܾoUe.j6B K){]<΋4t $S0o10Elq:>𼗼[ڵhB5[g6[354$o.(IpjrF;7Nzm~PX;S0^r# ZD˞ fX%;1Nm[:HR*Q)]S:#Y 9L(YE22u3M.++u$R1O[+o7El Jy9p{x"w#Q nswO խܭ=C!DXHg@e,(D S!( >1eA$ Vtc^FH3ޥK-wB@A>4XiA9.a=cfԸC7݃Vt40zbF 8@ခ "_Yh8%4\h2n MI"̷S"N3y@)A (c2ԪTk w0d?]``oϾs7(L D V/3'=u^ܷK ).0gn`py>v-Lp_ӷhrQح){eqeXƟsQ`qn]sAwb^ɵJ^]l4vrY@06Fd eA=k%XZ~pAAȞ(nQOj U矅Gh*M9kDyjX~`d|AihXbElw6F ٩U)9鏒7UW)68^uD^`bURzNfVY 9t2[)v\y:wY`A{7DeѥkձXz4ؖvԾUf{Dj\쪩VX]WFcPLTbk!p@UlpR܄LL j nmW}]0G Wߥ 5r;qr"ܰ\͟QVӆΜZ]RMPZi{z>e@BGKt;\uUƱSkGXٮQE Voq-Ƨ;a;:e*@܍x-*xױ~ @k?@܌q`澘"sՔ"5JwL a*ӊ۲FAr Z}m[@3 *D ןKy *C Ƈ`tU%+{qs}#lHh##06g^& h :TlF>91N# j0)ğ LpTjV'kǫ*+(BR 0qDPgMaPjEfdjz| WQd+ O #,S lbkc Y_t\cvF3TP /,%~*Nh&yr?$ H`P`T'[ܺNNnV4 C-oxsZ(@>bEwM/~Pi9rɥL.c)T"Fw<`3|Zb `e"Z>>>Nv JS'0g@.YoFAQ%)8Xӧn |4 BWͦa@6,Bp,f9p@UhճYݪd>vQG^̣ʣfc: xp۔ߊֳEgR-Ұ#v$dPY>t(RX7 `8JB{̦ l"]jg<bQxړM)p|% m/Րv֜k KSh;drunkman_splash.jpg000077500000000000000000000146601263163240400407020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFHHC     C   cd  XݼL\%«(g؈=4矛Ⱦp5^SȱԋCl 4U>]ڰJEUc"KcΛyR8RR&B@!KYS&X v3 dGYKQ)|Ise⡧׺cI+$5ĻSPv̳ a8Rb|"ZO'K V%aRj-&p[bt=,h"_3 EX"{+֔k6tp"]uZzTQ`k/"eYʵ~%SfZV;wuuPT'qo%+0'ղC-MZ D\Ʊ 9])t9Aҥ|4#`/o`*E`ʭg1 N+fQqCpxL1PUT u'S>WN?ςpVn~@YWGE]'u}| +< 9TkS7irUw3?*g3%sKWe.M;WAF9p^!=kY/ÔUo6BPeWMǵoi*y7tCFjD]M.ݽu$riBq†aZqTZ)N%Z[kK]$\r酱]SB%ITaT1*ҟ3(j*+–G~Tẃ@QɔhostV+|n/Uȭ*G#4.WvUM qsSX].Y i$O#c u\:X9ԯT)Ê>p 0EDhaU PU1rm)UuIT)!"1 #A2Q$35?]#9YM]/7 bet| jWG[Xlij&e-Kw(ϫ{[55b j:|X*^e 3BRJߩE]mv6OLӶSV?SvϡZ%gzxݘ=^ӷ8 ʃį4VGc33Ue+!87]atUڡ~ f,>PQw7|WWN~ߑ>Ls̭7h0!vM n)өA4aBŽKuW"N`Ժ/uQ_R%iҿr5 9v%tT2gl2"3X^k#e$9BM)cyV"ļ =  !"1AQ#2BRacqr Cb$3Ss?_7΂;9zHgE*Q}XW-$S:tY0JúפYv׮:M˿%[}Li3Q\M*pȦ 4ziX)\88o Jܖ)SΖ!y Qюkiy>"/mGuW^  w0o6mSywl  5TMZ^ ֭#V>ϕ*ҏ֋5'aȊgѣ'n~j&3͊Zqks 0# *њxS &gZA[($JP?Z; LRx~[9W6iy7ժ!|˽;I%g3$-E{Uq5$b߭O1]pgߊ PG&v-q"G3[nYFFj=:zVUڝ+"ktIc#x}Wkt @UP6jBNW)ip$.֡Kqʽp][[=Zu2{F5H]2m$-DٟxԉFZ1ۨ)Gcx$p u'8QmMȵ^ ۫Ŭ>pG>1TiZdhKPA:9bXv2{#\VŷY|kt!Վ2H2N8ʒf6:jW\-گXA8# OuGQ93Km*7mհQ N~O&!1AQaq ?!Gm-U1`C>Pc7,l.Ԗi~cwyoxs (ǸP1hQZeZ ͣV f.PeJX;ݍ0m( 5p6P 3Ⱥsl&Mk}c80"իiԿ9.(ȞiF+X?P}͛2 ; Wx51}fc_ih7-8;JH>6*W,WgBr94$F٭|+|KoMGK?r2&Z^哥@| t3-z3O/D-6qKAg(#Q@/QzLW S Mمo kyϐL\PT_3bVո[`siL_0s&|٩)krKҸ( ǡ)|51y%]6m.7qVC!Q8 ֮O.2/(4))G'Bݳ_21&0,w; {XLnM}|39c+ (4̏VD⎲O<{\&;BK#1ɤ X@_88? WD0{[:!O%fs5$tI"k*A}˿%!1AaQqс ?.M = 9,W%}2ڤ̗R5- nKpmX]!ߘ L\6G$:^ Ԃ j_E^'i}1Ia9,ܠdܙYKσ#cuZpfEQQ<ԆZs 4=,G>H6JKĨ{2f"Wh4S#4uep]⍁Z`vƎwWp0RRtF; OF|̦ёv+Rmtn\.BRxd)! =ƨX^ůr -- 5gxCH;;AHPf'?n4\#Ds=e(̾.M51E/5>1bqڱ=('(nԽ?ߜ)B/ r45p;LH]=5Cw!COZsJ3ߞA*G}N%AQV < ꅭK^x=gNpKQg\ ҤAjUg`6qqNXP (7-$09qПÑ}>4V>& ^'#V ڵ<",-fZ.4=79v5ƞˇ4p\}݁AkT8T9wv u)0P] 搆ۦQ3q38PWg>a3"$EWhs 6!M(e2 >ͫ:d7 71M" e.5"b38n@Q8#r1JKv-;Iv6 {UjB_Dk5ֳT=/ uQsâ^A4C;)݂p h(/Cgfiringline_scr1.gif000066400000000000000000000123261263163240400405460ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a (!50$(:Is.K E+.L8:d]8AU%Bo-Ft;FifAP1GJXEGhHKrMQgMQuRLfPMvTWhVXv\`_\as`__c[qefkegxnpolqzsdmtjxuuz%.7$  );1$ G UGPM \Y gjsubkzs3H2V9q2nL }.~XZLYZjQq`^egjkjrmsrkrmuwvxrxZbq~}711{hߔMT`cۼthxl ;xlg}dpXP{D|AǣξtۭOCA8p`p^Z4pO%tnU[fAD~UoG^ h@tP@B)h"BY@0[v34nAq8P'(om\/Y3S4X=V#jA*vޖaF&@55uUT3]Q>f xgrVYe6vW ZX:!"BRNhW:JJ@F:`WBszUcIhD8M;b#XJ>@:y[&Z=2l}vGAR4qS`6j㊛%筛rVI/=ko,Z@6#%HNjG,WlKԁiN[(,pǀecv.F6%@-46 H@mTWmeXgsҒM/ MVrhcӋqzdj7@4?ތ7n-Ў\-8 8Ў.8K~)6f!矏.bݹ@82nڰ'|Ϲ/9NB @?s=B;[/Yw@B C|9 0miz9_BdȽL'Hm\Ȓr5p! ?xn;a Ѕ}3 8C7a `:J`Z&;!{<ľ51q"H(>#쥮+-(]iט%} "1Nۜ+>N$7(=5gn9AS#7iA0Tȫi1&5P"0nE$%Er.\Jx1z,]o\d9}rbXAGK&u9œf`3 f1iJrj͙[:@ygPV׺a.D>;O!T\H;{o#B=TZXPrih@# ;nԇ%(i#fjCJW6Otu?#9pNӦ7] % @yzT:0uc:gwTʼFHB=@vh@o[k@Wxūꃽ6+ jN$%ߌDEb(n iUu,`5w+^JWЅ2(|؅ pD^55ln[?A]sڹ|j6S%%s-z7m][Wʵ5Hn &Vj4ct/m}ˮ]5\i@VlO(13t-_\k\Җg(o& v@\H|)a+%8k~;[{JXGhW_6'1 /|bXU)Mw-i=XBݫ]wPflawQƗ6jZΣ]sמ>KTE@M6؎3l}ɬ;~/y J񊟰DX;lшF^xŜp$\4-2` *^{OϺm^0;a7[VxNv0{?V, og2\> UNW܏.;Bw<=9gNB >w~uvGnW [wZ7GT݆6sxe 7hweWWz(yVy4Gi1zAQMI5-^kݣDWfTgEw[6W]xZq㇂UJ(oX}˶uzuh}WW^U}H|Ss3Ȃ4?ZvUlct=75ZF"1LX%^XfV:Kwtghmm&EQJ#~xq>(`z&\էŁcYXux8_x|sxԉ[8XV> dՋhtr{hXa(ZmiX;imjEdU٘f{X%7|XR1$@Zn?@fFduxt;4m}E>?=t%XpU}6i?(5!aOPFd6fXj:yݣP/y3K]͸( 7WՎp޵^=OфZ`sM7Cj9^SubnYW4PPՏ|ңi[?:UU09 1X.1D)~$;5Huvي01EyJ =˳I50MIOiyY9N5-ӗdi@>?R9_x2Pyӏ?ٞi7I/uRɟ;P}Pi  1RJA-S2Ex.{7+VA/:A:74V; @:A9DJCJ BJyGmEӣG-[ qh0d#u8:NRڞI lڦ1&ԟIc BejAC)#Цʦ FjdEuEqHC 4GHZESdES ʦpV!ة`E*ELD9# BQ@HC1TC3$ m h0zC%>6w:7MJ i.eC21hv>MKu2-5۵븐EFM㪖kQd## .[ ƳD' 8(j6-hs ːhS67(kNI'S7Y[8- 'GJ8U:U#YP \[: 9+(c싆3(+ASˀ 372-?Z4R?v3**b$|:R+ p Y X,,L*)(uP#0R4ҤZC+##';,O,,Q <ǐ Q,2,a\,"eL2],J3(1UD3 0/t/u|2:pp j/.RȈ.Ԣ]1cR '"0K) 0|4|F͚@!ۂ-K# L% "fGJXEGhHKrMQgDWsRLfPMvTWhVXw\`_Taw`__c[qefkegxnpolqzsdmtjxuvz%.7$  #61$ G UGPM \Y gjsubkzs6H2V9q2nL }9Y.~Z[LYZkQn`^egjkjrhxrkrmuwvxrxZybqJ~}711OX@l!I J+œ}Z&O!©D:" U U6eħ6F) ;T; X!O@:"&씞~U=)-* zN0|YDfl5lH&CfCIPϓd&w`[Tjpa2!@.;jV}4Z&WqDffw<4hv:R!PGj銰[Xy Mh5SG iTd dT9zI=b3 JҒZSK !}b $! ɍr,!9>*>j5-ԣ.թMݥzӏ*Ox,eKgUӕh4Y>gdZֶ͊խl$OuO?&ZObY6҂xMb90x;ZWxs|U8gQsLxjҚ6SMY)<|"\E lx#iwKҜ`c^kfJ2m 0f3tOJEVfWԳ~+ϲNW-(Kf2ǵh2M5W3sx1dosBS-!\2+4sg<4ujZ~-|ٿֶUNbؤb Ͻ6pLd9N, Xf׋ǕWg](/XK4T*c-gA1`e&ќtb̲5,D8ɱ1=o{e?%٫θ5 3rR[0ԍV#}V4RE{Ⱦ@l/iMC\l׶sF_{ h@/H7 ֝v1ڽn.8EC;D4o}9e;6{97;4Pwmo{ f<Eu-p[_vk}ek 8w_`owg5Apnk9HwtXyl,aN>Ń O]Uj[9|5]vJ˘pvÿi[]{.yIxp|Y&껱j|1|n2g7 KOD|z~W0 Νsx{Wo9@~tT"<<_z/P'RFԇYgyuyZgsSbgUNXU@p3wXo8s>won5s~Gsywq"rk'8 tcM4Q|wc$Ukj}gsX5疁4pw F9 HJp s=O~Q9U4GY8hngwfaXXy5u"(I.f`Ihׄ&;rHSq9pWhGeo{nDHdsUDHCeP8 qtHg-{膓PIdԗ}ֈ6=s}y&XV ށSŘW.fCk(Sg0hdPY{q6}xqPp@GPȉa`VQmxj`bP [a yx&s/py0CɎ ?@KQ(.+@PT1N3郍wgVy:ׅ=nX0Dqh`O< gHS) '|79h]No/{:Gs\|y@p0`9qK<]Ui2S4aoG?6Y{U`yyYhPi ?X0 T. ?sܷ9АW9Is}8i9өIt͈Dp iw8Űy ِAgq0 ItY09i֚zE*d@ TxǍi)ט%tnh|.~yC.z9YMU@q99e98s\n.@СqizxaV4*@0 XjNyw`oaX iJs: GZ9vZP@ $7@$3X9 IDne7I{ʡnMjzIt(w42 D NZyG6}8`60 0qI[v YEjMy {ZyZߚDG{ GZq3/gfkDɩqq*jBsM%KiEUMyw~NgI\Jk6fkpy8mS|MyLhf#G%[wY{c3 bLuĊV=\M lf#6l9'ګH |[,kM`gcIYYFu%,iry<}I4cmY\%U]l^KؤtiNt gx*Dt$C:ecjD;zl!ɬCEKpC:ɟBli٤zgGt|nGYIdbVK)K9xOw>;Κc|M̆\ y|zl}d}>Gb M VqhMK7>í]Lqт|%pK]Fm}6-NDZT` T@ĉ LgMM*%E{ }]ƠՀ@a^c-\r̰kѥ5Z#h\׀Ơ؀] pş 6\VKْڪM? Xԅt%0@=KN!5ͶtXXQKة-ZT%rUQR-LRMU_WVz}]ީ^`չ'ݭP eiQTLP|=ޒ pa Taн [KayNEg$4ޙ-ڽQ}P!ZO^,v,.V]}P6> ` 8VP4=-UV2y]ONQ.ٔsKԗ|J*ݶʓO`,Fxm ưXR>~\[ZȪ'! BX4Knf:m bȍ$?vRnRJNF^pR׏Mݢ*2NHD.땍O.^:a elhB.@ŕ;M>FQᷮ钝ЄMg$2e\}:sCg5aH.> [= :BI:9 %.kΔd$Q!` |=-i5eg#7Rk&zP.:&C]/׎4k'b@E-@ % /I`<(p` |.mOTfӃ4%B^eAOao VU4B> UP\er Π 3[) P p.4?O`U֓/PoP*o43Td = * Pΰ/3_v/[ L A!aR͜2/t2Y&\ö]ܰU"Eap?M=ըJ {!H` d9Gu&ݺP%3@TpAS ԡBu(L2@xl[-b"P4֡&sb%jFFAR*F A'=$bIc8C6HdutQѬ)sL1Z"Q+Q@\nK<)'.u\D 5)ODUtQFD4'ZSla/%G2zҤTg`iA?uUXcuVΌT1ƟX#c6Zy%USY?OEտgUlv[n[B9t_0ZkRME~}q^x`ײ`0R]%oX€Y3~?@[odGWcSVyec HkF&ޒ{&@=>E6h|Vzdi$%6]&`^zll&\Ro((Ѝ_'4 .;firingline_scr3.gif000066400000000000000000000123041263163240400405440ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a (!5)$(:Hs.K E+.L/1`1/`8:d18s8AU%Bo-Ft;FifGJXEGhHKrMQgMQuRLfPMvTWhVXv\`_\as`__c[qefkegxnpolqzsdmtjxuuz%.7 $  );1$ G UGPM \Y gjsubkzs5F2V2nL }.~WZLYYiRr`^egjkjrmsrkrmuwvxrxIpbq~}711+IJqj^{&iiW}_C!n ov Uv*\ڔuh8hIhQe!{paS!dN6IQdPNYoOrIiLJ#U~;TA 眖9̀YCX1O4{C8ļeM_b F0nF@^'pmsßR y/avw"{ xtl/=`g*jnwKaʦ=kGIXE*b1!/oFF2ZrHm"|Qnyu," 2z b<7(dH+qyiX#-8! k`8I %-7UjiYR@.`:n+/p]ֲ\(Hr ܃D$T@d6h`'4YD-rm\b B ʉ, g4B|gTI@PpCҫU\2j=(:AVR]wphNw nLqPPGAz#$M˚V! vib`Z:KMgI "kK]h0l\k@ծ>Z5\cՕ$^uX;B@dIDp Y4]kBrzSR\cY,>Yxշk\ W*jյ'jEyrQ"+  oQ Wڵ-y\=p勮0%9: enշ,\gڜaB1&Uj}v[LZV_E/rKրj-XD2 @";Y3lj<ľ;bioL<Ddigr%0AhxĀEa_Yv.*C w Xpn xPfԬW{`|l3|5尗*<.beQKӗMcد> .rW@C0sC$3xɐ.U~XJhw5g>렿lυ`ViF`Ys ]߻@;w0b|-_MtIl>2ߎYH'/۟05@7ZUԧA0vLof"脩ٕ}I ro z%pGɾ.a~mjg[ۀn:o4yJ{AojeWA>ƯC g,.rAڃyA0X Ŀ9]=;?4}\Mg.hk}*U~l{3~YFWնWv&\h X7wswDK|~5j vWx'W3p6zb6:{0%fgoA&Xz傩;2[3_4/6xy8;{0Zt(mX|aF`|HZ973L؄E$S;Uxm"dm^re`c_8lGF_熠f3`W;f\_h\f|8|uP~Ysni['`4@?f-hl0x:A^fVxJ(~!ԉ֕9wg?GArÈՇ 8^l7956YmUW=XtVZY`ePCcGGl@6qY7b`g`( ňz 8/Iib&hswW`&v:@d$IhY8.ՎXbF׸x?)WȒys~ 1:M dUUβXZR,3&'_xa_aV#Dk>dMxꨋ:cʳ3%Ns1V@{ْԨ6RYGٗLȔ^d_C5՘|ٗ`F0Y#h97Q "Kf;fA0Q:Q9=3|Y:8،9 ϰ2Bq8a?1j=3r3 AASZ P WpI 9Gu4ZWP |pW̃Grɒw> pX訅*J i61ل? ,)!L*{P= Qp@A*l *fzg䏿3 {j31$F8Ҭ{SU䝄ãZ|9ƒ;D1gÕ6JbOѓ:sڥ@d$hcw1' D#H#X| {];9B[ws*2;~_@8u3&+IB)2[1ږ`}{4 $uc&J&j";e@j5?Z * 627%tD;Q)"9jk2z{ \Z .Vs/~R$X c:1{ڪp|~ꧫ QP[+;/"@bwRA/A]32\ ৲[L) $P" 8k&*=t-k-:|Qpƫ_:3-DBQ2~3S&g&dB,\f2ZZ Q y:h L0 a1q"':(()R‹ڣW Q [(?L+v*3&-C1P$!y+b+P+Q+S\) `ZSrkW[4+Q+D\)F<A6 A1Rb4B3 [ C_Zڪ $(5t7ǖl#٪\1rўy'ltɰ  =Z4!+ ! |78q*Q=tt@ Ԝ +9+u,'PԱ@ de@e`͓ʭ܉2zrc2ɈJ :c;*z: qxb,'BQЏ| <̢8ȁ!-N4: ͥ`]ʧۚ*vХ13]Py`ZWB83R+Q ٚ\ZV=Eqղ\4M;ױ+ zIܴдQpX %3_]4{=N{׮괈WAU] ٻʋ-B;firingline_splash.jpg000066400000000000000000000043731263163240400412060ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd" !1AQ"aq2BRbr#3Ss$5!1AQa"q2B ?/vMk9!j麕ˏ?5 .l!rut_rfHtf@dUGVQasip(O֭르~$p%HNG?UKNf3&G@\͘{+ml٨ӗϹ2̹]sds·HG;7`jL0a4Y|ĵǥ8]ZB3%m:(Ε6n=]nO5!k縆{>jȢI 0,\c'hNf; A ;sde?KVu~42hqBΛ}3#lK4$rχm'({] *CpLS+6I.2˶벍px訧/r]f̸aIJVWv05Hs 6V$q.0==?s+{s1S<<7gRu܁})<[¢0!ٗo>,kSD1r]N[{f /0O ꦅ%Gn)M!H(CZOWZcT+7vCޟq嬨IѤ֏)Q}o@6wcL&&nQQui/w~/vt@IM~D]}TFJ~/eTOiПţ-[5m_ՆsטZ#(,QVHQETMTAQEfQfisher_scr1.gif000066400000000000000000000123521263163240400376770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aB{Js:{)B:Zk)ބ1J!!RsZcRs1k{JRs1!k1:1{֔)J{ck)1kR!)skJk!1)1)!!ZZZZ)!JJkJJsc{{kk)ބc:B1!)::JέZ)BckZ!)1J:ZRks:Rc!sscBBB1Jck!:!1{kZ:::!kJ{R{έ1BΥ)!,H*\ȰÇ#JHŃ90^X< =Dʗf4Kn"0b *cάy5|)͡C˧9Sj AfJj+_ĩjVWĀ)l۾ݻxݫ V0lՌ-qM†uKW|3kqpGW-Ͷ dhU&̖2o}ՈӍW5^c†bP^9u}.ԅV19M*_{FǟC(^`fXernМl` fx {W8zKnt砇.褗@ꬷ>:'ᄏ;oh,./#>\н;0>@>ڳo.{}K=-#`Xݯ{ # |< τsFx<wРv0AzP^7?H"KAx÷tp.^ VQC!E@ ?lÈ@6"-.b.q_F.>A[OhbD71 |;:҇_$GBчڲ$#Baq |(I Rc zЃlĢ'E6R '"bю+ոJVr ݗEЌ4))5mNs1a1[oF3)! ?A挧<)F@7J@=hA+?{廢$w]iEYL3ҘB#Ȃd(qLˉiJT ) vӞ@ jPG F0{+f '0UP*uXͪVծz+j`OpLֶpe HUgj֥%v `&@ MkV@%T!'B3h ೠ  ?H\@4@BmhÚdXYwmvWX]qAJiny1! /hG%pz׻^"m.jOۄ4@mFk +9AM%0\.p.Xp~І!0o`_ W% ˮkCoeK`.4")]^5k fz%:r׬Ƥe)14n6x XVr  ż=118a -k`{Ȅ sU{ώ)LaA+`rcu['0}f'or(d۽=6H4 c@="< bpë+v N]&@$4Y6y8:IҳK G>:D) ɍ (NP;Y$(I(R\ٕ6ؒ0Di3jBy]`]`ۘ 5|ٗ~ɗtpizW@٘r\`CPX]@zW}pQp{PQ 9zW0}{`yɗQ0Q0@yY9 }@ٝ 隞9WzIhpٚitОٟ:Zz ڠy:Zzڡ":$Z&z(*,ڢ.02:4Z#Z8:<ڣ>@B:DZ>FJLڤFjHR:TZ;jPZQj^`dvfjd@[lڦKIY0t*B`Zz>~qJYZzڨ:ZujvJ[0rY:Щ*^0 :zڪ *YZP*zȚʺڬК202v**v:ê:* Z ڮ*YZi pگԊ@@jRiZ*I[{KӪ2PE Pu( I.2;4202"9E$ۯ(ijʲ\jZNK7e ;[Z[%kcjڪ,P{g+Gp*:[ePUkq p˵A;FKc{K۴h;3k{nX{:[v^ۯZc{۹zjE`۸X+\2йfY[{kk""#Zțʛ λkӺīZ؛ڻ۽;+皮+k۾۳[ۿ<|K; <\l "<$\&|(*,.004\6|8:<>@B8Б/A-6_ Ͽ؆j%!UF1 `" " 6 b!fh(jQXj\1:0_0"5(H+i);m\$V=S6iKj %Dac"i+WalY"uybHh*蠄e袌(褑N 醖f馜v駠*꧒jZjꪬ* 뫴j뭸뮼+, k&6F+Vkfv+)k覫+k,l' 7G,Wlq(dw ,$l,0,4l8<@-DmH't 4PG-TWmXg\w`-dmhp-tmx|߀nB >G. +x㘇㔇.3NxpЂ謷ނ׮zo;[! /n:N=[C?|;\ߧ_peK~:篿}[Hp_;y.H?O <"-- j( WH@~~ɋGJЅál} =@^$*QA_fXC&0s+\<+Ѓ`@晐hLר֮H:t aޗ:7ʮq{IH̝/$"YcE0j"5:t%ؿ"98;T^R9%k@Z̥.u?'~.v-إ0Kɐy%f:Ќ&4ؿ@̦6hJa#C7L:L)H!P8yD!崠~ @M 7P! DJMU.>F7щ^.HZR g8(\'.8ͩFI<%/P:Ԃ MiB 7PX;?b/XjNՏ{Mjwkb /-R ؁Qdڼ̎6 -QQEԅ`nHCSV pv jwKTԦCe-+S747&-lh7]iCIDv]wl;^=pM/z @nuR`)[[w }}Kՙ"qyNo5G5ugmm[*,0w} Q2 {x͛"%GVaփg aw1z9:Ͼ#<6 Yx*\=؁P2L̗-.+`; ,X3Ȃ4ܕ l0E%Ov->#G0B#B0( =qg׮Ҙδ CwЅBfpV LVMհtgh;d!ІFhT3 #8cMlXyvm4У*AthuiVx5CG[g~}ml泝 0K7M4Z8H@m૶C;xY Р&D[sٷG.(oVN: nvG0\cBYSX&Ww♺Y8CcN^bUB}yopJ7:q(v[hO;GqAK! F48vi}gP1lOŸ=҆{o2g|=G`W5qZ ZB=hG~OW{nc8/ld?L0@ 8ПF0[9}7xŇOS`~9toτS8o~&7?0XxC ؀?WwWSf }# "8$X&E B*x&X0}|ɷg:<؃'h>xH"h~ʗׄH0(Vx.X|f}{b([0xf ,r8tXvxxzXV0X`@bxlcHfӷxw[ V 0V xv[P Љ88( l g臀(x{`h_ ؉[0x8_ePܨ8ȍ8XxHH؎8$8؏ܨD(0p ِ IDIؑ "9$H%YA` 029445ٓi@B9DYFyHIA$GN9TYVyWMXi:Mٕb9@fIT1 XQphy;`fZu9O)k)UIP:P|9;{)xIg٘Di$`1G=pYꈙvHZ`)KE :1@99IК]0HP;;ٝI𙻩ᩎA)ٞy 9͉ ;Py)9L  jK0KpA@zi}w$ۉYDP1Iʠ :APJ H I ɣI:K٠)4 jIHʝ/\z!ڡY$\zhj⹤)r*NP٢$|ڧ/٥PdJ~hڙozXZs:vZYAʧЩfzz$YDpz$=y9;ꪭ+***:PZǚZx`ڙJp*APi驞fZڙ ꛅKu j:*۩qY [ ";$[&{( ꘲˨,2;4[6K.7<۳>J?PF{HJL۴NIKT[V{XZV^`b;d[f{hjdnpr;t[v{xz|۷~;[{۸{P{K4`;[{˹4J@ [{ۺۺ˻ ;;[˻˹|k; {KKJ|| wPp X0ۼ{ԫ@п4|PwpPXppp44\|~й۾ܾ ,ܹL2<4\P,#%hel, s5SJ7>̾A \ P    *❼> ]6~ q˒0✍S.>8.N25RL-W8W"bSy\hjl".'FNm^v~mSn>H~;fisher_scr3.gif000066400000000000000000000123631263163240400377030ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aJs)B{:BZk:{!)ބJ1sRZc1!kRsJ{Rs1k!1:ޔ)1{Jck):{ks)ν1!ZB1)1)!!!ֵkJZsZ)!JsckJJ:B{J)::k)Jk!ckZs֭cc:RB:ZRJ!cBks!)B1JB1s!Bck1Ŕk:::R1B1{Z:ks{:)ﭵJRJJ{Υ!B)!cR{!,H*\ȰÇ#JHŃN.jH 8 ЙS0N(raF0'i#K0=ĔSqTJ4J3k̙ 12#kDȐ5=:fz5LKUf:ЂKݻx[emkAUvKhƶԣGaCbf0agաJvrmi lJh۪i [;rɷK'[n7ungNҧ?Ͼ˟O-xW>XW~YǞ 8YN0(Vhf!tO`Xށ8aaE0tdj#8℉4x!9V"2& qTSgbTT:Ie+>"`)%hm)tix|Y'~*蠄'&袌6裐F*餔Vj饓:馜v駠*ꨤjꩨꪬ꫰*무j뭨뮼+k6F+Vkfv+k覫Ң+k,l' 7G,Wlgw7 $l(,0,4l8<0s DmH'L7PG-TWmd\wu )䐃dmhGC *0b=cmkv#<@ w.899 @݃7u ˭Z sq* ޙ9sNwq^:b97{?nw~:͸4:go~q~#po>';wq ;_<KA75o ػ=sS Nu?xA NmT`6́ %8w#_G@ mAL$w'XbxC+f`T,7{auEl#G8ʑⓞ >C\F1H"F:򑏤f@tL:R (GIR1RpV򕰌)@A!z\` %(ᖡ K] 4YjZ%XB|% , ` pbLe':BwԦ&|cӖ&Y>sTA*m6턫YOG[iTpw zr.s7=vNf`k)r;I[X:֡kZسfA3m.4 \,up$NW{]n58sd|OxmNu^ɘϼҘN< FOғ~O0pg?0ϽwDܰ~}/NO)iB9DYFyH;)JPR9TYDɔ.+3 k:55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d"!1AQaq"2BRb$r3CS!1AQa"2Rq#BS ? |\Wdĕkf k0q`hzBFEb$쫧BaFdT|31B=6;Zp;)vb@+2F>PJچHmiܚ)]~W7)dɎ1s)攋&9&k,v~iZ&/mi\U4U:+Z=VKS:)%.!h,y b3sVm 3a<@L&Gk_! t(;rvessN-lZU oK,UoKmyڗ!FėB?5?+NE›qIcIAnǗpjG~ẓil"hЙ^M։["hİ^?kHR>P ُl=nF6,x0λ'N>a=MڼӔ b)9Ymڼe!ɥU +nmiS/nqtQsu"tcLc-&@֜kYi%4]Z;b)O\;&W6[ʩWH+X}=+1(d w&ApAN5),!tXxr>#f?5e.O$Mm#ՏY>}4NΟG҈O/;U=tTmE(W6Z4T&D$a7n tr|7mEHcu6P0tBd ZȇC>mm}GRԙ=:n$SZ.kZǚaT$RIra;&cM'>;+$JVe\U\$ |#}uzZV !Eג7sB>zz]yDќgZxS 9yk]#ӏ Pۏwt7idNP?2piTٝSiܿK~5/0v}UUszgcpiq ؟W`Oip<V1Xh/,$u +1`V`QziV=ƍe;7VTe%6PH *{t-s̽1XaAp "YmI'ƝkQGargHo9m䐇1ޗݖYsq- [)ȗ;Z?j?mަK:m.{Ê̆gR6{O$mgɧl2Z##*>a:>Qڥ828nŒ'U!K.d&6Ny ]W2f:<k#Sl祎l6XT54ըr+C*fB‹ UQPBQ 2)'dB9Ue zvM\ kZH*;O6R6qzu<&ыʑϙU_C [mkOs${MCGYê;7田Q3egLZqV0A;/?({D8o\0F`8%c}_ύpY5O*FN=n;ypA6mC8/IT\imt䧂Z;.YeJ%q7aJ$/KHzEYR! *"E We sZv):}>U|έUhi5uZU 7;;㱦2#rG{CT֞Kn+*Q @]fk퐟KIׇz:J,kp}n~Lz;w+ަdQunw6*Z|o5Knxz(ѹGVZ l0F>;V]>J9K2 m5 M/4Nhlqt溯\ e,6~?u?BCJo,*\ؿfruitmania_scr1.gif000066400000000000000000000124301263163240400405530ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aUw"ݪ33D3""UD3fDDf33w"UwD݈ݙw3UUUfDwwfw33DU3"UU"wffwDfUD33UfwfUf""3fݙD3DU3UUUfw"Uwfww3"wfUUDfwwffݪD3wfwݪD3"ffD3Df33ݙ!,Ƚ N(HOC >pw!D C RB$S4)ʗ!Y_K)` zdQO<$NH4JjX>1e S'r>(A,Y#yCMY:48_1lBLSɃ?', *LrUJ~򄎃ō5[63KXA݌ b/N*;I$zV% 'Žun w9%z=%ny╓N@ v)o$8 ;Tueg[P`y Gf'n-H_Y w LEH6 v . UCxbdUqT!{_| o(4I &qb i+!2p.kl}B}Q( }wM?qSxib$ (Kthkw;}{a(ͯD#%$"Lb;m3fԒR 偷Agou+bqӝJ4/͗?ٚn7dxq5hLU>ᩎ عS-L e;Qr,X؁~rEJ(r٪VeT=,Ej %e}Ð"D 8ԠlܲFHBU (̢ yzP&iɆ:Ff)Ztp%xPAx,z`~V-+A&(, /1:$KSP^`zb$%ZĬXCj%.)$d1Oz$:@ H$8`IE|'=! $Ň  M':+/7QgV%Q_* 4<*س G4hq餰(z" +yttYTl;=ꖝ>j!Ǖ{k2>pnÜ& x{8|7 {0d=/d{1 8Xx 6wͯ~QCp;=ԬƆԠ>lx-u T0/1 ;?XrW"o@B?Kj;Űb|.+%np#ֶnV|dFa>h~֛/ / b/r|xl+bƥ̼ڋ  c&ϵ@fXjP0!]u$AsGh!bB.V r~62@f{m2zZvVZPw p] 9 :37l*; ǚǮk ?xeq9t0kS.?qy !0 OnjQ{6=k[^g$բjV_[ƞwt\{-73iH~vvEA_. 識\Pɳo(= {௶y?f}k~P\ '׆0y]bxܠy r,0V{^Zo*RCЅ.\ OC{B:A]xS 5]?Ε*//h1B&hu]٠ $H4R8@~Qp>P.r\w/JE}K?n6>>MG53?(]`OdQ7gBfH 7- 4&d}#(rA +1>AVVX ySW?V";bD1DudDIDMDU2$m}S+g"e? FPfj8{mmGZnNuJwGGцg7:Jԑ%r)Ћ.hHx؋ɨ4TB0O`!@T A7!A aA0DT`po2`[_i`P؏Y8XCT%`0gȍy&aَS74,o0\Pؑ,ْ Rl8'[@jBX<ٓ?[БAIAyHN%CjyMpWy.XV\)c_bٕ[ &4,4LyRU]ٗ~9|YgPGZ*ʐ&«J2ʪIlJ;JjٸE*z*`aDFs۠%*zX$[k z j"Tʫ.9L+q";$[&{(*,۲.K4[6{8 >@B =F{H;A/PR;,KMXZ˰V C`b ^ >hjl۶> 0t[v{x{/y۷~{ r/  0u ;[{/  !I0s1@ ps;#۹뻺˻*˹[ * :1; {кۋ!?y3?90ɒ;˓*+ 𓡻 09J:?i2:3s r빚璽A, Û,"<﫸&vIP滽s13|監+1˹(;#l#¹[K|  L ይ<G 9z3˹\<#+$ кkŞD/L?\l3cܹb 03Ċ`,1| rLĞ|Tȯm\*v [9L _ L.LM 73;K{ɜlLʒ\ʾ L2ɫ@ƍ $1<"þz#Ll/lc0 U<9"Q\# ʒ ElO8\Ȥ6ĭ;0˓8_DܾMjđl} `:]ZLA '- rRGp O=Q=,o{k\_ͻ`ռ;_Ԡ @Q 6 \пp p՟ ֘؂]T})I |ػ3ْ=ٔ]ٖ=[ؑ,p K=آ=|ڨڪګ<ڰ}Esډ뻸ۺۼ|lľ½ۧ<=܏[r;p p sP=MuT]ݵ}(]ݼ э߿ߠ͏>0}  . ] ">$^&*,.02>u4^6:<>@B>D^FTJL~[P咐T^V~XZ\^`Zd^b{hjlnpr>t^v~xz|~;fruitmania_scr2.gif000066400000000000000000000064501263163240400405610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a3DDDDU3fwfwwݻUDUw3"wDffUwf33UUw!,@,Ȥry0ʁ`JZةZpW̕fh{q=欷zH  mD^xrdMOyhf}k0oxLtww~}E 0oFiy~pKXȺD 22""HrsEQ|zknžx|I؅goTƹBGY7ZH׼8!,!O2jȱǏ C9ɓ(M(%ʕ.cDY2͛*Zԃ'6 TϢCMTI!(D5-m'!b椩t[J-ZRIue7ీem͒Rƭ2.ݻ27xl,9X2fymkGS)7Ln^[\ zAOāfY7Tg[ ڭm_\q/7w7n6dR+q7x$؂otE8]_+mA!hJhȡ2aS[SXɅՌTc} Ҏ^8X>~O7CD&GJSTViXfZ]F dP@TUz&Fś[&`imɧV%2{h!cH^E|jYY':J~nI FJل$:d>i* 묝 !!]$ӥ\*BX Kbj+&#֩ * .IjEeEếNn;>PŮoJZ͢z+m_KYf#/pl?@Ŏfq;['ߴ:C4X0\"Ĭ~s[U~c*?[d>2ҩJmտb4UK: vrSK{b8}w7w5I/B ?dL8@(M|xL^yKKN9Sh\QVdBG@ ^I.;)zd6Utz"ܸ<î^%qsOrKqO;~,^_|ǿ 1y(~&@eneGA|5@-`m9zP.rOhw!Z⌶.e(!vF ۺ5-_%)jYâɚ2y _o"VԴF#LOKξFaSR)N]#0 |1M|2.JQWeY%I6FRn"m5]Iaᛓ!x/R*%+@q[!#C/,\)G] #0y~ֺ(!`Z%3eYO3f?w?eԬ/͋AM]gD >>'>9{r; P3<? ph *F-ґ]F2$UH?6ZD 0ݨDyF #nI`vʀD& OXW0)$쨦5@\OBaF͖5T.30Dc_55PH:^Qa ̎ $/JNt+0xK?v $Q.Vd|2$i*&*0øĢ+,wNsX0ep> h  LGG_{I6 L|hN'(jSCZ~lB"oQ1^#e<\j*cDxPzCF]آЎ&8\*m\,W 4neR}4^k w"N m}57kO6u풅$ wrZ$Z"7"?+'W68 4P"헗|%nl<;-'h5Ho,4Iқ3]遡ӇVܓ4z_H,VW:hξu}lOB8oɂ>J5j'Mw+=M*NBe;=C~I#RD?́}m)izb1%jchn4/vg- қy҇mϥCʯW1$#(NrMdMNpz5#Rmd+2y\|٣Τ9)W7uN')QuL7W`T.mZ~g&|wXt2qǀ Ix}rfx}7xRx~F'ցu4_~J4M/2FV`8hzo,QzKy(nD&7F6I$=SxoW$CpPom3p|o\<Gp$J0!g%B7tKVx[Vxy.p608jյ u @ $XB7T-P—2.P0 >6fW3@q!4Ɣn)'vz9ߛqI\z _FZ G h*E]l^b~ =1CL]TZhzjjƊ5)hi:UH O>HDbJZr޷ Ynk [9p: 0cF˘kfNpH4LÕ6{_agB<0CpeŌgU͟uD_ ?p.+GRmuWSݛJ:G r<9rWЁRW6~6[O:28U￟soG1?H yoW܃ܓO>у2H׫u?_ǿ 3 ?!OCT׼?C$Ѐ: B V >ػ "с:$'`m \ 68 0ĀpU{8:ZKG;z]*%%#cZpЀ&0h2D 3Ln$cBٲar@ބ ^<S$mdH`"s̲xfPZ3iVW6MiRӚRP5/B~$-Q1LeFvJqvs? :P^>MhtNxzԣ+pHxx'pi&3J|`h5ә 7mfF5ڭ46Pwڥ:̴@;Z?aJ` (>@57iWVU=gEhZzb}Y:ᯀB/5H z#Ld'KZd{S(DA14g+= h cV*VRDmoZXς6? z Xwk]+o-R 7[۳\U/yۚ+`Ե.K݁T V5n}Dm0{ޘ/x`n 䑆7|Wq{m-Vy(XBa0Hrwb뮸.q2|֠fL v(@e-o|m{cZI~%f'aBgIkvcO'Ԣ^e iT]rt{I:u 10!,5M"6,c865ȺWO6/k):~.ܿ<ܜd(@ ד -@W袬yFvZԚi#Nt_*K5#ֳ8Bh>S`v f FiH ~g{LЦVs;//ȧ Y|.tͯ@ :+p\΁ۧr'Riߥ-tQco?@9!xuKW?_7'{9[˓l"U6}PIQB/g`XP:xa8q(ׂ+p"%RQ[h'!X|@x"'H)hX1L~p+ЂE0 $ Յ[ L鰃10~qQagi!HhmAtvy1]FׂX&Z)'7fSr(iH~8XȄrq3z+PXk CA `XBAxH~a،d32u$ub(!$A,1$QE$ ,q؏Y8hW.@0i؍v95Gp/Vpё,ْIUmpKc6Vg(LP`<ٓ?,+FyHFˆ&y80PU9 ViTZ aɕ]ɕ`Y$Ж4 GӖ9OVK gyzٓ|9eٕA]n4 u􀖄ySCɗiWD$6GӚIGC`I)yə陴g9 ly#隰y逵) Ź){ٕpt)~)ɑbi؉9ܹh▮yR)`< ?i` zj ?H ZzyٜI~ ڡ s *A": $ʟ#Z')>P4 M3E:zGjP0ɜ;"j0ʣ"jM9: 6*b:dVZ`qr)B gڢ;j5P@ҡq*&ji;"DR~ڣ4 R:uڜ4np Gylc YM AaʓjUJ66).F z: X;`kF:ʤzp쨍O&XjZWNs ;K Z TX .ےO˒# ";$[&{(*! 2;4[6{mA<۳>@B;D[?HJL۴NKP;T[J;H{Z\۵^`];b{h\@Zr;t[v{x+: Zny;[qp%Zn w6 Oo; {˸'¸[t;pkxk{+:Kn+{ɛ<ۼ +=ۣ[>c뼼kn; ?KtB{t@ߛ@ ; +Ծ6G[?Ck BLĿLkEJdCpE1?; EKLEE\[+\뻴 GDGԻ½~wDz4"THtH{,' ,P' @,(,G¯tJLDdJJDKTWZ@lJƷHM,L,LtPSt+L Pݹ+Y1 >~N᭫^Zk^v۹˳K.+*m[j<lfB?.V{H~9L^=;fruitmania_splash.jpg000066400000000000000000000055011263163240400412110ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky !AdobedV$ ?''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd" !2#1"34D!1AQa"q2B# Rrb3$ !1AQaq" 2Br#3 5&2h|xc)r6VCU+` _đ`4[YʊtN0&BOǡ{r%r[}Ӎ>%i`MmuНqϙ}-ܭbVESf>ֹzϦ&]}AI@d>gd7|ΆiA_vWv;7s9|0'`J\  MP<yo ڀ}apgs7  aē$c $;Gqk2xw0 ګ6o*"]1I1>[O蟮sM|' 8MfY$|Aץze8U$,,$kQZic5RTh~k7+"<5z dE<ѺD05of.?т2ҫ,Q N_WĎDQiMtCfճǘjؖSUN42G?5U"C SwQ~;5YF]:*{KU3G#c@K-.::*ň 0$"ٚmo.zd˗+# QY1 )騚BYE$r)S VsC י.9ʯ r}QR!aVȂ6Q QhEZj5XD̖ l׎:R·jg\8Ȟeyn@n %$ڝk4<(x+,yyV q'!Vp{,ff;|/$3j0G_F3O6,q2@# VK< 7wA}+2DjӚجy8͎Ub^AUT Ҽ]w{67xQmm8˻޽mt?Nm=v楔z#P( bG0fZd))d6EF`[@>dnXRIMEuߍz7%P?v NgUXкL&(jr/ie0mܘhR|Fu9d>``ŘdBvHI؉9R9leoB"ZJ8rc&54ab>${ M_fę?+zka) }S{o_?/ʜN$J[F mЪqp#|M`)YX1au':PS)P_vQL%tCF𩩠*)A#'{\Wh.I}*#]{aᗝh6YԻFˏ.q '|5<8%aFe?(w)u3ul.}^.ծk:-n.x0p5=H'^%~IT}{\ K 79s1*iX|yb)ܪsU `./\ĵQer\t=‌/\ HwG1fU.}5q4;D$a'=r@ޞp{ॵ҂8BbOzG0qn|29uࣸ P YKCWic]$ IZÁjTW90\'0$88l:ez 1"'8H ZNglkK]&-MEU1(VD俶i "Gtz B8ۦ `&21.8<&Xc). wG>M)iG&p->⾩䅢[[A=~,^a(ŭww51d\I髮UǗ)¾pϺ,s]o SLA= q D@'Ͷpސ}F=@!yv @6Q ^|f;˅57ZWueJT;ڑA mtACDҳék!<6ژxm‹ =qҧ2RQnKP#N(Sw4d* Vauŧ#zm(>\7r 02 aZ H&K38X R_ILQ~ ?R41M Old mobile games (august 2003-march 2006)

Old mobile games (august 2003 - march 2006)

Summary team at the period

Producing: Arteom Litvinov, Igor Maznitsa
Project management: Igor Maznitsa
Project coordination: Aleksey Goryachev
Game design: Aleksey Goryachev, Igor Maznitsa
Level design: Aleksey Goryachev
Programming: Alexander Vasiliev, Denis Parinov, Sergey Kuligin, Denis Rozhnev, Igor Maznitsa
Art: Svetlana Semenova, Andrey Diakov, Dmitriy Semenov, Igor Maznitsa
Sound: Igor Maznitsa
Testing: Aleksey Goryachev


-----------------------------

1. Papanin's quest

-----------------------------

2. Air Aggression

-----------------------------

3. Kalah

-----------------------------

4. Mobile chase

-----------------------------

5. Caspian monster

-----------------------------

6. Hunt

-----------------------------

7. Raven's cheese

-----------------------------

8. Sea road

-----------------------------

9. Blazing gears

-----------------------------

10. Castle assault

-----------------------------

11. Cockroach

-----------------------------

12. Coconuts fall

-----------------------------

13. Cone! Cone!

-----------------------------

14. Firing line

-----------------------------

15. Fruit mania

-----------------------------

16. Hard day

-----------------------------

17. Ice gifts

-----------------------------

18. Iron stream

-----------------------------

19. Kick Kick

-----------------------------

20. Lifesaver

-----------------------------

21. Live bridge

-----------------------------

22. Mobile sheriff

-----------------------------

23. Paparazzo

-----------------------------

24. Pillow war

-----------------------------

25. MTV Puzzle

-----------------------------

26. Scene

-----------------------------

27. Nimble

-----------------------------

28. Operation "Thunderclap"

-----------------------------

29. Oyster bank

-----------------------------

30. Sea rovers

-----------------------------

31. Smashing kick

-----------------------------

32. Spiders

-----------------------------

33. Star harbor

-----------------------------

34. Strange Hunt

-----------------------------

35. Tasty dish

-----------------------------

36. Vineyard

-----------------------------

37. Waterway

-----------------------------

38. Wild balls

-----------------------------

39. Wild road

-----------------------------

40. Copter bomber

-----------------------------

41. Drunkman

-----------------------------

42. Fisher

-----------------------------

43. Air boil

 

hardday_scr1.gif000066400000000000000000000115011263163240400400260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a   ("3 %):H!A E+.L8:difGJWLOm\`_\bs`__c[qffjfgxnpolqzsdmtjxuuz%.7); G UGPM \PY gjsubkzs1I2V2n]L })D.~9uZ[LY]cQq`^efjkjrmsrkrmuwvxrxZj}~}9711<֤KHOYY|wrRJqk{՜8<]aHeszuz&-*%.(LL !-p@*T]W.^,9TnhG_ MUFo*V! Z]֪G{uƓO!=(es5s>HC4\>Tb??]HqbĽ{sH@MZj]9S-;<Yh`pd|fs @ig_Im7I 'kw ޴  \jֱX,2Zu" (%ÐD3H&L6)WSI'#Eia7PQbdiM NwW||nIb ≘ 蠄M !wbh%({E)K$bqJ)\zdA8Pp>-:(@ݚFkl'&#{,3ɞ+>kp*Q+䂛.K˵z,%Ia oٹ+JgLK>NġDz\0l9SȂD $8003@0<2- :%l@/;'@OGzDPܫ +\_$4)7[IA[m R]{ғ˪DXAOUDY?$b])=Iq<"LRa9("3uTͦndY`RaG3{l\=_w%j.Ac {%CA]%.\ DA& =mIEA p:󲂔#o[9 `$L[&Xcצ€ih߂LjVO" 0:F 0 G-4lL\Caf<%<\ eHR=yr ИF=L`̘ȋQ2 ! ƂQRHK\b:d"K2l%I{PIn/#a܃2Q 5 -Y0G~[dI/k;ӑ4v1!s+y+vɚfyNL¤r愆>@nQ"YǂL HBZ2kaDCKtz7ͮv6RĤ=A$~ "I-c0׹u(XXH):vlWKv#@b04!╆J"J-?Z<9 QPf7zkc#]7XXeAP^:üM!^[V;˙ԑ&sTuc`ݠ4Hyb'pgu>s;?%arFP< 4pbPKAk;Pw k1kdl(PE2,s=lKlp2zS'xmߵ.jVR'm$Hm/fTTf4`rhSlpU! RS'p6HZtmEgvgVXkY0,qbW^XW/lpq,r7w\^r gn!r;t2sr]xnH2[C*m,zJ0؊ WFi4oΓEl$dG>yXEh{Fa0f_Jt}Ш*T~?{ڇ@njdIcgxKH{}=͈y7y?6|TPE_6ȏHw4yGf%Dcd:~IɕIUƆB(u+Ď VhUwl6l1Uf7qP, UWaFq8|B3لh?Z%jln0esiy9h#ǐH6C[u[]wg=ugm7vZɌQ%]~(^%v*wL$wWwYahxThwj)I'`V@ؒzIHJ;h?vfWH7bŅz'6Sg|7dy{B{t8d^dfgKf(g)Mg}ffFL7IlVv||#IkVggDi`h7~oȖG(k}bIWj 7=$EVV&v )&mRT+VAS*AWnYEs'SӖVePg pZx6nxr.l—}xi)X\!iTj1+qH[qhi,7X똇D,rX'htHxI|ovIcؚHvxOHuEq^H"$ū(#t, ŜYhhIje~)faϸy*)3+6QqQ(s8k 驳G~h]t&H{؏t9_sg[H6'ˤz/9O|% gLrf IBDF/)%;y;D8e,shaA”0):!h;&8ɳ:S֕]Ni,KYUl [CrXdyIx$Xz 6|Zykq[pYJy grH$xc?>*TH牱=;&Z ɶ: M"A)8w^A6*wA6YoԂgG5jFH?{ IAQ5S'eğYC} 4-/K 3+:E:XKe;0[-`S֫x8,+X5a3(FKp/ 2ꗬD9rÇt ĊZ'0HüJ3 )V$ڇWq^:++ig|F8[ĥtiK7 {y| z~܇>?IȍSȥ&rp\xlsǒ.v5 LW%7;hardday_scr2.gif000066400000000000000000000114351263163240400400350ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a   ("3 %): H!A E+.L8:difGJWLOm\`_\bs`__c[qiju%.7); G UGPM \PY gjsubkzs1I2V2n] })D.~Z[LY]cQq`^efjkjrmsrkrmuwvxrxZj}1A~}R9711<֤KHOYY|wrRJqj{Ֆ2<]aHeszuz&8-*%4.(KLwuҦ9qֹ!WAYuUid-5c֌UBGz*yd&| C| FWKZB @s+6kkSEQ覫KQOjCJ~V+,J]I" Ӹ@{>O WL1@ Tg&|RMC ۡvL@LCTsE 0N-Kl1w|5o>d@?JFCs쀉 `hswnOO')[C t \`:Xj 穠;DL I,ÊAM ZLq)Q? Bz@ H FC-#feH6f2E$e\1=f!z$nؑ zH6mq;*4L{KaFF& ~d!Ge {J7Buc ";g4RL|$#/Q8>K%)7o">,c@FYC,vz<7r D(/sT&97NIkjQC7#:P fIPJЂ4$D$̂@+fI@^wEYD̠ ipRJ 0>`g )W=)F@ jOGS$2KkW0եGH/iTtzՄ"KhzQ!ЇZ+FJd x.P2 VcZDJ‡UP%»Մ(T r=tyB"l,{_uAoIxLc&kI7|U X˲+Z "Iӭhkd`Ѕ ]vD咴5n*(pb-6fL"ב?LbQ1>wz&6HeQ4o]}t i^8{^܋bl"%e@'s-&6DAq &sgq23a{ٽ &Hts$, /PBJB0#X5 G)쮌,3TPVMDdU o2.tėMڜ0a4d((B5@p "k+U 6ŨctƱJ&%qB(ѬW7~JIcMүD퓮\rk-A*Yƶ\dșfOsc|slk|'6ts.NO,R.U@*6>!%u{vf'vK$*YLmx 3dŒޘ+A:c.5 7LR - T1{\'iAwSÃ;ٌ3sӌbƯsO+p~-lFey'8v>u w@iz.nOZ%KxK)]r Uv%]$vLL($1Xazvi16a%̳ '–S,<(kѐ 鐚q{A2?Qa%DwEQїuz,)DhBxAF2}*,M1u- +cI5]:ۛdC]R_O묟:Fm~5/QeXCDU3|-cVhuXVoFn{vp vjYeYf0f+v7/mVk@X }5KX͠_kpBp vPOOȂP4#gb(-XP+DMCD6p G(O7yX*(.C (˄}BZ7+Z+[\6wkhGhR]~,8k,Gws'U-\B[\.BkfF8LOpVUw 1.rU~-ޕw_w&`R&U`Lo2b 1>%tIx<2_"%Fa&pR%E oݨ;Go8 ^vbICb$3H234+$G1Ў%JA菑Mdd2ȏXnXUEwf ls>WJDzd94(349hV5f58gUg/1s|JBfr5;~FgCah250v0-aw~45izh,t3kXAk (1Z$YwI+P<Fg6/{bTTɆd@Tls!?dvy3#fvƢm^HBemtm{y,NvqXGp4"F]Jw'v5xhn_Gq9'r|iX`c\iytbuW_uMfNe_tH߉DGOSNRLċ5qcxDw}yy\H^?}'-DxGKtltvjoGv$H^$t1=Sc7gj\Wx38\49s)/#3*}yddlgeXI|Z(\h6Vp{:1pIz|Qף6g@Bj{Zsmjr[ʅnu ֠e]ȩIs6@ax&^1YbRȈ_BW2*-GYY)|!Y2ZԉkT^ ? {yDs@ga@kJerxKT?凮:ڬ88[Iw6#Ɣ.)OIad``ec+XKK6і_ FtS2^N?#1YF'9/yMc *F7f ˓ڒgz'*{YZg!B=GQ7ϳE(B5RFe9S_\e&%ɗU5wnKVbH*EyeIW)=( 4^C"\ 32/^kW70ܷ>H6%p358l6*<#"f075/[a܂5VT-X{<ź3sh{;hardday_scr3.gif000066400000000000000000000105521263163240400400350ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a   ("3 %):E!A E+.L8:difGJWLOm\`_\bs`__c[qijv%.7); G UGPM \PY gjsubkzs1I2V2n]L })D.~9uZ[LY]cQq`^efjkjrmsrkrmuwvxrxZ1A~}R9711<֤KHOYY|wrRJqj{Ճ <]aHeszuz&8-*%4.(LLTϡG> Z#ҠJ$(6EsƑSō>pYn#?>thz ;zIcݔҫ_`$}Dc_zYL(uQ*YAtބeT>8Xa}u"~[e= bȢ@H@"% i֑L'q-dOF٤P蔎9t!&8 BIait$ITQnt&3*蠄:_*Go٧mbI,-Rޛ,E 2/7,0 CyagA,Ĵ8|;)|I^rx3sh=Գ!|+@Ѐ x{C&&aol(\u I&./t=#;`#' wh#ZjJbD6oj q-#_TڲÈ4pl\52?94[&ƫY޸o:׷mpcH>Luc|l8IN>eH=x3"'W rd"pEQWt@8!^<Wy:Gb.U\w=֡qB)N 1B@E/,sD%Lz׷߁sx┥铟t'AYz~`\a9 8OfORdB:$“L@Pz\AWr]o}dp(MJWR6T0!OϤU&0jA⅔$Qe?}uZŽgͦ YPWGT5H5T V uPJ^y.xiO[$W%HA 0]X3c4;H U . }\ * #Wΰp"-ɠstjt5r>aSb.Ye2g' kePH@̷#nTz0~)MB,iH Zi1Zmm{#5Z $Pmqg.mcغWh\1My%%%.Z̠ `I9~u|0V\၈x"mY$`nȉ:{M-t)3gC\<Md%جCl,>a2<kUuZ')q-Y [4(?"d0v2hq`"1D%} ^X4%*MN0 ^.Ҟ q(Du6Dƫ`1R Ȭ΀n`ثC jku=Ͳ1mi^1Q걪 \ Fn@Auh²B9vT}=DfVleF[}&L@MhB)4'^JWRe1aYqNr^cvlDe]vCD x:mc[-𹌙(H|%K^row{;ߙNX}c3ChFG{퇇;nY /◕9P]"m]AMlGϫC\|O_]}SC3@};+u_\jWzMԟnNx_ڌw 'WZ6|^\?.ýn٭= 9?\8c3YKF^`tn:4X9@991`WS`k7Mt^ Q5]ep@TO7qpbJKep"\STofV4_-7qDm_yԁ xpB{dv|CR8  b`4Gt4WoRxaDU*Tcr/QmH+`:atD!&bia'P1c<@V~h}OPNLjOfyUֈ7FY6zne st;zcum[x{:Sg!e'PcU}@/NTa|FdxF}WWg|!Njr@jPh~~uY5Uk2c9.[ !F]w\#$F'KO_偅}ȄfH+G-v ! ~2I~x7j!]^ yFJ7J/~; `  ˕EM9_Ca7C7xa@ 9([:/i^s v#vus\ԓ0 =唻74vm|v|y;f9w7lXPhHy7Jgg#Zam o[o;f5ZSy)fnԓ =YR>p3S!zh!榊Ǐ7yT0qgi~+@U ~]XYuq;@~C*}Hvh犁9ee?ɐHiٓ9lԞXv8[2Z4HUx.qs]Us1h^eI8WqӂnՅ$_ԑB v6md/<؃>X39PpCVM^$Ugrtw[T/fN%1"tHdw8UcR ']J6DWPbzB],\>ȠȎɦpVLmӇ{3}wEVCkȌx{IW_?Ө ǣ(?"k#Y iB訚Z(D/S Eץ8 8IQ3tS!-: ȟ^t]\EZViGIjs8zG{`*J2ګ[ԊJZ!xR˨ 6EZpijF%J@jy,RV(Ic{V ۱Z9" 9+3=8*;/w@*2OCd2{8[r0>+=8u1SvR3Lk.5JMRijéy4Z;X0J7a 6!˝MS;hardday_splash.jpg000066400000000000000000000041521263163240400404670ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2B3Rbr#$ !1AQaq"2BRr3 ?f8= ;,Y!)#cU\Q̳C16TH@u]r,ZYu`,$)@O[* @S" wHNR6B-iTiW"~#WTu-\`p)imc*OM15g(RXd^w`a9BWD Vsi)&'!q$˖L8M&;Y,pEI-1qlrR#cU 5ҷTd鴠1 -gB.n%IGfaNVM؛e9+pyw.Z%4&N[xU/F~I}hү܆JrȹK)R-]cmWЧB8)DlR!).DF˓$ /7$<`8fڀ.=y9\, "C ˪:zCK72ʓRʗlw׬Oӯ@wv(LPB+5S)Ӧ"?y*crG^)5i^mX~]OަH.;^DNص7R9zÁazrbd$Zs$}  $ GH .eND2wFp2#mtZ޲ذu7SN{,mfޕ#%e<O BuB+2GS94I~jb6tw#6;) ̆Ycw9^(%hFc:d^z,EB]@N-v>j.\gS(|{xmniG ֒vNC@5.O".ڗ(`EňZQ@P.+]= <v%086 [P]G oBj2*\JIҖJI#s4c!)e^0"q-!Ctc-6 }kqﺤLI{|KBÑVFGS87ݫG7 ğ  X1Oȓ()k8Nԕ0' vyg/!lִaӑ2<^?oR<q$=,ӏOm:Mʏ7sZosE(DZ@7kaB@Ͱqe0O6"jW?NFŨ2bCs3{u%ZcJ3},1p$َm $TNSva. s+ %!N坧RcI7Gث iɄ12KVUo2W*ܧ:{Zvػw%Y'8'%s?O ĵU4QBL> ?4z `P!x٫NKq(&+̀[$ * FC TȄTe Q 4",{̆#bYL,|v,K% $=1R}Ryrcܑ֡1\;6n[[ל&mB9D&E:U̗({u%~MăRVBM6:)Ԅ j>b<ք, quK0Y:!&]EB wypMY 9|-?2mW> w/MiI$B!B(hunt_scr1.gif000066400000000000000000000201101263163240400373640ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89ac:攜1cJk1)Bsc1kJ{Z111ccskc1c1k11cΌc:1)s{11sRs:c!ccs1c)1ccccccccckJc{k11cRssJR1JJJ)c{Jc{Rsss1JkB:)RBJJ{:R{{)J1!B:R:1k潽cB1R)B)RkJ11ΜΜ:RR)k)kkc)cs{ޜJRBZk:)BsB)Js1)ZJBckR::11s)1B!RJ!:k1!)RcRk1sZJBBks)BJ1cB::ZRkZJsZkZ11֜J:sB)!,H*\ȰÇ y8"17@ȱDŽTZP|0#\GQBw<JV0ql*0{D3[ o5eKB<8tF=x@PCtNDuVKQs DBd klpv8Pwmt@tBug 7ԉ+. ޶l#Nv݁ M+9AՍT7~C97~{}wmy胻p4w]%hpz;WOO囻7zw`-$~a){?gi7M|d 1{G*Ov@ x!q@%!"<]℧ƽ ]؁&0zá7A v 'b lB qTJb 7;5s_ؔ/}8ָ"q@8U@*ęq)DܞP6 1hO8zC3!-% `8*t焸mE$;5g -jp&AXֱQACT*)Jj^f%f2]r̬%wMq%d._|2ɇfT(9 Mu<< DleŒ;}Te>٭f!P0((FP˜RH_PP%(JR|s(yь&,MSZK┥ X(6+ ՗4iOӛM)T T6 IpT16MI*ֱfT}Tzb\:UΕk-\Z/5zOJ25[t]׻]aY2NT`eXV C(^@YѶjgAXvֶup+˒moڿDU ( Ӟ2,Je]V7wU_@ xJu]2 ;ے.+|;.@M$E=(6b;`ޕ  IG/}K` + ljxX޻W1}; O+ea_)^'9},d!x+(\k 3 ;v\ Mv򑳌dW%,7+1Wb9d6r f$Kk DxK^fi^ҲE*%¬RѰ.yҍ/ )C;ި3ZNvWh;) zNZc}(WMiUlO # >q@@ sYC;z_yG|/=Kxʇ2 [{@Cyk;xxW/#{{,el '-.w>>.G?}/yy#nqq.0ڗ0詣& ^ ȩ?rJ Lj,@yTڢ.9)beڕ!(uIJvHڧ&OJ ⹋s@ʞD:ᦪ s*ŠHڤعXrߨ @ɥ)0^JmibmBڄP!ѫsú~@9b`Jjz% ㈣Zu@!@DêQ*ysد$:ٍ) j`d*ʈUP!AJz0@+~-2ۯ(jUꚩʋ:*0س "@ j'ȑ]2`Ј(V[K\) az0 {z :K b&xȷ14`)`V+[4@aвY`  z :%Xyˈ ?V++\K+Pʤ_+[.B0Kj}G% ͛ϋ^!)5Pڛڵa *J ?|D[;l]8P4UЈayl>\[p )L 2k`TL\< Z:h!,p@ |@ilq;ܑrx)]h\?@M~Я} `[@<8 {@+,;ړ7Al5XBKĄ> @Ŋ4<@+ a<lJǨ\jp6AL,ʯY Zd@gA0Z f,p:"0 n|֓Ќ`@^i>l2`79h0QPćAmj@; bbM}N+gҖ{JMٟZ )`ÊÌ=AKNԉM}I|4ؗk+Y`paz/M֙> ۠=`x nӧʃ+Z ׆\݄ O<<`JLmold:Jb 5xlR~{I :,`4 Zp_U@-.wh ߝ ^؅q`bL _.+a3)֋5^ ["> . EK^ቾ Эބqp㖛jۄlpb F+ Qӧ^EP dU@gj1`T I a޹{゙ (=l uj Ϳ7yl܉!9ݾP=.{ZoN}72D _>}uIpkn P6 ]n=,,/4b߄!q2I M@ 8Y.v'2 P2PFp]`O0)~D@6/޽n>5/ B/28!OݮA"/pqhO`o.._.﷍D-gsWPܱ/>@ <QZP pԴ`dHb.dPah@0 E!aB ! BA h@@ !%U6HRlꔠ J ( P0QIb:TS#74)YB 1QdNJ7|$Sr[0yΟy{&*02dQ laĈFABM^ bt@D 4*I|ݚvE|%^UC7n"GOqyP" N0tǏ! ٳMDJ6uu.ѓo '.P9 cl (κB(. ;\k<6,Vb/,(A + zo/O 21XA:,p-4 x-$R$>!GF&NR'k8qitQ+"Js<:$-,l!HTI&OJ,W QÆ1m|T@3JA3+6) 8 iH:\=_u +Wʯ2aK.=!!*"D }ti+*%Rj+YT7\{# ٣L 5h*#]!N"N8, gK)=޻O[ͧB≯z c/RwuhNW~3EeuXE]HE hx] J0#MO$/FMm%7EIKIn"x8 DS,(HZ;ʺ}ӳ}S-4:ْFDr!58SP`ۀnV$U`4 HE X }vJ(;iq\ibX ls7EGO/·uc{_q{wQԩP-^Ga~R~[5k"֤N x@l-@_³J8@6/iwJB? A@` (21es@ 2OdP*QyʄC$ WB>;)@oC0(b;lME$ЀcL` ͍bX}6KNbG<aD740݋t?АXBO%<l=)f 9Q,@QCCPDGT!J^75҄l'Gnܥ-I`jr iO_BRJ5BX,gY#%/{DS!L!Kp,Sh(7e)imssތ$89a# PEa3 LPOUA`?H\BwgP̓4}hK[Z!  I3lmP,=HQf$aͥ<2Qzt S&:4*4@ Q(5S;%Jy.8X f֊~$uF|6MoALh;0EXuCtw*Fհ 8`(yD,/RU'V)+W<&dzQ~6l>fZ&7A |@ sS`:•.fcۢ3o,H*P;H~3O/[;նŭlw۫f8hʋՂ U"\Η@w!+VVյfgPSwN`Op^2X*^/|+NO0m'Wuե* X8.Pyl95*/!yk*Sj`kј-pwLރc9l;`Pz%d:hj2 P ؿ5ADbX`6nF^A` ÜfV~,5"{<{_,a.Қl%Mu׆vכ`Wva:ZgzضK`'*_f`pY&%s-JmZյHj;yxI;hunt_scr2.gif000066400000000000000000000177031263163240400374030ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89ac:1ccJk1)BJ111ccksc1{k11)c:朜)ssc1{ZsRssc1:c!ccJc1kccccc11k)11kskccRsc{)1JJ{{{Jc{JkRB{)c{11c:R)J11k{{楥:R:cJJJR1ތ:1Μ:!Bk)BB:)s{)Rkk:)BsBBZJR)ZBJJJR1R)JRRJBc!RJkk)1BR1sZkR:kJc1!:sZscB1JBB)Μ1ckc!)RJ:ccs1sZ:ZZ11:JsR)kkΜ)s1!,H*\ȰÇ 8"A4m@ȱǍIPP 9R$*RVC0;b8K/m| y3f#J + Z`J+ATջ[6d޼J]Yhz^ȫo sЕ'@Sj^٫qޥU[TP1h5^vIDOIEJz@bp`&ae NH!L}җ׀IqNF`+&SWJZ! <Ă>G D9<` N)vYe& Xeaw:Ag,ya@>)v'd<0Bh DX>4:l)v @YAZɃ^㪣r*`ĩw::GPШ'F8A.k!:m*I-G.?r @>z />F)nl'۰CW0dqq,_(jrxA/#3dsk);!=rDdkAD5R?=PV_=TKuK[ XmhvaWLĝQ=ww{w`7vNU=p7u c x7Wyܤ݁~c@/m׮-眸hkĈٻ+/,\!w?Bd}` ,%`bƢ_=ÿC`ojG'(Yh,4 ō~X) z ־ ◁.  0 -UpR\.] X`2'CAx:B &>WD"jXƥEŮWYa.>@lb~;|zx5au  ;l\#D6a|@@EI(WT"p@Ze(#yHQr\d˂ N6d]moXimls[B6 k/p\׹lg[|Am[JrMmhltӫҗeyIP׻el m[এ/}+>v Ûka;1~%Lbe0b?0n}c᥀G:c) :6 n\8Pq|c<yC6|d-ۘM&Ǽ*WSZNf 7f@ny 20l/i^jdܘZI`;9vCX76;j'`dNm&I,gP!`@g'7!& p!^iPS׿޴ l^HUj2ز5`&3>2;0ϛ r}MlawZ~Q]dOԭfuyŒ/!` /Ns;YOWz]¬o>xaUU@ WG v$0P~|''ԗ|we`}FbOV|ͶP&XT0,؂)W~S6}7fxg'X HʷJDŽIH~0hTX}dHfC89pPɧ"G0 D`6XW{Y!}{!(zghEhGq؆)zc6pg~X0 G$XYCHȋ0x8vT:3x2n7a8f9(D0k؍ި 4@Ũq`}HͨA8f%x 0iBmV6)0{K(yKRn H8:9}&( _GzE)( p x)T)@YPH >0oJ9H S`0`⧁j$qg>hU(b`3)(pԶ89tIII(y_W?^H%@@_poy9oPyɐ{PXI9!Z'eTFXy@9tggTh~i1dGf) h8)(e8-Y%( ?tyzqМ9МTY cI)9:Y +sIY`1I׹ Aj` xio)(P0S9S JjڗUfV&y? "bТ @ڥCP+00:tliKiDǘno&(y'BX%-ॊfX`6p:+pe٨> 8vj`j 8uz{ >pe 8&rPܙ5*Z6PSzfIYɗxΙ]`9"_'* RP$bP  I9P5ZD`6PŊЬZ@)HIV ]P j |H"`)ijƹZz͙i2;Jx갮: ŕy"'@"C`R@6@ɯ+p*+a0Z3{I HJ( 09p:ƪ Z홞:Z H))]ൊk9c$0h0["X"8)tKzJt0?RPZP9[]ZK2; :(`TPfxjpD0R`؛v 0/6д?p?0gЬ9o`Rgp2P39DcG D edkՋx9PTJ? uw` ZI0ڜ\;ʻXu;)ѻ Lj: k ?kGjZ#Yk5,pJ@k?|E0ġ)Dl*Slo0oڜ[h]ż[c\dk<ɀA**)J;;w`Y@Z@,,&G*(jP`ϸD(pq̽>ɩIj,L9~\YRV‡< & \}8[~ Q̂q͡tLp|[ x'0„ 7 3i^Q 2 = \Т0΍w@P0I<$ӛL2;b jϗ,1@l:OOe@t>yI"q`4R=<d2 +`^Pڧ'2#@7V]j֡9 9PMD|Rλ}@54 ̴H #`M ܦQդ郮̺P\& (2l-L]辬L@w04<p = QpP= =Ѐ0p 1&} |Uٛ<ڽl݊ւA-YLL@`w`p'~ߴ-}p܂%,э$}.^Yᩐ\Op~,-M ߥ*&N̈=d ⛬yy .አe-J Rw U~!}=@ս .]^d8.m)f>㝰js2P2E}Y΂* %M0-n|ϗ\% ,><j^7p.ߜ0h.Q ͌N&*~^ԮnAM~ ҿ-~{.,^=٤8 >5N 8 ~eMҋ~8>=Tߛ ]:^'Ўm.)_0=e8za;#-jE( IoL>̐sX0#ž7 a^ mpo>]=P$]2ZD }#`_Ռ7`XM&=$!jl`16vH̨01` 40m@0sP@ ( ` P@p8a * 1D $Y){XزaQ(9u9"7ƘSPB6 (0 ( !CY[fcA$prfA,P [W@SU <` =pU/)f"DcM\7΂Kwq>+tѧ@Y# j.lI!p[T0 C#rڶӍ.mw@D<6l)A-Je\gR.L" XL<ȭ> zN:ϩ4  a c#A=HjPh`k0d B:Z9ODo"NE/# e)(渁Ll jl͔nH&H Hd 1Ӫ̳frNIsa`ɖn*%J+-H HJ(An!% @ abUXc@)C s6;4Ӓ{3M+;oITJGTVpcVpm_ *تRsAz륷-H:kkϒeiIvb% xeE310J)J͛^̈U(%G"ck!NN%\ {Df#vyHD&ddUwJN:{ a@p4iF1!Ey魡2nv9[=  ƮA2.a… n_-a`˲H8w댾Aqe 8wۼl Xg  :zZN׽6kUqw$~p!^s#az[d'qpO`.Т` u5Y-ţWDP~_60{[S\3e"sZQEk$򢖿:*T!oA,hӕf<, #CPAs7IH t.JD&:q{Q|`E@zY$P*a\XBC&;$ql_GQ pΫ^&R
4rgE QyQA0Qb>00.p +Mn"aeX*r#0C`jAz9UiN#HԢ3!P\gʕ,i ٧o0e_-һSuhZsj(`BIt+^XJ0 [3P}QjUzGV XU bF>ֱfZZ}a#Y&6 X[6 Xͪ8U׎}lckVU,=7G2!h& aMTeA* Lg،\wjm[:Qukw1R]@{H,].LX 㴬( ԥzOoU#-{\*e)A#G$+و~8~mWq8yK:=.@*x}gW+<2S ަzNނ*%ؒXjږBwj2_mq[ճT2HUO}0+Jwso+C[0?1}(M˶~@g;hunt_scr3.gif000066400000000000000000000203721263163240400374000ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89ac:11111c)Bsc1ccc{Z|Jccc1c111ksc:k)scck1{11Jcsssccs楥cc:c!ccksRsJc{)1k11csBBBZ::{JR1潽JkB:)R1k){{:RR)k)c{cB1)J1:R)Z!B)Rk1kJk{Μ:RsR)Bk):R)1cs{s1:1sBBk:)BsBkcRBZ1s)1BR!RJkR:JJJBcJc)J1Υ!)R!:kk)1sZBkskJZJBBJR1:ZcsJssBZ:11Zk޵:ccB)!,H*\ȰÇ 8@,"h ď CLDŒ'M eMaY'APPF e1Յ2[֌9sk4ZP:@M{V"nx%ͧW:S#ߖ~Re*jA @)w)sz@Y;ڃhx `Fb֮W,V@pq{95[^xa-5A`ֽ[}k׼=9siMm7 kXx}{{O-33rlB ̰^BVp!hA5eSA~SB PVšmzRd b=vx^abBQ-($@j/8aL> 06TpDA摇g5Ԡ*X&l1 PQ@1$z"TÙ5|$\y  'BJE@(DRj奄q@k)  ȁ$DqD9@[^CZ2Q+9k:襞 )&B)mARj[lF(,jy)%!ANT\ ĺzۨA (< —R0h +A-` *,B2 A,H4s5e39-4@Ќ2MKW'uT[-v13$)̞B4o׍}|[߄s!a[Akt<<!&;&h.rmgj; Ԟ'W^zpG4"5?3_P9| DV_ s;w=;CA 33/߼k=w;{ylZ@5({CBH:qoD W B(x P3t(xvp:?҉0#, 9@::щ y 0Q|5bl[d򹹥1agL( xGɭWeE'R\@hFIWjO =Np3䑤\)"R"d+x ЃG3:B=BUW`MjS>4H) 6U# p V#@״vv5XU"v}j B\W׻4{ZW籠րtk"XD`b1[WZ g%< i}llEX ֶmn=Yٖ6*aO \ mcܩVensXPb2AErw[>yw[ܽfwt̀|K^Η뭫|{1L`}{]­;_Xτ_ 78:C"_W/ˮ g 㰉?<{uup\c_j70<Ɗp]?I71io C[fRUn,_x*떉=d 8 s+9Ϸ s9{٪̵ ?:Z=7Vys ;x 6Bc:Μtv8 C-j;:t\=kUZөtY7ySfyk<Ŏ_Pfٰ$hO vmes{٭sK0<؍s=!WjS{u6ϝMy QlbmY?`o.p 6n>q3f7Ⱦ|TL "Oy/"ov>8yl|+wЃr{5/Η~|BԧN 4;^@>~0 9nroiUOS~t/ 4x tS ǶwB|S)r«U/!XvAZ#P?v#^Gnz#~V/0KLGyaNNRegB]֧~{G㴏+O/}D*O?D wGLp@I,PHG0+5Tg~WtzWw% %uWsg =}w(*G0hyyZ'zU|3؃`}%sY0YKt1HXz7XBhA؃pTp+6TRCpQtƄ7'y(\xWXXguhy)d2wio3t6vs8q6WXxy#3|Iy`yBPq} @8'sH x8(T.eU8f pY7NJ 7؈(Xxw(J$c+;)rH(U0¨ PЈx@ Y f00(؏'hXv4W67芸79Y Yh)9v `xu)6i5y4Y9@PW萪L<:ɓ=iUYiБB9"9x ˨o(a7m29:ɕX{I|ٗ\YX9=P $X"m 0K7mdYyّbYN C Wno鐓)-P9A Y!i} Yٛ-tv9 v{+pp*6y+ 80dX@i8!y=ܙYn1i9 0X+[+)<* d`6I -4\0`8 Έ}v9+ vŸLW)Bb{@&J7,_ 6YdzIcI zF )S InPZ%zddf  &"`Dڛ8s8SYv* zʢ*+*+ ځ "xpms0q0`. *2*,*aC3Z: Zn YN P*ʢ?^ڪ: Im* :q(yYϪ:+*zժz@hWg{+ʊ)"a ΚHӪ? _X[:7AУjZKWmgGi0po`UA}qъڢڏ˸U|P0HG鶇"]<~0<6Ǎ |`qܣ:ª=lC  Cm滢EP}0` .7-p,ixLBxږm.C*VpV+m+/mƝmУ|@@ѬCPjl;CT,YX8--]ߎ97 . GkNn^A w^unYsH PP-.~徽k@`č> MFP^prM>.j  P N=NŎĎX@nd> P~E0A@w8PI0~"LC0 +`o1V /2.Kۚ dӈ _xҨ]%߼ᄾ/fUPVp n6>/`~ߤ_ M@Q)_'Qj s s >Ƚt`loo>`op 0>EM 4pYpnzsp9}НUқ<KPG'O8@_lkKM纽a[6׳"* \ $XР 8`A $*…(1QF@D'4i'T6) M Z 5J,1@QX@S-lzR &,9:2Q"FȀ" IH0He&YhPiR9s"KFiTN`%8zR .dtCA V0Fu)pOA/KI3hqSq Ή<$˙3O9`k[F]I'PPk9+@/ Tzʤ9ԘJpj(5{ZQHMH%<>|M6@!K2 %Izzc0*Kc*"R0HEXȽ 3l^*.'В:Nt}CJv0X5 gS̭}+0mU! SH(K%j>8nW ;lxv&.*K.̔̀5$j)u$ "R:apر9:PwWͰu rGф%s 6M92h0:N&Ts`&yZ'3zv}@"3ZQ rՂ,0On곧%&'b70NC '7F!e1@M]ڌDn Ýw9hDsfky.{՜*FOH.(q|py \ZK8j"|;rC筂҅Zඇ:@vo` \OvB}  $ iL 6m@+dL"k Cf #FH[UPCI J0,ҵD=%PV4 pr-:8M4tm@{SHz@@scxD${Řr?wU+ja yHD_u^Ejx6ѡBfGLfrFɞ$OPw*XHD2~ IVgFjQ#1MҎ$> J )sS* S!~r@G=QcJJ۔P~M2Zi u`)5،fG#e(.7uioQ$X8 @YH9өND&s(&\ظ#I`ğsI!0I|(#)~iM ɬ $5yfar\I nS9cjSԘ9e2!VM1F]߫H 1$*UjΦdU75&UCb>Ee$Ys`2"H'R2sU]Y׽u9ԹT^hVa'XBKjG6UXb@[5lNwluEyء^f?Pos+KU1UV8U%D7 B[DXB?i^Rv)݀8>.M-U kj+oD Ѻ,3 Z5p#܋MQ @1܁VֲioqYubj({?ܺHE XJ^p0X S .Zgۓda,^.˸Rg7)"x.z*Ou7ksɞ~-10N0ytF'`Da6,mghVT>1RL ͎nt,(S1"`64=p*Ԫ=0xf:ɭvLUY:Hdjra!U/])}mevNgq{#ʶY83B%׳h͗P|d{}ߓlߎkR۸wt[p)oUB(X92kw5`?6$r]lfo+w@߯VYA{ j^6˒ռ (R6_-m^zSfU#eG7۟TV}^-ImwRsMw55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d"!1AQaq"2BRr#34bC!1AQaq2"BRrb3 ?kZ;C} \RвI!H$j(KA*>G(bd[_0RNyW!o;TQ8(w1-5 ΢Vd]njgf¡"VP ژAK V9&<V*p=vJ9cGh;8D]T$riÏcc;VqӰu3=aI x%DrZg;cʓ[OwǓI|EhI+FX nUd1Y;rGm}6DVi ĻY7BG/vmWOʩFb%UE|btkm<Ȥ&;H$:0ΊP1_*?K͸6&(ݽ1XSZ镓[E5G5­viT}7[Rgr {;Jgf:ǝH$_9{k-sSًy=)oB M0q1(0b0A f$uK 1֯@0[T-kzTқ"#1 ȸiPsڂ<⍢1X9x…> ACОmB;>Uw Pi7.e4SvQj-zVQ1qF$ײAܽy\r=1 iְ5;{nU72xx*hޤ0bq:BP*R6gf7P9$"*bSٙQ6m*1f`):.縐ȥN`^=3#|qemrEE@)Խйv?ҦL@27?O_zW ;mYujkoΕDE|&\/uC%NX{="`8]Ousc7l'hDJ?@ m¦5v-M ߳nt5iRkhtx_'Μn2x)?iY>UǏ3m>ȆX5b@- zWCP*aYy]Β^]0bE[M= /[d>}]! 1q) Pg[:ՁQW=VV%jКFqJʼny fcsdQsLfgLl; GHچ`^t^iUHc}rNcgZ좚YT¦ijZm&5&0))l8:*_; ӹs"J=nO[AT`13\a`סAQUύtR"G(M#!['ehaaRv&5*|oƥ6:=jvp0rqm`E$&MQyizW[8JFJiϧ MF}5NY*uvSո`Y)PSsH"_3r[q6΂ j%I+Q% >cp$ܾt;DG!saC[C(F{k38^Laa] %F\ 2(.F} @;u sfj7o4(틑T20V9G69pW'C@`9e\Bf18 *az`2%+ak}XM*;[ fY@Rh {-\С%WQ9ՠ0YƩ@ZˉQ͑}i,~\d[*\3f۴i"CB>WgU;q3p=ak/omJ_j<Ѻ %P@Y k[[>u%Iccz{9 kIşet+dG5P}Ԫ [[9y~XW2_[_;К|nˁgvNރ->LU~st}k'O//Shkd=MjxoxJ+ɵ}(Tƙr[Nt9S:Pov}#olƂ;VNlVqC$ Hx^zXWOJicegifts_scr1.gif000066400000000000000000000165561263163240400402260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aLlڑ H$$C$v$m$UQmQ~f""PmHxFFF\ 33iiyyNN!!EEEEE!,@pH,Ȥrl:Ш(ZجvzxL.zn|N~     ̚ا ِ!ᐼ Ȗ Ύ=/S'z Ck\,HH2e 7ܥ0\%tiY% r*&#%` R@%^qd=o iTM8&LԪԍ $՘+,~8hƦe="Mݒp3Zi+ )vl<vnɎ;gy콉Tc xմe*!LOёIV[3Cʕbv3<ϕ ic 4@],0k)V[=!lc&RgyZQ@ 1P})\7P|GX xU3]@J(`|`Z,V E5{RQypbr)"7 JVbI.'YHO,Vb26d)9ϑS"zP_}YjbiUPnS8qe9"H@1$Pbh9e^Liz1n%| 4( .X'>.4:iKMbHxlK:ZR xi檎t.`ת%j #{MIܯZYS:: l(n̮܅K[956- ^dÞk0qI0Cm { jȹ;pǿ` o=2ʼpҾ/ߔ[c">ݨyYݥQn|] k.\yg_<׌mCb \6$`΋QϻxoJfߠ,a #8ſT`rÛ$7dڍrNYڔH@*md]7ыG=NX'WmyГBҫv%|Su1Ʌh4{e;!؂'#&[rbDQ/:S鄏Dh} qޱLHVU+bF).ő%)&XGz#R$2̑\x J+V]c''&֯};e_׽\~ b%unԕ (jRaYFrC>1u{ 0d"Ԫ^8]^YF )zD|+Nmo]1X#uFeR wƱBZ//|`(xq eI¬"z2 pKTtb1Œe8Vu}!W׌"ZAb4$UI2rn04g=!4-񅥸`y2>q{Z XaX1־²BHYJ pXՋ0oxq3yQ9/ʍ,Y>c|DKޅ{Io-ڬ7Ըos%UWz*g؟dpI;!%WjbZ{=O~)t32Ѥ:1)w%}hlʄF5rYQ䣾mg~M^L HvǨҜ5QעCij5gNsfdR'kΪ)oB*BoVb@a46H5%7uW~bՃ˹]M7dH4'RveK+@'Yx,k=2 RC֤̊]nYs!ݹU=pj V$k7mJ}(+o{tzQ ߽3~}h.iL) 9(w KHQk@,{C!TPFk~Y"X1;O O }kq+Z0bYbNW2eh e{}_uNh"EBpƁfgfUetSCBHf0֦wj50y(8Q!:aJd<*Y,A s4>96WSe%=WzЅSF39C xjXו@ :&: J#zٟ;tBכ~Jt|yQ+0 Г{ A+@@:mjyPࠩU%7V!$@Qˇ"]E@/) N%K.b;!^DsE9j%{ hbDg#@+8F_ f V92#մkĵXZZ 3+ D>W NkϙkVtyv pHxzb 1$O2FӞHsC*_K:I4|J ` \BhdNs. =+dHk  ֻ#x 2&d\~|DH*;Hf+RHd/狾 3Q 9oyj[.# ȊB.R '[e4 ELUtQrSr yR$ppʄҭOziɥ aA_VQ 2 VAk 5-SĎzq*@"A 1< kI-g8 SUń)Rm,`;ҮX| 鏞zMXS a[x.|c@U}\pWl{q; а@4>SGa){_9ْ}Ctђ%݆njv3o]U* Ta{Y/>;ƇWD6 |ʬb,`'q9>tI&ˋ$F\Lo~̹BV+iE 5P <29tD5?I,8"\ psLF+H}*m=0@{D򼔰1 =2M|oz{i#Lr$F'r ][4! {jD<28 pJcQIF%*#p$u;'SB^/x KnRRȈ2 3!EGK ! ٜȸL?34ʳ祢ӝN&` DžЋ=ڕI8j5DoٱKȽ!Ąc";| JEܽ$} \K0V[Z/zt(w:%4&`MƽܡU~z-UxHƖzfP5)W5Cl8#T༤qB4v ܱwmW -j[ =eMCAͬ  5.7BI7֞wӣ{-[mI aԢ߁!V*8>bZz]\\yrA(^`lȷBF@ DFՙ;Ð. b ۇ>ta[CگM!N LˆYکf4".sMN$&G^ }5R' |kT$ly}ѳ {h l Dw(NS:E^ ";. P("#Rm~Ojb{p-r0DG`=, y> SlhmDT, [a.+02BF?DإmfDnykn>>)p,BҊ1To(VKZOn ?V0J^w5/Dݷ]'%JPa#\ N 3@z_(m ' 8 zŠ'  [)3l R+m7s=>L 4yp0`ZĐjv8pï kl˫ '|' P  X4 @HE4!*(Y BUR0Fl-4 k'y' צߚ>F, ^qsuacFWG6ذ@EMW9G"\wz{{ϔ8GFH%$)ޯӚ",#u7?m*մ7 n ( aؤB8A $x+dI4 >Oݨ/% L+8 Q"< hcb4 dJxB0*D$F̳&-k(pJhO?v2FT 7Ao]SB;6J#]b/I@BI @(0V2zᖇ @ z[I4+[·b%ʻ aF8V `ϹDO1n,I5 U%X_}_xP 7yyB@^ )hFA(AȎ$BZ+ i,$ Pڳd{C2@;$ihAfhABrܱlGQG#{LM4TNH}ZF1j`@3T MIĄ`M5'DdxD@AXh<쓅!SO>4QBexeTAʳ; L1QW[mT[UZQ [" eA^}4`X@% 2"ȵRx0kӴHв5KW_%7T4u'x8H%pT@!@X{5~ _|Q"_aÊ+ʨ8>vPE7LX}WLJ>w3Hz1V5Bf`W56k.KW=Y!kӟ< SeT=We[SEGe"":h~;踃6<ˌziBNO h㎫ +զ(Hx\Okvgm er^XV}c:-ӅXXwxץE淵Ug=[K!g"᪪c ,$2rYϤM&YwֈE<-tJ]_|7v =! L|"X˄rǕԇ;ֲy8 $5vIV_mUE$ 8ߞ_ T$&BTHB"*B4Xq~D-/Lk@KBc{KtiYƓ n1AYOP= /p01f!3c']J2:B# t,81"bwy;-\ Pa b$)@JSPzPXR’"I4Ց@@` ZTrjJJ\DQe,%//x|)^bE e+of-H,} }8eEPL}>`x>(H2Ak`v@-a<OwĨ'$ɌT I'|!L5< U\ldELJ 9+32zңyjaS2FAp*Am(g6g EM J=Y铳>@mu[WΕu]W}_X5aX.uc!YNe1YngAZ^6;icegifts_scr2.gif000066400000000000000000000172331263163240400402200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89ayFFF[Llڑ Hf$$C$v$m$UQmQ~""PmHڦ 33iiNNyy!!EESS33rr]]!,@pH,Ȥrl:ШhZجvzxL.zn|N~   ՚ 𲠵  TfפETMkаmj 2r@!U)@休 JBxgޭ]2@uf MU"'ghcGHpC@S%$ꕫK2O0U [K6 a`zkY>`~͛eky%Ų|L]M&s$J9?NtuG ~@꾶0in}6ؕY1(x04Şl9,E`t긬u CUw"H L,;*GI}qRDT("K `>vJkuz7믓M;ńS¦[0oV0D+Tte %Kl S#n9^r$)iaoq,xfq!-7`}p uߢݚ.oΜww-e1{0Q~ݙ C{y(yZ~LT] Oe 1+SIq/M)H#1IX_:)m.aTTU'NxTXT-b.͎ך&_rf5\dz#IfQɏsSc.Rifl&0Ybf7J wǨրy|UFTZ:f RH D|$r1:$}q]9QvF D$a ]ɶ'ւjVP_䍒u*BRmX15='oUq.Ԭ_.zO@= 8@`M{BdISU ƹj \]u:*rÖJoibL^"LB2q`G"JZc˜f p\SJ07ڍL W-'Hˣۮ/mu0 dgXot*)Ě"wJ&dQ!@ZeX NSKMX T +ՕJ+~ 쫗6k/TYD]y_c %s{G`ĕ 2 at֌ Ԅ{z!B [011ŗ{ypƵyX6b~dsz~OeTGŸ'naˎ9\b-`*T,V<2ڛQo^|}嶞 W$xǙ'%K)e (xHG #}~fkpuDUPfhh7rV:xMRā h-6*[birgp4 d|您fחj5 7LR'%1'f߂2=XZ0{F8mRm6(٦-Ŗ(XG08İT 'h94|^g|w0hSi+X.Q~C |2 'G *Ŗjhl)8nz1zrT~̶Fl%&ar~b9TY)uT D;d\y5kə\WNR|V(^k40f}g9Cc5D;.攍F&47pB)dc)uL[ykG<+S&yi Zn@L "}7t\ 8S%oL*nb"<ʄ;ɨ}W\[ ^V8>*̋&q~<hٱ$ nĶrcEDrAz+x' ,Xcp5S){gVv?:Aq٠5EacSGV[iPƲFK8}k tH~cS505V_[!#(>ԙ%nϜAq%sdKD뵙í1~U:Lk? +uYhJ]FN[K$bR1g$V0]@. H; j3W- YmktU`"ꐝB%Tݤ8ޑ' }áwS=248,9TP~\M^>En:fG0H(lQ696`L.-%~e!YzMvN>cˉSi%I5n~L."Xӏgqm.!Z_;H! AW2tK, l>.^3Z1`D T8Q`qn~% JT{Wzۊӷ1.P…Tat}x!QĞ_sжްC AԎ#B[!.W  Pq~ѳןKQrEPM*ok :͂nN!"}k&n2r%󆁴ՍT%o!@` |6oI+Y%_z>{r.Air0K> چB?%韧]QX:vG߭ DB-g?PDm8B[a!ʼܼ ,UoXšBNi4U,w܎q˜œm.hRBlF Xȑ;![jYjUnoC!ѭhS0وp Kb!a_(CPZ}\! @ϴˑ  X4Dqp^Q)H^ <\S)\2ރqSH<|(`( -&$ *Ӿ 03#0.B $&"0h=% u #:"~%1#/(WC#!&37:$:|kz;1;%1~#E a >} "$pGkI;wԹJ 2$@IؑeKu$7۶pX8s. J+ώ潃w'Auٙ<.fu SaPGع_Gh[z ];ud%5@e;V$LkbPq;nȧ񪍫pҠQ\*srarm!Nͷ:ǹW8pv51] zxގ;3U>8я\gq5S_-- @-iv5 4@>L;<;  ;n>0¸Jh(i<diF;qC+;* M0d A;0 Q r@ e)AZxxqP+F(+u8k 4 7D4r>꬛/s @$n̙"ƀF#"%/ S,95(N K'7"E8O$JPs$( {dPXcaeUp \jSW@NSOI0xUY=2Ȗ.Yxu 7H*bkh_hh~m` ߀聇 lp>g+;*D;M.?L;fzfRP!h yZg&s!wB4~3 Ր*XLNvve;U _m!H[j ppAbMڋ~k켳6]F]nYV?+VPa&Waޥ&WW]r8Xm׺Hc@$]()t]c'a}ew;ya+^`oi 8 8@j.Ap$F{U|_T>ʔjv[]յlvq[8%W#F k<P$Bo! @wx&88" \s|6$BuaD'( מ/n,0۽i6C"22nv;cׁ):%HA|g8 TZR ?VV y$WLBq"cKj2(1g+0nJ2y {wCy~q˟%,@1A1][H;\I EE!iXu4JxϋJ:} ZwQ^@=& 0x=ԧ,PSh.p teRC/5 `fd5@n5ot&&$h|2 LgJ+].4tJ˿ᯁQ[B SX%"ЪJ4.}IEL'tfP\4h5J"@+ᕶ)ZL+qj"UoK[–F\ȭu8~Yb(RGv62w#6qT)JOi烑[P5Fp/[!v;Q0d%/Mve)OU򕱜e-o]f1e6ќf5mvg9ϙug=q;icegifts_scr3.gif000066400000000000000000000203701263163240400402150ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aHqq`S jMM"22QQxMw""Llڑ Hf$C$$v$m$UQmQ~""mH;\!,pH,Ȥrl:ШZجvzxL.zn|N~'0+((/00/(0 )'+(+/(̚0.)ئ*䦼! !!(Ȗ^pv٦:k1ÇKJU.%2jф  !!E\%tiY%r*0 3bf4QL82ӑ"ZEX0Q@K\{P9PO]UiSWwu* [eT]'Yvڦa"eHN+wRw?-̷iKJc!jZv2&Q7FwS"|O*_ujtW81˜^WC ߿ |ȓ&iQK_xui%Yx*{BOu 1g}|֙t w X;]AL0`zt P'_^a&R's tb%R^/fR2V6^b~;cjCf= t" 'iWRQNYc}:zܖ\nh!q%)C -$ri{ I%hr^di`N{( E)9jN Vg"\`i-xZjjȔfت2U ش>6s,L{3 ӡgS=1fhhR}[sunkh{κt殣7ΙfHqIKhv<®>FXѩg4"p^@-4бig.,Wl:AcYR,׃ҬO`,<ԡ:t{5\ BT,#t ߺD]-Zժ,^6F[>=u[݂7}x)E_ZUUꢑ+ Ϛ˱Fzu}r_q_DmJc@ [t7tpǍFz~}~uW>$|b5P q$yI79.gֱ}I4~t\$!hp5б<@0Q T A=HO\+@uhb3G;>j eR^f-l}҈Y){g0=L D!svG~ (U2TV"MSN򐢐؎F/}r(TZSxP+uO33 o)GVnh^(/j>)NlKTfu;uT;yOe> IQ~iJ[,K0V1/mަi-OI_g [IkXv!}J/0wyuJo8KEP^>R&'G }Dhu3p$bmjK㋣(aiX!ȚJ`{5z!zLUu iPzҮvL)(d U c:0FHp@+Z- Ⲙ@MZ}}mٟFyT1}-ہ-rY%s^ m1WC\^쵊 ܯy# f5+њo`ImaS FR˝fHvHx%qm,4v8B`5e;|$gƑ_ "A޴‰a hO)>4G5;A7HrhƼxQm\5g/b.;X Zc^[B\* I*Kw;gV|{߄*ڗS(1GB솮G@=qnG;qCv`Ewҫ`+dmR;peUG6we O:t:o˦<)C"6kQXZnڛu>K0UgHw\;@H [z(*ps3 } TpVƵ2e@<.`  pxH~|a6^|pTKz}b_L4XX8x}޴Ӌ?딝ooE.ȼ}}Wu~]M_o4u3Ws_BVw3&A[g(`B҃- PxWu0:Ȁuu$AeKEҁy "(z$ZⷂgpOuT.ftyA8t'wbz%`7{x{:`Z8Mz({{S%PMUf fcLRx+xEWYx NcgSń-a4NVe聜0P2JAHa#+_d,O f4Iҋ"NQC-eDz`!Ҹ"0";0f6OG6P~f+ru(tI3x( u~ifR P*.v" Sh͔ԗz #Y$VOzv4\5<(jUivd{H"yxR·#M"QQv.'P%=7V y#ɏ@|hX)&A]UV6z)l|&k!@X)  ?j@!?dJunfm 4*ȅFi jL0sI0 PNtaGI\,  j[uU3qC:bM98o|{ @  0ȉgc1`:$tsC7BYQԩrd,! :TXD7 i7TY"[v഍؍w[P\:vh' qwSB:)SK%TAQ0]wxƘ^0tEp 'G(MVb8+aWMo!$Wr&, ]uF>ȩ|eoxWG6ZR$x!]l*^thweՖo$0Z/>Edd b2:!Gx3ftV 0-@@iAMZq z3/`hCPCGEجGƊxН6ī(=:@X2f^و:r\vDXrF>@f_p)j!4Ƃ:cGưRIª:;<nQyX.ET%EZ,\F\SG:Ie7i%=rg0w2W!ڱd!:ovhLWC Lyȩqa΁OCN6[g[,U{eمs۳á|, e5-o"qȤMz]RSqfsMxZzk儜*K.:$"0+0[{i,չ'z_ 4-Sp0ɳRzQlûk&1[INnk$$;US)#1%m-_ٔpʵNrib%EVfھ +urLhL%x7N KYcur>5rQA՞ق 5^#:2yL~$̾- 62VZ6C JnRyYNjELC): û0?,.\36Yw +y3|åi +pNJ"],C5F#v7GIЭ.+i6! pM/r^.))]) uʧB.퐞).&P*-njʭgQ'[Èl<˰ķL%تM#|1d&Yk2J0, 칼4l(g$Q̭yw5 /"_й#*QGme_z#.+B@5Ő$OTR$=gb6Vߎ]߽>?TFIilNO/T!6jOV_v>'4Ի/ +ٱMj8*>юCq+W}pd2MOXrnU3Y"J4D6N1{0|$6oi/#8t1Ußo2BΒ" :}Cj$M_2 : WX4ɤpt>e6PS+N*SaX<)T>Ҝ)t߉/BDVldVB@@ 9DHOZ欢@ҥcǎv ƅB-!G>sdT sa4-xaq`ț˗%is$D>kL%d@ "a* GFKiZUJAuE YJm)ǡ!D|[\ōo_( DiEEqLWt!GȂ)mb0dQc9K'ߘF[ܶ6d}ת}r‰OwcrPZ-PtOᎤ{ vl}tΉV`xɼ-I;HL;`B ;dRPtIJp:cCR4+ cc ^7$aQI: KMn H䱾 Jg3PLF :˩*DE7; ;!B+7t~3@A -tPؚo--BDe 8AzN@!DdsɊDǓjӜUT3vN0]OTeN{]^E!XPyVFapʪsI#BSc ccZ_|ޭ@@d̉EYe8!x]$Yg#Nb=.behdݗ߮@ ޒee歇歹fq6FizSSN{j} +va.p+Lc©KN͊ë/tQOi0?juۗ)߮H޸b:u^l=ݡFag+;ؕfM,ތڎz3}@D1|+D=Oz3!8ܠH:@? |'LDůp [82piS@L=Ѐ+2 f28L |gX߈W%,q<ƵbdKG4Jχ= }(qE"(`qŮ?`a=Pq`9 BbHd P^sĭw lG޼}S hbWp$<h!¥.<`:0HOf3˹+i\A9~+[MY`%9Z$ZL.1 hF<附P? `e2sfܶ/s)y|f!;*zм(@^\J Z@@ 0Y(Uinj<@0pzhD@OuL/q^P7h! *jCdT:j4Ru] 82D&EHi~bg-p֔9e$2L1 d`BJʣJ} 97JoUVB Ju'^MڗdiVt֦8hzծI ׭YpXH5(RG *Q}d*'6VU.de+5O} Zгi;ݺ6vS d3< :rRALl:Y㹎unW꺭 ۬ukLb`୰kWb(JoS2׷p͏n'B$8͋r֬=.*" I. XmB< ODdh4Ԏɷk;Aj˹sACR$S75l w8X 芁( H0sk.3c:;>V?U7wh^-A @OЁ]US6 "r4[4:ZB8=|:#}לu[ns?v'jDֶa`9@(lu8SVTkEá}Mכ#A( Hf7mnjho{@bvo*9JIG8wQNqM@̯t*BqwsAgۢ/= wœE/L5͎Uf_uSU<½4ՉgWo,Bd+"GW|;y1"PvԤ0p 0p!0%p)-105p9=A0EpIMQ0UpYE0;icegifts_splash.jpg000066400000000000000000000074271263163240400406600ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky!Adobed.$$-##-*#""#*8000008B;;;;;;BBBBBBBBBBBBBBBBBBBBBBBBBBBBB##1##1@1''1@B@<0<@BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBtd"2!"34 B$5!1AQa"2qB#Rr3b $!1AQaq"2BRbr3s ɀҚ ߖ_IGk co!c|{Ͱhj3z˼9eb%ɻEQFIUfJqmwH=K}"Nj0L3W"s债<#fʳ쉀[i}G(̪T_nLY7!Z Sŋi,SOeo+@U ڸ6?9br[M3f]diOZa_J f"޸4!Ϋ6u{Fjр] B9UlUr,l֧TŬl ^EykS0EEt\A5Nwd2`&f2brcp"' > 9(7.1pd^K5ɂ&bqdcu~T}5/HJ 2 rbOxAq& I"|qrg"9dgp2rZ TfHɔsq eװIc/oRtS={/h}qzKTL&e>}]QYkcֶ8v){z?7kTеq4#b U%ˏl5[ Q~{ ek^ޞQeJfwZbV]ߚ+X{ 0y( gMP\*m{,7~F|Pb-1f=u{aAj4?80LiZIj.+Р&&CrpaB\ W1:G+bj_$5Pb\[x<.BaO8[rk-@)l#P!ئSnH~}FG[F\+d%N9щَ9)/Mv{/0(!p⫀hIqzv|5>^9ÆI-db.lfߔj28 #A$хaH f.p=јÇ-hԷE;(\ uRK+_7Te~mv( ?EI*&-#.4$κc"x"xr5)SISի`g Ft;=Vu-°I了QX|qMaNؖ$5v8eѹ=^Mj|j[k*_A2x-iT,`*/n4i1HP$ˠ\6(_:cKz%G=5aB k)&ՀژDp˨]FO#4teݰRv . [Pߝsejp`"6{|)=6vhwm:/xq:XA&qwJR=西J'{ n14n0Z~yX O|M{xG!yXNF34ƩF]ozKy]>~f㱳zוQknʎ'YKeq?NX-ٔҮ 9q Sly`VPY1O]v.3217E '-{-ČٓFե&ͳD` qʵz;?~RTWRz[[)$AP k&2XL*NSH(  GO13> 鬈>'t =:qDi&nfUBr]aCZ?nppg!g?gCLT۫{I~~cP(WV2 'ʊn(<"8 3in[qo $ F'-OD⊪L:mcbKn)usL 5w X?.W;IleH$Gƴ-up?|assL9vo*0bp4[T inSƞWs=_({;zL#?>gI08GYi/d吡?yw;fbp=MX$ X.8F[iq.ARt݋NP ԱtA:IG rCKvaIqX)`Z<,6;[X wàF'Ow4D1{+9MB&~Z5o= pJqoOLȈCCónۺ$Mѕ٩)Xġ,vm4#?)ŽRWT`rɌt_Q rQM3XX.#opiv 9$ YǺ#`I.'0Dg|1@$U  u}ɶD,>&zI {\krڥgف=ޥX\!\bGW;1 +k/?҃2zvOȌ>/6OespNX#@"ZiT.,>6B\1eX &0؝40yG™mk  f2 ɍta"lgo+3]]ݹQޏ4O1oFLGu}'}䟹9FOCj)N<̢x1O(}13X&?6ironstream_scr1.gif000066400000000000000000000221641263163240400406040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  *0"31 #(:A!A E+.L8:d0KfMU PnjUkisq GJWMOmJhZ\as`__c[qdfiegxnpolqzsdmvkvuuz%.7); G UGPM \Yu gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZb~}711<1HYR|wrRJqmj,,Tr\Y)wszuz00%( %0.(TN5iTL7v[HiVwj[BoVys{|z~~}~{y  AbՕ޶1̅wաR|RėˡƧåѭƪԱDzдʷ҈ӺΑϞȡDz»¾ٽ½,3dtႦ.رc!&N2ɓC SXÅ/dJLv J4O |F'%*L9Ebv82BĈR\hѓASi =btJ4'RN8̃aJҭS-*Nv\EaaAi ۠&-`.)SNA y jC lpe,9nejZ\IJg,ou4mjh]NS S ҩC{wy2Y^8籖vh6AIdgЈUk[pLeILTn]G""HuD=J"$" ib~`u,diFqpEJ˥T'&s eogaeFWMVhSDct *"AQNY (ʗVbTZyQA]EQhBrF:F|f\J-ӏڴ}eTH*"I}ȖL 'Z)* " aJmv(cTxdv[Q5g fB].O*ZP9fPdi@+헀dBG" huEqTcO1R1 JRv-XB:1+)ThݖkJv; 8 vx9-*|hVWհUy)%'QS+-;̄p@M 6A'%3̚ >*M t0-H0}$AQE1no:rQ1 cpp@Y 5dJ=V\Sx"ib8 v ?핖fniԧLA*$P&XH=TRssS=R𝐎ua'!R!U&p .Pɪj$Ryu;v{y}Gs#^U|fّwD]h,5*ߖ(_&BX߷d'HD,NyNP7&)GQP/|pXn3U  v⠖ҨP,, uNMx!.%PIGY|Xb$#r82&? loXRZ(Die'QD 3ƣd-5(IMTX2sDQNbdz$mRYJc-Z֐2BB LR"GF"i"10YyV4}A>>IIV(2@ Bj!`L7ǔs}0u!鄉h&Xu+sW&Ф>X1HevBI&m|\ʧLy<fiV=cabl(YalP)hX b91D4 IИ>C"ޤńQ?}v}-#2Y0uqVAj4ENQAR:Fpv#\` XҀl>ʞD(N %s2Beq$)0!>C*!PPs@@H Cg9;VQMh G'` N %)$dD3B5 EX~Eٽ(yKa<\Њ6h%,Rdjk0S t-CP2Rq׭8\"54U@R6 S#؄v?]n)+ `F:E@b&#%i`ө΄cĈ@ꋊjKow$C8 2)E_)׵2kS@%(;OO1i"H^095ۘc ">2 G)M֞#$πLW1xu$ zCJS:&!C Rzԥ5`gx2PFhL"}Ɛ50d#W0J[zH<;t>AIjvmV_4kJ4k)s-$Px}$\Ax2ICGŊ@(lPa/;H\w@M !ݾömɪ.IJ"7;a0EU,f0G 5吊I;x(]<,Dߢ G|/.k44>s=t uv+J'1L6%wK9!s"tcXWϰGu$#irIj9{юx>HQpf=;po[ݮsy%{c]f 1))=>gRiSzi,qo,;@Վ޹={]ϖsխR{K@iX;\jv'7hTWr4,Dqtܖ'q` q(~Sn&~CKqqLV+zhjFjWjm7%F qr&qV'j:8BP! !qXSZ'tP`q7tb#Dd^bcUa&|.Uf:!'S;dnhX*u4I5n$y60h舎yH10LK@}HeHUx;Mn'~ Xd|nQqhWR&C:PX'H@UAF)I扫7dHsP=B1~~6S!۷L5218(T%acַHHU͢gŏUkه&x}S/!' e\pXAnqX:tcEa d|/9Tw(GM}yOPkHYbwf;f6ydLV$/3JqAH. ATL5/E2&2,SAa@SZz"^sL'1P3,2U26vdGyR!@y'E2fE=A$[Q;9g ${ #MDMqs|NZv>~.z QS#Ӆ' 3z%[$vdEH. 65Rvř):8RB%G&/f5K1hb6qȱ i(`$kQ+PPC:$Y4Qqe#T_wbHGyRθ ( a fY RaFA:򌙰 y>1fZmb Sz7P 6!(~Gp ZW ?J!PB=̡ x32YB)4# e.":SP 4 tꌠp ԦoNuJqtz~B\Ppt$"uaAI!2|5 Q h x &`zF{ڪFڪ{ڪ (A :ꌚFZ jzs۪:ؚ8 ʫBZڪwJxs 0 &@*yGq:~|GU筱 WjAD ZFDmJm([7jW)5pk:~ZeK粮g6 6@:wK :wKmy+b:yjT 0 &&PO붩JL{j /06cKyr| &0& ꭇ*:IdzDH683`+q;s *b t˱8; q5MtZ7rC7p3qV~ ˰R{qP4z>۲; ˱3Ӽ;7+;Vm0;tj!D[k ktZo%:zs`*:|xjYX($\ T2qp{FMR[PqsJ A6 ڵ08̬Z@ 0NE$FzrU,Ec+.AbEŁq!v,dsq q0#H'sffפZ1s>t7+*2PީX4H KKdɘZ!#V4D"r2ZrhDKUqY~2{1QtNg)֙Lbd8.2ʢllYuru}I=fO$aIݖ3Ҕn#=ã_Yt&Z@Zۥd`$Xw{PrPwޖRݜ>o`E d؁1 ^CG1/)Q]eBYQ1cl Y5S0,_צצ{wKkmu" ` Z8o?Aue s]m ᒪ XݧuK3{KXtVZgmc16tQS*1Uq'c}B܀fnqK}mgO=iUZv9QSF#n CFUC`qT}ߨߍĉxgٕآd/13ƒVX$# wjFj1Aj7vCn7}ZX}jOv&jmC,G˗VQi wp=GPgj33|[5{&y`t@(#3;y&(Hp{<;pj ?ʐX&6K@#s:Et*[ϋwA$JѦ2c(az){Jep ng^jd};-sA?mT0jq:{v*Vq}+F tyyyq܅~D:cqC8~CHj~EQh~AJNV~A|0h"s9y"@D7q{~<#}SVE,&T(fTm zQjG$f~~2;Ua'٨+_CXmJ#tj.nv=_7ԯ^ ųgmئv =$ًea(b:'xu7Q#A/B:b<4{KߖpR Kү&yHT/0#I/2KMhɨgn4מg v68` 2XЂ<606 ȑ &s!L`Ȥ0& 5](itSF:jS;X>0Ô) d ըS}n,M G޴ju ʖN^X]LɓiMl2p0S)65i\"RRi$q#Μ(a xv[˽D.-H|3|&\V Ա M*y,Nnlѩּ_-uQ%X գO4lckem>iF#N`"=2[4K+kd7( TPygWƵtkgifסCL|EoV<#0o#BUHWZLsMOWŒKNRY'IYQ%wzZ&)\KP0NZ vyZoAe*G¸I4 * p(4p`KP&'6ͯEZԸ8lu=i)zZ %ëMtÖȕn囱p3<;!IӝRLL|JL2ރYYv/BcQywc_$K! }CiY|$GZzKRwU:p?a c `bzA#n޿60,I KN!mYr cS+~=. 0Vd`Eȣ| 5!3E#KŦ|@3rMJ.|]43spbJ49h ; 鍰š\ G:x'A4@L?aں<{ҐUJސc9y Z / -$ AtȾV>^ѯbRK۪ q:>:ޓB99҈.5>R ˣ9Pb-'tGD|V(C! Z%K >;Țz 1 [A1Y +%3܂r,B@(4],xVK?دYY RH X '+x2s;D0mLͨ ]vA`d?XXpz_Ḗ ZZztʰh d30v"юq 0=ȍG A0:8 Mvzy!gPh?˺ 鋗x9C4q <\JcXȖYʆ)zF hHH?IhY@K˽ 񌾠8$xmPhaI !mA7~b( ߠu, IJ 2+a:< Y PxC$ gx\FҜ,7u!fMU PnjUkisq GJWMOmJhZ\as`__c[qjaZiju%.7); G UGPM \Yu gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZb~}711<1HYR|wrRJqmj ,,Tr\wszuz0.%( '0.(4ZYL cB029Tb6EĂAIi’1spdӘŦ"Nd$dY!0AF7omi^@BX(ö%9TVO^)4]/aLo^3(aToin>QE3>ۄP"@`^)QrqFpJ |M&LHXʓ}$)MvVAV>陭I{A@(, P#RB.P^%+i[:A d0]H\Đ@61e ⣝pg A$"!̋GR"Ѓ Tz(E!ptФXd'KVV=t21\b=IRfdHrH-h .y&BAx>A v nEIRXIk0AtBЍsA̡Ҕv"r]'HP d mH^2N(<uP 8OSLf4?0 ut 9HWU$P$TfY%w^LҪ;om˔[y=7Lm6Avٙ4^L^:( NߢZfK.qA|z0%)VHtH*"xwK.wOv{d9 u(Zn϶)!@tl֮'qOs/ӽwlmBԞ…E(#/9zid|.1ѡi\}@H\>QB \9L (r1(Y1 E 0Y*aAH3eJhn ()G9fG&X[fHA)y11. 2 ـP 9CAE+1$[HuJ1Ⱇ|ٗ~)e+Q Ly1^7L>7AB6sɗ4GB$#(1!?؏i|ifJzٚ~Hr0:<YYIE<#g4#K}Is&Rk)S)):UMӇe= rW!{՜;坔}S1#D0Ş-tQNf!u5"ё$.ާyazM;AA&[/u•,!.iWDD!D]gs0 HvQF( $2 1X2i?3 =(â/a#gTU%qNP8G۹q) Vd$-z!1GQP7# -P Bə1TBiS)@ %84AQ4 aX{ةVA,ʼn  yI!2;1B1Fpe QHu0F)Jalw0JԎT&qD AC<& 3 1  'Ry٥q !q #1 J2!:t0% +At [{{!{!$ (t+Lծ";1;؅v ŲJL 0 zF۴+KX;R;ڳ95ZdfJ;ar[q9YK˶n ڷʉ{;y;ԕHk붇sY;빟Kvۉ˷[۷oKѺukf۸k{sP ʷ{&+fd +,˷{;{Yܛ4ۺvKW+;븀`qxu۶{k6ۉJ{[ L̺b뉬ll;;Wc빺{;Òꉂ1;ñ[)9{ vQۮt\Kڮ>k]RwkꚯN̷D[J=RPG]o$AP^NMͬM4P8Z5 jKKb;=UAb*Qe_v-Yq$*%-e2<-!!e@Pٖmr]]!iAr Jqe]o`a]ao`]GiQ"Gٝp٠p۠ -p# c bQ_}ۺۛ픡! eAH ]G&]$Ogq"ڝ ܹܺZ1Y[\UPjLO -1;MaeOZL_F\Э}ى&5s`cA54ߕ-jVH5ֆ0Na6uri̽ޘmi)*Vv%#&TQdE`&憣Gټ%a W#![e"5oGhM s-5vdg)oh5dx885r~h甌)DQʹa {vnݰ qnJMX'YטFM1lnݣHgG]799rqMNsh Gݺ.vN#gvn XT^x.ٛ(aG.0^)1X+VqyKȄ(-F5~~GN%rQspJo.nGT^Sy1yFdݧc!rƺ/Oowg*t\v%d5pyDŽz.UeuKoVdqK s0BJBU=B| 8`&48@ r0e· 6d(g lHXRC90<`! 6Tc sQ 1y@ 4l(Kʁ.<Q:EY2 E ʤOI+X:a^[G>4Tr4\ э^i8̙5o0ha;e 1\PfIY֮97$QФ09y6QƚmСsbQ޽ gTܡ0xLŒ5otw0DPi;2@2.&4X"84dKzlC9n,\KJeФF4dꒉP&ƘIģ{"#/Tc&M2C33P㈥T66 #0àKzIC (H1"jd v(zi;"9: \#H:HQIe%2K\Zu1i8 oM`Zj)Ɉd).ħ09B9Xl  DeL:%/j)ƌT* KkM6L W.Ո+]":LiψH6PTn  !L69-#:LS%7]Ҩ$Tp.=5ڕdATL(_}K 7A2 E+KaF?M1Шލ|L2o-Ԣm3kԥ" He#6h8͙.::vK4X |U^DH!1؄M`ƪ4Ukj^ ~J.PW7D–Mh|d?MhL"9.mAo3γ\\ o#zvL/>$`J1zHML/R(k(}1eKؙ6 W]g?B( ѡu4$."KRx|n&a%" m a-=$) 09D vU;kDV|E+% 첫y%wQ+u'49ān{cd*\ޅ#T։l7MI[ڡv5yeW Ӵ{idIԄ(Jkg1oeZZ$7 Lx] b i 6z,ek†x#Zkji6t1d;P%#ٜ ^&d85 gP@9SLF.!!*Fڡ4D)=F:ҀҲ NrI}*ybQ2I0vuD[Q8L X*5oCK7jUʕCjm0d,gbbU)Ҡp|(Xz$Yj.ZY\7jL\hӺؠ'΢,7z@U !h~dur0KV)J"RwEܦ"8zx+g* YRɠ((|I&":M*0ϙKe,*RQxS͇A櫿~j,M#Ut[ Pvv53<}ۈTi^TκR:(|XHc)׋)YԌj)3gED7BI&-a(BqmjQg+Ty%/;[Tcp4,GLڥT$LF^)8MIkRIRMM|WҀ(ӈlq5CQINQl\2 u4>A('X&l1sʢ M|廬>.QR'=ȱrܔ|*%團|GG*m܌4&TY%L-GG5tJL!wPg,G9Λd&)0clDCEkIW⚑t"uړ#CYN}zLS0;np1ਏB\Uf>#ț 0];_iDcߊ3䮒IJX -懅3!mI&B|;XD"l\(1qIc `'9ʱN4-"r&fMwTҌØ$)U84_K:5fIJJ9NfF9"(&E*RѤF"8C kB=$`Y vgϢ&vfvv{^z`bebcR '_Q\S1iv脱Bm;Њ8#OxK-,I^i8xw8P$p(^>ކPZ\WQ5tinJBH9{ajS͇򙄔~%3D$%J=39%<Ō0#ACX@:/Y&$.283g32 *;3Pa4g*jj ;b ?@@ʤBMy #" yi5:\#C(Nj6> @^X`XB&Ux4(PU{ r5R 藤X8rR`kR14y9XA U39Vyb^@B*hϙ8/:Q6:i'!? \4DӘy8&HEAB fÊ))>9)C!(Xs TTEV@W[E+%+'{7$(ے0<$5Ee0+I C4'9jd@>d?EV9S/"/Y.0C9|X!29|LYh\5ÀD@dUB;*-95{K M!A2GUC ʨGl6",#,3˰,\IkgA'B1%R { ,t24 Ȅ`!p @ʄ4Y8p a ک : Qh똝 钋$ȋH~A@h̀N#D8 |M脤09 p9ȝX dҰ噩$r,qNr4b$OOl$> * #۬ú+Sn/K1۽wrڣx2gБ: ȣHN"99 )"3:(q{&'0$3qA m"2ĝC:Sc ;ironstream_scr3.gif000066400000000000000000000223601263163240400406040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  *0"311 #(:A!A E+.L8:d0KfMU PnjTkisq GJWMOmJhZ\bs`__c[qhju%.7); G UGPM \Yu gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZb~}711<1HYR|wrRJqmj ,),Tr\wszuz0/+% '0.(4ZYL61eYTY03Y $I&^M 69Ps91*#J VZTNhgO{\SJ1BM{\;bZق@'HÁL86 4@i&9Lɬt0! %D6@uieT:#gstD's=v_#3KB0v&Ӻֶխ["@ʠ (|3ХE$TS18ZjUXn,e)I,]~+щAxANHT9ĄDxi8m'D! eZL"(m1W%d'Tr6,@儀 *P~LR;TdUߠ#٤\I۫l: NmTƒ66MVdvEC~(j @Q%C!p[`h6! җ Qm۪F6+g 4WP)O@ T\rOTR|~2i&6ձL˞3%m[nǧ3=2tI>򪧼ȹR'\N;]Zя$WPTXg,{/-q^kMS8 0Y({s{dl 6KM7D )6Kmg^j<3˕{D~[?-ǖUbB]S~uavGia!F?y&q~'|QGzQ=~FJu'TPGQE?Q%&Zւަo|NWGdtMA|aO|k9{ɦz.qɶV k!& %auu'@s$&vG".b'f$mq, k% ~M~Yfh"PUv1>3Npw<0w6$D9euVv7`3PxGq$u $ ~NXeerвA @mȷVȧ k V6D,ıiSAI9Yzbb؉owKs6&x؍P%?3L>W]، V'|&VN2b) V-0Knrr?U]YV9'Ut=\EwjanVgX,in*'2&eKj5Id.u@Oa?T]6VmhG הNٔs r1CV"%nap19]'UUO/.P9hEQ$A:s.=! 524-Q'-[ Hs lx1%T hH?1AYT=JK刏c@/w*aQ<)~#RFB?DAIKI@|wAtc- YzaCP`Kb4 "{vDI)vyh"1]4? !C{:A* x cA2@NJ]Z* q qQi>hjZa*6&Y!ZajVD _Jar-ŖtPs ws53a" :w3vZi*(ডZ+El\~@iuww>:ʖ꠴zȊʬfvʖZoup^o&*jکΪzaڬnʬ ㊮ ۮȰ-x-haju˂ۮʂۯ%K*+(˖nڲk+V՚2 +[úDڬʴ*jN\ bY:{Zʚ+Z֪C۱V /۲9[+#$;X{0Ek蚲Q۩:OoƲ+eڂK;#oyˬ qg :KuY=dJ:i: o:ziiHWY z\ЫLA> TBKqq໧5ʖqo>RlI%t*\FATuLmV闃h!`/̺i%2A MU V(eR9Sx2j1[eNT|$I9TN3Ș^U֒cK)\!*3g~ľQ媏nykUuf'{ ! lf8G0QAǖ)wG'!u2:f5gxD13p0I$3.C#0ɛ|8!I{K44w<GU!p`p)P'<[p >5aTHJL7O6GOv7\QvTX1{Ny!=p5IS]4V#| GW W,X6J}F e'͖Q-V<{Vt@VOIaPL`L[@9nbj3 xYv AMZ &ssmu {0Ր΃ y ]oI #`fe^ _e, B*zVԟ`EldRλ 1f={`!ΐ d\?5aQq4"bdbbdR NJ̚]MZFMZ$PڝϔmP&y[0 R~J_!veWn[FJC MYFz#m`!> ;0ܤ@ i# s ܞ}h}hARj`נ5J\21 xb ŝ` a ]iR#2f5͐YkɃ'jmئ{\v@xr.s$/*+QQ ֫6ݐc<=2ARXlLzҷCKYrP^佨4gqLTArxZgr{_Fqhm?j&Uw3 ty`M'1uL#L#ARxX{Zu?P\S F'~VVVV+hn &nW|D9sQ2((xUrx@ }Ͳi|v'=!٦j ĦolbuH!)6T;_(^{Mr1},atnVƶV΄&H eG~fjyˣ =Qԁ~{@`p<7m;1lzzq-#Q SGvw%K)p8FD,aW7hעжޝwrt,V˒ %Jjwzvd2 LcHK؄OR$ Z1r/n+Xnjۯk(F^63uȇ凱)eڕ"&DxHc:Onp@ d<-Q ]čXJ;j !\whT5vYok%qϜ#0shsiKB%BPQ8d8X'S&Q !jXΤ9Ɇ)sΩ0iΰ9њ7!P7"B["89gå09PYf36cLc3AɐgW\Ѭ0`c'aeANoMXřĪE&-B]#/}8ƺEeϦmX^S gk u ^Uuc@w@А!Ӝ"!e5pװC&N:3,c諆.!h+?PCo6* BPlDD蠆q6*@_bT N,jD׫:4DQlR2;hˌLi$C6jnK;L\QrN;"nND#5AH j+4uiN<"I*Ϥ,O0inKrLb蒔](*Fq.r}K~,M~r-d|g'Dx|Gu#QҏYL i;_ΣO\/\ DrDH)]XW::aj+܆W?aGH!l|;Hj7ց4H61XPN \Ttnv)YMBŤ 2sh_ Vi#Op;niZ $Q ,h 0KѧZ8a"J~S}2G7M.xKX>Qc(-%!Y`7Elha X0J xAe ? q ,!ߒ\#u,r `Գ# ZV Ǥ= &0Ae!G@n|K:g\aE,ٞը=L j(Dy8 @n"XBS}vj$$x|LPEA0ySкdgG n2 :7Mxƺ+ÌD<&¥(T?K$Ǥ޴ R9Œ FαA&FCP46.yg.Aa4fFjBezHZż9_PC r"ld;W}ͧ/6Y <Ҡ^hI^9hsŔQ{͕800M<N! 6mu=hU~F,%C% I^lJ(Z8[gY.'nG;я&9 \Fk8&S"Hݸ2[TPBjaEM $S\Qv`䆡 $NtB/iW78N2Ŕ4'+(%dGK!OSĞ(b#1 pBi+$ɜWl% ',^I`3Bq~Ù23v_M kc5iRtȼPD)f>!4QRc%:Rv, JHC(K"F Na yVE*҅*ٹ$c5~ڡo72@.DZYwm|{G[,l8#-Һ͒y(h_aaq냐Φhv;׮S P'l hLض*0*R[īWRWʏv 1h qM0x0(h VG<2Dc Oa3-F9f!UnT&+V[k(D PH HPW#BXѡSf fN2cIw'mՉRU?\ YNBl`vr*AwۅTWQ)^BO[)-Y.kmu:1 gZ* >ݣA$(TL0oAUz45-I۵1 oS m Ff#uGy}[9y'-LI ^O匔UN&;٫X0_eUAyt+O x`N Ip; )+  ]Y<&B?06RJhiy +'`Q!Db,q#ͯ$.29s<#3` ;ironstream_splash.jpg000066400000000000000000000040711263163240400412360ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQq"a2BR#b3CS41!QAa2 ?q !HDȉʥA*S=`s+un8{ d77(黻`|+ Ot.YL,B3)4XЎvx߲>O9 7OC$XΧڏ`Ne  ?/V%n\z:0 ޜsnd}SnsԱ2KJϧv6mT~>$jyJ:~L͏Owd>s#>r G0Ά$Dc{Q%3?NB.Lӎ|Mm%eg9ỲQ>(v~9ɛ.yc'"]BsbH@lw i \0l:3ղ18 ف#-R!R7 cU`tLsuY=} v*yq$9\4y*jǭd3`ﳈ=`%wL߃=%y$Bqgݏ[)1J.S,;Xa{siNKn'-h˜OCج"vbcdna^+KiHD%MH~u|<ve"µ=If[6qxw ,c;et)`̱ 9KcnS*OqL VHJT{0K0UҖoE舗؝ܽ/,#\RmXH-o<6KWH۵2b>hPr/M1D ;0\a',B0+dI4|Sf]nz$2r3bheŽ;W{  /t LG|Ƽ{r1sBkoDKoRAl[Lr 0bҁ ]mЁZs{'GL9U6n]-lگc+c|yEVKWI[dDh՛<\wI\o_{\ Hڞ Sҹbl4jiKYy_n7Kp/^Fő lH;f~1msYr$ a@fù69K)6-UgyWGBjyͿV-83ґ{ ]γ)iH3#kVyیaJ'tJݻf ~=@c)QzwBΌΞk,":tPA5kŲ`/˛BVZKgsMr mRWĖ]rBD9t69^9n%"8q.f_)"2ǩ+Wpݽ)DZ ]Y,. ڲ-E[Jgw&@*Ro_y@_&Dv>'L"F`ͱ0bsD嘻76AAǢcQP$W2R͈\{kե| N7!g>eٿ^dz߷clzb.7?Gޘ;spQ,ʄ+J"̱3s}?B)-sg.L =SeBjv-l6ht! kalah_scr1.gif000066400000000000000000000427561263163240400375120ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aפ_ nGNJ%Sy@1f$rKğ Fkr*{!)B:J{1c1]$:ьXJ){!!, dihlp,I%q=[ n9XF'Abk&Fp5FqD2Fi`9oPrruh k uh ojupj p jji hJ^#5   襣O߿t Z"F|F* P a61Ї>8yr·B0;)AR:1T):"$R H/XRx"uJ$ NdUQGts3R0Ij: :a Ib ԣ9D%S$:*x(J*,d1eOOiR)ڸ2tS$IR_Ā)vկt*v\/!A*,mv'ߎ1b#Žyh%aMH;mOI,QyVnV^rJXtVPLkTeVgXg0ݡd)Ud_vě!_k&$7Ie)u]$W1c%OD H-(HbAVl@8s4S*uMe1ubc3BkޤS3r#"nӒ6(SO{^ix S=^PxdeFMU(ek[jաd}IP 6YWI cOULig>EIvՔXK iXd{WTY[jIy%j[g2T|N9m%֖yG(JXS'>%JQ0Z1aHU-i[N |%Gi!{2gN%h>5(`(7rka1"$^1T ,Rq%aW>WQPRV,[;WZeUU`z~NU̴rWosx%ViUۆyR?*_;wIf΁X-xt|_'Tull)~="ukAx Y$jWE,$z?߁klon ZGG{S)?'lb|AbaE6-XTMS DYbq0OS?S{;c9K` Gx$ M,ʓ ͼwcaB)#0HD9QqGozӵdgy"ZjkB͕-x}Jrk5ҔJ+Γ4 *闚J>X\5%EP9LJt| rQLF t#PA3VՕ : ڳ Z:.7]Wi &EaNL(Fkur<""G9jyYd$8D}"F"5[-A*CҘ&f23-rڛ3<3d0%3\U U0IRqDވC(bXzR,.)g`^3,Hq$)E I"lm[-jbQ(sK& `-lSa21Ħ$fVsQi Q1ӨK4X<̚'qf4-JTBǕGl1Y=(k>@B)THmkcHx(=kwPrckNTenon.mOvq=LDU+U*z(~O~(.x\"=% ⨀Oq,3@IDu?5p$8\{#v}F .SY+Z\Ruc[Jk1硲0w׻4ET pwa(~-)U?Åwux'Kfxs[& |wI:h^kZc&ƧlgMe9\s#m'zm\ }z|pk}᧷D؁f唳8\ۅ‘$yDБ-K}^),b/I7]^?Ԓ~UD2%~M쓀NTL]cpвsܕ[B^ F`w+%f "}s$&8#!"6jЂ&x0C bPplr17PP@9j'8O2dXk8'~ `lU Xb>} ^,-y6 xU q,c#PS V@BhÃl%Ya;wY|##c0jtDZu=/C0Ixd9RD<:2debUQkv7+&DaZT2eu.G8KGS'! f`a.1AAbz+zMg&paB2"02S,>'%!FL6s%?` 퀦5n^&Anv  q)ѥ'#Ew0{w0vjP apF@ 49:0`P)y^`x j΁ V$(5$Pjˑ^f Q0ਉ::I:j(Qw 51xʩ`J ]qk5jH 9P:@)3: *`wF$``Z ҫ(vך ~P:F)٦*  JбѰZ 2 @v!`PTp5!+ z ښ6$pkВY *z_9z٪ X+R ư@ڵ&JV$5yQ'q)̇ k鹶u  а:B{1; CΡ: #@K Pz`"ɻ'[`ڋHgɼ P{/ 8J7pRך" {˩@C ЋA!iԀ`{0$Q*9Ћ[Q))@ l@|~`ں) ڪP[T]k P"z Jl~ 8jI;PK JpSL5dl5 p!@qj4Ѿ)j)I8!В`|vQྥLň0-y4P3: ː@FR+ ] 'YK ];eV2iĻJ 1 Pa >:\#5 u:$! [ƒ L<#mq-iPe; b6;ۥ!<"PL P6ihp /2 fq)V9F3a (pGΈк,"˩6vp9mL> )9* # |o@Z꾃-BE_;B;qh z_VyL\׃h}ɛKu]<vN,\ -M۵]7Zͼ]]p]=3M~ܒڵshЦʬ63 { r⑝M 0tBy·=d@jv;&`4{~@D; ڻ *"r2@ ׾;uԼ-̭w{M1ApxĿ\؍zе k@kvAjȇ0KPu8(T=n@]Сg*oׁ H.s{kݚ@ p}}\ p] "No.u2!x˱L\l]vQB<[諽XRq̺O++"=-B{` ~A[u.. 73Nj̰`[^Ƽ+#`0$A,bϼ'Rn?0zRǞۃ k]*~;! ̍NΪ.  0 f?nHam@4;F<UV΅]OIV $:YnN>ntDo`O2~o~nR*two~ [e9/3 yMS>S!:@R|/*߰CQ>ne[N(bHoJ܎B`ώNa@߼fnGO;RD*<A5 dIEr h"EY,^q\2ZvŇDaaXSSW#XD +a> h6 .,l0i@ʼnTP,|\ $,RPdh\B]d`D-p|rbmJMYpXm-dxu%$qa$r EMxfL1@j\/N%0e6X8lP|jW1d'g9C[4ˊA x)H x0`&jb:>NA p M)HLl< )VPpQfX,:t(|aaCwxJXB2k MS-r@B;uOΤCG ՉO r5hQZHH|"o*8{d$Zr.,a߹8;KcwWI [Ƿȥ-4,lt԰ rd VL0T-aaޅ6|jmStUQYl!Cٚ dYLΙ^]̤vS/Sa fqLF%QbL1x0L Q7NA}iDS?xVTS) fIĖB7q@8g#y!UIf0ʋsAH VyRӤMdtl7Z}2\qAq(: |T$JB2\I0(,դS@'9`B0(YzF} ϢB²&$ 8g[QAZ\> 7bqikE8ϫ*BeGnJ#| @Ȍ-hW8QGlwxmB1pp2H# .> hksPHg:h`?3AN/-L#l%, fgǁ<@AaQ?eԐC'jbU58P e= |Bʧ a@0X?FQ TDAc@xS6'VBDRW2@Jב%RXbcL}qMd\Q\]PXfOʩx!j!$MN-1 bVH;X:RN"HƖK RB7+&(1`[M'הQa3cD&P%j'88Hݐ:2I3MKZJ˛„J=]%`NR(́[S^elX?0x88AP34 Dh cw l KTlCqnl~Ysx͸0G^ jCXx֙%8 ᜛$ɿ[w7R,.2sأagkE\7 q0Oiu;EuF(;d2oLչ>$|KW,HcAz`?Dd77z!{tkH D4b8BXD_7 <>]hݱdE: ls|$LĝCЁYk4< lO_#S$^&`bY^ą 0l7<,I&]TCD ?I4[GfQ:1 7Le}%d]Nn՜ 4~U h P%1XDG$"r WօZ#bDb([uI@vyb5 tñeiZ5]&KḓxFB L$#FRX]u]X_]O$^8=b)(bj)FX g ܡ bK0B]f,X Ԝ::H;'"ǴjV9X-\^[J fաa`Rg[Dp*b] W-@I′ %ᥠ֔nHC/,l(f1hce^!UD`r40.(2,UK.xU\N&kCnz)&Lj]_<d\/63. EE[!: C<{rJ'u¬0=X@Td1ue0Z)z:O/-:-*[Yn%B?"/{WsQMw z['t ? >fm{{BAH>!ֽ0C M\Q3ג*.`X$FM%Ǵ1dgf1u$fm`ީcX,^g 6P"pT4 +6I7|l#-Bn:pEuPRaQvE11$3S$D9`TÔthAUQ@xŴ(: !qQw{08aLQae,Kq\TQz*p &r0PeYH`pbq(Yl xdxA 9p D,Mۀa]E rqdb8$CԤ?, ە.ENX q u|Xk"&Jy) K yIوK)TxpH=iCgp8*r  EtTRɤam-#54o^Q* $Ž#D^գr ̎(=sdPƱ̀>>\@ Y  \pF  \b `C A V=DwTw#Y@D y:\Up[<,ka2jwzKBDgb3$@B &. ,HT*tqdy7[{,p){D193[LWPo2FQgBh,ƛ4Jewb0 mG+H4vm OEBLf{&)r0w6!z@@^FHd.i.KbB)2=)6)lSYpYK(ڛ @VPvRK 2k@÷|?dk%MJ:X,[QXRtۙwJ丯oAC2>[pMã(f#ljm!M_L'ˎE(w@ڥƽZ7%Pj;C5<ǰTУiHp$%xgkāKIR4@XPni5(7y(FZ 7Q6@+xoPx|,xKi/d47BB?ll-52 o9%5ϩX~pANU i6s۠j){Yy: "ȓgGF%ɑb(AsS?-#f)9(.JAehfkԄ365P 8~pdDRM pcz%H ` F,<>h 4tJHݱdoh P }y(~b6*Iu@\9E6j4 R3B*  P x<VЪ1rQ=Ψ &@/QRDE&Ʌ`R\ Q)H]IJ)XFuz(bzW![j(.G >\@zb 1 qKe%s@/tE (`nV`(}XX7"H *8 <-Z$$?E JxP=HS &$i(M[)BN"2Ti-EHT >twO^Q°$9e Dm.h*VD@*OKJ?0psCMT0ĉ ` :8-|MdhJzUTBU l+;vbJx>$تFNT )9`-!h Ψ^!`~U|۫ HP1P'U%qUX  j߃7ULJlX Bjda ݣ8No1'݀sL-#nYkJGpbOʤu BZ<rx#HbCrZ g =H*&4x- `@lܲ uUls xM]&7O5>3xӐ,jk.*E~NoǛ u]N(4yI#Hw&. w\\eX`c|A7 ?__D#SS('wx ]Sv܌ ю7@ԜvPw-I nw Vox`-G Hxmq̶:ghFP@Ti A r@ Mu<@&5"i L O}ZѫP7$;1P940KI0?[#ܖw'[e AHE ]`K9/F >y{/E 6R29(a@E0iށ|gRV }8t`=H$CdC HH#!8{h3D|(22דR> }bWB=kQ Ax'vCHhł @E`SzQXA/&ϑ)0$ h(\[txC/) D"ޕu=`dtPZW3 )C 6FX&Pp Ď ́Wu[3؎/r +}G4rx63x  >#wP@XU)8-D9r*ΘARXqXuX ҉7AF_Y0 4\@"W ])7Q@0H d)80T=xlpPpW?wO g{$yڠdrPT8Jy0&6Y; o3V0FV<5#pE29+ug5A3Ctc䚊0$r\[Q`*y F  rPQ OrPOD1u&`E[򉕒%&#*,#72,9y8“@|c-@U8Ea tt0F< QO8 bt1& *DBD0MB|  2YYRO%y E 9#\W1}*C uGKRp9(Bt Z$[U:o$( ,,1:pmbGI"BRgR9 Z"T%P8Z㓫QP1WyI-P'i 0$1UI"yZ'X \[y32:CF:zʠAګ\ 8wJ j]i$XnUpU0Q˱,dA²$;p٢8*,˭g3&Fkd-+RO\` 0ywog@X)P>+IUXAÞ01f!@07+\;zyi %s*z7)1nxvžVK+\np· ,9Mt;4-+ʞթ[PTK뻭zٸ-ek.ZKY;7D%,9 P:`$iʵ IyݛY^گ9)4Y Z;F7ʬRݩXj k6j[nʚ+qnG B ,M{\Yk,KY'1)@*1p7&=$µ [% MıK` <6Iʻrr&*9I;;@|ŠƋa),ŚNlUj ӉCɨܲd %bt k1pt 0˫sȊl{q\>3Xq"!\ { V1 \%1PAG{A+ J tJ\> ̘܊q)}倵UJ r%U=|y,ݟAy(|e k \ǵ#/N,e 8mb3S\E6`Y>}Ωeۧk8M$ XL1x[(lGn !iA ֬P x-׬@ k  GY%z PGaēi$Y"Bh繬E ש$|Q ݮc4#Kʯ͚@ЋEY#zrvlXɘI:kWyz3=j%Qǣ*@ZB:Ԍ{\{t9݊#:pˑfVH/ݭ˘խ:w}[u/%4R!ц msTi½ ׈XA{ ENb6el`A S -۟FY!kܐ'G"c5< G,p'vDh/> )s{A匓:4Cu2==yPV99bEF#Fwfr uޖ엷@C &B/n% 4u`ʀv8aÑ sXÇ 2G;tu$GB=vrW4R0HTp9DZIE|h!{AxTSxx 4xuG ˏll{DA8 $1y .."$?j?RA x0fMF#M~y9Q>c%@#xe@dЀ P@}ŨVC|6ЀVEwhZ`)#e(J_URjH( q|Z) G)^: @k{D)mv Ġ~nz zn2jΆ[h)[(0\p nY0 ̯n{1k1{1!<2Ʌ;kalah_scr2.gif000066400000000000000000000431551263163240400375050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aפq nGNJ%S{J1f$F+kqD*n){!JB:{1c1\&ьX:J)!, dihlp,Ir%}q-[ n9XF'Abk&Fp5FD4Fi\9oXrruh k uh ojupj p jji hJ^#5   襣O߿t Z"F|F* $P Ё61ʐ#D?0I PNtJ=bPN 2D(UH$$h " @@ ΢K-ta)G$0J*NsjF*%QUf@Aե< a@/֠jKGI=#Tҏ9tYFQ"Ud!{b*Ƥʺ}D9TԢVLE&KGҾү9fU=| T9`kK;vXhÈ ,md➔; j.*ҨWvo⪞ě#^oJ%]UXLkTLdB'f.ݡ8tvTw=UWC}VKx~2X{[$wtPJ1_OD HH_1 k@8#r4Su Mb%Ebb0gք0bi%zӑ4(NwJf g(eW|~gH* X5X$\qcA(jW^diOVycIUdAn] Zz⏂gz-N6l5]Rʧe8&K3~V_])Yv|Qdx9u“Q e&R;줏$K6☤(kH6iSvS(HSB.*@!"@#n "%$J斂nHpFؤSREJpgcĠ|tK[b$%{;z@\~VeB5S˰^.s`Ve%/RYR*Hj{%ݤ~I[nGuTsUNN_ `UM!2Ljr"j"X{ĥ\ogyBr2ȝgxP['`iP|$K eڨcvhNv؜Ěٟǿau՜`dte f!2돔 Xa8 fRlw-Mɤ)ݻ-]]0mĹ2T-ga{89{j8qᲬqcJ$+q@ОU_H,8C`::[Oby~LLdXE 0zTJG;ܢߋ^ E )]9!!xKLwXy )D,TQ7<O'KB(A!/D["U;"o9)@ =;l\`O=O¸ÒNF܂Bs,Qh~c)UδLeAf&B.0Û@VLf̮f.p9_65[lBQW{x[Rd<3;ɭ?pOX2qd43cS 8ζL2IiL$#۲-iOZ|V)'v42~Qa*oAl^pt3sh [qStE 9e>aC:z+wc"3B=N#VG,_,E!7x?aT  %wCXWVh H}Ssc颂t]>a&0,H~ױ J'zxxPUPg$RFqMVgy$!s8w;\!Q%pBhXr(d$e) 4$6 c,6>&&)(ţ=ZVQ] @'Xi6}Ҧ"VC-nH#`#O7h9V1+B"f,"%.2ڀqЄ(@a1313qj:!D$Nbc$q871)𓾄8 %kBaUx)(3aY# zS'~  $)#zI0ttAz J4$$ @sN3EWyX5wp㠙 W`wy.\"l7 !4xy>vPp$ U) Ӱ H3E,Yysu)P 0 Zp_ӛ c)`! : ` $ %Z(: p/*Jq@9@n 5jp wТ8` *ɤ`8'p Yڦa%:2E /&zX` '``n`^VtJ#?!bǙj *2Zʖr{ڨP0w1W^puS^@jZπC[ B 5'ZqkP4z:`_f Qa#f0JP2&.`"ʺ w `BZ r*tʰz`UhɁ`  0P6Z:T:`p7Z;`"q+~PJWj@_pP"z9)*;qd0V`#cp ;v۴ %##jNFK x`@!+ @k *V){H  k6Fp?+` 0I:;pBZ`; p PQxJ$b;i0 ODw6u p3E[skPC C ۷ KpfA$ kj ж PPw +|ZvaO`@$J|!5K  Z p .Ak`7\[ W{` Lť닙? fJ;@{F#P" \,Fq B  빽\ߺsV¤lʦv6[fbllq + pB-\i{7lėQU<,+D/'kܩs2LY\BӀuK7 М0*Zpɼ,%vpߙfԜkJyLJB , A.|•#,#vvC` p B{[ ۸A0= K Mqk0?KЅ\;$ I MarPv;y@dmoI;vT& - py¬y<7 и { C[- ĎV~2!σȭ\,0# @ &"% -ݗ!\Ѝ6|JPЯ{Ś_[a-,-^o J 7}n  2lޫ޵p Z}ur;]uȥY>lr" Z`ח}l#niп{-?|窵 pnNŨ~R-l]4Lqފ_fk-"I:Hî| K^?hxU:nSj?:o~ /"DIZ>I @^ u:}QɁ"Z_ayUVtm Hj1qYf\"cx8mTR&E# b-h1 FWS(}L%&ᱸd(p0D0l XU0T$ pZ40(Fl nmg Zdp>4\P!̜ 6< ~ׂIÙrhx#CNxv%ń먉AoއK0)Uzp䌁. 0H`csX.g9 @"[3hV\/)jٸ8*i`uHI' `0aЌ Ff9)p'6 tVܫЈaa/iS410nvLhU#YK D@NR`Yi-4C+Ȇ9efYpo}A]e8pEGKi '44}UP5 <[aKxmD(/[h\H2Éa0DX;ffPhˀ!%$wA5V|RSLRt`syBWʃtS %'/Cy b1?JP@(C8pP,'~@iȼCĄwy10 TKKM ,IO3HSńe)G%z ckjL˥ |REnrSzn 9٢ᔊwo5P @29y:>pr F֙y`W(@ ` t!![܄RE^UŅ50îi9H_M3QŁ=5}mkFDDȵ^(]5 MِR\ɖl >ZБm0 ɒND<m`yGR^  (_(4 T^ʖp @(4 `ʠBSl]KL IKPY\@pP\YL=-^U>k̄C 05(K蕁-8ؐP4EU,!I1."! U9H!7$`UlybԩޑHND0"``]"K,"MOiB1$2 9F͌ܜ0K/Bi-5'8WFAEMU ]څP 4%<m)[ 8晋LrA&6PR~pIAMG 4nxlIU4%؆RI8IUII03$@ 5,H>@4DE!@aص)$YZ$ȹc+_ a m]a"N`QͅթPr ;h i]قT T %`)cňM@)rĭL_:ԢMa X&eX&R_! MMX`kR,٥rZ&n_0X88V0X_M@fiǤ7ʧa=JeuAxP"FC~Nm]-y#\V#ùN Fa@ea\d sI^ n y\==\f;QLKjM╄A(U|*[Om__J%q (8!/f͠ xʹ)q_!AF*ޓqd1 Fp^q*bb QE'pEhf ۩ 8ڜZ!G4YZ1":`uD $ॖw"zRZU]&$פ ]JIg4&a FD'pjJi\\6| Ku@C!)#A4>i!H_ | daEnJdTK )RT9؟Pk ,ne$+ڔwg!]^bsj܁X*fNp `J(pL_{-gDPApe efP-dL dH_*l%I0 +6 L D3\@A5i-:릩:8>U )'ŝ.LbB-4-AnEm+('2=Y\v ˗.6KI^mG (pŠ]v!`5+[X]dC"QaO^^0lB$ Hjm!& A˅`* [v+o!AEi^}ģVSlKɕ 1.&i^-BbhZ! sk5}aV:;o(ʫuvm2` YΓAcX`V]CIPlȂbp~;(6Fm!CcizCJHhlmUl`[6E[:pH,^cC;|] /G/0~M e}CP0Sڄ̠</t2eA)K|f+*{ݾ-,F̙h(?7?)3UFAT\CCu1\EStE\8H1(DE G_qR ȜA@0Ғљ#$UĈR:CJvŴMY HۻN%QRSC4TAYI4VdQI3 Ut@0dzK;<f+dSO4WuPBuÄ*ŭ?,)Creg[ĄmR&Dc2"xN*a? )uTE}ML  $F<0['IXvE,e}K)\4Z߈mGH0Ƃ$:`@*) Lb;ņTFvųx>y0tQrPgqcSTT3YB"AgpAa$hqd%EpuACpqq[r0sCQAxwÀ1񫚰*{QщsҢmJGZU.ZMU; *֤ߔu~9Tg% 1thXg? Q&c!,}LB(E <ХA j@i%haņH ,T !h)ZPk^:@ߌh` CU(0ޗaWS8nj 1c8IAhkM!.`p&hZ4]@`w "Jb_<6BbK0cy9S0h#,sx"hzk FV !AT5R ms)x0 7T X€m]!"UaUUwPe|UhP]d9P[XP8ua8h* R]u5)Lu4ÀӄѰ[9`aAQqMTA]FX5}L_RzprcM Q˜Ym }M4O1; 9NX@kphI`)8:LDŽH ţ^Z$)gM%DA+|tccEJUPx'<@/;[.@˼s= Ms'$Ʌ*/g|@300+gq#=0M`!@P@!<р"F@D,O,Y]e^U5x` mjnYͱFK݉`5 jP/ ׂQClttzmѕTC]Pq`VGxج 4`Z19ZFgm)c"+96e@3~HE%3ZAVot 8^{aƯФ!T`u_8MjOsIkeڃ`uE3G +L(:4&OXy  Bӱч)hlÊ23X@R?نR+дƲY⅄&avH(͎)R`'KA .OB3ej)ZV@$Xd<ԝ2mi:@m3:8Pj̵7m:Zϡ.B&B"_2JB_^7zXADusS-$zug.W!@ %uV|]ɬd#DQY$A8թ"e,A]VheLx.,B1 y`RB LFc  u Ugrh1dB/9^c)'=]Kz<(B*3K XyޞT[N{.Y3% W_W 9`s8`Le\ČfE$DA6e[\?U[O3 #c4@Zk>j=p0`B"#W5h (_9!b\&A _=#x,0D.t$^}n p=tj>IFZO%Rq[nB C kn@!էdf'6$mEz:׺Eg zĖFo=K0sXH]ӂjWUmJhH(hq $Gqҕ .ܿO o@TbPZSט` ݛ5r6%\N pOC1 S eń"KqBAF86U8 BGx,y%KAc`U)4'yi'J]zD!"| {W6%0ͭ.tɟXZniv.e8dz ,- ;AkvBC 9L((_:-](vA8X2ʼlO;^;ΡL.@ $L` B')[RRro}N3;~e`pHpmVQ~vr&/ws]|%rmfFt 'xhZ#%_%U'T9lPu(0f^G'%8F 'xrVC G]b¦9؁r"lBlql`8l/+X9whxhX4xlm6tNE@d[_E,!<=UXK7W]w_o/wI01 &X0Ńz׉x=[wpu458`t %d%zVtRqHPHJ48LRr(%0Cs"8p X@θqDHl:`%'pzo0Ԉ?wH=D-7O&phdhv`Gir7EP%Cz4َUIOĨw It0,-#piӒ3M!d9$".y&iB.Cj>>Y@i/E6i8i 0!]BvN6t. W0vٖHW<$2!Hvm7@vV`ӈ]o &M'ae1n^Pv=(gd0rOPey EfQJ(B^b%-Ybb MPMRq$bp1!UMD)4 ~R**6/TJD.`m '\1 p f+yg U70 .tKHz@MPMg :=4UTGQgԜ0q'֡hfqXjg:Ru_@&DSKN`Ӱ[s9 g 'Γ6q wK< kU(.!A&1zNg;h`^JEJ?d^@+LЧN6P "`PKzG1{Vaq>} +>m03Ujb ĺ>YU t A惙fT-$ڦdOЇ iIbK_|~6):_P g,p:'^0 @iJ]ڰ O'-fE `Mq'k<⁥ '*Z u>ae:fQp;%>庱4VY0:}4N JKQ.Q.,{aǢu ܗٰ PK: {ABUZ+д:C4Y2UDb4ڧHX+X*`4Y=";J+bkQ-t'N@c; kiPJ͛Rx*Ke[нcqI +m-FS뻂ig_tR2)LkIRbk=)ӻ *۽JujKz:EPS J,+\ 6?4'0?a$<`:H:_ N˷ pGL ˰3zHMk:&KJLz $̮^ܪK7W]Ly"S[P|B3u#uZK4'5 o4¤{ɱuzЧ+”j} XۇUZ MȱȊ{ ?D`K=M[ t)ۻ| ( ?Q⻂U>z쫍P[ly˟> 䛻@L"' T_Ci=||`ʠmzԼʡRr(QlR+:$U瀵+Jԝ,;#|<_V$ 0(#òL?ZշK*uJŚw~Ҽ= q<۰@ [JMk[2]6y웴OKhf@/ k諴Y?>:#z L:UJUjԻuk+=&{䴘`[\)Nܖ'MsTst_L"ò2c.j9LIڪ iPࣻYx碃HMZNB^г}뼣-~i=%ҍ @"ĸxJI}2n^9"A މu&\2( ÒmH{ J؃>s$kĢMuJڪZ6!y]`{+5>EZ:&k8}VIJ8q0B,χ jRG !G&jI٩L brk2 k^йpQ.LQdEJPJS+3"#ALڇlmѬC)2J?0GH {2>L&^=Y8^VFQ& \: %>*䯚Hޜ: rJ&)Z<'z92W6n:? N𽁙#u Am^r辰؉ߩk:/b0;-U|S&@CE.&3.ls \]p\~u:?Qg L[^+5E ?@~{/v_A'Ӱ;tG\1Gm Mt]qS7\KG4 m6h;5kmF۬)X6bs}7 >8~8+n;kalah_scr3.gif000066400000000000000000000416121263163240400375020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89at"פo nGNJ%S{J1تFqDkq**J)B:c1Z)J):ьX:)!, dihlp,b)mq=[ n9XF'Abk&Fp5iD%}thih}k}kh mojko tphqk} jJ^#5   z D@x!AS>AG?il3gӨ ޴aӦ9x΅ 03`!AMi2DiM 65T2NI5e"'C9 LX@B7AiPFN?Q76QbCB4rs#f5RROjmpדG0g >&"6(gb3M@ *BA GP#erk tWRc7.i4dT&%mf6JCfeuvvtyPIRjzm5\zUћ2*/eBv[&xq(`w奒w2vS4]$WRȝ$8d{hR%%P/7=†\FL4=S"sS~d]H S_49IjB{B",I–Ͱ-ٖu8#T!enOJ0Kh["B߼1Y#&\a VGʥN@1 PvqVI\I%:MSd&ai%\H8 `ryГ*DUBj—\u#t0Q>e=)1P+ץQq S:ktU|>TE tc 45j;(edtdXzrA$ǂ%0HZdC.~I)2g+9@6} \8[|Lx!5@=}P^[oT1{Դ{!"|: ?apF,KdEQ@gONErö=N 1 #@U@"ahg\y$$ V 6AtnG +*X@;wP>1su[K[[Sg{5:9:ۡ$Iy+=Q&H9[]_Ȩ*Ibw` U:.P:h٪F;IiPJ/A=ԡBޫ m6@DzzT͓ UBḵeyJj1h|H2dqOWPBWz(8h*6MW{x ZCXtfE["sqQ BLkv"Xa^'h?it t@w8'])x!WODD#$euXeFc3sR@%gA$ 7% eW DXm ePNevRSP="B|1!cOX 4T!H']J90FRagj1|)oMAcL4%X[" 5ㄫS%rX},p|60T#;|23*@%@pұ)CD6&q[!g @C DYME p  Е `  @A QԘ`  ؙ_F0 E pհqI@ԠPq  Y P L5㐝$( p ͙  0f)p Ж[ #LE߀"O)._*pЖ5)) p p ֙-_y,x @Оc*Iqy0p#PI0 0}:f0 OjNz )*+ʢqlj4j)/;j>IJ0@#P (3t^`dfS^@j 0mk`#C%`BFP[~2 4K0) z75h`*fR;  :P PG тڜ ਹ X"5 6%S `y*ʪK8zE ({ʰ90D+ ː˱+JpjV7 }pw`` Rpk0 p+@$D{U0!Κ,h `KЊ5"_IKmtYj(f-v(@CB0k$$;QA$q 0@o!$ệ\I۬aa|ie`doKʫi"0봢:{}ۖ VP}; #G%cVH*qۆ8p@0#KjA< lp`[: ! N봦 L Q 7;i0[8 [:=6@ۣw!%<3+  0 P@wY J- @M.̐^\L!7)`:iYTjs-,o<Q*r u|~ɰI@6춇  S]f 8qڡ"l+BiQ4Dz{Ӽ [<4>ܐy0K ٩޻mP|Ot٥AUХ<YϪ Ks ]LП[k,v4ÌaOR- {aă+,(m9'6{c*'ҺP-@P!580,ұ! `[-<0`#\&l^'f&Ӭ@ i|k hPɗZ6Of3,=:=3OwQnО!lۆ==0XeēᬨD4{ޛm+Pڲ. bkMү$s[ N mm!%0)Zꉣ]Z jcNk+nkݭ\3m8= J-ޒ0O$-9C)g+<+= ;v+*_k&`6,f{ | "> N- au 8PEP&+tgЍwx>I'8Τk`I% \䪓ί(aj^n%y{mnԾQ7z-I3ʂ<I`콲.﮾[" NF,Q>Y=c~>\ɋPeӧPeˤs }'7u[hQ(Xmywbf ͸@+avc@LP}FL:#[6kB\߱@+ A7Oo$O?&;`|Lҕ|U깣εP5[ONJ?ԟ6 ðq^t`P@'k1O$&]V_ђ<^߹l)  0[0ȰYVXpMh .mќK!0a T+l bXL\46x11YA Y1 a0ZpL4Dyl(tE5PibVvJC$X00t`VpxuA@bHO:KX_&9<FFl&#r pe;h9 EzD i@>0&?ԳBqP<i@EY $to**NPR-#3Cbǒ >MWy33Dn }pQkm whO98GVi*6cM'LKm/@D:|ʄ @f`++6YfzU@_)k*) +YaP rW9't=a`~&<Xgc, Z0@藅 yIHZpq.f d#PӎP[qr`]$HETuQp^>&@ W5AM$"0XGw%WOW Y0AWmzmBjY o5*Ył6E_ ͰQ4B[^q0ۂ$d='dp8Kx[@TL6N)aAVH\>)ΐ B{#/{*U/E-8Jdvgm"('y:P2vYKRW|LOvv"*G\=a]gAP?07 B]Kp0q@ܽ( H Sf Ks+L]dB p-C6T'@( 8._`}dz^!6$GOKPURBXRUr 7% !E( .$#kjI9P>uo6ȍ$Ϸgm$Z4з͋$1@w$ =4}Iz VIx$"N2ýfd«{ *Ćv䤨0 80ݞ,075Lܞ7'NpqW͟B>^ymnL@`T4 1E`aiN9I)ʟGF.d8 EE9Y1O x@;شydL_<@]Eƛ $w02A@52E\8P aHQ۴]WVgb6.L"SV$ Z ~AQeX~$ hf=]T[5a1. \QF !eIYZQcJ;yZ%2F`Mܠ%D?hIx._!́`|P=1CʇmQ_)%Du g)Br4&5p j9yPx'Ma%أ;"k(yM>Kgz )FIWp(2V\*|ĢN[Z UN*Ju"9>|[*cf\Y\LӵĠyMz f ]cH`Ey@Ľ8ȵ&՝!%Ŋ쀶B~02`rbkHJ_FlRɃŁ٤]иx@҄!s6l _ Z+ܑj RxxZ5bqj <ΞRQѭx dڼQw,Cւa %FyzɟI!Nj$rL(Y>%A>r\`D _ .PC(3%0@rl5ʋr`ы] F^bEC$KhZ*Xq/1ԋibOV(OjcEi !W8W(Jt$J#a i%CiChKNrNV@F<j.hhRI|4uBͯ3(E|Ȳ Yu9ٷ#7RΊpo!ÒdB=T^E;RNN< bٻJȣE8/ =4X)LO@88P/5v/a: pwe 8ņ8;T<Hw x;Wʇkr6 k ތca^O8 dd{?tU{Ӏ"D^,ǹW!<3d :>cAʷĜJ(ԚlO}fA&U :NAk0f<߫ ۀ~| <~0}5ۼv=G <N[F:|hu>r$0XfפzZt7,Wڭh#ȤT WJ#), MaM`T@V X8b$9Ԉ`Wp؀12ecRЀ¤0!#iaTԴ!epahqW45ĠŦsA 6$AW'C5=`8A1qhf lj壱1Tc>GG].qPEnЯH7qDgCшWlRe& < vn " @dbB/?0c,\AQ q`!C:6:ec\P d#T'*yg 1DENEJȸ.4eCÅr,RS$Qܘ~!# Y:lG*;€{U|7:;\CAt;I"5*dPup`2+OC|tW4,#HW %"Y <8.ѝ '2.im%2RNrPHZUL $.pEt3] -R$` d] mA\\CV,_uX@xA#}Tb%RyVH;J2`4zXT~RC( BA0@fd˙ܢ:A_iMq\2}JHoxO*%h5eL#Bz%>҈&"z TY 1f6f7'vU0ASV<'VfcPJ l rAl`%qEmZ?M(ƺP"KțA:md!ǟ܍ cU9PlIO @~eb`T>8ԇRcE =Ur<=~f#ϻ pH$prPaH ,II]ԪNMݮVES֣G-n-|1<Lሜ$h%I˝1 ΍H&ep$5ԱJ@w3טYk?aL SEFٺ8H~T]sdBM ! D{RD2'sAdQeB4w)k5 >A^Ep :ܠD0Z-&T覀P) SƇ0eL uVtQG 11r*+|E bdgs (,HahM(8jTeȐY%Q҅n&1G4Z$ I*{aP <%0.endHDѐl+S>/%["?㔴 $Nsm)AGd4"tx<@܍0yd X 3Pb$7q&:ݗu9=dxJLaПrWPْ H DI#pS=[t#@[DbLHb%:wŶJwHb!xT`yb8~$ȘHو %%\Ɉ)0OId'L.S 2T'6_AN^b&+* 8>IC\%Ј9b@z@P9H'9 S @# " k:Y6* 8Wɜ.g Az I, 0# Id~afѐ; oXDk JTrF]` ,d*bhBᘘc&$H^I@9@r@ 3I& Ч#J-C)^'.[鏓 ʞӹNꥑȚѸ'ɕE/USZ@7@J6I# X95Ř[$3Z an@@T CE)_xD7C z6z+F pɕ 0nш5 9*ԸjPڍfgQ6C2sQڡ1 x8b;Caʚ+O:rE;dE;[P4eP_LGJ6وe =蚩:CԱe`YdۯIH)O)#:,ʮd)"i\4\2koޚ;𨍰H!ʬ\zd2) ˸Nyzɛ+_{WfC(irdx@ A٣I4B]Hcb&M%UZ\;)4,LY(3wg޷nG @Y => ᆉB" y.RTurVP6'"TxR*&x]S$ { T7ɻTt"[S68hv d.GW.I,De 7>h9z Ȁ )3cn\$,+B-*A~qr@ܒceD )%'L*Hܤ %z-O=Oe(&Ȣ(= %X hVmuo6]Q=8'C8ڹ{@ !i 9f! y(%}]UEf8:޺HdQg8@b|+=@{(O 94_.YK\]уl) I#{X Qˡz)nSe; a,R]9qe0 yU5`ŕh^qf]A$)OˡRQ|` Ya/#ce ]=Nk}ͽ K -?ΟY6/} '2 }r2׻oW6I8iiZdk-SE^@ vLvB1@aCaFb @D@`E`!e`"`C#Ed_$!䣡,#fFcdjEb(eer%eedjda`E^+x@wy޸%67z49<Qp9t ϒv#DN]n7r#Ȑ"G,i$;kalah_splash.jpg000066400000000000000000000076021263163240400401360ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDuckyAdobed##""'"!!"''.030.'>>AA>>AAAAAAAAAAAAAAA!!1!!$!!1>-''''->8;333;8AA>>AAAAAAAAAAAAAAAAAvd" !1AQa"2qBR#br3%񂒢CS$c4 !1aAQ2q"3BRbr#C ?'`761U]$rcLdžn@K`90KN\XUh7.moj#(ڛlj<8G' GRl8dEH/o2fTnYT G-zVD ZGA6RxՀLٽvNZKe-BCڽ|6hiBr;cNZp#FkxAuX^gLnjx$N¸R*u*Q>R|5:V0mq=WjF h- 0t*@("|A$VǨ C:v7{ۨ8_G$KUT1^g\}(“zX,9M9 R%r! ye( lQ6_?[oN7٩Hz[qS:ֱ͇j+`#EQ{LHѶݱv:z:= @e&9"E`k  r M&:]CӭޜK(ϖ4i Fi‚ӺlX[^aE5c'mX6d:{*ݹ3gI+[ȖvZWf1iX6k.\\Lo7_M6sH Ydl+qg=2.{{ \mRbŜe͈orޠȏE6fppڷm>_5"UDvUqnY>~o}J̭fշoVg>o+ ApKmLeԩDRVCQHI$xmn4ܩ pƄٴE '5"~WTTȯe@,,ø"\Bhd(5bEmKvUf{{2 c F([V`J=:(k[AH*prd24kp}M4IT(%$>"X)?(ˊv8? u^/jfDE/7qRjR5 2k;-x[m,M6'[Ǘa Ho) HUCq[&Amсi/m%F'i>>T_Sw6\[T8kʛ ҫxDdžN=׽jEm/}8Weq^a_ S.OQEڋP#VV`ܿ5g܄!u4%!Ms'xQ9׳MOI? =c=? om7u:W/Bkqvli9n)/E1]+-ַkK&,sP/(HQZָ {p_B8Ҍۤ$ 4Gu۟ QX)F;nf'jq濺zbO+)*ZV?Keoi;A,d FVE6)kZT~Yb2ѩPю_{`Bͯ4(_ݤj"uM ,M+1?xLJ5=#9$K13O:-E5:R^6pmENBT(ܿxյRƥOUץ+2-5j}?g`lQ})f:Ouo@\~:)n2m Mg72sX:{XdǔY'V8hv2FG6I }u%N:mo )67rD1?_r"7BW^R ;M}OԱ01Ni`o\^?{ XױG7UwX*ym/*U{-_}^^yVЩ_Z9`)cv\N|x8ص juHT/@!RH_o,ƳIQXDXSbwňrt'gd?n?d6lT 'i5\yeWIP23#`IܱNkO搒bXu\]>L>WB/&dO#ʀ ZJDHc+!$ŐpI=U.?LK'͢dRέBn=3p&SyFCz Gaz21焎\gޫ賲ܿ=Q'u_TGdmy\rD} 'THn@5U!.6!#|ǘ״Q3H1n,XS6~frFޡl&Pro.%^U*`R%xiBFJScu-ÝQF~{]+O5OͲ.׵rl ݾLgė˰ޖχՌ&7i ]*Q^[#WF0rqQPy{Mb4nR7=xV6Mf;o]珧sRdL/~f`߸g'FoDG(eq]}8+[uT=; )VM@CreÌ7moJ{9gq߫ٓ mi4n&Y<fGJWEGhHKrMQgMQuRLfPMvTWhVXv\`_\as`__c[qefiegxnpolqzsdmtjxuux%.7);  G UGPM \Y gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZ$)1ZZ~}AR)b9jJ7113dȒf*]*&KP駪>~ׯ`Êj1؟A̩Oa;wݺwEٽ;eM*P\ֱXBl[Kw˔4iLK:ti~m>~l.c˞M6Y-WS `ˣ1>IÓ'޷صɖн;r7w;yeVKI`~k=-gx!D+L@EZx݄ :߁ y#`YIH኱yQ0mHbx͈ZE縦"D.EZȈ^r5ٔ)>a%l`aR`fm[hU?\ٱeyhufQ?p9\g+gJ6\Z@FJJVj饘^ h頤r雎"G pةҊ-ZbCڨDjmǯ!Xiئd,,v@Ȗk: moޮ.ʫVm[ݾn`찟k>lq+~[\q `".Z8}ª <̄n\X[~FZ褛zvJ;{sHc݄y@!^?N8||7O#|!,"!UN8Խ'53L1Bs1KG?mh(F!NcA RЂބ6NFՒ`hn$?>]G?u>ׇ>a:!B׏ސ`HhL!6m|^\B<x_RQ 鸼?2bVSȤ&7yNj (RrL*W JQ$)>Lfr%tZHVb$iE.BYُ)%1q "bg_N4ʉpBlI7٢2-iOTfH! Nl4\?1Nr4HI Pv!}hthQUcT Q4 _p3pF6S4L%q^hVT [XɅ.HcEiX}&P :S0YW.5r_HWlBs:768ڧr5dYzsLb)0NuvqâN<1# Zb *)-}qXmE[6Qb^"KL"9.sf2o]x}!5WUmrFo glj[\{S rVl-\{1. 5[N+pU\b%aіQغpʰŴ`J4lZ$6 FXl0|Տ(T gӲ񩔵x$ɞqwa+Ѕ|v2f>Ρ@]D֤)vc5m'2>!Oֲw'g)8}i%\v٭ԅ-&bJswq0 c9%BL3.pw8LU YoύN1Dނ7Nn=Naotj7x*Y9sF\}gkZUMܫ kНzq:tZ=l?Il}Xu~w "+w n)2knSUz݀vűm,PN:`HjzIb높{ m,%. B%0Tva8%A0] YpEX5p X %S_Eiao ^923-QvYЖnf+ EDk{)6qI~@9/ӗb)٘)UlU/I;åXhO%hf%*95lB%/ 1y%p'I3!)/y96TPY9A!ӜoBhC\"ڹԉ9U2]UiYՙŸZ" -"Ii^ܙ\ْ :_.Hlj ģ^2":!:zoi#/$&Zb$21|]+*-"+ 1 )b&"H.bCX:\ Biҥfz(= 6"W.pGGv}DIj-/ rypn84VbAQ:ePQ:UAd*کʫjJbczdʤ'J>V 4e~*‚!yz㊮ZAΊ 4U9!4!/ 9Q:! k QOCaE ku 9!VEA>H>#F("=++{5+K>-6{50[7u5;kickkick_scr2.gif000066400000000000000000000106321263163240400402020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  +"3'$(:A!A E+.L8:d ]m L1+f+fGJWMOm\`_\as`__c[qefjegxnpolqzsdmtjxuux%.7);  G UGPM \Y gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZ$)1ZZ~}AR)b9jJ711Ї3dȒf*]*&KPڳy;wxHׯ`ÊjWA̩Oav;wݺw;ٽ;eM*P\ֱAl[Kw˔4iLK:ti~m>~l+*c˞M6)WS `ˣ1>IÓ'޷{صzн;r7w;ySKI={xk=-gx!D$L@ESx݄ :߁ y#`YIH኱y/mHbx͈ZE⸦"D.6ESȈ^r5ٔ)p9Ug+gJ6UZ@FJJVj饘^ h頤r雎!aG pةҊ-ZbCڨDjmzǯ!Xiئd,,v@Ȗk: moޮ.ʫVm[ݾn`찟k>lq+w[\$q `".S8vª <̄n\ȯ%xRU(pSpsIujT'< L#R V 6A RЂ `̚ vGWoGr;Єg%>HDb|hXЉBJf/>$@2H6zsIw7qp|P3y#x/f"@ʈ p$B(NqZX򒘤&g哠<@R4'AQBRdVJ ("rHC"+  .A%%dӘhJN ſ~i-q 8IqЄ =P 9ӹv3:ى{6NfH M,4D(9u:tDЇFS +h(2*MT,K-҈V^)h+4ԧ$&Po ߌRW aJ) bOVU[ʢnUBcjA,pn# TZK0ji+aq[`UmC |j\oʴ^e0dE2ܪK(\UX}yX $W[`3mu[?3do6nˮZlj0قa]MWmJcW j.0sslvaZn[ށm=q1j4l&JZŵp+gEmm^gctcgdl3w(6xôͽ8 |eC_}Cuهaa/˶:p)R X;',}39Mɴ,f+Xt~St,ZBc~_ZEiUދ-TsM<[Zmth7dDwҋrQCx')4s;\U#ݦyiVs]aY S} ;4 UfTfc|Άk6Ӳc#j4b'gW׉Ok#kvpDss[ݝ6%z,l8Uьn|;T u6Hi\Tq8v%R(Q::Xc;Wx9en.ϸl=p=D @r @"M̕/OxmFLy֣^в>zasL4'Fݹwi=ٮıS/+urhX!E}߅e&u?MB W+@>т2aѓ䰰oe:/}%fX*yA@L:/mA츄QP{^})0Msw%ў }|?B2ر(uo_C3.Kh&FTC7C)Qs4Gv;Ā E8EItC؀C6EbH8FdFwRJ wD}+-x4(03X4HçHH4II+.Jx> PHJdHIȄJH\H ThW>W)DI@Hk7t|W.q&Fx"}x{x13@rVPMn8.@X`Pvhbh(؊dR0%b49v]|F4g/-r'.Aƈ-H!gSu_ވ8Z(͸%昄87jkUm}t؏R9yAtotœP<uHq ɇdf/וnku ƳNs/3)5q7)I"J5p,E@ `3ypIMtJɔ G]Bg*zx :ILcfIte85Yi1RD:ɖtZx|5v"⤗q,"]\٘C"j}&_%r/^ђos.^3-UDi&3Ӓ(,\2ix9bS(YX9u]ɜ 1#Y*iZe_f6Za*ɝ2F)BEYd "tЏw6Eyta٠z1霺6ٙƠUʡ:A0(J-ESڡ :S֙m#Cyo>> 2yU`cL쒊(ISXT%Z"i Aa@$]ڦ`$A?1f5!}"n/"M .bz: ZZ BjRP-%GڪGqYa*!:QXR1K1&6A0IQ5cnSbZbJ8Z﹕jگÈvB%Qb.a6b㮄*49^w*B%_y${#ZA eAnm"_*4_/ 9Q:Q!QDAAKkJzCAEGV[oL9fE@@#0yNNK>Ff=S+i{5i@kt{5n;uu5;kickkick_scr3.gif000066400000000000000000000103651263163240400402060ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  +"3'$(:A!A E+.L8:d ]m L1+f+fGJWEGhHKrMQgMQuRLfPMvTWhVXv\`_\as`__c[qefjegxnpolqzsdmtjxuux%.7);  G UGPM \Y gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZ$)1ZZ~}AR)b9jJ711pQ#DTȲeBȜI͛6੧F$:IbZtz4ΫXoꌙ+~;O]˶m% mk1M\ksapmŋJ]kV_|JV?\:}zEf$?FZ\4hW[ D 9JJJrjj0ꪬ*ꨮjk2kxGT0fjn.90@ey␰}Hv,pl'~+kR뇵1 njQn^d;Iyےn 7 gV`\ [Ya,2K6,KZ2lq4:0e^dxm@y39d>+@ 4rmHAtt|tVc-6n<'c;]R ldp{Blt}ys+7ր!8j JwyZKVԋ ^l`Ezj(p~`yISp礔2 )S;Q?Jmdy)B|$½/oO2b uA G8GVQ b ` P8+b D&ӆ6 QbD @$4! U #, SBmWI0bE_=~*^h0Q{xb 1ń`E(@c ҏỹpT?VD?Cx#7 IA&~< HA} HJZ=Q` yĀBR ^Ѕ*ŠV"4FYJSr̥.wKZR/DX[ D4 F0 ` '(hC'nP6[gC|!27u `C<4,`R @y|BZP} ]D'::J3=쓢 HIR@) HKzRڴ\Qbqn H!r(C-RyO;8xaWgUzn5YVZ6Úʄ ұuzjɕO+P _Y5*a*0L@뢺Wǒ2381NΡ\v,J|bIz-eeyPΦeїW n9widEF02phG*m//mņWK^9#Zt}5][^9YU-\&L@ʹ}~Wdҡ,djԪ@֜ OapD{ڡ'~loEȖ3n}Ftn4o k]o^ ;^f|ey+z?Ƒ8|\8@[1KQ7UҵpZ^R8Exyhrvc;5 zqsGO:|&˩~s:/ 'V~"mt}XOgfGڏwup}y/zIF&#$25Bد?_׾K8jžc&4 jF?LOAߒW7~I̴^QĴJ}G~2h?ԁDhKL*L"xMd^*JLτGd|`MxpF#yCXExIK&NHFN` :c70}PPCKxSY`hl7%imxpՅQfVdwAtdRw 0 }xhS8؈8^DA&_jn0 ZLz؊U8(xȊYR9(=EWP`rGȸU˘=؋g&Wqobۨ:ژh G(FY0!|o혌1rx"5P8&zldsDWbh )0pqĒ4wv)_Y3i BEB" *9 &j%z*-""Vg)"-4Z+* 7iY3 >H HD! b tIR 24 CEqS1!?& ʭ:JPRʭ*t*>ABR? SѯcBz#(9Q :9O;kickkick_splash.jpg000066400000000000000000000063131263163240400406370ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd" !1AQa"q2RbB#3$%ErCc!1AQa2C"3qR# ?4d4h-ݕT _ _e7{E*.n2ڻN/_6&B9F}5'sT+k釠xEkB-cp;'8>_QyS0PB˄6e,%-7E$ljeyg&(d[ `orbf(ȹTwXTE` Ҽ\ 1*ѾR }}/pST-϶۪Pէw*R;G;pV&٘?)1pOw(CAjtV֕)SIP1{#RWi=J.X>j cYmō`wo\i^W$w0и\!28Sf޷yCcc3l;Isf䋧w!d(#*ē@14y9kgvP{&wGz9+n=׌k)fCT~﬩J&?zB}բW FFq[-$d?TE8ePr Ժ/p|6i*4  PwHrMV2YV1"G[ՖW06!i2n-g4XDʖyN e&^'&Q($m2 z*l nv ALs4F!u*.N^ȁɧV{_am[?',K .cEi sTyO#oI F -SYb74D@i+~mgm*1lHǨ='/2WNOcӷDf-f?/U+ŗP/$|wM1G1d0HF/ݽzjP7kZ\*uWo5zwo*V7|X4տխpFL[ꎿ ˛2!hI&vsڿV* KO.JDo+4%bbu'yyIz)9,>Y7#(!SiūNt:>KNjmFN 'xzo >^g NwqpTqEÙUIhir2hExot`GÌ "Ldc X+_M6WU @&6 16مJ7|7Ve/SOt 3{bqh]56~uo$4KX3߇ _FWe˅VcO| =5Wڽ"*L+p+ٺsYLm-5mzT٪FuV2Ym-o`!_o}eJwʔ='󛜗݉;v^'22mZm8 pxMn-\ةۀ#}"NT2X,$l.kC0rlje#M$YɘWA Kmcۍ(xYg-}Z-c~azhJ\SnU6\-N6뻶k۳qmn /2ȹQtC``\t|HEl<4 9wgW>B2Z5:׆"NIbC } 5ن6xAʶCҶ4 KwJIu OaWË DG\̪qӇeya]G~:\.^!èRcd1PtV09sW(%aӇYƮ6#ckC ;͏$\uZO !Ȃ@FުݭPmmYRuh)z/e oJ»8ғ7eXFȐGڍ+բ2'Se"7Q fy+pPr|iz,v5ǁx(96Fk,R,R/jav m⢠̓{" ſ_(Pj)XvdyO'[3JKnutO#,Hn`> 3 6'jTpG?2 *1 gdŅ]؝稛EwQ>Hݍ!mv '+52snaX y2S 2Z^R譱C'cBWp*#,ј%(,Xa X O]TAHb=0Ɉן/~jmviR{kLb`:k0ݩucvvmO\*R~$`Onuljv\*T^z%!2)^'*ImRv춝V=_Į5_ԩR{N]Ԯ7J*{HԨ=EJm;vX{W?,|*T;og=/;yU*T|ݮ tlifesaver_scr1.gif000066400000000000000000000171331263163240400404010ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aR:ŜZ11!s1J1֥s1{Z)JJsBk:!RZ:B{))kZB!!cֽZŜ))J:JBc1:Z1!ZZ:Zc))):ZB{Rc:ZscsŔZs::)RR)scJkcZkΥcRZksksZRRR){k{ޔ֌R1cJ{!!!111{{΄楜BBJ:)kZc!:sέŔJֽJνk:{skJ1)JέέŜ1{ť{!!,H*\ȰÇ#JHŋ3^ta9qbƓ(!)bĈ4Rd`!-_ڜ3ϟAԆ!ZS@#Em!)4QXQ YAz)ԫ[Bơ_u(ȴPm w\%>ZHǵK*֮SSLaXi hLԈRA׼,$s ]{莠NV5 A{m:Pb{IaH(nʩ; ZDF 0ΓGo޼K/:nߏ|9~H} _x W` >8!aH7C:a*a!4bCc<_6+W <a(zY-W7DGbH$`b7 襐!}e9B f=Fy$(i~iRf% JY\S~Hh 6IxNZѧܜ97`X㤑bS^f|}B㗯eCګ7+@(:) [_IS`[@_hp*7n*㉫,(ٸxRzN@6 /D16 H11K!S[2,20rs-s.p3/A,w@1;Hp 7 LǼJ3*dFì]|[c}s}5%( J`аvAƆ@ ">F`[!1lD (HH0q h*Rъ] Hl@H 0%@L1f"#6mpD,"(0Ub+GȊr[^I42`gT@FM Tɘqx 9Lh PL\ IK2(.n8 @u5 3;j( 7.жw7atԕh 9`7 N`p5G z<8 ֶ%yg Xn.:c*f MBrc9`_K|44q2P*D& s>}ͷEx3FhgA# hHLE[fLp!H\% NmEc 0ñXv:' ʳuTb8HD"`,z #B8fն:8Lq \#w3Qr@6dU?Qۄw4M?ȷ4< [^Q}p;1w^d7Ìoyc7 '~T^Џ{& __[`< X+Q``aFaDvaa#7O3brCbqcb48^^O+.{`O_P\ȀTX@gU?c%dLiHdKkv_Q7SK<^搊IeOVw̘[`OQpOpmY3?yhWyf|f'mvǀeykɀ&p^9bbep3&45ie~㏕hـk`X9il2Г&`u4hkkmF6mv656^#l;Ȝji٩i[j8I8ަjo#;ss9v9u38Fd:){١؀gmaQПu) < ;Vq"7||q?)4or7rWr7FПJusH?Ksot3tt@ptt;@ 4uV?S3Bbɡ pKzFVndCwBiwmwqgttWv?wM}vpx:zppObn Js:yZ$zjgGWz.yyzrDztiyzgȜ:Gڟ(H8˥jFȻٻJܱHHP=MP]nEhU^ّjx^+Se74N4@5㮝RP`ƿDa lT): ڳӕ;^H L6?^~4c*^d]4hgOlN\seZ]z ]?nY5.c^*.Ck3h3J̃30^Pc"p(@J LtXZ\z_*QGGl"XP?SO<w,φ*^Lz{7$x喜?ʄC/EoOeIzz+-F&! 7B?_OeRi:=FH}OqӉۇ4 bo`CK]]_OOM2i=C֔o}EO}^Rھ3Ͱ$R$OO)(P3t.8/؊>/ЮzpՎڎf1XXR=?8]|0||IA:PC HqD TpE (lX FT<F LVlr& `A%4EC"hBEh#N1e_>|Had̕(8E"3`JQlavgO?Ѡ pY'LY(l&7IaW@와ٹOl5ϯw;0aCStPO{j&kv^S @MB͛sOds+0p _~pS??9 (4(<8<`ANX@` : <;4St0E 5E>zG R5PRɺ ,@I 4-$|EDOEJ ,H8aN:<2J tSP2EA?;J[uyIP;0KACDD-էFD5U V)}PhS=$ ,ssV$+3@4Ls61J@6YIE-x =,AV[~wȗɁr'lv G7XR/FC$<|hd+yAF^f9 ~8 6m~`$ҍ1ѓohKWF飙&j-gzf&[ln:,cA3ahᮅt|{ppI'`ݰbcy$,h:&tQ42 8햢&+h;BsΣK}/vU uګ(B ff bŠ#Ĺ oI>{#O$UO GvDMmC]pare( 81ϠP+d ')]aUlxCNz24 O ;׀"#G=bO xl)pH" `n(%C `D6F VCBȼq0oT>+d :/7oh@'=IPVl@bC:rde+wpE:li5 g(ܣ(yLdv0$9R ,1`J@io3݉ed 2WjR2CɃ|CPFT$@)0= FɣM} 1EClfA_nNNT3)ME:Դ,iPd>&5>wOZ˛AZSFUSjUS^SOS#`UkYNԬk+YV^sk]ՈҮ{k_ >.Яݫ` X&Veb"8Ud-{Yfv,gZٙzլ_E[ڈiYZVmmm{[5 ;lifesaver_scr2.gif000066400000000000000000000166111263163240400404020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aR:ŜZ1!sJ1{1s1Js֌BJ:!R1B!BZZŜ)cֽJ:JBk)c1:Z1))kZ!{Z)B):Z!Z:ZRRcZ1:{:BsŔZs{{:cZks:cZcRΥcJk)sck1Z)))ks)R{k{sRk))RJZޔcR1J111{{BBJ!!!!΄!RkZ{kJ{Jssε{RRR)kJ:νŔέJΥ{sν1Z11ZέŌZ)JRBJk!έ)!,H*\ȰÇ#JHEt=.y &4h ˕=IDPFBa""$N9i2h$0 ԥA|D&i㩧WM[Id&tlhɚ5 "Mjjg YRi%'(vV`$na.1ݭ]5ghC^VcNVN^$i&HkrC7A"u}0ʄk^xxRC=H!}kWJ8m&{A>M*W>)Vp+7-߸BkހZ$GVS 0DtᆾyXH؉g=ŠbNsM48a5#(H#2TL6aPQ2V&dQeW~e5)kfFB_ЛX饑7 gM%<ِa. _P^yã=I{'Ki5BAk^ : fZ){2;h*Z;fkLޯf®UNL%2K*P\I_-) 5j;%-n譛e[l;+n:Ym`fh-)G򸧼\o`(.ZW|&* egH'i2J X$i\P"r@PV*zOq0EZr `[W_WHnsd+R Db@`) Q,CU6 (k:D]/  &1 9a DX nwFo|@<(^}vpP|}Hܝ.x_p9WE o*ッ. O{0!n+@W%=~Q3LCpx}en94@8L 荹(`jc討؎.?p| 0<ć;99y1 9JPǗIǎyǢi^ƌȎi l|;ÜiɻٜCH\I-;ЩiHܟة Ȑˎ|Žh>[ziZZ˲i-Wݽ ޱ}ϢݐM{sKXW;9]~>TYVz;@ໄh@ˈ{`vƹN|&`'&ptSs7훌p ԋȈ8{gθZ Ps8kǹf`6$H&\n/.9A <,_g^#x. l@yjPp; ,tɏR9 `%L,_9\6ׂ.[^]\~_~>~Pŕ^[JYJi]ܖoK.n[ꂾ**Hhnp\rS v,쁾ΞXo<3ʺY7n>jyC٘jx*뉟% //(N &⍳˽|ʪˊ@.ZO+\-xp y@ m 3  jPl ;T&P Zl^{v &*e_EoЇjzmZ)S3@&>n P *σ:y Ա:ZԺCOJL& NZȪR#'$Pp _ w?lnm7@HZ_| '{y{\x&9TR" u! 1%aGD) A"IV(pHѧF8LP' 42SM8Hj P2p09G 4xl­[ 4|ݺゕH$`yL5s2`a X /4\2 WZUH8ǹ;768< k fl0j܅"ɗ7q ~y/~Eb=-'lwoe?T{ QE#,=#< o#͹rcN\+ |mpk@@|`T) )M P@JϦ 4"ϧP̑-:G'QsrBF>|`l(7bC&rj,94Z@4+$McP0( 3HXC# QM[7$ 1Ͱ2Dc/STSUuսB| X,*՛T=rU^{/-U2z%!TQIuYf35YFˆ5VTk]տk q^5PG-tUwu5"0 #xfȴ7vn-7N\s `waF0$zxt55pka5U-w0Va#8 ]=jn`Sm(`t@YN7inYv[87d]nៃ^S]NiNZ,@ۈ_7@WX XEa\v&ptvi`bgߛo s/k}M;|r#.}S!Pv|g=hZ#+Y< {e6 wbn7q"鱤o^=@k,+azYDI{c`g`n&TߛAF{!J2OtI_ o0DǻO!4( c `Da 3@> h"FpyXDE01߫ronA* a7T1hX^p@" Nb}D,c22<]c#HRP<#f1zU GAj DTB#IJXR%!P\R%){ZS+yL12|2b>S$.yMlffӋLMpS,1YhSD9YuS'=Yp>Ot(AFT:P0}C)zQfThG=Qb3 ;lifesaver_scr3.gif000066400000000000000000000153741263163240400404100ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aR:Ŝ1Zޔ{֌!sJ1s1JsBRB:!ZB!ZJ)cֽJ:JBc1:1Z1Z)s:Z{1Rc:{{kBkZs):!s)):Ŕ!RΥcs:kJk)scB{Z)Z)Rsk!ZkcZkRs))))ޔZZ{k{ޔc::R1JBBJ!!!111{{{΄!{ZckZ{kJs{sRRRέ:νŔJֽ1)RJs1R1Z)JέZ)RBZ!,H*\ȰÇ#JHEm%jHУ.ypȎ' ܑɄ! (LKyqG$Iz4 @@ihK$5Р1c*qH`c$"pFx 6ѯa4h%Ku- ׿{$f ¸p  lLX3c F+b8m*MrROճmE:A&p~Tu岾[&=mQru{H6,vıޞP"^>0-%!d<HXD@&ЀK t[A5az `a @fC4 AKyWc(W\#A XH#xc5 @B cȐC&J6I:$SNiR: cJRe^fW39jidruClV9Cfz*&q4gCdxdOr{6I ecDZ}"bhDIuc:'/X*ꪤM\qe& +:"&zya J A&IF[/vy #^J*p ,1fjޮ 2 0* N /3h.1% \_lϢ_OY4Wh6C6ݵo y|ux(߆3G.< P? w.?N Nޣ>@".QaN 9: wfH}Qx`G8=R?_?> o̧}"@ P ?|_A πG?⯃( B]p~Hɗx! Iho>!(= jHDRBA퐁p0**1I`xEnXUH>*N \TrH'BQXъZA31}h,э d"8nd$ I:R s#!XQ I>HJReV&ğ@KZR򔨜_pHjo#.oKRo%/WV~$jـPӖf59?J^Ӛ$2kiMm2CL Кg<Ojjќ$_I|'?ks8HhB17ghA%Zy7Qyp"CG)jЃP J/ 8@0:QytFP͏$5DӀԤ D) -ԥB:. JX;T0<Y۵uoc%XL xYѪַ\L!yk#uX6{J'iPA%@xOhxZ$CXb(K[8DfNpXwdb 4AP!VO ͮvҖ6xkHMSZ2AGnH;A[הMpARz|I8ݰ{`2 ,q:ta =<@Pp/~E`C}>UD&S|D2)8 W,."#.1${' @I>0fJd~=`9YA160BsxsO (jf̈F>.vcNLKIkA8tm7BE×d^`eE i8$jRӚI}aӱجs jB]r֙ZkV0O;ru@Kcє,%'< ݫ{M[XaC^.ކ4{ǹnbJ ëIfo$dvSGV %(@ow*pׄCYO_3Ĺ=m'YG>FCK|8>Gp,"ap=`rWO O̵\J]lew47˾юvZ{t)TwVhNp~3u{Y#:Lo聙#m{\j~)j u^uh \UX5(:z7rP r% {,u ~5wZNWt;uj[oւ[*pHZ#n ]D][Ut$eWXjdN0J>>s}5as;K_vDW9fdPvXֶc?N@Ae7G`WiAFo.&A9v=N2FcaktG x)j pp0$C8DSFtKcH|Í?f7DHu\`#cXԈn?KGp&eANUF<#7;h x犳%Wr egVdWCi{Eg~FF Dv"7h8u) k숄?ZǶkԒ@TjvF9?$JXjj@uh[eE'y luTJfjcoäJLjehppK?ol:pTqOs ā̓؏ETt)?u[:NvsO@qBnJ:ڄtBdf?ut) OQnQ9$%CQeؙ _cj0*`HhySWQ@Q䃛kv}5(qe?0PSFE>ԗ|ȇwvYy:PTT(e0uȩhP̩Qֆ5;x@; :IAYEYrj8:cK6"ru ,9z9w5zJީEFWE:BJK5%pB*p8V@jk\CDYzKʤPrpЧ ZJ2AJڨJD:@r7H`2@ZP6 ʤzB:$ڨ D20کBw*xSʥjeʨ'ZsJeӫ+*:?Zŭ*TDj+Scݺ_ڪC@ˮ;J DኯZ;Ka: ӰPK&{{ñ:@$:-p8:Z5`: ۬ŬjW&;۳?c*Z:Cʴ#CJ\ LL7Q>kCklZ\k`[)e&7 +mKAVq0bk:?y;c7`-7Tpʜjʨj84` 8H𺪫Vp.Pg+;9HЋ;8{læ⻦sK.p+>˼;VCU`‹n㓒÷۹黾ھ5H]DZ]VM]pep7{.,;?,|n˫5@!O3@D8ePBD<@G `p,plp,0]"`,d̨@U sOn0s d0 ,SV8l |Α:ШGVJ`rJ@ M`,EiEd|M0`; ME:OP<  8$M$0%'7,$0\Nl8K:0{,PM/$5m8:r-}u,[ m`7E@$`hmhҊM!LҶׁMԁl@EɌn־sv ͆،w,`;h ؃r]ۈ L  ؄$@ذ]M­̠}ӢPSU8ع]ؼ] %@>@@3)'O]:ܲ<TtPȇܾ<Ņ OLUV= r [NŚD. bk@7k\]p?U@>BŹҜwZxRШBS\QH3PH.*TVP(@oB9(_&̨Q$>#?8#2 A@ !  < Q  xaG!E$9I)U@RJrPِM #xQOXp~X4c9.g˛02t)3(gěDV55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d"!1AQaq"2bBRr#$3C !1AQaq"2RB3Cb#S ?Y;J̍e6׽R!!B-&F9ªm 2ZcrkZv["Tܶaq_430OQ@K+-ܸJ o@/ĽVקñ7~`y15d9 6˟ LE? @zO Ӹ)@~\cN'xUeVY7%_jk\A&>\k2l1.˗e_4p6iإ!/_Rc$ڝZanCц/YݴQ:?!z8.W\Rw%v1j -}r!_I?3 ?J8@D +agٜi2imSbR\<JOGԐ'qiL0(XmPZLH`fw/YYw3~C;JHlsn(xڽN9۷jhED'H R (>">qw_l"7\U]ejCF!KVnB۵u*VYom*WC9ԧTHwǙ?GXQvH3|G=,c>Dm4%+;kb-[JY:Sl1/ԝ7WG+FnvhPZ<7g`VZHI Ǩ7)7`0n+EwϳTn)HcV)fÎ &3Fg 9TxۅUxԠ"Cc z FATP=YÍgE挲 T!T"MҌI B 3eVN )GlpcoQ Ϩ]~)aI㽝E˧i&xءa jY2霧F8xm{Xqd/U{U wª^Qw l7hxqU$d'Es4͑X366Ɵd\88cM)Wg{уq]g^^szAzy-[rRݦܒjU&L0v4@|>%s2M8}ԳMD}7s5Ե.XDs)Sa|"ԕY2|Yyr`w6ʰXMƌ}I2XÖ2*Kp`XpB!Qb1߾†FR Ăg}CmPW*v\xV(m $" JMJ;KeDq[})h.نZ1e0 o1\P~uvڄ^K&vLyRdoN>%zk2Q^p) ЀnNZOFΣcZס9{-o(طnٌpSEN tק/ϒyqBu5^/O;W_owI[Ât$,K wxR%YocaGw9jX[Ɣ2I8Isa.`ds)Sl7kV{nd|0^[ n#d\ᶴ 1I5OyO,+B*MzKK!U,p}U90?lg*l/f6PyBͨHLΫ,>>}GsQ/K`$\4RDO<np2fo𥒺!<Mz*Vnpcz5'r%q19kwվz^{?Oީmx} %]NvI[~mS \9 tã={dJ̣fmg]NVgm@nӵ&!髳6'KU CڽS{4fssT Z?-ˏ!wce>?`V_RO\fٷ5JêdX/s‡ caq\_<Al ^٬|mkd͖lʬOP =H\)F ㏜ka%9oj o ,#'$vmkrceFn@rZa\׵N]٭/Ow3t FQEf9pJ R}[livebridge_scr1.gif000066400000000000000000000124451263163240400405360ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89ayR) 4Z AHs4jZL99JuZu11s){) s Jb1uquu}ui{i{y 9Ab )R)19RAJRZbjss{R{{ʴ͋{b͋j{{s Z{)Z{Ɯ{ʜ1Ŭ{œ{֔) 9{ޔΔ1] Ҕi A 9 19J,(sj1;նť9sY1{}Uu)b4}b4j@mj8Haa)Y UPy90< ,{R1!,YHSÇ#Fܣŋ3jDHGǏlIdB$tdQ ȗ(GdF58qI K06gτjά9%cPJJժ suj:VլYٳhJ T$j&% LN5VW˷߿6"{ ƒ cF˘#ApȒy/3cc9=vݿ/b˞M۳{=Zvgঃ[6e5/! /Nz,HgUtvdΛ3?>t0˟O}({ܗ~Y̷~0бca1ƃuWNgƅfE@Gh/G hrX0Es̭&jRÍ8nFnDfD&CJ9Pք]1 D-TIn?ѤnbCIZJw3#/‰ *=D6ꨣH<*hЃBjzQ駌>Q(l1袠 JhFƖJíf+aˮ댳̾ᣡ_v+-XH^nn)[û `hk,cq `TgXgD O$ſtLjFpO|8|ÅaƽXOl:YMK+ d$Z<3Pw_3> mhO3}4G7vΓaqÃR)3rJ(P `񳏇^G.9HLNWyJI!kCբG(W\o8nq1oN >b.zRQ(( O_?}\OE9A>_?7XH|s߇R)ooGoCs5_WP[ п (P$ Z"u!)f8b(v>{B sp)d pu0 t&:Q3L] AeX.b ^b Eb!xaERn g5XD:,b,koD*Hp>CN. (=QzR%!S4+% S'IJVrltLR0JQ4_,wf6s$Lp`Xn 8řqz\R'M!Q|$-i/< oi~ӟg3)n"o7p]h6|f ͨF}z F(~bCIntOXEhҚ4)nQB;~MHbH*L:Q;&PTJժZU VKHrQT3dhMZol @׺ uD׾ `KVo=E8Ϲw@:9q1!t3PsNҧP`NhONl'x!pk?xB< D ={'Oɓ| #^񏯼GkGAovȓ׃gOϽw #O Oy Fx=)J߇[Ͼ{>#RӧYg~Ͽ~? ~0 ؀x ؀h8 |}~ ` P ,0(46؂/3ȁBȃ7:HG  `  ЄZOSXW[ȅRHVcl؆M؅gjI8z&HzL脣 Їp p [{Xk|臀(hnxȈu|$xa0X02@US[$"؊8x؋(h،H˜he`Gp(@$ X"@ˆ(h討؎瘎Ȍh( ؍8 Ɍ#8.JN(X @y  02)Y6 'NFB P*pDYFh,iJyG3`TY7)NP``YHMɒjV@F[)(TIivi6ڨyI6Y(i0ٔ*^@yv"@Y )6Y"pYHʹYTi9Թ`YЙٝ.9 I)PYYyɝ˙9Zz :̩G):zɜe0$JLiYJ١.0ʝ!%z82<ڣ>i8z:%?ڤjPR:TZVJY8bZu0%r ezjlڦnA%**r&0]]`{jp:r*j`&JzPZکrJ\6 P*`_j*࠽::ZZzZTӺ::J蚮ꚮڭ:%I zZʯT[*dg:۰ۨZ\P\+yZ|ڧڱ$jʲV`0%۱:j<۳>@AZ/+H+BL۴?=N;TpVEWp۵`U[f{h+W lr۵dv{x˳{m1;{u|{۸˸+𸘛+|+IP{I0{ۺ[cZ%%{|+Pk›!ۼ+P;;;{}z&{a{˽뽩ڼ:;K۵ <߫;{K;Cpl "<$\&|( ˽,|2|2L6,|BgUivNdΛ3?>t)˟O}(mܗ>L~)_V֜-aŃuWNΗŅYL!EِFh/G hrK0us̭&jE8Bcc!D2D&J9ZPք]* DXF-TIc?fѤnbhCIZJw3#/‰# *=0D6ꨣ><*(`CBjz^Q駌Q(ad1袠 hvŖ­+f*þaˮ댳̒ᣡR:vk-K^n%»;Sh^,/qYHSTg肵g8 C$ĿiLjFpO 8 ÅKŽfXCl:ۀLK+ W$Z<3PwsRl3> [O3}G7vΓ-ÃR)3s$P `o񳏇^G.9>LWyJ!^Cբ^$-W\dxcdq1osN >b.zE\Q$p$ O_?\OD2A>_?7VKH|sKb &ddΗoe>5_W=I[ п (P$ Za"ua%f8b(v>B ep)d u0f&:q3L] AeX.b^b E.!xaJ g;/dXd4,b,k" HT"oD&*p>ۂN.2 (=ɄQzE%!S4K% S'IJVrlt\LR򗝴0JQ4_,iPf6s$LpSn 8Ʉqz\E'M!Q|$-iM)r kvF!'9C 8'L [x7GrG C G I0gL4 @2A G!A"#FN+ф*[Xβ.gY(6pmL2ټR4׬f b9ylH=nm`:ψ2FqB áCV GMRԨ5l[M_ΚNg-kOָ5шF͵}5bfHf;Ў6wA0YИ4nw-ܾamrۨMzηmoB̮ƴM<OoK+|;rH J<WO?o~XG GyWw`` PGȁ~x #؂"g~WwuP p Fh;؃?CXG>BHORUWSȄVx6Hwhx@ ` lh @ @ \j؆nrH]xmq8u~Ȇȇ98z`{pGXH$ !BhNAȉB h؉Xh8X(HxX=H!ؘ0hڨ荼8؍߈긎樊Hȍ P 9鐩xi$ّ 98$Y&y(#y.=Џ!Y8:(ɒ 4 ;{۽[  ˿,P Pt ,lL 0{@!<€P')L&?+8 pP0v9=@, }€ RTlX<{P?ZpÅ0h{Qq &ׯe:;y$ ǐ|wiܳدw;Ͽ8=}~^\!vW`r_A jA("oNj@FYDTX\w]m8vĀ,,hAbASLoĔ"q,$IM.YfXcviS1_řp@飖M.dpR6Yc>`衈":dZD E<*)@La SZ.!j_(ji)F @`i:꧓JlX9k/$̖&cV.@Tod6lŚ!.[Nl\lkmG@`& '. CLET<,mFp_D8|,1!rN Cf, &.07΅D6E'l3=f`"$<<^之A>;şgͣ<d"͙O y6c:PNx'-P;iBW?0((AY$C:DAaB Ҡ` Abz X'[PO"胞.v^ڊD 6сQ,*a kxc x/&vIB B!q`HCNb,ұwcڑ Z(BreqH1*YG6''O|bh6.L2eΌ2qxizɬ0 gzzf0!GiAD&NiRә&.ACv7g>K_R$9iG/PMB :APQQ=Kpz1S34(MJQ:ѕ"t r@MR]NiZP値@NJԢHMQxu _MmѢ4*(ծzթNAȉL:?w5WukOAֺxͫ^#5?,_5iEx\:j]܁f7"lv=gGKҚMjWLT 'k5{mk+S p[" Mr:f.1 {v:WZ&P>Hz|Kyi꡺-~Lx?'k,'L [ΰ7a g4(NeV0fL8αw:%fHL1&;A/G #XX.{`Lf+ Y\ 1[psuL:`d G8ȕxMhrHtuB;ѐ'MJ[Z JLjF_ԨNOm=p}>2Ci*[wոε/jWaFGư޵JBx,QdGԶuu'1 IT]MrNns;v zW >"CºN;{@Emے'N[ϸ7_#Nx0< 8y, It[gN[oCv4`Mҗ;Pԡn==p[LyN0vxEw9!xϻ߻HLBx'yސq'O[Dl9noWֻ]~ Z.zu~~OzLЏ?ޒ8 2B؃D(G IK؄*H8sPs @ < V`Zȅ`xb]xhjXlnHf 80H}V` UHx8xHxqhg(SH}wpX  P(؊HȊȋxX88}{X~P P H֘ȍ8ٸHꈍxhX툎~W &$%D P"PC0 P ɐD)ii)ɑ&ɐ,i9Y?p?ʙ1YТ/*8JLZʣ R:&ФVzXJA:RZZ:Lfzhjl SVpZmzxz|tZY`E:j}zʦZV1zک?J*hڪZKPjV)ګŠ*Ypj0ڬjYɊ ؚjڭjJIPzzڮ*JzI گ+0j庯Z[1` ۱+"˯P&{(*[.˱4[6{8:[@K.kL ;FK ;;L۴Nk=R[0pX;J\۵\K` Q;Y{LNl۶npr;q;2{Qg;t۷~okxApA˷~K+ 0[{`Xz۸[{p;[{K;;;ʛۼ;˹@ˋk{о;[{kxPmvpp\x<˿v@ |#\, @ /3\{2LÈ9 D, P`A0E|I-\@Z 5ZL\[ f,h|< pq|`<0rLr|ylń|0bLȍȊɖnJJ`{Ǡɢl ʰ,˴lˌ˳\˯˸ nwl< mK`̂mp\ȫ0˚p݌͇<AA`m̢<pό \L}ܬ<ϊMxm@ X<˦ m "M!#Ҧ= ̒2ѩȦӖ?<Ӛ< Ԅ@IMm49/Le Zm]`]mYmLlT}p 4s]wݾv4ք}o׈P،؆ؐ};livebridge_splash.jpg000066400000000000000000000062231263163240400411700ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQa"q2BR#3br!1AQ"aq2RbBr3C ?ТSiPDF%|j0Z;vO*Zn:&6Գ*,HXA&H[9rB~U|5ߚ [4(,)S_V=%HE =O0DŽLLx` m'uw&nا !dcppÝȥnɐ $Wsd)Ŝ<>cq}=\:󺥳oEr6*qqgɌb0 ;̇9Y(rtmU] `35<5nĀ4O(cm[U%G.=$"߈Zt٤|ja쪲@nQfp&r5&~08&Du,EaȧwQ]a t~~\]ewӶGFQEX*9X=d%XDݵyYf1b m-V5 Es:VZqpˍՆQW6UxpX.IIK0 1a mc,4%m9zxTmWlxUK3 :$h$sq7nvg'ZbٙsV5-@ EV VfUi@ <^Eh~rds a4O)^ӻGFbUtDDw HǐkW\ (_Zp  |X!tqT ,e.U\8FY}/ܵʴ(7N@2 S2dLv1Nu+,:clhr~mKk+BDO).5,7Mk%W;?o_ݢcDȡ7/h'ts4,̊mDžY~A]=֯^dth[Dk-בy3Oz}6>wlmD۽o{8߿I/}2oWIp2D E U[PN~ide7O*)0S*]Ēxcv6dQ Rxqv`yiήeF{E܏:`$ᡬ>7reueS`-YpSulM>2srUݞG'sU+@@xoD{pXOXQvu$ e!sk?0sL{mK gRJثg!qzϏ[F^qev}e->r%-d͎FG~+~VIl c_}YUUDlXƶL[ag?DttT]uY2h3QQY]d}SƊ{-xӈ}c#6\H ŋ﫻qJu-"ipu }[ԟ}I{"9#[w*=J'!ҳ8*M@|jPjxJS)ciccq0 'ַ Utվsӆ< vn&sg%Ȑ48n25ÇI}\θpa^2toQqb~/.O0 d*U-{">YEOk gCO͒VpP&}UPyO?jqbR^m{t@7_qs1VچLK ?4cGaX k<-b'v85Oh?ƶFͲ&wz(;g)0W,d@t5̬nH&Ӈ95|ovt yA7kj@Cmja( #iʲXCp< -Spmcm&`S}w?) ucMJ h#N6$g0dF'gҝ~ÂɊ <6nYrͲNvK5eq?XԾf_ [^K9 [>q3wy ƆGc8NWu@deivϋ%߿]i{rba|"xvgv]b.'kb Aٻb W-B 529L;ذr< U qBaP IY,XZW[],0 $(O >vF-15kvT;+C[z6]lF1梁>)2Gy.Lԑ6&Gh;iȶk$QQWCpA7QʤfvNB04>ik,UJgAn]!ʿts2˕Ah560#&Zi'R'NI3ѠXg.>3s˯eul;W  Y^ӨrǓ\X=KLe+cqbO<||*gd5dMPzav?[-[m[kd}? ɀhQc7=B,@մᰚ'<޲44ʖE]`DMkOW{K>5޾2`NuHٹ1ZsmxUuӝ/\T~iTQ^0#8V\?0߇QEg& 2e,}϶*Gf(N|w(N>QE}"m?=>(^[B)L癁Ϳ墊Lʊ(Nmobilechase_scr1.gif000066400000000000000000000250141263163240400406710ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a{kJJccRc::ޭRBB{{J)!cRsέRkJs1B1:JJ{JcsJRs)1c:Rc1J)Z)BZcRksΜkBR!ΔBcs{ckscs!ZZcB浽Z!Zk!s֔BJJJŽRk:J!JBcZc)BέﵽkR:c!:kc!)BZΌZssJŵsJ1Z)֭kZkﵽZ{{Υֵν:BBss!, $@ Ç `c"ĉPǏ@ɓ(S\ɲ˓$cʌ ͏ >Dȓ'D:+ jƣk,S15,J&ҫ !3ĉD+>ĘQ 8̶(ײ="\v}*_ IhD*&L1X zre*`3Hֹc)Y9a u @P]3&CyR&R)mDg{i?;z}PM0"]V e *8@1`LsTjNV4 +ES3H?}ZB0 DQе&U >ZATk غXX-11 0d'kXd pT@g70XdyP6ivk\(]=S0Yvj5&PDQj@s*Chf ?+]0Xv ErK^Vmp#)xQ+K}[ֹpeCDD E -E7=p;FKWe kg\RARg1 _S m~iJg\{VV[^w.Q[@mV#FÎ\ʧmz59? @|:. 8ITw+mgh\819ȧm1V+bRaKUq:LvP>+ Lnes,^ t}l2z&]уUwϝ R *b TĤtx X*4|WѺv,jrY)ip}zA טUmN; "Γn^`[WflRe2,a dpw*a K r|ۤMn`onWud WMS[Mg=GU_X'us wXV8^Mr1 i 0 W=2ο_wY:tg]xG2o ȀEzcjS}Ү';+ v!]2xYjʴE`Jh FOo3N< { _(]{}a]e]:ʪ ?$[K 9̵+Ǽ\YLUbc_s ؼיSNU_{S]׫Ƥh'tʦ}w}ط%sw}@FK ~vxw^c\tTGk7m:\avegZpZ\sq֧4KVQ%mZ{{!LUÂkNcד5T>  EH;vv dн^)r(;Aƨ\+.;i<j<}Ěs(KBJ0/ܿתmPt xU}R*նX3 ==<5T*Ԏf%MC ಡDJǻz:ĿLyƪK;*f[N)|Nɕ,K:˻B]u^C겎ۙɣ8>ᮡ\&IF)H7gvO5J^ΤСxĩk7~x벃;@=E.uP̵0~-*/>gܭў;kˤ7mt2bR`r$ - dܭppoR}@[*^޸+u*T)~;>׈h&WN 1[`2JHfwXP`7mSO8<*)^tpPd8?'~ZT>7Kߺ00Y m^p*wyK=uVTHPA * d`RѢ2REʁ|L I 8 `a%/av.F"BH,д`. 94J4La T d DkB[q:D;alCBf$ԗГ =ic:Rn렦Eodfl³8mvqe(+Uߴ#2) ZkV\EW^qW`v*|p(EVQ(u6b%)(0nZ` ]V̳ġu!Ky^|՗\u@_}Y(o'Pxac:a`A</<"؀ro l*|/`?֕L) ,N/'S^9d 6h0tB'a 0@,خEjv)NlJ>ao|p G6Hp &!"' ~# /\;s=悋BUȮأB^ )M=ts? x2@\lxC} qeaBQ;ex$Ӂ!d<kTo!\ קܰR7+v-tBT 6if3eiES'cO 1JzFiNSP"H) QD=>@SWqiMǡӞI-y/A .`n5i&;<ʀHX +%l1¨q&Ra2F6,8@x3`o7 53pڽMgvӷ^XpGa_ =qs^Hso| g9˝g<^P~, -{ 9|ް%=lH:{tY`ö㣛7 />05#{nvu7~tPYz盅(I?PHҪE jǂp,:r1X~-.wTar{ }oǹtrqbcۏզ,ƹX["=^@ ^#*{!2kɶ+A{8/\;8㹶1B^, ØUj$lJ#@)1 d0%|C7¥8(C;C풸H=U<`K=È1C0{sy@#GH8 `z7}7E+ gD/C9\F= A9Iз9(oaq< Cz1<:vl\3,(<ȃ@_ ; 83O5jюu%S{186b |PTuZLJ$t?13%ER5X=M] 76<f0UYa‚0MU>13%LUK kյjމeUxVuUR4=t5=nLWw0EpS((WswW~E,= WRVW1W-W17%rq /5XfLPXX Y؊E/,zL0#YYYOMY00/-Z=Z95ً] CZZګ.&E٨=X>g1=[M[M4&گYW-2[5Zz[[Z[ [[[ٺ%Ý\M4ܰ\•0 ]M̍ΥM0}ݣ ,ٽ\E]ܝeݲ155XX=^\u֭"-^^ݹޕ^^^=_^^ ____(;=,_B =`/ B-~"R `.`p> >*=h8a`vvaa8`Vaaa+`BbR*paaf >a(($na'f .+b-((#vp:cn%`@F3(>#E&?n@nc;6d=pFKCGc:d.'.{dBM^6dQfdNL;. n_6a0F@b_@'FdJ_=F]c7c>d^f].f`~a2ecN'Nc.b5Vg)bO&ca,~_xFgVg+ !vb,^灾b?^eAFhNtvaN^h5n(&fhE&^eʢubmndV.2FhFi>阶~enf&i.>+VidFe){ivfifj&j6j^>binOv`on#jRfeTidfg䏮f ffcfb.+JV.ieJl=K.l6찂ll˾llllmm.m>mNm^m;mobilechase_scr2.gif000066400000000000000000000176111263163240400406760ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aBB{kc!!!::ss1:JcR{RJRcs:Rc{{{c1s1BZc)RksccRZRBB!ZZZcs!RkcksR{Z!ZcBcccJ)!BJJJB)kkkcZc:kR:{{BkJ!JRRRZk)BŵތZcZ)c!csΔsJssJ:JkZk޵{{ﵽ1νŽ!,  ǩɪбɲ׆۔!"!"!̥ϣwuۤA6@!o 1-"C D dS -Yɲ劗0cʜI6_LS祄v0„ 4ӀЏ:yvե#ulfx U[Y}JaQJ \ vۮ^";ɪ(v,˳iʼn(oY4zE(-eٯĊ^1j bo 66cB]Fmӑڵ!bF!hXgm'Y#~mزeoovau$Y?/yju5Gm] wބ7 g;a| 4`T2QHY;VH5$X#5ΈccxRV%mNa։(X}j4\z4b#$@DV‰S(dG+#7-НyhU;塈逢a&#. t&L4Z+E k0ԲB?|jq9Q4&ϏԫBX:4^G\꒢oͩ>Ub@eJYutg lVq=ŴUjի0jvm_. cgiMŖ_HնֵmԦftּbYg1A \ko)[=qUQʕs. [LW}m ;X_4woL=/JJf2ԲYS!v\-t0~ѩjp}ؽl6\qIBvs.*:R:`Fp;7m;]6˸~i,AM ʌ']Q+j2a*>ś܎[I,AbYjP%FXӎn N+s ;xr_r6ן/ v+De gn܂q~dY*`2 /NQK\u Qk*g2n^ Mw[pA^]M`j!A){\Wq}~mlAgժD,#hh0B`> ܶdkۼ.9cnyی+=gWtfل0@SpvZ28||0ؓhϷI axS%SqfP-N`1yY؞MUpw9<\ \S#ȡr(y P 'w*p ~~/HۭUː[ع2FtK]i׹ی@n;Fnww/'.TUlY98#ͩjHʓb)9Ī FC!0|\Iz}E^2 i-)dE35\VdyAJ/~B׀a }U$.Xpv8p @tF@mqGhGrgT`Sc~D#pTq7fmi@te@B8DXFxH@HhowjF?~U~?E"eg#wQ\PPXnhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉npg#i#0gH)C0  Њ̒؋23Њ)PCgPwXX芰(h 8X(hXXJ0#J`H# $0hɸ~^#O@xX)pE`8hᨐ*8 y^0h18?|HI(" N.Y0ɎؓJ8\ٕH#؇Fy2Mn )Ui[E5bEيIi,H o9-SIxXɗ^O@98^ٓH`YHk0IIJ=9 P9gii Lٖɒy툇(X}@ #xyIԩɝQ_ ДٓʕM͙yj.9y^?w0BILyLٕٚGi)Y,uE^(BZ/ 穜zX) @WУ>Yq8h1繓ř1PTzV`Z:Zz b9h Oz?yM X6ʘS0I'pڪ:  9Yit*K*BXĩIt))W pؚںڭsҸyy1:#p#LOLjs xщ ly:[ r(H Ө <HZ)wpoYi٪HH`&{&rHK)ɢʔ1>k 'I:D[F[9_i.nJyJm=˯Ꞵb;dI Hnpn`CZ\ٰ z19nʳx&;x8{ٓy.:P O*]+G۹zq(X;x; nJ8'ږK{Kچ ;Zɢ{Ww0[9/۵e @@ˆ8kY" !9Mʷr=+jpj@ʻ xgdZ˷9ڱ l D;lH*??I!YJ2ڤŢ;$t&:˟Ycɟ8:,sHɏX;K[ɤ!|;NsbR;/)\,`b,Pf|hjlnp|c<_rœ Lq 0Ȅ\Ȇ\qȊȌȇ@W  m@ǠȢ<ʤȠ,ƕJs{IƂ:3 ɥ˺f|ˇ,̷ʻ[\z<LƼl<ƧHK<× [ˈ\m,·l~^!.#>%^'+-/Ţ3@0ԻLP bFJN:B`\BD~:pp*P.8PYl:n=pg1i؉WPKjnQpgh'@'xw (&fܩelҜ ni0070UP[`[QQ[U7`i.F8ФWpꨞȪ-iSnn8pN@n^H햮'p^.ԲԎAP^>vw:0@A2pd Ɲ]"_ n? ?SpOO^I@ >@*pU^_2l:pgAp4=A`_= G~eo;OI-OPW/<KK^? -?Ys?ȧnA2|<hohoOnkS/8N26okn~iN's&W/_0: C5S/_-r-7@i>oo'' 2827':*8*'*8llIϠҝ͐Nݯ8 ް*'*ْט8'8P@ข H Wopxx/*jTFiġL0]pCqđFQ 9=Fv!sې%jG:\ #e< ';cL!diNyݚNx^hmDyUUWbY k2EqȄ2G2hQ(h;Hz7萄Aɞl1I7y)G[ax-@" @? KG%m65lRdAWPW~9v.yƴ9-)[Tص믿@Ѳ Po EIo+U|Qf \_,,F{ģHDi0//'pȘÞ&lJ-wD9G?ʕ &tWl+֬f- =g<#e;0`a_r7H S=~#5HcGSHnU>7x a3B[wAwC>,XlG_{nzĨOW^R]싘o#7ŗ.8P ڋe]-zB+m#!?DGA~3W>Jny[|D!À<;@eXRKGBP@0DzH  !ތF8BP|'D%H q&"yx?.pAb%.zoH>"I>,O@ Gǯnu#Ҟ4Q!x<jzL" K7$tx)HD k^K /!Ufخq֩L}) L51l9ہCcZxȚ_кK1bK RtKOwН2Se1GW5+v}h()+٭o~u .?smg-˯Yc>_o~kF_BsTů,QSV@lWՏi^<4ƵWȚ\Tk}kJغ+s`[­kDPRr \MrNv;mobilechase_scr3.gif000066400000000000000000000254141263163240400406770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a{:c!s1Rk:Zk!)s)s{:1JscR1:J::BZcJRZcsc1s:ccR)Rkss1֥΄:B{Ŕcs!R!J:Jcks{:Rc޵ZJ!ތ!{ZJJJsJRBBŵcZcB)BZcBccsέBZ:{{)kkR:ZZkZ)ZRk:sﵽ{Z1cssJJ)!ΜkŽkJs!,S s"Jŋ3^D#G CI@(S8K'[!=ٱßz 0?JȴiFpi@ՙ0cW%:J%XQ): xQ|y7My}W _;γp/\;mA!Ρy#G.Bh%QVC*J4-Zf♋:֙Z N0ȓ#[Нvs](J[Rb+TGumC˟?\rϻ;n/a9T0 4xнynE[|eh}UN h T݅L2VHRN^ iq!O(0j$ .0@Ҁ,wbKEd \6]~e#e|Y Y^%dv6ҝ{TjUD'w&@iedfX fRGYfTfuɹuY*VY9s>|&QZijzOya HؚW.~\GdvkMJ֥I t.?kѺ;ˑrn ΖX½(@ *K ؋oR2l9.i%$dxRxCg{ldG!k@* ?$2kN%40%3L@㺫`vqčgZEIQG!74^HM]"R +e6vw`66PAT4%"-.{3Դud|qZMd uq-SQuJ[e?))Ґ1=x#PEcL9(;-dak\äd:Paf[:S{xUbf#Epz6<_^cHC=|_Sޛ>tm~kY=$nQG~7QO&! b$P{ g byB_g,CJ^RANo_`XC0Nns>$XfD E͛@ 6%,#bX`a}]M}ؑX$?8|X0X0=xT(QQKGz4oapnS+G2ĕݒ}r`I&T2I?⒠HŃVt (C+z9WBTAqaZT~҇-P1 V3wծZ!)Ԝ!5NYQԒ^3q5Mƕc6?ZVۜ5$m/;EUWh͑2=)JJV +izʲ\ZKʥ/_ (9Ђnb\he=%)в6|eTJ Y4m+rE#8b%/إ҉'Hr&򶷋%K5@,nq]Y11jӽլeL#|N)Ѯۑ<~o>RnMWS/AA[& xk3 >Ъ8@=vR`8aXz[]kbbfqEWh$jMÄyGqf]uYf)^' a@K|¶&Q"Pyd297Gv/pLM.uTiS g1T0;X=[2̍Z.uy|RbfL4ϛ.jV-W;Y f ;N<Ω' \[&UotK@K VFl:ȍAw-UU(X*6yY/Q4 vN9`KE;}sYrG<ܠˁHe|r WK:цzP[}m?;J!e0z5/q"`H0Ǡ?'׺o>[%Oc/,K)L, | }HBTWQN?u?Uz[ƭ}I$h!Γ\21C}haPz9 PzDIz1`Izw.zUwquaRyXn>'r95Jעj D(D<@d"lk =<`ȍń> ]T<ʆ̩<ܨ5llC{\ύ*‹wK4KgХnlu ]{_'Ğ_̽\ӝ.| ȩ\E-L|vl ܮ]8+! j\k³L] iңN-, ! :2||Ӟ~}yt-ʪT}_02 yl~`[ _|x Վ}ב̞|m{̯-p(@ڪl-m=pN oPgݾۮQP{h™Mči˭_ÏPmۼ ϭMg ˽Y 1|; 껾mk Ԑg׿ֶ#! bpЪe#  bN_l;ֵ3ԑ ? ЍmN&ҝ|!P2_˷ou̾h\c}|q^X}]ʎ]㚞H\\N\>b`g@kQ\M-q3Lǝ~oX 졎z+%}(˵ulvl>nY^0~OώMttM Yx} _ѩ ѥݺb&l(ln.nӾʴOO韎M(V@-MMPQwj`ݷ;Z6Z||~?dooMR/]&S+O|Y n0;ݾM̵¥m\ Y/-/`2-o%9i(BX'τ벵KCQ!D I(zbׄ )0]{T SB~ N(n#P< c"J+BB" 5,qDK4DS1B0Q@880N8B"qÇ%` (&$I($RXm 8x-O>C\f6+1kNY6Kkd/"Jlc\Ihc-jeq(}D&`d#HHFRd%-yILNWqDHPR$e)3Trde+]JXF{>:Y(Re/}2$f19HkLLhFSƤf5.XA<LpSf9YL !aZ/,!"QyN|擕&@y+qTgA :IfA8#yTUC0j &тfv0+eiK]RT-iM,"JpdGfSeJ#W*;&UKEfTU|'E=xPծU \ +Pmk%fW9! nH\T-\ LWW}C`a {9ujlc)}MEle{@\2 @g=YІV%miM{ZԦ6;R-BZVgTZ_BmpVen\IJhfWn]׳uz^7_݃jK]4-ݥow{_6w+Y˅X^^ n~ҒU€-|(vsTr!CWĈ%nb?x+>9Ah)}Yb8`}kxz5` cF`R'($5oNMrZC{*w+`O~«p`&30He`&tg fu{@s'[\2څ3s& e-KÁ*P%ϖ9@hTw-ʥ\W浸w[Zğ}̀/ZGA`jd'ۆ&бdiڻ-d :k=   16.pi5w[wQNn:޴U;0c{o aY3lʻXS[q\?ف@,aM('7|c&/bR\BAHA!z:(vZ>⚇9xy.Zbv0S;;/`z =@`; ]+G}:įZYhnD>]|; r34zo-}=NtwGsY L# `K|Ҟ;;֕##Fȱ'=ۇG=х`-aGCIWkv~g\PMK`-.{# !-;hؽ>C,?sV<?.C|KQ Cs>=k)V>2+5>>;kA;=8~,׳{ >| 4#?cBBüS".܁à*BOO4BtChA:H47[,K#x?+I[E.řatLBS8b,c<`ú;wfŜF[,Ȃ|dC6*1Hȍ0R/!P!FC,C5IDZ1hI8( t#Pz<`Dŀ[Et 8a[B0kK0Mj;qNZhN|N蔎sΚڜL|2>IR(- d'( LO\OlO|TЂeN 7tˢ, &|;я> 0;'P 6M1 h䠈0aY4qQ IG.NP  = = kP, 2 iBo*)h$hb mS:O%(TLTM5GJo J]OGuH-R-U% M}UX읮UmgrTS#:}x"\a€DՀ_&f'(b1a*>+.#~$b7~c$%8%c: ceFFmnnlnk ze@em&M~f=F_.d~NeAff^d&`g._ lcglhVmNny.mn>g:mh.vm&pefn.^i_NOnhm䢦cٮeH&noVjtlBFVf.mNi.L&pH^knj^jhiF偖Xkp[l(gxg _Fp< ߐF/q_ko/ cG_qq!Z#?r$Or%_r&or'r(r)r*r+O;mobilechase_splash.jpg000066400000000000000000000062701263163240400413310ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDuckyAdobed##""'"!!"''.030.'>>AA>>AAAAAAAAAAAAAAA!!1!!$!!1>-''''->8;333;8AA>>AAAAAAAAAAAAAAAAAvd" !1AQaq"2BR#SbDr3CcTEU !1QA"ab#dq2BRSC ?q;.^T.ŀ,ĶUlLixE,>(ku_8ROM2#.40<=B׮Cz\,1Sc`vա( E(/2.pIjR>É r6c]V32`MN<2BaSgM~1ɍԛnF.멧݌\Qk0 P ̜!颪g\T];+?(.ΉSCpW.p7&4.|QƺMIԡEqu$x\_DD͂%AEi?sv{m{٭j(|>pޫ2͉2^"X+O1ؓ@ cffȥ!Ybخ?xYcF4E8G('X7b֩f@˞vr,ϸKν]6SJ9sr بc4*%ɽ#[GmwXڹ`,&ӻZf$%4s3,&A2KcXqH7Y$ʡZ!Jibuf{ksaƱmq1/2L~TCj[^/'IgG!Qc85e_"fh ڲFgm`DymC!%Ǒfd fĀ( '2FFΦPaA3"E"Ŋ0`Lj\د)Mi~:?JuQvUqa8cӲ#+oL`-ԅWQ"dF qcdɗ A[lX|qG:J?=>3|fhƘ׬XZӺuT\/UdK!1R7}k6erlN@2AB&ޱM_*̬MMA!h')[qt̛>A.+~~IC_-Sc9:$n)iWG$|1i$sB>:h7UMq,qIǷ~'nSyպ3æcM0{,jk%бcH{r_쏞)ZлFkW+s%$J$pH) G8l=+z7M.RǙy^jT[vӑX{6IcZ/tQ1*y,I,N-A#zp=1)dD'm[ȍFH0,^'ᩑ?Yol,c+vGE-ZJ ֫x1gRL| Zqa}G<0RwUi#?|ʐHeJ!T6NC1^^7mnێ5*`U ǶCr VcqwgieG~Yyl\*< 2Z bMް2)D8mn[<ר] ʹs9NZ\V͒dz\=6I\6-ޞr2^(%˵<42(Pmuqnu)6\p.itB{ݻn/}=oEW~륶ns<| V77C=0yd%@ UgM Yn*pC잤3"r.1JL8[?ZyXH6Ʊ;4#}b20c25јS@U@#sh>N귦ƣ!4Qk}=SAmz̼nX]<ե; +9q$g`iY̩t2lx/}mO"''ʗ=b`UvKңav]zcs$DՈR=#,H$LhJ<8 9LIymPMmz5]<]$5m5U_PZ׽mW;zGEeXE` c  q$4/T}r Δ&}\(LYTR \1v]/v^=s=#V L㛓15$-53j1N7KYl[x\/w|F0uҲ8kңnnC.N?{z)$9c[4RRf$xr5D({ѳ%:xV8gi230;~,6ZN1Ѣb.iPf|y,=Z w [kP~JШv8߲'/8Iev$0 _\:T\b_syjt#`x2mҰO%KyMϩi55zWэpEFXF60)k5u YP;הU=S$d&:O+O0@ǿ@"P)QkzmX}|KoPW:C0H}_0Ih飩VcMGup]h i2[! ̋:+#dn$i^}A|ߖ&|2l ESm(dUSgܻQ]חB<އgT%Rx2m.f6R^+eɴ[iI8fATdNǗiԎV?㏲r}~کyec8-Ekvw^_G+j(nڎmobilesheriff_scr1.gif000066400000000000000000000204251263163240400412350ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a A { ))R1b9Z9DjZ9101}ރe)(JJRY),R)14A $1)4R1@Z,JAUsAHRRasHsZu$)bJq{b]Rs{攡ZaR $jmb $b19JsZsjZ1y11ZZ941Z)$ZH}JjaAZƔR< ZHRZZ{ysa)1ZibH)}AZL1ʔJD9ލA1$A4 iAŅ1RD1qY9ށuJe  P)Y us4PHDR$AYJ$Ds0eLe<J0 4,P9@ͥ !,! $/!L $!0"!hȱ#GpȈI$IBP4$!Dzp|`I"jP3MEzΜCitѢ0z aD0bԣI Iru,בpAԱM;ԺH%.ҞBJu,YmiVVzLٙnq.)~2/ޤ0 $V% M2mp"DRH.لH,Сg 3]N3t^F-Ul,/^yqv/E2i߿I"IՆLD'M;t ]N5"uwqW`OvApvI`(G!eV(~ͭ8ֆec>zׅiX`tXHiIĔTV XF~Te4DZmJ(nI}w%$_ 6hdtb ~oi!eUgN"5KbQ"1gºS}xuQs{pV!4[^ 9Ѹ61+껞IgIt*<]w EDdaub=7qWeR6GQ!$%TAxvN>`s~H$DrRh%OkX+4pV|[)X-p'YB )yO\JTʛ}UbցDU 1$ `LNcN3ylVIK L:{yƶY `C 2s2m, YY3ӭD/9e&.-5E:Կ ц 5<3,:+fMZ׺̟ggbSƊ:M1|zH\,,AdC ZO1JHoۺm~>'g>rVtyn1ANm`{"$R,(;LL3,ZQּDDtu|)#@P~;X@5F~@}ԯb?t=čӉGY dOX˷}(l(w}k0M}8W` 'Xz~ ~7* g*ε|y7G:}H^p8R7npU~,~ z然w{'|*x%7 Ѕ|}g}p}=(w??!vqF4zJ~7 U{O8|^0:8y 8|p\ <sFZ|1{A Sпh+0@0 +l' 9Qp18|@-C}PRHJ|KhP|U+|4k/`^, ,'lDd,r g LuL۬GP<]R4멂u@\a,@30af?i=Aёxo霁fǎ;4|ʞl6kf@ 9AX0CgP|80ɣS\ DLk[ʹk0wŖ/kDp>}K@DFMҴy'fiCuPT=Ml Z}70iɘ\A ؗ[k,@?u<9'Ou0 ` *K5ڭj*تgk[[οCBQ}Y6 |p= ̌IB 0Kگ=Mtw=ys ?HZ l IZ>p|ݖj` Է̔ݷ}qtu u4yn)fڧ9M* jyح}ەPӑ8o/?iੂ l@-6mg>!N>ikY ׭x2XIGvaS9M>9r | wvuagj=0 R m)]N Xw?vn1޿쀟㑽FAd5utf #j{Mn ۋȜܭ`s9x~En@\6N|>8ۇ ^گwP!SIwRlB~]~ӝVŮ-ƞ$o쭽c.^*jDFT oa}]|YyЀV )^l={.9 wpڀԽ] tZ픐::_l$pqeI1Q*SL>0 XZ[Pt0dN:'pdnei90 >= YEL^?8^pOƊԅ`<{0J>ϝYC^ BY̾^ݽz lkwJ1؅P^X(l`-bCl! 3RPܹhTJ,ҥB9ut'N& E A?.eڴi(lQUW!7fpPB7$kpL)+Ʌ͝7O@t R޽ SĉvؐB t@Ad DdPZ"PDS Kž2N OR3B YNH|mS@SMPE[2EQ,[U8@?$f4AwA<+4\uՃ>`qqy >Em.8$f|OrYo[$`KJ?9fr]m/{ӗ3褤BҏO٢q㻘,+@\A[֞ P]"4*e2O'Ь8iI@7ˬ15Yg@ dE@E*@PRxCjDp3[G:Hdۘ2>,ࡂ XEGF5qd# QB߼$P*,pِҼa!ފ'{,ST)%,`D$y%QJPV;q)H8(6WCO2B8"w:a>qAT;Q{ %T$H[|T2' /e"$H(TH@ 5IMQ S0R@EeA!s }Qf,#AL^Ґ\^e@#)UA*ϐac4oe(Ǧ^3g%NX#(%ݘx6s} T4 )Y&*~$II͡gEmNɏg:d&,2Q&ֵJqjK]*Tt)Mm1T4{BQ702er$eO$h! QAUcbVS:~^ŧ'j*P/ _[j" #ۡ F.w8+ ;|Ҏ]mlS[ӮpY<ͽgÞ0^dM-) ?XۭZMs6`p\_x£ZW ܭ.a]r7hq)y cÒfQW2<2oxHo;|.2)Ǻ=ɤ0SnQ Є (hߵm=%gwȸyP͛ u+@8o~^  x'?|C.B؏o'н "=8m KM'}=zr}#7 ;mobilesheriff_scr2.gif000066400000000000000000000204541263163240400412400ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a { )Z9101}ރe)(JJ),R)14A $1)4R<1@ZAUsAHRRasHsZu$)bJq{b]Rs{攡ZaR $jmb $b19sZsjZ111ZZ1Z)$}JjaAZƔR< ZHRZZ{ysޝ)1ZibH)}AZL1ʔJD9ލAՁu 1$A4 iAŅ1RD1qY9mHAuJeaA ޅ)  P)Y 9(uUs4j0e1PHDR$AYJ$HDs0eLeYD<8J0 4,P9@ͥ !,# $p%G ̤P!Ä:lE1*ȱǎlIɒ}y>ӡC0]6of:Cr,͟! ǫ ((T(cF9r\ $X^ς%iBO^NӤF] 4TU5b'e]c"b3o1Kzr`tФÕE 5O~ #J b8y aM>dap-y&Q$e2Y gM"] Q^Rv 6LQiW]un'1f{e"$lrm߂LR$QLh]{Cq{ !Ո$"\_J&X_'bY[!`oQ <#[q`Wm55(h]gad#{Ax H~(^_~u(9RoQ)` {L8" Zl%aaX D+ԁ[ŵUr~¦) q9eohC E)erI6[UՁQ!Tr\adĵfK'gLmEzSuy7iN%~.J"f@!lZ#Unr;,u.9z]qIeS߽FkdZ20aF4睮lKVc4#<* {"STkQl-^NV)|V˩hj'iINv#@-SV#DWz.?d]Tr3޾]!VM`A}H7Eoal5|4L@DRo@[:i.nS:bBSZN{WS&Y/ oίoA+e`Pc<&4Q@Dt}` X0Ҿlar 2Á6>Ua:ef΁W0i"Bk*pU Iu 9,X :e#"b9h 6H3.ȖZYw9$TRx=(6PH,n`G.%&}W"-A2S"cx-PPU{@P:@+奔4e*Wʮ?^&a,7B| -E&7Y'W4JAKPg"WQ@4R|j+m"GE cخbb -[^6ݬ:ւV<_I7e5 G]f EȮvݭږn˺P6mjqZXI-Ds&fHf wɚ녜;<"U{}_W9}AzMB% E]bb(q9RT',#*,Fw5ĚȚG\;rSrw\s@@vFny!ΚdMa(re5SN"ђGu3&`s-Z ]hFٶߜ: VpN{e zr:hIGZywx@fB=`;õb5Tf;ُ60@T nk' Y:T@nB&%>`@i+ ,JmJtԉ&`Y`J7aS ~(D"T Ia%!f90Ҟ\>nc'!D"dP,ל3hw F:]ImFZtQ r@5y=M=#er QZ yWKkD伵&S";`,놞f/0ʎ2x e;FC9v/P m2`dR1TE?xzae5KzL$D! 6Ilb??ǧe I͋@JoIw[;#B2RrzMz B_%Q|ϧ|Ʒ|0(}[qY}}׀ Hzڶ XzzNNQR1å{K.g'1}TEzG  }} ާzW^dzbB#v0{wt" W|ʗ|}5H'7!}}}>8 ǀpRH8xJ(B)g"{!Q%(yUx_){W؅ aX}jٷ}WWHD}gSxfmbzAS7 QH2QGDVͱ{[؅]( |7ȅZ(J=؃zew7xIhv%7rVIH{a$8 ȌR|b'Ș|̸SI}w|zyX`b@ 8bve8/똋{h*#TPdGB@ty^QvI~搆H"@~7yb:MNQI#IčtKvC"#R9TY#p+Da5ԕ^bhr,+X3#,!6c;9P^qtYvyxi i@zamI13/R$V#0)k@gٙəS0gU`mra~i_P\v9٘%PSFeP@[EkYh(IQU@ %9P}I ;i Q!%YW09Wh0y9:%ٙ靸XtUNʞ%|0|0%&3& W-yz4:ԉ9PXyX55 P+ڢh)pZ7J#@; 9 kX]8e",Pô22XW W)]::3Z=,RpښI1e`9eY|R ةjS!_6y3 EqP 5 ֶff FDꩪR %P0 z (Y*yz 囆P@ ͚ogf7P p % ۰檨身)SÊZPX%% @ ,PmdQX ˰ ˡ{k3!z[*$k-0k(²1Aq681k6~˧  ۪E۰k:%3-]j h0gəZY鸁=A 1kc[E`gkƶZ"|꧈@uHJJ:-#Pg0; e=EPP1ǫkmEol7YNr[! k+O}ZKċpHP1Ź I1&N,D$ !Ỹ!;;K)@]Hм@&R米T@&,1k0 K [ǹ !\[ lʠ!Z\ *7~.Mf7 ÞKkZ JP))J<$F<"= HAZWܬ6F~ba` % EK_0t̨{yJLNNb%`% bHK,'ƗM~븾)TA]Yxe 4/&‡O4&i`e`-?:^4HMPOy0zr+Mp+ffpZpB}Um߫ʛ]=j`^`mpwF6!X$up6?EoV8Nu@MWPkp`~~b^w&A4^D,8yYeEM,~ ^r9Gq_cy)JNQSN@^Z@"7Xn0n&Gu„;S]dmv tK T`&?#(ň2eģ'E>P$)S4AǍx1Q 9u,C +VT :@h@B'>)lxeaq#F7فجC[qRhLliaOtl1+k2du,7NP(S$8S3sUKR1 uR4gPt$xVNN|ˊH,fFWokﺝRjg :!`!ys fh0@.ڨJ6*MH<{Ψ+ 90 0)rϱJ *xPs(hzB(CpҨ8*F!1W8OEa`=BGWAn9Qs}|^VQ E"~'H VYOAϵp \~ר9d$bߊtC>˂0!3 7€FDh ]ED9~A] eH.h>ԃX.nV31FF+Y՚蘶t ֱYÿ4H8o8CuNKcHE6 GB%b j1nAβap? GHxHg4֚CduI ЊK&s8D(:yN9@GFX5f,sӈZmt6`Jbf\jvӝ81uR23+ϴ 7ia7 @uMEHZ8DXeg` ?E48Y ,s\ŕV氢KdZDx,KmvQ=9(D3Za 8) "-nnX'JiLnVInAThpp=O3h(#ΐJ]d5iaU+4iJ&-c):ֵ>8]Μ: &%|%,:&6F3:ZP6H=}6zPgqrw\:>-mK]. B_R_&E&*omU*EӥZ2w֭vrRN'حa ؿʋ0lxw+)1Uʼlp^:} m jwILZ >^B!YPס}TxɫV w14tx_Z|7VvlMAfI8@ (` kUK +zwC!C$2F8_6({RN 9a}p:읮aU⼽}|VG' sU~wz'{-TK`FLXײAX?Vc䬫ܟc/3:WǷPNiJ^% f U)nS@WaȲ(?*ϽC_>[`W4SKH+iҖElh@?~?l_L~Fca;780%$G~w[嗁7~GXvءGa1Hw%()Z"hIe~D萺w{ݧ{Ww1jPG*%9H(y)dNLgWIҧWy`IKRa+cZ>74vywIġ /eFwd6 xrdwI+2t+BVpW`?fyh lj.L9+{c1˻˜$eeVx WXv]޻)k9 AS)а)P˜ [;afus٣#' zV`a JTs̾ ,[@`WG0-')|Sݻ,z2Uɲþ:,DC1Ah>*}xJ`*sON1LU,|%@`) ;d<8:+IP(:C2Z73yQ<̲ \A=!C18—foɞ}<,Тž̪lƋ kƒC|¹|,P27A>,cʜξܸ<cyV{lq L.0 ΟьefǗ>'ql9wL ҙʙz{p(ݝ $Կ6ki}m@ Ÿ#xz!*M,TlO )4<͖WH> Z҉{@xB]O4|no~HQA;G"'|ܠׅz h= аyNpJ{JMљ;t5Cgט_Sͣbnid(ڰm ' J=?c۾mshօ=+yr߲+Gx,Qcm֜Է}p֞y}řx}fA;)|9 lnWJBC=y{[`zٿk57xK,pmfgn6wIԅMݱ9&yhNx}Z,~@ӾV5~GP0!A|p,%^~P!ޙ |C$|IءyGiu\qr [@CΩ ںhFq1Du\qUHBwn!++PepB. љ|hݭI>^ihk".GC6pw0oc8tGiAiP.x:h䵭iPmPiM2NJoơ*#RLG]gh=_Mi_Jܚ>4jN8ǟLT؟a쟳F0gI>✪>`1ϭQX3p^J~,D^@>i>>FmP2HRXp̴̧kKZp^F>9z0$|pHoJ;GwLLY/^L_`P>9`ԓ^QFOm v0)S+|9 Ѵf._KGr/_u`vCo?O>eT+0XD_J@M@az@_vp b>Qb4 $XA4p`!M?PE8 Lgb Y"o88 0)bЦM5m#QNv'bɕ-*BQ2,F@*lYUa9 i)|+Q?#(7&/P\) QW ՉQ9`|l{QZƁzX;MzOݢC80Y3֭5QXe-aKV *Lf͈Gӵ{7yl&{T U'2př7Jak0K6$OBX9#0؎13I;;' @r$$ʭh (>*?. 0 ,<AZ<DbL"?B +X`:#dO!6 qvJ *H A0LGB&zqN {jE8\ʢr=Zˁ}㵽Ĭ` HD,4GIZsw4I-ep#*C(8h UTb$EK0PH5X|L, m R" >)JPVoiUV$X30{W9: zW4ipR9D3216a+ (t%ZA `@{;a|~HĪ Jj9LHBuX(R۾?/7ĝ0XaHX mPwO5 $e׺,&lZ!5k 5W" H50{7MZd5~}!̔EYU-;~pq#3 *h.%cs7G9!u ;ظѸz"]`0Via[UO=V<}XZ b o _30i X LK.R0cG"Ek\cցA 1F{+A[r:8ƨG]\15fb{M>AR|xI7 bGK{8E"kI$fCN|(.)Nk"!iҔdAyKK*wHN% EL+i08cDS:$y( "FC{"volV,d-+Yr\֊2q%%s.&D!HA `6u([2; b־vAkWe.r{\-uLUku9^vE9aCLt0@yϛW%ZC8U|%X&p|M %ws4 h 5%xkؽZ@Pޠ!$%=ehŒkLc;qm]6f.:y Xc22P4HCLH[+KjlfYgfsۼf°AWB!Loi' 𑉕68;~TB1j@jo/ hDEuZ-]iL [;PV;28!4beCem5Zvg;<vy<9"v5躬fuDT Mm6@ƽ 5^nwǻ~wukM{6}zɻ$x+o͞[bxn Hi7c%tlY,`KN[;mobilesheriff_splash.jpg000066400000000000000000000060621263163240400416730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQa"q2BbrR#CS31!AQqa"2BR3 ?ȟY7pj; -{`qJ*՘#hΓJ^iےfcNKJ=ky?AΈuC"-}Y c] "B@sȘ bV(b~TlO.?Eꆥő'b-Qy.&B:a"IbQ#4ZA04Zw6OV`QP'ӎB>XޣZ\UA+BqY#$%іkZsrf@'C#CxtOhcc<s+RWoqrZ|U=jKS&1D7W.4Z]6if9d6_ /䦧kim@!p 1}' v~g< K|da0v#KqTz$9QE#~ j'FZ#28zxw_TEIwߪ5epW+\m z mFu(beD@|ȟɚS,N+[T a!JKN!Lb۳/=}D|V4;GTХ&ħGqRgHiAޢQ\МygD C {@ܫc!HeV5܈(wO4[kc|˫r4.4mq՝K#04ueĔJ'r^Tv=oXyBWxQb\}im~KF:c1V3H,]eUZ}JTi5.kl\̇w>ĭ^ߩ03;cir-$#nP ~%V[SLr\ ;C.1k0|ʷSs|*wdz浀n.^$rn~H-41o_טsoj أlm{mfQ8T"1~e .?&_Q;"tTܴ[y공|`@WoZ8tl9q%"W]K> ѴŌV?i fngZShcu f qcnRW{-:iselI%k3d`ZQnme:FHx7ܔޣ噎_k΢C! Dt䀖Q[r^JLd_4U+7: ahߴi";̑ɑs\Wue;`5dn;]$أ7R&sNġ7A'}$! P /L?r~B6B*kt5Hcᙎ#]k7}FnS#r)e 24\IPF;HTd[v2Mk74QvtSu0nEAB_Gs|?6 Ϭ_RZdanBa8dR_J=H3*WOlJHf"o<*;7LdTC77?1*TPٳ}(ߚn;‹[n;{. @lp /?\S[3q#,4{r*r.r1<5|9=3A3(KI*M?tKCAS_tX3^wmH5[-\;mkmsmxsI0ky]ND3䑿l8Δ#Ns抷9[<.ꬷ.{|!۞q{7hι"2ߜS߼csjQ^>_>? ?q߭+_㫪URҒt*Ё @J!h f( P+`rUK[/Բ` !qڰ>a8чGaqHkЉ2Y5EtX̢.z񀩳W x6pH:lȂƃr؋ P%xL"HFcȹ-l$!mX (p^Ȧ&{C!O򖸼e'=y-W^Xe2e-?f:ӎ" ҉hKigzk)I;abʬe7N]s59-f}\a'MfTg .l׾'@'~ hQWl'R (c?=ɀ> e&]fJwƕ4h,)K`;6IZxCTKT*a$# .3qSj'Kz2Ru4`s^׽t+_*X v\ݐUr<鱄If$2g֦W)@^ v/miOԒEjaZִ\c8c!Tj֬E.9L7gYZR6nl{ZZ.xLV5L>͕sZ,0˥h}mYp \J^/LI1i'n+׻%&qIԓ4kkvp?\P@ E6%@2 01Nx՝ } OMld6k3Leo9=0{jc.cP3?9r~6'l&tw|T 7@ۙ1$3Ԏ&5dT[yZp 5y[1>E*OMbN-Y/d:N5Rt) `]loÚ*EUvje*mrMiub+/9:r;>/z%[3~:s9y@@r#/9E^r<$9])ַ Nn7*wzԡsW}1peiw$:|+]I/bow{ۯwϝ(_+apq΢̠^e[:Ew~zdOet% vGOқOWzҝOL^{koދ>lyhX=m_␁g SzY+9уzGo`?1Jku{|Ы]9zoh}h7]m6mQmg{ zo( {hC*CTD.:h<} 8zl7dqpW{<858Wb.IhVWYӂVR0T8 UlPSw{ H[ȅjlF8Y~$~78Fgx.XflYȇjXwp'0G4~Շ}mX%8M`t'hR~hȅ(HD{(舑XnX|\^^lC.")cWMbvkx3@@h`gwP}4pT84aa"CokWL²axȨ@XXpwب84yr.CG.'PM@((&@ X%X2{ȇG b8`(]H ؑ8y-&gSzHT i xWP}o ( 3pGpOlLpy]}pi'Lg~CY\UxJ9L-NHGzi8Yg]i|7TUkB6>pax X-WYXvِ4 i|ّu+(TT@m|֑٘)yG /əXS 4pS(Zy`-Y8n i)b(dhb8x'șYiGHBVeTpMxpYZyِa:K7ِظZu+yZ+q3:/ 6 93[~3u얐``P @)M{0저OÚ/˹Ѳn/c5K:@W(p @;ڗ2L4M Ӷ@ 2 z\|^0 bX`;Yfct ;1 kxdé|p|J0HL<<2LqLMҴ |dý9{3`zyX(pfpjhW̅t.vεI:|\l { =w`v۵Soz܆( 6^uC8dz R$ 6 (` bȃ_|h: ̢ ҥ^K~ u:imGxKT(4%痝Z-(@|pPGm}\7=śVƌi |p 02P]|}Pk[u]-5`4@{ypXÆhSf}K|sL+mr+JHez,$,dxꑷ3CH{U[|+|{@Ý @]_dHی|~jֈ茞Α~^m~}nk4YdPd(:r[0ܶpU@h(̻n ٨գ\{Դ2HXȇNV^Wq\ P}{.|uDaW58+KXN?I0{^pz חX.X&[޽qM>yy+ #>V}O=|"%{u󀩩˩=ݬNX)rP[0 WS jF{6-]9Ow `/dfh/ >R~ʫ|o$j.707 Fre~5zOdY~Vkt_萸L`Ŝ#hG[̏Q>N>+x`iid9j~ + 0hP@ "P0\!D%*bĎ!;TP T&(e J1eΤ)3C:tHb! zE QC xp jneʕ !Ȑ`ۖ-Dnm{I.Q_Gw94P[QکӢQ]P=ji(* `#ڣhƅdh!#I|Q  <0!cA 5 @;h41hH"|-$΄1!$/?c?: ."ː)Ъ ePtA(B3kK(MTHM8S >8Q:/8*>w"P(@BSI|D'K*;^KK]=P;4hu.X 3;`%$к)%@Vrg8O㎃-pGEOZzM-U)~6mAwg ;7P nRIUOc|kq?fKHvk+> FaѣXaZu9b -d\T2U|ulWvbEtNwfA݅+'=.;J3LaԢ2rvlN #‹25LLh"j1$9`|' /,,ӪSV׭I&) џxb'N:$JvDuv]=zVk67_7|W_xo_}D~կ7Efg- @ x@&P d`@FP\+آ ncQMP#$a MHAzK*L),Li=JlxCP;a}C Q7d MqT?(FQSbͷ&v*IȖQc$cxF4QkdcE8^ xGlP7zҧ,g5kY*mhi̊v%)E2"la Lٶ%o]-m9\ݾ 7i3(ui\N7uk9w- yScq{K;^vםm|Kw]~Ϻvk:&\ؔ@%(˄), [#+KpB8w$1[X bm|cX;q}c YC&r|d$'YKfrd(GYSr|e,gY[r߅ws|!_ p̯1Y=~3fy{qlj%|& g$f]@dэnr'ma@L. L}j-hԨVUjWիvBgHz`n0*@=b[cϒg#`O^mhw;v==ESTvMw]oy7 KG&mp{#<>8okg'+Ƹ9_8u]gW"/B<,w`q̝Vys@:Tt#9D>ӥ>C]Tֳ~cnzn;mtvpaparazzo_scr2.gif000066400000000000000000000202751263163240400411610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a000بPȘ@ȈHXh80@PHhP(pxx`0ذPظh(00@(0P(x ((РH(8(8(H0hX Hh(а`PȨ`(hx8080xX((((Ј (H`px`HHH0ШPؠ @0 p` (X h0088 x8X(8(p8(hȈ@@0xP0 8(8``@0HXH 80Hh8ppظ 0 (@(X00x(hP@H(xh(8x8 HpXH 0`0x8` ( 8x`X hxp0@ и0PP(Ƞ8( Hp`Ph80(h((80h8P(0XX(!,H*\ȰÇ#JHŋ3j,xN FlI \R`,+W~|)H  J@ %Q,dᢩSAqac6ذR`Êuٳ- ER`m|t (wrn:Wɢ ѤUhSvUݺw%?kKHoA,PR+FЁ͗ĔZyfϸ168f%+VȐ:kF SV47n A* . 16}X{JB#VA[{[maw)RF7y*uUBŗBM[M(,0(4h8<@)DiH&{-4+@QNB)\饖[%f~Yfgh&oI's)'w&|Y @"z(.&hJ p2~hjJjz**T꣎Z(ުh뤺jk 뮹+lJڪl" "lr+܂*-zۭ.讫n~+,lN0KLq_q[12 3[3J<MЌ-H; FL+Zi՚^X3_{Ma[=6gݵkgٝ4^ʭݪ;q.x]wm6>x9?x=n_b^( .褗>:Nî{;?~ߋ*.?_zſV 0߫W@PzMYتֲ(h- VY>AnЃa -yys g6 s?aqC㜽Lׯ":PHE 21a/KYDL` [H2hL6d\@uh£( 9H0hZԶ5-CdXԠ̤&7K22ĀYŵF q[$0I?2,cYW2P!,7uN]L+_yYm-99uZ@%_ KdZc%5A ͆9oxL](6Lj2C!~#%mit32e/}C`$ HQhDgXĜFP43DAVˡH# }ZTܨLO~ JQZB.+(S ԕ-iɌtTGACK=[ZQ´OiMzӜu1i2 PT8ā^= {ݫ_Wu-,_X2Vkc kלAq H8N c=KZGa Xer"}l`c+Y.-as5W)eٲ.U6aMSli .5'v;zv+^~׼EwqbѥVW](Hʲ2ۢV)ݮwͮ^ ^jwzE`.d`;8Y qY]\/KnQH{+ac ˸6muq?^Rza75"آ.1)k:r+o9<9\% Rd Z1gwv1l;͏}˧iټb7tle `9Җ f'2h=pE[,W7#B@ֳ5e]k[:״5}^ ՝^JSK0['N.R/tWa_tc7xe\ e~k߬ yY.“3EXx ؀HYYv48PsG5Z5t7| Ȁ0#&jzz+H)CRh37]5ЕunW}x $1:Uv$5/37y*uhzj@?1 `&+!V7 `9|(~G~& H pP@Qp)ds.1gC{89QuwgfzV*ȈAzȉH)xz1M{z,8tnfpXÑ ^há{*(=Hj%{qjTab11ȈX^a2`ga~2|T*n2~hXۘ1xؘb/Pzn$+kHTw/R`ȃ7@ 9`b&OpcW~YuE_iXY!#')rLV%MF]eh'(;II(P@wi{/`wH's6chwQwj wɘ=f??3x65(IX~Li$h@uXA@HuIJHR7JRvZ'|K9`VPp UPٕꇐwi~L&&thY0vx(0U P 0pwiwyI6u8(vX S0oLКy7`uiy{NfFi>PSJ`( N7pǘŊ;h?-7o2 A Р:(ɗ{z|'aNZX v(@ -ȎfR*9zB(X*Bj@(pG>p0Zxn)"I0] x0_ `gx 禱\Uvv{GP)'#b;Grqڡ9G0ȉ(Pj=s23ug9顦wHsk }{\X'# J0 #ʬ0Jvhvy_#Q3ڍ'ڪHG*I#jdvd`&Szȉگuʺ"۬)Pk0Jgpuۯٱ⚏ #K:W(=h`9& G 9*Pk@ s0`A[Nfc3׳hɫ@'p=X uHV* k*dkj;ˊ2*ψX'p{;@"uXI^`v rPu1*@d8fAh1Ĥ ěѷRӧKI;f[Vۋ^N 1(ī` ʫʊ'TO B (pۻ' кZXUN\Q 9\$4@۶UԒLoʚ6~ 0[# |)ǩ$'7hk\|.+X(Zk hX&\`J$Zz\lۼeU2d9uȰY]_̉(0`E*mq<`ǜܲ {CPFc=ʮ]V`)`)xUUI #?+;?3̟'|+bRI,6z")˱ų\|l$ 0:+ e"l@i;\r󮙃ІVa_{iKb]KiWȜA2}6]y{۩D9mQ.ʚYK%}'*37}{YYOff@IoE_|`L)KJ9˫Eig=oq[;zvqhi.L=(0v{˻}n^H=>{vJ֏G۫= 0 =#x'l.kӱlpʗ6lm+RkQJI |mi+ =>Ѓ$,K̑M<o*t ܲ]$h̙;.+ P0 b0(P .BႨ}^={\$@j#( uXuٴP Q|VC2WaX<Š-?!;S |Z#8iPb>d~c>C#&K>Hf#H {\{A;m=ޝ\|3dn0Lp иh>Ѓ:_fu噭LoJ |&P=Hzϫ>l}^PiL~ u]}vn )_f {}| `Q=bZ5l$T@QIMXi Q740'&)f%XbȜ nΥrݻ&W/Nw'5^ĸchãWH6UOT6(A)6z菂D!pF;с9hm}wny' x+$2$ύ?ɬ!^PТG;t"ԩ+?хemʉ?3y@ 4pWJ700 (@K pʁ"&0dOsFN3'"@G`gYO%"r}ӨzEK,ҀԨ|T!t 8^v=LX3c-LA!]O-7`łc.$P d`@FP`XŀO:8;#$a MxBP+da ]B~pvM$#`C QCa"H&88Q%bxE,fQ[bE0Voۓ"Ժ;QV,`F8QW0{cG@R$d! yH>[#rI Ad%-yILf2#IIpi!ԏ:6JMR(JS* pOeCRvZPl^gLB3Aɣ8 z&5jbτ4MoRә8Ynb`1!s{k#yK{gBcKyP&T e0lP71p ыP7`F9jQj/"hH?Qʃ#eJkhϕg1#MS4*]{D#9J$"QJ=R}T&ըRE*jթ2qh,V*$ᓖd- LhjY:V4ԟg]O^ӘφV%la9i1I"\,26$d++Rb,f;sye)AӞ-ZԒ6ekg¶-m[za5p…pd["G VWfm.qY %3C&wߩ.2 z{j7k}z߼Uo߿&p \؅,`:8`L$ ';80^,GX+fq]bX3qm|cX;q}c YC&r|d$'YKfrd(1GSΑ<(gY HiY-scf<9mߜf<Ϲ{"gW.@ m+/0X fn9k Lg _ȴ9i!A P?+`cXϺַ5mDp}}kUyQ.s\ָ-m$[:2$[ͅ4o./u`D !R(fI6Nw {>DH}k~~oa µ5qo 鐃|2/>o Cns58nߎv@EMoLБ܄&[Tֵ{]Yױ^8]V&4l];mtvpaparazzo_scr3.gif000066400000000000000000000200321263163240400411510ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a000بPȘ@HXȈhPHhP((0@px`0ذPxظh((0(0P(80@ (РH(Px(8hh(08Ј8(8ؐ(hHа`H8ШHH008xX8`(hHh((( (H8h 8hxxpH(PH0ؠh`@@0 P` xHx  00Ȉ @@0hШP0 h0(8H((@XHH@(xX@h0x`h 8x`@P( x@ظXPh8@X`H (`((xX (0XXX( @X08 0X(h(Ppxxxx(8hPhȈ0XXhxp@ 0аxxPh@hȠx@pHH(hȈh`!,H*\ȰÇ#JHŋ3j,' ClI \R!+W~|9h fJ@ %,Ɂ@T@ac4РR``Ê vٳ( ER`]|D 'qrnWѤUR@vUݺ7$?kK3ɴo&6di!B8EKbY!]μ EPj&:tX׵!l`oEf+]V/ۄSHr|r:}DH%"v!L1[[{ZLm]G )R&7`y*uUfgN[M(,0(4h8<@)DiH&K1c 1Tj •"@)eVb饔Rz9Ø3x)&fbIfif"BLBg'Svym򙦟f f^j'Fyp<*eY)^h`b:J *P'vj馟jk6ji**kFJl,k>l구j챮2-JlmBl;i+okoʋo[% Wܯn +mD,WlgRb-$L1(,)2)?4r<@ H'+,4 SV5 JI-Dߙc JU_}k֒iݢmi[[C-w`t>C+00;kz| ; Ci h.j*.`~:૳>J>/<ҍW7v&Gorg,,?=|N]?~g-۠ks@qOmUxex](TҀ ĕ8rK\ĂA:BPt) b70 Сc9yRbx; sسbшKX;urXrуZ(>f.H19!.0$$ GJr&3IKJr$(yQfR9 ƥLj{eU] ,*d);IO,(9dBҘd$RU>u\ম ֒r¹7($+H |iO~'$Ģ: Mpv#:vʡ39/t#Kюr4 udH=Ɏf"hIGȋl%n=adx'%'JԡʳE=*RΥ2՝NŀRjϋ:nua ;LOLgMjSVp\K/Z]qP# s kZ}䛯{AcJ×a(Ja 0sx૿˿[D[rʢ+Hp9ֲ0 p.UP%0%}~ȮK$ SX#l{ƒm0 NUN%U~y!Û%bG|y GPRl%P1^Fh>+%<ۚzhȚ(|ěhpƊo)U1@&|̲8x%h RH(Rk ]=PIp]DW^˻e?U|;S`IɁ䆜RqR\ж\6-Uj  `8E}UP]PsHԩuS8S0'hʙ\+H8n.<^+A`jS̟5rr۾u[|=pWp\]l7] :ZlAZߢ  l/ \%k۾|3z ~}I@V l|jm Tk`lZ>,'S ĺN|ۼSkyY|~[43]Lc2߰\0^emN,0ݙ{Th&22۰59=U4䬶Ps;N_|fpؒGl8=m:R[DJˑaˋ)c6Z,d+npۭ]9MehζγCvΐ;X)* uZm3]e]l|·uq!]/qQf0 Pe"%箾ưN܈K-9[Mg>ڮr#p p~լnF0SJ2UHY.p}ӛwڠ%6IN=o7Ý `bھځ# .#Y.FnME+He?BNق $&k)ܼ-fWlEEla=?Z@=Eol r]ln4rNpyΦ8? x9!]fiNi W.es97)h^Ƌ0{0en/ֶr??:۟9ȩ{LQOY|qOoe]\( ektcY|@ m9NRϵ}NDV}/$?OhO ,0(0`,,d%NX ,jLQÁɐ#ID)rJ/eƔ36(`#E F q@0ѣL ͒n_Ҭ,̛Ԯe[ vz-u邡P&IiC:tܸqDի ڵKG%@2,gPr͙5_&Sşu\*w#\5JlP\}V[>4iΞCAVJ>ݺMvzD.oQs^9֫NI+i 4@: !=/ X6F zA򉾎}l GC c!IȲEw %fɓ\Jr %)G)LbrL%+'y:P7 m)IZ.%.C`SlKlU/c1=sf3){{ {$9Ns]\gyw&Нb'=g pD>i" GL .t aP^-F;Kf4M 1MzR.XbE*T-L_R޴+)N{ӥ\'Q8TIuRhTթy#R!@6 =dW!HjիbXJOj]%[ӊʶZZ׸Usd_+yQ"%,I+ÑְEhJXȺS1(<\6Tg7[Yyv,i?kYӎg1ZVmmm{[Vmo}[W%nq{\&Wens\FWӥnu{݊D=1v]v8𦗶mPpW{c◾}_WO˓׻(ՂSrp nPakA I 9pOb /;܁X!X@ c@1A %c|߯X6mB"Ac$ l'Ǘ.|ZA=Lg;*P!KrFs/,_ ;rLFW&,A9zY[(X nv\'86nr&p@ &wwf淛;mtvpaparazzo_splash.jpg000066400000000000000000000056221263163240400416140ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDtd"!1AQa"q2BRrb#3!1AQa"2qb#BR ?FTP2v.13u: j[`lKq<Ԯ1KCr* 6Aq}NԹs{7YHԔ bx.W5N]Co前66}zX7ȹJI ${7ajo!%Ag1ӊVԭXqY'6نI\m( 5z'VCbӖ7_Fu+Mr 0LD;znVUTU&¼s*[\\\KL >z0RZSvH>֑ف88lD4rď6eIbg,M9|p6(ul2Ñel EzqJsV39E1Y%$W;|+?Xmsh#0in8Q]p|@R3ز?1`V{sH1p9UnH#VَF k3Kxm dgbl8J"Wh:Uǰ-s[7l55q[깭WoDr!lFyyg͘S=F?ӚDy#eimQwKśP\.dAq&N2`'7i ]pUw3n𹻉X2/m~Y&Z QtLWI_δƑO&><m46#"t\:66jw\q2A)-Kqta ^@VE*ml2ɍ|##ްer-B:;O.A ݛ*'Q^>5{ hǎ]X\3{`?1;je4>T`G5M'|7OsO{ U=PN̏Zd,^_jVݎz84@,XZAMOXtr%v=~Z: e"!SLJNih^m WL͝Ȓ&{0SؒEffp|,器X՛t<fJٲN@|0_.$@*ZԔ&~9!?_k.Zw" zrާamw[}f~Q4ܶ[3!TeB)Zh y \nj7ڂ(~+H)ڇ3[CZI b;=V,[ B O㇄IXXX) ܚk0P%´m׷vki.a5PޘN.Ѹn4T;s z"W(8Rwo<"nڛYwKw,kg=;~Nb="|Ƈ{ 1KdZ+vN-Ί*p1SKPWHk]*hf7E^qƗfU 0*O)ڶY]mIopvי%9 ~![k/;6Ac}9s+9-x 12|w a_VG(ح)qb*UnFMfU<ĎiFa<w\әg4͋ƟT4 ; 0Cq1{oj4Lm;(8 ;05\ܧXurݻaj:y,LKo edKcq3|ys-nj~V_` v2[*Ƭg:Nޚ75Σ{iCcivTzm+N*zoK$*bd?c[B' YD Ҩ6W%{2$. 7f dxф̙ 4FIr۳ 87EY3\1rڕNb"U;Njlۍe ڥ!rշw 5  m"UcM}>Kw]rB6tH-b97!6CNԆYs&Y bh˜hL6[{R57 "!c1heѵ bށ/#WK4@m:iw H]g{r$N"+@C:W^n4I&У9`biVʠKhmgidС 0 _Dj>|vi/ZBޢBQ-J9_.+țu@QV-| rw$ o,yCP*TZQ&զ2BwDe7.ʁ U\,}eJ@2/km%_nNdV|i{xb~dAvJ.=4 2۝:qw=5SomKKw2U%:CW:}g|O w @\c Qݍ @ƼvZ/ ,`.QGѮ+GG4z|7D-= 5,xz`އAQc6]pռW0 NMw5..RBÎ?59_@G :@ ABco@1vbVun㚍w8?K[b")w̋bm~l|ƒ޹;Ԛ"iMƌJV Ob3̯`@G@QaW% xLNS$-4%/iHɋ#WFDEZ.m w[6ѥ%L\&+&y5cb&Ԙ֘ypxZfs<Hp *"tcjG_'6a\>(y:7jń;Ө# *rosI6pDgF7ώnG4HKf.96/2dM_1(G(f~)7GzT{2ՠ_T1L%('P?"9zK+MZq*0=fZ RJ9 (c`s;Yk?=X-,ߧE}1/ڗT"cfJ"P%,&[b=2SXV~gSԶ8})TQnm]XB6)x MoRq)aEw9׽/V[n淾b{Mi@woSG~GV2o7l`J%/~In'<O|_}]zxmw0=!8 P-o}C}#Toߐ7_}7@mqgz|yyWo@0Xp  y_yW|{w7#(%xٶ с*qx:`}o46xv'~'1DpFo@oLxNvUXoWhYxnlv61\*sɘ"=!wͭwx0#i}؈!; |۸ui,i6-;e0e j=qZ.1MM܊e/}Ms ͉aZݯޯds\ux]. pZ<^ x"n5MUXQr Mq p%oMמms@o.{tN@Wn~аث>گ.o3gqsѳV mṘΞpq~L6xIw=DiyAW@f.fz00V6r.nOz>xҍP^Ep _ĖNv-C s>x>de>3O^$&o(m̆2@葾Nՙ9tNolp vюlN(VgV{ܝ[voE+]]gg >K,8=~Φk8i roKvu^N&_y:LóGkt@É3vp_\q}-Np^.:<=:y,y\56\%P&/_7 PA C XE Phб=z"@LK1_JX m:d8pχM qdɊ"G~$J%,eNJM9 ^53%@ %[V$lK;.,R6"N~ agC6- wrXLq^|$p o30'`T` ETX$l$}9o3fG{8덺 maraTXs-b{D {կgy;߾#,?&40#<лo) ,@C`ĦD<a҃C>k$:(,;XEc$TrI&tI(J2Ȑ2,rJ)LH0sL24L4TsM6tM8sN:NO@tPB S <@ԃe(іHс0JtSM]TQ-8PI 6V_mZkeTZk%Rze@ d\iU ŕaw}i\BvXjmb-ZxWGTE0s`(Y\3ȠEo V]ve6D3Vy/з`}iRx/h=U\pvg_RU .^tݎecBR] W^9U!ӽ%Y_Z4FWݗqmVXe[=i95"Cpbͣ[v*RmىI._JTiV[ez^먣!ݺmyHlHfR\ͻb)SEY 94dIZkwb?Z^f\ XB`dm|*}=m] Z'e͖`iߞV s;֜Vǘ`M`YoU%FeOo.C; K`<@%"F0p<̭ka:J(iq #r4Pȫa F$@"EA5kJUr DD0~}k`@ :N-;m-&(۲L(PCNm%`9jիX8T|\uAZjKȀ޶2o^?P&iiD+sӤ )2mIs)y6p$fc&7NnE$](Cb=b8.-`-_̹/{$'(dn7%GyL;2Ӑ4)Le&HQ/"H:;L:1*|rp_⛖83pW0gN6|V6ws'! =o.HO!$(r&z$" [XϺַ^8`{ hOֽr}dNs}hwG}<.xz6x{~xF$!A7{yy[v3q=%y?>x=y3j虮zh7O"q? ?}EHo<ҭpWg_̋^fyp} Ѐ("PXW`W|%G~a|ʷy7   (gz:8x ؁v!gzyls ~^yH4i;;؃}bW|G|k|g8:oz(pȃ\(^`c{ww|y;x`! H{ xvbzuf:p#w؆eȈ(8hWp: ~y:(@f({؊guwsXW}H{LjnG(HYLJطBWG\lAfpofhn(|>0>@swzؐLJȋ9苆 z p p' 9c$Y&y|yY w#qm֏V阁>cBIF9C)y+ -yuX03rf`蘑w>] EyGiKَO v'qjH}\y pgaIPfHJ zM osrYZ:y=> 9DY oywngXy='9fٙ  zz7|I y])ٖ (~iu9>Mljhyh qpMٙ)Gu;w)ՙyqБ9gəɒ{ighW eyɟ r yzy)jz`8j-ɚ3ɉL:uA03 IGlynפQz!Jn5ZZLjz4Ouacn|Zkzm mi|&}my`7HyT Y}ڧ8h{&i3z`訠7UXZE\ڜk\JfX)|vj3:yJzePw:0HSEzG:bWr欈JlFʄFv YW0jhwh*gL-kyʞZyiz*v.|۱;|z K۪ G9 h,'~KY&;™"J|/iw&خUdzwT Fy yZYSU[ 6Zzg8k)QG nyp EKggKi*@ zlpkۤ 쪷ǷrFk+{r1 z'g+uڶsKT|f$x ˶@Ea` ltGMۀ Zaw + yKШ{P⫼x,W틽=;۽ܠ7{vsڛV i7N'x`h7!,#Lg' %xip/k ![ iÿ7KK|*u?fs@x'\'+!k{O¸=.0\{a,ƷpZ:uGlFZLymoqcXy. >y'}{bʕpy:ȏ[. `Wժȋ,t+u71ਨlL]%hn~۪ݯǍik~z@.2\tܦ㧹,e8(<{o^vq>wա݀}Q.^n!\˞ξ㿾v@r Ā-傝nx>ꢾm.{.0_W#PBkﰞ+zy.I xjOڋ켲7;p"ɩ߸2oc:ؼͅ3GΗwvx:ýjUf }4G3^?:us-~?(yFS9f3φ,y\Ck영y,v`c,f*,,Т__ȟO̟?Odڿ?_/@0VV&22²ҮǓظ&ĭ==ꮉf NXhf;rBrC Up؃#hywGbL&f0I9cÐu+:8)+vM-N-ahc9|Nk5QµQ[ &<էK3fDTu\": QL}Fn1n"*.HG:LͶBZ$` A6~hpV 7vyGAb\pᘂ%IK-t~!_{Q,d%%Wet?-8хފIQ.d:z0c)|4ZG$j[RebxbJY&AJfNftMvKJڀvGp:lYG<\ R9i 6f h4 L,gU.<>^n4I&У)`bi!VʠKhmOdС 0 _DR.|vi/ZBޢ BQ-J9_.+u@QV-| jw$ o,yCP%TZQ&զ2{BwDeG. U\&}eJ@2/km%_nN V#P|i{xb~dӨAvJ.64 2۝pw=5Som!`KKw2U%:CW}w|On wꥫ ܮ@\c Qݍ @ƼqvZ/ &`.Q<Ѯ+GG4z|7D-= 5,xz`އAQ36]p ռW0 NMw5..AÎ?59_@G :@ AXBco@1vbVun㚍w8?K[b)w̋bm~l|ƒ޹;ԚRi@ƌJV ObI'̯`@G@QaW% JxLNS$-<%/yHɋ#WFDEZ.mew[ѥ%L\&+&y5cb&Ԙ֘ypxZfs<Hp *"tcjG_g 6a\>(y:Ӏ7jń;Ө# *rosI-pDWgF7ώnG4HKf.96/2dM_1(G(f~)7GzT{2ՠ_TL%('P?"IzK+MZq*0=fZ RJ9 (c s;Yk?=X-,ߧE}1/ڗT"cfJ"P%,&[b=2SXV~gSԶ8})TQnm]XB6)x MoRq)aEw9׽/V[n淾b{Mi@woSG~GV2o7l`J%/~In'<Ou'X֑u!;nrkDѷ^u`w:EN‹}G|cw'7'Bx[኿ 8y|KO}n<ᝏ95׏87}DPoyO/\D(B佅ӽ_$o! Ac!ц6 b^ ; \>"Pt7w7n'~rWxBc0 C0mZ^dGntrXUr#D'y HwRPpC`qB0vHsn&q 0{\gv |G 6x9X;؃RIy7&Xw#gx SXE'qgHXuJLHwgQp؁Y8CHqfaX/x1Hvxhpgp0@ Q>ZH]v8zXpg@t0YoF苆d[P}l>H(|`7F;WxQ10՘h؈sꨍXzHv_QY`WuX7xu3@{8vD5h Wp7騎(pd@oAǍOwyDM~yuxqHt%9%<ٓ>@9 Xx؍w~'ou7TYg‡z\Ab9a9|ZIy]z_V`׎{ 7~Q~kɏS=)~ Y:iꖖז`99Y)w{iy)9I|Wؙ'ɗyoJɚs`)IYh)uH`)YcAЛ̙霚 [)RGYܙùsYytqvxG䇟?jٟ)&Wy nzs:ʜ9|jpءJ ީ7p"#yr0jFl866*v;=jr?ZA*6HQP05Z9dYt )QBj9!:n_jIw0ʨr*<) *ɩ{ ?ǡZyJoysPZsꡖ*JʠIvJ|ʬΚ*馭Êuwpyzr͚!pYʥYuQpJG zjbC*:kyZzȰ9ۜꘀzy k$K&n) ۲jsy IjԪs:4D91ˣNmjP@Gk[m]F˲bM״NˡPKBPHKgmtKBa+e kxmk|kƺu:p){rଦzݙj+!P+ۗٹ:JIk;7ȋs]{+7˫qk[;8Ǣ{;ھd0[%{߻n)ɋ:LzKk쫻y˜:Jʿv꿘lېڠgKkj+y ̺H9ZK1 <"ܷf;4`zJrkB`6бl G̴mP,T|8~뿀^\-{q"%*,.02>4^- :N8? C.?B=;1I^RPH.Y~W QV^^ `V0`hVmPp*Pr>Alu>8~.avw.~@#Pm^` P9~_~wn.^FC>:>Q.s^>썞Ş@>H.nDu9N~> >^BN8;N<>ܞv> ~ꪾ {N*@Nm~Wn^옞? M%_nH^>:2O^ o~)*o?d8^ؾNN2 4?.np>&|o\O*p{HO?^JnODnm~q{M.O .쫏/Nw|>K^]X.LNQnp_׏=b>o}oo^O$XA .dC &X1@%nG!E$YnjS^xK1eΤY3b@;mtvpillow_splash.jpg000066400000000000000000000027261263163240400411150ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2#BRb3!1Aq"RbaB ?D@DDK;X@DDƛFWseكr ?BcÁ$|9[KQM.F0j4bAş=M3V6I>cr>Zݭng>M/"6\٣7҄MHz1afW44i*6vںW^G03Tu҅2Y҅=uqq}[u >yuPV3Ґ]8)´5p4a8}NJ19IF-m?N?G!n+^}&cE҄4vJEȗ'e9m9vmbmMFfGM=90?)Ew;1|3֧;&aRԺe)}LDZMG}?'`<|M3 ǿڇ3FMVYש"|{w}i%Rgvwz(Y cڪڸhvRIoPꌈvQ~cYFVqQj!AVt? aon+hyDW2M84e_i3Euc#kZv-*l$M<@\ؑőD2-`ժj1[Cw}TDgf6h]%ƀ  =L5RLO| @˸K?kGQtpFFLAyv8?s21)B9%Q/Xn4?E#exk :fC3Y';?* >bwڣ}=!I)wStҒExS067{q Vp]t"e,4 h45dr|d;%tj~:Jwp;9iu Ӂ渌-u,&Qn %WsSGc!syP?o'{g+S3HcZe3Ug0"UL6dP"%,בc AB#+a2f)eZi[+Y4L,)wBYxIʛp%gr&){9$^ړiWJbihPVyc~ &2)Vf&j> JikʨgjʧB,!k%]j։ꚏ6 jfA{liӞ&D$˷JT^z鍧ЩzҊRa0F|4/;ڸ<@nѢK!p1Io.'[d +,< +cxnC[ro_ǭ2جxLF5F|9A)Ij88;.`8LmBbx~a,q΢2NLX#ѪƽY;˳czp4Ȳ?Km㲖Y0G mj4O؛Z.uXA8.A@ Of QG"+bɢP2kg*] ,rE1?a)h oACҶGbs4V}X܈q)q)8$F7AGOu0 -m": F@ `4@Ajl]DJ.Kh|X τn]Ί8B SM rL@+mL8VB)^ p tpJ\rHfJ-|tFiC|) )Ne.p$brI5_@og1hA Lʼ?0q J5 Iʕ=Ѡ2=)jQd^h% PhR C.b;t(<`` p@'0 .Ag%Oi:̀ X$Yl5kMF:Dod4 lHTĠΛLįY`kCMlbsY'd . 4PWwEĖ2pSUƴ@ļt@AYbҭۏD7J2 ,$njLd&@j]挠(-nq @QTZ%^IVH r [ՄsQ'%flr|+^#_/ɠu&*AIԨ>SU~Zx氵Hҩ"'ӺplG @Nb-6\}+AK ג聞#'{)8 m3>\?{.rv={ʷ !'!k kp)q׷ro7ozGDXP @0~~drfurvGx t{ k~=8#) !w! r_ss7z,~?0%|Cn(nYo';x{ 1w9Fvnv00nP@5$?$o.NZ++w}pPr`p}'|ih^oSZ$8/:`^uo`o%/n8zPR"]1- <2,"%m nsV7 b}V/F!q.+H- Ѕ\v 'o!@!n'%&+R)f| p{vHIHhsKHrFt8v׎Qq)nඐy2g:xrdq<`7r oMSXLZ{e(gnpL) (n(@x:yeƈ5:t%DE @n$@hzV}$Їt=YlTJF)B(3AkY:i&+%+ݖ))A 00gB␋T%ḗrhaAA$ P$Pi^rb~W$%!A#B+=!c9K!z 428Ò06ꙁ2]$ uG}C1(ZنYGO`z$!ɟx៨](:R גZkIEԢlR.@94 /7H NQbEь-yA~_eCau2# -01]f!,P'~R?BD]?#$ !gGb =P2 bWrD%"!~kZ(d>R F2x#d#1wsHiֲ!=bG7BR!D8#nz!=enrXJ!@C @jaoJZ"JUꪹ =jot9 P!xHqrKgSr?=>U# NJ#P&j tvjKP PvW]g+\Jp#ɘM[?U ^dUQun n[HKt @n;o`+p{@  {*Q*`I`4@kdn}P3ttv0kH foPt P堥.U`J4NM>t :[`1-{{ !70pNQou%03QQD[R!?pCgnipb• I`ppW? +ouƴ^>vSL4e؁si &?wrlu sy{F/z :ʤ\,cUL1pȔ Lt`\ɛt|Ľ[ 969gaQ|JVxuX'̝a,) Pm \ܞ/Ny?:, 0w!i0%Crcή1p1pUW=&Q} R  VZYَfdTP[b%@NJbO% p>/e9ڬ~G7$¾ b>.WvLN4}cm6Aֱ4`ZdW?.0&I6PN`M5RJQQ Q[}9pNz~pQR,Nb.I~l&Mb%*r⾧@LTիN촨N $ϟa4S$LsON;ٗ&Ά1_N _^4`I?/G?֭$MV o:J95IIOK^%,PQ^v^5C6+?_^4TݎSSn@}NZW= ߴZųL+^tc~յ^6M *LW/ՒwIb3n?6 Nߞ65/J  #'33# *#& < ľп66#6#٬㕣<3ڹԂ '̖2 '^l0)C4hd@+x⊎ˉ0DLxP-y Pz8 :1̹:`~C[F&2)V)ΡCTHpL !9q!&SB`"?4!U/ :q+HJຳw4jCѽîW e*N/^C:s0BȔ ``++M_h vsPo:g9B);L6g' g& z0(( = t 4"tىT]+Ţ"U ed="ܜ|#7.5&''p_a G%132вJ*L t>M8~`S7biqe&V%XGmQ9NҢ:C4 VfReh55C"e*J~RG '$ h0o9!xp`A#";/ʥ Hō2@kECHR0DI>8Ny,AjO.Kf !q{cFAB>,PDD 33`D+p }h7^X6ӊeJHJ$:pp>(q w8DF%/ 9 Х> @Dl At*Ԇ6]3פZ*fP2TWӭ`k8xl\}BAV)`H fcrMDaD2Bb@jgf'%S@~Y`.Q2 uh(0*Խ:£ҵj<[Aϭ LuIE 콖(qaX&+@{D1 \4X3 @Q(=uG)@M}jiblgjS> m>\Q=u?Bf@6 @(G7 FN !.8\p.?REB WkH c9xD^ ?\D;/(MX=hW "khO4@ݶ\r̢pD-mxsw^@|0/qcG'rU+8x75s}臣7׀ aVPN  2"@ES xT.x^ [@uhN— c+p# l|ߺ@_`֬ϴVƒvxPϧ.y p7pםA HubS_Нu H@;_Fnu/{ ww)}|Q~Gu8?A pkH}Gw {~@@u7hȦp @~y3(!wB PxV.%Z% (懌ȃ@yzXHHxyH2hIF("iȊHE8h1a FB&^g؏;rL)ȍXH<㗇K. ))yX% @0bRiH6YY8{%EiE90YXz9g).xȊ(@uygiIyM"H1xLi(` yh)!CH}}Wi.(ىXh6͙ ɏs'șpɋ";mtvpuzzle_scr2.gif000066400000000000000000000210441263163240400404760ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89at'=VV=ձձ'rrձr'rV='Vձr''=r=VrVVrrrrrVՐVձVՐձVV''===rVrrVrV=r''==VVV===r==VrO?_O!,*ΫҴ֭&ڽ*&*ȕdz|,"Čg0!h3Q@ŋ3jxqDh0fS„/A\I*MȱO = s PPBPHdׯE0A#0oSp̐2[g]jز+JJ-K-c΀ lM:!mpIK52V!3$ԁaV6>b:V kDyH"'q0twJ RA@`-p TZ9,B$@ k,k xx ћSR"cȄ@& `qp':{:X*J̗d@0PQ gE17P* R R ` lqVqCPі()QҔ J\'u' [[Ak ɮ.F@M' h/cD8$:*@ 5@"5D4HL\@GQc`5*`ڡ+禁Qr(PdiD[^) 8e'FWa )"K'Є!%!IMvؒ h!(@pX&9/yIP p: zkGgCQF]~ԁ`+7GwG\@' 4xQpŌc`):L>dJJ5e0J 4 4&]3F>gfB/ӑ ?ͯiTZ~ό4{%o\O!Φ;.`?Ӛ5ROn+qzpvl&[ٞn6& (_c(pelF0fܢ~eгUXwnK{Ӵnv}Gpu\Eh-8Jc7b%gZj!_>@@eH'rR[&^"02p^OXWBDņp' /(d|JPJQm=I4DZehRpvm%(l2lH.!pKbrq9mІAp]Ȋ҂o_ ->7GsG/P[]x.'SC-@len cE([|>†l(2戇QHk]dj}6g(x\UBԍ*uS VsMn'"Bp>N&7S2Fsm"J )r sFg2R 3^B=j߈ )IE#8FaA t`x<57iSa|J2 HAЅ>4bGHWFR'fƖ6GJ"p;0d)xSCHiV V;P`'a*%8SU)?@Y=:t OuryyI'M͘mO+<vms憳9$9́'{٦ A_\ڵ՞Y?mb2Uܩ18|jٛBfm^Z<)$jAgߙY[aiufbۄI'CYJtjgZ_B 2eHwƗx6OLwfP,i`Oli~S.: O]8̈t\'P`CP1i=daqOV/%ƒ0rzl aASEMe8(F$g .Cdwq.#+  LSpʥ>cB ebR5:- ʷo8p A@ )sj5VEpIDp_FC(JiMwƤso G r" q>%eȀ,0vP&VWvsd9$63P`/Mrc7Q* "A.vC;L8Y@08:GЦO 4Mw"PxS&MohU7y#D J"6:DgY&Ŧ0t\bvuqAD0)CZf+7y2$3XA6 LQHJkbpO? FObvqr @YxqAw"e ) W@IM`įPK/ptsPڀ b,{R+) L:'@);6P,Q$I`ԹuDzJ29wP8Բ 4u=$7+Yʫp|#D7Yڦΐu 2j[fM)ot+bxe>$?c?FG UbɺW3+2L 㱬amɇ+ ;j$-P tPMvJ/@%<̕٦^^]l p pF* Ls}vc#_ 5Lc,ppZlS(KʔF@R @ P:3v_}A d;@`]ɚõ7J7S;CC ˂/p˿S%\;tuʼ̼gaɂ YLعDX̠WOp 8[Qtm2puG )̐2 G: H'֧=ěR<)@1PL;5%`<$`}m~E~HFk'rhG$\سT ;` fn7`%JE^< m=7C Mn`yVf'} &ƒ^<].ꍮW sn"Rݮ>~Ci*(0Hi+dv}g]Ȑxʓ7~ `.}0=ǞΝ]^Ҿˆ/@DiƍCD0vcz@@ =ۍ$^%v1OP.fŠHD3%N=*0>$ŝ` * ʓ#@^H<9`+'t fO`̹$:ApE n/iΝ$*=+XC\J8vID7`iC ^Rᨣfhn>0%p9;s1j˿G v0&@$`e.{l[ 558.77 7$@=@=7((# D' 55Aю#$%߲@03>PB#H^ڶ F%`xFۨ*KI"J(>||f`5I0dmIQ%ERUz@_UTY)$EDpڋEȑ ko ZoN sgn?I`*1]t$@l'ţrF=+MIF 6L 2Y`ˎM{ڸo{m 0"|sHXHpZt^k>R$:JRg B?*- `eX{i7=X0!YГ~  $Z |}C_}| $Yu"a=U ?)2XK|h#VW(S9Jb$r9= [!ɐX xCA"$sDb{,$I,9Ĕl(фPd}>,ЃDHX(m.⨞n`|X}"1(!;$魔! 6XZI}$IU;0ie}#յΑʺŹ)nڊRA|v+#0 vȳyޝ3ΛoN8 N \q0-rT*#H< O·2벽{&py?KB: K䵲&`{#@&\&6Xvzʀ " H@/].P81?p+ " jS6ҷ,9Ѐ BA$aF5`x`RB@ؑ&7=o5(EDs  !x4i05q A& )(!9 "€ Ab{d Жh&\BXh @C1Ap P4+YGSB ^Ϗ[>C|"ɃxpA$8A ?0 VJ @Ёl1b G<ę bx9@ P I9`4!ShJ e J&D  _$#Z:,! hr;P"hA$w+jemP䱠1Pg!du UXͥ65MBgq$l )9!yLIJJr%z@OHf> xF5LUT  ֗Weڄ!3piD9{O m(v7rHqsDhçBSSs#oAd!, #'OMv66=.@Zu)\S޼0v_yݘ7V?ֹu`G;~hg(*b95 yg9C0k}|] ǹٷ y my@Fe$qSxH%P `ַa L\|y7Ҡc(a=k +r(:@>N`Wľ۫v sp`Xtft0`c}fLD~WLttHaX aWu}pۇ- Q/@@DkW@€ $cJ4@y[¤ !'kqV{SLZi %kKIUBՁj ; O+t%TKVT%6Ȇ!UHq&&q{?cK`tk5 aVnxgT2$6v4%rxpF{OqH70)i&t<)/(;mtvpuzzle_scr3.gif000066400000000000000000000473521263163240400405110ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aώu^Q@Γ N`K]آⱆ磿౞r6%mgPdgmv_w٠ЏHlЧ'TEn_vȪRVV1JyabU໎ƧvxI(NIKigC``z)(m!#q' lƒ0GE͏hQ5F!ҀHzNfrM Bűp%(Ө$BmPȝojvF^N$̀L轠ۗҞ3@v}}.•PQP^зٸ-py>*e>p 0HB`ݣȸ!,H*\ȰÇ#JXP ŋ3j CId_PLr˖0]f̔l5Ϟ@)cF(qX!_~b>tZ+KU1FᗶY0/&~1Hx{7/^vEÈ+^XƐ#˘3-J):tkP0LSpQe˲da!&,  hӖ % 7a@rʛ; 8akǮ;cq.C> $K1\雯5fdȀmuNkE#E40p=G#|Ifhauᇍgh$@ t>G wԸ AS . .X@upbwRN/egqp TK2r|r> X$H3c (ȠE<)dGOrh壐.@P*/sUT1 hFw#ßz̠DBxh(GO eW &}/"K00C> 3d/Z"4B,SC akf AͲ"cLT P>2 ./10[ 6:lQKVIa:.B!:ĐL,RJ=| H(3ӆPHHOD0L3% o#Q5xwǀ2BF#P,Q2߰M512 dHy/ݨX- [` I946SuD8]B L.1 ׄGO=?=_~aAP ݐ!"Fw!,\bBI7'XN!?PW 0J*LAx @~|73w /gPIp vtsAVR}%V ch7x a,&E`uPr+@-+ }+I3.81zUѴ.GAvJ8 JVe` GVq@ 0 0v`}Xwn( Dd@q Ç88@ Y/912 m C & ͨ4 k \xd @g   ,wP] &J ׀00Tny&6 € fؘژnV( @4ND6 X/ePx"$R 18@h ޕRd8nC@8 yn  NNNF5/ 0i jjU" 9z( b!:0tzxn  `I9dƐOs g+i4"$DQvI9 @$7Z "@%s!!:T(VY}~) Yq_Yeyk@ ]hq`w K7pp)b@-5]W@{@ [2>!Asz) 0BIy#J 4 vP701 `&r1e QY.>P3C=YU&KY%$ J 馝Y+pc6j%g9P*}@'" 8aiUp" $WN~}QAR-DZZi”!8ejdXr aq:9A}O  q0<s#jyax̡C:V Q, x.`Pbp %h23/ 1n>`'q\/5)%pp VL #"]8$;Yp D׈ ڌ1d211/"0p  JK  ;@7-,8[w8@Wp#p:AfKgeh B1 gQ rnQkjk° [:b[ Qi QF'  !BoE:!!*!!083V& 0;嚄t`p ` BB( - ¼ºI!K0g s@ HdR$5E=bڴ$kxU٩н.̀s )P/EeAF0ԾڑMR0]֛7! Q`l| U{%K3/п+ l/.M(9.8 )ĭѳ@(L0JIP^w{Up5H$9 K~ 0P+#\QƊA2v!H2.  7T 6j6jl wۑ b?di1@ɜ W x 3;#ȿV\_sEP6ҧ jI¾lR5H'k;U,P9P4PDa9Id.F/h`;3@$D@CEP% !jΊ!:7E$M09TE! 4=0Jltj}c% `tij V>M0Y!a0 "dHM$[57m-pmy!qƢ&H4)||:ƢOoXEi_`k%ƨ%B6&0P C$N ]p_d<~ FEcm,ֹ-z 6 5J4M,=BcVذ}֐=׉hpŖU@ ]cc >aR"HU"l ୋg߁_4Bfp7'uߩWl1QBAl4c>@ڊq&Ai0BQEp_D~io}aT k`.6[Ep( Vɘ$qgi8h$У_ X Y0w3Do@$%2zDH@qG;*%~-d $7NFo1Nd 0 R4P%CQ 4j^|mlaz` N8aRxD(% 6pe6+OKLQLq)5788-pN%;R@oAE |iBX`"dW\fc 7ac+( 9V3SBP4urm^e:Ymv_иFZx$@h2&_)L4mW` U^zwJ!>-XVXb4b*i lYv:gYkP5Ƃ-`lV-p EibėgԣubP@duz_J8a4 F&.IMN]>fBY .[o潐o5wpfޫq[q'aJ~/|sNPEPw?x=]'v/#x@_dKt/NJ/ @Xa YrBsL`Rf4ء !.%A$ z!" $L(xT<@w"/,`EP/^hF4`F86SbIX]xĐ* {<8A`'r<HAv _x9FLb 3IP:ÓX">IG>$S%I@L"$+yLW1i%TrJc+A 0 A 9!TWe# f  CH`R P;T 0'Tٔ XH$g9 DNu  PpO<.3 8, Od !y,"<8͡*ز!;SqT$e*aL *8Z )/kzӜ:<O@uD AGiSuT*(7p3d#2 h%pd d){٥6U\[BWZj<_BBǰU,OV̿ODv[6 o} $mhg9v2@Ao32:"WMr׋f#h|uLHrf9Qc󼷫+hA@ O7 $.^m{T<p1|}s3c;0 4zՓ!;D8jU2A}w^]=-LB̖8HS03~Z39s@WJrqwa;H=(HaqT?,+%SX 8X @1 ȁ>|AIlHԘ38a?;s+kdBdpMPC?<#t {@@ÄH >`>DG؂CC4Phe [ p!] 0!)`A =C?DA$Ox9R!_h>0l|G%JԘ!!F@HdHd6FE|QklH43nɂ0C?ЀDI$IIIGK gJ$ȌAS()3BB?$2({mĄ.DPh <<@KIxPf!l)8nXL5(L|ΩlL!{ȜLf;6,Dg̯2x+MMZ ǹՌh0L(KKܬl kFPOp,))SL_ Q\OQ$;QQ0O#F|GLHM9h PH7`:KRb08θx5 4 J۬C)9P\HO(F]]H)!lQhQQDQE#IPɖ4KM\Rh3 h{ۈ A` 8U 6kT%DU;HG=SFiQ"g"90:h I<-؂X Xxh&jmIUR2L5*Ԃ(RXҘX,άUUvq^u `(81HV1U Uk؆=Ap+ X8 crfڧǣZ~FY`H_Z`cpL<8`" ȋXY20(FX0OLc'}'L#ϖ8Hٵ0F$0u"ۻ=ac=`T9Y 4$"),W{K._"HX`InBI#$:ӰS|HY\QE\5>Z9\ȀS%G͵7"]M\]J{hjb@X}giH_U҄ߓȂGW6mvщEr$9 [ `Lqqxp , j mߪ_ߴaf']n(H`7Z /` `,(R- )`bfPbi)___ ,f/f )cM(Q57v_@9c:#8upx__DE&ʂ@\ZJPU 04% b6!HmdQr / b"|{N_Ё_" aѝ*Fb#1AP: bc!;){*8.^(8G\ZMY.Ml` Ʊj IӘHm 8k_fX(ʢ?-/%^ |C87;9_MP-ȆX$(Bv86}]8! 2$$@X)`X*3^K&tf2hXԀPX gbPiEp+¢,"^+| 8587x/x&>ifVfa{阖vyP"iF`>j&UPֶ.3àhH8 8EPY)E7ZO $gp kkWئ,v)D83ЁHnl7l`hƁp_P !*@ L֬ :y"Dȉ;f`ˉO2d`Itpˉ/^д)Tiv-aj(BxrɥK P,Z. Tr# A'.]z]lU/Ĉq@F1b nU,lc5X8J,S&}4P@Lì2h˟9r̘q-yD(Gc]*T Rr0lv_E81c&mZ (+\Hسg߿kdχ ,n@ @{gA00h0R 0@ 4rsLO 9t+@5eL!\i4Y0xV/჏.a'D]tZk}@yE` `ԇ_~9`O 4"q9EM G0P!@,a1XضJ;ۋ:Ȩ>(jis<A -xK+Aè_@P8 >E"-@y\U^n_aa餳dƺCA9D @ڄyGI=CrfpQoN7 0Bl Bqj*>KFpkZ Kd"A($bbs. L($GZHH2yH%*fu֌ n`w@'Adc=4&LL,Wh#]Kz& Yx! zHL_p~b;HozP$q`OP(@;O`2?)9Tr4Ml"0/&E*!hg|YP=qWF/.p9O"`#Or@9 g8# KZR(Bq3^$`a#7A9q|'A #~@6[cN<5Dp9$12w!<7 o9c cCAQ#*bPg~!(2?[Ly2Fd 0"dZ)9iΑ GdPqC"Mh‘*xr'AdQOdx7O70g@`? B \We喐PXV< 9ˆaY8kD>@#P!si hR`5fp_f s`]40:Hx 0=uO( ^? `;!hZDӫ%,XzwQ-F!9K@# %fF.Gf'iR4 @ӭ pOPъxJQu&G9&*P{9g5nhy c K!/hRЍiڕ/yxQ GAr TV@x71߄_Kh V7NNFU"9RDlBIU>1z 4⚣e:9, ~t1Ot:9^ M:%Adh2 KM񾒸`u?ށB `@ QN"T"/nmndKvf`cgGx^Rm$s23lz1Y .,(C\ yD ȁx/dC6(1i`̈&Mu_ּ>V9\JtuG\)u \Ay`0(BAXD)DPFw38CXAA>DR/2(DNx D r7I EEXrL"NXD*@,WHp\έ Lb@ANL$\2a *L# HgHCq]!#2!A?xAA Z J|h "lcSp 0! "B"2Ex$(b\C`i"''.;$$*Lb@x!;"/Rݑ,2Qc2v$RR|4a5 M̆6.P7B7^\9 ^:@90(eȁ>A 2hGD !@>R2$C2d_E : .AxF I)|`#R(Rt1f1B0t|>l@npA:8ALS#MRF,ڢLP.XQjR!S#TNe@NcQVzeNV9dBC Y%@dd["[%\v$]]FA% fafMb.S.LXlTArN0!e&C_`|bwB# H1aNтAgE)h.C$<倯ȽQ(Qr/,3%܁hLTVq` hg\BwC |gxVAgl#(A{e=§ `@ZaW~Je0cjDܧ0B d.%&g4:<P(ge)22h]mVb=$C`Nx6Q]D=Q:&El Lb`0d)*-A_X)/iP0i9#30>`:Ђmp@_Xm#a&B-DC[=ȁ(gr*0] |T0*L b夬*­"4HCjK,bk9JPM4 A.L eM82,#;,PG硇.@v1H-Ѫ ./d)f"ULpB`:Șx(%܈eQ>3%ttie  Kc:A<(J6J>HpYB.0Ny N@fT@Y`TC5!f %d@.mC*"[ $k@P//B//h/ 0 ////t/tJ&İ 01/֕[(5,M~H/V/ HXN"C!e ]b1MI @Lu؃xc|p> pED ;aS h * ErkARWDQzF@4r*/*;) (|-•d O܀1YHLb15͑jU1it VM/+l+p1 82D'$T2!qڲLub&"@ )g Ak3,rzrriH(J¡11f@?9t#\67A 89N:a;Á<=s, >S'p Р p o@ĦM|aB^DҜ1HA7W40F7@C0|1SK4,B\3+؃^-Y9'.3|W(vAQA{ǧ'h|&kJƜf(I43'eR8t \]c3W$2CG~3cC p>A=8y@EyviL8gIwكB׾'xе@XEo7aFgG$w#{E㣺'=W_?À@w.~+Tr$$upL>ǐ8wiKJpD3Pj, @ I.%@GFTnqv,X0gDF :Ș|7_2%V4(@D)X 8p—N:76O =EVZS+ZسrVBUY *Ъ-7܀AsK%hX: `؁ ||Vwk}0l 2+.[37xrq‰NcY8kȣWe,A*hЙ+ QAhZ$d&B{Wz(YR" 8z( , Ydјo :8 5˓QF rɥ^ ȹiH|v n#r86r*PbarӞY@ D "=W`pTDj-X49 8 WE4jKp1cx @kl8FB2`myd!pDfX"GFF@F!KfrP`'3IQr;;RJR,;4@bq)`JLeA @ R@0Ao T! :Az3W4E xj O$N9(%(b=쁇|%L>|_pCp/ 85me@@P\TGAʅjBJ &xaon`S ;'lT$%Dj,SUS;U *S֫e4]hZ:Wf`ь0n`A0E2&:ԡ`lc@%0 s @fO`6H c=Ɂu{`'~H=~qUAb0 &btIV`,c[a!5.ܬ?RJw-`q`3(@(qr<{@ ]W%( DQam x`,b4%C! X`wþ  ˠF p|lFF(A @B@M7A`0jC$Pi8CeI%be$$>d:PI0Š$2ea̅`:PР ho}+__?-MF2Zю@"=iӚ洑>jOHB%^$4lt \p0~MPl sg^#z@BmJHcH>X3A&  .|$p<-7=!p8w-žG̅9ܹPF0rW|#Kބ|-&X9c_^x_\lL ȁCHяtOlcPq`ubKzg 6r;f8sXtHߛ g tGϾw0&?8A@1tBEpL^*p3% |M|JĆO~K lF6On Fc($d~@2`)O bbb w r/#^!*M\@6l 0/!0Jp d`feH a x $AqO2`eZJ`@pQ N Oaal*7qO P  m m Ȱ I 3Hd p O|!D(! i& 1kD:` Uq!a n m+b @xAhce>i0l!bcr ` 4 `;# B@$Sc? hV*^)@x"GL=@ \%qLJdF!m,A $"r"+"]r#?#$,%ƭ+%\ba,aVZ%K@@"H2@)R bsnVO rP x@*#]F4K4Cr))T, s--pO& //Lj d$3Dh911!$32M353-3]*ò!<;ǭ;S=ד==>S>>>?s=S??@T@3 ;mtvpuzzle_splash.jpg000066400000000000000000000067641263163240400411460ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDtd"!1AQaq"2Bbr#R3sCS4!1AQ"aq2BRr#3$ ?G٤{Áp8q: .–&:Q\iKlK"0 EaHƞeЂt{=`%+081J -Ÿs*>S<՛vnG, WUY e2(aӆ>8E*kLT(D`zذl5,vNFѷ7#"C`Ibz+uFZ$11IQ*(Pomkѭf'>L`F]%{i;=4s ,f{ɕ,.5,3ǂTQ@ 4)VSm*K9.ͤw" {z"m oЪFSikNVZ݉ +#t@=sWpm+{THX S [L0_šڦԼ3o|]Rs4wk]|_v4R< :NiӧQ/GH˗-xF D bWKw4rWGI[A0qĂ1 -l޵,._n\•P@=o wLqdW g7:"cujvVbr+1=&0±{Wb֜P9wv xvv@nnyT 㷤{}>b2@P Ed=ճ{>un)hjE/A.hp{{CQOh&; pc+;g.]]\ j+0QL0»rF@]չ"m=-ΫM| {u0Mcݠim˺b<ځG^R ^р^I*h^- xc8]r,u\PO @{xGn:;/-!UGu'-Y˕u̼ :5z ΫIW,2Je:J(0q-jU zpRulF=C:b̹$z+_bh"p 7qɆ:5dpgPcMi_$mOxE92MUW^[vרmIaN?"q\kk:NSjߜ{(uhә'PKykҶuOo-!FG5jEH8R˔:F^q=_س 8%+) ӵ|l@ֹqt.HL^.A'ԍ˖F-G[4P{p#[Z;e-9iodb0iF>o oH\>>QqZvCuԖɕ@1B_TINńX2gON@4Ʀl6[ob3B 5e.X2?]%6J ~1k = cgtƝxNF}gEOϑ}V$R",9H:?,6IT|$V) P $2^T 3m>PXnS[hu 8]#4^81: J9ExB* ʨL޶0ݝѨ$p9狚HԎ FF,aP*k~ܢ Kpic{vN s뮍D J |~ fnEK0 @3R%kmn۫Dsp̸P+?ܗդJi!_.]q]0sϧ_ I6WJ7l`ڙ{$ "93%G\ ݽL@ f Dtds[tÆSuB߶uS&۝\u7gt聦"8EXgEEUXaZ^Kn\:Us?OP[)'7i[V)]MfѺGy3wZ@tDи*r0qF"rc6 Էpȟ%"He-0K:"Qa3舥%wrJ33>ی8b_KE"ҙ^YV8^1HP?—# +JhpD0%* 00 80 x騸p訸p蠸z/9h00(98膐࠸=000>5-癨!@M`wq]?8.ЄX踼XezPصt&PP!, @ "&0X?l "Y%2fTQI?رdȑ(S\IP@0ODSJpß?K&l%T@2d٢$E5rD'3"˂1~KeX#ִYPA=)@GQ &JTѼKElC*W%mK6,˗v\KM.J,`7S%qt[xynj'Oykդ} V e#2>K!`rV Vc@X1M'CA(4F\V)NP)_xO~(XGڃNa^'b5` g'B/V7*^Ð xv=%2Q K]p (ʍNFKk^W6C CYĐBkp^p+\pٹC=U\_UP V/lQ]v qO */bVM/`,`mCVK>﷦CmoKr 9/t sxcy`E#2 .LR([U[Wf qBK`eՄO^7D )fdqXŠ/D٪hQ0_PE>܌qT4=O1B#O!:6% YWWM/YB-z{:eІG%x0J!.I-t_/Äzzn+e0mBA" a n8%!HhB%#׸t<*`( zK4b^k0Cyy1g>#/LFR4Un_ Qr9蠒X2͠IM䌭C@ٳ:7aH~i%dn ! a mNflX~8"9 6Gz2Sa_ܖ8UqY>dB.rc1quP!Ėdۘ; 5<B/0蒐q9x>Aa0xq?/fPD"ۚ E`pb+@C 2{7خ+(` Qc6;zrF:@D)I u<'8:4kS4y})' h/- {w.? w97psLA ,! :Rw@qH!lpPe661pq RF’%($ (AqCѱwX?72+q3[228<3Mbr9;f3" D)(! GhH@k+#!gVVm'6`.^`gx%=wh'{&h:rH.ȇ3a)ᇰ[l|BG\;mP##J)!*] G1pc'Ka.! XaqFX-#,ыmrhgI8.U ,  b5V,1}yAPR,hC'91H$PY2l豏n0n@ި#a8 ɐ/l-00W[pA `!A]h a*;BmmD c81%A^ٓ+!%w(B$UiJ[ ADyɦZٔ&_ٗ,a W T|CIh&_%pm_ї; r銬Qv(u0И)!Rp,z+ᙒ)Bf񙺹^ rl!f 1)#AVi1ؑ Ϲ雳!2)*ܙɓه!*iYX&99ٞmBM2jȗ걟ٟ"`iӉi>ؠZ q' 1DY)JD Ydn<c/3| ')f`l.=b K> %N.ܙ^!Z&ZޛڗE꬞쬞@p ^ʾ쥾.;ڽ<N( T Z}ľѮQksޱ1DP_ `]ÎΟ. >~.pIfB@BB - p> Po6I_n؉L̜UYo2 籬ڥŘypCS/ PP?c. P/ |U@Y/(țpϲc/o3 1lչarr_tyo|o~c_o6<壠_o %px A[Pu@ OoIQ0꒰fo_^131b A.dpCL815IGGRڐRV \ J ؐgL:Ok(t 0c6Q"PBE#ZLH0_ A!\ծ]1kVSFxE͘9)Ix$fΝ>A,T(Q#.m4jź*د`ENִZ)L7] `u73 /ɢG'+lsͪ-B :4i"Dn!tr]ko߿=wẋ/<2ҥL:Ϭ,t> .pC47δT o*꺫JOjhAxXbjJ %>z*N@ f/K,飏-H$(4#LlS/>A,1L4.[tFѪ%+BR5b 42I<\ɃtQJ*$>X0. JcqͪHC:o‡`4uM' ?<`BEѿ VBRYL4/TS(>D%)CXae)a/TfMP$ًJYYc=ntv݅W+^|׍ ia`4"YUxub0?`jTzH!BـxUFsYԘnD g$w~l&;oc: p목X\ko:.;9K|`;@tNg\@qǫhoE 5v*f 2p (ԐA -c"*M7zC &dp_nG'c#|(o x3^<54}g6[(h@qsU|[_€ßp5y8 g< PC0Pe %"`K[05 w O S0:L/v: b#v1B¹YKd"5%F%0!KE5tPhcx2/ 4ld8phLjJ%ɏKTB)2l0ӠF,`!;haG$}8nR^t(C9RV/2T]EK3J,}Ia2cd&`Mq(xDM1kvpnyeGTMC/:K231yKxs4S%M~M hg&W&8y\Rr^ d_ԧ>|.LBU`(4ɱt:KAW҄4]TFiipаpkOCfaȒpW6PP!@S/ԨJ(Uل3nՋ^kZZֳnZVS4H]ot"qhH*=UARj>&Lb G>m'e-֟fv-B(1S#iZԵT)!6-Җmln;FHfETR:wM\Prn()QҢ@&p Y l]jka_Շ셉}='%7vM)np|`xO ֦v|]Cj*L^G/edGDx >-< I1| |Y|ꀃA R3%r\`x<U!k!{L(:Gz<Ё&CPe 멉cw D@=Yg@Qf6;7sBX;8yn0Qaт&K=AB$UʓЅ͈Ɉjzב`| F`ۦ/X ou.tKGhw ֶv/PA3v/` 4W@_Gxf;2ўAhmlv 3%8>1mD0rp`JNX7;cH SGe0``h@Ln5Bdԓ\=~#\6y{o t>Zm-;w)lm c#&`x&5HTVG%pŇ]dJǕA=ebt{?=ƢyogAOs~U:/ӟ~׽54}C$GecA B앏_K?j,w]O%d(@d4xk??䣾#&+{: >I>.M2eȊ;o70{Ak?PT / ˿K; 4|܀t< > [S:S9LD2vit 8X83G;CUCp G8G@Jw|HHIɀɞ ʒLHk`XKE cJȧ|Chʍ$GHɮ$Z KDQ;K|XKh˷ǸF |FЅ;l3zC? q6h mq샪m`Ϊ܁ (`a0M0QIMЄmF8QDEkO܁ OoMl>C4aRltMaDP/$$lR Q<H0|.胻 N`>{匃lHXQΦAXT(]<-G?ݚ`T!T!mѻzSE06R+z`QGm 5'(SHD0U5e|68e@eQ=DRaT@5q$RTEPA F%Ieb=x-Q[2V !RwSOlK+O$H[}PVd _-H;zap},X]xTxH H{>@ILe8FLm=PdQ nu%$5z,Z XQ-,=Xr!aՀ` GmBp-Hm?;PHUH'p,ؕU$6m3zxY͂}؇}T̙UQM@6!{pٟR]ڢeQRG-<!Uל욬MۮZ=-[S%hCZ^[[/W- R<9Ye\X]$x 38\hy\_\3hY~= fT R^RUU^M,ݴMG0xM P`,', (ӻr>Ua[>Є^XV)\\8Q7b`_36-P X`9]m/ ICu%1GTz?TQxۦ̽TQ P&ۮb+U]->${]&>Z( 0c*=bZ1>1<8XM @@a$c+ZZJZ< ^"(xC8r{L΁F6vU8hN}vƝC8sLŃl])հm`XMPQ|O3cZxGe0fa-fd P6fi~m)}ԢnTp^5CXS0sȂ.w.aE V`g{g8kk kzr.>gpփzCu^M=#Vޠ 'XߓFf2(ild6a!6@RS`TYr j8WpB(W?uUmrrpBpW800pm:X pЃr!Q3 WB2uXc9s0@[>@`2bNliʾsl& ȁtX.税Bx Xem) mV0>qW0#p>q/_XٮqNM7eWRMooy?97t~9eHy9m؎9:-fy oGxZrw}ؗ}džvh8+he'0! ЩH"%QtbH&N F(>)I%L56<mN0ڄxPjF0N3g1) hRVNe` D+@Uwu @;l x`B5t6aEC"z^~"X0X3Ѯݗ ɰ'Fh;}[0P &=j\~d*֭bY{.Qή]v[gq6,3ĆeLO#, \#晖?LaA}/P~]\[:a.1or!ygH*16`s w&3m}7y%) Pp[;PI%I%Ji.I(~& ,W:-6w=p$#ƍJ&]161&qB4dm%צm@%g~7ӽ0R *Kc} fw اC 3r&yWKg7SX z=:L$jj_,b* r2 tqT$F (aW@#I݌zӞ׿OW з5Oz{4R8?~w=L26p ޶6}Yz̞70PIH) H!YBO0^GC $!+ e#ʱ{J(2YI _08jq..,)*#ј>YM~ h FG(uT )oƔɭ|,5Zfض)nLQV i?W'IM[ le(hD#NLXDŠ.Ӕ#Gw,Eqb}NPG=R!Rid0Ҧi=+Ma4>} PtC :@PTEUXZU |=AmWb)DZ#qJ3ָTZ+\9YWܕ$y}F+ҟJߞ$$Y -YT$Q€5`mAT[9I2v 1r#ZӚ ZKm ݮ@ILNp1(^c @ee[ՒLn۬;fJw954\0{G `\{鷀on܎,(*=M-d2"K7HB.]hDϊkuQ,2Dd@\jIl,jt(H2f82z8;q+\J / ^#z.M~2*ʜ2\c21: s|̤Id68 s7g=('3-:2hzhcadC&MӪǏ%L-I^rGM4#?E =#vq#\1 XކK qңlgӝ o[ge )QAj[ζѸm,ѸwC "sN7WnxLKw%o7OwD; x;A#| ;`~wm;o#@qʑ;x!ŸcnɑK" y̥zH?#ƚx 8o 'M1`K\;*# ~ lLuZ}^Ň F`_R]'eu v_YFe}(Ƴk%p=M=fx#dWXvȣ!{|B=xu~-\/(Gnɣv?/ӿ?_}I&_ EA݁-B QJÌ!Bl<,  A(C ` `0  `(\^G"xكEɘ*m n `T~!V 9C 5`!܁`Z N!C"m6l 1dAa$:\_ a%^ j%b"& !"""nN#>"$~$J")~b'"'f"01"W)v)***""bd,Ɵ1b"" ".|/Vb90^T'#C3FP<>a1CT5Ÿ1,77. #r #:Fcz$?> &P h#"2|c.:CV\'MM^% W<^@N."Any$URȣQf%Nne%jX%@Q$W##ё!:I*eUe4P^֣_%e^c`8N d@*]>c;mtvstage_scr2.gif000066400000000000000000000340231263163240400402510ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89ar+ PPDÚ"! noA@1pP&3.r"L@5 @@%AE6pl+!! 楖Y浊_H(i`$QP3ǔcQmdf!p 5@a`B֧Gr& <ÂxJ2q`VOLf%a`Td_6ʑ2(8KNlArrS{tAҰ,r.' 10lXX( 8 [l,UND2'Q ofSqjˌPqowr%0<5GIl5Z[TAIi) 001ّزȸxSQ2#bv4Gj1QneAǴH:Va])%!pi-O]B15K:"S\12x򨖘ĉ>7b_LD"`U2.b]1HN@g# +J op@0%*00 80 xpp訸18!z꠰h00(?=004@9"U?I>< x?8-XR[PL{@螞؀!,@9"2a D@,קO $‘FCHңȓ(S,(P`ɗ&E^Rğq'&аȂ"9s 2`l2IXH"bn\YV`Bh鵤\gjApΉMD*' SnR\0=;DݝxٔX*2زU O#6<*G" lw!C"B3lmp6/^u\a"_~3ȓhѶn-T.S {6rY %JСCD% 7zڋƙsu1LCD y23^Hw18 {{ (0H}lP.$d1 .EFH<2 ^5* h0E3Rb4[Fmv {`iX$0#de %l\A9]e?Yck\r!| B9(p :pˡ'eV)bZcA 80p Aɦqo V%d' 0 zK"(S2 39@ 7`9$cD+ dApD4s%0 "1@Q*n=qTh wIc.$ xeEbf+ 2 -+p,lU뚯:[fi $A_ SkzIf3D0T&tQB1W`5+tBS^SB+¸N1 Ch@=0A 0 78H1^S,eCn{X S0 cvHle}LA!(܅248T!36J ثҟ yp#(@*C7;dô$C Fa+lywM>wp:0%8,}_x M70I&̀2иXk:͈I]7^y`^% (̫2뺑No2# IjY8(-'n\|)Ss.q@'Z0r0K` u*c$rQqUf R@! ^ 96#]1RT!7Q[ 3.H,."E`RAP'a a%!diЂR?"SN hE ݴE+k*MPbjs@-@VcA=ELEh`  KLKPT^~&8%3D>|DnZ %F=fOLdvЊV+!nP"&XVި2ݠIM]%BYٴpԫx~ZtCi)JPn!5N): ;qkC&f8wd_ێK%'S?~!OD0'T>u$sĖd[(Ds;{ f;eI\r-^ K(B"]mF} C\l{s  ·Ƌ kÌ FJl7{M^8DdT^u (?>L93N3.N' H~V@,c{HqZi w@|&/$14gs .*H#7 t%m$Fr6V1m DZp< 耫$B~ ЁjxhC>1'%G) ,Ȃt 0P7241!9q$&gs6"gC*' Kxxh+A( 琅rFatrT5@ep!1W2b}j2UASNx_pXȂ]{&1|E,A .B\!sDԈ[qC%}Q ‹$7fHjrͨψ؂t}XeOx$f8VƎXxkx,rcL*171 yPYblsXq("& g15l0i03\pA̖ `!=$a*‘`T X!Yjٔ%G(R$ai•^&`IcY[`wkY+ S SIt&vxj L9b53pmQYKY%՘U(u)j)wїr̖©akY%r "A#8(bx90IY)*삑ٞI)z(*)9䉜 9*Ή!yy0)D *TyA kBeͱJ )&$im\ B gCJȢ j ?!@ :ڢ/2!5C7ɣL#jABFTZ UCNJ9iK%Bz/Z\IpDڤJz Fj'D0 ZPCʪos0Gig᩼*\ Z zܸzL XԊh:ʕz >0>Pp}ڪڮ KynB7!T sZZ@ ;]@P A֥ZzkP$*6* %-/175"ש9\d@:`++1xL %{`]+OSʪsi($0ѭۭq("x:p琣3ULޤ{ɐ! [V%{ c9;V kk~ c{k˻뼮K7K{"4@_ &۹ZPB{꘺+TU-ۚ[ň P Lktv`T{. Ѿܧ籴La|+t]ױ6 A\i&9)yڨ}̥!ۜGi=[rj+ڷ+­] S: "jG]mŝ!Ýٍ!Ȝ۲}Ѝi)ī1ݧ-m=̍cqޛ8N wOM nJ]YNNqA.jx _:n8N5# ^5'Ӝ⫽ 4=*7<6>=:z%>Dr(ŭMtYR>ZZ~x]C m[-j=}9s8>?FmώMmmA =ʍwjM:꒮_G!< 븎w eZꡞ̇^%$Axj>~^5NNbҢr~-mҩў[>^P0׎8-=[H 5ɋlx.no <k ^l^onh,^LCq\ _.[ﺾ~cIFn)JLGn:5p3/s>CF?`H/Ji c*KSUk[ vN  o^nlDjpjj:2ǫ9bP徟OÏDȟZ̿/ ^cV -d/<ըQ"'4ʊ1N*5iRI;Av(IMԨy˂?9@HȀO.5#l .U醢Q ZٵYnjÆSL$h† FXC%-=(dN>eEi.gN<alNv4e̙5G(I)+!injNa=aę/b&w_~hp➌883RV1z6Z]SQmv% M8J  \k9^;&]  ^4e).NUH!B6̎{:DO$@b@8bXZh)At2x {9䑅-dGɌee.fgyc7|ikϜWh{Y~crJ㍣rjǪj|Q_V! !poV%g$ư7z;ofS7ŋHoDf;[jJ67ЩG.BtT<3}L^[%'e2ʐ@'qC*B!Zxx)^7L~Qs?Rx:6Kdpdd/c_7MOXBP?Pxf?7~̟Đ%) xÀ`c@ h)L Ap};&ַ~D %о@h@`@rx"vx&> lPHA,;H|p8G:C|T`OtcGяb @Dr%/@Ü`U.m]dЈ%G6J3\e+y;I<" [+vC Kx3c0Yr'F!Q f*9M9.ᎀ67Q77-LqIHwSD`=I|ְ}p ?VLBs4, sl r!{,R':M-9#Yn@"gFMe.E z62e`Y>5wӗ=K1S̛.sq<* 9yvn!>SĔ ->?}5$wDt!ĐJs9G,ljy`y>~bUծ3Vg?/Au}=% F+YW@?Jz< 88]jWDo;2E. =CFvkA /eD;SykD[0IsFl']QT MO%- 9'*" %8}R"G><6 !aP9>1 8es+'C5$Z+]LBĩC^f `|@!,D{طX#ᩭ=$?ЧKt2)̊_|֩/sv 6J]m`fOfaOD+C=#~2y_6^!=!-| >; ұK?0)` P(̣뼞08C?1%F=˙qKk-wp#'K+<NB!5",BPvR]j0( (@l@@X/\/ 3Psd##?{5tA?A420cA@A!D#,Bʝ°J*B)lB.B0 12346ȞxًXETlЛ>="Cð@@B,D#d` F (`BDdBA@ .|@C+9fyVTU\x+E#`Eq|EYEE ]AAB_,`a `DdG`tFhBiCFEF$G&7$GHXG=؃Hhd]$AG,I&X\zddG-@2G>XHV\P GȊȐBG =BʓLI5FIHə$\ qP2I#0Ƥ,Ǣ!U|(>x9KJAG\L&˔FLɯI,Ɛˤ+KBLK(=GhK(b{؁$JG˸K0J< MH;L",Nnj̔T5JlN*D&J>hZЄ: 0ܞcVM~ԜW#~]Lc3R1YYHLuA8`0Xo":n$,eMMX^WHD6>]hS0WU@Z0dmvDGa;8ZLdLd!hXM5u `>>e(PRj]Bx`6h͇|iR(i<؇}h3.>=RzzP=*5Eڒ%D.U\$\HXMPOa!j!dLH)yz}} @_Q6h>W$~ֻ艆 \U`@TЃ*0lƃnniցٜi(9 ׼ܹV=6Ӟk+AAXꭦᮎCkJN{}nL.eՄ4`9TeS܍ b+VS)e8 j 68IxP}I6Ppx 8j--+fVeM(rA[gCm{ndFQ6Yv۽a+Dn6lN jpg(o@%Poƃo)oFEo'8$oZ[V_rpp /rXj'q)(qn0nA>rPZw  B%%n$?it#t#O$O*JO_8TX%iS; @Ph*̎\] փ8Fp<Ѓkp6hj<N@=sCo^o|(&;E/ sxS%p0O/rNtOtRwR WGPu_Y`QwXZ>o8'$?S~aG1_I[fu%h!hmv@q)argT`eung@i0wHtKz{tR'*wySOuU?Rt=pzK/z#tpyO^6paLdh/yZ(qjGy)Hh7|O H{7{|Lzt*$z?ݜ}tٮO?"@{|gP{i(M||g{kW_j)w/7rtLO'zxKm1xl.tt~No  g ġFW|0B!):uө)6z0ȌF$ɓd)@@ 2/H)M qvƱ)m慜B-z(0(246je(6|.lVĉ/fbD^:8iR%._ƜYΚ;}I1ԡHE)(HժWYzXigbǖ]2.nR.EAvܘQ /S..x0L.]sy2 . .\=cL QNǕ9,W5+X| h'M^^2ڶPK `TsA)HK :  PXMKJ ^ZU >S-L]͂-&j'Sȁ`l Ea H VA9D`q'=8JIerQ3eU(>RQK MQJɩ&GK1`#4 \v6-zh @c)fT:8YBe/fMh≔&WV`θv'u՜)g!HP(H.ڂJ7뛀y0lJ*`0Zn٥zjŪ9jzlш`1, 6b,NYUEfƫ7:́ztTN:Vp;/ kK>HmSlg&.>|c1L|BN ujzp3K'2&6J %ث9kFx4J.G.qܯfwNqfBs:4~lpΓ hN 'H%g#xF 8O>ꬃNܹ0:Xz?:ˎ۞*^z=(}W?OuYG,)%LCgB@hu|\`|tGuMc (pnSaSFA{7CƆDW4/^gD-Jdb/֪\if\ 捱KQt#v&B1"TbE %hGi+g@rpL `IHJq4J%FP6)`jG; _Ә)isQ3IF:psi)0YLc"3nt3LlJǪ=KF26VP^N 6ڑJPnTԛUHJRiԇMU*^gRպfU_[bWϕfEjմho5h\5Xw+^Wڋ`!C h j#ƶuxp,^Ql]9[/>ci{Vret 'z"YD4֡5N#Y(x"@@5J6+za9>:c@;mtvstage_scr3.gif000066400000000000000000000334271263163240400402610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aRPCs+A@0'"! pno" P'3/#@4 @@&uFL!! QP4ql+p綉P茈d褩a`Dh`&KlolǕ3ȸxeP!֧'h a`TGr+G=J27@VNLд-f$e rqSXhʏ-(8ILʮi(]rae7lA10,(!tr@8ND2'Q ُqj˸PoeTHIl$0?4\qo]VA3թPpyYW&001زSQG/h)2#dO^ARw9εNWa]B}meBp׵%"He27EzK;"T]{赸33ŵ>7b_NBόȠx`UEK"2ĝ]1GNC—]# +i8J hpD0!$00 80 x騸p訸p螸18!hx00(1=003A:!0xh><4xЌܐ?8.Yby䨘PpX`Ѐ!,@& D@)R $‘FCHңȓ(S,(P`ɗ&E^?r'&аĝ21s &DAd$8u$s17,3֯`!ZR$/35r cD&"3@)j7)L]@4)lv'^dVUalGggp߈ ʑ#H$N]ȐЌW3 G; 3FDg<FƓ ٳWs L0$Aj2{ʹmiҧňѺ_0Yӳy}"s)'J4t%MC:0`:eMx!y "x^{|\/$L2 .EFGӀ<n]5* XPE4Rasi!k"ѥRa@c"o dtv&ҐGָ& :BAK |a٠-I&fj jq hBdpI<sm*gjƂ`L""R)CYMxBb f:Lbhd9暥Ec&83zVx tJn[dO> 3ЌT̘~v=E uu׉fk pltImu@"^^k7 k!  *( ]uTMFɊ y<]2+֩ C 1 ( p?B%L i祼RH,fa 3` ݮ!L!y br]̐A#Y;3RoCkU-+ 5פLTAP@, ް c@VB twхخ8|yUŇ@:7 *a c|l7kD7n &ی34&N3R=KAVW]uN MQְ"x@ 'l]La2T䫄4F1 g A0F#7&!V]X"BVfDFɰ+`4D\gCMh ^Ą CJtkIHQ,T7f)-L 4ІJQ Kc`! DmQ, ivi2v7~ˍY 8;JȄd dn<$SI!%$מAa &c1B5,D.(ט Bੂ_`OYJ_Ph W,`RkE+W2A P&MUl) Ii`n(S}Zz\G< pSX2X3s@'>&~jџpB]ZOp: Z\bJ1e-УiF*DV3p*-ӷ`lZ (DB9Fhx# :щJx׼ WC!oc(Ŷ!Ƃ gP tbӄ0 wэy=$*tLd⬪d"%xȭkA1v^b`%90o|-c (}0~Fn g , ȝ^KUv3 C@sDphDp7z;M*T! u."V)Ģ PtJZ@7ˋg$#ЂI|p#n/f|58S PA/ɂh"Cc%WDBg{">FAIUr4ql!ܰI&b)7E)I]&-.@5=AYPI#Ȥp%!R(iiY]&k23`UQfӈPTO2b)D31#n )"Ĭ\# ˒7iE`p3#4!$ a`P8@C@vpM)J14+灔=, qML& JS4/aVXbiL©p$0Eo`ײԩ"F>yʅfU"0jn<)^0A *&.5) AܢE'P $mu ඍQ LϨS1me,fė0ČES'@@݆FUVA Xt|Ҡ|@ЭU|D6tȿ.I K4.\8po[%YA&8 4$75v!o㗀g}Gw*x&||5H!S גxR7}^#= +O ,H7n=U7F2rKӁ=Pd~$-R%D!iт.HE F>;9Y=(|?=0QB'sH(KSsRTH7`B|nrRXԧ]2 rJ#D@и[:!LAs%Bm(%"1 2&7"XT8 +1ֈpHsCE a戎oK(2"zui( HҘ@+'я )b@B@   9"?#"En'*-LyI.ni@s rEA2']4A*QDY!Zєj*9)S9%Uy<ҕ!nawykY2/k8}Tyt 'vxɔz|~Y[Ug "qysY)ujE{ 'ay\P;A"!VYI$ћ=қ (q0%U ι(ę!yܙ9 'Yֱ) "(#i!9ٞAWD)GZpIs 'n)9ѡ'm ʡ q&X-aj YAAI),!.zE0 @j6!=٣?ڤiЀa,D`XczE!]je,EZId GkUja>9/v؁ژX/Z])E¨ZKיA8|yJ(h'DPq:M1 :9%H`GꘫZL}àʫAsJ$Ī!کڔ!ڋJ]:d%Cɍry|Zyaʯn LqlzZ4 [ E7k% qjE]E*%K( 1 "Oٖ01Mٕj~aQ V  )?WA{C Eˌj/!L RT{W:[˔];_{a;F՘j+i;0k+m*W[v{y+{+}+F+H{kl 񶌛0)+ϕ!kaZ2!GwIKG[_J!H=к˯{ϛ( ֻ᩽۽޻:XqLy)Yh9_Ȑq\ J~~IVv1zſ Ya lGyw׿|H$lry_z~'7+\ Fa 3\5,U&| bҿa! @_\ KYw7\i%;LV-Y٪کMګm=ѝr n-謦ب-- M & <ƽܖjٵ =%ۺZھ*˽ĝܓ=1v&ڝMڧ=M=}ݓͧ-؛V m%8̍ ۦ|P0-!~<}JqNs~j BB>vEE~*,X=] zL?L>FJ>9CN /+VX>L/;~?NLI.B i)`xQ!mr~]M<~zWЈP~~<^䨞km-Mux819ꨮNɞ쎞^KM4n֕*uK<~. . >鶍-V +N^P_`P>Ҹ]Z\_(/&_47Ʂ(j$@`:_C. @O 9~!)#/N]*Nϯ.?%0oHnD?j8Oe_l?KMoa~&SV%l _Eej?os.\Pu$~-ϢHh3>_O_ꉞo܌بW.Υ]zʿ̟1?@ $:~:9Gn??ǟߥԯHs%B d(9r4bPń5h  a!!)ȑKdZP͚t^OAӨ0aLYisQFDJDxA%RQFA,iJJ_*Y4aǫ9H|8l N$B$kkرe._GCMYIl|bȓ[μ9gRw>R5k6io;ߙuwŔ?\6~rb'DVCOn@ 7;c,JrJ p=nJ3?@g3S7|S8IP 30qd>6lA)$Dp 2P6zmET $UBW` #G-l7|> #PRD&yʗ *erʝ|K>0L1ɼc;΄S8_XR#T=F 5;VXa 1=K(w2B QuQY2L1ԇ;|0TfM&rO95a kS]5V_3YU[aՂCMW`bAYlTJͅ0pb`* [@C H c WX 0AbEy@5 ,*4QSWFa[Sxyh[pcb-5cUضC,+dS^cNfgeVF%6E%PVf7嚺6ܮw)UքeÀY;힃x[1<ЛS"I[c9k54[rXĉ/]%μӛ6v#9vٳ?1q@%%x;ÍE~rvBoC8^~vGK{`=L| 猇>t{eNtv_  `mxB 0Lb$9P~ f0t#FA/#B$ vݫ^J\Li4\I?aІ[)!eSh1IC$kd+ln`Eg9":d9E Qd56o|cEC>qxA ?))BGjd#%xY2'| @r2hze I:Rr\+2:匳Lc-mY\rlb qWEn+1GȀih ѨEs{[RB+j/g?OTgv,@G0gma?яaeOyrnPOQu!hK]R~LLB_Z v^`řqTG `["`&4'5,OfU1MzY=4aXC!ꄲkMjΚMhX-E+IZܳ.QzؗT&ܬMq:ֲm[S+[u6wH&VzD#JBZbjP3MdC}y@p[VmosJ& ǖ\@IU@GVM0t-Œ-(@! hj̵liƁVo@wQ}a/\UAf| tey'E~c K7,,A^֖쵏m\J_ Qk\< ` T,`#T$1a SpsoaX%͆[b,=ʋϸƞZ[cxK7,937aUѠcXDh.FoqhD@ыfthE#ZҊgo#L "luOETzh‘Lg /NO];|s"(浡'H[ؑ5iidZat6>݁P7T~j܋ mnyjWP5}}a;;$]i.VvwjjBm%#xDvs p?|(Z(v7o%-o7F4w;~ՂZ@QG\:'*DI+'];C0,]Io2tLC'ৱ*rdlA9p3ey+Xt;.DO}N;p+R;UL諫|I?ޅ. cg X3KpNxeԥz@Nwӱ /{#&X|Qx~A g'@%hP 3h~C~_M/}o{}m;Jx.0ۂ>q7I`Q@ dd x:+ AqBbSRhc3Ã=3耧=JC >#A4(A3$c`@Q8ocTI76CD |pB :Pc~ (=ٓЁ(cDcKL|x, @NLdF'?)BD/,Azk>844d89<7.=DMc^CC<'xDcDAEKDdDFhXD xcRd,Ppǂ 3PSE0X 4 ƫ?b4W~D 50(|h~410Fcx`4 bh#cHIX0|Gty} | P38S4,CVhjlȇ|L,ĦDX|J~gFbWHIH|I(8#0#@|8<+> @=~j#@37DHKD`&HHFMDP={DD@F ǏH<$0 G1 4PA(`N (P4@EGFXʯ\T4zɟ4#+8|{L4 ĭɤz->@DN4XJׄMXTIڴKM~E7EN4NdĂH N3ʯJP뤷DdK,8OcKFWD:͇#0м-e6Xȃ<2<`\`&SUiI6V`NE<`XE6Y PXXU<^`THɌ: U`1Vb=S6P&DShT- E0<==G?e:@KVǀDDUTFeQ.TEE OP JM ~,`IU0USuKLUmR\Ẁ xX[ ^R_[Vb `6{YLԁ 8X ,M,v`Z!HC8%zQhZH݃uUQ3!I0#ZL 8CJ,ȄC\M&PId\I@74YJ{Px(-a [HU_ؐY1%YR[e}٘MػE&͞m7Ё`84E8`V|ݢލ]UTUΡ]Wx-Z=iz7Ol[ μ[Ru[AUVYUe%O \̝_-TX4MƴJTAD~胦--Z k8C0n6HUh(U MQdPN((`Z`M f6h`;@ߣ _FլFA݁dN(r \=YB`}ʥ̽JTJJB.Z۵ ٽ`p2(U6`a,(2`DNd;Xd8`G;^܂J!>҉7$NVN؃rcM()n:b-beUrL\W8;4ɤ .:n`9>jH]U9DvFST2p6`60s`PixpHgp0gfm`/BmRP`Q./eM\)OXemeBxe-f_=؁]A岤di^dpcq}f pdGffvgFFv::DnP9-gvE^ngd!L-c6Ȁ`R(h}_Vⅆ[/C`C`niFvvuxd6&j0engT@dp_x-0?F!I~chFdHPLfp&iv>f%(~j@dvk5CPs(CϼKVhNhX5ۣ%kbV^fd6c&ifVN|_8!fflH^,pl%lg>%lvͮ8^ 6V}o>em)ꃆ he,bu\-Ђha~^eƀdVgjH!cE5G6W gflf~e>;6̓bVhWop׆(Wpne~W X`3 0bdOQdg,^q a=_=roTfTX`((_w򜮆E f,p1g"Ѓ2GZ,Z Z{jsr;_=s*@uVh]T\MG)_p[uY/W%&"(qS7Tu,hu!xkGm`\%冤ojHzgo(zWx6,Cdxǂ/g{u+],8|?~iPpk>`_7z`|7ȗ(yor˶l͗x,(o~l|=~I@PO0 #pW}֏ק/y;??z2F,h *h`!Ĉb"Ɔ!3``2dcX$ J*UQ2+,a&M@4{g1DoaJ{TkZ Bv=p փ^ Jό]ʕ1#KRAYdʖ~ۗ(ѝXT,CD])TZjtkׁŎX1Ċ DN˖-H[@Ik~Lǀ~AOT|qҥNJuj W/y؃g_H'XbEسkf{7޾WK|q䎗7wtPg]rKeg ` ( J`EFTtD}@%{^|Qdw Q"5蠂r3#7H9FUT`=2U5J`u@u]ԁ]=(!M."XXX`Zv!{'p*K6Hc-T;#BbU$WGRWj2dPFI#}^p*"Jl1 wmFTi|GB,f~ZæoR>y'%wAX*JSI3#|s/C r)IȠΤ,Xzi4Td+k2ҘRp' +ժd6+ [DG \ 1U {_ CFRxe&ĤZgА۟T8"fZ1 g¯ pE2RQmxE Zne12X9tɞ;K23aK "6^0[bBMtfFtJ4RoX-Xi[#u_3cH{*k0B]@GqT}7v2ppA n:?x 8xSE餳:חE يTa GT/ :c/p= d:>;(~X#S>Sm MX̗P3|=W*T x@ { b';y!Dy_>q0_8 msۜ'0 ^hG;JO,|6;yQ 2A &f!eK!TB ͸b3ЇLdBBf BlM%Q x#(G Q j܍a5 d4$e( d)"gx>lыuXF|wK(J8}#ؠ>1)ȣ0(dx$$_x!^C!M&)eQDT V.e,eiE" ^C_&Cd&s̔3M MnHleiCa7D|p*bZaǸ˹(Fxn $&bt@CH*dPHz7ᒏ*8AUDwC61F()xG JTH7$2+DKRΔMHX}.@Oӌ/CecQэ*ULuH*RTUWխeo]} VI(G1qZcik_F8uIeRŭIQ_Q:VAVb*ӀDcuIDV,kd"5nhMn A6 铐.^F E,nK%.V@erŴ܄4xQ;]TL3F$ U W-}/_ʾMtK^NXa,x G-ۤa 6ouS"5=(`2 3/B:VL僼ؾ5~X@r#9Y74Ѯ1L{dys2v_ ?1-l憠fQ ϹΑٲg0.}B3iN\g8ZsRIW~qb-YW5s]׾5-X?6v3r2`qشÇiS#NGLlmg6)/_ט }4C'b@}La վ7S4cMت`Ba?W؞u30 {.PÃ]pO+>1"Taq^yo|q0İt\ oulZ7F?z30l ? dx¢|(QDo7I*p@=f}lpCvOқRzձ.xb}`ov,pmG!m/;wM{խ>x|0|L8ЈF ?%_U9Ƹ%eh~1{ߟЇ~O՟ߧhpti=|']ή)4/$m_ܜ7ٟ-&_)_N5%AF!T R`ՀU~ߪZ_A`:__U@ _U! 1`%TB ;mtvstage_splash.jpg000066400000000000000000000051041263163240400407030ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDtd"!1AaQq"2RBb#r3C$!1AQa"q2BR ?63^cuٖP 2(r?ufQh.`dӯI[ mK2VFֶۤƿto[qK} -#}' &MYzfv*e 0,CcHXS([Lp k ǎDC iGmtV7xPRЋ ~=?;, #4q賓Ifnc#lm KWiN^.fɍp HjF#48@Y$kng3LZw >ی`7幞vL33m^W2 a`$Ob\ߕ7$u\W X ԧ4cR)ͪ14KMQ{`~>48SK=1mq{:pE5_\kҫ`Go >u"Xc[ SHt#cu_JMWASJ6ul}KeIq44?B#S_oֺ}|6FvC[kfRLB=^.H̢édqSlXv#JK7>ŝw1ץfC$Q]4>V U6ebw2}>e 32݁Q(P,pajmU} pQ98X xԤ?|/j^B/ FW/W F^%eƳbK5uYA՞$ukI@W$jb.egjuiYC 0DpQLC%4c--䠙(eG ԩKB=@ԩZ<5fbDEHPMOm\`_\as`__c[qiju%.7); !)1, G] UGPM \Yq gjsubkzs1I2V2n }i.~Z[LY]cQq`^nprxZ)~}J711<)HYR|wrRJqsmԔ 1 EU}{tuz&-*%(,(4RE9mM5mUIhVvh[B]joVvp{|z}~{ 4y}q淂zsƃ4̅woZėˡƧåѭƪԱDzдʷ҈ӺΑϞȡDz»¾ٽ½ɒ,( N:v(<|! LȱǏ 39ɓ%38`Bc|G6mYz}*]ʴӧPG8Ք+xS&M3k9VO*Qp4۷oL5`x@uBY9H0¤=aړx#KLˆ$ @]2oޤ&A}St2IY Jv(BTVg* :~LNœDQ0ya nM՟G?H [woߌ+W@B&Wm&(ǃAA*@ƇzIXGJ֍Hx џba."yBT.D!JV]a 2)~I*؇!2(%-!H' xe'P@ W6ͳXp!iWdz-aw>\]w߉+(e8&]B9RF$\J%}@V'q b{[I*Jʫ)hJ٤)).jʩgD `^2yz7n&i+* x-ljۚ K^l>/'/!:`vmv} *"B X |}hG"S;_# jIxJXh60lH`9]x^zg5@gv!|S.w9UR$1)KcBK!6$rl&29D#ՙNF2 x?vg*`S$됳,y.YCt,FX˶e3`LiAXΫ]ᅱi|ѡ62J27غp>5_}X0I,k@9F5X-i&i]y6:2 `#5 iGQVOh;-%qwVpGzr{\pk `7{ ]If6g|7Ao$&gCW܇:=3&n`/$yޢ^UNuL Jlخ$vۘ%~gիt}ڦcƮ9%_|}ߝ4:t.hy͑Fqݻ^tm1!wc-z-MD/ÛD:@a{FM=1GI,*(jwJ4FSz@vC.c)\DNɕ"S qʠ3qإٔWJc8">Zg.zn˩5`1q![4h8zj=>ìA18]jzσۊa:H9o==߁yj[5ZQxa]ïЫ*9yg** āi,ɱ!&2;nimble_scr2.gif000066400000000000000000000102211263163240400376570ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  *0"31#'7A#A E+.L8:dmHjm{fbDEHPMOm\`_\as`__c[qiju%.7);9( G] UGPM \Yq gjsubkzs1I2V2n }q9H.~Z[LY]cQq`^nprxZ)~}J711<)HYR|wrRJqsmԔ 1 4{JU}{tuz&-*%(,(8RE9mI4mUIhVvi[BoVvp{|z~}}~{]y]޷zsŁ2 ̅woZ{ėˡƧåѭƪԱDzдʷ҈ӺΑϞȡDz»¾ٽüΜ,( R"JC?t2jȱǏ`D0qɓ5H`Bc|M6mY!ş,JѣHqp%oʤ)sf͜7vωAA]V#N$ AT,̉@TFW,Yg)F]̸ǐ##2'H0'W;,Ve"T!Tb#Xeͻ7D , Р72pTv|ATi^h!رi>lַ= 'v?z`wO;QV+䡧!bq~<] B((^!qZu{GPPl[?y.Iq8X9#*~‘GTJV6cnbSTRQۖԸR54Dvrfy$bƖbܙ"5W] dɛtn `l8:!4za Z@6ņ 'KzٔfA[fʪ'C }pک:bf+5hue-t`ѥ8nu:}Imy(lTrhgkセ['ي!<,!z*|t`ʒzgm9_jsQ w(Xֆ/c4EU&r;{q5m4Z%n>wr$WRuNdv ތXSuLG+:3)ElvT*pv0FvC.nEW)]1/xmg;֘/8|+ycSJn騧~xڽP[nWʝ%o'7< D/Og}ͺ{~O~ D>/7a@N]r'G6@$}eHRDMg}|_1eTPq *; zn063 %SPAb8`L&D =@m!{EdS" BrQB`3)q8U"xD#&эK3NQG8~яLBf;1G/x3ǒ@dDi 8JQOjD``Vf2X#Y22MY E< f-D\K?A'>ae:dLbƑ؜e* (AI`3 MP3ٴYLAZV8Nv^Ӟ<6Y:O_D 0I(DkNĘ)`윞 HK9SD)pٛ X(,e)tF$2Ppi5qZP5:)Zf@"+&IЪN_dn85"~("ֆ<ԦFM+VJȭv")Pʊ6^ժh]k'з"q\ZXUxŧU]IX56+D C((+ZV!%jMZ6mkŭe [#Fw#gGf[ށ-MAސ@5p[ZV͠D>=jpF[7#wF⛑ӆwY!y͋M*qU!":p0Mz0"!.{B#lp8 ͬz7,`8-(Ba*Fl #WyiR k &JdqcJDlxݦ ů N9ȼE'6c9ZouMg:ȴ `5&|jnumk(|z(7 @ 1jk}:k(𻷷#sG$xl,JNx^Ŝ9"P7w|C >CZn@,ц/Ud |NQn [݆7q [+v[a\-w9&0pӡ\;?4znlq#*qԝv? D=~h޺Krܳ&{^ݘu/q[49W]6J7`R͡5iK$*<+ (;ctv"/OTs݋;Ȟ ƯY" jz/< gyk^#yL@곫ú˟Tr B}|~07Ȁ0  nt7tb'ov_(r@~ⶂaz٦#[e6x8hwa=vr2U2A~d\rdl6$HywM@&}w}']dSO%LbzQu%`dieHenh؃-je3(Fhm2X<肛Dw5jG}'?eXx>QsHtSÅeLFJJD֢KNH8h[eJHgՉz( Tx/G8(b8+ǘ( XT-m*XW wLP/ƨѨ81f$OԈQ(lS}ҌQ/|[Ǐ^xu82eI(b1(2h8W5)ti3o3DibN#C*TxY%HC, /=2}BNtIFx} @L@ۣTYVyXZ\ٕ])4>b>Ss20Njlٖnpj(S=vY=2З~9Yi;zE|y Ҕ9xЗLM GF,9y F7㙟 i69)DɚP|9FF4/1.2#%`F6㛯 i--ũ٩DلV"d&}U(y晚״Pҙ2Ԟ rX8gc8Up+㚧-Rb̈nG '"V󃺡*&/((7à_ğ:2>9l%y}⇉ġ.$|!4Q)3ӢE1yO_ӞʤtZVJoBLӛ{ʥɡ"`)k91u {uZ5zxv){-UfXs?\!p*1t2Ui)z˔楅!S^2HYyڪZ14b1}Uҩz;nimble_scr3.gif000066400000000000000000000105171263163240400376700ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  *0"31#'7A#A E+.L8:dmHjm{fbDEHPMOm\`_\as`__c[qiju%.7);9( G] UGPM \Yq gjsubkzs1I2V2n }q9H.~Z[LY]cQq`^nprxZ)~}J711<)HYR|wrRJqsmԔ 1 4{EU}{tuz&-*%(,(8RE9mI4mUIhVvh[BoVvp{|z}~{ya]޷zsƃ2̅woZėˡƧåѭƪԱDzдʷ҈ӺΑϞȡDz»¾ٽüΜ,( NH1" ȱǏ C2X<'L8M4h b< >8`D4ӧPJJ*TI}V"*|I()qQ"Oh6PjeR8rV\yvq/62]MBN ;ĄzxDyÖ_YI>f䒳ZN3nkACE/W|'@>O5z\wH : %,SM@~VRܣ0Zb;qٔEΗe09Fs1]좳fN虜09hݑhFMb7OӋ":wSe8)Nj'wpvЬ9)Q*t;QQdr)ueE:Q=J Fb0-iL!YOYgB:S'1}NxO s *6?ujlL\ M;ǘϲfYF.u@+=ѱ<*S录;kU5kbաnjdavXŚ-Bq)@vufezf6OH2[#ϖ,F{ڞ6)7Z6A*bKK\j/Xvzoִ-UkuƋ-Ry϶uUx3:]gJw O1S+UeC#jY #H #cf׹{A `NQX.oW\T Nq 4n 0H#\ڪ (V1܍nDugEJj8cvؙCm JFvoF%kx;f1rY<}}>WWfpf\N'He!9kb)􉿺@Кq)g@{s;JVRq8nO}n} w 0!C Gr١T7%~oMH7f;w4C<"/x%yczz1j㙠O ~6~}cn7c>@;dt\v.| v,OY(?«rA׬|0Op֧*P `Wvi{|Tpr` U z*) ~|@p!P6y8WZBRgzE4x!C;0tBXQGxEfFf]UWfZOH5h~gc^HsN8PdXhgf|gGІH{ghEg_pz}8"5rG_hbacȈJOj饆Q@X ` ~؉Z\5X_9؈s.O%XqZ[xneZq|%ob 0֘hQ C%8wHul!R{pxeHdTb؏tTVؑ}OF8 9yْ2~ 6y\8Ew@)9G 7IKeJo!=AIQHrDhZDIpaYwG6UVEɑɅxFzF>ԗ>D9YyI5LE E%4%D7`ٙ58482SM9 ٚ9 PQc@ӔГiK7jq?'>i@`Û┚͹pi=yiYԓIĩŝ䔚C ~ sja9;4Q`U$N6Fqї(dzP0 (I^6 $iY'ʢ??r2 f*Mȉ+8ZGM( A~0BD sFJ˩J$TW /k-Pwd_39jc /Qw@ڦQtGE䥸3 äb<g:Aڢ1zT 0Q شFɓ wPѪ q8t7 :Nyœ0]ԤQh%Z{:W#c櫼z+;}$٭BgjKJ?g 0#2#Rʄ[2=ӮZ:AᯬkmF5a;f5際 X V]{Yj 9Y64˚x@+[- Z8)Lk7r,k;nimble_splash.jpg000066400000000000000000000051441263163240400403230ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2BRr#3Sc!1AQqRa"2B#3 ?VsJ ̄k'L|l{T]CdHkwyw*u@FQllilT ]^d{Dqe^}drյ1GK$=^[,ZFlw I 7LFNk톧i[߸~R( (NWN[MmKbܰ=Rj7I]96#>xڙۘăI}SQFԌ1 zm{/$Jiavl8W ^v͋D/kI#3c6<%opXw^=rr@9RT8@A_1珗}w7B_WgQkس[HP~|ۅ^iPMtq\+>^hĎU =Ċ @7[IkqA|rSX@tY>i-YQl{0J4$ +gaR0QCӌuMfݧVNMÞ\HMCþnĪ"b.==]Z8R*3 aφU Пpe=c;lO>vʐmd`mƬCScGgYaBZAU7?QnEUwXcJ'nwa wu] I˸v'gǧscn#K#`lqn>tZGg`^܇41-M;OML6,.swU:zQˤ3o[iYemw17Di9Dj DLܷ|/]o!tܓO.VV d8~5 udk }lě^i/}u4aC/ c{0c9$F؎XTRߨˢ|WmuNJ mD637 qc4/u;tU%Ɗ?[r'WWvVtƐLm d/撛n;A?vt.z ϴ2`;_|uOz}]ˋۻ94Oxl]zm㊔"wq!u[24`쩗 xK}N7M6O_@t4~$g! ?gs(0uE(P*s 8NkJժ2 K@+l G XW::ZW*S p\J(x MЄV*h | X^tU]׾6 td'KZZūv5=,J3QZ43VlgK-,ANvYThJ -o;{:}+z(XP **\n3P|0JA [ [آ*P`Ԗ[,x흀;^BnwTE._ԥ%uiFR(xK 0q͂iŠ%lb?E-TPTw4VLX[Le)C @ `\Ԗ.x.eB0 MsLg:_a =d!G@x}㢪oP*5'+ Bees= u(Mհg=6 AWZUAÿ́&6Nl@f;Ў2l|RUز۬NNe}vsu~vc^hMuuXt8꽩M7s~i{<GN&O4Ur0gN 9r@IsvHOғA/P:̇,XϺַ{_2NhOŮNx{~tOx@3𐏼'O[ϼ7w h>@?}Gѻ} N/zпqw{ͻg@O~|~Kzկ~z|E=~}K|| Ww~|w{GzzWw7w~'} G$H2Pg}gzxW4 xg{2${~|ǂ+Ňz98|9|~|HP|}BX1>h|Iz%(xbx,,,g\'=|{v4`[81zeX~W2Ђ:()00~XwaXGZ8J{hwYh8z2`0@,`lja+k@Ѕ|7'W"|,X7;Wljh8)ø}ȁ|#~A؈hhhi0XȆ, I@@@$%8 0ɎHXvXgr(W,0 Ȑ XH+I萺@P?XXkȏG{[X}ׇ4@p-YY5y )=`  Жɍ؆f؈k($smX|ӧ}G+ ɍ(nI[ ?8, +@jy ĘCn8k 8+ 4I9yIx_Y5I9 ʣB:DZDzFJL4ڤB+ TTzXSXڢ)8b:dj^**`zeڦnVZʢrZvzDzS 0{*z:dZJ`ijqzZک*ʩ ڨ{ZJ FL j:zꪊ꩟*Zڪ*jʬʫJڭʭꪡJ::z׊ʮ*Ȫz۪ʬ*kۮJڭ 뚰ڪƊگ۰٪ {J:zګk˰+5{ *Z:{jʳ˳ʰK ZHJ ˴M+7 `z纲jک\۵i;6[튴z{G۷cP:3+۱;^;]+Qkۭ ;;{;ˮ{K{k`{[2k۹;; tȋk[ۼ;+kikkk[kK {KK[J+  ܿ ۵+;'\\k6|8&<,|lB=|@|$'l+LC\Ť)Ù;P1l[f|E «b3h|x|(ӫJ8|s|ƅÇZ&<,+ <Ȃɑ,əÎ|ȡȊ~ʣ<0lqs<ɛ\˯h<ʗˉƳLrL˜Ě<lˑ ɔɺ, ʹlƟLl˿L͓<Ϛ\˚|ϒW ʒ| w|\b| - }{Э,MϜ=%=+Î#<,}B}|қ Зl(\pL'MC ʓ|-]M-/ F[-C f,rn^]| yF],,؂-فgՐṕ@ ؙMٝ-B٣t=C a=ԐېM2}w]ڣ=ز۲۾ڰۘ<ȞռЎ=ػ֓m-ھ]ѝ݁M,=ύAʭMٜ-޳]-M޲-n"@mxߝ->^&`^-=*,0.-Nnn$"N1B>.8J8>۱ MV~MM^^>X@IHn\S.]"vo^vyQeq.syhr>z9nNN,>>­?Jzm>n9~ݚm粮g>)o"d~~~^聮x⓾Nc~N>A~.>;opthunderclap_scr2.gif000066400000000000000000000133221263163240400412660ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aRRJ:kkscZ{BΜkkRcZJs{k{J{sZZB{kΌ{:BJkńJkBBJR!)B:)J֌R{ńRk{BŵRk1BBŭ)s!):c{!csť!ksRc:R!Jc!))!Bc1BJ)Zs!1:Zk1RBssBRZRsc)k:JJ):B!!!))):Υc!1J޵Jks:B)JRť!Z{:J!:J1R1Rs!!)cZk1JZJZ!)):cJRZ)1BBR:JZ111Z{Rkk:RBcsBJc{s{Rs{!)11Zk:ckJ{1:JZk!c{Rcs)Rc1c{ZckZcs!JBJ!!)RZc:ZsBs!):!)cksŭ)JŌBsBRR!,!H*\ȰÇ#JHŋ3jܨpŋ bǑ"GXKb "%L4!،9K9zA /] ahѣ>eR&%2!j[bW9U$?}v-[p_%®߿ ́Yl1bƈeT}>y r Lig'h:%^Udɤ|{ WGƝ(~,jDPM$kM*i$Ii+F. Ml`_9^)&dpbeti'-mݡgw*\I[Š6nG[{f)QƄeȦ:: u\rI*무j뭸޺X0B!`Ak&\GfpVk-(2B,!fx(#צ.%fA A믵eŻbdA  D,Wlgq;(ǞjIߑ,rcL/l8CqDmup1XtEGG-C{\uS_L\w`-dmhlp-tmx|]߀.n'7G.WngwGE n騧ꬷǞnoc'7U1H[adQlA!Tdc2Gme1&;L tLoC>+D%V,SX-:'0|(8?*Gx`"L!H! B , $ԁb D ֯ pP`0I\0ОG8x[d_,8s'TcOPT>"tL$   `TA̤&7IGAы&1FDHT*z h Wb+;E!rc.ɀ`\%wLd"Ќ4IjZ4Anz 8Lm$:$ȁ! IDxt'>)D"sg*YBMB@І>SD'JQ ! XAPюzHGJҒÄ,ҖJ@.Lg Q]d #fڅ.!$PI`ըC%Ap.2MZ 8BSI*#p@jWIղ4 HL Q CP+HZ. zCUUG8@XդHb&'q6VGM,]zZ| jX^,]/ֺ]l^O²5*f1ZִFWs-jrc:E{TVȮt\- B+F`zLW9Xxm+ ~}L\}'L [J &x fp`'MW0pQj^\wRjPHN{'A<AO.w W9PȳMBЈBLRJ[Ҙ){ (RԚri!KE 5gMkD+ָVfdVג& ZuCf;ЎlHCzđƁU0AjNPunmmE2"4J`݀OS0T`p0k *@)^p\@hGp(/ylGc|W. 0e$4 wʇNB|>s\x!~E@ wx £ $*ص x=Nw7 '< FoXO}Mzӏ}w8eytu͋/xg.]jVAz waz/|G3}? 7|Ax8~ 0' ݗz~}W~z}(`&2P'Xywvp7"eOxY&N20wz݇}z/HxG|7{',X~8XGzNGvII-Pz׃r&w3}~N`.x8Z<2hzygy g6~ׂOzxz|w͇|hxxgȂ0޷zXrVrhBxGN8'~'wGwJuW~'?}xzh-,,Phz7zzw~ӧ zqxW?ЋABxgh)X؍yxzw犊Eh(+Xh'pa('-p-8ȑ)xh3؏ qRhh4y0P8ؓƸ,yXh?9XQ(`ׇyzwoȓG)`Y(8*@=:;z9CʣʤwQJuJYJwh3YT^zx*zJuZ:ʩ00z{ :?ʪʪ8:P :ʪZ Z`JZ@Zzj:꣰JFʬʭګZz:z: z ካ횯ڰʯj뫼j+zj [ ۰ڊ[jʱ5z(Z* Zг;۬/ʱKʫۭV 12Jۯ튵zڲ#;&:hУ:5j~Z[ ۯt˲ KmJs;oz,;=)+kjJ޺f{K kZY*+s;;+˰o m;Ի{ 4;{kj;qKۻ۰zK 񛸌˺*KLK j || ,|<|Z++ 찫52 <,ـ ٝ=ڤ֞-ٍ֧mlύڴMGִ۹=ջغۺةÝْղ -ܟƽҭܨ]] }J]ƭ}ީ c-۝< ߿ ބ]ϭߞ޵^P]ںM׫m]ᬝm>P.n1.4N-!^=0+B~7D~:N=2N).\+"-.b>M\:)^@WU?.xan}.G>insu~~1nC0*y.N^NN.N鞞w>z.꥞>>ꇾꫮ?.뵞~^~NyN~Ȟʾ~Yn.^znn萾C>^̎컮n;opthunderclap_scr3.gif000066400000000000000000000133041263163240400412670ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aRޔRJ:ZckkέBs{kkR{cZJJs{kZZB朽֭֌{s{:B{kJkR!Jń)Rk{BBJRJJk!)BŭB1BkRB:))skZŵR!ťJ:Rks:c{Rc1BJ!))!ccZBs1R)ZsBRZŌcs{)k):B:ZkΥ!Jc!1!):JJRs!Bc޵!!)JR{Jksť)!1Jc::):!!)!)1R111Z{1BR!:JΌsBBR:J:B)11RsRkkJRZ{s{!Z{1JZ:JZcZkBJcRcs1c{J{BRRBsJZcks:Zs1:!)!BsJBJބ!)!)1!):ZcsJZk!c{ŭ:ck1ZkBcsk)Rc!,H*\ȰÇ#JHŋ3jܨ bǑ"GX Rb@"%L4،9K9zA 0]`hѣ >eR"("B!jV[bʵW3UdAv-[pa%®߿ Y1Xbƈf>z rf L g':"^Ueɤ|{ W{GƟ(~F)e. !Q`Wf%Vb%\9hlp)tix矀*蠄j衈&袌6裐F*餔Vj饘f馜vi*ꨤjꩨꪬ꫰*무j뭸뮼+lk&6F+Vkfv+kn+o apqJ #zPG<W I1(챉(˻Ƞ){ 2KTL%Ĭ3{LX-D]t!8F,PG-T(C +Uw5@,m!6`{E;11oR"m0ބD/N8 .@(.E[_J)i<=S'>#8@WY!( _|!ꭧNJ&^xoAUTGGR;/䏟DgQ[lEbx%(?+HF|#>/DB dbzXE @BP܋GHA 0ax!Nq Bhp+da `1a HD|d [ȅB IBL"HE!h*Das7n 'I/pa},V$$ Hb t0D"-bB $X:l&d60YI. 8D8C6s ' H@c`C~ (@U MBP5kxJQt 0hE7юx($@ :G F2+L* R ? O9O:$ tڰOLDh J՘D5PH\XJVNa '8A Z5CB"Ⱥxͫ^׽bBm1D_Ś)$B tXm=Y:Z #60"a+bG{ش.j] HKbŬ:1pU l"X;Z6i ȵھ$0Ci} ܶAMcO0zxK mYƮ5uj;*Pͯ~Tb!K`2Ձ3غ'L ׾m[7V3 . kpKp:,ر.k̀ۘTtP0 u8+b蚁7&;PgpÏlB2L2RV|#4`[|BE>/ AA|#3H A02IK?[Ҙg @ӂR`%aV:Ӱuo,ӜB@ v@bN6@.4Mh(:A(n{pf3!5mmE#Mzo GiZ4w.O < MBr} 4x7z LpxE.Ϡ>4gNLh|"4\G@7 P xzGp͗;P:|5{ OA̙} Ӄn8}P  Jp羀 zÍrπ K!N;s'?"|_@8|a xw @ ^.ySom>{Ko3aeo >Ѕ{%Ï9P?{}%(? 8|9Ͽ/}}*0pKuKvgvl~}`yF}JrUghW}W}g}%x}聤|{yFxkVק}Wy&}ۧ (1}+Hwhx.(PX&8w3؀)fgEgyO#0/# D'gmx0H~'nhw֗ 8Ȇthr4hFvxsxXxEH}ׄ};jxHL Xq7pvZHJp؆hz(yhzEȃT8H,,0gkWxwF6} hh}HWH'؄}hhH/PEX(wg H<p>Gx`Th2/А#,`BHx+˸?ЋEJ8#sDD8IH"&̸H0&`/C9kh/nHzFІlgxiX(B J#H0,0,//)Xy9BɍසJxGrjq, J.yy)V&#P{iۈW˸( q(x9V&Bh(&I#U,`-V?)HihxNɐ9+@Uٌ ؆戀ٟ-!Hy9- ɜi8/˹ )i )i|(j*j8+6 Z)Jɢ /+J YH7ٝ *Tz#J:/LDhJM +zg DJvʤvZJgJhH* n <::Zb کک:* :ڪꩤz*jZzjȊ*ʪ Ѻ:њ*ʭZZ ׊ک 0j ʫʪ늭՚+گzj  +˰z ۪!˯#+ڱ0 . [2*24[${pH?˴(˰V{K`[+7;/_` c;"UOdk1 c H[/kK]n[f۷Lx[{r۷1۶q+H{˵{k6Ks;;KKK6;{˺뵧 p;۱{{H˹ {Eky[[˻Û» uP K_ڋ۽ ݛ\K۹K˺+ G;˻F˼|ʾ l[[̽ w[>Ç:@7|+ı[L|Ė+U<<ãku˯[`,[efՋoysyllb|u\8|zƌ,%{ 1Ȝ!nj ` ß<ȝ{ .,qƬ\ˬ ˶k˯̷,|̺ <̌Ѭǽ,|L͹<|МL l|\ <e\] =Ӝۼ  }!}m*"23:]8 3B.PFF|IEO}1T]>@=ZJ}<-^}[0pcIVp iH=YMt}kA}րeMց9{}ׄ-؀=ԇ֑IkՈifp9[؜Mڐ0k. ק-Ө;ڇfMڏ׸ێhۺ:ۢ}ܜ}ڻ۸Mg q]؋=-q-ؼmݎ]@ C]Mmܷ]=]\ݦnރڹ}M}֭~}}- 0M߅mʍ7'NF~H}Ԩ-m=V.Y~CX>7VJ.f$N]nXr$~CQn/#Na~ g.tw芾pv>⎞SN8d..^~^v~ݕ~~V`e꺾닞댾^_ȞʞTĮ ~>^헾QVmx賾;opthunderclap_splash.jpg000066400000000000000000000042041263163240400417210ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d"!1AQ"a2BRq#br3C!1AQa#" ?W,q' $(ZWpR!vM[Gr6EOA 㣪]/VוqNFՀx phSRsZB4sj!P年9fG)撃: $%8lA[pHVaҴ\wwk%U]7v'#%rL..i!4VB靓F\X̎Jjw,R4&i7_ތIF+^ȄMG0AX(cƮ8Vghp\"(쪘⚴dI$: J ĩ^t{)8gkFQE!wU;5WGv ]. { u{4+hZ8踺QDݺ:[S⡴۝p5j h4RA<0:+餑ҔDLFdu0S2W?))"TI7g!#cx^K)HՔ{!WМ+7s*nՆ"bo/V "ϳI+@k60VfUÃ87i+q:0؃AhmQA1 Q <$t؛jFv ¹j &Ŧg9P:!VݶorEZ.k{" \X,q2 <JFV+YyvQ\9 u48W-ؔ{w|Ú;iƈhy3+0vAZQʴeL;OGeq8> v21@<}ubN>(tV토b E":(7Mk@o#WBJLg캜GZ?Vi{Z_Ixӻ0h͈ [oOQĐqZW?s&rIWƉ*/A-Xh^}˃wQ!6<]?C@m1n=h&3$;TjuV6k=*_uOLlQ+V*j }k=?xHΐcsZꟻ%2~e p_4t䂷ӷs4Վ 8)n4194~K'GtZ ~tlp  on$v _i_%Hcw|V"F(Du昦sN{id{{k8PLBiv]"MQ$uAQ5=F(FBzMQKn8,JrFfJ@AH)b]GJWLOm\`_\bs`__c[qsuJijv&.47);@ G UGPM \Y} gisubkzq2N2V2n@}r.~2uZZLY]cQq`^nprxJu1{91b~}.7+'.ڬ)HYRzwrRPqmJڃRJb{ :74j AurzSSUjlz&-* %2,(zjЩI+x" 'QVY-ZP>25yZ/?'xν{ңQ VCåyx:`KN}~5d]4Eȁ%h *H@vThf^h~ZFpX("(tx vbZ0bz*@H'R"k%'X#}T]Pi!RfY%\bdi!c ZX!hțm>YDotuq'1홧I֠Cj衈&c裐F*餔^xǥf馜v駠*ꨤjꩨꪬ꫰nǬj뭸뮼+k&ފ̳F+Vkft뭷ۆ+[n>p+m>pPL2M>+-;SL미4G,Wl w1 ,"{<27,ɸ;hL8\<@-:m4@ o6PGmcXg\w`gͳd",Gln]t5x|߀.xCn8}7G.Wngw砇.褗n騧ꬷ.n/o'7G/Wog܏m/o>/ ,0wk `A@\P`(H ـ !/exШt}6@~3tح]*@P3no @C 2`.1aǸ>B1cHy56 P1 ]`GC2| EGtoܢ"YP bcH6d6I16" \I9B|`D"H&:rT..求K^җb/IbL1 _bePA^(2{)mz#@Hf86k'2)HA<}ڲDg@JpXf &)6P9ͩ;d|)17f ~H*N%ZĔ0pR*@ZeDM@z" ]WԠ +JzWB B؊: Bc'ZV*@ hGKҚvMzF6mf`f mkwގpw+Y^60[ַЍn+! d-+V7PzVMd+랶څb 6Tm~m; Rwh!.W0tX];Y{K#v7!glZ7ݑĎedL"6eK !WMh{Y2aB,eV4/رKN 0 :o[^Z7 a&X0TWB(`q Cb &hr&-0IVeB .XІ6DP ²G56p@kCr#-i!hҦb5-Y(ڱLéM~ l; ihj(k~phmYNzAЄ&q76XabBE=OVJn]jBn5Iq^p Nfsd!>Dl|i/AjP6I9{w ! Q`Asg~}gO'~afBχ$AO#z_:{ysA ѯ~Gt5O|w_wR,Я܇\:G{\s{" wWx{`|@wW}!W8x' ٷt'jzr-zP{`28 {0(@6td3X76Dw(o@BtWxc{p `ׄc;(o]؅:Xx\x:( w& jp^tO{RPאɐݰp 4cx2GK'hhX@Xl'r" 舔Gx /ݠ.S4@04hPdQ xk(sp`  R( @HȌGX{pͨ䘌LQp}!h\0jQ@ ЍH8 i8y樑ȑّ 0}&Y)$&' p{Г-- s9CI:IG-JIWNI 8TVOyIs ߇y1A)h1kDr-tٖjI&)d`nɗCwhyV| ɘ)I )ihڐp zיٚ9IɛɚY`iYٜ)i^0}MwΙXyw0 "pn꩞i 0|יM07F9 9ى) & zON Рͩͩxj) IGj9,jO@$j wHJ " 0zǜ7 Wj9Rz=Jg~dz!N@JzmRnMjjI@^,^ ^@OP:*]zv) 쩢zX^Z:F * I ګ;oysterbank_scr2.gif000066400000000000000000000101141263163240400405730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  *"3&&#(:Ab#F,s E+.L8:dYZy{fAH)j]GJWLOm\`_\bs`__c[qsuJijv%.47);@ G UHGPM \Y} gisubkzq0K2V2n}r.~*uZZLY]cQr`^nprxJu1{91b~}/7+*-ڬ)HYRzwrRPrmJڃRJb{ :74j AszSSUjmz&-*%2-(*xUr ,e0̥.o 2 09K[S<2uIf 4IMb1y{fr e2yLg&;͉y^sL=y[!(^RG%B9e(.N@F  e G:gj^fJeӑ gMmS]R  2PM2lSLj.Цƒ`D,9խƒ K5VqUvzB/{YVdRRWZSH _ֻ5\j[ԟ%, |f+hhGKV PlGKᠳlgIִ8k ׷[*_8t+wmrֳ@hYf7u*qVֳޝ-wj6%H־6M.| /5 Nѽ Axg/a ' -nS,/\ͯľow زMrS `S6愄qڒ! D-gw_ڷůhG%| `3Yna(lX嬎w[Q9E8P3/9.@`V᳗w\C8P7c `™g tl (VB8 T`Z6l!4 O˗utAi.!2Zڼ.fM2\գƣg=k<뚴U 7M|ױ/mp@ȶf@o^П /jw:xg0l{oxp{zl!νoxl /!iHä(i\0B]EA W.f>k;y{ w6p;::PNt Ew>? (¬W /ic!GA溘6. 񪇶14@Ѕ.I?1MzT*؜ۺ(xݡO'?[s=wCzzڈ쵁yz/v-!o(\p=Oγ >ۏyBr]PQ=@Gϧ=?P3{fbPGJWLOmP`V\bs`__c[qsuJijv&.47);@ G UGPM \Y gisubhgmzq1I.X2n@}r.~0uZZLY]cQq`^nprxJu1{91b~}.7+*-ڬ)HYRzwrRPrmJڃRJb{ <94j AYirzRRUjrz&8-* %21+դoZߣt ui@-xQ9{G\Zx_rᡇX`AtqBfGw (*o|U%X#n5.r#9ȗ@wy*衤PF)'$O҈"H&Sdczi&ݙi)əPf|:Yu \ɚ(gJ]NE2أ&(*!J9z)jY$RRee#R-9*Fj"9+U ]*&[*଱F+Vkxdv+k覫+oyk,l' 7pD,Wlgs,$lC,20,#b8 ?OqH G <1Rth@b(hL.nB0:vqz_Gđ}cH"F:򑐌$'9(&73pܤ RғL)רVR,gyJZ\$`Id$ҘL&.yKd*%4IE2&MS g8IqL:vcx';)z<i,ē @MBYЁs8j, hD)ZO @w,HWZQa@i8eҚ3 .E'Ji,Ԧ@'8SviPJQ34}RjNH>'HJNV(8zxt^&u! !O [j!dax'^׾k ֪=\ǀQ⵮w^K`e Y.,X[WO%˺ֲe@4>H dxB֭̒cj){W!Dckp_ܾu Ǟ-9X `h[ulp}}-X`]Aյu{ ׾.pA >"ֻne9s=nz[ʁ vp\X2p PVgÙ-,`lWZYQd6̂1 @Y׿,!{*8%]XX5לٜN{I` r` "0jiy ܩwN}GWٟi I韍* :YzJPOС iɹ`x ٘(xw6xzW W:zPP9 "'<|w x6/Y{B{8_IO١> feupwX*V 0 ui < k EOژШ_ {_ڟ0&:9Zih_p* C Jmi*ګګ;oysterbank_splash.jpg000066400000000000000000000047761263163240400412500ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2#BRbr3S$!1AQa2"qB#R ?n lRƜ[5k#H'`Dw)S A#ByQ!H 89!kN]G#(β#H1$7az1h-LC#i;rXkC6vq}Cn[5I XU ,\ޓ!C~@ࡎ#և0;MHnT#ۍFZ`2Y8&{OvMU:Ag!yI_ًGXJsIK\N.ʎ`88䄐,8H2 F#Erl{Cv E=geU?P[Tp$鹥0j Ɩa;|wQRс<m>MpOjy7]RX%񗒣ܘV0X< )^_Ep[,1lo ;jL[EFº'c^Q9l,ƕLB:=\a&i:iӐڶOQl_5o& pHul6YL3Cb\M`."=a_ p{NϻH+kKMmLv:ޘ*CY*1\{A WZik;N󦎔Sw}_}gE CJic=hz?P>7]^B!;ZTQzC,RMz5'`cF@#&1s;&}u\MEl94^vZI40-;S$|FKr zcsdtm,ˮiKɜTniV.U* xpƴl|qjO=(ROTJ̟m8/Z7=W)f1^J)wTI#kƬp/&7cn-k.ĢqxW}nzm[EfHR),Gޢ-kY5mq+ 8h[7ZC 3uiw8cQM >ݽUg :GjZI8)C x5+؋݇`JB+F@<hɭ8}&]blmԗu!Dk{]'Gn߶.n`+"Ò-<> !`gNging+@9^z g22X1@l/deq! b}v,DMw\SIѵfߟV\V> NQnVU+GYguƨni<?Ꮨ.h  ~^\FwSRj̠ hǮ̑!cXK6ED; #S۴uV<6ԕGOV:kj_Hu}pps+Vg<;jZwlδ5_i5&4Nj,sP\`Jfm)nE&]+2"+1:*F.EwQ*a'-.BTgs {}Ks!2}!Nc"X"9N519sPݙ2hxTjS!ћ6Bf4U8x/zU;*OJ/GӇGN̐joۜ{ҡ2?UH#2VI^'hrPpXģH\<`1" $[l_n&Ux8*bcnv$rH@c0c9DytV9 ap0z~Ug;F8~3qf|1& 2\ٜ3 <}r‡6ܸ[i8n %TM j.@@ ZT V`.ތ@Nnqz)8Bg|?Su[a?h?y?#Y]\j>뢊U4Q=9tTƗ =˂oӢS"T E1xd{>4QVT`)D]QQE,r>ؔQE%papaninsquest_scr1.gif000066400000000000000000000203701263163240400413110ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a^Jso5 ] 5t HUm'7/s)y1uKBkBkB{!!)tR!,`"dihlp,Amx|pH R(5vl:ШtJZجv{%TV La{縹Ҧo2\jors^drk|wgivsdjuqxzhq^  5u gr   g  g m g  mϹȃq VIثE` C0pUe^,#&Xd~$GI{ p#GY9r ̿희/{FSӦDJ%ץѐł|>ρ΃ $ L_PۂzU3 r(L W؋1` Ppu,TG tܝ;"*Ј]ڊȻq,` QW\(0i W>-zlK,eDE%fģC)WII̶Ae$$<<*ґ$H&2 8 x[c CٿqS)Q*_CVҔ[! Iŭ֠bS`c:Qb,~Ό"4l7agzπs*/ʽgCOo63ܞRBy={N>PbH690 p L8@QnF9jQ%I)Zni쥯ɿvNu`E/x`E9TjP9˵5x)R*T&FjRVUbD*E/pTNl:0%Y͛"ujOmMjJ]fW 6p5Z>& DEr7vNkf@*ֲ].ڗ]S+QǡvһeV[vl-5@fS+\FqrsS04ftu7;Y7n0`;]avu]j.W“ O )nDwz畜|zy[ǭ/_eg//DVpֻ˘s~x,5? <56\ [,>썇<7йLL\&)0 /1[ᷮF¤P=D \O@Xy{YaV,'*n@ilc'so(G!gD#Z\7~'凷LXw6A 70ϒD!0`@um Sy%*_D0C/HU2iv]dnu3}յeSaӞTS1]6~7*z[!&[2ҳdZy{,V};Ac3/љBړHG^I:z$(J5ҋjsSoﵝa@Լ75/}>0E9X ֭.ժ>5Klӽ;]r=z^At+vNc>Q \vֳm^DwvmIvw\cm(5fI/sz&uq|u[Żb>w==/D/ZA·ęa_}=9/g5go R!y30$g:Uo x*LypDo P8{@ xC'|k#'f O`fyFIdȀg&xk}hxH^f`H(hւqh1ozho 0~6z&MjvWkI~G?E= W7}lKmdąK6lׅ[cmmkP6r&L GMn}WMxnzv#\yS('!o=5,5NO~w 8x7صy5;==`SdC(7xpU;[KX*6dUegvgVQ_uuC׋~Xu@G=_XochWȋsx_7=6{hS`ohowO wȇ68{#BK5uC 帏O(fscvI}# WoUQ`zyDy%z~vȎ]T'4 ESXF_bW{,i|8Cb8sq|30Y/|#L:JWQ}ԇ~\)W9 8l66s"'P,UoWt e(X88s]CopAPxtg9k5h=cY;4k]SQF5aPnhv1.08K׍7N>Q&7 pLNȂEH>kƉ7EsHl5oVT^QƝJ$aPS=ɗ`T@{^}HtY46y׵&zGZˆXI9`XPX `Eյh8(_ؘa#/bA%8Hi_^g- I^'D /B؟T18=rx׎-`X 6(ә;,E^zMX#Qb9:bFZEڨwW:|*nH+{4Y#}cC7PiPinc{~J:C6YQViB'OD F>F:v%U7_ B^њ ٪ IIKq05asI)3 wy tcY:H5հ MTmE;j)y4DG|3{;G55Yi|4&&Ʉijڄ 5+9.6*X:v: 붧KNZvk3)SN萸T4;TV(5P FL:#;jʏh+[Q`658fzՙi{B+7"\ˮ[v:@ 4iS28z:]5Qlf[nX_rk6 {0Tծzc1ʮЮ:le(';ZQO26cƫGIis5҆%n\ȍYMu*쵮Gfƴ5v;uuwdLjOdӟs2!/:'Cp,2?O?Q[P CԠ[:51FH[ӛr96S R(WFj5pugQTp>y0d˸I|?Ϳ(zXq0pwIgwF&esM6?S58;eeQ-LϷDpCnh@?|s?ZvvΘ;ȫym;լJ~ 稺u޿XC!ZU155T?8a3יЛ1s[ݼ d9ΌF͸LE-(Wgh(d ˀ¯+|ǀk]CE0=a:no;aԋٛVFEL= [ ֔pfw3hLn' кO|fcVfA+gF;ioTTi&=`5D|c ]jn`xɴGxS ?cpdN檾,ϺpOFꍌoqg+6Q]FLF= X*N[DPz-P8֎g'GFofԁYeoO" 0'j-t1xQ3M˺w[LxOhL`۴a Crmkl/M+p|mX$-/ CnT^8DLsnE/_nzETLtQ\퐁/yi-iɛz٣MdOlw]L}˽L%y)ItMIiwIEc4znX,yrdB/c~#:&g Xjr8we|2e%۝^}\X>{s'_M+SgzQ2#'] oۃڽSFp:SцR2)P*TG hKSoi>pSVu;*Fs FW:VU@VavL~Uͫ@J԰F Rvkg~ X֟Vm*3)S^'_Ƃbyђuh[Z\s\ًvV+OWԦEZX}eSR4w6=h]Wl*GǺTJD&2$NԦ,kK;%mh_a~&n_yOX?0!` /}]v@ yvqϝ*IW]iM*pK8=j XdH["W"Rr`a%r"-yx2pf*[Yǽ?E 'KM*!;Xϒg[f Hu,lb1\ж~rw7eV5ts|f"KoWS8`AV5ok]j-_<C><-it4!}<;σ~mylb!L=,YL׫>PsҞ={?>o 1|}Xd#D(<cd>GD7?1~d6<_Y>OMuqi!`*2`:B`*H%A>uNr` ?a`aK` ` ` `Pa aTa*2a~A;papaninsquest_scr2.gif000066400000000000000000000176751263163240400413300ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aN^f1J̬^؄, 5ts '7GUn/s)ꢙ2Bkkkz!!)uLJ!!,"dihlp,Emx|pH Z,vl:ШtJZجv{M  la{yЦo2\jors^drk|wgivsdjuqxzhq^ 5ugr  g  g m g  mϹȃqV0@Iث` C0pUe^,K&`d~$GI{ p#GY9r ̿희/ {FSӦDJ%} ɰT `jR1 &?A0N@:EWofG Df.}\s3]q?Fʴke&|+hҚ3tu]®pGU&JD5q&&_ݗ.1|.y-WsVJ5TEU;{㑕Ǿpe9e(+ *7Ie2^>&eYkM_@6gXRBƔT1I=Y~6 B:qRvNq"w~՞'GbZT#}8r56q9u;57X45cM'a.xvl8sz6ۼjME[ yvů8mU#<-gdlzMq5z/Z͇kg[&iLS wo&/ K+Ckv{xh#Lo-lJհ whO;ZhNn)EPoTr_~iBs.oyD-ѩS{.2 p-\ɬk\Wߕzx/l\7lB]ߤϨ ӹϸc9?Һu¾v9uou>d] gy%fcɋIc{~x]?_Ѓ td$ɯneF'k7po_Ȧ?~d,Q_П<~:5sn9z󟍮}#π~ ?5͖':EZ_g;9a^:mi_ԥx j EeUYJրYwUmU&lwWSĦm۴w%w*&x*,(a֖m7DR sTn:s<9̳oXVB#2wt霝9A;}8؉7i7'DEÙ-)e)7i FEzɷd 3@×dBVDo.zzYEu֢wu[3@wpWhp]$*ՠұMIy| :TY43:F62:9AKGJ i#jcV9c99939#>T931DfC|J8xq%PdCc@si}1z9Z7J9j :>)A:TsCٟ[Ez,txB8ɜ:㬵F5SEsFKƮ:FFXEU5hEc0$T8F)w{.{0Ge37Ai:f5ǰ#xJHh}N|H}^C7$di}#ّyJi@KdARh7PVڔشTMהMd}fvi)p@ Tir9GOp6XMJ8j ƀXcp>+v6)$}SR"58;?f`'ޙ:#Zy5"v('ZqFQGf{^S ït ~$ALWJ#A4g۲1 \x~G~LM>P;O=ȲNGp˖J,t?tϧٙ~: k^CBm$nCyͩlǿ́zISMXPTνWS)úGj|hS k僯+|Njp5|c5hLX0!wo+tjv P&}lؽ\e 翬 ;pg6&|85@&}/-LkTP ,TӌI[bG'ML !fX AY= @n#?}'-ST, CEkwA<pM\F-Pn >=PM[JWE g2189 vO$ꪮH-ù^V~X&K"Rlˢ3qy-^ @s^`~t}6m>ė=Zj6dL8&ܠJ\fc촣íf Vn 'أ9+,ɽ,d|bS ?g" CDN.EݾVtfn 0>_M4X | WN<5O 2\]=I#6;ьw&jX_D\~wI$>ᷖ t  65B]3{'IpLO)8z3oӵ ںmjnw8?МdOJѩϽ6Mm-y5;Gɏ]-f8̏INWT2ݵˏP6P)9:R.49ǸL/5<aezB)j :8F#Εv}çpd̅v#CG{h ( q40PŨ"rx \0"tn)pT6MVmmBξ"ީ)Y4b{*0q9#2wso|RaxV(aiB!^"aN= a|Yt٨bxc2#Zc?I$cg1bc#jqY^ie\e`HfrP2ŀh qΩeWYbo [P)G|2ڨBHϚŅ(q)ren j%>s/&(v٪q欤RAT晴r&dF_RˢGQZd4d޸Nyn撛Ko kvq 4 h(k'ppp&pxGlZ4l1 |qoLG|DP2>0]3\7㜳;ܳ?3)m-0CSS]Wc[sݵva4(;%DL;kCls]ur=7g1Htt4@{3޸Cy h+.w.ܡݹڦn駗o8.M㞻޻_#+BS_cs=$+3=%߾_M7~  hvcT ? C(S50iT\< S ѧ 0 c6!:Xd-#.:c! S(A"8E p}V DGPB!xЋJt"?9PEP|c(>#| (I?;RwT =*R}$Y8JD2},tx6I/$.R,bIP@E_Ҙc%02%25F^nRAJϛ|a8IJpϑ >k&2 J),&@C9@t}lfiJL=Sb30 IF9QtT$Do H)&s8[5Qdpz; @<::9G4S5=R:իnc=Z:׻^ub;nwfD;!;papaninsquest_scr3.gif000066400000000000000000000223631263163240400413170ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aH!baۅ)Fsa/1n HUm'7/s)1ZDow!!)ΝYsZkJ{۰!, dihlp,Emx|pH N&vl:ШtJZجv{= K{_?F ~{wOu, aßG?B&'?Qr :ݯ* @-pC@79,os`:x}g AX8 WXDϊ26nvkB @9XޕB[S2+$n{5TB0tAme҂h@"΢V !nyb'`R'%:ٹ{$F IϔuDN4/?6Ϗl$ EUvs%XGf@@jVC\2aJ_4'0ѵDtIu~j6OF uˆ.`NΞT] Nv Ң2( iqiEJ}>$vCS)wWo8Lk:Ә35K!$Kk AYV]G<)HR[&(ղZXaxL}8rbٙЮf&T.՘j yv{W軰yH u(;,*XTвVX&‡k]`; 5fe@j<)Mvt]Q+XnlúQU+vs*USZ{ΰeb^P;o_^o\y/p`;vՉ8#{8E]"/ 3lIJwⰄ oX/r㚍Jmㅣ[ϒS .g\Pژ屌LXl=c!52cNS#U<$ɦ s#+a27F3j2\Q 6Ja9ayOπ#⚖?lW 4kxv3IKrM%人pϥFUUwղuSY:Z=rcё7o.31:la+&_{ b7ƶ8Ikvdv7[9Ol176ynW^02:^ڹn+}[ہe@VUEowê+BC ;){M.ъWB-GX߅21U\nΡ+]J.'>ۥtdQ.t[8]Wv}7wS {zXt}r ObWmďp=v#=q=񓥌c-CyLgoLFa󥧱zћ~?+k0/|לʃ{w=[ң)݋kJhRFڛFX;O[.h+w!;ԲTP&V~GvgkVkHkbI K+k"; x˶~9Tsslҗl>m&W{TT&F:nsgmp6+6mRVotW]Մb'pL8%Q,e wWq^X7gEeO%o^t4rf}pCb$0_Pp2ZsutLW[%FA`;&~!\5e?t; ArQE^0e^4vvvaDV0=Ex`w}#fم/JޓuUD'yryx(B6aȍXx9:y:\FmCj(Ez-z'{|{]3@Aso'!7FL֎GH88dy9_8cgy\{c}i|5({)$%I?N$xk,%P|6;,̓@Jʵy@~T7(9~gP'Omm(Jq wjLSjLOfI8IPk)vpɀf3YE֕peTM$9kY~4yY(m&|l OuveQ#SDcIcfyI:#"0 e tpVnfiↃU@})NPt6Y5\Pvw ,P05ŕpvN)pIyɚI<@񙘨欄Xtu(*P8[NqK"GY`>*YI YIFB M.S;O@>9Y8$1R}Hs8ө90z9:UGpVȈx;؈@'ڈP=:4s(3]v\IW`Wj9jɡuCNvaQkv8sO=3;^G'ic*p: Z_^Em;%RushswYH j:8) Z8``Pf𳧿`zuDgifxjYblJ z8`bVx8k5d:: @w\jXZȭ0Fx ѓ'ZpSZWP9C+FʖZJ|zbdX ki~lEXx Fs#%KS z_RCo)98{i0up*6@+NKsHHH~GIgZXϳgY=9F-yJȒv:4mKaLdiaj8 [C:iKĭn+?MK|I!]٥gja7'o?[]s0 j'דxK`8. kXjiۃ} c sm=w`/fm&c:|:꛼뻛P kˑCHvT@CMGET㩻I(u [)ɋl5 [Uh @sJU≕9JUk+colc5ͻ fx R5@m멭rm<6<, JX"f:g|=iPI04w ФK  OQLM`ꡎꝮG뤾.j LҴ$pM&y>vx_Nf)eIeiyzTuzM3;^WAyւFjj>RlnNnNB^=&[?=![nm׌@9L꽎"5($E?Y#>qA[7 pߊC8$,:65OՂK8@TABYǎ- =]OI 'CҜC!<DA?% l{j<*Jiф j?9so]dhk?a-fVĴ;-K{˝d!G =0tP'NghLnO/FobB֩yYt.$D/MM;mLPU?uzNݫoGQZH48$[NJq; Ht(A T6#>(id6O,B{eF1rpj.9U1"R(M)Li !HꘞJHƖβ¢&T0>7CVLPP,DXRj[~tH J *Ɵ޷6^0Ci0A(q"D2@ya pp Pwެr@DR>[L I`PT@xC 28DLJڰQ& *22h-|VWV[w 6lw;K5L#*lRԪV <0Aŋљ CmvTM͓_NpB,43KŊɋIS648KVI&]e KM4L<1q4X:b(!nM8& 0t_~M)uitBG ȃ6cW!D*Db[8bRlLXTR>}Y!qΘM y٣ǝt:LW@ VN9 H@`A8^bcieO h& iIҡ*݋ p$cѲ^K3+=ֺ&H~_884ƨ4( rۓ2FηےhkP ` &]8|KQkUBPZ<21L&6 dgvVIgH<<.9EylsWQk) A8[0|"#<hLm`t2vk,v/,0p10r7/sKC5b6?Hv͈??O>w;cP@S9Coj87LdI2cSJ$::)1z?xWuZr9:o}IJ<xO>cXz -2Z;FLզt6bA*oS42 %&9h&8YtP. h=l0L^9)B0? lZP `!]DGJT%naҐ Rh, y(J=!EőԘ$&%o)0J% kˊ -5a!LH Ĉ4`'" @D0c\" Łꢎآx&@`yxYq`;#J2$8|1rFT 8@p8qS|RMT)4Ns,Y:1 f$ 8 @GC:Ғ4+mKc:ӚVuZHtF:ժ^5[W:ֲ5k=E`IAGHmE;ftM0c#;^6lɆ*)X-o;7˝mmcۛQD}lw;N`{1Pvn[+q'S #< _8C<8۽ F;<"9Kn<*O2..[ ` jn<:9{=Bz9"j#3 9Gwt7OzϥѨ73gB]\:;7?zЗw;%/,`+@oo{5vӧw{o[us޷ouS^ဉG]j__>GOK_ _` ]= ur`]I`I5 `Y I UVmZ Y>]!"ʞQ Ⱥ_ z1ᥕ R6!6GU)`]iᙠ!C|"(N)B"a+a,_Am[v]_LN)b)#(#U! b+ڞ4B6]N%u`15c9#C"+r9F`;Z$y%3^#?$`֝mb3RIL KBߙ%!Z.B]0 H&c(N^:b.߅Kb#Qb7n]'cI$2%Uud %)x(Y@]RS6%6n6"Z"&a'^ ZN_%JҞ5Zf4ZXZ[.6Vp>IXJNna*T545TC"9dFeR j*YX/V^8v$ ^h L7Zh"i Q&Y fQQ b@bodqaJ*)bjniz6z&_`e Jurig6`'cu§G!ơ'ס&AB_ނ(=ڟJ&'Af߆v(3"gUtd>抲hhhh5X^uci iZ`Zi )9iEiMZi] "ȶXi阒i院&ښ.jڡڌ ڜ"cҩViZ*Z5j 0jBjyZvfڒ^)"VZpꪲjjꬲ*N@لќj'\R"k+έ' 4kJRkZbkjrkz5ܷk빢kvk(kʫ ;papaninsquest_splash.jpg000066400000000000000000000075631263163240400417570ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDuckyAdobed##""'"!!"''.030.'>>AA>>AAAAAAAAAAAAAAA!!1!!$!!1>-''''->8;333;8AA>>AAAAAAAAAAAAAAAAAvd"!1AQa"2qRB#brCт3S$!1AQ"aq2RBb3#CS ?iR2zQaV<אk=ԊsG}%^Er,,l(AK^;ƋxE]ָ]>>v5J;-]vFYӞ[n 2~oҔ#m^4@Z=gfiЦG%KVr FEmXk]/{qPf^vK=;mύ[ce$nOW6Gl}8 ' h<( /wR#֓N4 ƱRƙ@d`MhYpP9 YWL/`sֹrw1+ɊT^f@acj/ =y5{ܰS؟w[}${=S*=g'Z~sU=ѕSeQddHHΚG é7M:2 dU[ܛq@V}s{3EUShEyFV $)SA**f*<Y\ž:j)OzApp4 \Z~u}bS-U?CTNÕ$ddA‡zMb:ȭ;ăӸ`@.!y$;uu: VyPeʱ 0ZU"+`am<3۳`,˓vt@UĂO+Sp^YĚ^wDQFv hL&]͍$-7֌l*d2F$Ղ/3{iвWQ޼e U-ܸWP!:#Lvau}ٹ} ԧ6\FtӟRLחdbGO^T1{gs*d+CcUoC wpYأ7,NW&pR\֚d 6fACk;R?0*p u4!Օ9tbʈ H0iB ů;M,d|bU?e[$EJ(֬/nPϷQr*]<ƵYZ/JYl.Fָn'r)u`4<h6ms1vSOkr~4Fzù^i6( B4ݵ&V< XΣ*1h5~"cLθ$},IUVLQ2̸q#SK#\[vQѵv3ʻՏ9%򅓘[.Xt‰L4f[]nq#Ik-}~W~Y[U {sxQN`>>ȽWcc_gC#`oݶwD΃>rY{~ND4o֫jEWv[p[^I,Pն|M=G i;-zV$MLtW*nO-xU$Fw6>r2koΐwtʊ46kCەt3l 7k.VƉR vP,otrC*ʷRȁݵηW17Z,~ߺHL`vf.D#s2;;/L!besN]PTHU<;ƆN=A bxEg vb B{5PeuW}OOTjO<蘅 Т Vr,yUirF}ڐTr5G[Uc[[Z֖,'[vQѽE;Kʠf7zfkeAqi6@?^uh( #.SWcz3f`r6s86*=Wxgdu {{|\wpp].4!Dqiu!dmNFË'MrAړhwU* \rvSHX mHm_bDwnblS| Guf`Q3Q:,|v@> w.f6q*XΟ6Z!+'ӷף'dU%lÍ~e o*w}UJ"{J.’ܼkKb<9/JFamxXQRφ֞6`~IW\>Rr q #uoaҲ7( QόT`MҮN96G&ݩFޥE%QD8{`,{MU;ݺDb X5vEH %mNq2+ʮ xoPBs8T\qhr+mn4J46kTł]6x `Bo{Wú XZMU(=?Q`x0xMl5QdZ4;y8)wTe!bvڛ^ȡT%mc@7.ہ}aҨ@ma4ne씃 Cƺ3%;Yzc&<;\_&y ae6cFAY{sM-eJߣDžsQl+q$xǷwnwb/dYWAt@ѸZR_NG<镟s3_Lm< 6ޗSpo3u\^J-2"7oþmOuбOK/Rgx^ٺ{'|0DsvSo:+Vס{¼Q3YƼj2#`p#ܛ}uHaczz[ӏwQ{ԩU?Օ[c29MǷ*8Q:~U*W6CUS3j*T+ravenscheese_scr1.gif000066400000000000000000000150261263163240400410730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aRZZJscJkk)k{R!!1R!RZ!!)kkJk:Zk11J!JBcRRcc)c!s:Z!Z:RZJ!Z!Rs11BBkBΜ1111k:Zc{{J!1!c1JB{1ŜRcZ)ZBscR{Z1J!cs:s1{ZJ)Rc1k1Z!ΜcRBc)ks:sB1ccccc1111!1B!:B1cBcJs{1:BΜ11111c1c111ccc!,% #  "ʱ" #1 ړ ѫ "ĜΚjơ*VJ87H hY}(SDLjΛHAUf# #tY)}0Ҭ9%#RQK| Ey f))A E-H\5`!,qزmaD mK`E†x$cEl2Ɋ'ň3N;E剘3_CgjI[t՗']άzȐsV I2ZۤRajު0S~G~wʛc΂3ժZ4}rʿC_=p c^Yj-ZfHs%Xw!K>2$ 9_F4`/ @P!"t 9pzs& ! +2 &p 2VJh' k&{SJ 'aVk.KL; FؖkFiyt;\ B¼kコvs^uXXP@`' 7G,RW|5v;$l IL824!QpH'p tFDAN_|Xg=0A9W8ST E 4lp-tmôt(bQcMȜ w'+y71t6Bww!5wzƌA[C."DnI4N0TL_^ny\~f1DC@ S_w/ogicיG1P2IU !d4 "kA@j"=~ OTz P`9=Y/La“ݨؠDV)q"8@ H"Q:"](X: !2$ "@%z(D 1e|@fU p%+Dcؐ18#! zch 2 `LACADKMtGr(.pI%r>a|>P#/U+%YD pN@ i"r ft"U1*vZWj1!4s9`gd(0R2CC0 `D $ K@ri ()}^SMBQ9 a0q["0zJ (^){Ԟ& OxB3,`Lg䨦i=0! CF=aivT IjRCRZ%2N.'`M0KwKb!M \@T 0@!j@QTZ3`z 5 kX*jzƐҲqԭtͬI1| (YP`@Ќ`Wj:N"(%1*^B>QJs% ګH ],@QL#S!v $ 곭nMi5C 6ת*RI]?1%o"@N+ p'L [8 (Pxg-@\M4Lk=q4 W`,817nQ\&X1 M :g˷L#D^6[_BGH%5 WTL^n xF*3b#-Do^@&0-ai/܃쵱 ɹTEB86ӤdNҔ#|3ޔ+|$Wڞp息)֚TiaK^5v`ז:Fm ^,c@j@Go7c:7&(VHZMR/ Noh ǀH (omh.L?eg uS!+ دՄBM _M~{'h{P;SnJ2odkkI;@q0hvAf_\p:lP?鑅pc> K TxѵR4SE{5i>:qRJ\?e h0)M+;Ѭ[|zzA`!ܧ}[DXdP+8bJ.R1512N/jbGWaHndƆsjtIDNO47@rtZ(Y7 Ї~8i.Rpif7 (A҈)W!cqsh\RV$H&؉IwgvlP_gO" I >R hO`e'qX̧Tهs)q{S{"hO< u fhe@%Ww[}qdOp ( @R*M`7`]MmKXifƗ`[JUF|,1`s=3&#y3`Vy'6W`rbǐy{IF&hd;AXqLЋ70Ok[O_)Vw~x;YAJO As5P!BQ@~8T*Tnm ua7oxSug_yaO!'֘Es"ٖ!8 $X]@w9o(MwWǍ LBB ) qRؖX)t $YF0MgPj&ō WJƅXL8i<)$s[>Inu1 @O~6g$)-2}k\)!;% ,*!Yp585z9_R A9e`դP%8MYW!qO.dA"&'q!<ѐP&c~ԣA:C\m:ᨉNYJWWW#aX_&0*diV@Іԗ] RAH:|a"FKsTszxjAMRզA؜'j_0W2zX\*NGsIȪ|$2 R52:5A*xjuZʙJz0VMJ:W^IGW|pX28bXzS;d<3D@%+kG JusJ^iHLʱڕ'"H*8R<;d9}r`@UJ+R{ ;*:U;RI֔}m*RkKi n  乲ꯂ}з[e+[%UZKLG90Cn;A*c(L[e!2G_Kj'fK]A Hj˾jUVjșϋ\k kIs+ƽȘ'c[n-C;~3*'0[;sX˽Y%z,q9X|!+IJԡǻ{#Z†/2Q-3|AW|KTx uG̞y{As ŏ$ULWsɏ| mܦ?|8ܯGv/ O"X! e Je<ȃ;'z\M~W`(@e_2b<߸;+R[M"6MxG ?[Vh%+k*vg +՛(Ӄ[eW uysbj5򄤳R-Cxd;k~ԦJ$ʵ'ϋ}Jɛ̘AǞI9!\-|P$X\{ש 0 c(yԫ/C-G M]P:k |׽ʹxۑs^t~wsxr0 ]WӻN>/_7eɮ:'tn~雎~x0`PQ^c "$ɋB Nꡞ^>ϼ*~N.>hO9z ? }>  _আk䶣p6o)*_#"/BB@;P7?+?ܾ:oeJBQ@Vm֛L9O>!)bV|B՗ةw^  e[.x}瑒OhAݘ% a^zw)Rz@Fke/:>t3 >&ő5Ov{d d ['=>ay 4 ȏ;d*b%" #"   %"  #9"%%ۻ䌈煿"# "#""9V8nK"t#ZTP{10"'CHBsAlҝK0[4f^HB7O"$%á *ϢzhrB:\0VREZ5V2nEy)G&ʵZjPQ |(hs%t\Bugk drT \X;NOÅA.xF7w<9wμ'7` g8b+;+iCOb53QN]:G DōO||w9Bw=wm7ȁ z Y h`qrT"G8\/v k^h؝ J eHre@V%]}\MM_&c-2ؠk\>ck=IF)gT\N:[8wdViv3mi񩓜щ sn‰)X#%Ui!ʽ;KQJ)PNzr'ZΪZ)LѪQꈬ-Z+1%+mʂ2T*QBSb)MZ.;ravenscheese_scr2.gif000066400000000000000000000151221263163240400410710ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aRZZJsJk)kc{R!!k1R!RZ!!)kkJk:Zk11J!JRcBcRc)c!s:Z!Z:RZZ!J!Rs11BBkBΜ1111:kZ{1{J!c1!ΌJcB{1RŜRcZ)ZBsc{Z1J!s:scJ)R1{Zc1k1Z!1ΜcRBc:sB)ks1ccc1B!11!1cBc:BJs{cc11:BΜ11111c1c11c1!,% #  "ʱ" # 0ړ ѫ "ĜΚ j֡*VJ87H hY}(KDLjΛHAUf# #tY)0Ҭ9%#J1AK| Ey f))A EG.H\5`3!,uزuq mK@E†x$En2 Ɋ'ň3N;E剘3_CgjI[t՗']άZsV I2ZۤRajު0S~G~wʛc΂3ժZ4}rʿC_=p c^Yj-ZfHs%Xw!K>2$J9_F4`/ @P!"tJ:pzs& ! +2 &p 2VJhL;8MA! w/A' 4a;1t0x7~;`3NP;ڛ ?o`%`c;)C]vz) ^cs \P GH(L C FC?u` L0@ T Dь@P\7G>!ZъECIZƹ >L"HDN.c[GJ2'Ȑ/7!IJ<$%JJ(Ԁ$D}8qL4>T$T  $ef%\-4/=D`@7!\) ?CԼT 8O~R,yH @68&?yt!‹T1 ;f=Ad2V Ŕ) tzEu|J oKR*=ӞZ !'@Ԣ Q:PErpJ0 -n ) 2E{VZ *jQmZѷ@xU3篓o( b`.:Vp3mFCX*u A\YD~ez" ;4Q-%(E3`Xld3|uGUe1џ5ed0( FKbCZJf$Vl@lP֊"ਦd lpVԢɍ/ Z^8,I|-xkAUAzpj,X|;k"@5FFEb }샂l<Ⱦ7,  "{Z9`E՛:Yί2h(z='l%Adm ?Xŝm`k浊C&Z튍|tj ,96MrRLʘ^j8sV ,Vܩ BwLَ,ũ^T? rmvM({s)d/A)L33S>ܶ@bS^c `2P3\yEIfL& &e lW0,2\/~ j@1pA%.)K \ڝbSȢ][B-gjAGQS@N޳Sعkb+OΞm^~OH pnsxXB ZF}.S/b]۵b1ȵu|(8 [ՋYs.w3Ƥ U_J~\)UuS6b?T@~VQ%RU[sN 9AhR3`uq1S1]'*ͷik SbS^Gx`S3a bRm[bG[^Bh}i&kց+k ftYޖO%@ D`ma!pen{A(8m$SLjY9y ;U|}]' CXH(Vq6|gPhӣ|rŁF8`~>ThN.Rш;0%}[aPDi wGoJDR4txEqu&ٶnO`[|vÐJR$Xr071acnj cpSEb"ֈ I Y8C[Ld$f_(hxuĸYwoutS{VmOQ@^Sf5`Xc@$%f[6`Xׁ0u Sp ( S$EkgRe"i$8P^O`^rmYk d(`J]|PԄ3A;4lI(PU`}GVmDeuvu'fQPNK& md 8@:$lS?k&>BVdXXaTIp 8qzwmSXq)'I)E[ e8b}yz:ЗYV<"I?|"mUzD ɖBqFAK:5}Ȃ  tc $! Y>:I1BPfJ)F@sT ol%FY\&ȟyP^ٟ@c*$s_dz JK0h9:Q0kAJ,22'h?ȅ)ʟVSÀd>>!;9 B#.`AJ  bȈQIh@G$L*Vy2" `*e>PLdzizF~Q&BzH ienyS\:eo ?0>ԀV7h%|a"mOJY꩟ʒWQũ^耺%kz#K.+v+A:y+*f`c۵2rZLa0r; Qڽ抮Ƹ;@;;O[LuOUaA Z@AMqn ʾv 8ƫ~gO;zB)2S\[#r̼'{w~[ˆzR-ձQmñ G*T=̊녀+kĻjoI$L614ԱK.U<Z\,RƬ%B@7\$;(t\Mp{xu{L<s*Cɛ沋쮉,r@b<;[Z3'[ qB%s8ljı+̱Hm&v&hZ`8˩<{)L؋x뇘[,@{%͌<^g ݌ οF ̜΀ Ĥ+l,hVx0T|Шٯܮ $ܼp]L Fq.>m3М(|z Yܼ2т|;zE|$+ Jx{xÙK8V SV !Z^һTܺ6,O}&*twX)m3L˄5v !5G&i腉u<d|ͼHЊq'³Y3,l):J١[L<_r ad,/@mg} 1`]<4*S:Tۘ`aB} pڽvu][]-ŋcuyq ^^MKm 1w n .p^Wp;P4p87<:4A>4PH>Hڭ5~Nv;?ܜ˫ U okn@6D~jl昙og>MsH~4X.=1#`4^y.>kvNg~5N~/u3$aM>D陞@N븎>>+L`md "$31 ^מٮڮ,*.鿮j@qEUl^nU%o&m 3T1u//N.`rh]JbJ -@>SBچ @]=O[??ݞp3ȋU؃`jk?ET_([|2h$XO?n&..쉖;-NY_'o))q6$B% 5OGo/!Uah˻omFoO.ɽKht|mgįW?ڿ8jhv5;o/\o"    %" " Ӹҳ#Ý %ϱֱ#6MҠC(Q“ƻ"{w D!B6JСACu`(qa͉VUjgOsXRAF8 c3NXaݘu*+}D:4P' Lێ[>C;U j9%PU izx|^# }l}9[LRAMi7wYPhٝ}}AEٜ}2$jĨ!JcX1Ƒ#ue /~yM4E"&d1;hHtpڀ1 a`pD > Q3w~yי{F7_}(0u]ahÂ'1XPې&ǔ{)җSפnGvւh("Lf aRt7W^\Y&`p[=uM!B'Oӑw?"(hxv腃2)n[|>.ՙ<3 tɈ&Vc3a]<7j""w 'vp+bWryI*|U,NkEEE! .5vuZd?U! vTZ;oFIUW7Uz;Q!\͹0( ;ravenscheese_scr3.gif000066400000000000000000000145631263163240400411020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aRZZJsckk)kJ{R!!R!RZ!!cJk)kk:Zk11BcJ!J1RRc)c!s:Z!Z:RZRsJ!Z!11Μ1BBkBZk1{{J!c1:J!cŜRcZ)ZR111{Z11{Zs:sBscc1kJ!J)R1Z!Μcc:sBRBc11!B{1c1B!)ks11:B1Bccc11:B111Js{c11c111!, & $  ! ʱ! $  - ړ ѫ !ĜΚjơ*VL47H hY} &S`DLjΛHAUf# #tYI)}0Ҭ9٥$RQF| sy f))A E+J\5`3!,qز]1 mK AE†x$cCfd2 Ɋ'ň3N;yE剘3_PCgjI[t՗']άZsV I2ZۤRajު0S~G~wʛc3ժZ4}rʿC_=p c^Yj-ZfHs%Xw!KB_/$ 9_F4`/ PBP!"t 5pzsY& a +2 &p 2VJh` nGY[MF 9 MQ<$pA@r z^ 0HgwK? ̈"*0UPH*FqBV,.PB-#%uQD dJЗDDY P:B#$DC`20W(D)"9Z)Z Yϱ.@ZN($тH)z"  2eX"3TK ia#QPT I"e, HDQQ@ƹ *У 2YePD=ǚ*ͺX. @QR SM(2eR`D'u>褨F7Q*G|TjiL&! ( (@`38E(ʉFTܩ |JԢ439:| LROP`/ee0=ӮWEUԨhhL@i CrRXH38fv5 L:Q\JY^*Q:WJh%$;tBȥ5jq DD  8+` Eq. Xժ($ pt42U`ަD/hg%:؇ U4׹]խ T4Np׻h.Zz% "v*n}= @sl9dŬGL,O<(iJfmC5LV"y5ցun`HH4b O TsP:׿^.GNsmpaqX2ILܲebz9afn}Ѽb%ˀ5 |se7RMYi!e>>p;3;fMb}Vvj<JHH-/,be.|'Aimb k919f N+S^Rc|&`O}Ӷ 4g`s`5w7c:71(Vz ajX^2KӅNZ Bwphn vǐ5g)tst0t0 7,)L=rS흐fsU4Mӓ+;dۤv,mtd=XS@j|.7U~tَP3E_`:-Y}p@BR!~)ji }ctVڽ m(Dp֝ ,W \9yĨVE(SKyjBI_:=  b5(a>6?>?7]qr9fVVL%@ @jal{ig~aS2{d6u b6Rxf{Z7؂g2gW2d(S7''*Sg5FS-"q<jM_GGx evvkH@Ob4&ArƅXgs˔kg7 (Ar)W!cQmo1ʇm0Vp43Q^/Xe lUwv;rćdS{jOA;Z}6W(X\!}rP$p ( $AkgNtan"Ga\\G"|D0Љ3=3RYZ,N %N F{G&uA&0ቲS?B] wSWT}$Fp 8! jjPXQ)WUnfEGxXeh ߁P'&+5#"(,]'qI|f{08Ng0xt`͖t )!@MCB ) qdjX?kPakYiNkmW{Y[0Ďy$b4%dg```P~D6aGq~5DVet]VPhNR)!M% )!Vp 5 (Gz5`? A9څ94EAINf{lC%I*Sy2 )e9iN0~Qڕٞ8?)kYWw#Y&0*V<w9@SJw|a"L VpQ JG,H8u7%՟#K1<fN8Z|L=J4t頑Ėd G:hf4a`\'PL#kW<7r4,Vzqpjm쩞*iچiJ/hyU:J4^"!s^Ĩ. ZS3wEիrd9wIS|Y/8YS(e@1@@%+l&uʩlkE:nއɞE;ŭzRqG' Ztꊛگ::pҺJtNmJY9ۯ` (&\ \JyCt_p*qDQ/9i:AkfVLt*jT!aڶqZd$ޠ ]٦!9ɮ&k J4ǤrgcEڶ[:zB)A5OkfIȸj˶k$˱Zgjnʪ'bQ6=GJpjl{+ۯӪ{˹d風CK:O麯 ڱJ׸J˯q۹`B'WkAsо $̫ot[z[LlkfnZ jN0'][ lfk\otK",ZX<c'SFx 7R:۳S [4  &4 ,7>Hq!РŃy)Êƀ*DZƜt+mǔLMǘKڻtF}qAr41[.yUPXpi|˓/" R"`f<"Į]'iհÙiZI ͷ/4@|`|Orv p0:\pۨI0 .ZR2^ O vw^rhy˷\U<2}-3ꌞc&i %392! !yұV7}l"6ԓMȣ;C!͞: (EPR3Y7 ׯ@eŀ)kln}]24,PAr" 0~d`'dֈ2 όLr ѓM̜yy <ׄ9-`% ¹|=4-K?0γMٕ/' 牸-ְ5 aq ==.0]=0߶,}߷|=0=.~٭c |}3^".0!=,&4+l -=0q2$ڹM9M&^2>%P.-2R~M0.8Rޥi "$"éR.3N^sv^|{y 2^ߥ)F 8n\ɼ~t-NsN}P|.}R~˾˵P~>N]xuW[ɚSN緮^N3^d>RȎ~M.>noM8Fa?G >Nﮞ~B2|} ;B~fX*&e =.)Bi'\[}d".!Kx4X Kh64 /%= %skF-6YK! hd5F_]Ma_MsE |j?d.1^~HoygZ)3O?;4N\-z>˕N/O @l\ dLW|MT&P#/A2 xU^g`73x_/I'H!^yK5 &&!$!!$! ŤΔGչåƑئܥD,LG‘3(<]#)dݺvpđD/R… &zqa#()2{dL1e0nPDDʱ5o\8IVU%D#>2CaFŵ0v W'לZ2`lُ)Tob#߲}ttwnZ(bn9,&!‘8pZt)Z5DNr1gr7oގ,,lYS@MD~Y뾶?$St~55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d" !1A"Qaq2BR#br3 !1AQa"2Rq#B ?kl@!]3 ;c8An7"H\{%bk5=ޓ<4bTd $;P2>Ңڇ(fuOx~(?A.K~zJDapwj }F=+&`d)*;4Sٗb۱q7s^<7"=$EK84A@$48 7}[#hX,5A{n'\dҽa؂[H v26>x|dSEuc'!s ">bȅl4HY6,XSOrASA[Fm[GPEc+YyrIֺ,&}QG`M#Dͳu[v>?ދ]mgor|{UgJcLA!e2kQ)%'-QD,V CJ_ r5 }!rUXۋ$AeY)bŔb9) "聺.E][缹Rɔ$ 2r Ÿvy@0OZ}i@#(ЎyqȉTtE; GxmlrB*5[:X ڢ-"/K#::_ ,eUN Wi|؟ JIM;i2;{ 6'ZͶBadtɳ5HHc7fc,f zf" (Km)c ̞Zcnp!-4aCөne[J`|g"u;N~D$zpYVP\X%pCYs2-+m+4qiLv@2]B6[*31\\ųu2;yNx,7[/Y[Ev:[(OւY$^7.z%pԙ…aX&>!L@\1e٣KB8d8Ү 1[ ċ`Wnc!^0I/geF#uGOY:ecO/k(|"G8V@injm﮸Ǩ;N{vW8sւe-Uʫ#_PwLo5[TDbwp(Gp/|1Z:tJ Pnb{OJ|:[}#" N N iXm!٧ 馫/4.kcHMX#&m\YEn>ڢEZ$~)uvEo1,{9}u.ChƂp6RuI?iF҈qmb}9r}(*&2L '$w|3k:rJll"22Ov?AȞ&g@k/4FddwyW,\#d̫-[}-{Mum=g[zZϬ>K" S^t\T,h s/3`uK,S* \隷 vYߊD D*)9<+EAnoUR&qle=}:sNkHN7JMoS𽪖@$ [lӠ><*M+ij{}Erڀ;ێ- @0`;ufZ+2Q/L7?uAY˯颱j t=ݓc8W)}RIo,eo&*Gk{ \^QS2 'W(F2ȰŤ9ppmȰ. :4X6~vQmEZ_searoad_scr1.gif000066400000000000000000000140011263163240400400260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  *"38 9$$(:A'N0b E+.L8:dfU@ b@bib}9GJWMOm\`_\as`__c[qijv%.7);DG UGPMDZY gjsubkzs1I2V2nX m }ZZLY]cQq`^egjkjrmsrkrmuwvxrxZ~}7111dt(v=tVVJcgVLq)QHmx")2AyKq2]pH (6ޘ㎖TĠ4'!Y^XQ&GmL_WrX[l d3 6mB3u6e&K&9u(V>+CBЀ 0&Lw:ىwlV4`/<„) bǶhK.A$l%1֓![kbYqUgT_ƭ0UXHG*Nю]cB~ OF@f1^C]{@&IA}|$O1㙾@)JrzlԷ0XғAh Py̵̢)xZ/xΊ,"-)젠b*;am{_&zjI&;CUy"9k7,юShBt:A b߫hFG~S"yWvO!`Q&J['1ҥOPG51*!WxI6IgJgTs=h4 Uf Sꪮs+G&9`ɽPg)긘3 dMYe; b yƛO|GؒLy&:ƕs,ڳUA<;Sl5mibh;RPCn ;; ĭ\+ȓJ&T?']L`-@~Ewp2` 0txdsg}NJu{wZW/ g}"_>Tm-]>@W^cT,-/`:cy&(+'EqH֗9HVWr X.&M<\Ty7euhh*5^cݲŕPgfGTbs)dkMB(~05D>a=yC.9 ~( `.>Ҳwi;0=V$4EgQBs>piS9|C]qޱ>F)ELDFTK2X/Y@KD5'X1M'ޥ*rL\q_Sd$ *䉓3/Es nr${9:VVYhґ"A6,Q@PyxsBXYה:_DqCs;Zy9ʓ8<~=sM{%C{Ù-#*vgG詀89kcCUa>*TwHzAj{A*q B Q!j_^!!%AxNjTC<ʡe-5~6 CEg[0E>!p j ˰bYyjMJ(@SEɏX$é@q _4\$4Ck-[z+i8ҙTr$P-{)h욵 0JeޚgfqTe{Q{CsY@v^KHD[>\!Ȥ,:'zA:tE K-#r4B;9jcs˗-d-a[l`l@ /!0sM`Dt@M ?$;QnTm JK A 0jlIO{;\$^ "u(+dKK6fJ p;+~#:DWh XS+;?pzAxwp p~:TsJES YRuTd԰0XU 9 "\Dz4MjU @+=pЉ®;#lehEVc9XzzPL}kqT1 >JE[kxIw~b7 +wlecG̗8JICHa2caawtEN|MI@kH_za+&Vzxz6I\ !xѠwdT4ƶqI O:B_  MVfCWZpV]V HXQ[ 0hjeiɆsj8<10uny$JhekN6tSl VȵʑH1 wFؖ61%p^mb8s  Ϗl#m6RǟzAx[V`In}izUJ]'N4sQ p6+Pސ0{@*,*lp,pg!`i np~~->/H0t@:/ږ Yč0Pۂ0/@`'>Tsqs*Г9`S4AWmFn$a+!ptKOU7>!knHtWHwJW pIN+,cyP$m^3m儢`LLks=wmaWG pNQf~PbSx!*Rq΂ڗJ8>Hg拾觐Qa%Xڴ`["~'@6vl#܋.˾ .Pb!u^*Yg.Ndfzv5=퉍$~i.^2&s j~#k6㏖ZHN| FbG~$ypwdѩwB ݉=6O=#nĖgT>8w'~I oQ0ZD3.[ G7lQ \dF!wF|tLtNW|u=0Dsdhh0f`膸mKUvW-ُ̤tkeMXuEPy;FVf$EhKp V=`IEh󋛖?zYXn{Sf);searoad_scr2.gif000066400000000000000000000140041263163240400400320ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  *"33 9$$(:A'N0b E+.L8:dDsfV@ b@bib}9GJWMOm\`_\as`__c[qijv%.7);DG UGPMDZY gjsubkzs1I2V2nX m }ZZLY]cQq`^egjkjrmsrkrmuwvxrxZ~}7111}aar\ EuAc@b$ ',m4'˞@%iKD@EHi| DG?H_(#*ϡwƠjl8&:8~_!)b.p$} YW5qq (4uLJ|@B#^e@YB/p=S|@  >Q$>YHb$"DF߭=Z$2a*9e(`az9460s^7Jj$)9UD24(!^DȓH9M'e ӒCZ+=r>xc)m_ǒa$Q` wG̰!IYM nk1]iMp>iC~+(]'EOk7܀:QE-4Y:Wb}쩉5Kj5ĴCxöoP~Dcfkh\fD13\9š"˕TZh6tCM2}cG9-Kq0 g>bm#mIPp\/U~> ~zbTT}8^N"7oq_n斯 Hm,c*Ժ5äm6H;]Sl7dԤ痍f*a!Y*`_\VFy7pLGM>[ݺ㠣uIiEUչL)ʿ33ZY \Ul0]d}`_ݏ6b= I[2UCrL۴]qxT0#c ~c_WcN r}$&D'X޶cxK'[Z+NnC'Vխ\Źk>|Mټf'+.Uت4J6WXO)3'T>oR_kr ? p8eB}s;J8l{E׺qQARޢ]vf ~C$~v߄އ{7 AdF|E/|,FI FP\}pH DN1y;ea=LZ7l?ӀYw}X^(LNJ#8\F7d?:A/j=xht@L( >WȃYS6ELEl9"F/MQ>)bMI@>;'~"%6Y/ugtY v;8Q 2dYEXi q<(J !D1+L.%$Ttl9tb$g`FDN2!nq戓g5}&pG fiH%Fx8'L!2&%c.6v勔Mg6X EpGm!y r)vWژV蘎G-f!tԊWc1U?9uaxA(u &fH+^Eg ِrty(<3xБI.،We{]P$+fF](3,$/q  p _3YvdǏn"-p#HI_7xГdXc!S1 R<4+"tnE9V<>PW>)>rUN]QCR%77KH{ysR2ErZ C]("k jeZps铟|u*sbU9bntԇG*d5׈q2}֐]wR2;QcmiityvC W-co/ >iwng5^_3j!SRɤLПYWbv47u^6#ftG/a)p)6uƶ`~ 3F7 (lP Y~1ؐb85e`KC8duGx::&aȔi^FRqR1AqN*WWYp)3= |v)Mbu烈dC#ХP>Y>4o?glRVyu"; x(/Q *PbuP] uhSA(%s:o+tZ P z7+HCR+4@LzkDtB:K?$C[GMSjd3E4QDzRELEEZ-:QztqnN8G:gd\ڥ @h$/WthOƚ1CI'I9P`XRi5di0,װ.XSeLfu1f'[i+KLٟ-PGTcpt|* ;ݵNNJ+#k4'Aů̩tկ+ P~a- APզD0"|'c)Q+<#oWc~SGa q @NFUH91AzWXdG)V߳3Ÿi P {'zYwI1G9|e&fyq5/ ` { @67q;qE"ثg )mF(ƉUٻp  ī%XJY R-%"*Q PT?{ h{VR*ŋZӵ%]|5]\ п [I27ҕ8lFTfWe*пp  |%%Svxf9`v| ` ]l _u` *b7ť ZŅaLV\lzgA8K›ǡ࿔tvlDR&hKVCMV`a<<{ƶ|egvbPIfj'ωfk 0ʔl WrƔ Y~$ e!xA]P )zLV2hh9F]z$VLϤ̛&ɠF/␠(Q :>, MjJZG8fuf-‹Q2-5͖>Pn֤7SxmL 7q@mO-QMnFR ! #oq>ӛA0T)qoTRv!  LUKϥ @= ׃i?gb5L'0a`y$Gp#6Oۦq%8i01`,1+ar].w]t7>^97dZw gFn8(zebWl.yaxh ;>y+xxy*`!~#kb沧|EYC4??p[X6c >=.+ދl.9(+ q ~.+m@ >glQgn]qz0 X~xiz=ԐcQ~^zEe5[LǞo?/@qha nR03CIUclv]{lN\ʇ=0:)>CD]9z]@mlI7x]dLצх3$NĝhTˬG~lXn8f Gg$`χJqd7QڙLYwXfV@ b@bib}9GJWMOm\`_\aq`__c[qijv%.7);DG UGPMDZY gjsubkzs1I2V2nX m }ZZLY]cQq`^egjkjrmsrkrmuwvxrxZ~}7111Sg 2PĈ ?x`Ʌ(1"GlI2ԔISȜ yIeHr取"ΌL93HKZ98?rڕ=J UԩPLK.^*k]K=f#\DeSA2)̚}d)Cv4Gmm !McϮ}u (1: i9cj FW8\?j}TvSEw:kagsTeľ8qLj)V8q=ME&Qs=JɁxsaHi8p"5dy^IqBYqL0(&'Cpw\r DIJ4GsZH!XZfcq] @{/rC_§ [>8qL^;JfH71)KاIe=8lezwRg>ՃNIK(7zR$oBPVZjJ !*~f)V'AX)C )T 0$;ƵP9JQwB"r JFV)`Iq2lQګGPQkг5Mt'~&Vhg ; ޒa哶V AXGE5$Lfu4UkYf+[cS޲ RM>S)z6ԲF31k42A `@ XL>D{`c/hzh/fLnWicW[ݯ#o!2?sJy(TiCnYxe;y*@2B 7kz(%un 9Sz;Gw#3{7fR:'0s.5#LKS2 a o?BF#@n-k_HĢdaǠFōh @iU ղ- [ q%cQbq>t|)$|h[g0OOXDj)d㝸Fʐ["kySҹ`BD|T&ɗxR@HIC%qԚ8*%$R{bjIr $87ug&AA.D ;U$`XK2} 'iuz !?ok̏嘄ݒh4|ԠǴ u^KtPz+zND"yb!ث'8͸QBR0F i^V2v *lGEyuRtqt[RtsD& )J/q1S1wms|=Ln|AU7PIۢ;Iѵ@ vR*ZI%O:}t2jQhP9'.qt)ȩ=*'džM0FObY괭e=ȽBt#hT'~{%C^yi ~vEҭ[N8@%얀E>t1ZmK Lœ+eBʞ2Gf77IC@t%*xO5UqjҤ+r9m43ߨ$ js9ͣeԻM ď>ta[ZP S+ 'Ͳ4WI0؅.a˹<d|-i~G~B{ &?|\]Qa;+Jy-ڕ;-k(d" "l `&{\#Nː/+6~W×lg*d;n$0D,\&n5?a\yZٵmo4A&=i*o20]*GzViuԕY`qI^H9Ega3{4!C':lX;uؖL~-Xz)nWpËsw NYG>y/#YoMb$ ob\&8 4is{;@xZmqvσk}5?ށcI]@ $u QaV<Ƒ93d$89vk/.Ēõ$8>HuAZ]|=N@1{ OC:&Qp`@r%TP-9WG$^ a64W-›"JM:]]EERnuֵ Di0pQB{W>ZGK/sȀK`NM+zy=ۛ?_+{ލjIAϹl` Q`W7}RS~7ym3`$K 'ma;]}w Pxg8EW LO7EV=o>CB4#@}p  `x`c,$3vgqoG"nE%[pcm5=REx< i'#~LȄWPea,sJ T(`=@x %WBgJhJ`yIVDcT0}dyB ttq!`E4zH?h2 S@g׃ |؍? vdhqi؄ʨo/UjJ4]qU*g ccBU>Iv#C3X2]V'+ǁ׍~;څ~tbc^0@H}7v( 0>*IbNɖ*I*'OQ-F EX@x ' -3F5[JNz皥0LWgI .Jk> *6z7 xB39R@ziuT,ʠc)-;QzЁ 9|i|c7HkiljSe' X[ \z( *Ã;_tdskbKڢiZ=F=  `+ݩh4CH>-PJY >ˡ q* 3jX|wZO(@X@I 쪨iJbp!`>*ɡ?6rf` Ŧ)>:-<z-poxH:HDCH LVgI;!~ 3C3[\5/o +0nnIDRDHS} s j`i$E:ՐzLRcFFnQ[ T[P YtcG d[ P g jS)C:jK fJ(_|+~6 XV^T*H@[ ՐKqZ7vLeJjd iI&Q m9Ko! 0QJho5|{Ljpk&:tfI6+{/Ae4XfG;n]ٕvlj[M\i7iz?MdME&nFn6Ec+<հ D|5sd lNwѢ8}J c[ 7,QEELd[U{l>r,@ E cP 6+½t`@Gy9wN#H$œ,aKC#C;E34YS=E޴%SrE7\T 5U> bT%4UX*L'50ŲzeŽls0cG 02bOKpv{sEDwŞڢ0!aRibшCP=PO0pWeX!i}XW -Ĵdy2Ze-uYdy Y![+ !ox[SA[O&T50Ie;ԩ[ŧ½U_A0}ʕ#D0} '9]EIEWIT]#00^v:m-J-R5SuOΈX%^s_eU5rQ ]aYs$|a-`4PVcbVMa0KO&U%fr2,*fc!cc6;"ݵ%WcJ֜5dH$ޭCK6`&UԵlL{fJHf-fYߕUK&Hwvfy6GguUN EmTg-. h6? T?zgih>k⨜v !Riw' dC/DiY"hjjPSGj*XiQl `%yy FWPFk`k]lkfN~l. 0 * @BQ+jr`1ݪlѶy7Htn=`y,Q2+'1 }2 y0.>0!}ס{oz֣rWQֻ y "M~(jSOv@39gvn>>  A[*#&%exr"01GQ3齮~ yTߎ?`} K5w8ssUn  b!0 PW55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2R#rBbS$3!1AQaq2R"Bb3#S ?EIsΖNWYޚscoo7$īXEU *}'?p[V'84Z  68#:%cnf.Hf Eb.ɴcש؄⸎ʰXPM4m DOjdF~M1F55Z^j[7wdn?S11m0Vc{} I jHޥoHudשlb!"X4i{֥gf4г(u&'U@!g,f.ZUM˞A;VAb'H$N,sџ.miwp9KTQÈ fl a\LZF29=ƟCm8[Hjrm5>wgy97ݤ STq#|ZZ |W:mk i@2f)3<Rj^hS)1qqn1Kٚ:Zwu'ٲafr$*r2SҤ}FӤf3SΙo#]kSWL aErOD:w7 ~KLKI`Pk<]&՞.tzT& J-ts-8yOp,sN3M˖rK)Y)¬'\~Kֵk^ʜ!N4j"-;Kw5V9nuij;Ҙ Sz|+=7^>G-ۨuYX⋜TU~~Xքխ!}->$owwb:QId!GHÛ1'!@Bpƫ%#4x="9GtBwՁWeoVJl|x/xXMc0^FIf VKൡ:|7/+05,-P2Z1Q:=&>'ͩ|Wanf\XJ mi 1/:Tη{]5i{ mTb8y0SZn-t1? jH:7Z,QL0_3J^Ck&!0#sZ=(6cZF\9xZ=Dman”sY];9W,,ޙi=cZmpxi\Ah- j.3K;7'wq7U6tg j!ET;uT'۴5hj.v'8R$g5I@w*QDQt4j_:c:DNuHnjeJ[8rPm@}♊ɑ! Q7%;0fdMi$HNWpOMQQUBQQDW{3)y_Q(.Ԙpd_ATQN(searovers_scr1.gif000066400000000000000000000145101263163240400404260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  *("3)  #(:A"A/c E+.L8:dULZf{DsmGJWMOm\`_\br`__c[qefjfgxnpolqzsdmtjxuuz%.7); G UGPMD \Y gjsubkzs)R2V/iX m }ZZLY\dQq`^efjkjrmsrkrmvwvxrxE}1~}7111/!s\yٻK ]E a2[Թ@~3sJ[[WVU&o"c^G901$NkOĢ6 6,FaX*,lp{,zϳ_ xbOfIIKnr6agvR%bDD^Ĵ, nJ@1\N谷M)ÓZzEHHLFUnn3cFOg$k63rf~2X3lx7<g$W.X J[0Y#<I=̀A%bꅩ̟~6s/A0<<ӱZ*8yⳈDQ7U:T̘ XjՒ4̈́ VAVQ*uB&jT L{H )l qT9I;'a#Z)fx n\tr .̾K͙\S!ǓPPyWs# Ool-C!bJ{r"`Fs7 #P0=LV|tjDY^f d۶E,I1QVWmUK@SH':2m9,9!U[ x"PS}H/+)T2ëUc;B=ľ`ft⼾y2.>y,]55#*?ǟ(Y%Su4JC*8GI:J*q`mM d?)' bPr<0vy֥Kc' V]S5fHE2 `Sڬvo8ٞ ((m/t 3sB vs)EclP&.; %+n\E<KmOzkT-׾wQ?A D3 iZp0ټ=WCC@$ tn: iWB1HB:دT8x@yBT-b9߈ݧ5J Ͽ]LgIJ&/`tkE#Px|K*/ =¬`u~cXt+yc@큚m]'IN}pDʒdT+cN\̯TnuM!3Y\ Lobq4~V,"МbbȪYDQfyI5E`F8%tdTtOeQͅK3KSyERjAh6`.{3Rt;@V~g_9XC?57tbuc>fE@E}@pwsg*ErCl^4vElDlc77"XRvdEf(XH8kGs3fPUAH.'7#J4ZK96md6USK~5gAS0UQF3~mPsc tAx.xa/ґpp w9 P 7Im{t`Ahnٔӈ.#?[H*9 \im|p p0atyH_0W/_v4ieF0$i P `pIR9mxF4HLCI ɛٓ 514=YCCES6y@0y9p 6aC%` f|+*Y`9 J8=#COC$(OcEx0) +j铚ymLnS:\:FATc9y5.׌p@ y>Y9 )z3ӧcBc?#_Uh=Iu pP \Yɗx(ԙ?H4#e=ӳ?6>PjJ p Ird#DJ|8h>t@1C@pIʝ޹E Qrz{>A[CCZwאP DdO.E@4A$ ,dkԆ=64d9گiZ!4`4rk4um q6jɤɪH pxtR!Vа`pKC84p n}1 *qީ9ɤTJC%dV hp+.K4вkFDIWziKPS [٨[yL?kyK@ pkp { K `M[3?$\C0 lں`p ۵ K%p wPkwpTTr )8Th4wDPȏfZ 5l)p0\p$L%#VT|#ܾ̿ ;OCpNӻ8l@ ljLjmӰ;Jl`N+껿)HšFAQY{xxPƖh` 02„뫾! P ȤM(54pô .K۠(̾!|;'lV TPaUKy읊ܨ Ɏɢ\Vw `ɓVm5Jڬ[ 5̦d5` {m'wPP| oy̿5tJ&]͇74mzˣ`]6Ӣl0lLL [@d]sO.4T|<l ΃-}أΠMs[ŒwVL垆E_w6Hl[L=ƉНzP = QZs0 D軿Ceift@էm8D"5س^ZnNqf3_h(L]ȨMzݟ ҁ>ngG3 Бw)ʎEVǚe ~Z$F֘]+X+YŖ%U5jƶ͑lWl>ci~瀭= P㐀78. /(U]4  ݖ՞nHpznȔ8@q C ݋<ƈ~prc׊z'R V~2MnKr-D-gXbC'CmF o k9TCn^=XwgOsx7 ZNp^'r7JVvG xG,79B@H %K|ziH5O Eg/y}'.|c'yV{ws QMpuGz7|"A}|g}%9EDO`OoƷB7]XS3wF@ep hhgR\/=GQV'H r(hq9o/oTο(b 5bt) D60/E1Bd "a0!A## D$HaF4>42PHb4)\skX\4/_4aȔ$[HQAG9Tѧ%X(ʥ y`R{i@PӦզhruȕbZ&Z8ԒAsev:͑|BUPC†⽼wIA9쫐V 9kbGC]Jp-B X1A5,27ӝ9;apS=#34 ;searovers_scr2.gif000066400000000000000000000147311263163240400404340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  *"3 )$#(:A!A1e E+.L);i1/`8:dfRL{q1GIVEGhHKrMQgMQuRLfPMvUWhUXv\`_\bs`__c[qggjfgxnpolqzsdmtjxuuz%.7); G UGPMD \X gjsubkzs,Q2V1lX m }ZZLY\cQq`^efjkirmsrkrmuwvxrxC}~}7111%dQ{1e՘v5"2XS(ZB_ܮV҇rTc(!іHf4E#[75\SMGcGS) Yk > vƎ| ArXB@`J p-P]"*nh;DA;TY,#\,Kp0AX+{av,_C(mɘV`K1(~,_W@9dh[@ I']g[d_ןos':b sWBC%JP Ad0v6ϑ2)j`m T!hxp IDg, sGPaMyp)SiG|Ӽ(|t35<82p[gLژ&с(?Ɲ΁nX#b;86y6@ҋ[ %qƢH} $XE:Vـ1DXƯRsrɌ)fJXjB:Z1*Y^m!S0ϸC)%djCrm{Kb]Ya5t7Mprd [YDL!¯y_$7g>z,ךR:=e**pbDPheaɒB*+]$@~%YCRɑqY%LaFֹBS, a3mG^<.! LITKUhY5c #Z%Re<Ӑ^f^Sc?vge0G(f5mj5Qb-*`T? d f":)9Hj27dq;<1pL!DŤ]v*pElDF~uR '<,#!:y!LرB/dHF3֦`A] cAr.!;N*:>5GՒҼ8hIH\o*0gyͥGe8+ "xc4|]0˸AQcila/Q&sDEL~-(DPH4Ob2;Ejz~ָh,ԥUVr[]]Vg\GlbnjUujYzFONqyTc Wvw8amk$)&n?t>tA Dy7싯 \uΤi.T sI3֖9ѲDN3?-<ܝ_Z߽9Q#xYM<ncѭqA9rvujP\A-Xa,|-\i~5-燌3] [ޫGt*҉:Kv|y^Qc CVƐE[U7uaPi[EU"7ve!X.$¹FvWj?y#tq 7A뎏_=,%# ^tzwj-Z+l=NDmmagձ&gC`jKzrPxF?ijÓTCW4k1%o q+5x}|ԆdbGIt4~cv@]iskuTS*q(^D7d'tC?ErRZj//Ie6Hͧi"rl%Y|E7USwbj=oFIA6<h4fO*:CBzcÅ2]F3)(,5HWmsv` ٰ08$ 19;R%{$fCWWkvy*0ДjwXPR)J'L:B[QO7`Y0 Xu9Z薢\E0\Ds_cv@f(2~f9&9 QI<:q%3^Z+}S6bsp<ٓ 93vJg|~49wl]!`@KݸKG# !c@Bg&Q`#@y9G4CAD9NmPB;(]9` Y8U<,:$KV9)|cZ c n1I`Pjz+0 s*xMHM:q9T2x@ x` Xʨ*Yi ّ$YwiRFOKfP`cZ( VУz@ `zJYs0=yF%ot{DƖ vV zP 곑ۻ0[:ɼ*EduiCJUJ0KD +!{cֺ99["QKE/.NjEQ1Uq?2YeJ[ L0 LXٕIIkXesSl A25h+pZs 0`˜szoju ^1A@I@>k:5*K9&i!9m  002IPER j fڨ Zx?ɞ8ZflX2p^j#Z(r+̻8lxбuy8"=ɦsT6z3<ϵ@G]R&l.< !+;5]ps%v7EiDAz_R^$_ .3r̷zл3<I` \ fMpˈ8ڪYWleqĸUmc33#[+ y@ NkvX"fu_b;;# ܻ[dZXpQv k>l"f(%ٖ0/lAC\=@8EμB#YXJUqC. ?q"`hJDENloӆ6e]fDLAA-34˯[M g16+$qt>!bC C4DP1ejn>qm$걎Zqgr$ZrZ8DQ$ Q浐?;cξZsJݏQ!n s'mMLNtGDN!Py`,]3 xiٌRge%ip'uum ?dyҪDE[$a,9b\!,H+SJADJMLalK^dߌyw{7Nހ+EtJW M)$-z#yetLLx?{px'T+QNpN˔mѴW Hzwazdc1 %:tϚ0{U8b`78&O5gК |)uhyJ۞Pe2QڔiS m5jS\9vtDjj\aϴ=u wGݨm1 庌 t̠l=3hb  ͮ=u؏mM7ꚯ[& YUS=أjώ'ɣֱWOC;ENo?宣j+!&ʥh13l=(7 q;0<ϳH0?gL_M KA+lf̬1 9l+Rs9wӑ3&\&;searovers_scr3.gif000066400000000000000000000141211263163240400404260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  *"3 )$#(:A!A -b E+.L8:dfRL{D{q1GJWEGhHKrMQgMQuRLfPMvUWhUXv\`_\bs`__c[qefjfgxnpolqzsdmtjxuuz%.7); G UGPMD \X gjsubkzs0K2V1lX m }ZZLY\cQq`^efjkirmsrkrmuwvxrxD}~}7111e:NuIzgBOp;0o7MRc;e.rI=Bܳ5jQŠu>{yk>el5嗁EUU;d%Yu[-_I&EHJAW(|hVHl;0QV]w!ŖnJ&!.D3&Ef]CiH"IΒL6)PRHE9 Rj.aYJd(|2ARυ2fg&dLY4$A%MINSJwY J)TySzHz=c=Gp%P}*GTA1{jMZi|R*lqR"n*kꑙ%)*ksmDX-vF'%Wid踬n WR.epi {a;V-u^Jz3դ>={h413/pG'"#Ĝ ߠ52(W"=x8+ G*dT9UM$ QX,⿚lqWD,`S*(6 ES`#Re`r$x Z]I׾5(:C! k(1\ZLBQ@$ %v:j$%#29OT#E$πs`׶b*HNQc2?96[ gF|h+'S *Z{ѼȭaݩBI~nm?o^A-Q:hPC"J;ˑ$*0 ttIϐ;L2"*OL+>-bRӐ_&Lp/d'Q*t),"f,ei=OejA3d:e<5K;k \>"t(2;FQAK¼%`Z;)9JB*25ʖld(`8Y>HAHUT.o88dF$ }jfV&M)̞3ƫɑ4V#a}Bkͨ[W>H^$P:<]&!$U3@EQ 1,K&yZ$Xj fO{HY!ӆ>5}YGn2>2@:p;BfdJ\i9wW;_if DVY Qg0ou1]NbL1ΤBv Y3 G&K e V1u"f@ĝv *-%WWHgiytYk1Vռ] ! :N3JYsg~9:6 d T2lNs8۹+j̘-OMe P#*ɯSG%_דndqs7C0lLSWD&A~&\[#<*0шytYMJ{EnۑF$C͟QDuT}u& XFpku~۝^0;iR~vF]B5NhUEXfOAҿU $3!XU[uo3ekB[ rC3=bğGesٖ6 -"!mp=LܿtBܲ-5juxu'k)ޔh-̵G-aQyYy o]'zӑ}^UVq{06Lwv%UrNYvCkm Iqu{SzQH "@'3 ŌXv[0Kn\}pAc^cgx M!(}z" H{GreqMgy5M aI09}H;L@5H~~ Z0T#}?Z9S }P}P59P ]<yyS1I7[P ' vL*:u["gOiM p 0p p'hUbׁnN "5[ov\i@r;s И7 lwxĉ8lwSq}wFoQXrCeh9a } k>5 iXSSHvx~sR/Sm8?T[P 6958wqĊ舿){IU;nzA7a # 9vH4=dw~ XSeD`3KF6m]a阏 }pŹ0EYS{6pN\iY0} ;:c'EUw*})O3;88J#;c#J9k9B3u:ySXȏ*:`A;s:C VK fʁV'$A9ФP LY҃mwXʤUII9# :ژpg InFHv z0vSbZuT'8_퉌29;6٣YB-IIip["SpIpJYPX3Eb4y腝PЪM܂Yqv"۴3Y8v`c gYcl١@Ʉkpm OoN3`ɹl vahz { 7U7RBEb s2uٳ@#\`ɘ%#xw[7QէƹY$d}{0D f;(:T̎JRS_ ۵IbɖjaLUXC}]36:fJ9W]liE8t]Jŕ$7@_LDž4VYlI;bfkJJ=_ ّ.ĨЛdq=tg̱PYv}m`{n޶a2#jG pg̖t-$Ƃia LWy;bR4="Xm}ƅiW=36aD J@tCLEJ {2V]vzσ3sd,]:tDHuImh]IeUf+f֜YhwVN-d1h7Ue-*9$S @&>mڦ%L7@]YWK&eL Ng,;90sԃ_!=0vMl|C(4U lT<UΎ4Wƿbntml 87n3==Sn߹tHn~g  wnȊ7@ŏpItpoEwu,$^ n@q#~q G!GF7puHھ9w'k\r57I23>m0@0$iu] sݞNtQzzIZu{fřv=vu(<npxR`&0 rw70 _fǃj4OOB*xKn{Tb^2xlh'1\_@̃{{WzF[Dm z?C? @wOW0 JhVG\ħ}=} +&aӃ(6}N3e~:ekT6כGn ?S x;UVXcE!S,t.UP3EU CofY9GH΃VCP6UzDxF9feMK&~녋7W ғjJ;searovers_splash.jpg000066400000000000000000000054771263163240400410770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2Rb#Br$4%ED !1AQq2"BRar#C ?CgxSTRr< cٺ7#Ʀ.# +9Iss" mdʨ1Nf. #S=½7e֟m{˯hkA8 q۹È+; 4kTu-ܽ5u9Nͧ4@ԀX{ @9+ ^,d'洐'~lyHx{i 4S)CBFoN5P1̤q҉g$$f>HS:=ge̢X״4ΛCyL6v/2JLG1*x.9{-툉͑dxvqT6onn-xSw2ZX0(HQF;Y*6ۨb祠-)'>  `3VM?tEuW*_jqwF-sIi6()/떆BG :ZQN8YJ@Hrﮆ&>I3Wq9r뇴r!U={KpҥpOj*x(FILI0 +R2[n~Oe:v/ {ymvs+?rHұv\q)Ot8"j_XUnwj6-=( ڃ1&9aT|\BfsUX-on.lx˸],j8c9[k2w~[{1RJnJVZm£+ AwA g }-;mlaiFWwF$ 1P9dhA ^ڳr˨\ۈLjbܱ4*b3Ƴ⧂ky8<乯jK:#Z>]i0-~wm#]+Иwv%t9YypsIc⺆ fBvO1PXd cpisNMաAխ4#.eI7=68֬kZBeUc|dP$5cԸ1vYkgp1Lmq V2IV=xiD>=CZWۥMG!'Y?@7sn_fa\u, "i[Zn3^Q\麊է%J1j%x"r qg< ) P򑤧m,*V((%h\G35puI$ksAmS.[D' wqf( Tx+Φt.zJ_  ku-%nt9QEssmT{>qQQՓ{slider_alpop_scr1.gif000066400000000000000000000272601263163240400411000ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a[nwwtnI[zȿCwC}ªtzĚ!,pH, F 841LˆfnͣSYUC\_ t NqqBU|gdd %`x|r#n%DToHYsnN ~B  Pq `ݾjq  m#MoEC lLz`VeEZ\ȐaBAaDO¢D q3R»Cb'!0z4`eܩO6[%#F\^zLI:Q`<3@ig1 p%HYg͆=;t"obΔ+DF )2j0`д|*V²T"qg7xp";^Zk_~|pDE^怖nȠEe {t3B95ʖXWLq&ZƆsŅ^\\ )id<1'2  /"(@"aJZ,8h`'v΃@j&z停` 2vca9)5#XѫdjXdD.,z됥Z(od]kQEģ{:+I,7P.pXEa0F`TaIR-\b!2$0&Љ@0 ma2y 8.H40Bp }dܼn )ST LOh-`!"f'` 7Siʔ:&.$=c qXJz4@;|0rbE|⹋hۨ D)82N(B#hP x J#J ̌\&p@~ G@1laڽe:෽ x$ZݛQ\ z¥+NC t JGR b=_I p_P8!omB4(/I!dh)B)0qjИ=,r &3bHh p  #"PaBË߉-(gU$P>EAĀ).KVwD` "p>$o+BQeH&Ӹ8\cg @.p>1/ d!w9IQ"TC2ऀbpGfACp(KVHP Rw (L9g926=b.L&`i.@63%@6sev. {@IaJu;l;%5ԽC_4J@Auk29MRƹQvm_m`27>M:` ;@Alj81~?PD$R Dvmʩy2r X4Pg aSO$hIN$tƢUD$r<.K5]H/Hf _8,Aд_u!eWs@z!(ҫ:>mcWxEfbX&3u41&|,V?['j-G)qo  x'j("H@21VX,sp_EN琀֊"AUp@J@ld-U&sXؘ]X=4 cJΘ>P<wREqqTnG>Pyg&+XP*е0DyqW\lqIixquj =}Vg(HNG܂zH"@ `BZ?0iLi؟T"E}"jE}竱we)^0 w7 ׼2"<[އUv T)Bnn(`x@w8GAM%py@y;r디3ԱN@:o\9%9SRgS~nA$Q-1Η7fL1ϮmA@ȹ-ʩ=`’SX( K@KsӜ1=shw & se8q X4@!QhQ7=2`q'T&Eͨ31h/%%  sxa;gy O 8xHY6l&`Pnחӽk>'.`҉q|qD$ &]&E: X%4UERVGvP.u#߳ BS$Sd8q PQ p1mT)@*/%|u$fpY|30 @'mUL'RVPEv>$6H } _ K8wdW (M;'pӥeCvihׄD6{'EE(d K(#}s. GhPk^PhPp=Bkv\PP$aE0IFeI{TEC9gʀp:CK' '/kD<'3w]tqREI_\\EY !PX? PPQh\3'i689u~ 9h8 D5 o((s\bCQP} [\EMnpRus4Vv&I[Je r1ēgucRg]BR˱H7t\Pe $ Y bH֊y#5VhDu<[ pg@KYkt5%@3< 6/0BFQlTicȈfvMUZcS,H5FEad٥gY'HA5U[Kd SBȔԴ=g V,g\{IT'DYUy yRS.&?>Y9M S 2~u(a  @w0c6pc6 8R4c Qyq?Yw#x UR,oBZՎcHXM#9Jy3(ㄯ" G3??p>ͤ jJtsH%H K #(}01'}k@% bՠ@RNx Ry,]_= Jj X5aLMj3zw7(Ӡy' eL q' '%{P5Q<j fVj7`fT"V Ԥ̒="8! P +f\b+ "$BA' 'vFݣ3iuUi{h;3R 7pW'gSBd%ycglgvVp˖blX#.sC+籚 $""pvfw6$S*cJd| |'* Z/ȲD<@R< |,2MLk!)wc,d:EK?ьz4%0$S*gAR{A1ٴ}0 w` BSeұ,(ܥM6ڟ -w *՝Q$ 0456#nPְ-u3\|s頑l>'Fj ɓ% ODy'v2Us   zq(@5 Q$0qi0{$]rPfn;;ӿLY1{D l@IPE s^Q .43.1ٵ f !6X̒V4]Y dLP0aL4҇ApKqP$z<෋m 4j #~BR*˙r  S1SP :@ȀKPZs04q,80N } `S07D$fBGu3?p {!4̈́SR m?晍#[MCP `q$5Ăq Qz20 K^LUэ)M2}:Mnwj iqq AP;Wb ǮP!la %M)OZ3 [6 pN00 B&vӴ{/!;!q(ϠXOYp(fP!01w n_2m2 1s@bf4n7U+yz@Pp$qF@lE5z62nO #p (fom}o{@@P ?%M-% Mf9,4F`D2 ϋC2Cа#QQQ!cNr2.!"h)pb$!"TjT鴉!cdbl)sA`r2AizR[9a@DJ pt VJ+ k?BȌPH ~PkoB$9@@ FX\xi"` 0 QZ0&䙅{I[89iA,%|!: 3LjD{I]d0I΅` f]DCQ 9.NM%$U57IbS"BDY6cH6*B FEPG@MmapUJVR530 ^L'ԭ?~`"jb(,"lasш Sh A241PYb@6MrX@[= Rkն# *0qj¶?j x$;ܷF 5ѵHN@nG Ey&-ZwQ>> bPnW5Fd"SG1AH:8|Z\mwpbUθNwpZ]/ S[OQQ*X:De*7 .j" _T&KYh(um0hś ůӡ'kH@^ 0msI0&7"8 BngT P <,`#YˆCm(^_|) #=D؀x>`1K n^ak{`G✮]q~,xЀ4M gƮudԫ A2YZp#R4!na 0H(D u$N-Y`g;r\7[>q hܜ9Ƹӏ`0_[ '"_fŽ;e,cxx)tO,YQ&@'io nV1"M@{-5c0Au bK/ҽ'>B k>afgc5R'kݤJX`RD <%Qz:|n6K e@ºMpI"H4`aB000غP/mҢ!oMfQHi)F8(J-N @RX\䰎c[F"nP`l}зd:G8~GFJbg0 X.l?.f+ !FcXAK kO*M pPptnv0_' Mk*A:1̋0N^|pQnQ`Ѽn&(.OLQ@pq:q ̱` tY $F6jJQc8vĬHm(!|AT2+dR#f*Rp q#xL`@LR%mQ% :$:#ȩH9R 9ܚI閭)()+*'5"0OAn) 0. +-R1.!Lr/s Nݘfg1oZ24#3(ɲk p9),Բ4-m245unVZ!3m3xj7/M1CF_k.:3D B tn X0K4$΀`q: B4` j<+>ILr1I0a3-^  #0I52A74;.JSP3 B#'(l" ?LD'nV:G4=F,@AT`0Iq+cnC>r Ab4 ڲ.C`8JFl) :E6 #. P>"írdM-3t ffۤX6#0OuL?Rŷ$ᩤ4~ KA'ȴE 1o(0 , +U)[ԧ`S4=+TJުWZ7XKf@Ku1s5)rUnS]rP]7kZ};4䵚EX^\kAE3W28!`t"QIKjZD0 %"Q_y .>)0b8cDAq^l-aiS  FQbr+ f \OԮ bQ>Kz&+v6 Ϣ `VP!ˢU)iDGô<V!_Kk]HL$E|&, x"iL@B7 dF ǶlmD.ޠm@q6noV,w@6 m FC+Vƃp "Tu6Yok\^o/dIsi RaC t6.&nF[ru72JNddqG1at7h.&pնtyi, V%Qz! a`A$(![@C( &  ywu1r> X#LV)a~NLX;v_Sov*Fvw|/%/ NUyvq:Yk/Lv"SAx@|Hη脛6f=sSo5]4Ru*xxuxSA?w Wd+lS+1' NG fcsI GE'@1|(?`H?gXÏ׃|qmXKd))h8ji|Of"j(b|UP`qRK4vM>.vLtՙ#wJ%iYu>Ycw.,L tGٝA) f8B(iiFnwUL@ˠ j:S،](`;8F94gJ>f,tQ5~:2C+4Xڠ؞-kc y 9} #~rFiyj_vVÚcҠ8cf @q15 "8N#2Md:4Ժ I|8 n=H2[3' Bk:s'hsA!0Fnwy~Z/x1 `A;]!&)&!F6lz;۲[Zs1pۓH$AǗp=pm[+{TrS18v{Xױ_G*(ý )KO隸gO{b! | Rf:]K|']I~،Ys` Be")->E"@فh.@0`;4_,0``Fc0> h=@Qw<#Ɖo1_ӻa_Ù٣oL FM 3<"%F"@4;:1B9R0υZTh0])HppD!&*.*y 8((@=Y^.DT(]elyq!ġZy!plmT029 HJ:8Tb*+H^i~V䙈P &>NYnt+$̅6% ' [,$ D/ڣ~S߶=Ac`5tI=r0R-HAC*Kqʲ̨@^Dg柱Rpa*Ej\˕@C/dAYlf*P7PQ&M*BOY(u) pkaDa,Hzp`hAD_ɀѨT^?1BU\)x]0ױ_Ҁ^аQ{ǫՖY&W`]'tՐg6`~XZ➩@)kg;[<7`dj6.6P r"+4:h ˩4 Gz`$%GOV0%l9!`x2lo:@sxHa/h%zl^:h"ZϵDF#pk|T(k tIRZ%( f`x<``P6E70Z@^s!#iG~9Y|qA@#*WdO =r9^3x Δ0x^ j,o0YI"` :UP79@A}ejff/G ~$,wXX L݃F# @ @ MUђ*e@HLkX8ZʹՋ}N;ի0G[g ,@B9A:*= !P K  zf`di= b9+IJJ.Iwtc+*F2o<74mUs-s$h9lF@:@@U<@( nmƞ9"`O>Ȕw'`np^I|_H*a*&ZX^'u:0(6ЂPj +>f] y1w^` ݃•V[zxbYMec9ʬI.ڹ0px fqY-Vi* 0O&##"fw3e=& n1`R*b&#BWRi&_l1ZtztVXga#2Jy\Vh0Ђ% 8tog"&e,`0b6'J2+37t 6Pb6Ga_Sf6vbdv$$eBE 2 㲂rvh L-``ZO\Q#{ Rh6b<`Xw1s XP3%Spk/F ,bW2nHeAz53 @)ly0wg~`= y <]T491PWʂ䠄6`w؉* : hbT1`F1uC&eY5n]U9Q;8(}uBp6< hXS=wC0׀J5Cճ5T`qs85BL7x4O${g5'vC2'Nu1gOY]7uBvx[EZmP(zWƨĀQPl0=.y6Y]*Abjn2;bHaHىJ)J$Oywg%)@5G5s%+ _!(=P!hlɖ9``U@\zLJ6d@og~p6"AWtg8^vØ'a-XI\% Ad&c) {39`E#$PlYlY)5adz7jSS$:]'zde *'โ٢#f HPeljb%::o[eb&;F*z 6ԠnS-8Ft&[W!+#0@n'>^ b+-jqMRF_k!}j<0KʖH J0PH) p_[ğ`0,`9lgwሢnʎp) c~~fWf|)_ %LW*zvu(Ѥw`)y+04i8nK6x4F&WsǦi\e匿+;t1Px"~P"膂׊$Qj ʠ F5xfeʍG12KN)ToڪznCtQi:!$ЦsjK:uK: zC kY@"$evT[d^'*/ "Ne!ЦRJ)S Uvf'@%ob:@>7 V*J\4D`)Ш:+QkUT;VL#mr*wh;$ll{7Ph:2ETWuvn!ɶ$Adw;y{˛~F83=n=)p2hq9k 3w& w)8s $ K!1lX=;;زgys =n) oTot@=O)p~IB 9`:":r1&#p3;T0`hyT'+~i)1p*S׻h ph5/5iUV,$ gZ0^3(m֑# # < ~bL7TM<002\1;J39âw8V\P`FmB*yPfYcOF%#Pi nf*~0Fǹ=7)O1H{T\ިe5x7ڭm5OM@uhV `ѭA*<e`0>j>tg &)d 77p=@-z%nܬ|j2 qM-m_l:~#zO~+N*PM ˕}mz*8k>j2# Aey{}^A!N[eQ yiZ Y-0 L>)P-Mr$fN.:7nJ5"g-_W\EUpU%Ufe*PbFdMҞǡ` 8e%O8nݴ Xr}?m`nTF{nZY:f՞;yL Ѕ08#?\/K>[V)wy.'5w˳ ˘CF Hu(̴1(x؉f|V'?Np, fFo:9\|[kyp_O?i8WT[Y>N FE[iWe~n+`mp;6OFj.7.?[Hav))d)dpI e* b0 ~^P*\r`Y"m6&ƆDZI1p`4^$.GT4U*~|RDSP LUMSWM `a!*L8tb2BBnB`ܐ)zzfR0aJ 5` !)-gf(3UZZF,wN|| T[]c10#r)q K"E I"iԐE@1E4 dNrs$ 9m’}x4hկOFtRH)0W1TTA/оh2#j4P- ˭HDŽ3H !ALB6A`yUazs(|(F|qU"6IGZX [n|K!\#kf zpߐ⭰aAn$pn@G "] M+ Wg(@>@IZ͞}"ˊ=m5 `f8 0x`b@ @0a9)bp!AsdGn *q;a}x1( b8„Ra7.<džz(fV#'K 0Ab6[,#I !D;1^ydiy =N8a$jYX @$Q7rg訅稔,  2/SVysdV]*k&``ggVU:0P 58b( F`K(]`@:Aagf ^C8.Z("@Ɔw\}D!)@e7`Ehsf{ijo) H`dվw?C+H̰$$8R TB2'J+ :(`KV%t_G1K*-PP 0I3p[('1 { F\*A<_k&Zp'7*1jB BR# =+ 6!4#ym \4uHZj")Vך:#_;K8 X!BhDl~X0 :E"dM()VVLd)z!'_Z.y4C9]X')0-5-ѫ8c"))@-AM`x==̑A`I\ʒɌBÔqb [Rd@4%'BZz⹸ npJ`EHVe/?AAF>;?U\WLyK0ݸ/*BkcCŲicj H1;~V/edJSXF BЅI H@D,SRõ4K:RE#ŠU!&!B]~"EKEX k&W '{Hf|(0`Z, O:t8WHFl%)'5'),fWEp -Wمy, ҐtS.H@oqn`AнW&HDmT6`a:*$ RiA%@> 0A"a#J+8%xvj%M%yKpW9GxGa p%H|9$G lh *@O7-d+L@HPFP"uTP@xRE lpO%66 V `NJ#] 9{@9\69|'%RJPYLіk+ƮAn!03 ͥC(5tRxDžg6HΠ)!e;UB/,v_ КLwhƚ1=d@)hvPQX=U)Ġ-qCu}³@Dk,bI+A =^^O}p8 V 2ȂBu(W@z-}K<;~J@)AVD}5ZoUL pP/k~J_ B+ͬ0 ,!'@nIY஍c "Hr[2HX `@ 6b`"? 1  OXlZ)8vxƤ ""Sk5 oVPL^`$`nԬ?FeV|H2Ȩ kG>K`+Sj0 PX"B`6`g.lc6Y* nۺEPoH+aDdM<П"'2h]X@ Rzq9h5&P"]$v-RNΤo_>k?M*8qIQ @&GpddxCs>Q f`Ks@'DMn1P.Ȱ0E qN{2)J R rpY2!."Rډ&zNn! / |$B*6rB0$rFdDDLLR"Dx2GHc/DeR$*RμD z, ,y%a!Y֘PBbF3]4&IVr5ߑ#2I#13804-/<xm( "#hn\d9pPf4I#KR5:_3, ίLXB҇sU2p9Ӽ,!>rlsP0lWp'&r8fFES5>CER6O[h?!E7&*g B &B)CC=4HpjDY@&'GXGsA4=,hFO@!3:})YHCHXt j28_TFC vq>eL4MY 7*ՈETs= 2u Tr4jJUoM9r tAim81BK]d(R$e`JMa?Y Sla$xKR1-W{AOh CuD4RtY?Ueu?HF(1#WV5BXO`Lu[85^S|fuJ5 .._=)`-K+EdU0qU}Qܵ" U7`RńV t[`XI.[Jr` l`v`vHaHoY7^aD?2IksA AguVN50h۩2KivڎU4;RR06*p6 T"$ԂG?#u6W H<=Q\!ԴbiSj~X \6CJ(C? Wjv,~M@eQ Sl.72]thMs_i5Ft ]5owG[uNv%na8O\~R'US<} WV``MV%ߞk" w{)?7 DAxӺZUxBwI,-7Aw}Whmd=w  7Ok)q~|ρJ6¶E-8}gBRq,tAvs֌hC!GؐT Do[ *3Mɑu*Tp@K'q q}?uRTl#FO`G%]~SDva`-zo1CeόxDx /hפ@vˌ86 yDwV,|9΄mcvsӟ86J.'bMW9`;r#c," h-3`\C|y@b9DOyC Y^บ/ӟ2Eg7 m?3P9 Sm~ԏ'rxYCtjڟ:gY9ܙM$Z9+ٿ8&Hp^(M  #K:gKQQ/Nہ@_i9gڿ@nhy9yzl@Frd:zW!Hq'WY=N+DG`gKm S!XT-z9N4yz9Z ۡ{'Z%Z^e#ԗCbVKc/ڰacZ问_vnZD''4cB{ylF-r`jDr䊻~#*_iͪP%yEUUiY@GĺP{^H`J[1e;)pc4\}!G2:ǛVSjJzlDiH F\;4qr->/ӝiL .gKӣyC\ @9u [ȠƔ ^qe; 2bP#K@@tK vBaB$~O>DO?TdY_E ]Di(`=Q^pmy^?3ϷlQߜdSh~B©x"b|R@)bTPLT jv9Lp%9nu  :(.26:2 ed0TUpta,i؜TQd`QteUNp`#@C Y_]hosw{Ӌߋ (p "LpA}a(q"Ŋ/Jq#7? #ɒ&OR$ʖjM6/t 7; naD5:T_њI="e*jRRkzL'4 U^fϢZ-[Nضb-\ER{m^t^#;4,㯊!dgu*9ew݌ٮfUjr桁Cj?(Fژy'_:4EN4e%7:8ԚENsSH".}5jҚo:t|>tqv 77 |1FHP>㷠F9ȥER%0s,DiOXVEHn'.s@k nݩw/~HЁA q2t,(D,jT"d['!ƌ& 3n DȑTdlظhְ[vmO!AC({U49!2ZV\3xزbΦum]PW' /3 0يm06qUEPh&xY6 sSR{W.ܫ@-Xm`; q#n2\,d91Ye͝$XQPtW| ]pwyՃ{U i`oԡe_GZ6a ^FX sȡ|1܄]E`Ct#!\b9p0qFȕ{-Е5c IA8T#]i5gER(Q> eSnW%hvS/\ѥ@9&ev&IfzBc'^R}XѠY(ar_BzxBґ" ؂P\sdv jE+ 6yBk놾B K_. ʖq8R;BVzk D:.\YG0gJ`L MREf-)H,r{?g>Arkgī y1ƯFa  #Q'Ơ,20& O?+,!BGKөmXP:8uUR qIVܢ,ިDo {z6"A~t|^{ F87rLi\3۪;q#p.埁Pg`p3zd7ຌ3 `3NU2hxrF8$Q6`H9Βp('P|b= "`t0q=KpqHE2(L WXjǣz`Jׂ(m t Ht 3 Nv[CXK$*P$xRSPfԀu2\BcZa` ^ )/h= h =Α@9(B+f8W,#JƍV$uq,_<\0FVg@_Ȁ-9DyHVR|b!&4D*pܑ#lY`$H O/2S 5ƚ;"x!-1oeU88 ht.PA|4E//܇YAp@8L 8s4Rz]Ӣٴ6qw⬀@)ss h;O'/jS ELKBWФQ# 'J3@R9 :jm4Ge+ضL`=\ybbK.oH1-Q;´JULQ_T ,U$Ih*(p1UE<ّ Jڀ)0zAun\] WYd]cWu|_CP V$qlP4r\Pc<"_3\)%"뙥 邘o.P}ptry&_eYT.s @IzjW+% .LMcs3pVuҥn@^ yy^iyo|+ c~/|1/ 0gDA+ci- sy)зUy37)PAD&s.@PSS<|wUfE"![g{;j `K(i;{K,120>ա12uQj=ɉ+`ܺٺk;ip 0xX5F r{kFK3WԝS# kIgۖz;PMa)#껾ھ40vG+k>븰 "G|>LY <$ {뼼ZF,E7%-syLPG`P|f,{8 , )l; >@|:C,E<bK\[ʧ;`PWŖW̉cE Qi<:FDN?-~Hp&Q{!Ǭ{<)Ë)-0  ',49 Jlii),qV ˼lLca cjl̵1LМ\q@ۼ\ ΦZu.9 Ђ[.~>K.~smdڟN3`梬N-" 3"N 1^zno[p ? ?0?5N)LΠۺ>SM^OO,q(|>#0:磪4ybj|oO) 6uwoy}؁ /f+^&ϛWч^0173S8Ҝ?D\(18E!R*3JF6ss3Ο y͌KFJ>  XRW p>Q HYR:;Ș\P粂8m^+ ˞O 67  +*&&PP0300""=#"NO32aboa   %),59G @Ԟѣ*P"B;.\@slH^J8tܤI׉^BZgpl.zI07PO;un/>n[o2Y9)7""ɂDg'( $ B` #d!{bidtT_u _uC&I.} ۽~8x'Yr;zR&K0-MFTŽ/0`m ZS>Ψgz@k~An$# 6m ;i*) N1 P!vN3% S *E5`! ʏ!pH p~DqaEv¹01P4R _G|ŮPa)$zBy$$}s3&׋HDJ9O1 %>xdRE\X'^tb-c[Rq(% z)`G@1G`LR dhjM1 lD89C/P=e`aTfpHSyh ‹W={@?O=AAqpF$4v mh Ĉ~`B(n6=<(hd^Tr8I?K>z,CczTstzEk?ҡ2%EmQ-T,՜8j1¨zaUUsGiM(&&)a0B*L" vūjjuJ/82 bK r lIX^o F%-F\žSZ.RjmXMLm |7í@..ʥ{x|_Hum,h, 52&Ţ_"ތ~( #y9 jA)@8g~]v(!N[z;j_yhP SU#IŖLHW#Svбx|3h9ˑzq ' =3蓞ė2Q:z3Y2(BpRu-spÜ1@3bه%3qU9 |Uƀ}^*5wʖ84VFmeRbJ.DΪQl>ϒNm^x$h5}^ XO .t@^cN4"cF©40+mjkm(ZD= @rܚn '`sHV∩E ?~V^ׯO5g $^ƃ7܏2^I!?ܻns:%A Ds{1b< u>K]c2cPM\gsn6du v lWz!8DoZo4~)ۖ<{d' jG~oR֭)˷ ^7O{^G/X7< DA7k&ͱqWL8|[vOp;!j.'3?(~,"ğ=9c~c㐏~ "5ҏ10nC /!/jE X ;h oAngr0g@( bpG? qaJCylu) ` ׬ - @ ? @ 0(D /R$` !Bf/ ,1p&@=a>@>[s4J@mL@CT*Y@)+WTAQ_ *?-_lCaDuVA`91TXm^9cg4jT GAC%vC}d-6- wt=ft2@ >ƚG %HLQ4wTMM۴'Tt)CDOPͫL I.3QQ=fr&_,_hI 4 R-jJ 0TGcTTgUUUWQUV+ f jUnr5-qW-WUhX !RHa_ 1ISUrU05\r\˵_ UP5C1]^&H^c a=_1X4]t#AˁE%S2a5Qb3erb'R=dad^ ={~)Kf\A4gK6g5U#heh iVcwHGVg_kj >Q6n6uuvOIW@m_sIݶTvnk66mbaTvtp%i9uW%m0+ mvqWvIA"wrI_+wP sLssL6M=Gtm7U*DxSu74Xc9[TkvMsgQWzwx3Xb x7{F@* oKTz?P&W{wС{#{+ |l|=.?NJK2t}XOWpv\sTIXM7!xX  |eln #X}6FXHwI5?8{CN[(nRxWA.gxq9`*e1؈qEs }e؉׷mlw`W2΋@hmWe5uX}e?"-W8`o/Vx2WB2DB{U<;8+'R*YEh@ TTzm#M" vD'd'ukylXgMe+P`6E4}d!ג6w_slwW eх tHY7'k9٩y;slider_alpop_splash.jpg000066400000000000000000000061451263163240400415340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky !Adobed c''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!12%AC$!1AQa"q2#BRb3rႲCSd !1AQaq"B2R ႒# Bч3rҼgyɞ -\G2xT2i(yk!QD1?EwdɘAeŽ 8K?Rܘv2 s21w'\ "f~b,+_/02G"3My|4b qeB ]fBGr<Z&vQuX. LΓ?`b2K4B]Xr*/MzI=d5'OfA[S~nj`evMڸi[U Z,e.R6ZiW$ MtGȸ VUCf4M\[Չ]e` uW% c^0Ykd؟Xnol_JΉkk1O#Q^ԧkԽ[^WRrm,pa]8g^Ǿ;3niinɺYdu 0X%pXUFn㏠?(UEv)YSS];CP҄ZEM[šjmh1!t.H6Tb4ڲ Ng;O [Z2:08Mmͷ:˥?olcJxh\AF5n)ۖg7 p?ٵwj B,c 9 oiMb 5VTUr&29)Ajt;j81<{>&~?f!uUz/im* e>&[/@+ej*Qno0xA1QqY僄a֒y%z\3Oz`ڣtz?1bKಞQOe'DCL|1o!=v_Lfk~](IA.;@w Ph6NJ2H]YMK!enUP=\Lb.ΏY&zx/ "{c&0"'՜x>B rsǤ69d8'nJ>MK:/ ,5Y"łr?)g "m+j#<'@G*-Lk Ki DRbo,S}5>"zu "{ k̤o)xcMvPLZr׍iG D.m:7Mi:A L#yKh>aIɳFh<+hsLmnn^aM 5É]_+q~Ye?}YM}޸3F^c6.3j2{Mtax`=慥09nWn~W, o5/SfQʺw[V_NH_Kq㾅}K/mt.# #ԍLd]b1$>´:G]hy\fr-,_U@:LNDSD-HiSJ<RS9)幷9ʃ2>CYlѿ+ #Z:.;:Rړ [<Ȯff8[yq8yAT'kA?nѿٱwVkʨu2򮬙FA*ͱƒ=-)Ҟ5m=3Vw#c6Am5b:N=88jW6XվV>E\jc/ӯ>͗Ǎh~Wsmashingkick_scr1.gif000066400000000000000000000172201263163240400410710ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a)Z1J潵s)scŭJεRRRkks{J)ޔkJ:1::ֵJZ:ﵥckk{1{kcss{J)!{1s:RcZ{JŔJkssZ1B1sRR::!):Z!ccc1!!!)!R:)!1c!B1ޔBZ!ֵk)k{1sZB!11)JZcJZń11sssZcZ)c)Bc{R!)k{RZZcc֜JB1ޜ11:1:B:sR:11!sBcc:{!1΄Z!11BBB:ZZ!,A(DB"(  daCD,xcH=! ! l!Å7%ȠE ,l@ÆD' `*[VX1F#D`P+׬ 2A dpʝ ׭\*V_B ѠaV1CdIǎ7D9YYΠA 3i4`D&]4/8ٴw o&w.Vh |CJt3;\%pļ5q =eʟ~g@AUWV]fY 5P ks:^;P՗`X"JF}T+4J" CgVg8phPG95En0lInA PU@U[bhtWvdЙ4FYx(mDBX #Bhޘ=ORK)elLY 嗂 rEJ]v!wׇ2᥅ezw9z2hQ9Ze)k(lH:lP[oV6cm 'hm!&j蝔,Vǭ9śB lI>[ق0EY5UBwjI;-ru 4``WFpZ:gWg Lcv%+`~(S:gB2-B,Pw'p.ݻJ{봸g_2:AJKTI`g|pIC+ u>L} ^U.Mf,X/4稲Ya]y.D*&Ҏ'r4ҊJ-5H#Z y8)`eݰ[Rn%XV_ej-֘%Oxev+@MhèېYpsK΁tCd&ڹZ5IMZ":Tb#( T}| BDMEBsse=1, RFؔ"ESQ X4|5{ HIڗ/H R)n||h­gM!  3yBC@QiM5Eft*t*֍^x b]F>RYuv\w?Jb㯘=HiCJF^Aku_[8t4ueJުj~Y֌ɴvZSt|)IJ,i,ab7b+1™ay|SG:)x)]+%Ff6paQl6@`M7=pdIM~5p< jZ]@ZC59Q2$Hcc!m$$vzΎ٭ 07̜H.f뙾cܺ+MeA@°s\ ^J4AsX0;NAױ v55@-6@[0׾~@0rMl\SX Ts( TA”ka P'ϊ%86o@`d)616, 8)6eQWm ]ݜX*Vu b# 2@w-2 z,w=^/Wu() rz9>[#_^0hIJkSPo' pC-uzK W9\ArZ(A2Op7- ,z S:͗ƌ$C*Ŵ3Z r@ehtq'W[E)Wq2"fY`n!'B'>H:xO9U^n-^i~ݢ~Aviz'={=wi-e~vQz'9!9i2_|y%k00y- |w&rr`h&- s%XWg"wW-4'F4W{F@5yX>FKK#tPwrU~RP` Zo|57lDQljGt#{iG6W'*}jms#XG L'ux+4`ng\`g"`p!f&iww}N^WqKZgq$V{ח],EsxS94Z G$@ B,-p62 # oy-s8( '<.$s=3'80g``@z*h_E pǐ'ȅ__cr;_%Hw 6SB P?@@^HZxibOW#N9 @ 0((sZ?<]^a >v7w 6\]dA^1! p `B}.B0}X9P3B +K0}OxI5 90YƑ`0|RM1-!@-P.Л?*;I=?>x}F+@LlL_4A?(ǩٝə/S晞Y;q9'3ٛ}Xp}y}/I ßț. *pzZ*С. * *j, Z2-`/z8* )BʛڛBC*H빤M* TZTVj:ZʥU^J'&`cgʥkڥa*y9.`QjYv!)} txʛzZ*zj*zP Z*@'PRZz Jc+J%efZꪯ a9P%i$Jz꬚Zz9iz:Ժ:*¹]9%0I[J9Iگ:wI[J[ {[y˰ pkʰ{ +˯z/ʲ([&K˱ @P)@kC'[{L 9R;%۴XZ\۵^`b;dkphjl۶npr;s p x|۷~;[mkwK۸붊{p; P;|{{{{j˹s;˻[w뻴kkʅw;[{pڻ۽;m;k;盽ѻ;vgKۿp00P\ [g{<\||5,7@P@@ *Aй0 |CP@50&,"l@1] @ = ,lJKLL$lh ,$AD=<*m.hj|7p;-#_]kgke-kmmim6}kvm&pk т֡Ԃ}T`^^`TkԊ-:mՓ[}B} -i{ o۱hFP]FƭԣM5}NJ|UKٹռ p@-Lm>p>F j>`S  ͎}\׹xTnbj@Tpވ=Lc Um]^@MPnԊ}Ep E`=&1>%lm9=ٍەMDU<@} 胍CkXMOނ]4M]{ip# S%j !$lZ1@`J`m۝lyΕ@$a"%uA9zVj%1ɍ8eǍ@9q,YzAAzU"cH`LbL=rؑ~[5 `t#?oҨXH9 t;J(c ڵ ȏ42umZx8@" Ï(3 A?8r2 #~!&:/~[ ϖs>Rd:"(Ѐ@x $.* .t `[o"bC)+iX`43 k:*ʬ"$1)~B dJ+;s#n FD4T9 *+,ICb6)U?SMHNNE34*MXcKRQ9[ɒRԒ̬Tb]&#stZ^ӔXna``T&3%8eэ$`5Y=- Uߒs<=y1oOoob*rWtOUXX#6&8Oݓb~)~wt Y3V]ofwYr#69Χp x`Np17f]'6V3wf:)&fVaEc8i.m]y Fc7cFY뭗 "6n_ ׻6W<_8SPd>qnB1x ⩏-P֓pNGxk?~aug;pex噷ԘuaYvᯁ𭃸L>P:ԝ B/P_tJy,PB9zNTନ0Sї47)=9R-&ENwOzsKufMю4gNJM'56&QR5M*SͺLbhT֨^#}@+KTkY״2S[S:Zm-(eW,)eQˆZ cO~]fQZT=gmQֶV-AykΘv-1SK^ensiKJnu{]2nw;smashingkick_scr2.gif000066400000000000000000000173761263163240400411060ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a)ZJ潵1޵s)scŭJεRRRkks{J)ޔkJ:1::ֵJZ:ﵥckk{1{kcss{J)!{1s:RcZ{JŔJkssZ1B1sRR::!)R{!:ccc!!)JBkk!k):)!Z1!B1B!Z1!R{1Z1)Z!Zs{:cJJޔBń1R:1Bcޜ1{!){R֜JB1BZ!ZcZ1111ZsR::Zccc1!Bc!s1:!,A(DB"( fqc ,xcH=1 " l!Å7%,l@ÆD' `*[V`QF#DXP+׬ .A fpʝ ^а*V_B ѠaXACdIǎ7D9y9AΠA 3i4`$D&]4J08ٴwo&w/Xh |CJtS;\&pļ5q,=eʟ~g@AUWV]fY 5 ks:^[ق0EY5UBwjI;-ru 4``WFpZ:gWg Lcv%,`~(S:gB2-B,Pw'p.ݻJ{봸g_2:AJKTI`g|pIC+\ u>L} ^U.Mf,X04稲Ya]y/D*&Ҏ'r4ҊJ-5H# y8)`eݰ[Rn%XV_ej-֘%Oxev+@MhèېYpsK΁tCd&ڹZ5IMZ":Tb3( T}| BDMEBsse=1, RFؔ"ESQ X4|5{ HIڗ/H R)n||h­gM!  3yBC@QiM5Eft*t*֍^x b]F>RYuv\w?Jb㯘=HiCJF^Aku_[8t4ueJުj~Y֌ɴvZSt|)IJ,i,ab7b+1™ay|SG:)x)]+%Ff7paQl6@`M7=pdIM~5p< jZ]@ZC59Q2$Hcc!m%$vzΎ 07̜H.f뙾cܺ+MeA@°s\ ^J4AsX0;NAױ v55@-7@[0׾5~@0rMl\SX Ts( TA”ka P'ϊ%86o@`d)616l 8)6eQWm ]ݜX*V鑕 b# 2@w-2\H zLw=^/Wu()P rz9>[#_`@hIJkSP' pS-uzK W9dtZ(A2Op7- ,z S:͗ƌ$C*Ŵ3b t@htq'W[E)Wq2"fYn!'B'NH:xO9U^n-^i~ݢ~Aviz'>{=wi.e~vQz'9!9i2_|y%k10y- |w&rr`h6. s&XWg"wW-4'F4W{V@5yX>FJ J$tPwrU~RP` Zo|57lDQljGt#{iG6WG+}jms#XW L'ux+4`ng\`g#`p!f&iww}N^WqJZgq$V{ח],EsxS94Z G%@ D,.p630$0oy-s8( P'<.$s=3'8&0g`e@z+h_E' pǐ'ȅ__cr<_%Hw 6SD P?@@^HZxibOW$N9 @ 0((sZ?<]^a >v7w 6\]dA^1" p eD}'/D0}X:P4D @,J0}OxI5 I0YƑe0|RM1-"@.P/Л?+x}F,@LlL_4A?8ǩٝə0S)晞Y;q9'3ٛ}Xp}y}0I ßț. +pzZ+С/  * *j, Z2.`/z8+ )BʛڛBC*H빤M* &TZTVj:ZʥU^J'&`cgʥkڥa*y9/`QjYv*!)} txʛzZ*zj+zP Z+@'PRZz Jc,J%efZꪯ a:P%i$Jz꬚Zz9iz::*¹]9%0I[J9Iگ:wI[J[ {[y˰ pkʰ{ +˯z/ʲ([&K˱ @P)@kC'[{L 9R;%۴XZ\۵^`b;dkphjl۶npr;s+ p x|۷~;[+mkwK۸붊{p; P;|{{{{j˹s;˻[w뻴kkʅw+;[{pڻ۽;m;+k;盽ѻ;vgKۿp00P\ [g{<\|58@P@@ *Aй0 BP@5 &"l@1 #-L(0|,, =3m @=|k-Xc0`R JDv} ="<~=4~L¶G]XBE mJMkyv=fLՄ]ڦ}ڦ-7G`؍=gkMnp-"ٜjijpբ-Шׁ}m\8}|[EmHMmj04mܥ~mkǍ6`bӑT@ ݻ]-`f̽࣍- >Ǯ=b-Wp-]ۭԽM|t1*^چ Mb ͼ=T q-cڈ FM 9`PS0W&ML|OQm_zP{L]S<߉oT=P {}\nA0A-6mvԔKzK`{븞뺾9@^n? >" }pKV@Q\ƛ^TIPeUt~ג S(T,wl>پ~`=Ğx`whi@؁m]NJݎ`--= NfN~M0>U I`;\P_ Ps;\&v,B_0K!]x< mA`aOƈ-<}'M>Ǎ :<,Oppgp0OP? `0 r`V`S思v--pl @ Pjl qtrSU,%_5g>p]?1mP]??YɿY@ū} װ#= S,o@pN `0o <`@`.dPa-F@ H@aG ERP@@ (UhNrzLAp0p`OA֨A @ 5P0Ӧ !B0E Ł"BT#ʏiCPReJl!Jr劣M9zo^A ً@'TRyX@Ξܙ[ &Eكw>ܺF Z0zVmd- @X\n(h[]AOӨU ~˸yB3 `z#П/_;B;^ !B/ ,3  )0h-#;E0*xM) )j' C,S D:d@#'r (|" 1,  9& fD P@On?̥" !rX2E L,QN9tI4PTr"J0&-)[[K3WESQ1N bEiX Cnw[Suz꒕\`ot7Qr m9sV/HZxg}i`W]Fx vp=IMTp)M Ҙ$qM|b3+fq];smashingkick_scr3.gif000066400000000000000000000174621263163240400411030ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a)ZJ潵s)s1cŭJεRRRkks{J)ޔkJ:1::ֵJZ:ckk{1{kcss{J)!{1s:RcZ{JŔJkZssR1B1sRR::!)::)cZRRZ)B:!)!J!c)):)!k11ZZRZB!1ZcJJ1){1քBń1J:)c)Z1Bc1)sssZcZ{RB1scc{ޜ1֜J!)Z!Zc1Z)!11k:!sBBB1:1:Z:B:Bc:11sR:!,A(DB"(B fac ,xcH=1 " l!Å7%,l@ÆD' `*[V`QF#DXP+׬ .AC !fpʝ m^Ѱ*V_B ѠaXACdIǎ7D9y9AΠA 3i4`$D&]4J08ٴw o&w/Xh |CJtSD;\&pļ5q,=eʟ~g@AUWV]fY 5 ks6^=P՗`X"JF}T+4J" CgVg8phPG9E En@lIn PU@U[bhtWvdЙ4FYx(mDDX #Dhޘ=ORK)elLY!嗂 rEJe]v!wׇ2᥅ezw9z2hQ9Ze)k(lH:lP[oV6cmA!'hm!&j蝔,Vǭ9śB lI>[ن0EY5UBwjI;-ru 4``WFpZ:gWg!Lcv%,`~((S:gB2-B,Pw'p.ݻJ{봸g_2:AJKTI`g|pIC+\ u>L} ^U.Mf,X04稲Ya]y/D*&Ҏ'r4ҊJ-5H# y8)`eݰ[Rn%XV_ej-֘%Oxev+@MhèېYpsK΁tCd&ڹZ5IMZ":Tb3( T}| BDMEBsse=1, RFؔ"ESQ X4|5{ HIڗ/H R)n||h­gM!  3yBC@QiM5Eft*t*֍^x b]F>RYuv\w?Jb㯘=HiCJF^Aku_[8t4ueJުj~Y֌ɴvZSt|)IJ,i,ab7b+1™ay|SG:)x)]+%Ff6paQl6@`M7=pdIM~5p< jZ]@ZC59Q2$Hcc!m%$vzΎ 07̜H.f뙾cܺ+MeAB°s\ ^J4AsX0;NAױ v55@-6@[0׾5~@0rMl\SX Ts( TA”ka P(ϊ86oB`d)616l 8)6eQWm ]ݜX*V鑕 b# 2@w-2H zLw=^/Wu()P rz9>[#_`@hIJkSP( pS-uzK W9dpZ(A2Qp7- ,z I S:͗ƌ$C*Ŵ3b p@htq'W[E)Wq2"fYn!'B'oNH:xO9U^n-^i~ݢ~Aviz'?{=wi.e~vQz'9!9i2_|y%k10y- |w&rr`h6. s&XWg"wW-4'F4W{V@5yX>FS S0$tPwrU~RP` Zo|57lDQljGt#{iG6WG+}jms#XW L'ux+4`ng\`g#`p!f&iww}N^Wq SZgq$V{ח],EsxS94Z G%@ D,.p630$0oy-s8( p(<.$s=3'8&0g`g@z+h_E' pǐ'ȅ__cr=_%Hw 6SD P@@@^HZibOW$N9 @ 0))sZ?<]^a >v7w 6\]dA^1" p 0gD0}'/D0}9X8P4D @,S0}QxI5 I0YƑg0|RM1-"@.P/Л@+=I=?>x}F,@LlL_4A?8ǩٝə0S)晞Y;q9'3ٛ}Xp}y}0I ßț. +zZ+С/  * *j, Z2.`/8+ )BʛڛBC*H빤M* &TZTVj:ZʥU^J(&`cgʥkڥa*y9/`Qj Yv*!)} txʛzZ*zj+zP Z+@(PRZz Jc,J%efZꪯ a:8P%i$J꬚Zz9iz::*¹]9%0I[J9Iگ:wI[J[ {[y˰ pkʰ{ +˯z/ʲ([&K˱!@P)@kC'[{L 9R;%۴XZ\۵^`b;dkphjl۶npr;s+ p x|۷~; 00+mkwK@~ 0tx˸sPz@ ` zl lP wjQQ~༾ wp q˹껷\۫P{<۶|0k||l{ "|CA50JF2dlU|hlAPw{;MpCp`|GH{@S]T=*l]\4}ŽȏG\-0c-jO=LVmTY:`=pA -i=mp} t-0}TM>MF|٠ aaڠ-EE Wו ՗S}‚ mצ=m[|iovl ېהMٗwpkpؾm9ڣ=ޟ WHPv֐;ϵԷmݙ}p=rHPhvH ;Սm]^p;bm}HLmv߹@q&>)^ ,NipI8;D}L`.a aPLePM:PLT@w),w`!}I ap[HLWnYE>c>.a0^R ,n|W>_ Pp_xƮ,,o^V^JJ`>$+[Rԋ <ƴ^۶nJV@`uԜ-͌б~nҞ> J` d@N0~C `nn=JEx=^&I%- Ѿ~>@4N6Š}Aa@}F tS{d~98Wv ^mP^U@LJgJwL*.c\OYI=} <<@tھ%^\aiP',/~7@,mT E E`E@Fǜw\~!\PbA/ointoTy `7 d8@5:h*HY ćQpÈH0Mr P@O ? "T.dQ`AQ  RS2JDy1%D& KȲiծ][CL 9mܩBO @:(R** R:%(k A#w5D;"ʐR >Hgޜkw'ޠ C_*NNF w }xQ,w-? 7uJٝ;A 5P 2w;n(2/!@ o"J s!R*? T@6Oޚ p>qĎH8o@ D|, ,p:6;8,k`o<"@R\:q"8ҩʺ<3#+Ś/HB++`=B DRATSӑ802 A-`1RuLU-dUZ5ssE8 W@Yn4P GO#U"YbZX;euZKH'+i5\k%Ԫ u]%]%VFlUj_Yl w!~lYytԀxx5V:EUy1vb#ciym6h#g:yng|3~꜏y[FMn뒏NRMzY߆kz}SldÏ&"F| WoMhyyFZGuZsӞ`tQ/Eduie;fI&hAe VDsByU!~:ZRȅeٷ>Wr&n܃wv߆yC7޵QZ0+~>!U!$8H8a+y^&% r׵U(8N;רG93ÐM.,Z,X1Sp&gX֓HD:( ڽw$LhJu32rKc:8ҩs 7o{#7爬`f鯐(H:N];8 ң xBF WQj3%+*3,H .ue/}K`Se@1yLd&Sdf3LhFS$'\@f7MpS⼀5Kk:@dg;Nw@g=yO|Ş .@xT$@ :Py ehCOTAApы(N- i 6jϑL)IWO lJStGmQjT?hHRb,-iR/Tz"uP?ezSb?ͩVwVsX<5'@GA:ϣ6uLURRԪTkVۺUv_u@X ϲլ:`,PU55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d" !1aAQ2q"DBR#$br3S4 !1A"Qaq2B3SRr#b ?Z{)\j vrjZa <m$ʣSYo8Ҿ  \9xm'EԱX\6X&i*b+ui%k6*yя2dRC/Oe/a\(Qo_g~'~{(6{wmé{'~vTRBxj&4nV+t6W L[]U~qUO7vJG#Nz:q_E۲-0E ;*' u'3#\vco-[s {!ѐ`AzI:=#C @|CYˊCHkkX_pcaVeB* u\E]|] N*6{H=I*޹OҊ塪oWy7vl5clE{pA#JzWvWw吃UukFe'sS먏vElui>I1eV?IT߷az $FLY4sZ`.^}esi-oEQCbVyBBқsc-S b Ak#[6C5>6< vB7!aֱ ~^DjbuQH ]*_R*z\2_u}2v *ݭ5I15*yq0e\,O!Vz6\H]‹rzJ6MTʗ,b$:[92GAz!ݖyGY,^nz}I42}<\(ly%lYK)Ju7U\w@YCf\N H[{koE95du;eh4Ő yh U$pzfft0CpM"{/nǐL_28>p(FQƊTm<'t;"Ws n/`٫1ē{NFa7(1%8NDG>n6lNU[wrCmqʬD`cj<)H%K4D7 ]*_YwXB[r)SKL~kVZҡGFeA1kr4n[["@!EҵYV 21wQ$1,ѭ/1s~Tk'7{82jy ,kl @ldC?)C%^_MBES~쿧GS#%a'( d88$ ݴq :' D*$̜[aWOjō<#$v!  FM*GPɔɑ)`m{sSEpyQ"Kb,yS! V5o*wT_4tj\S|}Os=HdA伫k{z7 Q5!oyeuwYҥU+q*B`f]˶d7LGG,wwS;m=qxLbDѣ!Ǫ Bll%_aUzmq>C)8n?S7Pq%% tYHkbC1yMj:VL<\ /_RdNK rЧ(8`Yծ<6khʩ4^5tb@K)5:jS*s?QmHB)Ԏh D&з\|и,ٻy);e?Mw0 UtZ0OP~]},CMgZg e7O=5sm/  / $5Ƽjg]hY$o`vVKc  |G/ҥ;*zexǠUz#[pʆcqdVbfh]xm#5WW E+*`&weE"IxJZ^@ʗ9V2˔&=mKĥEs9RG* k_藉YQajUG*_XEt'QGEgޕ!Oҿsmscat_scr1.gif000066400000000000000000000041601263163240400377070ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89adfdƥ>=>sY!,`Q\LYr(é^ˈ4 xYhGd22zШtJZ,x^x,)hAIc8ϿOhgjh2 S0Bza}L-ih?~e$oihKxoihoi߾iϺրM hFKϒԳ6НuUCp8obn{׭2w|Hқ8P& 1oXbl)Ś8[isJ\\3cϛ;gڤy)Od^"ҢM+ճbʚU` hƄbT2&wۿ'R@qŐ#C#b1 ɘ3k̹sd @Ө=VuԐ@0@{6۸sͻ +_μУKNgËOw˟OϿ| mwo8! 6}{yp$ ("G!`!§0`& /h8c=ᢒ(""cS預(@F複K>QRY&a>iXj%beIyfb&y`'r顓!f*teU袝JZRiV)馢Gj| 筸nȪ* vfA|(*g'͊§mmI{ꥫ[ƶk(l' 7G,w1(!(Glj),[©#8g13΃޼:{G]<?w\3B=t^49ouO]XtOcf2#fLVs]tyk rHj|Olꩅ睵zݲݖ7.qv>2P3~v+n',~.k׎C:/o'qrF+8ws{?װ"^~Osov*G@ѩor{_%'<pn A qiX 0X6 ^΃xǹs|ކȽkcXؑ q=ܟ o4HL&:PH*ZX̢.z` H2hL6pH:x̣> IBL"F:򑐌$'IJZ̤&7Nz (GIR򔷻*WVҕ ,gIZ̥.w^r0ـbL2f6Ќf4jZ @mf4Ӝ3v3ofIzg>|S TB/j^E&N h&Jщ hF7юJ)E\BPc|(8i9 0iS8ͩNѤBӢôNiT  JUXͪVZU~=GX# 7g-9gjS=զπ4EC;smscat_scr2.gif000066400000000000000000000052221263163240400377100ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89acecck)I!,0XGYvѩZ{4 xYhG22zШtJZ, x^xt nϸ?0LWʿ< -knS0BwazL+h  @{}ei%0["a }ueh|hȲʳ}˓i FhԲ|ީ«Ucvtw!|iU׀Lȑ5  Ѐh4C⤖IRʬ3%˚4gƤ)P2rҦ8w*ՙT ӧ<}JUtbR9jԳtRZr@2prHח0-Lܿ9q%<@8*njK,+D4Q̹Ϡ/V,ШS^ : jȰ,۶oͻ NqУKNسK_ËOӫ_| $8OϿ'|Aѕ`F(IP.|  H(g!rx` ~H')樣—}b"31+h$IXe2R5ޏEeDH\ ak~%L/relfS ](PcFif gc4I囒Hi\Ze5zi~YꐭEz\򪫫Ȳ ibFkV-f*+.z^覫+K,l$7ox ,P1g W,2A#rr|2l1]2sw1tk.0گ}/|o觯//ǏW2 pk(3=~+_Ip͛F X qCZ&u(;$C-8if@NzBN(7ӵPus0nXiY4^g'VψCoE4zQ]L H2x{`Wxw4׮]s鞳׸/?^7 xG<].g<3̓}Eþꦗ;U~s^;~Nf/цyMm3_ݓp}omvgοO/7?O?ol;klx ;smscat_scr3.gif000066400000000000000000000071631263163240400377170ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aM !{ޢ]{Js\r!,`iJYr©j4 xYhGdrdjШtJ6QX1xzʰY5 k }[;'߳}/8gfioRo2g"4s^}bzwe g E8`J al|#i%8Z"`|}za0gҔh$ڪץcJlii5u:6 ~KpF `vnױǃ*Y! m!uY "jx2XAaIaz[.gs ZegA>* dxviWJ`+kWp.j{:kk*Z6kzVKlkF:+{lVkp ޤW,nJ(Bi/ob^0&cXVߚu8 kWxlƇYr٣"{opAp< Fhk뭌zk4) t{6q"$c3G[m=>kP +l%}C@AW νw"3N8z 7TCzNɭIJ/ ={[ݰ -vx^ {6p+sJXr~1̞n`P]{k8譯x; wً~]ӏ*mE~| !kOž>y ]nI{J"']+}OOV=at;.=mtj`}HQ@4ɮ5{-RlӡÛqɝjh2ܜk6_pGgH?T<w/KRE4g4M8B#H>q5=U ;CFT#Lђ'9HL(OYM>SbD%˫NY"X.[ލYIK# `LrQ!2k,[2PJԭ /Fk`lW/g(v*Ц)g0!@)4^(\,иJujІ.*2j<,SBsT$6W*M2 ,ՔXu9l_D7*%u儫0k9jU]*i&JXUSi%$N~I:S zؼ^5jeE(DCY `UXSNS01 [QUnIEږBGbȥr:unt;]RmkŅoHt8!m;oy^󞗽Mo| pFlW8MpD;'La pn GLEpF?80CN8vkTX( Ldũ1)!> ᏧLe 7Kb'8RL2hNLd@`L:YWVMM9c]!<i~8vKszC$Vkpw'9gr\/%L̹#K8rW}ءn}#:y+=.عɵ=}=k:~;r_g|Ϸww|^ړ~{m/׋_ܯ}_ws|·~'|wVzyyWp}7wW/tnsnp7|G:mwׂmm1y73w}Wzz~RvxzzIwF{OzxXuZ򗅬GvSz'SWL=u'{lhu'}A D|7n~'{׃z؀y8cG&~WXq淆h|oHHQxl_|(zw{t(q؅dg'Xxxw؋|¨n舟؀uCq(xyX;r(˘~8`HE̸t(~3]~pѸ8yx؎QbxrJH戄݈{j%W[vX|G(x}؊yIِx|(yLLJHϗHA4Y6y8:<ٓ @B9DYFyHGiLٔNPP9MgY\ٕZDFdYfyhj `vOyn)Pc`r ДA SYm "QJMS 0la{|YYTٙN)iyk)diYpəNzɘl@ihyIya ɚL隋 [)e ߩd9Iy蹞멞g)y)iٝY*j g :hܹɜy9ٜ&jm陱9&ڢ'9.ڢɡ4y#㙢00:2ʟ>/5%j@JB6 F*Yz8ʤ:=ZW9TJ:i:婝 ڠɞYoJjmʦ z?zڙzI;smscat_splash.jpg000066400000000000000000000051411263163240400403440ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky!Adobed _   #%'%#//33//@@@@@@@@@@@@@@@&&0##0+.'''.+550055@@?@@@@@@@@@@@@dd"21 0"4&!1"2AQaqB# R3C0bs! 1A0Qa"2@Rb3 KORAfV$:v?3L/1Ҭk4;,e~>߲GL$԰Hz} ~S3b̭EMMO]Ew1/kS1iXϳ%i ej>yĵ4}lvtj!ycy1fadPԃ7l@fA2x:hfquQHwB|8~dow'޵qɈ8II4u2ajpxy4 :ČmsSv}[F?[}]R[O $ma r* hKYt̛]eo~\suι:z}XFKIsIsIsIsIsI@!ia{)H:BP^8I&2b6>,/hoNdNM'_ia{K<a˪%r^)l P*!`jM٥a[wEwx,?Y{4qZ#enmx){ ` Z0x=s(D}Y^XW+Yu|2QND>,/5|OɻOFU蜏sc³R*#E/x ,[9pS>7#-PSЕ12di<c ?z,ڿ?)B'P7b=DS@t{li SŠRXzrMSK_:P-b8"qkT󬇝d)=͍8cpz'Bb|ѶGFHCH26P1pk\\@ҵF dzYbj7kIE1@l]Dc5tM9vVڽ'i.d(KX Σ6Nln3dmQ,mXs'*.Zn/%Wu5phpa.^X4:6ƣKk9Ƽ$ni_UZ>`Lj%sd c;c dlU T=E _*"nH)ƛhxʇKT>rM>;q1QVO&412͕Z[u2G yUrk#QC5q"WJWuyճ0d4iS[[#]r\2,^iMrKTOe\ B <,q3\?Ƹ~5 NA+1ouI;KF628\w5q94%>:t6)&schk\2uaRIsZoHrjF9cs$s0=OĻfAUMo{qIKUMOm\`_\as`__c[qseRefkegxnpolqzsdmtjx{ujuuz%.7); G UGPM \Y gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZ Zbb~}b711MK rYZLK ݹ.ΞjUJ]^ĢDKp\ӑfiR$E% $(حŚO&PEN \]}%|X YEG\ dO%h0y~yTwFPXsp]Ug@ח+QZ($E&R]GUg?~{U$x_N,LdAQ8W~ N*ITfө)ŤjEz2`DQByY6+GR\JAP, IPT!Ǒgmɐ'AV@qv4x$X mfVXVRoYS ZJtvpjugrFYCU!Pg!xT+K}LQ_mDE;HMHn 0a$D5JEJuni@ང\EjЖ`Ֆgmc69,Q$__)vXJǺWӥǎt*|K-WyN"ITytDSW9\i#lS0$ .w@ 郱ƙn$@>ơjNuyA% ъԢ}!CӇh8I^rJ "PHwguQ N~U(Z?ئ^} JT 8JT,qf\RfWQ!T*DPOⲟ( V&awbg#8hH:OQXŕq'@NhA)"@kչhmhXPn#6 U8`!Zw(cNI3){ zq7\IנeF(2*Q1Õ خX9V<1Ȏb<ⲧ(D&J3 ^]ś8@G!&~$hbYR&b#՚ odiDS=&M,AD &l߅3$2bGh7&)!u$6 }@L13FZu Ι>4[.i#t:!)IʩO&$^!yS(9r$!~JpZ8Q2P[H\:ثQN ϚQ|KPdhk RoNfe')Mg+!젤z1wB|~wԻ[PwlOy~on s=sȼ]99` S\~"(N_M>`n)WϷ)afQ̈ƙ ;}L\8=ԍ=TEs#;Ǿz#^pA>v$O-Oxs%ben|G( ~}g~#jmՌP-ϟNښ{a6)Ox;ΧwX嶠{7VW~cw~{VkVgxdd'zz7ir7V7|.$}1vyGgWY \xa &bz}xWcwvi'~%h&H\łF_,8~wVFGBY0.RFw5D}K Y-Xx`\DžNz7qvZP#?()YЇFQGXx/a%(E$*Y|}u8v7.+,Ї[^H{\Mv$ihg\^؊(g{aЈ~~X V6'XZȌ 9G18b\]xhrX( jszxTgd\T Yxه|h}&$XdŅ\hHH^"9'HXXPؒ81Yȑ^8}xU;")Z\ٕ^iXهZIYfbYPٌH"g&o|ٗ_[ "kWmه{yriaVɕX&~旖y 9]Y"٘w c녁dyZW M[)h y s^0xgٗهț9ɛiӸYbIukI"YМ^i陜b6ɕ)]Iy0؈#ٟ]$[Y^)\ ::Iyykxş ZɞI\ʡ *ɞVs(ڠW(֙*@5I Bڤ|ɞ:ڡHڟ 9I;=*yXƉ_eʠgښ@jy^ڕ5IyFyƘթ@Zɞ_D4ڕ(iڟ[0I] _LXIQ"%q ʗ]ቢ[)z/ -:PIf *ZT%Y[0ѡz\z5J`z1z I͡bڃ*JԊغ$ڮiz*pGMQs}8[:5*TZZ"% 2 UCYeʱf!+zJ 뱦(RK%%;Yfʰ7k+${ Y Qq0NaL: ˪]>+}֩}XhĦIPP2;駬:<۳\Z ! 4HICL;JhӋD\q3]Wv 蠣`"{JԚJ uNGit%1>KԸqEJ[d::$-j g$xX/75+XZ 8n9тL=CTR3lw4Rx Nx!;NۃB9?< uYSWesLAŔ|= |7MrtL>Z.HF-:8:栀._CLQP =`M9ק&,$NA@D|K,Ԇd-rsA xdHYhv-BY梅w3BTw~Y!RBP!RP H1D!BFWҾ4$r YJ3_G(\rxzAxEO!X1`ӈ E0?a#򱏅#iB LrR:<DX$pɶ(D6P(JQ`D FP*SA1@rT/wWK17RI4([-Hm ۋc)E4E!TiJnzӖjAWpҔZ@L `+>ws6~>E^4 MPS4y)8+ ~8w?TL@EDTbD$&#FktH`A8#=PI4oAyiQPdz#Fu"ZZȫO86yrLiPϕͶ(@X 77B.F6矒KK-BP9l!%I,(#9wZ\pZ.7Ir9 K@;spiders_scr2.gif000066400000000000000000000164431263163240400400760ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a   * "3 ,$#(:A!A E+.L8:d9DfAULn{qIKVMOm\`_\as`__c[qseRefkegxnpolqzsdmtjx{ujuuz%.7); G UGPM \Y gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZ Zbb~}b711MK rYZLK ݹ.ΞjUJ]^ĢDKp\ӑf iR$E% $(حŚO&PEN $\]}%|X YEG\ dO%h0y~yTwFPXsp]Ug@+QZ)$E&R]G)FُGmBI'N,LdAQ8W~ ӓN*I$ө)$qtX {S%"eJAP, IPT!Ǒgm. C8j]tuJw.YQGvdVS:%xByTeJtv}pAéɕ eU U凪BUND4iU}"K iL ~*QDTBE|# 6!rT~ZT s*+ElQ\ PLiS ^(Y.ͥpVmͅJ>vknLw[IF4}!%{5m*d-oD&MPWyM" YT]ҍZegipeGuyf{JRM=LTZ3dw- 5 ꕬ!1ޡr5i{ӓ %*p]"{*Xf[%2[Ey8k*Yb>!չ(TMO?{}=(ײWDQ;_&,H#dEF?I9ܦ(ӿO@(;H|͸rr)nR A:Ō_54 BCSWG^‚8 }K,!A8ΙBHNr"U1C>/ה 2-k~8C ~_Q\ ֙]@tQS%ћAO2J> ?|r##W~T"*` fM"I;j^)LH|R d8Ȅ@Td6p`.E/ʼn^ʔI6XOҤւ9(R8@浱S_#@f>+"Bk`O *O~l~L2 LMEgι@~ЃDE N UBW8l߾>E.6v& |ȸDsrwԦD摿]i#*3lqf~ʝAV'NC`ԦT}N_щMF$ɨB[/9X5+2)`ZGtéVea+%^iGn ]]<}u}1 N$|,7}$ Su_I]_4X`%e-N5d%'n҇_åM[ RѾjSg>2 φNdT,6".Ns+Ad)s" -N6*.tI\pN`l,%Iy(/eAIEި #4i+ QBrվzgŕ d_z<♕0|etljjRtP\Sy*/H-×0~M|R DŦ0DBTMR *qSۅ,}ۚ JJ8 ApZ4:%ELHĪt?]äN$d?(P\õœ*Q2RT{+ֳ^#Z'vhVBxQik t'ۋN-m')LR<Ŵ Oѝn%րVڪhg\TyvH#g/"KKGd?*?8hVӶ)9`KIS=JzBG@OjsvxF\1yLrx;XwZ=IH4~ .W[|/K\4; ^p7WXFټ.A~|Ni n@:=nk>Z0A.x!YeU=!ٔ'YR9BeJJ ɉ_9Q-CYXINDmi)KJDBxhD)Ft M8ؔ/HC3(hYH@ُpsqIX؅ ;H ]Dsӏ[ %QBB )ُZ.UQّYى 癕J, !؜wiЙ] xK͡bSgθ癟/8K)z*~~p9r@>[`y0,)) P 9%IB?ZE0:+ ._Z[j)QOZl_dd@*j8xP\*QQ1NBI$W9\z+hZH/$NA @ tYM:ڔIXxLjZ89qKOE]ĦÖwRJ:ʉZ[ЫyࢀZ - mTZB 9pQ4 U-jZd$)J*O"R4t֚* 8תKz@/͑- T\+Z9" .]jz .Ӵyz% );L Y*I,dt[8-ڵ[B}p+$QI "9Zе_ˊ [*z* *$2֩DkܪZi8*蛯ɶ/H' ljI A)pRKXd˼غY 3 KE-q"#qۉpDKԪ ['/0$![&CR!P!{![Ik{)L @ʦ"~P)* l̚88JvIB|a!B[Z< F#܉eƞ)8A;k2.ԡPt'N a~,{|]؛֞ ,>݃^ 2uT7JŎ}ځ̱| +--yYɛśiN$= f!i/WI#~̝[j<H#/mY..4 UN1Ɛю!OQ/p#N`@z\J)*]GuOJཻ`q۶qPpnppRjF랯&r[꒚T/Wr-_ 2_ם N'n Va-O:,M-8nҘڬ_kʹ}o [TB5$+$LX^ezwLw_)Sܶz<1 VbR++6T< ?  $HP  .dpXB-ZZ~2量O ς$=.⇚8/2&YdWQI֔RQH=RdkȁX$īW,J1hp;$yWJp"" ~4Έ< e tN%XNj0O ~.PIk-k2-.p) u3+(KࠐCm HfD ɏԣ {|-ǁ| >}uatزGY+|fXЯӯ 00 {O:4Z "(> BDo.jb(v+#/# $ V'8@-^\ d_| p rZ v:dBͦš* @8,ȃobE "T?<%S>xҖl$ҭ ;X. -x@V$s 9eTB!rQ_=PBIWBՕbroST=" {JӉ-@-`pR<5QVhdU tM%GOc -tE<(G T@y dT K#  HYu|^я߁8O.(#S;ȃE#eZhSI?5x"bB:8`lJPÑg -Oi1R͹~j/N ,Ù@[> a8^69v,8)Z;g@ q>O<\~~H"Ttkcl1ARL. 0>=PeS bI0*ɯ7g,Bʅ ۂq3~!,cIPmW2'I1i8 ' Bn X}޴)3IHFc kYXįjtFHm|B".@ ޛ`tj}{HEv{W:p7wnڂ͂PYNp9xҚVMO ҏ!WR.B~,IYG:4nAXl"vY>a0 4'dU1P@;spiders_scr3.gif000066400000000000000000000163221263163240400400730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a   * "3. ,$#(:A!A E+.L8:d9DfAUMo{qIKVEGhHKrMQgMQuRLfPMvTWhVXv\`_\as`__c[qseRefkegxnpolqzsdmtjx{ujuuz%.7); G UGPM \Y gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZ Zbb~}b711MK rYZLY ݹ.ΞjUJ]^4EYp\0cӑf0jR$aF% $(حŚO&bFN 4E\]}%|X YEFH\ dO%h0y~yTwFPXsp]Ug@+Qa)$E&R]G)FُGmBI!'N3FSdAQ8W~ ӓN*IT fө)$q$[ {S%rԔefZ归eP,Դ@ 8HTp65Дtҝgm&Nѥ qv4xҠKVѠU"MI&^0E]^]\pju'!>sU^PMQuU2@L  pA9@%m4EbQ$FE0M'xgu+ ;הjЖ`ՖgmTl@DiPDWiFκW@2e4Bgek'Z]҉Zemv˃:=Guyf{.`tMx_ 7;˻X]2G&\x R^-{x*w~N(y/. *p TgS$@Ȃ)%x- ޕ(T@ {*+RֿrcJ9Ǯ?x.0m{@8BP$an>1)'و)I圧Tb"feߠ$@y+뀽ԑ( E6|#NwDxŒmEr" Eۗ"NxBRw-!jV .# 2пI]sx,,yHUFlCJ> B P('-VS,ewl p 4Rf-T8H^ (HB6 H.˕*SuW3A)D '?!Y,~IO`J)_1]$ /Rn"fm ӗ2 ӟ_c\^Ⱦ@s5{ g@,KJJtBS*Iϋ++g9s$r:OwiET.}#xFٿzaVΫ' YyXD)r\ҾT_|ErRDj׾bW?V`eCT|a,uPRd~fM}M.~`ҾpvKAT""qeqy\Xf"SPWhe']s~JUJX I^̀,EZ~tj W:IիeA#m>-X8*,DTXWREwf-;H4D\4Fp\\JRT.#LexkK{QaPfB\zf%@[JyJ7K`3Rj{ѷ26a~ˑJǗ|L eX_;yEd;&dųqnH] )sAZBdDq3uL. Q̜?u0*̄H|*ҩWx#l,$0<5X>(ik#[ĕ3+QA>` JI8R'dEޠ_=+!ǥ֛bElr(ъzƟ%6XYbv˜4f+;exkdcc [:>JŸv(m dX!uk0iY>JK =qO⒫WZE]S]љTNJFmo+5:i(gVUZq>~¤0(qP/./ʬap}Xߞ8 to>{%zIgĸ1{a,e#gwg^gq;f)@ݕK}*NπQnhzz%U?{3=b5\SDDNٽ0ܮyj^X[.y+vP_}~p>_$9D^_L~{wv}`P_gj.7}}QBg} i-UHw`}G^]ā~!waP#X) )DAXwFx:`BH؄ЄP.{s!zb0z2 FaAhzRG<&dSEj؆nbp~Yh])d(brXmxDgl|ap"|{x(X(!iш?~؄RxFX؂h#'*8]؅XxȊx-X hGhiE>Xh"xؘX؍)ژdЌH\؅(8х؍8ݘxH! X @E(b uhHY( ɏ )Y'ؒ2y1y Y߈: AY< 툒CɐEFBـN9yyXZ\ɑ^Y`ȓI9m`iȖbYo6z` Q;-%%Ę*j_JyOkIG*QA1NatzbڀpGz__Z|yH3q H'U OPZʓ5ʜ|j/ișnzqK;jEV-Q!`,:z`I*pa QPOa P(!ڙZfEqڦ 皍 a* B 9* ) dzـʨEʜT(Z(CBڊ jˆj⊰-pJ'͑%> %PAbj٢( i' J${驵d֚t / ۘz jC )ꜵyBpR+zzf+,Zp. 8˰Z(OR%y˪ٷҘ+fY]Eךc4DV ɷꪹ(iiٰ A[Jl;|{f˵rz1 A0i+*ɱkp*˨ڦim21t*UAVaww` [*Z*XO f!Z%[Yx_K',#[:tȭ<-AjQ{7+: H#ͺm-Ħ[J Mk sv**Z|; LKpz ۫I8rPa IڹǞd` wG[l:Ɛz#k +ku ͚ djȀ*IY* IVN.x&壺 0̿6[)i tzYD jw+ iX=¼*x X+ ̰۳ ܽjXK![; ܬY IlPzd|ȼ21=ȊLK֋ CCD zh2w{*q:  l rJvB‘4d )ZF .Q(ʴY d@ 05^ܮ8(h$`PՀЄʜŕ[-Zc]־Phm Ҋk͙Z\rM[BkK4>7)ʡK}@ #2-Ki&q qtpZN5ۈ,kyuQ*["oהu˚6[ 0ޭ>Mӓ]y8>¤:JS* ̠UI0 ۬ȗb0 p୮Ǫ7ٜin}δi0 1NHinF[ ` ̠:Q:I*PNQSA'j *ʁ:W.BAg.`|^G0F;JҦ.+羰vK+? *-={ȭ)`(> +T1 k2GjڒmyN}QSW3 nΜm:FIY%e1kH`MI<!nf tĦ.%jOB2X8ЂNΰ٦;6̌(rPh ;/'[A"$ߤN̙oʀ EAeO:Ĉ 0XtF؛@`^|`8@w{Y׮8051q kf[o:1< & ;PPcV(2 H"zO@2W,+4"P40@ 2H!*X`: $ 8P# 24 rAeSUFP1ydQASSN= 3MQLk(i)' 'Q@PØ #-@  #4ULWQd:"qԃVo0wnM= k|s}Dɠ;d H0 NpdGTQB\*c9b72h6ʆӗI<Č2Q;VY< c'ԘdN@#ࡏAmCRZH:75U 1LY0nRo񰫴kT+lTl  WDl-7;j+Z XR >>:ȥ;4OvF4fB>*}73m+yF38}J<⃺J!æu:@.{8zo0To'=h'C?5)hvxRXCɞ"Y!} a&48[F:MXf4nq : !8:08y55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQa"q2BR#br3CS4!1AQa2"BqRb# ?6I,l .FlLGM{&!v&tJ~LMHZ//TŬ(QY如*FR@!xhr&! ?Bcs$^P [|1Ywh v9' % 8[HDбK aع7=f{W )2[H.lZuߢzJ\UD'*Sw7_jue;ԫgB6=S#Ȫry@v0 ib]q}  Δ@ea>?u- Eߋ3յ$}6t\90`q]M.t_#As=`G YĨjV7àsf'9Hb7Q&ײWG 8=Kq8z'6{MSCS戜wbs! 6U*Ma$F=n Xz0!Tj'\) Jp_(S"nI޴78;pPdrD#$H @_)sT~4Aj;ʽ龜BF mg>i$d(M~,18\$˗IеvGk1{qs "Y+ۑ+Sq,Jr}_ڞVӽ6'o*i-!Υ_I7/doqFǵ4q/?-܌i=6>5!t66shJ. _4)8z&㘭 mtmuK{E.5XIZ$a%v;FR%F6<~c|Cu{TQ_V啈-0T}3ct!\]DIpÂՠ9.\7QmO52JDr%߿eJCz$sGA|v#T1t4\Vˤk ,F4ZQ&NKckǺ;M kL%5NG$c#Rǽ;;Mʠ 4"Y^F)`@1w}wxVm[QF\fqJVnUJ̃4 xi%QcKN$MDBSW/*`.*VHlDIz(؜t{*TP_starharbor_scr1.gif000066400000000000000000000115141263163240400405650ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aH phXX(ب(8 P@ؠh@hHXh((8(@0(@H8@XH8xxH@8@ (pxh`XX P(p0HHH`p@00((@Px8 pH(`8x0088 ذp@ xȀ0`P8 hH000(8x880 8@P@(08Hpp(ؠp(0@@@XXP00pP@8p興@P0xHXHؘH80(( (@@88P@ 88x8 H8p@0@(0h(@xxphx8HP(P XШ`x(p8hpH HXH8@P(0p𨨨@h@h 8X 0@XXHذ`Ȑ p@(8PH@px08 ȨP880xhp`X ( 0`hx@p(8@X PHHXHH@xp 0P8@8 (8`8p`0Ph0 X00 HhXp08xȰИhظ(!,H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sIϟ@ JhOH*]ʴӧPJիXFʵ+Ԭ`Ê{իٳ[ɪ]V+ڷpݻx˷߿} ̸yH<ˌAp࠘̂=\YoѨSK@bqרO Պ?͘]vWMp֮+7.͝G_xnˡ[nË>8֥/-)W|@nqXwzxEo^V)Wyux1'[p VMwn:.(&X1ww4Єc_%h2(]wqQ& i冥裊T'%wKX6v(lNߋS7&ʕ@悓&pI GQ' }8`s=mrPV E]a^ e, &*v,iBY䟫*jzkmmJ`L.)$"[2;x8hgYJ;mx c9>Z~W~ )lDr8Ul^(gm-[f".:jZ,p 3%o s|KR %AzR$C#뛫ݗ-KSTѶI$D4 ̀|c7?zU4ox W$ cҲN]xU+k_*pޤKgK8U%:LPH Lapb "@B2p L)0$xD! "=+ %@@0 ]H e:96$Z @NH&4ւ:' rB+F`E<@F`?< %,t@%F2R\`hG<0 X h@bIf h, 0" p6P?*IA D4@,()L )wkAfIK[&p @>A0t#0UiFUF;5~ D!>7  2 rH9]I^fgI8Q1 ;[.摈 ħ̐#&;I) " jP Xh`9E,P0)jl(F ty4cWVUI/Ը%$ 9h2 c#/'0u@m fkD"F@ESԀJ]!9-hA(2I`]Hĵ^Q *[ڥ_Tj=9\5҇4,fۀANq 6@@-b& Xp6|q4&7e.s/n_"ð]BW4.3wy~"`2NW-BYM=ۿX16LHB24 6A{|*T .; )ET0䃚 AO Pnk$-OVd^Ʃ+ɲD ˜ܲ-H:f 'FP# "-9$`E0r`Ex WlLN:ȘIūwg1DnyKm?L`HQ/1g=[;zq[R4 hlN Vkl+`3wY"jˎ(? ܥ@'u{[e+;P-3.w(@Ɉ:\VES/d^p`8@=>X 'FOwWD+0vb!cD u)D]9jbŒ W*pu //a&(:uep+>] P {->&Ł{|wu O:+G~ׁw}F@ ib:2!|b\e]o>a Ijl?l>9~~=7PZc9NtX||$_#򇂏|7r1(@,؂5B:o4؃5CHU!'h0|شOHM1XrR#Z]âb84zE&P%c0{ # `sQj60c th"Es|cj,0Ua#H:>:c05#c*JÆ!x2-^JY鏵 pi@{ҩ^iI/MAbq59/M0AX'&X94]` ?G# q"J%zb 8 E˒7 Jpd@Dtb7 M0t7CE2&0@ N C0teP2]>%^I v )v Cy(3!3@)Pze€j8 xG3zj ʢyX=z§@ Z_ C~qz j=Z XڦڬCl zJOw!Uڢb8j}%oB˰ QzpA8C0ZYC3+u :&RᬼѪdRE[۬ k@"[8HjFtJ~Y*k0 ^ٚP #Q9# t(k}X~@[ Pz[`80 o @T@Qw8]+[zA `tBO oa+#G[G.+*U Ppa+!k%{}r(olJ0+}[\Gʺo;@+ ETkK3X' ΀Ӳڷ["д[PHUtZҋQ ┷REͻEkp о;K4+H@M+ A\kwхk*fJB(;<뽏a<{+ l.ּ\۽*L[׋LPL" L$<-qU2lBkÚLB/ ͋L @I+ĺ$TŖzBWLOY9(HcvIJ@s, 89Ht HWJ ~)l0;ȎȐɒ<ɔ\ɖ|ɘɚɜɞɠʢ<ʕ;starharbor_scr2.gif000066400000000000000000000171631263163240400405740ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aȀP5,-p @%АHX0HD ذCl*"@XBu$F)Jxh`nB0 p@cx0&4D) 7XH8HB79A(4T@H @ '2H@&2XSSU@&H@u0@HU@U.$4d&.+@R3@2H%H@PH@xxx hXXx(@H8(PHH(8(Hؐpp@h@h8 P@xh(@(p@XX0H('9'ؠ@0'8h I@88 8P HX@H`X؀xpX@P`X8P@Hp8 p蘘P0(Px((8H0h(X0HphPH`00(@XpxphXHHP 8phpH8@hu(`xHX@`@```P8pHH@880@ p`H(Hh HpPP@HHh 8P蘘PhhH࠘p@PP8؈`PXpXPxPx@p@XX@hhpF($p(H8( (h0 0 P08@|X XXxP(X(hxx008`0P`h@XPHh((hpx@ؠpؘp08P!,wH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sϟ@ JѣH"YʴӧPJ4իXjJׯSKlPhv5˶[j]jݻxK߿ LÈ )lΘĐ#KLYx ϠC|ױӨSKoհc6:ٸsF\Akrފn¼8ڛ&7HҭۉvGoL#&p\|MF7/TN0o$`~qY{]tFT`o%+exsI  "p!^hAՅᄬ}!Ljaf҈ $Q}k( aza( (g$aNŤ]qq+Ie']8f#"gYdfnIg}rICaEaa\hAB8؞'1 \n( l|袄qE=E9kqʥfc~ JjT$*B |^ )>LsiCi ꗡ %jVh &Ļ,[ IkfB24.^mj[; .Y]E`1ĺELR\]X%k a 1hACU^&7+׍EE: tF]h́,]qS<ʇrZp1@͈dꦁB Y;Dm,]hOnVmuRJ&O! *Ƈ͈4a`'ݬ'\r>ߤ f@5µ C@px~BFO~3 +qW|49 ^Uϒ}zIĮ;Er!_4.Bs^D}=hpR/>d vt) !!43BH _%*)ktZ6"𐇅p5 q4`<> @ #Bq A8bp#BL\&D'@8QҐ?X9{{ gi*V<-P/\`d/рp& FO`GG^Ơ ,Gn@n y{?zc:8@aX -hzwIA d |@y¤&Ib.OJS2/ᔡ e1h k K%.""ULЁh`g20s ef3̈́"UA\[DC!T T X#?&"VQP!p':jB4w[%! .y,"uY hp5kw!o .taFa]0ƅѡcCaF@fF8,@^&Ф_k-z6Azk zU;Ayz$3CEh*\c`[Pֲmƾ  ZLSӒ@^aMn9@Յ=Ժ+nq7C^˵5a%+, s+`T0i8 ^B{F(,XE4@..Z^ׄk\ax [r6 A O4. w_x]4. ~06 05T= `3bq0OJV!lc($"`twQÕb,g9MBЈN =f) #fNܮ6o r/gؐg̢GMR\SP:z4J"38wi|ᅬ@˜2 ᕯeE)i,AQt%;]Jd Sl0G8cEt( /fVM9d "0Egq3'@!݅A'=𭎲r۹nӊVuxCT|Ǎv#>xkgN;}x7w | <zj,`[\HM^-y;3ӧN[X? {`NhO=pܽ^;wuB+iT0>/v=O#]@OX/vnOYW4=(@ gl &@=^V{  &0)xA >ys?)]"[X#A0;KX'<xW{~{wGD ǁmqxG zxjpX*؂gy6>qx 0}g '-/yЁh0gWw&؃(@SH>0G<1sJ~x{ =TxlHi }.u9P{G9 }<؃pU؆jІXH}^b(w*u> PHhO}.2=P XǂHׅK{vX V؊yS C؋qX ɀ}ȘȆH} o}ט٨<x}wcg٧瘎XfvHd@xkȏO*U i|Xw w#  yZxxuݧ+ɒxX>Y=`7ܷ<ٓ؈GFyIIK X{gE @|}]+ǖey䥌qNr=Pt;4qZ4/  =;=5Ⱥ+ P <0GX ^t ܾ p@w5I,>/v Ȁ @E*Ӕd.E|-{@A~-BnVLzaLm4"a~'NQ8@<Ԟ_ ,ʬ`F'zAEz M4HkChM'8祍Ӿ ,!v5%vl?OȎٚPqp2ҳYS=-(Wχ(~#l!aL[TFwZ2A˽oȞoas @vL)qMg W2ˮ鿷N1oN|oLf _8|W*?fu5d |LOԨ<P pZ@ ͠n\pZ$L4mF_/֗nGGe XQdb 9E5frT~L)7)Bc$!%K$sɕ+=ZԨQE{ndF"4 AiՉQj(3^ :tQĉycP <#C5E 2D;w}hkFݾ{a0r"n@&"N8)cAjl+p/;!jo HP$ $@ý;<࢙.?'({=`G JH$ ,"0dD]t.@ČN8A\h *#0s/0{b 4G@iC,D2ጠ͘PR( ChˋT!#EؤM9<`Di="p3PPL0AnI8ӊ3p LF˜eRKu (>fV(c]1]0!{ (`Ũ/M%2MvfPpȵ! pre=vsF;{Y"8X2`@9 "#4Z7v)Ws- ]4lZhA'bfKvggu4HD\d1Bcښqggs}ݠݣRL 9_`Y,NHhp1Z6_yoi[. 1"np4* q#\3V\u}>ZtUSؙuxn@fL}]#fo])F:@~}CW}b{9Ҡ$39p#[3FPC (dP0 QP4!+8"E dô/P%$a 喉LmMX @"8TNpk<7"4=! G a (lmh)AKZ FhpG#ܠĸEi\#FxGs ` cD=  r810H_MߡB8߬jN`lji VDvd~gzE0v8Jj+)=Qyg>`Z`jo̵>[`҉}疈o!wi_޻~Wv$Ȇ/p,d{Y>a63u 潆%qAO%jrlھk-,j=G93ӌΑ)*XFJ_K2MQ]5/dн •y|}d}6vQ` nlx8sj"?]a@@'F 2""Z#\Zg7 9b ә]2\|keF9vgMﻚ_܋ r7@m|L q7 dr]] @BЦ%h0 {# cK),+5`c EE!! V|qmNV x01)rS#`sz`kW4"T i'J Jɐ 힦2:<#XFvyc1Ӯl{ E N04~T\|Ld8>W13FA aP0(Ji ٌAP`@pA,xP@,bms!9CrCs/>o)5Tf%Cb78fb$ l*`|re!eIΧP'CP pѻ%A5#ťwFwȴ w^8aò2 졷78E7/"|tZ>) ,eĹC6%ΐ5_^ {ܐ " k# ڍcbClB%^5S`TbBjUeTXo 1jeDRIQD_ L+ Vc:&NRXlN}h}g`δ3Bj8#T?Ku@ F TDmX)\%v%ܾaM$,B J o4K-/ڮ/XЖR(>0 FX5<4pʲ%2R}Q}4oW Aw`~'~'A|yGAe2}qG8 434=P0 X68fP~3>PuQQ01D,bDR)j0U3O oc;ȃ f4PK^LV؃ ҈ ke=hB|FpP7t8V$%%"T-SS3 >p >WG=xSq[pw1 "TaYVT(!APpPE&eB|[nߖv^vhv'B"A%@ {%Rs苾8 t@M`hdŽ1)p6Nr)v%Ac1`B ST6W `o{?0' oPҕq$?C1C8hP)-FB1?T(/[%H0?)EuB ` ﵒU1>" F S0 V.R)QYa.4"loqA(!وf g(C ꓶp V9Bh n Igi z%j `/ Ѡ"٠\ڥk(*(,a)T3" }v)pV**.]\.~@Fʡi GyUуYv}!B@z u2"$bQ!'hQWjЋur[ԖS0""V^gJTJףRj%QY xx4j4hjQ ת#q AYڥʥaFДA3%"|+ڮ"ЭSP[#wAGx:H`MWEU)c!e `갧Idv,>(yڱB):ڥ+bA"SLҲ\=c21Ķ,³4?H^diO,/%,ƮyebD|:f)!pU_+*j*"bԴ9bP8:Ky0|^4&66< !L;㳓;Z'{P qYܛ޻::E?QqQUhQ(=_1 ݛ&6IIX Chh+59:<E SBS˾ \"̽d ߊD.6˿)8O08SýTLO˼AeGY7SĐ'ŢKcfD|Xk1XScJBwQD6ߑK)p|s|3cEE@PQvT.,R0u};iX㤐37T3x̚"1Gڼr?V=DpP3 >\?l 0%$(|LlP4F0УHز.b ĐXKHd3\@t#k͘ ,Hs^LƦ%IP pp\ϯ_pO 挽,Ц  ]ͺKVL+ȻA]@ ,) Kmi르$|UЭDzb>&^ ;  an`Ɇ `Sˣh*x ׀-؆qRrCBKEb&> ن,?\VBڦ/^U#͹bی` 3EСdr$d0N3F{#ƍʽʝLFl0K|;NPg`N-։_=dep޵lĮ8ԫ"_O4>N>߇ˍ||%^I$: Ð3@` @"^&>  ͻƸ;Al"mr[A4 - $a ``V "&VA{Q ;D)}f@( |&`-.  p\j&hp vq.xW8bVN0p p>;> ~ ~_}E)wDR`WK@NT$߲&PCnB-"'!&~>K툾\^팎}ATh1>P.-~N.^`$?ﰁG eUQ9W/_J{؃/7"%%0V d+O>:N6fĖ5 g DdpHc]P?M5hAGY? zz^Nm//m *վvyή~^n󻁫α "ǎd_ {bOTV_p>x0^ {OnTpoͱQ)hdE Km@nNNSVϹ} E!G},\X2E@-XBʒ.d,ET2n|&ōd] ^ΤYM9uC8!RHQ"qYġB f.&;%df$S K/ɳQOqΥ(R"G*fTVǶ!g#׫Ul ڗjYe3=*5Pc=g5!.%]6or&"@Ҿ5eY-!;.1dk&!Dyu ,z@e҄3c!/v$׮p@6 dc@TpI>8 *ojcqD`K16`| o!l*rAo=Q!lJ!/d Dh$F(7Ȭ$Zagrr!saLqMT¹D'I:計o,[ꢃZi 0w< 3(s!4gRF5t 7:StÇQI+,rrUVs ?k" :]F,8FGT8@hrbYfB7T̏VWO:T.X1+eK`@eWx}`؝ 8Vec_~׉ "0bx?l i%"ZEJ…D:3l&}" 4P!Gq2{}ͶU~k&yoɉh;붖8~g(l"X/ZeMm6> lm'[;nH a$ T /^ }: Hy>}0cutұy ! &pq[0[5= A ِ'WhƱ6ɟr<5E*DMͶ&Iٛ&/裹` MLDUHD2R"ylpB6\e5CrĒ,@3@ oxC3$:,p}X`M~:M'C Vr@\ϲ"& @?Ăp7A4x TGȐ0k )HQP8^07XվUO~N: x!Q ؀Njh >$F=IIpU=j"@B"9GyeK6! i'!n-(9" PQ$ 9/1x$Ş9Y A*YJ4PtxHэaz_'BD{pC&DP/Bt@.(/ )CP04Dl#C=p0gIV잯8)L(T?`Y5ҋ+h eC%`#|2Q4^9RUTSu!c8=uͺeY $)&Hs:蠈 ґ( ,eǸ*RZB6RIpYfVY=;|lY^Hw CH'T ou1^6pLp^}F.[aQ(Ť"k%AG8Q00aB?ҟ>DȍtoǺխr%{E( :O|+?kR*>QFґ+D Ϸ} XiH:hȜc;S-ؐtJ'pLA\@< @ A,A ALA\AlA|AaAAʘAA|#!̐@8BA B0|B(B)B*B+B,B-B..B0 C1C2,C3 3e-xC8 C0C(tQpC8|ZC5CAC'>= `C<:DD\5(;$AGB'C7!JX'|܄*iGƀƛGz3ɄD}lȇLjȉ AA`1P1-xFtGddC'ŔT1f`BYH92,I>đHXHxH(8]4JC~`ʦԂCâ!K,K55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDtd"!1AQaq"2bBR#r3!1AQ2Raq"b# ?ͱgnfE ߸Y= .!YbJ"E{=_Z3%tŽOlc CALk>_RڭwMXC "91=*oiĕ+ʴ]ܸʮU˶mv4-vo{qZи?1p1<0c_P(ɻEڮ5 soEȜW,8} eFZ)n-l&2 :oiSrK0f=gsNĐMaiT=h ~Z+1z󚵼_b仭IC_786jo=t$ocTgЈ]6 vˁLj'!bkln[+v0$S&mwp7w[9X#8R/ۋ@n3J X) ]6[q웑f"^erUǧlvڻޖ焁,3;eƸ;k+&I35\쥴m3B(]X"w5w4jzw'zEoNYK߳ n qAZ7.Y8pV Vl^*CVpM9`+#iV`ίVU=W݋k2s]9}CӮln 7Z{jv.2 RZyD&zVwVn^*͌Ic:j.Nzػhdrv7@9uΛvW 6} .V2J57Ƚp<"\qyQ~cz;mRE:y[l˿նN}Ve}ǣEo"5i,9pR$t8&cΑp0jnfsǾپ.(O.O{>ЛuUJmRL}#+QS#\eb 6,xLcNv&cL|3Q3n]CڲysEUcj/ui3snC%wmuTOmܻ 8XwCT Tz5VO_-:Sx_" \kk`Q~5?#&)PdhιnX:1VC8.{n әOzVFɢ{mϷaI(˙jG>-Ct_5nJ,'_+cx:Vc2 f&rӫUU#5Χ9q!QV~+?&LlARAV>#-O܇5f8seP^, 'Uvݫ%0'PWZ &^ vH=}.A&:rY4b46^sl41f2 5}@.]IrrƸڒ +\ދ6o kpa938P;7Žk;gbkP0Rp'ϝtwll R0Ap#Lc-)KWt>Sv{4:^jc<8ρVpj yXus^c:9`E%+}a3CxT)c9Jc*F_𬻟[tbn:aTw ܺ.$@K#TnJ`t{ounWu4S6\h,95IƏ>`1) ”[-#8ʬ 4Қ,su*Ϧzـ sʲ]P6HqҘtz՛8jmi(Fe"V®+ utIW6<"ɭB8 ȬOKWD#⡵/ew5Ԟj&YѪ%e$$c8\'ˑ§;5?C)_TF@s/xFt/_xf'au'_Ά?CӤ(颊bƢ)K O@ɜxt2LJ5`pPiNLDυ9P ^zqjR{W>/ֱs}}KMOSڹm0{X4QVxю}QP"򤢊 ^QP"QEjΘ:(DQE9Istrangehunt_scr1.gif000066400000000000000000000200231263163240400407530ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89agZ]Fkj0hsM/$vJLޗf]mlloYZXLYx_;@!r[|m4@hk. 2 {` ٍ Q 3bAy! a/K @} @L2h@r(u"60~6K[+, EATPW@@}+ { 8 s_ >[ xK@+(5 4+bX3U >" \$. ۮy[PxS_n@b=>+b#^ُ5T 7*pw 'mUr! m|Xbtwav{5e$0q_߇wWw׀7#@s0k 6x~gj hp prVy6x!0t( @lp's7*/w!0q?pp0U  c#h>vf_f) "X$h9j6]kp0_ӗz`0]w<ȁ` Gc/hV. DŽk(6yppGzV}W7wȅ#pF0p|vg{t57o%W{ Psuxm LJ2#`m '$0z %xf6}،;wh(x-؉@}(I#yv͇gwV P|XU(twNj{ 7>6x ww_ր$H!@gu8}]0gp8k-c&z[|x؅{|L(7w7hsHh\Y#pwy(&Бww(AW 0zo$w. fd ϗ0g~x5׆LgmxȁVHɏtؔz鄶Vs%\ {\ilW7vב'xm W5 8$UywyW9V9]'Hvvxvs9lg FXzw@ș |}`&yly ƸU!ЁY@xw}&b'YIgȗ}ٌ)vIwd~(o8<7zXVXJXz s9wǕz/v}~)Pɨv8@~e%9d7rZkoblW%Xk*hx6y.pVɐ}uעx$Ț#x0`yԙ|DZ(9`)v8xoVvgjtWwf5pU>ix07kߧ.:Wz(`uF8h|wIg)|I*w|mZu|iv}+Ҁ(hzjj؊' !U?* VΧj 6hhy'G4vguځ|wbKzGxFYszlgpX%`pǥ ;r( r욭w 6|ZFhp#$sj^:]w )v%<: K>Ep[sܹy$PV ױk}Fw4P9 vG,qv *J /f/;]%"40@:Chh:kk2yl AǕR9qjw}})љvH'm{y@H &pw$*뷆K}xG(Dz욗Hɂbz5ڱqIC8g woGg˦:# @z`> إ7kǂș[GU}ypp;]8 |Njz tW>BFx^͗Vs1j# sY#'"9rJ:6bTgwh /*y^IJ#1,w)|yG-WdyHy[Iབi}y/p^lpp-Lfw'wXz #i*`f(-O 6Yxڊ[qk|3Ȭ܁LkkWU:gnk9yNm)v)=-0_֫O^pc>q_xlg?7. x#g{K bEK[gޅ@xۗx4jv~|_&ZnY|3x*k.W?5Mδ.{ 9SFH~<vXϷ8_zkߪ*5P⎼Z~ܛWs6lܗ0Y.ǤW)ΫgNv/ߞ; @h'@}8qa|*wf.Om܁8(֙z¨M@. HF$@  ~Q(X,P@>8Q8.x;@$Br6,"άF`JBPD,">~H,$F%BJ$ z>`"&+/3m)) QʮJeH[!>DpqfHh" @"! Tkl@YEۘ"&q@ܩSFA"BW\0ȟ%$BTRu Hծ~$%(Miu$0aX%Ю*D`PVLfU$dFǃt 8\ 5bڙ  <`ȿ2l:%٧e퇄HLD˕Z_ǠL.M'2ܧcP"hKd kL\C), Ksx eH,?O1aH =ۓu330l p"Mɔ֨lÒT9`XY։ 7[xK<5g,,[@6,>A@`0*?Hu`(XhX-PVs""0)1-E#y'Ţa>z(:m,+NP c$.lj'6Zk-hJ?kXXnaǖd֧uo gov;三 6&6aךiSڈ98tK8q|p 4W݀mh*SP]x32?02f{xe}}Ͼh*~+X9;hٷ(X(x,~#@C. _рN>zxAt 8\@ pF{! 7BƁp1t 0B+ Z(p-Ã8<g:fokbhB=18@hxCd~E=QRԠ9͑1kD"FьT7-/0(3!(F80F!H:1sǚx1{㫠0@.#hJE2,(JRd UE[0!zܣ,r$&&xR*!2 MeRƴ29<dZl+fF5Yks'@qR$g? P>po2@* jΈN-hM/6ܰGAR Ĵ-uDhR|2a/Mq*Kn ]iNT4mHOTV31TNPtYTntLUU5_+YU@tW]kZ* ``kƕB_aqzvb,XɺT],4Z6lH9huLi? Ў6?Ek qBAm(& ؤAUИo[NZlVRΖm Z J#ĮNCy Mt y n`P='|;f }m ڥsɄGC yi^6aM/( ž&XmGUjE¾iE/k > ><< 4< ΀ Ҧ>ٕތ 4 ԶөK%P`XHT@eSZMvF[Y̦E'Pp 3ݻȹn@XP%UѤǐ )5dxi`3kvUCMӨS^ͺװc˞M۸sͻ Nȓ+_N1 =#v \C{+.t삇J EO~G&}'r'Mc %h~ fl/94`I,A944rx"0]x!/-ηK4|́&I db0hp"RU!ܸd]V' `ɅxR-b /58.Y')%&<'/|9GH/ڽk \S0Đ28g">IJ '.rR̨XT@TP'j2$?4PPZR4R,"ڨÑdh(b!7I1`!0`\%@H$) !,!f#')RG ,`O\% 0L X`#g`uu`%. !J|19'@ X3A JIJ` 2$D L`OĀ Y]9AQBE,8$ȤUqg.zH  p  +`( pF<-KB@a/x ZD4H@A$ :`~VH (qʀP pgԚ00WEP` u!C pTT @lϤy XZ̒2ؠhH @t J`ђ:70A8S"%_czP Eq05MhQ(y`:,Bz@K>u @*qZ@P x& K"%Sb A U.X0IB]La0rŀXZP~ŀ^Iߥ&^R> p~')S.2`x`>מdؼ%nQ3t2' H_'0kz"-e&@A] me&X0pFf8@j9so &<C 8`D/Ҕ@ P*'w6 ܔì~ @#S`r_ /`V޾2=N_l>œFf`>m5]w!@ˁȀ ow(TyG;!' >[nGL?d:w@J=l^FPGuiU:Cq`Upw 7A"͟.@!uz9(A׿k|u@6 rw{FNq_\+z \#Y&ٛM,e |6<%^: ]tr=0Ww0Ep&a&B7t7k@|Xz|f lPo.@hgOۇe~h'Tz_3qr`t~G@pzĵopeza$!{ %ZF1oyɗSug{w_{uʧpPW[vfV}yn3'Fw&r2yinGHjuv*LMrYW[jYg$`]Ȁ#(rFշvhhdTe6t8H7Vևg hxb gpv]w\_@xgufWRoHlV|؊ug *|'|g8u6s0| k@(forՁnPjhe?P v nƅ޷_i|0N5e-' 6Hj%P,YlPdGr?}l}IY"e^*@fXzրg^HxwUj_Б$`[$iwpHy+9( y kgjiȓ+8޴k*d(`؎ƐP a*gjfs)|7P[m_hM/PkTrpj%|VkKi+tyXH0_Bpŷ[Iրbȃx]:jx67sGq&flqXot p4H~uqg"P xfzXg_HY y:'Hj2'kߕuz&m.pdu6@eTI>d hfaz*UzfMb @{ njJ׋z._"@& lv;qUX7eX a PՋT}2ea)mf$.5PnukyrS&s0aGȥ97^I NZiVq [ojtZy58e"3 @֋g>VQIƐVz"p[..ȅzrpTnɐj k}%glou`}jVd6h%zG*׬Ϻk`miyX{$j49%0oȁwF`J$Jm̸ea\VPo:P1x"rr!(xzV4|Z^;G*oX_Hq[ Wva4[tJk2ǤF0ˍ ҡ8l,r*e)of" 9.@d 0!1x2v^C?feH6*)в(_.k;kxm;vKWP^{ˀCxg3-z|ghh{a*~ D6a &%a;u&m&J $@eʒ h斆 rumHl'U:Qٺ q`p?rl@x?P!P3Iufs hscWi)LΉac%a3YKyk{v'!@6xt}%o U9Ve!0E\k @g9oe:[.(&{Yl}jv,F;z*Gyn2VDFV'x*PjG e@&8 n%Œ[o$"uwfFj pgv|p@KYEXs<Ⱥʧ *h邨_XhiN 0tZSq  PVYd^E.l&}ڪ0miM@Ǯ꜄cL%j$Ul͌Ƀ|]j)YͤʵΈa*a lY9z[h ny}k'hJ:쫞D&'gj'c*is]|^2ͬ=LҖKeS}10)ͬ)V[K<{vDžU'`ry15$ԭ\eS n F|'ԀrXyz?_*W/@fa)j_upE_ˍ;ֆzA^6`w=gyh{}} u6=xf{%09Mj*_\+x%V_S(\z uJrk+@dY]eZ[A-Km%+| e][OzS6K"$RY)IQlfq]o]߸|U}Gk %v_a*v߀&X^ќҸ90s1 eQ~^*ʈ% ZOd2 ΀;o|_e!J&cޔS%9.9E(6^nhgum)q0S /-|'x<XT=F|gd%xIh^c)ZwAG*&6^7؈_ePlY'` mk`&e)` %f<T$ Z| 0,@D_@V+'l@R肹c>6΍{rsMY0N{\zz'@ ^wjj Pǯ 5%]g.(S$|*eid(s94>2P xrōk4 vgfiYގiyF&^z֊'e~kAg0]a&cnH>UjWeFhbȸ?͜*e2ׅ'O)O8ƀY0j}u]/&5i6 t/^?|r/jUS'P3r>w?JĿ N?0O@*w(NLG <2( drP<؂ @k{ A8[=Ks];5IA!b>=łRS4 8p5j`g#?ñ qݓml3 >ppa"FH3]8a4d2ͷ+hP<JpD=YmWaubmsjELHaVusZ0 THg6c%dQ$Y4,U)G<B3MWuݚ* @^y1jEqNvY%^%^Xn8`xy'"rpX84x %8"S=l/yw칿ߞ'>ǟza__w~J0@. d450,D1A@vKAB9 GBBΰl`VfBҐ=dnḂE44MnD'NI!EA&fh\H h$cЀ37Qỵy1-z!EH93pfp6eȕ5kAa)yp%!EȀh)ѩQ:y}%'6zv+"R  {syԦOo ԈbNS0*Q}<&*Uӫj3d)RzԠ*uNjW{KէBdkSszVPP:saTbլqM_jW&-%Xj`\24Ie38Q5iQZծuka[Ζmq[o\5q\.us]Nյu]>7;strangehunt_scr3.gif000066400000000000000000000164521263163240400407700ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a"b]Gkj 0橪gkstQL3f]o5/nmmGuLZJKJ7g4:./d~P$u 8x':ƝMuJ0%S'lh*eU5`ɜn*aÒ!,@pH,Ȥrl:ШtJZجvzxL.zn|N~  >>6> ɀ ͡ ԓٌ 줲ӊ *dI #hɳ @jP3-)LJ@1BI'Fj`]"VV9mֲE`Hu(mڵ}} I^zZ({d&i>h'L hӰcR=Pòsͻ Nȓ+_μУKNسkνËOӫ?t}{@ԅJş~H(_*P`$̂*F"!!>t ,""&^ɉ8JH|'͠cH%<2-~# _ȝ2R/839ȣVbDȏt%;PYyӥ/_$ L?cmd|XCP~I$sgk:*Q.B%7(M5YSmH'`9 L;bʎ<%jjH {s:L gtoB`Jؤ3OXGVfYH"> eentбP fسH/%"lfęgkי2‘/%Vm@,ǐJˈh>ȻB!̂q -JL 7*E.]A;=3B#4W(uvj j,E=/EJwYbٮ*+Cɠti݊H$لRۀií)^6"ۙIzfJ܄1\rP]+5;Ʀ, \N /8 nDf mQfeӦQgSD+!Z嗶sc/o xt @耀x@4 M d4%-C<'M@AtTF ܜ0@2FȀ SqDA b$)C†EA< ,A8?X DHa 1p`" *VQZh+`|DD Np\@QF @0 N?` 8Bآ^$@2pN"c!ZS~1dDT`, !("aT A"!HITXaXA|)1#i50 Z ZSe BAP`s<@,\ecq,@ P,@m<201=D IB3pA;41XX0B8P? 8 FIZ Npq:@h -=iYP yP M.0*XWѫ>)M- @J8@w9R@Pb Ь=4Z ZZ@\PYѨX@-g)pX^@mඋ@=M KWĠ@&Z> PĆusYΕ@c)R- ܒ2`c<]deM@h֫55]}j'@X>'02z$C@(PAp[^-}\ڕ(`b 쒘b JF@?a7 XPzu0uCx Z8# :d^e|I`-a3'[0@%H*gr0@L."v8 |^P-jW.`ZL 3$NdjY^Vm|E u? @/@#ef@\|=zujK R#SY-ྱޯjGPk-@^ u+2ߗ P3b/퀧-g8^}@<@.Wy>-ld^ޘ6 `07,淿9kW6=h^K a }pps;^fxUΒ(h!UUCߚ:tw!]>`qY0usty/jI'6ԈAs pK=s@ m5F§:$@ ]ȃKojzl '9L]>WW}YkJvy'w{egaX{{7|7W'I$ eaw_pF}P $at~p\U~օ8`yYwWnEO'WFi7$ wY&XXv_Www4TS4FW^`]J.SVuQXd'&l4k^P&tHsgw3jP1w xecv9am&QpTEW~C6UI}vM Y&fwz pv5FfBk{l{Ѵ\v 80rv&gAc Kjip[UEO!`UyV-`Fw^8PUxߕU0VUUGVVFvh0URgUp8*ppqQ(tT$~r~WrX[mr3Ռa5rYjW"]'a#`g_8x81@o8BCRetglVue42 hjm󵎄qCGV#pae,k&%-|pmg¶HaVxH7tT8b.Jv]Q kvyi]4dV#-DRz$p q_WiWgkw&HqG*vU 9tTld0[W8`W 0gYk5Wx5gji a,&jYuw5duIbCVFg 5g Y6IXs)s5no1UWVUH&Z@YPxfW7l˥䦚1'\i{(PJֵe-Umt\fW/Oȹ\vɈ Dh@Y7VlVVxTu(X$[jh#R~yy7%\0$IY,_gkiXjf7PGm4`zӇbPeOu8tb9c  uHHV)3vugIb-YFzWw-m0У)@i0VG:cXc_p-gRz%v%pjOg`9Pdglj\gJTUetf"ZpP53Й֘F05)_#vBmrzWfŦvx#\%jeibfx%f `^F0Uq 0div\W5{$F0[˄0ЧInЖU: ;u^E]^xv+*`W0`+639sk2:UJx^ B'uv m2 XEٹ[墝Yµ*Z!`*gUq_~gޖd|6d)%ub6x {Ƹ3֡EPؠ^ٴP6nggʷCUd#7E6_fkږFCYwv[KY'%#kDz|)XWi$0 JfwaPPOuUjzU&`AUw;1}{jEue]pgIsZV+t;n8c3Ǻ=֧w Ov1x"h\xJOj wgCJ!pvK) p-a"X5EjfCD$]da0e*_ee eV]ė$6%CuE:Kw|z(pO: kKK65sy] 8V%'ۇkObvzX\K7b&NI̺qOX3i)EVF%kr(_,}S{mY{*HKEi0햶^[i SKV2lpM ]W5rB#{[%F1_wFJv\l3vsFgK (~Gi-+\39cY'X&)yaۼ畍&YWic[+{nPėS鼟0uzӌ0Y+a]Ȼr~|l380_gsDx,5uэLtyd|XˌW2x.(f*i v5:WmdA\T&suB\{&}sMXHwPPXMVXE6bzlI0MnjM3&X(~wFƗyR͉%!Fޙ*Yӈ-`yVI,s-_mz'(e|xɵR<ɟ=`v5ڱ52)\ ~#K'y=Hq鬷p ]~E]\:i10K"s)ozM1n"auUD Y ͅ^d6_$zk_%v[,@"j^{&ܜ=#l;`uiR6r|Qڗ\9kƱ|煫ZrdUi(%@zǴY➽ٸHWGfC@:g;;z=҇ii8P)pL.XLb6 F>-+|w^R&)p[ed'*nwj4ܧjK컀\>p z3FH~QJt~)Ef(PVV͙>\+^V~}t%UVʙG4М+=  iR~BDD$W5SroRfJ EN&N@'+ꌮ8>B]IM#UB:X2% -z.S@ 5d"E$MͬdCsdM7X͏SQ 'R=JZ]WPpRۙeBN; 4EVt.QF/B[ ^hfBs=0Dx KA?n.=2́! (9#̰b{(rQ%$-ߒ#RX1c ;n\rUȰvwoڿ#@ Й7€bgWD+@Fm{.Ǹk`1EgSZq"[MM >~3Ds΄Ų53;4&ăPC27P j³8:#h@Qƹ* KBRqo76 C!H΢#I dR)Raa "1,sĒa D13鬳pN `K75SL s9 9+R` t4s!GTGݰ;SV]5Kt:`U VGaǃS5BdS]W[%VLa N^ Yb_=6@hQ-6YshEStTgɍT']eVpm\Y\Ju߀6ކny4 G׈d해`U#f9ё]Yfo 5@4~X[xRrea&ffH"v!nz⟵NZW`P[b[nKnn!߹￵{+ȠO2oZzq1\}tOP|IE_a|_ {]ݞzjމ/g'ߍ/7Du'n>ur|ҷos'3`7|7@[(qs !4b{GްY[pA σ% 5d 3 #fQNq 1C = !t[HeLq_Mx6rkK>-2/q0;0@1ό^1XCMq}x2Or ~㫘BlЪ$+K^/hڤ)ӔRrdeVG񑏺 &UҕbTe/aiJo|Ide&Kaq2"󜴴!%I^:sqd+rnš2aYQPv}$=83NK(K}vPԥkLSB 씧=OGTE5QT.MuSUNUUUn]WVe5YњVmu[Z ;strangehunt_splash.jpg000066400000000000000000000054271263163240400414230ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky!Adobed}{ $$-##-*#""#*8000008B;;;;;;BBBBBBBBBBBBBBBBBBBBBBBBBBBBB##1##1@1''1@B@<0<@BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBnd"!D "$1#C !1AQaq"2BR3 r#c񂒢Ss$ !1AQ2a"qBRrC Nm N6Obv49mUC<D5JK_YY@ku]KZJrh4x M4Qܤ};FVp"Z?7C.Gc>@dzצp'+ T+8FΣ;rrL+dKY+ Pg ],d8>IcܸgíZ4"(kf. yQeevJf8g k0U& s?66a8[K C_.qq{ $@ڲ؋l L8( Aar8 9.9+1#C9Ҧq:N C<$@=Gr'WEdcy2rDԤA^.>8x2a,Ld#3pg?}~?ߝ@_#6M5!.vH ,l,l6 *5؃6;'&˖83 eo=PiwWU94j za7QV^քqw5)\DתJ-ZoR֨"޵vT&WeDT<8djvh{vY&Gf/s g9s Cd]!FՆ*mMԺ֥e|E3#(YEsc_gkaGq"}3'Dr£36:JIf}iWjϴ'0t"d) k ͹Yu%%1/J5V݌~qeٮ[zKm'dKG<<s6Sl|Wr0fE]\g<}?.jvy˕z[F6'kx>P c;v(U0 O3놧{葫jY m^Mz|M-Fo[<\:fߑ.+19VF0ȹٞ[劣ŷh%Rr4be>y/2~rSzy^'~^x?1 N%)cJ>8f=)Q%)] D(#"sdz2nCӖ.&G~uZN:>˳e&6Etwl?UuV ś~S[ 4V;zs[T/Y`0;oX M÷Aґ,{ۺݢ;wS# QƘ crړ 4\E<+B  !-HXɗ̩7B}s] $ߕ,^i`-dɩ$VSWVNKu層?MN7zkXѢ&M>s񌖎|]Tzּ?7X5?*IEbmGK"72xe%v^ȶ*43°(1r@ֳ_:L).%J dq55@")pZx:L*zE$ƥO`j Pⳡ#I^%Fȭ )*q&[ .b~({Np,q"f+ǀ0>8"WjJɒ@,bZ|'졅XGi=!d*0ȑw#˲{dʝ#z&@b?ҝƸns]kYNeuv1RAgvH1U= ?AX'sȦѭ։r*c u?ou}Ƥe<4 NF0H0#8- Ge* g*͌@F6?n1@dBZ}‚5OƌD7"(E@G(VE(bYx+iX u.o#@p6i$w ;ip&<4=>RM gr|8nT?S?P*$ئ|bT564[ ;E3`Uqu(|\uJ(Y?{. -~7˫D׍e~cLpRWkj YDD'SoR^/LVZ(x81f)a=FDc_ ڃtI\N|0uJZ]LOAB: 3-nhtcJ͖A\ct\ڏ[}s {441 ^?7/`n k.tWEOKޝ~DG*~0%]j{ժS=9ҷiutastydish_scr1.gif000066400000000000000000000104121263163240400404260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  *"39 #(:A!A E+.L8:d t}9)u]R pHfUXsqGJWMOm\`_\as`__c[qijv%.7); G UGPM \Y gjsubkzs3J2V2n }.~ZZLY\cQq`^nprxRq)11 )RR-T j1RLJ)Kjb {JRR{~}bRZZsxWhh71#1@񠑉3FG8t`ƓH ^H#0ci! ܸD $:ʧH?"@#,&HaMdYqcJG*+Ă?t$F^Yl>$*ʕI2m3ŏ%6aE+~p*ذ:DPDŽJP>$ihUUP ! ~%ϚS_(r.D%#)f@) ˚ e_|ptJ`U:rE%KZ%6I֭7a)4BV$D|pQ_QpRrqS'lF@ (F^ŗ| ~A o$5tĊHD`D蕤 (0hVE\p!B3"4"]a>O"amPA(p OG_hߐ@)dUT*K H|Ul((\ĢGyޡE"Kx^FQ^WrjnfI*I(&Af9P(:w%@)zrwnf=( :8y)"h-zr(%K+KQ @RHhG| gpQ s0lr |rbЩp *_$E$qJSB $W(aDƮ̰/ܴ£8m_!&KQ'Wph$V[U $ %pSk,ހN&1*\p*U B؆ 5DRJ(qwCBE܁~u(c=+r!M̈́rCTS(W+g\v͹ȗzT8M'WJxsOοR)+9(Qq0@L[+8A@jn|Z.pWĮ} *务 P@  aw(L AH@M\ G!#,t $d9*@! Q:p!6HElhO̢ c_8WE,Ztb(:Vqt"Qx~N1 uPn3 D%"#6XE+cX Kˁ(P DTq,e Yrsd%x^D/}INzF_(fY화4\V0[&JQ2,(QnrҔ5MwR%J gly~؍ f>JIno%P`r? 9 iA,F:W.@Җ0,LJR@Ԅ!Ӟ> H lO L!v7J @T]BM\SSͪV]NJ ԭWxֶ#LԠNukOחpԫ`Ir*houdAY2ie1B,-X⳨=e1ɮMmae!mfea-j+Z )hou8,sK[mm B˥mrǛ\䖼Moz} RwU|I!IQT)16~L:5 #La#"\wz/›T  65-ax{6v1_c~8@r}Ld" 9¢H(& PL*[re^`|-xhN׌.p/ksγ>.MBЈN F;эV JC`=i5oӠ,jMϹԨNW;հgMZָεwkL:ԤQb{؆v5amf;Ўv)ȻPS[ζmW;MnqN]GMzFrN~O2g'N[7{|?NW|2g~8Ϲ9ފc %׹ЇN 7җ]YԧNGXϺ]n{`H>@[Ǿ?x XoO~o<⟿Ͽ~^?zLz|}'z ؀H}7Wg[x}G^ȁ'XN*,w{&N&-Ȁn:7؃֗y0Bg>;L؄LxG7FxZ\؅^ȃm`z'||X_l؆;0XXp{G|\mz9eoLPΗzy|ק؈؈腍ypW;Ȅ7PPȄwֆXX@2H0H،h!P8|%?猢Xl،w|l긎؎x{dg񘏌؏?eȈH8rАgҨ ّ Ɏ'~yzĘw6, 0)4鑙g&-ٓ>ɎgB9DYCY5il@8~X NiHY?)FyXZyOPSbI@fy[i{ćF9n qr9t)lyOx|ycY9uI!yЗZ n@9s@ɘit6pYYg069Y   9cʹ͆il Мڹٝ)ipy虞iy ꙟ p6ɟZJ`)j$c 0  :5z4 B "$ )cɢ.1AjA !J`@J 0 pP%J(YdР& mХ $ tjx {TJ ijZ/ 𥫐BZ6@ pZ ģ)Ш* * jBZ}J>0u(ڪ :κ3:* B*ZZ p`p'7p@PC誮pJZ kF ʜ JZ#J'(;tastydish_scr2.gif000066400000000000000000000110031263163240400404240ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a   *"3 2%#(:A!A E+.L8:ds}9)u]R pGfUXsqHKWMOm\`_\as`__c[qijv%.7); G UGPM \Y gjsubkzs3J2V2n }.~ZZLY\cQq`^nprxRq)11 )RR.T1R1jLJ)Kjb {JRR{~}bRZZsxWhh71#1!8*T I2m3ŏ%6aE+~p*ذ:DTǔ3JT>$iEZd)~%ϚS_(r.'#)f, ˚ e_pTOdi! S uΓP셥m 4[o$m@ en) tH"KUa5WX(Y!\0VxJDjI2…W9,H~Ipwo$5ĄMT`D j .geba,d͸D{\lAO(Jbmd*q OW< yߑDi]%,P4DMZx(O<ʄ\jVXbB6,bV"f^$.J,pb}**ԗa]hjhv ,m*ҢdvZ hJ"r,F-_L#66+nW-clؒADs[q2,qg4ے@* `r|J|vr'-xb*!HHW 'p'R42Jp0\iC}>c Z&#}H5զ?u-sq-v2(,qp0 92۝#C33- bz `E6#`HX(bxĆ( 1D(E$|b"oQጋbx@ K!X;yArJ(!9wa$J"ܤ.oIl2zE2d+O \pЌ4 `؜-fvc3D?L5f¢3xRs[:On~x'.─rPg?ګZDi=> r3 }B+p6ZU(jԹ*jY]%/A  Hn}\*Imp bNl `fu\>Er;\}n.\ANd~_n`+K`n`7N@puK`I[w¹{ fDWn50N!Z 8αq f`@qF[8HN&{Nh;Mf2\G)zU޲L{Vs6XnYψnF;s>4MJ[ҔN47N{8^RԨNWVհuYMZ;Zָεwk[Ѽ6G]a{׿f6Mj[ڸ5n{Mr&6 ucw-kmӛη~n6?x;w#N[57{ ljm(8V0OE50g>s@Ys~HOҏp18}Pԧr[XϺ֯tCSCߺN:upsp~w{w&p;^ 'Oy¿}N?GOs^ #^~)xKa p.0ߝχм0'~C,[_Џ|@0A_O ]QS~ xRy`}{ ؀7`0~ȀSwQ}]h&x((}GQ0Gw)(|rP6x8988R]}1ȃFxHIyT018S0JxXFaX|'x2hjW{ROȂ7axFhhMO?0x|xlHG}Q}ypsp|x}"8G|HlRPyu؋h{?(X،ȋxz8茆H'ẍoPx蘎ȍ؎޸yyܨXx؎͘xz7֌8Y`@∍9mw(ّ9 F8Yv*HQ8pP6y86ɒ<)T}8:9DY6v|6=oX&wR9FYVyX|Rp9`b9cf9jfYPInyr9`v \9i|ٗ~t)6)E9zi٘٘9鉊'8ٙIcIiYy陪9ٚy qbٛ9v闧'PYɜΙ)Iعi 9 q"y ⩞ɝ9u0u@i99Zzquo96ʜʡʡ":$:* !*ʜ,+ڢ%Z6jHiZ!]]4:= ?YCZAzLڤN5ڣ!9F*Tj4U'F `bJIj -Z^zifcyP 0 0sZw|: Ptjx<!jZrP s 0 zک Bd 0u@]ꨐڅjJܥ*` j PZpɪuz *ꨋzʫݪcoNz = jJZʮ *˫P: =  :j+    #[ +$ & k p@: 9Êzz9+;$[ p@uN RK' 5z Z =a;P :]K^_p_ skBtvx;u[ۤ˪:P0*! 0ǚ_pwˣ ˤt Ǫl; k[+ Z.CZ; ; x*맽ۼ[;tastydish_scr3.gif000066400000000000000000000105751263163240400404420ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a  *"316"#(:A!A E+.L8:dL)t}9)u]RmBfPOsqGJWMOm\`_\asaWTc[qijv%.7); G UGPM \Y gjsubkzs3J2V2n }.~ZZLY\cQq`^nprxRq)11 )RR1RLJ)Khb {R{~}jbZZsxWhh71#1!(*I2m3ŏ%6aE+~p*ذ:MǔsM>$iRTL)A~%ϚS_(r.%#)faI) ˚ e_pԦK`ܴɴR:bEI&L*ŶJ֭7a)4BU(D(FF}5EXIJPuHH^)z1_)$ZjlrDXU|J7_~wQHFRCHHF^I nGHQYS,Z" ՈSBGgE#t"z>ފ2&<}Jc})DRAEU9DKD& Aň -!KDV&@qPzI01yPLEy*ZQ prJ0&Zh~&lCfA@'Rb i)0 tw'z 0J ۲m)ۺʄ'8Jy9I쟚 0ڋ(mULƩt1Ghr&[q.Px(O!<1>kߝ*mwVy @<4Eu ZFB5*#^nm"8-0>'`99颿x'T; *G>M5bEt`7>3o?<ʝsAػ͠)@@e7@5ʥo]< /~ʫ68 `u]R/cK8FNnR7 M|^g(@ "0MkBPT O,Lx>MnR_,z` c1 2nu: qbl"$(Rc69X-ӣ I0#11"T*9rS Mz#F7zOD!%9b@}#hFXH'D78Qt>'ؤy^ hK0PzEP9ʔ׺H>VP|K2~}~oHz{_ >Yȉ~K^<7p^Vb/+BAN1z8D(/Ύ4AkZҌqO QGU^c^רk]fl,浭=h?ζ-md:pv]\0D4og7[AAB 5'NqN 7^{\ p<BWrP|-G(Є,d Mb<7A1;8·;~:ބ&8Uy.{!mohO;؋^lW>tp?;ݝ׽5ֹ; G|NvK=ꆗ{'O#8' &GGOy7~O~<_O>}Mw>9|k~O|̏S&Wԓ͝wG|~؇8@9CYlDy?hLٔNNR9T9PyXZUI[b9d]ejlI`ٖpad[rwzl9yP9|y)٘9Y y阚ٙIa9Y陨njii9yYٛɛ)Iʹ̙IٜYy9oН9Yᙞ깞y9Yɞ񙟼yٟ yZz  Zڝʠ:ڡ:y z$Wڠ,ڢ..Z0:. /jjp9 ^JLʣBVicMZVzU*:C 8`~?? eznlvBa:1P mP D  E0 U}_*ʢ p ~ Lxj{:^x D\pcJnZrʫ{*Ы:pzкn*pL  :抬` ڮ:oʦp* [ {JLZ{J4@b@ ; p ۰(뮺e+Xд7{9@ :L J OQkjhڡc pp[t[;tastydish_splash.jpg000066400000000000000000000054241263163240400410720ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2BRbr#3!1AQa"2qBRb#3S ?CkDiѶ@G8/KnO"-\K!l).F^CwM۵ݨ650bx^=͒gܹns_AEF)w'ps9i߇mwQ0$gQ j#;&R |IXRdp͵u@ƱNJ7S}&3mކ}"0cM:V:s3o{ܺ Tѯ\&v3LL(L{9L,t~Z1`kiP..y@3F;g³aǼx`u*AEcb+Lyp$GG ۿ_[&G:ĘjJ tȯʫc$hxqeUÏDw2m-ZJ'L=S xbԇ83ɏM2#)֨ƌI S8ֽ6";'$}k3U5)tV~3OR[&FؚV/m+8`9hc9tFd6<oʼ QȰyh9i [nvg&Ǖa8vNR)'αL^zhh|qkÑ}&r#?Kn<,-u+AB*ҹ*; q93 /tŤ A՜ab]&Y=$xk5꡵a/N)}XM:Uż@kQ5TVE͔N2.lI36l7lWnl۠[s f !kq;#jxȦ:N&R[R7@T}ڡci<[$is]C2o#J8Xjvq^Ž+J:w)jCPIVY;^}{NqT"3:%@B(V_Ҩ+(9@`ɕCeؠ, Iͻ.s[)!28H;غcʞ:Yq{B ]%t7XD9cَ7|ic\aX#3c[Z-y7StCvk'QCUytw&- *.C,l-|fI[$偆X#zSq:I б`rs\Jfh!zg"{YBJh>[^is,O _G V.̧zS;";mTQqʜQ /'Y]Vr 6e@I0~ljc5\l*yu7'n4`ELjw6q1+ӷS&8aKg^>&,'|O bmQ75ɻtܓF v yq͐lDN)5~)l+mۊ55dV{( E f@y#\3d?cȚ{[5E (#.NFъG6ܚ%~tTVw49s?U(fኚPt%_$m_R{C@hmE6XS~ HDː[?||[L(nc>L:{9#zDG.#erccK֗ CA +xYjK&.u4Q*PZSF%\I4mt iyW+K@Xf:x_ZN,pu#6"aV2á>R? ՀyEr."=3}Շ{Z(6/reaO,HTIA,rohu6c8E]XsY@(M؀[&yQIEʼnqiv:ְ3$\lٵjj]9,"DX.ESdU<,bR}1U D-T0V2 aqܛnёܘ'J}+}h}>rSQ?ǝJ5OZzR,1FhU*RN})/i^6L!,eff g JVJ YRHxخIBIYŋF#xZy%vEɓQȲˀC܈!(43ړ:T鲨ъ8riS1NpLH5vRwWrd1sÈf*py`Zm+ѯxjWdӦiJLxrZ&aT2KOƧהM.`&TBBz3N z @ : m +@:Ip&ier.ylUـZ+{6 %ЛB P/` fѺp mzgl+@p+sS+$.n[Ʉ&ҢL\,C ?l%&W@H.6<5H]m.2q ȰB~si#jI{̇ϭ:w؜w_ 8X* Sn p׍W찟߸{9 G&'ů쥙t[^?%~ g /6Toko97ނ@v@9>MURN}CZ/1@@=w@pRU BQkX2 . ` 8b {6x9t)paU`Otҫ^9ڰg+ ɈIX Mّ^\؂ɅQXgh cJdP@(EC!ICfl{\(GJ}jJed+ WT,C6LagFK@%(P٨S(+Y)KŢT2JRk%YOg8]I)O}.f&Z:9[W.MH{NӴ1_* )}ZK6J:QR 3#1@2%ц> ԝK81mjUJ (Mu4O fL]їFp)1aNN7''3h$e@aVգxB~IH&ZF'0*V1A#Q65J, ?U)`+Ht%lKZ26earZ6D ٙ. U(Wf-81W5kmjQֽr 4UnbtDpbKoH _tiݯĔ޸nw2rw]xѫ2t}|Kͯ~LN;'L h/ 3T7\`gX+Tg@gs1f{lyBqc x+~c/>?W.xrn 9C+4 X,QoF h йcp p F2%Q_GÙ3uZg{.QSu9Pޮ࢜u5+P=# p1]yVt 4Wȶ5}’ؿwbL@|eDu-ns?[x&pM x-pmotg,mj\&xs;opXflS|׽U oT#wsqC<'Gyrϼ1g0i\ЇSFЅ`CrI_:GJTѯt D00c@ `@h" ]3 wjg; } _=kw;.wf8w{ԣN[@+F`X@> 3D|~W, }>|GcW.pO}_|'swo 0}" g30yw hp|s'v'~'Ww} w 0"xwwwb){'H{~ 8$|gz}'`7wj7&x}},X'rG`B~G v@ xp7xGg!8Aׅ7>(HGp{'(w{qs8uv#xXgvXw{} HG @x`48`{'|"WXr(W{Z{w{gvf8G'v(v8r'vGWxcgȘ4ȌWxj {`0+({(Xxx}@xwA8f菑h9v Y~'y}} pix ɐ9 ((w7A0B8v')P&)g#>P0xw͈HEyNQ|هY(TiC[هX@|E88wZI: HPi}Ob А 0P     Li$Yjy5Еǃ)gP;w'rw~@{ |K@~y9f 0f w}vɑy5 2jw|c =?fp7{~p9j0Y9 ,y pJ(3w{X8`Gw 9 <>5PAwIxawB2|0B|=ȏe(yL{Bv3G}w*0 xX)"ŷ~7}~AcǤ@ 3hu6XxLAx{h0@z|ާvW%ئ9:+5|wZy0z েw/Yx5ЅhW!y> ,~.sgH: @[ȅB8~CxJ~٢f|ZiWL83hLʤ0{KpHxqwK`y行׌ 7gg`zʢ)v͈'Kcwf燾xph#~W8A{iHx% bx1[|4wDx)+!ɞcu @5 p;!+J?Kx#wR{<VK7! {}۟Ԑf Р P$I ;; = Kkr #i۠ g {țʻۼ;[{؛ګ ;vineyard_scr2.gif000066400000000000000000000057421263163240400402460ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a2+KUcx_ȚRT*B͟|d5|Q1wDٖuq|\fSg*=dcFZ- 7Ч*HD'S)___a0ĝۄVzyЦk׬^6+k>zi \ˣL!,OPPQ-1-17NhπAk6l1#AƯŋ$B y4Cɓ=b\ɲ6%Jp'CқFZQsIhh%p8})D54b:Ѩׯ8D"Uj( MerkaXPcƌ$LzRՈF52E!X(Hj`1Z##6ȺG̰]J|銂1 x/nH.kčKǧyk}Ë7<ӛ_Ͼ˟OϿ(h& 6F(Vhfv `$nxb(ڧ*Fch#5ڨ8# @AjQi+j`貏*ĺd, ,(6J":k-{l 0;@ .Kj*A.ںn"i{> 亩oB;E* )>\QZfŊq)ǚV^  l33TPh3;p@7Ϭbx)gȬA8K;`lp:p@ :+p@PMDGir $B`ED L0i=7uOl\iMDp΂0bQhCl-u+(<B s/^;Qw9:O:<;CmފJ/ͽQxڶ9MQ0OSABn~HVr ( t@B@@ > @ Ƞwz9+p>͕|`[G t \<#pj퐇W=o[M9DsBG`=pE2_xoew>[RG.sPYtPA7p!R,o0Hs |TR`KZ|2P$1q.+6 Ng z; dl#HM!&&LϠHPugܸ`'UA~jEsWl@zRmT 'H?@(+F2,و=LycGJrp(ĪUhbSjfdV͚zAukY9ꮎʕ(f]U!kxm.rԮmU:d'KZͬf7z $%o8-j վT}`Hȳ6a-`%jYq饁꨹%ՋD(AmXu;=aQp 0+JT/lUZvx\Fa{՚!ဓjr`;)g6Ax:Ώ|65f3^VLIf8,u6Kqi2"ȥٍo%Rl6yka$i @Mڤ速Yi6+w&ے.G_kͲ7+Fxtv; ڽ!@:>mo|6F;A%ygG?4L, x96h j{͜\M'^7 }u4ݶ9ZiPS^ϗ$ڬB4~[h:9my;c#ܦR}n]Dlr%=w|nIl}F1I$~P6Www~8<xvLfm߆PO?-U> `1nILFo(`$b+ ufk"wHk3[E6qq`mRΟ8ހ ݶëVlvQӵѴsgd\[+;M AMg_߆,Яos& z~D6ID өon`؇ zl}FF-3~{OO? ݀5m ۨ^ܿ 7x7 ؀X( XxW!X+ȂH0( ? #x-8)AHH D( L؄NPR8TXVxXZ\؅^` ;vineyard_scr3.gif000066400000000000000000000121431263163240400402400ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a+ٖK|QRcxuUT*Bd51wDqVzȚ͟|_S|\cfg* \=dZ-xF 7Чn*HD'S)a0___ĝۄ{I׬yЦkzi^6+k>ˣ2L!, STT UU 5>5Ji)\p{;Gt J ]ˑc ! Ԩ[×0cBn ܛ)e3\yiD*]ȩPVԪ:_L"!X'naԷpɓ'6!$_KzVi4+и=G] 5B%ċ!h-%R.0cFrU0gւ_In L ZǍƦM&;v&g M-!| %_ʁ/d@7=7F@B9`z!$| ~3cxp~lIvS]y߼s*~ě6ލ~:^{a~P@AOA|p?F O R@p `!H! @`8mdP H ;P/8$u`x p@о0 "2(!.|XlxC@  "(">@-1x@k(OJz&C< 4L@~C>} "HF:`6𑍌:2  2R\ K:Z(R2VG> \ 'y*^L!c6sl|3=2@lf(IIJd&)@D 9 E+~،!; b>(kϜ6 *)DgxNtv0@co3$ ́A,QsdRH\BZCiL!)F@Jf 7Ʃ LeEMM&@0"YΰNk0q&eThR_ ~㦕T$EiLi"pF:z*PP%4sHby$(Gn! (qZƢEѝd 67+Q+4g IR{bq~!E"2qnKܯcKnrZJ@uM0vnXT$I@5do87#k)F rQE/y.0)xW t1R~U7oA\ȟ؞F:pK_ 9QIBP|t1:Ԥfp h)<,6i?JZQ_-ZV!(%qIq2&@&~#U(>q[x<w8M$xs0ybۛyFB̦ ( BŨ7FZ|>%uPuO[7n6 hZ*uO}OϪAva@^ }\2-Osv/2|}\Sܹ!wJ' X .v0=Z: 16t@f im׀hU6o)R鎀N}ɧ=|#@ 7e >6Ty?b]spN{'|Vӗw7wz%Gx )=W%Ѳ-W zWq};)%ǁ!q&+޷~)ЂChSoR/R.7|qa O@5>>C>C?C)@K DF BA @BJ7[%A$ tADF3R>4Ep ]%Ac>4EmJ5G$G8z4C=KJDDAvHP@߅Xq@ue]nB]C2TGiP dCFb$hetCqH)$LE>f4s4v]qt F ]*DaQC5FntafHHTI$C@lEP)BGuL2HZvA%HJIEGdYZH YTsC$J@QeK$aGTPgfLzVFUVK`gtjDm.0(`SRTKNƺ[/V7ejPZ4QZlVԯ۴[WU5"6Q@4G0iфR)OmMDN@lHfE'"`S{eDGVzS0KT: eô%<;SP)[„@ Rc4iDYx愶\MC&n$Jh'p"H@Wt5Գ eSc%U宭@#&@ۤU55JDJqTQEjhԪSUŪjfM@t .@ʵc `WYkQUZ VjBtNkE`kaVEJNPOV P  U@SϔNkQ $p8 (*AFK5YQYODSUC O YZ$Yk{FYST -20 4LKRek$>@Di{$ +cKmzLKjJJN5Q t>FHZR`KI;`lkd&0ƸM7,5< 3\4:]24EH>;JE|(@$N4UKFX4_Vk_[O˅Z_0#ez^iG;LUuf>@D#w-,q5-JXEQF_VTH (g*LGzFtMtF&L(b<]6uC_ND Ffm4E^ŤTx^ ;vineyard_splash.jpg000066400000000000000000000071431263163240400406770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky!Adobeda$$-##-*#""#*8000008B;;;;;;BBBBBBBBBBBBBBBBBBBBBBBBBBBBB##1##1@1''1@B@<0<@BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBnd"13!"AB!1AQ"aq2BRrb#3 S$1!AQaq"2B3R#C L{| />z9,[Yzv[Dr=ڬM΅_3R,`l_avҠEܰ*V&̑dP-o͗ hnUJޫKe=\gVy(X`JZQ^K)jڠ6穢]4 BBS Ii}YڋX2-ႫZ*LVx. :B< ^Bl &Gr@mB 69dɯE!1Qa=S<W0pW30=SimdT g|1Y36ogvX\Brс4y3V 3GM>y/ɢ :dnz*U{z׌\" ,egJ1i {Es'X3\Z9Dg1,HL@L9L7 s|OלXGV):mQyoiEF \k^hR 9eZ?\ m,Ze[q7Wѵd dk]kOծ$`ESQQa1QwbȾVܹ嬽El{T](sFE'6v`Nrsݭ 3_Hej@ lٖ^oGgo .;t@оljcK] i:m2 t"ٔ[R&7=b~nQiu30q$IZil5Bo_~djǕ׬Y'څFohny/0Zh~)"F%je"ANvhj]e(9C!%+:d$Yl @ZU!en[g|@{D6kBWGM]P ܷMARcp+S./wVwV6Oz]V-|+m:ۻkov2v=K^">c(aųvmmA˺.w?[HU<'8[1/% ̌A|M\ns9m~U %Tt.xiwøԜmsU92HDC7Ti"gFOE\dmP3BЉfۊЋ׏zSf :228aRڒhφyh84Me/!M^D`x)ĻS{kF2p+ ~wgKrq4\Ͱ=YBS3\L m|k#=6 .tBb94?CY'۶֯??YZs/Tr^А0ezX cD nB1brj>]R| v.vTGN9V>N1Q]qcPEv{R`N!Bzꁹq ?*$]i}Ozj[+::G|=\P0-D8SZ8{<ۧL4|UP,y3˂8bÿb:G{V+/W?OڿU&sOjAv0q\J9^ʆ6 ݼ!AD~t"xEԟ~HhU9Ul>4]<\!`؏KD}FE*)Xn8Wc9$mFGf|'~QƦ~cAPQ/?Ε1p"ʻ,QfL L<8P #ĕQ`Rrv=z7*o5b+nAӟ}]KW_tEo?"Ȫ 1#B=󠡑:Jθwz:vLt=SmÄsC:ck'58Dj4`?Iؑ†%KB@6Ά"I{$쨞4D Ɂ_QM[FlZH `BEѤ:7I F`:\mlIkFˏʛ lC±djz|*cRXQ?9V@U1ӧ[yqƓ,pXUɴReeb5#aavUqnw\ϲRB-}r=XR";{6K&K0V$S1X\AJ0{ZD >4c<$ǘC)=%Kz1jǴӜ/IqqE]7 㧀iFX@<*Ghh"؟~aRT1G$c)U-`oD i%qMdÑJ:9߄.@a9wSey%D-ç5,MC6ycU˙H'}cmj;i?j>Ð tzƻG: io}XcAuPHV?QfH>Vb:Gl{⑳2f5;NLnγ yx}Wˌ4¢N~}7mWkV [۵WI׶"ucnc5C]"DLVR<7R@ -D{)c8˷#VdFG}^#kb񑽵<&C P54=JIfT766}1Ʒ#*] i=ߠdȡL4/%EƬ`=Dt]Ue mmx_Ȫʿ'{` cN\BF,K, ib?|/n~k~1g¾a+q:[R'h;ݵd 1&/k$,X%J~T1qoƲnf/[Mدwaterway_scr1.gif000066400000000000000000000160341263163240400402630ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a   *"3  )#(:Aj!A E+.L8:dN L)m x(1L1y1q)asfb {Rqj@GJWMOm\`_\as`__c[qijv%.7)418 G UGPM \Y gjsubkzs1I2V2n }.~A4Z[MY]cQq`^egjkjrmsrkrmuwvxrxZbm ))AR1l~}{711<1½)HYR|wrRJqsmԜ,szuz&-*%.(HL&'9 d%,F \%pÑHU\ Rv4Ra\d )D">|& s~ @oa! J8B,fY8%TSO\.Y~W2׽z:Nv(E ИIJFyntɤP.!)q*% a2(|0G(Rf^y~/͘R?LH蕞6BT(kʄ>T;4)82E OZEE(G~)/F  kGP-!ob;GƳ+LDEd($ѓAo|nQ-E M&bE'N6ʽ{><]]*?Y7⥉%bɩ`!9>T.pdz'sdu;:j"| Fy]F\fX[C,.N0/n#'ι/zIQ׹3"fGu.[x]w~AGь^fwyoKJC(k Yyh}x=L8;Cw:_=\ 畽O|0"϶)Z<:Bsz;fozXUgPauLGpfķ+6bC],oZ|ζK#09Rl0}(;2~Lb"05k!}7F(R=VakFr@cb+D*v>#"S\P0_qWd/607FCV"W҃P#$ebІ rEF?cTg~.0(s,˱d^hIx; dcpo ԆȉqC>SGMt-/`alkROSLr`cWr(0&DZ%%Thjvo->1Px3s5aoW ؉`hJQ聿_рᧄ(d(*?a=s3 P`rdpg "NfnXPg$qFk#zsi irؐ m؋D513)QLV+KE^8(UcQ2MKs.Y نq2 瘎FreJѓmK:R23u :F"I2>eMk!؋qW Z `ibqЉY;igrNRj G0gGKII!(F\&_)Y 9e%oF3VDI m4}liTv%+^-Rɚ隯))xa$(|xD$˹?madvk!Pə+- ًo(h։YW,o&%HY/kDQd' [(ɉiىet*y=,ւ d/uHgb'i"VBɋ*ȉoXXX8'*I+E'2b}eKOV=1PB|r IʉMʐنqZ@99bQ3GZ`I0,Cfduj8j|øv M:i,XfOwoF06fqGP-knW r - I%2#etF!SeaBʪQɘpZifHnLwda*J(Gע(5)z)@g*LVNqE2:E(#ɗp(39گ[ byI%>ꪏZ vK92ڪ骗%,)8K"#" ;ಜ8CT3$M*>0<[ >qX?9n.۴ ⺰"F(bS;n(v)Z@4a;*ِf [i9tĪ ȺiixC{ r&"% :+qZ*@۱9Kn.V ^Pv{W˝Xۺj-f;k($ӶHTm}ۧ48I;ںْ̹p"{J2;xhz (+g˱)˾Z_ zĞ Z.k,6V[Qܯں˼[ڬ,W*QW4#+11Ĭ-d&2@g IZ֙Z-2I,t# M˦d#ik!3b^HׂZתUyl ؁b +lC-ȋ-ӌʓM6y?@T`DDm؟==KV0۱Jl-`T]Duֹ=ޝ+҃\ "k}`Fp-.m£M~+ȼ޶M3}m+@ ?n `?` } lK(~|iNn= r ,K䝀6nPm}0]cN$0nnpM>KK>U)^gٕ])lMc n~^Pnܐ(.b*K] P`lCo{[疮O玎^p9\Ԑx@ޯ쏮܎q{ ٥pA^T@^o͞V.Nz -F>@doN>uN I޹'SF c".,>D-\M  ? {-Fo!O =r:9@ Pn_'O)O"2? QopC"&a߽!Pğ mU;SQݛVKn_NS-;5pTw0 :q ,X8 RŠA-%NŊfŢ@ \\԰ /^h¥KZL*eAqN9%)fS"9* ,0Qt %-&X>IYN/jYG?B}j*\v2b<9חVDPV߿i.DK.gޜS.e˘5G(ܑ/Ԉ7>#kySm=MVѲL7J]y8D?̮z1\9OP1}PIV!Hᅵptni":ĬA'pl0*YdċNe)VV Cr,PR eXY`عZWΡ.k6ZUg%reԙx4E‚Sy;w}f~xBO}M J(> ~)s'?Ox+o?H@w@;waterway_scr2.gif000066400000000000000000000164311263163240400402650ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a   *"3  ) ,#(:Aj!A E+.L8:dN L)m x(.G1y1q)asfb {AYj@GJWMOm\`_\as`__c[qijv%.7)418 G UGPM \Y gjsubkzs1I2V2n }.~A4Z[MY]cQq`^nprxZbm ))AR1sl~}Z{2.1!)1)HYR|wrRJqsmA,szuz&-*%.(HL&'9 d%,F \%pÑHU\ Rv4Ra\d )D">|* s~ @oM J8B,fT8%TSO\.Y~W2׽z:Nv(M ИIJFytɤP.!)q*% !2(|0G(Rf^y~/͘R?LSH蕞6BT(kʄ>T;4)H82E OZEE(G~)/F  kGP-!ob;GƳ+LDEd($ѓAo|nQ-E M&bE'N6ʽ{><]]*?Y7⥉%bɩ`!9>T.pdz']sdu;:j"| Fy]F\fX[C,.N0/n#'ι/zIQ׹3"fGu.[x]w~AGь^fwyoKJC(k Yyh}x=L8;Cw:_=\ 畽O|0"϶)Z<:Bsz;fozXUgPauLGpfķ+6bC],oZ|ζK#09Rl0}(;2~Lb"05k!}7F(R=VakFr@cb+D*v>#"SXP0_qWd/607FCV"W҃P#$eb4І rEF?cTg~.0(s,˱d^hIx; dcpo ԆȉqC>SGMt-/`alkROSLr`cWr(0&DZ%%Thjvo->1Px3s5aoW ؉`hJQ聿_рᧄ(d(*?a=s3 P`rdpg "NfnSPg$qFk#zsi irؐ m؋D513)QLV+KE^8(UcQ2MKs.y نq2) 瘎FreJѓmK:R23% :F"I2>eMk!؋qW Z) `ibqЉY;igrNRj G0gGKII!(F\&_)Y) 9e%oF3VDI m4}liTv%+[-Rɚ隯))xa$(|xD$˹?mad&k!Pə+- ًo(h։YW,o&%HY/kDQd'  [(ɉiىet*y=,ւ d/uHgb'i"VBɋ*ȉoXXX8'*I+E'2b}eKOV=1PB|r IʉMʐنqZ@99b~3GU`I0,Cfduj8|øv M:i,S~ pqZTd6fqGP-knW r ) - I ZLa@%etF!SeaBJQɘZifH%%J0o:ldfڪ"Y. "(6WfV9:O.IN:y |򺬀0k`]: ` yXY$S1;2| R:j۳i!W@Hk N `:;"jZ`g49U 苨9zl+ p-trs@Koд 'ۢ"UWK;%8p%_kjM*k0i{ kqعlI3pNKͪ|}: *YH(b%[nEXаD?  m+W` N ~ZT-骛!?Rz+iٶ>' K Lkk[(y/qž)qz{++ 7' ޻I䱵#¸[ۻi?(9?Ӊ v N|C klJ2;xh,+۳+\Z9;,\m,SۨW[V#/xk#[p \qpž#b8,d&2PW4=hZI j\or!3LƉ [ ̓9kL2rݼ 7/ WC,5;nkϨXpR#-:Xv]D<wj υy-sq I=TlZj W龪q|q"\ڳΙض#,ﻕA]+mYP2Lm{Xѕ̮[q>55_<0d\?Sī<\}׍/m\~mm=vի @muw2׳Hט=΁֯J;iկ,<2vٮ-2ѐ,Z `6\M5! }ܳTى[ iچOj=&P(ܞ(ٷ-H [2]e=YX*f Nn 2M6AOFF dm\Y .0β³ߚZ ~A`/P؍&| lNP1.4.fKH/ /fP|rQpR4ӳZp  =indIr^wn&H~ O=z Hl٘.<O]@ }~~fuƳߗju ]@ ,~jӫ n>ܴY`m^. p q`NPPje,}~  6nOBj~ 0qp_ٌ7ԛJ~H_FQ YAp,/@&M5OMgp/{_~0.b0-bjjod?r a/P. ?p~:qӛOrOo$`#OAO/[_/gдqjƠ ve 6fb {AYOkJe j@GJWMOm\`_\as`__c[qijv%.7)418 G UGPM \Y gjsubhgmzs1I2V2n }.~A4Z[MY]cQq`^nprxZbm ))AR1o l~}Z{Aj211#"̮)HYR|wrRJqsmZ֬JRs,szuz&-*%.(HLvA4r'4^l/S]*΄K:{ZmZq͹% WWbNC(aBkY` 4"XQ yEUqR uvd `6Eݧ[dfaa{gP%"kF͇ZcpW`{Iq(n7K`C$;3Z!U-! 4tW h [Hti 滞g.60g_&;IM~ӝFY .+'[Dqd\d5AxA, x<WI^PEAlw%dMX i)U$J^bHN%mx4vjQDhDHch+ ZdB`4[e0f,>uUK]A|6$!x)q1Ùo!Zׅ.%kyK>c~\z\)PPVX4-( ֌,O] :xƊМpق55lS(zCE䟨R%TsZ(H FUD z r}iw'1$ :=z+c(o3 n"s5UQXvI6#K XȦrck* fEЇcuPӪCd|P6-&vXEIM:"0rO/%bPtJc`걀4 4>>isxBD#h :ɘ2\M gDAn׵ِ0Dקv1yt".d΀ NU=CJh*#K T~IEZcqY Rb+$_W*)g۔rҤNWC}h΍L)B .q>\YB af$" mcH39IJ̸2h^/3i$Ș1!{¼T+%^CCҶ.`H/&7yաF T}Ͳaٽdiv%,3Rj2pچ9 ,Xv( X> j}")+RӲ%dšfk!@t[%kLW*EV}&qɕ"L[TS^0yEZKL5u%Z)V pJK /]lr Ddlh\cȢ5j̳V#c͸ CV͡xbmӂ%6IbBLc-TQBIpzk &ǹ'ӎ<qNlO"S@ڼBX.ЯndjSw~;K (ܳBh zpТ t{Ydx'tp=uoR#zz:s7C.rrt3ꪽ%`lY[ګ$XR=ނlxjkcɫo,m)X 씭԰03~^5_ـGp-h9ǖpw|%zd,/o^=Us}Lv@P@{[{"2Z'~A7w+i.U" 3"V9w1KvMP7|o@woF^Wt!=b\vzUnDGZDs`XXRvj ,Bf#-Q?/~/W1>p"USV/FJ@Xhb~4fgX(|G&vt["Ae >fb-\&iQW^Crcф4^&ڔ7gJy"B"Ti%f0EP g{Dhq)EO,A%XB8f֤}hB'be( Ѝ 8T(GՃdqȉD}yTCh( dfVŠ&u=[ЍgH[㘐(&eR\t^7v%{Bd2:pginbP014iH[ 9&yN&U7k2WNS清ipHt}6r@x P 0 .3IRJ聈K/Ai(ևmKCdzMBmO钺HTXѕA)%CSh[jvHW$3MiH[P 1鈨|^ycpes%CdXИ6QZkyFQtST o0nS9NوIh!y6!A$C9Vt6Rͩ +9 -y i5ODYդhqzxRn#XrD/a@,؈9hIi)V؍y(_IH*ku@΂6,ag9G, uiT9  y顡)-5g)/W20PC|xXѷ#HFx%@P*ɡڜBʔ\PYp@s6(T!U2jRإ,fk;J؍x}R)T:"k,>JWU:d*DʦX CjR|iV#TJibx@f#j`znAt Y⨫ZL~Yy18Gk!cBN1Z6Apzy)y ҩ vj()72>j=-5F ;JXXG,1k)vk&(fV/R) `{; ѩ"L{*kԚ&QEE$Y눊2XUY{Hl> *) i]е# Zе= }{bˣ;[1iSɜpж뜓гB:DzJY;nз` ` k 0p p[QbyB nk)0  ia w)U3X[}K P; p(B×ɔl۱0T񉹤9iVWk4P*P+ ZtKdfʙg;) ɍm+\j&7cّ˽=`; aE+/uپU\F''"̿A)#зtG!kkŪB ,ɶICG،:r@[k lMQܷ <4/6xaDi B^WkØ 0N08^7nG3Jib.] H^cϨ~پB;N9>30 `3@|>lc>NY;k  1\DBm T)0 G> P嚮G0 ANjV討]KR]%ÒP}0 U>P> I~<$Ӎ< $^p~-08>^TU@m>^)ͽ0둦@o +OycT^0Dmm xf"nU0./U~Z+n4a_Ff_n !. 3Np)rz ̜?xg悟pN NԞ}S\ @C]m@yL`8.NU1/S nP//L階׏O&j 90 С($NŇ4nG!EfÕ0ӲΆ!N(fC9uYR@ ڌ8M=.e fQxŎZxiΫ~ 0^~eۖ#ƍaPiRY/iux[}h^csWtϫwow R ,E-Pk⪐DZmܪ0/B P- ^4 pANS];K+.|0H H0{04҂nOG (1@ F+)RK.ѽ2Í >:JDL9| /lDد-4@@,hdQH9 "lFP6JUb$Sx5UfuȊDp5nDdF dd|qTp31[L#0XVAwDDumFHеCy=7]y 򯄈*6P=^+JI1~m܋~JѱMdA%vTi62e@;waterway_splash.jpg000066400000000000000000000057211263163240400407210ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2Bb3Rr#C4!1AQ2aq"BRr# ?^F"lU]cT.`ܮ¯.FS sM&y$jr@2st_}ډg&b`YL:gVgIjb1\}ƷtZh@[7~`xtXOFT1'B-/K湢'y d9eq)b-دj\ oyُ08ae\Fokxf: hdK ?#z\ڶ4|e1lMS.i´N|Nqm85R::d@QwY5ZCQk8oM$aΰTWo]l DZRңƃ]j]+ 0@RV7A; }ȃm5_Ԍ'{f/V9tp-3QH.8EdR6凍d~7} lsNw#_yo.^}G<4xzfXsmPe{i.b)Ƴc|7k:V^qڭiI'|ϢUfr:pk9PYzl}3ZA7QF'FE#] mgS9検Ws3nTb Gq* ɧjR"H$b)>Fs-帜!\vI|p/sU"汘\;D6HF&E- /CAq{ 8pjEL{Dw1/ko,L%erψQӾz5_=JQHhA3NuФ#’QS|KC <>=;+R L,29 鋴%IZAkmEVdZIH/jݍY=| ?lZKOp݁Go=| Bؕ(eJlKJy wtꭩNp4N Wi89:Ov锉GbY11پLH>nI#uL U akG0q bZJ|RR/8X04awR(!!tL:lBp:l$J#Cv $~C 2Zy\܉Uik5UǸD֝1vU"3ĢptҊ+uP [f"+CUEcM&@a\t1^qNTD[Ԯi1r<]HNa{Z :׌uX脦I<)9&ZcrS o>HdlM7֘^`qr74WKE36n<H\k.l Ҷh-mDZnƭt6D6d !IV( hh։9״8wdrjlXIܳ?VOm[C춌\x8`z/ :"qw}36Ņ(шk0QvM*sO`@ n| | S恂@Te b"A.5c.:%K(fһV,Y fѪWOn˞MT)FO $XKqݚ !`x0im>˘5ϭ/h?2o /BX`Xh뇊V y`9mgͨA (V<[ :pM~%zW)c<'2 g}jkFϟYPOsO=]D@|'yNS0 wSaA՟~^Whv=s+":%>aNZţHWA>C(P]Kc3 $s?zQ4@di#߁-S]R$t!(lF\%ݘTg"ٟFP41=Az-fH\ *ꨤjꩨꪬXN%`뭸뮼+l Ċ:6쳼: ,f- `^䖛Pۢ:*.k"K,)'pyB0G,Wlg,q [ұ!l2#SICgZ-E%bLsS+cXUU4! U*]9݊v)s63,`>ղQ!E#adJL%lƙPS3z(Gw|IU~H==JWWϭW {歷p]N;&YZ΅3~W5BKt倵|\ :J紷2E @z騟~~M"hWbl3eA6a'Y;Il _΢T m^Z%s/(8wzn]H `IйN~lzb(seS}15mbi좶ք)<{# X:2&NswtB˽fP_(E C9Lx>`^̅Z e4&p?KS¼ :@ٝަMRK"r&Q*2e?@s֪&@s<*Q|Q:n8+Zmo,d~43)9kz6%8ixVj&%HLT[!r)Ji2N{-SL)@\2Q޶Nhn 5eB(mM5 O*≐sFzI:EȱkgMK%'U CZLbL]8{VBSgeـ[3%uӯ֞5il*˾b{8Ipc՞cWBccf}~9τ6G{ߖͲ4$J!-K'H+%oBe ۾>0<|sK3>NڬUSw##gl,%~$i_ݚc>R?Jlw{"@OiKv%VO=xIt~O^\.+#W1n y{ 8M>Oˮ<řW1flG'z-M0u75\8w_[ZO[3_#iL6]vFHvW6 =~22]'Rmf( ?r5fF*2fh~dE%Q%y@rFkC"#+(:&E}2_TN74HQwN_,cwNS0X8L@Re╀SK؈?+Gn%MB(ԌGdFD9]Aqs8ufk=d2!a(55'dzs٘ Cp%7~8Ir3pI'bQ@_HuBZYTo3h+@Ap  Gc|7uEDT&ɑ 8ȍ yNz2@I4WxbR)N)L@uihP&9~GI QOIS@ 䍔ENL֒[2?*"HcI1H{"1HԏC_qFOiZ0mpd?zFWY{+\+ZZ@B7:5R$49oVC)8QbyJ,5>CuWxԨgf(XVδa .25o,s?Eu8()]69}S>ud15ę &M6ׄ$;goh5Q)XFZvP3qSy=Gٟ SQ$t ʉ<ܙZCsMI1x#y'X-xiDE({A5s47nuضjp5FS:*0١fIMOYhY4p=ZAEQ<} @fe @431#aE)7Ɂ5ä$"9v*x記%s|yw:DI=Ch8Z9`80x6>h:46Or)J| 9)C8u%`ꃸRY zMuctkĚMyu_G#I{blRB@ ##  j-~5b&B BJ47EB[-Z-3qɴ[E ;SA۪0sTF˱SCS:Gf{y:m@D+$yuj9[L+6i39"[u;n9r ڦh&P{ۺ6kC1 {[*ۻ[/'`p`FFPKU,k>`>@7P{!;כW WAP,;{[P@@I  @@0lpaa ;: F4* P(,̼U*:<0" 0;?:> ąNMNL! LPOŊ`j`4P2P*mlln,F 0pǧǀ,lV@UU| 0 ȍ|Wpm <20 n6|26qgLJ 0˃˹l09V,7@|7NLM\|c ^м1wʪ7 4 }<1;7^IzLɵ]ÉǢtG3 I \,[@)^p^Ô8+d~sJ4 V9]ӧT0`ҨPpm&ps3o(_; o]LQ"8v R@ ^zS)>B[iӇ!e}'SYsKs[5#~2ħQfaGm&&RBTC9"EN -4O$JU%[M/\ ې}Dݰ6m \e wD%O 8ln!NTҌ76NnR^yOY@XQtHmp8yeS+踒:QJ2j^$^Sσʢi!ZN^%fH,+aK6ň,% %H:y馹5 HN.2i!DtHEDMBʹJMAŎ( e' THX |-9gY1h5DqXz 3Z#(9Z6(%g#{=dOn )VuZUmf &Rd!P kiYTFԨHπ&j!@ ^#֔9e,لUY8Aq[l=+Z]h$zgۻ +=FIq7ѵZ)GDnn'\]Ȏdnm"UoOK}^P,t3̔&R k&pNojBF.t ruy6ǡmgCRvSJXvoi7f×InYέ\QtL@ {D-WCNs[VzcNz׬J8=N4i97u4A 8^;3y4y %1 C^FTS~Ub5ܱTw c.Zj7P&8_ɯ!{\LQMɠ C(;,6q""4G_.B/ ovKre|ճ<<s;ӭnI\zkv"=sF8]omC|9jyoqc')*wCg(F]yΕ O*w; 8, Wӗ ^b`<.rFD]fLכt?4ʃ'ĝ/ NXjvUIoQmbDuPU;W^ip\Dq'~ ,a4f']賆E:JX@\Bi6EX[h_ Dz]zut6h&ظȉcs8UI7kEr/7=؎T2t7Ch#M9я&tP؋viWUXVT:YG#'=JtAiUJ?%VLW,LBVWÅ[K#$4 Jc7C Fe'-X @)=@|PnDY'u{XK6^FgOk"*ĒtfxywvISzv?BO#ExD֍Ȅ̷Ga?X`aA7MȍFG!2d]BV9JсFHrEA&}w;Ci=4cb(9qɛ췁4ғyzJH*Y8D[Hg7QQagEd#9כCPIeD[ˡPN=i6@?@52fgl>Sqa3™@~$YF@ i} )vp.s!'lSET9_}ƈ9\H1Ӟ,t-z.1v2z9-Xf];M!BCwƠk4EDT\1;cB]*؆7fYiew#eS?q*E^~㜉i|"O7ʵ9 v!(jٔ#J0+۾[8@  I0"+  LPiP?`01` L<{$@ k0-\ /Â0 PÆB, *>@|V`k;10 Y[0(0!ɠ0`k<nƃ@Gvx\G,Ktx|\@ Z`3-aŎb,9#Ã4l,9LʆPw`Ȭ8?츪ǯ\j@ [P?ɒŔ,Jp{| |r Pǫl,JجͶ[0ߋŕܽ]%|ƈ@$ ЅPCʁ,|l_-P$l!VɈ`0@;$m(+}҅W @DzĽK6ӈ`\@d0-#Lª;p{/Z]kܿ[-ք =W} |g ְ Ƀ`]-p@l=K0=؄ؐ ف;wildballs_scr3.gif000066400000000000000000000121601263163240400403730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aBs)RcRBskssBR):JZ!1Jc!c){J!J1Bk)J!!)J1cksޥ!Bs!1kBc{ss!)cZc1JcBR{11)s{cRB{:!ZJ֭1B!R11!Bsc!kkŭ1kkkBc!)){)ńΥc!,6I6I GI6 á64G™ǥĮIF4FI4 H`A"$0!cgo (c-FdkG_?Ow$С8sMi $6rŋF%)JHZl7]ҥZ>U_>M ܺ5w6@jh-hѣߘ9gE㌆M/_\_zgemvm,ѻx9/Tm6IeҦY'[N U@ +_μУKNzt L ËOӫ7 B˟O}?(TC_&x$-(: Z8v(_8(&xh㙰NɅ0(4Dpˍ8<@yK3F$AL*$8$R.٤TbyYr_NQjYe*@df] x t: uygvzg{眀f9ihB(YdD6駜Z):jj: @BAGPzJzkkΘ@4`0JJKm"KE]4ön@wQZK.v..KNd [ / /oVlC WMt94{\#/\p+pZ 0c s6A֜p9Ⱥ6\eM914zI's=4D53hB2>}Y z04x'#`;7N bþԅE&hځz3nlxc"!ػz@<¼0qnh NgTjf8C;A+ ^&>16)^xxPes!NXhFPuX]#C$aޑxLBAXpl;l3wG2r&Y+c[v=Ey6K~&6ER$)H sCTٽI1/q5\ :0&\'O.e;Uٺ Ơn}|G&ٖ=Q@ P$TDUF%R<#si(JYwP fބ#E)6ä(?uɦZj18$3FSЗ`7=wַ&E ߸UOnp1P}>X O_"?Ew?9vdkz?703=CA2/m_q"eDe8r_=cs`Ŕ}7[[H6Ol/2vVr Xgux:R:dw`cd^s]F'lHWbBdw^H$d6h~3[~&Zv USrDd5qq<օ^aXavgfe@eQ}mw+Pȴ4]]4haa$w`!L#hfxӁKvFa(_R4A$ hQMduj'%QFBXL?=,rdZMbdw=`{L1X~Re0J ~Ǹeu|Ms @$\+V}X85Y`yIJVgl;%j7VDcFXLVs _R|XDU]"ULeHiPt:KF8L-J_FK( i%U|E(Twg ho]=F g)OyI tQ_/SI>rIb7OH@xx :d@*cJ^/2iEQ>ys9_aT A D&$:|QڈU%ԨUMƎ9i3F@Fs$N`HLH0GKĈmm D00B@El #jn E@:;:O0z~ ȋ b$ȋpC pȖ,ɉuE.3u  ʨ,>ʎ)`˥˺S$W|\$ |p\]xb<1r<u\!!<p|7KGr ,ψ@L/|\l h .05PL= =;p+˃0ҽ\|=АL =Ї`c<P<<#+0} (҆`/1M$@H}if@q޼k<000#K:|~׋Z}G|pņψfPm@۬ll0#l<ѝ)K<ڮmՅU` p2`۸3}ۖ]r ,B5P8 m=l.0Oρ,݆\U=ɖ0 5`=m!]vEŌ}MN#Č]{;wildballs_splash.jpg000066400000000000000000000057721263163240400410410ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d"!1AQa"q2B#3Rbr !1AQa"q2𑡱сRBbr#3 ?2h<[ބ˔b̸El!cDdjס"цyN˫!9gD%nuv]e&i!z;E IQ[cImTNf%ӕ} v7d@:j}sZN5MWy# >Τ;?G/3ϒf"-:uqtB# QFΎanlITȗA?%ٵ4?YԪvkا@G %Wr*pjMmU+G"ȡ}ƌUXqHnThE3Ul3~TQ`*ֆW2\BE"b,Gkqcc'@vi2z_N"pDmB{)ЃTT%kĤH8j;Wz %$ v515 1lc0Ő+Sqj uC*/ʨY* =#@>@xjH@_N8TnN0L_$ϔ}4@dʪO.?L#e±55InfrcLQc d~xx*0% 2\vυ GDY eoriL%&9чr= e j;sK )n^~܇i~5V2Ò7˨Wr"3ܬVc]1k@~*@r᎜O*E$,&5"5Oq28IyW>P;N1Ǟt!Qnۏ 9PxP2)U优UG#ي>0>>"eH$ :;}hn[__bbpn7, ߌ[~ǥK1@(^d,q 3i y+py֩KT@DRmjV}7nۭjQ.cz$bۦHC3eʛCYMȹ@I)N3w})1o΢2+cJQ8IAZ_ 4$A@uXZtP˔ 5Nxj[Z ~&|ӈF_R& +Å<B\ ` ZKEr5Bm}V>pMTDaɩKGeK#:ұ{̃,"Q4(]bRxq"w)#khX_.H+"[Ԥlū3_#=OCmߺ;ŗ_a|y1hn}/ZM2͕).Gʼ_ I}M0%a{[^F}:wbV#i +`yG9Jw8.K~' ! V炂&^CۄӚ˭`}V .~0u1hԒ[< T7}Os?,$ w) EX̙zH$B/&1t360?1#dԍ|Tor?&FhT^_w>~i*iPWj$w_ǝӐl׽p$yNFgRd4A}+Zy aܼ}Y90GK:=mI}xө3ɏN ju- ]{\;rWmp~# YEm=+e2`SOj̄YJCq i K $}Ksc$}cUUIzw~u)6uKi2SjWU1oz)|Drz/{?JP*Q*V; J5/\Iq!#X_Ҳ)Cw. ('\uhw*LwlCv=C!;/D%v r Yl=XkB3ޗ$@:y.\ڎ9x>_m#M[u/UZ21[D/u>]ҥ+mJмp:p^wildroad_scr1.gif000066400000000000000000000110741263163240400402240ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89aU˘eg333g4ʗdFɖcǔaf3ȕbi6eeeEWh59U36t\Ɠ` vzGÐ]l9[j7đ^Vp=Qk8Os@|IXYd:Qɘ'&&777Mn;o<Œ_̙3Pˤq>33WZ NNNtAwD||m:!ީvC丅RNTuB4Z{HQxE,"}JZ'~Kr?yFgX%S K' / b/`-^\.Li=4e2@3 c0s@ 5yFI499G34Lf3̙f!,H*\ȰÇ#J,ŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴ)AP@իXjʵׯYKYOm6K׬ݭb՚w/^[hm[Xx.ǐ#K @e2k ,]ӨS̜ЖK -~ ]z+СӮ=eV^νwBEO^΃p떭}+f,kUH`WiEfzfh]\vTva{rW_*R}!–uT(iz(!lMHbn4#x(aQuXLf@(%n]Ǜod1ZneFcFdt $m V{aW矧:0Hof}y8z@Ei>jڃA8Pm m,諒qs@T0byׂpo)r5ؕZI ]-1{){ '&Wc adYە)r v~1߻ ^( W<'62jhpӪH1V3.0U6Y&$ ꕒ/(j%c-,& Љ!Arc!Wկ,Y:؊! <@v"{^^Z˂UqL[B,Ze* s3io&HK!Xo3\."zx0*Wxkb:%*0a V|W@` wJ欀>~ x8y{+G^>`feJCz]*bb.:` u,ZPN@&2:p>#`An1f6"` k I H n@h%C+ Y NΪvٳ%E Wl 8ê ڤ~A f-ͳ0q&6j$`Ț.@ϩh3JЄ%xcϺ!;u\ nhNhLJЄMp$o A 0Iβ7ur{ꕷpVI@m su  zG˴ A8UIJ 1T wU9pq'Xezc2ҴA1wa&:~wU4؝*Pw[0a&UUl ӥԽB h7 n<1F/?>`P`6j0pww0ؾ%;Ow,A: 7*ޏ@q<7.0x_ 6jM{É/~ ~P&03`&{*a+~~@S| CT6&.awhHVu(qf&vWuaQGSy@ L"\_ 0fFh<8scaW# 1zPar<leP,=p`1Y" 'kTTWQvef7R[vZ^Tb1K,)<!0sT1kwR2B800ux!Q2;5@a,40; _*Ӆ[Py @9u@#}!@3P?3ձdɈS@L\Fո! A@;QL!p *;G'3_+4JVGO/!1}iB.UP|%2:D8p(% )?#K 5юғ05fCQX[q"6p&s8*ri2@ЋfY p'pI`|m)KD))w]* t\+O)`su”U㕏h6ʒ+{03[)ɂS5bi1"}m:wD{HoO+IUr$TO,B:9n'@O~_`܊GHotp@/`;怙F'1rбB[C #pü8x@>-@}_<@p S(-,1G\1|+%=cz6*8ΫذZ$ZP)H*ABj%{5Q,wiO &G<(-H@XP [b8L^1 "f[Kd2:l9x@:˲ܑ#SY@lp4XR0N3 . i3ǀPvb Dň'p#.%( x`!M<ǒC# P5x8;ir((PuA_[5CZmLMA)ɒC^!]pz)d a]ꍔv󮲡@4 H) ta(=h)Ϊ0VS o#؇41[EV0ѐԟt7WJT  l/^jZc3vJ=MO_V*RmNAkT] =汋 H R ZiO[^hݖ0BղnzޞICl;+NpXg 0<3mp0"a_AA+ZYAjA2[crIs|ٜ R 8! ~QK?<: X]{4p1il s Tu&Vn vS ؐb+#HȁmI~A~Ve nCmfmzh.Ցa!mah90[D  ?iaВēXHHPy@x"TWّ da> (Y*I gI$SC)DSDm)0GIiFhF&~ i(9xHRy%i%)IqJ6`!YֲL̈́|U)}TOE`b,yxe Up8< TB"MǛg%i@-Rx_\Xb9x7p]]pw U@i.Kp4 wX q@/5yMb7i*=0Uea1[p,~qFKP̂ Qf( i%,@Tz0  , !HVzmvH1Q?XLJ &P#8~ׁNPpp[N.BAx@o M@yEBk>i0gjaH6YQ }w8s)0d`䙪.J0,@ Ya$|(60h}WqX*VpȧF[Pn@C| *AP6Keʌvp=['Cʄ"4G֕M sfV"VU]Y3@C' P*{u S)jAL` >*&* t[ p>ঢ়\'+. 5l+#(`YSA[C{4D"|J\-:S۲k3۱-rwFTm_[bqUWh5yQOpQ00&y˲{[}Kkv0aJ`Q?;ii| ж61M]/'TR0Fk%j]#=>'*0W 8 90/P7?&۲kɫ۱{@=1P @f1X:2h<r*}!BN qBC¾mk^k. #7` 9U=w;QLj;X1ܼrDP:. 7LA.4< 0.0As*GiG(_ Y9wt'ײm@Pp`o._u_I)@`ok ` \X7b\~QAJ`_~ Y@Džux dE4H\АmA~PɤYw=lXZ0/ Ƒʗpɘ\2Q>:P{0Վ#D]&!>y*&O]PjOu4+ JlW|-wþ'\z1%wE PL6Xm#If |upXf +-B /(k6cr~IγQ|&k<4Mc08Mц i0* 4M4m5eL_6pVZԘp)T}Ek 3LX))$ckilπB7:˩ٗ4N.4Nc0 PXvd A_9V 7Id.Pi=7 ˂eAC\ q:~88JmiC0e`A-{ԙ"M]|D݀ ^m%y/0]WebaF31 /c3Vc-Gߖ< QYae1QoޚYgD֘}iX ХN<>k0.&-! ?9 >0$9OvO&#`+=pQ࿒rMvK.Y>Bk+XtLg( / Y*gvN(m*S)iQ@,UBrzn/?{XbQbnV`n2 A }LϨb&w `!q~Ύ̾ЎJ_!BJ 2Nd[hNӞbaa>~~7?_Ү g> OѾO, (@HiDC>U^GP0Ґ1--&KNJLNPR?T_VXZ\J;wildroad_scr3.gif000066400000000000000000000122341263163240400402250ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/gamesGIF89a˘eUgʗdg4333eeeF777ɖcf3ǔaȕb EW9i6h5\Ɠ`dÐ]Uɘ'&&6t vj7[zGNNNđ^!ޣp=33k8O̙3l9@Yn;^\.VŒ_WZs@m::Q3M|IPoXQtA4ZyFQ~K,"r?qrnuBZ'N}J K' Yn`-X%Lb// gi=fffe25Is@ yFc0x4 34Gc334Lf3̙f!,H*\ȰÇ#J,ŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴ)QF*իVaʵׯ`F@ cb˶۷p(!Իx!@߿^5B`](^q vnyM_ʠMlӨX"] ɞ-;Ԩϖ66ؐD ص"_dayPu.Lފ|qG]7mCrk&cVWmZGZoԍ߁^0 6Ƞxuf!g`#]5]{[؈8`J8$v5 X# @c2g^-BX^LA.bJ>'畉7`e\=ZVFBxurKyǖlqوfFwdngB&l*!#&,gx av5i]䏚BeX`@&yڭRfr1Pߨm]1pѰUB ƀ0[=bޥ I,\d ;[u R9wö> vaǺm] ۅqhj4`Pyd| .s ֶ8'햮E R2 Z4(VfCs ,rؤ 4^aoiЁUDPVuo= &YᅝyIWW˖V0l] &qy#W30XQl+P~9hk?ֻU؀5mV 뾻_]@&b2lhP"J=X}k1nl#`P'?hz"a,Vhe+x-_4,V̑UeEmz@w@ 4`\"m-p (  pkKկ 7XV])Z3/Q sЈ-b((찅 \QF  (FࡊW nH 5w  @z q9'ٱxw`G_ ]{-F>T"[xy~飿Wu?S&`4B 7)>'r<TpvS'G~g~ŷDgg h  lPJ  9-hs { 8}'1sU)H@w 2% {z_ЄW|{@0GPK0d,;<60azp {HJOh}$LrTLuJ5qQ^`F$Tj؆nx#hyVU<oDH:Q4 2W2+lW1AiwCx._2Gx(hKfpTK JJ,8px\5~Rňdn&1 ` W)b #8) 0 QnV8cor(T+@ `6#0)戎CKP nR fC @爎CK9H܈*S $`6)SppG8<D0e#S #S,ɒ0~Hd=x1wtnI1>AS&>wq\@͗5p@I *ioS? *PEs#)j`+9q!8r5*6YZ:pv]5_= +)i@/in\! `xBܥQ5Q|c1Wpcu0]AyfC9 6`&C< 0J5fIIqfy*ƚ9Fm9gPRDEVMYLR9 Yi95p: cTFFjF?EVHp.ɒAz"f/xG|GI8 A 'j:)y ?-g>Z>:yw%ʥ @wjpNЌю_Bxg03?x6tnO}Pz5:¦Z8{2*bO|L(H@  kK̆uJBϣ8bڥ%RS ss{K3eWSMY܊0mڬ̻u|垳L+.UկCH.8:9CAe|\|K 3iar lD0  {}g9+U{M#e`&Cųraf$W/r JD As' 2(t{J ;j Q\c$u<YR^1APJϮ+pd_>gxcTp(NqeD8R=\\6#xvu8bD#;СQp5dT|I8˳g.v̻fꌻjk$vŢNwKYCxFmWqɗl/kYÍ|~*K̖먚SZ?-L|Ip@g}}Tm|ڱAZ KI6!]o_Y󰬭dH賡]Mfk dtW6ZtNձB W͋eүMV.,Y3ьNbEdݠkr0LMЖ,T.Wm٨@eyQl2ұc\YM[)fbc!@zԆEm%L6:UVa4:fa ?Bv#WT`jͪɗMb)ck|}ڬUA^"mܷjZ,ZGÛVڵfXUWFV\nUkH>I]ō=|.jlm4T6[A@="\5Tfhh¡c޺)5n6QogS1ȷ}u$kϵdN?:Ъv(ٓ Yzs{?% -pH.M)]:V)q ; DR F̶,ᏻW/E[q! := DM.6|Q1Z\D?[sj☙F0M[ܟlzohaf?$@EZT >(0Hpqd8,XshgDd" V'[ձ95g2F^y"8e-g$p+?n❉ "NHc ve<sޤ xFlεo? _{Gd7Ln?ƫuXOժ|6-؂c ֬eYJcŮ'aҞAϩd[{r2a!]%F\Sů(ĄRNAA:1bs=vܤe b4kQb,Ց7!^"YbE&wWWR/R/?ЋKe [MkYeY}/1bAZuHū"t7Z$v`K~9!X  txTNLI`8 -nT=cS[dceR{tฅ5ዔjKyذg^"5] k׋ dIA8P?u_*ᘪfy9JˏFђPǤp2Vp[!u4@n5ZC,+"eцPd9tGuh"q*]=2FK?zPW& Q2?ibNWW@k|p>[Q8p}H.j2tٿ/Y,m$a @\$4߷ 8PEZ߂R}xPȫTDߖ)p-HWF?)K\wA XMT1YO`<-ibݘ)l#-;|0׬,Ԃ[1vY u_v!K`[`۟#@H[V\sfݤXh(J;pn tv9n>?,E5Z^%PvYśQ3)V,`,쫞n[6ƃfsq𕝓(%059$z"ۺƾ-NZBAFcCME&r)lI8"V31J'| m-) fJF@SC݆W :KW Nz{uvEAҕ .QZ/ޒnVmHp-T 3П-]p5JTGZ.~hEqלe 6O%^A9'M G[@s~ND8oqUXj 4O?asS Tvi %Z'ȲC0 XAEa A7HJ*UMT BOR"^pͦuIfGL)۷p㾈;index.htm000066400000000000000000000014121263163240400355200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl ColdCore� official site
Cold Core�
ledoff.gif000066400000000000000000000001261263163240400356260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etlGIF89a :s! , 'HP pP!6h Ê%ZD;ledon.gif000066400000000000000000000001101263163240400354610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etlGIF89a :s!, Y/VSmq̒B;000077500000000000000000000000001263163240400356405ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/loadpagesmuzon_AirBoil.htm000066400000000000000000000135011263163240400411230ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/loadpages Java-����: Air Boil
Air Boil



���
5008485
��� ��������?

�������� ����� SMS-���������.

� ������ ��������� ������� 5008485

��������� SMS-��������� � ����� �� ��������� ����� ������ ���������:
�������� ������ � ������� ��������� �����
������-����� 9998
��������, �������, ������, �����, ��������, ������, ������, ������ ��������, �����������, ��������, �����, �����, ������, �������, ��������, ������, �����, ����, ������, ���������, ��������� 9998
������-����� 9998
������ � ���������� �������, ������, ��������, �������, ������, ��������, ������, ��������, �����, ����, ���������, ��������, �������, �����, ������, ����, ������, �����-���������, �������� ������ ��������, �������, ���, ���������, ������, ���������, ������, �����, ������-���, ������� ���������, ���������, ���������, ������ �� ����, ������ �������, �������, ��������� �����������, �������, ��������, ����������, ��������, ����, �����, �����-������� ������������, ���������, ������ 9998

��������� �������� SMS-��������� �� ��������� ����� ��������� ���������� $2,50 ��� ����� �������.

����� ��������� ������ �� �������� WAP-������,
������� ���������� ��������������
(�������� ���������� � ������ ��������).

�������������� ��������:
Motorola: C380, C650, v220, v180, v300, v500, v600, v535, v550, v620, E398, E375, v3
Nokia: 3510i, 7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i, 6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270, 3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD, 7610, 6260, 6670, 3230
Samsung: C100, C108T, C110, S300, S300M, S307, E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468, X100, X108, X600, X608
Siemens: M55, C60, MC60, S55, SL55, S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65, C65, SL65
LG: G1600
Sony Ericsson: T610, T616, T618, T628, T630, T637, Z600, Z608


muzon_StarHarbor.htm000066400000000000000000000137371263163240400416640ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/loadpages Java-����: Star Harbor
Star Harbor



���
5006971
��� ��������?

�������� ����� SMS-���������.

� ������ ��������� ������� 5006971

��������� SMS-��������� � ����� �� ��������� ����� ������ ���������:
�������� ������ � ������� ��������� �����
������-����� 4012
��������, �������, ������, �����, ��������, ������, ������, ������ ��������, �����������, ��������, �����, �����, ������, �������, ��������, ������, �����, ����, ������, ���������, ��������� 4012
������-����� 4012
������ � ���������� �������, ������, ��������, �������, ������, ��������, ������, ��������, �����, ����, ���������, ��������, �������, �����, ������, ����, ������, �����-���������, �������� ������ ��������, �������, ���, ���������, ������, ���������, ������, �����, ������-���, ������� ���������, ���������, ���������, ������ �� ����, ������ �������, �������, ��������� �����������, �������, ��������, ����������, ��������, ����, �����, �����-������� ������������, ���������, ������ 4012

��������� �������� SMS-��������� �� ��������� ����� ��������� ���������� $2,50 ��� ����� �������.

����� ��������� ������ �� �������� WAP-������,
������� ���������� ��������������
(�������� ���������� � ������ ��������).

�������������� ��������:
Motorola: C380, C650, v220, v180, v300, v500, v600, v535, v550, v620, E398, E375, v3
Nokia: 3410, 3510i, 7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i, 6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270, 3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD, 7610, 6260, 6670, 3230
Samsung: C100, C108T, C110, S300, S300M, S307, E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468, X100, X108, X600, X608
Siemens: M(T)50, C55, C56, CT56, 6688i, M46, 3118, SL45i, M55, C60, MC60, S55, SL55, S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65, C65, SL65
LG: G1600
Sony Ericsson: T610, T616, T618, T628, T630, T637, Z600, Z608


000077500000000000000000000000001263163240400350245ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/logosbee_logo.gif000066400000000000000000000030541263163240400372700ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/logosGIF89a@(-3{,6{)4}*5~+6~,7-7.8z93v=3t6>w53x3;y3Ժ;ּ>ڿ98652111VSPNONMLLJIHHFEDDǰ@͵DƲT.8/:0;1;3=3>4?5?6@7B8B8B8C9C:D;EH@JBKBLCLCMDMDNENFOGQHQIRJSLULVMVNWOXSVPYQYQZR[T]U^V^V_YaZb[d\e]e^f`haibjckemfmhpiqjqkrmuovpwqxszu|yz{·ſйœÝÞğŠšƤȥȨʨʩ˪˫̬̭ͮίαϲгѴѶҷӷӸԹԺջռּֽ׾׿,@( 8ެO*\ȰÇ Q-G902jȱǏ =.X/!S\Yr^XʜUEr1i)Aq]x S 8.C,mҧ!}zGPXݺ,`{ ا &hf6a 48Dَ&uՓ, &!F(tg9eܓm^9 c}Bj'{Z$+"cv]%{d@>vV}0e^-7ˀZ3 ~Ԡ1Ar _4ij=(x?S<ǘ9 -Hӊ>>e9LGm?8U=@O?q .tLC?K8qDt0Ct4O~#6dtM7W2L#K&nH4d p^ (}5 ""< &!:#hDdɕ*ĄkD3P 4hcn2$@F|K#nӨ!2N"B Wl_ bp,܄!M0,-qDU<"s.$04vH2Vу4#4b^ԑGw1dmrCm5O^SbEtckwvK7O43N3O?Ш*P;infon.gif000066400000000000000000000015411263163240400366250ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/logosGIF89adCrCtS;6~fP@)ߛqI,y4!#0&.MK9x~()"kƮeckjB6F+CLkE;mega_logo.gif000066400000000000000000000040601263163240400374440ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/logosGIF89a(:;<=@@KNNR#U$V0_4b6d9fBmHrV|M>N?O@OAPAQBQCRDSDSETFUGVGVHWIXJYKZLZM[M\N\O]P_R`SaSbUcVdWfYfYh[h\i\j]k_l_manbobpdqerfsgshuivjvkwkxlxmynzo{p|q|r~stuuvwxxy{|}~_ăcņgNJiNjkȍmɎpʐr˒}Ϛ~ϛҢԥڲڲ۵ܵ߼߼ྡྷ¦èĨĩŪƫƬǬǭȯɰʱʱʲ˳̴̵͸ϹлѼҼҽҾӿӿ½þþĿ׵ƸȻʼ˾,( H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲm6O;8q M`ԽHO B)Na̟X=)T*PJV] PٷUVj)x\ݨ e\/e:e0U\)cc ')جBT s!Iyr2jLfJ )d?rBxXNtjd(8:P^Df4Ajs|D-s wO%7QR9YcAh%l*HAT71e=DE=ބrBTw kY!@DHAD D ?a7FFTS$ITuD@D PF@DAQ2apQE2)Q]2(QO<-DS,!Tu(#6>o5ZN?DIBDB~ @JЂ=H@;mts_logo.gif000066400000000000000000000037611263163240400373450ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/logosGIF89aH(y6Mp7Rq7QHG}X~]z[{9An9Mm)Du-Ds"Ix$Ex3Bp1Jy!_y5jm>oi8ll:mj?ph#`w%av+ds-er)ct0gpOy_Qz^U|[YZ|sHefThpRAqgIucLwaNx`0<.7-4,1&%%&,0'#( O:E]fjouE#3D5H1@\W[YlOsKuJvIqM{G}FxHeRcT`VhQ?<=:1775439/*.'&#$#))+201=1 ۩ǽĻʿ›!º    &*CBADMJ^SFofakv{uGgsOOMMNLLNLHHP S R QU RWV UZ\&e,k0n5r:uL\kb|OWQv`oet|É󨌮ˀǞǖϝƠʤΠӬժլٴܸ޾,H(ȯ@)\ȰÇ#Jł Ǐ CII.mӘqc?m'cʜyrFDOZ'ϣHCJڇ>T&z^SUSR㣯`zݺդUHЍ8rD}t @[w/aaw"kGim"3ZHhJ-X EYTgP;S<{ϒ_Њ! >vH֬ߞ-e?k^[ CԶ Df8,E{ۡmY|M#i5LV`Չ-+:ҰK=Ӊ;1=LE.@ -а#D D܊CD,J0A+ \*|+Hp#E)#$V! R$DHxI/QxE,kC ^NW6`CTHXSp7}n@0@n@ E%H 5De҃bĀGAa 'PEa \_w@ ^ 4F0$B(G$\CH@z `?2.,Ԋ-/|{,6HF~xP #VA#]+ E q) `" @$/$x+ƐO1|UI*gICqG$pK,0Krlc Mi]&2KX̦Bb;muzon.gif000066400000000000000000000016141263163240400366650ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/logosGIF89ad$v~Ða_]屯!U;uvtrKGEy!,d dihlp,ϴM|p# *G(8ШtJZ@q#HhJpFXpu \Wk q LP8}i&lclQ 1' O" b- {` MN(r$Np9#  #*@>7N8(Fd$C Xp䂃cɐRl8 <+ 9 H8co >` b! &aA,ȉ 2יpA&LRzʯ`JaXSYZiσ"pjX9ݮwMHY`PΈ ƽZ. Vr p]ɵf.0 A B閄K)F)seXN}L)x0dGBurH/x[tRH9MY 2E 6K="<`XW (̋JE`" MI<6@K4&h#"4=HAL`XG@Ei3q)In'n٦qyg :(AO裐F*餔Vj饔:l Be`ꩨꪬꫬz3 .<@뮼+lGTP6F+F[ |j;nikita.gif000066400000000000000000000010541263163240400367720ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/logosGIF89ad C,#6G΃xbβWdDwF輹!,dI8ͻr@k*Xkr0 P!ai R"mPGcv tlM  ǁp w } * qs{}w?p,*rQ (H ΗѸY Fu$wlv|v'}w݋[ #;ѱ| PyԳg']EHM' 0v(lpE.vDAeB_> xNفiYT-6lW<g=%\`@C˪9.f8} z* Q- ۇ˸_UjvH޻WeQ28 `XQ>g"Ңn@g͘?+p9 4G_|'L͡|ν;playmobile.gif000066400000000000000000000015021263163240400376460ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/logosGIF89ad,%%Bg((Ҽf!,d,I8ͻdhh BC4޸S܈P8; I nMR\N` hBnkͺװA+b" X-\}X'!1}Q>P BQVa1d` ]`_HUaDƍ5Zy N 79w]5X'@FL]9iFS`^x]aYތ5Q1'd~bN`7O)CFxStXE#40 i^Vqs@[8'6.ڈhY0?hJ믠E;simone.gif000066400000000000000000000015041263163240400370050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/logosGIF89admmb|[\ c,yR̷Чq!,d &dihZA*tmӔ 퓕ɄBh($%fR )$6Ĉ#4'-\H+4`0  ) x~~|z|  ( y|}yr"y   } y (  '. a@i&`z.mۉna TXE z3R&dp˅x>1(CS!D!`S$X]n@Aw `C:pX $PBQ9`^}<+6Y5m.~V7f>^q_0h;8`2CF鈰K@6r p p)'-RHAl< ColdCore(TM)/AIR AGGRESSION

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Nokia
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

AIR AGGRESSION

У землян очередная напасть — 8 инопланетных монстров захватили власть над всеми самолетами планеты и только ваш самолет чудом избежал их влияния. Ваша задача уничтожить всех восьмерых монстров, принявших образы гигантских самолетов, и вернуть планете мир и спокойствие. Управляя маленьким самолетиком на экране, следует избегать столкновения с другими самолетами, избегать попаданий и брать бонусы и оружие, которое доставляется вертолетом поддержки.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 

gpage_airboil.htm000066400000000000000000000173601263163240400400170ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/AIR BOIL

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2005

УСТРОЙСТВА:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

AIR BOIL

В 2050 году, была обнаружена отдаленная планета с очень низкой гравитацией. Жители этой планеты оказались порабощены четырьмя огромными машиноподобными пришельцами. Демократическая Земля не смогла смириться с таким состояниейм дел и космический шаттл доставил на эту планету суперспецназовца Джона Петрова, который и был сброшен на поверхность планеты вместе с велосипедом и ракетной установкой для наведения демократии и мостов дружбы. Итак, задача играющего - пройти 20 уровней уничтожая различную летающую нечисть и уклоняясь от метеоритных дождей, весьма частых на этой планете. Игровые попытки можно пополнять, подбирая падающие пропеллеры, а патроны прилетают на воздушных шарах.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 

2.5$
 

gpage_aneks_ny2006.htm000066400000000000000000000173711263163240400405170ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/The collection 'New Year's jokes'

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2005

УСТРОЙСТВА:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
6230i, 8800
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
6600, 6620
6630
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
D108, S100, S105, X400, X426, X427, X430
E400, S200, S208
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608
E105, E315, E316, E317, E710, E715, P400, P510, P518, X427M, X450, X458, X475
E217, E335, E635, X640
C200, C207, C208, C225, E600, E608, X105
D410, D415, D418, P207, P777
E300, E310, E810, X480
X120, X140
E610, E618, P730, P735
D500, D508, E730
E530, E620, E720, E880
D600
Z105, Z107
Z110
Z130
Z140, Z300, Z500

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

The collection 'New Year's jokes'

Приложение является сборником новогодних анекдотов, рассортированных по темам. В сборник вошло 60 анекдотов.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 

2.5$
 

gpage_blazinggears.htm000066400000000000000000000133671263163240400410510ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/BLAZING GEARS

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

BLAZING GEARS

Вы водитель автомашины, участвующей в гонках без правил. На прохождение каждого этапа гонок вам дается ограниченное время. Двигайтесь на максимальной скорости, но постарайтесь не сталкиваться с другими машинами!

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_caspianmonster.htm000066400000000000000000000147621263163240400414270ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/CASPIAN MONSTER

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Nokia
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

CASPIAN MONSTER

Террористы похитили секретный экраноплан «Каспийский монстр», вооруженный самым современным оружием, но вам удалось проникнуть на их базу и угнать экраноплан. Ваша задача пройти три участка от базы к открытому морю, нашпигованных вражеской техникой и минами.Вооружение состоит из автоматической пушки и двух видов ракет, самонаводящихся и неуправляемых. Самонаводящиеся ракеты автоматически выбирают цель и рассчитывают свою траекторию, а неуправляемые летят по курсу экраноплана и очень полезны для разрушения мостов.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 

gpage_castleassault.htm000066400000000000000000000135271263163240400412470ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/CASTLE ASSAULT

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

CASTLE ASSAULT

Вы управляете катапультой и должны разрушить два соседних участка стены осажденного замка. Дождитесь зарядки катапульты и следите за указателем высоты прицеливания. Стену можно разрушить только сверху вниз. Но берегитесь вражеских камней летящих из-за стены!

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_cockroach.htm000066400000000000000000000133661263163240400403340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/COCKROACH

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

COCKROACH

Игрок управляет тараканом, ползающим в лабиринте из труб и его задача найти выход из лабиринта. В лабиринте разбросаны различные съедобные предметы, некоторые таракан может есть безболезненно, некоторые отнимают очки и время.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_coconutsfall.htm000066400000000000000000000134021263163240400410630ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/COCONUTS FALL

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

COCONUTS FALL

Игрок управляет обезьяной, спасающейся на верхушках пальм от карабкающихся по ним человечков. Обезьяна может бросать в человечков собранные на пальмах кокосы и должна прятаться от пролетающего над пальмами вертолета.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_conecone.htm000066400000000000000000000132001263163240400401540ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/CONE! CONE!

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

CONE! CONE!

Игрок управляет белкой, защищающей от ворон спрятанные в дуплах дерева запасы. Белка прыгает по ветвям, собирает шишки и бросает их по воронам, садящимся на ветви.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_copterbomber.htm000066400000000000000000000152151263163240400410560ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/COPTER BOMBER

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2006

УСТРОЙСТВА:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

COPTER BOMBER

Вы пилот секретного вертолета-бомбардировщика, уничтожьте все вражеские цели и не сталкивайтесь с воздушным противником.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_drunkman.htm000066400000000000000000000150351263163240400402120ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/TIPPLER

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2006

УСТРОЙСТВА:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

TIPPLER

Мобильная версия карточной игры ПЬЯНИЦА. Игра на раздевание с тремя противниками.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_firingline.htm000066400000000000000000000131771263163240400405260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/FIRING LINE

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

FIRING LINE

Игрок - защитник стыковочного шлюза, в который лезут инопланетные твари. Задача - настрелять как можно больше тварей, прежде чем их поток захлестнет станцию.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_fisher.htm000066400000000000000000000136531263163240400376570ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/FISHER

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

FISHER

Игрок выступает в роли рыбака и его задача наловить как можно больше рыбы при ограниченном количестве крючков (игровых попыток). В воде плавают рыбы, которых можно ловить и хищники, которые могут перекусывать леску, при этом игрок теряет одну попытку. Игрок может управлять глубиной погружения крючка, разматывая леску или поднимая удочку.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_fruitmania.htm000066400000000000000000000143741263163240400405370ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/FRUITMANIA

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2005

УСТРОЙСТВА:
Nokia
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
v300, v500, v600, v535, v550, v620, E398, E375, v3

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

FRUITMANIA

Мобильная версия известного автомата "Однорукий бандит", позволяющая делать ставку с реального счета в казино и осуществлять игру через интернет с мобильного телефона, выигрывая реальные деньги.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_hardday.htm000066400000000000000000000133701263163240400400070ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/HARD DAY

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

HARD DAY

Вы управляете курьером, который должен доставлять документы внутри офиса. Все белые папки должны быть доставлены нетерпеливым получателям как можно быстрее. Помните, ваш директор будет очень зол, если встретит вас шатающимся без дела!

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_hunt.htm000066400000000000000000000144251263163240400373530ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/HUNT

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

HUNT

Игрок выступает в роли охотника и в начале игры ему дается 20 патронов. Он должен настрелять как можно больше животных. При пропуске без единого выстрела 20 животных, у игрока снимается один патрон. Частота появления зверей на экране возрастает с течением игрового процесса. За каждое убитое животное, игроку начисляется определенное количество игровых очков. При наведении прицела на бегущее животное, оно останавливается (кроме вороны) и отрабатывается анимация страха, животное стоит под прицелом, пока игрок не выстрелит или не уберет прицел.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_icegifts.htm000066400000000000000000000152361263163240400401730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/ICE GIFTS

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2006

УСТРОЙСТВА:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

ICE GIFTS

Помоги деду Морозу отправить все Новогодние подарки. Совмещай их одинаковыми сторонами и не допускай отсутствия пустых прорубей для новых подарков.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_ironstream.htm000066400000000000000000000135011263163240400405520ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/IRON STREAM

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

IRON STREAM

Внимание! Внимание! Враг прорвал нашу оборону и входит в населенный район! Ваш танк единственная наша надежда в этом районе и Ваша святая обязанность защитить его. Вы должны уничтожить, как можно больше вражеских танков, но при этом сохранить в целости постройки.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_kalah.htm000066400000000000000000000174621263163240400374610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/KALAH

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Nokia
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

KALAH

Мобильная версия известной логической игры Kalah. Задача игрока собрать как можно больше камней в свой калах (правая ложбинка на игровом поле). При очередном ходе играющий снимает с одного из своих полей все камни и распределяет их по одному на последующие поля в порядке возрастания их номеров; полем, следующим за шестым, считается свой калах. Далее камни распределяются по чужим полям (опять-таки в порядке возрастания их номеров), затем вновь по своим (чужой калах пропускается) и так далее, как бы совершая обход полей против часовой стрелки. Если последний из распределяемых камней попал в «свой» калах, то игрок делает еще один ход. Во всех остальных случаях очередь хода передается противнику. Если последний камень попал на пустое поле игрока, совершавшего ход, а на противоположном поле соперника есть хотя бы один камень, то содержимое обоих полей переносится в КАЛАХ игрока, совершавшего ход (после чего, ход переходит к его противнику). Если на полях игрока, сделавшего ход, не остается ни одного камня, то все камни, находящиеся на полях противника, переносятся в калах противника, и игра заканчивается. Игра заканчивается, когда одному из противников нечем ходить. Выигрывает тот, у кого по окончании игры в калахе оказалось больше камней. Если в обоих калахах находится по 36 камней, фиксируется ничья.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 

gpage_kickkick.htm000066400000000000000000000132331263163240400401540ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/KICK! KICK!

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

KICK! KICK!

Игра по мотивам настольной игры. Игрок управляет тремя футболистами, закрепленными на одном вращающемся стержне. Необходимо пробить защиту соперника и забить мяч в его ворота.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_lifesaver.htm000066400000000000000000000143351263163240400403550ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/LIFESAVER

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LIFESAVER

Игрок выступает в роли руководителя пожарной команды и его задача спасти как можно больше жителей из горящего дома. Изначально горит первый этаж дома, с течением времени огонь охватывает следующие этажи здания, управляя пожарниками, игрок может тушить этажи, исключая первый. С последнего этажа прыгают люди и игрок должен, управляя пожарными, успевать ловить их на брезент. При смерти одного прыгнувшего, снимается одна попытка играющего, так же попытка снимается при полном сгорании здания.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_livebridge.htm000066400000000000000000000132731263163240400405110ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/LIVE BRIDGE

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LIVE BRIDGE

Игрок управляет носильщиком, переправляющим через реку грузы. Через реку можно переправиться только по плавающим в ней черепахам, ныряющим время от времени за рыбками, всплывающими со дна.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_mobilechase.htm000066400000000000000000000140121263163240400406400ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/MOBILE CHASE

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Nokia
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

MOBILE CHASE

Игрок должен нагнать фургон преступников и стреляя в него, заставить его остановиться. При этом надо объезжать препятствия на дороге и избегать столкновения с другими участниками дорожного движения. Так же следует избегать луж, так как они делают автомобиль неуправляемым.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 

gpage_mobilesheriff.htm000066400000000000000000000153171263163240400412140ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/MOBILE SHERIFF

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

MOBILE SHERIFF

Игрок управляет шерифом, освобождающим маленький техасский город от банды. Число бандитов известно, но в лицо их никто не знает. Игрок должен отличить бандитов от мирных горожан и уничтожить бандитов. В проемах окон и дверей периодически появляются и прячутся человечки. Человечки могут быть мирными горожанами или бандитами. Бандит внешне отличается только тем, что начинает стрелять в шерифа. Игрок может стрелять первым, рискуя убить горожанина или ждать пока по нему не начнут стрелять бандиты. Бандит делает разное число выстрелов, но убить шерифа может только третьим выстрелом подряд. Игрок должен успеть за это время прицелиться и выстрелить. Убив мирного горожанина, игрок теряет одну игровую попытку. Убив бандита, игрок получает очки.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_mtvpaparazzo.htm000066400000000000000000000130011263163240400411200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/PAPARAZZO

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2005

УСТРОЙСТВА:
Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

PAPARAZZO

Вы должны фотографировать лица знаменитостей шоу-бизнеса,имеющих знак 'звезды' и избегать охранников в окнах. Ваше время и число кадров-ограничены.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_mtvpillow.htm000066400000000000000000000127301263163240400404270ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/PILLOW

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2005

УСТРОЙСТВА:
Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

PILLOW

Ты ходишь по офису MTV и дубасишь всех подушкой.Опасайся охранников с дубинками.Заходи в двери,там могут быть подушки.Лови сердца-это жизни.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_mtvpuzzle.htm000066400000000000000000000127551263163240400404610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/MTV PUZZLE

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2005

УСТРОЙСТВА:
Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

MTV PUZZLE

Ваша задача-передвигая квадратики,собрать изначальную картинку за минимальное количество ходов. Имеется три уровня сложности поля: 3х3,4х4 и 5х5.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_mtvstage.htm000066400000000000000000000130711263163240400402230ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/HOLD OUT ON THE STAGE

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2005

УСТРОЙСТВА:
Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

HOLD OUT ON THE STAGE

Вы должны продержаться на сцене определенное время,уворачиваясь от града опасных предметов,летящих из зала.Ловите только цветы ваших фанатов и зарабатывайте этим очки.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_nimble.htm000066400000000000000000000131101263163240400376310ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/NIMBLE

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

NIMBLE

Игрок управляет рабочим в аэропорту, который должен разобрать перепутанный багаж на лентах транспортера до того как транспортеры переполнятся.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_opthunderclap.htm000066400000000000000000000146571263163240400412540ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/OPERATION THUNDERCLAP

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

OPERATION THUNDERCLAP

Игрок выступает в роли пилота боевого вертолета, в задачу которого входит уничтожение как можно большего количества вертолетов противника. Вертолеты противника случайным образом появляются на экране и перемещаются по различным траекториям. Уничтожение вертолета противника осуществляется путем наведения на него прицела и нажатия на гашетку (кнопка «Огонь»). Некоторые противники так же могут вести огонь по игроку, вертолет игрока уничтожается, если стреляющий противник не будет своевременно уничтожен. За каждого уничтоженного противника начисляются 10 игровых очков.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_oysterbank.htm000066400000000000000000000132631263163240400405550ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/OYSTER BANK

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

OYSTER BANK

Игрок управляет ныряльщиком, охотящимся за жемчужинами на морском дне. Игрок должен направлять ловца к тем раковинам, которые открыты, следить за его запасом кислорода и беречь от акул

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_papaninsquest.htm000066400000000000000000000153061263163240400412670ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/PAPANIN'S QUEST

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Nokia
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

PAPANIN'S QUEST

Путешественник Папанин обнаружил египетскую пирамиду, затерянную во льдах Антарктики. При осмотре он провалился в расщелину и оказался внутри. Задача игрока — помочь Папанину выбраться наружу, преодолев 10 игровых уровней. Чтобы пройти игровой уровень, требуется собрать все бриллианты, расположенные в лабиринте, после чего появляется ключ, которым можно открыть дверь на следующий уровень. В прохождении лабиринтов, игроку мешают различного вида монстры, с которыми игрок может бороться при помощи мечей, разбросанных по уровню. Жизни можно восстановить при помощи кувшина с водой, а некоторые участки пола можно пробивать при помощи кирки.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 

gpage_ravenscheese.htm000066400000000000000000000164171263163240400410530ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/RAVEN'S CHEESE

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

RAVEN'S CHEESE

Игрок выступает в роли лисы, ловящей куски сыра, бросаемого воронами. Задача игрока наловить как можно больше кусков сыра. Игра не имеет ограничения по времени, но имеет ограничение по максимальному количеству пропущенных сыров. На ветвях деревьев появляются вороны с сыром в клюве, игрок должен угадать момент броска сыра и поставить лису в позицию, при которой сыр будет брошен ей в пасть. Всего имеется четыре положения лисы. Игроку следует учитывать, что лиса не может постоянно стоять на задних лапах и через какое то время опускается. Если ворона доходит до края ветки, а лиса не готова поймать сыр, то раздается карканье и сыр падает на землю. С края экрана выбегает мышь и уносит кусок сыра, при этом у игрока забирается одна попытка. Скорость появления ворон со временем увеличивается, но при достижении игроком количества очков кратного 50, количество попыток игрока восстанавливается. Выигрышная картинка будет показана игроку при набранном количестве сыров не меньше 100. При достижении количества очков кратного 50, скорость появления ворон уменьшается.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_searoad.htm000066400000000000000000000133411263163240400400070ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/SEA ROAD

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

SEA ROAD

Игрок управляет спортивным катером, принимающим участие в слаломе на оживленном морском пути. Двигаясь по дистанции, игрок должен проходить через встречные ворота, время прохождения которых влияет на зарабатываемые очки.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_searovers.htm000066400000000000000000000143761263163240400404130ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/SEA ROVERS

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

SEA ROVERS

Игрок управляет пиратским парусным кораблем и должен захватывать торговые корабли, избегая встречи с военными кораблями. Все корабли вооружены и делятся на торговые, военные и прочие (боты). Корабли отличаются также количеством энергии и, соответственно, числом бортовых залпов, необходимых для их потопления. Игрок должен нападать на торговые корабли и опасаться военных, которые могут дать отпор. Прочие корабли также могут быть мишенью для пушек пиратского корабля, но это не принесет игроку много очков.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_slider_alpop.htm000066400000000000000000000155211263163240400410500ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/Slider 'Aleosha Popovich'

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2005

УСТРОЙСТВА:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
6230i, 8800
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
X100, X108, X600, X608
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

Slider 'Aleosha Popovich'

Слайдер содержит 10 кадров мультфильма с текстом к каждому кадру. Есть возможность просмотра кадров как в ручном так и в автоматическом режиме. Можно увеличивать выбранный кадр и рассматривать отдельные детали изображения.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_smashingkick.htm000066400000000000000000000140111263163240400410370ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/SMASHING KICK

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

SMASHING KICK

Игрок управляет тренирующимся футболистом и его задача довести как можно больше мячей до ворот, не роняя их на землю. Тренер с уменьшающимся интервалом подает мячи и игрок, удерживая мяч в воздухе при помощи ног и головы, доводит его до ворот и забивает, попытка снимается если мяч касается земли. После 10 забитых мячей игроку восстанавливается 1 игровая попытка.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_smscat.htm000066400000000000000000000200231263163240400376560ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/SMS Catalog

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2005

УСТРОЙСТВА:
Nokia
3410
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
6230i, 8800
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M(T)50, C55, C56, CT56, 6688i, M46, 3118
SL45i
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

SMS Catalog

Мобильный каталог контента, позволяющий пользователю ознакомиться с составом мобильного контента в базе контент провайдера и, если телефон имеет возможность, осуществить отправку SMS на номер провайдера с целью заказа понравившегося контента. Приложение позволяет организовывать сложную древовидную структуру каталога с включением изображений для предпросмотра, изображения могут храниться как с каталогом так и быть загруженными через сеть. Поддерживается три схемы отправки SMS: Siemens, WMA и Samsung. Язык приложения русский, при ином языке, установленном на аппарате пользователя, приложение автоматически отображает текст транслитом. Приложение динамически подстраивается под возможности аппарата и может работать на любом аппарате с платформой не ниже MIDP-1.0. Список возможностей оболочки превышает 20 пунктов.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_spiders.htm000066400000000000000000000151131263163240400400410ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/SPIDERS

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

SPIDERS

Игрок управляет муравьем, который должен носить в муравейник веточки из лежащей невдалеке кучи и не стать добычей пауков, спускающихся сверху на паутине. Игрок может перемещать муравья влево/вправо. Подбежав к куче веточек, муравей взваливает одну себе на спину. Вернувшись к муравейнику, он бросает свой груз в проем и бежит за следующим. За каждую доставленную веточку игроку начисляются очки. Между муравейником и кучей веток висят на своих паутинах пауки, поджидающие добычу. Пауки быстро опускаются и медленно поднимаются по паутине. Кроме того, они передвигаются с остановками, иногда меняя после такой паузы направление движения. Если паук схватит муравья, то игрок теряет одну игровую попытку.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_starharbor.htm000066400000000000000000000201751263163240400405430ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/STAR HARBOR

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2005

УСТРОЙСТВА:
Nokia
3410
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M(T)50, C55, C56, CT56, 6688i, M46, 3118
SL45i
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

STAR HARBOR

В очередной раз гадкие инопланетяне собираются попрать своими щупальцами нашу голубую планету, но они не учли того, что ,несмотря на все усилия по уклонению от воинской повинности, любитель компьютерных игр Иван Копченый был забрит в космический флот и находился среди ноющих о родном доме призывников на борту космического крейсера "Червона Украина", готовящегося к отправлению на границы солнечной системы с орбиты Земли. Неожиданное нападение пришельцев так поразило командный состав крейсера, что оно немедленно ушло в запой лечить нервы и Иван остался единственным дееспособным членом экипажа. Итак, задача игрока отразить нападение, путем тотального уничтожения атакующих сил. Игра от первого лица из разряда "Убей их всех", имеет три уровня сложности, различающиеся активностью и количеством противника.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 

2.5$
 

gpage_strangehunt.htm000066400000000000000000000151641263163240400407400ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/STRANGE HUNT

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2006

УСТРОЙСТВА:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

STRANGE HUNT

Тебя занесло на военный полигон, но не сдавайся! Несмотря на трудности, настреляй как можно больше уток и кабанов!

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_tastydish.htm000066400000000000000000000160151263163240400404060ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/TASTY DISH

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

TASTY DISH

Игрок управляет крокодилом, охотящимся в реке у берега. Крокодил должен поймать свою добычу и не попасть на мушку охотника. Крокодил движется к берегу, пересекая реку, с постоянной скоростью. Игрок может только поворачивать крокодила влево/вправо, выбирая на какой участок берега напасть. Подплыв к берегу, крокодил хватает добычу, если на этом участке есть какое-либо животное, пьющее воду из реки. Игроку начисляются очки, в зависимости от ценности добычи. На месте животного может оказаться охотник, который, появившись на берегу, стреляет в крокодила, если тот находится напротив него. В этом случае крокодил погибает, а игрок теряет игровую попытку. Если на участке берега, к которому был направлен крокодил, нет добычи, то крокодил остается ни с чем и погружается обратно в воду. Для следующей попытки придется снова переплывать реку, подкрадываясь издалека. Игрок может промахнуться только 20 раз, после чего он теряет игровую попытку.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_vineyard.htm000066400000000000000000000151741263163240400402200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/VINEYARD

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2006

УСТРОЙСТВА:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

VINEYARD

Собирайте виноград и раскладывайте его в корзины, переход на следующий уровень когда все корзины заполнены. Не попадайтесь улиткам!

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_waterway.htm000066400000000000000000000132701263163240400402350ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/WATER WAY

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

WATER WAY

Вы управляете муравьем, собирающим воду для муравейников. Ваша задача ловить по одной капле воды в листок и выливать ее в цветок вашего напарника-муравья. Листок может выдержать только одну каплю!

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_wildballs.htm000066400000000000000000000143371263163240400403540ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/WILD BALLS

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2004

УСТРОЙСТВА:
Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

WILD BALLS

Игрок осуществляет игру в футуристические кегли и его задача выбить как можно больше кеглей, зарабатывая очки при ограниченном количестве шаров. Но кегли нельзя сбивать напрямую своим шаром, поэтому периодически случайным образом, экран пересекают шары, которые игрок должен направить на кегли, посредством удара своим шаром и изменения траектории катящегося шара. Если игрок промахнется мимо катящегося шара, то его шар разобьется о поднявшуюся стенку и одна игровая попытка будет снята.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

gpage_wildroad.htm000066400000000000000000000152651263163240400402050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore(TM)/WILD ROAD

ВЛАДЕЛЕЦ:

ГОД ВЫПУСКА:
2006

УСТРОЙСТВА:
Nokia
3510i
7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i
6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270
3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD
7610, 6260, 6670, 3230

Siemens
M55, C60, MC60
S55, SL55
S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65
C65, SL65

Motorola
C380, C650, v220, v180
v300, v500, v600, v535, v550, v620, E398, E375, v3

Samsung
C100, C108T, C110, S300, S300M, S307
E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468
X100, X108, X600, X608

LG
G1600

SonyEricsson
T610, T616, T618, T628, T630, T637, Z600, Z608

WILD ROAD

Оторвись от преследователей, не дай им подорвать твою машину или прыгнуть на неё. Подбирай канистры, так как топливо постоянно вытекает через прострелянные баки.

При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас!
Имя:

E-mail:
Сообщение:

 КУПИТЬ ИГРУ 


 

menu1_about.htm000066400000000000000000000256471263163240400374610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/О НАС
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu1_contacts.htm000066400000000000000000000215711263163240400401550ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/КОНТАКТЫ
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu1_job.htm000066400000000000000000000214001263163240400371000ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ВАКАНСИИ
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu1_news.htm000066400000000000000000000351771263163240400373220ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/НОВОСТИ
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu1_partnership.htm000066400000000000000000000214521263163240400406740ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ПАРТНЕРСТВО
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu2_all.htm000066400000000000000000001270301263163240400371050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ИГРЫ/ВСЕ
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu2_arcade.htm000066400000000000000000001053421263163240400375560ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ИГРЫ/АРКАДЫ
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu2_clientserver.htm000066400000000000000000000225311263163240400410420ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ИГРЫ/КЛИЕНТ-СЕРВЕР
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu2_erotic.htm000066400000000000000000000224271263163240400376260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ИГРЫ/ЭРОТИЧЕСКИЕ
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu2_fighting.htm000066400000000000000000000207211263163240400401330ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ИГРЫ/ДРАКИ
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu2_gambling.htm000066400000000000000000000240551263163240400401200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ИГРЫ/АЗАРТНЫЕ
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu2_logic.htm000066400000000000000000000254551263163240400374420ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ИГРЫ/ЛОГИЧЕСКИЕ
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu2_multiplayer.htm000066400000000000000000000210451263163240400407030ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ИГРЫ/МУЛЬТИПЛЕЕР
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu2_quest.htm000066400000000000000000000225241263163240400375000ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ИГРЫ/КВЕСТЫ
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu2_racing.htm000066400000000000000000000273231263163240400376040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ИГРЫ/ГОНКИ
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu2_shooter.htm000066400000000000000000000257311263163240400400250ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ИГРЫ/СТРЕЛЯЛКИ
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu2_sport.htm000066400000000000000000000261041263163240400375040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ИГРЫ/СПОРТ
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

menu3_appsall.htm000066400000000000000000000256261263163240400400020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ColdCore/ПРИЛОЖЕНИЯ/ВСЕ
ColdCore(R)
 
Buy a bit of Game(TM)

RUS

 
Papanin's quest
Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile.
������ ������...
Mobile chase
Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile.
������ ������...
Air aggression
Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile.
������ ������...
Caspian monster
Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile.
������ ������...
Kalah
Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile.
������ ������...

send_error.html000066400000000000000000000015371263163240400375500ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus �� ���� ��������� ���������.

�� ���� ��������� ���������, �������� �������� �� �������. ���������� ���������� �����.
 
send_ok.html000066400000000000000000000013561263163240400370270ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/rus ��������� ���������� �������.

���� ��������� ������� ����������. �������!
 
undercon.gif000066400000000000000000000004451263163240400362100ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etlGIF89a(&!,(&I{͙'b.بZiں3]]"ڂHyPK,MbUn8;M9-U]6g)3oes6*$lWuIzs/Fd\6ObFwx.GmLpU}n(Xv5riq5h5=QPadA`zeH{ݤt慸麒]+;000077500000000000000000000000001263163240400344705ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/wapindex.wml000066400000000000000000000005451263163240400363240ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/wap

ColdCore(R)

Sorry, under construction...

logo.wbmp000066400000000000000000000004071263163240400363200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etl/wap7% _Ǒ¯!_qBq_qcqq!ÃpǪD EjUU uWM>UUCừLWL!UBQǀǏUqǏ\Uc_ꪯUUUUWx_icon.gif000066400000000000000000000007001263163240400356440ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/etlGIF89a@@ii<<!,@@0I8+`d[(k;t,;u^ދﲟpMZ.3>P sop]tXBJz)A,5tM.SW:] zec*9~0yk|%uZqnuwt>4b$e?loB>kF8[z B\G? FʥO=FJGGz)JɌGNK팘Gʃ:9kܾulHRꤛ$G5B&|(AmD!L#\8ECA 7yEc 6|lI0 JBL)wF VGm̀Jр"x/0rd%C n5]vw&n+S!wǐ5$;java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/000077500000000000000000000000001263163240400337635ustar00rootroot00000000000000about.htm000077500000000000000000000041711263163240400355360ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src//#- //#excludeif true Sorry, the page is still under construction //#+ //#if curLangID=="rus"
   ColdCore - Java2ME , . . , , 100 . - Java2ME , - , .
, :
  • .
  • .
//#else
  ColdCore is a leader in Java2ME content development. We have unique skills and technologies that enable us to develop hi-end production under time. Our production is published under leading worldwide trademarks and our portfolio contains more than 100 games and applications for mobile devices. Our mission is to become a global leader in mobile Java2ME game content development through development the best technologies, the best workflows and the best products that meet requirements of the market.
We not only develop mobile applications for own sales but also we implement outside orders like:
  • Development of mobile games and mobile applications to order.
  • Development of parts for customer's systems.
//#endif //#- //#+ cc.gif000077500000000000000000000024161263163240400347660ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/srcGIF89a7*(oxA  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~!,7*H *DX6ƒ!R(1ƍ3Q# i"ɓ1N\1!˙.e'D7<| O5?|Te΃;/vfӤ#_yRUBPVYMzjجE~-5#ۛ:%vnߑk WGFjUI60tW}hC*aDmiO2hؒY.ys g׾,H|e/oMA_8s̝?%SLI<]"/4>%Mg[,y0\,ўGI '[_eFthxyi4AƹZ(g@x #V0oc*SgaVAE,ºR9ufv~fEe6 gxYף~>,h0y/VzcRx =Wd"t|<(՚EB(ZS>TLy/ZO3MnnFS/t#jF,3tNB#I5l2X_ONAY >HU{E&g꼓ƦVhHץQ*eASBREkŖv$AZ`RN(_ VH}c6R-G!AH|)X]XiP@VdїypHn{os҃0V/-Cȫև%H"iN"'l "Ev=6ӎ\c)6v:bU1&΋E s㻮ϲ1vf= [ٽ;[ Kx+E/sv^ڰ.븰i%Gֹp\7ٳzhҎɍѶ-A3pYԊBױeZT`Kw<;!)˖U'jꪚSw.u3=My>WsE׼C $PNm|ǪW-J$2?]{slßT+a-{xZ>GiEܬC| 7m D2)Wmhl6ղA=b)`־U{U/GʩüKc {W:>f^8Tlm?Mxu:>F檖p.EqDˮj-vVb]ϛˆl9YX3r+rx;N>/l8{*6gM1*В) f .s4'p @HKXiKoMQ".ǖ'hVhIӅ+c$LΦeRBG`yҩ nT{@P@,IrݾzWMhp_1Zgg{-tk9}glvpۆI| )WƦ|&Ѝ,H/Yrè})3ir۲O2:IZUv2 ~Tj}>ڮd_MD}Gc!'aAt[*@<9n^<61|^+ dG';qZN|cBUn)h?nm1V,O"%AI*/V׭aK* ϣ\ -?lܦruBK~fDZĢv;jMuy㽵>qGR?a(xu:BNW6zFQ+t{R?k^%;cAmiV!mS\+ `FB -h)w$) $5jI^˜q[T#AM#eK(չM,ux9Ve-:GMaŔkA(/3XhP@P@shN[pyU-(a䉟&f w94Y1B<դ؍?pn' qɺBjc',o{Vёl[2JFq4.̗!*䎋Ji`˻wtb4er0B] dVJu f(Y3!b^>יj<{^5b.2ϑ$@#PyNЗntk:ߊ D\?+|.5XHΈW6!n^?pΒCk^k('OpG쬯U-&.TQp?v>N(q;{(ˏ /sz3%fe7];dI Dan3X"}xiw,wk$WٯIooCga~lmɑ)SfB}\{WF M~Evzl1v,q|{+H*OQ\1ۖ&q0TLce\h, a ʼ\S쎑C\vZI2:)4t-HP]mr(7sg!U9!|V3+]ؓUvak򣑼IqpU@ :a,'H[΄ىQZ`fԬdUYa<+BzOh (2[Ik~r#zc`C*:kn^`{k)+z9nOnKW8xEp9ȹn6[p)ykzǦG]+&#1Lk/6<;YN1n[^ dE$G+T>s,1;U%u~_wevS$-# ‡T× cL|¼E~{z}?/llȰO `DWLv(` rs3LT>HT{5-)#nHG^ml`@h v#Z,Y)f7v-r!'KR4"Ӆ]fuPua Y0<{ 3< Dzq͝"u Aj>%+g:>ׁEyP?O1 {"(\a#u$&YnKsUcvӘRҌ~#4,EMƖBw'iD]8.I cDDv3Ulwd)79g>q#V V",ځ3N*"8jmUX0F}NJI ,,A `F k$tqոR6:>@PР ( q 3k%$1ټbfwmm=Պ]bW 8ȴuKmUf+dH[\Օ$ jh2r|Ġ$7NW|vl~cwOC`1nxyTl_ _&m=D[y4Sn#*V<,r{oZ]yg])Ve@+D-O[T*d$oƄ[,tT˟=>,PЃy):~/?۳O]&K(iq]#HRhjd Sf4?TQE:R!@/lV z}ÕRL`c>:Z,9[ƕղh80HWo|jVtPvAj̙#xr8Gt~t\\MeW}a}/ma&Rn5P.:m pr:#|EcI$rK1;m\8Wȩ?2h8`<)$$Ev9S$IBJ"R/HFQh?N|kJOg@I4&ex OoX1PP@P@m-k(+c<ךY7wąRȅ=D}TԚj q3+|{k/rIa>ADS_kjneW-hMgewݸ/> h Òq߁єB*9p=He);ĈPnX2REٗuCS_/\mcl/^B4xW+PqkR>gdora${|Ko} ܝEgRGC_mP\!KAN¸u+Y1nqZ8]ıj7WEz6C{G\C6ҹr`%rfLݳqETYI[ʰL.5oM-Z!9{XŷdIDcPwHl4cƥkIz!uOHR#HnMQ"MȥQŸPeK)7ր'PtAI-PqPiְ = ( (g"<}&H0D":3CHs Ǒ.$"Ԅ'jNV/k+k&yݸsi-2jЛl8bbosKoI̗ݹ%=Ô#oğ2]tLJI"_#,be-,Uz|&2By@ս&n| ݿoꙕW¯Y1⺭w.ws#I^WƩ?[4v^@\VɼO bTV&yzsLӖ# IT:?kq@2QӒ[O ^(I=suߨ-ۡ_Q U(H oVvm:/h:N6w_X9dԅM%y86wxO(ir" O*FAД#oݻZ]iNQsL5QiH`rǖgG: VvjQg}c=eW4Щc`VT t2Jl4ZxHm4-Ax:렦]Y&$*F$Mi*-=EΰmMQ@p@ +B ( ({$Jzc:̋^--滛,9Wa5\nNUq]y@e~vכ Xd`z'ԕj2Óߴi{_sd\i ԆH r_Mk^uWt>ڣڎ,y;hP:[3Yԧ}$\8Qy]lܽv3{UM)ULǾcߙ|Ha@(r!e y~:Wlms~jsw.H"{+>s,*~f'El&XAyA?Q;j{  O֙!n:ѭ#יGKxywɱvD#9b-KӕJelҧKi¼XL~0]T[VJ嵭NHPZ4L=HMmE 1G3JEQDźNՆ<'" B˪躚 $H748EVP@P@۶|1O8oZ'6&Nß$Q@pj;Y,.n~!P'^e-YGI$XDQD@+ϞL::c k4yw7m3AASltin|(K%ntQX1I,4@HRujEAVP@P@| HGS 2Bxϓ @7Q t@mbxqAR5 tcQ|G<'?`է۝dOt܍i0b$CA#569V$Vpx@ #exaI{pƞQY芭qݣ1SH1-&UG^2qT]i #p"~2{LO?:c{9ִbdaS(-z : Cp6:Ck X*B ( ( (/rASZhU*4P kn6h`9dYAPoM[@f᩠- ?BEܪ暕OF3&aD.ZǪ1 }&%Uh?*07Պ|I<%#n0QHoϜz DCS`PQwۿOrYI%7Dt֧N '+ݲAp¦i2"bI4rȝӫLЕnȆ/+_oJFm-Zi Dc~/tK,n4D-[F)]V)V'h(bMͧm&@Y%A/b pG nܐq#ME9tӪy >S]͐*Z]xWOh2T@r8ZYgȃ^jmuTS1Le~ej^bYew7&EU-gOMxe#+V=4BR5/BRkiy&N {OU=mVT0c[G&!&BMD# °@P@P@P@P@sWCĶtVBab qe:󿤿 %K_b7CU6] iNȷa\ñeHT(?[9˜I9[l=7FOqa> U11B{gt8SbYwO+LGAEH#ݦRq!>ҎyPҰ ( ( ( cc_rght.jpg000077500000000000000000000226621263163240400360320ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/srcJFIFddDucky<Adobed       I !1AQ"aq2BR#3rbCS4cTt6!1AQq"a#2R3 ? ( ( ([V@ր>V)`NƚEƒ"֙![": Q96QTLؖ8Ev'ωAo/!*($YW䩺VOVCa.nwjD,+V3鋷!(omMw7Mw+OٓX/J%TF8)S]=~1kʵ#"zT\ZaK|z1VJrMSNoNM$azxхP@P@P-z Xq%hY$+f HGة%ZWiPdxRZHn63iUUR#k6VƝbYwblhf@$^o%Hzdٺ]F96y(?\W'Z@Y M) "o֏^0 ( (h ) 1D^}]U a8, `9G#$bG<(5A1KO RrJfJ*$kWIWrk 0 r/JhFFsv75TɀDd9֣,-k($ֶ7Ѷf Ws򏎵˶pva?gKߢYԎ ( (5i%Bō@ń IleQ2Z)E  $5qRemE8VɐgK&o$%dv4FQR%vNtG?t"#v)Vy3}V 4Jݶ)M`Vl~<|)ځ?WH:TO#\:&'ʾ?Pasyi䌒b~CƅVH<^_]]RV!"aI  [ZB ӶE,A р>kk]gn>t0!չ_mIUEU/zO@( ( ( kLb֊Z`ȈJV2.@'ZkqկƘNn8RITDV:M)e%HEY҄ם2R#.kQ!ֲMq6:51^~KЪceE)%H*R5p89uJ'ZYŠ^CğkedNsĝ2qg1NWV6e "H&9U |O tS~ժF݊aƘBmX\? _432oIkpE0h Z܊ȦhKq6Ijww:9 Hlƴ=6 ( l]A(0&u h0[\@$ !~u"I?™!Ij (9v G VU)HGrQ]cZTkuI%R4cN^ ـHf#7Yȉ0z0DǝZ!,Ʃ)IlP#7%ik=u9e#3@kijeKf)],,$l4cR=q{>?*-UG4!R>^t[ (@Ӻh@3Rw S9+'1]θ>>LᗪR,h@xA-W(OKaR5έ8}S6-jDf`\T-CoBm /f+Hwb{95ް|( (?mvg`e}6_MWBۣ@WtYfKo 7|bw珽E2S #cn+oty!}K"^wUU1}vGc>67O%YPu/Qt RlI!1*2&YPu}=L 5+S>qcdNAaR\)&uF3wwvvT 4qHk VedHлUiP5=;/tz>}]\-kޭ=`ԙM@3 ݳa6ܼ,ÒM$adrAU!N5^MJ>ͯb{cv~Í4ō*8rM.wm. 2/ݩf!r,{j6l .Tj^o<> ݟws;M6m͑69Ȓ$!oqRp]zQeO+)S*pzv. 6Ǻn;fLYG.yԸE;Ȍ/A\$%ea,7W*g+6l8Q%z7pK`lU(7&/om1E-#{tFG/}:ͺ$b3J%OXۨ!f+rLJ&}q@0*کJ7pr1S2 Rxde AϥJc[Oyo?_rN-c:7/g[rv=  cKdC>7(jrXv۶1i/b֕xE!t[7idwS8ƭkU̶"/3Rm%#W*A^VS:5zRkMw]>O_gW}P@PW_+2WOj9=ؼ ip0 e\u[ֻ:dg{y}]H1J9gٺ֡buiq_F"V„:䞺}SfW;&5 )$nVVGj_N fs(|ݗ3ɶuAp;\GAյ_`G{[՗3_ps\~Ȃ?N̹VՓvv像 Yb6rBQTM/e[-_'=&2agמa}(x1k<k[A^_+s'>eK?D^G'[OyY/Zpy97_hf'Woşm,㻛D'lÊ<\y[((]`Qn]㑹O8f,αG+c]OEkjIhKNO,(@dde0N 'duӵf$'=fW/}^[V~qOoܽ'i;Iⅽ6f"YD#7#nE"Yq墍<]_jtq#cY{=Cƹʄ(~!-}WRuQ..6a`ݺfIm#2*Pmg9]È fW&0$yqo '_ cWʭ~N-/q}{[fϷS'PukW<_σQwV߽mJs(' Y]O,pyce۳. G褍gnH_~s+˹;I#v5SϾ :̨D&̗OS?Bv!W{@P@=w=zm8syHB(Qj=?cϋ"lyl$hm{ӽfs`l{@J"ݬQםGޖ_ 罩쯹ݳ>mx)MnGk+R{^_o+s({/u{uշ0[nT BЫ ǫKTbnjɖrPo6{K?jɏ!2N6CC 1d`q`>-Mldpe(!BUȶr=#+ /HC኱6`5tV#OLBj}1\?Hr߼66wWڧIQTQdN7#5W0Q*t|kVmZ\Ow;s m8zrIH°$7 m\~R 8vGQ&$v/ mu=qWj+;~Fۼ}{;uqR| у#ܻjxRgWyy1OYOۛ0lR!uHbmm_mW_fma듌$ŌYF3yi[](x2vʍ|[Jmry>}vXIJ^IZ6n6^FQYVՎ݇ٻcerssA;4JdzKtx5ЯT,G_h&^.1$q/3 n/=bmZnPo)"yNo_nǞ(r߈2z,T{JKO% ]W{ ͵Ȏ EHԹmne JsfVgj.歸 YrUJ i5'T_pUr<ٟp?Sl;"ē~#0J$u&*|_vLJG|?_pre1"2ZCQRE"[mývm>ѐmf^,^G zzbqA¶ l_Yk`Y2O3A||0)B,֤+c aƥy+H36BG6H8ioM~:2Xy\55V*М}He67O~k-hɍm)&ip5dN6j $ں|>å|9:)fHm-Fkzr-j 25j_͊YonUZ_B??h=Z ( h0>t![+KSlGIh<)On+;7,צHV3˜F)*ljM0 i:+ʤ@<X3XPak@-DP-JDz1o+͖Ga hN2|(< |jRo6Xʷb|بAG+(m}3jz<<~bNBflAY& 1)霛8q>C@wgnE^y*EQ3ȎifyS]hk`I&$fK4GPz(6>ikkuS2È`8k$k[eQ`,LD_.hbJSPښ-ᚉfU9d㵣_dx'tVs;Y:ړM#y.~/PeP@٫LZ+_[ iY1o39 aG8Q5ύ+cl>f>dv5ӰcO*Bg~B6.>4VW>'ƇcKAsƦV&S 0xf"ud:,d́l-) K%6$B[kQ͇ɐLvUgK_&C}uD9v7Ss´zS^舚]zM5RI$rAUZٶ ?C*%PXq~I4Œ 9(Km~Sٱ8ʋ}:D^z3:TiU 6MQwRj푋,)lLI(*IU eY |#t5GtVֳc fK<I}~Sv t?m+FYGdQjXJҠY:5Jv_"zDcSO rĖDPJ8刖tAv?g:jIȗʿOhCe(<='U33.\X/O[4yQ.[UR 6%7HF$šռ*K(-LQ}l=5bݦ ʍ'yiN7z꼮ĤZتfǘH:mζug[p6$a!@ gf{;ʴP^q)GH8PhZa V@2mn5k:H?$ =i5Pob:~|[" X8ЃqJF V5 2D-+O52"lEʣ@Tx?/ΑF R2XiOu?1M^ſG?UrRS1Qj6Ϣ(YRtJݕ|jKtiS?=v>ҿkmtdqDՎr-_'{:M7Оh~u[iЗ*6z4q>W"(3!4L9>?g"G٢*sOQs)m1okvgchannels.xml000077500000000000000000000011161263163240400362230ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src СИМОНА SIMONE Контент-провайдер A content provider http://www.simona.ru http://www.simona.ru 000077500000000000000000000000001263163240400344615ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/cmnsendfeedback.phtml000077500000000000000000000004531263163240400401320ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/cmn styles.css000077500000000000000000000034011263163240400365170ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/cmnbody { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; background-color: #FFFFFF; } .menuheader { FONT-WEIGHT: normal; FONT-SIZE: 14px; COLOR: #BFBFFF; FONT-FAMILY: "Small Fonts", "Arial Black", Arial, Helvetica, sans-serif} .menu { FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: white; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none; } .alltext { FONT-WEIGHT: normal; FONT-FAMILY: "Times New Roman", Times, serif; COLOR: black; TEXT-DECORATION: none; font-size: 12px; font-style: normal; } .newdata { FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: #000000; FONT-FAMILY: Arial, Helvetica, sans-serif} .footer { font-size: x-small; font-family: Arial, Helvetica, sans-serif; color: #999999; } .langtxt { font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-style: normal; font-weight: bold; } .rightnews { font-family: Arial, Helvetica, sans-serif; font-size: 9px; } .rightnewsHdr { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; } a:link { text-decoration: none; color: #00BBFF; } a:visited { text-decoration: none; color: #00BBFF; } a:hover { text-decoration: none; color: #00FF00; } a:active { text-decoration: none; color: #00BBFF; } .catalogheader { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000066; text-decoration: none; } .gameinfoheader { font-family: Arial, Helvetica, sans-serif; font-size: 16px; font-weight: bold; color: #000066; text-decoration: none; } .gameinfoheadermin { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000066; text-decoration: none; } styles2.css000077500000000000000000000051711263163240400366070ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/cmnbody { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; background-color: #FFFFFF; } .menuheader { FONT-WEIGHT: normal; FONT-SIZE: 14px; COLOR: #BFBFFF; FONT-FAMILY: "Small Fonts", "Arial Black", Arial, Helvetica, sans-serif} .menu { FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: white; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none; } .alltext { FONT-WEIGHT: normal; FONT-FAMILY: "Times New Roman", Times, serif; COLOR: black; TEXT-DECORATION: none; font-size: 12px; font-style: normal; } .newdata { FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: #000000; FONT-FAMILY: Arial, Helvetica, sans-serif} .footer { font-size: x-small; font-family: Arial, Helvetica, sans-serif; color: #999999; } .langtxt { font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-style: normal; font-weight: bold; } .rightnews { font-family: Arial, Helvetica, sans-serif; font-size: 9px; } .rightnewsHdr { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; } a:link { text-decoration: none; color: #000000; } a:visited { text-decoration: none; color: #000000; } a:hover { text-decoration: none; color: #000000; } a:active { text-decoration: none; color: #000000; } .catalogheader { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000066; text-decoration: none; } .gameinfoheader { font-family: Arial, Helvetica, sans-serif; font-size: 16px; font-weight: bold; color: #000066; text-decoration: none; } .gameinfoheadermin { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000066; text-decoration: none; } .devicename { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000066; text-decoration: none; } .devicelist { font-family: Arial, Helvetica, sans-serif; font-size: 10px; font-weight: normal; color: #000066; text-decoration: none; } .sendformref { font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold; color: #000066; text-decoration: none; } .sendformhdr { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000066; text-decoration: none; } .sendformtxt { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: normal; color: #000066; text-decoration: none; } .sendformfield { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000066; text-decoration: none; } contacts.htm000077500000000000000000000015531263163240400362430ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src//#- //#excludeif true Sorry, the page is still under construction //#+
//#- //#+ devices.xml000077500000000000000000000045701263163240400360610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src 3410 3510i 7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i 6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270 6230i, 8800 3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD 6600, 6620 7610, 6260, 6670, 3230 6630 M(T)50, C55, C56, CT56, 6688i, M46, 3118 SL45i M55, C60, MC60 S55, SL55 S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65 C65, SL65 C380, C650, v220, v180 Accompli 008 v300, v500, v600, v535, v550, v620, E398, E375, v3 D108, S100, S105, X400, X426, X427, X430 E400, S200, S208 C100, C108T, C110, S300, S300M, S307 E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468 X100, X108, X600, X608 E105, E315, E316, E317, E710, E715, P400, P510, P518, X427M, X450, X458, X475 E217, E335, E635, X640 C200, C207, C208, C225, E600, E608, X105 D410, D415, D418, P207, P777 E300, E310, E810, X480 X120, X140 E610, E618, P730, P735 D500, D508, E730 E530, E620, E720, E880 D600 Z105, Z107 Z110 Z130 Z140, Z300, Z500 G1600 T610, T616, T618, T628, T630, T637, Z600, Z608 000077500000000000000000000000001263163240400344555ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/engsend_error.html000077500000000000000000000013121263163240400375050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/eng I can't deliver the message.

I can't deliver the message. May be the server has troubles, if it is possible resend the message later. Thank you.
 
send_ok.html000077500000000000000000000012521263163240400367700ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/eng Your message has been delivered successfully.

Your message has been delivered successfully. Thank you very much!
 
gamelist.htm000077500000000000000000000036731263163240400362370ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src//#- //#excludeif true Sorry, the page is still under construction //#+
//#local gl_curGameIndex = 0 //#local gl_counterOutGames = 0 //#while gl_curGameIndex0 //#local gl_gameID = xml_attr(gl_currentGameElement,"id") //#local gl_gamePageLink = "gpage_"+gl_gameID+".htm" //#local gl_gameReference = xml_get(xml_list(gl_currentGameElement,"shortreference"),0) //#local gl_gameReferenceName = str2web(xml_attr(gl_currentGameElement,"title")) //#local gl_gameReferenceText = xml_text(xml_get(xml_list(gl_gameReference,curLangID),0)) //#if gl_counterOutGames!=0
//#endif //#local gl_counterOutGames = gl_counterOutGames + 1 //#else read more... //#endif
/*$gl_gameReferenceName$*/

/*$gl_gameReferenceText$*/
//#if curLangID=="rus" ...

//#endif //#local gl_curGameIndex = gl_curGameIndex + 1 //#end //#- //#+ gameref.htm000077500000000000000000000242301263163240400360300ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src//#noautoflush //#local gref_langs = xml_root(xml_open("site.xml")) //#local gref_devices = xml_root(xml_open("devices.xml")) //#local gref_footer = xml_get(xml_list(xml_root(xml_open("site.xml")),"footer"),0) //#local gref_langs = xml_list(xml_get(xml_list(gref_langs,"languages"),0),"lang") //#local gref_docRoot = xml_root(xml_open("games.xml")) //#local gref_gamesList = xml_list(xml_get(xml_list(gref_docRoot,"games"),0),"game") //#local gref_channelsList = xml_get(xml_list(gref_docRoot,"channels"),0) //#local gref_ownersList = xml_get(xml_list(gref_docRoot,"owners"),0) //#local gref_langIndex = 0 //#while gref_langIndex ColdCore(TM)//*$gref_currentGameTitle$*/

//#if gref_curLangID=="rus"
ВЛАДЕЛЕЦ:
//#else
OWNER:
//#endif
//#if gref_curLangID=="rus"
ГОД ВЫПУСКА:
//#else
PUBLICATION DATE:
//#endif
/*$gref_currentGameYear$*/

//#if gref_curLangID=="rus" УСТРОЙСТВА: //#else DEVICES: //#endif
//#local gref_curDeviceIndex = 0 //#local gref_curDeviceName = "" //#while gref_curDeviceIndex //#endif
/*$str2web(gref_curDeviceName)$*/
//#endif
/*$gref_curDeviceFamily$*/
//#local gref_curDeviceIndex = gref_curDeviceIndex+1 //#end

/*$gref_currentGameTitle$*/
//#if strlen(gref_currentGameScreens)>0 //#local gref_curScreenLimit = str2int(gref_currentGameScreens) //#else //#local gref_curScreenLimit = 3 //#endif //#local gref_curScreenIndex = 1 //#while gref_curScreenIndex<=gref_curScreenLimit //#local gref_curScreenIndex = gref_curScreenIndex+1 //#end

/*$gref_currentGameReference$*/

//#if gref_curLangID=="rus" При помощи этой формы, Вы можете послать нам свое мнение, пожелание или описание проблемы по этому приложению. Это очень важно для нас! //#else The form enables you to send us your opinion, wish or problem description for the application. It's very important for us! //#endif
//#if gref_curLangID=="rus" Имя: //#else Name: //#endif

E-mail:
//#if gref_curLangID=="rus" Сообщение: //#else Message: //#endif
//#if gref_curLangID=="rus" //#else //#endif
//#if gref_curLangID=="rus" //#else //#endif
//#if gref_curLangID=="rus"  КУПИТЬ ИГРУ  //#else  PURCHASE  //#endif

//#local gref_curSalesIndex=0 //#while gref_curSalesIndex /*$gref_curSalesCost$*/ //#local gref_curSalesIndex=gref_curSalesIndex+1 //#end
 

//#flush //#local gref_curGameIndex = gref_curGameIndex+1 //#end //#local gref_langIndex = gref_langIndex+1 //#end //#outname "null.txt"games.htm000077500000000000000000000011251263163240400355140ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src//#- //#excludeif true Sorry, the page is still under construction //#+

Sorry, but the page is still under construction....

Visit us later, please...

//#- //#+ games.xml000077500000000000000000005222111263163240400355300ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src Контент-провайдер A content provider http://www.simone.ru http://wap.simone.ru Мелодии, игры и логотипы для мобильных телефонов. Ringtones, games and logos for mobile phones. http://www.muzon.ru http://wap.muzon.ru Мелодии, игры и логотипы для мобильных телефонов. Ringtones, games and logos for mobile phones. http://www.ringtime.ru http://wap.muzon.ru Азартные игры на мобильном телефоне, на реальные деньги. Gambling games on cell phones on real money. http://www.cellcasino.ru NIKITA Контент-провайдер A content provider http://www.nikita.ru http://wap.nikita.ru Контент-провайдер A content provider http://www.infon.ru http://wap.infon.ru Контент-провайдер A content provider http://www.playmobile.ru http://wap.playmobile.ru ColdCore(R) Siemens mobile SAMSUNG FunClub MTV Akumiitti Oy INFON Gamefederation CellCasino Ringtime(R) Сборник "НОВОГОДНИЕ АНЕКДОТЫ", содержит 60 отборных Новогодних историй. The collection "New Year's jokes" contains 60 jokes. Приложение является сборником новогодних анекдотов, рассортированных по темам. В сборник вошло 60 анекдотов. The application is a collection of jokes, the jokes are sorted on themes. The collection included 60 jokes. Слайдер по известному мультфильму "Алеша Попович и Тугарин Змей" A slide-show of the cartoon film "Aleosha Popovich and Toogarin Zmey" Слайдер содержит 10 кадров мультфильма с текстом к каждому кадру. Есть возможность просмотра кадров как в ручном так и в автоматическом режиме. Можно увеличивать выбранный кадр и рассматривать отдельные детали изображения. The slide-show contains 10 frames (with texts) from the cartoon film "Aleosha Popovich and Toogarin Zmey". You can view the frames in both automatic and manual modes as well you can magnify selected frame and consider it. Электронный каталог мобильного контента с возможностью заказа и обновления через WAP. A mobile catalog of mobile content enables to send SMS for order and can be upgraded via WAP. Мобильный каталог контента, позволяющий пользователю ознакомиться с составом мобильного контента в базе контент провайдера и, если телефон имеет возможность, осуществить отправку SMS на номер провайдера с целью заказа понравившегося контента. Приложение позволяет организовывать сложную древовидную структуру каталога с включением изображений для предпросмотра, изображения могут храниться как с каталогом так и быть загруженными через сеть. Поддерживается три схемы отправки SMS: Siemens, WMA и Samsung. Язык приложения русский, при ином языке, установленном на аппарате пользователя, приложение автоматически отображает текст транслитом. Приложение динамически подстраивается под возможности аппарата и может работать на любом аппарате с платформой не ниже MIDP-1.0. Список возможностей оболочки превышает 20 пунктов. The mobile catalog enables to a user to look through contents of a mobile content provider's base and to order liked content with automatically generated SMS (if the device is supporting). The application supports three SMS schemes: Siemens, Samsung and WMA. The application enables to organize complicated tree-structured catalogs. It can be started on any device supports MIDP-1.0 or older. Мобильная версия "Однорукого бандита", позволяющая играть на реальные деньги. Mobile version of the "Fruitmania" casino game enables to play on real money. Мобильная версия известного автомата "Однорукий бандит", позволяющая делать ставку с реального счета в казино и осуществлять игру через интернет с мобильного телефона, выигрывая реальные деньги. A mobile version of well-known casino game enables to make bet from real casino account and to play via internet from your mobile devices. You can win real money with the game. Тебя занесло на военный полигон, но не сдавайся! You have come on military range but do not surrender! Тебя занесло на военный полигон, но не сдавайся! Несмотря на трудности, настреляй как можно больше уток и кабанов! You have come on military range but do not surrender! Shoot as many as possible ducks and wild boars! Помоги деду Морозу отправить все Новогодние подарки. Help Santa to send all XMas gifts. Помоги деду Морозу отправить все Новогодние подарки. Совмещай их одинаковыми сторонами и не допускай отсутствия пустых прорубей для новых подарков. Help Santa to send all XMas gifts. Combine their identical parties and do not suppose absence of empty ice-holes for new gifts. Игра в стиле Безумный Макс. Уйди от погони и собирай канистры. Break away from persecutors, do not allow them to destroy your car. Оторвись от преследователей, не дай им подорвать твою машину или прыгнуть на неё. Подбирай канистры, так как топливо постоянно вытекает через прострелянные баки. Break away from persecutors, do not allow them to destroy your car or to jump on it. Pick up jerricans because fuel constantly drips out through the raked tanks. Пришла пора собирать виноград, но злобные улитки-мутанты не спят. It is the time to collect grapes but evil snails can prevent it. Собирайте виноград и раскладывайте его в корзины, переход на следующий уровень когда все корзины заполнены. Не попадайтесь улиткам! Gather grapes and put its into mollies, you must collect all grapes to pass a game level. You must avoid collisions with snails! Уничтожь противника при помощи нового супервертолета. Destroy all enemy tanks and buildings with new supercoter. Вы пилот секретного вертолета-бомбардировщика, уничтожьте все вражеские цели и не сталкивайтесь с воздушным противником. You are a pilot of a top secret copter-bomber and your task is to destroy all enemy ground targets. You must avoid collisions with flying enemies. Мобильная версия карточной игры ПЬЯНИЦА на раздевание. A mobile version of the card game TIPPLER. Мобильная версия карточной игры ПЬЯНИЦА. Игра на раздевание с тремя противниками. A mobile version of the TIPPLER card game. You can select one from three opponents and to play with it for undressing. Освободи жителей далекой планеты от господства машин. Release a distant planet from machines' domination. В 2050 году, была обнаружена отдаленная планета с очень низкой гравитацией. Жители этой планеты оказались порабощены четырьмя огромными машиноподобными пришельцами. Демократическая Земля не смогла смириться с таким состояниейм дел и космический шаттл доставил на эту планету суперспецназовца Джона Петрова, который и был сброшен на поверхность планеты вместе с велосипедом и ракетной установкой для наведения демократии и мостов дружбы. Итак, задача играющего - пройти 20 уровней уничтожая различную летающую нечисть и уклоняясь от метеоритных дождей, весьма частых на этой планете. Игровые попытки можно пополнять, подбирая падающие пропеллеры, а патроны прилетают на воздушных шарах. In 2050, the remote planet with very low gravitation had been found. Inhabitants of the planet have been enslaved by four huge machine like aliens. The democratic Earth couldn’t reconcile with such state and a space shuttle had delivered to this planet a super agent John Petroff who had been dumped on a surface of the planet together with a bicycle and a rocket mount for prompting democracy and bridges of friendship. So, the task of a player is to pass 20 game levels and to destroy all flying objects on levels. Ужасное вторжение грозит Земле. Игрок управляет орудием космического крейсера и должен отбить атаку, уничтожив все крейсеры и истребители. A terrible invasion threatens the Earth.A player is a gunner of a star cruiser gun and your task is to stop the invasion.You have to destroy both cruisers and fighters. В очередной раз гадкие инопланетяне собираются попрать своими щупальцами нашу голубую планету, но они не учли того, что ,несмотря на все усилия по уклонению от воинской повинности, любитель компьютерных игр Иван Копченый был забрит в космический флот и находился среди ноющих о родном доме призывников на борту космического крейсера "Червона Украина", готовящегося к отправлению на границы солнечной системы с орбиты Земли. Неожиданное нападение пришельцев так поразило командный состав крейсера, что оно немедленно ушло в запой лечить нервы и Иван остался единственным дееспособным членом экипажа. Итак, задача игрока отразить нападение, путем тотального уничтожения атакующих сил. Игра от первого лица из разряда "Убей их всех", имеет три уровня сложности, различающиеся активностью и количеством противника. A terrible invasion threatens the Earth.A player is a gunner of a star cruiser gun and your task is to stop the invasion.You have to destroy both cruisers and fighters. Мобильная версия известной настольной игры КАЛАХ. Цель игры - взять как можно больше камней. A mobile version of the well known KALAH game. The object of the game is to move as many stones as possible into your KALAH (right bowl). Мобильная версия известной логической игры Kalah. Задача игрока собрать как можно больше камней в свой калах (правая ложбинка на игровом поле). При очередном ходе играющий снимает с одного из своих полей все камни и распределяет их по одному на последующие поля в порядке возрастания их номеров; полем, следующим за шестым, считается свой калах. Далее камни распределяются по чужим полям (опять-таки в порядке возрастания их номеров), затем вновь по своим (чужой калах пропускается) и так далее, как бы совершая обход полей против часовой стрелки. Если последний из распределяемых камней попал в «свой» калах, то игрок делает еще один ход. Во всех остальных случаях очередь хода передается противнику. Если последний камень попал на пустое поле игрока, совершавшего ход, а на противоположном поле соперника есть хотя бы один камень, то содержимое обоих полей переносится в КАЛАХ игрока, совершавшего ход (после чего, ход переходит к его противнику). Если на полях игрока, сделавшего ход, не остается ни одного камня, то все камни, находящиеся на полях противника, переносятся в калах противника, и игра заканчивается. Игра заканчивается, когда одному из противников нечем ходить. Выигрывает тот, у кого по окончании игры в калахе оказалось больше камней. Если в обоих калахах находится по 36 камней, фиксируется ничья. A mobile version of the well known KALAH game. The object of the game is to move as many stones as possible into your KALAH (right bowl). Игрок играет за путешественника Папанина, провалившегося в ужасную пирамиду на Южном полюсе и ищущего путь домой. You have to help Papanin to find the way out of the terrible maze. The object of the game is to collect all magic stones in the maze. Путешественник Папанин обнаружил египетскую пирамиду, затерянную во льдах Антарктики. При осмотре он провалился в расщелину и оказался внутри. Задача игрока — помочь Папанину выбраться наружу, преодолев 10 игровых уровней. Чтобы пройти игровой уровень, требуется собрать все бриллианты, расположенные в лабиринте, после чего появляется ключ, которым можно открыть дверь на следующий уровень. В прохождении лабиринтов, игроку мешают различного вида монстры, с которыми игрок может бороться при помощи мечей, разбросанных по уровню. Жизни можно восстановить при помощи кувшина с водой, а некоторые участки пола можно пробивать при помощи кирки. Ivan Papanin, the well-known Polar researcher, discovered an ancient Egyptian pyramid lost in the Antarctic ice. When examining the pyramid, he fell down and found himself inside of it. You have to help Papanin to find the way out of this terrible maze. The object of the game is to collect all magic stones in the maze to get the key that opens the door to the next level. You can use a pick to make holes in the floor. Swords scattered on the level will help you to fight with monsters. Be careful, after some period of time the destroyed monsters reappear. If you need to restore your life power, drink some water from a jar. But all these items can be used only once. Вы мирно отдыхали на обочине, сидя в своей полицейской машине, когда поступило сообщение об ограблении банка. В погоню! You are a brave policeman who has received the message about a bank robbery. Your have to overtake the gangsters and stop their van. Игрок должен нагнать фургон преступников и стреляя в него, заставить его остановиться. При этом надо объезжать препятствия на дороге и избегать столкновения с другими участниками дорожного движения. Так же следует избегать луж, так как они делают автомобиль неуправляемым. You are a brave policeman who has received the message about a bank robbery. Your have to overtake the gangsters and stop their van. Управляя секретным советским экранопланом, уничтожь противника и найди выход с базы. You are a pilot of a secret soviet airfoil boat, which is armed with missiles and a quick-firer. Террористы похитили секретный экраноплан «Каспийский монстр», вооруженный самым современным оружием, но вам удалось проникнуть на их базу и угнать экраноплан. Ваша задача пройти три участка от базы к открытому морю, нашпигованных вражеской техникой и минами.Вооружение состоит из автоматической пушки и двух видов ракет, самонаводящихся и неуправляемых. Самонаводящиеся ракеты автоматически выбирают цель и рассчитывают свою траекторию, а неуправляемые летят по курсу экраноплана и очень полезны для разрушения мостов. You are a pilot of a secret soviet airfoil boat, which is armed with missiles and a quick-firer. Your main objective is to leave the enemy base destroying as much military equipment as possible. Инопланетные монстры взяли контроль над земными самолетами, спаси мир! Eight alien monsters took control over all Earth's war-planes to enslave our planet. У землян очередная напасть — 8 инопланетных монстров захватили власть над всеми самолетами планеты и только ваш самолет чудом избежал их влияния. Ваша задача уничтожить всех восьмерых монстров, принявших образы гигантских самолетов, и вернуть планете мир и спокойствие. Управляя маленьким самолетиком на экране, следует избегать столкновения с другими самолетами, избегать попаданий и брать бонусы и оружие, которое доставляется вертолетом поддержки. Eight alien monsters took control over all Earth's war-planes to enslave our planet. You were able to keep one plane from being captured and now you have got a chance to keep mankind free. Управляя гоночной машиной, надо показать лучшее время. You are a driver of a sport car and your task is to pass loops for a limited time. You have to avoid collisions with other cars on the road. Вы водитель автомашины, участвующей в гонках без правил. На прохождение каждого этапа гонок вам дается ограниченное время. Двигайтесь на максимальной скорости, но постарайтесь не сталкиваться с другими машинами! You are a driver of a sport car and your task is to pass loops for a limited time. You have to avoid collisions with other cars on the road. Надо разбить крепостную стену, что бы захватить замок. To break a castle wall by a catapult. Вы управляете катапультой и должны разрушить два соседних участка стены осажденного замка. Дождитесь зарядки катапульты и следите за указателем высоты прицеливания. Стену можно разрушить только сверху вниз. Но берегитесь вражеских камней летящих из-за стены! You are the commander of a catapult crew and your task is to destroy two vertical neighbor parts of the castle wall with a missile. The wall can be destroyed top-down only. Left altimeter shows current altitude of the missile. You have to be careful because the enemy throws its missiles over the wall. You can't fire until the catapult has been charged. Управляя тараканом и подбирая разные съедобные и несъедобные предметы, надо найти выход из лабиринта. A cockroach have to find a way out of the maze Игрок управляет тараканом, ползающим в лабиринте из труб и его задача найти выход из лабиринта. В лабиринте разбросаны различные съедобные предметы, некоторые таракан может есть безболезненно, некоторые отнимают очки и время. You are driving a running cockroach in the maze and your task is as soon as possible to find a way out of the maze. There are a lot of scattered eatable things in the maze they increase and decrease game scores, so the game scores are decreased with time. Обезьяна должна отбиться от преследователей орехами. Save own freedom with coconuts. Игрок управляет обезьяной, спасающейся на верхушках пальм от карабкающихся по ним человечков. Обезьяна может бросать в человечков собранные на пальмах кокосы и должна прятаться от пролетающего над пальмами вертолета. You are a monkey and hunters want to catch you. Your task is to save own freedom as long as possible. You can use coconuts to knock men and you have to be careful because a helicopter tries to catch you with a net. Управляя белкой, собери как можно больше орехов и отбейся от ворон. You are a squirrel defending your supplies against crows. Игрок управляет белкой, защищающей от ворон спрятанные в дуплах дерева запасы. Белка прыгает по ветвям, собирает шишки и бросает их по воронам, садящимся на ветви. You are a squirrel defending your supplies against crows. You can throw cones at them but be careful because you should keep a distance from a crow. Они приходят прямо из открытого космоса, а у тебя только бластер... You are the defender of the docking tunnel of your spaceship from space creatures. Игрок - защитник стыковочного шлюза, в который лезут инопланетные твари. Задача - настрелять как можно больше тварей, прежде чем их поток захлестнет станцию. You are the defender of the docking tunnel of your spaceship from space creatures. Don’t allow them to approach to you! Fire! Fire! Победи в чемпионате по рыболовству, но помни что крючков мало, а акул много... You are a fisher and have to catch as many as possible fishes. Игрок выступает в роли рыбака и его задача наловить как можно больше рыбы при ограниченном количестве крючков (игровых попыток). В воде плавают рыбы, которых можно ловить и хищники, которые могут перекусывать леску, при этом игрок теряет одну попытку. Игрок может управлять глубиной погружения крючка, разматывая леску или поднимая удочку. You are a fisher and have to catch as many as possible fishes. Take care of big predatory fishes, they break your fishing-line. Тяжела работа курьера в офисе, но Вы не боитесь тяжелой работы... You are a courier in a big company and your task is to deliver documents inside of an office. Вы управляете курьером, который должен доставлять документы внутри офиса. Все белые папки должны быть доставлены нетерпеливым получателям как можно быстрее. Помните, ваш директор будет очень зол, если встретит вас шатающимся без дела! You are a courier in a big company and your task is to deliver documents inside of an office. All white folders must be delivered to recipients as soon as possible. Remember, your manager will be very angry if meet you without a folder. Зверей в лесу много, а патронов мало.. трать их с толком. You are a brave hunter and your task is to kill as many as possible animals by 20 bullets. Игрок выступает в роли охотника и в начале игры ему дается 20 патронов. Он должен настрелять как можно больше животных. При пропуске без единого выстрела 20 животных, у игрока снимается один патрон. Частота появления зверей на экране возрастает с течением игрового процесса. За каждое убитое животное, игроку начисляется определенное количество игровых очков. При наведении прицела на бегущее животное, оно останавливается (кроме вороны) и отрабатывается анимация страха, животное стоит под прицелом, пока игрок не выстрелит или не уберет прицел. You are a brave hunter and your task is to kill as many as possible animals by 20 bullets. If you have missed 20 animals, one your bullet will be removed. Внимание! Внимание! Враг прорвал нашу оборону и входит в населенный район! Ваш танк - единственная наша надежда! Warning! Warning! The enemy has dashed our protection line and marching into a populated area! Внимание! Внимание! Враг прорвал нашу оборону и входит в населенный район! Ваш танк единственная наша надежда в этом районе и Ваша святая обязанность защитить его. Вы должны уничтожить, как можно больше вражеских танков, но при этом сохранить в целости постройки. Warning! Warning! The enemy has dashed our protection line and marching into a populated area! Your tank is our only hope in the area and your duty is to defend it. You have to destroy as many enemy tanks as possible but keep buildings untouched. Игрок управляет тремя футболистами, закрепленными на одном вращающемся стержне. You drive footballers fixed on a pivot. Игра по мотивам настольной игры. Игрок управляет тремя футболистами, закрепленными на одном вращающемся стержне. Необходимо пробить защиту соперника и забить мяч в его ворота. You drive footballers fixed on a pivot. Your task is to defend own goal and to kick as many balls as possible into the opponent’s goal. Огонь перекрыл выходы и жители прыгают из горящих окон, спаси их! Fire! Fire! Fire has occupied the ground level! Игрок выступает в роли руководителя пожарной команды и его задача спасти как можно больше жителей из горящего дома. Изначально горит первый этаж дома, с течением времени огонь охватывает следующие этажи здания, управляя пожарниками, игрок может тушить этажи, исключая первый. С последнего этажа прыгают люди и игрок должен, управляя пожарными, успевать ловить их на брезент. При смерти одного прыгнувшего, снимается одна попытка играющего, так же попытка снимается при полном сгорании здания. Fire! Fire! Fire has occupied the ground level! You are the chief of a fire brigade and must not let the fire to occupy all building; you can use a water cannon. Hopeless men jump from windows and you have to catch them. Срочная посылка, но мост уже вторую пятилетку в ремонте. Придется воспользоваться черепахами... You are a porter and your task is to carry cargo from the left riverside to the right riverside. Игрок управляет носильщиком, переправляющим через реку грузы. Через реку можно переправиться только по плавающим в ней черепахам, ныряющим время от времени за рыбками, всплывающими со дна. You are a porter and your task is to carry cargo from the left riverside to the right riverside but there is not any bridge on the river so you use turtles as a live bridge. Unfortunately it is dangerous to use turtles as a bridge because they catch fishes and dive in the depth from time to time. Игрок управляет рабочим в аэропорту, который должен разобрать перепутанный багаж на лентах транспортера. You are an airport loader and your task is to sort baggage. Игрок управляет рабочим в аэропорту, который должен разобрать перепутанный багаж на лентах транспортера до того как транспортеры переполнятся. You are an airport loader and your task is to sort baggage. You have to take color bags and place them on the conveyer having the same color as the bag. Bags should not overload conveyers. Игрок выступает в роли пилота боевого вертолета, в задачу которого входит уничтожение как можно большего количества вертолетов противника. You are a pilot of a military copter and your task is to kill as many as possible enemy copters. Игрок выступает в роли пилота боевого вертолета, в задачу которого входит уничтожение как можно большего количества вертолетов противника. Вертолеты противника случайным образом появляются на экране и перемещаются по различным траекториям. Уничтожение вертолета противника осуществляется путем наведения на него прицела и нажатия на гашетку (кнопка «Огонь»). Некоторые противники так же могут вести огонь по игроку, вертолет игрока уничтожается, если стреляющий противник не будет своевременно уничтожен. За каждого уничтоженного противника начисляются 10 игровых очков. You are a pilot of a military copter and your task is to kill as many as possible enemy copters. Игрок управляет ныряльщиком, охотящимся за жемчужинами на морском дне. You are a diver gathering pearls. Игрок управляет ныряльщиком, охотящимся за жемчужинами на морском дне. Игрок должен направлять ловца к тем раковинам, которые открыты, следить за его запасом кислорода и беречь от акул You are a diver gathering pearls. You should collect as many pearls as possible. You have to avoid collisions with a shark. The oxygen cylinder is limited so you have to look after its level. Вороне Бог послал кусочек сыра, но трудно будет лисе если целая стая ворон бомбит её сыром... You drive a fox and your task to catch cheeses that throwed by ravens. Игрок выступает в роли лисы, ловящей куски сыра, бросаемого воронами. Задача игрока наловить как можно больше кусков сыра. Игра не имеет ограничения по времени, но имеет ограничение по максимальному количеству пропущенных сыров. На ветвях деревьев появляются вороны с сыром в клюве, игрок должен угадать момент броска сыра и поставить лису в позицию, при которой сыр будет брошен ей в пасть. Всего имеется четыре положения лисы. Игроку следует учитывать, что лиса не может постоянно стоять на задних лапах и через какое то время опускается. Если ворона доходит до края ветки, а лиса не готова поймать сыр, то раздается карканье и сыр падает на землю. С края экрана выбегает мышь и уносит кусок сыра, при этом у игрока забирается одна попытка. Скорость появления ворон со временем увеличивается, но при достижении игроком количества очков кратного 50, количество попыток игрока восстанавливается. Выигрышная картинка будет показана игроку при набранном количестве сыров не меньше 100. При достижении количества очков кратного 50, скорость появления ворон уменьшается. You drive a fox and your task to catch cheeses that throwed by ravens. А не поохотиться ли со скуки на торговые корабли в открытом море? А почему бы и нет? You are a pirate hunting for cargo ships. Игрок управляет пиратским парусным кораблем и должен захватывать торговые корабли, избегая встречи с военными кораблями. Все корабли вооружены и делятся на торговые, военные и прочие (боты). Корабли отличаются также количеством энергии и, соответственно, числом бортовых залпов, необходимых для их потопления. Игрок должен нападать на торговые корабли и опасаться военных, которые могут дать отпор. Прочие корабли также могут быть мишенью для пушек пиратского корабля, но это не принесет игроку много очков. You are a pirate hunting for cargo ships. When you have damaged a cargo ship (it has three-cornered sail), you should stop own ship near it to enable your crew to rob the ship. You have to avoid collisions with battleships. Good luck, captain! Игрок управляет спортивным катером, принимающим участие в слаломе на оживленном морском пути. You are a driver of a speedboat. Игрок управляет спортивным катером, принимающим участие в слаломе на оживленном морском пути. Двигаясь по дистанции, игрок должен проходить через встречные ворота, время прохождения которых влияет на зарабатываемые очки. You are a driver of a speedboat and your task is to pass as many gates as possible during limited time. You should avoid collisions with other ships. Игрок управляет шерифом, освобождающим маленький техасский город от банды. You are a brave sheriff of Wild West who is releasing a small town from a band. Игрок управляет шерифом, освобождающим маленький техасский город от банды. Число бандитов известно, но в лицо их никто не знает. Игрок должен отличить бандитов от мирных горожан и уничтожить бандитов. В проемах окон и дверей периодически появляются и прячутся человечки. Человечки могут быть мирными горожанами или бандитами. Бандит внешне отличается только тем, что начинает стрелять в шерифа. Игрок может стрелять первым, рискуя убить горожанина или ждать пока по нему не начнут стрелять бандиты. Бандит делает разное число выстрелов, но убить шерифа может только третьим выстрелом подряд. Игрок должен успеть за это время прицелиться и выстрелить. Убив мирного горожанина, игрок теряет одну игровую попытку. Убив бандита, игрок получает очки. You are a brave sheriff of Wild West who is releasing a small town from a band. The number of the bandits is known but you don’t know their faces so you must be careful because there are a lot of inhabitants in the town and you must not kill them (we recommend you to wait an unkind action and don’t shoot before). Игрок управляет тренирующимся футболистом и его задача довести как можно больше мячей до ворот, не роняя их на землю. You are a training footballer and your task is to kick as many as possible balls into the goal. Игрок управляет тренирующимся футболистом и его задача довести как можно больше мячей до ворот, не роняя их на землю. Тренер с уменьшающимся интервалом подает мячи и игрок, удерживая мяч в воздухе при помощи ног и головы, доводит его до ворот и забивает, попытка снимается если мяч касается земли. После 10 забитых мячей игроку восстанавливается 1 игровая попытка. You are a training footballer and your task is to kick as many as possible balls into the goal. You have to keep the ball in the air with your foots and head. Игрок управляет муравьем, который должен носить в муравейник веточки из лежащей невдалеке кучи и не стать добычей пауков, спускающихся сверху на паутине. You are an ant bringing twigs into own anthill. Игрок управляет муравьем, который должен носить в муравейник веточки из лежащей невдалеке кучи и не стать добычей пауков, спускающихся сверху на паутине. Игрок может перемещать муравья влево/вправо. Подбежав к куче веточек, муравей взваливает одну себе на спину. Вернувшись к муравейнику, он бросает свой груз в проем и бежит за следующим. За каждую доставленную веточку игроку начисляются очки. Между муравейником и кучей веток висят на своих паутинах пауки, поджидающие добычу. Пауки быстро опускаются и медленно поднимаются по паутине. Кроме того, они передвигаются с остановками, иногда меняя после такой паузы направление движения. Если паук схватит муравья, то игрок теряет одну игровую попытку. You are an ant bringing twigs into own anthill. You should bring as many twigs as possible and to avoid clutches of spiders. Игрок управляет крокодилом, охотящимся в реке у берега. You are a crocodile living in a river. Игрок управляет крокодилом, охотящимся в реке у берега. Крокодил должен поймать свою добычу и не попасть на мушку охотника. Крокодил движется к берегу, пересекая реку, с постоянной скоростью. Игрок может только поворачивать крокодила влево/вправо, выбирая на какой участок берега напасть. Подплыв к берегу, крокодил хватает добычу, если на этом участке есть какое-либо животное, пьющее воду из реки. Игроку начисляются очки, в зависимости от ценности добычи. На месте животного может оказаться охотник, который, появившись на берегу, стреляет в крокодила, если тот находится напротив него. В этом случае крокодил погибает, а игрок теряет игровую попытку. Если на участке берега, к которому был направлен крокодил, нет добычи, то крокодил остается ни с чем и погружается обратно в воду. Для следующей попытки придется снова переплывать реку, подкрадываясь издалека. Игрок может промахнуться только 20 раз, после чего он теряет игровую попытку. You are a crocodile living in a river. Your task is to catch as many animals on the beach as possible. Time to time the hunter visits the beach and attempts to kill you with a gun. Вы управляете муравьем, собирающим воду для муравейников. You are an ant collecting dew for its ant heap. Вы управляете муравьем, собирающим воду для муравейников. Ваша задача ловить по одной капле воды в листок и выливать ее в цветок вашего напарника-муравья. Листок может выдержать только одну каплю! You are an ant collecting dew for its ant heap. Your task is to catch drops with a leaf and pour out it in the flower of your workmate. Remember, the leaf can contain one drop only. Игрок осуществляет игру в футуристические кегли и его задача выбить как можно больше кеглей, зарабатывая очки при ограниченном количестве шаров. You should clear as many as possible pins with own balls. Игрок осуществляет игру в футуристические кегли и его задача выбить как можно больше кеглей, зарабатывая очки при ограниченном количестве шаров. Но кегли нельзя сбивать напрямую своим шаром, поэтому периодически случайным образом, экран пересекают шары, которые игрок должен направить на кегли, посредством удара своим шаром и изменения траектории катящегося шара. Если игрок промахнется мимо катящегося шара, то его шар разобьется о поднявшуюся стенку и одна игровая попытка будет снята. You should clear as many as possible pins with own balls. You must use a rolling ball to clear pins; you have to direct the ball at a pin with your ball. If you miss, your ball will be lost. Известная игра 15 на тему MTV. A puzzle game. Ваша задача-передвигая квадратики,собрать изначальную картинку за минимальное количество ходов. Имеется три уровня сложности поля: 3х3,4х4 и 5х5. Your task is to collect a full image with moved squares. Нащелкай как можно больше звезд на свой фотик... You are a paparazzo and your task to get as many photos of celebrities as possible. Вы должны фотографировать лица знаменитостей шоу-бизнеса,имеющих знак 'звезды' и избегать охранников в окнах. Ваше время и число кадров-ограничены. You are a paparazzo and your task to get as many photos of celebrities as possible. Не любишь виджеев? Ну тогда подушку в руки и пошли отрываться в офисе МТВ... You're a visitor of MTV office and your task is to belabour music stars by a pillow. Ты ходишь по офису MTV и дубасишь всех подушкой.Опасайся охранников с дубинками.Заходи в двери,там могут быть подушки.Лови сердца-это жизни. You're a visitor of MTV office and your task is to belabour music stars by a pillow.You can find new pillows in rooms. Петь мы все любим, но не у всех есть слух. Главное - уворачиваться от тяжелых предметов... You are a rock-star and your worshipper throw different things on your stage. Вы должны продержаться на сцене определенное время,уворачиваясь от града опасных предметов,летящих из зала.Ловите только цветы ваших фанатов и зарабатывайте этим очки. You are a rock-star and your worshipper throw different things on your stage.You have to avoid collision with bad things and catch flowers. 000077500000000000000000000000001263163240400350005ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesairaggression_scr1.gif000077500000000000000000000365631263163240400412740ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a-S\oe,H_qv!/ /?Y%&16ץʉ gRZ!cJRBJ#[Z1!Jε!,ŒLrIQn\c}2TEPkrj:Qel\oED^E xtx#{l np{vuuq}vwx|yusrj mn q?  l}s釥t~pp(b~<+eBt*T`l#3$hA'\r&f СX 4;adΐ? ,dM)P eЗRH9e6oC_ mK ( |X6 6 /ߡ}MӖJ^>weY#9ڨeFL Tx0 GA3y@ UZp6񐴥-tM&9v|/\ 8=07"u>ӔgS$J,bH5&i&UK ssLE{c=;Ƞf1r3mXs}^ E{F0 F &`Ixzpz8Pb Mqw,Ǟ "l4Ȅ 22%Ba>$IDv1TdĞ' Vz ~^tpV(bDR֕iIѤ XEE _XIX"vW(`|F.\<: 8)jCu^2)f=`બ꫰*무j뭯jE C!jE"{,*렳Ȋh!9k5d(*z^8.€ ^Xm*΋.7Yʡ6(np!<068CG,(/DX:X|qPM0a~p%ŋF1#) %HMo1Op2J6Doi&G\޵Q&FR,P{"=%av@%par|F 7FTl/:ȞȳGbI[kӟ5̀$դTa K5 KTbUٍaUM`ZsUT)7utd ĩ6qnuWXJ(j' h%6&q03l;6Z&띹3}isYR;?sD OK?EP) V ,6mzˬN&J[O<-Nvw6Wn˱acÛ_+K zh;\,ڨvY,t8ѫ$Ā2iN'ֳmY_}$$IXMdV8uDѷN^7kY6t/چ&xLjdH(!=%W~[wJ?vL"s)݈- +Y'4P9ƃ-lIJ GN [sg. cŹO٠T鈗*ш\ymy q.+a)PMۉ b[8EU?Ma9BlQ؛эX-mo/qiZ>\m_ 'D, $KdJZnG#Ŏp!$llpKt7NeISu:tRˮej+vcw]^'uRlpCʉsX G.I9t0 cbgNv6,3֔j֎,0 T,` X@ N Hֵ>S=(:*P nt+Nԩnug]^:Nvw=i_Pi%Y8O L@S{ҕK@U:.^_?3Ps8yK}@uE/io{ܛ^=Vs65}9hٯu \ z/P{+Pulwv {vT~uuG{xavGzug*~UiUwzztw {k'wq~uv^zm{s7uW{3|mg8<8>t0W]GuDŽDQ7sґ:C=!dW{wzJu~CXuDGt{Wx7Zgt{Hw{gtvu9uz{}tX88EG8牎`V92(_6' $3\Wu4`v({x{×GDvhuV|NxNNjhzFHyCzzv11%&?r! *\,dX@vgu~_L`98zGg|gG瀞uG 9u  tgxzzhO 9]'S77ӊ%M`DiRzx@wW{wsW 8z"|CXI7SuW{p >فlw'{EwV'{Hu5c'iH"%5vFILgeLJE|K Pt`tHg=XHS0 ЗtH{twti}w(Ik5d"#%NcBEXxQvuAhX8{ ttRutϘW=u` y=(IǘW~tMyv隒[(ρaT-7~x{Hd p {GtgX>nU ٝ p{ _ȋJ^gLJ8xВ(g\&,y8w||y{YI]xiUHV{W'{0N d*Vev|j{UzYz{[jM:Sd>wZۢ@svz Hs(P[uz*)( Pe%J'dx ( Rשzz 8%k*#(c0/SSבvMe}Qa¡ 8wgOtz|jd vr|wruzwzx)uxNs.#( ^DRLA!uIuqGtxXW*X{qzJvBF ݙW oJ{eGjiy80ĥF-Dܢ8@Jt uX([{ ŀz|pZ{e'[#* IeдOZVY;vKvIׅ92v#!IJE3GrX !zGg'W{v񚒩ztp V b+YJ`iـ xK׌ J')wR  X\A!PCR P))HxzzHz]j|*7 `jgf[ʛ[ΛZzۇJW^t@3gsDdU'-$EDžsLjux(Eu|8H $jyzDzjiZA"X'*?ݱ>ovkt (xמ'Hv=fיڹje'ĭ:jĭvI,KY XX!8`aJF37}z\ɪe7zUw˵{gT<ǦWǜG8[@aƎFf% Χivzv9w>wtv@zuUi f&k$  ˶L ,Ȝ%2Ƀ"+-Utoׇ3їyjg(iǗ=Ol[܁猅뼩PH3D2hRCC<>|x|w{WwzI[{CjӘOܹc):[iW=:N71q7]& m<q3.Ӷ̑;z},Ǭww>6?Ҿ.uvP{WՏMՎX91~[ɥj(:Słd(yyv`'8E`=T>#[ؽwب^ؿZ ٩U:IUR=٘גLw͑rK?fxLFȑL7wvB1))7 ͎N\> #JIr7z|g|1Hwtw#P|\[y:=v>tMLJBb`6+܀'AEzhsڄdi9Qtu+IuF;}- ٛW}Xz)t+-wHMvUޕ/vNR20hwu7}xP}ZwHhrguv&#{*l6XE7DNf~`9*2"#W5.w9)A8mGKY2}t4nҨz:ŏhNHQgv^~nfѠs6@jjׄ]C߈z{*wylLzaGn~vîudɏ һѷ7>=i<3K-tz{G'\v3fͨ}t8a]ǝɨ XG{}#BLpF=Tؾ7 "ilMvIhcX4(κP~.W8 >v6x5"eK r{ɛFlNvo؃Ǭ7 xtJ3X{JRg]`g_gq>[BO+qTg˟gghݳ.8v wLKm(C?xJɥX$Mto˸XucG] mE@~Ttފl^銗`,OCuS_ί.Wjt-9<68(='kR*xǬt]YQUe*1iq7EX%$dBla0EE&ɴqX.fvb(iFP yBp) Q`XHA ddHLDh {Ъ5kmHB \@4AX6(!\hܹ_4" RapL8@(p9 u vWeFkaD3ᤘ.LD`haQ?8@%U'RDxJM6ˏia?@( 39)#1L j%0 ѬZA}ёn~äsD,;A@D g9FI89(Fʤ}snn[m~W!8(a F 7b JxY IJ"P DpA V`&tCΞmR B)$Hw%vj.6P5>LdFQOt6"! E 7:]&—>I q  ǟRpts܊])p]ApA;C<К9VBRdf`4F4J۴#>@͏Թ[$WGyK" 1}o {bQX RA2i!+gC)8)8psyɫIYvڳX̲ҞShL41bJ҃XR \_ukM2 /{Ebfɱ)*dSDB8\W~ȯ Lw)+dž#@L\u"iڔkU~(:<P`0 QRL*3zD'-i1ADhH AzMBY' >겖: z6VV('R`vDŽm6ax HG3(:6wG(- $ A7! I3eϠV2v!y-Xy3 -f_@DP9$RI(V>Ǖ7%"1:Ɩ%Ŏ8 3@@Mz@g7X$1(\ G@PL VV 6 y bt'<&g  "@#RQaz'KEU:SU r  aiVҏ4   )%{(6 aFaɐY#B @f)A VE^Nxpי##nBg7ncHCn+x0eӹ< *;+2( Z ˫Œ w7`,;&TQN|:Ul̈L#2p*70~zDLBB͵~yS߉o+4QKLE_x2Z vխz>Eĵ%w7CVDKRpP(5-1=p $k,|Nc8@p@ao\ zfq+kWIe.&-zBpphAyRWJ 1H#&  [芹>\w>x@)'ȵaOr','m1رvCp˔DqD)c+{pSDHiCQ'tW Z IlŌn>$"D hU@IBkYB:͞)\dYjj4Ӡ&֝y:I-EweD>]hSE+$ dQă@+/#( -ܤvN,H@t@ұ_HU% n ꘁQ5X&ZJ8FfQNH;B92 @Ypm![e +QL%W`rPN"ň(&@urleҊK¡*e \KtO;@vuPn\"C;.9Cv1|mPl@ +Qn3Po+Et!]`!@$i\Y>\xbLEvs\| -\H#56yY/ "sܛy +,s&ByMRSUY^Ռl7,8DCB"|Xɥؚ4Q@M8% a|ZعM/9XZ.LJVQ:3av;IbFN])s8!.ICಃma@ p &8h ENeSoK)]-m!K CPG13%Mx;Ac$J$9 +J 1`Y {B 0c@f#=Aa*+ruTE6ђ>APA20Xق >V\S KeD 4)Т @563v p8Z55_Й6IL$80 9Q'pG" T Б rӜR>d(+3 T:w+ 8.߸B]3{(sp! 䤄]<$|Mb*IiEq]RA`:`'!C^m`2o9 r>!F~pF)eZhZְ kT1hP} cVF1+$Q+Y6Jmg똎O8 faJXp8Be+>A,"ڐ&5R}==N2B̊K̄POػ9X|<\̶78"l_)6! B&c<FɁswD`K*@М2D1Sv-Ṗ^3 e־r I< -%5#%g&0(65BLe=Tm~XU}Tr7?4rX!ivJI%"-shlK\"lmWٚ:ͯ]SZ +zIxZ'4su[ۈKkm}@Qw7_bj6<Ԧ^A5QpW]hp">s\(>rf4T]%] Hx,~ AC㊨¡rĬCeލC+g+yK;h$KF^zmDaܶa?x/(IsJWy0Yj6ǯ* RNm_=1tD^.ԫ~o_~_v5z/]ǓVաCGxk׋e#G?i A*Y(%63ݠ}x xy,mC'Z!FSz+(xې}7Raz'Z6y gOChȁU?wVsgy~7&icv U|,GրxzD|~1CR413wE b*7Rc6+6;q ȀJyVS/cv(r]66.3g=hj|۰x,u;Y?(?Q(xT"wisde{UY6z.|Ae;BGz8@ ^Eyw)RȁFxuH`(d{ UCJyЍm 0 ~0!y:G-KvH"-4u'GȌ()a& E 9  am"6&/#e{^R `{R3㋘WRFJw(9x)Hh6imr0Y:։w`P )GH%B󈮨l2Rנ}֕ pgI*@ pq*)aa{ ǒ$:3\J?#ܱX*='h)g) yCUqIN @` 7p+yg-)i*FؒYrYy q {0BRU)zpA f:zȅFGF>}@(*ZHyB97y /jO}~CJmlsyX䈝$cYz,i397 6v7/aBluqIObؚ90QaXy%8fV\ҸVW?X)Op,2ZD*c>gڟ^gbF:Z?1j6px3Y+Vp(:;xVrwș(/CKGv2/]yJb苌31Yxcy(6iNjʋpCB9&b6f3 8p%/wȊ.d4zw`)}iK7&y(K/8JHz?F6G5&*AZGR{{J CJ*D4kr`J6k/2':r&shփwp{gjZ+(Wo7wj`avX먬vV3cvHGkN'^ȥ+8sǏ׷YzV{S >xN,Twxvh:Du2> puxg8bP@ m$x;7^6J'fp#Vx? |w!Ee ocqp}p 0mNeHȂ1!Brׂ3N$yqEz1:}z^y r~N Rt{ҾI'Z6[zK6uЭl 5hP 0%vi!ܱn؊%\H«3I(q/EBǏ(y)EJ2ą`bԡ?{ 3#VqVvrK횁Rz0 xP«Ԡz/vqzVɕJ.y<3z"j|ڏlɗə ;airaggression_scr2.gif000077500000000000000000000370741263163240400412730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a RZme,H`pw !/1@]%vW k'4?RiRZ!cJR?J"[):Z.!, KkB+ B󵂯U1HZQrhS /Zd8vH{m]pwvuur}vnwx|yunt lonqqr?9˹Ɏɇnnm p҉͊pq솤!ӨMB *ï:=`2Ls ۃ a1ckT)HBJ,%-)]\Y@uD!M?6¬Y%ʜ.{ꔚFD!4 F QJ Z,0[&œxuޭ·n|M5$8FT#St )2֖ [Efn*-G$g s~JbLn<v#PC5"YD"CX#$=p_< ,,=Eܼh\0NIf^qmT^TXI U)Bga%nCb ju(޴ă9\1lLō-pD`,(h] 8Ŕ0aoMnsNE0by-Xg5iaZb҆^UbR!!"Wm0~TjX!I&{=HxvI4}c_ޠإQ ?`DV jꩨꪬ꫰ƚ*UcE%ʪk뮩ꤰވ*A*leHY(Ԓ@Z-[RXz;P{kXm|F6Bܰ{0.&n<@! + 簉vh88[ '=pI!`5' 58qbV=H 1\~JԚ%(, JAÅiv ,2"7#aDbHzF6ԓɀ`g ~ t:uI(\^H*C>tb־G0D~ڐVDF%@\4(EKk NZgP_qzOeDfqK22\&mZ҅Qw $( [B3yiaPP-LbqO[ӎ0p]M iA5cgB[5q($JĒlsADS[k/Z~)8TK.6-VӔ]HZ&<V(YzsϮ;uo/ D1Qa=q&8 Stkiv5ۿŧd'"DF2%դ$lԏEw [LQ:`ܹN$fhK7ͭsxYh *sԸ^[ ֓\3E"Ѳ.m)&1Ӝ9ENCJQkPlhCWsu:[mmUz=o$U'Ms.8S]R0m ٴ9]ٕlg3n> UT:O@̴B-Qfp'yNQop9>Br [6s8 [l^ Hlce(OV0ߝ pjS̤D* T@+@2pX. d%:4xҗt<;σ>HwG}U@*u zNf(m` ذzOd: W y7S? @X 9P ~Us^<'}O]ǀ>ozyR˦4E(׈}`S\+x[=|{w@upsLw |NwcwguguWzwzzwh{ 0~c"&y :~cȊhsg8wwA|IWx|wTZ;7[H]EW~W{nhhztHT1Y3na`"eoN!0( ` {pgxgdHMvyM@wHG{hs#p8G|ėtCoȋ1qҐ+ X  @3}@:vzww?7xXsMWe1)=sg9|VlY+ 3FS' EKI ͸u^G bq|s 8M|ؗXz;'uVw8Rxi}izɗxiE)fj\-7҃QI~vt:Xz{DG{ y(z>< '}PJts Ozwi|)flj@0NBH@yODm({tTuג{gג膆{Qxtt(:tٷ*xF :`sY+> Q'Ĝb4i'-Y8sۉ扈0v1ږRw w|[*sW|wc imRKm2sha{ɖ_zyAҧ~*w{vlٍDžP7fJgkҤ>ro~, W ixMgz 97{ʖNv]x{~9w9YYdr7vM(s9i n.7%0ZOS|(zs p {0yk@;vJK|)ɍwSر0'E]q=#Zbo BpT(wv~QycuxvJ|xtq[tP*[= zdpN:E ZEF0""ZКy Bp'v wa: iz$zSؖz *s}p8|!zIzrb҅G2!E4%207REQd =tC(uZTؒ@>Xs`{sb(݋$5jx  <$ Th"R>&o,uPH9FGUM8}7}iz8}U=e' !wgğJ)\δh!TJېl ls#@9Q 'u)ZTv>J|@ 0xb|{Gttyp:ؚXȍG2RY(2?v6XtHw9Wt\ Ȗڒkw~-|hMeKQ qSvmEYXS`&-toܩh8Ip7҉Kt.;ɇzǝt->acgшSw MQ%:h׋c=ƝK왁zױ. |XV}w\0* WؗؿEӄW+Q7^'*QR=%zH٥zt vWҧ{/yaX*]"PvW 662'-Z -5I ch,|]W\|W瀤G>YHzJ=Ԅx!>QnQ> k5(q:+$)8%A+Cׄck簈[r8v'?Fgx!P pZ{*`$v.K*A;"n zIb݄ם ׊[8;uW-'}0^%ސ.%@Ύ:}nPߞRQܟ•k5ڒbm>S蟶rXs6 iTGk8~7z L=cОXN=?%pB~wi1@&Q*I2=Pxw`ziY}+ܼ~M =8 թQ;rG [VngLN"E$yL&^O=w]kz|)O>cXz<nn"vߧ0ʲҹͫ爣[trιr ubxT2c>c@O#u?غ*0Q%"!aN'!Wz6̛(zXuYVqihmV]Հ@h$ƇlBʱ6 "((B<^#@<c On\ XZиnlxlp] dVh"^TX$` DtH41n(F:1dDr ($,!$%+))?=?5& ZZpZd oA!B"jJ+C"~xՀ %,g\KF`9FϷ>km@A<#i F8HP,j P~WW AU 1ñ# BYyDpRCB7`Ll@Wh(+X(VC!?< -Z@Wp̢ [4|iqm Ane!mO '@IPzCul~NPA#H7)Y0> ;TBs\X{<Y˖mmt<ܐ7B X& b&] ! `!cV[dӈU ~l# G$!y2&Nq&3TB1-'ݩC )hWj6u|0^ cR4q2)Z\mHN3 qL&uT&D mr#Hv<ʑh"=4qΥZN 8H| IuڹFLZN#iH(5#6[t ^2 =kԳf}%ĆGd%256dz׮RYh14 M j2t&P2S"H P:װ8p|j_(؎7] 5)%0Ajnp;ōI\hv@ @3N':GI4Rdih@ыux@s$̧'Xp}αEԐRj>`+JF@@+x1KdRAPBL^%&"@(,w 0I#p}LDI?a ؤ11 2Qgdf& HsYBqD~I=.E"!"cփ\EEiUL~Ikq( n%-57w!"@"E_rƙ9B)XAOwG8-5GH ¡"NG)B4sQr!ăQh4;UK$ͣh wt#"XA(*+spUW=h0 H3)JHA7NHUUd~{ģp8AYUVe[,k+&ԬTY#>V20 KTMiז2[nl%F8F!B [fbi 2GE4w{Q[0zy-n *j6LeCUC;d$*i^ZY!"*e,W. :(1^&WUA&=78$s Ti p,GVEAH)zP4ȓ,ŏe`+u`34EK|B{q~"(c6ݼ%eCҲ ZIG:-%8 4r b1n=}.|.m}gЃc@o? C!qfc0l^hq X `jAź+/5eAqhgͿ+1w!imq!u@[~ HPwED)E)<;xJʤJ(5:Uzh/ps{q ]q@dʀU^'P_d  !98 `,[S L v#P |!hH M :uL\ɐHȠaܰnᜅ(FhZf$IR=OlI! `4R cYlGq"`Bҁyʅ(P`Ŏ@͍WAhP[ : ,(Q(QQ@(Gf Zy=B!#dH۴' I\(!d}AhQeYKx[EI eFM !lLM'(@IH(UQTgWŌh%53V4RV ]stҲE!%`[YaAT"|ȱ%7@DY@]dGpFhKJ"Yb\HeimJ ` }&b@t@YR4@#%rl ' D9U"H9 Q\@ߤS} E9"%KET Rt$U:#EPEx6Ճn(}Kݚp! (xbp d>@ Ԅd℅mH$ , )i,b -1)=\ %A ohO+$YBR0y  HI評 m@@R\=4]BJF XN!$AQC6%MLfchWm*e$,&8iZ4dܳeT')tHj|狽JXLH(ǼLcPf> P&R('8]2TA:!d׋EB@wx<$MxdD,x+ʈL.8JC5!pڸ1Nh}!LDn\Wv]7mAQD,uu/Pv2b udC#ǗXem^0,` ^bv[=hJhqKI䈀R4l]l=Ro *STr` ) ,L\{Lн\ M!ywqa|sE}3~..DArqT(l747wDuױtږq|J!cp~MՈou( tZNeH"͈v[|8W|<3@LӁEc}7ĿʱBopw\B,X@dn3wT 3|fd4)B/az~J* 7âSXy@dL:e⣁-:J,I^)(:ySӒB=;xS<@AD408i qEaUPpAbYM4 <;)\z}jR'̀P~BDHXDom@,yD1̠iڻF$_䇸x{˴M]WC,ip7FWD"XCNw_b؀M4ΰQ RL,Lq[<}8i#)$I|%#LkBʤAd /,5`EKel &e^l:' 'σrP*w1 MF)IOw5~ucvS!wù1 R.8Ԑ^}7$<`b4 :IV6XVBB>C 1~=mʑat% Ki}wXL"0HWU Heypv`@'O4Enqq'u Bh9~HAdR }%AGQTN  6!D*YEaU~] l/e Ohppl\A 2$ 8`N,AG֯`"FU9`B Є l"B Yq~-!tD(t&\`v.`Wy6aju(Mb#tTHM$}ӗ[uqYPLA_uZ@F`F5(`6F^ C;02+xy!b: oU'LEAp MKG4Yש1.qe>3mFZ5 `8jgC&H/K^{.¾@4@"%\j6HH#X#̒ʌB-!%*nT 8#05 C Ehݸ gFH`t!=@,E+ =3X+#ZhdR]C40a5񍚑 7!nS̗Xy@Q2Cڣ䧺UaaYR@RzK QPB͞p&Y/A׹Q2ATVNA2䥓F~)&;a(/=XrZ&]h MUml[N7yXS\p#%}3 D8ˉJ L,Lf*F[uɪ Q"R2f79F/ `Y PF "*J^oѼa@4'B,`:0Da%{UR% fsHZśq .RmT;jDfjK"6UE6Oj oUr2Er"j ^aRiXK~6%uO"BRLf Տ` {0x@mPl DFkD$Ky͕At0Cءb%u98d"+Z /`f1Fr¥fLZBT)>~S/]y4WѸg άW!,W= Y3)JgL0*Y<7L"&R7)*D8"rې_FIM+3s\(Wvז0#*^Om [?S{z},|A>Ov)j{y"K?ics\Lc&JAza#cPbMp {4&vPGz>iD`vfsf8 Տ=ڛBiN3!JyVA E˛Q.wн!AAҧ_W?mtѼ˯&Z웙G?&CzxIohEx!/+8@rPgy @ѧSR@!!%%//nBIJS=~'F4MXr+Ȃ-/1(1xLDBR'JXJ@a FYЬ(V -ye핊(KEmTAf&Ѧ,d \yZv1rPe5oWiq9!d?Gy#ivb޵. {Fg dx4 6$?"[TJd`QZǘ^y,v+ƐY,sAaxpa ld^zF0 iF !`9(Vÿ́Fnjb MqFv(⇄w ـqjO0Q1%`>9H@v&1dt# Rbq(\o }Ma@RѕB4%)%`eU[–aU8m @-1o3qBb^#_ 92ғP](i6HLM@գU%KAT!"tUcMƺmU],I[J-DSzuu&=۸?nn#㙸갍ihBP5>kNMN:?O!햑+rڧ5wH4"ݶ1T}%THHf--nk Gd:+ 12a m(7M_^o5\K5\Px]\kֹ/s%u Yma~Kq\B_JF9 ͯ645jvBc -t7!2*O7:H gN1BT) 8αwvTCoCbXȵT֋ 9P~#69Hq'NQ[-bτCdW e伢{ 3) 4gV@ps`>p d tP@@20$Jt0}@ms?@@8n@{n\>؁ؾYU4`\<@}s@>C]JMO:3CL:.w Pyɋ='s>w[s8ˏu+)Ɯf/E׷9 <H@]Bҗl#{Ohc>ishGQKy|1Ƞ%W"sgs'v?}gt PT75ytL{}m'~hvw{*xs@8@spv;s4b 4`oxs×svF}Ttx z%Pite焃vv7|vG{Nxkvv;|57Ck}3H*vGw`zHtht Ww*Pu[tvo7xPhzvm؆O({kws?׃a{_`"y&j ,|ww(v }SwPu%`M'ʘctN{M{~p{swvxy8iÇ2K2hGهsnwG7g{w&%8`wgsdDŽsgbxXv h8!WVW\/x}G|<@zV7e(v]v/19{5h|荳'LQ7W))#AHwvWwz'wʰM'up?7vGDg(xa{rvwxG |rY}vX{'nt. Rȷ7x;gp0`7 R ) PvpvHy{8|Ƿg7c(#i!Arb}789`p tѐPy胻gwisyw)EɊ7x}Yvzgl1Z)6peEh0#i2ɄW|W{POt{thjؠ'tLXxwMȚJAdW,$Z#c4表 H{9~ ʂّ/Z~ywrciMO:=KEH2١smp@+ {ws0T:xk:iV&0rr:DBs=({-y+{Issw鹢ZAj:اV%6N}o8ߪڗ}2K@ېkj˳ ɡxkH6ks5"JNs$br*ǧ>ˆȑ-+(KkˆA8&7o*ҫ'!h=!b@6(ې#x,+|?pZTtQ\иq{  e7?s:,$ub\oH(m:/ѧjPYL+@i)M"l]9<2A:PYB,mo5ģwG2,yG|r >M؆K졻ÈaG dꀚNN>]w-A[La 4ڲbᡃgG̾=\ﲸ;>J'dH[kؔ|f%bՒv"Ҿt/|ʉ0Y)+@ 4K/z,zJw+{ZChB^AޢlЬʂv;YtMnPS?4u4Kή֍H'\\~_^ZbiVr: =̰N*v}^wYz_~7ǍuWjo|YmD)th]SG`~gWNل<݈/_z{ \y?1ΤY[LZ,[,:wػTyeu$\CN,yd b/լ8TK:!M̆`ͦp H@f{,6ъ=V0 n&q@8IDxdN$|F<8}Ĝl%-EHJ U`Zi --C r&^Z9U8xxݐ><쨖ǜ+]<:dbdI 9J3@jdBظdЁ@&B7R'ΥӃ T^sXDd8|``Ab (̍ctY 8 @\ɂIђ={`^:O4pxS\URjCe1`Lbc'Wabp)6,F9]w8S{IZ֑t,٘sReCFBhrHTܭ}dЬ-)lυ`SC\L,Ww7E\ual\pTE~b-0pAx'D``|`5(SA0rSIIlX X-e>1!D#VvVU)e5P>$o]~I9R?] .R<RI!xFTg([Y@ @2TTg_x[HV-8P XB (XLwSHtA;*C쵍1QN\@#/0Ş %Z5<%L 0wa<,;#E5O"FI ,xLYUeQg薘\DKBzvSFY~ Q@m t &&EIM>Y6>9+]q!bk3LY(: ;"KR!@CDQj(׀keUaYU!*m? _(2tAȀȨ R!}tFe@LYoKoO'ޮpBJ\. KܔlLӻP͟gFuaPb2:tI# xC_CmX\aZ|IDR8DAvg!hҐ8 HeY[0g#:pCUza- j5M0*JxUf1;@+#j\JB #>dDf%=V$mY2q;M2'* I&)IIYTh< @cgmy; Е^CuEf\7h䎰- ȘRXGiaV dCPj0E{".5A!͊^RYݑsUBgЧi_7WڜE`b 8@U(]nCpZ\  vH\ ]|<<-4Isg*Sf(~ TDpC0{XtZ-] ]?}ծtHN, q7<@x)G(, \g:q YD᧹ _ W .L v5h*lh:ƺ/w;>nQt|;5 ⠻j-B>X@ /D*#p%3Wf?68,8\'U?CqڸA3@hm -fud\l0EM %ZpaҘƾto腐/ h[y7hވFHQ5 wK\U/`9 mrHCX- xZ M [5 " ^[ / x2S V@F[O wtvDQА bE!w``J bϨ_qŕe 7،| cc CA8\#B`0b#:ބ&c5ݢB"!- aDD"BlQTD,TqW-d$IҀXe[5#[=t$N^p/6@ dAh !P>RG n=mZ$)"Z\deneU=Q%DԦU J$Sa!ABDJ"c0K-%f,eeAP!1 ,Tg8HtӍMr$&3r$΅M"f\d1ib v  ~n5h< ~BƁk2&c.]CGd-F5 WNkw,Y3ᴘ2nb熆 LL:XG cRAJH1{jv=( /ޑa%/-#Wb iXeuϤJ0g+{N o X5]߶e7 j/qb &\:%ߤ953TڝbNcN0p`8zaG|S+T 5(k;b0 `Kbx<"|TX^ PQ%4o E4Q?sbP\-6iٝ4bڌNt~ o>*w)^Qe bTɯfBb  0`KN?Y+X a ^GPX+P*q{10H9 (@#ęGv pjsǑۺ h<@9Ph&_r>e$⍐P@T<6FNgłP(r]+ P(WVR`XSydC9A1QH98HUYiiu:fv6P1 0`00<<|!ӲaAm" C)Cu82r---"@>i4̚P>$3Ay1hgƎ$K$cNrcXb 1ɝɄ|irƎ Q`f((,80ƙ2ef-+̏6džEffb6Pͷʅ 7$ر6=Œ{6gڴeu|6 zy:RxB W 8wF4լ,4u}d X#B53}>YSٲ(GV!#QM3]]^ K/< }=ui^A| elAu 2`G dҥL}HQW)܆]X. q![⭘bv#(bvU$4JHd,#[qN> eRNIeV^e&bc/1>e!يV[jfn gr݌mHD1BdIOh.ht1G")Tmg~ jZ#F"B͘٨JkPFb r݄*aw c.%2%͖XTSFwU+&FQ3N:##"DwJfqXsQtu:ۉ!YFUfI>.f'o<v`ll[$AAܝB#`bmtp*#0GQ ɱO]*L# );a*,(!T+|ՙ2[t:nJ}oPbB-7(O/"1a.Pv1yRg Hs@WҐ񩬺QO 5L BL|?Z@A,ƻOA; 3Gzd=dKj]"VoRۺU/s@ڝ= 뷟>N!Qpпv,kgsJia󑴶G")~{A\ :HBgph3=Ce2( ۛҶ$0ePx tTe^Q9źH } 3_hC f-aՈF2VqJ\1'$BFK!6/!)_ ˱00ͭ)G/|{c0Qs:1~B4pZm XFbmb?2sGH2 ȟdL~wdv2BY&f3G\tKbO] J8(*CC6; E[fW\mXT6 ECQdI1C4'B9 L8f貜93ǧǕ ;4 m&:FE,DO v8KMhJ⒒'E2֤Nk"Ղ-s 2%t\ MЇ/jjs(V43 uZ$wlt:ztKAkζGՋ#T@1H =LQfqX6 Vq $Pkl QnNsNGK:! *nP?%HH">J[}{$o o] kqٽ=W9[%$SVlĬywl7awõ%j^p=O[c ()UڧT6nP*|'(8KwcȄŕH vx1 h^$8sJ6> N܈x 9NFB| >d̆-Ԫ?R!^BED5j+BuK?nW}H@\lՠȸC*ԋ4 Z Й O%#P@*4dy Yy[@a$@QA%XEa&0"5\L1ZҷHI0qa @5{(ѽ2HU)*ؑZJ:4npMy:[H,ho $IOI5z1Rn/;*`d7 ,i+:-]dom}<-Wn' Rб3S]%vu`Ɩ* ۄvwU )2s1df@0,K7OjwRF \ O)!x`^,TS\m)x ݹ.+'um}@R;airaggression_splash.jpg000077500000000000000000000063511263163240400417210ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDuckyAdobed##""'"!!"''.030.'>>AA>>AAAAAAAAAAAAAAA!!1!!$!!1>-''''->8;333;8AA>>AAAAAAAAAAAAAAAAAvd"!1A"Qaq2RB#3brS႒C$ 1!AQaq"2BR3C4DbSc ?XyP ҹN~{xO;G wZ0l'g}N-r 2BjFLE2e< sNHգzPc{#t{NQ4Ed-O@JsX;VKˆ7\~`}5g%9-TCLG8h[3Sth/14v@µq7X18>]4mẘܴԶX+ Wt3ZY(k25P~"ҁ2$t,C9.KZnXE1 u1Y^C^;ד=ò#NJʉ [:')(L"PLͼ)e(p傻CDDv;?Ƌ>]i97KkeA)Pt{:Tmk)6wxd27K$|NySD_nD@z//>+_o5U~(<.{Jb:OKJM*'<8~M'7iRغxzc)f9Vh$jdqI $9 7Qx9ni!Z=7k&DsL#BnW.$!Ks@im{+»7ek]m/!♏G6iX珙78 M$8d]U魻x9@gY ڀ5GyC[O9AS4bC ~|A[?nN鰝!6Yu V936!n*+>g_7=fALN#Ρ}ilm2y \N> Tm2mں$EC-ϊҟ:|f.;4&+V^Y9Hg׽ Wƹ]^F2* )z?R̀$YhGӍ),d&cR8nDU[pyRe1~{T{Qs96WnjWR60mgjq¶Jj(- *i\XLSe(P'fE(˴W(eI\{f^?zW\ކ2͛9@;{('1; eO-C.0>7"dAay~DN P= &ִy]Wѱx 囆CBwRv*;7TN#aݐ6d{ZʛѠ ^n |z["l(h!JBW1c1c5dPZnGƈ,r$^bMB .n osB /B'WE0iv-Ad xIHArTh'|K"Ԝ#5F Q.'p֥[Tpnm:jZon~# B6kY'?& q?zN`I P{qG!F1Ѱ䥡wֽG+(j]vv좇oõ.rx(FpwE:ªl6\%8h$ {л549['/b}r.~N֏&/63%C /lwlQ\UvۥDWPJ\Hza"r^‹U?7=C*QmEVj'g~Q4088Pަ0ž*\jV44s&%aEɕ7߳ Yw]vW|gwX@^Qu~JdDihP@ 0@@*"NeZaI&%HU`M4"I$OO 8>0@N׾;w3~Sϼ;`8 w7{I}@=wo;y  :O<` O)8A=J0$cYHCxDOHEQ`$%+y=Lf$R`LqC#EА2))JVXhyr^A%`K41`̯ b87nP͟RJ$"qJDӚ?Y nР86cl[09\Z@1f~E&6@O[r2i4^AjU3h7΂6+GPb4 e;czR⇘fKݰLZvOkҭt.م](*Yj %3MSfhU[PJWbh25(X"CҦHj2 Ƙ KթD\KyX 1aBׂ6*i)Y̔MB 64|Eq,`31O{Xc0pA4Xn_M4"k+h \NiQlتք-:]@?|@|gY` ?7Z Dˢ,ob =i6Y&.5Nw%?oea @~@:4c8 Dz=:F{8s:Uzۧ|;p|?p ;&-68#:'<7P7':S:43t|Z'( S @Lxg8 =#5-3C;s;,;G237 5s|w gpjx u&hyx||ć5]=zRfx Yy 7AP؉"@@gAV?Gpe:gY s8?؋kSVG&d[OFpf Xx(~xaa | `x4 0aZ7t8hIpzieV`uW Z ?,Љf *sZّؐ , zhmxx2 @ T@0I@Ci]!SZ*??%y y >d5[qMEnwU57 N?K P!)Z-@1[OЕe d`7' X~xi "g7 j%9#G|G# Hy lI?ѓ5-# 7*"@ ?}9~ͷȚi胛r-#M w۹`[we G:Èpc7 x@2#99n`7՝ *sc8{y4I< [͗7$@6c 85 *""7)~8A@zc:շ 9pW r[x97#8@8! ȣ x68TUV1ozHZgZ8Jӥ:ʠ= @fzH#:"[0U|:33S~*a@js67 9 i ` r~"?::38v0C* z89zZY [;{D@$4 #$[Sr3-4/@D:XZ}9Y Wig7D8akG2N" 7V۵A;>c(f>:{) 8mP|Y;Azٷڞ; ˹ ;|#j05J@@Ęk_Jù?!J9]ظ[+6[)x|,( 0Q1A*{;`kH[ c @ co %ĺ?pڛKJ GNk8ۿ $֛{J2Pf`CGa%2 `0 E/3\pidyy@E7 p@BЛ50 ӭlԾxI=T]V}XZ\ | PV5Lpl\lnI"-Ud-|Ϙ ~׀S]I ܋6}Ӿ ؒ=قM0=ˈ ٟٜٚ؍ ӖM٨V٫MIj =۴]۶-܋ڪ۾M ҧ 1 p=ی=Ͽ]mڼ ‹4-M}=ՅP.l 0Ϸ-}[=6>0~-ߠ .~">$^&N }.0)U 8~3c>>e` ÝF;v@>` ,~G>Hm=>ON1^m}@$Q2 /]ln^b\0ih?|~肮4b>ư#` Z䌐i҃>^}^X0`>]Sc. DB4@/M)N뢀T.=M\^@0 ^ LʞN_o>3]i= ٢n]#}~` oOwN~?;Q "?$_&(*;airboil_scr2.gif000077500000000000000000000103071263163240400400450ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aPXp@0بxxxpX p8 (H`0XX( 8x@X0`𨨨(h8XP`x hPpȸ舀`h@`ظXpx`8(@ `888H` PpHH`xh8p(8(X@Ȑ0Phhx``pؘp0X`H8x@( x(Hh@ (@ЈH8@pxH(P@@X`pxx 0 X`HH((h 0H0H`萰xH``HHHh8@(`xpX80``hؐPؘ`8XHh( XX`0H0!,/ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sꌙϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳE jkln ز u7Ld8=8f8 0ݛneԳCn q '80*^ (<1An zkn1I'༑A۹w:Ptc'A ,_l,aʼny桧dA]]t}Zhq%FwB=8FBvNA( Z :y!G!eݗ~ތiys΅q5cRƛoWu1>PZMkFV^yTq%1@EbBdhH' B)fuYg_ Ch_ݕׅ>E^}jXjꩨꪬ꫰*무j뭸뮼+k&6F+Vk͂@OGJbU"@fɻnkbr wPF[@\ v;.䦑T)e&wqOCrT&b)I4\s+Kr|@8,Uj&d M4q@QAJmb hV E}eQ_^kO|<BrnE?-/unmD,t})ק2L]xx`50Abt C@\"yǜ  !J>%-IMB~B"R)")8"A*xJqR.,(`&bsf⤙ѤplfSDAЈosi8 FD&08bŹ% P`9't"j%b?Hl$@8xT. n 0PԢ*H9NpՠHI( lHJ@œĄ*LA 7RѠaH*#0a3ࢅYSFԢ"0 Q!ljq dPnU˥qm5]~ń\Zє#ISE!Z6SzєW6ye! ͳ ó$5i5jkd'~OgS[=6-mn[;F6-qS=7}JJ–-!f6(LJo|[)J2zY,x= 8nq?< =~p<'Mp`\gNc$6ǹy=;xeH;P?z+A䕐n 5Թ^ CQOkTyۓL}s_8ЃNK\;~ᆿ;3v<7?D-CGx/Os~^xLU&1O><o >ő#0 t^&;+|ſ/yC?_g&bA/ج]Z.{zqwv0 7p@}7`KGs췀x)灈"h~$(y&{2w ~ds-9wD4 0~%~>sN\GFJȄ0p{~7 xZh<3:F_LuZ[ȅ[lHu `VznhxnsXuzw8xyrHW|Y`<;;x^10pCu^Gh~Ȋx0ASDhc(/r0Ȉ8 rXǨ?hl xP3q3(C/ rzHh~GZh騌ȇ(+&4jPw5|`}gIvɈ` U't.` y ɐT|Ii . y('q,4Y6y8)yC.0 8'@BkzEi @@MдTY(>sViX)[Y] xh&6OyQkinaoyqIsYZ8E$8w^u))@$L 4pxmU @Z9oX _ M4phb-070Sps8/p?7s Ij1`)01ya /`EUg vi/М=Y霈؛gI^9Yಜo \gFp[UǞiIuyP {y*YFdi jd9Xu 1?9: ڈjQI (P߹dydw!0: U!%آ<ڣ(%: $' c@肊N35zc0UT@ɥ?8 7)6I5i?]$ؤ'qjrzљKڧut|:ЩdGI9hȨXJڨj9YZJ::ꪚjm*Av z7ZʤʤZڦCz8Z zKzڭ y;:Zz蚮꺮ڮ:Zz;airboil_scr3.gif000077500000000000000000000133041263163240400400460ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aبp0`Xh(@0PȠ(@@ H pX(H`xxxp(h`xh8xPh8Ȱ舘`xبX@H8؈Ш`ظ`xx hа`pH` @``(PHHHHp(0X`p(`pX( ȐpX`x `8hH(x@HȸP`@@0@` @XP(PP@ph@P@hxX(pxh hP``8pxh `xxHȨh𠈐x0Hp0ppx888HH0(8 XX`H0!,U H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɪϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳE,Vh[olIϸrіX!,X-E1,z!qMZjڞL\ϛf]PÇMxZĆ/\/^\pх/ *: BDD~'g@L.kreݸixpᤈz<ϣWnvg{~L 5qAfsgi"jwCi@HFn7ejyWOD2(*h^aYdAO?F@FY֝ #t&qAn,G.VAh#a>c?~DydK^PF9B(Nf!ra v(\LRqVQ}M^}|n/$yVJ(sJG֕ʝw&laPm֙g*jiEjiZx+.H Uw[ Zi5G*: .$ n.+f#b/ /^( ܔj/h!Tl P#o' *r &+ȕ,,.D&;p4{PJ>wGFH')MK5S[W3Bl\' dMLүg A*dۻ6W=$w*tGzM*/^w@kx94 +_>:Kغޡo٥#_NwKNyye Ș(O|b}?b,em ˞Ӫ-ΥV 2,щ`OXXu/ftӨבּ_dGGe0*`ѥN {PDFBnt#ςRH+R Je@#0h$%YKV$[HHX R.'7B(G9(\њ%Mf8""ETbVFpVPTADt@X lEpe6OjV2ԧ pNeF0UPuC%2 +U4/YFR M(B0R( %X4\fYzPjI|zjtaxZU*Kf4f^*XTeiM_S͞$w˦ȾN,_i ,a>43XiUjug-֣ڶHd.B\V(6k 7zrJT_%?kՅ%7WJ7es M@.3;GmP;}mtP ^x\ꗚ=PosvǕl_~!q6M [(XŜe%XbĮb~ h69&-5W)B+d jF b(?R+X\O M mkU`K!r%Y08Y `x֢gɀ0e ߶BnX@;GZn35c,9f!8ԈSgyɯPӚ]skQN+ c{G<5.ﴩmhgݶ"xGiGo'#Wm ֡kzO0sgv'V<4+'p(sC3PSoUKЀPlpܫw|_1xɘ=n,E2oh;sg9B4a!+ѫ H`+ԇ#2 QVp_Pz|{f1vwm.[oxtw-c%oKgQjws[-Th@Ý᝼jDT<Z&!;C-fZG?{^ 1 F[b ~'_<*!S_Q~K~g/ DrwD =;=)z@h+G]Mi}d#"u 8Xx؁@Sz^ >{1veW&(=.b@8:<؃>@B8DXFr,2Ih3G(.@!BBF366(`,@9b9^B454/3c3#Y8;38Z(`hX0j0t03s/"9Ć x7:C3;.zc,5sE1H3S2x82t3h3!7,dӈ:x !@23.h36CUC6?!?u(ȈMc)`M7h3ӋH6Sȅ4{tI;"4dӇ5\ `hy}X36uZ%x9ZɗyY:s u& ٗyY阠I50~yI =чٛy&[49 ` cЌEȚ @:GC C>ac 9}x4xzǘyHidC`Y ` >aӞȚ҈,ْH( c6z7( sEy\*d:':#&ȠBٜ e6: I*8<:?3FJbؤը :;T*Z^s( x(*ชUz4t:qx,x@ >:Sʘ pC"8_ӈa#h/z/ȋcCʨD:X0c٪!s4(کO:j):lx( ک!Ӡ(RʣJgʟ$9Uz JIu:73y *2r#4sW@SYAD`5:0ʭRx㏞hӋ嚨J?9(`, *󊇫ؤ"ꯎ?*)DFj3'J2 ^*K@;?) P#IŊ4H2&{*>"+.ۤȍȂ4yC3D9ۙp6SHBFk31IKI*xP-3`ۈi;CKbض|K::4e67:};w9;w"ꐇKv?3r3?"i/;Ɋй+?˺@ivp>s'z۴ +ˣƻk/0.'ѩ74@ƫ7d˽ۛ7˾K6d3 !3Gj[@!. @ -` /\ L,L ,P{0͉4i2|1|L49;Dc:LBL>l@ |LL)\ @ X` daha,HLco|m\jL\L*0]ŀr<LƆȇ]ȍ,ɔ,|ɉ5ɢ<ʤ\ʦ|ʘ›0H˲l g9˳\˶˸l ˾,ɪLHȜʼ<CPL\ ټό\|Ώl,] \̜̃0\} {<Ŝ|\ |\ "=$]&}(  *2=4] қI;6@B  ˹ӉҲԭޕa!RZ=C+Ѿ9$^⯩ja c>k . y8:<㡘M,ڦ =NPRn/ $ULS`Rޥ!9M.ln=վ= ^-糬^o~嚍qַ z0ڡ-z p0 [ إ]zpZp&^~Cܗ!ר ~Z̞պz>ל >N᠞KN߱<~iRK I;>^~;airboil_splash.jpg000077500000000000000000000106351263163240400405050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDuckyAdobed   #%'%#//33//@@@@@@@@@@@@@@@&&0##0+.'''.+550055@@?@@@@@@@@@@@@td"!1AQa"2qBRbr#3Cc$4%!1AQa"23qBRr#Cb ?ͶR#*~,-ڶ׻,yy&7U{kyx!,y{ Ys `~Mck/XqҚ.pabmbUIJM#-Z+^; s=i8K"Flx]n1#uSSjl YtLZK8yzznlmiU *Ɨ”\hmiNWhs1ǒAegdeXϢ$wkYkF,6ᅀ1EwϳJwY̥ZCAҾUV]"Buyv̎HӤ1[`5[9=TšIC©! Pv{׳BMG4*R0LNksI›ŸbfG )B.?k}>5fyntȎ4 Ξ})"S>^ں_X#e&jEUt{\o{?rvy<Ĭc^MX (e7[墝)f)XznO&t͊ڭJIr7nn>9~m7PrsgA ' `/M)Er',"\yX6"X"8cN:\8Ǎ|+ &fLxz:Amqx #vk`jP[(,nĞzPj775E$T6u {oe"f-#,g?‰؏.G[g 'M5 ҇#M7W*2eh/ȭ(3+_`óOezpQtzun̹2XB}aerw) yaqjsׅ)$22ln+a>0-Ӥ˩e^z]x^Lj@Y'U"?$&e#-Ef}cN)M6 VḏUvܤ*3pEb֦0>YmgM114qeIaR#jΔfݱcۿ4V|8 i8gm/`6\5dBjej[huĵd xڇrV^K=Mƈ[ξ\tmvӬiզonڕOatzV7}:wTiNK[Sj6Ι@H/+~ު,:Mj\"Ծ_o:qAq!WjMn5oWMXó‡k+(8ݝ VR5֬#v6NlUA_0]FdVH%30cti^g.Ig#3ۗ;Z l;>iC :K:@ 4łP5yl%2.GƳc"pˊ5{kH\-fu+qă-LoxT%[\ (ZP I,$Ψ7C]mW=w۶5*ބ^=>Pk\{gly.e΅Tr93[PT~P̋/,~5dq,gr{3w%Cv3`;J6.R'VG3\y}C=)|a\F]ܫC2<,<.;fIÒWIUw*Tt崪k֦|`XԨsR im%DK؊3\>^O(WwFdLp<ʁ zb͎R#nain^aǒqwOpfLqp=l?U2e>j:-vU8w>.ٍdN<܈"F "/G.DrETRˉ]+6Z Ëem:pkW[6xrH+5O2<_:T kM >V#,obt'~ i&鈹oPJ]B߁FOx^Y:6L8ӦyLO6UYrw-a;fm۬",QsGVc|9x;y=EaKu_q 1tmTA<$2F51fhyZLD}V}_f?'ѕż55"O5/W?pw-tP:lD?.P?6COv$7TP2SEԿK0klk'7BʖeieNPo޷FE{ 1=@I׻emlu ~F~G'l$Λ+I EN뫉oeHpkwXwqX7`L1㤟m۫Kc $ Ǧ !wMuND 6^Dwaß@ed}˼4,baTA-=UNQ2iar Nj/c-|*sM%-e%smvOW{cHt)bd1V'%6:|gs̄9?CEÇ=hF/-28o|hb-76oԪ趣kԮ]A6kzC2,(o \xL6 ʋ(6'Il/fCT1bntܞS<51O5l_O6%6VBAgڶ<ݺl3Zq:-j,W;Dc`Y6+0~OPTu(#mk7x㈆U0[tmQo&R36ɒ1ri,t`&7۱HJ:c67F8}Po91fH)i%BIV~ً H59{Ulav*71lrEUw<َƤL>t!w\P=!͕}QQ}ԳJY(` !ڢr#[GqH$byJn½,о !1dp1iNذk5ȉŵ)ẽ\.CƤ,4V4xc[1P:#Y؞VdEFrBlG}Dž&+n^7VvR :W궣J{PW? j\oͧR7\ u~gT3tRГwTt33.tO"Wo~W 7RSރz?ڛ>g֧ƘE9_{{?*Z/9WJ)ݔ5aneks_ny2006_scr1.gif000077500000000000000000000105131263163240400405410ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aff̙f***f3lSf3ɿ@<<<7ׇXXffff3f3))ΫTT]aL; rClQQQ}rYxlGo3kW㻙WUݙVwVܸ##{åjܸOppYE58j|ku{uOOzYYظKbwrkֹ333͚ ΐsh#{l kϞ!,55Õǰˊȹպ̊^^ ؈ʷm~ (PAnSHqÆk2(^Ejtƀ,3  YAsBgpd"hʊVdsN2b I$*,P ˗}T{tځY06 3㨊;zPQ҈KRQ20AYO0$391 ]ß*@C'U|BV[uYʨMm@Q15޾5ǂ׶V9v tP$|ys淳@x|x|rCH@tC_چ~dE!m vw}G^wW Tʇ`)`xjse8C؞o5a~wFM(!h ]mHc2vٌIՅ]Ic;\S8䢁bf$CxexUb饒:ۋ!Ik-ۄZZXih: ^(!GqsީF_c>jɚ879k ߰Fj^^jJj`uNƩ2bb;>k F7`iKq Vd?BU%EIP`TMUݺQDG tpW]y$ (o@BJqːPl17!3r&| io.ünu5M;GG?H+tE_k3̆CaWo5ێ w(yAvJ3;wu?$kGb7{ كgtveD*R#߁r5Văi% I e4.!2m!f:3 b@͈g>S!9N$H:F '&5c`R<9>_zdię LBLF'=?*CԔBK..YU83Q Vk]5գPA'`'VAo~dWؓ}CdcY!*uSlU kruٺ3rmsnKU4 @B+{َ7ɧ2InMN%U- {\kMܦbt.nONwčyC6d"sv4 z]wõJ_NFpZq]_icG',_7z?=e݁?MxVohsheZqLe X"d= '?ymo Rx?4T/ֵ2,^/~׹d&LҴ鸧k_8Ϲog ) Ӷ44X5uuk4r~梒 ݛm',Lw-kV'q[SYԥftmKs )Л 6miZր1~ؠajn 2w]v'Zÿֶedq n]8f0ǝðVce9bb|5պhroĿ;[|/W\.^uX3jGTq.wm.= FUG8]ykv[d/{%x&aj=mn9wonyx:8{z٤gw5߽vbEj}Lhͳ@:ч~q[ڭj:{ux7_Ni?8~1w:C{Wj&w7{ue?RwwK\Gy7\}=5bѤ=QK}wmaf| y6g؀h:x({vhZtg?soQWl˅bdWY#=8wMRho'6svf6ׄ81U%d@$t%\dÄ`]b6eHihll]_؃xv CG}8_CcP`8sMSx `P7!v /S(4@V9Gp P;G@::pfCYpQ%HhO0ܘ,CM 3NK\@T.N/G. 1R"80Q1@eqp790%@2R0U0|15^PH@aP5b )xe hY@2<@qccqe:sD(,r*+'AR0TA2b)Q!+AuQI .P, &5)rX+ܒ H! q!x!'(1$0"R,0b $s0!1tge a!(r.(rɁ%TB@Gp:$l)>eIy!y@0qYd8!"( iޱ,Y,9!ù@"6(o0o"!%Ohy"h?2E @i E0p'].:b;B3 ))N :_(bAB)٠IY(N j!q"Ypr(YC$ $O&z!9:Qq%ipF,!(2Is2)0!yRQzW0Yp rQ82RaJɔR*\Ah-Z-Ʋ,΁Ҩ\:j:UfJ>P E@z`AG9?pp \3TARؐJ+@Zz@꺮? u8xTpjî* ?KiSfHtݰ6 WPKvk骰1$˯> [:>(N$ C&{C?2jQ9<94 B;/HPsS []O ZA[_e[0b˰fuH_4+j>fcmEF!ȏ 6 HI#!49Ip:f8C3( 9Ї8/B0%ōb5RI'8BdtI&Y$FbAPE(E*.l e^ JCL%Yf5&"Q(*ʹ"w% 9A_)fRCqi.~JPtzh_٨ur' ǤTji½uaAqjj`('Rp*vd⊫#L@ij6kɊt޺x9jk-KpϺb<Xֻ̽k<ۡ0l&Jl3VPckL )J޹.H*̲|oTUԕn:z+jUYC.&%; siox6Mp58\#ܮfAMNq[Jֆ)D0U,((?בΆ5ÀX7i14B8.sbp|>G1c-x;Z*Z XAsF]8,~"XV Y\  ֿB_^guǬz{d7AR1"MZtM@u_T{S L\ł;tnVwwHv7,ޭr]^8S*ۺr[pRǏFI!պ]9fq꼡͎V Vڵno8`0{.׭.I),5Rj&Y;kώED `p C)0X`8R0G Z505D(J-@6Z!JںQN Fy.NJ(FWçZlj^/ᗦ % w,jXN,fc4$tfr#쒟%O ,*t1}g:(>WFpg).2pGf`'zv_'4W*2 le{wy7}w lB2:!fc376譈66ܐR敘5?BNΎTZC-;_{l pb<5\|`a6&\o6ü~{w;a?vu+ɏ8^\]^>v~{͔g 1}?I/Xs`"(AR0H>] t`ŒoyO:BYԷ;NeNVD@wOI,E#4&&zT9݌t^uLD!cfc_dž:nQ;s6>T|}+˗)T:*_?>~g;[ RU{ ;q:dCu]_ooڍ`hJ[wCߵLèq_rfGNS%΃sP%HRTQJ'I+M>_:Ϗ摭~ti|:BmV+iOhKGeĽ̡$H&ŶQ}w8犻{~' q KW u[ }>? {; k[wK\۔sFj x33@ (;D:'%;܀s1qss?%cmm&X8 ΡrhQv"F3u3vr?~A2 gOJc FSEf㽎@7E6F71c82j5Y׫^zkrLj 7Ƭ޹ܧtkPg ډpMD.%]|let?48ߝM8E(yMb7!dУ2T>r9cx3hn"~S%BCtų" <T0N?4UpHes:hdkeq.VT_&l,nk0sVAXGb9 Qҏ=缗LTRrPn@?Ɂ/5@vuVءm$(:cfcNV$nWFNpҤ%l NO,  0ౡóԒ5[W'Tz]}|k?Ҽ%iV ydw2;Dژ3ViuI<)4F23$5[@Rȋ,VF× XΞ`Ÿ>_},cHy{("0fQcw㛛oY70mI"IY_`cK[DUxO"Qq%Yk!\BSWgyPxw:tFdtD#"3貸ٗ 66:==V8Gp <4VAiexn"WoTx,=>tW7[6#"&9wҊ,soqlV+ pp˃InjյԖHc!E z~t|1|S9X f7|1qy,طz[UݘBm4̑+c ޷c0u=Ovh$C?C؋/!e-tM/;}«/uٲš^Qչ :WbV=3#ǁS2|YqhWjSZV A?5QMuC_Etqf 3.f`;rG2yoC,7Eŕ H^ڹn~`ap#: 7}?)Upxll <$Nt#m~{\7l&*$c_)|.K(JZ~G2rY]yT,DXb,\cm#6} D R7^jo43KS KgG[Jߔtqfk@Y XЉ!b|CW#G]~!I^MobМ2&ZIw=U At&~&={]LDZW{in,yd4?:smz d6CR}P*!w IVk]!zwm>ӊv '37W8I;W S6$[9B#PN6JY‡=|U,1ɰ,=պۦ>V=0f-p9&NΊO* jVA)ur#qԓ]Y/q+~&SE ]10ƫ e/W!zrZ8ao5'f ~;kQk"b# m.ˆk-m463a⧞-a١%'a7@e'ޟf2F#2n.ԙ= ME٩j<ܰg3Yb'C#l6ٛzAfm1#!wB8<=) B(k7֬b8o''uܿڮ ӎ\G:. d㞬GZ87ŖEnryp&mʁ@UJNj|ԣs^^RsiڪYkM{i9U |ZzI)/'pTssKˏPxHהX(Qtg챕+z1騊:eh宋^k U˷)zTQJ)QDœ2\(S a[5Eblazinggears_scr1.gif000077500000000000000000000064611263163240400411010ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a   *8$4 #(9A 3A H+.L8:dc)D1] 6pfRDJwA})klHKWEGhHKrMQgMQuRLfPMvTWhVXv\`_\as`__c[qefkegxnpolqzsdmtjxuuz%.7); G UGPM \Y gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZZR m~}/11<1HYR|wrRYqmj P}})szuz$-*/.(LtՉE@֭]I}kح LNY݊>W/_zӦT-\oy"SY;_ʁ]^6.L.n\1*L~Sϊhk^׫m ϳoνq?ȿK;\slլQ>= ^Cœ<Ye+;}pwuɴY C>D  ^fK$҂=wZQR:U݅ 0r\Xl'2ʏ@)} w"X} $HSn`%'pң\ɤG2Kv%d1^r>iaMvQI4~I(q)$u8&eA %jht"ix)̸獗X^~h瞡%<#Dꑝv cR㎣ kLzgrAd~ifJ@hf9 '(jJiɬZע]\-{KՎr2k(80|>3Z1)c#[ǍM<gP7J+Ǹz̲] s4j1)Cs^4|P=i[tSS4ZY6hgُvkaT5 x_v_M. y{-'.*qfz?^7l{ҷm4fy\ Pwxy_wdζs) o|uͶ) < Po}NaBC^/~w9p7rV/~)߱nlzS"x)~bK] <C <AGÞ1dWS7BEo{M' ?vO (H]Ѕ!7 "N/TF&y-׼ R$p%tB.mpd3/q"a|Q>I#=~.4(H{\C562"#$='9 R2jdC"u (%7 t3JVPp"Bفd- h9̇јGPǔ)\Gf6s inR v&Mv)IT<{z6Y=C3g;9P=;~ƑmL<%Ђ> hFrƲ èFG*Ғta(?MJɤ%IeSvE"ҙ”> jLIɜj)JyQ5$,7:PөKsJӂuN40´5Ūy $ 0:e{e+tf+Iƶ1+i"n J,b,i,$U"NX+փ:]L|>h,|&M<ntؓdR64 !2Iʋpbܥ. -h@4 Uk"}z3lx$Ѐ@R Lt㝐7Eʋ;5#GP5?paN$ w^#۷C ~7l8`nn%$k׀ j>h!Pt u?S u;=ͮe7/Dܭ ]B Qz",!6 :튂LdoC+n"`.ϐqmTy >8q)$l; Gى/2<P| 7 {/=h`)K{ x?D=sn`~aw g!G{C}{#LXaw h hSH0W q5 %HG+؂{~W|&8 QQ1GPG|J;sUH_} |DžeȄ'8{)|dX}~YPP G0"h8zh/"{Gz&zaH"X"wO ;blazinggears_scr2.gif000077500000000000000000000054371263163240400411040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a    *"3 $(9A!A N+.L/1`1/`8:dfRuIKVEGhHKrMQgMQuRLfPMvTWhVXv\`_\as`__c[qefkegxnpolqzsdmtjxuuz%.75); G UGPM \Y gjsubkzs1I2V2n }.~JAJbjKq7;L83Q'3(cqrv~Ջ$7u7~wJh!4ZNZk̢K @gkL衇dCL/ >s'/_?A_8"6πdG^z\?Iwoz0> uC B . AeX[p G¹f8|_0VL ӎvЄ![bE ׄ=ZfŊi }`n/Qb غq`mH2LرaH4F:Td;o]@z$hMF]%%JTRd<*PުV-YҋpK]VO廀9*d64Μ,e%yMiRҔ?1!BEHFmt>u"\,1bbd!O|3숉O|b+T}CDO~qF42,Z0iIuȊ~ 7R~TLY-@5W4sEHzzԤ˗4\EUZ[jT7ڦ:ԡLcyJWOժTh5n*OGp;ӯ]oUZ@,+ۚ˭rU #p^dJSޑ}Ђr6_zF4gײK>cLӲ\=%rȔJNk0Z .ss]Vsdnsz7&pzN H+I:=&i b"$bK /oJH)"B4nk`U:: W50BJX%ncG+/~1XWZ'i ))",!2d"x,sH>x 42L*[Y ~ L?t)@`SiNyvD @cv*0:1i;Oz6g RYp !F3M4'=Q˨siPeԥ6uy,Ҕ3Y<kZ8Kg;6 jBv6 _NPӣBwq4, dLF!Yp#&XG B8AW.S-=<~X8?>#D&H@;blazinggears_scr3.gif000077500000000000000000000075441263163240400411060ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a    *3"3 1($(9A!A I+.L8:da(G1mfJYAY9QtA}){q{u ILVMOm\`_\as`__c[qijv%.7); G UGPM \Yu gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZRZnjR~}w /11<1HGR|wrRJqmj Py|(szuz$-*/.(LXDHQŠjQO-6ڷSE.D]:/b;#GG}mAoZL-$ULY"YM@ӣI.m:uk "V̸r#S|9g͛?R<2@ҫQV\9s䰓No1 ۷!K]2fN\q'WY]v{w/~z h|W_\9]%L& N1^Yވ%8؂%V_h2Ir0(wnh}薀&A64IM6Nv_`;cjIlC:&S%4.t `p!;؞ܕyet[DS5}Il$9 IZD7FdK^TGd)艌JhE.% Dɟ\a)Oz:*n11T!vmGIbZ:i!*خI#)0$dK!%*@l@  9;Ag+Ko^Q!gڬ+?PaF Y4p0p#ko滯XQOl̏f80.l8YB}V.T2zx8L"T<6Wmu]#G.5W>s #:x@f<ڀ Nxgq{5uOK7@QvIh"oКL8*{ /Cg:(H׵]{q2_:Wp+nPY~z LW<2= YXA\E4Mza+"EzDL)UT11J&4ɰsdmU_\fE[ ׸bΥ&b,3_S R]͌*vi$l1m=,.Y5v]Y%7)T xkiY h `mN.7f Up>\͊PLL$skV#(ܨH^TT !nmof8J ĺRM*y]w7BnYHSݨCJ]So/9+m1U$.UpqKCF^A sƨK`E182U `emOE]ՀcuYmUK `5CnLV d[ li~fj\6eiBsr#6]CҙmE[CW5me]> S̝_,MClnv'RN;^)[Lljz=l)۴.V{a_PǎteLI LTj{6Zd*> cdS0'٭o?068.icfrmf"Hm}T!ҡ M*R,G:?Ї;P UIP}Vߢמ:Ճ@ `AfCivƹӻ~$ >Wn_kVs@U}/t;>X{Mo+@#9nv5}5Z$fZ޼;σo|xW7fz?slfQ{kP @*L}0\/\eW_#áZ{L|Y8FD8~7F f2;EGGW4x0D ַ~Nvo]ZgDT.؀bg3" E&|'wCG8ywNp,8~җ0>ʧwCw w\}OX}CwwXhQu\Hsp}ԁUxp h78@rDwy{ȄGzO(@rDngh|(y+'}ӂ/8vs8{)H:hC@h|%}ؗ cNTuh&T(Y88Ax}AA v~;}H4OCiw8mg\g*y/xX:2UxpXw`lȃS~.Ps.8{w| `Kc -6|,I!R5{h8)*  68h*12yV's8; xk]!'n$= ? \Y \ AI"(G3fi5Ɓv=RASB%1[_a#tixpY%s Y^xY ay2>BCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCdd" !1A"Qaq2𑡱BRbr#3$Ғcs !1Qa"q2SABRr#3C ?=urP>p=`3TJfUJr/4t*OQmKxLG*b*nfX/J3 R%zڰj 1'T9nRdG(6mL%30򩪵3#$c ؒDg>ysܳR"i}<Zj- -]io5RΆ #IG +VbO8=e" U69,5+x:>4^30EvBiŨfppŮMKd ?,ަȹLj%AIR.үuke)|f3=&w+KА'i2Vw2JuW`U]~_u}4\NQyyhݓunef{'HmZ:Bwdgk[jqM eQg\9dAmڪ*e,/vے +#SxMY,xLJm)}R5v|AIrϭrR'=Bchvxʡ)144$F@pgQt* ޔ` WG6Z0i'8 )_~ bʫIq9'Y*3<55tRTe2oI[bDȳ{QZKr!u[`K7h0O}F S#)NqC:e//,[RrsN&ݩY]Sxu$rfPYr#mK28GK6Q;V49zz:"v'u ar8:ثjg4܀";XZlI)tF]M '{ jv#9$ܵ##n+.a\{L))Cm FpwAN:jS:x(~_oKW-yqsESuH[#S$ ]U#]q$EǮ+Ӧ)/й-I9(J +*IDO ƃkzfգ($KOZ@@(ұ9h-gI(N@rMdńZI?{nOhlP. M 6#aPʉG:7EIDۤLI7LJ'ojnAH)3kP{km\!f]65exJIY/(A㉋sRi.'" z@]EPpH tXZ͆..h!5̂) 2\[c s8VW"kܔY}y`tʺiQԡցp]oؑ֐*=(Q)b ֽP7PElL/ %ÓEX{Q;lTJۉ4I*)Qk< PD4O@u"A/i9Jx5P7g\d T-.:8鬜n2$y6)ge觯[)PSRd@{  `0 h ؀N0!@ s(8(;@>—~ T H n0@ ЀF"0G $6/_ Eُ~@D с| A H'8A6B` O_>0ELq/@Qxq`@8@v!p Ё4b(J!f`h8Vp`l#,(C"@hH Ĥ#Xb.x! WE~Qִ& G0Y/( "md89pgD )C25$)t98G@9"lL4LL8Ch4[̟ yȏz28A(!zƉѥBC{  B|tAqH.^,_1'X |`IqBUdA(U~dLȀ $%1XDKn:uʁjfU>I'g !*KbLHo`|%Ұ,@?@Zb_[9BBԧt>ghϋԢ x*рh@QȘPHɅNX@bӚ"+A&䤮k@:wg=.,`>ZZ,,O? R#+HIFpb& gؖ)N\?+y!,kX`P /Xr_hhбβn8v07lebIaI(Ȳ̼& :NII@5[bucvLD@g#7@sh@rrm9/I2f2uKOьV?#ЫVלޯ3Gnr-hF4(H|)@8Z{Um'CebfTDoZdT#Οd1嵩Ry 5bPBOL5,rѳRyK;/*'Ƈ_yw79v~|3ӾHE~|]'<@߈۸]D,~դN|yH%{oe AzPdW~(aSz x붵dQ?}* dNlk4Ӥa P]2ܲNv/qnDKPK-y&ArO_1j_T.m$aUx/9Z|1Y;pFnppLC-D.zWE E0e?4'RM6On#wTeHR4_ʇRDRPd3\n4nnQdMS5eQQlJ4N@Q'EIB~eM%g HN"CteZC@xW6w@Z.`TOcX"b!bGe'S@u6VD<ar?3(?5R He0JP6chIdN5LO$F[~D|d!O.6XSt 04/ KFƧWwTSJF$O?tPvwxW&K{ vt zsNUNɔY_dJ `B4GBD2rr1qhx|xve_UGJXJFZdEutEBGv/wP,%QĀ7S$GK\%OBSlFCx{˜$kr>r Pg鈀XJfrxphJtTX$r1'N3Vp5UsAWx_0EWj bfO &*ĒfPIpMԑOt~(h=\t|P˹$tOr'ectI4Y6\=6s]ڛ!jZ|j戠gVReklkMkfDE?\zHNplin%ՙIh%L\ t{IdJizws:@6;YyC|hlli:lZZkuoOHE]ʉmF$Ohr(oNudzT5ǫ8wͼ-A p T:DZq6gWEjZWpCǍ=Ŗ6CR @K;_RUc&CYwY7YtKpL:vXwwTsrZCEF'x+W`oj{`cĊ {GװKL$[x;OH{eWg=N Tٲ/{{jOf)G\TnhU|7vNB{Y蔵[pG*?U|.DNTj7+yF+H_m@oFsAV$ũCq;+F~+TA ۷d)jOVE%պëC[C䰬.D4dIFK]/񁌴}AG|>FhIV^Tt\A ގUF,Rn٪v@{Z~Otk~I;FpĽIƖg*M/$))bG+4KNw \Ll{HcBRzzL:ˈ $CnxX S!Yod<+W<}YZc?Q2)+.GTQBXCNQ (8$Xx{ Cm,WUinLiWVzƪrL<)=P&B\X? \TdD_Yoʚ TʹL[ZU%v oMʛfYXvT5bחL Gd!$q =L1HI.- 9HN<]` ̵-ǡA4X"d =$E%K5lbt~FD^bt ib]uڑs$C >pEc^C榀:q<ƨfΛ|9@DpiQPD|[T&J4jpDH.Dl|9jO3mT[6m!vb3_܊@:=f͟0'P$%\N]-)0Xp@RP8%Ca v&\$swα&sf6s~$ḯ: Q[t՛`bª6["u0X6$`A22( -pMiשXb9f!AIēh][@b+uqBBVl?  upD4p0nk@`w5-:t A#HN.|x%r?QR+`:RrʗiF2GLtHR3\0(PY@NXGNbc`fΘ%9$0 &VR6l1"L~f$*07BpPYH%ucA2h&@!|]m{\7pE)h0kI2`|јf|Sij- #bgv Hr#qBiHB edg+1 pxz~6["na,8 &.pэVV%sL V|tFl48qax0p8\@,1X@"$[,EX `( %d ZrE.^ds Hc&#c2B nyH7Zڒ8 @Nl!fNary; l#"Y CB@CDlyK~ WҤKVzH+9 A@tJE3j&\Y&`EBija- zm58iaLoѨA(ǸQ_641BIdܵg.CEHEk!`+{'1cLF)yPC045ل!jQNf(qQ^#qtķHx FЖ,x>J%/C<{BP 8MT׽bYtD]\ŠvȢ Kbpп ml%TAҫ& /xVrp4`[Tc|a% {]؋V+44mr.T@-^R-rPx kE$5*RK1/)CFn]o_~< ́Qt Ͱ',n(mvF*VN Q>qZ|Rg-"{sx(`ssЌƚD>_И1ӜXӱ yU%\gI[o6r֊$:ٿ.mC174hNe)aLFp!'r) -Dn"w-GIuX❺[ϔ#_=!s֐G$~/mC[W j]umSzLpУi9.[(k6 h-ĉ` moE! UC({l@Ϲ?p m%ƶ~@pzRo>_ Qbj8A{CL/R/bYbŜYwDIVr09>:vdd7kPˬXXQ"&# ||lSIa27*[]OE/!TK72@>DO3U-P7XU(ё 1\97X 8C9S j 8!:)E6t,L pR팑TLxńN{NpH@_(O\TIE[EuVR.uSʹ\LQ(N`ċ HBP cRSYUC"E!Z"b!Ra "=UkF±ȅ] H Ƹ=萎 Vs]UU BFn1R.VL#-\_cB`Ḙ:ًIZlljVJ!FG7Zjc8R8&EDkM@mB HE>c1תaGr8xyM z/?;0䮝 8w0$Hw@Ŋ ,(Xe(B,4$emIR@]|e# \[.uK.]b`@=䃙UR]L`C0>|B^&L$*lH|厑B񀢥ٷ5>FDwE ̥e,ES$SD( zxYLR0S@T d *BueIB\@%2 ~hU㮥UebflFg|0'e ybfpFm~^1& 3Yf(@MD݋[ @\dyGRD$@7X( aZ dhG |L02=X&X%QY^u؎g FOe:@$9:hϑOL鏝Y@P}A HJ$(HLZ Bmɇ)P}PיD^8im AP]EwIsc>p\AF6hQ7hEMMk*!:}I颒P[(z^~1h )%59 ˠź,ѵSKXڸI#I`hk+Zv́ (Uo a"!R"-YB1!*Zl*¥L1F M:C4F0Oz;;S:CάMj 9œ % Z'<P]C?3IkT5َLDFI*xqaAEeDFPhSF*}DTGTP!lNS9%ƄaUU bU#RQ!%.-\b\ܭ\Ybf!Ur"ućvs^b,&/^u_A>NOopgqB嘍diֆm/7J:#|7£H @dZn͙As%$w}䝌HUI k*$E*0\vy${$+ZT}Iũ[藯 ˘*fM^\5dN2eOR.X0ذ N5 ϡL9+\V@%tٴ81]&`hEcNVPۘY-,۪] 1.4ҝUhix`qLڙbj;LL!*qŒq1XZ} 8/B p wNjN'~F[| ^x)W b==dJlJ`M3MJL.dHh9P(ZA PHNNEN4474΋.s`}t%"1FIsۤ*,)PT&i:66IO>iPtQ;!P@ΰa z00N N`HAjIF!*ܕƂ9G2A90 z@@WW)70OEZ`੸X܁l?݈ E/YF ?411uiAC4m$eCA  'p$ JH$xA`45a@f @Z) `@0RCf'D3)f iSDŽeqd7! u[@3s6ll r&0hd{ʬlF~l6`8qn.߻BAXApM@[HQ)4E(fƸzqo ld#-@AClhbwDO; q]3MQL -L0 k{x,AMk|҈d  &Vcr~PoxjaH2ԖқTvxx, ֮]%LT ˜L%;t+tU-`CDu6`{9sGL>TKKY-+]oH@4BJL5 jQhq>~a/(EH$/ :GwixMWX0JH/ra8;@}PwSqߑh̐dpc`8S(ZLvD|VXԅfS22]C-4h n,1mCǂqiu`){7&=;~PaM0Oav` +;Z`V GS`0@ o}ߵ{й,# 2A':9ΟiqXEd-Zx@,Prp?($Wr5ZQZXsfnN*y^WVRxwTu\R!%\;|Pm|yRGq,ط>9^U ks0@[SgenA7px_f%E%3%")Q#Wm| [xȗ)~ٍ )uafu@e'=x pd DO+@HR jCoxC 0 v@ʬw f>$phXْPzm3S/wCw|':TDmA@ S}5FzU, D{ݗDJ^6'bus^";wZ@5b5ZA1"((D~%2`q= w#-@<7oр @$HwhZwUP!;caspianmonster_scr2.gif000077500000000000000000000327611263163240400414620ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a*lV8_HHZbf`eڜ}؅:s7w&*w3Azݦe5DKs}eTcuR!, "UE֨U io** Tp$+4Xť8?p,-3:Ank[.l6|zz{qyksysx-3%5/5.^;-U&$U#GB5BO2']Y&.N94UŬɩ'+63ɲ$LU˪ӻ4 NֻOq%ZbQQ Hp`"%V8q#Ə51dFGDHCViRF/~sΜ%xcI Ҵq&L'ydzѩK6kO&ɓJ,D%FΌmEj̛B B*h&e`1m`K|(m_p%jؠ V aK_3`+3h2oZ>;/O-QjZ: rx-:LҨ|>S)J7ܠ-OԎ3Kրy'z7Js٧m6|=l [c8TG Rk04o}a!X4f%SaB}XZprT1Dzbr^v[VNZm؀_bXBttH* $[Ϊ\0\>7‰ى* ܉q%y)^dVI#M&qcݎK.|{ҢܳBGDwy^n/C–\bj-E1z" )#B ,̇p@"0*cD 0@L0oH@O=[gՃ/ޗҏ܏/?_7#;Ĉ**pA 0Oycw ԣ>汯z lK(}0$ ]Bʰ{ oxBv/p<]o[WE`w]T@U PGH 7Ybǽ5ˡG后ֻۨ;P? <` lxQd:Z`(Ui@ L~D`B+?rklYBe-a .zi̞ Ei1@M JpX4TiQԌ Q.^'ѝ\qԓ;Iy³}؇#rP4@sdowElz3]8wMLl AΒpN SZӗz9<)/yfv?+'ݠk`FG!0 ǭ}"xPU<2/gOCgK:>γeWGFc7#qO;T*HPH!WZU[]V`o'j5}l5fCpV،xVɣ>vH_wX`#@6\X'j&]sHYuYZ5[%D5UZ؏dZ^["k\c`f; \UO_ .p4A%p%^%^&^$])]Œ॒/]u]iTJ LP$w5N``&`ALHVuURb bgbXfpCc|!Awh &FhTGdMB$qsreehvpb&[FgvfffsecUorf]G`@x`&@XPJmijl%iViiivjf]jvLs@#ǙI$@#IPD@%@lMuȶǦllYmӦmmΖmYmmn6J)@@I@$xTMPeatoPWppW>bJp m7R̓dc@(I oQd\;f@)@~F?2&<ȓr.s9ws57s: ԣ6<.9*8gv)[{RˣQn6h)DXMPjgwwlvXvwuvjwljvkRwZ<'?LPgIWg;Cd FBw?yCO7zWzz?ۖGzz <ŷxT@@IJE%bTAAKl}܇'}ŸC:j}gEšd9CTD?#yτ@KLoUIQg=IE'FDdJ[o:f< XWjMZT֔MPIu0:HUJW_K1KԃD38?h5X _'DNL&8tcS4AGcIe)=uTt_?=fpXOhmȆC+Aˠ3P>Yv< D Lyc1;QEMTA8=LHR;R(S3Rlj(<5SeTETT^KTVO%UDXNwyUmnjm UouAW`RT[[u;XʼniDNZYŏɻ eY[*<;y[[ۺ…YEz\)E^D6at֑T (_- _%k#9 wUJҚМnY`]Ԗ~FFFch(HW2AQwuNnYOE4@;Pi:[9VR fe98jelFe'{@ƒXTMAGI JHhmj)m9jb,jYja>c|ƳsijİatU@eI#lHFMԝ<,)OFfwm}ĞJV7npyn}oPbDJA{&e銡ʵpGz< 0;W@)AWD@ε2t4d*,ďyEɎ ܞmmYFAEU+{ gkd" ʰܠ OopKh!zk~PW+}cRGZ!^ j'G+r<ڬsA܌F= t`c @oJΔmEtZKOdG&RHDa vdMw}lsrovUU#1-o:VdǤ`Qq!=#,ҙz.=~%v`{;xRu}M%AtYJmO= վDX~GdOæ/x#?ޭO\I§*8Duas Ӽ*| ϿXy(6 1牶105/t<-7zI[Wpe 9 C`<A(c?hM@U؁!l9Ԡ `M8$EN $M\JfmZbfvVvFN\Z8$ (|Ua``((30 )G!A lDȴڴxz{sog3 @!1EN4pAv!L8 A: c#I B+!- HJ%{Ld $3\4I 4.(b2=\^ 4sO>,.:\ET"1Ԟ`6VgսnZJTQ[_rCqxI&>wҤ7l(,mIan;GUkcњղm{lڰAQҦ]™g̚,O*\떵0X[87jؿwɓ$i%ww]w9 !C@. &908v  E b:*b"X3Ȣ..CF1SnFxL]9 Z,PT`(Y:H2#c:fMh^l)ʙYSiTPsM2UdH !XYF`Q 5U~$p!MQ#_%i(ou'by: *Y)CJ(s0vTiN"oTP>Y%`=(}f2#)!LPa>t 2v᫱Xw %'s!Цi?6 Y30 'L0ywPn~cV$ R`$r' RlA 8:/OsМ;*<mV[Ѳ@}`Tg- b|]&) RL"$瞩gervIۨ۩~ib/Ruӷ(uǀ Rj b[ˏA63!8Un+aby+wsK<~CП!MdbUNldy/O6}~񨸙+_|Ih;6ΤUδ<ڌJ]Wn,EޗD!GP7>RɾJ {h03gXBB+,|0alY G qkK6` `b=idHYƐ #_S7tH"~h&+|m "äNPD/\:ND"й&Kh:'\I}",+U883BEp9UHnP@h-xK bM/K'E9P~a o QIa2+d#HH3h⇾ai%ʵP 9Zhgk @fnU'C)AJ+a%S'A/w ngڙb`F#oYQT}#ZI綰!A L1ٕ~GR: GЕT'.ukl-OHwF&EC-OqI*Б!LWZϙt1*|9R6x2LQW!c-J5yp-3 LezW@"b/֍,Ukذ`9)0( e cFNpTBNZNc% TCeYg\շW5J=9F;첸q`V?$+YR(F=bYZve- h`|$b^`UUݥN5J/+u4 u9r0 {S,x=5*,1 aC}U_r+oG\ CI$ ҋ(jh=˱p\3ftg=O,&!(j(D+Z`FjuY1 v{>6mm }\"8CAe}Ll#{0O0 %@` زwn lnN؊`3 $2'љ$t^(MLų:5 (D):ņµLuMֳ\ըIBia5lJ60 HԆ6nI1zUnL¬t 0`E/$Ѣ"0a@r[ ~ĥfexsa06Wge+cu'C,p.JI0 X_P}X=F0L~ (LK*] ]1;>h`qux^ TIh 0IK;{:>'FIO2-b*ˣ^X'Ǔ_u*G46ߎ1 C `~ G?>IJvL^j0Y\e( BKf>Z]KEV6, A  ]P@ Cn$FX BS̴9]a5G 1 Td1!SAA1 G\A,(]DP@P{ GDA}4T~D .!1TDE!E ! !!"b">ZF 2 f &&rb'z'b"E("!%+%"Αߊq l ec1-b3_-V3.4"4ZU#-b6^b7a#8#9891>-$آ1E@28:c@ d:?b@"$A?_BdDJD^`4@>v06>"cEIdJDV$L$dƤK$ܡ%J@%6@ RdL$N֤MҤL`SV%^eNbLrWNeXXK`@F 8 RQ@%cY]e^eY[e`faa" Zf-P@%*E$afeҥ$frfgzgv_`h_fKF%T¤Tv$!x`!`H^"DfR%H%llVpkqgqrpRej"leuڥёOVZ4o@db+fYzg{劥4$D~}]!/x"'z!JʧI(ED&D.hz>523U@Z~!@Hgo%^@\&b4Jh4RR#Jc6>#(,E )(Q\b!!>@vdHgo 4i2hJrdፒRbY!z~F D;…|0^R~'@ eM"@]Bџ^BDiYi!!=u"M`A@Yf!d1Ω/td1R@EZCFEF«U X@a.fEB@[Rk|&X@eRkIѫ>AVYUKE*Z%-L<Or&iUTRSh .^ULu]Y?IӮcU&9lXb/!WpEx՚^-`\ HE@Y-X56>Wo/eyeql,. \=l<o^D DV򸖨++Жiܫh@ǵn6m|Wrp9dkam 쀵}%F"wdDe yQ|QIsrWW~eژ";D<´09 F"tI9U%E?u"0H؎X XИzXiYII) ڡ ڵCZBHܪYYJׇ۴Y -@Aßa ;0WDX%`AeQmNŅ谚Ȁ6XEWP{aq׻SS1TFt^t׷uPz<Ƿzq aqm2u%ɍr CDhhe 9EýO-r`iqn֞[ ȑ0 e=3qٳ1%?>=;/_ >q@ydnDG ALQហDKSNL@"DO|Gq|t`fP#`Sor*ETsRUUӌSePQTQ;W"mtΆ2܁3<g52G%}S65q ^57i+ F,\1Pgs|FU$N pHTI#;¾!ߘMl$ȓXbLlA].hp6hHN^O/rr#sC7ȎXO$rLQKwv(NK  n{ 0mRlʜзw]}ϭ(@lgZ oWF!6 zv9p pDCU  AH!Px1L %wy +"#? LM/wO:  `ʃxfi9pvP {k܆w/ހK3L: K ʻZ7 oOF0 ! ݌<^̤WppxDuS<V  tuȐyV6H;SJ͜LpMSI+]ޤ0 x9A: iYQ 21@p;q{ڼ# uӺO A \uETNPDHr%;G@l|4\!GD8H1$bx \MLЊCMR63Ͳ.g22!}m1{XWG[jEXd\Ȃq x Gj&ҁ9к2-Q N5ԌsY7 t`Ń//aPtBxpQ!i{n|eE`\Q$2mOh\>4ܴ"hN="E!#m9GҼC%ST[ha$QU(ѿ'˘!!<(ykJD>~M8v*@t F`Ru2,^ H랤80*uH|/8get@PCbrCԓr)DcITY r1ĩCPS8x 蠛ppА,p ',˗{}]==Kk;H$rʣZJy:CRo $TpiDž$",yڒ-*'c22k8:{3@[JsH&O3`$QtD88q``~?k CťEipTBFРZ O.65Bbv/l/Ջ..-LʨG bӨȜɔD% hjx!(tc,hvp)͛ouV+ }?+;=u@a0y2DB΁ =0ǀNSc\)Q}(% P-#uCw A^aC !D2C%U8[lA|ua}ǣR\c$j@C$CYan!w=PdlXB$edxFIZKW3M2.!Ll`f9\yJl 9i@P5UB(D8pP!e\)! BYIA!j7؈b|b؊ pGz V=dr - p~@QiQ`i?eYBrti_ThMң-')a/=~5 H6P?-P}֞%@p{As)A(0VaFrobpGk t.S{Cunc wrKwKٺ9[?xK`@ˀFC/fnr80 @g:{Ywb>XBN 9|<~ OV:@<-ZvJa]ٻ8ha1`?؂ 3d>nY~-#׳f~Mnx0AԄ# >=[0(W5y94ن A)h`6HR J6$TB{Xl 4  QQEbĘA8}uVQsѝ)&I0Dǃr (c,c 8*Tb2!mj %P?-rIn^C<b4@BsL'{nd$!٠dS%,P #À@aD]4/63|J\JzšЬaq! .  9;(etgg[f" /%T;ON˩&P99%bJOLF> -40ii'ִ hb^WvD\2` P #/5j@8;,FwѮj/VQov`t/ &P>K}j(EQ嫐X1,i]ڥJZDQ^Ќm^zF<6Ƣr K1 gE٭\,wa<L)Y&[kj~|ڛ3%Bɱr*m uC!M\XVZ_/|މ|D^TםNE>+D""}:e0^!EcG%Zб 8kP (vnbuB :[*ŧbXV :xA_ Z=2@ZMk aL8l͝ONx?GX .ιU -0-,mRvO#%̒n5)40b^b@]-aױ""Vz{!j3Ks#9K:\it 5G [gJkFK.r[yjH党\>NHHus8vNP(!qګrf& / fʁnEr)ֹ.[nIqJb߃̶*%v; =K  BEz ΍xVD6XnիIUqjۤ_鞺WH ^evDC;+Hcm ))؃(ZAt@?cvi^  b-~`hb[. _l1I(I@;caspianmonster_scr3.gif000077500000000000000000000354411263163240400414610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aȣ8S!H_dwcK_h:vEx*,rZ 8LO)c}c)s:s)c1k)kR1kA|)s!,"QDϨdjK)ꓞ #ۍ.lr9m&!ZJs9g(-#̶2uncaGfvn|~oyizG21.302)3$4/="_9>C%01GX9T/73єظ8[TLݜ+-J/_Cە: vJTU9Nyj,$zE%ٻn:H(\R岖0aSK-_\fMNk1it%ћ:fXjiMLjҭ8:婴L+&5h' Zx /Vtt/W|X#}̸ ʝ+QB&{)]ĨjMDbu '/;2N޹WmM |1,jҥf>vٚ۶/}c7! bM/O?s~hvݤ_OR!U`yZf˔ ]AF_iYj&݀YM]z^dHn0$d8fs8ާi$a=`I])>h@s`Ѐ/˟?r@_gh@ǀ~/|+ΗPFx {8">/{&gF`- (o~0 d@$Ё`(NW D(JVĢDO 'H( ,'CcjXCi ^ ?3_!f⋣#>-bX(\+] Sd@[E%ѕܤ&՗>Q2* ()Aư0b @:R#D b҃ H"$53pHϩK%L<@֫fFղ`,hO(Fx '?a|k6'r]\x[k&Wݢsԍ$y@ @0PV>^bxf<TGxqp381}^ShPSx?+l gxaD'e/Ѐ d1p_ShZOѷN+#lJZGϳ$pczE UX,;(be tZ沕)tb!rM <{a#3=ؑsWV0}dr)wdžj}4s=kFft0}@r9Dzr22^eʊ#1 K XyLm XNGoC1`HϛBf2-v޴%YN{7 p6ӬV&^S.ח~bD5&.`2}IO(V,9w2zs}7⶗ⶫkq|QԫhuCP. v6~Hw>;4u3Y|Qz̴:}l0ҏq,0&l.yZȓqozƞ 7~nKjnLTX5X&6%DOQD XFm]zAd?FW[LFtMGUrZ/==g'Cppr>4>#?@? @M5G@TKD@WUKCAD  Ay drG_kUQ$QwNN4?SdONOd8PhPF J "NN AtEqw-;Zg.(Uk>SNeGET(T#I=ecT>OR`7+@6='ChH~WHT_c˦GUWEDzuE}XY5XuXKDXXe咗e|ITYPlbK?YCL8{'^dH֓*6[nwAG\T]Х\ӥ]y]E]嘋y_]]ID]].~w3QhZ&c<0R>+|g``]D&aXaa)]#Vb'&\Ĉ 6QƖ$fbÜ k>1Mww{אdn>E`fUefeWF[uIfgɀjvmve$* AL퇗Q3({(UVAkA%i3WviVjj*j>,6NOjjAi&v6jnAgc4gU7gUΦEZN]Hnvm6nfnmVn\:fAn-IU mXzrhnn3?z#jMdWMrN'ov5m^qr0rzq"q稐j&wrʃuJ@ yLgH"BU_D9Vsvst]tt t(uaWuzuTu v:veGvvtDv`ĬvAVͤx醩ih;_y_|zI|Cyב7~yyڢy|EzJxjy+>J=CʄwzUzc=c%Vk.jW|I$\W}w}}%~' Z);g}* },K*|W~ܗ~hty1w3ȡ{&D!$ ؀N[ HhW;Y+˅ֆe'hX1dA>hxM%ԝ-bAs?ZHd䷕M+Jx;@_XbHVvqk=s;cJFpD\dFՇ;|+wcGNIH Ӄsd㌫I ZJKH{;TxdtCsԼ@kPEN>8u)PLPȎ \  5餏Y>4gVHZ5xnps#2ّ#IUT:Î% 9T18\:\9eT8f{{Z%DVp)=YwWQUɕXX[yR__ŒXXaTcY߄>`ZIWHkH3d_{M}fBŴ>ܗl)\٘K*lګ]Lb}"K}/۲܍4m>1K3KGg~t$`@0<&C+wq[0t=> #PkS˵aXb .&bTAaBjҨjw>'ϣozCy,@˄+.΅^HN~:щjBӝ/lxy躷KR˻VkW޺mez|g|?yߚK$d=':Ƚ+雋Kk|.۾b[d֘k#<=.dĎ6H5)Į[^dgp2BB6"k~҂dgI?iZY]9agf YkIYdIzbL"I<w;:Iv[DťȊIɆ\)]oO ^ꐒtc ׫k3¯d*v``y;a> bi0@wmP8@l ` 0$ 4PAd@1"b@FM2T`hRY~Fnv^6t6p rf(<Е%($p2,6$\56B1 nw|Bsóoo3VZW3Px Ńиi 7y@ 3lQ -K  Q` $HА!(6\`L6qlsfM7sO;4 tÆ ,"eA Bdh痁@<UпY¯0X@aÇ/nᰕSHrf˛%OšE^^iߒKWgu#1qbG4{W yrE@?`0'WQHWՔH^^ax,<Ђ x \ 'E%h]B [7) A5S3YL@)UT^`%LYf0L]^ U99%P\ !|LErhEy8/9?{2@^(1,U RAp:hJ@ *~i26,WK5`%ZYe&̢ElJ.YSUS-̉(1 *5Q`{|l=?7J DYNv \UNKṔ`͵y\W}Yakf=vT\N4uHS$| !r|sxm V1Oe$)YIR^%(& J6ECJJK:Ӗ"cXAVN\cp& un|\@H%0c^XuY:V<欘Ib>Df3M$ 0xwd\xش0[^rC%9]g<ߡdD6=e7{̒yWSCgzE%|155ġIP7 P(EJqUT9C$D7j1TT go *@Pkl tި8ɪp۔(iK{)2g_4J' D\+^XDD;oCQWR~ 2`շe"ܛ<*ŭRSKj-\#!*Jx25R99?N HZF-\^vW5fu9\d(EpF:I>F9`YpoٟdO7Wu5V+cw%YBv25d47=iFWZ#X_f-b8#-Fvֳr)ii XԈp㶵n+[kb_ܔ-ynxЃpC vQC1]jCwJHo \׉u9)X9{tw[ox9)mZ - H(`h ;-0u @`n8><{[_w>-PBP( ^GQEbxwIt^ds"?v+ Cg_: ~B2 Br~#WڰeT bXFn3jkˈd<7>1 betAMg0^0w (@0s2 ''9T}Z,H*7zX`#G{z_vB# Df3 /&3SF\Ӻ5PP3F9S~EBA bɵ>Ń@MX<@U10ijg[[L"}n{Bǒݰ j:Mre[l[.Ə<>tBMC^ ,k ID"Pą)^z)NM)K\ +x[Dfi`0HEԒ+5Ւ M&!]BH :nv>nieaeH+>^ i@!^` xᣓI\_E@nb!@B'ALHn"@F.VxoDt.6bply2Z/DY@vAި[it&NFI7J70q'P : ܇9ܑ*C?>/.CCI~N$XHɂhd%/q}k9=аpX,¹$XY\Zh[o eNs1 aSRՏٱ}BHنDB! j;R..5YRAospʖ Y_d8a$0ݏ77cxenE\4 |f {,ݰ&ej^9k oLyod/q"pMDXlՁE[ k?08ԁaqMJ"@ gkr8%˶g<(caJ?$gLJ[ŬFA7h0;/#n W~kFq<4GTۻTTN \1'0XRmnZ1( @y͢\^ą^(bA}_g_`i6p5gݐQXoQY!4] Xh3i ]ݥE $)\J+VBEҠa[WlD^^^ET+M^Ywawj7EYC$^~S=0kX3n"v/M%1& x%IR_3,X3Q%@zR8H/L@r/q/B ʪ_+𬉫x˒,"@..~TA384`(Bs#hb ΃vf S?mA`?$=3yƫi/@+lDGۍ .J@iilsX=.{ɉh^/ wHQWa3320`pЂbBCbSRׇAdDʄ!qq!p;[{+Kkk% [ ;{ZؓQ$XWJx#0@@q"3 )٢ ŴtpY~8( d!2XQaAZ:F m3ԀEs Li xTkICvZ"fa!) j5}RL!iM{\jקGNe@) \FO}bs3dcK*x7艠BW ͆6dX(fA-μg̢S{L1r"eYv2MhF5yfST=@y `:5L9c+x NA~8- $tj9w5 ]GhŜ=aυYڛ&X^ x.|'&q✳ ח%0$=GFǼ$3;iH)P%\ D 1u,`Kr+Pc.񲘻N /Ƕ(O @Ȕ.EDJRRu8TOvhso}=AL0B[@ aTN |S3BDZ6̽kR-rK[7r;]jXW&+ǸuP]WNJ=lpؼN6\ā+.6[< ^ @K`;\ \lԘFV2s * _%B7o,bǿ^a4`t ii[='k<7'නm}rg ;m鞛 I0 Б7o8΋Rbi|]yt u[GynӼbSFQm MJȎ>lU/ce}?ZD}X D@$f;el2O(ޗ|[>G}O;Q! 0äD/i?+KPpه0 wͩjBFOKU|'T+t-6dBC/CAQi5~`#U \ @1E`VtuqEEv|dW:5F;] yQ[=Fm$7qG|tG4HGtGx pH H?0$zPo!է>S{'?}:*73 ?v+۪$ DZ&!;caspianmonster_splash.jpg000077500000000000000000000065131263163240400421120ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDuckyAdobed##""'"!!"''.030.'>>AA>>AAAAAAAAAAAAAAA!!1!!$!!1>-''''->8;333;8AA>>AAAAAAAAAAAAAAAAAvd"!1A"Qaq2#BRb3CS4 1!AQa2Bq"Rbr#3CSc4 ?" 5r*]viDž},+#"DN܏J槎!٘`bu7v8B1d][msQ\pG*\Q̂B XE2cYaGFb vmI6,8Y~VIˏ$HO3c圌hƂH_2T"'M-,q c'7o71AYbf۴['c˒qJֻ.@XaGͅV;9KQrmzag@eW-t G`I#w˦IjFqyX'gC x [_Ν!U*mc mo}Eq:G,` GӦ`\@NLFK1m$GՎQqeQJŹԧ0:.u`ڇSmmck=Ilm^^J2b>N7Ŕ{F᭺O977.b$xX`BBݫm*\8rY nq;+q.V;2HMu$5>r$அ|IɟY?pc*W x[6yFCP# Hu#F3r1EoR,{YY@"^P8Tt 8$ LdaoAd:H#IXG]~ux7PX*!*jl 3Nn$Xw԰ܣ[j,ѥ( ,Yjs|Jf#˱4Zj"&,n=8xwLH5e֧"?F2n8! }YfkȘ9TuuBXb,dᵝ⡺3P+qğ[񡙙X&DnSn߸{JJե{R)ծ>uHH,K[5*btWY &`,GEuH2<{F#(<}TRi$ޮcĸ䀚}7l)wf 46og#b1u'M5DƀuPn_ EV6,9{!JZ޾)-&H {il4]BrXna?mzy e]3bK7uRm q:@4rò@:H0\I.$QUY5PVmM֋eœh)!~T7^ӄ?UXP "{V@0"Zx'GT&[roD6.Z`'A&+sĉQm\'.l5Eā(ok#H^emΕh>>㹰wow?J럣'UgkӅ*Udj;yj4n iR3ۋ7UGyVu}*wU nώT悜Y.seć[?o]t[n?pݿQO*sӓ:E,F08t쿾*uMV,9+/γ1Xė *鮦ߵknozT'-j)w~zTU &~castleassault_scr1.gif000077500000000000000000000157071263163240400413040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89ayR)1) J4ZJJ R(Z8mű; ]5X!K/ν24wPcűW"W? oN|C}`Lԓfyo[TƆ޷`=6֙v)d R G3H}7Zވ 6 i`$ClQF!ʨc\y5J)cj;!p+V# "$ 2ȰAJdSN!V(e[&_X{ x&%n_LnCpdtYQ0heL4c]*_~8ĩt hC=]f+p q`X2!eeRj2J맗)무ZęO}*n`FޤF tˬb{ދo*k q 0`Kf*O//cGrClgOqol ChpDJ/gq Lr& q+sosLG[ln u$FvDCC0D='Bx=cL D"p}<6ى4h hr,wM-;=ubxjP NkC] BCPbqA`A Ľm~W~h:c3mlw.".PL6nK4'3$4@Ir3l̔@X:Њ#ld (xCuHhRe<` ,ID¦Y$&f8iEM N#0*e2cJ&p`jyl^rDզ*"" L0xA!4? )ƋmH" Jr zYj&M"Ph&l4I?)9/ti유B >:hjFȪV7j-yݘJJF(|LIG9]iiH8ĕ"@6 )@ꀋ (zIYV.ٓ]G<ɩB+ʕG)S꣯ZU}zyHnyqY{ז7sZtpʕI)jEWJwݚߺCjY~ ꓮI)Dfg ʬĩYy 8"x˜J W YɂIڱB!ۭ띄`IHIAO8yfx*46k*3Kɳ8{~hXjL‹J} ȇ!*JN -شh!ʨ. @*x?kiKJZ%+\H []zIK};ۓVzZJt\}抪Ӻz|Zuktx H;R0:ʐ ۨۺ%Ŷۻ;:9#˔,M15ۼ;5z?L ZP\`tj[* k4 髾{5kT[{?C!{(ׂRY5  T+ [TP;+T =!J >S7B`l22|7̼7+\F"L-'u?Ĩ7R<6L|ܼ <S =MWn?[KWL7-&Q=ңQx  5Z=mc- Q`l g reXP*)+ف-2l}bo ƓٙCMQ,X<oϞ}smnX= }Tm_^M؍L۹} \]P-cm Pa= {fa, ۙ],_a`]Of׹ Xlͬ~m v Al⸝'|\`Їf|=.dNuPmPi`bI.ʡ 4mP][ЀN7}d cۯWvR\Eιm#05>[M΂V^} N.꫞c ӍWp階A0& ]۷ ɧثf~9-l$@P?`.:~~F<0"*Mf]NðN2\<^څL|ƁF=:ܛ>@ .(ugN@Ҏӗp @TN͎蜬̞#P*iO 8 90 ` d`^; 9<pu'0 [_l)|N__AP>6JnN#g'} eN``Eԝ-@(;OU> SS~0%'@PZ߃o<ю- `;po6PB_ XL!XP8r4$A$; bi!AiG' $iF6L@)X ZQA&Q'l )9@p`jF*TJjڴgN EHp߄5aĐ6D"E "E<.֐R+ IH#F\x&M{bmL콇@G?o9B/B1!qt@W,[ď#RKAV$*ثfސj?~hCߗ=^XaMP@ BX`L@o )xN ؂  N,Dj+=+b,$L"No!Pc$Yp[B,@r O T - O"-.p 5 |XD"Tą4p--P6Y61NQC RqS@-̐8lT^B1B 1 I&xp\ +A `#V &]P,rXĘu $LU1zs T U[ Gh?-XWMfPȠ|6]!,UeK1iQ$}MxbPa385TpSbLiD-##&#:f[P@fo f-XQɕ{ TkVa̤XjFzh|K7ķ.,nsSW]\Ww]<_}vq۶hs>W}q'^׏G^xpg^y觍^򤍟~;castleassault_scr2.gif000077500000000000000000000153111263163240400412740ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89ayR)1) J4ZJJ R(ZC{~d^BD!Tq3x5x` \7k{X;bAn7RtNsv`M2zȪQ.HJ|V,9B f,fq CO_q(8cql$pEM}ЎḶ? DSfEpOθHF, LGI`S$(/Me$6dz"Ri) ,<K!ظXģG0̪?9Ѓrҗd=8R|u~mzէNf?j'}_uNwst:z׺y| l?:-+ry3y6l>s^{t~m{]7F[F\|?u}ǿy_'џ~_?εrpvxg/muuuw|hx xxx/xx=Hd|x/_Pw u*Ȃ_~ghjd|7xׁ ~DHwԇHCX{w pLHX-}wy_d_phhwp0ehhj({loxiuk؆pgvۢu|tg[~vls(~{Euhu8//X_uWr`:wuGz(zy=dԊuouwɸr{ψhwӸ{t h߈tBzQxyxp~Hwzhx莻wTW_؋(  uxIY7gwӊ$xyw#x%Y xxdNՎ7w4Y5yw.}ؑ'||}G|x||Ey}MOلǔu/ xxzWx7~gfilY;Ñ:Hzi|9 (8TrFXw802Hhق98W9zC0>V590+ƪ;!ŋ뺶;K;[lmkXX!1뼾;#G0{kn˺k[K˺G0"0KG`C$/X!S@›# |{I0Mp<֫'<÷ ˿l['p*#$<-/,廹u[,۹;<3bĸl / (Æ;`;l ̶p &02\b<`byK\;",/ykK؋72 Ɠ,d|ɗ\#̻. ܿ Ŷ*]ۿl\̢lGpc>! ђ+dkŃԻ-;H: B켲\P*;Ԇ+"=ļԛ\ )}i|4 P{{b][һ+ TM`,l;ˍ{x]՛} ;OY]Qֈ: 9:T+ri,û,H.Zע=ڣ}̽\!`%(IY/a-H` (%`-Tù-ױ4\нb]V)|G۵۶ 8G \w=1L=ҭy8`@<2,aµ x'`8p(M)w cߒ\y߫^/_M*Nadջ H:%\~c|D9m%P'UPcpWX~_Q*㼍~ɻLn‹nj``"6)M-[>Z]`}~y.{I^ۑҵ>if@N>U NG{\\ l ˽|ɤl^K*?QM4mnUnF,inR #0Ȏ3_Q4_mlnڇ{) i Ppx60=}p\.bZoP?zDp L%nuMOf"i-e `,{pbO+ |?eHw(5?>N0><5o?]>y^_(;lO?J?< O?njN=#*Y nP@Y B` .tSH PTHPqU&^̸!%#HP &=5cT!A YhL(n``aDLJbP6͊"E%2J+@B>*[l*X5@ݴ¦ĚiQ`h0eтLKđ? ,@?*MZ?vm6R`/oĄ\YFG4̓EѢuٹ=<{{prHȱB("?̐:~8-p0KDo+B0 I *&31&hp#EZP LqEAv ; Б ȊK$"-c8ʳ2P@9.t.,Ӑ)m*x.p{:7TJt0 O@ l  QE9S @F%#?3N27NO%2t"*PʍVXpaR`eO5MQ5őSQ2U`,tRų!@"Wܠ I+hu[pOS5RcUw]p]x MV^vWw]UzM`;castleassault_scr3.gif000077500000000000000000000154501263163240400413010ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89ayR)1) J4ZJJ R(ZqQS1$uz0QA#X-$xe!YxEFk(Sx$dg)4Ё'=)el<жp\X94l^6֔Yi2F :?>Ёu^m[9Ŭ.W6ŭo[U+J"6`\8xum;ڕNլ[=~7%|ۛ[/[]Eӥ$.woxsH 7k+H{ l 'ط PX 0aEثmˈ0ܶnCoF#n\%|\Ø3|]cٷ.Z -ӏr$ WL VJrUf1)l,~Y}{DRa-;q[9ܙ‚s,_%[lRe8sx_lf:ӆ(Jݴ;LWv`I?Ico4Y=d%Z ..bz׼&/|:Vnrb:a 9>įi=A MHnkw{ܾ6ݝm8~Uknk_@p nkٲ< sw#_'~呟|/_?~uU׹U?b7?UZwg<͏!Fbfze'w/ePws Ȁe^gꗀRfib7v~|$Hu(xx0%u'0(,X_~W-{],7zUVzqDhGׄOH:DŽNyPZ\}X?@x5#:W~Guuѷsgul؄qGz|X?ׇw<7dJ_xw8wsw~wq7wxwljfׁXDhi:wpybywPuRXvYh/I(VGgHu؊HuXbWX/~x[yǧT'_8G^8Ԉhvȍ(Xd]Hu'HV+}͈^wGvyov8xi6j}{SxIxXix9ԵOi5{zW{gzg'z-Iz+)-h{5 {iU͈1}|DuF }}}֗x!OG~ו(WvǕS镤XX-HU(h~8 vyxǁtG?0,&y/~Iʷ邔i})UUSbuvFSU؅'TXV_9YY3{7mXy8kHxM){ٜLJ需)pW h鉣Hɏw؋@n0ɟi)Iq}@ُ$؍ Xxu(H⨠ *59gw'Z~,}hY 9YJ*l ٓ!ZYxIwKjKJ"*w4ǒ9wz\jY`<ߙ9ωvTmZOyl rJ}LiJ9: *F [k9iIg d 2i$Gzyy}Y* 8ʈQOقY3)*98sb3bYɛ*Y`ڛa8h*{!hvHz٭yZڦV)}מx^4*[@zX) [xڧ F:(ZUۡ{U!&/4-+Ui*@AY#B-p1QPR;T[V{XCb]KF:j?$0Z+Q l˶O o Y۶PKT˶UwzKm?D!^(cfD@2)w U vrU xUUP=_LR=[@C0+j5}!KuQR뻕;]p]!K:SROۻ˹mS+˹qT@+[r[TpKOtL#/]!tY#u K۹QOpy˻Oܹv{y۾ȻN+L;#%",<+ ,̶+K˷=\ ,!5«Y`O]!;C,Us}%&` |M"8M۳@ؐ|˖L/ݾxԯ}ɼT<ݻ;`Fۺ;UF{8m Z-F=yKݻM:0 m+ۑ, p@$>`qn|q ċ2ɥ}ڝ j= 2ajP%`>=ٿA,׏,nٛ) $pA`lPZNK<"=+nP@i0B>ُ@,+a>'PS/Mу,.=`9nq>viGNpꨮKjU>UX> R 돭^ήO `nTɒL[ߒ D> RTP9anZЮJZ P.@"`a"?$_$NZnFB@9mkޓߎݲ>\`J=A)P> T@%d/ko;(p+ A`ɮy=M 8=`9 ??/ӈ0ܾ%Phr슐Zae:'|*]<짮 jj-j"^ao9I0SE`HFI< "F L$B#aҼyb0V"EPJReB"dK\18$-A"!@@$S.RD PF*G.mJ0 PD4iժU6C Y;N-,iW+XzQLy(4F%D @$B!Kl.]6W|ɇ;>$Jdp,D%TH15m(qw]fjmBč[BF È5P,\$HX` $w=xIU-XP~z˹*˒4P/撋 ,12L2B 300 QO@ c,a ^Q*&ѰE< 00$K`\/Bk2'Q`J̒-z$ǞBE׀q́X쀓8Bȁ&$hɠHb ,\%(DT(E mЧƪP<2#2cMMkA9RMSG-kL #ht$,Zo%SZmWOVWNtM0fPN,}v VNJgW[q/XcreX5aTN cQb޼TK I^hl·rw_w59}WZVWt]bv S#((h&vdSVyWvL_yfYao-Нwyq&Zgy%}Yiuz᠚j ;castleassault_splash.jpg000077500000000000000000000061521263163240400417330ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDuckyAdobed%%/$$/,$##$,:22222:C======CCCCCCCCCCCCCCCCCCCCCCCCCCCCC$$3$$3B3))3BCB>2>BCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCdd"!1AQaq"2BRr#bS3s$4!1QaAq"B2#Rrb ?X@MqyI ʵmVsOq2\$q|^P LKp^=@mf@wOd-ٸ.) p̏}Qw8vřGKrz\%H5_?G5ȵy~គ􏢚7ʀۯQۅrv&n\f'L0+6i/)nX1M_1'R[].8>$YkfvBh$2_ˎ]Q(]f̀:1֋vA7Ɇ̨oY~ܜjuy8Ubt^]]7uTb.xHl045 Fg``+#WS;ZZ ~u͵}ōd)wIdðӯ.3X-upȘq*pPJ`ӯ?GE[  8}qOڛo-ڑqg GN5{fma[ -,8kwҷ,WS 7Et۶{,q1],Wn{ْ.ؕFtd\eVٶ01#:׆[r揺 b96} ](@ue.1sny.g]#fFLX䤮_wgਵgسhsv⛫IoRM=䲹 zX~ڷiJyLDar([NdP,%߉ͼF{b74c𶐣+aYxNFܦ[RכYQNt~'Db16~Yx3G_z'Zv?n[{Iðǧ0{N"+@9,պEi,YϽ.sI@H=JO+Sw!YԖiyeUM1l]>ƾWiՊ ߺ-8N}䚠pР=BCn.\Tb<$Ft8e#`ãs9~92ÇO<_..JY)scdrAE"t `J::28W*1z#0 2Z5EQ)=>)CZ& VS0r8wv MbFr}PZ(ڲY*1ܰ]$@b4X@'afHvV훻+$-68Ğ˞bIoY>'lK(r[L²]) Z 2U7fgMOz |AVJJGRJl y091V~Gr+NEYcL ^mifeX+=uD}Q+hNpQLH:f}E,#EZ=ۇ:i(sT?GhM?v( (V{˞}R[Eڕ,;]  p` @S f:lW.|H뀀\&2 S&A7mR&D1B:$oЩEɋ C"@ ^LȜPBYd, qY{ bP`m 8B#ō4@@.\DI_DD4"c eV#j^ADLv #V0Lu!+6Ƣ0`8V(Ŏ߅_#IA 9A.w@4H(c۞ojs@`1W\u-WsV)!s/( ]D𑅹4A.EK&x.%_~%VFiQ+^A 3܀*K]/,Id"}c}$G8VSrhFWjɋ}F ť )IuCV}..Wj@\HE(~adѕh9ˡN6 9g pg' 1V| J@Q KY m y 뮴/'r² )1`׊'!(/%VZ0@-%@!닽kێ꣺f]C\+`c.>貸$EUmW:V5뒛9} H'v~q*_r,C{i'+4&oyV= ( Jhif]4Ӑ:۶֭ ]9D<7?vd=vfciTi_m}vF-7`@M |}d(/s/8-4 䔷z\0n鰫 Xyj`F̻.G~EO.%Y|dPyh@ ?NPP! ]=}, Bf(!5&B|8.qQ,vD8j{(*!~Gk@0r 1P 1}idTdG7ы4.q 5QÀb 6(:r E"Fz ;آ ,&EGw8&t@BLȀf> l`ȕ))`Y@4)钗00D=@JQ&3%|`px(D s7(K..@6m&ԉEls^qb[Q@I8XrhBƈP8X苵S09q 9 :ȍzSd;(H ( ROO.E< :`K@>㳍Ԏ#>APKP0O٣8d>62Q? [q!;7#Tҕ K3HMB@^@ @6I?#@%mA8DT0$$DY<@OMCBEK`Gb*yAC,đ_o/a>F <6Dj#CP]1D~>WDsHMVD~ niHiHOHtE^40P4hD+ Hu4FpTC0 s009bo x| 11_ƶȉHDH99>H2IS#,p+0ItC|8牞'9Ys4JEљoYT% 0,+#2bMfA\VZ6F/ccZc[A_BV@dg ba h6l 0 Qq@`e`z/t% 4Ifg]Yjg==De 0h@D"ظ"P  @P1P$  (%26A2&pV-Vj8˛1( VH pHk !h#T!^CmIזmۆxXe%3be^ 0cpxzU1,eSF3pPpRxp p m ^^  ˰Zqszk P&YA497s;w=w?1\&uZQG_([ëu]_p i{Y|]Dx(|2"pK""Ɔx[ wg!¹}yiJzh@V%zzW{ăz+2mrp(7'p#}6bE}P>~)c|Rbc-!+C! ~łaVc0( @9@.-($VPˬSp9؃/( 3Xrr[i+n$jL*-k%`i#rcsLvȗ)SR,SuHΞ4- IX,_4CͲa7r"=,9;'%mҳfZ_ sHT;8D493Һ% ']9XV;(j=Ti9 =-;9d@c0ec`I_?s\{ٗ!BAcai@S#ZԽMA7*:ICaPmܚ9@6C;4:URYEW=u6FjH4698Qv#AvG -`4^4!pMGcQD̒> U5GGֹP} /"+BR.0*2Z(-z@C]az|:JT:T0hcZ]N_Nb*MDLE-pDp'L; Dt-6NOx@w}z&P(O pгO3<*RvPNQOUʖ{qΥJSbSM<Ʃ CEC1nU{wSNuc%( xkG"?ʶڭʚmyΊ+@T P KNwѰ!f>H+_+4+1r66^б3߽0 w [.\ўi/+|4B `Z0o^ b{Z1Z<'&o0Q)V(X۳̍(ƊF; IzK "d;,Ƌ Y=EdaVAk;t* pchVwDz1Z]!h]v0 `@ \(U=+{ U{0+TB((ݻ 2F@ Q` &n~KƫɋfsKzL j ̐ll 0e/S3;[    ##   " " " &Šʤ  ȟ̦#""ʅɠ   ]]&P|Bu6-A' IQw"d@K6Ѐy\q̛X•@LE < % "&8:A%@!mc !2UkA}~z hi۷\24Cj5kU 17PT< 82HhuS^;:Pb3f8qn U9 e}qe8EF/Mf@;'z|⽏"d7f n}#3w: ^fR WHW$Q;$pD{pr[tC,UC)P"w\3A"UɅ`QCh8V& ~%"*:TT`8:$l>"%HXvHv- _ir@U uXQ`jӘ; '+ ``k)#真H:)Sz>XiUe׎^6%4`.KvD]Dj90Ai CndڟH KAoB|)"=慆DL*"MC ?Ӫ%5=- f`08 *H;3`Щwh (@Nzr%^`:@BD HB0b 4PM* .jYPQ I!UĤX+؉HVъB 4:N<@/]L bTQ!] P@ gM!B ox XUAH0gN^h,(6(c& ˚} U"@fd[aau%FXaO.+f]`D""`_WUP* ujV4#$Y`\ 0AbPp 7.kԭ!։ rJ0NeL: D s1!   TGLG$"4*rKDY{3 9 SZ Kbt=vЖRC!>XD_ : ?X ʂ!U5F ;iGf=4 طYv!``L"әπB4G B%LM84t@#l<' GɹsHGNzRÝ( uu8` @X!Pq#Z(JP@'@ElK?|4C}V8"Z@F`5K@n=E.b(#HDd1q!#T33$(tD+M䜈̜Ad|2)ۤ2]+喘&`3Ըhԛ=y$ Q&4| V ߼5AVndOdӼ*o>*dL^o{aR>( \,ib~{xۓ%=͐-ESRDGe+0xku['{`{8+3-^!}2`=ې.e-KkB:xws:x+/w0B6  v/B/F0t/EXLsZ_D7u!8n a.3-21C#N 8eh285Y8[Džp<L43>S/#5 3EO5SUUS uؗǃ:hG 2'f:^5q#0SlU016'qS462=XS U=ٓHQkN:Ǒ+PB ? t"$@[TAt?BJAB#@ZC eF8Ri@$A4*A]N`f}E;TDsCȀD;dEdDPE3TC%4C94cC.tD0` "Pg~D?/ĖEFbF]p6pn4G<25x9wihGFr$n&gFP HHI]ynE6 @Jc=2QV[QA1JK%ܰM>@06PTMyL@91L\ os"ل 0MMr1Mc e>XgAL PW104RL>pXe$`5o xaeQa#@CɀSi RNWXuNME:3EOW%Up]Yd$U^cq"CTN5+fzSbE KWàaRRUevx:Sv5Ppr imawM`XUDXv(!ЩeaKz*R$PڪGa`4A4WIu]a\\\y;cockroach_scr2.gif000077500000000000000000000224611263163240400403640ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aƔžƋ989{ΔZsmjJLJb10)JDA{}{sZURRbaZ{yA $ sb ()uZJ4 ZebRYZsAZR1Rj1y{u9b9 JL)Ljjm)(F=Sq~xes"]D!YnY_oC,ݐ <((|6͝ Jx057 2V(  pec"PD2 wʜ04 XeH F媠|X"hfY*SLƹٝJ:a*@*G I:{Beq P{) LE+FpU5]h=}DSpMY Z g`'nxc6 R&`з߀/0 GD$5<٦/ "y]3^;`9m7hcA*7!<".O1/GG~'l.|@ Ȁ *B@xAip8pCHp`2 @V#T2DAB8!xCPw3g# `pG "aLf&9Z"FpLE}g!Tn|_X=ATEhr8LښE^픔,'ER[ XiBb~,F1c@'C`'`ٰuU!gL%!3" b}njE C`> <Q:ڙ"~ Tjӝ>> ش5||@@0ЂfE# DHAit$+ (Oqaw4 bҖ)<@S4Ӏ4IjQI'hK*ԙӦ Vz"fHtGp*5tIs%Hֵ#C:״RoNwU}aGP3 HH o*LIx'@K ,@%1QahbE@޳fSH##g &+; D ƀVo ۀL\fX4e~uE hiDG 0@$= Nk@J-J*K=K'<;HH8g8 '>.K갅1\\S/f8de 7jX)FL``GǸm8"tMD̔]ƀO %#@~z2*?`]0OQ` 8I_ 1' iAfX + jۈC Egљa3eMܤ#7̲FQ7=&&R""z€ 51@7J0b Xt@EF{& 9+ˉb qC̡]Fր@C}$A65b[!I?c !`KZY9*R~2֭$+)~SL \h0t.q; 6`AsDѐ4AMjnK00Ac 8y@qT XәЌ%p:Ht<9.uJpv?S'T A&@xQln_EPBSváu @ 1#4ЫF}dDV14Pq$)qIMR3ɉ`x! H$e#h4G 3G`8 g$f^b$EwN m/SR'@`mֆ0S}B''@aY9**+jT+P|c`**`+$0L 0;uޤV-.7.C.wB-;q>,,2- f2! g. dv=[t008eW"1Є&w/k]l;;>'V;W=:cz9bE$5 YXq5Q95qL8)NQ'z$@|`Z _#cubH9TZ-f3!It8>S>9vZv(c8J#v:(8(1:C>oDLJ#8l h6gX$AڈBÏS ctMPCXAb9M SI#W@#*4 zt@?n4@q{+ 'c VS%$BjĔ/4~ o w{PAB%)$RBFyn棔DFj fKe8;C?D^k Iy cFlTF!5#p. 'tD?9H+Ia2bTHKIH5b0G&J䙏B8w){I"ReV# 5RuU?S<5U7TTQOXL%7,T\S^USTeU qv(Z+UčWtE=sIyH%WX UVa 0XcwpWڀ՗J2*C[Ee8beX@pU [8]KYZk:]N\:R]P\ɢx'#Uh%@}xc\ p]ٵs l[vo岂j^#^AC!_ͅv_ZVQuw>zz@` `:$($.)C aT&b$fb(b -1c=''JJa ;]AcR0Jd Q^I00huUveAe\eb6c&P >j`LhPFhx{b~`$ѱ_7%@L2j"ififNզ;v_؆%ppb*hL vGƲRK(Y96'll ;TJj nn-k pn_І}ƀH4t/wt,;hP3 ʡ>2īXXhc˷ XCHǼf.5<"*H& (X6K8/X|f#>S{38:8!:;y Y46 <ІC࣑S'QJP#R2D c'| =)*;nƔ@3A<J˼e?_:>4Hp);PB3X)O17 7`ի%G93TժղcGqC<a}MBDf)5hy3n])Fa_D1 R]Q ó:ymHacHĘ .ۗmٰ@LHf(1!yH} Kڏ-Y4Ҝyߵމ$K@㩞4!]"> >M i&9C}zMҤ8 PSP' Qt2Eljx >6^V%fU _qe[U@YzmK_u__U@*?J"4YjvIp u9YA 0[!9b\Y7&@I{$wg-`2 :a\ sb gإ=j=qfa6Cݦ{#n Cedf_ifEcCHVD`F8hdNa Pm! t `ݷi&j9QjsH-1 @f>pրih6uf(ƩA  p #`!P$ Omچ>VkwjPf/PCOpbEPU p^zK h& `ppq?}&Zd8q/ L ` ];G>sPQEʵs~@'?qbk<яfO ֯7w %  !## 99  ʸژߜ!!  ߚ%%  RQ&2!S02k@Gv(ABpU 4BB^џH B8X/ON0] (R"E(qn{cc4.=⻺-T}o k/(D崗T&w@$Hj[;X0)BŊ}++^},>I @{( s!/ v A7p/_'NL-$|v۹#j{<0`X'FzU!2pRVK,P N@ }z|;a[5TG!]XXrb4@K`c+ht!Û}d 5+m 6؏K5Y_iLF ‹5ā]tөBl%!aU:飛SE=I }ƛp)t \K/D ef ='uug4|9P MZiB\V`@ FWt-P Ȑ+1꨽x N CԐ;MUU%z^ⴂ:khKձlޛ$Y?BK]Kba  8po%o;a"mR$pSbb|@&]IS.먍 'yReqŘV |=dD%zvЉ[!F#x<=P@& #8Ҏ2/71Аdnk͋Ozެ".MH@&l Y-0*zlxsyL~ ӤP5>yp  wcBjh{+~0H" N?KəDr$@fѫC Pi ܽ| `3ip#"(4WhBR @ xD%lWxaADmr  <`xr0q@l3ǘ-Ja |" g@G.aQ C>І8!}F1H! <@&e:_.G 䰎HHю=?~HP, W= WZG.0C2B#CP2 xjC ~rA&=+p=V# @ #g%Sb*bEa&/"!8R Hp|Ӝ"I  LXX0&t@<#, L CPL`ȨF0`(&Zыj\7&P7u`O๓9 Z$بBw b H h%qQ 0 ԥ6(D70Ҕ-o(0qPv00%Y" @W ]@H ,9Bp@&TVy[j.` XX,c Yv XoXdPSlt0Hp1pI2H.fKL$;#4 L೔r%Ζnv^@N.*NaP@Tovf*0n*Pvw=."8`&;db* Dூ8q1 6Щ 610Rį(n'mO|>`@@F_Kq  : $@F,5@aqme>ռW4@&\0KMǔ !.jA9+\@|.9c>h u8`X01A`fIS/xĈ jtL0Fnj f9J05bA$8x h[ͳL$Erp7)LGp VKb-_ [@R{ݶ"< Le" 9$znt]1~j#!$Q(0LPk@QÁLCi82Aϸ`WXmw [(} IN|7di8w6Q"NbE]wi7V[Q[kETd5ofX]-QoHEq<ޜiLh&/NƯ'.N5M^R84_nG8Drd%<F #,; x@UYGb)aG|~C[$S`gB㣡>{`0`gB'Bq>N~T$t "OqPBS X$q$`"gM}Q$ `0%b09ru'14JB 8$Ta`pK =4*4r'T*r&b*#2,͒$B`2DH2\Xp` -ղ,t2 B"+$xA-Aj s 5012/Ӆ/5x1%Bh/](0-tR28wM+1>c31:1@vNg200PdSM#6!(4Js,44EI3^XHr6p#70}Ww)6jhqS%UT9d#>C;{2x9S;ۂkm8SMޣ8ai<y= il# ِ A>>D@s@p>x) "YREzc;sPB0x9B{@x;)2,4/t_ 0DIFLtNJn4F|2NDDUFo{"iFIFF?$FpTDODSRJɔ0GutJdHH4SzHGHJ$JT|J~J KyG}YJIwjK1,K=ŗ4KTDTk'TRM auNŗ >PSKv#X6yzqT|y_`( !%QVR&U'#T! 6SpS MdUTQpnqTWUPQ|6H.*(TLTPuQi#Tf+Fi|purl utZ ]j*GVJA75p(X0LGX$aZ:*UZ UEF[xOA^US f=)&$[ a ]]^b6f[ޅUev9R7Xn66aa5h lpz_h!@^Mab#l0c WQdgd @^ & `cZz:b@Z6A0 ;cockroach_scr3.gif000077500000000000000000000234441263163240400403670ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aƔƋž989{ΔsmjJLJZ10)bJDA{}{sbaZZUR $ R{yAuZsb ()ZebRYZ{u9J4 Zͤju )½UZLjbRU)Ri (189mqssu9Ťj AJJL)9RPR1R0)D9Y RL)b0Aaju‹ U{P sD),) ){tMx0gYA0 ^~1)?_A,(8Px`s3f $.qBpW@cA bixJ0'la&@d袌>@FhTZI\q[l vg)&bv1f96B1 <@;:pe4kPk2,8:ijRz:G=Fq65ǥI dĆ^('[<Ki jR)UJ0Й, 'lY@h:y&A!w ">`^R%؄g=3zڙ@J/tq> aB Ы=Vsٕa1̥rpfTe}@m <59gI@~8]KWn(31u`+L sXv͐/Q&+TMd|sw>NZ#dW> EF`nF%UO<@ lЈzEw&7YsJ$F-`3G/%%9%,c\@Px$:8 ,A .? 6Gc_,lY@_@ 9  C^HL"%h9r(q  ">lK9_ [1 # p H(5s=8a HɁzH({QQkH%LR~A$F,f 6q`H%UC"2Ga$G6@eĉd%~3֊w Pd Z*pL4!awȎrD/́ J@̴4ҩ&'/i1k(C %6!ك&䠞\Ч E  hhQ$7@'B5byυ4!zԣZ$%A %XՑY$*F^ӏXCejt XڂghuH9͢ "9 "t+SS6s٫I@ ЉwHr7Kc_w3jDOnzlpB,} xQI_KZ}>*`bf5{̀N{؆gZK1 u!G.т6{09MړHYqCRJAr'!@5N\b[`(C$!0Q@qAHhG. #8PFkq3Xy8T! f<)!ނb,P3ъ"O"N=p8D *M( :hepCؚx2xG9Wt~H@;x9xe̿R <VV*X)`3v\c*酪UѥTT YV[ p bdU\EZ*E^p*F*ʭJ^]pFw/ &`zh?_YnaV$BZɊ b/fbi d&hDhc1֛F+:I "}9ogX=pff;MdU֦3VeЌ0 zhF ht@Bi}zRrC&7ekV=WU+_I`i<PC3S=ĦmiI{QlmhkV6rKMW0lԯ M)LlvNfG)Jyct5pWpKYW :p 'rGkr,s tBGr;ؠsIxt3Grkqq׻@B!#!jA~)q V u3u0umWuĀurG/Riw]o@ ul {% (!ԀxbyYI^xg_}xGz,05a##x7o|ŧzǗ|2{1W>R06'F'ki}}R+h_'@F(~ } W"Giq %6S͈$| Q8 a>~,!8`Hxǀ } A`aCMYA~jè PSORx7ք( +4}0<'h 7/sICRik4u(r ЇfYI1F,6 Љi񉡘.)cAH$Ab weF%R0ͳ {R)t"h@+,hhfpgP!`mϨ #UXh<$P#fQf{BqI)@]% %VPz@OϪgpZA"b Ы x8в(qVs\+Yő 1M9=9(@Y@YmW-ث֡7}Sl5<i!2'8QTibvFv3Vd>giii@(AXW9Ys( 8tqjQ4*F:w}Cb}-A`GI]p=oiz9tv;'S&cřIէy `pXqT]: Ci~9AI)"\4">"NYz)ݶ=] P]~S$D0 jr)י_[2!?7,@? 60Ia Y]W=ATmQ3BDqFR1$}!7x07T6` * Jy'xry'yCC# ~zlu+w*2?2r >}F`O79vFl7*;aJ,}֎2 5 nT N.`p'V!M)YJDqQlοOcZgfEFK.NnTrs q$[jSfVyjF:.볂IoTz.w!c(: 5.;ħַʩd CTp+@0MNO5P? Mɪ3zV $ jCJϟ6ZhJwxo0đxpE$ jrh?o o/[IZ\њI?@0Z@=_g&f<;!L5521 wOOw )(  41?,*,++70*0,72?ߑ٥ cCf0ʸq?ܾ '=|U|N7R}OcJzDЪ^1x01TA(QA"ڠAqQ##  h%jdɓ.SZSʰ.al"C 9 菡HB4 Fb)B$ȰaB$e-|8M p(` hаa# I\" : 4DpM4%\Gvy 0v[#8_DQ#OS0'mrTen-Go0 [@sW}ܧrR7 ="! X8}` Ɓ7w%6p$ P"=` X` Hےɶ# 0)gJOA:U$*\~Y^cbevD8 $#OlY FMϖP@d`[0)awYJU1T`8*A#<bL|S,B@b,J)(i6i" HpX 20dXfZU >p,j@%`V0T< kΤ!୬jϦG@@! LeoV%cɱ/;guq( @ j$A,,tPI=*2{P]kIh3XjכxJuU`)G-ܙIBtCX`ޒ$#D.y35YL;n٦^N.0;)Nt㙝B^*,3Tz6OE/Tf>3$ja6/l`B\@@jDx$UN* È$s?ESL>db$0?@SВx! d֪0TMBɗmS/a$fXHXXu.v,f6 Ϩbf#p8K&@C T0NBd Rk^$#Q" x`&z<S'=y`ցÉEo̲XW>@* M7TDy*Z~SD xƆfё #XtH`q@ {WrJpvSцpf ۔L3+j{L:׌@4OPOL@ϓ#~2&;٩Ox2t4dPP;YBC^RQЁH Bd #t`6ѬT2P0Cz"-) CZ,A Ha@2H+ޫ3g*+՟jWձPf94).uW00 \u5hG|P3 Qˮ= {؏DGME 6] ڬ|+V!H`$ AdŪtƳxqQhg%GO ka D %؀r/5imh^XwSp,<U)Y v ZZLK\X+=;#'dZ pUHXqA0& 0yTք@ZDe=Kla0A{ySL@ |D0(@B s"@7Qծ.dteldz2m3 X5pcaB@L1;`h+3{&ns' +n. -UJRY,Ոi{%6ƨն`i=.^ LQw JfSɕi^hu; o/ɒ2"FZ0<[8o&$rYEG^Z@u:[R՗xLj]aWq?Xk4BxfExIHKHlHg+*4 2N6\Kh$ w\$ah&ۢ/ AM H?p+rhgv*D?#~818yw8xK8C# u8CAǵB(4f<~?20@"pt@@x4MӊA_#TSwGC_0tI4Bh>&!x Dz7s4A( /PwhHЎP&0L'*$_Y@C7PwP7Bx$`$4; _%xgX-$y y\0P'(44NcBp #p'f($0a1RjkL1kuYw{ll6Mkt۷v  n{m" +pqwwoWs]e+I+7s xQ WCY*s4gq{to CtwcNu[/W8s/!3衼wJ',iv-5]M6x[@}yqxW~qzzg2wME{+GQ7GSgyz;cockroach_splash.jpg000077500000000000000000000060541263163240400410200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d"!1AQaq"2BRb#r3C4!1AQa"2# ?}ՂށK5Q',5f \Ԥ,x=-_Yl*#۶QEgBWERd8o+q`X0udsOl nnNPEko^Kʀx-TVTc{q<6ua{}g$ecb>ں ]3_.?~ש@2rTe2o^b1FsW1G8 :+okIn'sSq ]mh: 7rll ?h њڦ&])R-I?*ꀶmXJ"QL :؁X4@B` =FVj]RdHy,JX6;S5p%K 8V3sSdl3rǴHb]{sJ*UҥW _4/NGQbӲiՎ Tc},^޺3ܶm*Ue®iIuͱSUլcVA> \9ufIb,<ݕ&f-ualBu[] [?;,4s{PYTh,J֠A)|OG'Q7'7/R#̋pm~D qal?»Hдr\\t ΌO`ㇾQiڗ˩^Mjť[nA[X@ cq5icWY1<xLrę2q|EoU+C&[+s9y./\e*S-醧MJw%|xUx4RQ ` ~BqϬzaMok@+%[U}baG硢3zΩ2s9H. N}M+a4,<{[#Z(5o([_5Ւ]uO&zkD?ExnwU(@p/hXL7 F3B,"ÀMl7)m`ac^)}GaM35bbۅlQSt;+˼޻*rǘ"Sl#Wϑl=m%6).N$YIۻDW,9 o ~",'0=VN& Opee3l^V[[/Ͽ|*R"˗m|*e"RAuab)C.L`[v Pqpڵ.]΁%i4k,b=nZ $}BY52"A"m4tF/%MPCePVbvJ_x';A ~RGA?udp$Q9]=4-FhH;fwLRg2 adE|XmƢXow쮫-+u7, A-k&zsWrBv\XvlƇIѲ2)n0%Ue}9ib1#]k}Z?߉ˤm0C;c;&,m1i͏8Ď9pSe%,6a}4ySPڭ<AZ& 0SOc~85bGTf!68?ʜ^џJ `me)hèH06/SC]0 yW1 EvQz,Y^=G#|Wn\S1<ܦn]l]^_䓮+p%joe@۰lFw(e/dlۻᲫ{_5dۍKH {w6>[c@k'yAA!wI 7.>\fGJWMOm\`_\as`__c[qijv%.7); G UGPM \Y gjsubkzs1I2V2n }.~JAs8Z[LY]cQq`^nprxZ19Rb1bRj~}b{7911<΋֬6 $HYR|wrRJZqmJ֜AAw2,GmSszuz&0-*%2,(E9jL7mUIhVvi[BoVys{~{y1Rsہȇ&%*ύoA|R1 bsėˡƧåѭƪԱDzдʷ҈ӺΑϞȡDz»¾ٽͶ½ƃդ,H*\ȰÇHŇ. ñG5)Be4hP"Pjt$J=z4Eʏ@ I#DH2%B"Xh))F3MKAsٳhz\ҷtԁZ54-ܥr\zꏧ?j+^,#3Eđ].eD1dɞ HSČSFTo uLTȭk$suե:u=v:[⸼ypo&u8Չl{ܕs9&mQ]OhƌaOyv_qpɥz)_eB_}DhaUhmRtr_q)>X`0cr&S#@R"c!ƛVjq (FbKm:-{),gq;{T`/ V QA[07-p"2\1f+p ,$l(| W[*,4l,CL@3}ѳL74yn#uK?mWG=5Xwh|m)&p Jksnrtj}p2M4AM86#89Fxp䋋4#QK,q^̭;걻N3e;奟>;뮿rE@`E4(o<ʫμCr~o@[|ϟC D=O=ś_,|+Η>}7@dkP HHZ 4Az"< M?fP, ~4B7Apv3_ SjEh_иO|; & Q4+/[5B#E(`5R"8=\$d 3q4YByЏ#<ь" 7H2`IA Qd!w ]TB+sȲk_pE]ѕ4$Q3fC/i)[OdcŒ}sȇ$u 7M_$9Xjp%1gLR\;(GꜛͱK9Q@f8Ç\#^Y؇= CLJe+c9Zn׶G$._9lv- N|9R.-/a)N1q۬=yf&> Cɒ/jzqⴇ3]iQKYĦMAT%F2>f]8xLz.K\05liO{ NCp f{Ǟ5?'pkpd6|vBzz5o<> NHx o!no.qoߝv#kMn'=i5z<?|;7w{MuPkK~bz^8.3`BWnqJܡ&^-훠%s<<1_v}LBwa =؅;g0|7kTwBI>o}bNgS}'D_n]7G.N:Lb?`wp̠xz @d 0 xsWbtPm v   Pgǀ%nyP4Xvvq3ypuw!Xbh ȂFz̠H_hd6f.Z(z@z5hf X\x^(Ugj!H/WyPvjOX&hfhzl"rhVЈ5y$ȃOUWZ_8fhq2o;}. =% u5  8\P PX `Dwn+wkFd8XȀ hX 5\)(Ƙsꨎʨ+l 혏X 쨏hӘ~F (Hz(n;@n ّ9БPeV&(p2l`I+ɒ0鐁3Gn`75ٓ>@0+W E9LٔK gtV' TZɕU@< SWu&d0ǖpWeOYvwjbm{xɖ}tƗP”}ZY^)~)L9ɖuReYCpYbIiR>Ɩmٚp b)x`_ɛyZ9\ɔ]˩9tle9>VL9ܩ}G֝@ tɞCb~pIi]h=~ ZR *%2l  Z:@ef婔!*}I%j#iƢ24j79ʢ8p;nCJdy ZJ ψkФ :%RBFjpYzm]*Zzɖ?ZciViZ@lpqsuyCqB zJK~eZ7ǦFn:w:pVj* zMtsJZsAGne.7j2 @u;`u|{Jtp:Jg L R jet'zL dZz:V}P)qJS ZJZZvR ƊJȪMR®jejaʮk!j {,7Ҋ J;}){/Zڲ*ªVzڠ;Su? WA[MD ;coconutsfall_scr2.gif000077500000000000000000000106131263163240400411200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  *4"3'#(:A!A E+.L8:dPqa)f{DGJWMOm\`_\as`__c[qijv%.7); G UGPM \Y gjsubkzs1I2V2n }.~JAs8Z[LY]cQq`^nprxZ19Rb1bRj~}b{7911<΋֬5 $HYR|wrRJZqmJ֜AAw2,FmSszuz&0-*%2,(E9jL7mUIhVvi[BoVys{~{y1Rsہʼn (*ѐkA|R1 bsėˡƧåѭƪԱDzдʷ҈ӺΑϞȡDz»¾ٽͶ½ɐΤ,H*\ȰÇH81ŋ3.ñG VH2C %Tdʕ~{_#akDH0e94 ?p@Yn|F6y F!8 jE?2΄4@a% eBKz0H<FpaHD1Jd(EQ\a'F1CǸ&хl#`@ IȄ: rtG:zDE@QccH.R IHCR24B1iGr<%I A0 $*Y1!e-oT|/w(Ld.KX2|Äf.C%ı [eeR7>.юĦ9Ug3YLu~3>I$ehS-':` L$")@x"a dE/P)? zP9&4 E,UJPIr2;LI@}2@IǛ!8J60 J*AJHALuj*UV*Gեh!@%P OZD-eGv#ε~+^c\:(@>@rmп2H";K?%-LkYuu4c[V}ky;b\}+;Q2S.suGK\?p׻q{w߭`@6!Z|+_9_F0\l:XMt`nWUڎLఇA|5þTCX#[,VՔ; Bהދ$!9HQ _'y2+d"?N3aGD$0Ӽ6fF Ny3`6eM?+9~X4BBZp6rY`ESf >" 4JjS:^5N[}TZɴ~5o=j9.b5K_{آ^-ldzvv.ѹ PҖ#la6 Yp'}8{҆]4vyw">!ep~p6<~xBOk\hGN. $O9o@gNs˜8/ssG]yfA7:ΑtMyCkG}U]Z:rdWX>v}"wSϝ!wO f.Cx? 5a>8#K~| LlbxxC} kcf[׳8?io{{} ?~o֟y{wxGu8g.kb??|PGw @}b7xxh^ 8poxxsͰ{ <۰  fpx&*x)~ȁl<Ww6rzB8{r>XyF{Fl)ׁ1;5H<r WXJsk{\9D FY ;IMPR I;ӓR V]ЕW@ihfYdٖkWjIi<3tٕso q|ٕ~V=3)cYF=I0aiR l`9YUi ]a!PӉ靦UiFy] qr7dɞqiٗٹz q9s@ F)UyzI = *96=ŝF :& ,QƢ00ꢼ!6ڢ7+:ʣ@ M <*DZ9GjF6ꓞN P*SUfiW*p0bdZ`zh*f bkn. sojfzGL:p|*2 D*~ bj*j* ʢZ*1zf{DGJWMOm\`_\as`__c[qijv%.7); G UGPM \Y gjsubkzs1I2V2n }.~JAs8Z[LY]cQq`^nprxZ19Rb1bRj~}b{7911<΋֬5 $HYR|wrRJZqmJ֜AAw2,FmRszuz&0-*%2,(E9jL7mUIhVvi[BoVys{~{y1Rsہʼn )*ѐkA|R1 bsėˡƧåѭƪԱDzдʷ҈ӺΑϞȡDz»¾ٽͶ½ɐΤ,H*\ȰÇH81ŋ3.ñG VH2C %Tdʕ-QdIL=*ON1;{J$DH:u"E*e*K>4kՁCS穱e]vD=%ܹL낹W/߹zd '@f n˸㟏1-eHrD'W2e˟:kH`N€"Zװ5Ȑ\qOѶwڷg=îG8s}o҃6xGSBN;V쩾DݓxO_ͩg [L&  UW_d8aj($!G'Xʊ&(׋(d0!c;)Dh&'t#!!K6$Lv䤒U^"rY`)%"(" pZ!fav)|矀*蠄j衈 .裐~ ȥx@駠*ir)rj(*)"ۈ"P*찡Pk lj,a-"dkv fzZ^mچr;2.kʬv.J/ 6o'0fXA>.lzb,rj\))(,[ryܲjl8<1<-DmHApPG-uэ2a(XW:\wmt?|u(l ^6rl'eokm׶z؀7N-9/(~}5݄7.x-ƍF㘯m,JޗgyN8QN zD7M騫H~ͩ~t#H| 6 @<E[/<_Щ? H~G^w=_ħ0>#gI@O}<F@YxAP 5vЁSx ֌ 8d@(! #:!\B>P|(` D? "XD IEq1^D#aXBA PE1@4F#| al 92cGEQۃ$i={pXὑvT]$)YI7^ґ'+ɆP ${IFmU%)Mrrd(<Z06%29&.H}L2sL .pҴ0愦4k"s;d#L*P`t'9LtNO6ӝ|@:U\EِQ Txh2PEb4· /!HK*͓2!%gKuҘRRxe␥'L)S6 tE Cj5֙NVAGRyņ2rKװaXY+9<}:p  V8,IɊcc)u}noXⒷ=ܸfֹenrd7 O,"usݷ׼u^z[Ͼ]~EzHB{l@S[ú0{9l33s_(<*6N Uxn)qh/;Sb8 >SJ6C}쯅+c6<.qd?@YȤdCE/@DS޲H7i u%lev-%>~xBsxlovqp+ N݅ uaFðt﮷}|v7(h'Y/ #oR7-ixA.xw%_Cy+\l"n6ρ.k ǖ,ѝt?,uzs?=pճk}X:m&LlbxhW{ܗ Oc.w|O?|=+TGC&_ m3suȵ>wN8PA3~=_xES~?8σE-~7c{ @1 <=P{tQ `O8({ kq0i0؀𶂈q.zo4u6k8x ( )DdxׄWVS2ȄD8>Tȁk zz0tkMȁX8)]XozKo7H~~1hwxxnGtWx\؁K l&YTX~V 9n{kݠH nG ` 0h P@uhr` 8@^ ؍ k x8=G؍X 0i08ƨh +Ǐ)Xx xW xxّȑّ IƈUfmɒ+il1)yvbxv7 ? Dɏ8)yg GM= N) }"X}VyY _9a9Cig~fmɖ_ulft9qYc`h{ٗb|闂 c V^\cyhi OyYqIf陝ْYjecY `RIyG\yvp{EURٛi)ə55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1Aa"Qq2RB#3brC!1AQa"Bq2Rbr ?Ң.ȧdѲeWLP򪡗Ҫ5;}Uq}Kyo"iĖ\)ͶhmnH0⚖ <+:-lJ26sRX$9e-#3kԷv^6Wi %S,:{&+Lf;mC p akh8凾}&H忔#p/v<PKMΒU: p؊U~.2RmvJAMIfH1|Ψuv鱾Yo&AHTb3 q|ƯFwqSa4mΖ>ڢ@(sDz2RzdtIu!h@kȥWmwտ6H3(V68]MNudffvqԱ!2M,6p@'ǥϾ cAî}Y(ӭ 8׫NT^MNyWl$dkgo³Z=ߟf\e([+7&ZsZa.tۅ$ipo5V'OXwcekq1I:npը8xİ,Yr[  Uz5ÅZ9gnV$7߈GjJ2N)est`Er.$@ࡗD˅Jnˊl?5+$LVo| Zܙ@CX?r#q}4`*$ާ{64Ʊ ~0J)$"Mfl=AT*ѻu6N6}vIb:=[nstu_.5teG.GmYabά;9"jiؐp vǾzU7Me],5C|1 |AZ-d~92h@HcS|Ew)#%Je IW´=;hYR-R2!te٨;)nnciY`O0^8){YNq:z4㫶^*nQ-_3jV(U0T砆6|Ez۾Vpw0,MnFfܰ0I=$1EQI"./Ƴ=Hk B WZGq rV:/_*A+J׵j*@W'v1У cx_zFP&^|$ݫ]4 kUTUb꾑nh}#mQ1?hΖvQ$Mrbk_V i^nm%FG;U$\ mH‘kLkIcrQ@6EI719W ,%ϕ<Ӝ{YSE[H#=zl%ZJP$F9'h',mS><*Gտ.Iv?V1`Zr17L-H> IgX߅n˴BnH1V@C! cpjb&&U(;ѻጅygز{X`3KY'_I;~U7cIO4ǠfbPjP GJWMOm\`_Ugu`__c[qijv%.7); G UGPM \Y gjsubkzs1I2V2n }.~ZZLYVqVx`^nprxZ1 {9ZR)RZ~}jbA711<(HYJR|wjrRMqmjʽJb,7< 4j APmi qzUjkz&9-* %5-(D-z4@>J#pQIҦ֮:k*c" Erִ fP{Ky ä ̗0R\+I:Т'W|YmB-vWEPʣN'"Fvx6Tv4)Q" ٱʙ{^DѤ.{ ⳧)QŸ'o}A>Q?yDJiMG[Si%wćXv߄}YRa}(8X&ibPu F={b&z8xczY܀t2)N.wZ2F5uuykxFJzv2hSblA} G+u'Y FEd"ٔt@&Blj($)"V'bJRTVlA hc j]Eq:jPLz^# (} j"Ř쪬h:CaUSiV&՛y-jڳD"`xAC쒦" wpŽ ׻oM JE_pBXDhq;< $.M%4zr!7@,FA> - gb9?\BOp[O_TEPëX &W7]w5pny2֤[v= ' $ ` "'_`VT}X] &lG^6KYuxSjv/D@}.3We& Ԡg4bЬ]tu5fNcCO tҺ$wi8i@ 37DN'/;bMiҌtW;}."MF 5hw҈\ (E8 5[mx pޭ`A-unw;ysp{[֮ U MZ)׭ȝ |&ƕ{{>;(tan4Y``%0=֦4H˦G! QkJ~h<(/yMU|y &NC\'`P6{xEg=xa"^rn [e sׂ]ZdpPZz0[R\쭮3(oaʯʧ 3<݆9'SS}yP ߱_;j-iG|LӃѻzs|xzڷ} tV*rkl[Z35W~%~ P'wUct ǁ{nSrmV PhP0&EcA;qLgz i@hm9'iXf<ƅ)WSou3o[4ag#yy}@9 Q(;`GUpYx~\<1Db`\^206-P`p@cb@)Y3 P 艧{o^sMXvȘ7p 0Xn(|Frh02g0+TW"[-7v 6Ɉа@PnN@ NnT0S:c0\T ;,жf  XX \ȑ N0Xx1sMĨHEd'T/Dy(f~8BfPK&K8+1=dsn669S1%yw@Y!*(l;I(q(MR+Z4BvjL jYh٘x; xv0U4Vm9T2RIdy9XXgPghiK1D}_891 62|} ! ǘh`@jPYF R&` J>9|yS2)O NΠ   zsYku_Cy1 6 EGPH{% RE>-kژc hp`!\3 zs|pVh;޳h{j*[R״y.k { :`[ !' $:Pg0J3hۗ8SEgW` g:P2k][$q e9~ȣv+*U8j*/X+i ;6ZpU˵ p&Wn :v/*ylq-?/{sJ*Z0$ 6l@<;k=6zlz(QF@ksSZ <\ex#hZɋ_IL#3 *?@ˠG*3ܐ/g XLQπSJ]Nn(8B*a2[ ժXJ/ejS@&t4jZcTzi>UL ;conecone_scr2.gif000077500000000000000000000165461263163240400402300ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  *"3),"#(:A!A E+.L8:dS@ im 1U Y9 u }9fbPjP GJWMOm\`_Ugu`__c[qijv%.7); G UGPM \Y gjsubkzs1I2V2n }.~ZZLYVpVx`^nprxZ1 {9ZR)RZ~}jbA711<(HYJR|wjrRMqmjʽJb,7< 4j APmrzUjlz&8-* %5.(a6)+CDyuX1j 9kڄH3(B=@@B4m*pH^Q)E5WoʾWŌ:2HlyfihMx' <꘰F VQE[n1"E:tH!Buu|9t6i fuۈY8@6bBAgʽuh_ HheGZjEXv_SҞ|4p-a|G(ᢋj/h`X.]F]aABp@'\GxJ|DXUXF<[YTC5(ŗJ!Kzl # ɟz)`Vwdd;jAh&4r|5¥ *Y F E-r"(1N""1jA$NvIJ)BKAC}KS^Q=Ij?Jnvܫ]Nx$r@aڻ/HW仰>9$r:q>1ǮF,-F95 wo$_!@a8LڄrŦ.13 dabڑ2Fk3E!#+ڙtoM c-$-F^6bW EfL \3Aen'#j]fT1Au{+rZA2褗8,pxe^ΐ#.3D[ naUꍶu9~94LAԓ7T#_}c-\G*Q?O~?@A Lȏ{@^DŽ=|@ ,}< Ϫ=L<=L' :w^5֤,{dC=p(іx98PH*J!=lS<'+b>b613'x92  ^șk@ ޼FZ f4 HKԙɶ"d.ْK4!'}ɁS3iU: e/}"6.G5Ōa4[~bM:L:v Q IJ;AX=[Mo`ܜ^Mk ;ІʤWNzV϶X& X[#*%9h(uJWN,nPE9$"I5'EQVsĐ'ը.mDE{Tx @RN{&rMS:.QeݘxtxC$izIxbNb̋r!/ C3 Pk" A@hx hGKZveej=uOPN' @لLb|ؘO&kE&8Yk&XpVԖ*Cx6 d@@ .IΚ&sJkİ2 Z9o@5)Z&KL1g4 Z9`~ Oh&q9Ka 70<I ti+Mn8.Q؍ʤaGˆ&<Ϛ"q Թ t#e2 Mp Z ;ъpA0&LMb{bD~4#lR}FpLiu䰿U:uLnx1lcid h 64~-TX7*U; hqk1K(#i؞~l9| vo9p|0k4A3"P6<;Ww5^Cw D7Jn@-=l?n9D9Fww) glZkfL uW` `4TN_YR_u%vKu^_=h]2@]xvGof@@?_5ֺ >3]',aO0=N*<"ӣItMx lbw8Ǖ+p&D<1!Nc My7a;%1ɿ^jLDUx A{J͔"7V4 hz|w>l@S Gl hg<ǀ؀X[ݔ)'  ǃ'kTDXFTqKd hbhPu3 9 9lMp~(%9UUTPܤ1$!3hQPh RfgW}O̰K||@}MGbMn&U:Ux8]h-!|t9@%)$HalE#$1P('w;&}p8зh1>J$NWrMr+NC/Z~xK eh'xpxWΐ=#0MThrWL }𨈷S  }ؑ|ffY ipcxG}6xx 91N}w΀ QIQ֢!1i ?")QǗ*3ib^9Dy28Xf0⛔ Iy9ikʙeb#Ie[_a$e2tgp<(gə扞k6gjtCc'4U6Z9?4)(*x ڑk3e*A6hv8e2Ay Iejy9 D6&i<6hgЎsY5u!F{b#Dt`Qz rRjY@3w꩒0x5d~@s)09ᦓ¤yJi.i6 [1ک P<_zC5J9ʼnIhihiRx/*8^^`Z kPzuge&t>zF%{z<Pj* g` ȺheyɗZT6x'u`i;ccjJxIS*oigp4y &fZ*hfN if`;g [#c۩KjlKNih;@`}9)~~3&,j*rPLflJ/^d>Xwi;6fh#Kjf`zpy" xZԶ(Dg=Zٲdz تŴ$ hw@zRg8i jk-hE"I@>#9>c4{`#y', Whf0zR:{?_d)dCK5zb*EP/Vf绰y(;[{#8;f~Zzx#;` [I |E \K/S!:˿iл?Q Zi0{fsE0ğ3k%"|RG>s6 :Cly hhC䃲N,K?n;Rכ?|LJKC yGpr\ "\MNj ru@<Įjv9U &kb:f~NƜ 3ZDMh2ߖ^IF0\^mIߦ]tnޝxgb^)FNnf0݊-Un.oASyjTyF>.*@ ~ຝ|0~X5@vmb-j䌬~^ԙ$Σte.ڬ숒t/!ݻ b?p.J.?;ٝ/?d4wC]/*wm{H(_.־,nsj?jlnU-54_ia|#=?_C Jчb ^h23S6y]_C@nOh̏lZu몡5&]_CJN۪mf4dodZ-Vp @̘)8Á(@ŋh4nh!BiXTrUddN";p$OMlPA4 "h`M: M&Fh& edɯi[yfxpМC9BEFh$@h@JWJ(p,IdȊ<4wgO<9I$_ʑQ@P|ȒMj(|sk8Pp9Ctݼoo){cS5 |U&Oǚ5/¯>;@( RӠ4n5; 3|B 4| A|b%0 ! [|"`>.k<'A5h$pAnArr ]1ã2Á*hq ’ 3 :2Ĭ<)p ؜%O3ȼs̰.ÆBd,'T'>n8':-點\B&VnK]@RJ(y`I}C]mub ]K5%MJ:b'`JITӟt.Y[5YIhdFu '}? iCu LAB'BAsd+>'`P,M';\-]M{P^xդEXI?4MDfIMYDgC u3EzX|&Lnx@*ɓS5ז5EbՐM9a)`PDY[ho}3DNa'd?@ ҺC%!mNf]0{lYRDtn瞹g%uax=J ae݉ץ@]ǻVw.}rzv_اOmtJ@{{}Yf]La0? NSh zF14wv;JeժW^gQ(6Q 6f= [ρW?$i1oz |Y̲'fbPjP GJWMOm\`_Ugu`__c[qijv%.7); G UGPM \Y gjsubkzs1I2V2n }.~ZZLYVqVw`^nprxZ1 {9ZR)RZ~}jbA711<)HYJR|wjrRLqmjʽJb,7< 4j ALmrzUjkz&-* %5-(/C}7jxkYQz$j![rdްeM|jwdE|D'*h@mӪ\鞨[/N~tE1VtzA5"c MFހlz,a1A'׉YWUအEWF A!Rgٌ5Hbq&x!*2E.X 5g!fPv'ʔe)%}CU(dT1׋1O; O# WgU5D-$ YhWKx@`'JɝElB@@aAP*f)aTX)jر)*'ϳlZw׫ҤA)2($H4;Ypؒ`T&xE߂ѸrnX+q)K@+گH xǯkP0 !0 7J R ,pK&[\ Ϛ˰/K, @3M`Pk-Aft`-d=ВzK?2'<ğ|B| F5s]'uȁ]UJn#.zw)M $0 -XG`A^c!⬷6㧱CwXܞ0?~ $$ ) m.}iUxo޲`sÓ@AM.XLo?.&;HfoKĦF.ɍo]bTw>jjG/j="Ƨ! d N=cM@ga%u.0 H=@ph4F3(5q\U6h-Nr` bn`hi:L"F*!p~< 1:guqb<ܦPDbcbWDGLIH#0*|E@!YZHba{H'(k_B,IG6LLjfJqJ'~Y aphfȘ4Iz$|-{bX'*/+e9C`R eĞuIG`Q2*?h@uqHЧTS{Q8ͩNw:Ȳ! X)Rx)r>'"+e)M97XͪVq I E T3yP'rPHr"lC-Jlx)$U##膑+@Q~!^U4}t' la0SUAURCds/:=Ih7[bv&iPp@@Z!k5XoG fϒC"[16hȩ&C!í<J xKwYզkY"e6:=@[rj yah;pXR9fFfoi{8Cц X/49+w9r&`m|!+oinjnKWc7]vkKNLaш@ڐ䱶>0 ej 8{lƔAU7G]pNwϥoX}5œfB gT#wM:_OFQLxw||e*r}] g@}:C仾n|C Έok0";T!d\Gw  @}ifm8+VN|ko1g14x{WWzjvFWq 5*>hFH)) &>{0}Do`aMdF> P`zzW fhq$;*PqN' [ XHbzG؈G,ɑNhXxg|Рk g0xK+WQ5ֳ*Rad2O^3 P LŇXNȆx4,XXI"0 1(ꘁqHW4Pl'a=ۈ]GߘR"+ksˆ`~hȌ;GSTjRQ"ŕ&ThYkuՉI294x0;IǒC89YP6y&k +X#Ry5Y0gghTi4Ph=+*CxpW P'X)PUX jw]F yFF)s#{A$CYtO`2 Npΰ y [yhdPufz|L`1?@hR4sٚxIٜ2 jr&Y|@-$1 hR+cl% y9I\ɕFhh_cvV㗡EteYzY9]72Е \FfI-*mh m@9ԙʡDifkdqfi|9IxeY=0B5 [W _J5fin6yf3aҙ֕E$maZdʝ[ 3 b$gs&nop݆IYP%;#sIIڣ>hW@y 3ڡc' mDgDRʝIhj@l:Fs~tew4') 6Jj 3i@:.O6:[h:t:k nw\x[Dzd]hp* 1Ob:yhynk@:g$g{8ʝBb򪯪z=24w;)ݚg0~ƕF#)WJg2dgT[ dFd6fY#֘ag :jKkcI`+Ý 2uc9ǖ7W˝)n|y`\ J l"Tt˝2GJm+ 5w9iPMD!ikX#iO&0Bz+\pF]D";8;d]jg0?'lg˺eokakhdvhX󷿻N+nF9BfBf8 ܳ$OKXӘ5Lgp±וkF0? K|&ܳWl6|~t<+[lG kFr gvFpǂCw,f [ &ńM"e]2`o,w^5Յ3[&ztu\w,wl~ >XlKXAqMօ28z \\hKȗڽwW<F\٦\)"]*(N #^bx0p3[WY(!mʐ}{)LA޽\'`B`BL&> d\yi Lͤ\QeN#BPl1(e,]}z΄UupVolJg@!]rbmxx #~2^VkJ!GjV? !{^Ej>.>ԏ7i*u딽^ ' }*>wK}q^Χ@9nlǖluc))Ֆ^mqd5, ȃDS3oPowӺ>/cBS]K}hޫGf˦e>$s +4D=\,.wY~l Sk~[>f>BK)LDdOZ72RM0\vkc|1JQD-DFBk;Bv߆^ v&(a*dO/kBnAθӞDOFLH:q [̀ʟjlSCLϸᶿJ>վĢD`΍"ONF 3L΄n;t.3jMZ@i*J`Th`tPב4u z=-֚NݑY7YX$E'} ?YdB Dc75u#^& {0w HqEPdΉN va;$D~֐YA֏NHYR:QND!%TB J jii]ƚ{jO aZYQI$jCkZ)cRZZ(f dK\ ֑L3&[D/zVC^;AzVEh0]f¤ ك$EF1w0~ j^GF}AV_sz([h8>}#7xCޝ?b>uE$ @Xpx @ dyS:*·Z/hCkGR\ƣ]EyD s   kT(XA`0n92OB+'ObqS' ApQ)ˆ>Q #v@}!ЧJx LhNDfv!:qF)#e(Y-jcp+] E#*p彎oES<)ŏK dg "@ 7}lz ~@k,l$*vvxͬZ~اo|]R Öܲ $g.WNtkrYXMٵ VD!F"%̄#1ikr_: zPN |''x+\oyR|BeBMjҀ;conecone_splash.jpg000077500000000000000000000053051263163240400406530ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1Aa"Qq2𑡱B#r3cRC !1AQ"2aqBRb#3 ?*b ySK]w[HXx鴵|d1'`V[K$P#56{|nS}#]L(~ڵnRTcI̚eÕg *Wz%'#c^/v9iŧBS'M:Kh¤-L{)$](\1ొ3Z8 5#3:iiՂ ɏ=7w뗶Tۢ҈?@d.y dIrd#s':(w{&sKH]:4ʝ%*)("}8 6((g=bGvc7yx \NuNpj F{;}6F# hh`E`;ݺ݁O#1k>*4"nXֳS6ҫn'KYӎYn^IEZ (?2 :SA+S[^FHPB9H c=iR `"'H蝵B\JvBb]+[۰8C"/wcG;@2~j ifIT;a"Ra0(+בZ`+Lux\IlH^L'{@a'3#kw!'?^NW E4#D)%1.qm#5]ó}yxkWk%-EMc[d[`-JcN%~<yY+qn[ck8X]-kWN77esYiv8ɽ]Je=eJ"J3b4wViuԍk\F kBi]6(ၜR\bbzJO+#P#V3% eK$#L`~4hѰ#Z_K^HժH3 mV5ki) b!YKWEUNMTD-%Og۶*лϷ=Gh_~/L"mYE2o5c\mntZ(͏,F|^JV9ڝ%Լ^QEA+jj8}O (?copterbomber_scr1.gif000077500000000000000000000153661263163240400411200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89ah@K.LlmmJJJq..-<) ^TT))4䝬LS4ck-V=~4.8pIo'QJ+S|*ě,^蒯_EQHԒKt)O"Yr83g*%TM(ȟ?i=ԬH -@-:kӾqlUU*$.pf;\>8tɤQ&h 2 eJtrYai餟g)%-$^r^UBLz ehV:fIRy1ZZ'P^Z韪J)c9v uHx®Z$.؂ )+En90܊kۧB mGr>ll -Vnn*mºYq6]/YۨhӈG(«,4m/$%V*h*lrjm6{J.s೓c.| 0'njL0 pGUd2X{f–*\3Yќ6-,A=̘ K4%% .xx),ʯմrLEI$>žЎ-.Iܲ;+Gb 砇|sn>븨5h%onâ~Kr[̲Lɿ3{7k*S[@mE蕽cJo-фni7MB~HAG>&ڷ1QB"%/o& [GxV>.@[h±D `"I5BX$H2ɭ)HW!Tĉ @qL*ԕXXEaAF!%(5{dj3nzWJE6 U; ?VbQx\#'Gq sr $p%aX7iv/eěuhk~d#Ouv^z*X~F7|FxGdJׄL7lHgk5%E+'[*~|r8d,'`acHp{NW/prHd\H|vyhp1pg0tM^W}HgZ-pwwu#{ng׷rچKA(ot^m6}+~N J;#@@(èܛ]ȷbÿ<|ڪHٴ=ٹ x\3R"Md\ᑋЍ_|װ'ⴽqL{m2γ۴\D+P-霧*mαqm >>{q+]y [޼:Ǡ|њ\,=MƋ}\1{V+$]1-`M{sKlG_ͧB|֞PMV20^L*Lҭ+r?&_=̱L|5-<~-֋ȎA+ژ_]'+0,%ȨM|]% jM;lQELSM.eogl^}{-ηzL[?s 50f2% V3ɂL̒@LL)92GmVRm?VgǞJ^M’$_2  ddl^RGNNL{,{M"2&QPX&AMJFPSX_\]eY8첃KۓL^X^xKM޻Z3XrR؈s:1V^{+8 ݠS̵r0l[^d\U2 SmD c$~Vem@$DQKk~SY+VВzY7!0,L he8Pɣu‰g GvFNۗהi+m `$h)7pz#=Ʊ=|"z =bDHDm &@FQFp Fhp"4H"ia w1[K-FfN,P0/Q4ռI'T&:SOdpRY Δ v;copterbomber_scr2.gif000077500000000000000000000153461263163240400411170ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aS48,L &h@lmmll7JJJ00$o^@@4LJck-V=~4*082aɃ&ITɇMEY.Q5@-D2!іN; 0aJ I5Ub:=r{X5 *2BfEVZg˩=k.-:T',ӽi9y)Oࢥml]7]k]ݻ 'm?u>nPAjoѽvZvmt^?ZQ6sfeO ӼH+G u X+zkӣ_47͔y5`d: {}sx՘ Pc-{&^PMv!xJ}F4`w$VZ (9| 9!Lr裏ՀbiԂ 0#, M> eN~ЂV7^?v饂3d58N29Sf |PQ-=ۖ| &eBpf8P"ڦT~܅gU{V %ৃc>PCRi3)UP@A^҉If lR*&7 {eBJ%D+(p*©B i,EvڲjI஻R` X ,ق sGBy>TlԲӆV@(@fmLv H_'0ܮP)ĚJL6ؠjsz.420/$\%XlԻؐ ؇f +,͍`ZMRk.W]C0J/8UCpRMEpɑd7rv3Z1] ]=sN>,K)mܘhI4`>/7ly_n< ;1&pW <9{ƛ.6*2jq=&L 3<byxA@ѝ9 ox忱i+Q+Ƹ$7JԳt܍s`5}Y8`& MۀGpj 3&6o-h - B ݢ8- -}H9Do氝 '^6 K~П?+H4}`_&O7jԭ~aβAci=v{ w@~QgHz 7nR.o~@xS hl^TL(N1 (\Ws;4֢5mK\_.a3].@~h:0 /VI'.qiOPoxŐv5SM8K"ku˜?ݯ)j_.ە 1?kow;wswюVw!Ⲙޤ2aqkhLt MP\/xNrvxnq ښծk0N[И]n@NlnDm;3\y-h;}~Û(>yёN@oRӟ=)qroOgNFWJkg0\9A{cG: a>#6<;v{+^_jHߦs{ow%Ô9y?A;ntwO~i4<|P^po' M3O?oF8wJs}_z'{G}ibw}FB-ePJRfymwfH [2?m6~Wh~7n@g~㖀RgEs*hw{j  r#Wu(6{J׃,VnvDp @j. 1kPd`8'Tx%^Y$_'p<ׂ[H}W~?k%){HsJؔyOW%ɧY+Iy] _ A(+ɒdoӶU_h/r9xHh$07)&^ɔiؒ6%~~)u9~ji9ٕ2ty9YyYy薽Y Yxgiəظ_؜IyIɚ){I~(霊ɒɞYȕw꩝Ʃɝ*Z * :z jJJ\y:9$ʡ',ڢ2:.ڟ 4:<ڣ>@B:DZFzHJLڤNPTZVzXZ\ڥ^\H fzhjlڦZ30vzxzpzjI:f* y*tZ:^zHXJJJzn:ڪWꌉHXJzFxFh+ ^ZzJlhl(Rк05 ^ƚmJ:Hdʬ @ p+hJl jz ʮ:^)bjaثڮ:^/2@HgJ*2 2P[`z)a].-[\`4[뷲 n5۳Uj?!qꎈ +ʯ[ 0*J+ @֫/ *XC; fz@&+fʯwŠ @3 ˯}r{ve[ZHl^ @{!++Z z0xKlt*eطDeX 3 [U;k { +cX 2Pjhk#{꫷0˽kP+JJ i+k)ۿ#+[Jb8 ))U{L{ pZA +뱖K+blP+2+4 -P k:5X3HUO"N/=B. 1@l=;n],ۮm}߇i -熍%ڇi^uS>$W?%FE]im_8扽6ꑾ>%)h~ܜmҫN=߹Ng൮zip0^EӘn Dm^m,b}u ~C䡎p]qah~ʞ; =ϖ$% #x 6o^.E/I<T_VeX\\^b? d}A@l]m?{OU,]*<jw}.ώ_xnχGj΃_n,`ܜ,O?vPs؝Ɵoϗ0NkOs?o)ߪ^8~{rQ_|+_=loԉo-ϳyZt*퐻P<":&ͪɼH\1Xw'is^oygĜ  銒 @ؐ:-@Nܸ0 )-]5(Mq/<gW uXNTSO<fݰJؿvҳʐ UR.ʠ&ad,s S7 X|ǢA81 =Z)ᐓ[Xh>4Ȍᘊ,JK#:6OY0!E,5AITԜa=vjZJiLeف+IT aKaKaŏ!G.L4S墀% ,=Ɍ+t> 5hүk[(w+pn1LcϾ~ZqU0).W [;TgF |z"ߴ_)]G޹{/ʲE0b(3NӬ ʤP]> Ic@"0I.9ʊW$ˆ$ :6udHQ $@&OT&+prS@5ءDж쌳@8bC<6jGx[G`Ӣ3mIOˤ +BsJ( PDPtG)}T,QK iA.b`:$T\|i=m>Nu-YiLJ%RyLN1G9o'e픈تUPA# )-zK9;!n/K˱@DLˇHxSrP U ((WJ!Wa)I}bJ2f%S0κZess#6XW-SH2 L{&xS|=j1E5,\QYufpC-bzi,M, ̰wR,]! F]pV+.ƣD툗T{K.z30Qp^2ʡ=@)1\9A]I/QO]Yoa]iq]y߁^/y;copterbomber_scr3.gif000077500000000000000000000146361263163240400411210ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a50h.LS4lmmJJJI-Nh@...qoo9TT))]4LJF둻ck-V=~4.082aɃ&ITɇMEY.Q5@-D2!іNU:0KRќ^iEs罫 BҲТC@m[oE.4BP',ӽi9u ϱ⮝kvqqG. ]ݻ 'm?u>pXpbjoѽvZjIgv۲j9si^[<6tЭCǞt} ڕY*5c6z}oǿ?xE՘ Pb){&^P va}J!n4`w$V@B:%3ΆPu{ɵW;x 1b%@d"dJI Yh7h AY$D2)^@BEǀoTWj9*p$_&w6IB 'rWTihr:dv.瘐z &O j S&։3t2Z撒BgM%³)'c% `k9FNf- CjJѫV:8L J箼%a!ˣ3HKXu`֖ENKmZ^SV""'4'ڮ M=I5ӽ@%Za6y`j ImfCf17gi >7aQ07AΧ,r#E%UkZK&-wjZ(wON\e3J+ڍ>#NfBeDOv@+,Izn:.gD.> voU V08a@0τ>c H"q+! GSa4T뙒Ļ@`(FK C`#b)?χbU0"|dFؽ6&(HIQ d tP )2XU62%(Ơgt"DŽGB򕡌% Dj(^t1 "44+a)83e3Yi昊H(f#kc2 d l3Mڱ]ʦ>$1S ( }D0esό$.h7At PYvUҋ6֯` CQhs R}n#GԐ*y͖^bLsy$:|gOH0@e:8TH)@@6kԤڲD ggFգ\Nf&8 ܢ9x>iֵ-H&W>) J٪^`* U&]S` 4H4JdJ͏N,:k*F8EJI33ӻTQP-ns˂j|Z,;[St*bɨj.vCIUr7{ed}0I-o+1RWԝʅC [1XF3P^@Z@U^mo=;^u}g!`L-pd'k UE9hPF-qƤeMK&;ٝ ޕ(cθ-0GL8id d!{Kb2T&;O^R΄< 2@^u0u2 Oe)M`-NialQ5O68My2ZSegy#J'/P+7zӳ6Uhn$( WJWѻ'#M5GkJYEL^fF 6< -iZpBZk7ۘ;}Gc9Ns$ Nxcik'V8o38m ]~qI^f<-{JN;q\qHw}$W-WjgN387,$X"wh\S?^hUu"<5'Aԩ^:]) upNƫDoa(vU:rۣ>3VENֲ"-" wP$G]-O/[_\"(Fi;j(k>}sٟa[ 7{m>}O˾O}y?pZT4}3_8~zpo`'s!g{ d/5,opW~7'~wXyvs$NaR-p7yȁvsm8 "%hm%e%*8 WBgbkR巁4LuFs&)2,E V(v䧃~'jh {^Ԓ*&_}g } ׁ^0 0pp+שM 0 L}\3|{0M6,OK= a}f]6}ƾ ̈́,NȲoN6@M~M6޳^2gM}]خ< NMNNʾ;4Ϋ,{.%?\.pٛ|Ƒ~$+393_ТTh ;<>6;`mao7>0۷N30-| U?޸cSd/ m;pڃ=7=z?  O6͠g#OQR-NՒl޼ܠ]`͏ Oz=y{Md.f׺on.|%| n_.OO9p8<Ò ~[ٯK2Y2&/^H\t(PA"J!Sپ ZIШ$ ]}₰;/e묟-4h1tI'蜀śQ& :fh dɓ|9=w5ަA$VU 3x5PÏ4 7p{|BH>=z^Hn[VSms7\D~ܧ'a2j6|87)ѫS 5^% . s#0ƺ& p6e,DD/(xaM;$ŋRxN#üU|-? #R"& ИŊB!/ (RJ-@: oC.k&R 7b:)*͌8eLiȑAL 3 MTQ' hG!TI)K1TM9OA UQI-SQMUUYmWaUYi[qU]y_ V[;copterbomber_splash.jpg000077500000000000000000000064241263163240400415500ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky!Adobed $$-##-*#""#*8000008B;;;;;;BBBBBBBBBBBBBBBBBBBBBBBBBBBBB##1##1@1''1@B@<0<@BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBvd"!1"#23!1AQaq"2BRbr#3C s !1A"Qaq2BRb#3 _" KGf!&U0j8m?MܬԞ]Q{-G>^&Of 14׭=]ۨmDؘl"U̼͸=RlVɦi n0ݲl:'Cf|n[5zf&dNaL9\׮hw4o&VRTc)?Q1k jݯվ6S>Nٵ,bFۅ3xE\^YQ :4%6_ ޒVIi_r !j̯_gJ}_UhiOYd\8896-[ ZkjSeFa_G6wysvkϲ;$Tvb|gRn挽ҵb_Л` +I %H6UMKKOe.(N]_Z`3nC?j]ֵ7>oaN%:3/e J6LjZb5)>l+f_}$f*l.l>DžYmyq|\)o 3?o5?F*5nR q;a뾘(NEP*<)>cUZm&5軩&[ODٺC]RE &dܩ !ȶ`FQ4Ԭ 6Օ4Kz3A ۀ9EB%_Qw؟ǧe)&/EÇfwӆׂX/,y?R«(;CqzUW[K*G<P?<)F[XPƹRT!Od$2@l`L*ך\kU޵|(珪z Z)uE6ѭrd:7eeZWfq04sZ$&b}hr:旵MH[6 BСҭ;+~m2 RoX*/rV<5|GRwAvwبyWXx+} 7Q4sѠ5@Aѣt\0TŞ_3g|* 66RW~5`w$Rp*JаJ3$\n.U'h l-zkCjL8&G? xAcUc 9V{`;ъwvG։P %P'5&T۴tk 9\mqݷh*Lzk>s,&!g NnKm+:[&̚h0AExeu@-O] .SxMWa]90 0p Ar5&ZFP,.iW$6sXWVz9V 47 )gPa<^VQbx|6M^r xrca@$H̥8|Wā:H0hOZŨbtq16V }L6&!/dap@ 7``ݡ,D <[P#OB& 9! 0@2g@C@pR OC; O=a2T@Xt8LK= #aHCڑ,cj!'`=X\ (ǚr#C Ļ.(N// `N cӧB`xCX/;f"T>m`~DdyO 0"0*l⦬@N?S+bC >'J %!ziMӝԧ?K:3s tع&6LVu TeFvX83R-015z ea6ya; W =wZ4{ڔYY!J SVX{$ T6˦&A9(fZ;@-Ҋ9/):E*430Ƕ3B\+(iI$ЛTm 4UA2pyM$pSQ4x8u0v|=*U#7/hQ8C{T|( !@B\Qx>8 ;Fe#2}YadD %Tĥ0쁞= 4P21\/W U!*m hOGw\J4b~%؀l%l .<ұ@ߖ+Mel duNg p`Jh0])LW#AXE GH@>y- p.*RMlL+q@ yzt6hhSY_y֗@WzBp2v胩%:1ەcZxet زPn $:y@ W[r+I(iJ35Vms)k|r[9 7)_"fFS \jnhG &0k#䜰B-|x;4)0fdz)/{ Ͻ+J`ij: QW-V*5lIPX//$gd z8q+ty؏'{+n ;qG˹+}>S=mc_=CmLC3AqvE{ Tڔz'HVi|gvnj`}I@nlFlHg|&r'an}FmFׂrL@Qi]kpzxx@'{)Njj_{rVn nsŖt)d|Hg}(pYi∔Qq7ٍEyzjTk|c6f*gXidy֝7?džyLչ dԉ ?YM} RY)cYpmpI0M8xrXfs.)Y^ɏyuW#g)Ǟe/lQf-ZiȞ֙Q6ʓP?7^Ry/VNڢvx>:mx.0YuNx'g';y'\l hXk(ygǜ^ʈ;*Wy}:LEiʢ՟}Ƈs6i)gtDȣnɩ3XFwYF YYl|SjǤvDzP`wQwǫ} š:ĊWfڬi5JweT}vXH0yIPFXvuJ6$8ʇW3`w**XJIe<:^0pF䪟Yzz8Zldd۪{v N y`rFjܺTбzȓ_yGe"/AlYqYUrLݺhLj 8k2 ytwUքk;sq;zuL=l:W\j G†iudˤ@{S)gXXWX؍G:p /䚓l+EAW{[d7Dj}xhF۹vh+nɴ9Xּ m+ Dalg;;Px]&|Gy9ciKF6y p;wʵUW@;{+yY`$5Xފi]k+yB{\+lnr.WfwQ\Ü(qgv6\[egdU{,ܢڳ(eX)2^J!:{k%/FۉKaW 駀ZHŕ.g+,fxۙo~f$ pOWe`;[7;+XQLٱn ˛(~llS):]sbQrBjF3 h{NXeHn{-!?x >f?^Yˏ c*J6SO5\Vpsٹ 5i_<ک&O}9h?f]&5P5dar}x1x O>~zLFQ+!őމX&YyDHzyJlg  *YCe ~ FbZ[kU0J5hw؉7VdTy0qL<'Rgΰ~pEڴe&m.{coɆ%B0Xԟgs[. 4l: {va@E#NzX{uz&p8NǒT2hNlD>1&8M,Lijip<g@Wutd6|48h8`|xH^hPdY,5&]E~Dd`@z=-ruq64`p8;la4044T`xLmwvnh`m vn86jh Cf(RԜXɱr$V(6[,T ϟ>Mه-CLKb ɕLVd 8Wh@ad" ;(QĊ#M!Kl1·r \rx+0 m"!S ~КP[UnajD__6W;cqjIH-i Y1NxCI|, M]xۀ`;AβKcɁԨ q/nGH?,5j,Då?Ȑ x! iKppz9 nXA[.NT0Fք FG`*70q]d#n$@I BN8PQd>\ F<5ƀR8&;"HWS,AXKfȀ ldPQ\#I~pV gp;@_* <ˢ߅l@ %x >"ݧoe\[L @| |B Bl;톋dÇO"1?~kjZĀDvn !JZ҈KuFi4@"O+d@Upj^G"KDF>a>vHlmk\UE*hF3:ڀ3 ?y  i`'θN[:8xST2gR NIE218x9ujEq#9 Sxj@rxcZaXoP'GSm@|(VXLc(G6*d&.It|@@&zn^U8*\ , ijgtfTY z͕1:U> Y#(E %[-)XF/X&*ӅG%U\3Y4\,Z% hiߒծHXOĶ, !nU? S)SYT\uxȂN'bSjȂS8Ebٲ.mQTA6EkIjв=&w:_P2F˔fwPXN 0#5ȫY8،JZ5~ZLeKRwZVIiX ݬ5 75´ A66@s9+0 B"խ"8v FmB]YR@8bTK5b:6qu ߷ U(k 0Vvw ΀|2Vvݴ!4q {1:`ws;pGi՞]'{ 3bvg fWydKIqmt v;drunkman_scr2.gif000077500000000000000000000216661263163240400402550ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a3,ўgpR\K"ʗk hbXb$$ƹşaʵ`=}m R6A q(1yaޭ!,`dihxt,[U[͂Ȥrl"E0Yq G_pctϫzn:ݼOvpADqq , u8Vx|}~B:EJ )4R379=CA * %SW|x_dp˭в1 Bـ\{|l.]-\b0a*U4.@jhՃ\z~a 16a4XFLC2a鳧.= 3YT[A<*١M\e3(AvYRf&:%v!l %8t Gzb -m ڈjy:$td`\/>b5GLPerYSb2ݖ16[W+|G4 6=o=H & ٗZ2"9|uaK≏M> ,LGN` L M%2h 0@wV_u83X*Μ6z>0.Q@tUx3@ Y~ѓnd1 *&@ HVU vxi*yT4L-06qS<C̅ŎzUh]B(BFjO^CpF&yfQYe $`\{C@#d^BTqC>@6\\lB9+^a,`|U;>sԫWP6b!@#u6_{U`K;*(Y9sf6FD)y&pſ`ܝxuB, 1a %Jr:x1Sqc덿@]f7@i( /RII1A_,PLizc, 9P ׽?fF>BBo V\ 'x`b ƝD1t2@|zv"pD36o}!]v 9@H!uѱ`4'b.L(  D͚h `8٪iGx9@wyfտloфѾHPtTU u`Y/1sw6Ǫ;z?Tls}t=c=zAKq a/* pp̏*CXFֳ ]UL! Whbm7cx$ q$6PALPƷ8pzTv:(B +ݵDqqtx) [ghpfxQE0asK70F2Bqd?=( &ckv 2q[t` c\rz]:hوЁ?lJ8s؆6%u J}[F<%$Qt l 7sE-R .pƪٴC#7'&A*2CٯἙ%cxR\[営حc ;Y@[o "SE/dsE;⨠V"+M7Pps5kEf? }a?0',Eب&S2;5+غ֞I 6W&$SQyJl sݍtZ)ň "\Wr_Fn@ hk&& z[Ƃ*B~jE1g~CPs%eѳ/BSP@}2 d" RT)9:ʳˁs̄da`U[>mKAt$O.OLptOz'Վg—nM 8`  \]&dF2YzmajjWN9.-#bˑ)wR!׷y`@xAFځ0J*v&0ǔL/p[52n:JEQ'qʗ¸gxtնv*K" 65+QgVg΁t_T-8ȶȄGL#)䰅$'63+2gNR<= k{X%ͱqE _#[9>S|}F%jiբfbyT2؞skd>P  ħH)aSڝnǬ+!G{ҚZOCqWSӴ 6=mʜ SN~.8\0 xNHi [428c2;lNjeiTNp1=q+iigf3Ui/:4f|-UI)jN3`a*EeqDdyB6`p!D>8FaP{FY4u81H!{7+7;NS+P+8B2lV06/D4<5gR&vR|'ETF8S%BQ>HVIu3( +_iJv|N r 0#c=`>]Ĉ&0gTXV~R^ tRYFA0 _!)]JQ#C:O2}}XtVxƃiv2 |CWZNm920Y@4F#VrmL"{Slnߒ#<{Pt9| t.%ȉ"S4fvTBٓ3D98#iו{Y;*ДKX1c@P]6#`8B)W,MC, .MMoQPiQiäY8T9ae>UyaU 0^=9`fi\xR_9fI6P,Ƙ7́  PU"Д0`$!PyPQ zCy+~L.YygI Kٔ ™w)!R ٜ8>ԙB 2 `PYcz`qy7'cJ y):Q;UȱUI  ty` P5Ac?Jx|S I)i*j. jZj p٥Y \U=աXI0&#o@b #  Pq~@ZAHK_Iz9JЖp6)caCdʸuʧɞX:ZI!LtWgW:KE4L P٠8 I}JP u)*ؓi/UTa4ȧ HPZy#wеaq*9 js*Xsc PT<LJFӧb] H8`lVOɡ"ivg82 .D&My$aE>U;z;MDLM^Y*{ w&߻s#|V.ߊQK#a#seg8BN Q?TA#L#^فx< :V:)(;Tt]쌉h7ld7zfP+x3,za;9N֎P[[*m 73?J>L}4jO_}DnrtKNmINj81$հ -m$uYԎs^WJj9mkENKf!O-"Rn0|ZUPzז%=7{&eRd轒&[TZߋ^ou(^hg=TZeޞeUPI\ùߧ[[HQQͻK/\uL.5j@`S1+XAPم92 ?UR?ޠdN LeP<n~mT,SYT>8οU Ы n8RUcMLt5׹Oy >l_P='0 ZmXbD !QQHD$mzDLXXAC,=UT~ "xhh YY1qF hL!eem} ]IPiE&+'><8T88f8nDdF~+mpVFvXazӾ٥ 2g@<"35J4d԰6dHeCQ>̕:EH@Uz! ,7yE玄 *{СD9Xh¶4:#dKF^)+[血X.d/`,J8tv jHTT5 #;a`x)ģSMY$Q+ZN[,zn~-D1R; t jԎWMeBRUWbl6t-9KÃw5F0t(a"/F?r&(ylk̫ͣ˗-HA\UZ48Q*Uc(UIݰS *)d#M1# \lmG4'TC"8b]RBRXrAF4zZ |,i6Z`4P^Ed1AC zA}lãCݙPxbCz@<fՅahnhV\1fdݓ.C6h&\'CM̜;g-@]^{"!8A Zʖ+qЊ[Ǎ&e1c5rP:6cP8R@$Xȓد9qa8A(|Wү{+}劗\db-  ]zǎPψ3PTI &1%{vIJ˪ ZeaKn׈$0fCmp"W>.1k. q$_W0U"r-چ1+. iΌ } }}3R͇]k &r(9@ߔh0ԑE7V>ÈZrƀ>l l$q^d׾](+"W}c?{!022UjVŇ(1@yq]L0^!%q?>ޘ,CÜ`ƾ# Σ7د\Vl@?9JRp}Q(1!r1 ]ii81C͖h&0T"Ҽg; e8Z"&0 q\ЀpLRIp(/s.BTAγl:(_P80F/1bܢЀa p$U;R`Nc,dHR4#պr`y>+mECC_J$%fR{,A}郥`.qqbd}N_ZҒq @R~ Fٲ$K>CfHa[r3T';IFIӌOHn7+#֐q|XjOfFlqՌHvgTô *N{qy EMC(E.T:](mèBщLYԹ/DdvPAL5Gu!'t,IN1(HॕJaMm-A wZ(QYS`dAD'HP$lĆ_}Ye EH^" e&̳"Pz*T/`hΚ #?m$W"n؝ x ^]z˼qU?6GxWi%F#ٟH/Pa#_23OK^ux Q _z"Ӕjq!$ ؈Xb$A`T `R$Cmǩ67OD]߹e5%Xևf&rHؽ+hy&/; hR29',b"Qv :>_@@L'^BHxah;#yi|x,%)ȱ1Ѐx#Zs?B nN`yfBcрOJ.1pj; 9Tdj텾晷 O?AKe\}钱|;)gP{B:uz{߳@1=F<ľn 8"P{p?;{zuNHT_2خx AN~aIOO(Iw퓆 GH^6DņmM}Y*}x͛mVE!<51Et֘N;|]d@bX]۵Z d&ZMYka9:I5y@F̕m<BiB ]Ġ] ]%@\ڄ_AiT dI_d@8Ix1Xɚxéރ虑N ۽mmaeAXW> 4h@zIE"&p A4JY#6 j$ tBT(FFP7\^AĕM%5#| @dA&4@B~@B&1 2d<C.Py:*(>.WXI꣤I`\9)?_MM^FA(NOdQf@XOAĆ#cGj ! y]BYax^&$ge[[$OT*$d\R& %RF%`ۛ "C9'cccBcNC\B^&ae*NeeOZ^Qg55a8` L* 1Nm[ 5*&n1hNLYY5۝r~h&RvGl,Y& `@&4j˯ hY&e"'PpfDgD|1݀Waէ-@3'ƅ~HY 5 窡j\4J(fڅbhjrhzZ;drunkman_scr3.gif000077500000000000000000000167471263163240400402620ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aiѯ! vRYĴ QRamlO6)Z>~섅>7ލ !,`dihl{HQ<^ 0))>$rlP)T\& :x| cuY;v{]`vx@E$2;>>129]8+fH 4;< b|\8_^<##>B}83\]|ک01ӱ<)ܤ97TJؗd 5A4I{ f)~ ԇQXd*"ɫ'oڽ|%_ 8)v TB1(5~(&~7i闖`ȅt'CIDHNƫ$) s4-hYQ$O6fQu+dJ#xo_$'^( Y"w%2-<尰otZ k*MU;4Yy眡 !orw$G~4آaƠDbYr&*N2 x%M:dc_p4),3EA!=@@8v"[Wa%Ո4Ӽrmh"di=@9pK(HM{471Qt~Y`A{" nN@M9e-Q#jcM4⧁TA~a`iB G#~-E2ꂀ/()C0d*H"HSc5R⁡8c\0i(Jqibhk]jHFJ7 *{yjaH9:q(I#'*>#8*Y hV$(U1$cq(H)0,^""W! oWq,$D(νL vJPW &,+kP :ʚE Oxd`{@0\AUd1'm!:V፺͒_8v v 3$mfa_uu HzPp#Y}=Epž]W+P*K7 9C@*A#A|[O@A>ŀjIHJ]o@/?LZk]٤ k RQ.n *3>3J0y ..$?X\ ܑ80C5pAU D9-d  D"^ʈC+!(` EPTʁ <ӠD>eepThKDaDZ r+[DlwC 8>YE;@Г/ wYj5uQ XG]/է8(\$LQ% XJG!`*iK)|a8  `E+Y  \ۈ\ ϔeYM\z4Ћ|?X7Yas HҒe,(`'w1"Vs,rAJ &l\GX@J4jB,sy-An4`@rEN npv[֥8f}3`ϛ[0"!nWy˫5' :qCbtn"$^B$AT M]W@3Dͨ 6Eőu_"4 h` N*`ܤZU8N`kXr*ذ  kb]mzWɫ$R.(&>/xDS/0G!_r.`˝b h opEQ%s(ȡJUr5Ht_+/A- PU߲ѣuDU7^IC) 3qny˅Cmy Vѯ($4rl\ xJU0 Xix2kX5x"NmhN`բYA6 sp 4@ ж`K[I5g[l0r(6bȁ@$pFW~hcHֵsb n 55P Hy!ωJMpM ^y GQ׾.;R`7Ͷ%T? Oazg!ˋO"aޙh, x~ם^_T1!L}fbb+n_;${ ݺh2.2jȇ//SnANɣ*\Tzym)K#m"[ͬ72rQ)w;О5~o ]O~~K5@~@rVyh]jg] S)?2OSJ~as(yyS{tg]D5& E!2r"k` sP]wA~`dP2<*r9w,m0ELd@pS]uW s6x#^pgă>hL%XiR?gxDpdx pipwC_M.~hyZągC]ĉ~v Pe8s0u2fD+ qzXr*W?3w- `iy`] $qôLxt& p8qE׊n1mk=.$h\.'{wwS'$P5k0A#n2&BHD]Xi]tkX|8pw7=2+;`QEC腩"b؈'iy5Iw<4yICIW f$^dgI8s''lipDy\Y dwI nw7~i(Th-"Au)R;^g]gIjwj1$ҘՐ*0nؤXu9Y`tͩyR9 nK).֕CTUt٨]jw痾=9B7 ȏj0(H(0SYw~{OCdE fC /}x;* %!iÏyoꟳ3צ4 lI>/Uئ\Eȧy72Xvƫ #y}zkާyAzOl:,h  xz UTgyۡ{vGgig8ʦk J ұz.X2wW89uPp`${K:;nFHZ .dyl{Mk9_1 l5mïȏJEȵ^yE |MYkZwɶ_qaC6ڱ᪊k'uE{M NY7?! Ī0IZKiHXKcۖ S9/t' ŠH਷]۳mh9 Ng CJgM(nFhpMIpػ‘#M;{j9{(xw5z wi(KAjZ׾6 z*kSDԨ{e:/HHj}d(g*WyÄȷt{ږ t8n 0A!1jw[M@H?XgH+A:nj3r?t{ۤh؄LZk< |g]i@֋L?hgHcKMСrLph3 𲒌G\?M?Jp!exwM Ӕ{c 0 a R,k\?eh`[]Lir??iH3-E.1T ;ۯB+jjΨ¨;8`n2 |={̂XsĵꂬllJ1"JgڳvGgJ]\ak`b2?z[=s60?ȱM(*. c*X^zд; ye$G6;]Ҵ Pp$}lNGHDXRLq2Kڗ+?ჸyQR]‡\m.Ƿ\J&؉JS~|۵xe(\n|c>uW­.nEߪAS8R{F<{|N#NGNsnPnvnxOeZuSoC3 y*LX1HZnV8.= Kj⧨^wT\ȨO ZH6s% e]ʠx]> TL6=ܾoUe.j6B K){]<΋4t $S0o10Elq:>𼗼[ڵhB5[g6[354$o.(IpjrF;7Nzm~PX;S0^r# ZD˞ fX%;1Nm[:HR*Q)]S:#Y 9L(YE22u3M.++u$R1O[+o7El Jy9p{x"w#Q nswO խܭ=C!DXHg@e,(D S!( >1eA$ Vtc^FH3ޥK-wB@A>4XiA9.a=cfԸC7݃Vt40zbF 8@ခ "_Yh8%4\h2n MI"̷S"N3y@)A (c2ԪTk w0d?]``oϾs7(L D V/3'=u^ܷK ).0gn`py>v-Lp_ӷhrQح){eqeXƟsQ`qn]sAwb^ɵJ^]l4vrY@06Fd eA=k%XZ~pAAȞ(nQOj U矅Gh*M9kDyjX~`d|AihXbElw6F ٩U)9鏒7UW)68^uD^`bURzNfVY 9t2[)v\y:wY`A{7DeѥkձXz4ؖvԾUf{Dj\쪩VX]WFcPLTbk!p@UlpR܄LL j nmW}]0G Wߥ 5r;qr"ܰ\͟QVӆΜZ]RMPZi{z>e@BGKt;\uUƱSkGXٮQE Voq-Ƨ;a;:e*@܍x-*xױ~ @k?@܌q`澘"sՔ"5JwL a*ӊ۲FAr Z}m[@3 *D ןKy *C Ƈ`tU%+{qs}#lHh##06g^& h :TlF>91N# j0)ğ LpTjV'kǫ*+(BR 0qDPgMaPjEfdjz| WQd+ O #,S lbkc Y_t\cvF3TP /,%~*Nh&yr?$ H`P`T'[ܺNNnV4 C-oxsZ(@>bEwM/~Pi9rɥL.c)T"Fw<`3|Zb `e"Z>>>Nv JS'0g@.YoFAQ%)8Xӧn |4 BWͦa@6,Bp,f9p@UhճYݪd>vQG^̣ʣfc: xp۔ߊֳEgR-Ұ#v$dPY>t(RX7 `8JB{̦ l"]jg<bQxړM)p|% m/Րv֜k KSh;drunkman_splash.jpg000077500000000000000000000146601263163240400407050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFHHC     C   cd  XݼL\%«(g؈=4矛Ⱦp5^SȱԋCl 4U>]ڰJEUc"KcΛyR8RR&B@!KYS&X v3 dGYKQ)|Ise⡧׺cI+$5ĻSPv̳ a8Rb|"ZO'K V%aRj-&p[bt=,h"_3 EX"{+֔k6tp"]uZzTQ`k/"eYʵ~%SfZV;wuuPT'qo%+0'ղC-MZ D\Ʊ 9])t9Aҥ|4#`/o`*E`ʭg1 N+fQqCpxL1PUT u'S>WN?ςpVn~@YWGE]'u}| +< 9TkS7irUw3?*g3%sKWe.M;WAF9p^!=kY/ÔUo6BPeWMǵoi*y7tCFjD]M.ݽu$riBq†aZqTZ)N%Z[kK]$\r酱]SB%ITaT1*ҟ3(j*+–G~Tẃ@QɔhostV+|n/Uȭ*G#4.WvUM qsSX].Y i$O#c u\:X9ԯT)Ê>p 0EDhaU PU1rm)UuIT)!"1 #A2Q$35?]#9YM]/7 bet| jWG[Xlij&e-Kw(ϫ{[55b j:|X*^e 3BRJߩE]mv6OLӶSV?SvϡZ%gzxݘ=^ӷ8 ʃį4VGc33Ue+!87]atUڡ~ f,>PQw7|WWN~ߑ>Ls̭7h0!vM n)өA4aBŽKuW"N`Ժ/uQ_R%iҿr5 9v%tT2gl2"3X^k#e$9BM)cyV"ļ =  !"1AQ#2BRacqr Cb$3Ss?_7΂;9zHgE*Q}XW-$S:tY0JúפYv׮:M˿%[}Li3Q\M*pȦ 4ziX)\88o Jܖ)SΖ!y Qюkiy>"/mGuW^  w0o6mSywl  5TMZ^ ֭#V>ϕ*ҏ֋5'aȊgѣ'n~j&3͊Zqks 0# *њxS &gZA[($JP?Z; LRx~[9W6iy7ժ!|˽;I%g3$-E{Uq5$b߭O1]pgߊ PG&v-q"G3[nYFFj=:zVUڝ+"ktIc#x}Wkt @UP6jBNW)ip$.֡Kqʽp][[=Zu2{F5H]2m$-DٟxԉFZ1ۨ)Gcx$p u'8QmMȵ^ ۫Ŭ>pG>1TiZdhKPA:9bXv2{#\VŷY|kt!Վ2H2N8ʒf6:jW\-گXA8# OuGQ93Km*7mհQ N~O&!1AQaq ?!Gm-U1`C>Pc7,l.Ԗi~cwyoxs (ǸP1hQZeZ ͣV f.PeJX;ݍ0m( 5p6P 3Ⱥsl&Mk}c80"իiԿ9.(ȞiF+X?P}͛2 ; Wx51}fc_ih7-8;JH>6*W,WgBr94$F٭|+|KoMGK?r2&Z^哥@| t3-z3O/D-6qKAg(#Q@/QzLW S Mمo kyϐL\PT_3bVո[`siL_0s&|٩)krKҸ( ǡ)|51y%]6m.7qVC!Q8 ֮O.2/(4))G'Bݳ_21&0,w; {XLnM}|39c+ (4̏VD⎲O<{\&;BK#1ɤ X@_88? WD0{[:!O%fs5$tI"k*A}˿%!1AaQqс ?.M = 9,W%}2ڤ̗R5- nKpmX]!ߘ L\6G$:^ Ԃ j_E^'i}1Ia9,ܠdܙYKσ#cuZpfEQQ<ԆZs 4=,G>H6JKĨ{2f"Wh4S#4uep]⍁Z`vƎwWp0RRtF; OF|̦ёv+Rmtn\.BRxd)! =ƨX^ůr -- 5gxCH;;AHPf'?n4\#Ds=e(̾.M51E/5>1bqڱ=('(nԽ?ߜ)B/ r45p;LH]=5Cw!COZsJ3ߞA*G}N%AQV < ꅭK^x=gNpKQg\ ҤAjUg`6qqNXP (7-$09qПÑ}>4V>& ^'#V ڵ<",-fZ.4=79v5ƞˇ4p\}݁AkT8T9wv u)0P] 搆ۦQ3q38PWg>a3"$EWhs 6!M(e2 >ͫ:d7 71M" e.5"b38n@Q8#r1JKv-;Iv6 {UjB_Dk5ֳT=/ uQsâ^A4C;)݂p h(/Cgfiringline_scr1.gif000077500000000000000000000123261263163240400405540ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a (!50$(:Is.K E+.L8:d]8AU%Bo-Ft;FifAP1GJXEGhHKrMQgMQuRLfPMvTWhVXv\`_\as`__c[qefkegxnpolqzsdmtjxuuz%.7$  );1$ G UGPM \Y gjsubkzs3H2V9q2nL }.~XZLYZjQq`^egjkjrmsrkrmuwvxrxZbq~}711{hߔMT`cۼthxl ;xlg}dpXP{D|AǣξtۭOCA8p`p^Z4pO%tnU[fAD~UoG^ h@tP@B)h"BY@0[v34nAq8P'(om\/Y3S4X=V#jA*vޖaF&@55uUT3]Q>f xgrVYe6vW ZX:!"BRNhW:JJ@F:`WBszUcIhD8M;b#XJ>@:y[&Z=2l}vGAR4qS`6j㊛%筛rVI/=ko,Z@6#%HNjG,WlKԁiN[(,pǀecv.F6%@-46 H@mTWmeXgsҒM/ MVrhcӋqzdj7@4?ތ7n-Ў\-8 8Ў.8K~)6f!矏.bݹ@82nڰ'|Ϲ/9NB @?s=B;[/Yw@B C|9 0miz9_BdȽL'Hm\Ȓr5p! ?xn;a Ѕ}3 8C7a `:J`Z&;!{<ľ51q"H(>#쥮+-(]iט%} "1Nۜ+>N$7(=5gn9AS#7iA0Tȫi1&5P"0nE$%Er.\Jx1z,]o\d9}rbXAGK&u9œf`3 f1iJrj͙[:@ygPV׺a.D>;O!T\H;{o#B=TZXPrih@# ;nԇ%(i#fjCJW6Otu?#9pNӦ7] % @yzT:0uc:gwTʼFHB=@vh@o[k@Wxūꃽ6+ jN$%ߌDEb(n iUu,`5w+^JWЅ2(|؅ pD^55ln[?A]sڹ|j6S%%s-z7m][Wʵ5Hn &Vj4ct/m}ˮ]5\i@VlO(13t-_\k\Җg(o& v@\H|)a+%8k~;[{JXGhW_6'1 /|bXU)Mw-i=XBݫ]wPflawQƗ6jZΣ]sמ>KTE@M6؎3l}ɬ;~/y J񊟰DX;lшF^xŜp$\4-2` *^{OϺm^0;a7[VxNv0{?V, og2\> UNW܏.;Bw<=9gNB >w~uvGnW [wZ7GT݆6sxe 7hweWWz(yVy4Gi1zAQMI5-^kݣDWfTgEw[6W]xZq㇂UJ(oX}˶uzuh}WW^U}H|Ss3Ȃ4?ZvUlct=75ZF"1LX%^XfV:Kwtghmm&EQJ#~xq>(`z&\էŁcYXux8_x|sxԉ[8XV> dՋhtr{hXa(ZmiX;imjEdU٘f{X%7|XR1$@Zn?@fFduxt;4m}E>?=t%XpU}6i?(5!aOPFd6fXj:yݣP/y3K]͸( 7WՎp޵^=OфZ`sM7Cj9^SubnYW4PPՏ|ңi[?:UU09 1X.1D)~$;5Huvي01EyJ =˳I50MIOiyY9N5-ӗdi@>?R9_x2Pyӏ?ٞi7I/uRɟ;P}Pi  1RJA-S2Ex.{7+VA/:A:74V; @:A9DJCJ BJyGmEӣG-[ qh0d#u8:NRڞI lڦ1&ԟIc BejAC)#Цʦ FjdEuEqHC 4GHZESdES ʦpV!ة`E*ELD9# BQ@HC1TC3$ m h0zC%>6w:7MJ i.eC21hv>MKu2-5۵븐EFM㪖kQd## .[ ƳD' 8(j6-hs ːhS67(kNI'S7Y[8- 'GJ8U:U#YP \[: 9+(c싆3(+ASˀ 372-?Z4R?v3**b$|:R+ p Y X,,L*)(uP#0R4ҤZC+##';,O,,Q <ǐ Q,2,a\,"eL2],J3(1UD3 0/t/u|2:pp j/.RȈ.Ԣ]1cR '"0K) 0|4|F͚@!ۂ-K# L% "fGJXEGhHKrMQgDWsRLfPMvTWhVXw\`_Taw`__c[qefkegxnpolqzsdmtjxuvz%.7$  #61$ G UGPM \Y gjsubkzs6H2V9q2nL }9Y.~Z[LYZkQn`^egjkjrhxrkrmuwvxrxZybqJ~}711OX@l!I J+œ}Z&O!©D:" U U6eħ6F) ;T; X!O@:"&씞~U=)-* zN0|YDfl5lH&CfCIPϓd&w`[Tjpa2!@.;jV}4Z&WqDffw<4hv:R!PGj銰[Xy Mh5SG iTd dT9zI=b3 JҒZSK !}b $! ɍr,!9>*>j5-ԣ.թMݥzӏ*Ox,eKgUӕh4Y>gdZֶ͊խl$OuO?&ZObY6҂xMb90x;ZWxs|U8gQsLxjҚ6SMY)<|"\E lx#iwKҜ`c^kfJ2m 0f3tOJEVfWԳ~+ϲNW-(Kf2ǵh2M5W3sx1dosBS-!\2+4sg<4ujZ~-|ٿֶUNbؤb Ͻ6pLd9N, Xf׋ǕWg](/XK4T*c-gA1`e&ќtb̲5,D8ɱ1=o{e?%٫θ5 3rR[0ԍV#}V4RE{Ⱦ@l/iMC\l׶sF_{ h@/H7 ֝v1ڽn.8EC;D4o}9e;6{97;4Pwmo{ f<Eu-p[_vk}ek 8w_`owg5Apnk9HwtXyl,aN>Ń O]Uj[9|5]vJ˘pvÿi[]{.yIxp|Y&껱j|1|n2g7 KOD|z~W0 Νsx{Wo9@~tT"<<_z/P'RFԇYgyuyZgsSbgUNXU@p3wXo8s>won5s~Gsywq"rk'8 tcM4Q|wc$Ukj}gsX5疁4pw F9 HJp s=O~Q9U4GY8hngwfaXXy5u"(I.f`Ihׄ&;rHSq9pWhGeo{nDHdsUDHCeP8 qtHg-{膓PIdԗ}ֈ6=s}y&XV ށSŘW.fCk(Sg0hdPY{q6}xqPp@GPȉa`VQmxj`bP [a yx&s/py0CɎ ?@KQ(.+@PT1N3郍wgVy:ׅ=nX0Dqh`O< gHS) '|79h]No/{:Gs\|y@p0`9qK<]Ui2S4aoG?6Y{U`yyYhPi ?X0 T. ?sܷ9АW9Is}8i9өIt͈Dp iw8Űy ِAgq0 ItY09i֚zE*d@ TxǍi)ט%tnh|.~yC.z9YMU@q99e98s\n.@СqizxaV4*@0 XjNyw`oaX iJs: GZ9vZP@ $7@$3X9 IDne7I{ʡnMjzIt(w42 D NZyG6}8`60 0qI[v YEjMy {ZyZߚDG{ GZq3/gfkDɩqq*jBsM%KiEUMyw~NgI\Jk6fkpy8mS|MyLhf#G%[wY{c3 bLuĊV=\M lf#6l9'ګH |[,kM`gcIYYFu%,iry<}I4cmY\%U]l^KؤtiNt gx*Dt$C:ecjD;zl!ɬCEKpC:ɟBli٤zgGt|nGYIdbVK)K9xOw>;Κc|M̆\ y|zl}d}>Gb M VqhMK7>í]Lqт|%pK]Fm}6-NDZT` T@ĉ LgMM*%E{ }]ƠՀ@a^c-\r̰kѥ5Z#h\׀Ơ؀] pş 6\VKْڪM? Xԅt%0@=KN!5ͶtXXQKة-ZT%rUQR-LRMU_WVz}]ީ^`չ'ݭP eiQTLP|=ޒ pa Taн [KayNEg$4ޙ-ڽQ}P!ZO^,v,.V]}P6> ` 8VP4=-UV2y]ONQ.ٔsKԗ|J*ݶʓO`,Fxm ưXR>~\[ZȪ'! BX4Knf:m bȍ$?vRnRJNF^pR׏Mݢ*2NHD.땍O.^:a elhB.@ŕ;M>FQᷮ钝ЄMg$2e\}:sCg5aH.> [= :BI:9 %.kΔd$Q!` |=-i5eg#7Rk&zP.:&C]/׎4k'b@E-@ % /I`<(p` |.mOTfӃ4%B^eAOao VU4B> UP\er Π 3[) P p.4?O`U֓/PoP*o43Td = * Pΰ/3_v/[ L A!aR͜2/t2Y&\ö]ܰU"Eap?M=ըJ {!H` d9Gu&ݺP%3@TpAS ԡBu(L2@xl[-b"P4֡&sb%jFFAR*F A'=$bIc8C6HdutQѬ)sL1Z"Q+Q@\nK<)'.u\D 5)ODUtQFD4'ZSla/%G2zҤTg`iA?uUXcuVΌT1ƟX#c6Zy%USY?OEտgUlv[n[B9t_0ZkRME~}q^x`ײ`0R]%oX€Y3~?@[odGWcSVyec HkF&ޒ{&@=>E6h|Vzdi$%6]&`^zll&\Ro((Ѝ_'4 .;firingline_scr3.gif000077500000000000000000000123041263163240400405520ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a (!5)$(:Hs.K E+.L/1`1/`8:d18s8AU%Bo-Ft;FifGJXEGhHKrMQgMQuRLfPMvTWhVXv\`_\as`__c[qefkegxnpolqzsdmtjxuuz%.7 $  );1$ G UGPM \Y gjsubkzs5F2V2nL }.~WZLYYiRr`^egjkjrmsrkrmuwvxrxIpbq~}711+IJqj^{&iiW}_C!n ov Uv*\ڔuh8hIhQe!{paS!dN6IQdPNYoOrIiLJ#U~;TA 眖9̀YCX1O4{C8ļeM_b F0nF@^'pmsßR y/avw"{ xtl/=`g*jnwKaʦ=kGIXE*b1!/oFF2ZrHm"|Qnyu," 2z b<7(dH+qyiX#-8! k`8I %-7UjiYR@.`:n+/p]ֲ\(Hr ܃D$T@d6h`'4YD-rm\b B ʉ, g4B|gTI@PpCҫU\2j=(:AVR]wphNw nLqPPGAz#$M˚V! vib`Z:KMgI "kK]h0l\k@ծ>Z5\cՕ$^uX;B@dIDp Y4]kBrzSR\cY,>Yxշk\ W*jյ'jEyrQ"+  oQ Wڵ-y\=p勮0%9: enշ,\gڜaB1&Uj}v[LZV_E/rKրj-XD2 @";Y3lj<ľ;bioL<Ddigr%0AhxĀEa_Yv.*C w Xpn xPfԬW{`|l3|5尗*<.beQKӗMcد> .rW@C0sC$3xɐ.U~XJhw5g>렿lυ`ViF`Ys ]߻@;w0b|-_MtIl>2ߎYH'/۟05@7ZUԧA0vLof"脩ٕ}I ro z%pGɾ.a~mjg[ۀn:o4yJ{AojeWA>ƯC g,.rAڃyA0X Ŀ9]=;?4}\Mg.hk}*U~l{3~YFWնWv&\h X7wswDK|~5j vWx'W3p6zb6:{0%fgoA&Xz傩;2[3_4/6xy8;{0Zt(mX|aF`|HZ973L؄E$S;Uxm"dm^re`c_8lGF_熠f3`W;f\_h\f|8|uP~Ysni['`4@?f-hl0x:A^fVxJ(~!ԉ֕9wg?GArÈՇ 8^l7956YmUW=XtVZY`ePCcGGl@6qY7b`g`( ňz 8/Iib&hswW`&v:@d$IhY8.ՎXbF׸x?)WȒys~ 1:M dUUβXZR,3&'_xa_aV#Dk>dMxꨋ:cʳ3%Ns1V@{ْԨ6RYGٗLȔ^d_C5՘|ٗ`F0Y#h97Q "Kf;fA0Q:Q9=3|Y:8،9 ϰ2Bq8a?1j=3r3 AASZ P WpI 9Gu4ZWP |pW̃Grɒw> pX訅*J i61ل? ,)!L*{P= Qp@A*l *fzg䏿3 {j31$F8Ҭ{SU䝄ãZ|9ƒ;D1gÕ6JbOѓ:sڥ@d$hcw1' D#H#X| {];9B[ws*2;~_@8u3&+IB)2[1ږ`}{4 $uc&J&j";e@j5?Z * 627%tD;Q)"9jk2z{ \Z .Vs/~R$X c:1{ڪp|~ꧫ QP[+;/"@bwRA/A]32\ ৲[L) $P" 8k&*=t-k-:|Qpƫ_:3-DBQ2~3S&g&dB,\f2ZZ Q y:h L0 a1q"':(()R‹ڣW Q [(?L+v*3&-C1P$!y+b+P+Q+S\) `ZSrkW[4+Q+D\)F<A6 A1Rb4B3 [ C_Zڪ $(5t7ǖl#٪\1rўy'ltɰ  =Z4!+ ! |78q*Q=tt@ Ԝ +9+u,'PԱ@ de@e`͓ʭ܉2zrc2ɈJ :c;*z: qxb,'BQЏ| <̢8ȁ!-N4: ͥ`]ʧۚ*vХ13]Py`ZWB83R+Q ٚ\ZV=Eqղ\4M;ױ+ zIܴдQpX %3_]4{=N{׮괈WAU] ٻʋ-B;firingline_splash.jpg000077500000000000000000000043731263163240400412140ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd" !1AQ"aq2BRbr#3Ss$5!1AQa"q2B ?/vMk9!j麕ˏ?5 .l!rut_rfHtf@dUGVQasip(O֭르~$p%HNG?UKNf3&G@\͘{+ml٨ӗϹ2̹]sds·HG;7`jL0a4Y|ĵǥ8]ZB3%m:(Ε6n=]nO5!k縆{>jȢI 0,\c'hNf; A ;sde?KVu~42hqBΛ}3#lK4$rχm'({] *CpLS+6I.2˶벍px訧/r]f̸aIJVWv05Hs 6V$q.0==?s+{s1S<<7gRu܁})<[¢0!ٗo>,kSD1r]N[{f /0O ꦅ%Gn)M!H(CZOWZcT+7vCޟq嬨IѤ֏)Q}o@6wcL&&nQQui/w~/vt@IM~D]}TFJ~/eTOiПţ-[5m_ՆsטZ#(,QVHQETMTAQEfQfisher_scr1.gif000077500000000000000000000123521263163240400377050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aB{Js:{)B:Zk)ބ1J!!RsZcRs1k{JRs1!k1:1{֔)J{ck)1kR!)skJk!1)1)!!ZZZZ)!JJkJJsc{{kk)ބc:B1!)::JέZ)BckZ!)1J:ZRks:Rc!sscBBB1Jck!:!1{kZ:::!kJ{R{έ1BΥ)!,H*\ȰÇ#JHŃ90^X< =Dʗf4Kn"0b *cάy5|)͡C˧9Sj AfJj+_ĩjVWĀ)l۾ݻxݫ V0lՌ-qM†uKW|3kqpGW-Ͷ dhU&̖2o}ՈӍW5^c†bP^9u}.ԅV19M*_{FǟC(^`fXernМl` fx {W8zKnt砇.褗@ꬷ>:'ᄏ;oh,./#>\н;0>@>ڳo.{}K=-#`Xݯ{ # |< τsFx<wРv0AzP^7?H"KAx÷tp.^ VQC!E@ ?lÈ@6"-.b.q_F.>A[OhbD71 |;:҇_$GBчڲ$#Baq |(I Rc zЃlĢ'E6R '"bю+ոJVr ݗEЌ4))5mNs1a1[oF3)! ?A挧<)F@7J@=hA+?{廢$w]iEYL3ҘB#Ȃd(qLˉiJT ) vӞ@ jPG F0{+f '0UP*uXͪVծz+j`OpLֶpe HUgj֥%v `&@ MkV@%T!'B3h ೠ  ?H\@4@BmhÚdXYwmvWX]qAJiny1! /hG%pz׻^"m.jOۄ4@mFk +9AM%0\.p.Xp~І!0o`_ W% ˮkCoeK`.4")]^5k fz%:r׬Ƥe)14n6x XVr  ż=118a -k`{Ȅ sU{ώ)LaA+`rcu['0}f'or(d۽=6H4 c@="< bpë+v N]&@$4Y6y8:IҳK G>:D) ɍ (NP;Y$(I(R\ٕ6ؒ0Di3jBy]`]`ۘ 5|ٗ~ɗtpizW@٘r\`CPX]@zW}pQp{PQ 9zW0}{`yɗQ0Q0@yY9 }@ٝ 隞9WzIhpٚitОٟ:Zz ڠy:Zzڡ":$Z&z(*,ڢ.02:4Z#Z8:<ڣ>@B:DZ>FJLڤFjHR:TZ;jPZQj^`dvfjd@[lڦKIY0t*B`Zz>~qJYZzڨ:ZujvJ[0rY:Щ*^0 :zڪ *YZP*zȚʺڬК202v**v:ê:* Z ڮ*YZi pگԊ@@jRiZ*I[{KӪ2PE Pu( I.2;4202"9E$ۯ(ijʲ\jZNK7e ;[Z[%kcjڪ,P{g+Gp*:[ePUkq p˵A;FKc{K۴h;3k{nX{:[v^ۯZc{۹zjE`۸X+\2йfY[{kk""#Zțʛ λkӺīZ؛ڻ۽;+皮+k۾۳[ۿ<|K; <\l "<$\&|(*,.004\6|8:<>@B8Б/A-6_ Ͽ؆j%!UF1 `" " 6 b!fh(jQXj\1:0_0"5(H+i);m\$V=S6iKj %Dac"i+WalY"uybHh*蠄e袌(褑N 醖f馜v駠*꧒jZjꪬ* 뫴j뭸뮼+, k&6F+Vkfv+)k覫+k,l' 7G,Wlq(dw ,$l,0,4l8<@-DmH't 4PG-TWmXg\w`-dmhp-tmx|߀nB >G. +x㘇㔇.3NxpЂ謷ނ׮zo;[! /n:N=[C?|;\ߧ_peK~:篿}[Hp_;y.H?O <"-- j( WH@~~ɋGJЅál} =@^$*QA_fXC&0s+\<+Ѓ`@晐hLר֮H:t aޗ:7ʮq{IH̝/$"YcE0j"5:t%ؿ"98;T^R9%k@Z̥.u?'~.v-إ0Kɐy%f:Ќ&4ؿ@̦6hJa#C7L:L)H!P8yD!崠~ @M 7P! DJMU.>F7щ^.HZR g8(\'.8ͩFI<%/P:Ԃ MiB 7PX;?b/XjNՏ{Mjwkb /-R ؁Qdڼ̎6 -QQEԅ`nHCSV pv jwKTԦCe-+S747&-lh7]iCIDv]wl;^=pM/z @nuR`)[[w }}Kՙ"qyNo5G5ugmm[*,0w} Q2 {x͛"%GVaփg aw1z9:Ͼ#<6 Yx*\=؁P2L̗-.+`; ,X3Ȃ4ܕ l0E%Ov->#G0B#B0( =qg׮Ҙδ CwЅBfpV LVMհtgh;d!ІFhT3 #8cMlXyvm4У*AthuiVx5CG[g~}ml泝 0K7M4Z8H@m૶C;xY Р&D[sٷG.(oVN: nvG0\cBYSX&Ww♺Y8CcN^bUB}yopJ7:q(v[hO;GqAK! F48vi}gP1lOŸ=҆{o2g|=G`W5qZ ZB=hG~OW{nc8/ld?L0@ 8ПF0[9}7xŇOS`~9toτS8o~&7?0XxC ؀?WwWSf }# "8$X&E B*x&X0}|ɷg:<؃'h>xH"h~ʗׄH0(Vx.X|f}{b([0xf ,r8tXvxxzXV0X`@bxlcHfӷxw[ V 0V xv[P Љ88( l g臀(x{`h_ ؉[0x8_ePܨ8ȍ8XxHH؎8$8؏ܨD(0p ِ IDIؑ "9$H%YA` 029445ٓi@B9DYFyHIA$GN9TYVyWMXi:Mٕb9@fIT1 XQphy;`fZu9O)k)UIP:P|9;{)xIg٘Di$`1G=pYꈙvHZ`)KE :1@99IК]0HP;;ٝI𙻩ᩎA)ٞy 9͉ ;Py)9L  jK0KpA@zi}w$ۉYDP1Iʠ :APJ H I ɣI:K٠)4 jIHʝ/\z!ڡY$\zhj⹤)r*NP٢$|ڧ/٥PdJ~hڙozXZs:vZYAʧЩfzz$YDpz$=y9;ꪭ+***:PZǚZx`ڙJp*APi驞fZڙ ꛅKu j:*۩qY [ ";$[&{( ꘲˨,2;4[6K.7<۳>J?PF{HJL۴NIKT[V{XZV^`b;d[f{hjdnpr;t[v{xz|۷~;[{۸{P{K4`;[{˹4J@ [{ۺۺ˻ ;;[˻˹|k; {KKJ|| wPp X0ۼ{ԫ@п4|PwpPXppp44\|~й۾ܾ ,ܹL2<4\P,#%hel, s5SJ7>̾A \ P    *❼> ]6~ q˒0✍S.>8.N25RL-W8W"bSy\hjl".'FNm^v~mSn>H~;fisher_scr3.gif000077500000000000000000000123631263163240400377110ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aJs)B{:BZk:{!)ބJ1sRZc1!kRsJ{Rs1k!1:ޔ)1{Jck):{ks)ν1!ZB1)1)!!!ֵkJZsZ)!JsckJJ:B{J)::k)Jk!ckZs֭cc:RB:ZRJ!cBks!)B1JB1s!Bck1Ŕk:::R1B1{Z:ks{:)ﭵJRJJ{Υ!B)!cR{!,H*\ȰÇ#JHŃN.jH 8 ЙS0N(raF0'i#K0=ĔSqTJ4J3k̙ 12#kDȐ5=:fz5LKUf:ЂKݻx[emkAUvKhƶԣGaCbf0agաJvrmi lJh۪i [;rɷK'[n7ungNҧ?Ͼ˟O-xW>XW~YǞ 8YN0(Vhf!tO`Xށ8aaE0tdj#8℉4x!9V"2& qTSgbTT:Ie+>"`)%hm)tix|Y'~*蠄'&袌6裐F*餔Vj饓:馜v駠*ꨤjꩨꪬ꫰*무j뭨뮼+k6F+Vkfv+k覫Ң+k,l' 7G,Wlgw7 $l(,0,4l8<0s DmH'L7PG-TWmd\wu )䐃dmhGC *0b=cmkv#<@ w.899 @݃7u ˭Z sq* ޙ9sNwq^:b97{?nw~:͸4:go~q~#po>';wq ;_<KA75o ػ=sS Nu?xA NmT`6́ %8w#_G@ mAL$w'XbxC+f`T,7{auEl#G8ʑⓞ >C\F1H"F:򑏤f@tL:R (GIR1RpV򕰌)@A!z\` %(ᖡ K] 4YjZ%XB|% , ` pbLe':BwԦ&|cӖ&Y>sTA*m6턫YOG[iTpw zr.s7=vNf`k)r;I[X:֡kZسfA3m.4 \,up$NW{]n58sd|OxmNu^ɘϼҘN< FOғ~O0pg?0ϽwDܰ~}/NO)iB9DYFyH;)JPR9TYDɔ.+3 k:55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d"!1AQaq"2BRb$r3CS!1AQa"2Rq#BS ? |\Wdĕkf k0q`hzBFEb$쫧BaFdT|31B=6;Zp;)vb@+2F>PJچHmiܚ)]~W7)dɎ1s)攋&9&k,v~iZ&/mi\U4U:+Z=VKS:)%.!h,y b3sVm 3a<@L&Gk_! t(;rvessN-lZU oK,UoKmyڗ!FėB?5?+NE›qIcIAnǗpjG~ẓil"hЙ^M։["hİ^?kHR>P ُl=nF6,x0λ'N>a=MڼӔ b)9Ymڼe!ɥU +nmiS/nqtQsu"tcLc-&@֜kYi%4]Z;b)O\;&W6[ʩWH+X}=+1(d w&ApAN5),!tXxr>#f?5e.O$Mm#ՏY>}4NΟG҈O/;U=tTmE(W6Z4T&D$a7n tr|7mEHcu6P0tBd ZȇC>mm}GRԙ=:n$SZ.kZǚaT$RIra;&cM'>;+$JVe\U\$ |#}uzZV !Eג7sB>zz]yDќgZxS 9yk]#ӏ Pۏwt7idNP?2piTٝSiܿK~5/0v}UUszgcpiq ؟W`Oip<V1Xh/,$u +1`V`QziV=ƍe;7VTe%6PH *{t-s̽1XaAp "YmI'ƝkQGargHo9m䐇1ޗݖYsq- [)ȗ;Z?j?mަK:m.{Ê̆gR6{O$mgɧl2Z##*>a:>Qڥ828nŒ'U!K.d&6Ny ]W2f:<k#Sl祎l6XT54ըr+C*fB‹ UQPBQ 2)'dB9Ue zvM\ kZH*;O6R6qzu<&ыʑϙU_C [mkOs${MCGYê;7田Q3egLZqV0A;/?({D8o\0F`8%c}_ύpY5O*FN=n;ypA6mC8/IT\imt䧂Z;.YeJ%q7aJ$/KHzEYR! *"E We sZv):}>U|έUhi5uZU 7;;㱦2#rG{CT֞Kn+*Q @]fk퐟KIׇz:J,kp}n~Lz;w+ަdQunw6*Z|o5Knxz(ѹGVZ l0F>;V]>J9K2 m5 M/4Nhlqt溯\ e,6~?u?BCJo,*\ؿfruitmania_scr1.gif000077500000000000000000000124301263163240400405610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aUw"ݪ33D3""UD3fDDf33w"UwD݈ݙw3UUUfDwwfw33DU3"UU"wffwDfUD33UfwfUf""3fݙD3DU3UUUfw"Uwfww3"wfUUDfwwffݪD3wfwݪD3"ffD3Df33ݙ!,Ƚ N(HOC >pw!D C RB$S4)ʗ!Y_K)` zdQO<$NH4JjX>1e S'r>(A,Y#yCMY:48_1lBLSɃ?', *LrUJ~򄎃ō5[63KXA݌ b/N*;I$zV% 'Žun w9%z=%ny╓N@ v)o$8 ;Tueg[P`y Gf'n-H_Y w LEH6 v . UCxbdUqT!{_| o(4I &qb i+!2p.kl}B}Q( }wM?qSxib$ (Kthkw;}{a(ͯD#%$"Lb;m3fԒR 偷Agou+bqӝJ4/͗?ٚn7dxq5hLU>ᩎ عS-L e;Qr,X؁~rEJ(r٪VeT=,Ej %e}Ð"D 8ԠlܲFHBU (̢ yzP&iɆ:Ff)Ztp%xPAx,z`~V-+A&(, /1:$KSP^`zb$%ZĬXCj%.)$d1Oz$:@ H$8`IE|'=! $Ň  M':+/7QgV%Q_* 4<*س G4hq餰(z" +yttYTl;=ꖝ>j!Ǖ{k2>pnÜ& x{8|7 {0d=/d{1 8Xx 6wͯ~QCp;=ԬƆԠ>lx-u T0/1 ;?XrW"o@B?Kj;Űb|.+%np#ֶnV|dFa>h~֛/ / b/r|xl+bƥ̼ڋ  c&ϵ@fXjP0!]u$AsGh!bB.V r~62@f{m2zZvVZPw p] 9 :37l*; ǚǮk ?xeq9t0kS.?qy !0 OnjQ{6=k[^g$բjV_[ƞwt\{-73iH~vvEA_. 識\Pɳo(= {௶y?f}k~P\ '׆0y]bxܠy r,0V{^Zo*RCЅ.\ OC{B:A]xS 5]?Ε*//h1B&hu]٠ $H4R8@~Qp>P.r\w/JE}K?n6>>MG53?(]`OdQ7gBfH 7- 4&d}#(rA +1>AVVX ySW?V";bD1DudDIDMDU2$m}S+g"e? FPfj8{mmGZnNuJwGGцg7:Jԑ%r)Ћ.hHx؋ɨ4TB0O`!@T A7!A aA0DT`po2`[_i`P؏Y8XCT%`0gȍy&aَS74,o0\Pؑ,ْ Rl8'[@jBX<ٓ?[БAIAyHN%CjyMpWy.XV\)c_bٕ[ &4,4LyRU]ٗ~9|YgPGZ*ʐ&«J2ʪIlJ;JjٸE*z*`aDFs۠%*zX$[k z j"Tʫ.9L+q";$[&{(*,۲.K4[6{8 >@B =F{H;A/PR;,KMXZ˰V C`b ^ >hjl۶> 0t[v{x{/y۷~{ r/  0u ;[{/  !I0s1@ ps;#۹뻺˻*˹[ * :1; {кۋ!?y3?90ɒ;˓*+ 𓡻 09J:?i2:3s r빚璽A, Û,"<﫸&vIP滽s13|監+1˹(;#l#¹[K|  L ይ<G 9z3˹\<#+$ кkŞD/L?\l3cܹb 03Ċ`,1| rLĞ|Tȯm\*v [9L _ L.LM 73;K{ɜlLʒ\ʾ L2ɫ@ƍ $1<"þz#Ll/lc0 U<9"Q\# ʒ ElO8\Ȥ6ĭ;0˓8_DܾMjđl} `:]ZLA '- rRGp O=Q=,o{k\_ͻ`ռ;_Ԡ @Q 6 \пp p՟ ֘؂]T})I |ػ3ْ=ٔ]ٖ=[ؑ,p K=آ=|ڨڪګ<ڰ}Esډ뻸ۺۼ|lľ½ۧ<=܏[r;p p sP=MuT]ݵ}(]ݼ э߿ߠ͏>0}  . ] ">$^&*,.02>u4^6:<>@B>D^FTJL~[P咐T^V~XZ\^`Zd^b{hjlnpr>t^v~xz|~;fruitmania_scr2.gif000077500000000000000000000064501263163240400405670ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a3DDDDU3fwfwwݻUDUw3"wDffUwf33UUw!,@,Ȥry0ʁ`JZةZpW̕fh{q=欷zH  mD^xrdMOyhf}k0oxLtww~}E 0oFiy~pKXȺD 22""HrsEQ|zknžx|I؅goTƹBGY7ZH׼8!,!O2jȱǏ C9ɓ(M(%ʕ.cDY2͛*Zԃ'6 TϢCMTI!(D5-m'!b椩t[J-ZRIue7ీem͒Rƭ2.ݻ27xl,9X2fymkGS)7Ln^[\ zAOāfY7Tg[ ڭm_\q/7w7n6dR+q7x$؂otE8]_+mA!hJhȡ2aS[SXɅՌTc} Ҏ^8X>~O7CD&GJSTViXfZ]F dP@TUz&Fś[&`imɧV%2{h!cH^E|jYY':J~nI FJل$:d>i* 묝 !!]$ӥ\*BX Kbj+&#֩ * .IjEeEếNn;>PŮoJZ͢z+m_KYf#/pl?@Ŏfq;['ߴ:C4X0\"Ĭ~s[U~c*?[d>2ҩJmտb4UK: vrSK{b8}w7w5I/B ?dL8@(M|xL^yKKN9Sh\QVdBG@ ^I.;)zd6Utz"ܸ<î^%qsOrKqO;~,^_|ǿ 1y(~&@eneGA|5@-`m9zP.rOhw!Z⌶.e(!vF ۺ5-_%)jYâɚ2y _o"VԴF#LOKξFaSR)N]#0 |1M|2.JQWeY%I6FRn"m5]Iaᛓ!x/R*%+@q[!#C/,\)G] #0y~ֺ(!`Z%3eYO3f?w?eԬ/͋AM]gD >>'>9{r; P3<? ph *F-ґ]F2$UH?6ZD 0ݨDyF #nI`vʀD& OXW0)$쨦5@\OBaF͖5T.30Dc_55PH:^Qa ̎ $/JNt+0xK?v $Q.Vd|2$i*&*0øĢ+,wNsX0ep> h  LGG_{I6 L|hN'(jSCZ~lB"oQ1^#e<\j*cDxPzCF]آЎ&8\*m\,W 4neR}4^k w"N m}57kO6u풅$ wrZ$Z"7"?+'W68 4P"헗|%nl<;-'h5Ho,4Iқ3]遡ӇVܓ4z_H,VW:hξu}lOB8oɂ>J5j'Mw+=M*NBe;=C~I#RD?́}m)izb1%jchn4/vg- қy҇mϥCʯW1$#(NrMdMNpz5#Rmd+2y\|٣Τ9)W7uN')QuL7W`T.mZ~g&|wXt2qǀ Ix}rfx}7xRx~F'ցu4_~J4M/2FV`8hzo,QzKy(nD&7F6I$=SxoW$CpPom3p|o\<Gp$J0!g%B7tKVx[Vxy.p608jյ u @ $XB7T-P—2.P0 >6fW3@q!4Ɣn)'vz9ߛqI\z _FZ G h*E]l^b~ =1CL]TZhzjjƊ5)hi:UH O>HDbJZr޷ Ynk [9p: 0cF˘kfNpH4LÕ6{_agB<0CpeŌgU͟uD_ ?p.+GRmuWSݛJ:G r<9rWЁRW6~6[O:28U￟soG1?H yoW܃ܓO>у2H׫u?_ǿ 3 ?!OCT׼?C$Ѐ: B V >ػ "с:$'`m \ 68 0ĀpU{8:ZKG;z]*%%#cZpЀ&0h2D 3Ln$cBٲar@ބ ^<S$mdH`"s̲xfPZ3iVW6MiRӚRP5/B~$-Q1LeFvJqvs? :P^>MhtNxzԣ+pHxx'pi&3J|`h5ә 7mfF5ڭ46Pwڥ:̴@;Z?aJ` (>@57iWVU=gEhZzb}Y:ᯀB/5H z#Ld'KZd{S(DA14g+= h cV*VRDmoZXς6? z Xwk]+o-R 7[۳\U/yۚ+`Ե.K݁T V5n}Dm0{ޘ/x`n 䑆7|Wq{m-Vy(XBa0Hrwb뮸.q2|֠fL v(@e-o|m{cZI~%f'aBgIkvcO'Ԣ^e iT]rt{I:u 10!,5M"6,c865ȺWO6/k):~.ܿ<ܜd(@ ד -@W袬yFvZԚi#Nt_*K5#ֳ8Bh>S`v f FiH ~g{LЦVs;//ȧ Y|.tͯ@ :+p\΁ۧr'Riߥ-tQco?@9!xuKW?_7'{9[˓l"U6}PIQB/g`XP:xa8q(ׂ+p"%RQ[h'!X|@x"'H)hX1L~p+ЂE0 $ Յ[ L鰃10~qQagi!HhmAtvy1]FׂX&Z)'7fSr(iH~8XȄrq3z+PXk CA `XBAxH~a،d32u$ub(!$A,1$QE$ ,q؏Y8hW.@0i؍v95Gp/Vpё,ْIUmpKc6Vg(LP`<ٓ?,+FyHFˆ&y80PU9 ViTZ aɕ]ɕ`Y$Ж4 GӖ9OVK gyzٓ|9eٕA]n4 u􀖄ySCɗiWD$6GӚIGC`I)yə陴g9 ly#隰y逵) Ź){ٕpt)~)ɑbi؉9ܹh▮yR)`< ?i` zj ?H ZzyٜI~ ڡ s *A": $ʟ#Z')>P4 M3E:zGjP0ɜ;"j0ʣ"jM9: 6*b:dVZ`qr)B gڢ;j5P@ҡq*&ji;"DR~ڣ4 R:uڜ4np Gylc YM AaʓjUJ66).F z: X;`kF:ʤzp쨍O&XjZWNs ;K Z TX .ےO˒# ";$[&{(*! 2;4[6{mA<۳>@B;D[?HJL۴NKP;T[J;H{Z\۵^`];b{h\@Zr;t[v{x+: Zny;[qp%Zn w6 Oo; {˸'¸[t;pkxk{+:Kn+{ɛ<ۼ +=ۣ[>c뼼kn; ?KtB{t@ߛ@ ; +Ծ6G[?Ck BLĿLkEJdCpE1?; EKLEE\[+\뻴 GDGԻ½~wDz4"THtH{,' ,P' @,(,G¯tJLDdJJDKTWZ@lJƷHM,L,LtPSt+L Pݹ+Y1 >~N᭫^Zk^v۹˳K.+*m[j<lfB?.V{H~9L^=;fruitmania_splash.jpg000077500000000000000000000055011263163240400412170ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky !AdobedV$ ?''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd" !2#1"34D!1AQa"q2B# Rrb3$ !1AQaq" 2Br#3 5&2h|xc)r6VCU+` _đ`4[YʊtN0&BOǡ{r%r[}Ӎ>%i`MmuНqϙ}-ܭbVESf>ֹzϦ&]}AI@d>gd7|ΆiA_vWv;7s9|0'`J\  MP<yo ڀ}apgs7  aē$c $;Gqk2xw0 ګ6o*"]1I1>[O蟮sM|' 8MfY$|Aץze8U$,,$kQZic5RTh~k7+"<5z dE<ѺD05of.?т2ҫ,Q N_WĎDQiMtCfճǘjؖSUN42G?5U"C SwQ~;5YF]:*{KU3G#c@K-.::*ň 0$"ٚmo.zd˗+# QY1 )騚BYE$r)S VsC י.9ʯ r}QR!aVȂ6Q QhEZj5XD̖ l׎:R·jg\8Ȟeyn@n %$ڝk4<(x+,yyV q'!Vp{,ff;|/$3j0G_F3O6,q2@# VK< 7wA}+2DjӚجy8͎Ub^AUT Ҽ]w{67xQmm8˻޽mt?Nm=v楔z#P( bG0fZd))d6EF`[@>dnXRIMEuߍz7%P?v NgUXкL&(jr/ie0mܘhR|Fu9d>``ŘdBvHI؉9R9leoB"ZJ8rc&54ab>${ M_fę?+zka) }S{o_?/ʜN$J[F mЪqp#|M`)YX1au':PS)P_vQL%tCF𩩠*)A#'{\Wh.I}*#]{aᗝh6YԻFˏ.q '|5<8%aFe?(w)u3ul.}^.ծk:-n.x0p5=H'^%~IT}{\ K 79s1*iX|yb)ܪsU `./\ĵQer\t=‌/\ HwG1fU.}5q4;D$a'=r@ޞp{ॵ҂8BbOzG0qn|29uࣸ P YKCWic]$ IZÁjTW90\'0$88l:ez 1"'8H ZNglkK]&-MEU1(VD俶i "Gtz B8ۦ `&21.8<&Xc). wG>M)iG&p->⾩䅢[[A=~,^a(ŭww51d\I髮UǗ)¾pϺ,s]o SLA= q D@'Ͷpސ}F=@!yv @6Q ^|f;˅57ZWueJT;ڑA mtACDҳék!<6ژxm‹ =qҧ2RQnKP#N(Sw4d* Vauŧ#zm(>\7r 02 aZ H&K38X R_ILQ~ ?R41M Old mobile games (august 2003-march 2006)

Old mobile games (august 2003 - march 2006)

Summary team at the period

Producing: Arteom Litvinov, Igor Maznitsa
Project management: Igor Maznitsa
Project coordination: Aleksey Goryachev
Game design: Aleksey Goryachev, Igor Maznitsa
Level design: Aleksey Goryachev
Programming: Alexander Vasiliev, Denis Parinov, Sergey Kuligin, Denis Rozhnev, Igor Maznitsa
Art: Svetlana Semenova, Andrey Diakov, Dmitriy Semenov, Igor Maznitsa
Sound: Igor Maznitsa
Testing: Aleksey Goryachev


-----------------------------

1. Papanin's quest

-----------------------------

2. Air Aggression

-----------------------------

3. Kalah

-----------------------------

4. Mobile chase

-----------------------------

5. Caspian monster

-----------------------------

6. Hunt

-----------------------------

7. Raven's cheese

-----------------------------

8. Sea road

-----------------------------

9. Blazing gears

-----------------------------

10. Castle assault

-----------------------------

11. Cockroach

-----------------------------

12. Coconuts fall

-----------------------------

13. Cone! Cone!

-----------------------------

14. Firing line

-----------------------------

15. Fruit mania

-----------------------------

16. Hard day

-----------------------------

17. Ice gifts

-----------------------------

18. Iron stream

-----------------------------

19. Kick Kick

-----------------------------

20. Lifesaver

-----------------------------

21. Live bridge

-----------------------------

22. Mobile sheriff

-----------------------------

23. Paparazzo

-----------------------------

24. Pillow war

-----------------------------

25. MTV Puzzle

-----------------------------

26. Scene

-----------------------------

27. Nimble

-----------------------------

28. Operation "Thunderclap"

-----------------------------

29. Oyster bank

-----------------------------

30. Sea rovers

-----------------------------

31. Smashing kick

-----------------------------

32. Spiders

-----------------------------

33. Star harbor

-----------------------------

34. Strange Hunt

-----------------------------

35. Tasty dish

-----------------------------

36. Vineyard

-----------------------------

37. Waterway

-----------------------------

38. Wild balls

-----------------------------

39. Wild road

-----------------------------

40. Copter bomber

-----------------------------

41. Drunkman

-----------------------------

42. Fisher

-----------------------------

43. Air boil

 

hardday_scr1.gif000077500000000000000000000115011263163240400400340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a   ("3 %):H!A E+.L8:difGJWLOm\`_\bs`__c[qffjfgxnpolqzsdmtjxuuz%.7); G UGPM \PY gjsubkzs1I2V2n]L })D.~9uZ[LY]cQq`^efjkjrmsrkrmuwvxrxZj}~}9711<֤KHOYY|wrRJqk{՜8<]aHeszuz&-*%.(LL !-p@*T]W.^,9TnhG_ MUFo*V! Z]֪G{uƓO!=(es5s>HC4\>Tb??]HqbĽ{sH@MZj]9S-;<Yh`pd|fs @ig_Im7I 'kw ޴  \jֱX,2Zu" (%ÐD3H&L6)WSI'#Eia7PQbdiM NwW||nIb ≘ 蠄M !wbh%({E)K$bqJ)\zdA8Pp>-:(@ݚFkl'&#{,3ɞ+>kp*Q+䂛.K˵z,%Ia oٹ+JgLK>NġDz\0l9SȂD $8003@0<2- :%l@/;'@OGzDPܫ +\_$4)7[IA[m R]{ғ˪DXAOUDY?$b])=Iq<"LRa9("3uTͦndY`RaG3{l\=_w%j.Ac {%CA]%.\ DA& =mIEA p:󲂔#o[9 `$L[&Xcצ€ih߂LjVO" 0:F 0 G-4lL\Caf<%<\ eHR=yr ИF=L`̘ȋQ2 ! ƂQRHK\b:d"K2l%I{PIn/#a܃2Q 5 -Y0G~[dI/k;ӑ4v1!s+y+vɚfyNL¤r愆>@nQ"YǂL HBZ2kaDCKtz7ͮv6RĤ=A$~ "I-c0׹u(XXH):vlWKv#@b04!╆J"J-?Z<9 QPf7zkc#]7XXeAP^:üM!^[V;˙ԑ&sTuc`ݠ4Hyb'pgu>s;?%arFP< 4pbPKAk;Pw k1kdl(PE2,s=lKlp2zS'xmߵ.jVR'm$Hm/fTTf4`rhSlpU! RS'p6HZtmEgvgVXkY0,qbW^XW/lpq,r7w\^r gn!r;t2sr]xnH2[C*m,zJ0؊ WFi4oΓEl$dG>yXEh{Fa0f_Jt}Ш*T~?{ڇ@njdIcgxKH{}=͈y7y?6|TPE_6ȏHw4yGf%Dcd:~IɕIUƆB(u+Ď VhUwl6l1Uf7qP, UWaFq8|B3لh?Z%jln0esiy9h#ǐH6C[u[]wg=ugm7vZɌQ%]~(^%v*wL$wWwYahxThwj)I'`V@ؒzIHJ;h?vfWH7bŅz'6Sg|7dy{B{t8d^dfgKf(g)Mg}ffFL7IlVv||#IkVggDi`h7~oȖG(k}bIWj 7=$EVV&v )&mRT+VAS*AWnYEs'SӖVePg pZx6nxr.l—}xi)X\!iTj1+qH[qhi,7X똇D,rX'htHxI|ovIcؚHvxOHuEq^H"$ū(#t, ŜYhhIje~)faϸy*)3+6QqQ(s8k 驳G~h]t&H{؏t9_sg[H6'ˤz/9O|% gLrf IBDF/)%;y;D8e,shaA”0):!h;&8ɳ:S֕]Ni,KYUl [CrXdyIx$Xz 6|Zykq[pYJy grH$xc?>*TH牱=;&Z ɶ: M"A)8w^A6*wA6YoԂgG5jFH?{ IAQ5S'eğYC} 4-/K 3+:E:XKe;0[-`S֫x8,+X5a3(FKp/ 2ꗬD9rÇt ĊZ'0HüJ3 )V$ڇWq^:++ig|F8[ĥtiK7 {y| z~܇>?IȍSȥ&rp\xlsǒ.v5 LW%7;hardday_scr2.gif000077500000000000000000000114351263163240400400430ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a   ("3 %): H!A E+.L8:difGJWLOm\`_\bs`__c[qiju%.7); G UGPM \PY gjsubkzs1I2V2n] })D.~Z[LY]cQq`^efjkjrmsrkrmuwvxrxZj}1A~}R9711<֤KHOYY|wrRJqj{Ֆ2<]aHeszuz&8-*%4.(KLwuҦ9qֹ!WAYuUid-5c֌UBGz*yd&| C| FWKZB @s+6kkSEQ覫KQOjCJ~V+,J]I" Ӹ@{>O WL1@ Tg&|RMC ۡvL@LCTsE 0N-Kl1w|5o>d@?JFCs쀉 `hswnOO')[C t \`:Xj 穠;DL I,ÊAM ZLq)Q? Bz@ H FC-#feH6f2E$e\1=f!z$nؑ zH6mq;*4L{KaFF& ~d!Ge {J7Buc ";g4RL|$#/Q8>K%)7o">,c@FYC,vz<7r D(/sT&97NIkjQC7#:P fIPJЂ4$D$̂@+fI@^wEYD̠ ipRJ 0>`g )W=)F@ jOGS$2KkW0եGH/iTtzՄ"KhzQ!ЇZ+FJd x.P2 VcZDJ‡UP%»Մ(T r=tyB"l,{_uAoIxLc&kI7|U X˲+Z "Iӭhkd`Ѕ ]vD咴5n*(pb-6fL"ב?LbQ1>wz&6HeQ4o]}t i^8{^܋bl"%e@'s-&6DAq &sgq23a{ٽ &Hts$, /PBJB0#X5 G)쮌,3TPVMDdU o2.tėMڜ0a4d((B5@p "k+U 6ŨctƱJ&%qB(ѬW7~JIcMүD퓮\rk-A*Yƶ\dșfOsc|slk|'6ts.NO,R.U@*6>!%u{vf'vK$*YLmx 3dŒޘ+A:c.5 7LR - T1{\'iAwSÃ;ٌ3sӌbƯsO+p~-lFey'8v>u w@iz.nOZ%KxK)]r Uv%]$vLL($1Xazvi16a%̳ '–S,<(kѐ 鐚q{A2?Qa%DwEQїuz,)DhBxAF2}*,M1u- +cI5]:ۛdC]R_O묟:Fm~5/QeXCDU3|-cVhuXVoFn{vp vjYeYf0f+v7/mVk@X }5KX͠_kpBp vPOOȂP4#gb(-XP+DMCD6p G(O7yX*(.C (˄}BZ7+Z+[\6wkhGhR]~,8k,Gws'U-\B[\.BkfF8LOpVUw 1.rU~-ޕw_w&`R&U`Lo2b 1>%tIx<2_"%Fa&pR%E oݨ;Go8 ^vbICb$3H234+$G1Ў%JA菑Mdd2ȏXnXUEwf ls>WJDzd94(349hV5f58gUg/1s|JBfr5;~FgCah250v0-aw~45izh,t3kXAk (1Z$YwI+P<Fg6/{bTTɆd@Tls!?dvy3#fvƢm^HBemtm{y,NvqXGp4"F]Jw'v5xhn_Gq9'r|iX`c\iytbuW_uMfNe_tH߉DGOSNRLċ5qcxDw}yy\H^?}'-DxGKtltvjoGv$H^$t1=Sc7gj\Wx38\49s)/#3*}yddlgeXI|Z(\h6Vp{:1pIz|Qף6g@Bj{Zsmjr[ʅnu ֠e]ȩIs6@ax&^1YbRȈ_BW2*-GYY)|!Y2ZԉkT^ ? {yDs@ga@kJerxKT?凮:ڬ88[Iw6#Ɣ.)OIad``ec+XKK6і_ FtS2^N?#1YF'9/yMc *F7f ˓ڒgz'*{YZg!B=GQ7ϳE(B5RFe9S_\e&%ɗU5wnKVbH*EyeIW)=( 4^C"\ 32/^kW70ܷ>H6%p358l6*<#"f075/[a܂5VT-X{<ź3sh{;hardday_scr3.gif000077500000000000000000000105521263163240400400430ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a   ("3 %):E!A E+.L8:difGJWLOm\`_\bs`__c[qijv%.7); G UGPM \PY gjsubkzs1I2V2n]L })D.~9uZ[LY]cQq`^efjkjrmsrkrmuwvxrxZ1A~}R9711<֤KHOYY|wrRJqj{Ճ <]aHeszuz&8-*%4.(LLTϡG> Z#ҠJ$(6EsƑSō>pYn#?>thz ;zIcݔҫ_`$}Dc_zYL(uQ*YAtބeT>8Xa}u"~[e= bȢ@H@"% i֑L'q-dOF٤P蔎9t!&8 BIait$ITQnt&3*蠄:_*Go٧mbI,-Rޛ,E 2/7,0 CyagA,Ĵ8|;)|I^rx3sh=Գ!|+@Ѐ x{C&&aol(\u I&./t=#;`#' wh#ZjJbD6oj q-#_TڲÈ4pl\52?94[&ƫY޸o:׷mpcH>Luc|l8IN>eH=x3"'W rd"pEQWt@8!^<Wy:Gb.U\w=֡qB)N 1B@E/,sD%Lz׷߁sx┥铟t'AYz~`\a9 8OfORdB:$“L@Pz\AWr]o}dp(MJWR6T0!OϤU&0jA⅔$Qe?}uZŽgͦ YPWGT5H5T V uPJ^y.xiO[$W%HA 0]X3c4;H U . }\ * #Wΰp"-ɠstjt5r>aSb.Ye2g' kePH@̷#nTz0~)MB,iH Zi1Zmm{#5Z $Pmqg.mcغWh\1My%%%.Z̠ `I9~u|0V\၈x"mY$`nȉ:{M-t)3gC\<Md%جCl,>a2<kUuZ')q-Y [4(?"d0v2hq`"1D%} ^X4%*MN0 ^.Ҟ q(Du6Dƫ`1R Ȭ΀n`ثC jku=Ͳ1mi^1Q걪 \ Fn@Auh²B9vT}=DfVleF[}&L@MhB)4'^JWRe1aYqNr^cvlDe]vCD x:mc[-𹌙(H|%K^row{;ߙNX}c3ChFG{퇇;nY /◕9P]"m]AMlGϫC\|O_]}SC3@};+u_\jWzMԟnNx_ڌw 'WZ6|^\?.ýn٭= 9?\8c3YKF^`tn:4X9@991`WS`k7Mt^ Q5]ep@TO7qpbJKep"\STofV4_-7qDm_yԁ xpB{dv|CR8  b`4Gt4WoRxaDU*Tcr/QmH+`:atD!&bia'P1c<@V~h}OPNLjOfyUֈ7FY6zne st;zcum[x{:Sg!e'PcU}@/NTa|FdxF}WWg|!Njr@jPh~~uY5Uk2c9.[ !F]w\#$F'KO_偅}ȄfH+G-v ! ~2I~x7j!]^ yFJ7J/~; `  ˕EM9_Ca7C7xa@ 9([:/i^s v#vus\ԓ0 =唻74vm|v|y;f9w7lXPhHy7Jgg#Zam o[o;f5ZSy)fnԓ =YR>p3S!zh!榊Ǐ7yT0qgi~+@U ~]XYuq;@~C*}Hvh犁9ee?ɐHiٓ9lԞXv8[2Z4HUx.qs]Us1h^eI8WqӂnՅ$_ԑB v6md/<؃>X39PpCVM^$Ugrtw[T/fN%1"tHdw8UcR ']J6DWPbzB],\>ȠȎɦpVLmӇ{3}wEVCkȌx{IW_?Ө ǣ(?"k#Y iB訚Z(D/S Eץ8 8IQ3tS!-: ȟ^t]\EZViGIjs8zG{`*J2ګ[ԊJZ!xR˨ 6EZpijF%J@jy,RV(Ic{V ۱Z9" 9+3=8*;/w@*2OCd2{8[r0>+=8u1SvR3Lk.5JMRijéy4Z;X0J7a 6!˝MS;hardday_splash.jpg000077500000000000000000000041521263163240400404750ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2B3Rbr#$ !1AQaq"2BRr3 ?f8= ;,Y!)#cU\Q̳C16TH@u]r,ZYu`,$)@O[* @S" wHNR6B-iTiW"~#WTu-\`p)imc*OM15g(RXd^w`a9BWD Vsi)&'!q$˖L8M&;Y,pEI-1qlrR#cU 5ҷTd鴠1 -gB.n%IGfaNVM؛e9+pyw.Z%4&N[xU/F~I}hү܆JrȹK)R-]cmWЧB8)DlR!).DF˓$ /7$<`8fڀ.=y9\, "C ˪:zCK72ʓRʗlw׬Oӯ@wv(LPB+5S)Ӧ"?y*crG^)5i^mX~]OަH.;^DNص7R9zÁazrbd$Zs$}  $ GH .eND2wFp2#mtZ޲ذu7SN{,mfޕ#%e<O BuB+2GS94I~jb6tw#6;) ̆Ycw9^(%hFc:d^z,EB]@N-v>j.\gS(|{xmniG ֒vNC@5.O".ڗ(`EňZQ@P.+]= <v%086 [P]G oBj2*\JIҖJI#s4c!)e^0"q-!Ctc-6 }kqﺤLI{|KBÑVFGS87ݫG7 ğ  X1Oȓ()k8Nԕ0' vyg/!lִaӑ2<^?oR<q$=,ӏOm:Mʏ7sZosE(DZ@7kaB@Ͱqe0O6"jW?NFŨ2bCs3{u%ZcJ3},1p$َm $TNSva. s+ %!N坧RcI7Gث iɄ12KVUo2W*ܧ:{Zvػw%Y'8'%s?O ĵU4QBL> ?4z `P!x٫NKq(&+̀[$ * FC TȄTe Q 4",{̆#bYL,|v,K% $=1R}Ryrcܑ֡1\;6n[[ל&mB9D&E:U̗({u%~MăRVBM6:)Ԅ j>b<ք, quK0Y:!&]EB wypMY 9|-?2mW> w/MiI$B!B(hunt_scr1.gif000077500000000000000000000201101263163240400373720ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89ac:攜1cJk1)Bsc1kJ{Z111ccskc1c1k11cΌc:1)s{11sRs:c!ccs1c)1ccccccccckJc{k11cRssJR1JJJ)c{Jc{Rsss1JkB:)RBJJ{:R{{)J1!B:R:1k潽cB1R)B)RkJ11ΜΜ:RR)k)kkc)cs{ޜJRBZk:)BsB)Js1)ZJBckR::11s)1B!RJ!:k1!)RcRk1sZJBBks)BJ1cB::ZRkZJsZkZ11֜J:sB)!,H*\ȰÇ y8"17@ȱDŽTZP|0#\GQBw<JV0ql*0{D3[ o5eKB<8tF=x@PCtNDuVKQs DBd klpv8Pwmt@tBug 7ԉ+. ޶l#Nv݁ M+9AՍT7~C97~{}wmy胻p4w]%hpz;WOO囻7zw`-$~a){?gi7M|d 1{G*Ov@ x!q@%!"<]℧ƽ ]؁&0zá7A v 'b lB qTJb 7;5s_ؔ/}8ָ"q@8U@*ęq)DܞP6 1hO8zC3!-% `8*t焸mE$;5g -jp&AXֱQACT*)Jj^f%f2]r̬%wMq%d._|2ɇfT(9 Mu<< DleŒ;}Te>٭f!P0((FP˜RH_PP%(JR|s(yь&,MSZK┥ X(6+ ՗4iOӛM)T T6 IpT16MI*ֱfT}Tzb\:UΕk-\Z/5zOJ25[t]׻]aY2NT`eXV C(^@YѶjgAXvֶup+˒moڿDU ( Ӟ2,Je]V7wU_@ xJu]2 ;ے.+|;.@M$E=(6b;`ޕ  IG/}K` + ljxX޻W1}; O+ea_)^'9},d!x+(\k 3 ;v\ Mv򑳌dW%,7+1Wb9d6r f$Kk DxK^fi^ҲE*%¬RѰ.yҍ/ )C;ި3ZNvWh;) zNZc}(WMiUlO # >q@@ sYC;z_yG|/=Kxʇ2 [{@Cyk;xxW/#{{,el '-.w>>.G?}/yy#nqq.0ڗ0詣& ^ ȩ?rJ Lj,@yTڢ.9)beڕ!(uIJvHڧ&OJ ⹋s@ʞD:ᦪ s*ŠHڤعXrߨ @ɥ)0^JmibmBڄP!ѫsú~@9b`Jjz% ㈣Zu@!@DêQ*ysد$:ٍ) j`d*ʈUP!AJz0@+~-2ۯ(jUꚩʋ:*0س "@ j'ȑ]2`Ј(V[K\) az0 {z :K b&xȷ14`)`V+[4@aвY`  z :%Xyˈ ?V++\K+Pʤ_+[.B0Kj}G% ͛ϋ^!)5Pڛڵa *J ?|D[;l]8P4UЈayl>\[p )L 2k`TL\< Z:h!,p@ |@ilq;ܑrx)]h\?@M~Я} `[@<8 {@+,;ړ7Al5XBKĄ> @Ŋ4<@+ a<lJǨ\jp6AL,ʯY Zd@gA0Z f,p:"0 n|֓Ќ`@^i>l2`79h0QPćAmj@; bbM}N+gҖ{JMٟZ )`ÊÌ=AKNԉM}I|4ؗk+Y`paz/M֙> ۠=`x nӧʃ+Z ׆\݄ O<<`JLmold:Jb 5xlR~{I :,`4 Zp_U@-.wh ߝ ^؅q`bL _.+a3)֋5^ ["> . EK^ቾ Эބqp㖛jۄlpb F+ Qӧ^EP dU@gj1`T I a޹{゙ (=l uj Ϳ7yl܉!9ݾP=.{ZoN}72D _>}uIpkn P6 ]n=,,/4b߄!q2I M@ 8Y.v'2 P2PFp]`O0)~D@6/޽n>5/ B/28!OݮA"/pqhO`o.._.﷍D-gsWPܱ/>@ <QZP pԴ`dHb.dPah@0 E!aB ! BA h@@ !%U6HRlꔠ J ( P0QIb:TS#74)YB 1QdNJ7|$Sr[0yΟy{&*02dQ laĈFABM^ bt@D 4*I|ݚvE|%^UC7n"GOqyP" N0tǏ! ٳMDJ6uu.ѓo '.P9 cl (κB(. ;\k<6,Vb/,(A + zo/O 21XA:,p-4 x-$R$>!GF&NR'k8qitQ+"Js<:$-,l!HTI&OJ,W QÆ1m|T@3JA3+6) 8 iH:\=_u +Wʯ2aK.=!!*"D }ti+*%Rj+YT7\{# ٣L 5h*#]!N"N8, gK)=޻O[ͧB≯z c/RwuhNW~3EeuXE]HE hx] J0#MO$/FMm%7EIKIn"x8 DS,(HZ;ʺ}ӳ}S-4:ْFDr!58SP`ۀnV$U`4 HE X }vJ(;iq\ibX ls7EGO/·uc{_q{wQԩP-^Ga~R~[5k"֤N x@l-@_³J8@6/iwJB? A@` (21es@ 2OdP*QyʄC$ WB>;)@oC0(b;lME$ЀcL` ͍bX}6KNbG<aD740݋t?АXBO%<l=)f 9Q,@QCCPDGT!J^75҄l'Gnܥ-I`jr iO_BRJ5BX,gY#%/{DS!L!Kp,Sh(7e)imssތ$89a# PEa3 LPOUA`?H\BwgP̓4}hK[Z!  I3lmP,=HQf$aͥ<2Qzt S&:4*4@ Q(5S;%Jy.8X f֊~$uF|6MoALh;0EXuCtw*Fհ 8`(yD,/RU'V)+W<&dzQ~6l>fZ&7A |@ sS`:•.fcۢ3o,H*P;H~3O/[;նŭlw۫f8hʋՂ U"\Η@w!+VVյfgPSwN`Op^2X*^/|+NO0m'Wuե* X8.Pyl95*/!yk*Sj`kј-pwLރc9l;`Pz%d:hj2 P ؿ5ADbX`6nF^A` ÜfV~,5"{<{_,a.Қl%Mu׆vכ`Wva:ZgzضK`'*_f`pY&%s-JmZյHj;yxI;hunt_scr2.gif000077500000000000000000000177031263163240400374110ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89ac:1ccJk1)BJ111ccksc1{k11)c:朜)ssc1{ZsRssc1:c!ccJc1kccccc11k)11kskccRsc{)1JJ{{{Jc{JkRB{)c{11c:R)J11k{{楥:R:cJJJR1ތ:1Μ:!Bk)BB:)s{)Rkk:)BsBBZJR)ZBJJJR1R)JRRJBc!RJkk)1BR1sZkR:kJc1!:sZscB1JBB)Μ1ckc!)RJ:ccs1sZ:ZZ11:JsR)kkΜ)s1!,H*\ȰÇ 8"A4m@ȱǍIPP 9R$*RVC0;b8K/m| y3f#J + Z`J+ATջ[6d޼J]Yhz^ȫo sЕ'@Sj^٫qޥU[TP1h5^vIDOIEJz@bp`&ae NH!L}җ׀IqNF`+&SWJZ! <Ă>G D9<` N)vYe& Xeaw:Ag,ya@>)v'd<0Bh DX>4:l)v @YAZɃ^㪣r*`ĩw::GPШ'F8A.k!:m*I-G.?r @>z />F)nl'۰CW0dqq,_(jrxA/#3dsk);!=rDdkAD5R?=PV_=TKuK[ XmhvaWLĝQ=ww{w`7vNU=p7u c x7Wyܤ݁~c@/m׮-眸hkĈٻ+/,\!w?Bd}` ,%`bƢ_=ÿC`ojG'(Yh,4 ō~X) z ־ ◁.  0 -UpR\.] X`2'CAx:B &>WD"jXƥEŮWYa.>@lb~;|zx5au  ;l\#D6a|@@EI(WT"p@Ze(#yHQr\d˂ N6d]moXimls[B6 k/p\׹lg[|Am[JrMmhltӫҗeyIP׻el m[এ/}+>v Ûka;1~%Lbe0b?0n}c᥀G:c) :6 n\8Pq|c<yC6|d-ۘM&Ǽ*WSZNf 7f@ny 20l/i^jdܘZI`;9vCX76;j'`dNm&I,gP!`@g'7!& p!^iPS׿޴ l^HUj2ز5`&3>2;0ϛ r}MlawZ~Q]dOԭfuyŒ/!` /Ns;YOWz]¬o>xaUU@ WG v$0P~|''ԗ|we`}FbOV|ͶP&XT0,؂)W~S6}7fxg'X HʷJDŽIH~0hTX}dHfC89pPɧ"G0 D`6XW{Y!}{!(zghEhGq؆)zc6pg~X0 G$XYCHȋ0x8vT:3x2n7a8f9(D0k؍ި 4@Ũq`}HͨA8f%x 0iBmV6)0{K(yKRn H8:9}&( _GzE)( p x)T)@YPH >0oJ9H S`0`⧁j$qg>hU(b`3)(pԶ89tIII(y_W?^H%@@_poy9oPyɐ{PXI9!Z'eTFXy@9tggTh~i1dGf) h8)(e8-Y%( ?tyzqМ9МTY cI)9:Y +sIY`1I׹ Aj` xio)(P0S9S JjڗUfV&y? "bТ @ڥCP+00:tliKiDǘno&(y'BX%-ॊfX`6p:+pe٨> 8vj`j 8uz{ >pe 8&rPܙ5*Z6PSzfIYɗxΙ]`9"_'* RP$bP  I9P5ZD`6PŊЬZ@)HIV ]P j |H"`)ijƹZz͙i2;Jx갮: ŕy"'@"C`R@6@ɯ+p*+a0Z3{I HJ( 09p:ƪ Z홞:Z H))]ൊk9c$0h0["X"8)tKzJt0?RPZP9[]ZK2; :(`TPfxjpD0R`؛v 0/6д?p?0gЬ9o`Rgp2P39DcG D edkՋx9PTJ? uw` ZI0ڜ\;ʻXu;)ѻ Lj: k ?kGjZ#Yk5,pJ@k?|E0ġ)Dl*Slo0oڜ[h]ż[c\dk<ɀA**)J;;w`Y@Z@,,&G*(jP`ϸD(pq̽>ɩIj,L9~\YRV‡< & \}8[~ Q̂q͡tLp|[ x'0„ 7 3i^Q 2 = \Т0΍w@P0I<$ӛL2;b jϗ,1@l:OOe@t>yI"q`4R=<d2 +`^Pڧ'2#@7V]j֡9 9PMD|Rλ}@54 ̴H #`M ܦQդ郮̺P\& (2l-L]辬L@w04<p = QpP= =Ѐ0p 1&} |Uٛ<ڽl݊ւA-YLL@`w`p'~ߴ-}p܂%,э$}.^Yᩐ\Op~,-M ߥ*&N̈=d ⛬yy .አe-J Rw U~!}=@ս .]^d8.m)f>㝰js2P2E}Y΂* %M0-n|ϗ\% ,><j^7p.ߜ0h.Q ͌N&*~^ԮnAM~ ҿ-~{.,^=٤8 >5N 8 ~eMҋ~8>=Tߛ ]:^'Ўm.)_0=e8za;#-jE( IoL>̐sX0#ž7 a^ mpo>]=P$]2ZD }#`_Ռ7`XM&=$!jl`16vH̨01` 40m@0sP@ ( ` P@p8a * 1D $Y){XزaQ(9u9"7ƘSPB6 (0 ( !CY[fcA$prfA,P [W@SU <` =pU/)f"DcM\7΂Kwq>+tѧ@Y# j.lI!p[T0 C#rڶӍ.mw@D<6l)A-Je\gR.L" XL<ȭ> zN:ϩ4  a c#A=HjPh`k0d B:Z9ODo"NE/# e)(渁Ll jl͔nH&H Hd 1Ӫ̳frNIsa`ɖn*%J+-H HJ(An!% @ abUXc@)C s6;4Ӓ{3M+;oITJGTVpcVpm_ *تRsAz륷-H:kkϒeiIvb% xeE310J)J͛^̈U(%G"ck!NN%\ {Df#vyHD&ddUwJN:{ a@p4iF1!Ey魡2nv9[=  ƮA2.a… n_-a`˲H8w댾Aqe 8wۼl Xg  :zZN׽6kUqw$~p!^s#az[d'qpO`.Т` u5Y-ţWDP~_60{[S\3e"sZQEk$򢖿:*T!oA,hӕf<, #CPAs7IH t.JD&:q{Q|`E@zY$P*a\XBC&;$ql_GQ pΫ^&R
4rgE QyQA0Qb>00.p +Mn"aeX*r#0C`jAz9UiN#HԢ3!P\gʕ,i ٧o0e_-һSuhZsj(`BIt+^XJ0 [3P}QjUzGV XU bF>ֱfZZ}a#Y&6 X[6 Xͪ8U׎}lckVU,=7G2!h& aMTeA* Lg،\wjm[:Qukw1R]@{H,].LX 㴬( ԥzOoU#-{\*e)A#G$+و~8~mWq8yK:=.@*x}gW+<2S ަzNނ*%ؒXjږBwj2_mq[ճT2HUO}0+Jwso+C[0?1}(M˶~@g;hunt_scr3.gif000077500000000000000000000203721263163240400374060ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89ac:11111c)Bsc1ccc{Z|Jccc1c111ksc:k)scck1{11Jcsssccs楥cc:c!ccksRsJc{)1k11csBBBZ::{JR1潽JkB:)R1k){{:RR)k)c{cB1)J1:R)Z!B)Rk1kJk{Μ:RsR)Bk):R)1cs{s1:1sBBk:)BsBkcRBZ1s)1BR!RJkR:JJJBcJc)J1Υ!)R!:kk)1sZBkskJZJBBJR1:ZcsJssBZ:11Zk޵:ccB)!,H*\ȰÇ 8@,"h ď CLDŒ'M eMaY'APPF e1Յ2[֌9sk4ZP:@M{V"nx%ͧW:S#ߖ~Re*jA @)w)sz@Y;ڃhx `Fb֮W,V@pq{95[^xa-5A`ֽ[}k׼=9siMm7 kXx}{{O-33rlB ̰^BVp!hA5eSA~SB PVšmzRd b=vx^abBQ-($@j/8aL> 06TpDA摇g5Ԡ*X&l1 PQ@1$z"TÙ5|$\y  'BJE@(DRj奄q@k)  ȁ$DqD9@[^CZ2Q+9k:襞 )&B)mARj[lF(,jy)%!ANT\ ĺzۨA (< —R0h +A-` *,B2 A,H4s5e39-4@Ќ2MKW'uT[-v13$)̞B4o׍}|[߄s!a[Akt<<!&;&h.rmgj; Ԟ'W^zpG4"5?3_P9| DV_ s;w=;CA 33/߼k=w;{ylZ@5({CBH:qoD W B(x P3t(xvp:?҉0#, 9@::щ y 0Q|5bl[d򹹥1agL( xGɭWeE'R\@hFIWjO =Np3䑤\)"R"d+x ЃG3:B=BUW`MjS>4H) 6U# p V#@״vv5XU"v}j B\W׻4{ZW籠րtk"XD`b1[WZ g%< i}llEX ֶmn=Yٖ6*aO \ mcܩVensXPb2AErw[>yw[ܽfwt̀|K^Η뭫|{1L`}{]­;_Xτ_ 78:C"_W/ˮ g 㰉?<{uup\c_j70<Ɗp]?I71io C[fRUn,_x*떉=d 8 s+9Ϸ s9{٪̵ ?:Z=7Vys ;x 6Bc:Μtv8 C-j;:t\=kUZөtY7ySfyk<Ŏ_Pfٰ$hO vmes{٭sK0<؍s=!WjS{u6ϝMy QlbmY?`o.p 6n>q3f7Ⱦ|TL "Oy/"ov>8yl|+wЃr{5/Η~|BԧN 4;^@>~0 9nroiUOS~t/ 4x tS ǶwB|S)r«U/!XvAZ#P?v#^Gnz#~V/0KLGyaNNRegB]֧~{G㴏+O/}D*O?D wGLp@I,PHG0+5Tg~WtzWw% %uWsg =}w(*G0hyyZ'zU|3؃`}%sY0YKt1HXz7XBhA؃pTp+6TRCpQtƄ7'y(\xWXXguhy)d2wio3t6vs8q6WXxy#3|Iy`yBPq} @8'sH x8(T.eU8f pY7NJ 7؈(Xxw(J$c+;)rH(U0¨ PЈx@ Y f00(؏'hXv4W67芸79Y Yh)9v `xu)6i5y4Y9@PW萪L<:ɓ=iUYiБB9"9x ˨o(a7m29:ɕX{I|ٗ\YX9=P $X"m 0K7mdYyّbYN C Wno鐓)-P9A Y!i} Yٛ-tv9 v{+pp*6y+ 80dX@i8!y=ܙYn1i9 0X+[+)<* d`6I -4\0`8 Έ}v9+ vŸLW)Bb{@&J7,_ 6YdzIcI zF )S InPZ%zddf  &"`Dڛ8s8SYv* zʢ*+*+ ځ "xpms0q0`. *2*,*aC3Z: Zn YN P*ʢ?^ڪ: Im* :q(yYϪ:+*zժz@hWg{+ʊ)"a ΚHӪ? _X[:7AУjZKWmgGi0po`UA}qъڢڏ˸U|P0HG鶇"]<~0<6Ǎ |`qܣ:ª=lC  Cm滢EP}0` .7-p,ixLBxږm.C*VpV+m+/mƝmУ|@@ѬCPjl;CT,YX8--]ߎ97 . GkNn^A w^unYsH PP-.~徽k@`č> MFP^prM>.j  P N=NŎĎX@nd> P~E0A@w8PI0~"LC0 +`o1V /2.Kۚ dӈ _xҨ]%߼ᄾ/fUPVp n6>/`~ߤ_ M@Q)_'Qj s s >Ƚt`loo>`op 0>EM 4pYpnzsp9}НUқ<KPG'O8@_lkKM纽a[6׳"* \ $XР 8`A $*…(1QF@D'4i'T6) M Z 5J,1@QX@S-lzR &,9:2Q"FȀ" IH0He&YhPiR9s"KFiTN`%8zR .dtCA V0Fu)pOA/KI3hqSq Ή<$˙3O9`k[F]I'PPk9+@/ Tzʤ9ԘJpj(5{ZQHMH%<>|M6@!K2 %Izzc0*Kc*"R0HEXȽ 3l^*.'В:Nt}CJv0X5 gS̭}+0mU! SH(K%j>8nW ;lxv&.*K.̔̀5$j)u$ "R:apر9:PwWͰu rGф%s 6M92h0:N&Ts`&yZ'3zv}@"3ZQ rՂ,0On곧%&'b70NC '7F!e1@M]ڌDn Ýw9hDsfky.{՜*FOH.(q|py \ZK8j"|;rC筂҅Zඇ:@vo` \OvB}  $ iL 6m@+dL"k Cf #FH[UPCI J0,ҵD=%PV4 pr-:8M4tm@{SHz@@scxD${Řr?wU+ja yHD_u^Ejx6ѡBfGLfrFɞ$OPw*XHD2~ IVgFjQ#1MҎ$> J )sS* S!~r@G=QcJJ۔P~M2Zi u`)5،fG#e(.7uioQ$X8 @YH9өND&s(&\ظ#I`ğsI!0I|(#)~iM ɬ $5yfar\I nS9cjSԘ9e2!VM1F]߫H 1$*UjΦdU75&UCb>Ee$Ys`2"H'R2sU]Y׽u9ԹT^hVa'XBKjG6UXb@[5lNwluEyء^f?Pos+KU1UV8U%D7 B[DXB?i^Rv)݀8>.M-U kj+oD Ѻ,3 Z5p#܋MQ @1܁VֲioqYubj({?ܺHE XJ^p0X S .Zgۓda,^.˸Rg7)"x.z*Ou7ksɞ~-10N0ytF'`Da6,mghVT>1RL ͎nt,(S1"`64=p*Ԫ=0xf:ɭvLUY:Hdjra!U/])}mevNgq{#ʶY83B%׳h͗P|d{}ߓlߎkR۸wt[p)oUB(X92kw5`?6$r]lfo+w@߯VYA{ j^6˒ռ (R6_-m^zSfU#eG7۟TV}^-ImwRsMw55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d"!1AQaq"2BRr#34bC!1AQaq2"BRrb3 ?kZ;C} \RвI!H$j(KA*>G(bd[_0RNyW!o;TQ8(w1-5 ΢Vd]njgf¡"VP ژAK V9&<V*p=vJ9cGh;8D]T$riÏcc;VqӰu3=aI x%DrZg;cʓ[OwǓI|EhI+FX nUd1Y;rGm}6DVi ĻY7BG/vmWOʩFb%UE|btkm<Ȥ&;H$:0ΊP1_*?K͸6&(ݽ1XSZ镓[E5G5­viT}7[Rgr {;Jgf:ǝH$_9{k-sSًy=)oB M0q1(0b0A f$uK 1֯@0[T-kzTқ"#1 ȸiPsڂ<⍢1X9x…> ACОmB;>Uw Pi7.e4SvQj-zVQ1qF$ײAܽy\r=1 iְ5;{nU72xx*hޤ0bq:BP*R6gf7P9$"*bSٙQ6m*1f`):.縐ȥN`^=3#|qemrEE@)Խйv?ҦL@27?O_zW ;mYujkoΕDE|&\/uC%NX{="`8]Ousc7l'hDJ?@ m¦5v-M ߳nt5iRkhtx_'Μn2x)?iY>UǏ3m>ȆX5b@- zWCP*aYy]Β^]0bE[M= /[d>}]! 1q) Pg[:ՁQW=VV%jКFqJʼny fcsdQsLfgLl; GHچ`^t^iUHc}rNcgZ좚YT¦ijZm&5&0))l8:*_; ӹs"J=nO[AT`13\a`סAQUύtR"G(M#!['ehaaRv&5*|oƥ6:=jvp0rqm`E$&MQyizW[8JFJiϧ MF}5NY*uvSո`Y)PSsH"_3r[q6΂ j%I+Q% >cp$ܾt;DG!saC[C(F{k38^Laa] %F\ 2(.F} @;u sfj7o4(틑T20V9G69pW'C@`9e\Bf18 *az`2%+ak}XM*;[ fY@Rh {-\С%WQ9ՠ0YƩ@ZˉQ͑}i,~\d[*\3f۴i"CB>WgU;q3p=ak/omJ_j<Ѻ %P@Y k[[>u%Iccz{9 kIşet+dG5P}Ԫ [[9y~XW2_[_;К|nˁgvNރ->LU~st}k'O//Shkd=MjxoxJ+ɵ}(Tƙr[Nt9S:Pov}#olƂ;VNlVqC$ Hx^zXWOJicegifts_scr1.gif000077500000000000000000000165561263163240400402340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aLlڑ H$$C$v$m$UQmQ~f""PmHxFFF\ 33iiyyNN!!EEEEE!,@pH,Ȥrl:Ш(ZجvzxL.zn|N~     ̚ا ِ!ᐼ Ȗ Ύ=/S'z Ck\,HH2e 7ܥ0\%tiY% r*&#%` R@%^qd=o iTM8&LԪԍ $՘+,~8hƦe="Mݒp3Zi+ )vl<vnɎ;gy콉Tc xմe*!LOёIV[3Cʕbv3<ϕ ic 4@],0k)V[=!lc&RgyZQ@ 1P})\7P|GX xU3]@J(`|`Z,V E5{RQypbr)"7 JVbI.'YHO,Vb26d)9ϑS"zP_}YjbiUPnS8qe9"H@1$Pbh9e^Liz1n%| 4( .X'>.4:iKMbHxlK:ZR xi檎t.`ת%j #{MIܯZYS:: l(n̮܅K[956- ^dÞk0qI0Cm { jȹ;pǿ` o=2ʼpҾ/ߔ[c">ݨyYݥQn|] k.\yg_<׌mCb \6$`΋QϻxoJfߠ,a #8ſT`rÛ$7dڍrNYڔH@*md]7ыG=NX'WmyГBҫv%|Su1Ʌh4{e;!؂'#&[rbDQ/:S鄏Dh} qޱLHVU+bF).ő%)&XGz#R$2̑\x J+V]c''&֯};e_׽\~ b%unԕ (jRaYFrC>1u{ 0d"Ԫ^8]^YF )zD|+Nmo]1X#uFeR wƱBZ//|`(xq eI¬"z2 pKTtb1Œe8Vu}!W׌"ZAb4$UI2rn04g=!4-񅥸`y2>q{Z XaX1־²BHYJ pXՋ0oxq3yQ9/ʍ,Y>c|DKޅ{Io-ڬ7Ըos%UWz*g؟dpI;!%WjbZ{=O~)t32Ѥ:1)w%}hlʄF5rYQ䣾mg~M^L HvǨҜ5QעCij5gNsfdR'kΪ)oB*BoVb@a46H5%7uW~bՃ˹]M7dH4'RveK+@'Yx,k=2 RC֤̊]nYs!ݹU=pj V$k7mJ}(+o{tzQ ߽3~}h.iL) 9(w KHQk@,{C!TPFk~Y"X1;O O }kq+Z0bYbNW2eh e{}_uNh"EBpƁfgfUetSCBHf0֦wj50y(8Q!:aJd<*Y,A s4>96WSe%=WzЅSF39C xjXו@ :&: J#zٟ;tBכ~Jt|yQ+0 Г{ A+@@:mjyPࠩU%7V!$@Qˇ"]E@/) N%K.b;!^DsE9j%{ hbDg#@+8F_ f V92#մkĵXZZ 3+ D>W NkϙkVtyv pHxzb 1$O2FӞHsC*_K:I4|J ` \BhdNs. =+dHk  ֻ#x 2&d\~|DH*;Hf+RHd/狾 3Q 9oyj[.# ȊB.R '[e4 ELUtQrSr yR$ppʄҭOziɥ aA_VQ 2 VAk 5-SĎzq*@"A 1< kI-g8 SUń)Rm,`;ҮX| 鏞zMXS a[x.|c@U}\pWl{q; а@4>SGa){_9ْ}Ctђ%݆njv3o]U* Ta{Y/>;ƇWD6 |ʬb,`'q9>tI&ˋ$F\Lo~̹BV+iE 5P <29tD5?I,8"\ psLF+H}*m=0@{D򼔰1 =2M|oz{i#Lr$F'r ][4! {jD<28 pJcQIF%*#p$u;'SB^/x KnRRȈ2 3!EGK ! ٜȸL?34ʳ祢ӝN&` DžЋ=ڕI8j5DoٱKȽ!Ąc";| JEܽ$} \K0V[Z/zt(w:%4&`MƽܡU~z-UxHƖzfP5)W5Cl8#T༤qB4v ܱwmW -j[ =eMCAͬ  5.7BI7֞wӣ{-[mI aԢ߁!V*8>bZz]\\yrA(^`lȷBF@ DFՙ;Ð. b ۇ>ta[CگM!N LˆYکf4".sMN$&G^ }5R' |kT$ly}ѳ {h l Dw(NS:E^ ";. P("#Rm~Ojb{p-r0DG`=, y> SlhmDT, [a.+02BF?DإmfDnykn>>)p,BҊ1To(VKZOn ?V0J^w5/Dݷ]'%JPa#\ N 3@z_(m ' 8 zŠ'  [)3l R+m7s=>L 4yp0`ZĐjv8pï kl˫ '|' P  X4 @HE4!*(Y BUR0Fl-4 k'y' צߚ>F, ^qsuacFWG6ذ@EMW9G"\wz{{ϔ8GFH%$)ޯӚ",#u7?m*մ7 n ( aؤB8A $x+dI4 >Oݨ/% L+8 Q"< hcb4 dJxB0*D$F̳&-k(pJhO?v2FT 7Ao]SB;6J#]b/I@BI @(0V2zᖇ @ z[I4+[·b%ʻ aF8V `ϹDO1n,I5 U%X_}_xP 7yyB@^ )hFA(AȎ$BZ+ i,$ Pڳd{C2@;$ihAfhABrܱlGQG#{LM4TNH}ZF1j`@3T MIĄ`M5'DdxD@AXh<쓅!SO>4QBexeTAʳ; L1QW[mT[UZQ [" eA^}4`X@% 2"ȵRx0kӴHв5KW_%7T4u'x8H%pT@!@X{5~ _|Q"_aÊ+ʨ8>vPE7LX}WLJ>w3Hz1V5Bf`W56k.KW=Y!kӟ< SeT=We[SEGe"":h~;踃6<ˌziBNO h㎫ +զ(Hx\Okvgm er^XV}c:-ӅXXwxץE淵Ug=[K!g"᪪c ,$2rYϤM&YwֈE<-tJ]_|7v =! L|"X˄rǕԇ;ֲy8 $5vIV_mUE$ 8ߞ_ T$&BTHB"*B4Xq~D-/Lk@KBc{KtiYƓ n1AYOP= /p01f!3c']J2:B# t,81"bwy;-\ Pa b$)@JSPzPXR’"I4Ց@@` ZTrjJJ\DQe,%//x|)^bE e+of-H,} }8eEPL}>`x>(H2Ak`v@-a<OwĨ'$ɌT I'|!L5< U\ldELJ 9+32zңyjaS2FAp*Am(g6g EM J=Y铳>@mu[WΕu]W}_X5aX.uc!YNe1YngAZ^6;icegifts_scr2.gif000077500000000000000000000172331263163240400402260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89ayFFF[Llڑ Hf$$C$v$m$UQmQ~""PmHڦ 33iiNNyy!!EESS33rr]]!,@pH,Ȥrl:ШhZجvzxL.zn|N~   ՚ 𲠵  TfפETMkаmj 2r@!U)@休 JBxgޭ]2@uf MU"'ghcGHpC@S%$ꕫK2O0U [K6 a`zkY>`~͛eky%Ų|L]M&s$J9?NtuG ~@꾶0in}6ؕY1(x04Şl9,E`t긬u CUw"H L,;*GI}qRDT("K `>vJkuz7믓M;ńS¦[0oV0D+Tte %Kl S#n9^r$)iaoq,xfq!-7`}p uߢݚ.oΜww-e1{0Q~ݙ C{y(yZ~LT] Oe 1+SIq/M)H#1IX_:)m.aTTU'NxTXT-b.͎ך&_rf5\dz#IfQɏsSc.Rifl&0Ybf7J wǨրy|UFTZ:f RH D|$r1:$}q]9QvF D$a ]ɶ'ւjVP_䍒u*BRmX15='oUq.Ԭ_.zO@= 8@`M{BdISU ƹj \]u:*rÖJoibL^"LB2q`G"JZc˜f p\SJ07ڍL W-'Hˣۮ/mu0 dgXot*)Ě"wJ&dQ!@ZeX NSKMX T +ՕJ+~ 쫗6k/TYD]y_c %s{G`ĕ 2 at֌ Ԅ{z!B [011ŗ{ypƵyX6b~dsz~OeTGŸ'naˎ9\b-`*T,V<2ڛQo^|}嶞 W$xǙ'%K)e (xHG #}~fkpuDUPfhh7rV:xMRā h-6*[birgp4 d|您fחj5 7LR'%1'f߂2=XZ0{F8mRm6(٦-Ŗ(XG08İT 'h94|^g|w0hSi+X.Q~C |2 'G *Ŗjhl)8nz1zrT~̶Fl%&ar~b9TY)uT D;d\y5kə\WNR|V(^k40f}g9Cc5D;.攍F&47pB)dc)uL[ykG<+S&yi Zn@L "}7t\ 8S%oL*nb"<ʄ;ɨ}W\[ ^V8>*̋&q~<hٱ$ nĶrcEDrAz+x' ,Xcp5S){gVv?:Aq٠5EacSGV[iPƲFK8}k tH~cS505V_[!#(>ԙ%nϜAq%sdKD뵙í1~U:Lk? +uYhJ]FN[K$bR1g$V0]@. H; j3W- YmktU`"ꐝB%Tݤ8ޑ' }áwS=248,9TP~\M^>En:fG0H(lQ696`L.-%~e!YzMvN>cˉSi%I5n~L."Xӏgqm.!Z_;H! AW2tK, l>.^3Z1`D T8Q`qn~% JT{Wzۊӷ1.P…Tat}x!QĞ_sжްC AԎ#B[!.W  Pq~ѳןKQrEPM*ok :͂nN!"}k&n2r%󆁴ՍT%o!@` |6oI+Y%_z>{r.Air0K> چB?%韧]QX:vG߭ DB-g?PDm8B[a!ʼܼ ,UoXšBNi4U,w܎q˜œm.hRBlF Xȑ;![jYjUnoC!ѭhS0وp Kb!a_(CPZ}\! @ϴˑ  X4Dqp^Q)H^ <\S)\2ރqSH<|(`( -&$ *Ӿ 03#0.B $&"0h=% u #:"~%1#/(WC#!&37:$:|kz;1;%1~#E a >} "$pGkI;wԹJ 2$@IؑeKu$7۶pX8s. J+ώ潃w'Auٙ<.fu SaPGع_Gh[z ];ud%5@e;V$LkbPq;nȧ񪍫pҠQ\*srarm!Nͷ:ǹW8pv51] zxގ;3U>8я\gq5S_-- @-iv5 4@>L;<;  ;n>0¸Jh(i<diF;qC+;* M0d A;0 Q r@ e)AZxxqP+F(+u8k 4 7D4r>꬛/s @$n̙"ƀF#"%/ S,95(N K'7"E8O$JPs$( {dPXcaeUp \jSW@NSOI0xUY=2Ȗ.Yxu 7H*bkh_hh~m` ߀聇 lp>g+;*D;M.?L;fzfRP!h yZg&s!wB4~3 Ր*XLNvve;U _m!H[j ppAbMڋ~k켳6]F]nYV?+VPa&Waޥ&WW]r8Xm׺Hc@$]()t]c'a}ew;ya+^`oi 8 8@j.Ap$F{U|_T>ʔjv[]յlvq[8%W#F k<P$Bo! @wx&88" \s|6$BuaD'( מ/n,0۽i6C"22nv;cׁ):%HA|g8 TZR ?VV y$WLBq"cKj2(1g+0nJ2y {wCy~q˟%,@1A1][H;\I EE!iXu4JxϋJ:} ZwQ^@=& 0x=ԧ,PSh.p teRC/5 `fd5@n5ot&&$h|2 LgJ+].4tJ˿ᯁQ[B SX%"ЪJ4.}IEL'tfP\4h5J"@+ᕶ)ZL+qj"UoK[–F\ȭu8~Yb(RGv62w#6qT)JOi烑[P5Fp/[!v;Q0d%/Mve)OU򕱜e-o]f1e6ќf5mvg9ϙug=q;icegifts_scr3.gif000077500000000000000000000203701263163240400402230ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aHqq`S jMM"22QQxMw""Llڑ Hf$C$$v$m$UQmQ~""mH;\!,pH,Ȥrl:ШZجvzxL.zn|N~'0+((/00/(0 )'+(+/(̚0.)ئ*䦼! !!(Ȗ^pv٦:k1ÇKJU.%2jф  !!E\%tiY%r*0 3bf4QL82ӑ"ZEX0Q@K\{P9PO]UiSWwu* [eT]'Yvڦa"eHN+wRw?-̷iKJc!jZv2&Q7FwS"|O*_ujtW81˜^WC ߿ |ȓ&iQK_xui%Yx*{BOu 1g}|֙t w X;]AL0`zt P'_^a&R's tb%R^/fR2V6^b~;cjCf= t" 'iWRQNYc}:zܖ\nh!q%)C -$ri{ I%hr^di`N{( E)9jN Vg"\`i-xZjjȔfت2U ش>6s,L{3 ӡgS=1fhhR}[sunkh{κt殣7ΙfHqIKhv<®>FXѩg4"p^@-4бig.,Wl:AcYR,׃ҬO`,<ԡ:t{5\ BT,#t ߺD]-Zժ,^6F[>=u[݂7}x)E_ZUUꢑ+ Ϛ˱Fzu}r_q_DmJc@ [t7tpǍFz~}~uW>$|b5P q$yI79.gֱ}I4~t\$!hp5б<@0Q T A=HO\+@uhb3G;>j eR^f-l}҈Y){g0=L D!svG~ (U2TV"MSN򐢐؎F/}r(TZSxP+uO33 o)GVnh^(/j>)NlKTfu;uT;yOe> IQ~iJ[,K0V1/mަi-OI_g [IkXv!}J/0wyuJo8KEP^>R&'G }Dhu3p$bmjK㋣(aiX!ȚJ`{5z!zLUu iPzҮvL)(d U c:0FHp@+Z- Ⲙ@MZ}}mٟFyT1}-ہ-rY%s^ m1WC\^쵊 ܯy# f5+њo`ImaS FR˝fHvHx%qm,4v8B`5e;|$gƑ_ "A޴‰a hO)>4G5;A7HrhƼxQm\5g/b.;X Zc^[B\* I*Kw;gV|{߄*ڗS(1GB솮G@=qnG;qCv`Ewҫ`+dmR;peUG6we O:t:o˦<)C"6kQXZnڛu>K0UgHw\;@H [z(*ps3 } TpVƵ2e@<.`  pxH~|a6^|pTKz}b_L4XX8x}޴Ӌ?딝ooE.ȼ}}Wu~]M_o4u3Ws_BVw3&A[g(`B҃- PxWu0:Ȁuu$AeKEҁy "(z$ZⷂgpOuT.ftyA8t'wbz%`7{x{:`Z8Mz({{S%PMUf fcLRx+xEWYx NcgSń-a4NVe聜0P2JAHa#+_d,O f4Iҋ"NQC-eDz`!Ҹ"0";0f6OG6P~f+ru(tI3x( u~ifR P*.v" Sh͔ԗz #Y$VOzv4\5<(jUivd{H"yxR·#M"QQv.'P%=7V y#ɏ@|hX)&A]UV6z)l|&k!@X)  ?j@!?dJunfm 4*ȅFi jL0sI0 PNtaGI\,  j[uU3qC:bM98o|{ @  0ȉgc1`:$tsC7BYQԩrd,! :TXD7 i7TY"[v഍؍w[P\:vh' qwSB:)SK%TAQ0]wxƘ^0tEp 'G(MVb8+aWMo!$Wr&, ]uF>ȩ|eoxWG6ZR$x!]l*^thweՖo$0Z/>Edd b2:!Gx3ftV 0-@@iAMZq z3/`hCPCGEجGƊxН6ī(=:@X2f^و:r\vDXrF>@f_p)j!4Ƃ:cGưRIª:;<nQyX.ET%EZ,\F\SG:Ie7i%=rg0w2W!ڱd!:ovhLWC Lyȩqa΁OCN6[g[,U{eمs۳á|, e5-o"qȤMz]RSqfsMxZzk儜*K.:$"0+0[{i,չ'z_ 4-Sp0ɳRzQlûk&1[INnk$$;US)#1%m-_ٔpʵNrib%EVfھ +urLhL%x7N KYcur>5rQA՞ق 5^#:2yL~$̾- 62VZ6C JnRyYNjELC): û0?,.\36Yw +y3|åi +pNJ"],C5F#v7GIЭ.+i6! pM/r^.))]) uʧB.퐞).&P*-njʭgQ'[Èl<˰ķL%تM#|1d&Yk2J0, 칼4l(g$Q̭yw5 /"_й#*QGme_z#.+B@5Ő$OTR$=gb6Vߎ]߽>?TFIilNO/T!6jOV_v>'4Ի/ +ٱMj8*>юCq+W}pd2MOXrnU3Y"J4D6N1{0|$6oi/#8t1Ußo2BΒ" :}Cj$M_2 : WX4ɤpt>e6PS+N*SaX<)T>Ҝ)t߉/BDVldVB@@ 9DHOZ欢@ҥcǎv ƅB-!G>sdT sa4-xaq`ț˗%is$D>kL%d@ "a* GFKiZUJAuE YJm)ǡ!D|[\ōo_( DiEEqLWt!GȂ)mb0dQc9K'ߘF[ܶ6d}ת}r‰OwcrPZ-PtOᎤ{ vl}tΉV`xɼ-I;HL;`B ;dRPtIJp:cCR4+ cc ^7$aQI: KMn H䱾 Jg3PLF :˩*DE7; ;!B+7t~3@A -tPؚo--BDe 8AzN@!DdsɊDǓjӜUT3vN0]OTeN{]^E!XPyVFapʪsI#BSc ccZ_|ޭ@@d̉EYe8!x]$Yg#Nb=.behdݗ߮@ ޒee歇歹fq6FizSSN{j} +va.p+Lc©KN͊ë/tQOi0?juۗ)߮H޸b:u^l=ݡFag+;ؕfM,ތڎz3}@D1|+D=Oz3!8ܠH:@? |'LDůp [82piS@L=Ѐ+2 f28L |gX߈W%,q<ƵbdKG4Jχ= }(qE"(`qŮ?`a=Pq`9 BbHd P^sĭw lG޼}S hbWp$<h!¥.<`:0HOf3˹+i\A9~+[MY`%9Z$ZL.1 hF<附P? `e2sfܶ/s)y|f!;*zм(@^\J Z@@ 0Y(Uinj<@0pzhD@OuL/q^P7h! *jCdT:j4Ru] 82D&EHi~bg-p֔9e$2L1 d`BJʣJ} 97JoUVB Ju'^MڗdiVt֦8hzծI ׭YpXH5(RG *Q}d*'6VU.de+5O} Zгi;ݺ6vS d3< :rRALl:Y㹎unW꺭 ۬ukLb`୰kWb(JoS2׷p͏n'B$8͋r֬=.*" I. XmB< ODdh4Ԏɷk;Aj˹sACR$S75l w8X 芁( H0sk.3c:;>V?U7wh^-A @OЁ]US6 "r4[4:ZB8=|:#}לu[ns?v'jDֶa`9@(lu8SVTkEá}Mכ#A( Hf7mnjho{@bvo*9JIG8wQNqM@̯t*BqwsAgۢ/= wœE/L5͎Uf_uSU<½4ՉgWo,Bd+"GW|;y1"PvԤ0p 0p!0%p)-105p9=A0EpIMQ0UpYE0;icegifts_splash.jpg000077500000000000000000000074271263163240400406660ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky!Adobed.$$-##-*#""#*8000008B;;;;;;BBBBBBBBBBBBBBBBBBBBBBBBBBBBB##1##1@1''1@B@<0<@BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBtd"2!"34 B$5!1AQa"2qB#Rr3b $!1AQaq"2BRbr3s ɀҚ ߖ_IGk co!c|{Ͱhj3z˼9eb%ɻEQFIUfJqmwH=K}"Nj0L3W"s债<#fʳ쉀[i}G(̪T_nLY7!Z Sŋi,SOeo+@U ڸ6?9br[M3f]diOZa_J f"޸4!Ϋ6u{Fjр] B9UlUr,l֧TŬl ^EykS0EEt\A5Nwd2`&f2brcp"' > 9(7.1pd^K5ɂ&bqdcu~T}5/HJ 2 rbOxAq& I"|qrg"9dgp2rZ TfHɔsq eװIc/oRtS={/h}qzKTL&e>}]QYkcֶ8v){z?7kTеq4#b U%ˏl5[ Q~{ ek^ޞQeJfwZbV]ߚ+X{ 0y( gMP\*m{,7~F|Pb-1f=u{aAj4?80LiZIj.+Р&&CrpaB\ W1:G+bj_$5Pb\[x<.BaO8[rk-@)l#P!ئSnH~}FG[F\+d%N9щَ9)/Mv{/0(!p⫀hIqzv|5>^9ÆI-db.lfߔj28 #A$хaH f.p=јÇ-hԷE;(\ uRK+_7Te~mv( ?EI*&-#.4$κc"x"xr5)SISի`g Ft;=Vu-°I了QX|qMaNؖ$5v8eѹ=^Mj|j[k*_A2x-iT,`*/n4i1HP$ˠ\6(_:cKz%G=5aB k)&ՀژDp˨]FO#4teݰRv . [Pߝsejp`"6{|)=6vhwm:/xq:XA&qwJR=西J'{ n14n0Z~yX O|M{xG!yXNF34ƩF]ozKy]>~f㱳zוQknʎ'YKeq?NX-ٔҮ 9q Sly`VPY1O]v.3217E '-{-ČٓFե&ͳD` qʵz;?~RTWRz[[)$AP k&2XL*NSH(  GO13> 鬈>'t =:qDi&nfUBr]aCZ?nppg!g?gCLT۫{I~~cP(WV2 'ʊn(<"8 3in[qo $ F'-OD⊪L:mcbKn)usL 5w X?.W;IleH$Gƴ-up?|assL9vo*0bp4[T inSƞWs=_({;zL#?>gI08GYi/d吡?yw;fbp=MX$ X.8F[iq.ARt݋NP ԱtA:IG rCKvaIqX)`Z<,6;[X wàF'Ow4D1{+9MB&~Z5o= pJqoOLȈCCónۺ$Mѕ٩)Xġ,vm4#?)ŽRWT`rɌt_Q rQM3XX.#opiv 9$ YǺ#`I.'0Dg|1@$U  u}ɶD,>&zI {\krڥgف=ޥX\!\bGW;1 +k/?҃2zvOȌ>/6OespNX#@"ZiT.,>6B\1eX &0؝40yG™mk  f2 ɍta"lgo+3]]ݹQޏ4O1oFLGu}'}䟹9FOCj)N<̢x1O(}13X&?6ironstream_scr1.gif000077500000000000000000000221641263163240400406120ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  *0"31 #(:A!A E+.L8:d0KfMU PnjUkisq GJWMOmJhZ\as`__c[qdfiegxnpolqzsdmvkvuuz%.7); G UGPM \Yu gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZb~}711<1HYR|wrRJqmj,,Tr\Y)wszuz00%( %0.(TN5iTL7v[HiVwj[BoVys{|z~~}~{y  AbՕ޶1̅wաR|RėˡƧåѭƪԱDzдʷ҈ӺΑϞȡDz»¾ٽ½,3dtႦ.رc!&N2ɓC SXÅ/dJLv J4O |F'%*L9Ebv82BĈR\hѓASi =btJ4'RN8̃aJҭS-*Nv\EaaAi ۠&-`.)SNA y jC lpe,9nejZ\IJg,ou4mjh]NS S ҩC{wy2Y^8籖vh6AIdgЈUk[pLeILTn]G""HuD=J"$" ib~`u,diFqpEJ˥T'&s eogaeFWMVhSDct *"AQNY (ʗVbTZyQA]EQhBrF:F|f\J-ӏڴ}eTH*"I}ȖL 'Z)* " aJmv(cTxdv[Q5g fB].O*ZP9fPdi@+헀dBG" huEqTcO1R1 JRv-XB:1+)ThݖkJv; 8 vx9-*|hVWհUy)%'QS+-;̄p@M 6A'%3̚ >*M t0-H0}$AQE1no:rQ1 cpp@Y 5dJ=V\Sx"ib8 v ?핖fniԧLA*$P&XH=TRssS=R𝐎ua'!R!U&p .Pɪj$Ryu;v{y}Gs#^U|fّwD]h,5*ߖ(_&BX߷d'HD,NyNP7&)GQP/|pXn3U  v⠖ҨP,, uNMx!.%PIGY|Xb$#r82&? loXRZ(Die'QD 3ƣd-5(IMTX2sDQNbdz$mRYJc-Z֐2BB LR"GF"i"10YyV4}A>>IIV(2@ Bj!`L7ǔs}0u!鄉h&Xu+sW&Ф>X1HevBI&m|\ʧLy<fiV=cabl(YalP)hX b91D4 IИ>C"ޤńQ?}v}-#2Y0uqVAj4ENQAR:Fpv#\` XҀl>ʞD(N %s2Beq$)0!>C*!PPs@@H Cg9;VQMh G'` N %)$dD3B5 EX~Eٽ(yKa<\Њ6h%,Rdjk0S t-CP2Rq׭8\"54U@R6 S#؄v?]n)+ `F:E@b&#%i`ө΄cĈ@ꋊjKow$C8 2)E_)׵2kS@%(;OO1i"H^095ۘc ">2 G)M֞#$πLW1xu$ zCJS:&!C Rzԥ5`gx2PFhL"}Ɛ50d#W0J[zH<;t>AIjvmV_4kJ4k)s-$Px}$\Ax2ICGŊ@(lPa/;H\w@M !ݾömɪ.IJ"7;a0EU,f0G 5吊I;x(]<,Dߢ G|/.k44>s=t uv+J'1L6%wK9!s"tcXWϰGu$#irIj9{юx>HQpf=;po[ݮsy%{c]f 1))=>gRiSzi,qo,;@Վ޹={]ϖsխR{K@iX;\jv'7hTWr4,Dqtܖ'q` q(~Sn&~CKqqLV+zhjFjWjm7%F qr&qV'j:8BP! !qXSZ'tP`q7tb#Dd^bcUa&|.Uf:!'S;dnhX*u4I5n$y60h舎yH10LK@}HeHUx;Mn'~ Xd|nQqhWR&C:PX'H@UAF)I扫7dHsP=B1~~6S!۷L5218(T%acַHHU͢gŏUkه&x}S/!' e\pXAnqX:tcEa d|/9Tw(GM}yOPkHYbwf;f6ydLV$/3JqAH. ATL5/E2&2,SAa@SZz"^sL'1P3,2U26vdGyR!@y'E2fE=A$[Q;9g ${ #MDMqs|NZv>~.z QS#Ӆ' 3z%[$vdEH. 65Rvř):8RB%G&/f5K1hb6qȱ i(`$kQ+PPC:$Y4Qqe#T_wbHGyRθ ( a fY RaFA:򌙰 y>1fZmb Sz7P 6!(~Gp ZW ?J!PB=̡ x32YB)4# e.":SP 4 tꌠp ԦoNuJqtz~B\Ppt$"uaAI!2|5 Q h x &`zF{ڪFڪ{ڪ (A :ꌚFZ jzs۪:ؚ8 ʫBZڪwJxs 0 &@*yGq:~|GU筱 WjAD ZFDmJm([7jW)5pk:~ZeK粮g6 6@:wK :wKmy+b:yjT 0 &&PO붩JL{j /06cKyr| &0& ꭇ*:IdzDH683`+q;s *b t˱8; q5MtZ7rC7p3qV~ ˰R{qP4z>۲; ˱3Ӽ;7+;Vm0;tj!D[k ktZo%:zs`*:|xjYX($\ T2qp{FMR[PqsJ A6 ڵ08̬Z@ 0NE$FzrU,Ec+.AbEŁq!v,dsq q0#H'sffפZ1s>t7+*2PީX4H KKdɘZ!#V4D"r2ZrhDKUqY~2{1QtNg)֙Lbd8.2ʢllYuru}I=fO$aIݖ3Ҕn#=ã_Yt&Z@Zۥd`$Xw{PrPwޖRݜ>o`E d؁1 ^CG1/)Q]eBYQ1cl Y5S0,_צצ{wKkmu" ` Z8o?Aue s]m ᒪ XݧuK3{KXtVZgmc16tQS*1Uq'c}B܀fnqK}mgO=iUZv9QSF#n CFUC`qT}ߨߍĉxgٕآd/13ƒVX$# wjFj1Aj7vCn7}ZX}jOv&jmC,G˗VQi wp=GPgj33|[5{&y`t@(#3;y&(Hp{<;pj ?ʐX&6K@#s:Et*[ϋwA$JѦ2c(az){Jep ng^jd};-sA?mT0jq:{v*Vq}+F tyyyq܅~D:cqC8~CHj~EQh~AJNV~A|0h"s9y"@D7q{~<#}SVE,&T(fTm zQjG$f~~2;Ua'٨+_CXmJ#tj.nv=_7ԯ^ ųgmئv =$ًea(b:'xu7Q#A/B:b<4{KߖpR Kү&yHT/0#I/2KMhɨgn4מg v68` 2XЂ<606 ȑ &s!L`Ȥ0& 5](itSF:jS;X>0Ô) d ըS}n,M G޴ju ʖN^X]LɓiMl2p0S)65i\"RRi$q#Μ(a xv[˽D.-H|3|&\V Ա M*y,Nnlѩּ_-uQ%X գO4lckem>iF#N`"=2[4K+kd7( TPygWƵtkgifסCL|EoV<#0o#BUHWZLsMOWŒKNRY'IYQ%wzZ&)\KP0NZ vyZoAe*G¸I4 * p(4p`KP&'6ͯEZԸ8lu=i)zZ %ëMtÖȕn囱p3<;!IӝRLL|JL2ރYYv/BcQywc_$K! }CiY|$GZzKRwU:p?a c `bzA#n޿60,I KN!mYr cS+~=. 0Vd`Eȣ| 5!3E#KŦ|@3rMJ.|]43spbJ49h ; 鍰š\ G:x'A4@L?aں<{ҐUJސc9y Z / -$ AtȾV>^ѯbRK۪ q:>:ޓB99҈.5>R ˣ9Pb-'tGD|V(C! Z%K >;Țz 1 [A1Y +%3܂r,B@(4],xVK?دYY RH X '+x2s;D0mLͨ ]vA`d?XXpz_Ḗ ZZztʰh d30v"юq 0=ȍG A0:8 Mvzy!gPh?˺ 鋗x9C4q <\JcXȖYʆ)zF hHH?IhY@K˽ 񌾠8$xmPhaI !mA7~b( ߠu, IJ 2+a:< Y PxC$ gx\FҜ,7u!fMU PnjUkisq GJWMOmJhZ\as`__c[qjaZiju%.7); G UGPM \Yu gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZb~}711<1HYR|wrRJqmj ,,Tr\wszuz0.%( '0.(4ZYL cB029Tb6EĂAIi’1spdӘŦ"Nd$dY!0AF7omi^@BX(ö%9TVO^)4]/aLo^3(aToin>QE3>ۄP"@`^)QrqFpJ |M&LHXʓ}$)MvVAV>陭I{A@(, P#RB.P^%+i[:A d0]H\Đ@61e ⣝pg A$"!̋GR"Ѓ Tz(E!ptФXd'KVV=t21\b=IRfdHrH-h .y&BAx>A v nEIRXIk0AtBЍsA̡Ҕv"r]'HP d mH^2N(<uP 8OSLf4?0 ut 9HWU$P$TfY%w^LҪ;om˔[y=7Lm6Avٙ4^L^:( NߢZfK.qA|z0%)VHtH*"xwK.wOv{d9 u(Zn϶)!@tl֮'qOs/ӽwlmBԞ…E(#/9zid|.1ѡi\}@H\>QB \9L (r1(Y1 E 0Y*aAH3eJhn ()G9fG&X[fHA)y11. 2 ـP 9CAE+1$[HuJ1Ⱇ|ٗ~)e+Q Ly1^7L>7AB6sɗ4GB$#(1!?؏i|ifJzٚ~Hr0:<YYIE<#g4#K}Is&Rk)S)):UMӇe= rW!{՜;坔}S1#D0Ş-tQNf!u5"ё$.ާyazM;AA&[/u•,!.iWDD!D]gs0 HvQF( $2 1X2i?3 =(â/a#gTU%qNP8G۹q) Vd$-z!1GQP7# -P Bə1TBiS)@ %84AQ4 aX{ةVA,ʼn  yI!2;1B1Fpe QHu0F)Jalw0JԎT&qD AC<& 3 1  'Ry٥q !q #1 J2!:t0% +At [{{!{!$ (t+Lծ";1;؅v ŲJL 0 zF۴+KX;R;ڳ95ZdfJ;ar[q9YK˶n ڷʉ{;y;ԕHk붇sY;빟Kvۉ˷[۷oKѺukf۸k{sP ʷ{&+fd +,˷{;{Yܛ4ۺvKW+;븀`qxu۶{k6ۉJ{[ L̺b뉬ll;;Wc빺{;Òꉂ1;ñ[)9{ vQۮt\Kڮ>k]RwkꚯN̷D[J=RPG]o$AP^NMͬM4P8Z5 jKKb;=UAb*Qe_v-Yq$*%-e2<-!!e@Pٖmr]]!iAr Jqe]o`a]ao`]GiQ"Gٝp٠p۠ -p# c bQ_}ۺۛ픡! eAH ]G&]$Ogq"ڝ ܹܺZ1Y[\UPjLO -1;MaeOZL_F\Э}ى&5s`cA54ߕ-jVH5ֆ0Na6uri̽ޘmi)*Vv%#&TQdE`&憣Gټ%a W#![e"5oGhM s-5vdg)oh5dx885r~h甌)DQʹa {vnݰ qnJMX'YטFM1lnݣHgG]799rqMNsh Gݺ.vN#gvn XT^x.ٛ(aG.0^)1X+VqyKȄ(-F5~~GN%rQspJo.nGT^Sy1yFdݧc!rƺ/Oowg*t\v%d5pyDŽz.UeuKoVdqK s0BJBU=B| 8`&48@ r0e· 6d(g lHXRC90<`! 6Tc sQ 1y@ 4l(Kʁ.<Q:EY2 E ʤOI+X:a^[G>4Tr4\ э^i8̙5o0ha;e 1\PfIY֮97$QФ09y6QƚmСsbQ޽ gTܡ0xLŒ5otw0DPi;2@2.&4X"84dKzlC9n,\KJeФF4dꒉP&ƘIģ{"#/Tc&M2C33P㈥T66 #0àKzIC (H1"jd v(zi;"9: \#H:HQIe%2K\Zu1i8 oM`Zj)Ɉd).ħ09B9Xl  DeL:%/j)ƌT* KkM6L W.Ո+]":LiψH6PTn  !L69-#:LS%7]Ҩ$Tp.=5ڕdATL(_}K 7A2 E+KaF?M1Шލ|L2o-Ԣm3kԥ" He#6h8͙.::vK4X |U^DH!1؄M`ƪ4Ukj^ ~J.PW7D–Mh|d?MhL"9.mAo3γ\\ o#zvL/>$`J1zHML/R(k(}1eKؙ6 W]g?B( ѡu4$."KRx|n&a%" m a-=$) 09D vU;kDV|E+% 첫y%wQ+u'49ān{cd*\ޅ#T։l7MI[ڡv5yeW Ӵ{idIԄ(Jkg1oeZZ$7 Lx] b i 6z,ek†x#Zkji6t1d;P%#ٜ ^&d85 gP@9SLF.!!*Fڡ4D)=F:ҀҲ NrI}*ybQ2I0vuD[Q8L X*5oCK7jUʕCjm0d,gbbU)Ҡp|(Xz$Yj.ZY\7jL\hӺؠ'΢,7z@U !h~dur0KV)J"RwEܦ"8zx+g* YRɠ((|I&":M*0ϙKe,*RQxS͇A櫿~j,M#Ut[ Pvv53<}ۈTi^TκR:(|XHc)׋)YԌj)3gED7BI&-a(BqmjQg+Ty%/;[Tcp4,GLڥT$LF^)8MIkRIRMM|WҀ(ӈlq5CQINQl\2 u4>A('X&l1sʢ M|廬>.QR'=ȱrܔ|*%團|GG*m܌4&TY%L-GG5tJL!wPg,G9Λd&)0clDCEkIW⚑t"uړ#CYN}zLS0;np1ਏB\Uf>#ț 0];_iDcߊ3䮒IJX -懅3!mI&B|;XD"l\(1qIc `'9ʱN4-"r&fMwTҌØ$)U84_K:5fIJJ9NfF9"(&E*RѤF"8C kB=$`Y vgϢ&vfvv{^z`bebcR '_Q\S1iv脱Bm;Њ8#OxK-,I^i8xw8P$p(^>ކPZ\WQ5tinJBH9{ajS͇򙄔~%3D$%J=39%<Ō0#ACX@:/Y&$.283g32 *;3Pa4g*jj ;b ?@@ʤBMy #" yi5:\#C(Nj6> @^X`XB&Ux4(PU{ r5R 藤X8rR`kR14y9XA U39Vyb^@B*hϙ8/:Q6:i'!? \4DӘy8&HEAB fÊ))>9)C!(Xs TTEV@W[E+%+'{7$(ے0<$5Ee0+I C4'9jd@>d?EV9S/"/Y.0C9|X!29|LYh\5ÀD@dUB;*-95{K M!A2GUC ʨGl6",#,3˰,\IkgA'B1%R { ,t24 Ȅ`!p @ʄ4Y8p a ک : Qh똝 钋$ȋH~A@h̀N#D8 |M脤09 p9ȝX dҰ噩$r,qNr4b$OOl$> * #۬ú+Sn/K1۽wrڣx2gБ: ȣHN"99 )"3:(q{&'0$3qA m"2ĝC:Sc ;ironstream_scr3.gif000077500000000000000000000223601263163240400406120ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  *0"311 #(:A!A E+.L8:d0KfMU PnjTkisq GJWMOmJhZ\bs`__c[qhju%.7); G UGPM \Yu gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZb~}711<1HYR|wrRJqmj ,),Tr\wszuz0/+% '0.(4ZYL61eYTY03Y $I&^M 69Ps91*#J VZTNhgO{\SJ1BM{\;bZق@'HÁL86 4@i&9Lɬt0! %D6@uieT:#gstD's=v_#3KB0v&Ӻֶխ["@ʠ (|3ХE$TS18ZjUXn,e)I,]~+щAxANHT9ĄDxi8m'D! eZL"(m1W%d'Tr6,@儀 *P~LR;TdUߠ#٤\I۫l: NmTƒ66MVdvEC~(j @Q%C!p[`h6! җ Qm۪F6+g 4WP)O@ T\rOTR|~2i&6ձL˞3%m[nǧ3=2tI>򪧼ȹR'\N;]Zя$WPTXg,{/-q^kMS8 0Y({s{dl 6KM7D )6Kmg^j<3˕{D~[?-ǖUbB]S~uavGia!F?y&q~'|QGzQ=~FJu'TPGQE?Q%&Zւަo|NWGdtMA|aO|k9{ɦz.qɶV k!& %auu'@s$&vG".b'f$mq, k% ~M~Yfh"PUv1>3Npw<0w6$D9euVv7`3PxGq$u $ ~NXeerвA @mȷVȧ k V6D,ıiSAI9Yzbb؉owKs6&x؍P%?3L>W]، V'|&VN2b) V-0Knrr?U]YV9'Ut=\EwjanVgX,in*'2&eKj5Id.u@Oa?T]6VmhG הNٔs r1CV"%nap19]'UUO/.P9hEQ$A:s.=! 524-Q'-[ Hs lx1%T hH?1AYT=JK刏c@/w*aQ<)~#RFB?DAIKI@|wAtc- YzaCP`Kb4 "{vDI)vyh"1]4? !C{:A* x cA2@NJ]Z* q qQi>hjZa*6&Y!ZajVD _Jar-ŖtPs ws53a" :w3vZi*(ডZ+El\~@iuww>:ʖ꠴zȊʬfvʖZoup^o&*jکΪzaڬnʬ ㊮ ۮȰ-x-haju˂ۮʂۯ%K*+(˖nڲk+V՚2 +[úDڬʴ*jN\ bY:{Zʚ+Z֪C۱V /۲9[+#$;X{0Ek蚲Q۩:OoƲ+eڂK;#oyˬ qg :KuY=dJ:i: o:ziiHWY z\ЫLA> TBKqq໧5ʖqo>RlI%t*\FATuLmV闃h!`/̺i%2A MU V(eR9Sx2j1[eNT|$I9TN3Ș^U֒cK)\!*3g~ľQ媏nykUuf'{ ! lf8G0QAǖ)wG'!u2:f5gxD13p0I$3.C#0ɛ|8!I{K44w<GU!p`p)P'<[p >5aTHJL7O6GOv7\QvTX1{Ny!=p5IS]4V#| GW W,X6J}F e'͖Q-V<{Vt@VOIaPL`L[@9nbj3 xYv AMZ &ssmu {0Ր΃ y ]oI #`fe^ _e, B*zVԟ`EldRλ 1f={`!ΐ d\?5aQq4"bdbbdR NJ̚]MZFMZ$PڝϔmP&y[0 R~J_!veWn[FJC MYFz#m`!> ;0ܤ@ i# s ܞ}h}hARj`נ5J\21 xb ŝ` a ]iR#2f5͐YkɃ'jmئ{\v@xr.s$/*+QQ ֫6ݐc<=2ARXlLzҷCKYrP^佨4gqLTArxZgr{_Fqhm?j&Uw3 ty`M'1uL#L#ARxX{Zu?P\S F'~VVVV+hn &nW|D9sQ2((xUrx@ }Ͳi|v'=!٦j ĦolbuH!)6T;_(^{Mr1},atnVƶV΄&H eG~fjyˣ =Qԁ~{@`p<7m;1lzzq-#Q SGvw%K)p8FD,aW7hעжޝwrt,V˒ %Jjwzvd2 LcHK؄OR$ Z1r/n+Xnjۯk(F^63uȇ凱)eڕ"&DxHc:Onp@ d<-Q ]čXJ;j !\whT5vYok%qϜ#0shsiKB%BPQ8d8X'S&Q !jXΤ9Ɇ)sΩ0iΰ9њ7!P7"B["89gå09PYf36cLc3AɐgW\Ѭ0`c'aeANoMXřĪE&-B]#/}8ƺEeϦmX^S gk u ^Uuc@w@А!Ӝ"!e5pװC&N:3,c諆.!h+?PCo6* BPlDD蠆q6*@_bT N,jD׫:4DQlR2;hˌLi$C6jnK;L\QrN;"nND#5AH j+4uiN<"I*Ϥ,O0inKrLb蒔](*Fq.r}K~,M~r-d|g'Dx|Gu#QҏYL i;_ΣO\/\ DrDH)]XW::aj+܆W?aGH!l|;Hj7ց4H61XPN \Ttnv)YMBŤ 2sh_ Vi#Op;niZ $Q ,h 0KѧZ8a"J~S}2G7M.xKX>Qc(-%!Y`7Elha X0J xAe ? q ,!ߒ\#u,r `Գ# ZV Ǥ= &0Ae!G@n|K:g\aE,ٞը=L j(Dy8 @n"XBS}vj$$x|LPEA0ySкdgG n2 :7Mxƺ+ÌD<&¥(T?K$Ǥ޴ R9Œ FαA&FCP46.yg.Aa4fFjBezHZż9_PC r"ld;W}ͧ/6Y <Ҡ^hI^9hsŔQ{͕800M<N! 6mu=hU~F,%C% I^lJ(Z8[gY.'nG;я&9 \Fk8&S"Hݸ2[TPBjaEM $S\Qv`䆡 $NtB/iW78N2Ŕ4'+(%dGK!OSĞ(b#1 pBi+$ɜWl% ',^I`3Bq~Ù23v_M kc5iRtȼPD)f>!4QRc%:Rv, JHC(K"F Na yVE*҅*ٹ$c5~ڡo72@.DZYwm|{G[,l8#-Һ͒y(h_aaq냐Φhv;׮S P'l hLض*0*R[īWRWʏv 1h qM0x0(h VG<2Dc Oa3-F9f!UnT&+V[k(D PH HPW#BXѡSf fN2cIw'mՉRU?\ YNBl`vr*AwۅTWQ)^BO[)-Y.kmu:1 gZ* >ݣA$(TL0oAUz45-I۵1 oS m Ff#uGy}[9y'-LI ^O匔UN&;٫X0_eUAyt+O x`N Ip; )+  ]Y<&B?06RJhiy +'`Q!Db,q#ͯ$.29s<#3` ;ironstream_splash.jpg000077500000000000000000000040711263163240400412440ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQq"a2BR#b3CS41!QAa2 ?q !HDȉʥA*S=`s+un8{ d77(黻`|+ Ot.YL,B3)4XЎvx߲>O9 7OC$XΧڏ`Ne  ?/V%n\z:0 ޜsnd}SnsԱ2KJϧv6mT~>$jyJ:~L͏Owd>s#>r G0Ά$Dc{Q%3?NB.Lӎ|Mm%eg9ỲQ>(v~9ɛ.yc'"]BsbH@lw i \0l:3ղ18 ف#-R!R7 cU`tLsuY=} v*yq$9\4y*jǭd3`ﳈ=`%wL߃=%y$Bqgݏ[)1J.S,;Xa{siNKn'-h˜OCج"vbcdna^+KiHD%MH~u|<ve"µ=If[6qxw ,c;et)`̱ 9KcnS*OqL VHJT{0K0UҖoE舗؝ܽ/,#\RmXH-o<6KWH۵2b>hPr/M1D ;0\a',B0+dI4|Sf]nz$2r3bheŽ;W{  /t LG|Ƽ{r1sBkoDKoRAl[Lr 0bҁ ]mЁZs{'GL9U6n]-lگc+c|yEVKWI[dDh՛<\wI\o_{\ Hڞ Sҹbl4jiKYy_n7Kp/^Fő lH;f~1msYr$ a@fù69K)6-UgyWGBjyͿV-83ґ{ ]γ)iH3#kVyیaJ'tJݻf ~=@c)QzwBΌΞk,":tPA5kŲ`/˛BVZKgsMr mRWĖ]rBD9t69^9n%"8q.f_)"2ǩ+Wpݽ)DZ ]Y,. ڲ-E[Jgw&@*Ro_y@_&Dv>'L"F`ͱ0bsD嘻76AAǢcQP$W2R͈\{kե| N7!g>eٿ^dz߷clzb.7?Gޘ;spQ,ʄ+J"̱3s}?B)-sg.L =SeBjv-l6ht! kalah_scr1.gif000077500000000000000000000427561263163240400375200ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aפ_ nGNJ%Sy@1f$rKğ Fkr*{!)B:J{1c1]$:ьXJ){!!, dihlp,I%q=[ n9XF'Abk&Fp5FqD2Fi`9oPrruh k uh ojupj p jji hJ^#5   襣O߿t Z"F|F* P a61Ї>8yr·B0;)AR:1T):"$R H/XRx"uJ$ NdUQGts3R0Ij: :a Ib ԣ9D%S$:*x(J*,d1eOOiR)ڸ2tS$IR_Ā)vկt*v\/!A*,mv'ߎ1b#Žyh%aMH;mOI,QyVnV^rJXtVPLkTeVgXg0ݡd)Ud_vě!_k&$7Ie)u]$W1c%OD H-(HbAVl@8s4S*uMe1ubc3BkޤS3r#"nӒ6(SO{^ix S=^PxdeFMU(ek[jաd}IP 6YWI cOULig>EIvՔXK iXd{WTY[jIy%j[g2T|N9m%֖yG(JXS'>%JQ0Z1aHU-i[N |%Gi!{2gN%h>5(`(7rka1"$^1T ,Rq%aW>WQPRV,[;WZeUU`z~NU̴rWosx%ViUۆyR?*_;wIf΁X-xt|_'Tull)~="ukAx Y$jWE,$z?߁klon ZGG{S)?'lb|AbaE6-XTMS DYbq0OS?S{;c9K` Gx$ M,ʓ ͼwcaB)#0HD9QqGozӵdgy"ZjkB͕-x}Jrk5ҔJ+Γ4 *闚J>X\5%EP9LJt| rQLF t#PA3VՕ : ڳ Z:.7]Wi &EaNL(Fkur<""G9jyYd$8D}"F"5[-A*CҘ&f23-rڛ3<3d0%3\U U0IRqDވC(bXzR,.)g`^3,Hq$)E I"lm[-jbQ(sK& `-lSa21Ħ$fVsQi Q1ӨK4X<̚'qf4-JTBǕGl1Y=(k>@B)THmkcHx(=kwPrckNTenon.mOvq=LDU+U*z(~O~(.x\"=% ⨀Oq,3@IDu?5p$8\{#v}F .SY+Z\Ruc[Jk1硲0w׻4ET pwa(~-)U?Åwux'Kfxs[& |wI:h^kZc&ƧlgMe9\s#m'zm\ }z|pk}᧷D؁f唳8\ۅ‘$yDБ-K}^),b/I7]^?Ԓ~UD2%~M쓀NTL]cpвsܕ[B^ F`w+%f "}s$&8#!"6jЂ&x0C bPplr17PP@9j'8O2dXk8'~ `lU Xb>} ^,-y6 xU q,c#PS V@BhÃl%Ya;wY|##c0jtDZu=/C0Ixd9RD<:2debUQkv7+&DaZT2eu.G8KGS'! f`a.1AAbz+zMg&paB2"02S,>'%!FL6s%?` 퀦5n^&Anv  q)ѥ'#Ew0{w0vjP apF@ 49:0`P)y^`x j΁ V$(5$Pjˑ^f Q0ਉ::I:j(Qw 51xʩ`J ]qk5jH 9P:@)3: *`wF$``Z ҫ(vך ~P:F)٦*  JбѰZ 2 @v!`PTp5!+ z ښ6$pkВY *z_9z٪ X+R ư@ڵ&JV$5yQ'q)̇ k鹶u  а:B{1; CΡ: #@K Pz`"ɻ'[`ڋHgɼ P{/ 8J7pRך" {˩@C ЋA!iԀ`{0$Q*9Ћ[Q))@ l@|~`ں) ڪP[T]k P"z Jl~ 8jI;PK JpSL5dl5 p!@qj4Ѿ)j)I8!В`|vQྥLň0-y4P3: ː@FR+ ] 'YK ];eV2iĻJ 1 Pa >:\#5 u:$! [ƒ L<#mq-iPe; b6;ۥ!<"PL P6ihp /2 fq)V9F3a (pGΈк,"˩6vp9mL> )9* # |o@Z꾃-BE_;B;qh z_VyL\׃h}ɛKu]<vN,\ -M۵]7Zͼ]]p]=3M~ܒڵshЦʬ63 { r⑝M 0tBy·=d@jv;&`4{~@D; ڻ *"r2@ ׾;uԼ-̭w{M1ApxĿ\؍zе k@kvAjȇ0KPu8(T=n@]Сg*oׁ H.s{kݚ@ p}}\ p] "No.u2!x˱L\l]vQB<[諽XRq̺O++"=-B{` ~A[u.. 73Nj̰`[^Ƽ+#`0$A,bϼ'Rn?0zRǞۃ k]*~;! ̍NΪ.  0 f?nHam@4;F<UV΅]OIV $:YnN>ntDo`O2~o~nR*two~ [e9/3 yMS>S!:@R|/*߰CQ>ne[N(bHoJ܎B`ώNa@߼fnGO;RD*<A5 dIEr h"EY,^q\2ZvŇDaaXSSW#XD +a> h6 .,l0i@ʼnTP,|\ $,RPdh\B]d`D-p|rbmJMYpXm-dxu%$qa$r EMxfL1@j\/N%0e6X8lP|jW1d'g9C[4ˊA x)H x0`&jb:>NA p M)HLl< )VPpQfX,:t(|aaCwxJXB2k MS-r@B;uOΤCG ՉO r5hQZHH|"o*8{d$Zr.,a߹8;KcwWI [Ƿȥ-4,lt԰ rd VL0T-aaޅ6|jmStUQYl!Cٚ dYLΙ^]̤vS/Sa fqLF%QbL1x0L Q7NA}iDS?xVTS) fIĖB7q@8g#y!UIf0ʋsAH VyRӤMdtl7Z}2\qAq(: |T$JB2\I0(,դS@'9`B0(YzF} ϢB²&$ 8g[QAZ\> 7bqikE8ϫ*BeGnJ#| @Ȍ-hW8QGlwxmB1pp2H# .> hksPHg:h`?3AN/-L#l%, fgǁ<@AaQ?eԐC'jbU58P e= |Bʧ a@0X?FQ TDAc@xS6'VBDRW2@Jב%RXbcL}qMd\Q\]PXfOʩx!j!$MN-1 bVH;X:RN"HƖK RB7+&(1`[M'הQa3cD&P%j'88Hݐ:2I3MKZJ˛„J=]%`NR(́[S^elX?0x88AP34 Dh cw l KTlCqnl~Ysx͸0G^ jCXx֙%8 ᜛$ɿ[w7R,.2sأagkE\7 q0Oiu;EuF(;d2oLչ>$|KW,HcAz`?Dd77z!{tkH D4b8BXD_7 <>]hݱdE: ls|$LĝCЁYk4< lO_#S$^&`bY^ą 0l7<,I&]TCD ?I4[GfQ:1 7Le}%d]Nn՜ 4~U h P%1XDG$"r WօZ#bDb([uI@vyb5 tñeiZ5]&KḓxFB L$#FRX]u]X_]O$^8=b)(bj)FX g ܡ bK0B]f,X Ԝ::H;'"ǴjV9X-\^[J fաa`Rg[Dp*b] W-@I′ %ᥠ֔nHC/,l(f1hce^!UD`r40.(2,UK.xU\N&kCnz)&Lj]_<d\/63. EE[!: C<{rJ'u¬0=X@Td1ue0Z)z:O/-:-*[Yn%B?"/{WsQMw z['t ? >fm{{BAH>!ֽ0C M\Q3ג*.`X$FM%Ǵ1dgf1u$fm`ީcX,^g 6P"pT4 +6I7|l#-Bn:pEuPRaQvE11$3S$D9`TÔthAUQ@xŴ(: !qQw{08aLQae,Kq\TQz*p &r0PeYH`pbq(Yl xdxA 9p D,Mۀa]E rqdb8$CԤ?, ە.ENX q u|Xk"&Jy) K yIوK)TxpH=iCgp8*r  EtTRɤam-#54o^Q* $Ž#D^գr ̎(=sdPƱ̀>>\@ Y  \pF  \b `C A V=DwTw#Y@D y:\Up[<,ka2jwzKBDgb3$@B &. ,HT*tqdy7[{,p){D193[LWPo2FQgBh,ƛ4Jewb0 mG+H4vm OEBLf{&)r0w6!z@@^FHd.i.KbB)2=)6)lSYpYK(ڛ @VPvRK 2k@÷|?dk%MJ:X,[QXRtۙwJ丯oAC2>[pMã(f#ljm!M_L'ˎE(w@ڥƽZ7%Pj;C5<ǰTУiHp$%xgkāKIR4@XPni5(7y(FZ 7Q6@+xoPx|,xKi/d47BB?ll-52 o9%5ϩX~pANU i6s۠j){Yy: "ȓgGF%ɑb(AsS?-#f)9(.JAehfkԄ365P 8~pdDRM pcz%H ` F,<>h 4tJHݱdoh P }y(~b6*Iu@\9E6j4 R3B*  P x<VЪ1rQ=Ψ &@/QRDE&Ʌ`R\ Q)H]IJ)XFuz(bzW![j(.G >\@zb 1 qKe%s@/tE (`nV`(}XX7"H *8 <-Z$$?E JxP=HS &$i(M[)BN"2Ti-EHT >twO^Q°$9e Dm.h*VD@*OKJ?0psCMT0ĉ ` :8-|MdhJzUTBU l+;vbJx>$تFNT )9`-!h Ψ^!`~U|۫ HP1P'U%qUX  j߃7ULJlX Bjda ݣ8No1'݀sL-#nYkJGpbOʤu BZ<rx#HbCrZ g =H*&4x- `@lܲ uUls xM]&7O5>3xӐ,jk.*E~NoǛ u]N(4yI#Hw&. w\\eX`c|A7 ?__D#SS('wx ]Sv܌ ю7@ԜvPw-I nw Vox`-G Hxmq̶:ghFP@Ti A r@ Mu<@&5"i L O}ZѫP7$;1P940KI0?[#ܖw'[e AHE ]`K9/F >y{/E 6R29(a@E0iށ|gRV }8t`=H$CdC HH#!8{h3D|(22דR> }bWB=kQ Ax'vCHhł @E`SzQXA/&ϑ)0$ h(\[txC/) D"ޕu=`dtPZW3 )C 6FX&Pp Ď ́Wu[3؎/r +}G4rx63x  >#wP@XU)8-D9r*ΘARXqXuX ҉7AF_Y0 4\@"W ])7Q@0H d)80T=xlpPpW?wO g{$yڠdrPT8Jy0&6Y; o3V0FV<5#pE29+ug5A3Ctc䚊0$r\[Q`*y F  rPQ OrPOD1u&`E[򉕒%&#*,#72,9y8“@|c-@U8Ea tt0F< QO8 bt1& *DBD0MB|  2YYRO%y E 9#\W1}*C uGKRp9(Bt Z$[U:o$( ,,1:pmbGI"BRgR9 Z"T%P8Z㓫QP1WyI-P'i 0$1UI"yZ'X \[y32:CF:zʠAګ\ 8wJ j]i$XnUpU0Q˱,dA²$;p٢8*,˭g3&Fkd-+RO\` 0ywog@X)P>+IUXAÞ01f!@07+\;zyi %s*z7)1nxvžVK+\np· ,9Mt;4-+ʞթ[PTK뻭zٸ-ek.ZKY;7D%,9 P:`$iʵ IyݛY^گ9)4Y Z;F7ʬRݩXj k6j[nʚ+qnG B ,M{\Yk,KY'1)@*1p7&=$µ [% MıK` <6Iʻrr&*9I;;@|ŠƋa),ŚNlUj ӉCɨܲd %bt k1pt 0˫sȊl{q\>3Xq"!\ { V1 \%1PAG{A+ J tJ\> ̘܊q)}倵UJ r%U=|y,ݟAy(|e k \ǵ#/N,e 8mb3S\E6`Y>}Ωeۧk8M$ XL1x[(lGn !iA ֬P x-׬@ k  GY%z PGaēi$Y"Bh繬E ש$|Q ݮc4#Kʯ͚@ЋEY#zrvlXɘI:kWyz3=j%Qǣ*@ZB:Ԍ{\{t9݊#:pˑfVH/ݭ˘խ:w}[u/%4R!ц msTi½ ׈XA{ ENb6el`A S -۟FY!kܐ'G"c5< G,p'vDh/> )s{A匓:4Cu2==yPV99bEF#Fwfr uޖ엷@C &B/n% 4u`ʀv8aÑ sXÇ 2G;tu$GB=vrW4R0HTp9DZIE|h!{AxTSxx 4xuG ˏll{DA8 $1y .."$?j?RA x0fMF#M~y9Q>c%@#xe@dЀ P@}ŨVC|6ЀVEwhZ`)#e(J_URjH( q|Z) G)^: @k{D)mv Ġ~nz zn2jΆ[h)[(0\p nY0 ̯n{1k1{1!<2Ʌ;kalah_scr2.gif000077500000000000000000000431551263163240400375130ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aפq nGNJ%S{J1f$F+kqD*n){!JB:{1c1\&ьX:J)!, dihlp,Ir%}q-[ n9XF'Abk&Fp5FD4Fi\9oXrruh k uh ojupj p jji hJ^#5   襣O߿t Z"F|F* $P Ё61ʐ#D?0I PNtJ=bPN 2D(UH$$h " @@ ΢K-ta)G$0J*NsjF*%QUf@Aե< a@/֠jKGI=#Tҏ9tYFQ"Ud!{b*Ƥʺ}D9TԢVLE&KGҾү9fU=| T9`kK;vXhÈ ,md➔; j.*ҨWvo⪞ě#^oJ%]UXLkTLdB'f.ݡ8tvTw=UWC}VKx~2X{[$wtPJ1_OD HH_1 k@8#r4Su Mb%Ebb0gք0bi%zӑ4(NwJf g(eW|~gH* X5X$\qcA(jW^diOVycIUdAn] Zz⏂gz-N6l5]Rʧe8&K3~V_])Yv|Qdx9u“Q e&R;줏$K6☤(kH6iSvS(HSB.*@!"@#n "%$J斂nHpFؤSREJpgcĠ|tK[b$%{;z@\~VeB5S˰^.s`Ve%/RYR*Hj{%ݤ~I[nGuTsUNN_ `UM!2Ljr"j"X{ĥ\ogyBr2ȝgxP['`iP|$K eڨcvhNv؜Ěٟǿau՜`dte f!2돔 Xa8 fRlw-Mɤ)ݻ-]]0mĹ2T-ga{89{j8qᲬqcJ$+q@ОU_H,8C`::[Oby~LLdXE 0zTJG;ܢߋ^ E )]9!!xKLwXy )D,TQ7<O'KB(A!/D["U;"o9)@ =;l\`O=O¸ÒNF܂Bs,Qh~c)UδLeAf&B.0Û@VLf̮f.p9_65[lBQW{x[Rd<3;ɭ?pOX2qd43cS 8ζL2IiL$#۲-iOZ|V)'v42~Qa*oAl^pt3sh [qStE 9e>aC:z+wc"3B=N#VG,_,E!7x?aT  %wCXWVh H}Ssc颂t]>a&0,H~ױ J'zxxPUPg$RFqMVgy$!s8w;\!Q%pBhXr(d$e) 4$6 c,6>&&)(ţ=ZVQ] @'Xi6}Ҧ"VC-nH#`#O7h9V1+B"f,"%.2ڀqЄ(@a1313qj:!D$Nbc$q871)𓾄8 %kBaUx)(3aY# zS'~  $)#zI0ttAz J4$$ @sN3EWyX5wp㠙 W`wy.\"l7 !4xy>vPp$ U) Ӱ H3E,Yysu)P 0 Zp_ӛ c)`! : ` $ %Z(: p/*Jq@9@n 5jp wТ8` *ɤ`8'p Yڦa%:2E /&zX` '``n`^VtJ#?!bǙj *2Zʖr{ڨP0w1W^puS^@jZπC[ B 5'ZqkP4z:`_f Qa#f0JP2&.`"ʺ w `BZ r*tʰz`UhɁ`  0P6Z:T:`p7Z;`"q+~PJWj@_pP"z9)*;qd0V`#cp ;v۴ %##jNFK x`@!+ @k *V){H  k6Fp?+` 0I:;pBZ`; p PQxJ$b;i0 ODw6u p3E[skPC C ۷ KpfA$ kj ж PPw +|ZvaO`@$J|!5K  Z p .Ak`7\[ W{` Lť닙? fJ;@{F#P" \,Fq B  빽\ߺsV¤lʦv6[fbllq + pB-\i{7lėQU<,+D/'kܩs2LY\BӀuK7 М0*Zpɼ,%vpߙfԜkJyLJB , A.|•#,#vvC` p B{[ ۸A0= K Mqk0?KЅ\;$ I MarPv;y@dmoI;vT& - py¬y<7 и { C[- ĎV~2!σȭ\,0# @ &"% -ݗ!\Ѝ6|JPЯ{Ś_[a-,-^o J 7}n  2lޫ޵p Z}ur;]uȥY>lr" Z`ח}l#niп{-?|窵 pnNŨ~R-l]4Lqފ_fk-"I:Hî| K^?hxU:nSj?:o~ /"DIZ>I @^ u:}QɁ"Z_ayUVtm Hj1qYf\"cx8mTR&E# b-h1 FWS(}L%&ᱸd(p0D0l XU0T$ pZ40(Fl nmg Zdp>4\P!̜ 6< ~ׂIÙrhx#CNxv%ń먉AoއK0)Uzp䌁. 0H`csX.g9 @"[3hV\/)jٸ8*i`uHI' `0aЌ Ff9)p'6 tVܫЈaa/iS410nvLhU#YK D@NR`Yi-4C+Ȇ9efYpo}A]e8pEGKi '44}UP5 <[aKxmD(/[h\H2Éa0DX;ffPhˀ!%$wA5V|RSLRt`syBWʃtS %'/Cy b1?JP@(C8pP,'~@iȼCĄwy10 TKKM ,IO3HSńe)G%z ckjL˥ |REnrSzn 9٢ᔊwo5P @29y:>pr F֙y`W(@ ` t!![܄RE^UŅ50îi9H_M3QŁ=5}mkFDDȵ^(]5 MِR\ɖl >ZБm0 ɒND<m`yGR^  (_(4 T^ʖp @(4 `ʠBSl]KL IKPY\@pP\YL=-^U>k̄C 05(K蕁-8ؐP4EU,!I1."! U9H!7$`UlybԩޑHND0"``]"K,"MOiB1$2 9F͌ܜ0K/Bi-5'8WFAEMU ]څP 4%<m)[ 8晋LrA&6PR~pIAMG 4nxlIU4%؆RI8IUII03$@ 5,H>@4DE!@aص)$YZ$ȹc+_ a m]a"N`QͅթPr ;h i]قT T %`)cňM@)rĭL_:ԢMa X&eX&R_! MMX`kR,٥rZ&n_0X88V0X_M@fiǤ7ʧa=JeuAxP"FC~Nm]-y#\V#ùN Fa@ea\d sI^ n y\==\f;QLKjM╄A(U|*[Om__J%q (8!/f͠ xʹ)q_!AF*ޓqd1 Fp^q*bb QE'pEhf ۩ 8ڜZ!G4YZ1":`uD $ॖw"zRZU]&$פ ]JIg4&a FD'pjJi\\6| Ku@C!)#A4>i!H_ | daEnJdTK )RT9؟Pk ,ne$+ڔwg!]^bsj܁X*fNp `J(pL_{-gDPApe efP-dL dH_*l%I0 +6 L D3\@A5i-:릩:8>U )'ŝ.LbB-4-AnEm+('2=Y\v ˗.6KI^mG (pŠ]v!`5+[X]dC"QaO^^0lB$ Hjm!& A˅`* [v+o!AEi^}ģVSlKɕ 1.&i^-BbhZ! sk5}aV:;o(ʫuvm2` YΓAcX`V]CIPlȂbp~;(6Fm!CcizCJHhlmUl`[6E[:pH,^cC;|] /G/0~M e}CP0Sڄ̠</t2eA)K|f+*{ݾ-,F̙h(?7?)3UFAT\CCu1\EStE\8H1(DE G_qR ȜA@0Ғљ#$UĈR:CJvŴMY HۻN%QRSC4TAYI4VdQI3 Ut@0dzK;<f+dSO4WuPBuÄ*ŭ?,)Creg[ĄmR&Dc2"xN*a? )uTE}ML  $F<0['IXvE,e}K)\4Z߈mGH0Ƃ$:`@*) Lb;ņTFvųx>y0tQrPgqcSTT3YB"AgpAa$hqd%EpuACpqq[r0sCQAxwÀ1񫚰*{QщsҢmJGZU.ZMU; *֤ߔu~9Tg% 1thXg? Q&c!,}LB(E <ХA j@i%haņH ,T !h)ZPk^:@ߌh` CU(0ޗaWS8nj 1c8IAhkM!.`p&hZ4]@`w "Jb_<6BbK0cy9S0h#,sx"hzk FV !AT5R ms)x0 7T X€m]!"UaUUwPe|UhP]d9P[XP8ua8h* R]u5)Lu4ÀӄѰ[9`aAQqMTA]FX5}L_RzprcM Q˜Ym }M4O1; 9NX@kphI`)8:LDŽH ţ^Z$)gM%DA+|tccEJUPx'<@/;[.@˼s= Ms'$Ʌ*/g|@300+gq#=0M`!@P@!<р"F@D,O,Y]e^U5x` mjnYͱFK݉`5 jP/ ׂQClttzmѕTC]Pq`VGxج 4`Z19ZFgm)c"+96e@3~HE%3ZAVot 8^{aƯФ!T`u_8MjOsIkeڃ`uE3G +L(:4&OXy  Bӱч)hlÊ23X@R?نR+дƲY⅄&avH(͎)R`'KA .OB3ej)ZV@$Xd<ԝ2mi:@m3:8Pj̵7m:Zϡ.B&B"_2JB_^7zXADusS-$zug.W!@ %uV|]ɬd#DQY$A8թ"e,A]VheLx.,B1 y`RB LFc  u Ugrh1dB/9^c)'=]Kz<(B*3K XyޞT[N{.Y3% W_W 9`s8`Le\ČfE$DA6e[\?U[O3 #c4@Zk>j=p0`B"#W5h (_9!b\&A _=#x,0D.t$^}n p=tj>IFZO%Rq[nB C kn@!էdf'6$mEz:׺Eg zĖFo=K0sXH]ӂjWUmJhH(hq $Gqҕ .ܿO o@TbPZSט` ݛ5r6%\N pOC1 S eń"KqBAF86U8 BGx,y%KAc`U)4'yi'J]zD!"| {W6%0ͭ.tɟXZniv.e8dz ,- ;AkvBC 9L((_:-](vA8X2ʼlO;^;ΡL.@ $L` B')[RRro}N3;~e`pHpmVQ~vr&/ws]|%rmfFt 'xhZ#%_%U'T9lPu(0f^G'%8F 'xrVC G]b¦9؁r"lBlql`8l/+X9whxhX4xlm6tNE@d[_E,!<=UXK7W]w_o/wI01 &X0Ńz׉x=[wpu458`t %d%zVtRqHPHJ48LRr(%0Cs"8p X@θqDHl:`%'pzo0Ԉ?wH=D-7O&phdhv`Gir7EP%Cz4َUIOĨw It0,-#piӒ3M!d9$".y&iB.Cj>>Y@i/E6i8i 0!]BvN6t. W0vٖHW<$2!Hvm7@vV`ӈ]o &M'ae1n^Pv=(gd0rOPey EfQJ(B^b%-Ybb MPMRq$bp1!UMD)4 ~R**6/TJD.`m '\1 p f+yg U70 .tKHz@MPMg :=4UTGQgԜ0q'֡hfqXjg:Ru_@&DSKN`Ӱ[s9 g 'Γ6q wK< kU(.!A&1zNg;h`^JEJ?d^@+LЧN6P "`PKzG1{Vaq>} +>m03Ujb ĺ>YU t A惙fT-$ڦdOЇ iIbK_|~6):_P g,p:'^0 @iJ]ڰ O'-fE `Mq'k<⁥ '*Z u>ae:fQp;%>庱4VY0:}4N JKQ.Q.,{aǢu ܗٰ PK: {ABUZ+д:C4Y2UDb4ڧHX+X*`4Y=";J+bkQ-t'N@c; kiPJ͛Rx*Ke[нcqI +m-FS뻂ig_tR2)LkIRbk=)ӻ *۽JujKz:EPS J,+\ 6?4'0?a$<`:H:_ N˷ pGL ˰3zHMk:&KJLz $̮^ܪK7W]Ly"S[P|B3u#uZK4'5 o4¤{ɱuzЧ+”j} XۇUZ MȱȊ{ ?D`K=M[ t)ۻ| ( ?Q⻂U>z쫍P[ly˟> 䛻@L"' T_Ci=||`ʠmzԼʡRr(QlR+:$U瀵+Jԝ,;#|<_V$ 0(#òL?ZշK*uJŚw~Ҽ= q<۰@ [JMk[2]6y웴OKhf@/ k諴Y?>:#z L:UJUjԻuk+=&{䴘`[\)Nܖ'MsTst_L"ò2c.j9LIڪ iPࣻYx碃HMZNB^г}뼣-~i=%ҍ @"ĸxJI}2n^9"A މu&\2( ÒmH{ J؃>s$kĢMuJڪZ6!y]`{+5>EZ:&k8}VIJ8q0B,χ jRG !G&jI٩L brk2 k^йpQ.LQdEJPJS+3"#ALڇlmѬC)2J?0GH {2>L&^=Y8^VFQ& \: %>*䯚Hޜ: rJ&)Z<'z92W6n:? N𽁙#u Am^r辰؉ߩk:/b0;-U|S&@CE.&3.ls \]p\~u:?Qg L[^+5E ?@~{/v_A'Ӱ;tG\1Gm Mt]qS7\KG4 m6h;5kmF۬)X6bs}7 >8~8+n;kalah_scr3.gif000077500000000000000000000416121263163240400375100ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89at"פo nGNJ%S{J1تFqDkq**J)B:c1Z)J):ьX:)!, dihlp,b)mq=[ n9XF'Abk&Fp5iD%}thih}k}kh mojko tphqk} jJ^#5   z D@x!AS>AG?il3gӨ ޴aӦ9x΅ 03`!AMi2DiM 65T2NI5e"'C9 LX@B7AiPFN?Q76QbCB4rs#f5RROjmpדG0g >&"6(gb3M@ *BA GP#erk tWRc7.i4dT&%mf6JCfeuvvtyPIRjzm5\zUћ2*/eBv[&xq(`w奒w2vS4]$WRȝ$8d{hR%%P/7=†\FL4=S"sS~d]H S_49IjB{B",I–Ͱ-ٖu8#T!enOJ0Kh["B߼1Y#&\a VGʥN@1 PvqVI\I%:MSd&ai%\H8 `ryГ*DUBj—\u#t0Q>e=)1P+ץQq S:ktU|>TE tc 45j;(edtdXzrA$ǂ%0HZdC.~I)2g+9@6} \8[|Lx!5@=}P^[oT1{Դ{!"|: ?apF,KdEQ@gONErö=N 1 #@U@"ahg\y$$ V 6AtnG +*X@;wP>1su[K[[Sg{5:9:ۡ$Iy+=Q&H9[]_Ȩ*Ibw` U:.P:h٪F;IiPJ/A=ԡBޫ m6@DzzT͓ UBḵeyJj1h|H2dqOWPBWz(8h*6MW{x ZCXtfE["sqQ BLkv"Xa^'h?it t@w8'])x!WODD#$euXeFc3sR@%gA$ 7% eW DXm ePNevRSP="B|1!cOX 4T!H']J90FRagj1|)oMAcL4%X[" 5ㄫS%rX},p|60T#;|23*@%@pұ)CD6&q[!g @C DYME p  Е `  @A QԘ`  ؙ_F0 E pհqI@ԠPq  Y P L5㐝$( p ͙  0f)p Ж[ #LE߀"O)._*pЖ5)) p p ֙-_y,x @Оc*Iqy0p#PI0 0}:f0 OjNz )*+ʢqlj4j)/;j>IJ0@#P (3t^`dfS^@j 0mk`#C%`BFP[~2 4K0) z75h`*fR;  :P PG тڜ ਹ X"5 6%S `y*ʪK8zE ({ʰ90D+ ː˱+JpjV7 }pw`` Rpk0 p+@$D{U0!Κ,h `KЊ5"_IKmtYj(f-v(@CB0k$$;QA$q 0@o!$ệ\I۬aa|ie`doKʫi"0봢:{}ۖ VP}; #G%cVH*qۆ8p@0#KjA< lp`[: ! N봦 L Q 7;i0[8 [:=6@ۣw!%<3+  0 P@wY J- @M.̐^\L!7)`:iYTjs-,o<Q*r u|~ɰI@6춇  S]f 8qڡ"l+BiQ4Dz{Ӽ [<4>ܐy0K ٩޻mP|Ot٥AUХ<YϪ Ks ]LП[k,v4ÌaOR- {aă+,(m9'6{c*'ҺP-@P!580,ұ! `[-<0`#\&l^'f&Ӭ@ i|k hPɗZ6Of3,=:=3OwQnО!lۆ==0XeēᬨD4{ޛm+Pڲ. bkMү$s[ N mm!%0)Zꉣ]Z jcNk+nkݭ\3m8= J-ޒ0O$-9C)g+<+= ;v+*_k&`6,f{ | "> N- au 8PEP&+tgЍwx>I'8Τk`I% \䪓ί(aj^n%y{mnԾQ7z-I3ʂ<I`콲.﮾[" NF,Q>Y=c~>\ɋPeӧPeˤs }'7u[hQ(Xmywbf ͸@+avc@LP}FL:#[6kB\߱@+ A7Oo$O?&;`|Lҕ|U깣εP5[ONJ?ԟ6 ðq^t`P@'k1O$&]V_ђ<^߹l)  0[0ȰYVXpMh .mќK!0a T+l bXL\46x11YA Y1 a0ZpL4Dyl(tE5PibVvJC$X00t`VpxuA@bHO:KX_&9<FFl&#r pe;h9 EzD i@>0&?ԳBqP<i@EY $to**NPR-#3Cbǒ >MWy33Dn }pQkm whO98GVi*6cM'LKm/@D:|ʄ @f`++6YfzU@_)k*) +YaP rW9't=a`~&<Xgc, Z0@藅 yIHZpq.f d#PӎP[qr`]$HETuQp^>&@ W5AM$"0XGw%WOW Y0AWmzmBjY o5*Ył6E_ ͰQ4B[^q0ۂ$d='dp8Kx[@TL6N)aAVH\>)ΐ B{#/{*U/E-8Jdvgm"('y:P2vYKRW|LOvv"*G\=a]gAP?07 B]Kp0q@ܽ( H Sf Ks+L]dB p-C6T'@( 8._`}dz^!6$GOKPURBXRUr 7% !E( .$#kjI9P>uo6ȍ$Ϸgm$Z4з͋$1@w$ =4}Iz VIx$"N2ýfd«{ *Ćv䤨0 80ݞ,075Lܞ7'NpqW͟B>^ymnL@`T4 1E`aiN9I)ʟGF.d8 EE9Y1O x@;شydL_<@]Eƛ $w02A@52E\8P aHQ۴]WVgb6.L"SV$ Z ~AQeX~$ hf=]T[5a1. \QF !eIYZQcJ;yZ%2F`Mܠ%D?hIx._!́`|P=1CʇmQ_)%Du g)Br4&5p j9yPx'Ma%أ;"k(yM>Kgz )FIWp(2V\*|ĢN[Z UN*Ju"9>|[*cf\Y\LӵĠyMz f ]cH`Ey@Ľ8ȵ&՝!%Ŋ쀶B~02`rbkHJ_FlRɃŁ٤]иx@҄!s6l _ Z+ܑj RxxZ5bqj <ΞRQѭx dڼQw,Cւa %FyzɟI!Nj$rL(Y>%A>r\`D _ .PC(3%0@rl5ʋr`ы] F^bEC$KhZ*Xq/1ԋibOV(OjcEi !W8W(Jt$J#a i%CiChKNrNV@F<j.hhRI|4uBͯ3(E|Ȳ Yu9ٷ#7RΊpo!ÒdB=T^E;RNN< bٻJȣE8/ =4X)LO@88P/5v/a: pwe 8ņ8;T<Hw x;Wʇkr6 k ތca^O8 dd{?tU{Ӏ"D^,ǹW!<3d :>cAʷĜJ(ԚlO}fA&U :NAk0f<߫ ۀ~| <~0}5ۼv=G <N[F:|hu>r$0XfפzZt7,Wڭh#ȤT WJ#), MaM`T@V X8b$9Ԉ`Wp؀12ecRЀ¤0!#iaTԴ!epahqW45ĠŦsA 6$AW'C5=`8A1qhf lj壱1Tc>GG].qPEnЯH7qDgCшWlRe& < vn " @dbB/?0c,\AQ q`!C:6:ec\P d#T'*yg 1DENEJȸ.4eCÅr,RS$Qܘ~!# Y:lG*;€{U|7:;\CAt;I"5*dPup`2+OC|tW4,#HW %"Y <8.ѝ '2.im%2RNrPHZUL $.pEt3] -R$` d] mA\\CV,_uX@xA#}Tb%RyVH;J2`4zXT~RC( BA0@fd˙ܢ:A_iMq\2}JHoxO*%h5eL#Bz%>҈&"z TY 1f6f7'vU0ASV<'VfcPJ l rAl`%qEmZ?M(ƺP"KțA:md!ǟ܍ cU9PlIO @~eb`T>8ԇRcE =Ur<=~f#ϻ pH$prPaH ,II]ԪNMݮVES֣G-n-|1<Lሜ$h%I˝1 ΍H&ep$5ԱJ@w3טYk?aL SEFٺ8H~T]sdBM ! D{RD2'sAdQeB4w)k5 >A^Ep :ܠD0Z-&T覀P) SƇ0eL uVtQG 11r*+|E bdgs (,HahM(8jTeȐY%Q҅n&1G4Z$ I*{aP <%0.endHDѐl+S>/%["?㔴 $Nsm)AGd4"tx<@܍0yd X 3Pb$7q&:ݗu9=dxJLaПrWPْ H DI#pS=[t#@[DbLHb%:wŶJwHb!xT`yb8~$ȘHو %%\Ɉ)0OId'L.S 2T'6_AN^b&+* 8>IC\%Ј9b@z@P9H'9 S @# " k:Y6* 8Wɜ.g Az I, 0# Id~afѐ; oXDk JTrF]` ,d*bhBᘘc&$H^I@9@r@ 3I& Ч#J-C)^'.[鏓 ʞӹNꥑȚѸ'ɕE/USZ@7@J6I# X95Ř[$3Z an@@T CE)_xD7C z6z+F pɕ 0nш5 9*ԸjPڍfgQ6C2sQڡ1 x8b;Caʚ+O:rE;dE;[P4eP_LGJ6وe =蚩:CԱe`YdۯIH)O)#:,ʮd)"i\4\2koޚ;𨍰H!ʬ\zd2) ˸Nyzɛ+_{WfC(irdx@ A٣I4B]Hcb&M%UZ\;)4,LY(3wg޷nG @Y => ᆉB" y.RTurVP6'"TxR*&x]S$ { T7ɻTt"[S68hv d.GW.I,De 7>h9z Ȁ )3cn\$,+B-*A~qr@ܒceD )%'L*Hܤ %z-O=Oe(&Ȣ(= %X hVmuo6]Q=8'C8ڹ{@ !i 9f! y(%}]UEf8:޺HdQg8@b|+=@{(O 94_.YK\]уl) I#{X Qˡz)nSe; a,R]9qe0 yU5`ŕh^qf]A$)OˡRQ|` Ya/#ce ]=Nk}ͽ K -?ΟY6/} '2 }r2׻oW6I8iiZdk-SE^@ vLvB1@aCaFb @D@`E`!e`"`C#Ed_$!䣡,#fFcdjEb(eer%eedjda`E^+x@wy޸%67z49<Qp9t ϒv#DN]n7r#Ȑ"G,i$;kalah_splash.jpg000077500000000000000000000076021263163240400401440ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDuckyAdobed##""'"!!"''.030.'>>AA>>AAAAAAAAAAAAAAA!!1!!$!!1>-''''->8;333;8AA>>AAAAAAAAAAAAAAAAAvd" !1AQa"2qBR#br3%񂒢CS$c4 !1aAQ2q"3BRbr#C ?'`761U]$rcLdžn@K`90KN\XUh7.moj#(ڛlj<8G' GRl8dEH/o2fTnYT G-zVD ZGA6RxՀLٽvNZKe-BCڽ|6hiBr;cNZp#FkxAuX^gLnjx$N¸R*u*Q>R|5:V0mq=WjF h- 0t*@("|A$VǨ C:v7{ۨ8_G$KUT1^g\}(“zX,9M9 R%r! ye( lQ6_?[oN7٩Hz[qS:ֱ͇j+`#EQ{LHѶݱv:z:= @e&9"E`k  r M&:]CӭޜK(ϖ4i Fi‚ӺlX[^aE5c'mX6d:{*ݹ3gI+[ȖvZWf1iX6k.\\Lo7_M6sH Ydl+qg=2.{{ \mRbŜe͈orޠȏE6fppڷm>_5"UDvUqnY>~o}J̭fշoVg>o+ ApKmLeԩDRVCQHI$xmn4ܩ pƄٴE '5"~WTTȯe@,,ø"\Bhd(5bEmKvUf{{2 c F([V`J=:(k[AH*prd24kp}M4IT(%$>"X)?(ˊv8? u^/jfDE/7qRjR5 2k;-x[m,M6'[Ǘa Ho) HUCq[&Amсi/m%F'i>>T_Sw6\[T8kʛ ҫxDdžN=׽jEm/}8Weq^a_ S.OQEڋP#VV`ܿ5g܄!u4%!Ms'xQ9׳MOI? =c=? om7u:W/Bkqvli9n)/E1]+-ַkK&,sP/(HQZָ {p_B8Ҍۤ$ 4Gu۟ QX)F;nf'jq濺zbO+)*ZV?Keoi;A,d FVE6)kZT~Yb2ѩPю_{`Bͯ4(_ݤj"uM ,M+1?xLJ5=#9$K13O:-E5:R^6pmENBT(ܿxյRƥOUץ+2-5j}?g`lQ})f:Ouo@\~:)n2m Mg72sX:{XdǔY'V8hv2FG6I }u%N:mo )67rD1?_r"7BW^R ;M}OԱ01Ni`o\^?{ XױG7UwX*ym/*U{-_}^^yVЩ_Z9`)cv\N|x8ص juHT/@!RH_o,ƳIQXDXSbwňrt'gd?n?d6lT 'i5\yeWIP23#`IܱNkO搒bXu\]>L>WB/&dO#ʀ ZJDHc+!$ŐpI=U.?LK'͢dRέBn=3p&SyFCz Gaz21焎\gޫ賲ܿ=Q'u_TGdmy\rD} 'THn@5U!.6!#|ǘ״Q3H1n,XS6~frFޡl&Pro.%^U*`R%xiBFJScu-ÝQF~{]+O5OͲ.׵rl ݾLgė˰ޖχՌ&7i ]*Q^[#WF0rqQPy{Mb4nR7=xV6Mf;o]珧sRdL/~f`߸g'FoDG(eq]}8+[uT=; )VM@CreÌ7moJ{9gq߫ٓ mi4n&Y<fGJWEGhHKrMQgMQuRLfPMvTWhVXv\`_\as`__c[qefiegxnpolqzsdmtjxuux%.7);  G UGPM \Y gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZ$)1ZZ~}AR)b9jJ7113dȒf*]*&KP駪>~ׯ`Êj1؟A̩Oa;wݺwEٽ;eM*P\ֱXBl[Kw˔4iLK:ti~m>~l.c˞M6Y-WS `ˣ1>IÓ'޷صɖн;r7w;yeVKI`~k=-gx!D+L@EZx݄ :߁ y#`YIH኱yQ0mHbx͈ZE縦"D.EZȈ^r5ٔ)>a%l`aR`fm[hU?\ٱeyhufQ?p9\g+gJ6\Z@FJJVj饘^ h頤r雎"G pةҊ-ZbCڨDjmǯ!Xiئd,,v@Ȗk: moޮ.ʫVm[ݾn`찟k>lq+~[\q `".Z8}ª <̄n\X[~FZ褛zvJ;{sHc݄y@!^?N8||7O#|!,"!UN8Խ'53L1Bs1KG?mh(F!NcA RЂބ6NFՒ`hn$?>]G?u>ׇ>a:!B׏ސ`HhL!6m|^\B<x_RQ 鸼?2bVSȤ&7yNj (RrL*W JQ$)>Lfr%tZHVb$iE.BYُ)%1q "bg_N4ʉpBlI7٢2-iOTfH! Nl4\?1Nr4HI Pv!}hthQUcT Q4 _p3pF6S4L%q^hVT [XɅ.HcEiX}&P :S0YW.5r_HWlBs:768ڧr5dYzsLb)0NuvqâN<1# Zb *)-}qXmE[6Qb^"KL"9.sf2o]x}!5WUmrFo glj[\{S rVl-\{1. 5[N+pU\b%aіQغpʰŴ`J4lZ$6 FXl0|Տ(T gӲ񩔵x$ɞqwa+Ѕ|v2f>Ρ@]D֤)vc5m'2>!Oֲw'g)8}i%\v٭ԅ-&bJswq0 c9%BL3.pw8LU YoύN1Dނ7Nn=Naotj7x*Y9sF\}gkZUMܫ kНzq:tZ=l?Il}Xu~w "+w n)2knSUz݀vűm,PN:`HjzIb높{ m,%. B%0Tva8%A0] YpEX5p X %S_Eiao ^923-QvYЖnf+ EDk{)6qI~@9/ӗb)٘)UlU/I;åXhO%hf%*95lB%/ 1y%p'I3!)/y96TPY9A!ӜoBhC\"ڹԉ9U2]UiYՙŸZ" -"Ii^ܙ\ْ :_.Hlj ģ^2":!:zoi#/$&Zb$21|]+*-"+ 1 )b&"H.bCX:\ Biҥfz(= 6"W.pGGv}DIj-/ rypn84VbAQ:ePQ:UAd*کʫjJbczdʤ'J>V 4e~*‚!yz㊮ZAΊ 4U9!4!/ 9Q:! k QOCaE ku 9!VEA>H>#F("=++{5+K>-6{50[7u5;kickkick_scr2.gif000077500000000000000000000106321263163240400402100ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  +"3'$(:A!A E+.L8:d ]m L1+f+fGJWMOm\`_\as`__c[qefjegxnpolqzsdmtjxuux%.7);  G UGPM \Y gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZ$)1ZZ~}AR)b9jJ711Ї3dȒf*]*&KPڳy;wxHׯ`ÊjWA̩Oav;wݺw;ٽ;eM*P\ֱAl[Kw˔4iLK:ti~m>~l+*c˞M6)WS `ˣ1>IÓ'޷{صzн;r7w;ySKI={xk=-gx!D$L@ESx݄ :߁ y#`YIH኱y/mHbx͈ZE⸦"D.6ESȈ^r5ٔ)p9Ug+gJ6UZ@FJJVj饘^ h頤r雎!aG pةҊ-ZbCڨDjmzǯ!Xiئd,,v@Ȗk: moޮ.ʫVm[ݾn`찟k>lq+w[\$q `".S8vª <̄n\ȯ%xRU(pSpsIujT'< L#R V 6A RЂ `̚ vGWoGr;Єg%>HDb|hXЉBJf/>$@2H6zsIw7qp|P3y#x/f"@ʈ p$B(NqZX򒘤&g哠<@R4'AQBRdVJ ("rHC"+  .A%%dӘhJN ſ~i-q 8IqЄ =P 9ӹv3:ى{6NfH M,4D(9u:tDЇFS +h(2*MT,K-҈V^)h+4ԧ$&Po ߌRW aJ) bOVU[ʢnUBcjA,pn# TZK0ji+aq[`UmC |j\oʴ^e0dE2ܪK(\UX}yX $W[`3mu[?3do6nˮZlj0قa]MWmJcW j.0sslvaZn[ށm=q1j4l&JZŵp+gEmm^gctcgdl3w(6xôͽ8 |eC_}Cuهaa/˶:p)R X;',}39Mɴ,f+Xt~St,ZBc~_ZEiUދ-TsM<[Zmth7dDwҋrQCx')4s;\U#ݦyiVs]aY S} ;4 UfTfc|Άk6Ӳc#j4b'gW׉Ok#kvpDss[ݝ6%z,l8Uьn|;T u6Hi\Tq8v%R(Q::Xc;Wx9en.ϸl=p=D @r @"M̕/OxmFLy֣^в>zasL4'Fݹwi=ٮıS/+urhX!E}߅e&u?MB W+@>т2aѓ䰰oe:/}%fX*yA@L:/mA츄QP{^})0Msw%ў }|?B2ر(uo_C3.Kh&FTC7C)Qs4Gv;Ā E8EItC؀C6EbH8FdFwRJ wD}+-x4(03X4HçHH4II+.Jx> PHJdHIȄJH\H ThW>W)DI@Hk7t|W.q&Fx"}x{x13@rVPMn8.@X`Pvhbh(؊dR0%b49v]|F4g/-r'.Aƈ-H!gSu_ވ8Z(͸%昄87jkUm}t؏R9yAtotœP<uHq ɇdf/וnku ƳNs/3)5q7)I"J5p,E@ `3ypIMtJɔ G]Bg*zx :ILcfIte85Yi1RD:ɖtZx|5v"⤗q,"]\٘C"j}&_%r/^ђos.^3-UDi&3Ӓ(,\2ix9bS(YX9u]ɜ 1#Y*iZe_f6Za*ɝ2F)BEYd "tЏw6Eyta٠z1霺6ٙƠUʡ:A0(J-ESڡ :S֙m#Cyo>> 2yU`cL쒊(ISXT%Z"i Aa@$]ڦ`$A?1f5!}"n/"M .bz: ZZ BjRP-%GڪGqYa*!:QXR1K1&6A0IQ5cnSbZbJ8Z﹕jگÈvB%Qb.a6b㮄*49^w*B%_y${#ZA eAnm"_*4_/ 9Q:Q!QDAAKkJzCAEGV[oL9fE@@#0yNNK>Ff=S+i{5i@kt{5n;uu5;kickkick_scr3.gif000077500000000000000000000103651263163240400402140ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  +"3'$(:A!A E+.L8:d ]m L1+f+fGJWEGhHKrMQgMQuRLfPMvTWhVXv\`_\as`__c[qefjegxnpolqzsdmtjxuux%.7);  G UGPM \Y gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZ$)1ZZ~}AR)b9jJ711pQ#DTȲeBȜI͛6੧F$:IbZtz4ΫXoꌙ+~;O]˶m% mk1M\ksapmŋJ]kV_|JV?\:}zEf$?FZ\4hW[ D 9JJJrjj0ꪬ*ꨮjk2kxGT0fjn.90@ey␰}Hv,pl'~+kR뇵1 njQn^d;Iyےn 7 gV`\ [Ya,2K6,KZ2lq4:0e^dxm@y39d>+@ 4rmHAtt|tVc-6n<'c;]R ldp{Blt}ys+7ր!8j JwyZKVԋ ^l`Ezj(p~`yISp礔2 )S;Q?Jmdy)B|$½/oO2b uA G8GVQ b ` P8+b D&ӆ6 QbD @$4! U #, SBmWI0bE_=~*^h0Q{xb 1ń`E(@c ҏỹpT?VD?Cx#7 IA&~< HA} HJZ=Q` yĀBR ^Ѕ*ŠV"4FYJSr̥.wKZR/DX[ D4 F0 ` '(hC'nP6[gC|!27u `C<4,`R @y|BZP} ]D'::J3=쓢 HIR@) HKzRڴ\Qbqn H!r(C-RyO;8xaWgUzn5YVZ6Úʄ ұuzjɕO+P _Y5*a*0L@뢺Wǒ2381NΡ\v,J|bIz-eeyPΦeїW n9widEF02phG*m//mņWK^9#Zt}5][^9YU-\&L@ʹ}~Wdҡ,djԪ@֜ OapD{ڡ'~loEȖ3n}Ftn4o k]o^ ;^f|ey+z?Ƒ8|\8@[1KQ7UҵpZ^R8Exyhrvc;5 zqsGO:|&˩~s:/ 'V~"mt}XOgfGڏwup}y/zIF&#$25Bد?_׾K8jžc&4 jF?LOAߒW7~I̴^QĴJ}G~2h?ԁDhKL*L"xMd^*JLτGd|`MxpF#yCXExIK&NHFN` :c70}PPCKxSY`hl7%imxpՅQfVdwAtdRw 0 }xhS8؈8^DA&_jn0 ZLz؊U8(xȊYR9(=EWP`rGȸU˘=؋g&Wqobۨ:ژh G(FY0!|o혌1rx"5P8&zldsDWbh )0pqĒ4wv)_Y3i BEB" *9 &j%z*-""Vg)"-4Z+* 7iY3 >H HD! b tIR 24 CEqS1!?& ʭ:JPRʭ*t*>ABR? SѯcBz#(9Q :9O;kickkick_splash.jpg000077500000000000000000000063131263163240400406450ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd" !1AQa"q2RbB#3$%ErCc!1AQa2C"3qR# ?4d4h-ݕT _ _e7{E*.n2ڻN/_6&B9F}5'sT+k釠xEkB-cp;'8>_QyS0PB˄6e,%-7E$ljeyg&(d[ `orbf(ȹTwXTE` Ҽ\ 1*ѾR }}/pST-϶۪Pէw*R;G;pV&٘?)1pOw(CAjtV֕)SIP1{#RWi=J.X>j cYmō`wo\i^W$w0и\!28Sf޷yCcc3l;Isf䋧w!d(#*ē@14y9kgvP{&wGz9+n=׌k)fCT~﬩J&?zB}բW FFq[-$d?TE8ePr Ժ/p|6i*4  PwHrMV2YV1"G[ՖW06!i2n-g4XDʖyN e&^'&Q($m2 z*l nv ALs4F!u*.N^ȁɧV{_am[?',K .cEi sTyO#oI F -SYb74D@i+~mgm*1lHǨ='/2WNOcӷDf-f?/U+ŗP/$|wM1G1d0HF/ݽzjP7kZ\*uWo5zwo*V7|X4տխpFL[ꎿ ˛2!hI&vsڿV* KO.JDo+4%bbu'yyIz)9,>Y7#(!SiūNt:>KNjmFN 'xzo >^g NwqpTqEÙUIhir2hExot`GÌ "Ldc X+_M6WU @&6 16مJ7|7Ve/SOt 3{bqh]56~uo$4KX3߇ _FWe˅VcO| =5Wڽ"*L+p+ٺsYLm-5mzT٪FuV2Ym-o`!_o}eJwʔ='󛜗݉;v^'22mZm8 pxMn-\ةۀ#}"NT2X,$l.kC0rlje#M$YɘWA Kmcۍ(xYg-}Z-c~azhJ\SnU6\-N6뻶k۳qmn /2ȹQtC``\t|HEl<4 9wgW>B2Z5:׆"NIbC } 5ن6xAʶCҶ4 KwJIu OaWË DG\̪qӇeya]G~:\.^!èRcd1PtV09sW(%aӇYƮ6#ckC ;͏$\uZO !Ȃ@FުݭPmmYRuh)z/e oJ»8ғ7eXFȐGڍ+բ2'Se"7Q fy+pPr|iz,v5ǁx(96Fk,R,R/jav m⢠̓{" ſ_(Pj)XvdyO'[3JKnutO#,Hn`> 3 6'jTpG?2 *1 gdŅ]؝稛EwQ>Hݍ!mv '+52snaX y2S 2Z^R譱C'cBWp*#,ј%(,Xa X O]TAHb=0Ɉן/~jmviR{kLb`:k0ݩucvvmO\*R~$`Onuljv\*T^z%!2)^'*ImRv춝V=_Į5_ԩR{N]Ԯ7J*{HԨ=EJm;vX{W?,|*T;og=/;yU*T|ݮ tlifesaver_scr1.gif000077500000000000000000000171331263163240400404070ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aR:ŜZ11!s1J1֥s1{Z)JJsBk:!RZ:B{))kZB!!cֽZŜ))J:JBc1:Z1!ZZ:Zc))):ZB{Rc:ZscsŔZs::)RR)scJkcZkΥcRZksksZRRR){k{ޔ֌R1cJ{!!!111{{΄楜BBJ:)kZc!:sέŔJֽJνk:{skJ1)JέέŜ1{ť{!!,H*\ȰÇ#JHŋ3^ta9qbƓ(!)bĈ4Rd`!-_ڜ3ϟAԆ!ZS@#Em!)4QXQ YAz)ԫ[Bơ_u(ȴPm w\%>ZHǵK*֮SSLaXi hLԈRA׼,$s ]{莠NV5 A{m:Pb{IaH(nʩ; ZDF 0ΓGo޼K/:nߏ|9~H} _x W` >8!aH7C:a*a!4bCc<_6+W <a(zY-W7DGbH$`b7 襐!}e9B f=Fy$(i~iRf% JY\S~Hh 6IxNZѧܜ97`X㤑bS^f|}B㗯eCګ7+@(:) [_IS`[@_hp*7n*㉫,(ٸxRzN@6 /D16 H11K!S[2,20rs-s.p3/A,w@1;Hp 7 LǼJ3*dFì]|[c}s}5%( J`аvAƆ@ ">F`[!1lD (HH0q h*Rъ] Hl@H 0%@L1f"#6mpD,"(0Ub+GȊr[^I42`gT@FM Tɘqx 9Lh PL\ IK2(.n8 @u5 3;j( 7.жw7atԕh 9`7 N`p5G z<8 ֶ%yg Xn.:c*f MBrc9`_K|44q2P*D& s>}ͷEx3FhgA# hHLE[fLp!H\% NmEc 0ñXv:' ʳuTb8HD"`,z #B8fն:8Lq \#w3Qr@6dU?Qۄw4M?ȷ4< [^Q}p;1w^d7Ìoyc7 '~T^Џ{& __[`< X+Q``aFaDvaa#7O3brCbqcb48^^O+.{`O_P\ȀTX@gU?c%dLiHdKkv_Q7SK<^搊IeOVw̘[`OQpOpmY3?yhWyf|f'mvǀeykɀ&p^9bbep3&45ie~㏕hـk`X9il2Г&`u4hkkmF6mv656^#l;Ȝji٩i[j8I8ަjo#;ss9v9u38Fd:){١؀gmaQПu) < ;Vq"7||q?)4or7rWr7FПJusH?Ksot3tt@ptt;@ 4uV?S3Bbɡ pKzFVndCwBiwmwqgttWv?wM}vpx:zppObn Js:yZ$zjgGWz.yyzrDztiyzgȜ:Gڟ(H8˥jFȻٻJܱHHP=MP]nEhU^ّjx^+Se74N4@5㮝RP`ƿDa lT): ڳӕ;^H L6?^~4c*^d]4hgOlN\seZ]z ]?nY5.c^*.Ck3h3J̃30^Pc"p(@J LtXZ\z_*QGGl"XP?SO<w,φ*^Lz{7$x喜?ʄC/EoOeIzz+-F&! 7B?_OeRi:=FH}OqӉۇ4 bo`CK]]_OOM2i=C֔o}EO}^Rھ3Ͱ$R$OO)(P3t.8/؊>/ЮzpՎڎf1XXR=?8]|0||IA:PC HqD TpE (lX FT<F LVlr& `A%4EC"hBEh#N1e_>|Had̕(8E"3`JQlavgO?Ѡ pY'LY(l&7IaW@와ٹOl5ϯw;0aCStPO{j&kv^S @MB͛sOds+0p _~pS??9 (4(<8<`ANX@` : <;4St0E 5E>zG R5PRɺ ,@I 4-$|EDOEJ ,H8aN:<2J tSP2EA?;J[uyIP;0KACDD-էFD5U V)}PhS=$ ,ssV$+3@4Ls61J@6YIE-x =,AV[~wȗɁr'lv G7XR/FC$<|hd+yAF^f9 ~8 6m~`$ҍ1ѓohKWF飙&j-gzf&[ln:,cA3ahᮅt|{ppI'`ݰbcy$,h:&tQ42 8햢&+h;BsΣK}/vU uګ(B ff bŠ#Ĺ oI>{#O$UO GvDMmC]pare( 81ϠP+d ')]aUlxCNz24 O ;׀"#G=bO xl)pH" `n(%C `D6F VCBȼq0oT>+d :/7oh@'=IPVl@bC:rde+wpE:li5 g(ܣ(yLdv0$9R ,1`J@io3݉ed 2WjR2CɃ|CPFT$@)0= FɣM} 1EClfA_nNNT3)ME:Դ,iPd>&5>wOZ˛AZSFUSjUS^SOS#`UkYNԬk+YV^sk]ՈҮ{k_ >.Яݫ` X&Veb"8Ud-{Yfv,gZٙzլ_E[ڈiYZVmmm{[5 ;lifesaver_scr2.gif000077500000000000000000000166111263163240400404100ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aR:ŜZ1!sJ1{1s1Js֌BJ:!R1B!BZZŜ)cֽJ:JBk)c1:Z1))kZ!{Z)B):Z!Z:ZRRcZ1:{:BsŔZs{{:cZks:cZcRΥcJk)sck1Z)))ks)R{k{sRk))RJZޔcR1J111{{BBJ!!!!΄!RkZ{kJ{Jssε{RRR)kJ:νŔέJΥ{sν1Z11ZέŌZ)JRBJk!έ)!,H*\ȰÇ#JHEt=.y &4h ˕=IDPFBa""$N9i2h$0 ԥA|D&i㩧WM[Id&tlhɚ5 "Mjjg YRi%'(vV`$na.1ݭ]5ghC^VcNVN^$i&HkrC7A"u}0ʄk^xxRC=H!}kWJ8m&{A>M*W>)Vp+7-߸BkހZ$GVS 0DtᆾyXH؉g=ŠbNsM48a5#(H#2TL6aPQ2V&dQeW~e5)kfFB_ЛX饑7 gM%<ِa. _P^yã=I{'Ki5BAk^ : fZ){2;h*Z;fkLޯf®UNL%2K*P\I_-) 5j;%-n譛e[l;+n:Ym`fh-)G򸧼\o`(.ZW|&* egH'i2J X$i\P"r@PV*zOq0EZr `[W_WHnsd+R Db@`) Q,CU6 (k:D]/  &1 9a DX nwFo|@<(^}vpP|}Hܝ.x_p9WE o*ッ. O{0!n+@W%=~Q3LCpx}en94@8L 荹(`jc討؎.?p| 0<ć;99y1 9JPǗIǎyǢi^ƌȎi l|;ÜiɻٜCH\I-;ЩiHܟة Ȑˎ|Žh>[ziZZ˲i-Wݽ ޱ}ϢݐM{sKXW;9]~>TYVz;@ໄh@ˈ{`vƹN|&`'&ptSs7훌p ԋȈ8{gθZ Ps8kǹf`6$H&\n/.9A <,_g^#x. l@yjPp; ,tɏR9 `%L,_9\6ׂ.[^]\~_~>~Pŕ^[JYJi]ܖoK.n[ꂾ**Hhnp\rS v,쁾ΞXo<3ʺY7n>jyC٘jx*뉟% //(N &⍳˽|ʪˊ@.ZO+\-xp y@ m 3  jPl ;T&P Zl^{v &*e_EoЇjzmZ)S3@&>n P *σ:y Ա:ZԺCOJL& NZȪR#'$Pp _ w?lnm7@HZ_| '{y{\x&9TR" u! 1%aGD) A"IV(pHѧF8LP' 42SM8Hj P2p09G 4xl­[ 4|ݺゕH$`yL5s2`a X /4\2 WZUH8ǹ;768< k fl0j܅"ɗ7q ~y/~Eb=-'lwoe?T{ QE#,=#< o#͹rcN\+ |mpk@@|`T) )M P@JϦ 4"ϧP̑-:G'QsrBF>|`l(7bC&rj,94Z@4+$McP0( 3HXC# QM[7$ 1Ͱ2Dc/STSUuսB| X,*՛T=rU^{/-U2z%!TQIuYf35YFˆ5VTk]տk q^5PG-tUwu5"0 #xfȴ7vn-7N\s `waF0$zxt55pka5U-w0Va#8 ]=jn`Sm(`t@YN7inYv[87d]nៃ^S]NiNZ,@ۈ_7@WX XEa\v&ptvi`bgߛo s/k}M;|r#.}S!Pv|g=hZ#+Y< {e6 wbn7q"鱤o^=@k,+azYDI{c`g`n&TߛAF{!J2OtI_ o0DǻO!4( c `Da 3@> h"FpyXDE01߫ronA* a7T1hX^p@" Nb}D,c22<]c#HRP<#f1zU GAj DTB#IJXR%!P\R%){ZS+yL12|2b>S$.yMlffӋLMpS,1YhSD9YuS'=Yp>Ot(AFT:P0}C)zQfThG=Qb3 ;lifesaver_scr3.gif000077500000000000000000000153741263163240400404160ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aR:Ŝ1Zޔ{֌!sJ1s1JsBRB:!ZB!ZJ)cֽJ:JBc1:1Z1Z)s:Z{1Rc:{{kBkZs):!s)):Ŕ!RΥcs:kJk)scB{Z)Z)Rsk!ZkcZkRs))))ޔZZ{k{ޔc::R1JBBJ!!!111{{{΄!{ZckZ{kJs{sRRRέ:νŔJֽ1)RJs1R1Z)JέZ)RBZ!,H*\ȰÇ#JHEm%jHУ.ypȎ' ܑɄ! (LKyqG$Iz4 @@ihK$5Р1c*qH`c$"pFx 6ѯa4h%Ku- ׿{$f ¸p  lLX3c F+b8m*MrROճmE:A&p~Tu岾[&=mQru{H6,vıޞP"^>0-%!d<HXD@&ЀK t[A5az `a @fC4 AKyWc(W\#A XH#xc5 @B cȐC&J6I:$SNiR: cJRe^fW39jidruClV9Cfz*&q4gCdxdOr{6I ecDZ}"bhDIuc:'/X*ꪤM\qe& +:"&zya J A&IF[/vy #^J*p ,1fjޮ 2 0* N /3h.1% \_lϢ_OY4Wh6C6ݵo y|ux(߆3G.< P? w.?N Nޣ>@".QaN 9: wfH}Qx`G8=R?_?> o̧}"@ P ?|_A πG?⯃( B]p~Hɗx! Iho>!(= jHDRBA퐁p0**1I`xEnXUH>*N \TrH'BQXъZA31}h,э d"8nd$ I:R s#!XQ I>HJReV&ğ@KZR򔨜_pHjo#.oKRo%/WV~$jـPӖf59?J^Ӛ$2kiMm2CL Кg<Ojjќ$_I|'?ks8HhB17ghA%Zy7Qyp"CG)jЃP J/ 8@0:QytFP͏$5DӀԤ D) -ԥB:. JX;T0<Y۵uoc%XL xYѪַ\L!yk#uX6{J'iPA%@xOhxZ$CXb(K[8DfNpXwdb 4AP!VO ͮvҖ6xkHMSZ2AGnH;A[הMpARz|I8ݰ{`2 ,q:ta =<@Pp/~E`C}>UD&S|D2)8 W,."#.1${' @I>0fJd~=`9YA160BsxsO (jf̈F>.vcNLKIkA8tm7BE×d^`eE i8$jRӚI}aӱجs jB]r֙ZkV0O;ru@Kcє,%'< ݫ{M[XaC^.ކ4{ǹnbJ ëIfo$dvSGV %(@ow*pׄCYO_3Ĺ=m'YG>FCK|8>Gp,"ap=`rWO O̵\J]lew47˾юvZ{t)TwVhNp~3u{Y#:Lo聙#m{\j~)j u^uh \UX5(:z7rP r% {,u ~5wZNWt;uj[oւ[*pHZ#n ]D][Ut$eWXjdN0J>>s}5as;K_vDW9fdPvXֶc?N@Ae7G`WiAFo.&A9v=N2FcaktG x)j pp0$C8DSFtKcH|Í?f7DHu\`#cXԈn?KGp&eANUF<#7;h x犳%Wr egVdWCi{Eg~FF Dv"7h8u) k숄?ZǶkԒ@TjvF9?$JXjj@uh[eE'y luTJfjcoäJLjehppK?ol:pTqOs ā̓؏ETt)?u[:NvsO@qBnJ:ڄtBdf?ut) OQnQ9$%CQeؙ _cj0*`HhySWQ@Q䃛kv}5(qe?0PSFE>ԗ|ȇwvYy:PTT(e0uȩhP̩Qֆ5;x@; :IAYEYrj8:cK6"ru ,9z9w5zJީEFWE:BJK5%pB*p8V@jk\CDYzKʤPrpЧ ZJ2AJڨJD:@r7H`2@ZP6 ʤzB:$ڨ D20کBw*xSʥjeʨ'ZsJeӫ+*:?Zŭ*TDj+Scݺ_ڪC@ˮ;J DኯZ;Ka: ӰPK&{{ñ:@$:-p8:Z5`: ۬ŬjW&;۳?c*Z:Cʴ#CJ\ LL7Q>kCklZ\k`[)e&7 +mKAVq0bk:?y;c7`-7Tpʜjʨj84` 8H𺪫Vp.Pg+;9HЋ;8{læ⻦sK.p+>˼;VCU`‹n㓒÷۹黾ھ5H]DZ]VM]pep7{.,;?,|n˫5@!O3@D8ePBD<@G `p,plp,0]"`,d̨@U sOn0s d0 ,SV8l |Α:ШGVJ`rJ@ M`,EiEd|M0`; ME:OP<  8$M$0%'7,$0\Nl8K:0{,PM/$5m8:r-}u,[ m`7E@$`hmhҊM!LҶׁMԁl@EɌn־sv ͆،w,`;h ؃r]ۈ L  ؄$@ذ]M­̠}ӢPSU8ع]ؼ] %@>@@3)'O]:ܲ<TtPȇܾ<Ņ OLUV= r [NŚD. bk@7k\]p?U@>BŹҜwZxRШBS\QH3PH.*TVP(@oB9(_&̨Q$>#?8#2 A@ !  < Q  xaG!E$9I)U@RJrPِM #xQOXp~X4c9.g˛02t)3(gěDV55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d"!1AQaq"2bBRr#$3C !1AQaq"2RB3Cb#S ?Y;J̍e6׽R!!B-&F9ªm 2ZcrkZv["Tܶaq_430OQ@K+-ܸJ o@/ĽVקñ7~`y15d9 6˟ LE? @zO Ӹ)@~\cN'xUeVY7%_jk\A&>\k2l1.˗e_4p6iإ!/_Rc$ڝZanCц/YݴQ:?!z8.W\Rw%v1j -}r!_I?3 ?J8@D +agٜi2imSbR\<JOGԐ'qiL0(XmPZLH`fw/YYw3~C;JHlsn(xڽN9۷jhED'H R (>">qw_l"7\U]ejCF!KVnB۵u*VYom*WC9ԧTHwǙ?GXQvH3|G=,c>Dm4%+;kb-[JY:Sl1/ԝ7WG+FnvhPZ<7g`VZHI Ǩ7)7`0n+EwϳTn)HcV)fÎ &3Fg 9TxۅUxԠ"Cc z FATP=YÍgE挲 T!T"MҌI B 3eVN )GlpcoQ Ϩ]~)aI㽝E˧i&xءa jY2霧F8xm{Xqd/U{U wª^Qw l7hxqU$d'Es4͑X366Ɵd\88cM)Wg{уq]g^^szAzy-[rRݦܒjU&L0v4@|>%s2M8}ԳMD}7s5Ե.XDs)Sa|"ԕY2|Yyr`w6ʰXMƌ}I2XÖ2*Kp`XpB!Qb1߾†FR Ăg}CmPW*v\xV(m $" JMJ;KeDq[})h.نZ1e0 o1\P~uvڄ^K&vLyRdoN>%zk2Q^p) ЀnNZOFΣcZס9{-o(طnٌpSEN tק/ϒyqBu5^/O;W_owI[Ât$,K wxR%YocaGw9jX[Ɣ2I8Isa.`ds)Sl7kV{nd|0^[ n#d\ᶴ 1I5OyO,+B*MzKK!U,p}U90?lg*l/f6PyBͨHLΫ,>>}GsQ/K`$\4RDO<np2fo𥒺!<Mz*Vnpcz5'r%q19kwվz^{?Oީmx} %]NvI[~mS \9 tã={dJ̣fmg]NVgm@nӵ&!髳6'KU CڽS{4fssT Z?-ˏ!wce>?`V_RO\fٷ5JêdX/s‡ caq\_<Al ^٬|mkd͖lʬOP =H\)F ㏜ka%9oj o ,#'$vmkrceFn@rZa\׵N]٭/Ow3t FQEf9pJ R}[livebridge_scr1.gif000077500000000000000000000124451263163240400405440ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89ayR) 4Z AHs4jZL99JuZu11s){) s Jb1uquu}ui{i{y 9Ab )R)19RAJRZbjss{R{{ʴ͋{b͋j{{s Z{)Z{Ɯ{ʜ1Ŭ{œ{֔) 9{ޔΔ1] Ҕi A 9 19J,(sj1;նť9sY1{}Uu)b4}b4j@mj8Haa)Y UPy90< ,{R1!,YHSÇ#Fܣŋ3jDHGǏlIdB$tdQ ȗ(GdF58qI K06gτjά9%cPJJժ suj:VլYٳhJ T$j&% LN5VW˷߿6"{ ƒ cF˘#ApȒy/3cc9=vݿ/b˞M۳{=Zvgঃ[6e5/! /Nz,HgUtvdΛ3?>t0˟O}({ܗ~Y̷~0бca1ƃuWNgƅfE@Gh/G hrX0Es̭&jRÍ8nFnDfD&CJ9Pք]1 D-TIn?ѤnbCIZJw3#/‰ *=D6ꨣH<*hЃBjzQ駌>Q(l1袠 JhFƖJíf+aˮ댳̾ᣡ_v+-XH^nn)[û `hk,cq `TgXgD O$ſtLjFpO|8|ÅaƽXOl:YMK+ d$Z<3Pw_3> mhO3}4G7vΓaqÃR)3rJ(P `񳏇^G.9HLNWyJI!kCբG(W\o8nq1oN >b.zRQ(( O_?}\OE9A>_?7XH|s߇R)ooGoCs5_WP[ п (P$ Z"u!)f8b(v>{B sp)d pu0 t&:Q3L] AeX.b ^b Eb!xaERn g5XD:,b,koD*Hp>CN. (=QzR%!S4+% S'IJVrltLR0JQ4_,wf6s$Lp`Xn 8řqz\R'M!Q|$-i/< oi~ӟg3)n"o7p]h6|f ͨF}z F(~bCIntOXEhҚ4)nQB;~MHbH*L:Q;&PTJժZU VKHrQT3dhMZol @׺ uD׾ `KVo=E8Ϲw@:9q1!t3PsNҧP`NhONl'x!pk?xB< D ={'Oɓ| #^񏯼GkGAovȓ׃gOϽw #O Oy Fx=)J߇[Ͼ{>#RӧYg~Ͽ~? ~0 ؀x ؀h8 |}~ ` P ,0(46؂/3ȁBȃ7:HG  `  ЄZOSXW[ȅRHVcl؆M؅gjI8z&HzL脣 Їp p [{Xk|臀(hnxȈu|$xa0X02@US[$"؊8x؋(h،H˜he`Gp(@$ X"@ˆ(h討؎瘎Ȍh( ؍8 Ɍ#8.JN(X @y  02)Y6 'NFB P*pDYFh,iJyG3`TY7)NP``YHMɒjV@F[)(TIivi6ڨyI6Y(i0ٔ*^@yv"@Y )6Y"pYHʹYTi9Թ`YЙٝ.9 I)PYYyɝ˙9Zz :̩G):zɜe0$JLiYJ١.0ʝ!%z82<ڣ>i8z:%?ڤjPR:TZVJY8bZu0%r ezjlڦnA%**r&0]]`{jp:r*j`&JzPZکrJ\6 P*`_j*࠽::ZZzZTӺ::J蚮ꚮڭ:%I zZʯT[*dg:۰ۨZ\P\+yZ|ڧڱ$jʲV`0%۱:j<۳>@AZ/+H+BL۴?=N;TpVEWp۵`U[f{h+W lr۵dv{x˳{m1;{u|{۸˸+𸘛+|+IP{I0{ۺ[cZ%%{|+Pk›!ۼ+P;;;{}z&{a{˽뽩ڼ:;K۵ <߫;{K;Cpl "<$\&|( ˽,|2|2L6,|BgUivNdΛ3?>t)˟O}(mܗ>L~)_V֜-aŃuWNΗŅYL!EِFh/G hrK0us̭&jE8Bcc!D2D&J9ZPք]* DXF-TIc?fѤnbhCIZJw3#/‰# *=0D6ꨣ><*(`CBjz^Q駌Q(ad1袠 hvŖ­+f*þaˮ댳̒ᣡR:vk-K^n%»;Sh^,/qYHSTg肵g8 C$ĿiLjFpO 8 ÅKŽfXCl:ۀLK+ W$Z<3PwsRl3> [O3}G7vΓ-ÃR)3s$P `o񳏇^G.9>LWyJ!^Cբ^$-W\dxcdq1osN >b.zE\Q$p$ O_?\OD2A>_?7VKH|sKb &ddΗoe>5_W=I[ п (P$ Za"ua%f8b(v>B ep)d u0f&:q3L] AeX.b^b E.!xaJ g;/dXd4,b,k" HT"oD&*p>ۂN.2 (=ɄQzE%!S4K% S'IJVrlt\LR򗝴0JQ4_,iPf6s$LpSn 8Ʉqz\E'M!Q|$-iM)r kvF!'9C 8'L [x7GrG C G I0gL4 @2A G!A"#FN+ф*[Xβ.gY(6pmL2ټR4׬f b9ylH=nm`:ψ2FqB áCV GMRԨ5l[M_ΚNg-kOָ5шF͵}5bfHf;Ў6wA0YИ4nw-ܾamrۨMzηmoB̮ƴM<OoK+|;rH J<WO?o~XG GyWw`` PGȁ~x #؂"g~WwuP p Fh;؃?CXG>BHORUWSȄVx6Hwhx@ ` lh @ @ \j؆nrH]xmq8u~Ȇȇ98z`{pGXH$ !BhNAȉB h؉Xh8X(HxX=H!ؘ0hڨ荼8؍߈긎樊Hȍ P 9鐩xi$ّ 98$Y&y(#y.=Џ!Y8:(ɒ 4 ;{۽[  ˿,P Pt ,lL 0{@!<€P')L&?+8 pP0v9=@, }€ RTlX<{P?ZpÅ0h{Qq &ׯe:;y$ ǐ|wiܳدw;Ͽ8=}~^\!vW`r_A jA("oNj@FYDTX\w]m8vĀ,,hAbASLoĔ"q,$IM.YfXcviS1_řp@飖M.dpR6Yc>`衈":dZD E<*)@La SZ.!j_(ji)F @`i:꧓JlX9k/$̖&cV.@Tod6lŚ!.[Nl\lkmG@`& '. CLET<,mFp_D8|,1!rN Cf, &.07΅D6E'l3=f`"$<<^之A>;şgͣ<d"͙O y6c:PNx'-P;iBW?0((AY$C:DAaB Ҡ` Abz X'[PO"胞.v^ڊD 6сQ,*a kxc x/&vIB B!q`HCNb,ұwcڑ Z(BreqH1*YG6''O|bh6.L2eΌ2qxizɬ0 gzzf0!GiAD&NiRә&.ACv7g>K_R$9iG/PMB :APQQ=Kpz1S34(MJQ:ѕ"t r@MR]NiZP値@NJԢHMQxu _MmѢ4*(ծzթNAȉL:?w5WukOAֺxͫ^#5?,_5iEx\:j]܁f7"lv=gGKҚMjWLT 'k5{mk+S p[" Mr:f.1 {v:WZ&P>Hz|Kyi꡺-~Lx?'k,'L [ΰ7a g4(NeV0fL8αw:%fHL1&;A/G #XX.{`Lf+ Y\ 1[psuL:`d G8ȕxMhrHtuB;ѐ'MJ[Z JLjF_ԨNOm=p}>2Ci*[wոε/jWaFGư޵JBx,QdGԶuu'1 IT]MrNns;v zW >"CºN;{@Emے'N[ϸ7_#Nx0< 8y, It[gN[oCv4`Mҗ;Pԡn==p[LyN0vxEw9!xϻ߻HLBx'yސq'O[Dl9noWֻ]~ Z.zu~~OzLЏ?ޒ8 2B؃D(G IK؄*H8sPs @ < V`Zȅ`xb]xhjXlnHf 80H}V` UHx8xHxqhg(SH}wpX  P(؊HȊȋxX88}{X~P P H֘ȍ8ٸHꈍxhX툎~W &$%D P"PC0 P ɐD)ii)ɑ&ɐ,i9Y?p?ʙ1YТ/*8JLZʣ R:&ФVzXJA:RZZ:Lfzhjl SVpZmzxz|tZY`E:j}zʦZV1zک?J*hڪZKPjV)ګŠ*Ypj0ڬjYɊ ؚjڭjJIPzzڮ*JzI گ+0j庯Z[1` ۱+"˯P&{(*[.˱4[6{8:[@K.kL ;FK ;;L۴Nk=R[0pX;J\۵\K` Q;Y{LNl۶npr;q;2{Qg;t۷~okxApA˷~K+ 0[{`Xz۸[{p;[{K;;;ʛۼ;˹@ˋk{о;[{kxPmvpp\x<˿v@ |#\, @ /3\{2LÈ9 D, P`A0E|I-\@Z 5ZL\[ f,h|< pq|`<0rLr|ylń|0bLȍȊɖnJJ`{Ǡɢl ʰ,˴lˌ˳\˯˸ nwl< mK`̂mp\ȫ0˚p݌͇<AA`m̢<pό \L}ܬ<ϊMxm@ X<˦ m "M!#Ҧ= ̒2ѩȦӖ?<Ӛ< Ԅ@IMm49/Le Zm]`]mYmLlT}p 4s]wݾv4ք}o׈P،؆ؐ};livebridge_splash.jpg000077500000000000000000000062231263163240400411760ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQa"q2BR#3br!1AQ"aq2RbBr3C ?ТSiPDF%|j0Z;vO*Zn:&6Գ*,HXA&H[9rB~U|5ߚ [4(,)S_V=%HE =O0DŽLLx` m'uw&nا !dcppÝȥnɐ $Wsd)Ŝ<>cq}=\:󺥳oEr6*qqgɌb0 ;̇9Y(rtmU] `35<5nĀ4O(cm[U%G.=$"߈Zt٤|ja쪲@nQfp&r5&~08&Du,EaȧwQ]a t~~\]ewӶGFQEX*9X=d%XDݵyYf1b m-V5 Es:VZqpˍՆQW6UxpX.IIK0 1a mc,4%m9zxTmWlxUK3 :$h$sq7nvg'ZbٙsV5-@ EV VfUi@ <^Eh~rds a4O)^ӻGFbUtDDw HǐkW\ (_Zp  |X!tqT ,e.U\8FY}/ܵʴ(7N@2 S2dLv1Nu+,:clhr~mKk+BDO).5,7Mk%W;?o_ݢcDȡ7/h'ts4,̊mDžY~A]=֯^dth[Dk-בy3Oz}6>wlmD۽o{8߿I/}2oWIp2D E U[PN~ide7O*)0S*]Ēxcv6dQ Rxqv`yiήeF{E܏:`$ᡬ>7reueS`-YpSulM>2srUݞG'sU+@@xoD{pXOXQvu$ e!sk?0sL{mK gRJثg!qzϏ[F^qev}e->r%-d͎FG~+~VIl c_}YUUDlXƶL[ag?DttT]uY2h3QQY]d}SƊ{-xӈ}c#6\H ŋ﫻qJu-"ipu }[ԟ}I{"9#[w*=J'!ҳ8*M@|jPjxJS)ciccq0 'ַ Utվsӆ< vn&sg%Ȑ48n25ÇI}\θpa^2toQqb~/.O0 d*U-{">YEOk gCO͒VpP&}UPyO?jqbR^m{t@7_qs1VچLK ?4cGaX k<-b'v85Oh?ƶFͲ&wz(;g)0W,d@t5̬nH&Ӈ95|ovt yA7kj@Cmja( #iʲXCp< -Spmcm&`S}w?) ucMJ h#N6$g0dF'gҝ~ÂɊ <6nYrͲNvK5eq?XԾf_ [^K9 [>q3wy ƆGc8NWu@deivϋ%߿]i{rba|"xvgv]b.'kb Aٻb W-B 529L;ذr< U qBaP IY,XZW[],0 $(O >vF-15kvT;+C[z6]lF1梁>)2Gy.Lԑ6&Gh;iȶk$QQWCpA7QʤfvNB04>ik,UJgAn]!ʿts2˕Ah560#&Zi'R'NI3ѠXg.>3s˯eul;W  Y^ӨrǓ\X=KLe+cqbO<||*gd5dMPzav?[-[m[kd}? ɀhQc7=B,@մᰚ'<޲44ʖE]`DMkOW{K>5޾2`NuHٹ1ZsmxUuӝ/\T~iTQ^0#8V\?0߇QEg& 2e,}϶*Gf(N|w(N>QE}"m?=>(^[B)L癁Ϳ墊Lʊ(Nmobilechase_scr1.gif000077500000000000000000000250141263163240400406770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a{kJJccRc::ޭRBB{{J)!cRsέRkJs1B1:JJ{JcsJRs)1c:Rc1J)Z)BZcRksΜkBR!ΔBcs{ckscs!ZZcB浽Z!Zk!s֔BJJJŽRk:J!JBcZc)BέﵽkR:c!:kc!)BZΌZssJŵsJ1Z)֭kZkﵽZ{{Υֵν:BBss!, $@ Ç `c"ĉPǏ@ɓ(S\ɲ˓$cʌ ͏ >Dȓ'D:+ jƣk,S15,J&ҫ !3ĉD+>ĘQ 8̶(ײ="\v}*_ IhD*&L1X zre*`3Hֹc)Y9a u @P]3&CyR&R)mDg{i?;z}PM0"]V e *8@1`LsTjNV4 +ES3H?}ZB0 DQе&U >ZATk غXX-11 0d'kXd pT@g70XdyP6ivk\(]=S0Yvj5&PDQj@s*Chf ?+]0Xv ErK^Vmp#)xQ+K}[ֹpeCDD E -E7=p;FKWe kg\RARg1 _S m~iJg\{VV[^w.Q[@mV#FÎ\ʧmz59? @|:. 8ITw+mgh\819ȧm1V+bRaKUq:LvP>+ Lnes,^ t}l2z&]уUwϝ R *b TĤtx X*4|WѺv,jrY)ip}zA טUmN; "Γn^`[WflRe2,a dpw*a K r|ۤMn`onWud WMS[Mg=GU_X'us wXV8^Mr1 i 0 W=2ο_wY:tg]xG2o ȀEzcjS}Ү';+ v!]2xYjʴE`Jh FOo3N< { _(]{}a]e]:ʪ ?$[K 9̵+Ǽ\YLUbc_s ؼיSNU_{S]׫Ƥh'tʦ}w}ط%sw}@FK ~vxw^c\tTGk7m:\avegZpZ\sq֧4KVQ%mZ{{!LUÂkNcד5T>  EH;vv dн^)r(;Aƨ\+.;i<j<}Ěs(KBJ0/ܿתmPt xU}R*նX3 ==<5T*Ԏf%MC ಡDJǻz:ĿLyƪK;*f[N)|Nɕ,K:˻B]u^C겎ۙɣ8>ᮡ\&IF)H7gvO5J^ΤСxĩk7~x벃;@=E.uP̵0~-*/>gܭў;kˤ7mt2bR`r$ - dܭppoR}@[*^޸+u*T)~;>׈h&WN 1[`2JHfwXP`7mSO8<*)^tpPd8?'~ZT>7Kߺ00Y m^p*wyK=uVTHPA * d`RѢ2REʁ|L I 8 `a%/av.F"BH,д`. 94J4La T d DkB[q:D;alCBf$ԗГ =ic:Rn렦Eodfl³8mvqe(+Uߴ#2) ZkV\EW^qW`v*|p(EVQ(u6b%)(0nZ` ]V̳ġu!Ky^|՗\u@_}Y(o'Pxac:a`A</<"؀ro l*|/`?֕L) ,N/'S^9d 6h0tB'a 0@,خEjv)NlJ>ao|p G6Hp &!"' ~# /\;s=悋BUȮأB^ )M=ts? x2@\lxC} qeaBQ;ex$Ӂ!d<kTo!\ קܰR7+v-tBT 6if3eiES'cO 1JzFiNSP"H) QD=>@SWqiMǡӞI-y/A .`n5i&;<ʀHX +%l1¨q&Ra2F6,8@x3`o7 53pڽMgvӷ^XpGa_ =qs^Hso| g9˝g<^P~, -{ 9|ް%=lH:{tY`ö㣛7 />05#{nvu7~tPYz盅(I?PHҪE jǂp,:r1X~-.wTar{ }oǹtrqbcۏզ,ƹX["=^@ ^#*{!2kɶ+A{8/\;8㹶1B^, ØUj$lJ#@)1 d0%|C7¥8(C;C풸H=U<`K=È1C0{sy@#GH8 `z7}7E+ gD/C9\F= A9Iз9(oaq< Cz1<:vl\3,(<ȃ@_ ; 83O5jюu%S{186b |PTuZLJ$t?13%ER5X=M] 76<f0UYa‚0MU>13%LUK kյjމeUxVuUR4=t5=nLWw0EpS((WswW~E,= WRVW1W-W17%rq /5XfLPXX Y؊E/,zL0#YYYOMY00/-Z=Z95ً] CZZګ.&E٨=X>g1=[M[M4&گYW-2[5Zz[[Z[ [[[ٺ%Ý\M4ܰ\•0 ]M̍ΥM0}ݣ ,ٽ\E]ܝeݲ155XX=^\u֭"-^^ݹޕ^^^=_^^ ____(;=,_B =`/ B-~"R `.`p> >*=h8a`vvaa8`Vaaa+`BbR*paaf >a(($na'f .+b-((#vp:cn%`@F3(>#E&?n@nc;6d=pFKCGc:d.'.{dBM^6dQfdNL;. n_6a0F@b_@'FdJ_=F]c7c>d^f].f`~a2ecN'Nc.b5Vg)bO&ca,~_xFgVg+ !vb,^灾b?^eAFhNtvaN^h5n(&fhE&^eʢubmndV.2FhFi>阶~enf&i.>+VidFe){ivfifj&j6j^>binOv`on#jRfeTidfg䏮f ffcfb.+JV.ieJl=K.l6찂ll˾llllmm.m>mNm^m;mobilechase_scr2.gif000077500000000000000000000176111263163240400407040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aBB{kc!!!::ss1:JcR{RJRcs:Rc{{{c1s1BZc)RksccRZRBB!ZZZcs!RkcksR{Z!ZcBcccJ)!BJJJB)kkkcZc:kR:{{BkJ!JRRRZk)BŵތZcZ)c!csΔsJssJ:JkZk޵{{ﵽ1νŽ!,  ǩɪбɲ׆۔!"!"!̥ϣwuۤA6@!o 1-"C D dS -Yɲ劗0cʜI6_LS祄v0„ 4ӀЏ:yvե#ulfx U[Y}JaQJ \ vۮ^";ɪ(v,˳iʼn(oY4zE(-eٯĊ^1j bo 66cB]Fmӑڵ!bF!hXgm'Y#~mزeoovau$Y?/yju5Gm] wބ7 g;a| 4`T2QHY;VH5$X#5ΈccxRV%mNa։(X}j4\z4b#$@DV‰S(dG+#7-НyhU;塈逢a&#. t&L4Z+E k0ԲB?|jq9Q4&ϏԫBX:4^G\꒢oͩ>Ub@eJYutg lVq=ŴUjի0jvm_. cgiMŖ_HնֵmԦftּbYg1A \ko)[=qUQʕs. [LW}m ;X_4woL=/JJf2ԲYS!v\-t0~ѩjp}ؽl6\qIBvs.*:R:`Fp;7m;]6˸~i,AM ʌ']Q+j2a*>ś܎[I,AbYjP%FXӎn N+s ;xr_r6ן/ v+De gn܂q~dY*`2 /NQK\u Qk*g2n^ Mw[pA^]M`j!A){\Wq}~mlAgժD,#hh0B`> ܶdkۼ.9cnyی+=gWtfل0@SpvZ28||0ؓhϷI axS%SqfP-N`1yY؞MUpw9<\ \S#ȡr(y P 'w*p ~~/HۭUː[ع2FtK]i׹ی@n;Fnww/'.TUlY98#ͩjHʓb)9Ī FC!0|\Iz}E^2 i-)dE35\VdyAJ/~B׀a }U$.Xpv8p @tF@mqGhGrgT`Sc~D#pTq7fmi@te@B8DXFxH@HhowjF?~U~?E"eg#wQ\PPXnhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉npg#i#0gH)C0  Њ̒؋23Њ)PCgPwXX芰(h 8X(hXXJ0#J`H# $0hɸ~^#O@xX)pE`8hᨐ*8 y^0h18?|HI(" N.Y0ɎؓJ8\ٕH#؇Fy2Mn )Ui[E5bEيIi,H o9-SIxXɗ^O@98^ٓH`YHk0IIJ=9 P9gii Lٖɒy툇(X}@ #xyIԩɝQ_ ДٓʕM͙yj.9y^?w0BILyLٕٚGi)Y,uE^(BZ/ 穜zX) @WУ>Yq8h1繓ř1PTzV`Z:Zz b9h Oz?yM X6ʘS0I'pڪ:  9Yit*K*BXĩIt))W pؚںڭsҸyy1:#p#LOLjs xщ ly:[ r(H Ө <HZ)wpoYi٪HH`&{&rHK)ɢʔ1>k 'I:D[F[9_i.nJyJm=˯Ꞵb;dI Hnpn`CZ\ٰ z19nʳx&;x8{ٓy.:P O*]+G۹zq(X;x; nJ8'ږK{Kچ ;Zɢ{Ww0[9/۵e @@ˆ8kY" !9Mʷr=+jpj@ʻ xgdZ˷9ڱ l D;lH*??I!YJ2ڤŢ;$t&:˟Ycɟ8:,sHɏX;K[ɤ!|;NsbR;/)\,`b,Pf|hjlnp|c<_rœ Lq 0Ȅ\Ȇ\qȊȌȇ@W  m@ǠȢ<ʤȠ,ƕJs{IƂ:3 ɥ˺f|ˇ,̷ʻ[\z<LƼl<ƧHK<× [ˈ\m,·l~^!.#>%^'+-/Ţ3@0ԻLP bFJN:B`\BD~:pp*P.8PYl:n=pg1i؉WPKjnQpgh'@'xw (&fܩelҜ ni0070UP[`[QQ[U7`i.F8ФWpꨞȪ-iSnn8pN@n^H햮'p^.ԲԎAP^>vw:0@A2pd Ɲ]"_ n? ?SpOO^I@ >@*pU^_2l:pgAp4=A`_= G~eo;OI-OPW/<KK^? -?Ys?ȧnA2|<hohoOnkS/8N26okn~iN's&W/_0: C5S/_-r-7@i>oo'' 2827':*8*'*8llIϠҝ͐Nݯ8 ް*'*ْט8'8P@ข H Wopxx/*jTFiġL0]pCqđFQ 9=Fv!sې%jG:\ #e< ';cL!diNyݚNx^hmDyUUWbY k2EqȄ2G2hQ(h;Hz7萄Aɞl1I7y)G[ax-@" @? KG%m65lRdAWPW~9v.yƴ9-)[Tص믿@Ѳ Po EIo+U|Qf \_,,F{ģHDi0//'pȘÞ&lJ-wD9G?ʕ &tWl+֬f- =g<#e;0`a_r7H S=~#5HcGSHnU>7x a3B[wAwC>,XlG_{nzĨOW^R]싘o#7ŗ.8P ڋe]-zB+m#!?DGA~3W>Jny[|D!À<;@eXRKGBP@0DzH  !ތF8BP|'D%H q&"yx?.pAb%.zoH>"I>,O@ Gǯnu#Ҟ4Q!x<jzL" K7$tx)HD k^K /!Ufخq֩L}) L51l9ہCcZxȚ_кK1bK RtKOwН2Se1GW5+v}h()+٭o~u .?smg-˯Yc>_o~kF_BsTů,QSV@lWՏi^<4ƵWȚ\Tk}kJغ+s`[­kDPRr \MrNv;mobilechase_scr3.gif000077500000000000000000000254141263163240400407050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a{:c!s1Rk:Zk!)s)s{:1JscR1:J::BZcJRZcsc1s:ccR)Rkss1֥΄:B{Ŕcs!R!J:Jcks{:Rc޵ZJ!ތ!{ZJJJsJRBBŵcZcB)BZcBccsέBZ:{{)kkR:ZZkZ)ZRk:sﵽ{Z1cssJJ)!ΜkŽkJs!,S s"Jŋ3^D#G CI@(S8K'[!=ٱßz 0?JȴiFpi@ՙ0cW%:J%XQ): xQ|y7My}W _;γp/\;mA!Ρy#G.Bh%QVC*J4-Zf♋:֙Z N0ȓ#[Нvs](J[Rb+TGumC˟?\rϻ;n/a9T0 4xнynE[|eh}UN h T݅L2VHRN^ iq!O(0j$ .0@Ҁ,wbKEd \6]~e#e|Y Y^%dv6ҝ{TjUD'w&@iedfX fRGYfTfuɹuY*VY9s>|&QZijzOya HؚW.~\GdvkMJ֥I t.?kѺ;ˑrn ΖX½(@ *K ؋oR2l9.i%$dxRxCg{ldG!k@* ?$2kN%40%3L@㺫`vqčgZEIQG!74^HM]"R +e6vw`66PAT4%"-.{3Դud|qZMd uq-SQuJ[e?))Ґ1=x#PEcL9(;-dak\äd:Paf[:S{xUbf#Epz6<_^cHC=|_Sޛ>tm~kY=$nQG~7QO&! b$P{ g byB_g,CJ^RANo_`XC0Nns>$XfD E͛@ 6%,#bX`a}]M}ؑX$?8|X0X0=xT(QQKGz4oapnS+G2ĕݒ}r`I&T2I?⒠HŃVt (C+z9WBTAqaZT~҇-P1 V3wծZ!)Ԝ!5NYQԒ^3q5Mƕc6?ZVۜ5$m/;EUWh͑2=)JJV +izʲ\ZKʥ/_ (9Ђnb\he=%)в6|eTJ Y4m+rE#8b%/إ҉'Hr&򶷋%K5@,nq]Y11jӽլeL#|N)Ѯۑ<~o>RnMWS/AA[& xk3 >Ъ8@=vR`8aXz[]kbbfqEWh$jMÄyGqf]uYf)^' a@K|¶&Q"Pyd297Gv/pLM.uTiS g1T0;X=[2̍Z.uy|RbfL4ϛ.jV-W;Y f ;N<Ω' \[&UotK@K VFl:ȍAw-UU(X*6yY/Q4 vN9`KE;}sYrG<ܠˁHe|r WK:цzP[}m?;J!e0z5/q"`H0Ǡ?'׺o>[%Oc/,K)L, | }HBTWQN?u?Uz[ƭ}I$h!Γ\21C}haPz9 PzDIz1`Izw.zUwquaRyXn>'r95Jעj D(D<@d"lk =<`ȍń> ]T<ʆ̩<ܨ5llC{\ύ*‹wK4KgХnlu ]{_'Ğ_̽\ӝ.| ȩ\E-L|vl ܮ]8+! j\k³L] iңN-, ! :2||Ӟ~}yt-ʪT}_02 yl~`[ _|x Վ}ב̞|m{̯-p(@ڪl-m=pN oPgݾۮQP{h™Mči˭_ÏPmۼ ϭMg ˽Y 1|; 껾mk Ԑg׿ֶ#! bpЪe#  bN_l;ֵ3ԑ ? ЍmN&ҝ|!P2_˷ou̾h\c}|q^X}]ʎ]㚞H\\N\>b`g@kQ\M-q3Lǝ~oX 졎z+%}(˵ulvl>nY^0~OώMttM Yx} _ѩ ѥݺb&l(ln.nӾʴOO韎M(V@-MMPQwj`ݷ;Z6Z||~?dooMR/]&S+O|Y n0;ݾM̵¥m\ Y/-/`2-o%9i(BX'τ벵KCQ!D I(zbׄ )0]{T SB~ N(n#P< c"J+BB" 5,qDK4DS1B0Q@880N8B"qÇ%` (&$I($RXm 8x-O>C\f6+1kNY6Kkd/"Jlc\Ihc-jeq(}D&`d#HHFRd%-yILNWqDHPR$e)3Trde+]JXF{>:Y(Re/}2$f19HkLLhFSƤf5.XA<LpSf9YL !aZ/,!"QyN|擕&@y+qTgA :IfA8#yTUC0j &тfv0+eiK]RT-iM,"JpdGfSeJ#W*;&UKEfTU|'E=xPծU \ +Pmk%fW9! nH\T-\ LWW}C`a {9ujlc)}MEle{@\2 @g=YІV%miM{ZԦ6;R-BZVgTZ_BmpVen\IJhfWn]׳uz^7_݃jK]4-ݥow{_6w+Y˅X^^ n~ҒU€-|(vsTr!CWĈ%nb?x+>9Ah)}Yb8`}kxz5` cF`R'($5oNMrZC{*w+`O~«p`&30He`&tg fu{@s'[\2څ3s& e-KÁ*P%ϖ9@hTw-ʥ\W浸w[Zğ}̀/ZGA`jd'ۆ&бdiڻ-d :k=   16.pi5w[wQNn:޴U;0c{o aY3lʻXS[q\?ف@,aM('7|c&/bR\BAHA!z:(vZ>⚇9xy.Zbv0S;;/`z =@`; ]+G}:įZYhnD>]|; r34zo-}=NtwGsY L# `K|Ҟ;;֕##Fȱ'=ۇG=х`-aGCIWkv~g\PMK`-.{# !-;hؽ>C,?sV<?.C|KQ Cs>=k)V>2+5>>;kA;=8~,׳{ >| 4#?cBBüS".܁à*BOO4BtChA:H47[,K#x?+I[E.řatLBS8b,c<`ú;wfŜF[,Ȃ|dC6*1Hȍ0R/!P!FC,C5IDZ1hI8( t#Pz<`Dŀ[Et 8a[B0kK0Mj;qNZhN|N蔎sΚڜL|2>IR(- d'( LO\OlO|TЂeN 7tˢ, &|;я> 0;'P 6M1 h䠈0aY4qQ IG.NP  = = kP, 2 iBo*)h$hb mS:O%(TLTM5GJo J]OGuH-R-U% M}UX읮UmgrTS#:}x"\a€DՀ_&f'(b1a*>+.#~$b7~c$%8%c: ceFFmnnlnk ze@em&M~f=F_.d~NeAff^d&`g._ lcglhVmNny.mn>g:mh.vm&pefn.^i_NOnhm䢦cٮeH&noVjtlBFVf.mNi.L&pH^knj^jhiF偖Xkp[l(gxg _Fp< ߐF/q_ko/ cG_qq!Z#?r$Or%_r&or'r(r)r*r+O;mobilechase_splash.jpg000077500000000000000000000062701263163240400413370ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDuckyAdobed##""'"!!"''.030.'>>AA>>AAAAAAAAAAAAAAA!!1!!$!!1>-''''->8;333;8AA>>AAAAAAAAAAAAAAAAAvd" !1AQaq"2BR#SbDr3CcTEU !1QA"ab#dq2BRSC ?q;.^T.ŀ,ĶUlLixE,>(ku_8ROM2#.40<=B׮Cz\,1Sc`vա( E(/2.pIjR>É r6c]V32`MN<2BaSgM~1ɍԛnF.멧݌\Qk0 P ̜!颪g\T];+?(.ΉSCpW.p7&4.|QƺMIԡEqu$x\_DD͂%AEi?sv{m{٭j(|>pޫ2͉2^"X+O1ؓ@ cffȥ!Ybخ?xYcF4E8G('X7b֩f@˞vr,ϸKν]6SJ9sr بc4*%ɽ#[GmwXڹ`,&ӻZf$%4s3,&A2KcXqH7Y$ʡZ!Jibuf{ksaƱmq1/2L~TCj[^/'IgG!Qc85e_"fh ڲFgm`DymC!%Ǒfd fĀ( '2FFΦPaA3"E"Ŋ0`Lj\د)Mi~:?JuQvUqa8cӲ#+oL`-ԅWQ"dF qcdɗ A[lX|qG:J?=>3|fhƘ׬XZӺuT\/UdK!1R7}k6erlN@2AB&ޱM_*̬MMA!h')[qt̛>A.+~~IC_-Sc9:$n)iWG$|1i$sB>:h7UMq,qIǷ~'nSyպ3æcM0{,jk%бcH{r_쏞)ZлFkW+s%$J$pH) G8l=+z7M.RǙy^jT[vӑX{6IcZ/tQ1*y,I,N-A#zp=1)dD'm[ȍFH0,^'ᩑ?Yol,c+vGE-ZJ ֫x1gRL| Zqa}G<0RwUi#?|ʐHeJ!T6NC1^^7mnێ5*`U ǶCr VcqwgieG~Yyl\*< 2Z bMް2)D8mn[<ר] ʹs9NZ\V͒dz\=6I\6-ޞr2^(%˵<42(Pmuqnu)6\p.itB{ݻn/}=oEW~륶ns<| V77C=0yd%@ UgM Yn*pC잤3"r.1JL8[?ZyXH6Ʊ;4#}b20c25јS@U@#sh>N귦ƣ!4Qk}=SAmz̼nX]<ե; +9q$g`iY̩t2lx/}mO"''ʗ=b`UvKңav]zcs$DՈR=#,H$LhJ<8 9LIymPMmz5]<]$5m5U_PZ׽mW;zGEeXE` c  q$4/T}r Δ&}\(LYTR \1v]/v^=s=#V L㛓15$-53j1N7KYl[x\/w|F0uҲ8kңnnC.N?{z)$9c[4RRf$xr5D({ѳ%:xV8gi230;~,6ZN1Ѣb.iPf|y,=Z w [kP~JШv8߲'/8Iev$0 _\:T\b_syjt#`x2mҰO%KyMϩi55zWэpEFXF60)k5u YP;הU=S$d&:O+O0@ǿ@"P)QkzmX}|KoPW:C0H}_0Ih飩VcMGup]h i2[! ̋:+#dn$i^}A|ߖ&|2l ESm(dUSgܻQ]חB<އgT%Rx2m.f6R^+eɴ[iI8fATdNǗiԎV?㏲r}~کyec8-Ekvw^_G+j(nڎmobilesheriff_scr1.gif000077500000000000000000000204251263163240400412430ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a A { ))R1b9Z9DjZ9101}ރe)(JJRY),R)14A $1)4R1@Z,JAUsAHRRasHsZu$)bJq{b]Rs{攡ZaR $jmb $b19JsZsjZ1y11ZZ941Z)$ZH}JjaAZƔR< ZHRZZ{ysa)1ZibH)}AZL1ʔJD9ލA1$A4 iAŅ1RD1qY9ށuJe  P)Y us4PHDR$AYJ$Ds0eLe<J0 4,P9@ͥ !,! $/!L $!0"!hȱ#GpȈI$IBP4$!Dzp|`I"jP3MEzΜCitѢ0z aD0bԣI Iru,בpAԱM;ԺH%.ҞBJu,YmiVVzLٙnq.)~2/ޤ0 $V% M2mp"DRH.لH,Сg 3]N3t^F-Ul,/^yqv/E2i߿I"IՆLD'M;t ]N5"uwqW`OvApvI`(G!eV(~ͭ8ֆec>zׅiX`tXHiIĔTV XF~Te4DZmJ(nI}w%$_ 6hdtb ~oi!eUgN"5KbQ"1gºS}xuQs{pV!4[^ 9Ѹ61+껞IgIt*<]w EDdaub=7qWeR6GQ!$%TAxvN>`s~H$DrRh%OkX+4pV|[)X-p'YB )yO\JTʛ}UbցDU 1$ `LNcN3ylVIK L:{yƶY `C 2s2m, YY3ӭD/9e&.-5E:Կ ц 5<3,:+fMZ׺̟ggbSƊ:M1|zH\,,AdC ZO1JHoۺm~>'g>rVtyn1ANm`{"$R,(;LL3,ZQּDDtu|)#@P~;X@5F~@}ԯb?t=čӉGY dOX˷}(l(w}k0M}8W` 'Xz~ ~7* g*ε|y7G:}H^p8R7npU~,~ z然w{'|*x%7 Ѕ|}g}p}=(w??!vqF4zJ~7 U{O8|^0:8y 8|p\ <sFZ|1{A Sпh+0@0 +l' 9Qp18|@-C}PRHJ|KhP|U+|4k/`^, ,'lDd,r g LuL۬GP<]R4멂u@\a,@30af?i=Aёxo霁fǎ;4|ʞl6kf@ 9AX0CgP|80ɣS\ DLk[ʹk0wŖ/kDp>}K@DFMҴy'fiCuPT=Ml Z}70iɘ\A ؗ[k,@?u<9'Ou0 ` *K5ڭj*تgk[[οCBQ}Y6 |p= ̌IB 0Kگ=Mtw=ys ?HZ l IZ>p|ݖj` Է̔ݷ}qtu u4yn)fڧ9M* jyح}ەPӑ8o/?iੂ l@-6mg>!N>ikY ׭x2XIGvaS9M>9r | wvuagj=0 R m)]N Xw?vn1޿쀟㑽FAd5utf #j{Mn ۋȜܭ`s9x~En@\6N|>8ۇ ^گwP!SIwRlB~]~ӝVŮ-ƞ$o쭽c.^*jDFT oa}]|YyЀV )^l={.9 wpڀԽ] tZ픐::_l$pqeI1Q*SL>0 XZ[Pt0dN:'pdnei90 >= YEL^?8^pOƊԅ`<{0J>ϝYC^ BY̾^ݽz lkwJ1؅P^X(l`-bCl! 3RPܹhTJ,ҥB9ut'N& E A?.eڴi(lQUW!7fpPB7$kpL)+Ʌ͝7O@t R޽ SĉvؐB t@Ad DdPZ"PDS Kž2N OR3B YNH|mS@SMPE[2EQ,[U8@?$f4AwA<+4\uՃ>`qqy >Em.8$f|OrYo[$`KJ?9fr]m/{ӗ3褤BҏO٢q㻘,+@\A[֞ P]"4*e2O'Ь8iI@7ˬ15Yg@ dE@E*@PRxCjDp3[G:Hdۘ2>,ࡂ XEGF5qd# QB߼$P*,pِҼa!ފ'{,ST)%,`D$y%QJPV;q)H8(6WCO2B8"w:a>qAT;Q{ %T$H[|T2' /e"$H(TH@ 5IMQ S0R@EeA!s }Qf,#AL^Ґ\^e@#)UA*ϐac4oe(Ǧ^3g%NX#(%ݘx6s} T4 )Y&*~$II͡gEmNɏg:d&,2Q&ֵJqjK]*Tt)Mm1T4{BQ702er$eO$h! QAUcbVS:~^ŧ'j*P/ _[j" #ۡ F.w8+ ;|Ҏ]mlS[ӮpY<ͽgÞ0^dM-) ?XۭZMs6`p\_x£ZW ܭ.a]r7hq)y cÒfQW2<2oxHo;|.2)Ǻ=ɤ0SnQ Є (hߵm=%gwȸyP͛ u+@8o~^  x'?|C.B؏o'н "=8m KM'}=zr}#7 ;mobilesheriff_scr2.gif000077500000000000000000000204541263163240400412460ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a { )Z9101}ރe)(JJ),R)14A $1)4R<1@ZAUsAHRRasHsZu$)bJq{b]Rs{攡ZaR $jmb $b19sZsjZ111ZZ1Z)$}JjaAZƔR< ZHRZZ{ysޝ)1ZibH)}AZL1ʔJD9ލAՁu 1$A4 iAŅ1RD1qY9mHAuJeaA ޅ)  P)Y 9(uUs4j0e1PHDR$AYJ$HDs0eLeYD<8J0 4,P9@ͥ !,# $p%G ̤P!Ä:lE1*ȱǎlIɒ}y>ӡC0]6of:Cr,͟! ǫ ((T(cF9r\ $X^ς%iBO^NӤF] 4TU5b'e]c"b3o1Kzr`tФÕE 5O~ #J b8y aM>dap-y&Q$e2Y gM"] Q^Rv 6LQiW]un'1f{e"$lrm߂LR$QLh]{Cq{ !Ո$"\_J&X_'bY[!`oQ <#[q`Wm55(h]gad#{Ax H~(^_~u(9RoQ)` {L8" Zl%aaX D+ԁ[ŵUr~¦) q9eohC E)erI6[UՁQ!Tr\adĵfK'gLmEzSuy7iN%~.J"f@!lZ#Unr;,u.9z]qIeS߽FkdZ20aF4睮lKVc4#<* {"STkQl-^NV)|V˩hj'iINv#@-SV#DWz.?d]Tr3޾]!VM`A}H7Eoal5|4L@DRo@[:i.nS:bBSZN{WS&Y/ oίoA+e`Pc<&4Q@Dt}` X0Ҿlar 2Á6>Ua:ef΁W0i"Bk*pU Iu 9,X :e#"b9h 6H3.ȖZYw9$TRx=(6PH,n`G.%&}W"-A2S"cx-PPU{@P:@+奔4e*Wʮ?^&a,7B| -E&7Y'W4JAKPg"WQ@4R|j+m"GE cخbb -[^6ݬ:ւV<_I7e5 G]f EȮvݭږn˺P6mjqZXI-Ds&fHf wɚ녜;<"U{}_W9}AzMB% E]bb(q9RT',#*,Fw5ĚȚG\;rSrw\s@@vFny!ΚdMa(re5SN"ђGu3&`s-Z ]hFٶߜ: VpN{e zr:hIGZywx@fB=`;õb5Tf;ُ60@T nk' Y:T@nB&%>`@i+ ,JmJtԉ&`Y`J7aS ~(D"T Ia%!f90Ҟ\>nc'!D"dP,ל3hw F:]ImFZtQ r@5y=M=#er QZ yWKkD伵&S";`,놞f/0ʎ2x e;FC9v/P m2`dR1TE?xzae5KzL$D! 6Ilb??ǧe I͋@JoIw[;#B2RrzMz B_%Q|ϧ|Ʒ|0(}[qY}}׀ Hzڶ XzzNNQR1å{K.g'1}TEzG  }} ާzW^dzbB#v0{wt" W|ʗ|}5H'7!}}}>8 ǀpRH8xJ(B)g"{!Q%(yUx_){W؅ aX}jٷ}WWHD}gSxfmbzAS7 QH2QGDVͱ{[؅]( |7ȅZ(J=؃zew7xIhv%7rVIH{a$8 ȌR|b'Ș|̸SI}w|zyX`b@ 8bve8/똋{h*#TPdGB@ty^QvI~搆H"@~7yb:MNQI#IčtKvC"#R9TY#p+Da5ԕ^bhr,+X3#,!6c;9P^qtYvyxi i@zamI13/R$V#0)k@gٙəS0gU`mra~i_P\v9٘%PSFeP@[EkYh(IQU@ %9P}I ;i Q!%YW09Wh0y9:%ٙ靸XtUNʞ%|0|0%&3& W-yz4:ԉ9PXyX55 P+ڢh)pZ7J#@; 9 kX]8e",Pô22XW W)]::3Z=,RpښI1e`9eY|R ةjS!_6y3 EqP 5 ֶff FDꩪR %P0 z (Y*yz 囆P@ ͚ogf7P p % ۰檨身)SÊZPX%% @ ,PmdQX ˰ ˡ{k3!z[*$k-0k(²1Aq681k6~˧  ۪E۰k:%3-]j h0gəZY鸁=A 1kc[E`gkƶZ"|꧈@uHJJ:-#Pg0; e=EPP1ǫkmEol7YNr[! k+O}ZKċpHP1Ź I1&N,D$ !Ỹ!;;K)@]Hм@&R米T@&,1k0 K [ǹ !\[ lʠ!Z\ *7~.Mf7 ÞKkZ JP))J<$F<"= HAZWܬ6F~ba` % EK_0t̨{yJLNNb%`% bHK,'ƗM~븾)TA]Yxe 4/&‡O4&i`e`-?:^4HMPOy0zr+Mp+ffpZpB}Um߫ʛ]=j`^`mpwF6!X$up6?EoV8Nu@MWPkp`~~b^w&A4^D,8yYeEM,~ ^r9Gq_cy)JNQSN@^Z@"7Xn0n&Gu„;S]dmv tK T`&?#(ň2eģ'E>P$)S4AǍx1Q 9u,C +VT :@h@B'>)lxeaq#F7فجC[qRhLliaOtl1+k2du,7NP(S$8S3sUKR1 uR4gPt$xVNN|ˊH,fFWokﺝRjg :!`!ys fh0@.ڨJ6*MH<{Ψ+ 90 0)rϱJ *xPs(hzB(CpҨ8*F!1W8OEa`=BGWAn9Qs}|^VQ E"~'H VYOAϵp \~ר9d$bߊtC>˂0!3 7€FDh ]ED9~A] eH.h>ԃX.nV31FF+Y՚蘶t ֱYÿ4H8o8CuNKcHE6 GB%b j1nAβap? GHxHg4֚CduI ЊK&s8D(:yN9@GFX5f,sӈZmt6`Jbf\jvӝ81uR23+ϴ 7ia7 @uMEHZ8DXeg` ?E48Y ,s\ŕV氢KdZDx,KmvQ=9(D3Za 8) "-nnX'JiLnVInAThpp=O3h(#ΐJ]d5iaU+4iJ&-c):ֵ>8]Μ: &%|%,:&6F3:ZP6H=}6zPgqrw\:>-mK]. B_R_&E&*omU*EӥZ2w֭vrRN'حa ؿʋ0lxw+)1Uʼlp^:} m jwILZ >^B!YPס}TxɫV w14tx_Z|7VvlMAfI8@ (` kUK +zwC!C$2F8_6({RN 9a}p:읮aU⼽}|VG' sU~wz'{-TK`FLXײAX?Vc䬫ܟc/3:WǷPNiJ^% f U)nS@WaȲ(?*ϽC_>[`W4SKH+iҖElh@?~?l_L~Fca;780%$G~w[嗁7~GXvءGa1Hw%()Z"hIe~D萺w{ݧ{Ww1jPG*%9H(y)dNLgWIҧWy`IKRa+cZ>74vywIġ /eFwd6 xrdwI+2t+BVpW`?fyh lj.L9+{c1˻˜$eeVx WXv]޻)k9 AS)а)P˜ [;afus٣#' zV`a JTs̾ ,[@`WG0-')|Sݻ,z2Uɲþ:,DC1Ah>*}xJ`*sON1LU,|%@`) ;d<8:+IP(:C2Z73yQ<̲ \A=!C18—foɞ}<,Тž̪lƋ kƒC|¹|,P27A>,cʜξܸ<cyV{lq L.0 ΟьefǗ>'ql9wL ҙʙz{p(ݝ $Կ6ki}m@ Ÿ#xz!*M,TlO )4<͖WH> Z҉{@xB]O4|no~HQA;G"'|ܠׅz h= аyNpJ{JMљ;t5Cgט_Sͣbnid(ڰm ' J=?c۾mshօ=+yr߲+Gx,Qcm֜Է}p֞y}řx}fA;)|9 lnWJBC=y{[`zٿk57xK,pmfgn6wIԅMݱ9&yhNx}Z,~@ӾV5~GP0!A|p,%^~P!ޙ |C$|IءyGiu\qr [@CΩ ںhFq1Du\qUHBwn!++PepB. љ|hݭI>^ihk".GC6pw0oc8tGiAiP.x:h䵭iPmPiM2NJoơ*#RLG]gh=_Mi_Jܚ>4jN8ǟLT؟a쟳F0gI>✪>`1ϭQX3p^J~,D^@>i>>FmP2HRXp̴̧kKZp^F>9z0$|pHoJ;GwLLY/^L_`P>9`ԓ^QFOm v0)S+|9 Ѵf._KGr/_u`vCo?O>eT+0XD_J@M@az@_vp b>Qb4 $XA4p`!M?PE8 Lgb Y"o88 0)bЦM5m#QNv'bɕ-*BQ2,F@*lYUa9 i)|+Q?#(7&/P\) QW ՉQ9`|l{QZƁzX;MzOݢC80Y3֭5QXe-aKV *Lf͈Gӵ{7yl&{T U'2př7Jak0K6$OBX9#0؎13I;;' @r$$ʭh (>*?. 0 ,<AZ<DbL"?B +X`:#dO!6 qvJ *H A0LGB&zqN {jE8\ʢr=Zˁ}㵽Ĭ` HD,4GIZsw4I-ep#*C(8h UTb$EK0PH5X|L, m R" >)JPVoiUV$X30{W9: zW4ipR9D3216a+ (t%ZA `@{;a|~HĪ Jj9LHBuX(R۾?/7ĝ0XaHX mPwO5 $e׺,&lZ!5k 5W" H50{7MZd5~}!̔EYU-;~pq#3 *h.%cs7G9!u ;ظѸz"]`0Via[UO=V<}XZ b o _30i X LK.R0cG"Ek\cցA 1F{+A[r:8ƨG]\15fb{M>AR|xI7 bGK{8E"kI$fCN|(.)Nk"!iҔdAyKK*wHN% EL+i08cDS:$y( "FC{"volV,d-+Yr\֊2q%%s.&D!HA `6u([2; b־vAkWe.r{\-uLUku9^vE9aCLt0@yϛW%ZC8U|%X&p|M %ws4 h 5%xkؽZ@Pޠ!$%=ehŒkLc;qm]6f.:y Xc22P4HCLH[+KjlfYgfsۼf°AWB!Loi' 𑉕68;~TB1j@jo/ hDEuZ-]iL [;PV;28!4beCem5Zvg;<vy<9"v5躬fuDT Mm6@ƽ 5^nwǻ~wukM{6}zɻ$x+o͞[bxn Hi7c%tlY,`KN[;mobilesheriff_splash.jpg000077500000000000000000000060621263163240400417010ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQa"q2BbrR#CS31!AQqa"2BR3 ?ȟY7pj; -{`qJ*՘#hΓJ^iےfcNKJ=ky?AΈuC"-}Y c] "B@sȘ bV(b~TlO.?Eꆥő'b-Qy.&B:a"IbQ#4ZA04Zw6OV`QP'ӎB>XޣZ\UA+BqY#$%іkZsrf@'C#CxtOhcc<s+RWoqrZ|U=jKS&1D7W.4Z]6if9d6_ /䦧kim@!p 1}' v~g< K|da0v#KqTz$9QE#~ j'FZ#28zxw_TEIwߪ5epW+\m z mFu(beD@|ȟɚS,N+[T a!JKN!Lb۳/=}D|V4;GTХ&ħGqRgHiAޢQ\МygD C {@ܫc!HeV5܈(wO4[kc|˫r4.4mq՝K#04ueĔJ'r^Tv=oXyBWxQb\}im~KF:c1V3H,]eUZ}JTi5.kl\̇w>ĭ^ߩ03;cir-$#nP ~%V[SLr\ ;C.1k0|ʷSs|*wdz浀n.^$rn~H-41o_טsoj أlm{mfQ8T"1~e .?&_Q;"tTܴ[y공|`@WoZ8tl9q%"W]K> ѴŌV?i fngZShcu f qcnRW{-:iselI%k3d`ZQnme:FHx7ܔޣ噎_k΢C! Dt䀖Q[r^JLd_4U+7: ahߴi";̑ɑs\Wue;`5dn;]$أ7R&sNġ7A'}$! P /L?r~B6B*kt5Hcᙎ#]k7}FnS#r)e 24\IPF;HTd[v2Mk74QvtSu0nEAB_Gs|?6 Ϭ_RZdanBa8dR_J=H3*WOlJHf"o<*;7LdTC77?1*TPٳ}(ߚn;‹[n;{. @lp /?\S[3q#,4{r*r.r1<5|9=3A3(KI*M?tKCAS_tX3^wmH5[-\;mkmsmxsI0ky]ND3䑿l8Δ#Ns抷9[<.ꬷ.{|!۞q{7hι"2ߜS߼csjQ^>_>? ?q߭+_㫪URҒt*Ё @J!h f( P+`rUK[/Բ` !qڰ>a8чGaqHkЉ2Y5EtX̢.z񀩳W x6pH:lȂƃr؋ P%xL"HFcȹ-l$!mX (p^Ȧ&{C!O򖸼e'=y-W^Xe2e-?f:ӎ" ҉hKigzk)I;abʬe7N]s59-f}\a'MfTg .l׾'@'~ hQWl'R (c?=ɀ> e&]fJwƕ4h,)K`;6IZxCTKT*a$# .3qSj'Kz2Ru4`s^׽t+_*X v\ݐUr<鱄If$2g֦W)@^ v/miOԒEjaZִ\c8c!Tj֬E.9L7gYZR6nl{ZZ.xLV5L>͕sZ,0˥h}mYp \J^/LI1i'n+׻%&qIԓ4kkvp?\P@ E6%@2 01Nx՝ } OMld6k3Leo9=0{jc.cP3?9r~6'l&tw|T 7@ۙ1$3Ԏ&5dT[yZp 5y[1>E*OMbN-Y/d:N5Rt) `]loÚ*EUvje*mrMiub+/9:r;>/z%[3~:s9y@@r#/9E^r<$9])ַ Nn7*wzԡsW}1peiw$:|+]I/bow{ۯwϝ(_+apq΢̠^e[:Ew~zdOet% vGOқOWzҝOL^{koދ>lyhX=m_␁g SzY+9уzGo`?1Jku{|Ы]9zoh}h7]m6mQmg{ zo( {hC*CTD.:h<} 8zl7dqpW{<858Wb.IhVWYӂVR0T8 UlPSw{ H[ȅjlF8Y~$~78Fgx.XflYȇjXwp'0G4~Շ}mX%8M`t'hR~hȅ(HD{(舑XnX|\^^lC.")cWMbvkx3@@h`gwP}4pT84aa"CokWL²axȨ@XXpwب84yr.CG.'PM@((&@ X%X2{ȇG b8`(]H ؑ8y-&gSzHT i xWP}o ( 3pGpOlLpy]}pi'Lg~CY\UxJ9L-NHGzi8Yg]i|7TUkB6>pax X-WYXvِ4 i|ّu+(TT@m|֑٘)yG /əXS 4pS(Zy`-Y8n i)b(dhb8x'șYiGHBVeTpMxpYZyِa:K7ِظZu+yZ+q3:/ 6 93[~3u얐``P @)M{0저OÚ/˹Ѳn/c5K:@W(p @;ڗ2L4M Ӷ@ 2 z\|^0 bX`;Yfct ;1 kxdé|p|J0HL<<2LqLMҴ |dý9{3`zyX(pfpjhW̅t.vεI:|\l { =w`v۵Soz܆( 6^uC8dz R$ 6 (` bȃ_|h: ̢ ҥ^K~ u:imGxKT(4%痝Z-(@|pPGm}\7=śVƌi |p 02P]|}Pk[u]-5`4@{ypXÆhSf}K|sL+mr+JHez,$,dxꑷ3CH{U[|+|{@Ý @]_dHی|~jֈ茞Α~^m~}nk4YdPd(:r[0ܶpU@h(̻n ٨գ\{Դ2HXȇNV^Wq\ P}{.|uDaW58+KXN?I0{^pz חX.X&[޽qM>yy+ #>V}O=|"%{u󀩩˩=ݬNX)rP[0 WS jF{6-]9Ow `/dfh/ >R~ʫ|o$j.707 Fre~5zOdY~Vkt_萸L`Ŝ#hG[̏Q>N>+x`iid9j~ + 0hP@ "P0\!D%*bĎ!;TP T&(e J1eΤ)3C:tHb! zE QC xp jneʕ !Ȑ`ۖ-Dnm{I.Q_Gw94P[QکӢQ]P=ji(* `#ڣhƅdh!#I|Q  <0!cA 5 @;h41hH"|-$΄1!$/?c?: ."ː)Ъ ePtA(B3kK(MTHM8S >8Q:/8*>w"P(@BSI|D'K*;^KK]=P;4hu.X 3;`%$к)%@Vrg8O㎃-pGEOZzM-U)~6mAwg ;7P nRIUOc|kq?fKHvk+> FaѣXaZu9b -d\T2U|ulWvbEtNwfA݅+'=.;J3LaԢ2rvlN #‹25LLh"j1$9`|' /,,ӪSV׭I&) џxb'N:$JvDuv]=zVk67_7|W_xo_}D~կ7Efg- @ x@&P d`@FP\+آ ncQMP#$a MHAzK*L),Li=JlxCP;a}C Q7d MqT?(FQSbͷ&v*IȖQc$cxF4QkdcE8^ xGlP7zҧ,g5kY*mhi̊v%)E2"la Lٶ%o]-m9\ݾ 7i3(ui\N7uk9w- yScq{K;^vםm|Kw]~Ϻvk:&\ؔ@%(˄), [#+KpB8w$1[X bm|cX;q}c YC&r|d$'YKfrd(GYSr|e,gY[r߅ws|!_ p̯1Y=~3fy{qlj%|& g$f]@dэnr'ma@L. L}j-hԨVUjWիvBgHz`n0*@=b[cϒg#`O^mhw;v==ESTvMw]oy7 KG&mp{#<>8okg'+Ƹ9_8u]gW"/B<,w`q̝Vys@:Tt#9D>ӥ>C]Tֳ~cnzn;mtvpaparazzo_scr2.gif000077500000000000000000000202751263163240400411670ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a000بPȘ@ȈHXh80@PHhP(pxx`0ذPظh(00@(0P(x ((РH(8(8(H0hX Hh(а`PȨ`(hx8080xX((((Ј (H`px`HHH0ШPؠ @0 p` (X h0088 x8X(8(p8(hȈ@@0xP0 8(8``@0HXH 80Hh8ppظ 0 (@(X00x(hP@H(xh(8x8 HpXH 0`0x8` ( 8x`X hxp0@ и0PP(Ƞ8( Hp`Ph80(h((80h8P(0XX(!,H*\ȰÇ#JHŋ3j,xN FlI \R`,+W~|)H  J@ %Q,dᢩSAqac6ذR`Êuٳ- ER`m|t (wrn:Wɢ ѤUhSvUݺw%?kKHoA,PR+FЁ͗ĔZyfϸ168f%+VȐ:kF SV47n A* . 16}X{JB#VA[{[maw)RF7y*uUBŗBM[M(,0(4h8<@)DiH&{-4+@QNB)\饖[%f~Yfgh&oI's)'w&|Y @"z(.&hJ p2~hjJjz**T꣎Z(ުh뤺jk 뮹+lJڪl" "lr+܂*-zۭ.讫n~+,lN0KLq_q[12 3[3J<MЌ-H; FL+Zi՚^X3_{Ma[=6gݵkgٝ4^ʭݪ;q.x]wm6>x9?x=n_b^( .褗>:Nî{;?~ߋ*.?_zſV 0߫W@PzMYتֲ(h- VY>AnЃa -yys g6 s?aqC㜽Lׯ":PHE 21a/KYDL` [H2hL6d\@uh£( 9H0hZԶ5-CdXԠ̤&7K22ĀYŵF q[$0I?2,cYW2P!,7uN]L+_yYm-99uZ@%_ KdZc%5A ͆9oxL](6Lj2C!~#%mit32e/}C`$ HQhDgXĜFP43DAVˡH# }ZTܨLO~ JQZB.+(S ԕ-iɌtTGACK=[ZQ´OiMzӜu1i2 PT8ā^= {ݫ_Wu-,_X2Vkc kלAq H8N c=KZGa Xer"}l`c+Y.-as5W)eٲ.U6aMSli .5'v;zv+^~׼EwqbѥVW](Hʲ2ۢV)ݮwͮ^ ^jwzE`.d`;8Y qY]\/KnQH{+ac ˸6muq?^Rza75"آ.1)k:r+o9<9\% Rd Z1gwv1l;͏}˧iټb7tle `9Җ f'2h=pE[,W7#B@ֳ5e]k[:״5}^ ՝^JSK0['N.R/tWa_tc7xe\ e~k߬ yY.“3EXx ؀HYYv48PsG5Z5t7| Ȁ0#&jzz+H)CRh37]5ЕunW}x $1:Uv$5/37y*uhzj@?1 `&+!V7 `9|(~G~& H pP@Qp)ds.1gC{89QuwgfzV*ȈAzȉH)xz1M{z,8tnfpXÑ ^há{*(=Hj%{qjTab11ȈX^a2`ga~2|T*n2~hXۘ1xؘb/Pzn$+kHTw/R`ȃ7@ 9`b&OpcW~YuE_iXY!#')rLV%MF]eh'(;II(P@wi{/`wH's6chwQwj wɘ=f??3x65(IX~Li$h@uXA@HuIJHR7JRvZ'|K9`VPp UPٕꇐwi~L&&thY0vx(0U P 0pwiwyI6u8(vX S0oLКy7`uiy{NfFi>PSJ`( N7pǘŊ;h?-7o2 A Р:(ɗ{z|'aNZX v(@ -ȎfR*9zB(X*Bj@(pG>p0Zxn)"I0] x0_ `gx 禱\Uvv{GP)'#b;Grqڡ9G0ȉ(Pj=s23ug9顦wHsk }{\X'# J0 #ʬ0Jvhvy_#Q3ڍ'ڪHG*I#jdvd`&Szȉگuʺ"۬)Pk0Jgpuۯٱ⚏ #K:W(=h`9& G 9*Pk@ s0`A[Nfc3׳hɫ@'p=X uHV* k*dkj;ˊ2*ψX'p{;@"uXI^`v rPu1*@d8fAh1Ĥ ěѷRӧKI;f[Vۋ^N 1(ī` ʫʊ'TO B (pۻ' кZXUN\Q 9\$4@۶UԒLoʚ6~ 0[# |)ǩ$'7hk\|.+X(Zk hX&\`J$Zz\lۼeU2d9uȰY]_̉(0`E*mq<`ǜܲ {CPFc=ʮ]V`)`)xUUI #?+;?3̟'|+bRI,6z")˱ų\|l$ 0:+ e"l@i;\r󮙃ІVa_{iKb]KiWȜA2}6]y{۩D9mQ.ʚYK%}'*37}{YYOff@IoE_|`L)KJ9˫Eig=oq[;zvqhi.L=(0v{˻}n^H=>{vJ֏G۫= 0 =#x'l.kӱlpʗ6lm+RkQJI |mi+ =>Ѓ$,K̑M<o*t ܲ]$h̙;.+ P0 b0(P .BႨ}^={\$@j#( uXuٴP Q|VC2WaX<Š-?!;S |Z#8iPb>d~c>C#&K>Hf#H {\{A;m=ޝ\|3dn0Lp иh>Ѓ:_fu噭LoJ |&P=Hzϫ>l}^PiL~ u]}vn )_f {}| `Q=bZ5l$T@QIMXi Q740'&)f%XbȜ nΥrݻ&W/Nw'5^ĸchãWH6UOT6(A)6z菂D!pF;с9hm}wny' x+$2$ύ?ɬ!^PТG;t"ԩ+?хemʉ?3y@ 4pWJ700 (@K pʁ"&0dOsFN3'"@G`gYO%"r}ӨzEK,ҀԨ|T!t 8^v=LX3c-LA!]O-7`łc.$P d`@FP`XŀO:8;#$a MxBP+da ]B~pvM$#`C QCa"H&88Q%bxE,fQ[bE0Voۓ"Ժ;QV,`F8QW0{cG@R$d! yH>[#rI Ad%-yILf2#IIpi!ԏ:6JMR(JS* pOeCRvZPl^gLB3Aɣ8 z&5jbτ4MoRә8Ynb`1!s{k#yK{gBcKyP&T e0lP71p ыP7`F9jQj/"hH?Qʃ#eJkhϕg1#MS4*]{D#9J$"QJ=R}T&ըRE*jթ2qh,V*$ᓖd- LhjY:V4ԟg]O^ӘφV%la9i1I"\,26$d++Rb,f;sye)AӞ-ZԒ6ekg¶-m[za5p…pd["G VWfm.qY %3C&wߩ.2 z{j7k}z߼Uo߿&p \؅,`:8`L$ ';80^,GX+fq]bX3qm|cX;q}c YC&r|d$'YKfrd(1GSΑ<(gY HiY-scf<9mߜf<Ϲ{"gW.@ m+/0X fn9k Lg _ȴ9i!A P?+`cXϺַ5mDp}}kUyQ.s\ָ-m$[:2$[ͅ4o./u`D !R(fI6Nw {>DH}k~~oa µ5qo 鐃|2/>o Cns58nߎv@EMoLБ܄&[Tֵ{]Yױ^8]V&4l];mtvpaparazzo_scr3.gif000077500000000000000000000200321263163240400411570ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a000بPȘ@HXȈhPHhP((0@px`0ذPxظh((0(0P(80@ (РH(Px(8hh(08Ј8(8ؐ(hHа`H8ШHH008xX8`(hHh((( (H8h 8hxxpH(PH0ؠh`@@0 P` xHx  00Ȉ @@0hШP0 h0(8H((@XHH@(xX@h0x`h 8x`@P( x@ظXPh8@X`H (`((xX (0XXX( @X08 0X(h(Ppxxxx(8hPhȈ0XXhxp@ 0аxxPh@hȠx@pHH(hȈh`!,H*\ȰÇ#JHŋ3j,' ClI \R!+W~|9h fJ@ %,Ɂ@T@ac4РR``Ê vٳ( ER`]|D 'qrnWѤUR@vUݺ7$?kK3ɴo&6di!B8EKbY!]μ EPj&:tX׵!l`oEf+]V/ۄSHr|r:}DH%"v!L1[[{ZLm]G )R&7`y*uUfgN[M(,0(4h8<@)DiH&K1c 1Tj •"@)eVb饔Rz9Ø3x)&fbIfif"BLBg'Svym򙦟f f^j'Fyp<*eY)^h`b:J *P'vj馟jk6ji**kFJl,k>l구j챮2-JlmBl;i+okoʋo[% Wܯn +mD,WlgRb-$L1(,)2)?4r<@ H'+,4 SV5 JI-Dߙc JU_}k֒iݢmi[[C-w`t>C+00;kz| ; Ci h.j*.`~:૳>J>/<ҍW7v&Gorg,,?=|N]?~g-۠ks@qOmUxex](TҀ ĕ8rK\ĂA:BPt) b70 Сc9yRbx; sسbшKX;urXrуZ(>f.H19!.0$$ GJr&3IKJr$(yQfR9 ƥLj{eU] ,*d);IO,(9dBҘd$RU>u\ম ֒r¹7($+H |iO~'$Ģ: Mpv#:vʡ39/t#Kюr4 udH=Ɏf"hIGȋl%n=adx'%'JԡʳE=*RΥ2՝NŀRjϋ:nua ;LOLgMjSVp\K/Z]qP# s kZ}䛯{AcJ×a(Ja 0sx૿˿[D[rʢ+Hp9ֲ0 p.UP%0%}~ȮK$ SX#l{ƒm0 NUN%U~y!Û%bG|y GPRl%P1^Fh>+%<ۚzhȚ(|ěhpƊo)U1@&|̲8x%h RH(Rk ]=PIp]DW^˻e?U|;S`IɁ䆜RqR\ж\6-Uj  `8E}UP]PsHԩuS8S0'hʙ\+H8n.<^+A`jS̟5rr۾u[|=pWp\]l7] :ZlAZߢ  l/ \%k۾|3z ~}I@V l|jm Tk`lZ>,'S ĺN|ۼSkyY|~[43]Lc2߰\0^emN,0ݙ{Th&22۰59=U4䬶Ps;N_|fpؒGl8=m:R[DJˑaˋ)c6Z,d+npۭ]9MehζγCvΐ;X)* uZm3]e]l|·uq!]/qQf0 Pe"%箾ưN܈K-9[Mg>ڮr#p p~լnF0SJ2UHY.p}ӛwڠ%6IN=o7Ý `bھځ# .#Y.FnME+He?BNق $&k)ܼ-fWlEEla=?Z@=Eol r]ln4rNpyΦ8? x9!]fiNi W.es97)h^Ƌ0{0en/ֶr??:۟9ȩ{LQOY|qOoe]\( ektcY|@ m9NRϵ}NDV}/$?OhO ,0(0`,,d%NX ,jLQÁɐ#ID)rJ/eƔ36(`#E F q@0ѣL ͒n_Ҭ,̛Ԯe[ vz-u邡P&IiC:tܸqDի ڵKG%@2,gPr͙5_&Sşu\*w#\5JlP\}V[>4iΞCAVJ>ݺMvzD.oQs^9֫NI+i 4@: !=/ X6F zA򉾎}l GC c!IȲEw %fɓ\Jr %)G)LbrL%+'y:P7 m)IZ.%.C`SlKlU/c1=sf3){{ {$9Ns]\gyw&Нb'=g pD>i" GL .t aP^-F;Kf4M 1MzR.XbE*T-L_R޴+)N{ӥ\'Q8TIuRhTթy#R!@6 =dW!HjիbXJOj]%[ӊʶZZ׸Usd_+yQ"%,I+ÑְEhJXȺS1(<\6Tg7[Yyv,i?kYӎg1ZVmmm{[Vmo}[W%nq{\&Wens\FWӥnu{݊D=1v]v8𦗶mPpW{c◾}_WO˓׻(ՂSrp nPakA I 9pOb /;܁X!X@ c@1A %c|߯X6mB"Ac$ l'Ǘ.|ZA=Lg;*P!KrFs/,_ ;rLFW&,A9zY[(X nv\'86nr&p@ &wwf淛;mtvpaparazzo_splash.jpg000077500000000000000000000056221263163240400416220ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDtd"!1AQa"q2BRrb#3!1AQa"2qb#BR ?FTP2v.13u: j[`lKq<Ԯ1KCr* 6Aq}NԹs{7YHԔ bx.W5N]Co前66}zX7ȹJI ${7ajo!%Ag1ӊVԭXqY'6نI\m( 5z'VCbӖ7_Fu+Mr 0LD;znVUTU&¼s*[\\\KL >z0RZSvH>֑ف88lD4rď6eIbg,M9|p6(ul2Ñel EzqJsV39E1Y%$W;|+?Xmsh#0in8Q]p|@R3ز?1`V{sH1p9UnH#VَF k3Kxm dgbl8J"Wh:Uǰ-s[7l55q[깭WoDr!lFyyg͘S=F?ӚDy#eimQwKśP\.dAq&N2`'7i ]pUw3n𹻉X2/m~Y&Z QtLWI_δƑO&><m46#"t\:66jw\q2A)-Kqta ^@VE*ml2ɍ|##ްer-B:;O.A ݛ*'Q^>5{ hǎ]X\3{`?1;je4>T`G5M'|7OsO{ U=PN̏Zd,^_jVݎz84@,XZAMOXtr%v=~Z: e"!SLJNih^m WL͝Ȓ&{0SؒEffp|,器X՛t<fJٲN@|0_.$@*ZԔ&~9!?_k.Zw" zrާamw[}f~Q4ܶ[3!TeB)Zh y \nj7ڂ(~+H)ڇ3[CZI b;=V,[ B O㇄IXXX) ܚk0P%´m׷vki.a5PޘN.Ѹn4T;s z"W(8Rwo<"nڛYwKw,kg=;~Nb="|Ƈ{ 1KdZ+vN-Ί*p1SKPWHk]*hf7E^qƗfU 0*O)ڶY]mIopvי%9 ~![k/;6Ac}9s+9-x 12|w a_VG(ح)qb*UnFMfU<ĎiFa<w\әg4͋ƟT4 ; 0Cq1{oj4Lm;(8 ;05\ܧXurݻaj:y,LKo edKcq3|ys-nj~V_` v2[*Ƭg:Nޚ75Σ{iCcivTzm+N*zoK$*bd?c[B' YD Ҩ6W%{2$. 7f dxф̙ 4FIr۳ 87EY3\1rڕNb"U;Njlۍe ڥ!rշw 5  m"UcM}>Kw]rB6tH-b97!6CNԆYs&Y bh˜hL6[{R57 "!c1heѵ bށ/#WK4@m:iw H]g{r$N"+@C:W^n4I&У9`biVʠKhmgidС 0 _Dj>|vi/ZBޢBQ-J9_.+țu@QV-| rw$ o,yCP*TZQ&զ2BwDe7.ʁ U\,}eJ@2/km%_nNdV|i{xb~dAvJ.=4 2۝:qw=5SomKKw2U%:CW:}g|O w @\c Qݍ @ƼvZ/ ,`.QGѮ+GG4z|7D-= 5,xz`އAQc6]pռW0 NMw5..RBÎ?59_@G :@ ABco@1vbVun㚍w8?K[b")w̋bm~l|ƒ޹;Ԛ"iMƌJV Ob3̯`@G@QaW% xLNS$-4%/iHɋ#WFDEZ.m w[6ѥ%L\&+&y5cb&Ԙ֘ypxZfs<Hp *"tcjG_'6a\>(y:7jń;Ө# *rosI6pDgF7ώnG4HKf.96/2dM_1(G(f~)7GzT{2ՠ_T1L%('P?"9zK+MZq*0=fZ RJ9 (c`s;Yk?=X-,ߧE}1/ڗT"cfJ"P%,&[b=2SXV~gSԶ8})TQnm]XB6)x MoRq)aEw9׽/V[n淾b{Mi@woSG~GV2o7l`J%/~In'<O|_}]zxmw0=!8 P-o}C}#Toߐ7_}7@mqgz|yyWo@0Xp  y_yW|{w7#(%xٶ с*qx:`}o46xv'~'1DpFo@oLxNvUXoWhYxnlv61\*sɘ"=!wͭwx0#i}؈!; |۸ui,i6-;e0e j=qZ.1MM܊e/}Ms ͉aZݯޯds\ux]. pZ<^ x"n5MUXQr Mq p%oMמms@o.{tN@Wn~аث>گ.o3gqsѳV mṘΞpq~L6xIw=DiyAW@f.fz00V6r.nOz>xҍP^Ep _ĖNv-C s>x>de>3O^$&o(m̆2@葾Nՙ9tNolp vюlN(VgV{ܝ[voE+]]gg >K,8=~Φk8i roKvu^N&_y:LóGkt@É3vp_\q}-Np^.:<=:y,y\56\%P&/_7 PA C XE Phб=z"@LK1_JX m:d8pχM qdɊ"G~$J%,eNJM9 ^53%@ %[V$lK;.,R6"N~ agC6- wrXLq^|$p o30'`T` ETX$l$}9o3fG{8덺 maraTXs-b{D {կgy;߾#,?&40#<лo) ,@C`ĦD<a҃C>k$:(,;XEc$TrI&tI(J2Ȑ2,rJ)LH0sL24L4TsM6tM8sN:NO@tPB S <@ԃe(іHс0JtSM]TQ-8PI 6V_mZkeTZk%Rze@ d\iU ŕaw}i\BvXjmb-ZxWGTE0s`(Y\3ȠEo V]ve6D3Vy/з`}iRx/h=U\pvg_RU .^tݎecBR] W^9U!ӽ%Y_Z4FWݗqmVXe[=i95"Cpbͣ[v*RmىI._JTiV[ez^먣!ݺmyHlHfR\ͻb)SEY 94dIZkwb?Z^f\ XB`dm|*}=m] Z'e͖`iߞV s;֜Vǘ`M`YoU%FeOo.C; K`<@%"F0p<̭ka:J(iq #r4Pȫa F$@"EA5kJUr DD0~}k`@ :N-;m-&(۲L(PCNm%`9jիX8T|\uAZjKȀ޶2o^?P&iiD+sӤ )2mIs)y6p$fc&7NnE$](Cb=b8.-`-_̹/{$'(dn7%GyL;2Ӑ4)Le&HQ/"H:;L:1*|rp_⛖83pW0gN6|V6ws'! =o.HO!$(r&z$" [XϺַ^8`{ hOֽr}dNs}hwG}<.xz6x{~xF$!A7{yy[v3q=%y?>x=y3j虮zh7O"q? ?}EHo<ҭpWg_̋^fyp} Ѐ("PXW`W|%G~a|ʷy7   (gz:8x ؁v!gzyls ~^yH4i;;؃}bW|G|k|g8:oz(pȃ\(^`c{ww|y;x`! H{ xvbzuf:p#w؆eȈ(8hWp: ~y:(@f({؊guwsXW}H{LjnG(HYLJطBWG\lAfpofhn(|>0>@swzؐLJȋ9苆 z p p' 9c$Y&y|yY w#qm֏V阁>cBIF9C)y+ -yuX03rf`蘑w>] EyGiKَO v'qjH}\y pgaIPfHJ zM osrYZ:y=> 9DY oywngXy='9fٙ  zz7|I y])ٖ (~iu9>Mljhyh qpMٙ)Gu;w)ՙyqБ9gəɒ{ighW eyɟ r yzy)jz`8j-ɚ3ɉL:uA03 IGlynפQz!Jn5ZZLjz4Ouacn|Zkzm mi|&}my`7HyT Y}ڧ8h{&i3z`訠7UXZE\ڜk\JfX)|vj3:yJzePw:0HSEzG:bWr欈JlFʄFv YW0jhwh*gL-kyʞZyiz*v.|۱;|z K۪ G9 h,'~KY&;™"J|/iw&خUdzwT Fy yZYSU[ 6Zzg8k)QG nyp EKggKi*@ zlpkۤ 쪷ǷrFk+{r1 z'g+uڶsKT|f$x ˶@Ea` ltGMۀ Zaw + yKШ{P⫼x,W틽=;۽ܠ7{vsڛV i7N'x`h7!,#Lg' %xip/k ![ iÿ7KK|*u?fs@x'\'+!k{O¸=.0\{a,ƷpZ:uGlFZLymoqcXy. >y'}{bʕpy:ȏ[. `Wժȋ,t+u71ਨlL]%hn~۪ݯǍik~z@.2\tܦ㧹,e8(<{o^vq>wա݀}Q.^n!\˞ξ㿾v@r Ā-傝nx>ꢾm.{.0_W#PBkﰞ+zy.I xjOڋ켲7;p"ɩ߸2oc:ؼͅ3GΗwvx:ýjUf }4G3^?:us-~?(yFS9f3φ,y\Ck영y,v`c,f*,,Т__ȟO̟?Odڿ?_/@0VV&22²ҮǓظ&ĭ==ꮉf NXhf;rBrC Up؃#hywGbL&f0I9cÐu+:8)+vM-N-ahc9|Nk5QµQ[ &<էK3fDTu\": QL}Fn1n"*.HG:LͶBZ$` A6~hpV 7vyGAb\pᘂ%IK-t~!_{Q,d%%Wet?-8хފIQ.d:z0c)|4ZG$j[RebxbJY&AJfNftMvKJڀvGp:lYG<\ R9i 6f h4 L,gU.<>^n4I&У)`bi!VʠKhmOdС 0 _DR.|vi/ZBޢ BQ-J9_.+u@QV-| jw$ o,yCP%TZQ&զ2{BwDeG. U\&}eJ@2/km%_nN V#P|i{xb~dӨAvJ.64 2۝pw=5Som!`KKw2U%:CW}w|On wꥫ ܮ@\c Qݍ @ƼqvZ/ &`.Q<Ѯ+GG4z|7D-= 5,xz`އAQ36]p ռW0 NMw5..AÎ?59_@G :@ AXBco@1vbVun㚍w8?K[b)w̋bm~l|ƒ޹;ԚRi@ƌJV ObI'̯`@G@QaW% JxLNS$-<%/yHɋ#WFDEZ.mew[ѥ%L\&+&y5cb&Ԙ֘ypxZfs<Hp *"tcjG_g 6a\>(y:Ӏ7jń;Ө# *rosI-pDWgF7ώnG4HKf.96/2dM_1(G(f~)7GzT{2ՠ_TL%('P?"IzK+MZq*0=fZ RJ9 (c s;Yk?=X-,ߧE}1/ڗT"cfJ"P%,&[b=2SXV~gSԶ8})TQnm]XB6)x MoRq)aEw9׽/V[n淾b{Mi@woSG~GV2o7l`J%/~In'<Ou'X֑u!;nrkDѷ^u`w:EN‹}G|cw'7'Bx[኿ 8y|KO}n<ᝏ95׏87}DPoyO/\D(B佅ӽ_$o! Ac!ц6 b^ ; \>"Pt7w7n'~rWxBc0 C0mZ^dGntrXUr#D'y HwRPpC`qB0vHsn&q 0{\gv |G 6x9X;؃RIy7&Xw#gx SXE'qgHXuJLHwgQp؁Y8CHqfaX/x1Hvxhpgp0@ Q>ZH]v8zXpg@t0YoF苆d[P}l>H(|`7F;WxQ10՘h؈sꨍXzHv_QY`WuX7xu3@{8vD5h Wp7騎(pd@oAǍOwyDM~yuxqHt%9%<ٓ>@9 Xx؍w~'ou7TYg‡z\Ab9a9|ZIy]z_V`׎{ 7~Q~kɏS=)~ Y:iꖖז`99Y)w{iy)9I|Wؙ'ɗyoJɚs`)IYh)uH`)YcAЛ̙霚 [)RGYܙùsYytqvxG䇟?jٟ)&Wy nzs:ʜ9|jpءJ ީ7p"#yr0jFl866*v;=jr?ZA*6HQP05Z9dYt )QBj9!:n_jIw0ʨr*<) *ɩ{ ?ǡZyJoysPZsꡖ*JʠIvJ|ʬΚ*馭Êuwpyzr͚!pYʥYuQpJG zjbC*:kyZzȰ9ۜꘀzy k$K&n) ۲jsy IjԪs:4D91ˣNmjP@Gk[m]F˲bM״NˡPKBPHKgmtKBa+e kxmk|kƺu:p){rଦzݙj+!P+ۗٹ:JIk;7ȋs]{+7˫qk[;8Ǣ{;ھd0[%{߻n)ɋ:LzKk쫻y˜:Jʿv꿘lېڠgKkj+y ̺H9ZK1 <"ܷf;4`zJrkB`6бl G̴mP,T|8~뿀^\-{q"%*,.02>4^- :N8? C.?B=;1I^RPH.Y~W QV^^ `V0`hVmPp*Pr>Alu>8~.avw.~@#Pm^` P9~_~wn.^FC>:>Q.s^>썞Ş@>H.nDu9N~> >^BN8;N<>ܞv> ~ꪾ {N*@Nm~Wn^옞? M%_nH^>:2O^ o~)*o?d8^ؾNN2 4?.np>&|o\O*p{HO?^JnODnm~q{M.O .쫏/Nw|>K^]X.LNQnp_׏=b>o}oo^O$XA .dC &X1@%nG!E$YnjS^xK1eΤY3b@;mtvpillow_splash.jpg000077500000000000000000000027261263163240400411230ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2#BRb3!1Aq"RbaB ?D@DDK;X@DDƛFWseكr ?BcÁ$|9[KQM.F0j4bAş=M3V6I>cr>Zݭng>M/"6\٣7҄MHz1afW44i*6vںW^G03Tu҅2Y҅=uqq}[u >yuPV3Ґ]8)´5p4a8}NJ19IF-m?N?G!n+^}&cE҄4vJEȗ'e9m9vmbmMFfGM=90?)Ew;1|3֧;&aRԺe)}LDZMG}?'`<|M3 ǿڇ3FMVYש"|{w}i%Rgvwz(Y cڪڸhvRIoPꌈvQ~cYFVqQj!AVt? aon+hyDW2M84e_i3Euc#kZv-*l$M<@\ؑőD2-`ժj1[Cw}TDgf6h]%ƀ  =L5RLO| @˸K?kGQtpFFLAyv8?s21)B9%Q/Xn4?E#exk :fC3Y';?* >bwڣ}=!I)wStҒExS067{q Vp]t"e,4 h45dr|d;%tj~:Jwp;9iu Ӂ渌-u,&Qn %WsSGc!syP?o'{g+S3HcZe3Ug0"UL6dP"%,בc AB#+a2f)eZi[+Y4L,)wBYxIʛp%gr&){9$^ړiWJbihPVyc~ &2)Vf&j> JikʨgjʧB,!k%]j։ꚏ6 jfA{liӞ&D$˷JT^z鍧ЩzҊRa0F|4/;ڸ<@nѢK!p1Io.'[d +,< +cxnC[ro_ǭ2جxLF5F|9A)Ij88;.`8LmBbx~a,q΢2NLX#ѪƽY;˳czp4Ȳ?Km㲖Y0G mj4O؛Z.uXA8.A@ Of QG"+bɢP2kg*] ,rE1?a)h oACҶGbs4V}X܈q)q)8$F7AGOu0 -m": F@ `4@Ajl]DJ.Kh|X τn]Ί8B SM rL@+mL8VB)^ p tpJ\rHfJ-|tFiC|) )Ne.p$brI5_@og1hA Lʼ?0q J5 Iʕ=Ѡ2=)jQd^h% PhR C.b;t(<`` p@'0 .Ag%Oi:̀ X$Yl5kMF:Dod4 lHTĠΛLįY`kCMlbsY'd . 4PWwEĖ2pSUƴ@ļt@AYbҭۏD7J2 ,$njLd&@j]挠(-nq @QTZ%^IVH r [ՄsQ'%flr|+^#_/ɠu&*AIԨ>SU~Zx氵Hҩ"'ӺplG @Nb-6\}+AK ג聞#'{)8 m3>\?{.rv={ʷ !'!k kp)q׷ro7ozGDXP @0~~drfurvGx t{ k~=8#) !w! r_ss7z,~?0%|Cn(nYo';x{ 1w9Fvnv00nP@5$?$o.NZ++w}pPr`p}'|ih^oSZ$8/:`^uo`o%/n8zPR"]1- <2,"%m nsV7 b}V/F!q.+H- Ѕ\v 'o!@!n'%&+R)f| p{vHIHhsKHrFt8v׎Qq)nඐy2g:xrdq<`7r oMSXLZ{e(gnpL) (n(@x:yeƈ5:t%DE @n$@hzV}$Їt=YlTJF)B(3AkY:i&+%+ݖ))A 00gB␋T%ḗrhaAA$ P$Pi^rb~W$%!A#B+=!c9K!z 428Ò06ꙁ2]$ uG}C1(ZنYGO`z$!ɟx៨](:R גZkIEԢlR.@94 /7H NQbEь-yA~_eCau2# -01]f!,P'~R?BD]?#$ !gGb =P2 bWrD%"!~kZ(d>R F2x#d#1wsHiֲ!=bG7BR!D8#nz!=enrXJ!@C @jaoJZ"JUꪹ =jot9 P!xHqrKgSr?=>U# NJ#P&j tvjKP PvW]g+\Jp#ɘM[?U ^dUQun n[HKt @n;o`+p{@  {*Q*`I`4@kdn}P3ttv0kH foPt P堥.U`J4NM>t :[`1-{{ !70pNQou%03QQD[R!?pCgnipb• I`ppW? +ouƴ^>vSL4e؁si &?wrlu sy{F/z :ʤ\,cUL1pȔ Lt`\ɛt|Ľ[ 969gaQ|JVxuX'̝a,) Pm \ܞ/Ny?:, 0w!i0%Crcή1p1pUW=&Q} R  VZYَfdTP[b%@NJbO% p>/e9ڬ~G7$¾ b>.WvLN4}cm6Aֱ4`ZdW?.0&I6PN`M5RJQQ Q[}9pNz~pQR,Nb.I~l&Mb%*r⾧@LTիN촨N $ϟa4S$LsON;ٗ&Ά1_N _^4`I?/G?֭$MV o:J95IIOK^%,PQ^v^5C6+?_^4TݎSSn@}NZW= ߴZųL+^tc~յ^6M *LW/ՒwIb3n?6 Nߞ65/J  #'33# *#& < ľп66#6#٬㕣<3ڹԂ '̖2 '^l0)C4hd@+x⊎ˉ0DLxP-y Pz8 :1̹:`~C[F&2)V)ΡCTHpL !9q!&SB`"?4!U/ :q+HJຳw4jCѽîW e*N/^C:s0BȔ ``++M_h vsPo:g9B);L6g' g& z0(( = t 4"tىT]+Ţ"U ed="ܜ|#7.5&''p_a G%132вJ*L t>M8~`S7biqe&V%XGmQ9NҢ:C4 VfReh55C"e*J~RG '$ h0o9!xp`A#";/ʥ Hō2@kECHR0DI>8Ny,AjO.Kf !q{cFAB>,PDD 33`D+p }h7^X6ӊeJHJ$:pp>(q w8DF%/ 9 Х> @Dl At*Ԇ6]3פZ*fP2TWӭ`k8xl\}BAV)`H fcrMDaD2Bb@jgf'%S@~Y`.Q2 uh(0*Խ:£ҵj<[Aϭ LuIE 콖(qaX&+@{D1 \4X3 @Q(=uG)@M}jiblgjS> m>\Q=u?Bf@6 @(G7 FN !.8\p.?REB WkH c9xD^ ?\D;/(MX=hW "khO4@ݶ\r̢pD-mxsw^@|0/qcG'rU+8x75s}臣7׀ aVPN  2"@ES xT.x^ [@uhN— c+p# l|ߺ@_`֬ϴVƒvxPϧ.y p7pםA HubS_Нu H@;_Fnu/{ ww)}|Q~Gu8?A pkH}Gw {~@@u7hȦp @~y3(!wB PxV.%Z% (懌ȃ@yzXHHxyH2hIF("iȊHE8h1a FB&^g؏;rL)ȍXH<㗇K. ))yX% @0bRiH6YY8{%EiE90YXz9g).xȊ(@uygiIyM"H1xLi(` yh)!CH}}Wi.(ىXh6͙ ɏs'șpɋ";mtvpuzzle_scr2.gif000077500000000000000000000210441263163240400405040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89at'=VV=ձձ'rrձr'rV='Vձr''=r=VrVVrrrrrVՐVձVՐձVV''===rVrrVrV=r''==VVV===r==VrO?_O!,*ΫҴ֭&ڽ*&*ȕdz|,"Čg0!h3Q@ŋ3jxqDh0fS„/A\I*MȱO = s PPBPHdׯE0A#0oSp̐2[g]jز+JJ-K-c΀ lM:!mpIK52V!3$ԁaV6>b:V kDyH"'q0twJ RA@`-p TZ9,B$@ k,k xx ћSR"cȄ@& `qp':{:X*J̗d@0PQ gE17P* R R ` lqVqCPі()QҔ J\'u' [[Ak ɮ.F@M' h/cD8$:*@ 5@"5D4HL\@GQc`5*`ڡ+禁Qr(PdiD[^) 8e'FWa )"K'Є!%!IMvؒ h!(@pX&9/yIP p: zkGgCQF]~ԁ`+7GwG\@' 4xQpŌc`):L>dJJ5e0J 4 4&]3F>gfB/ӑ ?ͯiTZ~ό4{%o\O!Φ;.`?Ӛ5ROn+qzpvl&[ٞn6& (_c(pelF0fܢ~eгUXwnK{Ӵnv}Gpu\Eh-8Jc7b%gZj!_>@@eH'rR[&^"02p^OXWBDņp' /(d|JPJQm=I4DZehRpvm%(l2lH.!pKbrq9mІAp]Ȋ҂o_ ->7GsG/P[]x.'SC-@len cE([|>†l(2戇QHk]dj}6g(x\UBԍ*uS VsMn'"Bp>N&7S2Fsm"J )r sFg2R 3^B=j߈ )IE#8FaA t`x<57iSa|J2 HAЅ>4bGHWFR'fƖ6GJ"p;0d)xSCHiV V;P`'a*%8SU)?@Y=:t OuryyI'M͘mO+<vms憳9$9́'{٦ A_\ڵ՞Y?mb2Uܩ18|jٛBfm^Z<)$jAgߙY[aiufbۄI'CYJtjgZ_B 2eHwƗx6OLwfP,i`Oli~S.: O]8̈t\'P`CP1i=daqOV/%ƒ0rzl aASEMe8(F$g .Cdwq.#+  LSpʥ>cB ebR5:- ʷo8p A@ )sj5VEpIDp_FC(JiMwƤso G r" q>%eȀ,0vP&VWvsd9$63P`/Mrc7Q* "A.vC;L8Y@08:GЦO 4Mw"PxS&MohU7y#D J"6:DgY&Ŧ0t\bvuqAD0)CZf+7y2$3XA6 LQHJkbpO? FObvqr @YxqAw"e ) W@IM`įPK/ptsPڀ b,{R+) L:'@);6P,Q$I`ԹuDzJ29wP8Բ 4u=$7+Yʫp|#D7Yڦΐu 2j[fM)ot+bxe>$?c?FG UbɺW3+2L 㱬amɇ+ ;j$-P tPMvJ/@%<̕٦^^]l p pF* Ls}vc#_ 5Lc,ppZlS(KʔF@R @ P:3v_}A d;@`]ɚõ7J7S;CC ˂/p˿S%\;tuʼ̼gaɂ YLعDX̠WOp 8[Qtm2puG )̐2 G: H'֧=ěR<)@1PL;5%`<$`}m~E~HFk'rhG$\سT ;` fn7`%JE^< m=7C Mn`yVf'} &ƒ^<].ꍮW sn"Rݮ>~Ci*(0Hi+dv}g]Ȑxʓ7~ `.}0=ǞΝ]^Ҿˆ/@DiƍCD0vcz@@ =ۍ$^%v1OP.fŠHD3%N=*0>$ŝ` * ʓ#@^H<9`+'t fO`̹$:ApE n/iΝ$*=+XC\J8vID7`iC ^Rᨣfhn>0%p9;s1j˿G v0&@$`e.{l[ 558.77 7$@=@=7((# D' 55Aю#$%߲@03>PB#H^ڶ F%`xFۨ*KI"J(>||f`5I0dmIQ%ERUz@_UTY)$EDpڋEȑ ko ZoN sgn?I`*1]t$@l'ţrF=+MIF 6L 2Y`ˎM{ڸo{m 0"|sHXHpZt^k>R$:JRg B?*- `eX{i7=X0!YГ~  $Z |}C_}| $Yu"a=U ?)2XK|h#VW(S9Jb$r9= [!ɐX xCA"$sDb{,$I,9Ĕl(фPd}>,ЃDHX(m.⨞n`|X}"1(!;$魔! 6XZI}$IU;0ie}#յΑʺŹ)nڊRA|v+#0 vȳyޝ3ΛoN8 N \q0-rT*#H< O·2벽{&py?KB: K䵲&`{#@&\&6Xvzʀ " H@/].P81?p+ " jS6ҷ,9Ѐ BA$aF5`x`RB@ؑ&7=o5(EDs  !x4i05q A& )(!9 "€ Ab{d Жh&\BXh @C1Ap P4+YGSB ^Ϗ[>C|"ɃxpA$8A ?0 VJ @Ёl1b G<ę bx9@ P I9`4!ShJ e J&D  _$#Z:,! hr;P"hA$w+jemP䱠1Pg!du UXͥ65MBgq$l )9!yLIJJr%z@OHf> xF5LUT  ֗Weڄ!3piD9{O m(v7rHqsDhçBSSs#oAd!, #'OMv66=.@Zu)\S޼0v_yݘ7V?ֹu`G;~hg(*b95 yg9C0k}|] ǹٷ y my@Fe$qSxH%P `ַa L\|y7Ҡc(a=k +r(:@>N`Wľ۫v sp`Xtft0`c}fLD~WLttHaX aWu}pۇ- Q/@@DkW@€ $cJ4@y[¤ !'kqV{SLZi %kKIUBՁj ; O+t%TKVT%6Ȇ!UHq&&q{?cK`tk5 aVnxgT2$6v4%rxpF{OqH70)i&t<)/(;mtvpuzzle_scr3.gif000077500000000000000000000473521263163240400405170ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aώu^Q@Γ N`K]آⱆ磿౞r6%mgPdgmv_w٠ЏHlЧ'TEn_vȪRVV1JyabU໎ƧvxI(NIKigC``z)(m!#q' lƒ0GE͏hQ5F!ҀHzNfrM Bűp%(Ө$BmPȝojvF^N$̀L轠ۗҞ3@v}}.•PQP^зٸ-py>*e>p 0HB`ݣȸ!,H*\ȰÇ#JXP ŋ3j CId_PLr˖0]f̔l5Ϟ@)cF(qX!_~b>tZ+KU1FᗶY0/&~1Hx{7/^vEÈ+^XƐ#˘3-J):tkP0LSpQe˲da!&,  hӖ % 7a@rʛ; 8akǮ;cq.C> $K1\雯5fdȀmuNkE#E40p=G#|Ifhauᇍgh$@ t>G wԸ AS . .X@upbwRN/egqp TK2r|r> X$H3c (ȠE<)dGOrh壐.@P*/sUT1 hFw#ßz̠DBxh(GO eW &}/"K00C> 3d/Z"4B,SC akf AͲ"cLT P>2 ./10[ 6:lQKVIa:.B!:ĐL,RJ=| H(3ӆPHHOD0L3% o#Q5xwǀ2BF#P,Q2߰M512 dHy/ݨX- [` I946SuD8]B L.1 ׄGO=?=_~aAP ݐ!"Fw!,\bBI7'XN!?PW 0J*LAx @~|73w /gPIp vtsAVR}%V ch7x a,&E`uPr+@-+ }+I3.81zUѴ.GAvJ8 JVe` GVq@ 0 0v`}Xwn( Dd@q Ç88@ Y/912 m C & ͨ4 k \xd @g   ,wP] &J ׀00Tny&6 € fؘژnV( @4ND6 X/ePx"$R 18@h ޕRd8nC@8 yn  NNNF5/ 0i jjU" 9z( b!:0tzxn  `I9dƐOs g+i4"$DQvI9 @$7Z "@%s!!:T(VY}~) Yq_Yeyk@ ]hq`w K7pp)b@-5]W@{@ [2>!Asz) 0BIy#J 4 vP701 `&r1e QY.>P3C=YU&KY%$ J 馝Y+pc6j%g9P*}@'" 8aiUp" $WN~}QAR-DZZi”!8ejdXr aq:9A}O  q0<s#jyax̡C:V Q, x.`Pbp %h23/ 1n>`'q\/5)%pp VL #"]8$;Yp D׈ ڌ1d211/"0p  JK  ;@7-,8[w8@Wp#p:AfKgeh B1 gQ rnQkjk° [:b[ Qi QF'  !BoE:!!*!!083V& 0;嚄t`p ` BB( - ¼ºI!K0g s@ HdR$5E=bڴ$kxU٩н.̀s )P/EeAF0ԾڑMR0]֛7! Q`l| U{%K3/п+ l/.M(9.8 )ĭѳ@(L0JIP^w{Up5H$9 K~ 0P+#\QƊA2v!H2.  7T 6j6jl wۑ b?di1@ɜ W x 3;#ȿV\_sEP6ҧ jI¾lR5H'k;U,P9P4PDa9Id.F/h`;3@$D@CEP% !jΊ!:7E$M09TE! 4=0Jltj}c% `tij V>M0Y!a0 "dHM$[57m-pmy!qƢ&H4)||:ƢOoXEi_`k%ƨ%B6&0P C$N ]p_d<~ FEcm,ֹ-z 6 5J4M,=BcVذ}֐=׉hpŖU@ ]cc >aR"HU"l ୋg߁_4Bfp7'uߩWl1QBAl4c>@ڊq&Ai0BQEp_D~io}aT k`.6[Ep( Vɘ$qgi8h$У_ X Y0w3Do@$%2zDH@qG;*%~-d $7NFo1Nd 0 R4P%CQ 4j^|mlaz` N8aRxD(% 6pe6+OKLQLq)5788-pN%;R@oAE |iBX`"dW\fc 7ac+( 9V3SBP4urm^e:Ymv_иFZx$@h2&_)L4mW` U^zwJ!>-XVXb4b*i lYv:gYkP5Ƃ-`lV-p EibėgԣubP@duz_J8a4 F&.IMN]>fBY .[o潐o5wpfޫq[q'aJ~/|sNPEPw?x=]'v/#x@_dKt/NJ/ @Xa YrBsL`Rf4ء !.%A$ z!" $L(xT<@w"/,`EP/^hF4`F86SbIX]xĐ* {<8A`'r<HAv _x9FLb 3IP:ÓX">IG>$S%I@L"$+yLW1i%TrJc+A 0 A 9!TWe# f  CH`R P;T 0'Tٔ XH$g9 DNu  PpO<.3 8, Od !y,"<8͡*ز!;SqT$e*aL *8Z )/kzӜ:<O@uD AGiSuT*(7p3d#2 h%pd d){٥6U\[BWZj<_BBǰU,OV̿ODv[6 o} $mhg9v2@Ao32:"WMr׋f#h|uLHrf9Qc󼷫+hA@ O7 $.^m{T<p1|}s3c;0 4zՓ!;D8jU2A}w^]=-LB̖8HS03~Z39s@WJrqwa;H=(HaqT?,+%SX 8X @1 ȁ>|AIlHԘ38a?;s+kdBdpMPC?<#t {@@ÄH >`>DG؂CC4Phe [ p!] 0!)`A =C?DA$Ox9R!_h>0l|G%JԘ!!F@HdHd6FE|QklH43nɂ0C?ЀDI$IIIGK gJ$ȌAS()3BB?$2({mĄ.DPh <<@KIxPf!l)8nXL5(L|ΩlL!{ȜLf;6,Dg̯2x+MMZ ǹՌh0L(KKܬl kFPOp,))SL_ Q\OQ$;QQ0O#F|GLHM9h PH7`:KRb08θx5 4 J۬C)9P\HO(F]]H)!lQhQQDQE#IPɖ4KM\Rh3 h{ۈ A` 8U 6kT%DU;HG=SFiQ"g"90:h I<-؂X Xxh&jmIUR2L5*Ԃ(RXҘX,άUUvq^u `(81HV1U Uk؆=Ap+ X8 crfڧǣZ~FY`H_Z`cpL<8`" ȋXY20(FX0OLc'}'L#ϖ8Hٵ0F$0u"ۻ=ac=`T9Y 4$"),W{K._"HX`InBI#$:ӰS|HY\QE\5>Z9\ȀS%G͵7"]M\]J{hjb@X}giH_U҄ߓȂGW6mvщEr$9 [ `Lqqxp , j mߪ_ߴaf']n(H`7Z /` `,(R- )`bfPbi)___ ,f/f )cM(Q57v_@9c:#8upx__DE&ʂ@\ZJPU 04% b6!HmdQr / b"|{N_Ё_" aѝ*Fb#1AP: bc!;){*8.^(8G\ZMY.Ml` Ʊj IӘHm 8k_fX(ʢ?-/%^ |C87;9_MP-ȆX$(Bv86}]8! 2$$@X)`X*3^K&tf2hXԀPX gbPiEp+¢,"^+| 8587x/x&>ifVfa{阖vyP"iF`>j&UPֶ.3àhH8 8EPY)E7ZO $gp kkWئ,v)D83ЁHnl7l`hƁp_P !*@ L֬ :y"Dȉ;f`ˉO2d`Itpˉ/^д)Tiv-aj(BxrɥK P,Z. Tr# A'.]z]lU/Ĉq@F1b nU,lc5X8J,S&}4P@Lì2h˟9r̘q-yD(Gc]*T Rr0lv_E81c&mZ (+\Hسg߿kdχ ,n@ @{gA00h0R 0@ 4rsLO 9t+@5eL!\i4Y0xV/჏.a'D]tZk}@yE` `ԇ_~9`O 4"q9EM G0P!@,a1XضJ;ۋ:Ȩ>(jis<A -xK+Aè_@P8 >E"-@y\U^n_aa餳dƺCA9D @ڄyGI=CrfpQoN7 0Bl Bqj*>KFpkZ Kd"A($bbs. L($GZHH2yH%*fu֌ n`w@'Adc=4&LL,Wh#]Kz& Yx! zHL_p~b;HozP$q`OP(@;O`2?)9Tr4Ml"0/&E*!hg|YP=qWF/.p9O"`#Or@9 g8# KZR(Bq3^$`a#7A9q|'A #~@6[cN<5Dp9$12w!<7 o9c cCAQ#*bPg~!(2?[Ly2Fd 0"dZ)9iΑ GdPqC"Mh‘*xr'AdQOdx7O70g@`? B \We喐PXV< 9ˆaY8kD>@#P!si hR`5fp_f s`]40:Hx 0=uO( ^? `;!hZDӫ%,XzwQ-F!9K@# %fF.Gf'iR4 @ӭ pOPъxJQu&G9&*P{9g5nhy c K!/hRЍiڕ/yxQ GAr TV@x71߄_Kh V7NNFU"9RDlBIU>1z 4⚣e:9, ~t1Ot:9^ M:%Adh2 KM񾒸`u?ށB `@ QN"T"/nmndKvf`cgGx^Rm$s23lz1Y .,(C\ yD ȁx/dC6(1i`̈&Mu_ּ>V9\JtuG\)u \Ay`0(BAXD)DPFw38CXAA>DR/2(DNx D r7I EEXrL"NXD*@,WHp\έ Lb@ANL$\2a *L# HgHCq]!#2!A?xAA Z J|h "lcSp 0! "B"2Ex$(b\C`i"''.;$$*Lb@x!;"/Rݑ,2Qc2v$RR|4a5 M̆6.P7B7^\9 ^:@90(eȁ>A 2hGD !@>R2$C2d_E : .AxF I)|`#R(Rt1f1B0t|>l@npA:8ALS#MRF,ڢLP.XQjR!S#TNe@NcQVzeNV9dBC Y%@dd["[%\v$]]FA% fafMb.S.LXlTArN0!e&C_`|bwB# H1aNтAgE)h.C$<倯ȽQ(Qr/,3%܁hLTVq` hg\BwC |gxVAgl#(A{e=§ `@ZaW~Je0cjDܧ0B d.%&g4:<P(ge)22h]mVb=$C`Nx6Q]D=Q:&El Lb`0d)*-A_X)/iP0i9#30>`:Ђmp@_Xm#a&B-DC[=ȁ(gr*0] |T0*L b夬*­"4HCjK,bk9JPM4 A.L eM82,#;,PG硇.@v1H-Ѫ ./d)f"ULpB`:Șx(%܈eQ>3%ttie  Kc:A<(J6J>HpYB.0Ny N@fT@Y`TC5!f %d@.mC*"[ $k@P//B//h/ 0 ////t/tJ&İ 01/֕[(5,M~H/V/ HXN"C!e ]b1MI @Lu؃xc|p> pED ;aS h * ErkARWDQzF@4r*/*;) (|-•d O܀1YHLb15͑jU1it VM/+l+p1 82D'$T2!qڲLub&"@ )g Ak3,rzrriH(J¡11f@?9t#\67A 89N:a;Á<=s, >S'p Р p o@ĦM|aB^DҜ1HA7W40F7@C0|1SK4,B\3+؃^-Y9'.3|W(vAQA{ǧ'h|&kJƜf(I43'eR8t \]c3W$2CG~3cC p>A=8y@EyviL8gIwكB׾'xе@XEo7aFgG$w#{E㣺'=W_?À@w.~+Tr$$upL>ǐ8wiKJpD3Pj, @ I.%@GFTnqv,X0gDF :Ș|7_2%V4(@D)X 8p—N:76O =EVZS+ZسrVBUY *Ъ-7܀AsK%hX: `؁ ||Vwk}0l 2+.[37xrq‰NcY8kȣWe,A*hЙ+ QAhZ$d&B{Wz(YR" 8z( , Ydјo :8 5˓QF rɥ^ ȹiH|v n#r86r*PbarӞY@ D "=W`pTDj-X49 8 WE4jKp1cx @kl8FB2`myd!pDfX"GFF@F!KfrP`'3IQr;;RJR,;4@bq)`JLeA @ R@0Ao T! :Az3W4E xj O$N9(%(b=쁇|%L>|_pCp/ 85me@@P\TGAʅjBJ &xaon`S ;'lT$%Dj,SUS;U *S֫e4]hZ:Wf`ь0n`A0E2&:ԡ`lc@%0 s @fO`6H c=Ɂu{`'~H=~qUAb0 &btIV`,c[a!5.ܬ?RJw-`q`3(@(qr<{@ ]W%( DQam x`,b4%C! X`wþ  ˠF p|lFF(A @B@M7A`0jC$Pi8CeI%be$$>d:PI0Š$2ea̅`:PР ho}+__?-MF2Zю@"=iӚ洑>jOHB%^$4lt \p0~MPl sg^#z@BmJHcH>X3A&  .|$p<-7=!p8w-žG̅9ܹPF0rW|#Kބ|-&X9c_^x_\lL ȁCHяtOlcPq`ubKzg 6r;f8sXtHߛ g tGϾw0&?8A@1tBEpL^*p3% |M|JĆO~K lF6On Fc($d~@2`)O bbb w r/#^!*M\@6l 0/!0Jp d`feH a x $AqO2`eZJ`@pQ N Oaal*7qO P  m m Ȱ I 3Hd p O|!D(! i& 1kD:` Uq!a n m+b @xAhce>i0l!bcr ` 4 `;# B@$Sc? hV*^)@x"GL=@ \%qLJdF!m,A $"r"+"]r#?#$,%ƭ+%\ba,aVZ%K@@"H2@)R bsnVO rP x@*#]F4K4Cr))T, s--pO& //Lj d$3Dh911!$32M353-3]*ò!<;ǭ;S=ד==>S>>>?s=S??@T@3 ;mtvpuzzle_splash.jpg000077500000000000000000000067641263163240400411540ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDtd"!1AQaq"2Bbr#R3sCS4!1AQ"aq2BRr#3$ ?G٤{Áp8q: .–&:Q\iKlK"0 EaHƞeЂt{=`%+081J -Ÿs*>S<՛vnG, WUY e2(aӆ>8E*kLT(D`zذl5,vNFѷ7#"C`Ibz+uFZ$11IQ*(Pomkѭf'>L`F]%{i;=4s ,f{ɕ,.5,3ǂTQ@ 4)VSm*K9.ͤw" {z"m oЪFSikNVZ݉ +#t@=sWpm+{THX S [L0_šڦԼ3o|]Rs4wk]|_v4R< :NiӧQ/GH˗-xF D bWKw4rWGI[A0qĂ1 -l޵,._n\•P@=o wLqdW g7:"cujvVbr+1=&0±{Wb֜P9wv xvv@nnyT 㷤{}>b2@P Ed=ճ{>un)hjE/A.hp{{CQOh&; pc+;g.]]\ j+0QL0»rF@]չ"m=-ΫM| {u0Mcݠim˺b<ځG^R ^р^I*h^- xc8]r,u\PO @{xGn:;/-!UGu'-Y˕u̼ :5z ΫIW,2Je:J(0q-jU zpRulF=C:b̹$z+_bh"p 7qɆ:5dpgPcMi_$mOxE92MUW^[vרmIaN?"q\kk:NSjߜ{(uhә'PKykҶuOo-!FG5jEH8R˔:F^q=_س 8%+) ӵ|l@ֹqt.HL^.A'ԍ˖F-G[4P{p#[Z;e-9iodb0iF>o oH\>>QqZvCuԖɕ@1B_TINńX2gON@4Ʀl6[ob3B 5e.X2?]%6J ~1k = cgtƝxNF}gEOϑ}V$R",9H:?,6IT|$V) P $2^T 3m>PXnS[hu 8]#4^81: J9ExB* ʨL޶0ݝѨ$p9狚HԎ FF,aP*k~ܢ Kpic{vN s뮍D J |~ fnEK0 @3R%kmn۫Dsp̸P+?ܗդJi!_.]q]0sϧ_ I6WJ7l`ڙ{$ "93%G\ ݽL@ f Dtds[tÆSuB߶uS&۝\u7gt聦"8EXgEEUXaZ^Kn\:Us?OP[)'7i[V)]MfѺGy3wZ@tDи*r0qF"rc6 Էpȟ%"He-0K:"Qa3舥%wrJ33>ی8b_KE"ҙ^YV8^1HP?—# +JhpD0%* 00 80 x騸p訸p蠸z/9h00(98膐࠸=000>5-癨!@M`wq]?8.ЄX踼XezPصt&PP!, @ "&0X?l "Y%2fTQI?رdȑ(S\IP@0ODSJpß?K&l%T@2d٢$E5rD'3"˂1~KeX#ִYPA=)@GQ &JTѼKElC*W%mK6,˗v\KM.J,`7S%qt[xynj'Oykդ} V e#2>K!`rV Vc@X1M'CA(4F\V)NP)_xO~(XGڃNa^'b5` g'B/V7*^Ð xv=%2Q K]p (ʍNFKk^W6C CYĐBkp^p+\pٹC=U\_UP V/lQ]v qO */bVM/`,`mCVK>﷦CmoKr 9/t sxcy`E#2 .LR([U[Wf qBK`eՄO^7D )fdqXŠ/D٪hQ0_PE>܌qT4=O1B#O!:6% YWWM/YB-z{:eІG%x0J!.I-t_/Äzzn+e0mBA" a n8%!HhB%#׸t<*`( zK4b^k0Cyy1g>#/LFR4Un_ Qr9蠒X2͠IM䌭C@ٳ:7aH~i%dn ! a mNflX~8"9 6Gz2Sa_ܖ8UqY>dB.rc1quP!Ėdۘ; 5<B/0蒐q9x>Aa0xq?/fPD"ۚ E`pb+@C 2{7خ+(` Qc6;zrF:@D)I u<'8:4kS4y})' h/- {w.? w97psLA ,! :Rw@qH!lpPe661pq RF’%($ (AqCѱwX?72+q3[228<3Mbr9;f3" D)(! GhH@k+#!gVVm'6`.^`gx%=wh'{&h:rH.ȇ3a)ᇰ[l|BG\;mP##J)!*] G1pc'Ka.! XaqFX-#,ыmrhgI8.U ,  b5V,1}yAPR,hC'91H$PY2l豏n0n@ި#a8 ɐ/l-00W[pA `!A]h a*;BmmD c81%A^ٓ+!%w(B$UiJ[ ADyɦZٔ&_ٗ,a W T|CIh&_%pm_ї; r銬Qv(u0И)!Rp,z+ᙒ)Bf񙺹^ rl!f 1)#AVi1ؑ Ϲ雳!2)*ܙɓه!*iYX&99ٞmBM2jȗ걟ٟ"`iӉi>ؠZ q' 1DY)JD Ydn<c/3| ')f`l.=b K> %N.ܙ^!Z&ZޛڗE꬞쬞@p ^ʾ쥾.;ڽ<N( T Z}ľѮQksޱ1DP_ `]ÎΟ. >~.pIfB@BB - p> Po6I_n؉L̜UYo2 籬ڥŘypCS/ PP?c. P/ |U@Y/(țpϲc/o3 1lչarr_tyo|o~c_o6<壠_o %px A[Pu@ OoIQ0꒰fo_^131b A.dpCL815IGGRڐRV \ J ؐgL:Ok(t 0c6Q"PBE#ZLH0_ A!\ծ]1kVSFxE͘9)Ix$fΝ>A,T(Q#.m4jź*د`ENִZ)L7] `u73 /ɢG'+lsͪ-B :4i"Dn!tr]ko߿=wẋ/<2ҥL:Ϭ,t> .pC47δT o*꺫JOjhAxXbjJ %>z*N@ f/K,飏-H$(4#LlS/>A,1L4.[tFѪ%+BR5b 42I<\ɃtQJ*$>X0. JcqͪHC:o‡`4uM' ?<`BEѿ VBRYL4/TS(>D%)CXae)a/TfMP$ًJYYc=ntv݅W+^|׍ ia`4"YUxub0?`jTzH!BـxUFsYԘnD g$w~l&;oc: p목X\ko:.;9K|`;@tNg\@qǫhoE 5v*f 2p (ԐA -c"*M7zC &dp_nG'c#|(o x3^<54}g6[(h@qsU|[_€ßp5y8 g< PC0Pe %"`K[05 w O S0:L/v: b#v1B¹YKd"5%F%0!KE5tPhcx2/ 4ld8phLjJ%ɏKTB)2l0ӠF,`!;haG$}8nR^t(C9RV/2T]EK3J,}Ia2cd&`Mq(xDM1kvpnyeGTMC/:K231yKxs4S%M~M hg&W&8y\Rr^ d_ԧ>|.LBU`(4ɱt:KAW҄4]TFiipаpkOCfaȒpW6PP!@S/ԨJ(Uل3nՋ^kZZֳnZVS4H]ot"qhH*=UARj>&Lb G>m'e-֟fv-B(1S#iZԵT)!6-Җmln;FHfETR:wM\Prn()QҢ@&p Y l]jka_Շ셉}='%7vM)np|`xO ֦v|]Cj*L^G/edGDx >-< I1| |Y|ꀃA R3%r\`x<U!k!{L(:Gz<Ё&CPe 멉cw D@=Yg@Qf6;7sBX;8yn0Qaт&K=AB$UʓЅ͈Ɉjzב`| F`ۦ/X ou.tKGhw ֶv/PA3v/` 4W@_Gxf;2ўAhmlv 3%8>1mD0rp`JNX7;cH SGe0``h@Ln5Bdԓ\=~#\6y{o t>Zm-;w)lm c#&`x&5HTVG%pŇ]dJǕA=ebt{?=ƢyogAOs~U:/ӟ~׽54}C$GecA B앏_K?j,w]O%d(@d4xk??䣾#&+{: >I>.M2eȊ;o70{Ak?PT / ˿K; 4|܀t< > [S:S9LD2vit 8X83G;CUCp G8G@Jw|HHIɀɞ ʒLHk`XKE cJȧ|Chʍ$GHɮ$Z KDQ;K|XKh˷ǸF |FЅ;l3zC? q6h mq샪m`Ϊ܁ (`a0M0QIMЄmF8QDEkO܁ OoMl>C4aRltMaDP/$$lR Q<H0|.胻 N`>{匃lHXQΦAXT(]<-G?ݚ`T!T!mѻzSE06R+z`QGm 5'(SHD0U5e|68e@eQ=DRaT@5q$RTEPA F%Ieb=x-Q[2V !RwSOlK+O$H[}PVd _-H;zap},X]xTxH H{>@ILe8FLm=PdQ nu%$5z,Z XQ-,=Xr!aՀ` GmBp-Hm?;PHUH'p,ؕU$6m3zxY͂}؇}T̙UQM@6!{pٟR]ڢeQRG-<!Uל욬MۮZ=-[S%hCZ^[[/W- R<9Ye\X]$x 38\hy\_\3hY~= fT R^RUU^M,ݴMG0xM P`,', (ӻr>Ua[>Є^XV)\\8Q7b`_36-P X`9]m/ ICu%1GTz?TQxۦ̽TQ P&ۮb+U]->${]&>Z( 0c*=bZ1>1<8XM @@a$c+ZZJZ< ^"(xC8r{L΁F6vU8hN}vƝC8sLŃl])հm`XMPQ|O3cZxGe0fa-fd P6fi~m)}ԢnTp^5CXS0sȂ.w.aE V`g{g8kk kzr.>gpփzCu^M=#Vޠ 'XߓFf2(ild6a!6@RS`TYr j8WpB(W?uUmrrpBpW800pm:X pЃr!Q3 WB2uXc9s0@[>@`2bNliʾsl& ȁtX.税Bx Xem) mV0>qW0#p>q/_XٮqNM7eWRMooy?97t~9eHy9m؎9:-fy oGxZrw}ؗ}džvh8+he'0! ЩH"%QtbH&N F(>)I%L56<mN0ڄxPjF0N3g1) hRVNe` D+@Uwu @;l x`B5t6aEC"z^~"X0X3Ѯݗ ɰ'Fh;}[0P &=j\~d*֭bY{.Qή]v[gq6,3ĆeLO#, \#晖?LaA}/P~]\[:a.1or!ygH*16`s w&3m}7y%) Pp[;PI%I%Ji.I(~& ,W:-6w=p$#ƍJ&]161&qB4dm%צm@%g~7ӽ0R *Kc} fw اC 3r&yWKg7SX z=:L$jj_,b* r2 tqT$F (aW@#I݌zӞ׿OW з5Oz{4R8?~w=L26p ޶6}Yz̞70PIH) H!YBO0^GC $!+ e#ʱ{J(2YI _08jq..,)*#ј>YM~ h FG(uT )oƔɭ|,5Zfض)nLQV i?W'IM[ le(hD#NLXDŠ.Ӕ#Gw,Eqb}NPG=R!Rid0Ҧi=+Ma4>} PtC :@PTEUXZU |=AmWb)DZ#qJ3ָTZ+\9YWܕ$y}F+ҟJߞ$$Y -YT$Q€5`mAT[9I2v 1r#ZӚ ZKm ݮ@ILNp1(^c @ee[ՒLn۬;fJw954\0{G `\{鷀on܎,(*=M-d2"K7HB.]hDϊkuQ,2Dd@\jIl,jt(H2f82z8;q+\J / ^#z.M~2*ʜ2\c21: s|̤Id68 s7g=('3-:2hzhcadC&MӪǏ%L-I^rGM4#?E =#vq#\1 XކK qңlgӝ o[ge )QAj[ζѸm,ѸwC "sN7WnxLKw%o7OwD; x;A#| ;`~wm;o#@qʑ;x!ŸcnɑK" y̥zH?#ƚx 8o 'M1`K\;*# ~ lLuZ}^Ň F`_R]'eu v_YFe}(Ƴk%p=M=fx#dWXvȣ!{|B=xu~-\/(Gnɣv?/ӿ?_}I&_ EA݁-B QJÌ!Bl<,  A(C ` `0  `(\^G"xكEɘ*m n `T~!V 9C 5`!܁`Z N!C"m6l 1dAa$:\_ a%^ j%b"& !"""nN#>"$~$J")~b'"'f"01"W)v)***""bd,Ɵ1b"" ".|/Vb90^T'#C3FP<>a1CT5Ÿ1,77. #r #:Fcz$?> &P h#"2|c.:CV\'MM^% W<^@N."Any$URȣQf%Nne%jX%@Q$W##ё!:I*eUe4P^֣_%e^c`8N d@*]>c;mtvstage_scr2.gif000077500000000000000000000340231263163240400402570ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89ar+ PPDÚ"! noA@1pP&3.r"L@5 @@%AE6pl+!! 楖Y浊_H(i`$QP3ǔcQmdf!p 5@a`B֧Gr& <ÂxJ2q`VOLf%a`Td_6ʑ2(8KNlArrS{tAҰ,r.' 10lXX( 8 [l,UND2'Q ofSqjˌPqowr%0<5GIl5Z[TAIi) 001ّزȸxSQ2#bv4Gj1QneAǴH:Va])%!pi-O]B15K:"S\12x򨖘ĉ>7b_LD"`U2.b]1HN@g# +J op@0%*00 80 xpp訸18!z꠰h00(?=004@9"U?I>< x?8-XR[PL{@螞؀!,@9"2a D@,קO $‘FCHңȓ(S,(P`ɗ&E^Rğq'&аȂ"9s 2`l2IXH"bn\YV`Bh鵤\gjApΉMD*' SnR\0=;DݝxٔX*2زU O#6<*G" lw!C"B3lmp6/^u\a"_~3ȓhѶn-T.S {6rY %JСCD% 7zڋƙsu1LCD y23^Hw18 {{ (0H}lP.$d1 .EFH<2 ^5* h0E3Rb4[Fmv {`iX$0#de %l\A9]e?Yck\r!| B9(p :pˡ'eV)bZcA 80p Aɦqo V%d' 0 zK"(S2 39@ 7`9$cD+ dApD4s%0 "1@Q*n=qTh wIc.$ xeEbf+ 2 -+p,lU뚯:[fi $A_ SkzIf3D0T&tQB1W`5+tBS^SB+¸N1 Ch@=0A 0 78H1^S,eCn{X S0 cvHle}LA!(܅248T!36J ثҟ yp#(@*C7;dô$C Fa+lywM>wp:0%8,}_x M70I&̀2иXk:͈I]7^y`^% (̫2뺑No2# IjY8(-'n\|)Ss.q@'Z0r0K` u*c$rQqUf R@! ^ 96#]1RT!7Q[ 3.H,."E`RAP'a a%!diЂR?"SN hE ݴE+k*MPbjs@-@VcA=ELEh`  KLKPT^~&8%3D>|DnZ %F=fOLdvЊV+!nP"&XVި2ݠIM]%BYٴpԫx~ZtCi)JPn!5N): ;qkC&f8wd_ێK%'S?~!OD0'T>u$sĖd[(Ds;{ f;eI\r-^ K(B"]mF} C\l{s  ·Ƌ kÌ FJl7{M^8DdT^u (?>L93N3.N' H~V@,c{HqZi w@|&/$14gs .*H#7 t%m$Fr6V1m DZp< 耫$B~ ЁjxhC>1'%G) ,Ȃt 0P7241!9q$&gs6"gC*' Kxxh+A( 琅rFatrT5@ep!1W2b}j2UASNx_pXȂ]{&1|E,A .B\!sDԈ[qC%}Q ‹$7fHjrͨψ؂t}XeOx$f8VƎXxkx,rcL*171 yPYblsXq("& g15l0i03\pA̖ `!=$a*‘`T X!Yjٔ%G(R$ai•^&`IcY[`wkY+ S SIt&vxj L9b53pmQYKY%՘U(u)j)wїr̖©akY%r "A#8(bx90IY)*삑ٞI)z(*)9䉜 9*Ή!yy0)D *TyA kBeͱJ )&$im\ B gCJȢ j ?!@ :ڢ/2!5C7ɣL#jABFTZ UCNJ9iK%Bz/Z\IpDڤJz Fj'D0 ZPCʪos0Gig᩼*\ Z zܸzL XԊh:ʕz >0>Pp}ڪڮ KynB7!T sZZ@ ;]@P A֥ZzkP$*6* %-/175"ש9\d@:`++1xL %{`]+OSʪsi($0ѭۭq("x:p琣3ULޤ{ɐ! [V%{ c9;V kk~ c{k˻뼮K7K{"4@_ &۹ZPB{꘺+TU-ۚ[ň P Lktv`T{. Ѿܧ籴La|+t]ױ6 A\i&9)yڨ}̥!ۜGi=[rj+ڷ+­] S: "jG]mŝ!Ýٍ!Ȝ۲}Ѝi)ī1ݧ-m=̍cqޛ8N wOM nJ]YNNqA.jx _:n8N5# ^5'Ӝ⫽ 4=*7<6>=:z%>Dr(ŭMtYR>ZZ~x]C m[-j=}9s8>?FmώMmmA =ʍwjM:꒮_G!< 븎w eZꡞ̇^%$Axj>~^5NNbҢr~-mҩў[>^P0׎8-=[H 5ɋlx.no <k ^l^onh,^LCq\ _.[ﺾ~cIFn)JLGn:5p3/s>CF?`H/Ji c*KSUk[ vN  o^nlDjpjj:2ǫ9bP徟OÏDȟZ̿/ ^cV -d/<ըQ"'4ʊ1N*5iRI;Av(IMԨy˂?9@HȀO.5#l .U醢Q ZٵYnjÆSL$h† FXC%-=(dN>eEi.gN<alNv4e̙5G(I)+!injNa=aę/b&w_~hp➌883RV1z6Z]SQmv% M8J  \k9^;&]  ^4e).NUH!B6̎{:DO$@b@8bXZh)At2x {9䑅-dGɌee.fgyc7|ikϜWh{Y~crJ㍣rjǪj|Q_V! !poV%g$ư7z;ofS7ŋHoDf;[jJ67ЩG.BtT<3}L^[%'e2ʐ@'qC*B!Zxx)^7L~Qs?Rx:6Kdpdd/c_7MOXBP?Pxf?7~̟Đ%) xÀ`c@ h)L Ap};&ַ~D %о@h@`@rx"vx&> lPHA,;H|p8G:C|T`OtcGяb @Dr%/@Ü`U.m]dЈ%G6J3\e+y;I<" [+vC Kx3c0Yr'F!Q f*9M9.ᎀ67Q77-LqIHwSD`=I|ְ}p ?VLBs4, sl r!{,R':M-9#Yn@"gFMe.E z62e`Y>5wӗ=K1S̛.sq<* 9yvn!>SĔ ->?}5$wDt!ĐJs9G,ljy`y>~bUծ3Vg?/Au}=% F+YW@?Jz< 88]jWDo;2E. =CFvkA /eD;SykD[0IsFl']QT MO%- 9'*" %8}R"G><6 !aP9>1 8es+'C5$Z+]LBĩC^f `|@!,D{طX#ᩭ=$?ЧKt2)̊_|֩/sv 6J]m`fOfaOD+C=#~2y_6^!=!-| >; ұK?0)` P(̣뼞08C?1%F=˙qKk-wp#'K+<NB!5",BPvR]j0( (@l@@X/\/ 3Psd##?{5tA?A420cA@A!D#,Bʝ°J*B)lB.B0 12346ȞxًXETlЛ>="Cð@@B,D#d` F (`BDdBA@ .|@C+9fyVTU\x+E#`Eq|EYEE ]AAB_,`a `DdG`tFhBiCFEF$G&7$GHXG=؃Hhd]$AG,I&X\zddG-@2G>XHV\P GȊȐBG =BʓLI5FIHə$\ qP2I#0Ƥ,Ǣ!U|(>x9KJAG\L&˔FLɯI,Ɛˤ+KBLK(=GhK(b{؁$JG˸K0J< MH;L",Nnj̔T5JlN*D&J>hZЄ: 0ܞcVM~ԜW#~]Lc3R1YYHLuA8`0Xo":n$,eMMX^WHD6>]hS0WU@Z0dmvDGa;8ZLdLd!hXM5u `>>e(PRj]Bx`6h͇|iR(i<؇}h3.>=RzzP=*5Eڒ%D.U\$\HXMPOa!j!dLH)yz}} @_Q6h>W$~ֻ艆 \U`@TЃ*0lƃnniցٜi(9 ׼ܹV=6Ӟk+AAXꭦᮎCkJN{}nL.eՄ4`9TeS܍ b+VS)e8 j 68IxP}I6Ppx 8j--+fVeM(rA[gCm{ndFQ6Yv۽a+Dn6lN jpg(o@%Poƃo)oFEo'8$oZ[V_rpp /rXj'q)(qn0nA>rPZw  B%%n$?it#t#O$O*JO_8TX%iS; @Ph*̎\] փ8Fp<Ѓkp6hj<N@=sCo^o|(&;E/ sxS%p0O/rNtOtRwR WGPu_Y`QwXZ>o8'$?S~aG1_I[fu%h!hmv@q)argT`eung@i0wHtKz{tR'*wySOuU?Rt=pzK/z#tpyO^6paLdh/yZ(qjGy)Hh7|O H{7{|Lzt*$z?ݜ}tٮO?"@{|gP{i(M||g{kW_j)w/7rtLO'zxKm1xl.tt~No  g ġFW|0B!):uө)6z0ȌF$ɓd)@@ 2/H)M qvƱ)m慜B-z(0(246je(6|.lVĉ/fbD^:8iR%._ƜYΚ;}I1ԡHE)(HժWYzXigbǖ]2.nR.EAvܘQ /S..x0L.]sy2 . .\=cL QNǕ9,W5+X| h'M^^2ڶPK `TsA)HK :  PXMKJ ^ZU >S-L]͂-&j'Sȁ`l Ea H VA9D`q'=8JIerQ3eU(>RQK MQJɩ&GK1`#4 \v6-zh @c)fT:8YBe/fMh≔&WV`θv'u՜)g!HP(H.ڂJ7뛀y0lJ*`0Zn٥zjŪ9jzlш`1, 6b,NYUEfƫ7:́ztTN:Vp;/ kK>HmSlg&.>|c1L|BN ujzp3K'2&6J %ث9kFx4J.G.qܯfwNqfBs:4~lpΓ hN 'H%g#xF 8O>ꬃNܹ0:Xz?:ˎ۞*^z=(}W?OuYG,)%LCgB@hu|\`|tGuMc (pnSaSFA{7CƆDW4/^gD-Jdb/֪\if\ 捱KQt#v&B1"TbE %hGi+g@rpL `IHJq4J%FP6)`jG; _Ә)isQ3IF:psi)0YLc"3nt3LlJǪ=KF26VP^N 6ڑJPnTԛUHJRiԇMU*^gRպfU_[bWϕfEjմho5h\5Xw+^Wڋ`!C h j#ƶuxp,^Ql]9[/>ci{Vret 'z"YD4֡5N#Y(x"@@5J6+za9>:c@;mtvstage_scr3.gif000077500000000000000000000334271263163240400402670ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aRPCs+A@0'"! pno" P'3/#@4 @@&uFL!! QP4ql+p綉P茈d褩a`Dh`&KlolǕ3ȸxeP!֧'h a`TGr+G=J27@VNLд-f$e rqSXhʏ-(8ILʮi(]rae7lA10,(!tr@8ND2'Q ُqj˸PoeTHIl$0?4\qo]VA3թPpyYW&001زSQG/h)2#dO^ARw9εNWa]B}meBp׵%"He27EzK;"T]{赸33ŵ>7b_NBόȠx`UEK"2ĝ]1GNC—]# +i8J hpD0!$00 80 x騸p訸p螸18!hx00(1=003A:!0xh><4xЌܐ?8.Yby䨘PpX`Ѐ!,@& D@)R $‘FCHңȓ(S,(P`ɗ&E^?r'&аĝ21s &DAd$8u$s17,3֯`!ZR$/35r cD&"3@)j7)L]@4)lv'^dVUalGggp߈ ʑ#H$N]ȐЌW3 G; 3FDg<FƓ ٳWs L0$Aj2{ʹmiҧňѺ_0Yӳy}"s)'J4t%MC:0`:eMx!y "x^{|\/$L2 .EFGӀ<n]5* XPE4Rasi!k"ѥRa@c"o dtv&ҐGָ& :BAK |a٠-I&fj jq hBdpI<sm*gjƂ`L""R)CYMxBb f:Lbhd9暥Ec&83zVx tJn[dO> 3ЌT̘~v=E uu׉fk pltImu@"^^k7 k!  *( ]uTMFɊ y<]2+֩ C 1 ( p?B%L i祼RH,fa 3` ݮ!L!y br]̐A#Y;3RoCkU-+ 5פLTAP@, ް c@VB twхخ8|yUŇ@:7 *a c|l7kD7n &ی34&N3R=KAVW]uN MQְ"x@ 'l]La2T䫄4F1 g A0F#7&!V]X"BVfDFɰ+`4D\gCMh ^Ą CJtkIHQ,T7f)-L 4ІJQ Kc`! DmQ, ivi2v7~ˍY 8;JȄd dn<$SI!%$מAa &c1B5,D.(ט Bੂ_`OYJ_Ph W,`RkE+W2A P&MUl) Ii`n(S}Zz\G< pSX2X3s@'>&~jџpB]ZOp: Z\bJ1e-УiF*DV3p*-ӷ`lZ (DB9Fhx# :щJx׼ WC!oc(Ŷ!Ƃ gP tbӄ0 wэy=$*tLd⬪d"%xȭkA1v^b`%90o|-c (}0~Fn g , ȝ^KUv3 C@sDphDp7z;M*T! u."V)Ģ PtJZ@7ˋg$#ЂI|p#n/f|58S PA/ɂh"Cc%WDBg{">FAIUr4ql!ܰI&b)7E)I]&-.@5=AYPI#Ȥp%!R(iiY]&k23`UQfӈPTO2b)D31#n )"Ĭ\# ˒7iE`p3#4!$ a`P8@C@vpM)J14+灔=, qML& JS4/aVXbiL©p$0Eo`ײԩ"F>yʅfU"0jn<)^0A *&.5) AܢE'P $mu ඍQ LϨS1me,fė0ČES'@@݆FUVA Xt|Ҡ|@ЭU|D6tȿ.I K4.\8po[%YA&8 4$75v!o㗀g}Gw*x&||5H!S גxR7}^#= +O ,H7n=U7F2rKӁ=Pd~$-R%D!iт.HE F>;9Y=(|?=0QB'sH(KSsRTH7`B|nrRXԧ]2 rJ#D@и[:!LAs%Bm(%"1 2&7"XT8 +1ֈpHsCE a戎oK(2"zui( HҘ@+'я )b@B@   9"?#"En'*-LyI.ni@s rEA2']4A*QDY!Zєj*9)S9%Uy<ҕ!nawykY2/k8}Tyt 'vxɔz|~Y[Ug "qysY)ujE{ 'ay\P;A"!VYI$ћ=қ (q0%U ι(ę!yܙ9 'Yֱ) "(#i!9ٞAWD)GZpIs 'n)9ѡ'm ʡ q&X-aj YAAI),!.zE0 @j6!=٣?ڤiЀa,D`XczE!]je,EZId GkUja>9/v؁ژX/Z])E¨ZKיA8|yJ(h'DPq:M1 :9%H`GꘫZL}àʫAsJ$Ī!کڔ!ڋJ]:d%Cɍry|Zyaʯn LqlzZ4 [ E7k% qjE]E*%K( 1 "Oٖ01Mٕj~aQ V  )?WA{C Eˌj/!L RT{W:[˔];_{a;F՘j+i;0k+m*W[v{y+{+}+F+H{kl 񶌛0)+ϕ!kaZ2!GwIKG[_J!H=к˯{ϛ( ֻ᩽۽޻:XqLy)Yh9_Ȑq\ J~~IVv1zſ Ya lGyw׿|H$lry_z~'7+\ Fa 3\5,U&| bҿa! @_\ KYw7\i%;LV-Y٪کMګm=ѝr n-謦ب-- M & <ƽܖjٵ =%ۺZھ*˽ĝܓ=1v&ڝMڧ=M=}ݓͧ-؛V m%8̍ ۦ|P0-!~<}JqNs~j BB>vEE~*,X=] zL?L>FJ>9CN /+VX>L/;~?NLI.B i)`xQ!mr~]M<~zWЈP~~<^䨞km-Mux819ꨮNɞ쎞^KM4n֕*uK<~. . >鶍-V +N^P_`P>Ҹ]Z\_(/&_47Ʂ(j$@`:_C. @O 9~!)#/N]*Nϯ.?%0oHnD?j8Oe_l?KMoa~&SV%l _Eej?os.\Pu$~-ϢHh3>_O_ꉞo܌بW.Υ]zʿ̟1?@ $:~:9Gn??ǟߥԯHs%B d(9r4bPń5h  a!!)ȑKdZP͚t^OAӨ0aLYisQFDJDxA%RQFA,iJJ_*Y4aǫ9H|8l N$B$kkرe._GCMYIl|bȓ[μ9gRw>R5k6io;ߙuwŔ?\6~rb'DVCOn@ 7;c,JrJ p=nJ3?@g3S7|S8IP 30qd>6lA)$Dp 2P6zmET $UBW` #G-l7|> #PRD&yʗ *erʝ|K>0L1ɼc;΄S8_XR#T=F 5;VXa 1=K(w2B QuQY2L1ԇ;|0TfM&rO95a kS]5V_3YU[aՂCMW`bAYlTJͅ0pb`* [@C H c WX 0AbEy@5 ,*4QSWFa[Sxyh[pcb-5cUضC,+dS^cNfgeVF%6E%PVf7嚺6ܮw)UքeÀY;힃x[1<ЛS"I[c9k54[rXĉ/]%μӛ6v#9vٳ?1q@%%x;ÍE~rvBoC8^~vGK{`=L| 猇>t{eNtv_  `mxB 0Lb$9P~ f0t#FA/#B$ vݫ^J\Li4\I?aІ[)!eSh1IC$kd+ln`Eg9":d9E Qd56o|cEC>qxA ?))BGjd#%xY2'| @r2hze I:Rr\+2:匳Lc-mY\rlb qWEn+1GȀih ѨEs{[RB+j/g?OTgv,@G0gma?яaeOyrnPOQu!hK]R~LLB_Z v^`řqTG `["`&4'5,OfU1MzY=4aXC!ꄲkMjΚMhX-E+IZܳ.QzؗT&ܬMq:ֲm[S+[u6wH&VzD#JBZbjP3MdC}y@p[VmosJ& ǖ\@IU@GVM0t-Œ-(@! hj̵liƁVo@wQ}a/\UAf| tey'E~c K7,,A^֖쵏m\J_ Qk\< ` T,`#T$1a SpsoaX%͆[b,=ʋϸƞZ[cxK7,937aUѠcXDh.FoqhD@ыfthE#ZҊgo#L "luOETzh‘Lg /NO];|s"(浡'H[ؑ5iidZat6>݁P7T~j܋ mnyjWP5}}a;;$]i.VvwjjBm%#xDvs p?|(Z(v7o%-o7F4w;~ՂZ@QG\:'*DI+'];C0,]Io2tLC'ৱ*rdlA9p3ey+Xt;.DO}N;p+R;UL諫|I?ޅ. cg X3KpNxeԥz@Nwӱ /{#&X|Qx~A g'@%hP 3h~C~_M/}o{}m;Jx.0ۂ>q7I`Q@ dd x:+ AqBbSRhc3Ã=3耧=JC >#A4(A3$c`@Q8ocTI76CD |pB :Pc~ (=ٓЁ(cDcKL|x, @NLdF'?)BD/,Azk>844d89<7.=DMc^CC<'xDcDAEKDdDFhXD xcRd,Ppǂ 3PSE0X 4 ƫ?b4W~D 50(|h~410Fcx`4 bh#cHIX0|Gty} | P38S4,CVhjlȇ|L,ĦDX|J~gFbWHIH|I(8#0#@|8<+> @=~j#@37DHKD`&HHFMDP={DD@F ǏH<$0 G1 4PA(`N (P4@EGFXʯ\T4zɟ4#+8|{L4 ĭɤz->@DN4XJׄMXTIڴKM~E7EN4NdĂH N3ʯJP뤷DdK,8OcKFWD:͇#0м-e6Xȃ<2<`\`&SUiI6V`NE<`XE6Y PXXU<^`THɌ: U`1Vb=S6P&DShT- E0<==G?e:@KVǀDDUTFeQ.TEE OP JM ~,`IU0USuKLUmR\Ẁ xX[ ^R_[Vb `6{YLԁ 8X ,M,v`Z!HC8%zQhZH݃uUQ3!I0#ZL 8CJ,ȄC\M&PId\I@74YJ{Px(-a [HU_ؐY1%YR[e}٘MػE&͞m7Ё`84E8`V|ݢލ]UTUΡ]Wx-Z=iz7Ol[ μ[Ru[AUVYUe%O \̝_-TX4MƴJTAD~胦--Z k8C0n6HUh(U MQdPN((`Z`M f6h`;@ߣ _FլFA݁dN(r \=YB`}ʥ̽JTJJB.Z۵ ٽ`p2(U6`a,(2`DNd;Xd8`G;^܂J!>҉7$NVN؃rcM()n:b-beUrL\W8;4ɤ .:n`9>jH]U9DvFST2p6`60s`PixpHgp0gfm`/BmRP`Q./eM\)OXemeBxe-f_=؁]A岤di^dpcq}f pdGffvgFFv::DnP9-gvE^ngd!L-c6Ȁ`R(h}_Vⅆ[/C`C`niFvvuxd6&j0engT@dp_x-0?F!I~chFdHPLfp&iv>f%(~j@dvk5CPs(CϼKVhNhX5ۣ%kbV^fd6c&ifVN|_8!fflH^,pl%lg>%lvͮ8^ 6V}o>em)ꃆ he,bu\-Ђha~^eƀdVgjH!cE5G6W gflf~e>;6̓bVhWop׆(Wpne~W X`3 0bdOQdg,^q a=_=roTfTX`((_w򜮆E f,p1g"Ѓ2GZ,Z Z{jsr;_=s*@uVh]T\MG)_p[uY/W%&"(qS7Tu,hu!xkGm`\%冤ojHzgo(zWx6,Cdxǂ/g{u+],8|?~iPpk>`_7z`|7ȗ(yor˶l͗x,(o~l|=~I@PO0 #pW}֏ק/y;??z2F,h *h`!Ĉb"Ɔ!3``2dcX$ J*UQ2+,a&M@4{g1DoaJ{TkZ Bv=p փ^ Jό]ʕ1#KRAYdʖ~ۗ(ѝXT,CD])TZjtkׁŎX1Ċ DN˖-H[@Ik~Lǀ~AOT|qҥNJuj W/y؃g_H'XbEسkf{7޾WK|q䎗7wtPg]rKeg ` ( J`EFTtD}@%{^|Qdw Q"5蠂r3#7H9FUT`=2U5J`u@u]ԁ]=(!M."XXX`Zv!{'p*K6Hc-T;#BbU$WGRWj2dPFI#}^p*"Jl1 wmFTi|GB,f~ZæoR>y'%wAX*JSI3#|s/C r)IȠΤ,Xzi4Td+k2ҘRp' +ժd6+ [DG \ 1U {_ CFRxe&ĤZgА۟T8"fZ1 g¯ pE2RQmxE Zne12X9tɞ;K23aK "6^0[bBMtfFtJ4RoX-Xi[#u_3cH{*k0B]@GqT}7v2ppA n:?x 8xSE餳:חE يTa GT/ :c/p= d:>;(~X#S>Sm MX̗P3|=W*T x@ { b';y!Dy_>q0_8 msۜ'0 ^hG;JO,|6;yQ 2A &f!eK!TB ͸b3ЇLdBBf BlM%Q x#(G Q j܍a5 d4$e( d)"gx>lыuXF|wK(J8}#ؠ>1)ȣ0(dx$$_x!^C!M&)eQDT V.e,eiE" ^C_&Cd&s̔3M MnHleiCa7D|p*bZaǸ˹(Fxn $&bt@CH*dPHz7ᒏ*8AUDwC61F()xG JTH7$2+DKRΔMHX}.@Oӌ/CecQэ*ULuH*RTUWխeo]} VI(G1qZcik_F8uIeRŭIQ_Q:VAVb*ӀDcuIDV,kd"5nhMn A6 铐.^F E,nK%.V@erŴ܄4xQ;]TL3F$ U W-}/_ʾMtK^NXa,x G-ۤa 6ouS"5=(`2 3/B:VL僼ؾ5~X@r#9Y74Ѯ1L{dys2v_ ?1-l憠fQ ϹΑٲg0.}B3iN\g8ZsRIW~qb-YW5s]׾5-X?6v3r2`qشÇiS#NGLlmg6)/_ט }4C'b@}La վ7S4cMت`Ba?W؞u30 {.PÃ]pO+>1"Taq^yo|q0İt\ oulZ7F?z30l ? dx¢|(QDo7I*p@=f}lpCvOқRzձ.xb}`ov,pmG!m/;wM{խ>x|0|L8ЈF ?%_U9Ƹ%eh~1{ߟЇ~O՟ߧhpti=|']ή)4/$m_ܜ7ٟ-&_)_N5%AF!T R`ՀU~ߪZ_A`:__U@ _U! 1`%TB ;mtvstage_splash.jpg000077500000000000000000000051041263163240400407110ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDtd"!1AaQq"2RBb#r3C$!1AQa"q2BR ?63^cuٖP 2(r?ufQh.`dӯI[ mK2VFֶۤƿto[qK} -#}' &MYzfv*e 0,CcHXS([Lp k ǎDC iGmtV7xPRЋ ~=?;, #4q賓Ifnc#lm KWiN^.fɍp HjF#48@Y$kng3LZw >ی`7幞vL33m^W2 a`$Ob\ߕ7$u\W X ԧ4cR)ͪ14KMQ{`~>48SK=1mq{:pE5_\kҫ`Go >u"Xc[ SHt#cu_JMWASJ6ul}KeIq44?B#S_oֺ}|6FvC[kfRLB=^.H̢édqSlXv#JK7>ŝw1ץfC$Q]4>V U6ebw2}>e 32݁Q(P,pajmU} pQ98X xԤ?|/j^B/ FW/W F^%eƳbK5uYA՞$ukI@W$jb.egjuiYC 0DpQLC%4c--䠙(eG ԩKB=@ԩZ<5fbDEHPMOm\`_\as`__c[qiju%.7); !)1, G] UGPM \Yq gjsubkzs1I2V2n }i.~Z[LY]cQq`^nprxZ)~}J711<)HYR|wrRJqsmԔ 1 EU}{tuz&-*%(,(4RE9mM5mUIhVvh[B]joVvp{|z}~{ 4y}q淂zsƃ4̅woZėˡƧåѭƪԱDzдʷ҈ӺΑϞȡDz»¾ٽ½ɒ,( N:v(<|! LȱǏ 39ɓ%38`Bc|G6mYz}*]ʴӧPG8Ք+xS&M3k9VO*Qp4۷oL5`x@uBY9H0¤=aړx#KLˆ$ @]2oޤ&A}St2IY Jv(BTVg* :~LNœDQ0ya nM՟G?H [woߌ+W@B&Wm&(ǃAA*@ƇzIXGJ֍Hx џba."yBT.D!JV]a 2)~I*؇!2(%-!H' xe'P@ W6ͳXp!iWdz-aw>\]w߉+(e8&]B9RF$\J%}@V'q b{[I*Jʫ)hJ٤)).jʩgD `^2yz7n&i+* x-ljۚ K^l>/'/!:`vmv} *"B X |}hG"S;_# jIxJXh60lH`9]x^zg5@gv!|S.w9UR$1)KcBK!6$rl&29D#ՙNF2 x?vg*`S$됳,y.YCt,FX˶e3`LiAXΫ]ᅱi|ѡ62J27غp>5_}X0I,k@9F5X-i&i]y6:2 `#5 iGQVOh;-%qwVpGzr{\pk `7{ ]If6g|7Ao$&gCW܇:=3&n`/$yޢ^UNuL Jlخ$vۘ%~gիt}ڦcƮ9%_|}ߝ4:t.hy͑Fqݻ^tm1!wc-z-MD/ÛD:@a{FM=1GI,*(jwJ4FSz@vC.c)\DNɕ"S qʠ3qإٔWJc8">Zg.zn˩5`1q![4h8zj=>ìA18]jzσۊa:H9o==߁yj[5ZQxa]ïЫ*9yg** āi,ɱ!&2;nimble_scr2.gif000077500000000000000000000102211263163240400376650ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  *0"31#'7A#A E+.L8:dmHjm{fbDEHPMOm\`_\as`__c[qiju%.7);9( G] UGPM \Yq gjsubkzs1I2V2n }q9H.~Z[LY]cQq`^nprxZ)~}J711<)HYR|wrRJqsmԔ 1 4{JU}{tuz&-*%(,(8RE9mI4mUIhVvi[BoVvp{|z~}}~{]y]޷zsŁ2 ̅woZ{ėˡƧåѭƪԱDzдʷ҈ӺΑϞȡDz»¾ٽüΜ,( R"JC?t2jȱǏ`D0qɓ5H`Bc|M6mY!ş,JѣHqp%oʤ)sf͜7vωAA]V#N$ AT,̉@TFW,Yg)F]̸ǐ##2'H0'W;,Ve"T!Tb#Xeͻ7D , Р72pTv|ATi^h!رi>lַ= 'v?z`wO;QV+䡧!bq~<] B((^!qZu{GPPl[?y.Iq8X9#*~‘GTJV6cnbSTRQۖԸR54Dvrfy$bƖbܙ"5W] dɛtn `l8:!4za Z@6ņ 'KzٔfA[fʪ'C }pک:bf+5hue-t`ѥ8nu:}Imy(lTrhgkセ['ي!<,!z*|t`ʒzgm9_jsQ w(Xֆ/c4EU&r;{q5m4Z%n>wr$WRuNdv ތXSuLG+:3)ElvT*pv0FvC.nEW)]1/xmg;֘/8|+ycSJn騧~xڽP[nWʝ%o'7< D/Og}ͺ{~O~ D>/7a@N]r'G6@$}eHRDMg}|_1eTPq *; zn063 %SPAb8`L&D =@m!{EdS" BrQB`3)q8U"xD#&эK3NQG8~яLBf;1G/x3ǒ@dDi 8JQOjD``Vf2X#Y22MY E< f-D\K?A'>ae:dLbƑ؜e* (AI`3 MP3ٴYLAZV8Nv^Ӟ<6Y:O_D 0I(DkNĘ)`윞 HK9SD)pٛ X(,e)tF$2Ppi5qZP5:)Zf@"+&IЪN_dn85"~("ֆ<ԦFM+VJȭv")Pʊ6^ժh]k'з"q\ZXUxŧU]IX56+D C((+ZV!%jMZ6mkŭe [#Fw#gGf[ށ-MAސ@5p[ZV͠D>=jpF[7#wF⛑ӆwY!y͋M*qU!":p0Mz0"!.{B#lp8 ͬz7,`8-(Ba*Fl #WyiR k &JdqcJDlxݦ ů N9ȼE'6c9ZouMg:ȴ `5&|jnumk(|z(7 @ 1jk}:k(𻷷#sG$xl,JNx^Ŝ9"P7w|C >CZn@,ц/Ud |NQn [݆7q [+v[a\-w9&0pӡ\;?4znlq#*qԝv? D=~h޺Krܳ&{^ݘu/q[49W]6J7`R͡5iK$*<+ (;ctv"/OTs݋;Ȟ ƯY" jz/< gyk^#yL@곫ú˟Tr B}|~07Ȁ0  nt7tb'ov_(r@~ⶂaz٦#[e6x8hwa=vr2U2A~d\rdl6$HywM@&}w}']dSO%LbzQu%`dieHenh؃-je3(Fhm2X<肛Dw5jG}'?eXx>QsHtSÅeLFJJD֢KNH8h[eJHgՉz( Tx/G8(b8+ǘ( XT-m*XW wLP/ƨѨ81f$OԈQ(lS}ҌQ/|[Ǐ^xu82eI(b1(2h8W5)ti3o3DibN#C*TxY%HC, /=2}BNtIFx} @L@ۣTYVyXZ\ٕ])4>b>Ss20Njlٖnpj(S=vY=2З~9Yi;zE|y Ҕ9xЗLM GF,9y F7㙟 i69)DɚP|9FF4/1.2#%`F6㛯 i--ũ٩DلV"d&}U(y晚״Pҙ2Ԟ rX8gc8Up+㚧-Rb̈nG '"V󃺡*&/((7à_ğ:2>9l%y}⇉ġ.$|!4Q)3ӢE1yO_ӞʤtZVJoBLӛ{ʥɡ"`)k91u {uZ5zxv){-UfXs?\!p*1t2Ui)z˔楅!S^2HYyڪZ14b1}Uҩz;nimble_scr3.gif000077500000000000000000000105171263163240400376760ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  *0"31#'7A#A E+.L8:dmHjm{fbDEHPMOm\`_\as`__c[qiju%.7);9( G] UGPM \Yq gjsubkzs1I2V2n }q9H.~Z[LY]cQq`^nprxZ)~}J711<)HYR|wrRJqsmԔ 1 4{EU}{tuz&-*%(,(8RE9mI4mUIhVvh[BoVvp{|z}~{ya]޷zsƃ2̅woZėˡƧåѭƪԱDzдʷ҈ӺΑϞȡDz»¾ٽüΜ,( NH1" ȱǏ C2X<'L8M4h b< >8`D4ӧPJJ*TI}V"*|I()qQ"Oh6PjeR8rV\yvq/62]MBN ;ĄzxDyÖ_YI>f䒳ZN3nkACE/W|'@>O5z\wH : %,SM@~VRܣ0Zb;qٔEΗe09Fs1]좳fN虜09hݑhFMb7OӋ":wSe8)Nj'wpvЬ9)Q*t;QQdr)ueE:Q=J Fb0-iL!YOYgB:S'1}NxO s *6?ujlL\ M;ǘϲfYF.u@+=ѱ<*S录;kU5kbաnjdavXŚ-Bq)@vufezf6OH2[#ϖ,F{ڞ6)7Z6A*bKK\j/Xvzoִ-UkuƋ-Ry϶uUx3:]gJw O1S+UeC#jY #H #cf׹{A `NQX.oW\T Nq 4n 0H#\ڪ (V1܍nDugEJj8cvؙCm JFvoF%kx;f1rY<}}>WWfpf\N'He!9kb)􉿺@Кq)g@{s;JVRq8nO}n} w 0!C Gr١T7%~oMH7f;w4C<"/x%yczz1j㙠O ~6~}cn7c>@;dt\v.| v,OY(?«rA׬|0Op֧*P `Wvi{|Tpr` U z*) ~|@p!P6y8WZBRgzE4x!C;0tBXQGxEfFf]UWfZOH5h~gc^HsN8PdXhgf|gGІH{ghEg_pz}8"5rG_hbacȈJOj饆Q@X ` ~؉Z\5X_9؈s.O%XqZ[xneZq|%ob 0֘hQ C%8wHul!R{pxeHdTb؏tTVؑ}OF8 9yْ2~ 6y\8Ew@)9G 7IKeJo!=AIQHrDhZDIpaYwG6UVEɑɅxFzF>ԗ>D9YyI5LE E%4%D7`ٙ58482SM9 ٚ9 PQc@ӔГiK7jq?'>i@`Û┚͹pi=yiYԓIĩŝ䔚C ~ sja9;4Q`U$N6Fqї(dzP0 (I^6 $iY'ʢ??r2 f*Mȉ+8ZGM( A~0BD sFJ˩J$TW /k-Pwd_39jc /Qw@ڦQtGE䥸3 äb<g:Aڢ1zT 0Q شFɓ wPѪ q8t7 :Nyœ0]ԤQh%Z{:W#c櫼z+;}$٭BgjKJ?g 0#2#Rʄ[2=ӮZ:AᯬkmF5a;f5際 X V]{Yj 9Y64˚x@+[- Z8)Lk7r,k;nimble_splash.jpg000077500000000000000000000051441263163240400403310ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2BRr#3Sc!1AQqRa"2B#3 ?VsJ ̄k'L|l{T]CdHkwyw*u@FQllilT ]^d{Dqe^}drյ1GK$=^[,ZFlw I 7LFNk톧i[߸~R( (NWN[MmKbܰ=Rj7I]96#>xڙۘăI}SQFԌ1 zm{/$Jiavl8W ^v͋D/kI#3c6<%opXw^=rr@9RT8@A_1珗}w7B_WgQkس[HP~|ۅ^iPMtq\+>^hĎU =Ċ @7[IkqA|rSX@tY>i-YQl{0J4$ +gaR0QCӌuMfݧVNMÞ\HMCþnĪ"b.==]Z8R*3 aφU Пpe=c;lO>vʐmd`mƬCScGgYaBZAU7?QnEUwXcJ'nwa wu] I˸v'gǧscn#K#`lqn>tZGg`^܇41-M;OML6,.swU:zQˤ3o[iYemw17Di9Dj DLܷ|/]o!tܓO.VV d8~5 udk }lě^i/}u4aC/ c{0c9$F؎XTRߨˢ|WmuNJ mD637 qc4/u;tU%Ɗ?[r'WWvVtƐLm d/撛n;A?vt.z ϴ2`;_|uOz}]ˋۻ94Oxl]zm㊔"wq!u[24`쩗 xK}N7M6O_@t4~$g! ?gs(0uE(P*s 8NkJժ2 K@+l G XW::ZW*S p\J(x MЄV*h | X^tU]׾6 td'KZZūv5=,J3QZ43VlgK-,ANvYThJ -o;{:}+z(XP **\n3P|0JA [ [آ*P`Ԗ[,x흀;^BnwTE._ԥ%uiFR(xK 0q͂iŠ%lb?E-TPTw4VLX[Le)C @ `\Ԗ.x.eB0 MsLg:_a =d!G@x}㢪oP*5'+ Bees= u(Mհg=6 AWZUAÿ́&6Nl@f;Ў2l|RUز۬NNe}vsu~vc^hMuuXt8꽩M7s~i{<GN&O4Ur0gN 9r@IsvHOғA/P:̇,XϺַ{_2NhOŮNx{~tOx@3𐏼'O[ϼ7w h>@?}Gѻ} N/zпqw{ͻg@O~|~Kzկ~z|E=~}K|| Ww~|w{GzzWw7w~'} G$H2Pg}gzxW4 xg{2${~|ǂ+Ňz98|9|~|HP|}BX1>h|Iz%(xbx,,,g\'=|{v4`[81zeX~W2Ђ:()00~XwaXGZ8J{hwYh8z2`0@,`lja+k@Ѕ|7'W"|,X7;Wljh8)ø}ȁ|#~A؈hhhi0XȆ, I@@@$%8 0ɎHXvXgr(W,0 Ȑ XH+I萺@P?XXkȏG{[X}ׇ4@p-YY5y )=`  Жɍ؆f؈k($smX|ӧ}G+ ɍ(nI[ ?8, +@jy ĘCn8k 8+ 4I9yIx_Y5I9 ʣB:DZDzFJL4ڤB+ TTzXSXڢ)8b:dj^**`zeڦnVZʢrZvzDzS 0{*z:dZJ`ijqzZک*ʩ ڨ{ZJ FL j:zꪊ꩟*Zڪ*jʬʫJڭʭꪡJ::z׊ʮ*Ȫz۪ʬ*kۮJڭ 뚰ڪƊگ۰٪ {J:zګk˰+5{ *Z:{jʳ˳ʰK ZHJ ˴M+7 `z纲jک\۵i;6[튴z{G۷cP:3+۱;^;]+Qkۭ ;;{;ˮ{K{k`{[2k۹;; tȋk[ۼ;+kikkk[kK {KK[J+  ܿ ۵+;'\\k6|8&<,|lB=|@|$'l+LC\Ť)Ù;P1l[f|E «b3h|x|(ӫJ8|s|ƅÇZ&<,+ <Ȃɑ,əÎ|ȡȊ~ʣ<0lqs<ɛ\˯h<ʗˉƳLrL˜Ě<lˑ ɔɺ, ʹlƟLl˿L͓<Ϛ\˚|ϒW ʒ| w|\b| - }{Э,MϜ=%=+Î#<,}B}|қ Зl(\pL'MC ʓ|-]M-/ F[-C f,rn^]| yF],,؂-فgՐṕ@ ؙMٝ-B٣t=C a=ԐېM2}w]ڣ=ز۲۾ڰۘ<ȞռЎ=ػ֓m-ھ]ѝ݁M,=ύAʭMٜ-޳]-M޲-n"@mxߝ->^&`^-=*,0.-Nnn$"N1B>.8J8>۱ MV~MM^^>X@IHn\S.]"vo^vyQeq.syhr>z9nNN,>>­?Jzm>n9~ݚm粮g>)o"d~~~^聮x⓾Nc~N>A~.>;opthunderclap_scr2.gif000077500000000000000000000133221263163240400412740ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aRRJ:kkscZ{BΜkkRcZJs{k{J{sZZB{kΌ{:BJkńJkBBJR!)B:)J֌R{ńRk{BŵRk1BBŭ)s!):c{!csť!ksRc:R!Jc!))!Bc1BJ)Zs!1:Zk1RBssBRZRsc)k:JJ):B!!!))):Υc!1J޵Jks:B)JRť!Z{:J!:J1R1Rs!!)cZk1JZJZ!)):cJRZ)1BBR:JZ111Z{Rkk:RBcsBJc{s{Rs{!)11Zk:ckJ{1:JZk!c{Rcs)Rc1c{ZckZcs!JBJ!!)RZc:ZsBs!):!)cksŭ)JŌBsBRR!,!H*\ȰÇ#JHŋ3jܨpŋ bǑ"GXKb "%L4!،9K9zA /] ahѣ>eR&%2!j[bW9U$?}v-[p_%®߿ ́Yl1bƈeT}>y r Lig'h:%^Udɤ|{ WGƝ(~,jDPM$kM*i$Ii+F. Ml`_9^)&dpbeti'-mݡgw*\I[Š6nG[{f)QƄeȦ:: u\rI*무j뭸޺X0B!`Ak&\GfpVk-(2B,!fx(#צ.%fA A믵eŻbdA  D,Wlgq;(ǞjIߑ,rcL/l8CqDmup1XtEGG-C{\uS_L\w`-dmhlp-tmx|]߀.n'7G.WngwGE n騧ꬷǞnoc'7U1H[adQlA!Tdc2Gme1&;L tLoC>+D%V,SX-:'0|(8?*Gx`"L!H! B , $ԁb D ֯ pP`0I\0ОG8x[d_,8s'TcOPT>"tL$   `TA̤&7IGAы&1FDHT*z h Wb+;E!rc.ɀ`\%wLd"Ќ4IjZ4Anz 8Lm$:$ȁ! IDxt'>)D"sg*YBMB@І>SD'JQ ! XAPюzHGJҒÄ,ҖJ@.Lg Q]d #fڅ.!$PI`ըC%Ap.2MZ 8BSI*#p@jWIղ4 HL Q CP+HZ. zCUUG8@XդHb&'q6VGM,]zZ| jX^,]/ֺ]l^O²5*f1ZִFWs-jrc:E{TVȮt\- B+F`zLW9Xxm+ ~}L\}'L [J &x fp`'MW0pQj^\wRjPHN{'A<AO.w W9PȳMBЈBLRJ[Ҙ){ (RԚri!KE 5gMkD+ָVfdVג& ZuCf;ЎlHCzđƁU0AjNPunmmE2"4J`݀OS0T`p0k *@)^p\@hGp(/ylGc|W. 0e$4 wʇNB|>s\x!~E@ wx £ $*ص x=Nw7 '< FoXO}Mzӏ}w8eytu͋/xg.]jVAz waz/|G3}? 7|Ax8~ 0' ݗz~}W~z}(`&2P'Xywvp7"eOxY&N20wz݇}z/HxG|7{',X~8XGzNGvII-Pz׃r&w3}~N`.x8Z<2hzygy g6~ׂOzxz|w͇|hxxgȂ0޷zXrVrhBxGN8'~'wGwJuW~'?}xzh-,,Phz7zzw~ӧ zqxW?ЋABxgh)X؍yxzw犊Eh(+Xh'pa('-p-8ȑ)xh3؏ qRhh4y0P8ؓƸ,yXh?9XQ(`ׇyzwoȓG)`Y(8*@=:;z9CʣʤwQJuJYJwh3YT^zx*zJuZ:ʩ00z{ :?ʪʪ8:P :ʪZ Z`JZ@Zzj:꣰JFʬʭګZz:z: z ካ횯ڰʯj뫼j+zj [ ۰ڊ[jʱ5z(Z* Zг;۬/ʱKʫۭV 12Jۯ튵zڲ#;&:hУ:5j~Z[ ۯt˲ KmJs;oz,;=)+kjJ޺f{K kZY*+s;;+˰o m;Ի{ 4;{kj;qKۻ۰zK 񛸌˺*KLK j || ,|<|Z++ 찫52 <,ـ ٝ=ڤ֞-ٍ֧mlύڴMGִ۹=ջغۺةÝْղ -ܟƽҭܨ]] }J]ƭ}ީ c-۝< ߿ ބ]ϭߞ޵^P]ںM׫m]ᬝm>P.n1.4N-!^=0+B~7D~:N=2N).\+"-.b>M\:)^@WU?.xan}.G>insu~~1nC0*y.N^NN.N鞞w>z.꥞>>ꇾꫮ?.뵞~^~NyN~Ȟʾ~Yn.^znn萾C>^̎컮n;opthunderclap_scr3.gif000077500000000000000000000133041263163240400412750ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aRޔRJ:ZckkέBs{kkR{cZJJs{kZZB朽֭֌{s{:B{kJkR!Jń)Rk{BBJRJJk!)BŭB1BkRB:))skZŵR!ťJ:Rks:c{Rc1BJ!))!ccZBs1R)ZsBRZŌcs{)k):B:ZkΥ!Jc!1!):JJRs!Bc޵!!)JR{Jksť)!1Jc::):!!)!)1R111Z{1BR!:JΌsBBR:J:B)11RsRkkJRZ{s{!Z{1JZ:JZcZkBJcRcs1c{J{BRRBsJZcks:Zs1:!)!BsJBJބ!)!)1!):ZcsJZk!c{ŭ:ck1ZkBcsk)Rc!,H*\ȰÇ#JHŋ3jܨ bǑ"GX Rb@"%L4،9K9zA 0]`hѣ >eR"("B!jV[bʵW3UdAv-[pa%®߿ Y1Xbƈf>z rf L g':"^Ueɤ|{ W{GƟ(~F)e. !Q`Wf%Vb%\9hlp)tix矀*蠄j衈&袌6裐F*餔Vj饘f馜vi*ꨤjꩨꪬ꫰*무j뭸뮼+lk&6F+Vkfv+kn+o apqJ #zPG<W I1(챉(˻Ƞ){ 2KTL%Ĭ3{LX-D]t!8F,PG-T(C +Uw5@,m!6`{E;11oR"m0ބD/N8 .@(.E[_J)i<=S'>#8@WY!( _|!ꭧNJ&^xoAUTGGR;/䏟DgQ[lEbx%(?+HF|#>/DB dbzXE @BP܋GHA 0ax!Nq Bhp+da `1a HD|d [ȅB IBL"HE!h*Das7n 'I/pa},V$$ Hb t0D"-bB $X:l&d60YI. 8D8C6s ' H@c`C~ (@U MBP5kxJQt 0hE7юx($@ :G F2+L* R ? O9O:$ tڰOLDh J՘D5PH\XJVNa '8A Z5CB"Ⱥxͫ^׽bBm1D_Ś)$B tXm=Y:Z #60"a+bG{ش.j] HKbŬ:1pU l"X;Z6i ȵھ$0Ci} ܶAMcO0zxK mYƮ5uj;*Pͯ~Tb!K`2Ձ3غ'L ׾m[7V3 . kpKp:,ر.k̀ۘTtP0 u8+b蚁7&;PgpÏlB2L2RV|#4`[|BE>/ AA|#3H A02IK?[Ҙg @ӂR`%aV:Ӱuo,ӜB@ v@bN6@.4Mh(:A(n{pf3!5mmE#Mzo GiZ4w.O < MBr} 4x7z LpxE.Ϡ>4gNLh|"4\G@7 P xzGp͗;P:|5{ OA̙} Ӄn8}P  Jp羀 zÍrπ K!N;s'?"|_@8|a xw @ ^.ySom>{Ko3aeo >Ѕ{%Ï9P?{}%(? 8|9Ͽ/}}*0pKuKvgvl~}`yF}JrUghW}W}g}%x}聤|{yFxkVק}Wy&}ۧ (1}+Hwhx.(PX&8w3؀)fgEgyO#0/# D'gmx0H~'nhw֗ 8Ȇthr4hFvxsxXxEH}ׄ};jxHL Xq7pvZHJp؆hz(yhzEȃT8H,,0gkWxwF6} hh}HWH'؄}hhH/PEX(wg H<p>Gx`Th2/А#,`BHx+˸?ЋEJ8#sDD8IH"&̸H0&`/C9kh/nHzFІlgxiX(B J#H0,0,//)Xy9BɍසJxGrjq, J.yy)V&#P{iۈW˸( q(x9V&Bh(&I#U,`-V?)HihxNɐ9+@Uٌ ؆戀ٟ-!Hy9- ɜi8/˹ )i )i|(j*j8+6 Z)Jɢ /+J YH7ٝ *Tz#J:/LDhJM +zg DJvʤvZJgJhH* n <::Zb کک:* :ڪꩤz*jZzjȊ*ʪ Ѻ:њ*ʭZZ ׊ک 0j ʫʪ늭՚+گzj  +˰z ۪!˯#+ڱ0 . [2*24[${pH?˴(˰V{K`[+7;/_` c;"UOdk1 c H[/kK]n[f۷Lx[{r۷1۶q+H{˵{k6Ks;;KKK6;{˺뵧 p;۱{{H˹ {Eky[[˻Û» uP K_ڋ۽ ݛ\K۹K˺+ G;˻F˼|ʾ l[[̽ w[>Ç:@7|+ı[L|Ė+U<<ãku˯[`,[efՋoysyllb|u\8|zƌ,%{ 1Ȝ!nj ` ß<ȝ{ .,qƬ\ˬ ˶k˯̷,|̺ <̌Ѭǽ,|L͹<|МL l|\ <e\] =Ӝۼ  }!}m*"23:]8 3B.PFF|IEO}1T]>@=ZJ}<-^}[0pcIVp iH=YMt}kA}րeMց9{}ׄ-؀=ԇ֑IkՈifp9[؜Mڐ0k. ק-Ө;ڇfMڏ׸ێhۺ:ۢ}ܜ}ڻ۸Mg q]؋=-q-ؼmݎ]@ C]Mmܷ]=]\ݦnރڹ}M}֭~}}- 0M߅mʍ7'NF~H}Ԩ-m=V.Y~CX>7VJ.f$N]nXr$~CQn/#Na~ g.tw芾pv>⎞SN8d..^~^v~ݕ~~V`e꺾닞댾^_ȞʞTĮ ~>^헾QVmx賾;opthunderclap_splash.jpg000077500000000000000000000042041263163240400417270ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d"!1AQ"a2BRq#br3C!1AQa#" ?W,q' $(ZWpR!vM[Gr6EOA 㣪]/VוqNFՀx phSRsZB4sj!P年9fG)撃: $%8lA[pHVaҴ\wwk%U]7v'#%rL..i!4VB靓F\X̎Jjw,R4&i7_ތIF+^ȄMG0AX(cƮ8Vghp\"(쪘⚴dI$: J ĩ^t{)8gkFQE!wU;5WGv ]. { u{4+hZ8踺QDݺ:[S⡴۝p5j h4RA<0:+餑ҔDLFdu0S2W?))"TI7g!#cx^K)HՔ{!WМ+7s*nՆ"bo/V "ϳI+@k60VfUÃ87i+q:0؃AhmQA1 Q <$t؛jFv ¹j &Ŧg9P:!VݶorEZ.k{" \X,q2 <JFV+YyvQ\9 u48W-ؔ{w|Ú;iƈhy3+0vAZQʴeL;OGeq8> v21@<}ubN>(tV토b E":(7Mk@o#WBJLg캜GZ?Vi{Z_Ixӻ0h͈ [oOQĐqZW?s&rIWƉ*/A-Xh^}˃wQ!6<]?C@m1n=h&3$;TjuV6k=*_uOLlQ+V*j }k=?xHΐcsZꟻ%2~e p_4t䂷ӷs4Վ 8)n4194~K'GtZ ~tlp  on$v _i_%Hcw|V"F(Du昦sN{id{{k8PLBiv]"MQ$uAQ5=F(FBzMQKn8,JrFfJ@AH)b]GJWLOm\`_\bs`__c[qsuJijv&.47);@ G UGPM \Y} gisubkzq2N2V2n@}r.~2uZZLY]cQq`^nprxJu1{91b~}.7+'.ڬ)HYRzwrRPqmJڃRJb{ :74j AurzSSUjlz&-* %2,(zjЩI+x" 'QVY-ZP>25yZ/?'xν{ңQ VCåyx:`KN}~5d]4Eȁ%h *H@vThf^h~ZFpX("(tx vbZ0bz*@H'R"k%'X#}T]Pi!RfY%\bdi!c ZX!hțm>YDotuq'1홧I֠Cj衈&c裐F*餔^xǥf馜v駠*ꨤjꩨꪬ꫰nǬj뭸뮼+k&ފ̳F+Vkft뭷ۆ+[n>p+m>pPL2M>+-;SL미4G,Wl w1 ,"{<27,ɸ;hL8\<@-:m4@ o6PGmcXg\w`gͳd",Gln]t5x|߀.xCn8}7G.Wngw砇.褗n騧ꬷ.n/o'7G/Wog܏m/o>/ ,0wk `A@\P`(H ـ !/exШt}6@~3tح]*@P3no @C 2`.1aǸ>B1cHy56 P1 ]`GC2| EGtoܢ"YP bcH6d6I16" \I9B|`D"H&:rT..求K^җb/IbL1 _bePA^(2{)mz#@Hf86k'2)HA<}ڲDg@JpXf &)6P9ͩ;d|)17f ~H*N%ZĔ0pR*@ZeDM@z" ]WԠ +JzWB B؊: Bc'ZV*@ hGKҚvMzF6mf`f mkwގpw+Y^60[ַЍn+! d-+V7PzVMd+랶څb 6Tm~m; Rwh!.W0tX];Y{K#v7!glZ7ݑĎedL"6eK !WMh{Y2aB,eV4/رKN 0 :o[^Z7 a&X0TWB(`q Cb &hr&-0IVeB .XІ6DP ²G56p@kCr#-i!hҦb5-Y(ڱLéM~ l; ihj(k~phmYNzAЄ&q76XabBE=OVJn]jBn5Iq^p Nfsd!>Dl|i/AjP6I9{w ! Q`Asg~}gO'~afBχ$AO#z_:{ysA ѯ~Gt5O|w_wR,Я܇\:G{\s{" wWx{`|@wW}!W8x' ٷt'jzr-zP{`28 {0(@6td3X76Dw(o@BtWxc{p `ׄc;(o]؅:Xx\x:( w& jp^tO{RPאɐݰp 4cx2GK'hhX@Xl'r" 舔Gx /ݠ.S4@04hPdQ xk(sp`  R( @HȌGX{pͨ䘌LQp}!h\0jQ@ ЍH8 i8y樑ȑّ 0}&Y)$&' p{Г-- s9CI:IG-JIWNI 8TVOyIs ߇y1A)h1kDr-tٖjI&)d`nɗCwhyV| ɘ)I )ihڐp zיٚ9IɛɚY`iYٜ)i^0}MwΙXyw0 "pn꩞i 0|יM07F9 9ى) & zON Рͩͩxj) IGj9,jO@$j wHJ " 0zǜ7 Wj9Rz=Jg~dz!N@JzmRnMjjI@^,^ ^@OP:*]zv) 쩢zX^Z:F * I ګ;oysterbank_scr2.gif000077500000000000000000000101141263163240400406010ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  *"3&&#(:Ab#F,s E+.L8:dYZy{fAH)j]GJWLOm\`_\bs`__c[qsuJijv%.47);@ G UHGPM \Y} gisubkzq0K2V2n}r.~*uZZLY]cQr`^nprxJu1{91b~}/7+*-ڬ)HYRzwrRPrmJڃRJb{ :74j AszSSUjmz&-*%2-(*xUr ,e0̥.o 2 09K[S<2uIf 4IMb1y{fr e2yLg&;͉y^sL=y[!(^RG%B9e(.N@F  e G:gj^fJeӑ gMmS]R  2PM2lSLj.Цƒ`D,9խƒ K5VqUvzB/{YVdRRWZSH _ֻ5\j[ԟ%, |f+hhGKV PlGKᠳlgIִ8k ׷[*_8t+wmrֳ@hYf7u*qVֳޝ-wj6%H־6M.| /5 Nѽ Axg/a ' -nS,/\ͯľow زMrS `S6愄qڒ! D-gw_ڷůhG%| `3Yna(lX嬎w[Q9E8P3/9.@`V᳗w\C8P7c `™g tl (VB8 T`Z6l!4 O˗utAi.!2Zڼ.fM2\գƣg=k<뚴U 7M|ױ/mp@ȶf@o^П /jw:xg0l{oxp{zl!νoxl /!iHä(i\0B]EA W.f>k;y{ w6p;::PNt Ew>? (¬W /ic!GA溘6. 񪇶14@Ѕ.I?1MzT*؜ۺ(xݡO'?[s=wCzzڈ쵁yz/v-!o(\p=Oγ >ۏyBr]PQ=@Gϧ=?P3{fbPGJWLOmP`V\bs`__c[qsuJijv&.47);@ G UGPM \Y gisubhgmzq1I.X2n@}r.~0uZZLY]cQq`^nprxJu1{91b~}.7+*-ڬ)HYRzwrRPrmJڃRJb{ <94j AYirzRRUjrz&8-* %21+դoZߣt ui@-xQ9{G\Zx_rᡇX`AtqBfGw (*o|U%X#n5.r#9ȗ@wy*衤PF)'$O҈"H&Sdczi&ݙi)əPf|:Yu \ɚ(gJ]NE2أ&(*!J9z)jY$RRee#R-9*Fj"9+U ]*&[*଱F+Vkxdv+k覫+oyk,l' 7pD,Wlgs,$lC,20,#b8 ?OqH G <1Rth@b(hL.nB0:vqz_Gđ}cH"F:򑐌$'9(&73pܤ RғL)רVR,gyJZ\$`Id$ҘL&.yKd*%4IE2&MS g8IqL:vcx';)z<i,ē @MBYЁs8j, hD)ZO @w,HWZQa@i8eҚ3 .E'Ji,Ԧ@'8SviPJQ34}RjNH>'HJNV(8zxt^&u! !O [j!dax'^׾k ֪=\ǀQ⵮w^K`e Y.,X[WO%˺ֲe@4>H dxB֭̒cj){W!Dckp_ܾu Ǟ-9X `h[ulp}}-X`]Aյu{ ׾.pA >"ֻne9s=nz[ʁ vp\X2p PVgÙ-,`lWZYQd6̂1 @Y׿,!{*8%]XX5לٜN{I` r` "0jiy ܩwN}GWٟi I韍* :YzJPOС iɹ`x ٘(xw6xzW W:zPP9 "'<|w x6/Y{B{8_IO١> feupwX*V 0 ui < k EOژШ_ {_ڟ0&:9Zih_p* C Jmi*ګګ;oysterbank_splash.jpg000077500000000000000000000047761263163240400412560ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2#BRbr3S$!1AQa2"qB#R ?n lRƜ[5k#H'`Dw)S A#ByQ!H 89!kN]G#(β#H1$7az1h-LC#i;rXkC6vq}Cn[5I XU ,\ޓ!C~@ࡎ#և0;MHnT#ۍFZ`2Y8&{OvMU:Ag!yI_ًGXJsIK\N.ʎ`88䄐,8H2 F#Erl{Cv E=geU?P[Tp$鹥0j Ɩa;|wQRс<m>MpOjy7]RX%񗒣ܘV0X< )^_Ep[,1lo ;jL[EFº'c^Q9l,ƕLB:=\a&i:iӐڶOQl_5o& pHul6YL3Cb\M`."=a_ p{NϻH+kKMmLv:ޘ*CY*1\{A WZik;N󦎔Sw}_}gE CJic=hz?P>7]^B!;ZTQzC,RMz5'`cF@#&1s;&}u\MEl94^vZI40-;S$|FKr zcsdtm,ˮiKɜTniV.U* xpƴl|qjO=(ROTJ̟m8/Z7=W)f1^J)wTI#kƬp/&7cn-k.ĢqxW}nzm[EfHR),Gޢ-kY5mq+ 8h[7ZC 3uiw8cQM >ݽUg :GjZI8)C x5+؋݇`JB+F@<hɭ8}&]blmԗu!Dk{]'Gn߶.n`+"Ò-<> !`gNging+@9^z g22X1@l/deq! b}v,DMw\SIѵfߟV\V> NQnVU+GYguƨni<?Ꮨ.h  ~^\FwSRj̠ hǮ̑!cXK6ED; #S۴uV<6ԕGOV:kj_Hu}pps+Vg<;jZwlδ5_i5&4Nj,sP\`Jfm)nE&]+2"+1:*F.EwQ*a'-.BTgs {}Ks!2}!Nc"X"9N519sPݙ2hxTjS!ћ6Bf4U8x/zU;*OJ/GӇGN̐joۜ{ҡ2?UH#2VI^'hrPpXģH\<`1" $[l_n&Ux8*bcnv$rH@c0c9DytV9 ap0z~Ug;F8~3qf|1& 2\ٜ3 <}r‡6ܸ[i8n %TM j.@@ ZT V`.ތ@Nnqz)8Bg|?Su[a?h?y?#Y]\j>뢊U4Q=9tTƗ =˂oӢS"T E1xd{>4QVT`)D]QQE,r>ؔQE%papaninsquest_scr1.gif000077500000000000000000000203701263163240400413170ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a^Jso5 ] 5t HUm'7/s)y1uKBkBkB{!!)tR!,`"dihlp,Amx|pH R(5vl:ШtJZجv{%TV La{縹Ҧo2\jors^drk|wgivsdjuqxzhq^  5u gr   g  g m g  mϹȃq VIثE` C0pUe^,#&Xd~$GI{ p#GY9r ̿희/{FSӦDJ%ץѐł|>ρ΃ $ L_PۂzU3 r(L W؋1` Ppu,TG tܝ;"*Ј]ڊȻq,` QW\(0i W>-zlK,eDE%fģC)WII̶Ae$$<<*ґ$H&2 8 x[c CٿqS)Q*_CVҔ[! Iŭ֠bS`c:Qb,~Ό"4l7agzπs*/ʽgCOo63ܞRBy={N>PbH690 p L8@QnF9jQ%I)Zni쥯ɿvNu`E/x`E9TjP9˵5x)R*T&FjRVUbD*E/pTNl:0%Y͛"ujOmMjJ]fW 6p5Z>& DEr7vNkf@*ֲ].ڗ]S+QǡvһeV[vl-5@fS+\FqrsS04ftu7;Y7n0`;]avu]j.W“ O )nDwz畜|zy[ǭ/_eg//DVpֻ˘s~x,5? <56\ [,>썇<7йLL\&)0 /1[ᷮF¤P=D \O@Xy{YaV,'*n@ilc'so(G!gD#Z\7~'凷LXw6A 70ϒD!0`@um Sy%*_D0C/HU2iv]dnu3}յeSaӞTS1]6~7*z[!&[2ҳdZy{,V};Ac3/љBړHG^I:z$(J5ҋjsSoﵝa@Լ75/}>0E9X ֭.ժ>5Klӽ;]r=z^At+vNc>Q \vֳm^DwvmIvw\cm(5fI/sz&uq|u[Żb>w==/D/ZA·ęa_}=9/g5go R!y30$g:Uo x*LypDo P8{@ xC'|k#'f O`fyFIdȀg&xk}hxH^f`H(hւqh1ozho 0~6z&MjvWkI~G?E= W7}lKmdąK6lׅ[cmmkP6r&L GMn}WMxnzv#\yS('!o=5,5NO~w 8x7صy5;==`SdC(7xpU;[KX*6dUegvgVQ_uuC׋~Xu@G=_XochWȋsx_7=6{hS`ohowO wȇ68{#BK5uC 帏O(fscvI}# WoUQ`zyDy%z~vȎ]T'4 ESXF_bW{,i|8Cb8sq|30Y/|#L:JWQ}ԇ~\)W9 8l66s"'P,UoWt e(X88s]CopAPxtg9k5h=cY;4k]SQF5aPnhv1.08K׍7N>Q&7 pLNȂEH>kƉ7EsHl5oVT^QƝJ$aPS=ɗ`T@{^}HtY46y׵&zGZˆXI9`XPX `Eյh8(_ؘa#/bA%8Hi_^g- I^'D /B؟T18=rx׎-`X 6(ә;,E^zMX#Qb9:bFZEڨwW:|*nH+{4Y#}cC7PiPinc{~J:C6YQViB'OD F>F:v%U7_ B^њ ٪ IIKq05asI)3 wy tcY:H5հ MTmE;j)y4DG|3{;G55Yi|4&&Ʉijڄ 5+9.6*X:v: 붧KNZvk3)SN萸T4;TV(5P FL:#;jʏh+[Q`658fzՙi{B+7"\ˮ[v:@ 4iS28z:]5Qlf[nX_rk6 {0Tծzc1ʮЮ:le(';ZQO26cƫGIis5҆%n\ȍYMu*쵮Gfƴ5v;uuwdLjOdӟs2!/:'Cp,2?O?Q[P CԠ[:51FH[ӛr96S R(WFj5pugQTp>y0d˸I|?Ϳ(zXq0pwIgwF&esM6?S58;eeQ-LϷDpCnh@?|s?ZvvΘ;ȫym;լJ~ 稺u޿XC!ZU155T?8a3יЛ1s[ݼ d9ΌF͸LE-(Wgh(d ˀ¯+|ǀk]CE0=a:no;aԋٛVFEL= [ ֔pfw3hLn' кO|fcVfA+gF;ioTTi&=`5D|c ]jn`xɴGxS ?cpdN檾,ϺpOFꍌoqg+6Q]FLF= X*N[DPz-P8֎g'GFofԁYeoO" 0'j-t1xQ3M˺w[LxOhL`۴a Crmkl/M+p|mX$-/ CnT^8DLsnE/_nzETLtQ\퐁/yi-iɛz٣MdOlw]L}˽L%y)ItMIiwIEc4znX,yrdB/c~#:&g Xjr8we|2e%۝^}\X>{s'_M+SgzQ2#'] oۃڽSFp:SцR2)P*TG hKSoi>pSVu;*Fs FW:VU@VavL~Uͫ@J԰F Rvkg~ X֟Vm*3)S^'_Ƃbyђuh[Z\s\ًvV+OWԦEZX}eSR4w6=h]Wl*GǺTJD&2$NԦ,kK;%mh_a~&n_yOX?0!` /}]v@ yvqϝ*IW]iM*pK8=j XdH["W"Rr`a%r"-yx2pf*[Yǽ?E 'KM*!;Xϒg[f Hu,lb1\ж~rw7eV5ts|f"KoWS8`AV5ok]j-_<C><-it4!}<;σ~mylb!L=,YL׫>PsҞ={?>o 1|}Xd#D(<cd>GD7?1~d6<_Y>OMuqi!`*2`:B`*H%A>uNr` ?a`aK` ` ` `Pa aTa*2a~A;papaninsquest_scr2.gif000077500000000000000000000176751263163240400413360ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aN^f1J̬^؄, 5ts '7GUn/s)ꢙ2Bkkkz!!)uLJ!!,"dihlp,Emx|pH Z,vl:ШtJZجv{M  la{yЦo2\jors^drk|wgivsdjuqxzhq^ 5ugr  g  g m g  mϹȃqV0@Iث` C0pUe^,K&`d~$GI{ p#GY9r ̿희/ {FSӦDJ%} ɰT `jR1 &?A0N@:EWofG Df.}\s3]q?Fʴke&|+hҚ3tu]®pGU&JD5q&&_ݗ.1|.y-WsVJ5TEU;{㑕Ǿpe9e(+ *7Ie2^>&eYkM_@6gXRBƔT1I=Y~6 B:qRvNq"w~՞'GbZT#}8r56q9u;57X45cM'a.xvl8sz6ۼjME[ yvů8mU#<-gdlzMq5z/Z͇kg[&iLS wo&/ K+Ckv{xh#Lo-lJհ whO;ZhNn)EPoTr_~iBs.oyD-ѩS{.2 p-\ɬk\Wߕzx/l\7lB]ߤϨ ӹϸc9?Һu¾v9uou>d] gy%fcɋIc{~x]?_Ѓ td$ɯneF'k7po_Ȧ?~d,Q_П<~:5sn9z󟍮}#π~ ?5͖':EZ_g;9a^:mi_ԥx j EeUYJրYwUmU&lwWSĦm۴w%w*&x*,(a֖m7DR sTn:s<9̳oXVB#2wt霝9A;}8؉7i7'DEÙ-)e)7i FEzɷd 3@×dBVDo.zzYEu֢wu[3@wpWhp]$*ՠұMIy| :TY43:F62:9AKGJ i#jcV9c99939#>T931DfC|J8xq%PdCc@si}1z9Z7J9j :>)A:TsCٟ[Ez,txB8ɜ:㬵F5SEsFKƮ:FFXEU5hEc0$T8F)w{.{0Ge37Ai:f5ǰ#xJHh}N|H}^C7$di}#ّyJi@KdARh7PVڔشTMהMd}fvi)p@ Tir9GOp6XMJ8j ƀXcp>+v6)$}SR"58;?f`'ޙ:#Zy5"v('ZqFQGf{^S ït ~$ALWJ#A4g۲1 \x~G~LM>P;O=ȲNGp˖J,t?tϧٙ~: k^CBm$nCyͩlǿ́zISMXPTνWS)úGj|hS k僯+|Njp5|c5hLX0!wo+tjv P&}lؽ\e 翬 ;pg6&|85@&}/-LkTP ,TӌI[bG'ML !fX AY= @n#?}'-ST, CEkwA<pM\F-Pn >=PM[JWE g2189 vO$ꪮH-ù^V~X&K"Rlˢ3qy-^ @s^`~t}6m>ė=Zj6dL8&ܠJ\fc촣íf Vn 'أ9+,ɽ,d|bS ?g" CDN.EݾVtfn 0>_M4X | WN<5O 2\]=I#6;ьw&jX_D\~wI$>ᷖ t  65B]3{'IpLO)8z3oӵ ںmjnw8?МdOJѩϽ6Mm-y5;Gɏ]-f8̏INWT2ݵˏP6P)9:R.49ǸL/5<aezB)j :8F#Εv}çpd̅v#CG{h ( q40PŨ"rx \0"tn)pT6MVmmBξ"ީ)Y4b{*0q9#2wso|RaxV(aiB!^"aN= a|Yt٨bxc2#Zc?I$cg1bc#jqY^ie\e`HfrP2ŀh qΩeWYbo [P)G|2ڨBHϚŅ(q)ren j%>s/&(v٪q欤RAT晴r&dF_RˢGQZd4d޸Nyn撛Ko kvq 4 h(k'ppp&pxGlZ4l1 |qoLG|DP2>0]3\7㜳;ܳ?3)m-0CSS]Wc[sݵva4(;%DL;kCls]ur=7g1Htt4@{3޸Cy h+.w.ܡݹڦn駗o8.M㞻޻_#+BS_cs=$+3=%߾_M7~  hvcT ? C(S50iT\< S ѧ 0 c6!:Xd-#.:c! S(A"8E p}V DGPB!xЋJt"?9PEP|c(>#| (I?;RwT =*R}$Y8JD2},tx6I/$.R,bIP@E_Ҙc%02%25F^nRAJϛ|a8IJpϑ >k&2 J),&@C9@t}lfiJL=Sb30 IF9QtT$Do H)&s8[5Qdpz; @<::9G4S5=R:իnc=Z:׻^ub;nwfD;!;papaninsquest_scr3.gif000077500000000000000000000223631263163240400413250ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aH!baۅ)Fsa/1n HUm'7/s)1ZDow!!)ΝYsZkJ{۰!, dihlp,Emx|pH N&vl:ШtJZجv{= K{_?F ~{wOu, aßG?B&'?Qr :ݯ* @-pC@79,os`:x}g AX8 WXDϊ26nvkB @9XޕB[S2+$n{5TB0tAme҂h@"΢V !nyb'`R'%:ٹ{$F IϔuDN4/?6Ϗl$ EUvs%XGf@@jVC\2aJ_4'0ѵDtIu~j6OF uˆ.`NΞT] Nv Ң2( iqiEJ}>$vCS)wWo8Lk:Ә35K!$Kk AYV]G<)HR[&(ղZXaxL}8rbٙЮf&T.՘j yv{W軰yH u(;,*XTвVX&‡k]`; 5fe@j<)Mvt]Q+XnlúQU+vs*USZ{ΰeb^P;o_^o\y/p`;vՉ8#{8E]"/ 3lIJwⰄ oX/r㚍Jmㅣ[ϒS .g\Pژ屌LXl=c!52cNS#U<$ɦ s#+a27F3j2\Q 6Ja9ayOπ#⚖?lW 4kxv3IKrM%人pϥFUUwղuSY:Z=rcё7o.31:la+&_{ b7ƶ8Ikvdv7[9Ol176ynW^02:^ڹn+}[ہe@VUEowê+BC ;){M.ъWB-GX߅21U\nΡ+]J.'>ۥtdQ.t[8]Wv}7wS {zXt}r ObWmďp=v#=q=񓥌c-CyLgoLFa󥧱zћ~?+k0/|לʃ{w=[ң)݋kJhRFڛFX;O[.h+w!;ԲTP&V~GvgkVkHkbI K+k"; x˶~9Tsslҗl>m&W{TT&F:nsgmp6+6mRVotW]Մb'pL8%Q,e wWq^X7gEeO%o^t4rf}pCb$0_Pp2ZsutLW[%FA`;&~!\5e?t; ArQE^0e^4vvvaDV0=Ex`w}#fم/JޓuUD'yryx(B6aȍXx9:y:\FmCj(Ez-z'{|{]3@Aso'!7FL֎GH88dy9_8cgy\{c}i|5({)$%I?N$xk,%P|6;,̓@Jʵy@~T7(9~gP'Omm(Jq wjLSjLOfI8IPk)vpɀf3YE֕peTM$9kY~4yY(m&|l OuveQ#SDcIcfyI:#"0 e tpVnfiↃU@})NPt6Y5\Pvw ,P05ŕpvN)pIyɚI<@񙘨欄Xtu(*P8[NqK"GY`>*YI YIFB M.S;O@>9Y8$1R}Hs8ө90z9:UGpVȈx;؈@'ڈP=:4s(3]v\IW`Wj9jɡuCNvaQkv8sO=3;^G'ic*p: Z_^Em;%RushswYH j:8) Z8``Pf𳧿`zuDgifxjYblJ z8`bVx8k5d:: @w\jXZȭ0Fx ѓ'ZpSZWP9C+FʖZJ|zbdX ki~lEXx Fs#%KS z_RCo)98{i0up*6@+NKsHHH~GIgZXϳgY=9F-yJȒv:4mKaLdiaj8 [C:iKĭn+?MK|I!]٥gja7'o?[]s0 j'דxK`8. kXjiۃ} c sm=w`/fm&c:|:꛼뻛P kˑCHvT@CMGET㩻I(u [)ɋl5 [Uh @sJU≕9JUk+colc5ͻ fx R5@m멭rm<6<, JX"f:g|=iPI04w ФK  OQLM`ꡎꝮG뤾.j LҴ$pM&y>vx_Nf)eIeiyzTuzM3;^WAyւFjj>RlnNnNB^=&[?=![nm׌@9L꽎"5($E?Y#>qA[7 pߊC8$,:65OՂK8@TABYǎ- =]OI 'CҜC!<DA?% l{j<*Jiф j?9so]dhk?a-fVĴ;-K{˝d!G =0tP'NghLnO/FobB֩yYt.$D/MM;mLPU?uzNݫoGQZH48$[NJq; Ht(A T6#>(id6O,B{eF1rpj.9U1"R(M)Li !HꘞJHƖβ¢&T0>7CVLPP,DXRj[~tH J *Ɵ޷6^0Ci0A(q"D2@ya pp Pwެr@DR>[L I`PT@xC 28DLJڰQ& *22h-|VWV[w 6lw;K5L#*lRԪV <0Aŋљ CmvTM͓_NpB,43KŊɋIS648KVI&]e KM4L<1q4X:b(!nM8& 0t_~M)uitBG ȃ6cW!D*Db[8bRlLXTR>}Y!qΘM y٣ǝt:LW@ VN9 H@`A8^bcieO h& iIҡ*݋ p$cѲ^K3+=ֺ&H~_884ƨ4( rۓ2FηےhkP ` &]8|KQkUBPZ<21L&6 dgvVIgH<<.9EylsWQk) A8[0|"#<hLm`t2vk,v/,0p10r7/sKC5b6?Hv͈??O>w;cP@S9Coj87LdI2cSJ$::)1z?xWuZr9:o}IJ<xO>cXz -2Z;FLզt6bA*oS42 %&9h&8YtP. h=l0L^9)B0? lZP `!]DGJT%naҐ Rh, y(J=!EőԘ$&%o)0J% kˊ -5a!LH Ĉ4`'" @D0c\" Łꢎآx&@`yxYq`;#J2$8|1rFT 8@p8qS|RMT)4Ns,Y:1 f$ 8 @GC:Ғ4+mKc:ӚVuZHtF:ժ^5[W:ֲ5k=E`IAGHmE;ftM0c#;^6lɆ*)X-o;7˝mmcۛQD}lw;N`{1Pvn[+q'S #< _8C<8۽ F;<"9Kn<*O2..[ ` jn<:9{=Bz9"j#3 9Gwt7OzϥѨ73gB]\:;7?zЗw;%/,`+@oo{5vӧw{o[us޷ouS^ဉG]j__>GOK_ _` ]= ur`]I`I5 `Y I UVmZ Y>]!"ʞQ Ⱥ_ z1ᥕ R6!6GU)`]iᙠ!C|"(N)B"a+a,_Am[v]_LN)b)#(#U! b+ڞ4B6]N%u`15c9#C"+r9F`;Z$y%3^#?$`֝mb3RIL KBߙ%!Z.B]0 H&c(N^:b.߅Kb#Qb7n]'cI$2%Uud %)x(Y@]RS6%6n6"Z"&a'^ ZN_%JҞ5Zf4ZXZ[.6Vp>IXJNna*T545TC"9dFeR j*YX/V^8v$ ^h L7Zh"i Q&Y fQQ b@bodqaJ*)bjniz6z&_`e Jurig6`'cu§G!ơ'ס&AB_ނ(=ڟJ&'Af߆v(3"gUtd>抲hhhh5X^uci iZ`Zi )9iEiMZi] "ȶXi阒i院&ښ.jڡڌ ڜ"cҩViZ*Z5j 0jBjyZvfڒ^)"VZpꪲjjꬲ*N@لќj'\R"k+έ' 4kJRkZbkjrkz5ܷk빢kvk(kʫ ;papaninsquest_splash.jpg000077500000000000000000000075631263163240400417650ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDuckyAdobed##""'"!!"''.030.'>>AA>>AAAAAAAAAAAAAAA!!1!!$!!1>-''''->8;333;8AA>>AAAAAAAAAAAAAAAAAvd"!1AQa"2qRB#brCт3S$!1AQ"aq2RBb3#CS ?iR2zQaV<אk=ԊsG}%^Er,,l(AK^;ƋxE]ָ]>>v5J;-]vFYӞ[n 2~oҔ#m^4@Z=gfiЦG%KVr FEmXk]/{qPf^vK=;mύ[ce$nOW6Gl}8 ' h<( /wR#֓N4 ƱRƙ@d`MhYpP9 YWL/`sֹrw1+ɊT^f@acj/ =y5{ܰS؟w[}${=S*=g'Z~sU=ѕSeQddHHΚG é7M:2 dU[ܛq@V}s{3EUShEyFV $)SA**f*<Y\ž:j)OzApp4 \Z~u}bS-U?CTNÕ$ddA‡zMb:ȭ;ăӸ`@.!y$;uu: VyPeʱ 0ZU"+`am<3۳`,˓vt@UĂO+Sp^YĚ^wDQFv hL&]͍$-7֌l*d2F$Ղ/3{iвWQ޼e U-ܸWP!:#Lvau}ٹ} ԧ6\FtӟRLחdbGO^T1{gs*d+CcUoC wpYأ7,NW&pR\֚d 6fACk;R?0*p u4!Օ9tbʈ H0iB ů;M,d|bU?e[$EJ(֬/nPϷQr*]<ƵYZ/JYl.Fָn'r)u`4<h6ms1vSOkr~4Fzù^i6( B4ݵ&V< XΣ*1h5~"cLθ$},IUVLQ2̸q#SK#\[vQѵv3ʻՏ9%򅓘[.Xt‰L4f[]nq#Ik-}~W~Y[U {sxQN`>>ȽWcc_gC#`oݶwD΃>rY{~ND4o֫jEWv[p[^I,Pն|M=G i;-zV$MLtW*nO-xU$Fw6>r2koΐwtʊ46kCەt3l 7k.VƉR vP,otrC*ʷRȁݵηW17Z,~ߺHL`vf.D#s2;;/L!besN]PTHU<;ƆN=A bxEg vb B{5PeuW}OOTjO<蘅 Т Vr,yUirF}ڐTr5G[Uc[[Z֖,'[vQѽE;Kʠf7zfkeAqi6@?^uh( #.SWcz3f`r6s86*=Wxgdu {{|\wpp].4!Dqiu!dmNFË'MrAړhwU* \rvSHX mHm_bDwnblS| Guf`Q3Q:,|v@> w.f6q*XΟ6Z!+'ӷף'dU%lÍ~e o*w}UJ"{J.’ܼkKb<9/JFamxXQRφ֞6`~IW\>Rr q #uoaҲ7( QόT`MҮN96G&ݩFޥE%QD8{`,{MU;ݺDb X5vEH %mNq2+ʮ xoPBs8T\qhr+mn4J46kTł]6x `Bo{Wú XZMU(=?Q`x0xMl5QdZ4;y8)wTe!bvڛ^ȡT%mc@7.ہ}aҨ@ma4ne씃 Cƺ3%;Yzc&<;\_&y ae6cFAY{sM-eJߣDžsQl+q$xǷwnwb/dYWAt@ѸZR_NG<镟s3_Lm< 6ޗSpo3u\^J-2"7oþmOuбOK/Rgx^ٺ{'|0DsvSo:+Vס{¼Q3YƼj2#`p#ܛ}uHaczz[ӏwQ{ԩU?Օ[c29MǷ*8Q:~U*W6CUS3j*T+ravenscheese_scr1.gif000077500000000000000000000150261263163240400411010ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aRZZJscJkk)k{R!!1R!RZ!!)kkJk:Zk11J!JBcRRcc)c!s:Z!Z:RZJ!Z!Rs11BBkBΜ1111k:Zc{{J!1!c1JB{1ŜRcZ)ZBscR{Z1J!cs:s1{ZJ)Rc1k1Z!ΜcRBc)ks:sB1ccccc1111!1B!:B1cBcJs{1:BΜ11111c1c111ccc!,% #  "ʱ" #1 ړ ѫ "ĜΚjơ*VJ87H hY}(SDLjΛHAUf# #tY)}0Ҭ9%#RQK| Ey f))A E-H\5`!,qزmaD mK`E†x$cEl2Ɋ'ň3N;E剘3_CgjI[t՗']άzȐsV I2ZۤRajު0S~G~wʛc΂3ժZ4}rʿC_=p c^Yj-ZfHs%Xw!K>2$ 9_F4`/ @P!"t 9pzs& ! +2 &p 2VJh' k&{SJ 'aVk.KL; FؖkFiyt;\ B¼kコvs^uXXP@`' 7G,RW|5v;$l IL824!QpH'p tFDAN_|Xg=0A9W8ST E 4lp-tmôt(bQcMȜ w'+y71t6Bww!5wzƌA[C."DnI4N0TL_^ny\~f1DC@ S_w/ogicיG1P2IU !d4 "kA@j"=~ OTz P`9=Y/La“ݨؠDV)q"8@ H"Q:"](X: !2$ "@%z(D 1e|@fU p%+Dcؐ18#! zch 2 `LACADKMtGr(.pI%r>a|>P#/U+%YD pN@ i"r ft"U1*vZWj1!4s9`gd(0R2CC0 `D $ K@ri ()}^SMBQ9 a0q["0zJ (^){Ԟ& OxB3,`Lg䨦i=0! CF=aivT IjRCRZ%2N.'`M0KwKb!M \@T 0@!j@QTZ3`z 5 kX*jzƐҲqԭtͬI1| (YP`@Ќ`Wj:N"(%1*^B>QJs% ګH ],@QL#S!v $ 곭nMi5C 6ת*RI]?1%o"@N+ p'L [8 (Pxg-@\M4Lk=q4 W`,817nQ\&X1 M :g˷L#D^6[_BGH%5 WTL^n xF*3b#-Do^@&0-ai/܃쵱 ɹTEB86ӤdNҔ#|3ޔ+|$Wڞp息)֚TiaK^5v`ז:Fm ^,c@j@Go7c:7&(VHZMR/ Noh ǀH (omh.L?eg uS!+ دՄBM _M~{'h{P;SnJ2odkkI;@q0hvAf_\p:lP?鑅pc> K TxѵR4SE{5i>:qRJ\?e h0)M+;Ѭ[|zzA`!ܧ}[DXdP+8bJ.R1512N/jbGWaHndƆsjtIDNO47@rtZ(Y7 Ї~8i.Rpif7 (A҈)W!cqsh\RV$H&؉IwgvlP_gO" I >R hO`e'qX̧Tهs)q{S{"hO< u fhe@%Ww[}qdOp ( @R*M`7`]MmKXifƗ`[JUF|,1`s=3&#y3`Vy'6W`rbǐy{IF&hd;AXqLЋ70Ok[O_)Vw~x;YAJO As5P!BQ@~8T*Tnm ua7oxSug_yaO!'֘Es"ٖ!8 $X]@w9o(MwWǍ LBB ) qRؖX)t $YF0MgPj&ō WJƅXL8i<)$s[>Inu1 @O~6g$)-2}k\)!;% ,*!Yp585z9_R A9e`դP%8MYW!qO.dA"&'q!<ѐP&c~ԣA:C\m:ᨉNYJWWW#aX_&0*diV@Іԗ] RAH:|a"FKsTszxjAMRզA؜'j_0W2zX\*NGsIȪ|$2 R52:5A*xjuZʙJz0VMJ:W^IGW|pX28bXzS;d<3D@%+kG JusJ^iHLʱڕ'"H*8R<;d9}r`@UJ+R{ ;*:U;RI֔}m*RkKi n  乲ꯂ}з[e+[%UZKLG90Cn;A*c(L[e!2G_Kj'fK]A Hj˾jUVjșϋ\k kIs+ƽȘ'c[n-C;~3*'0[;sX˽Y%z,q9X|!+IJԡǻ{#Z†/2Q-3|AW|KTx uG̞y{As ŏ$ULWsɏ| mܦ?|8ܯGv/ O"X! e Je<ȃ;'z\M~W`(@e_2b<߸;+R[M"6MxG ?[Vh%+k*vg +՛(Ӄ[eW uysbj5򄤳R-Cxd;k~ԦJ$ʵ'ϋ}Jɛ̘AǞI9!\-|P$X\{ש 0 c(yԫ/C-G M]P:k |׽ʹxۑs^t~wsxr0 ]WӻN>/_7eɮ:'tn~雎~x0`PQ^c "$ɋB Nꡞ^>ϼ*~N.>hO9z ? }>  _আk䶣p6o)*_#"/BB@;P7?+?ܾ:oeJBQ@Vm֛L9O>!)bV|B՗ةw^  e[.x}瑒OhAݘ% a^zw)Rz@Fke/:>t3 >&ő5Ov{d d ['=>ay 4 ȏ;d*b%" #"   %"  #9"%%ۻ䌈煿"# "#""9V8nK"t#ZTP{10"'CHBsAlҝK0[4f^HB7O"$%á *ϢzhrB:\0VREZ5V2nEy)G&ʵZjPQ |(hs%t\Bugk drT \X;NOÅA.xF7w<9wμ'7` g8b+;+iCOb53QN]:G DōO||w9Bw=wm7ȁ z Y h`qrT"G8\/v k^h؝ J eHre@V%]}\MM_&c-2ؠk\>ck=IF)gT\N:[8wdViv3mi񩓜щ sn‰)X#%Ui!ʽ;KQJ)PNzr'ZΪZ)LѪQꈬ-Z+1%+mʂ2T*QBSb)MZ.;ravenscheese_scr2.gif000077500000000000000000000151221263163240400410770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aRZZJsJk)kc{R!!k1R!RZ!!)kkJk:Zk11J!JRcBcRc)c!s:Z!Z:RZZ!J!Rs11BBkBΜ1111:kZ{1{J!c1!ΌJcB{1RŜRcZ)ZBsc{Z1J!s:scJ)R1{Zc1k1Z!1ΜcRBc:sB)ks1ccc1B!11!1cBc:BJs{cc11:BΜ11111c1c11c1!,% #  "ʱ" # 0ړ ѫ "ĜΚ j֡*VJ87H hY}(KDLjΛHAUf# #tY)0Ҭ9%#J1AK| Ey f))A EG.H\5`3!,uزuq mK@E†x$En2 Ɋ'ň3N;E剘3_CgjI[t՗']άZsV I2ZۤRajު0S~G~wʛc΂3ժZ4}rʿC_=p c^Yj-ZfHs%Xw!K>2$J9_F4`/ @P!"tJ:pzs& ! +2 &p 2VJhL;8MA! w/A' 4a;1t0x7~;`3NP;ڛ ?o`%`c;)C]vz) ^cs \P GH(L C FC?u` L0@ T Dь@P\7G>!ZъECIZƹ >L"HDN.c[GJ2'Ȑ/7!IJ<$%JJ(Ԁ$D}8qL4>T$T  $ef%\-4/=D`@7!\) ?CԼT 8O~R,yH @68&?yt!‹T1 ;f=Ad2V Ŕ) tzEu|J oKR*=ӞZ !'@Ԣ Q:PErpJ0 -n ) 2E{VZ *jQmZѷ@xU3篓o( b`.:Vp3mFCX*u A\YD~ez" ;4Q-%(E3`Xld3|uGUe1џ5ed0( FKbCZJf$Vl@lP֊"ਦd lpVԢɍ/ Z^8,I|-xkAUAzpj,X|;k"@5FFEb }샂l<Ⱦ7,  "{Z9`E՛:Yί2h(z='l%Adm ?Xŝm`k浊C&Z튍|tj ,96MrRLʘ^j8sV ,Vܩ BwLَ,ũ^T? rmvM({s)d/A)L33S>ܶ@bS^c `2P3\yEIfL& &e lW0,2\/~ j@1pA%.)K \ڝbSȢ][B-gjAGQS@N޳Sعkb+OΞm^~OH pnsxXB ZF}.S/b]۵b1ȵu|(8 [ՋYs.w3Ƥ U_J~\)UuS6b?T@~VQ%RU[sN 9AhR3`uq1S1]'*ͷik SbS^Gx`S3a bRm[bG[^Bh}i&kց+k ftYޖO%@ D`ma!pen{A(8m$SLjY9y ;U|}]' CXH(Vq6|gPhӣ|rŁF8`~>ThN.Rш;0%}[aPDi wGoJDR4txEqu&ٶnO`[|vÐJR$Xr071acnj cpSEb"ֈ I Y8C[Ld$f_(hxuĸYwoutS{VmOQ@^Sf5`Xc@$%f[6`Xׁ0u Sp ( S$EkgRe"i$8P^O`^rmYk d(`J]|PԄ3A;4lI(PU`}GVmDeuvu'fQPNK& md 8@:$lS?k&>BVdXXaTIp 8qzwmSXq)'I)E[ e8b}yz:ЗYV<"I?|"mUzD ɖBqFAK:5}Ȃ  tc $! Y>:I1BPfJ)F@sT ol%FY\&ȟyP^ٟ@c*$s_dz JK0h9:Q0kAJ,22'h?ȅ)ʟVSÀd>>!;9 B#.`AJ  bȈQIh@G$L*Vy2" `*e>PLdzizF~Q&BzH ienyS\:eo ?0>ԀV7h%|a"mOJY꩟ʒWQũ^耺%kz#K.+v+A:y+*f`c۵2rZLa0r; Qڽ抮Ƹ;@;;O[LuOUaA Z@AMqn ʾv 8ƫ~gO;zB)2S\[#r̼'{w~[ˆzR-ձQmñ G*T=̊녀+kĻjoI$L614ԱK.U<Z\,RƬ%B@7\$;(t\Mp{xu{L<s*Cɛ沋쮉,r@b<;[Z3'[ qB%s8ljı+̱Hm&v&hZ`8˩<{)L؋x뇘[,@{%͌<^g ݌ οF ̜΀ Ĥ+l,hVx0T|Шٯܮ $ܼp]L Fq.>m3М(|z Yܼ2т|;zE|$+ Jx{xÙK8V SV !Z^һTܺ6,O}&*twX)m3L˄5v !5G&i腉u<d|ͼHЊq'³Y3,l):J١[L<_r ad,/@mg} 1`]<4*S:Tۘ`aB} pڽvu][]-ŋcuyq ^^MKm 1w n .p^Wp;P4p87<:4A>4PH>Hڭ5~Nv;?ܜ˫ U okn@6D~jl昙og>MsH~4X.=1#`4^y.>kvNg~5N~/u3$aM>D陞@N븎>>+L`md "$31 ^מٮڮ,*.鿮j@qEUl^nU%o&m 3T1u//N.`rh]JbJ -@>SBچ @]=O[??ݞp3ȋU؃`jk?ET_([|2h$XO?n&..쉖;-NY_'o))q6$B% 5OGo/!Uah˻omFoO.ɽKht|mgįW?ڿ8jhv5;o/\o"    %" " Ӹҳ#Ý %ϱֱ#6MҠC(Q“ƻ"{w D!B6JСACu`(qa͉VUjgOsXRAF8 c3NXaݘu*+}D:4P' Lێ[>C;U j9%PU izx|^# }l}9[LRAMi7wYPhٝ}}AEٜ}2$jĨ!JcX1Ƒ#ue /~yM4E"&d1;hHtpڀ1 a`pD > Q3w~yי{F7_}(0u]ahÂ'1XPې&ǔ{)җSפnGvւh("Lf aRt7W^\Y&`p[=uM!B'Oӑw?"(hxv腃2)n[|>.ՙ<3 tɈ&Vc3a]<7j""w 'vp+bWryI*|U,NkEEE! .5vuZd?U! vTZ;oFIUW7Uz;Q!\͹0( ;ravenscheese_scr3.gif000077500000000000000000000145631263163240400411100ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aRZZJsckk)kJ{R!!R!RZ!!cJk)kk:Zk11BcJ!J1RRc)c!s:Z!Z:RZRsJ!Z!11Μ1BBkBZk1{{J!c1:J!cŜRcZ)ZR111{Z11{Zs:sBscc1kJ!J)R1Z!Μcc:sBRBc11!B{1c1B!)ks11:B1Bccc11:B111Js{c11c111!, & $  ! ʱ! $  - ړ ѫ !ĜΚjơ*VL47H hY} &S`DLjΛHAUf# #tYI)}0Ҭ9٥$RQF| sy f))A E+J\5`3!,qز]1 mK AE†x$cCfd2 Ɋ'ň3N;yE剘3_PCgjI[t՗']άZsV I2ZۤRajު0S~G~wʛc3ժZ4}rʿC_=p c^Yj-ZfHs%Xw!KB_/$ 9_F4`/ PBP!"t 5pzsY& a +2 &p 2VJh` nGY[MF 9 MQ<$pA@r z^ 0HgwK? ̈"*0UPH*FqBV,.PB-#%uQD dJЗDDY P:B#$DC`20W(D)"9Z)Z Yϱ.@ZN($тH)z"  2eX"3TK ia#QPT I"e, HDQQ@ƹ *У 2YePD=ǚ*ͺX. @QR SM(2eR`D'u>褨F7Q*G|TjiL&! ( (@`38E(ʉFTܩ |JԢ439:| LROP`/ee0=ӮWEUԨhhL@i CrRXH38fv5 L:Q\JY^*Q:WJh%$;tBȥ5jq DD  8+` Eq. Xժ($ pt42U`ަD/hg%:؇ U4׹]խ T4Np׻h.Zz% "v*n}= @sl9dŬGL,O<(iJfmC5LV"y5ցun`HH4b O TsP:׿^.GNsmpaqX2ILܲebz9afn}Ѽb%ˀ5 |se7RMYi!e>>p;3;fMb}Vvj<JHH-/,be.|'Aimb k919f N+S^Rc|&`O}Ӷ 4g`s`5w7c:71(Vz ajX^2KӅNZ Bwphn vǐ5g)tst0t0 7,)L=rS흐fsU4Mӓ+;dۤv,mtd=XS@j|.7U~tَP3E_`:-Y}p@BR!~)ji }ctVڽ m(Dp֝ ,W \9yĨVE(SKyjBI_:=  b5(a>6?>?7]qr9fVVL%@ @jal{ig~aS2{d6u b6Rxf{Z7؂g2gW2d(S7''*Sg5FS-"q<jM_GGx evvkH@Ob4&ArƅXgs˔kg7 (Ar)W!cQmo1ʇm0Vp43Q^/Xe lUwv;rćdS{jOA;Z}6W(X\!}rP$p ( $AkgNtan"Ga\\G"|D0Љ3=3RYZ,N %N F{G&uA&0ቲS?B] wSWT}$Fp 8! jjPXQ)WUnfEGxXeh ߁P'&+5#"(,]'qI|f{08Ng0xt`͖t )!@MCB ) qdjX?kPakYiNkmW{Y[0Ďy$b4%dg```P~D6aGq~5DVet]VPhNR)!M% )!Vp 5 (Gz5`? A9څ94EAINf{lC%I*Sy2 )e9iN0~Qڕٞ8?)kYWw#Y&0*V<w9@SJw|a"L VpQ JG,H8u7%՟#K1<fN8Z|L=J4t頑Ėd G:hf4a`\'PL#kW<7r4,Vzqpjm쩞*iچiJ/hyU:J4^"!s^Ĩ. ZS3wEիrd9wIS|Y/8YS(e@1@@%+l&uʩlkE:nއɞE;ŭzRqG' Ztꊛگ::pҺJtNmJY9ۯ` (&\ \JyCt_p*qDQ/9i:AkfVLt*jT!aڶqZd$ޠ ]٦!9ɮ&k J4ǤrgcEڶ[:zB)A5OkfIȸj˶k$˱Zgjnʪ'bQ6=GJpjl{+ۯӪ{˹d風CK:O麯 ڱJ׸J˯q۹`B'WkAsо $̫ot[z[LlkfnZ jN0'][ lfk\otK",ZX<c'SFx 7R:۳S [4  &4 ,7>Hq!РŃy)Êƀ*DZƜt+mǔLMǘKڻtF}qAr41[.yUPXpi|˓/" R"`f<"Į]'iհÙiZI ͷ/4@|`|Orv p0:\pۨI0 .ZR2^ O vw^rhy˷\U<2}-3ꌞc&i %392! !yұV7}l"6ԓMȣ;C!͞: (EPR3Y7 ׯ@eŀ)kln}]24,PAr" 0~d`'dֈ2 όLr ѓM̜yy <ׄ9-`% ¹|=4-K?0γMٕ/' 牸-ְ5 aq ==.0]=0߶,}߷|=0=.~٭c |}3^".0!=,&4+l -=0q2$ڹM9M&^2>%P.-2R~M0.8Rޥi "$"éR.3N^sv^|{y 2^ߥ)F 8n\ɼ~t-NsN}P|.}R~˾˵P~>N]xuW[ɚSN緮^N3^d>RȎ~M.>noM8Fa?G >Nﮞ~B2|} ;B~fX*&e =.)Bi'\[}d".!Kx4X Kh64 /%= %skF-6YK! hd5F_]Ma_MsE |j?d.1^~HoygZ)3O?;4N\-z>˕N/O @l\ dLW|MT&P#/A2 xU^g`73x_/I'H!^yK5 &&!$!!$! ŤΔGչåƑئܥD,LG‘3(<]#)dݺvpđD/R… &zqa#()2{dL1e0nPDDʱ5o\8IVU%D#>2CaFŵ0v W'לZ2`lُ)Tob#߲}ttwnZ(bn9,&!‘8pZt)Z5DNr1gr7oގ,,lYS@MD~Y뾶?$St~55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d" !1A"Qaq2BR#br3 !1AQa"2Rq#B ?kl@!]3 ;c8An7"H\{%bk5=ޓ<4bTd $;P2>Ңڇ(fuOx~(?A.K~zJDapwj }F=+&`d)*;4Sٗb۱q7s^<7"=$EK84A@$48 7}[#hX,5A{n'\dҽa؂[H v26>x|dSEuc'!s ">bȅl4HY6,XSOrASA[Fm[GPEc+YyrIֺ,&}QG`M#Dͳu[v>?ދ]mgor|{UgJcLA!e2kQ)%'-QD,V CJ_ r5 }!rUXۋ$AeY)bŔb9) "聺.E][缹Rɔ$ 2r Ÿvy@0OZ}i@#(ЎyqȉTtE; GxmlrB*5[:X ڢ-"/K#::_ ,eUN Wi|؟ JIM;i2;{ 6'ZͶBadtɳ5HHc7fc,f zf" (Km)c ̞Zcnp!-4aCөne[J`|g"u;N~D$zpYVP\X%pCYs2-+m+4qiLv@2]B6[*31\\ųu2;yNx,7[/Y[Ev:[(OւY$^7.z%pԙ…aX&>!L@\1e٣KB8d8Ү 1[ ċ`Wnc!^0I/geF#uGOY:ecO/k(|"G8V@injm﮸Ǩ;N{vW8sւe-Uʫ#_PwLo5[TDbwp(Gp/|1Z:tJ Pnb{OJ|:[}#" N N iXm!٧ 馫/4.kcHMX#&m\YEn>ڢEZ$~)uvEo1,{9}u.ChƂp6RuI?iF҈qmb}9r}(*&2L '$w|3k:rJll"22Ov?AȞ&g@k/4FddwyW,\#d̫-[}-{Mum=g[zZϬ>K" S^t\T,h s/3`uK,S* \隷 vYߊD D*)9<+EAnoUR&qle=}:sNkHN7JMoS𽪖@$ [lӠ><*M+ij{}Erڀ;ێ- @0`;ufZ+2Q/L7?uAY˯颱j t=ݓc8W)}RIo,eo&*Gk{ \^QS2 'W(F2ȰŤ9ppmȰ. :4X6~vQmEZ_searoad_scr1.gif000077500000000000000000000140011263163240400400340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  *"38 9$$(:A'N0b E+.L8:dfU@ b@bib}9GJWMOm\`_\as`__c[qijv%.7);DG UGPMDZY gjsubkzs1I2V2nX m }ZZLY]cQq`^egjkjrmsrkrmuwvxrxZ~}7111dt(v=tVVJcgVLq)QHmx")2AyKq2]pH (6ޘ㎖TĠ4'!Y^XQ&GmL_WrX[l d3 6mB3u6e&K&9u(V>+CBЀ 0&Lw:ىwlV4`/<„) bǶhK.A$l%1֓![kbYqUgT_ƭ0UXHG*Nю]cB~ OF@f1^C]{@&IA}|$O1㙾@)JrzlԷ0XғAh Py̵̢)xZ/xΊ,"-)젠b*;am{_&zjI&;CUy"9k7,юShBt:A b߫hFG~S"yWvO!`Q&J['1ҥOPG51*!WxI6IgJgTs=h4 Uf Sꪮs+G&9`ɽPg)긘3 dMYe; b yƛO|GؒLy&:ƕs,ڳUA<;Sl5mibh;RPCn ;; ĭ\+ȓJ&T?']L`-@~Ewp2` 0txdsg}NJu{wZW/ g}"_>Tm-]>@W^cT,-/`:cy&(+'EqH֗9HVWr X.&M<\Ty7euhh*5^cݲŕPgfGTbs)dkMB(~05D>a=yC.9 ~( `.>Ҳwi;0=V$4EgQBs>piS9|C]qޱ>F)ELDFTK2X/Y@KD5'X1M'ޥ*rL\q_Sd$ *䉓3/Es nr${9:VVYhґ"A6,Q@PyxsBXYה:_DqCs;Zy9ʓ8<~=sM{%C{Ù-#*vgG詀89kcCUa>*TwHzAj{A*q B Q!j_^!!%AxNjTC<ʡe-5~6 CEg[0E>!p j ˰bYyjMJ(@SEɏX$é@q _4\$4Ck-[z+i8ҙTr$P-{)h욵 0JeޚgfqTe{Q{CsY@v^KHD[>\!Ȥ,:'zA:tE K-#r4B;9jcs˗-d-a[l`l@ /!0sM`Dt@M ?$;QnTm JK A 0jlIO{;\$^ "u(+dKK6fJ p;+~#:DWh XS+;?pzAxwp p~:TsJES YRuTd԰0XU 9 "\Dz4MjU @+=pЉ®;#lehEVc9XzzPL}kqT1 >JE[kxIw~b7 +wlecG̗8JICHa2caawtEN|MI@kH_za+&Vzxz6I\ !xѠwdT4ƶqI O:B_  MVfCWZpV]V HXQ[ 0hjeiɆsj8<10uny$JhekN6tSl VȵʑH1 wFؖ61%p^mb8s  Ϗl#m6RǟzAx[V`In}izUJ]'N4sQ p6+Pސ0{@*,*lp,pg!`i np~~->/H0t@:/ږ Yč0Pۂ0/@`'>Tsqs*Г9`S4AWmFn$a+!ptKOU7>!knHtWHwJW pIN+,cyP$m^3m儢`LLks=wmaWG pNQf~PbSx!*Rq΂ڗJ8>Hg拾觐Qa%Xڴ`["~'@6vl#܋.˾ .Pb!u^*Yg.Ndfzv5=퉍$~i.^2&s j~#k6㏖ZHN| FbG~$ypwdѩwB ݉=6O=#nĖgT>8w'~I oQ0ZD3.[ G7lQ \dF!wF|tLtNW|u=0Dsdhh0f`膸mKUvW-ُ̤tkeMXuEPy;FVf$EhKp V=`IEh󋛖?zYXn{Sf);searoad_scr2.gif000077500000000000000000000140041263163240400400400ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  *"33 9$$(:A'N0b E+.L8:dDsfV@ b@bib}9GJWMOm\`_\as`__c[qijv%.7);DG UGPMDZY gjsubkzs1I2V2nX m }ZZLY]cQq`^egjkjrmsrkrmuwvxrxZ~}7111}aar\ EuAc@b$ ',m4'˞@%iKD@EHi| DG?H_(#*ϡwƠjl8&:8~_!)b.p$} YW5qq (4uLJ|@B#^e@YB/p=S|@  >Q$>YHb$"DF߭=Z$2a*9e(`az9460s^7Jj$)9UD24(!^DȓH9M'e ӒCZ+=r>xc)m_ǒa$Q` wG̰!IYM nk1]iMp>iC~+(]'EOk7܀:QE-4Y:Wb}쩉5Kj5ĴCxöoP~Dcfkh\fD13\9š"˕TZh6tCM2}cG9-Kq0 g>bm#mIPp\/U~> ~zbTT}8^N"7oq_n斯 Hm,c*Ժ5äm6H;]Sl7dԤ痍f*a!Y*`_\VFy7pLGM>[ݺ㠣uIiEUչL)ʿ33ZY \Ul0]d}`_ݏ6b= I[2UCrL۴]qxT0#c ~c_WcN r}$&D'X޶cxK'[Z+NnC'Vխ\Źk>|Mټf'+.Uت4J6WXO)3'T>oR_kr ? p8eB}s;J8l{E׺qQARޢ]vf ~C$~v߄އ{7 AdF|E/|,FI FP\}pH DN1y;ea=LZ7l?ӀYw}X^(LNJ#8\F7d?:A/j=xht@L( >WȃYS6ELEl9"F/MQ>)bMI@>;'~"%6Y/ugtY v;8Q 2dYEXi q<(J !D1+L.%$Ttl9tb$g`FDN2!nq戓g5}&pG fiH%Fx8'L!2&%c.6v勔Mg6X EpGm!y r)vWژV蘎G-f!tԊWc1U?9uaxA(u &fH+^Eg ِrty(<3xБI.،We{]P$+fF](3,$/q  p _3YvdǏn"-p#HI_7xГdXc!S1 R<4+"tnE9V<>PW>)>rUN]QCR%77KH{ysR2ErZ C]("k jeZps铟|u*sbU9bntԇG*d5׈q2}֐]wR2;QcmiityvC W-co/ >iwng5^_3j!SRɤLПYWbv47u^6#ftG/a)p)6uƶ`~ 3F7 (lP Y~1ؐb85e`KC8duGx::&aȔi^FRqR1AqN*WWYp)3= |v)Mbu烈dC#ХP>Y>4o?glRVyu"; x(/Q *PbuP] uhSA(%s:o+tZ P z7+HCR+4@LzkDtB:K?$C[GMSjd3E4QDzRELEEZ-:QztqnN8G:gd\ڥ @h$/WthOƚ1CI'I9P`XRi5di0,װ.XSeLfu1f'[i+KLٟ-PGTcpt|* ;ݵNNJ+#k4'Aů̩tկ+ P~a- APզD0"|'c)Q+<#oWc~SGa q @NFUH91AzWXdG)V߳3Ÿi P {'zYwI1G9|e&fyq5/ ` { @67q;qE"ثg )mF(ƉUٻp  ī%XJY R-%"*Q PT?{ h{VR*ŋZӵ%]|5]\ п [I27ҕ8lFTfWe*пp  |%%Svxf9`v| ` ]l _u` *b7ť ZŅaLV\lzgA8K›ǡ࿔tvlDR&hKVCMV`a<<{ƶ|egvbPIfj'ωfk 0ʔl WrƔ Y~$ e!xA]P )zLV2hh9F]z$VLϤ̛&ɠF/␠(Q :>, MjJZG8fuf-‹Q2-5͖>Pn֤7SxmL 7q@mO-QMnFR ! #oq>ӛA0T)qoTRv!  LUKϥ @= ׃i?gb5L'0a`y$Gp#6Oۦq%8i01`,1+ar].w]t7>^97dZw gFn8(zebWl.yaxh ;>y+xxy*`!~#kb沧|EYC4??p[X6c >=.+ދl.9(+ q ~.+m@ >glQgn]qz0 X~xiz=ԐcQ~^zEe5[LǞo?/@qha nR03CIUclv]{lN\ʇ=0:)>CD]9z]@mlI7x]dLצх3$NĝhTˬG~lXn8f Gg$`χJqd7QڙLYwXfV@ b@bib}9GJWMOm\`_\aq`__c[qijv%.7);DG UGPMDZY gjsubkzs1I2V2nX m }ZZLY]cQq`^egjkjrmsrkrmuwvxrxZ~}7111Sg 2PĈ ?x`Ʌ(1"GlI2ԔISȜ yIeHr取"ΌL93HKZ98?rڕ=J UԩPLK.^*k]K=f#\DeSA2)̚}d)Cv4Gmm !McϮ}u (1: i9cj FW8\?j}TvSEw:kagsTeľ8qLj)V8q=ME&Qs=JɁxsaHi8p"5dy^IqBYqL0(&'Cpw\r DIJ4GsZH!XZfcq] @{/rC_§ [>8qL^;JfH71)KاIe=8lezwRg>ՃNIK(7zR$oBPVZjJ !*~f)V'AX)C )T 0$;ƵP9JQwB"r JFV)`Iq2lQګGPQkг5Mt'~&Vhg ; ޒa哶V AXGE5$Lfu4UkYf+[cS޲ RM>S)z6ԲF31k42A `@ XL>D{`c/hzh/fLnWicW[ݯ#o!2?sJy(TiCnYxe;y*@2B 7kz(%un 9Sz;Gw#3{7fR:'0s.5#LKS2 a o?BF#@n-k_HĢdaǠFōh @iU ղ- [ q%cQbq>t|)$|h[g0OOXDj)d㝸Fʐ["kySҹ`BD|T&ɗxR@HIC%qԚ8*%$R{bjIr $87ug&AA.D ;U$`XK2} 'iuz !?ok̏嘄ݒh4|ԠǴ u^KtPz+zND"yb!ث'8͸QBR0F i^V2v *lGEyuRtqt[RtsD& )J/q1S1wms|=Ln|AU7PIۢ;Iѵ@ vR*ZI%O:}t2jQhP9'.qt)ȩ=*'džM0FObY괭e=ȽBt#hT'~{%C^yi ~vEҭ[N8@%얀E>t1ZmK Lœ+eBʞ2Gf77IC@t%*xO5UqjҤ+r9m43ߨ$ js9ͣeԻM ď>ta[ZP S+ 'Ͳ4WI0؅.a˹<d|-i~G~B{ &?|\]Qa;+Jy-ڕ;-k(d" "l `&{\#Nː/+6~W×lg*d;n$0D,\&n5?a\yZٵmo4A&=i*o20]*GzViuԕY`qI^H9Ega3{4!C':lX;uؖL~-Xz)nWpËsw NYG>y/#YoMb$ ob\&8 4is{;@xZmqvσk}5?ށcI]@ $u QaV<Ƒ93d$89vk/.Ēõ$8>HuAZ]|=N@1{ OC:&Qp`@r%TP-9WG$^ a64W-›"JM:]]EERnuֵ Di0pQB{W>ZGK/sȀK`NM+zy=ۛ?_+{ލjIAϹl` Q`W7}RS~7ym3`$K 'ma;]}w Pxg8EW LO7EV=o>CB4#@}p  `x`c,$3vgqoG"nE%[pcm5=REx< i'#~LȄWPea,sJ T(`=@x %WBgJhJ`yIVDcT0}dyB ttq!`E4zH?h2 S@g׃ |؍? vdhqi؄ʨo/UjJ4]qU*g ccBU>Iv#C3X2]V'+ǁ׍~;څ~tbc^0@H}7v( 0>*IbNɖ*I*'OQ-F EX@x ' -3F5[JNz皥0LWgI .Jk> *6z7 xB39R@ziuT,ʠc)-;QzЁ 9|i|c7HkiljSe' X[ \z( *Ã;_tdskbKڢiZ=F=  `+ݩh4CH>-PJY >ˡ q* 3jX|wZO(@X@I 쪨iJbp!`>*ɡ?6rf` Ŧ)>:-<z-poxH:HDCH LVgI;!~ 3C3[\5/o +0nnIDRDHS} s j`i$E:ՐzLRcFFnQ[ T[P YtcG d[ P g jS)C:jK fJ(_|+~6 XV^T*H@[ ՐKqZ7vLeJjd iI&Q m9Ko! 0QJho5|{Ljpk&:tfI6+{/Ae4XfG;n]ٕvlj[M\i7iz?MdME&nFn6Ec+<հ D|5sd lNwѢ8}J c[ 7,QEELd[U{l>r,@ E cP 6+½t`@Gy9wN#H$œ,aKC#C;E34YS=E޴%SrE7\T 5U> bT%4UX*L'50ŲzeŽls0cG 02bOKpv{sEDwŞڢ0!aRibшCP=PO0pWeX!i}XW -Ĵdy2Ze-uYdy Y![+ !ox[SA[O&T50Ie;ԩ[ŧ½U_A0}ʕ#D0} '9]EIEWIT]#00^v:m-J-R5SuOΈX%^s_eU5rQ ]aYs$|a-`4PVcbVMa0KO&U%fr2,*fc!cc6;"ݵ%WcJ֜5dH$ޭCK6`&UԵlL{fJHf-fYߕUK&Hwvfy6GguUN EmTg-. h6? T?zgih>k⨜v !Riw' dC/DiY"hjjPSGj*XiQl `%yy FWPFk`k]lkfN~l. 0 * @BQ+jr`1ݪlѶy7Htn=`y,Q2+'1 }2 y0.>0!}ס{oz֣rWQֻ y "M~(jSOv@39gvn>>  A[*#&%exr"01GQ3齮~ yTߎ?`} K5w8ssUn  b!0 PW55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2R#rBbS$3!1AQaq2R"Bb3#S ?EIsΖNWYޚscoo7$īXEU *}'?p[V'84Z  68#:%cnf.Hf Eb.ɴcש؄⸎ʰXPM4m DOjdF~M1F55Z^j[7wdn?S11m0Vc{} I jHޥoHudשlb!"X4i{֥gf4г(u&'U@!g,f.ZUM˞A;VAb'H$N,sџ.miwp9KTQÈ fl a\LZF29=ƟCm8[Hjrm5>wgy97ݤ STq#|ZZ |W:mk i@2f)3<Rj^hS)1qqn1Kٚ:Zwu'ٲafr$*r2SҤ}FӤf3SΙo#]kSWL aErOD:w7 ~KLKI`Pk<]&՞.tzT& J-ts-8yOp,sN3M˖rK)Y)¬'\~Kֵk^ʜ!N4j"-;Kw5V9nuij;Ҙ Sz|+=7^>G-ۨuYX⋜TU~~Xքխ!}->$owwb:QId!GHÛ1'!@Bpƫ%#4x="9GtBwՁWeoVJl|x/xXMc0^FIf VKൡ:|7/+05,-P2Z1Q:=&>'ͩ|Wanf\XJ mi 1/:Tη{]5i{ mTb8y0SZn-t1? jH:7Z,QL0_3J^Ck&!0#sZ=(6cZF\9xZ=Dman”sY];9W,,ޙi=cZmpxi\Ah- j.3K;7'wq7U6tg j!ET;uT'۴5hj.v'8R$g5I@w*QDQt4j_:c:DNuHnjeJ[8rPm@}♊ɑ! Q7%;0fdMi$HNWpOMQQUBQQDW{3)y_Q(.Ԙpd_ATQN(searovers_scr1.gif000077500000000000000000000145101263163240400404340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  *("3)  #(:A"A/c E+.L8:dULZf{DsmGJWMOm\`_\br`__c[qefjfgxnpolqzsdmtjxuuz%.7); G UGPMD \Y gjsubkzs)R2V/iX m }ZZLY\dQq`^efjkjrmsrkrmvwvxrxE}1~}7111/!s\yٻK ]E a2[Թ@~3sJ[[WVU&o"c^G901$NkOĢ6 6,FaX*,lp{,zϳ_ xbOfIIKnr6agvR%bDD^Ĵ, nJ@1\N谷M)ÓZzEHHLFUnn3cFOg$k63rf~2X3lx7<g$W.X J[0Y#<I=̀A%bꅩ̟~6s/A0<<ӱZ*8yⳈDQ7U:T̘ XjՒ4̈́ VAVQ*uB&jT L{H )l qT9I;'a#Z)fx n\tr .̾K͙\S!ǓPPyWs# Ool-C!bJ{r"`Fs7 #P0=LV|tjDY^f d۶E,I1QVWmUK@SH':2m9,9!U[ x"PS}H/+)T2ëUc;B=ľ`ft⼾y2.>y,]55#*?ǟ(Y%Su4JC*8GI:J*q`mM d?)' bPr<0vy֥Kc' V]S5fHE2 `Sڬvo8ٞ ((m/t 3sB vs)EclP&.; %+n\E<KmOzkT-׾wQ?A D3 iZp0ټ=WCC@$ tn: iWB1HB:دT8x@yBT-b9߈ݧ5J Ͽ]LgIJ&/`tkE#Px|K*/ =¬`u~cXt+yc@큚m]'IN}pDʒdT+cN\̯TnuM!3Y\ Lobq4~V,"МbbȪYDQfyI5E`F8%tdTtOeQͅK3KSyERjAh6`.{3Rt;@V~g_9XC?57tbuc>fE@E}@pwsg*ErCl^4vElDlc77"XRvdEf(XH8kGs3fPUAH.'7#J4ZK96md6USK~5gAS0UQF3~mPsc tAx.xa/ґpp w9 P 7Im{t`Ahnٔӈ.#?[H*9 \im|p p0atyH_0W/_v4ieF0$i P `pIR9mxF4HLCI ɛٓ 514=YCCES6y@0y9p 6aC%` f|+*Y`9 J8=#COC$(OcEx0) +j铚ymLnS:\:FATc9y5.׌p@ y>Y9 )z3ӧcBc?#_Uh=Iu pP \Yɗx(ԙ?H4#e=ӳ?6>PjJ p Ird#DJ|8h>t@1C@pIʝ޹E Qrz{>A[CCZwאP DdO.E@4A$ ,dkԆ=64d9گiZ!4`4rk4um q6jɤɪH pxtR!Vа`pKC84p n}1 *qީ9ɤTJC%dV hp+.K4вkFDIWziKPS [٨[yL?kyK@ pkp { K `M[3?$\C0 lں`p ۵ K%p wPkwpTTr )8Th4wDPȏfZ 5l)p0\p$L%#VT|#ܾ̿ ;OCpNӻ8l@ ljLjmӰ;Jl`N+껿)HšFAQY{xxPƖh` 02„뫾! P ȤM(54pô .K۠(̾!|;'lV TPaUKy읊ܨ Ɏɢ\Vw `ɓVm5Jڬ[ 5̦d5` {m'wPP| oy̿5tJ&]͇74mzˣ`]6Ӣl0lLL [@d]sO.4T|<l ΃-}أΠMs[ŒwVL垆E_w6Hl[L=ƉНzP = QZs0 D軿Ceift@էm8D"5س^ZnNqf3_h(L]ȨMzݟ ҁ>ngG3 Бw)ʎEVǚe ~Z$F֘]+X+YŖ%U5jƶ͑lWl>ci~瀭= P㐀78. /(U]4  ݖ՞nHpznȔ8@q C ݋<ƈ~prc׊z'R V~2MnKr-D-gXbC'CmF o k9TCn^=XwgOsx7 ZNp^'r7JVvG xG,79B@H %K|ziH5O Eg/y}'.|c'yV{ws QMpuGz7|"A}|g}%9EDO`OoƷB7]XS3wF@ep hhgR\/=GQV'H r(hq9o/oTο(b 5bt) D60/E1Bd "a0!A## D$HaF4>42PHb4)\skX\4/_4aȔ$[HQAG9Tѧ%X(ʥ y`R{i@PӦզhruȕbZ&Z8ԒAsev:͑|BUPC†⽼wIA9쫐V 9kbGC]Jp-B X1A5,27ӝ9;apS=#34 ;searovers_scr2.gif000077500000000000000000000147311263163240400404420ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  *"3 )$#(:A!A1e E+.L);i1/`8:dfRL{q1GIVEGhHKrMQgMQuRLfPMvUWhUXv\`_\bs`__c[qggjfgxnpolqzsdmtjxuuz%.7); G UGPMD \X gjsubkzs,Q2V1lX m }ZZLY\cQq`^efjkirmsrkrmuwvxrxC}~}7111%dQ{1e՘v5"2XS(ZB_ܮV҇rTc(!іHf4E#[75\SMGcGS) Yk > vƎ| ArXB@`J p-P]"*nh;DA;TY,#\,Kp0AX+{av,_C(mɘV`K1(~,_W@9dh[@ I']g[d_ןos':b sWBC%JP Ad0v6ϑ2)j`m T!hxp IDg, sGPaMyp)SiG|Ӽ(|t35<82p[gLژ&с(?Ɲ΁nX#b;86y6@ҋ[ %qƢH} $XE:Vـ1DXƯRsrɌ)fJXjB:Z1*Y^m!S0ϸC)%djCrm{Kb]Ya5t7Mprd [YDL!¯y_$7g>z,ךR:=e**pbDPheaɒB*+]$@~%YCRɑqY%LaFֹBS, a3mG^<.! LITKUhY5c #Z%Re<Ӑ^f^Sc?vge0G(f5mj5Qb-*`T? d f":)9Hj27dq;<1pL!DŤ]v*pElDF~uR '<,#!:y!LرB/dHF3֦`A] cAr.!;N*:>5GՒҼ8hIH\o*0gyͥGe8+ "xc4|]0˸AQcila/Q&sDEL~-(DPH4Ob2;Ejz~ָh,ԥUVr[]]Vg\GlbnjUujYzFONqyTc Wvw8amk$)&n?t>tA Dy7싯 \uΤi.T sI3֖9ѲDN3?-<ܝ_Z߽9Q#xYM<ncѭqA9rvujP\A-Xa,|-\i~5-燌3] [ޫGt*҉:Kv|y^Qc CVƐE[U7uaPi[EU"7ve!X.$¹FvWj?y#tq 7A뎏_=,%# ^tzwj-Z+l=NDmmagձ&gC`jKzrPxF?ijÓTCW4k1%o q+5x}|ԆdbGIt4~cv@]iskuTS*q(^D7d'tC?ErRZj//Ie6Hͧi"rl%Y|E7USwbj=oFIA6<h4fO*:CBzcÅ2]F3)(,5HWmsv` ٰ08$ 19;R%{$fCWWkvy*0ДjwXPR)J'L:B[QO7`Y0 Xu9Z薢\E0\Ds_cv@f(2~f9&9 QI<:q%3^Z+}S6bsp<ٓ 93vJg|~49wl]!`@KݸKG# !c@Bg&Q`#@y9G4CAD9NmPB;(]9` Y8U<,:$KV9)|cZ c n1I`Pjz+0 s*xMHM:q9T2x@ x` Xʨ*Yi ّ$YwiRFOKfP`cZ( VУz@ `zJYs0=yF%ot{DƖ vV zP 곑ۻ0[:ɼ*EduiCJUJ0KD +!{cֺ99["QKE/.NjEQ1Uq?2YeJ[ L0 LXٕIIkXesSl A25h+pZs 0`˜szoju ^1A@I@>k:5*K9&i!9m  002IPER j fڨ Zx?ɞ8ZflX2p^j#Z(r+̻8lxбuy8"=ɦsT6z3<ϵ@G]R&l.< !+;5]ps%v7EiDAz_R^$_ .3r̷zл3<I` \ fMpˈ8ڪYWleqĸUmc33#[+ y@ NkvX"fu_b;;# ܻ[dZXpQv k>l"f(%ٖ0/lAC\=@8EμB#YXJUqC. ?q"`hJDENloӆ6e]fDLAA-34˯[M g16+$qt>!bC C4DP1ejn>qm$걎Zqgr$ZrZ8DQ$ Q浐?;cξZsJݏQ!n s'mMLNtGDN!Py`,]3 xiٌRge%ip'uum ?dyҪDE[$a,9b\!,H+SJADJMLalK^dߌyw{7Nހ+EtJW M)$-z#yetLLx?{px'T+QNpN˔mѴW Hzwazdc1 %:tϚ0{U8b`78&O5gК |)uhyJ۞Pe2QڔiS m5jS\9vtDjj\aϴ=u wGݨm1 庌 t̠l=3hb  ͮ=u؏mM7ꚯ[& YUS=أjώ'ɣֱWOC;ENo?宣j+!&ʥh13l=(7 q;0<ϳH0?gL_M KA+lf̬1 9l+Rs9wӑ3&\&;searovers_scr3.gif000077500000000000000000000141211263163240400404340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  *"3 )$#(:A!A -b E+.L8:dfRL{D{q1GJWEGhHKrMQgMQuRLfPMvUWhUXv\`_\bs`__c[qefjfgxnpolqzsdmtjxuuz%.7); G UGPMD \X gjsubkzs0K2V1lX m }ZZLY\cQq`^efjkirmsrkrmuwvxrxD}~}7111e:NuIzgBOp;0o7MRc;e.rI=Bܳ5jQŠu>{yk>el5嗁EUU;d%Yu[-_I&EHJAW(|hVHl;0QV]w!ŖnJ&!.D3&Ef]CiH"IΒL6)PRHE9 Rj.aYJd(|2ARυ2fg&dLY4$A%MINSJwY J)TySzHz=c=Gp%P}*GTA1{jMZi|R*lqR"n*kꑙ%)*ksmDX-vF'%Wid踬n WR.epi {a;V-u^Jz3դ>={h413/pG'"#Ĝ ߠ52(W"=x8+ G*dT9UM$ QX,⿚lqWD,`S*(6 ES`#Re`r$x Z]I׾5(:C! k(1\ZLBQ@$ %v:j$%#29OT#E$πs`׶b*HNQc2?96[ gF|h+'S *Z{ѼȭaݩBI~nm?o^A-Q:hPC"J;ˑ$*0 ttIϐ;L2"*OL+>-bRӐ_&Lp/d'Q*t),"f,ei=OejA3d:e<5K;k \>"t(2;FQAK¼%`Z;)9JB*25ʖld(`8Y>HAHUT.o88dF$ }jfV&M)̞3ƫɑ4V#a}Bkͨ[W>H^$P:<]&!$U3@EQ 1,K&yZ$Xj fO{HY!ӆ>5}YGn2>2@:p;BfdJ\i9wW;_if DVY Qg0ou1]NbL1ΤBv Y3 G&K e V1u"f@ĝv *-%WWHgiytYk1Vռ] ! :N3JYsg~9:6 d T2lNs8۹+j̘-OMe P#*ɯSG%_דndqs7C0lLSWD&A~&\[#<*0шytYMJ{EnۑF$C͟QDuT}u& XFpku~۝^0;iR~vF]B5NhUEXfOAҿU $3!XU[uo3ekB[ rC3=bğGesٖ6 -"!mp=LܿtBܲ-5juxu'k)ޔh-̵G-aQyYy o]'zӑ}^UVq{06Lwv%UrNYvCkm Iqu{SzQH "@'3 ŌXv[0Kn\}pAc^cgx M!(}z" H{GreqMgy5M aI09}H;L@5H~~ Z0T#}?Z9S }P}P59P ]<yyS1I7[P ' vL*:u["gOiM p 0p p'hUbׁnN "5[ov\i@r;s И7 lwxĉ8lwSq}wFoQXrCeh9a } k>5 iXSSHvx~sR/Sm8?T[P 6958wqĊ舿){IU;nzA7a # 9vH4=dw~ XSeD`3KF6m]a阏 }pŹ0EYS{6pN\iY0} ;:c'EUw*})O3;88J#;c#J9k9B3u:ySXȏ*:`A;s:C VK fʁV'$A9ФP LY҃mwXʤUII9# :ژpg InFHv z0vSbZuT'8_퉌29;6٣YB-IIip["SpIpJYPX3Eb4y腝PЪM܂Yqv"۴3Y8v`c gYcl١@Ʉkpm OoN3`ɹl vahz { 7U7RBEb s2uٳ@#\`ɘ%#xw[7QէƹY$d}{0D f;(:T̎JRS_ ۵IbɖjaLUXC}]36:fJ9W]liE8t]Jŕ$7@_LDž4VYlI;bfkJJ=_ ّ.ĨЛdq=tg̱PYv}m`{n޶a2#jG pg̖t-$Ƃia LWy;bR4="Xm}ƅiW=36aD J@tCLEJ {2V]vzσ3sd,]:tDHuImh]IeUf+f֜YhwVN-d1h7Ue-*9$S @&>mڦ%L7@]YWK&eL Ng,;90sԃ_!=0vMl|C(4U lT<UΎ4Wƿbntml 87n3==Sn߹tHn~g  wnȊ7@ŏpItpoEwu,$^ n@q#~q G!GF7puHھ9w'k\r57I23>m0@0$iu] sݞNtQzzIZu{fřv=vu(<npxR`&0 rw70 _fǃj4OOB*xKn{Tb^2xlh'1\_@̃{{WzF[Dm z?C? @wOW0 JhVG\ħ}=} +&aӃ(6}N3e~:ekT6כGn ?S x;UVXcE!S,t.UP3EU CofY9GH΃VCP6UzDxF9feMK&~녋7W ғjJ;searovers_splash.jpg000077500000000000000000000054771263163240400411050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2Rb#Br$4%ED !1AQq2"BRar#C ?CgxSTRr< cٺ7#Ʀ.# +9Iss" mdʨ1Nf. #S=½7e֟m{˯hkA8 q۹È+; 4kTu-ܽ5u9Nͧ4@ԀX{ @9+ ^,d'洐'~lyHx{i 4S)CBFoN5P1̤q҉g$$f>HS:=ge̢X״4ΛCyL6v/2JLG1*x.9{-툉͑dxvqT6onn-xSw2ZX0(HQF;Y*6ۨb祠-)'>  `3VM?tEuW*_jqwF-sIi6()/떆BG :ZQN8YJ@Hrﮆ&>I3Wq9r뇴r!U={KpҥpOj*x(FILI0 +R2[n~Oe:v/ {ymvs+?rHұv\q)Ot8"j_XUnwj6-=( ڃ1&9aT|\BfsUX-on.lx˸],j8c9[k2w~[{1RJnJVZm£+ AwA g }-;mlaiFWwF$ 1P9dhA ^ڳr˨\ۈLjbܱ4*b3Ƴ⧂ky8<乯jK:#Z>]i0-~wm#]+Иwv%t9YypsIc⺆ fBvO1PXd cpisNMաAխ4#.eI7=68֬kZBeUc|dP$5cԸ1vYkgp1Lmq V2IV=xiD>=CZWۥMG!'Y?@7sn_fa\u, "i[Zn3^Q\麊է%J1j%x"r qg< ) P򑤧m,*V((%h\G35puI$ksAmS.[D' wqf( Tx+Φt.zJ_  ku-%nt9QEssmT{>qQQՓ{slider_alpop_scr1.gif000077500000000000000000000272601263163240400411060ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a[nwwtnI[zȿCwC}ªtzĚ!,pH, F 841LˆfnͣSYUC\_ t NqqBU|gdd %`x|r#n%DToHYsnN ~B  Pq `ݾjq  m#MoEC lLz`VeEZ\ȐaBAaDO¢D q3R»Cb'!0z4`eܩO6[%#F\^zLI:Q`<3@ig1 p%HYg͆=;t"obΔ+DF )2j0`д|*V²T"qg7xp";^Zk_~|pDE^怖nȠEe {t3B95ʖXWLq&ZƆsŅ^\\ )id<1'2  /"(@"aJZ,8h`'v΃@j&z停` 2vca9)5#XѫdjXdD.,z됥Z(od]kQEģ{:+I,7P.pXEa0F`TaIR-\b!2$0&Љ@0 ma2y 8.H40Bp }dܼn )ST LOh-`!"f'` 7Siʔ:&.$=c qXJz4@;|0rbE|⹋hۨ D)82N(B#hP x J#J ̌\&p@~ G@1laڽe:෽ x$ZݛQ\ z¥+NC t JGR b=_I p_P8!omB4(/I!dh)B)0qjИ=,r &3bHh p  #"PaBË߉-(gU$P>EAĀ).KVwD` "p>$o+BQeH&Ӹ8\cg @.p>1/ d!w9IQ"TC2ऀbpGfACp(KVHP Rw (L9g926=b.L&`i.@63%@6sev. {@IaJu;l;%5ԽC_4J@Auk29MRƹQvm_m`27>M:` ;@Alj81~?PD$R Dvmʩy2r X4Pg aSO$hIN$tƢUD$r<.K5]H/Hf _8,Aд_u!eWs@z!(ҫ:>mcWxEfbX&3u41&|,V?['j-G)qo  x'j("H@21VX,sp_EN琀֊"AUp@J@ld-U&sXؘ]X=4 cJΘ>P<wREqqTnG>Pyg&+XP*е0DyqW\lqIixquj =}Vg(HNG܂zH"@ `BZ?0iLi؟T"E}"jE}竱we)^0 w7 ׼2"<[އUv T)Bnn(`x@w8GAM%py@y;r디3ԱN@:o\9%9SRgS~nA$Q-1Η7fL1ϮmA@ȹ-ʩ=`’SX( K@KsӜ1=shw & se8q X4@!QhQ7=2`q'T&Eͨ31h/%%  sxa;gy O 8xHY6l&`Pnחӽk>'.`҉q|qD$ &]&E: X%4UERVGvP.u#߳ BS$Sd8q PQ p1mT)@*/%|u$fpY|30 @'mUL'RVPEv>$6H } _ K8wdW (M;'pӥeCvihׄD6{'EE(d K(#}s. GhPk^PhPp=Bkv\PP$aE0IFeI{TEC9gʀp:CK' '/kD<'3w]tqREI_\\EY !PX? PPQh\3'i689u~ 9h8 D5 o((s\bCQP} [\EMnpRus4Vv&I[Je r1ēgucRg]BR˱H7t\Pe $ Y bH֊y#5VhDu<[ pg@KYkt5%@3< 6/0BFQlTicȈfvMUZcS,H5FEad٥gY'HA5U[Kd SBȔԴ=g V,g\{IT'DYUy yRS.&?>Y9M S 2~u(a  @w0c6pc6 8R4c Qyq?Yw#x UR,oBZՎcHXM#9Jy3(ㄯ" G3??p>ͤ jJtsH%H K #(}01'}k@% bՠ@RNx Ry,]_= Jj X5aLMj3zw7(Ӡy' eL q' '%{P5Q<j fVj7`fT"V Ԥ̒="8! P +f\b+ "$BA' 'vFݣ3iuUi{h;3R 7pW'gSBd%ycglgvVp˖blX#.sC+籚 $""pvfw6$S*cJd| |'* Z/ȲD<@R< |,2MLk!)wc,d:EK?ьz4%0$S*gAR{A1ٴ}0 w` BSeұ,(ܥM6ڟ -w *՝Q$ 0456#nPְ-u3\|s頑l>'Fj ɓ% ODy'v2Us   zq(@5 Q$0qi0{$]rPfn;;ӿLY1{D l@IPE s^Q .43.1ٵ f !6X̒V4]Y dLP0aL4҇ApKqP$z<෋m 4j #~BR*˙r  S1SP :@ȀKPZs04q,80N } `S07D$fBGu3?p {!4̈́SR m?晍#[MCP `q$5Ăq Qz20 K^LUэ)M2}:Mnwj iqq AP;Wb ǮP!la %M)OZ3 [6 pN00 B&vӴ{/!;!q(ϠXOYp(fP!01w n_2m2 1s@bf4n7U+yz@Pp$qF@lE5z62nO #p (fom}o{@@P ?%M-% Mf9,4F`D2 ϋC2Cа#QQQ!cNr2.!"h)pb$!"TjT鴉!cdbl)sA`r2AizR[9a@DJ pt VJ+ k?BȌPH ~PkoB$9@@ FX\xi"` 0 QZ0&䙅{I[89iA,%|!: 3LjD{I]d0I΅` f]DCQ 9.NM%$U57IbS"BDY6cH6*B FEPG@MmapUJVR530 ^L'ԭ?~`"jb(,"lasш Sh A241PYb@6MrX@[= Rkն# *0qj¶?j x$;ܷF 5ѵHN@nG Ey&-ZwQ>> bPnW5Fd"SG1AH:8|Z\mwpbUθNwpZ]/ S[OQQ*X:De*7 .j" _T&KYh(um0hś ůӡ'kH@^ 0msI0&7"8 BngT P <,`#YˆCm(^_|) #=D؀x>`1K n^ak{`G✮]q~,xЀ4M gƮudԫ A2YZp#R4!na 0H(D u$N-Y`g;r\7[>q hܜ9Ƹӏ`0_[ '"_fŽ;e,cxx)tO,YQ&@'io nV1"M@{-5c0Au bK/ҽ'>B k>afgc5R'kݤJX`RD <%Qz:|n6K e@ºMpI"H4`aB000غP/mҢ!oMfQHi)F8(J-N @RX\䰎c[F"nP`l}зd:G8~GFJbg0 X.l?.f+ !FcXAK kO*M pPptnv0_' Mk*A:1̋0N^|pQnQ`Ѽn&(.OLQ@pq:q ̱` tY $F6jJQc8vĬHm(!|AT2+dR#f*Rp q#xL`@LR%mQ% :$:#ȩH9R 9ܚI閭)()+*'5"0OAn) 0. +-R1.!Lr/s Nݘfg1oZ24#3(ɲk p9),Բ4-m245unVZ!3m3xj7/M1CF_k.:3D B tn X0K4$΀`q: B4` j<+>ILr1I0a3-^  #0I52A74;.JSP3 B#'(l" ?LD'nV:G4=F,@AT`0Iq+cnC>r Ab4 ڲ.C`8JFl) :E6 #. P>"írdM-3t ffۤX6#0OuL?Rŷ$ᩤ4~ KA'ȴE 1o(0 , +U)[ԧ`S4=+TJުWZ7XKf@Ku1s5)rUnS]rP]7kZ};4䵚EX^\kAE3W28!`t"QIKjZD0 %"Q_y .>)0b8cDAq^l-aiS  FQbr+ f \OԮ bQ>Kz&+v6 Ϣ `VP!ˢU)iDGô<V!_Kk]HL$E|&, x"iL@B7 dF ǶlmD.ޠm@q6noV,w@6 m FC+Vƃp "Tu6Yok\^o/dIsi RaC t6.&nF[ru72JNddqG1at7h.&pնtyi, V%Qz! a`A$(![@C( &  ywu1r> X#LV)a~NLX;v_Sov*Fvw|/%/ NUyvq:Yk/Lv"SAx@|Hη脛6f=sSo5]4Ru*xxuxSA?w Wd+lS+1' NG fcsI GE'@1|(?`H?gXÏ׃|qmXKd))h8ji|Of"j(b|UP`qRK4vM>.vLtՙ#wJ%iYu>Ycw.,L tGٝA) f8B(iiFnwUL@ˠ j:S،](`;8F94gJ>f,tQ5~:2C+4Xڠ؞-kc y 9} #~rFiyj_vVÚcҠ8cf @q15 "8N#2Md:4Ժ I|8 n=H2[3' Bk:s'hsA!0Fnwy~Z/x1 `A;]!&)&!F6lz;۲[Zs1pۓH$AǗp=pm[+{TrS18v{Xױ_G*(ý )KO隸gO{b! | Rf:]K|']I~،Ys` Be")->E"@فh.@0`;4_,0``Fc0> h=@Qw<#Ɖo1_ӻa_Ù٣oL FM 3<"%F"@4;:1B9R0υZTh0])HppD!&*.*y 8((@=Y^.DT(]elyq!ġZy!plmT029 HJ:8Tb*+H^i~V䙈P &>NYnt+$̅6% ' [,$ D/ڣ~S߶=Ac`5tI=r0R-HAC*Kqʲ̨@^Dg柱Rpa*Ej\˕@C/dAYlf*P7PQ&M*BOY(u) pkaDa,Hzp`hAD_ɀѨT^?1BU\)x]0ױ_Ҁ^аQ{ǫՖY&W`]'tՐg6`~XZ➩@)kg;[<7`dj6.6P r"+4:h ˩4 Gz`$%GOV0%l9!`x2lo:@sxHa/h%zl^:h"ZϵDF#pk|T(k tIRZ%( f`x<``P6E70Z@^s!#iG~9Y|qA@#*WdO =r9^3x Δ0x^ j,o0YI"` :UP79@A}ejff/G ~$,wXX L݃F# @ @ MUђ*e@HLkX8ZʹՋ}N;ի0G[g ,@B9A:*= !P K  zf`di= b9+IJJ.Iwtc+*F2o<74mUs-s$h9lF@:@@U<@( nmƞ9"`O>Ȕw'`np^I|_H*a*&ZX^'u:0(6ЂPj +>f] y1w^` ݃•V[zxbYMec9ʬI.ڹ0px fqY-Vi* 0O&##"fw3e=& n1`R*b&#BWRi&_l1ZtztVXga#2Jy\Vh0Ђ% 8tog"&e,`0b6'J2+37t 6Pb6Ga_Sf6vbdv$$eBE 2 㲂rvh L-``ZO\Q#{ Rh6b<`Xw1s XP3%Spk/F ,bW2nHeAz53 @)ly0wg~`= y <]T491PWʂ䠄6`w؉* : hbT1`F1uC&eY5n]U9Q;8(}uBp6< hXS=wC0׀J5Cճ5T`qs85BL7x4O${g5'vC2'Nu1gOY]7uBvx[EZmP(zWƨĀQPl0=.y6Y]*Abjn2;bHaHىJ)J$Oywg%)@5G5s%+ _!(=P!hlɖ9``U@\zLJ6d@og~p6"AWtg8^vØ'a-XI\% Ad&c) {39`E#$PlYlY)5adz7jSS$:]'zde *'โ٢#f HPeljb%::o[eb&;F*z 6ԠnS-8Ft&[W!+#0@n'>^ b+-jqMRF_k!}j<0KʖH J0PH) p_[ğ`0,`9lgwሢnʎp) c~~fWf|)_ %LW*zvu(Ѥw`)y+04i8nK6x4F&WsǦi\e匿+;t1Px"~P"膂׊$Qj ʠ F5xfeʍG12KN)ToڪznCtQi:!$ЦsjK:uK: zC kY@"$evT[d^'*/ "Ne!ЦRJ)S Uvf'@%ob:@>7 V*J\4D`)Ш:+QkUT;VL#mr*wh;$ll{7Ph:2ETWuvn!ɶ$Adw;y{˛~F83=n=)p2hq9k 3w& w)8s $ K!1lX=;;زgys =n) oTot@=O)p~IB 9`:":r1&#p3;T0`hyT'+~i)1p*S׻h ph5/5iUV,$ gZ0^3(m֑# # < ~bL7TM<002\1;J39âw8V\P`FmB*yPfYcOF%#Pi nf*~0Fǹ=7)O1H{T\ިe5x7ڭm5OM@uhV `ѭA*<e`0>j>tg &)d 77p=@-z%nܬ|j2 qM-m_l:~#zO~+N*PM ˕}mz*8k>j2# Aey{}^A!N[eQ yiZ Y-0 L>)P-Mr$fN.:7nJ5"g-_W\EUpU%Ufe*PbFdMҞǡ` 8e%O8nݴ Xr}?m`nTF{nZY:f՞;yL Ѕ08#?\/K>[V)wy.'5w˳ ˘CF Hu(̴1(x؉f|V'?Np, fFo:9\|[kyp_O?i8WT[Y>N FE[iWe~n+`mp;6OFj.7.?[Hav))d)dpI e* b0 ~^P*\r`Y"m6&ƆDZI1p`4^$.GT4U*~|RDSP LUMSWM `a!*L8tb2BBnB`ܐ)zzfR0aJ 5` !)-gf(3UZZF,wN|| T[]c10#r)q K"E I"iԐE@1E4 dNrs$ 9m’}x4hկOFtRH)0W1TTA/оh2#j4P- ˭HDŽ3H !ALB6A`yUazs(|(F|qU"6IGZX [n|K!\#kf zpߐ⭰aAn$pn@G "] M+ Wg(@>@IZ͞}"ˊ=m5 `f8 0x`b@ @0a9)bp!AsdGn *q;a}x1( b8„Ra7.<džz(fV#'K 0Ab6[,#I !D;1^ydiy =N8a$jYX @$Q7rg訅稔,  2/SVysdV]*k&``ggVU:0P 58b( F`K(]`@:Aagf ^C8.Z("@Ɔw\}D!)@e7`Ehsf{ijo) H`dվw?C+H̰$$8R TB2'J+ :(`KV%t_G1K*-PP 0I3p[('1 { F\*A<_k&Zp'7*1jB BR# =+ 6!4#ym \4uHZj")Vך:#_;K8 X!BhDl~X0 :E"dM()VVLd)z!'_Z.y4C9]X')0-5-ѫ8c"))@-AM`x==̑A`I\ʒɌBÔqb [Rd@4%'BZz⹸ npJ`EHVe/?AAF>;?U\WLyK0ݸ/*BkcCŲicj H1;~V/edJSXF BЅI H@D,SRõ4K:RE#ŠU!&!B]~"EKEX k&W '{Hf|(0`Z, O:t8WHFl%)'5'),fWEp -Wمy, ҐtS.H@oqn`AнW&HDmT6`a:*$ RiA%@> 0A"a#J+8%xvj%M%yKpW9GxGa p%H|9$G lh *@O7-d+L@HPFP"uTP@xRE lpO%66 V `NJ#] 9{@9\69|'%RJPYLіk+ƮAn!03 ͥC(5tRxDžg6HΠ)!e;UB/,v_ КLwhƚ1=d@)hvPQX=U)Ġ-qCu}³@Dk,bI+A =^^O}p8 V 2ȂBu(W@z-}K<;~J@)AVD}5ZoUL pP/k~J_ B+ͬ0 ,!'@nIY஍c "Hr[2HX `@ 6b`"? 1  OXlZ)8vxƤ ""Sk5 oVPL^`$`nԬ?FeV|H2Ȩ kG>K`+Sj0 PX"B`6`g.lc6Y* nۺEPoH+aDdM<П"'2h]X@ Rzq9h5&P"]$v-RNΤo_>k?M*8qIQ @&GpddxCs>Q f`Ks@'DMn1P.Ȱ0E qN{2)J R rpY2!."Rډ&zNn! / |$B*6rB0$rFdDDLLR"Dx2GHc/DeR$*RμD z, ,y%a!Y֘PBbF3]4&IVr5ߑ#2I#13804-/<xm( "#hn\d9pPf4I#KR5:_3, ίLXB҇sU2p9Ӽ,!>rlsP0lWp'&r8fFES5>CER6O[h?!E7&*g B &B)CC=4HpjDY@&'GXGsA4=,hFO@!3:})YHCHXt j28_TFC vq>eL4MY 7*ՈETs= 2u Tr4jJUoM9r tAim81BK]d(R$e`JMa?Y Sla$xKR1-W{AOh CuD4RtY?Ueu?HF(1#WV5BXO`Lu[85^S|fuJ5 .._=)`-K+EdU0qU}Qܵ" U7`RńV t[`XI.[Jr` l`v`vHaHoY7^aD?2IksA AguVN50h۩2KivڎU4;RR06*p6 T"$ԂG?#u6W H<=Q\!ԴbiSj~X \6CJ(C? Wjv,~M@eQ Sl.72]thMs_i5Ft ]5owG[uNv%na8O\~R'US<} WV``MV%ߞk" w{)?7 DAxӺZUxBwI,-7Aw}Whmd=w  7Ok)q~|ρJ6¶E-8}gBRq,tAvs֌hC!GؐT Do[ *3Mɑu*Tp@K'q q}?uRTl#FO`G%]~SDva`-zo1CeόxDx /hפ@vˌ86 yDwV,|9΄mcvsӟ86J.'bMW9`;r#c," h-3`\C|y@b9DOyC Y^บ/ӟ2Eg7 m?3P9 Sm~ԏ'rxYCtjڟ:gY9ܙM$Z9+ٿ8&Hp^(M  #K:gKQQ/Nہ@_i9gڿ@nhy9yzl@Frd:zW!Hq'WY=N+DG`gKm S!XT-z9N4yz9Z ۡ{'Z%Z^e#ԗCbVKc/ڰacZ问_vnZD''4cB{ylF-r`jDr䊻~#*_iͪP%yEUUiY@GĺP{^H`J[1e;)pc4\}!G2:ǛVSjJzlDiH F\;4qr->/ӝiL .gKӣyC\ @9u [ȠƔ ^qe; 2bP#K@@tK vBaB$~O>DO?TdY_E ]Di(`=Q^pmy^?3ϷlQߜdSh~B©x"b|R@)bTPLT jv9Lp%9nu  :(.26:2 ed0TUpta,i؜TQd`QteUNp`#@C Y_]hosw{Ӌߋ (p "LpA}a(q"Ŋ/Jq#7? #ɒ&OR$ʖjM6/t 7; naD5:T_њI="e*jRRkzL'4 U^fϢZ-[Nضb-\ER{m^t^#;4,㯊!dgu*9ew݌ٮfUjr桁Cj?(Fژy'_:4EN4e%7:8ԚENsSH".}5jҚo:t|>tqv 77 |1FHP>㷠F9ȥER%0s,DiOXVEHn'.s@k nݩw/~HЁA q2t,(D,jT"d['!ƌ& 3n DȑTdlظhְ[vmO!AC({U49!2ZV\3xزbΦum]PW' /3 0يm06qUEPh&xY6 sSR{W.ܫ@-Xm`; q#n2\,d91Ye͝$XQPtW| ]pwyՃ{U i`oԡe_GZ6a ^FX sȡ|1܄]E`Ct#!\b9p0qFȕ{-Е5c IA8T#]i5gER(Q> eSnW%hvS/\ѥ@9&ev&IfzBc'^R}XѠY(ar_BzxBґ" ؂P\sdv jE+ 6yBk놾B K_. ʖq8R;BVzk D:.\YG0gJ`L MREf-)H,r{?g>Arkgī y1ƯFa  #Q'Ơ,20& O?+,!BGKөmXP:8uUR qIVܢ,ިDo {z6"A~t|^{ F87rLi\3۪;q#p.埁Pg`p3zd7ຌ3 `3NU2hxrF8$Q6`H9Βp('P|b= "`t0q=KpqHE2(L WXjǣz`Jׂ(m t Ht 3 Nv[CXK$*P$xRSPfԀu2\BcZa` ^ )/h= h =Α@9(B+f8W,#JƍV$uq,_<\0FVg@_Ȁ-9DyHVR|b!&4D*pܑ#lY`$H O/2S 5ƚ;"x!-1oeU88 ht.PA|4E//܇YAp@8L 8s4Rz]Ӣٴ6qw⬀@)ss h;O'/jS ELKBWФQ# 'J3@R9 :jm4Ge+ضL`=\ybbK.oH1-Q;´JULQ_T ,U$Ih*(p1UE<ّ Jڀ)0zAun\] WYd]cWu|_CP V$qlP4r\Pc<"_3\)%"뙥 邘o.P}ptry&_eYT.s @IzjW+% .LMcs3pVuҥn@^ yy^iyo|+ c~/|1/ 0gDA+ci- sy)зUy37)PAD&s.@PSS<|wUfE"![g{;j `K(i;{K,120>ա12uQj=ɉ+`ܺٺk;ip 0xX5F r{kFK3WԝS# kIgۖz;PMa)#껾ھ40vG+k>븰 "G|>LY <$ {뼼ZF,E7%-syLPG`P|f,{8 , )l; >@|:C,E<bK\[ʧ;`PWŖW̉cE Qi<:FDN?-~Hp&Q{!Ǭ{<)Ë)-0  ',49 Jlii),qV ˼lLca cjl̵1LМ\q@ۼ\ ΦZu.9 Ђ[.~>K.~smdڟN3`梬N-" 3"N 1^zno[p ? ?0?5N)LΠۺ>SM^OO,q(|>#0:磪4ybj|oO) 6uwoy}؁ /f+^&ϛWч^0173S8Ҝ?D\(18E!R*3JF6ss3Ο y͌KFJ>  XRW p>Q HYR:;Ș\P粂8m^+ ˞O 67  +*&&PP0300""=#"NO32aboa   %),59G @Ԟѣ*P"B;.\@slH^J8tܤI׉^BZgpl.zI07PO;un/>n[o2Y9)7""ɂDg'( $ B` #d!{bidtT_u _uC&I.} ۽~8x'Yr;zR&K0-MFTŽ/0`m ZS>Ψgz@k~An$# 6m ;i*) N1 P!vN3% S *E5`! ʏ!pH p~DqaEv¹01P4R _G|ŮPa)$zBy$$}s3&׋HDJ9O1 %>xdRE\X'^tb-c[Rq(% z)`G@1G`LR dhjM1 lD89C/P=e`aTfpHSyh ‹W={@?O=AAqpF$4v mh Ĉ~`B(n6=<(hd^Tr8I?K>z,CczTstzEk?ҡ2%EmQ-T,՜8j1¨zaUUsGiM(&&)a0B*L" vūjjuJ/82 bK r lIX^o F%-F\žSZ.RjmXMLm |7í@..ʥ{x|_Hum,h, 52&Ţ_"ތ~( #y9 jA)@8g~]v(!N[z;j_yhP SU#IŖLHW#Svбx|3h9ˑzq ' =3蓞ė2Q:z3Y2(BpRu-spÜ1@3bه%3qU9 |Uƀ}^*5wʖ84VFmeRbJ.DΪQl>ϒNm^x$h5}^ XO .t@^cN4"cF©40+mjkm(ZD= @rܚn '`sHV∩E ?~V^ׯO5g $^ƃ7܏2^I!?ܻns:%A Ds{1b< u>K]c2cPM\gsn6du v lWz!8DoZo4~)ۖ<{d' jG~oR֭)˷ ^7O{^G/X7< DA7k&ͱqWL8|[vOp;!j.'3?(~,"ğ=9c~c㐏~ "5ҏ10nC /!/jE X ;h oAngr0g@( bpG? qaJCylu) ` ׬ - @ ? @ 0(D /R$` !Bf/ ,1p&@=a>@>[s4J@mL@CT*Y@)+WTAQ_ *?-_lCaDuVA`91TXm^9cg4jT GAC%vC}d-6- wt=ft2@ >ƚG %HLQ4wTMM۴'Tt)CDOPͫL I.3QQ=fr&_,_hI 4 R-jJ 0TGcTTgUUUWQUV+ f jUnr5-qW-WUhX !RHa_ 1ISUrU05\r\˵_ UP5C1]^&H^c a=_1X4]t#AˁE%S2a5Qb3erb'R=dad^ ={~)Kf\A4gK6g5U#heh iVcwHGVg_kj >Q6n6uuvOIW@m_sIݶTvnk66mbaTvtp%i9uW%m0+ mvqWvIA"wrI_+wP sLssL6M=Gtm7U*DxSu74Xc9[TkvMsgQWzwx3Xb x7{F@* oKTz?P&W{wС{#{+ |l|=.?NJK2t}XOWpv\sTIXM7!xX  |eln #X}6FXHwI5?8{CN[(nRxWA.gxq9`*e1؈qEs }e؉׷mlw`W2΋@hmWe5uX}e?"-W8`o/Vx2WB2DB{U<;8+'R*YEh@ TTzm#M" vD'd'ukylXgMe+P`6E4}d!ג6w_slwW eх tHY7'k9٩y;slider_alpop_splash.jpg000077500000000000000000000061451263163240400415420ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky !Adobed c''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!12%AC$!1AQa"q2#BRb3rႲCSd !1AQaq"B2R ႒# Bч3rҼgyɞ -\G2xT2i(yk!QD1?EwdɘAeŽ 8K?Rܘv2 s21w'\ "f~b,+_/02G"3My|4b qeB ]fBGr<Z&vQuX. LΓ?`b2K4B]Xr*/MzI=d5'OfA[S~nj`evMڸi[U Z,e.R6ZiW$ MtGȸ VUCf4M\[Չ]e` uW% c^0Ykd؟Xnol_JΉkk1O#Q^ԧkԽ[^WRrm,pa]8g^Ǿ;3niinɺYdu 0X%pXUFn㏠?(UEv)YSS];CP҄ZEM[šjmh1!t.H6Tb4ڲ Ng;O [Z2:08Mmͷ:˥?olcJxh\AF5n)ۖg7 p?ٵwj B,c 9 oiMb 5VTUr&29)Ajt;j81<{>&~?f!uUz/im* e>&[/@+ej*Qno0xA1QqY僄a֒y%z\3Oz`ڣtz?1bKಞQOe'DCL|1o!=v_Lfk~](IA.;@w Ph6NJ2H]YMK!enUP=\Lb.ΏY&zx/ "{c&0"'՜x>B rsǤ69d8'nJ>MK:/ ,5Y"łr?)g "m+j#<'@G*-Lk Ki DRbo,S}5>"zu "{ k̤o)xcMvPLZr׍iG D.m:7Mi:A L#yKh>aIɳFh<+hsLmnn^aM 5É]_+q~Ye?}YM}޸3F^c6.3j2{Mtax`=慥09nWn~W, o5/SfQʺw[V_NH_Kq㾅}K/mt.# #ԍLd]b1$>´:G]hy\fr-,_U@:LNDSD-HiSJ<RS9)幷9ʃ2>CYlѿ+ #Z:.;:Rړ [<Ȯff8[yq8yAT'kA?nѿٱwVkʨu2򮬙FA*ͱƒ=-)Ҟ5m=3Vw#c6Am5b:N=88jW6XվV>E\jc/ӯ>͗Ǎh~Wsmashingkick_scr1.gif000077500000000000000000000172201263163240400410770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a)Z1J潵s)scŭJεRRRkks{J)ޔkJ:1::ֵJZ:ﵥckk{1{kcss{J)!{1s:RcZ{JŔJkssZ1B1sRR::!):Z!ccc1!!!)!R:)!1c!B1ޔBZ!ֵk)k{1sZB!11)JZcJZń11sssZcZ)c)Bc{R!)k{RZZcc֜JB1ޜ11:1:B:sR:11!sBcc:{!1΄Z!11BBB:ZZ!,A(DB"(  daCD,xcH=! ! l!Å7%ȠE ,l@ÆD' `*[VX1F#D`P+׬ 2A dpʝ ׭\*V_B ѠaV1CdIǎ7D9YYΠA 3i4`D&]4/8ٴw o&w.Vh |CJt3;\%pļ5q =eʟ~g@AUWV]fY 5P ks:^;P՗`X"JF}T+4J" CgVg8phPG95En0lInA PU@U[bhtWvdЙ4FYx(mDBX #Bhޘ=ORK)elLY 嗂 rEJ]v!wׇ2᥅ezw9z2hQ9Ze)k(lH:lP[oV6cm 'hm!&j蝔,Vǭ9śB lI>[ق0EY5UBwjI;-ru 4``WFpZ:gWg Lcv%+`~(S:gB2-B,Pw'p.ݻJ{봸g_2:AJKTI`g|pIC+ u>L} ^U.Mf,X/4稲Ya]y.D*&Ҏ'r4ҊJ-5H#Z y8)`eݰ[Rn%XV_ej-֘%Oxev+@MhèېYpsK΁tCd&ڹZ5IMZ":Tb#( T}| BDMEBsse=1, RFؔ"ESQ X4|5{ HIڗ/H R)n||h­gM!  3yBC@QiM5Eft*t*֍^x b]F>RYuv\w?Jb㯘=HiCJF^Aku_[8t4ueJުj~Y֌ɴvZSt|)IJ,i,ab7b+1™ay|SG:)x)]+%Ff6paQl6@`M7=pdIM~5p< jZ]@ZC59Q2$Hcc!m$$vzΎ٭ 07̜H.f뙾cܺ+MeA@°s\ ^J4AsX0;NAױ v55@-6@[0׾~@0rMl\SX Ts( TA”ka P'ϊ%86o@`d)616, 8)6eQWm ]ݜX*Vu b# 2@w-2 z,w=^/Wu() rz9>[#_^0hIJkSPo' pC-uzK W9\ArZ(A2Op7- ,z S:͗ƌ$C*Ŵ3Z r@ehtq'W[E)Wq2"fY`n!'B'>H:xO9U^n-^i~ݢ~Aviz'={=wi-e~vQz'9!9i2_|y%k00y- |w&rr`h&- s%XWg"wW-4'F4W{F@5yX>FKK#tPwrU~RP` Zo|57lDQljGt#{iG6W'*}jms#XG L'ux+4`ng\`g"`p!f&iww}N^WqKZgq$V{ח],EsxS94Z G$@ B,-p62 # oy-s8( '<.$s=3'80g``@z*h_E pǐ'ȅ__cr;_%Hw 6SB P?@@^HZxibOW#N9 @ 0((sZ?<]^a >v7w 6\]dA^1! p `B}.B0}X9P3B +K0}OxI5 90YƑ`0|RM1-!@-P.Л?*;I=?>x}F+@LlL_4A?(ǩٝə/S晞Y;q9'3ٛ}Xp}y}/I ßț. *pzZ*С. * *j, Z2-`/z8* )BʛڛBC*H빤M* TZTVj:ZʥU^J'&`cgʥkڥa*y9.`QjYv!)} txʛzZ*zj*zP Z*@'PRZz Jc+J%efZꪯ a9P%i$Jz꬚Zz9iz:Ժ:*¹]9%0I[J9Iگ:wI[J[ {[y˰ pkʰ{ +˯z/ʲ([&K˱ @P)@kC'[{L 9R;%۴XZ\۵^`b;dkphjl۶npr;s p x|۷~;[mkwK۸붊{p; P;|{{{{j˹s;˻[w뻴kkʅw;[{pڻ۽;m;k;盽ѻ;vgKۿp00P\ [g{<\||5,7@P@@ *Aй0 |CP@50&,"l@1] @ = ,lJKLL$lh ,$AD=<*m.hj|7p;-#_]kgke-kmmim6}kvm&pk т֡Ԃ}T`^^`TkԊ-:mՓ[}B} -i{ o۱hFP]FƭԣM5}NJ|UKٹռ p@-Lm>p>F j>`S  ͎}\׹xTnbj@Tpވ=Lc Um]^@MPnԊ}Ep E`=&1>%lm9=ٍەMDU<@} 胍CkXMOނ]4M]{ip# S%j !$lZ1@`J`m۝lyΕ@$a"%uA9zVj%1ɍ8eǍ@9q,YzAAzU"cH`LbL=rؑ~[5 `t#?oҨXH9 t;J(c ڵ ȏ42umZx8@" Ï(3 A?8r2 #~!&:/~[ ϖs>Rd:"(Ѐ@x $.* .t `[o"bC)+iX`43 k:*ʬ"$1)~B dJ+;s#n FD4T9 *+,ICb6)U?SMHNNE34*MXcKRQ9[ɒRԒ̬Tb]&#stZ^ӔXna``T&3%8eэ$`5Y=- Uߒs<=y1oOoob*rWtOUXX#6&8Oݓb~)~wt Y3V]ofwYr#69Χp x`Np17f]'6V3wf:)&fVaEc8i.m]y Fc7cFY뭗 "6n_ ׻6W<_8SPd>qnB1x ⩏-P֓pNGxk?~aug;pex噷ԘuaYvᯁ𭃸L>P:ԝ B/P_tJy,PB9zNTନ0Sї47)=9R-&ENwOzsKufMю4gNJM'56&QR5M*SͺLbhT֨^#}@+KTkY״2S[S:Zm-(eW,)eQˆZ cO~]fQZT=gmQֶV-AykΘv-1SK^ensiKJnu{]2nw;smashingkick_scr2.gif000077500000000000000000000173761263163240400411140ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a)ZJ潵1޵s)scŭJεRRRkks{J)ޔkJ:1::ֵJZ:ﵥckk{1{kcss{J)!{1s:RcZ{JŔJkssZ1B1sRR::!)R{!:ccc!!)JBkk!k):)!Z1!B1B!Z1!R{1Z1)Z!Zs{:cJJޔBń1R:1Bcޜ1{!){R֜JB1BZ!ZcZ1111ZsR::Zccc1!Bc!s1:!,A(DB"( fqc ,xcH=1 " l!Å7%,l@ÆD' `*[V`QF#DXP+׬ .A fpʝ ^а*V_B ѠaXACdIǎ7D9y9AΠA 3i4`$D&]4J08ٴwo&w/Xh |CJtS;\&pļ5q,=eʟ~g@AUWV]fY 5 ks:^[ق0EY5UBwjI;-ru 4``WFpZ:gWg Lcv%,`~(S:gB2-B,Pw'p.ݻJ{봸g_2:AJKTI`g|pIC+\ u>L} ^U.Mf,X04稲Ya]y/D*&Ҏ'r4ҊJ-5H# y8)`eݰ[Rn%XV_ej-֘%Oxev+@MhèېYpsK΁tCd&ڹZ5IMZ":Tb3( T}| BDMEBsse=1, RFؔ"ESQ X4|5{ HIڗ/H R)n||h­gM!  3yBC@QiM5Eft*t*֍^x b]F>RYuv\w?Jb㯘=HiCJF^Aku_[8t4ueJުj~Y֌ɴvZSt|)IJ,i,ab7b+1™ay|SG:)x)]+%Ff7paQl6@`M7=pdIM~5p< jZ]@ZC59Q2$Hcc!m%$vzΎ 07̜H.f뙾cܺ+MeA@°s\ ^J4AsX0;NAױ v55@-7@[0׾5~@0rMl\SX Ts( TA”ka P'ϊ%86o@`d)616l 8)6eQWm ]ݜX*V鑕 b# 2@w-2\H zLw=^/Wu()P rz9>[#_`@hIJkSP' pS-uzK W9dtZ(A2Op7- ,z S:͗ƌ$C*Ŵ3b t@htq'W[E)Wq2"fYn!'B'NH:xO9U^n-^i~ݢ~Aviz'>{=wi.e~vQz'9!9i2_|y%k10y- |w&rr`h6. s&XWg"wW-4'F4W{V@5yX>FJ J$tPwrU~RP` Zo|57lDQljGt#{iG6WG+}jms#XW L'ux+4`ng\`g#`p!f&iww}N^WqJZgq$V{ח],EsxS94Z G%@ D,.p630$0oy-s8( P'<.$s=3'8&0g`e@z+h_E' pǐ'ȅ__cr<_%Hw 6SD P?@@^HZxibOW$N9 @ 0((sZ?<]^a >v7w 6\]dA^1" p eD}'/D0}X:P4D @,J0}OxI5 I0YƑe0|RM1-"@.P/Л?+x}F,@LlL_4A?8ǩٝə0S)晞Y;q9'3ٛ}Xp}y}0I ßț. +pzZ+С/  * *j, Z2.`/z8+ )BʛڛBC*H빤M* &TZTVj:ZʥU^J'&`cgʥkڥa*y9/`QjYv*!)} txʛzZ*zj+zP Z+@'PRZz Jc,J%efZꪯ a:P%i$Jz꬚Zz9iz::*¹]9%0I[J9Iگ:wI[J[ {[y˰ pkʰ{ +˯z/ʲ([&K˱ @P)@kC'[{L 9R;%۴XZ\۵^`b;dkphjl۶npr;s+ p x|۷~;[+mkwK۸붊{p; P;|{{{{j˹s;˻[w뻴kkʅw+;[{pڻ۽;m;+k;盽ѻ;vgKۿp00P\ [g{<\|58@P@@ *Aй0 BP@5 &"l@1 #-L(0|,, =3m @=|k-Xc0`R JDv} ="<~=4~L¶G]XBE mJMkyv=fLՄ]ڦ}ڦ-7G`؍=gkMnp-"ٜjijpբ-Шׁ}m\8}|[EmHMmj04mܥ~mkǍ6`bӑT@ ݻ]-`f̽࣍- >Ǯ=b-Wp-]ۭԽM|t1*^چ Mb ͼ=T q-cڈ FM 9`PS0W&ML|OQm_zP{L]S<߉oT=P {}\nA0A-6mvԔKzK`{븞뺾9@^n? >" }pKV@Q\ƛ^TIPeUt~ג S(T,wl>پ~`=Ğx`whi@؁m]NJݎ`--= NfN~M0>U I`;\P_ Ps;\&v,B_0K!]x< mA`aOƈ-<}'M>Ǎ :<,Oppgp0OP? `0 r`V`S思v--pl @ Pjl qtrSU,%_5g>p]?1mP]??YɿY@ū} װ#= S,o@pN `0o <`@`.dPa-F@ H@aG ERP@@ (UhNrzLAp0p`OA֨A @ 5P0Ӧ !B0E Ł"BT#ʏiCPReJl!Jr劣M9zo^A ً@'TRyX@Ξܙ[ &Eكw>ܺF Z0zVmd- @X\n(h[]AOӨU ~˸yB3 `z#П/_;B;^ !B/ ,3  )0h-#;E0*xM) )j' C,S D:d@#'r (|" 1,  9& fD P@On?̥" !rX2E L,QN9tI4PTr"J0&-)[[K3WESQ1N bEiX Cnw[Suz꒕\`ot7Qr m9sV/HZxg}i`W]Fx vp=IMTp)M Ҙ$qM|b3+fq];smashingkick_scr3.gif000077500000000000000000000174621263163240400411110ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a)ZJ潵s)s1cŭJεRRRkks{J)ޔkJ:1::ֵJZ:ckk{1{kcss{J)!{1s:RcZ{JŔJkZssR1B1sRR::!)::)cZRRZ)B:!)!J!c)):)!k11ZZRZB!1ZcJJ1){1քBń1J:)c)Z1Bc1)sssZcZ{RB1scc{ޜ1֜J!)Z!Zc1Z)!11k:!sBBB1:1:Z:B:Bc:11sR:!,A(DB"(B fac ,xcH=1 " l!Å7%,l@ÆD' `*[V`QF#DXP+׬ .AC !fpʝ m^Ѱ*V_B ѠaXACdIǎ7D9y9AΠA 3i4`$D&]4J08ٴw o&w/Xh |CJtSD;\&pļ5q,=eʟ~g@AUWV]fY 5 ks6^=P՗`X"JF}T+4J" CgVg8phPG9E En@lIn PU@U[bhtWvdЙ4FYx(mDDX #Dhޘ=ORK)elLY!嗂 rEJe]v!wׇ2᥅ezw9z2hQ9Ze)k(lH:lP[oV6cmA!'hm!&j蝔,Vǭ9śB lI>[ن0EY5UBwjI;-ru 4``WFpZ:gWg!Lcv%,`~((S:gB2-B,Pw'p.ݻJ{봸g_2:AJKTI`g|pIC+\ u>L} ^U.Mf,X04稲Ya]y/D*&Ҏ'r4ҊJ-5H# y8)`eݰ[Rn%XV_ej-֘%Oxev+@MhèېYpsK΁tCd&ڹZ5IMZ":Tb3( T}| BDMEBsse=1, RFؔ"ESQ X4|5{ HIڗ/H R)n||h­gM!  3yBC@QiM5Eft*t*֍^x b]F>RYuv\w?Jb㯘=HiCJF^Aku_[8t4ueJުj~Y֌ɴvZSt|)IJ,i,ab7b+1™ay|SG:)x)]+%Ff6paQl6@`M7=pdIM~5p< jZ]@ZC59Q2$Hcc!m%$vzΎ 07̜H.f뙾cܺ+MeAB°s\ ^J4AsX0;NAױ v55@-6@[0׾5~@0rMl\SX Ts( TA”ka P(ϊ86oB`d)616l 8)6eQWm ]ݜX*V鑕 b# 2@w-2H zLw=^/Wu()P rz9>[#_`@hIJkSP( pS-uzK W9dpZ(A2Qp7- ,z I S:͗ƌ$C*Ŵ3b p@htq'W[E)Wq2"fYn!'B'oNH:xO9U^n-^i~ݢ~Aviz'?{=wi.e~vQz'9!9i2_|y%k10y- |w&rr`h6. s&XWg"wW-4'F4W{V@5yX>FS S0$tPwrU~RP` Zo|57lDQljGt#{iG6WG+}jms#XW L'ux+4`ng\`g#`p!f&iww}N^Wq SZgq$V{ח],EsxS94Z G%@ D,.p630$0oy-s8( p(<.$s=3'8&0g`g@z+h_E' pǐ'ȅ__cr=_%Hw 6SD P@@@^HZibOW$N9 @ 0))sZ?<]^a >v7w 6\]dA^1" p 0gD0}'/D0}9X8P4D @,S0}QxI5 I0YƑg0|RM1-"@.P/Л@+=I=?>x}F,@LlL_4A?8ǩٝə0S)晞Y;q9'3ٛ}Xp}y}0I ßț. +zZ+С/  * *j, Z2.`/8+ )BʛڛBC*H빤M* &TZTVj:ZʥU^J(&`cgʥkڥa*y9/`Qj Yv*!)} txʛzZ*zj+zP Z+@(PRZz Jc,J%efZꪯ a:8P%i$J꬚Zz9iz::*¹]9%0I[J9Iگ:wI[J[ {[y˰ pkʰ{ +˯z/ʲ([&K˱!@P)@kC'[{L 9R;%۴XZ\۵^`b;dkphjl۶npr;s+ p x|۷~; 00+mkwK@~ 0tx˸sPz@ ` zl lP wjQQ~༾ wp q˹껷\۫P{<۶|0k||l{ "|CA50JF2dlU|hlAPw{;MpCp`|GH{@S]T=*l]\4}ŽȏG\-0c-jO=LVmTY:`=pA -i=mp} t-0}TM>MF|٠ aaڠ-EE Wו ՗S}‚ mצ=m[|iovl ېהMٗwpkpؾm9ڣ=ޟ WHPv֐;ϵԷmݙ}p=rHPhvH ;Սm]^p;bm}HLmv߹@q&>)^ ,NipI8;D}L`.a aPLePM:PLT@w),w`!}I ap[HLWnYE>c>.a0^R ,n|W>_ Pp_xƮ,,o^V^JJ`>$+[Rԋ <ƴ^۶nJV@`uԜ-͌б~nҞ> J` d@N0~C `nn=JEx=^&I%- Ѿ~>@4N6Š}Aa@}F tS{d~98Wv ^mP^U@LJgJwL*.c\OYI=} <<@tھ%^\aiP',/~7@,mT E E`E@Fǜw\~!\PbA/ointoTy `7 d8@5:h*HY ćQpÈH0Mr P@O ? "T.dQ`AQ  RS2JDy1%D& KȲiծ][CL 9mܩBO @:(R** R:%(k A#w5D;"ʐR >Hgޜkw'ޠ C_*NNF w }xQ,w-? 7uJٝ;A 5P 2w;n(2/!@ o"J s!R*? T@6Oޚ p>qĎH8o@ D|, ,p:6;8,k`o<"@R\:q"8ҩʺ<3#+Ś/HB++`=B DRATSӑ802 A-`1RuLU-dUZ5ssE8 W@Yn4P GO#U"YbZX;euZKH'+i5\k%Ԫ u]%]%VFlUj_Yl w!~lYytԀxx5V:EUy1vb#ciym6h#g:yng|3~꜏y[FMn뒏NRMzY߆kz}SldÏ&"F| WoMhyyFZGuZsӞ`tQ/Eduie;fI&hAe VDsByU!~:ZRȅeٷ>Wr&n܃wv߆yC7޵QZ0+~>!U!$8H8a+y^&% r׵U(8N;רG93ÐM.,Z,X1Sp&gX֓HD:( ڽw$LhJu32rKc:8ҩs 7o{#7爬`f鯐(H:N];8 ң xBF WQj3%+*3,H .ue/}K`Se@1yLd&Sdf3LhFS$'\@f7MpS⼀5Kk:@dg;Nw@g=yO|Ş .@xT$@ :Py ehCOTAApы(N- i 6jϑL)IWO lJStGmQjT?hHRb,-iR/Tz"uP?ezSb?ͩVwVsX<5'@GA:ϣ6uLURRԪTkVۺUv_u@X ϲլ:`,PU55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d" !1aAQ2q"DBR#$br3S4 !1A"Qaq2B3SRr#b ?Z{)\j vrjZa <m$ʣSYo8Ҿ  \9xm'EԱX\6X&i*b+ui%k6*yя2dRC/Oe/a\(Qo_g~'~{(6{wmé{'~vTRBxj&4nV+t6W L[]U~qUO7vJG#Nz:q_E۲-0E ;*' u'3#\vco-[s {!ѐ`AzI:=#C @|CYˊCHkkX_pcaVeB* u\E]|] N*6{H=I*޹OҊ塪oWy7vl5clE{pA#JzWvWw吃UukFe'sS먏vElui>I1eV?IT߷az $FLY4sZ`.^}esi-oEQCbVyBBқsc-S b Ak#[6C5>6< vB7!aֱ ~^DjbuQH ]*_R*z\2_u}2v *ݭ5I15*yq0e\,O!Vz6\H]‹rzJ6MTʗ,b$:[92GAz!ݖyGY,^nz}I42}<\(ly%lYK)Ju7U\w@YCf\N H[{koE95du;eh4Ő yh U$pzfft0CpM"{/nǐL_28>p(FQƊTm<'t;"Ws n/`٫1ē{NFa7(1%8NDG>n6lNU[wrCmqʬD`cj<)H%K4D7 ]*_YwXB[r)SKL~kVZҡGFeA1kr4n[["@!EҵYV 21wQ$1,ѭ/1s~Tk'7{82jy ,kl @ldC?)C%^_MBES~쿧GS#%a'( d88$ ݴq :' D*$̜[aWOjō<#$v!  FM*GPɔɑ)`m{sSEpyQ"Kb,yS! V5o*wT_4tj\S|}Os=HdA伫k{z7 Q5!oyeuwYҥU+q*B`f]˶d7LGG,wwS;m=qxLbDѣ!Ǫ Bll%_aUzmq>C)8n?S7Pq%% tYHkbC1yMj:VL<\ /_RdNK rЧ(8`Yծ<6khʩ4^5tb@K)5:jS*s?QmHB)Ԏh D&з\|и,ٻy);e?Mw0 UtZ0OP~]},CMgZg e7O=5sm/  / $5Ƽjg]hY$o`vVKc  |G/ҥ;*zexǠUz#[pʆcqdVbfh]xm#5WW E+*`&weE"IxJZ^@ʗ9V2˔&=mKĥEs9RG* k_藉YQajUG*_XEt'QGEgޕ!Oҿsmscat_scr1.gif000077500000000000000000000041601263163240400377150ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89adfdƥ>=>sY!,`Q\LYr(é^ˈ4 xYhGd22zШtJZ,x^x,)hAIc8ϿOhgjh2 S0Bza}L-ih?~e$oihKxoihoi߾iϺրM hFKϒԳ6НuUCp8obn{׭2w|Hқ8P& 1oXbl)Ś8[isJ\\3cϛ;gڤy)Od^"ҢM+ճbʚU` hƄbT2&wۿ'R@qŐ#C#b1 ɘ3k̹sd @Ө=VuԐ@0@{6۸sͻ +_μУKNgËOw˟OϿ| mwo8! 6}{yp$ ("G!`!§0`& /h8c=ᢒ(""cS預(@F複K>QRY&a>iXj%beIyfb&y`'r顓!f*teU袝JZRiV)馢Gj| 筸nȪ* vfA|(*g'͊§mmI{ꥫ[ƶk(l' 7G,w1(!(Glj),[©#8g13΃޼:{G]<?w\3B=t^49ouO]XtOcf2#fLVs]tyk rHj|Olꩅ睵zݲݖ7.qv>2P3~v+n',~.k׎C:/o'qrF+8ws{?װ"^~Osov*G@ѩor{_%'<pn A qiX 0X6 ^΃xǹs|ކȽkcXؑ q=ܟ o4HL&:PH*ZX̢.z` H2hL6pH:x̣> IBL"F:򑐌$'IJZ̤&7Nz (GIR򔷻*WVҕ ,gIZ̥.w^r0ـbL2f6Ќf4jZ @mf4Ӝ3v3ofIzg>|S TB/j^E&N h&Jщ hF7юJ)E\BPc|(8i9 0iS8ͩNѤBӢôNiT  JUXͪVZU~=GX# 7g-9gjS=զπ4EC;smscat_scr2.gif000077500000000000000000000052221263163240400377160ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89acecck)I!,0XGYvѩZ{4 xYhG22zШtJZ, x^xt nϸ?0LWʿ< -knS0BwazL+h  @{}ei%0["a }ueh|hȲʳ}˓i FhԲ|ީ«Ucvtw!|iU׀Lȑ5  Ѐh4C⤖IRʬ3%˚4gƤ)P2rҦ8w*ՙT ӧ<}JUtbR9jԳtRZr@2prHח0-Lܿ9q%<@8*njK,+D4Q̹Ϡ/V,ШS^ : jȰ,۶oͻ NqУKNسK_ËOӫ_| $8OϿ'|Aѕ`F(IP.|  H(g!rx` ~H')樣—}b"31+h$IXe2R5ޏEeDH\ ak~%L/relfS ](PcFif gc4I囒Hi\Ze5zi~YꐭEz\򪫫Ȳ ibFkV-f*+.z^覫+K,l$7ox ,P1g W,2A#rr|2l1]2sw1tk.0گ}/|o觯//ǏW2 pk(3=~+_Ip͛F X qCZ&u(;$C-8if@NzBN(7ӵPus0nXiY4^g'VψCoE4zQ]L H2x{`Wxw4׮]s鞳׸/?^7 xG<].g<3̓}Eþꦗ;U~s^;~Nf/цyMm3_ݓp}omvgοO/7?O?ol;klx ;smscat_scr3.gif000077500000000000000000000071631263163240400377250ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aM !{ޢ]{Js\r!,`iJYr©j4 xYhGdrdjШtJ6QX1xzʰY5 k }[;'߳}/8gfioRo2g"4s^}bzwe g E8`J al|#i%8Z"`|}za0gҔh$ڪץcJlii5u:6 ~KpF `vnױǃ*Y! m!uY "jx2XAaIaz[.gs ZegA>* dxviWJ`+kWp.j{:kk*Z6kzVKlkF:+{lVkp ޤW,nJ(Bi/ob^0&cXVߚu8 kWxlƇYr٣"{opAp< Fhk뭌zk4) t{6q"$c3G[m=>kP +l%}C@AW νw"3N8z 7TCzNɭIJ/ ={[ݰ -vx^ {6p+sJXr~1̞n`P]{k8譯x; wً~]ӏ*mE~| !kOž>y ]nI{J"']+}OOV=at;.=mtj`}HQ@4ɮ5{-RlӡÛqɝjh2ܜk6_pGgH?T<w/KRE4g4M8B#H>q5=U ;CFT#Lђ'9HL(OYM>SbD%˫NY"X.[ލYIK# `LrQ!2k,[2PJԭ /Fk`lW/g(v*Ц)g0!@)4^(\,иJujІ.*2j<,SBsT$6W*M2 ,ՔXu9l_D7*%u儫0k9jU]*i&JXUSi%$N~I:S zؼ^5jeE(DCY `UXSNS01 [QUnIEږBGbȥr:unt;]RmkŅoHt8!m;oy^󞗽Mo| pFlW8MpD;'La pn GLEpF?80CN8vkTX( Ldũ1)!> ᏧLe 7Kb'8RL2hNLd@`L:YWVMM9c]!<i~8vKszC$Vkpw'9gr\/%L̹#K8rW}ءn}#:y+=.عɵ=}=k:~;r_g|Ϸww|^ړ~{m/׋_ܯ}_ws|·~'|wVzyyWp}7wW/tnsnp7|G:mwׂmm1y73w}Wzz~RvxzzIwF{OzxXuZ򗅬GvSz'SWL=u'{lhu'}A D|7n~'{׃z؀y8cG&~WXq淆h|oHHQxl_|(zw{t(q؅dg'Xxxw؋|¨n舟؀uCq(xyX;r(˘~8`HE̸t(~3]~pѸ8yx؎QbxrJH戄݈{j%W[vX|G(x}؊yIِx|(yLLJHϗHA4Y6y8:<ٓ @B9DYFyHGiLٔNPP9MgY\ٕZDFdYfyhj `vOyn)Pc`r ДA SYm "QJMS 0la{|YYTٙN)iyk)diYpəNzɘl@ihyIya ɚL隋 [)e ߩd9Iy蹞멞g)y)iٝY*j g :hܹɜy9ٜ&jm陱9&ڢ'9.ڢɡ4y#㙢00:2ʟ>/5%j@JB6 F*Yz8ʤ:=ZW9TJ:i:婝 ڠɞYoJjmʦ z?zڙzI;smscat_splash.jpg000077500000000000000000000051411263163240400403520ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky!Adobed _   #%'%#//33//@@@@@@@@@@@@@@@&&0##0+.'''.+550055@@?@@@@@@@@@@@@dd"21 0"4&!1"2AQaqB# R3C0bs! 1A0Qa"2@Rb3 KORAfV$:v?3L/1Ҭk4;,e~>߲GL$԰Hz} ~S3b̭EMMO]Ew1/kS1iXϳ%i ej>yĵ4}lvtj!ycy1fadPԃ7l@fA2x:hfquQHwB|8~dow'޵qɈ8II4u2ajpxy4 :ČmsSv}[F?[}]R[O $ma r* hKYt̛]eo~\suι:z}XFKIsIsIsIsIsI@!ia{)H:BP^8I&2b6>,/hoNdNM'_ia{K<a˪%r^)l P*!`jM٥a[wEwx,?Y{4qZ#enmx){ ` Z0x=s(D}Y^XW+Yu|2QND>,/5|OɻOFU蜏sc³R*#E/x ,[9pS>7#-PSЕ12di<c ?z,ڿ?)B'P7b=DS@t{li SŠRXzrMSK_:P-b8"qkT󬇝d)=͍8cpz'Bb|ѶGFHCH26P1pk\\@ҵF dzYbj7kIE1@l]Dc5tM9vVڽ'i.d(KX Σ6Nln3dmQ,mXs'*.Zn/%Wu5phpa.^X4:6ƣKk9Ƽ$ni_UZ>`Lj%sd c;c dlU T=E _*"nH)ƛhxʇKT>rM>;q1QVO&412͕Z[u2G yUrk#QC5q"WJWuyճ0d4iS[[#]r\2,^iMrKTOe\ B <,q3\?Ƹ~5 NA+1ouI;KF628\w5q94%>:t6)&schk\2uaRIsZoHrjF9cs$s0=OĻfAUMo{qIKUMOm\`_\as`__c[qseRefkegxnpolqzsdmtjx{ujuuz%.7); G UGPM \Y gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZ Zbb~}b711MK rYZLK ݹ.ΞjUJ]^ĢDKp\ӑfiR$E% $(حŚO&PEN \]}%|X YEG\ dO%h0y~yTwFPXsp]Ug@ח+QZ($E&R]GUg?~{U$x_N,LdAQ8W~ N*ITfө)ŤjEz2`DQByY6+GR\JAP, IPT!Ǒgmɐ'AV@qv4x$X mfVXVRoYS ZJtvpjugrFYCU!Pg!xT+K}LQ_mDE;HMHn 0a$D5JEJuni@ང\EjЖ`Ֆgmc69,Q$__)vXJǺWӥǎt*|K-WyN"ITytDSW9\i#lS0$ .w@ 郱ƙn$@>ơjNuyA% ъԢ}!CӇh8I^rJ "PHwguQ N~U(Z?ئ^} JT 8JT,qf\RfWQ!T*DPOⲟ( V&awbg#8hH:OQXŕq'@NhA)"@kչhmhXPn#6 U8`!Zw(cNI3){ zq7\IנeF(2*Q1Õ خX9V<1Ȏb<ⲧ(D&J3 ^]ś8@G!&~$hbYR&b#՚ odiDS=&M,AD &l߅3$2bGh7&)!u$6 }@L13FZu Ι>4[.i#t:!)IʩO&$^!yS(9r$!~JpZ8Q2P[H\:ثQN ϚQ|KPdhk RoNfe')Mg+!젤z1wB|~wԻ[PwlOy~on s=sȼ]99` S\~"(N_M>`n)WϷ)afQ̈ƙ ;}L\8=ԍ=TEs#;Ǿz#^pA>v$O-Oxs%ben|G( ~}g~#jmՌP-ϟNښ{a6)Ox;ΧwX嶠{7VW~cw~{VkVgxdd'zz7ir7V7|.$}1vyGgWY \xa &bz}xWcwvi'~%h&H\łF_,8~wVFGBY0.RFw5D}K Y-Xx`\DžNz7qvZP#?()YЇFQGXx/a%(E$*Y|}u8v7.+,Ї[^H{\Mv$ihg\^؊(g{aЈ~~X V6'XZȌ 9G18b\]xhrX( jszxTgd\T Yxه|h}&$XdŅ\hHH^"9'HXXPؒ81Yȑ^8}xU;")Z\ٕ^iXهZIYfbYPٌH"g&o|ٗ_[ "kWmه{yriaVɕX&~旖y 9]Y"٘w c녁dyZW M[)h y s^0xgٗهț9ɛiӸYbIukI"YМ^i陜b6ɕ)]Iy0؈#ٟ]$[Y^)\ ::Iyykxş ZɞI\ʡ *ɞVs(ڠW(֙*@5I Bڤ|ɞ:ڡHڟ 9I;=*yXƉ_eʠgښ@jy^ڕ5IyFyƘթ@Zɞ_D4ڕ(iڟ[0I] _LXIQ"%q ʗ]ቢ[)z/ -:PIf *ZT%Y[0ѡz\z5J`z1z I͡bڃ*JԊغ$ڮiz*pGMQs}8[:5*TZZ"% 2 UCYeʱf!+zJ 뱦(RK%%;Yfʰ7k+${ Y Qq0NaL: ˪]>+}֩}XhĦIPP2;駬:<۳\Z ! 4HICL;JhӋD\q3]Wv 蠣`"{JԚJ uNGit%1>KԸqEJ[d::$-j g$xX/75+XZ 8n9тL=CTR3lw4Rx Nx!;NۃB9?< uYSWesLAŔ|= |7MrtL>Z.HF-:8:栀._CLQP =`M9ק&,$NA@D|K,Ԇd-rsA xdHYhv-BY梅w3BTw~Y!RBP!RP H1D!BFWҾ4$r YJ3_G(\rxzAxEO!X1`ӈ E0?a#򱏅#iB LrR:<DX$pɶ(D6P(JQ`D FP*SA1@rT/wWK17RI4([-Hm ۋc)E4E!TiJnzӖjAWpҔZ@L `+>ws6~>E^4 MPS4y)8+ ~8w?TL@EDTbD$&#FktH`A8#=PI4oAyiQPdz#Fu"ZZȫO86yrLiPϕͶ(@X 77B.F6矒KK-BP9l!%I,(#9wZ\pZ.7Ir9 K@;spiders_scr2.gif000077500000000000000000000164431263163240400401040ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a   * "3 ,$#(:A!A E+.L8:d9DfAULn{qIKVMOm\`_\as`__c[qseRefkegxnpolqzsdmtjx{ujuuz%.7); G UGPM \Y gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZ Zbb~}b711MK rYZLK ݹ.ΞjUJ]^ĢDKp\ӑf iR$E% $(حŚO&PEN $\]}%|X YEG\ dO%h0y~yTwFPXsp]Ug@+QZ)$E&R]G)FُGmBI'N,LdAQ8W~ ӓN*I$ө)$qtX {S%"eJAP, IPT!Ǒgm. C8j]tuJw.YQGvdVS:%xByTeJtv}pAéɕ eU U凪BUND4iU}"K iL ~*QDTBE|# 6!rT~ZT s*+ElQ\ PLiS ^(Y.ͥpVmͅJ>vknLw[IF4}!%{5m*d-oD&MPWyM" YT]ҍZegipeGuyf{JRM=LTZ3dw- 5 ꕬ!1ޡr5i{ӓ %*p]"{*Xf[%2[Ey8k*Yb>!չ(TMO?{}=(ײWDQ;_&,H#dEF?I9ܦ(ӿO@(;H|͸rr)nR A:Ō_54 BCSWG^‚8 }K,!A8ΙBHNr"U1C>/ה 2-k~8C ~_Q\ ֙]@tQS%ћAO2J> ?|r##W~T"*` fM"I;j^)LH|R d8Ȅ@Td6p`.E/ʼn^ʔI6XOҤւ9(R8@浱S_#@f>+"Bk`O *O~l~L2 LMEgι@~ЃDE N UBW8l߾>E.6v& |ȸDsrwԦD摿]i#*3lqf~ʝAV'NC`ԦT}N_щMF$ɨB[/9X5+2)`ZGtéVea+%^iGn ]]<}u}1 N$|,7}$ Su_I]_4X`%e-N5d%'n҇_åM[ RѾjSg>2 φNdT,6".Ns+Ad)s" -N6*.tI\pN`l,%Iy(/eAIEި #4i+ QBrվzgŕ d_z<♕0|etljjRtP\Sy*/H-×0~M|R DŦ0DBTMR *qSۅ,}ۚ JJ8 ApZ4:%ELHĪt?]äN$d?(P\õœ*Q2RT{+ֳ^#Z'vhVBxQik t'ۋN-m')LR<Ŵ Oѝn%րVڪhg\TyvH#g/"KKGd?*?8hVӶ)9`KIS=JzBG@OjsvxF\1yLrx;XwZ=IH4~ .W[|/K\4; ^p7WXFټ.A~|Ni n@:=nk>Z0A.x!YeU=!ٔ'YR9BeJJ ɉ_9Q-CYXINDmi)KJDBxhD)Ft M8ؔ/HC3(hYH@ُpsqIX؅ ;H ]Dsӏ[ %QBB )ُZ.UQّYى 癕J, !؜wiЙ] xK͡bSgθ癟/8K)z*~~p9r@>[`y0,)) P 9%IB?ZE0:+ ._Z[j)QOZl_dd@*j8xP\*QQ1NBI$W9\z+hZH/$NA @ tYM:ڔIXxLjZ89qKOE]ĦÖwRJ:ʉZ[ЫyࢀZ - mTZB 9pQ4 U-jZd$)J*O"R4t֚* 8תKz@/͑- T\+Z9" .]jz .Ӵyz% );L Y*I,dt[8-ڵ[B}p+$QI "9Zе_ˊ [*z* *$2֩DkܪZi8*蛯ɶ/H' ljI A)pRKXd˼غY 3 KE-q"#qۉpDKԪ ['/0$![&CR!P!{![Ik{)L @ʦ"~P)* l̚88JvIB|a!B[Z< F#܉eƞ)8A;k2.ԡPt'N a~,{|]؛֞ ,>݃^ 2uT7JŎ}ځ̱| +--yYɛśiN$= f!i/WI#~̝[j<H#/mY..4 UN1Ɛю!OQ/p#N`@z\J)*]GuOJཻ`q۶qPpnppRjF랯&r[꒚T/Wr-_ 2_ם N'n Va-O:,M-8nҘڬ_kʹ}o [TB5$+$LX^ezwLw_)Sܶz<1 VbR++6T< ?  $HP  .dpXB-ZZ~2量O ς$=.⇚8/2&YdWQI֔RQH=RdkȁX$īW,J1hp;$yWJp"" ~4Έ< e tN%XNj0O ~.PIk-k2-.p) u3+(KࠐCm HfD ɏԣ {|-ǁ| >}uatزGY+|fXЯӯ 00 {O:4Z "(> BDo.jb(v+#/# $ V'8@-^\ d_| p rZ v:dBͦš* @8,ȃobE "T?<%S>xҖl$ҭ ;X. -x@V$s 9eTB!rQ_=PBIWBՕbroST=" {JӉ-@-`pR<5QVhdU tM%GOc -tE<(G T@y dT K#  HYu|^я߁8O.(#S;ȃE#eZhSI?5x"bB:8`lJPÑg -Oi1R͹~j/N ,Ù@[> a8^69v,8)Z;g@ q>O<\~~H"Ttkcl1ARL. 0>=PeS bI0*ɯ7g,Bʅ ۂq3~!,cIPmW2'I1i8 ' Bn X}޴)3IHFc kYXįjtFHm|B".@ ޛ`tj}{HEv{W:p7wnڂ͂PYNp9xҚVMO ҏ!WR.B~,IYG:4nAXl"vY>a0 4'dU1P@;spiders_scr3.gif000077500000000000000000000163221263163240400401010ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a   * "3. ,$#(:A!A E+.L8:d9DfAUMo{qIKVEGhHKrMQgMQuRLfPMvTWhVXv\`_\as`__c[qseRefkegxnpolqzsdmtjx{ujuuz%.7); G UGPM \Y gjsubkzs1I2V2n }.~Z[LY]cQq`^egjkjrmsrkrmuwvxrxZ Zbb~}b711MK rYZLY ݹ.ΞjUJ]^4EYp\0cӑf0jR$aF% $(حŚO&bFN 4E\]}%|X YEFH\ dO%h0y~yTwFPXsp]Ug@+Qa)$E&R]G)FُGmBI!'N3FSdAQ8W~ ӓN*IT fө)$q$[ {S%rԔefZ归eP,Դ@ 8HTp65Дtҝgm&Nѥ qv4xҠKVѠU"MI&^0E]^]\pju'!>sU^PMQuU2@L  pA9@%m4EbQ$FE0M'xgu+ ;הjЖ`ՖgmTl@DiPDWiFκW@2e4Bgek'Z]҉Zemv˃:=Guyf{.`tMx_ 7;˻X]2G&\x R^-{x*w~N(y/. *p TgS$@Ȃ)%x- ޕ(T@ {*+RֿrcJ9Ǯ?x.0m{@8BP$an>1)'و)I圧Tb"feߠ$@y+뀽ԑ( E6|#NwDxŒmEr" Eۗ"NxBRw-!jV .# 2пI]sx,,yHUFlCJ> B P('-VS,ewl p 4Rf-T8H^ (HB6 H.˕*SuW3A)D '?!Y,~IO`J)_1]$ /Rn"fm ӗ2 ӟ_c\^Ⱦ@s5{ g@,KJJtBS*Iϋ++g9s$r:OwiET.}#xFٿzaVΫ' YyXD)r\ҾT_|ErRDj׾bW?V`eCT|a,uPRd~fM}M.~`ҾpvKAT""qeqy\Xf"SPWhe']s~JUJX I^̀,EZ~tj W:IիeA#m>-X8*,DTXWREwf-;H4D\4Fp\\JRT.#LexkK{QaPfB\zf%@[JyJ7K`3Rj{ѷ26a~ˑJǗ|L eX_;yEd;&dųqnH] )sAZBdDq3uL. Q̜?u0*̄H|*ҩWx#l,$0<5X>(ik#[ĕ3+QA>` JI8R'dEޠ_=+!ǥ֛bElr(ъzƟ%6XYbv˜4f+;exkdcc [:>JŸv(m dX!uk0iY>JK =qO⒫WZE]S]љTNJFmo+5:i(gVUZq>~¤0(qP/./ʬap}Xߞ8 to>{%zIgĸ1{a,e#gwg^gq;f)@ݕK}*NπQnhzz%U?{3=b5\SDDNٽ0ܮyj^X[.y+vP_}~p>_$9D^_L~{wv}`P_gj.7}}QBg} i-UHw`}G^]ā~!waP#X) )DAXwFx:`BH؄ЄP.{s!zb0z2 FaAhzRG<&dSEj؆nbp~Yh])d(brXmxDgl|ap"|{x(X(!iш?~؄RxFX؂h#'*8]؅XxȊx-X hGhiE>Xh"xؘX؍)ژdЌH\؅(8х؍8ݘxH! X @E(b uhHY( ɏ )Y'ؒ2y1y Y߈: AY< 툒CɐEFBـN9yyXZ\ɑ^Y`ȓI9m`iȖbYo6z` Q;-%%Ę*j_JyOkIG*QA1NatzbڀpGz__Z|yH3q H'U OPZʓ5ʜ|j/ișnzqK;jEV-Q!`,:z`I*pa QPOa P(!ڙZfEqڦ 皍 a* B 9* ) dzـʨEʜT(Z(CBڊ jˆj⊰-pJ'͑%> %PAbj٢( i' J${驵d֚t / ۘz jC )ꜵyBpR+zzf+,Zp. 8˰Z(OR%y˪ٷҘ+fY]Eךc4DV ɷꪹ(iiٰ A[Jl;|{f˵rz1 A0i+*ɱkp*˨ڦim21t*UAVaww` [*Z*XO f!Z%[Yx_K',#[:tȭ<-AjQ{7+: H#ͺm-Ħ[J Mk sv**Z|; LKpz ۫I8rPa IڹǞd` wG[l:Ɛz#k +ku ͚ djȀ*IY* IVN.x&壺 0̿6[)i tzYD jw+ iX=¼*x X+ ̰۳ ܽjXK![; ܬY IlPzd|ȼ21=ȊLK֋ CCD zh2w{*q:  l rJvB‘4d )ZF .Q(ʴY d@ 05^ܮ8(h$`PՀЄʜŕ[-Zc]־Phm Ҋk͙Z\rM[BkK4>7)ʡK}@ #2-Ki&q qtpZN5ۈ,kyuQ*["oהu˚6[ 0ޭ>Mӓ]y8>¤:JS* ̠UI0 ۬ȗb0 p୮Ǫ7ٜin}δi0 1NHinF[ ` ̠:Q:I*PNQSA'j *ʁ:W.BAg.`|^G0F;JҦ.+羰vK+? *-={ȭ)`(> +T1 k2GjڒmyN}QSW3 nΜm:FIY%e1kH`MI<!nf tĦ.%jOB2X8ЂNΰ٦;6̌(rPh ;/'[A"$ߤN̙oʀ EAeO:Ĉ 0XtF؛@`^|`8@w{Y׮8051q kf[o:1< & ;PPcV(2 H"zO@2W,+4"P40@ 2H!*X`: $ 8P# 24 rAeSUFP1ydQASSN= 3MQLk(i)' 'Q@PØ #-@  #4ULWQd:"qԃVo0wnM= k|s}Dɠ;d H0 NpdGTQB\*c9b72h6ʆӗI<Č2Q;VY< c'ԘdN@#ࡏAmCRZH:75U 1LY0nRo񰫴kT+lTl  WDl-7;j+Z XR >>:ȥ;4OvF4fB>*}73m+yF38}J<⃺J!æu:@.{8zo0To'=h'C?5)hvxRXCɞ"Y!} a&48[F:MXf4nq : !8:08y55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQa"q2BR#br3CS4!1AQa2"BqRb# ?6I,l .FlLGM{&!v&tJ~LMHZ//TŬ(QY如*FR@!xhr&! ?Bcs$^P [|1Ywh v9' % 8[HDбK aع7=f{W )2[H.lZuߢzJ\UD'*Sw7_jue;ԫgB6=S#Ȫry@v0 ib]q}  Δ@ea>?u- Eߋ3յ$}6t\90`q]M.t_#As=`G YĨjV7àsf'9Hb7Q&ײWG 8=Kq8z'6{MSCS戜wbs! 6U*Ma$F=n Xz0!Tj'\) Jp_(S"nI޴78;pPdrD#$H @_)sT~4Aj;ʽ龜BF mg>i$d(M~,18\$˗IеvGk1{qs "Y+ۑ+Sq,Jr}_ڞVӽ6'o*i-!Υ_I7/doqFǵ4q/?-܌i=6>5!t66shJ. _4)8z&㘭 mtmuK{E.5XIZ$a%v;FR%F6<~c|Cu{TQ_V啈-0T}3ct!\]DIpÂՠ9.\7QmO52JDr%߿eJCz$sGA|v#T1t4\Vˤk ,F4ZQ&NKckǺ;M kL%5NG$c#Rǽ;;Mʠ 4"Y^F)`@1w}wxVm[QF\fqJVnUJ̃4 xi%QcKN$MDBSW/*`.*VHlDIz(؜t{*TP_starharbor_scr1.gif000077500000000000000000000115141263163240400405730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aH phXX(ب(8 P@ؠh@hHXh((8(@0(@H8@XH8xxH@8@ (pxh`XX P(p0HHH`p@00((@Px8 pH(`8x0088 ذp@ xȀ0`P8 hH000(8x880 8@P@(08Hpp(ؠp(0@@@XXP00pP@8p興@P0xHXHؘH80(( (@@88P@ 88x8 H8p@0@(0h(@xxphx8HP(P XШ`x(p8hpH HXH8@P(0p𨨨@h@h 8X 0@XXHذ`Ȑ p@(8PH@px08 ȨP880xhp`X ( 0`hx@p(8@X PHHXHH@xp 0P8@8 (8`8p`0Ph0 X00 HhXp08xȰИhظ(!,H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sIϟ@ JhOH*]ʴӧPJիXFʵ+Ԭ`Ê{իٳ[ɪ]V+ڷpݻx˷߿} ̸yH<ˌAp࠘̂=\YoѨSK@bqרO Պ?͘]vWMp֮+7.͝G_xnˡ[nË>8֥/-)W|@nqXwzxEo^V)Wyux1'[p VMwn:.(&X1ww4Єc_%h2(]wqQ& i冥裊T'%wKX6v(lNߋS7&ʕ@悓&pI GQ' }8`s=mrPV E]a^ e, &*v,iBY䟫*jzkmmJ`L.)$"[2;x8hgYJ;mx c9>Z~W~ )lDr8Ul^(gm-[f".:jZ,p 3%o s|KR %AzR$C#뛫ݗ-KSTѶI$D4 ̀|c7?zU4ox W$ cҲN]xU+k_*pޤKgK8U%:LPH Lapb "@B2p L)0$xD! "=+ %@@0 ]H e:96$Z @NH&4ւ:' rB+F`E<@F`?< %,t@%F2R\`hG<0 X h@bIf h, 0" p6P?*IA D4@,()L )wkAfIK[&p @>A0t#0UiFUF;5~ D!>7  2 rH9]I^fgI8Q1 ;[.摈 ħ̐#&;I) " jP Xh`9E,P0)jl(F ty4cWVUI/Ը%$ 9h2 c#/'0u@m fkD"F@ESԀJ]!9-hA(2I`]Hĵ^Q *[ڥ_Tj=9\5҇4,fۀANq 6@@-b& Xp6|q4&7e.s/n_"ð]BW4.3wy~"`2NW-BYM=ۿX16LHB24 6A{|*T .; )ET0䃚 AO Pnk$-OVd^Ʃ+ɲD ˜ܲ-H:f 'FP# "-9$`E0r`Ex WlLN:ȘIūwg1DnyKm?L`HQ/1g=[;zq[R4 hlN Vkl+`3wY"jˎ(? ܥ@'u{[e+;P-3.w(@Ɉ:\VES/d^p`8@=>X 'FOwWD+0vb!cD u)D]9jbŒ W*pu //a&(:uep+>] P {->&Ł{|wu O:+G~ׁw}F@ ib:2!|b\e]o>a Ijl?l>9~~=7PZc9NtX||$_#򇂏|7r1(@,؂5B:o4؃5CHU!'h0|شOHM1XrR#Z]âb84zE&P%c0{ # `sQj60c th"Es|cj,0Ua#H:>:c05#c*JÆ!x2-^JY鏵 pi@{ҩ^iI/MAbq59/M0AX'&X94]` ?G# q"J%zb 8 E˒7 Jpd@Dtb7 M0t7CE2&0@ N C0teP2]>%^I v )v Cy(3!3@)Pze€j8 xG3zj ʢyX=z§@ Z_ C~qz j=Z XڦڬCl zJOw!Uڢb8j}%oB˰ QzpA8C0ZYC3+u :&RᬼѪdRE[۬ k@"[8HjFtJ~Y*k0 ^ٚP #Q9# t(k}X~@[ Pz[`80 o @T@Qw8]+[zA `tBO oa+#G[G.+*U Ppa+!k%{}r(olJ0+}[\Gʺo;@+ ETkK3X' ΀Ӳڷ["д[PHUtZҋQ ┷REͻEkp о;K4+H@M+ A\kwхk*fJB(;<뽏a<{+ l.ּ\۽*L[׋LPL" L$<-qU2lBkÚLB/ ͋L @I+ĺ$TŖzBWLOY9(HcvIJ@s, 89Ht HWJ ~)l0;ȎȐɒ<ɔ\ɖ|ɘɚɜɞɠʢ<ʕ;starharbor_scr2.gif000077500000000000000000000171631263163240400406020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aȀP5,-p @%АHX0HD ذCl*"@XBu$F)Jxh`nB0 p@cx0&4D) 7XH8HB79A(4T@H @ '2H@&2XSSU@&H@u0@HU@U.$4d&.+@R3@2H%H@PH@xxx hXXx(@H8(PHH(8(Hؐpp@h@h8 P@xh(@(p@XX0H('9'ؠ@0'8h I@88 8P HX@H`X؀xpX@P`X8P@Hp8 p蘘P0(Px((8H0h(X0HphPH`00(@XpxphXHHP 8phpH8@hu(`xHX@`@```P8pHH@880@ p`H(Hh HpPP@HHh 8P蘘PhhH࠘p@PP8؈`PXpXPxPx@p@XX@hhpF($p(H8( (h0 0 P08@|X XXxP(X(hxx008`0P`h@XPHh((hpx@ؠpؘp08P!,wH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sϟ@ JѣH"YʴӧPJ4իXjJׯSKlPhv5˶[j]jݻxK߿ LÈ )lΘĐ#KLYx ϠC|ױӨSKoհc6:ٸsF\Akrފn¼8ڛ&7HҭۉvGoL#&p\|MF7/TN0o$`~qY{]tFT`o%+exsI  "p!^hAՅᄬ}!Ljaf҈ $Q}k( aza( (g$aNŤ]qq+Ie']8f#"gYdfnIg}rICaEaa\hAB8؞'1 \n( l|袄qE=E9kqʥfc~ JjT$*B |^ )>LsiCi ꗡ %jVh &Ļ,[ IkfB24.^mj[; .Y]E`1ĺELR\]X%k a 1hACU^&7+׍EE: tF]h́,]qS<ʇrZp1@͈dꦁB Y;Dm,]hOnVmuRJ&O! *Ƈ͈4a`'ݬ'\r>ߤ f@5µ C@px~BFO~3 +qW|49 ^Uϒ}zIĮ;Er!_4.Bs^D}=hpR/>d vt) !!43BH _%*)ktZ6"𐇅p5 q4`<> @ #Bq A8bp#BL\&D'@8QҐ?X9{{ gi*V<-P/\`d/рp& FO`GG^Ơ ,Gn@n y{?zc:8@aX -hzwIA d |@y¤&Ib.OJS2/ᔡ e1h k K%.""ULЁh`g20s ef3̈́"UA\[DC!T T X#?&"VQP!p':jB4w[%! .y,"uY hp5kw!o .taFa]0ƅѡcCaF@fF8,@^&Ф_k-z6Azk zU;Ayz$3CEh*\c`[Pֲmƾ  ZLSӒ@^aMn9@Յ=Ժ+nq7C^˵5a%+, s+`T0i8 ^B{F(,XE4@..Z^ׄk\ax [r6 A O4. w_x]4. ~06 05T= `3bq0OJV!lc($"`twQÕb,g9MBЈN =f) #fNܮ6o r/gؐg̢GMR\SP:z4J"38wi|ᅬ@˜2 ᕯeE)i,AQt%;]Jd Sl0G8cEt( /fVM9d "0Egq3'@!݅A'=𭎲r۹nӊVuxCT|Ǎv#>xkgN;}x7w | <zj,`[\HM^-y;3ӧN[X? {`NhO=pܽ^;wuB+iT0>/v=O#]@OX/vnOYW4=(@ gl &@=^V{  &0)xA >ys?)]"[X#A0;KX'<xW{~{wGD ǁmqxG zxjpX*؂gy6>qx 0}g '-/yЁh0gWw&؃(@SH>0G<1sJ~x{ =TxlHi }.u9P{G9 }<؃pU؆jІXH}^b(w*u> PHhO}.2=P XǂHׅK{vX V؊yS C؋qX ɀ}ȘȆH} o}ט٨<x}wcg٧瘎XfvHd@xkȏO*U i|Xw w#  yZxxuݧ+ɒxX>Y=`7ܷ<ٓ؈GFyIIK X{gE @|}]+ǖey䥌qNr=Pt;4qZ4/  =;=5Ⱥ+ P <0GX ^t ܾ p@w5I,>/v Ȁ @E*Ӕd.E|-{@A~-BnVLzaLm4"a~'NQ8@<Ԟ_ ,ʬ`F'zAEz M4HkChM'8祍Ӿ ,!v5%vl?OȎٚPqp2ҳYS=-(Wχ(~#l!aL[TFwZ2A˽oȞoas @vL)qMg W2ˮ鿷N1oN|oLf _8|W*?fu5d |LOԨ<P pZ@ ͠n\pZ$L4mF_/֗nGGe XQdb 9E5frT~L)7)Bc$!%K$sɕ+=ZԨQE{ndF"4 AiՉQj(3^ :tQĉycP <#C5E 2D;w}hkFݾ{a0r"n@&"N8)cAjl+p/;!jo HP$ $@ý;<࢙.?'({=`G JH$ ,"0dD]t.@ČN8A\h *#0s/0{b 4G@iC,D2ጠ͘PR( ChˋT!#EؤM9<`Di="p3PPL0AnI8ӊ3p LF˜eRKu (>fV(c]1]0!{ (`Ũ/M%2MvfPpȵ! pre=vsF;{Y"8X2`@9 "#4Z7v)Ws- ]4lZhA'bfKvggu4HD\d1Bcښqggs}ݠݣRL 9_`Y,NHhp1Z6_yoi[. 1"np4* q#\3V\u}>ZtUSؙuxn@fL}]#fo])F:@~}CW}b{9Ҡ$39p#[3FPC (dP0 QP4!+8"E dô/P%$a 喉LmMX @"8TNpk<7"4=! G a (lmh)AKZ FhpG#ܠĸEi\#FxGs ` cD=  r810H_MߡB8߬jN`lji VDvd~gzE0v8Jj+)=Qyg>`Z`jo̵>[`҉}疈o!wi_޻~Wv$Ȇ/p,d{Y>a63u 潆%qAO%jrlھk-,j=G93ӌΑ)*XFJ_K2MQ]5/dн •y|}d}6vQ` nlx8sj"?]a@@'F 2""Z#\Zg7 9b ә]2\|keF9vgMﻚ_܋ r7@m|L q7 dr]] @BЦ%h0 {# cK),+5`c EE!! V|qmNV x01)rS#`sz`kW4"T i'J Jɐ 힦2:<#XFvyc1Ӯl{ E N04~T\|Ld8>W13FA aP0(Ji ٌAP`@pA,xP@,bms!9CrCs/>o)5Tf%Cb78fb$ l*`|re!eIΧP'CP pѻ%A5#ťwFwȴ w^8aò2 졷78E7/"|tZ>) ,eĹC6%ΐ5_^ {ܐ " k# ڍcbClB%^5S`TbBjUeTXo 1jeDRIQD_ L+ Vc:&NRXlN}h}g`δ3Bj8#T?Ku@ F TDmX)\%v%ܾaM$,B J o4K-/ڮ/XЖR(>0 FX5<4pʲ%2R}Q}4oW Aw`~'~'A|yGAe2}qG8 434=P0 X68fP~3>PuQQ01D,bDR)j0U3O oc;ȃ f4PK^LV؃ ҈ ke=hB|FpP7t8V$%%"T-SS3 >p >WG=xSq[pw1 "TaYVT(!APpPE&eB|[nߖv^vhv'B"A%@ {%Rs苾8 t@M`hdŽ1)p6Nr)v%Ac1`B ST6W `o{?0' oPҕq$?C1C8hP)-FB1?T(/[%H0?)EuB ` ﵒU1>" F S0 V.R)QYa.4"loqA(!وf g(C ꓶp V9Bh n Igi z%j `/ Ѡ"٠\ڥk(*(,a)T3" }v)pV**.]\.~@Fʡi GyUуYv}!B@z u2"$bQ!'hQWjЋur[ԖS0""V^gJTJףRj%QY xx4j4hjQ ת#q AYڥʥaFДA3%"|+ڮ"ЭSP[#wAGx:H`MWEU)c!e `갧Idv,>(yڱB):ڥ+bA"SLҲ\=c21Ķ,³4?H^diO,/%,ƮyebD|:f)!pU_+*j*"bԴ9bP8:Ky0|^4&66< !L;㳓;Z'{P qYܛ޻::E?QqQUhQ(=_1 ݛ&6IIX Chh+59:<E SBS˾ \"̽d ߊD.6˿)8O08SýTLO˼AeGY7SĐ'ŢKcfD|Xk1XScJBwQD6ߑK)p|s|3cEE@PQvT.,R0u};iX㤐37T3x̚"1Gڼr?V=DpP3 >\?l 0%$(|LlP4F0УHز.b ĐXKHd3\@t#k͘ ,Hs^LƦ%IP pp\ϯ_pO 挽,Ц  ]ͺKVL+ȻA]@ ,) Kmi르$|UЭDzb>&^ ;  an`Ɇ `Sˣh*x ׀-؆qRrCBKEb&> ن,?\VBڦ/^U#͹bی` 3EСdr$d0N3F{#ƍʽʝLFl0K|;NPg`N-։_=dep޵lĮ8ԫ"_O4>N>߇ˍ||%^I$: Ð3@` @"^&>  ͻƸ;Al"mr[A4 - $a ``V "&VA{Q ;D)}f@( |&`-.  p\j&hp vq.xW8bVN0p p>;> ~ ~_}E)wDR`WK@NT$߲&PCnB-"'!&~>K툾\^팎}ATh1>P.-~N.^`$?ﰁG eUQ9W/_J{؃/7"%%0V d+O>:N6fĖ5 g DdpHc]P?M5hAGY? zz^Nm//m *վvyή~^n󻁫α "ǎd_ {bOTV_p>x0^ {OnTpoͱQ)hdE Km@nNNSVϹ} E!G},\X2E@-XBʒ.d,ET2n|&ōd] ^ΤYM9uC8!RHQ"qYġB f.&;%df$S K/ɳQOqΥ(R"G*fTVǶ!g#׫Ul ڗjYe3=*5Pc=g5!.%]6or&"@Ҿ5eY-!;.1dk&!Dyu ,z@e҄3c!/v$׮p@6 dc@TpI>8 *ojcqD`K16`| o!l*rAo=Q!lJ!/d Dh$F(7Ȭ$Zagrr!saLqMT¹D'I:計o,[ꢃZi 0w< 3(s!4gRF5t 7:StÇQI+,rrUVs ?k" :]F,8FGT8@hrbYfB7T̏VWO:T.X1+eK`@eWx}`؝ 8Vec_~׉ "0bx?l i%"ZEJ…D:3l&}" 4P!Gq2{}ͶU~k&yoɉh;붖8~g(l"X/ZeMm6> lm'[;nH a$ T /^ }: Hy>}0cutұy ! &pq[0[5= A ِ'WhƱ6ɟr<5E*DMͶ&Iٛ&/裹` MLDUHD2R"ylpB6\e5CrĒ,@3@ oxC3$:,p}X`M~:M'C Vr@\ϲ"& @?Ăp7A4x TGȐ0k )HQP8^07XվUO~N: x!Q ؀Njh >$F=IIpU=j"@B"9GyeK6! i'!n-(9" PQ$ 9/1x$Ş9Y A*YJ4PtxHэaz_'BD{pC&DP/Bt@.(/ )CP04Dl#C=p0gIV잯8)L(T?`Y5ҋ+h eC%`#|2Q4^9RUTSu!c8=uͺeY $)&Hs:蠈 ґ( ,eǸ*RZB6RIpYfVY=;|lY^Hw CH'T ou1^6pLp^}F.[aQ(Ť"k%AG8Q00aB?ҟ>DȍtoǺխr%{E( :O|+?kR*>QFґ+D Ϸ} XiH:hȜc;S-ؐtJ'pLA\@< @ A,A ALA\AlA|AaAAʘAA|#!̐@8BA B0|B(B)B*B+B,B-B..B0 C1C2,C3 3e-xC8 C0C(tQpC8|ZC5CAC'>= `C<:DD\5(;$AGB'C7!JX'|܄*iGƀƛGz3ɄD}lȇLjȉ AA`1P1-xFtGddC'ŔT1f`BYH92,I>đHXHxH(8]4JC~`ʦԂCâ!K,K55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDtd"!1AQaq"2bBR#r3!1AQ2Raq"b# ?ͱgnfE ߸Y= .!YbJ"E{=_Z3%tŽOlc CALk>_RڭwMXC "91=*oiĕ+ʴ]ܸʮU˶mv4-vo{qZи?1p1<0c_P(ɻEڮ5 soEȜW,8} eFZ)n-l&2 :oiSrK0f=gsNĐMaiT=h ~Z+1z󚵼_b仭IC_786jo=t$ocTgЈ]6 vˁLj'!bkln[+v0$S&mwp7w[9X#8R/ۋ@n3J X) ]6[q웑f"^erUǧlvڻޖ焁,3;eƸ;k+&I35\쥴m3B(]X"w5w4jzw'zEoNYK߳ n qAZ7.Y8pV Vl^*CVpM9`+#iV`ίVU=W݋k2s]9}CӮln 7Z{jv.2 RZyD&zVwVn^*͌Ic:j.Nzػhdrv7@9uΛvW 6} .V2J57Ƚp<"\qyQ~cz;mRE:y[l˿նN}Ve}ǣEo"5i,9pR$t8&cΑp0jnfsǾپ.(O.O{>ЛuUJmRL}#+QS#\eb 6,xLcNv&cL|3Q3n]CڲysEUcj/ui3snC%wmuTOmܻ 8XwCT Tz5VO_-:Sx_" \kk`Q~5?#&)PdhιnX:1VC8.{n әOzVFɢ{mϷaI(˙jG>-Ct_5nJ,'_+cx:Vc2 f&rӫUU#5Χ9q!QV~+?&LlARAV>#-O܇5f8seP^, 'Uvݫ%0'PWZ &^ vH=}.A&:rY4b46^sl41f2 5}@.]IrrƸڒ +\ދ6o kpa938P;7Žk;gbkP0Rp'ϝtwll R0Ap#Lc-)KWt>Sv{4:^jc<8ρVpj yXus^c:9`E%+}a3CxT)c9Jc*F_𬻟[tbn:aTw ܺ.$@K#TnJ`t{ounWu4S6\h,95IƏ>`1) ”[-#8ʬ 4Қ,su*Ϧzـ sʲ]P6HqҘtz՛8jmi(Fe"V®+ utIW6<"ɭB8 ȬOKWD#⡵/ew5Ԟj&YѪ%e$$c8\'ˑ§;5?C)_TF@s/xFt/_xf'au'_Ά?CӤ(颊bƢ)K O@ɜxt2LJ5`pPiNLDυ9P ^zqjR{W>/ֱs}}KMOSڹm0{X4QVxю}QP"򤢊 ^QP"QEjΘ:(DQE9Istrangehunt_scr1.gif000077500000000000000000000200231263163240400407610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89agZ]Fkj0hsM/$vJLޗf]mlloYZXLYx_;@!r[|m4@hk. 2 {` ٍ Q 3bAy! a/K @} @L2h@r(u"60~6K[+, EATPW@@}+ { 8 s_ >[ xK@+(5 4+bX3U >" \$. ۮy[PxS_n@b=>+b#^ُ5T 7*pw 'mUr! m|Xbtwav{5e$0q_߇wWw׀7#@s0k 6x~gj hp prVy6x!0t( @lp's7*/w!0q?pp0U  c#h>vf_f) "X$h9j6]kp0_ӗz`0]w<ȁ` Gc/hV. DŽk(6yppGzV}W7wȅ#pF0p|vg{t57o%W{ Psuxm LJ2#`m '$0z %xf6}،;wh(x-؉@}(I#yv͇gwV P|XU(twNj{ 7>6x ww_ր$H!@gu8}]0gp8k-c&z[|x؅{|L(7w7hsHh\Y#pwy(&Бww(AW 0zo$w. fd ϗ0g~x5׆LgmxȁVHɏtؔz鄶Vs%\ {\ilW7vב'xm W5 8$UywyW9V9]'Hvvxvs9lg FXzw@ș |}`&yly ƸU!ЁY@xw}&b'YIgȗ}ٌ)vIwd~(o8<7zXVXJXz s9wǕz/v}~)Pɨv8@~e%9d7rZkoblW%Xk*hx6y.pVɐ}uעx$Ț#x0`yԙ|DZ(9`)v8xoVvgjtWwf5pU>ix07kߧ.:Wz(`uF8h|wIg)|I*w|mZu|iv}+Ҁ(hzjj؊' !U?* VΧj 6hhy'G4vguځ|wbKzGxFYszlgpX%`pǥ ;r( r욭w 6|ZFhp#$sj^:]w )v%<: K>Ep[sܹy$PV ױk}Fw4P9 vG,qv *J /f/;]%"40@:Chh:kk2yl AǕR9qjw}})љvH'm{y@H &pw$*뷆K}xG(Dz욗Hɂbz5ڱqIC8g woGg˦:# @z`> إ7kǂș[GU}ypp;]8 |Njz tW>BFx^͗Vs1j# sY#'"9rJ:6bTgwh /*y^IJ#1,w)|yG-WdyHy[Iབi}y/p^lpp-Lfw'wXz #i*`f(-O 6Yxڊ[qk|3Ȭ܁LkkWU:gnk9yNm)v)=-0_֫O^pc>q_xlg?7. x#g{K bEK[gޅ@xۗx4jv~|_&ZnY|3x*k.W?5Mδ.{ 9SFH~<vXϷ8_zkߪ*5P⎼Z~ܛWs6lܗ0Y.ǤW)ΫgNv/ߞ; @h'@}8qa|*wf.Om܁8(֙z¨M@. HF$@  ~Q(X,P@>8Q8.x;@$Br6,"άF`JBPD,">~H,$F%BJ$ z>`"&+/3m)) QʮJeH[!>DpqfHh" @"! Tkl@YEۘ"&q@ܩSFA"BW\0ȟ%$BTRu Hծ~$%(Miu$0aX%Ю*D`PVLfU$dFǃt 8\ 5bڙ  <`ȿ2l:%٧e퇄HLD˕Z_ǠL.M'2ܧcP"hKd kL\C), Ksx eH,?O1aH =ۓu330l p"Mɔ֨lÒT9`XY։ 7[xK<5g,,[@6,>A@`0*?Hu`(XhX-PVs""0)1-E#y'Ţa>z(:m,+NP c$.lj'6Zk-hJ?kXXnaǖd֧uo gov;三 6&6aךiSڈ98tK8q|p 4W݀mh*SP]x32?02f{xe}}Ͼh*~+X9;hٷ(X(x,~#@C. _рN>zxAt 8\@ pF{! 7BƁp1t 0B+ Z(p-Ã8<g:fokbhB=18@hxCd~E=QRԠ9͑1kD"FьT7-/0(3!(F80F!H:1sǚx1{㫠0@.#hJE2,(JRd UE[0!zܣ,r$&&xR*!2 MeRƴ29<dZl+fF5Yks'@qR$g? P>po2@* jΈN-hM/6ܰGAR Ĵ-uDhR|2a/Mq*Kn ]iNT4mHOTV31TNPtYTntLUU5_+YU@tW]kZ* ``kƕB_aqzvb,XɺT],4Z6lH9huLi? Ў6?Ek qBAm(& ؤAUИo[NZlVRΖm Z J#ĮNCy Mt y n`P='|;f }m ڥsɄGC yi^6aM/( ž&XmGUjE¾iE/k > ><< 4< ΀ Ҧ>ٕތ 4 ԶөK%P`XHT@eSZMvF[Y̦E'Pp 3ݻȹn@XP%UѤǐ )5dxi`3kvUCMӨS^ͺװc˞M۸sͻ Nȓ+_N1 =#v \C{+.t삇J EO~G&}'r'Mc %h~ fl/94`I,A944rx"0]x!/-ηK4|́&I db0hp"RU!ܸd]V' `ɅxR-b /58.Y')%&<'/|9GH/ڽk \S0Đ28g">IJ '.rR̨XT@TP'j2$?4PPZR4R,"ڨÑdh(b!7I1`!0`\%@H$) !,!f#')RG ,`O\% 0L X`#g`uu`%. !J|19'@ X3A JIJ` 2$D L`OĀ Y]9AQBE,8$ȤUqg.zH  p  +`( pF<-KB@a/x ZD4H@A$ :`~VH (qʀP pgԚ00WEP` u!C pTT @lϤy XZ̒2ؠhH @t J`ђ:70A8S"%_czP Eq05MhQ(y`:,Bz@K>u @*qZ@P x& K"%Sb A U.X0IB]La0rŀXZP~ŀ^Iߥ&^R> p~')S.2`x`>מdؼ%nQ3t2' H_'0kz"-e&@A] me&X0pFf8@j9so &<C 8`D/Ҕ@ P*'w6 ܔì~ @#S`r_ /`V޾2=N_l>œFf`>m5]w!@ˁȀ ow(TyG;!' >[nGL?d:w@J=l^FPGuiU:Cq`Upw 7A"͟.@!uz9(A׿k|u@6 rw{FNq_\+z \#Y&ٛM,e |6<%^: ]tr=0Ww0Ep&a&B7t7k@|Xz|f lPo.@hgOۇe~h'Tz_3qr`t~G@pzĵopeza$!{ %ZF1oyɗSug{w_{uʧpPW[vfV}yn3'Fw&r2yinGHjuv*LMrYW[jYg$`]Ȁ#(rFշvhhdTe6t8H7Vևg hxb gpv]w\_@xgufWRoHlV|؊ug *|'|g8u6s0| k@(forՁnPjhe?P v nƅ޷_i|0N5e-' 6Hj%P,YlPdGr?}l}IY"e^*@fXzրg^HxwUj_Б$`[$iwpHy+9( y kgjiȓ+8޴k*d(`؎ƐP a*gjfs)|7P[m_hM/PkTrpj%|VkKi+tyXH0_Bpŷ[Iրbȃx]:jx67sGq&flqXot p4H~uqg"P xfzXg_HY y:'Hj2'kߕuz&m.pdu6@eTI>d hfaz*UzfMb @{ njJ׋z._"@& lv;qUX7eX a PՋT}2ea)mf$.5PnukyrS&s0aGȥ97^I NZiVq [ojtZy58e"3 @֋g>VQIƐVz"p[..ȅzrpTnɐj k}%glou`}jVd6h%zG*׬Ϻk`miyX{$j49%0oȁwF`J$Jm̸ea\VPo:P1x"rr!(xzV4|Z^;G*oX_Hq[ Wva4[tJk2ǤF0ˍ ҡ8l,r*e)of" 9.@d 0!1x2v^C?feH6*)в(_.k;kxm;vKWP^{ˀCxg3-z|ghh{a*~ D6a &%a;u&m&J $@eʒ h斆 rumHl'U:Qٺ q`p?rl@x?P!P3Iufs hscWi)LΉac%a3YKyk{v'!@6xt}%o U9Ve!0E\k @g9oe:[.(&{Yl}jv,F;z*Gyn2VDFV'x*PjG e@&8 n%Œ[o$"uwfFj pgv|p@KYEXs<Ⱥʧ *h邨_XhiN 0tZSq  PVYd^E.l&}ڪ0miM@Ǯ꜄cL%j$Ul͌Ƀ|]j)YͤʵΈa*a lY9z[h ny}k'hJ:쫞D&'gj'c*is]|^2ͬ=LҖKeS}10)ͬ)V[K<{vDžU'`ry15$ԭ\eS n F|'ԀrXyz?_*W/@fa)j_upE_ˍ;ֆzA^6`w=gyh{}} u6=xf{%09Mj*_\+x%V_S(\z uJrk+@dY]eZ[A-Km%+| e][OzS6K"$RY)IQlfq]o]߸|U}Gk %v_a*v߀&X^ќҸ90s1 eQ~^*ʈ% ZOd2 ΀;o|_e!J&cޔS%9.9E(6^nhgum)q0S /-|'x<XT=F|gd%xIh^c)ZwAG*&6^7؈_ePlY'` mk`&e)` %f<T$ Z| 0,@D_@V+'l@R肹c>6΍{rsMY0N{\zz'@ ^wjj Pǯ 5%]g.(S$|*eid(s94>2P xrōk4 vgfiYގiyF&^z֊'e~kAg0]a&cnH>UjWeFhbȸ?͜*e2ׅ'O)O8ƀY0j}u]/&5i6 t/^?|r/jUS'P3r>w?JĿ N?0O@*w(NLG <2( drP<؂ @k{ A8[=Ks];5IA!b>=łRS4 8p5j`g#?ñ qݓml3 >ppa"FH3]8a4d2ͷ+hP<JpD=YmWaubmsjELHaVusZ0 THg6c%dQ$Y4,U)G<B3MWuݚ* @^y1jEqNvY%^%^Xn8`xy'"rpX84x %8"S=l/yw칿ߞ'>ǟza__w~J0@. d450,D1A@vKAB9 GBBΰl`VfBҐ=dnḂE44MnD'NI!EA&fh\H h$cЀ37Qỵy1-z!EH93pfp6eȕ5kAa)yp%!EȀh)ѩQ:y}%'6zv+"R  {syԦOo ԈbNS0*Q}<&*Uӫj3d)RzԠ*uNjW{KէBdkSszVPP:saTbլqM_jW&-%Xj`\24Ie38Q5iQZծuka[Ζmq[o\5q\.us]Nյu]>7;strangehunt_scr3.gif000077500000000000000000000164521263163240400407760ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a"b]Gkj 0橪gkstQL3f]o5/nmmGuLZJKJ7g4:./d~P$u 8x':ƝMuJ0%S'lh*eU5`ɜn*aÒ!,@pH,Ȥrl:ШtJZجvzxL.zn|N~  >>6> ɀ ͡ ԓٌ 줲ӊ *dI #hɳ @jP3-)LJ@1BI'Fj`]"VV9mֲE`Hu(mڵ}} I^zZ({d&i>h'L hӰcR=Pòsͻ Nȓ+_μУKNسkνËOӫ?t}{@ԅJş~H(_*P`$̂*F"!!>t ,""&^ɉ8JH|'͠cH%<2-~# _ȝ2R/839ȣVbDȏt%;PYyӥ/_$ L?cmd|XCP~I$sgk:*Q.B%7(M5YSmH'`9 L;bʎ<%jjH {s:L gtoB`Jؤ3OXGVfYH"> eentбP fسH/%"lfęgkי2‘/%Vm@,ǐJˈh>ȻB!̂q -JL 7*E.]A;=3B#4W(uvj j,E=/EJwYbٮ*+Cɠti݊H$لRۀií)^6"ۙIzfJ܄1\rP]+5;Ʀ, \N /8 nDf mQfeӦQgSD+!Z嗶sc/o xt @耀x@4 M d4%-C<'M@AtTF ܜ0@2FȀ SqDA b$)C†EA< ,A8?X DHa 1p`" *VQZh+`|DD Np\@QF @0 N?` 8Bآ^$@2pN"c!ZS~1dDT`, !("aT A"!HITXaXA|)1#i50 Z ZSe BAP`s<@,\ecq,@ P,@m<201=D IB3pA;41XX0B8P? 8 FIZ Npq:@h -=iYP yP M.0*XWѫ>)M- @J8@w9R@Pb Ь=4Z ZZ@\PYѨX@-g)pX^@mඋ@=M KWĠ@&Z> PĆusYΕ@c)R- ܒ2`c<]deM@h֫55]}j'@X>'02z$C@(PAp[^-}\ڕ(`b 쒘b JF@?a7 XPzu0uCx Z8# :d^e|I`-a3'[0@%H*gr0@L."v8 |^P-jW.`ZL 3$NdjY^Vm|E u? @/@#ef@\|=zujK R#SY-ྱޯjGPk-@^ u+2ߗ P3b/퀧-g8^}@<@.Wy>-ld^ޘ6 `07,淿9kW6=h^K a }pps;^fxUΒ(h!UUCߚ:tw!]>`qY0usty/jI'6ԈAs pK=s@ m5F§:$@ ]ȃKojzl '9L]>WW}YkJvy'w{egaX{{7|7W'I$ eaw_pF}P $at~p\U~օ8`yYwWnEO'WFi7$ wY&XXv_Www4TS4FW^`]J.SVuQXd'&l4k^P&tHsgw3jP1w xecv9am&QpTEW~C6UI}vM Y&fwz pv5FfBk{l{Ѵ\v 80rv&gAc Kjip[UEO!`UyV-`Fw^8PUxߕU0VUUGVVFvh0URgUp8*ppqQ(tT$~r~WrX[mr3Ռa5rYjW"]'a#`g_8x81@o8BCRetglVue42 hjm󵎄qCGV#pae,k&%-|pmg¶HaVxH7tT8b.Jv]Q kvyi]4dV#-DRz$p q_WiWgkw&HqG*vU 9tTld0[W8`W 0gYk5Wx5gji a,&jYuw5duIbCVFg 5g Y6IXs)s5no1UWVUH&Z@YPxfW7l˥䦚1'\i{(PJֵe-Umt\fW/Oȹ\vɈ Dh@Y7VlVVxTu(X$[jh#R~yy7%\0$IY,_gkiXjf7PGm4`zӇbPeOu8tb9c  uHHV)3vugIb-YFzWw-m0У)@i0VG:cXc_p-gRz%v%pjOg`9Pdglj\gJTUetf"ZpP53Й֘F05)_#vBmrzWfŦvx#\%jeibfx%f `^F0Uq 0div\W5{$F0[˄0ЧInЖU: ;u^E]^xv+*`W0`+639sk2:UJx^ B'uv m2 XEٹ[墝Yµ*Z!`*gUq_~gޖd|6d)%ub6x {Ƹ3֡EPؠ^ٴP6nggʷCUd#7E6_fkږFCYwv[KY'%#kDz|)XWi$0 JfwaPPOuUjzU&`AUw;1}{jEue]pgIsZV+t;n8c3Ǻ=֧w Ov1x"h\xJOj wgCJ!pvK) p-a"X5EjfCD$]da0e*_ee eV]ė$6%CuE:Kw|z(pO: kKK65sy] 8V%'ۇkObvzX\K7b&NI̺qOX3i)EVF%kr(_,}S{mY{*HKEi0햶^[i SKV2lpM ]W5rB#{[%F1_wFJv\l3vsFgK (~Gi-+\39cY'X&)yaۼ畍&YWic[+{nPėS鼟0uzӌ0Y+a]Ȼr~|l380_gsDx,5uэLtyd|XˌW2x.(f*i v5:WmdA\T&suB\{&}sMXHwPPXMVXE6bzlI0MnjM3&X(~wFƗyR͉%!Fޙ*Yӈ-`yVI,s-_mz'(e|xɵR<ɟ=`v5ڱ52)\ ~#K'y=Hq鬷p ]~E]\:i10K"s)ozM1n"auUD Y ͅ^d6_$zk_%v[,@"j^{&ܜ=#l;`uiR6r|Qڗ\9kƱ|煫ZrdUi(%@zǴY➽ٸHWGfC@:g;;z=҇ii8P)pL.XLb6 F>-+|w^R&)p[ed'*nwj4ܧjK컀\>p z3FH~QJt~)Ef(PVV͙>\+^V~}t%UVʙG4М+=  iR~BDD$W5SroRfJ EN&N@'+ꌮ8>B]IM#UB:X2% -z.S@ 5d"E$MͬdCsdM7X͏SQ 'R=JZ]WPpRۙeBN; 4EVt.QF/B[ ^hfBs=0Dx KA?n.=2́! (9#̰b{(rQ%$-ߒ#RX1c ;n\rUȰvwoڿ#@ Й7€bgWD+@Fm{.Ǹk`1EgSZq"[MM >~3Ds΄Ų53;4&ăPC27P j³8:#h@Qƹ* KBRqo76 C!H΢#I dR)Raa "1,sĒa D13鬳pN `K75SL s9 9+R` t4s!GTGݰ;SV]5Kt:`U VGaǃS5BdS]W[%VLa N^ Yb_=6@hQ-6YshEStTgɍT']eVpm\Y\Ju߀6ކny4 G׈d해`U#f9ё]Yfo 5@4~X[xRrea&ffH"v!nz⟵NZW`P[b[nKnn!߹￵{+ȠO2oZzq1\}tOP|IE_a|_ {]ݞzjމ/g'ߍ/7Du'n>ur|ҷos'3`7|7@[(qs !4b{GްY[pA σ% 5d 3 #fQNq 1C = !t[HeLq_Mx6rkK>-2/q0;0@1ό^1XCMq}x2Or ~㫘BlЪ$+K^/hڤ)ӔRrdeVG񑏺 &UҕbTe/aiJo|Ide&Kaq2"󜴴!%I^:sqd+rnš2aYQPv}$=83NK(K}vPԥkLSB 씧=OGTE5QT.MuSUNUUUn]WVe5YњVmu[Z ;strangehunt_splash.jpg000077500000000000000000000054271263163240400414310ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky!Adobed}{ $$-##-*#""#*8000008B;;;;;;BBBBBBBBBBBBBBBBBBBBBBBBBBBBB##1##1@1''1@B@<0<@BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBnd"!D "$1#C !1AQaq"2BR3 r#c񂒢Ss$ !1AQ2a"qBRrC Nm N6Obv49mUC<D5JK_YY@ku]KZJrh4x M4Qܤ};FVp"Z?7C.Gc>@dzצp'+ T+8FΣ;rrL+dKY+ Pg ],d8>IcܸgíZ4"(kf. yQeevJf8g k0U& s?66a8[K C_.qq{ $@ڲ؋l L8( Aar8 9.9+1#C9Ҧq:N C<$@=Gr'WEdcy2rDԤA^.>8x2a,Ld#3pg?}~?ߝ@_#6M5!.vH ,l,l6 *5؃6;'&˖83 eo=PiwWU94j za7QV^քqw5)\DתJ-ZoR֨"޵vT&WeDT<8djvh{vY&Gf/s g9s Cd]!FՆ*mMԺ֥e|E3#(YEsc_gkaGq"}3'Dr£36:JIf}iWjϴ'0t"d) k ͹Yu%%1/J5V݌~qeٮ[zKm'dKG<<s6Sl|Wr0fE]\g<}?.jvy˕z[F6'kx>P c;v(U0 O3놧{葫jY m^Mz|M-Fo[<\:fߑ.+19VF0ȹٞ[劣ŷh%Rr4be>y/2~rSzy^'~^x?1 N%)cJ>8f=)Q%)] D(#"sdz2nCӖ.&G~uZN:>˳e&6Etwl?UuV ś~S[ 4V;zs[T/Y`0;oX M÷Aґ,{ۺݢ;wS# QƘ crړ 4\E<+B  !-HXɗ̩7B}s] $ߕ,^i`-dɩ$VSWVNKu層?MN7zkXѢ&M>s񌖎|]Tzּ?7X5?*IEbmGK"72xe%v^ȶ*43°(1r@ֳ_:L).%J dq55@")pZx:L*zE$ƥO`j Pⳡ#I^%Fȭ )*q&[ .b~({Np,q"f+ǀ0>8"WjJɒ@,bZ|'졅XGi=!d*0ȑw#˲{dʝ#z&@b?ҝƸns]kYNeuv1RAgvH1U= ?AX'sȦѭ։r*c u?ou}Ƥe<4 NF0H0#8- Ge* g*͌@F6?n1@dBZ}‚5OƌD7"(E@G(VE(bYx+iX u.o#@p6i$w ;ip&<4=>RM gr|8nT?S?P*$ئ|bT564[ ;E3`Uqu(|\uJ(Y?{. -~7˫D׍e~cLpRWkj YDD'SoR^/LVZ(x81f)a=FDc_ ڃtI\N|0uJZ]LOAB: 3-nhtcJ͖A\ct\ڏ[}s {441 ^?7/`n k.tWEOKޝ~DG*~0%]j{ժS=9ҷiutastydish_scr1.gif000077500000000000000000000104121263163240400404340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  *"39 #(:A!A E+.L8:d t}9)u]R pHfUXsqGJWMOm\`_\as`__c[qijv%.7); G UGPM \Y gjsubkzs3J2V2n }.~ZZLY\cQq`^nprxRq)11 )RR-T j1RLJ)Kjb {JRR{~}bRZZsxWhh71#1@񠑉3FG8t`ƓH ^H#0ci! ܸD $:ʧH?"@#,&HaMdYqcJG*+Ă?t$F^Yl>$*ʕI2m3ŏ%6aE+~p*ذ:DPDŽJP>$ihUUP ! ~%ϚS_(r.D%#)f@) ˚ e_|ptJ`U:rE%KZ%6I֭7a)4BV$D|pQ_QpRrqS'lF@ (F^ŗ| ~A o$5tĊHD`D蕤 (0hVE\p!B3"4"]a>O"amPA(p OG_hߐ@)dUT*K H|Ul((\ĢGyޡE"Kx^FQ^WrjnfI*I(&Af9P(:w%@)zrwnf=( :8y)"h-zr(%K+KQ @RHhG| gpQ s0lr |rbЩp *_$E$qJSB $W(aDƮ̰/ܴ£8m_!&KQ'Wph$V[U $ %pSk,ހN&1*\p*U B؆ 5DRJ(qwCBE܁~u(c=+r!M̈́rCTS(W+g\v͹ȗzT8M'WJxsOοR)+9(Qq0@L[+8A@jn|Z.pWĮ} *务 P@  aw(L AH@M\ G!#,t $d9*@! Q:p!6HElhO̢ c_8WE,Ztb(:Vqt"Qx~N1 uPn3 D%"#6XE+cX Kˁ(P DTq,e Yrsd%x^D/}INzF_(fY화4\V0[&JQ2,(QnrҔ5MwR%J gly~؍ f>JIno%P`r? 9 iA,F:W.@Җ0,LJR@Ԅ!Ӟ> H lO L!v7J @T]BM\SSͪV]NJ ԭWxֶ#LԠNukOחpԫ`Ir*houdAY2ie1B,-X⳨=e1ɮMmae!mfea-j+Z )hou8,sK[mm B˥mrǛ\䖼Moz} RwU|I!IQT)16~L:5 #La#"\wz/›T  65-ax{6v1_c~8@r}Ld" 9¢H(& PL*[re^`|-xhN׌.p/ksγ>.MBЈN F;эV JC`=i5oӠ,jMϹԨNW;հgMZָεwkL:ԤQb{؆v5amf;Ўv)ȻPS[ζmW;MnqN]GMzFrN~O2g'N[7{|?NW|2g~8Ϲ9ފc %׹ЇN 7җ]YԧNGXϺ]n{`H>@[Ǿ?x XoO~o<⟿Ͽ~^?zLz|}'z ؀H}7Wg[x}G^ȁ'XN*,w{&N&-Ȁn:7؃֗y0Bg>;L؄LxG7FxZ\؅^ȃm`z'||X_l؆;0XXp{G|\mz9eoLPΗzy|ק؈؈腍ypW;Ȅ7PPȄwֆXX@2H0H،h!P8|%?猢Xl،w|l긎؎x{dg񘏌؏?eȈH8rАgҨ ّ Ɏ'~yzĘw6, 0)4鑙g&-ٓ>ɎgB9DYCY5il@8~X NiHY?)FyXZyOPSbI@fy[i{ćF9n qr9t)lyOx|ycY9uI!yЗZ n@9s@ɘit6pYYg069Y   9cʹ͆il Мڹٝ)ipy虞iy ꙟ p6ɟZJ`)j$c 0  :5z4 B "$ )cɢ.1AjA !J`@J 0 pP%J(YdР& mХ $ tjx {TJ ijZ/ 𥫐BZ6@ pZ ģ)Ш* * jBZ}J>0u(ڪ :κ3:* B*ZZ p`p'7p@PC誮pJZ kF ʜ JZ#J'(;tastydish_scr2.gif000077500000000000000000000110031263163240400404320ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a   *"3 2%#(:A!A E+.L8:ds}9)u]R pGfUXsqHKWMOm\`_\as`__c[qijv%.7); G UGPM \Y gjsubkzs3J2V2n }.~ZZLY\cQq`^nprxRq)11 )RR.T1R1jLJ)Kjb {JRR{~}bRZZsxWhh71#1!8*T I2m3ŏ%6aE+~p*ذ:DTǔ3JT>$iEZd)~%ϚS_(r.'#)f, ˚ e_pTOdi! S uΓP셥m 4[o$m@ en) tH"KUa5WX(Y!\0VxJDjI2…W9,H~Ipwo$5ĄMT`D j .geba,d͸D{\lAO(Jbmd*q OW< yߑDi]%,P4DMZx(O<ʄ\jVXbB6,bV"f^$.J,pb}**ԗa]hjhv ,m*ҢdvZ hJ"r,F-_L#66+nW-clؒADs[q2,qg4ے@* `r|J|vr'-xb*!HHW 'p'R42Jp0\iC}>c Z&#}H5զ?u-sq-v2(,qp0 92۝#C33- bz `E6#`HX(bxĆ( 1D(E$|b"oQጋbx@ K!X;yArJ(!9wa$J"ܤ.oIl2zE2d+O \pЌ4 `؜-fvc3D?L5f¢3xRs[:On~x'.─rPg?ګZDi=> r3 }B+p6ZU(jԹ*jY]%/A  Hn}\*Imp bNl `fu\>Er;\}n.\ANd~_n`+K`n`7N@puK`I[w¹{ fDWn50N!Z 8αq f`@qF[8HN&{Nh;Mf2\G)zU޲L{Vs6XnYψnF;s>4MJ[ҔN47N{8^RԨNWVհuYMZ;Zָεwk[Ѽ6G]a{׿f6Mj[ڸ5n{Mr&6 ucw-kmӛη~n6?x;w#N[57{ ljm(8V0OE50g>s@Ys~HOҏp18}Pԧr[XϺ֯tCSCߺN:upsp~w{w&p;^ 'Oy¿}N?GOs^ #^~)xKa p.0ߝχм0'~C,[_Џ|@0A_O ]QS~ xRy`}{ ؀7`0~ȀSwQ}]h&x((}GQ0Gw)(|rP6x8988R]}1ȃFxHIyT018S0JxXFaX|'x2hjW{ROȂ7axFhhMO?0x|xlHG}Q}ypsp|x}"8G|HlRPyu؋h{?(X،ȋxz8茆H'ẍoPx蘎ȍ؎޸yyܨXx؎͘xz7֌8Y`@∍9mw(ّ9 F8Yv*HQ8pP6y86ɒ<)T}8:9DY6v|6=oX&wR9FYVyX|Rp9`b9cf9jfYPInyr9`v \9i|ٗ~t)6)E9zi٘٘9鉊'8ٙIcIiYy陪9ٚy qbٛ9v闧'PYɜΙ)Iعi 9 q"y ⩞ɝ9u0u@i99Zzquo96ʜʡʡ":$:* !*ʜ,+ڢ%Z6jHiZ!]]4:= ?YCZAzLڤN5ڣ!9F*Tj4U'F `bJIj -Z^zifcyP 0 0sZw|: Ptjx<!jZrP s 0 zک Bd 0u@]ꨐڅjJܥ*` j PZpɪuz *ꨋzʫݪcoNz = jJZʮ *˫P: =  :j+    #[ +$ & k p@: 9Êzz9+;$[ p@uN RK' 5z Z =a;P :]K^_p_ skBtvx;u[ۤ˪:P0*! 0ǚ_pwˣ ˤt Ǫl; k[+ Z.CZ; ; x*맽ۼ[;tastydish_scr3.gif000077500000000000000000000105751263163240400404500ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a  *"316"#(:A!A E+.L8:dL)t}9)u]RmBfPOsqGJWMOm\`_\asaWTc[qijv%.7); G UGPM \Y gjsubkzs3J2V2n }.~ZZLY\cQq`^nprxRq)11 )RR1RLJ)Khb {R{~}jbZZsxWhh71#1!(*I2m3ŏ%6aE+~p*ذ:MǔsM>$iRTL)A~%ϚS_(r.%#)faI) ˚ e_pԦK`ܴɴR:bEI&L*ŶJ֭7a)4BU(D(FF}5EXIJPuHH^)z1_)$ZjlrDXU|J7_~wQHFRCHHF^I nGHQYS,Z" ՈSBGgE#t"z>ފ2&<}Jc})DRAEU9DKD& Aň -!KDV&@qPzI01yPLEy*ZQ prJ0&Zh~&lCfA@'Rb i)0 tw'z 0J ۲m)ۺʄ'8Jy9I쟚 0ڋ(mULƩt1Ghr&[q.Px(O!<1>kߝ*mwVy @<4Eu ZFB5*#^nm"8-0>'`99颿x'T; *G>M5bEt`7>3o?<ʝsAػ͠)@@e7@5ʥo]< /~ʫ68 `u]R/cK8FNnR7 M|^g(@ "0MkBPT O,Lx>MnR_,z` c1 2nu: qbl"$(Rc69X-ӣ I0#11"T*9rS Mz#F7zOD!%9b@}#hFXH'D78Qt>'ؤy^ hK0PzEP9ʔ׺H>VP|K2~}~oHz{_ >Yȉ~K^<7p^Vb/+BAN1z8D(/Ύ4AkZҌqO QGU^c^רk]fl,浭=h?ζ-md:pv]\0D4og7[AAB 5'NqN 7^{\ p<BWrP|-G(Є,d Mb<7A1;8·;~:ބ&8Uy.{!mohO;؋^lW>tp?;ݝ׽5ֹ; G|NvK=ꆗ{'O#8' &GGOy7~O~<_O>}Mw>9|k~O|̏S&Wԓ͝wG|~؇8@9CYlDy?hLٔNNR9T9PyXZUI[b9d]ejlI`ٖpad[rwzl9yP9|y)٘9Y y阚ٙIa9Y陨njii9yYٛɛ)Iʹ̙IٜYy9oН9Yᙞ깞y9Yɞ񙟼yٟ yZz  Zڝʠ:ڡ:y z$Wڠ,ڢ..Z0:. /jjp9 ^JLʣBVicMZVzU*:C 8`~?? eznlvBa:1P mP D  E0 U}_*ʢ p ~ Lxj{:^x D\pcJnZrʫ{*Ы:pzкn*pL  :抬` ڮ:oʦp* [ {JLZ{J4@b@ ; p ۰(뮺e+Xд7{9@ :L J OQkjhڡc pp[t[;tastydish_splash.jpg000077500000000000000000000054241263163240400411000ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2BRbr#3!1AQa"2qBRb#3S ?CkDiѶ@G8/KnO"-\K!l).F^CwM۵ݨ650bx^=͒gܹns_AEF)w'ps9i߇mwQ0$gQ j#;&R |IXRdp͵u@ƱNJ7S}&3mކ}"0cM:V:s3o{ܺ Tѯ\&v3LL(L{9L,t~Z1`kiP..y@3F;g³aǼx`u*AEcb+Lyp$GG ۿ_[&G:ĘjJ tȯʫc$hxqeUÏDw2m-ZJ'L=S xbԇ83ɏM2#)֨ƌI S8ֽ6";'$}k3U5)tV~3OR[&FؚV/m+8`9hc9tFd6<oʼ QȰyh9i [nvg&Ǖa8vNR)'αL^zhh|qkÑ}&r#?Kn<,-u+AB*ҹ*; q93 /tŤ A՜ab]&Y=$xk5꡵a/N)}XM:Uż@kQ5TVE͔N2.lI36l7lWnl۠[s f !kq;#jxȦ:N&R[R7@T}ڡci<[$is]C2o#J8Xjvq^Ž+J:w)jCPIVY;^}{NqT"3:%@B(V_Ҩ+(9@`ɕCeؠ, Iͻ.s[)!28H;غcʞ:Yq{B ]%t7XD9cَ7|ic\aX#3c[Z-y7StCvk'QCUytw&- *.C,l-|fI[$偆X#zSq:I б`rs\Jfh!zg"{YBJh>[^is,O _G V.̧zS;";mTQqʜQ /'Y]Vr 6e@I0~ljc5\l*yu7'n4`ELjw6q1+ӷS&8aKg^>&,'|O bmQ75ɻtܓF v yq͐lDN)5~)l+mۊ55dV{( E f@y#\3d?cȚ{[5E (#.NFъG6ܚ%~tTVw49s?U(fኚPt%_$m_R{C@hmE6XS~ HDː[?||[L(nc>L:{9#zDG.#erccK֗ CA +xYjK&.u4Q*PZSF%\I4mt iyW+K@Xf:x_ZN,pu#6"aV2á>R? ՀyEr."=3}Շ{Z(6/reaO,HTIA,rohu6c8E]XsY@(M؀[&yQIEʼnqiv:ְ3$\lٵjj]9,"DX.ESdU<,bR}1U D-T0V2 aqܛnёܘ'J}+}h}>rSQ?ǝJ5OZzR,1FhU*RN})/i^6L!,eff g JVJ YRHxخIBIYŋF#xZy%vEɓQȲˀC܈!(43ړ:T鲨ъ8riS1NpLH5vRwWrd1sÈf*py`Zm+ѯxjWdӦiJLxrZ&aT2KOƧהM.`&TBBz3N z @ : m +@:Ip&ier.ylUـZ+{6 %ЛB P/` fѺp mzgl+@p+sS+$.n[Ʉ&ҢL\,C ?l%&W@H.6<5H]m.2q ȰB~si#jI{̇ϭ:w؜w_ 8X* Sn p׍W찟߸{9 G&'ů쥙t[^?%~ g /6Toko97ނ@v@9>MURN}CZ/1@@=w@pRU BQkX2 . ` 8b {6x9t)paU`Otҫ^9ڰg+ ɈIX Mّ^\؂ɅQXgh cJdP@(EC!ICfl{\(GJ}jJed+ WT,C6LagFK@%(P٨S(+Y)KŢT2JRk%YOg8]I)O}.f&Z:9[W.MH{NӴ1_* )}ZK6J:QR 3#1@2%ц> ԝK81mjUJ (Mu4O fL]їFp)1aNN7''3h$e@aVգxB~IH&ZF'0*V1A#Q65J, ?U)`+Ht%lKZ26earZ6D ٙ. U(Wf-81W5kmjQֽr 4UnbtDpbKoH _tiݯĔ޸nw2rw]xѫ2t}|Kͯ~LN;'L h/ 3T7\`gX+Tg@gs1f{lyBqc x+~c/>?W.xrn 9C+4 X,QoF h йcp p F2%Q_GÙ3uZg{.QSu9Pޮ࢜u5+P=# p1]yVt 4Wȶ5}’ؿwbL@|eDu-ns?[x&pM x-pmotg,mj\&xs;opXflS|׽U oT#wsqC<'Gyrϼ1g0i\ЇSFЅ`CrI_:GJTѯt D00c@ `@h" ]3 wjg; } _=kw;.wf8w{ԣN[@+F`X@> 3D|~W, }>|GcW.pO}_|'swo 0}" g30yw hp|s'v'~'Ww} w 0"xwwwb){'H{~ 8$|gz}'`7wj7&x}},X'rG`B~G v@ xp7xGg!8Aׅ7>(HGp{'(w{qs8uv#xXgvXw{} HG @x`48`{'|"WXr(W{Z{w{gvf8G'v(v8r'vGWxcgȘ4ȌWxj {`0+({(Xxx}@xwA8f菑h9v Y~'y}} pix ɐ9 ((w7A0B8v')P&)g#>P0xw͈HEyNQ|هY(TiC[هX@|E88wZI: HPi}Ob А 0P     Li$Yjy5Еǃ)gP;w'rw~@{ |K@~y9f 0f w}vɑy5 2jw|c =?fp7{~p9j0Y9 ,y pJ(3w{X8`Gw 9 <>5PAwIxawB2|0B|=ȏe(yL{Bv3G}w*0 xX)"ŷ~7}~AcǤ@ 3hu6XxLAx{h0@z|ާvW%ئ9:+5|wZy0z েw/Yx5ЅhW!y> ,~.sgH: @[ȅB8~CxJ~٢f|ZiWL83hLʤ0{KpHxqwK`y行׌ 7gg`zʢ)v͈'Kcwf燾xph#~W8A{iHx% bx1[|4wDx)+!ɞcu @5 p;!+J?Kx#wR{<VK7! {}۟Ԑf Р P$I ;; = Kkr #i۠ g {țʻۼ;[{؛ګ ;vineyard_scr2.gif000077500000000000000000000057421263163240400402540ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a2+KUcx_ȚRT*B͟|d5|Q1wDٖuq|\fSg*=dcFZ- 7Ч*HD'S)___a0ĝۄVzyЦk׬^6+k>zi \ˣL!,OPPQ-1-17NhπAk6l1#AƯŋ$B y4Cɓ=b\ɲ6%Jp'CқFZQsIhh%p8})D54b:Ѩׯ8D"Uj( MerkaXPcƌ$LzRՈF52E!X(Hj`1Z##6ȺG̰]J|銂1 x/nH.kčKǧyk}Ë7<ӛ_Ͼ˟OϿ(h& 6F(Vhfv `$nxb(ڧ*Fch#5ڨ8# @AjQi+j`貏*ĺd, ,(6J":k-{l 0;@ .Kj*A.ںn"i{> 亩oB;E* )>\QZfŊq)ǚV^  l33TPh3;p@7Ϭbx)gȬA8K;`lp:p@ :+p@PMDGir $B`ED L0i=7uOl\iMDp΂0bQhCl-u+(<B s/^;Qw9:O:<;CmފJ/ͽQxڶ9MQ0OSABn~HVr ( t@B@@ > @ Ƞwz9+p>͕|`[G t \<#pj퐇W=o[M9DsBG`=pE2_xoew>[RG.sPYtPA7p!R,o0Hs |TR`KZ|2P$1q.+6 Ng z; dl#HM!&&LϠHPugܸ`'UA~jEsWl@zRmT 'H?@(+F2,و=LycGJrp(ĪUhbSjfdV͚zAukY9ꮎʕ(f]U!kxm.rԮmU:d'KZͬf7z $%o8-j վT}`Hȳ6a-`%jYq饁꨹%ՋD(AmXu;=aQp 0+JT/lUZvx\Fa{՚!ဓjr`;)g6Ax:Ώ|65f3^VLIf8,u6Kqi2"ȥٍo%Rl6yka$i @Mڤ速Yi6+w&ے.G_kͲ7+Fxtv; ڽ!@:>mo|6F;A%ygG?4L, x96h j{͜\M'^7 }u4ݶ9ZiPS^ϗ$ڬB4~[h:9my;c#ܦR}n]Dlr%=w|nIl}F1I$~P6Www~8<xvLfm߆PO?-U> `1nILFo(`$b+ ufk"wHk3[E6qq`mRΟ8ހ ݶëVlvQӵѴsgd\[+;M AMg_߆,Яos& z~D6ID өon`؇ zl}FF-3~{OO? ݀5m ۨ^ܿ 7x7 ؀X( XxW!X+ȂH0( ? #x-8)AHH D( L؄NPR8TXVxXZ\؅^` ;vineyard_scr3.gif000077500000000000000000000121431263163240400402460ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a+ٖK|QRcxuUT*Bd51wDqVzȚ͟|_S|\cfg* \=dZ-xF 7Чn*HD'S)a0___ĝۄ{I׬yЦkzi^6+k>ˣ2L!, STT UU 5>5Ji)\p{;Gt J ]ˑc ! Ԩ[×0cBn ܛ)e3\yiD*]ȩPVԪ:_L"!X'naԷpɓ'6!$_KzVi4+и=G] 5B%ċ!h-%R.0cFrU0gւ_In L ZǍƦM&;v&g M-!| %_ʁ/d@7=7F@B9`z!$| ~3cxp~lIvS]y߼s*~ě6ލ~:^{a~P@AOA|p?F O R@p `!H! @`8mdP H ;P/8$u`x p@о0 "2(!.|XlxC@  "(">@-1x@k(OJz&C< 4L@~C>} "HF:`6𑍌:2  2R\ K:Z(R2VG> \ 'y*^L!c6sl|3=2@lf(IIJd&)@D 9 E+~،!; b>(kϜ6 *)DgxNtv0@co3$ ́A,QsdRH\BZCiL!)F@Jf 7Ʃ LeEMM&@0"YΰNk0q&eThR_ ~㦕T$EiLi"pF:z*PP%4sHby$(Gn! (qZƢEѝd 67+Q+4g IR{bq~!E"2qnKܯcKnrZJ@uM0vnXT$I@5do87#k)F rQE/y.0)xW t1R~U7oA\ȟ؞F:pK_ 9QIBP|t1:Ԥfp h)<,6i?JZQ_-ZV!(%qIq2&@&~#U(>q[x<w8M$xs0ybۛyFB̦ ( BŨ7FZ|>%uPuO[7n6 hZ*uO}OϪAva@^ }\2-Osv/2|}\Sܹ!wJ' X .v0=Z: 16t@f im׀hU6o)R鎀N}ɧ=|#@ 7e >6Ty?b]spN{'|Vӗw7wz%Gx )=W%Ѳ-W zWq};)%ǁ!q&+޷~)ЂChSoR/R.7|qa O@5>>C>C?C)@K DF BA @BJ7[%A$ tADF3R>4Ep ]%Ac>4EmJ5G$G8z4C=KJDDAvHP@߅Xq@ue]nB]C2TGiP dCFb$hetCqH)$LE>f4s4v]qt F ]*DaQC5FntafHHTI$C@lEP)BGuL2HZvA%HJIEGdYZH YTsC$J@QeK$aGTPgfLzVFUVK`gtjDm.0(`SRTKNƺ[/V7ejPZ4QZlVԯ۴[WU5"6Q@4G0iфR)OmMDN@lHfE'"`S{eDGVzS0KT: eô%<;SP)[„@ Rc4iDYx愶\MC&n$Jh'p"H@Wt5Գ eSc%U宭@#&@ۤU55JDJqTQEjhԪSUŪjfM@t .@ʵc `WYkQUZ VjBtNkE`kaVEJNPOV P  U@SϔNkQ $p8 (*AFK5YQYODSUC O YZ$Yk{FYST -20 4LKRek$>@Di{$ +cKmzLKjJJN5Q t>FHZR`KI;`lkd&0ƸM7,5< 3\4:]24EH>;JE|(@$N4UKFX4_Vk_[O˅Z_0#ez^iG;LUuf>@D#w-,q5-JXEQF_VTH (g*LGzFtMtF&L(b<]6uC_ND Ffm4E^ŤTx^ ;vineyard_splash.jpg000077500000000000000000000071431263163240400407050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky!Adobeda$$-##-*#""#*8000008B;;;;;;BBBBBBBBBBBBBBBBBBBBBBBBBBBBB##1##1@1''1@B@<0<@BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBnd"13!"AB!1AQ"aq2BRrb#3 S$1!AQaq"2B3R#C L{| />z9,[Yzv[Dr=ڬM΅_3R,`l_avҠEܰ*V&̑dP-o͗ hnUJޫKe=\gVy(X`JZQ^K)jڠ6穢]4 BBS Ii}YڋX2-ႫZ*LVx. :B< ^Bl &Gr@mB 69dɯE!1Qa=S<W0pW30=SimdT g|1Y36ogvX\Brс4y3V 3GM>y/ɢ :dnz*U{z׌\" ,egJ1i {Es'X3\Z9Dg1,HL@L9L7 s|OלXGV):mQyoiEF \k^hR 9eZ?\ m,Ze[q7Wѵd dk]kOծ$`ESQQa1QwbȾVܹ嬽El{T](sFE'6v`Nrsݭ 3_Hej@ lٖ^oGgo .;t@оljcK] i:m2 t"ٔ[R&7=b~nQiu30q$IZil5Bo_~djǕ׬Y'څFohny/0Zh~)"F%je"ANvhj]e(9C!%+:d$Yl @ZU!en[g|@{D6kBWGM]P ܷMARcp+S./wVwV6Oz]V-|+m:ۻkov2v=K^">c(aųvmmA˺.w?[HU<'8[1/% ̌A|M\ns9m~U %Tt.xiwøԜmsU92HDC7Ti"gFOE\dmP3BЉfۊЋ׏zSf :228aRڒhφyh84Me/!M^D`x)ĻS{kF2p+ ~wgKrq4\Ͱ=YBS3\L m|k#=6 .tBb94?CY'۶֯??YZs/Tr^А0ezX cD nB1brj>]R| v.vTGN9V>N1Q]qcPEv{R`N!Bzꁹq ?*$]i}Ozj[+::G|=\P0-D8SZ8{<ۧL4|UP,y3˂8bÿb:G{V+/W?OڿU&sOjAv0q\J9^ʆ6 ݼ!AD~t"xEԟ~HhU9Ul>4]<\!`؏KD}FE*)Xn8Wc9$mFGf|'~QƦ~cAPQ/?Ε1p"ʻ,QfL L<8P #ĕQ`Rrv=z7*o5b+nAӟ}]KW_tEo?"Ȫ 1#B=󠡑:Jθwz:vLt=SmÄsC:ck'58Dj4`?Iؑ†%KB@6Ά"I{$쨞4D Ɂ_QM[FlZH `BEѤ:7I F`:\mlIkFˏʛ lC±djz|*cRXQ?9V@U1ӧ[yqƓ,pXUɴReeb5#aavUqnw\ϲRB-}r=XR";{6K&K0V$S1X\AJ0{ZD >4c<$ǘC)=%Kz1jǴӜ/IqqE]7 㧀iFX@<*Ghh"؟~aRT1G$c)U-`oD i%qMdÑJ:9߄.@a9wSey%D-ç5,MC6ycU˙H'}cmj;i?j>Ð tzƻG: io}XcAuPHV?QfH>Vb:Gl{⑳2f5;NLnγ yx}Wˌ4¢N~}7mWkV [۵WI׶"ucnc5C]"DLVR<7R@ -D{)c8˷#VdFG}^#kb񑽵<&C P54=JIfT766}1Ʒ#*] i=ߠdȡL4/%EƬ`=Dt]Ue mmx_Ȫʿ'{` cN\BF,K, ib?|/n~k~1g¾a+q:[R'h;ݵd 1&/k$,X%J~T1qoƲnf/[Mدwaterway_scr1.gif000077500000000000000000000160341263163240400402710ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a   *"3  )#(:Aj!A E+.L8:dN L)m x(1L1y1q)asfb {Rqj@GJWMOm\`_\as`__c[qijv%.7)418 G UGPM \Y gjsubkzs1I2V2n }.~A4Z[MY]cQq`^egjkjrmsrkrmuwvxrxZbm ))AR1l~}{711<1½)HYR|wrRJqsmԜ,szuz&-*%.(HL&'9 d%,F \%pÑHU\ Rv4Ra\d )D">|& s~ @oa! J8B,fY8%TSO\.Y~W2׽z:Nv(E ИIJFyntɤP.!)q*% a2(|0G(Rf^y~/͘R?LH蕞6BT(kʄ>T;4)82E OZEE(G~)/F  kGP-!ob;GƳ+LDEd($ѓAo|nQ-E M&bE'N6ʽ{><]]*?Y7⥉%bɩ`!9>T.pdz'sdu;:j"| Fy]F\fX[C,.N0/n#'ι/zIQ׹3"fGu.[x]w~AGь^fwyoKJC(k Yyh}x=L8;Cw:_=\ 畽O|0"϶)Z<:Bsz;fozXUgPauLGpfķ+6bC],oZ|ζK#09Rl0}(;2~Lb"05k!}7F(R=VakFr@cb+D*v>#"S\P0_qWd/607FCV"W҃P#$ebІ rEF?cTg~.0(s,˱d^hIx; dcpo ԆȉqC>SGMt-/`alkROSLr`cWr(0&DZ%%Thjvo->1Px3s5aoW ؉`hJQ聿_рᧄ(d(*?a=s3 P`rdpg "NfnXPg$qFk#zsi irؐ m؋D513)QLV+KE^8(UcQ2MKs.Y نq2 瘎FreJѓmK:R23u :F"I2>eMk!؋qW Z `ibqЉY;igrNRj G0gGKII!(F\&_)Y 9e%oF3VDI m4}liTv%+^-Rɚ隯))xa$(|xD$˹?madvk!Pə+- ًo(h։YW,o&%HY/kDQd' [(ɉiىet*y=,ւ d/uHgb'i"VBɋ*ȉoXXX8'*I+E'2b}eKOV=1PB|r IʉMʐنqZ@99bQ3GZ`I0,Cfduj8j|øv M:i,XfOwoF06fqGP-knW r - I%2#etF!SeaBʪQɘpZifHnLwda*J(Gע(5)z)@g*LVNqE2:E(#ɗp(39گ[ byI%>ꪏZ vK92ڪ骗%,)8K"#" ;ಜ8CT3$M*>0<[ >qX?9n.۴ ⺰"F(bS;n(v)Z@4a;*ِf [i9tĪ ȺiixC{ r&"% :+qZ*@۱9Kn.V ^Pv{W˝Xۺj-f;k($ӶHTm}ۧ48I;ںْ̹p"{J2;xhz (+g˱)˾Z_ zĞ Z.k,6V[Qܯں˼[ڬ,W*QW4#+11Ĭ-d&2@g IZ֙Z-2I,t# M˦d#ik!3b^HׂZתUyl ؁b +lC-ȋ-ӌʓM6y?@T`DDm؟==KV0۱Jl-`T]Duֹ=ޝ+҃\ "k}`Fp-.m£M~+ȼ޶M3}m+@ ?n `?` } lK(~|iNn= r ,K䝀6nPm}0]cN$0nnpM>KK>U)^gٕ])lMc n~^Pnܐ(.b*K] P`lCo{[疮O玎^p9\Ԑx@ޯ쏮܎q{ ٥pA^T@^o͞V.Nz -F>@doN>uN I޹'SF c".,>D-\M  ? {-Fo!O =r:9@ Pn_'O)O"2? QopC"&a߽!Pğ mU;SQݛVKn_NS-;5pTw0 :q ,X8 RŠA-%NŊfŢ@ \\԰ /^h¥KZL*eAqN9%)fS"9* ,0Qt %-&X>IYN/jYG?B}j*\v2b<9חVDPV߿i.DK.gޜS.e˘5G(ܑ/Ԉ7>#kySm=MVѲL7J]y8D?̮z1\9OP1}PIV!Hᅵptni":ĬA'pl0*YdċNe)VV Cr,PR eXY`عZWΡ.k6ZUg%reԙx4E‚Sy;w}f~xBO}M J(> ~)s'?Ox+o?H@w@;waterway_scr2.gif000077500000000000000000000164311263163240400402730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a   *"3  ) ,#(:Aj!A E+.L8:dN L)m x(.G1y1q)asfb {AYj@GJWMOm\`_\as`__c[qijv%.7)418 G UGPM \Y gjsubkzs1I2V2n }.~A4Z[MY]cQq`^nprxZbm ))AR1sl~}Z{2.1!)1)HYR|wrRJqsmA,szuz&-*%.(HL&'9 d%,F \%pÑHU\ Rv4Ra\d )D">|* s~ @oM J8B,fT8%TSO\.Y~W2׽z:Nv(M ИIJFytɤP.!)q*% !2(|0G(Rf^y~/͘R?LSH蕞6BT(kʄ>T;4)H82E OZEE(G~)/F  kGP-!ob;GƳ+LDEd($ѓAo|nQ-E M&bE'N6ʽ{><]]*?Y7⥉%bɩ`!9>T.pdz']sdu;:j"| Fy]F\fX[C,.N0/n#'ι/zIQ׹3"fGu.[x]w~AGь^fwyoKJC(k Yyh}x=L8;Cw:_=\ 畽O|0"϶)Z<:Bsz;fozXUgPauLGpfķ+6bC],oZ|ζK#09Rl0}(;2~Lb"05k!}7F(R=VakFr@cb+D*v>#"SXP0_qWd/607FCV"W҃P#$eb4І rEF?cTg~.0(s,˱d^hIx; dcpo ԆȉqC>SGMt-/`alkROSLr`cWr(0&DZ%%Thjvo->1Px3s5aoW ؉`hJQ聿_рᧄ(d(*?a=s3 P`rdpg "NfnSPg$qFk#zsi irؐ m؋D513)QLV+KE^8(UcQ2MKs.y نq2) 瘎FreJѓmK:R23% :F"I2>eMk!؋qW Z) `ibqЉY;igrNRj G0gGKII!(F\&_)Y) 9e%oF3VDI m4}liTv%+[-Rɚ隯))xa$(|xD$˹?mad&k!Pə+- ًo(h։YW,o&%HY/kDQd'  [(ɉiىet*y=,ւ d/uHgb'i"VBɋ*ȉoXXX8'*I+E'2b}eKOV=1PB|r IʉMʐنqZ@99b~3GU`I0,Cfduj8|øv M:i,S~ pqZTd6fqGP-knW r ) - I ZLa@%etF!SeaBJQɘZifH%%J0o:ldfڪ"Y. "(6WfV9:O.IN:y |򺬀0k`]: ` yXY$S1;2| R:j۳i!W@Hk N `:;"jZ`g49U 苨9zl+ p-trs@Koд 'ۢ"UWK;%8p%_kjM*k0i{ kqعlI3pNKͪ|}: *YH(b%[nEXаD?  m+W` N ~ZT-骛!?Rz+iٶ>' K Lkk[(y/qž)qz{++ 7' ޻I䱵#¸[ۻi?(9?Ӊ v N|C klJ2;xh,+۳+\Z9;,\m,SۨW[V#/xk#[p \qpž#b8,d&2PW4=hZI j\or!3LƉ [ ̓9kL2rݼ 7/ WC,5;nkϨXpR#-:Xv]D<wj υy-sq I=TlZj W龪q|q"\ڳΙض#,ﻕA]+mYP2Lm{Xѕ̮[q>55_<0d\?Sī<\}׍/m\~mm=vի @muw2׳Hט=΁֯J;iկ,<2vٮ-2ѐ,Z `6\M5! }ܳTى[ iچOj=&P(ܞ(ٷ-H [2]e=YX*f Nn 2M6AOFF dm\Y .0β³ߚZ ~A`/P؍&| lNP1.4.fKH/ /fP|rQpR4ӳZp  =indIr^wn&H~ O=z Hl٘.<O]@ }~~fuƳߗju ]@ ,~jӫ n>ܴY`m^. p q`NPPje,}~  6nOBj~ 0qp_ٌ7ԛJ~H_FQ YAp,/@&M5OMgp/{_~0.b0-bjjod?r a/P. ?p~:qӛOrOo$`#OAO/[_/gдqjƠ ve 6fb {AYOkJe j@GJWMOm\`_\as`__c[qijv%.7)418 G UGPM \Y gjsubhgmzs1I2V2n }.~A4Z[MY]cQq`^nprxZbm ))AR1o l~}Z{Aj211#"̮)HYR|wrRJqsmZ֬JRs,szuz&-*%.(HLvA4r'4^l/S]*΄K:{ZmZq͹% WWbNC(aBkY` 4"XQ yEUqR uvd `6Eݧ[dfaa{gP%"kF͇ZcpW`{Iq(n7K`C$;3Z!U-! 4tW h [Hti 滞g.60g_&;IM~ӝFY .+'[Dqd\d5AxA, x<WI^PEAlw%dMX i)U$J^bHN%mx4vjQDhDHch+ ZdB`4[e0f,>uUK]A|6$!x)q1Ùo!Zׅ.%kyK>c~\z\)PPVX4-( ֌,O] :xƊМpق55lS(zCE䟨R%TsZ(H FUD z r}iw'1$ :=z+c(o3 n"s5UQXvI6#K XȦrck* fEЇcuPӪCd|P6-&vXEIM:"0rO/%bPtJc`걀4 4>>isxBD#h :ɘ2\M gDAn׵ِ0Dקv1yt".d΀ NU=CJh*#K T~IEZcqY Rb+$_W*)g۔rҤNWC}h΍L)B .q>\YB af$" mcH39IJ̸2h^/3i$Ș1!{¼T+%^CCҶ.`H/&7yաF T}Ͳaٽdiv%,3Rj2pچ9 ,Xv( X> j}")+RӲ%dšfk!@t[%kLW*EV}&qɕ"L[TS^0yEZKL5u%Z)V pJK /]lr Ddlh\cȢ5j̳V#c͸ CV͡xbmӂ%6IbBLc-TQBIpzk &ǹ'ӎ<qNlO"S@ڼBX.ЯndjSw~;K (ܳBh zpТ t{Ydx'tp=uoR#zz:s7C.rrt3ꪽ%`lY[ګ$XR=ނlxjkcɫo,m)X 씭԰03~^5_ـGp-h9ǖpw|%zd,/o^=Us}Lv@P@{[{"2Z'~A7w+i.U" 3"V9w1KvMP7|o@woF^Wt!=b\vzUnDGZDs`XXRvj ,Bf#-Q?/~/W1>p"USV/FJ@Xhb~4fgX(|G&vt["Ae >fb-\&iQW^Crcф4^&ڔ7gJy"B"Ti%f0EP g{Dhq)EO,A%XB8f֤}hB'be( Ѝ 8T(GՃdqȉD}yTCh( dfVŠ&u=[ЍgH[㘐(&eR\t^7v%{Bd2:pginbP014iH[ 9&yN&U7k2WNS清ipHt}6r@x P 0 .3IRJ聈K/Ai(ևmKCdzMBmO钺HTXѕA)%CSh[jvHW$3MiH[P 1鈨|^ycpes%CdXИ6QZkyFQtST o0nS9NوIh!y6!A$C9Vt6Rͩ +9 -y i5ODYդhqzxRn#XrD/a@,؈9hIi)V؍y(_IH*ku@΂6,ag9G, uiT9  y顡)-5g)/W20PC|xXѷ#HFx%@P*ɡڜBʔ\PYp@s6(T!U2jRإ,fk;J؍x}R)T:"k,>JWU:d*DʦX CjR|iV#TJibx@f#j`znAt Y⨫ZL~Yy18Gk!cBN1Z6Apzy)y ҩ vj()72>j=-5F ;JXXG,1k)vk&(fV/R) `{; ѩ"L{*kԚ&QEE$Y눊2XUY{Hl> *) i]е# Zе= }{bˣ;[1iSɜpж뜓гB:DzJY;nз` ` k 0p p[QbyB nk)0  ia w)U3X[}K P; p(B×ɔl۱0T񉹤9iVWk4P*P+ ZtKdfʙg;) ɍm+\j&7cّ˽=`; aE+/uپU\F''"̿A)#зtG!kkŪB ,ɶICG،:r@[k lMQܷ <4/6xaDi B^WkØ 0N08^7nG3Jib.] H^cϨ~پB;N9>30 `3@|>lc>NY;k  1\DBm T)0 G> P嚮G0 ANjV討]KR]%ÒP}0 U>P> I~<$Ӎ< $^p~-08>^TU@m>^)ͽ0둦@o +OycT^0Dmm xf"nU0./U~Z+n4a_Ff_n !. 3Np)rz ̜?xg悟pN NԞ}S\ @C]m@yL`8.NU1/S nP//L階׏O&j 90 С($NŇ4nG!EfÕ0ӲΆ!N(fC9uYR@ ڌ8M=.e fQxŎZxiΫ~ 0^~eۖ#ƍaPiRY/iux[}h^csWtϫwow R ,E-Pk⪐DZmܪ0/B P- ^4 pANS];K+.|0H H0{04҂nOG (1@ F+)RK.ѽ2Í >:JDL9| /lDد-4@@,hdQH9 "lFP6JUb$Sx5UfuȊDp5nDdF dd|qTp31[L#0XVAwDDumFHеCy=7]y 򯄈*6P=^+JI1~m܋~JѱMdA%vTi62e@;waterway_splash.jpg000077500000000000000000000057211263163240400407270ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdd"!1AQaq"2Bb3Rr#C4!1AQ2aq"BRr# ?^F"lU]cT.`ܮ¯.FS sM&y$jr@2st_}ډg&b`YL:gVgIjb1\}ƷtZh@[7~`xtXOFT1'B-/K湢'y d9eq)b-دj\ oyُ08ae\Fokxf: hdK ?#z\ڶ4|e1lMS.i´N|Nqm85R::d@QwY5ZCQk8oM$aΰTWo]l DZRңƃ]j]+ 0@RV7A; }ȃm5_Ԍ'{f/V9tp-3QH.8EdR6凍d~7} lsNw#_yo.^}G<4xzfXsmPe{i.b)Ƴc|7k:V^qڭiI'|ϢUfr:pk9PYzl}3ZA7QF'FE#] mgS9検Ws3nTb Gq* ɧjR"H$b)>Fs-帜!\vI|p/sU"汘\;D6HF&E- /CAq{ 8pjEL{Dw1/ko,L%erψQӾz5_=JQHhA3NuФ#’QS|KC <>=;+R L,29 鋴%IZAkmEVdZIH/jݍY=| ?lZKOp݁Go=| Bؕ(eJlKJy wtꭩNp4N Wi89:Ov锉GbY11پLH>nI#uL U akG0q bZJ|RR/8X04awR(!!tL:lBp:l$J#Cv $~C 2Zy\܉Uik5UǸD֝1vU"3ĢptҊ+uP [f"+CUEcM&@a\t1^qNTD[Ԯi1r<]HNa{Z :׌uX脦I<)9&ZcrS o>HdlM7֘^`qr74WKE36n<H\k.l Ҷh-mDZnƭt6D6d !IV( hh։9״8wdrjlXIܳ?VOm[C춌\x8`z/ :"qw}36Ņ(шk0QvM*sO`@ n| | S恂@Te b"A.5c.:%K(fһV,Y fѪWOn˞MT)FO $XKqݚ !`x0im>˘5ϭ/h?2o /BX`Xh뇊V y`9mgͨA (V<[ :pM~%zW)c<'2 g}jkFϟYPOsO=]D@|'yNS0 wSaA՟~^Whv=s+":%>aNZţHWA>C(P]Kc3 $s?zQ4@di#߁-S]R$t!(lF\%ݘTg"ٟFP41=Az-fH\ *ꨤjꩨꪬXN%`뭸뮼+l Ċ:6쳼: ,f- `^䖛Pۢ:*.k"K,)'pyB0G,Wlg,q [ұ!l2#SICgZ-E%bLsS+cXUU4! U*]9݊v)s63,`>ղQ!E#adJL%lƙPS3z(Gw|IU~H==JWWϭW {歷p]N;&YZ΅3~W5BKt倵|\ :J紷2E @z騟~~M"hWbl3eA6a'Y;Il _΢T m^Z%s/(8wzn]H `IйN~lzb(seS}15mbi좶ք)<{# X:2&NswtB˽fP_(E C9Lx>`^̅Z e4&p?KS¼ :@ٝަMRK"r&Q*2e?@s֪&@s<*Q|Q:n8+Zmo,d~43)9kz6%8ixVj&%HLT[!r)Ji2N{-SL)@\2Q޶Nhn 5eB(mM5 O*≐sFzI:EȱkgMK%'U CZLbL]8{VBSgeـ[3%uӯ֞5il*˾b{8Ipc՞cWBccf}~9τ6G{ߖͲ4$J!-K'H+%oBe ۾>0<|sK3>NڬUSw##gl,%~$i_ݚc>R?Jlw{"@OiKv%VO=xIt~O^\.+#W1n y{ 8M>Oˮ<řW1flG'z-M0u75\8w_[ZO[3_#iL6]vFHvW6 =~22]'Rmf( ?r5fF*2fh~dE%Q%y@rFkC"#+(:&E}2_TN74HQwN_,cwNS0X8L@Re╀SK؈?+Gn%MB(ԌGdFD9]Aqs8ufk=d2!a(55'dzs٘ Cp%7~8Ir3pI'bQ@_HuBZYTo3h+@Ap  Gc|7uEDT&ɑ 8ȍ yNz2@I4WxbR)N)L@uihP&9~GI QOIS@ 䍔ENL֒[2?*"HcI1H{"1HԏC_qFOiZ0mpd?zFWY{+\+ZZ@B7:5R$49oVC)8QbyJ,5>CuWxԨgf(XVδa .25o,s?Eu8()]69}S>ud15ę &M6ׄ$;goh5Q)XFZvP3qSy=Gٟ SQ$t ʉ<ܙZCsMI1x#y'X-xiDE({A5s47nuضjp5FS:*0١fIMOYhY4p=ZAEQ<} @fe @431#aE)7Ɂ5ä$"9v*x記%s|yw:DI=Ch8Z9`80x6>h:46Or)J| 9)C8u%`ꃸRY zMuctkĚMyu_G#I{blRB@ ##  j-~5b&B BJ47EB[-Z-3qɴ[E ;SA۪0sTF˱SCS:Gf{y:m@D+$yuj9[L+6i39"[u;n9r ڦh&P{ۺ6kC1 {[*ۻ[/'`p`FFPKU,k>`>@7P{!;כW WAP,;{[P@@I  @@0lpaa ;: F4* P(,̼U*:<0" 0;?:> ąNMNL! LPOŊ`j`4P2P*mlln,F 0pǧǀ,lV@UU| 0 ȍ|Wpm <20 n6|26qgLJ 0˃˹l09V,7@|7NLM\|c ^м1wʪ7 4 }<1;7^IzLɵ]ÉǢtG3 I \,[@)^p^Ô8+d~sJ4 V9]ӧT0`ҨPpm&ps3o(_; o]LQ"8v R@ ^zS)>B[iӇ!e}'SYsKs[5#~2ħQfaGm&&RBTC9"EN -4O$JU%[M/\ ې}Dݰ6m \e wD%O 8ln!NTҌ76NnR^yOY@XQtHmp8yeS+踒:QJ2j^$^Sσʢi!ZN^%fH,+aK6ň,% %H:y馹5 HN.2i!DtHEDMBʹJMAŎ( e' THX |-9gY1h5DqXz 3Z#(9Z6(%g#{=dOn )VuZUmf &Rd!P kiYTFԨHπ&j!@ ^#֔9e,لUY8Aq[l=+Z]h$zgۻ +=FIq7ѵZ)GDnn'\]Ȏdnm"UoOK}^P,t3̔&R k&pNojBF.t ruy6ǡmgCRvSJXvoi7f×InYέ\QtL@ {D-WCNs[VzcNz׬J8=N4i97u4A 8^;3y4y %1 C^FTS~Ub5ܱTw c.Zj7P&8_ɯ!{\LQMɠ C(;,6q""4G_.B/ ovKre|ճ<<s;ӭnI\zkv"=sF8]omC|9jyoqc')*wCg(F]yΕ O*w; 8, Wӗ ^b`<.rFD]fLכt?4ʃ'ĝ/ NXjvUIoQmbDuPU;W^ip\Dq'~ ,a4f']賆E:JX@\Bi6EX[h_ Dz]zut6h&ظȉcs8UI7kEr/7=؎T2t7Ch#M9я&tP؋viWUXVT:YG#'=JtAiUJ?%VLW,LBVWÅ[K#$4 Jc7C Fe'-X @)=@|PnDY'u{XK6^FgOk"*ĒtfxywvISzv?BO#ExD֍Ȅ̷Ga?X`aA7MȍFG!2d]BV9JсFHrEA&}w;Ci=4cb(9qɛ췁4ғyzJH*Y8D[Hg7QQagEd#9כCPIeD[ˡPN=i6@?@52fgl>Sqa3™@~$YF@ i} )vp.s!'lSET9_}ƈ9\H1Ӟ,t-z.1v2z9-Xf];M!BCwƠk4EDT\1;cB]*؆7fYiew#eS?q*E^~㜉i|"O7ʵ9 v!(jٔ#J0+۾[8@  I0"+  LPiP?`01` L<{$@ k0-\ /Â0 PÆB, *>@|V`k;10 Y[0(0!ɠ0`k<nƃ@Gvx\G,Ktx|\@ Z`3-aŎb,9#Ã4l,9LʆPw`Ȭ8?츪ǯ\j@ [P?ɒŔ,Jp{| |r Pǫl,JجͶ[0ߋŕܽ]%|ƈ@$ ЅPCʁ,|l_-P$l!VɈ`0@;$m(+}҅W @DzĽK6ӈ`\@d0-#Lª;p{/Z]kܿ[-ք =W} |g ְ Ƀ`]-p@l=K0=؄ؐ ف;wildballs_scr3.gif000077500000000000000000000121601263163240400404010ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aBs)RcRBskssBR):JZ!1Jc!c){J!J1Bk)J!!)J1cksޥ!Bs!1kBc{ss!)cZc1JcBR{11)s{cRB{:!ZJ֭1B!R11!Bsc!kkŭ1kkkBc!)){)ńΥc!,6I6I GI6 á64G™ǥĮIF4FI4 H`A"$0!cgo (c-FdkG_?Ow$С8sMi $6rŋF%)JHZl7]ҥZ>U_>M ܺ5w6@jh-hѣߘ9gE㌆M/_\_zgemvm,ѻx9/Tm6IeҦY'[N U@ +_μУKNzt L ËOӫ7 B˟O}?(TC_&x$-(: Z8v(_8(&xh㙰NɅ0(4Dpˍ8<@yK3F$AL*$8$R.٤TbyYr_NQjYe*@df] x t: uygvzg{眀f9ihB(YdD6駜Z):jj: @BAGPzJzkkΘ@4`0JJKm"KE]4ön@wQZK.v..KNd [ / /oVlC WMt94{\#/\p+pZ 0c s6A֜p9Ⱥ6\eM914zI's=4D53hB2>}Y z04x'#`;7N bþԅE&hځz3nlxc"!ػz@<¼0qnh NgTjf8C;A+ ^&>16)^xxPes!NXhFPuX]#C$aޑxLBAXpl;l3wG2r&Y+c[v=Ey6K~&6ER$)H sCTٽI1/q5\ :0&\'O.e;Uٺ Ơn}|G&ٖ=Q@ P$TDUF%R<#si(JYwP fބ#E)6ä(?uɦZj18$3FSЗ`7=wַ&E ߸UOnp1P}>X O_"?Ew?9vdkz?703=CA2/m_q"eDe8r_=cs`Ŕ}7[[H6Ol/2vVr Xgux:R:dw`cd^s]F'lHWbBdw^H$d6h~3[~&Zv USrDd5qq<օ^aXavgfe@eQ}mw+Pȴ4]]4haa$w`!L#hfxӁKvFa(_R4A$ hQMduj'%QFBXL?=,rdZMbdw=`{L1X~Re0J ~Ǹeu|Ms @$\+V}X85Y`yIJVgl;%j7VDcFXLVs _R|XDU]"ULeHiPt:KF8L-J_FK( i%U|E(Twg ho]=F g)OyI tQ_/SI>rIb7OH@xx :d@*cJ^/2iEQ>ys9_aT A D&$:|QڈU%ԨUMƎ9i3F@Fs$N`HLH0GKĈmm D00B@El #jn E@:;:O0z~ ȋ b$ȋpC pȖ,ɉuE.3u  ʨ,>ʎ)`˥˺S$W|\$ |p\]xb<1r<u\!!<p|7KGr ,ψ@L/|\l h .05PL= =;p+˃0ҽ\|=АL =Ї`c<P<<#+0} (҆`/1M$@H}if@q޼k<000#K:|~׋Z}G|pņψfPm@۬ll0#l<ѝ)K<ڮmՅU` p2`۸3}ۖ]r ,B5P8 m=l.0Oρ,݆\U=ɖ0 5`=m!]vEŌ}MN#Č]{;wildballs_splash.jpg000077500000000000000000000057721263163240400410470ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesJFIFddDucky Adobed''2&&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD  &&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}d"!1AQa"q2B#3Rbr !1AQa"q2𑡱сRBbr#3 ?2h<[ބ˔b̸El!cDdjס"цyN˫!9gD%nuv]e&i!z;E IQ[cImTNf%ӕ} v7d@:j}sZN5MWy# >Τ;?G/3ϒf"-:uqtB# QFΎanlITȗA?%ٵ4?YԪvkا@G %Wr*pjMmU+G"ȡ}ƌUXqHnThE3Ul3~TQ`*ֆW2\BE"b,Gkqcc'@vi2z_N"pDmB{)ЃTT%kĤH8j;Wz %$ v515 1lc0Ő+Sqj uC*/ʨY* =#@>@xjH@_N8TnN0L_$ϔ}4@dʪO.?L#e±55InfrcLQc d~xx*0% 2\vυ GDY eoriL%&9чr= e j;sK )n^~܇i~5V2Ò7˨Wr"3ܬVc]1k@~*@r᎜O*E$,&5"5Oq28IyW>P;N1Ǟt!Qnۏ 9PxP2)U优UG#ي>0>>"eH$ :;}hn[__bbpn7, ߌ[~ǥK1@(^d,q 3i y+py֩KT@DRmjV}7nۭjQ.cz$bۦHC3eʛCYMȹ@I)N3w})1o΢2+cJQ8IAZ_ 4$A@uXZtP˔ 5Nxj[Z ~&|ӈF_R& +Å<B\ ` ZKEr5Bm}V>pMTDaɩKGeK#:ұ{̃,"Q4(]bRxq"w)#khX_.H+"[Ԥlū3_#=OCmߺ;ŗ_a|y1hn}/ZM2͕).Gʼ_ I}M0%a{[^F}:wbV#i +`yG9Jw8.K~' ! V炂&^CۄӚ˭`}V .~0u1hԒ[< T7}Os?,$ w) EX̙zH$B/&1t360?1#dԍ|Tor?&FhT^_w>~i*iPWj$w_ǝӐl׽p$yNFgRd4A}+Zy aܼ}Y90GK:=mI}xө3ɏN ju- ]{\;rWmp~# YEm=+e2`SOj̄YJCq i K $}Ksc$}cUUIzw~u)6uKi2SjWU1oz)|Drz/{?JP*Q*V; J5/\Iq!#X_Ҳ)Cw. ('\uhw*LwlCv=C!;/D%v r Yl=XkB3ޗ$@:y.\ڎ9x>_m#M[u/UZ21[D/u>]ҥ+mJмp:p^wildroad_scr1.gif000077500000000000000000000110741263163240400402320ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89aU˘eg333g4ʗdFɖcǔaf3ȕbi6eeeEWh59U36t\Ɠ` vzGÐ]l9[j7đ^Vp=Qk8Os@|IXYd:Qɘ'&&777Mn;o<Œ_̙3Pˤq>33WZ NNNtAwD||m:!ީvC丅RNTuB4Z{HQxE,"}JZ'~Kr?yFgX%S K' / b/`-^\.Li=4e2@3 c0s@ 5yFI499G34Lf3̙f!,H*\ȰÇ#J,ŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴ)AP@իXjʵׯYKYOm6K׬ݭb՚w/^[hm[Xx.ǐ#K @e2k ,]ӨS̜ЖK -~ ]z+СӮ=eV^νwBEO^΃p떭}+f,kUH`WiEfzfh]\vTva{rW_*R}!–uT(iz(!lMHbn4#x(aQuXLf@(%n]Ǜod1ZneFcFdt $m V{aW矧:0Hof}y8z@Ei>jڃA8Pm m,諒qs@T0byׂpo)r5ؕZI ]-1{){ '&Wc adYە)r v~1߻ ^( W<'62jhpӪH1V3.0U6Y&$ ꕒ/(j%c-,& Љ!Arc!Wկ,Y:؊! <@v"{^^Z˂UqL[B,Ze* s3io&HK!Xo3\."zx0*Wxkb:%*0a V|W@` wJ欀>~ x8y{+G^>`feJCz]*bb.:` u,ZPN@&2:p>#`An1f6"` k I H n@h%C+ Y NΪvٳ%E Wl 8ê ڤ~A f-ͳ0q&6j$`Ț.@ϩh3JЄ%xcϺ!;u\ nhNhLJЄMp$o A 0Iβ7ur{ꕷpVI@m su  zG˴ A8UIJ 1T wU9pq'Xezc2ҴA1wa&:~wU4؝*Pw[0a&UUl ӥԽB h7 n<1F/?>`P`6j0pww0ؾ%;Ow,A: 7*ޏ@q<7.0x_ 6jM{É/~ ~P&03`&{*a+~~@S| CT6&.awhHVu(qf&vWuaQGSy@ L"\_ 0fFh<8scaW# 1zPar<leP,=p`1Y" 'kTTWQvef7R[vZ^Tb1K,)<!0sT1kwR2B800ux!Q2;5@a,40; _*Ӆ[Py @9u@#}!@3P?3ձdɈS@L\Fո! A@;QL!p *;G'3_+4JVGO/!1}iB.UP|%2:D8p(% )?#K 5юғ05fCQX[q"6p&s8*ri2@ЋfY p'pI`|m)KD))w]* t\+O)`su”U㕏h6ʒ+{03[)ɂS5bi1"}m:wD{HoO+IUr$TO,B:9n'@O~_`܊GHotp@/`;怙F'1rбB[C #pü8x@>-@}_<@p S(-,1G\1|+%=cz6*8ΫذZ$ZP)H*ABj%{5Q,wiO &G<(-H@XP [b8L^1 "f[Kd2:l9x@:˲ܑ#SY@lp4XR0N3 . i3ǀPvb Dň'p#.%( x`!M<ǒC# P5x8;ir((PuA_[5CZmLMA)ɒC^!]pz)d a]ꍔv󮲡@4 H) ta(=h)Ϊ0VS o#؇41[EV0ѐԟt7WJT  l/^jZc3vJ=MO_V*RmNAkT] =汋 H R ZiO[^hݖ0BղnzޞICl;+NpXg 0<3mp0"a_AA+ZYAjA2[crIs|ٜ R 8! ~QK?<: X]{4p1il s Tu&Vn vS ؐb+#HȁmI~A~Ve nCmfmzh.Ցa!mah90[D  ?iaВēXHHPy@x"TWّ da> (Y*I gI$SC)DSDm)0GIiFhF&~ i(9xHRy%i%)IqJ6`!YֲL̈́|U)}TOE`b,yxe Up8< TB"MǛg%i@-Rx_\Xb9x7p]]pw U@i.Kp4 wX q@/5yMb7i*=0Uea1[p,~qFKP̂ Qf( i%,@Tz0  , !HVzmvH1Q?XLJ &P#8~ׁNPpp[N.BAx@o M@yEBk>i0gjaH6YQ }w8s)0d`䙪.J0,@ Ya$|(60h}WqX*VpȧF[Pn@C| *AP6Keʌvp=['Cʄ"4G֕M sfV"VU]Y3@C' P*{u S)jAL` >*&* t[ p>ঢ়\'+. 5l+#(`YSA[C{4D"|J\-:S۲k3۱-rwFTm_[bqUWh5yQOpQ00&y˲{[}Kkv0aJ`Q?;ii| ж61M]/'TR0Fk%j]#=>'*0W 8 90/P7?&۲kɫ۱{@=1P @f1X:2h<r*}!BN qBC¾mk^k. #7` 9U=w;QLj;X1ܼrDP:. 7LA.4< 0.0As*GiG(_ Y9wt'ײm@Pp`o._u_I)@`ok ` \X7b\~QAJ`_~ Y@Džux dE4H\АmA~PɤYw=lXZ0/ Ƒʗpɘ\2Q>:P{0Վ#D]&!>y*&O]PjOu4+ JlW|-wþ'\z1%wE PL6Xm#If |upXf +-B /(k6cr~IγQ|&k<4Mc08Mц i0* 4M4m5eL_6pVZԘp)T}Ek 3LX))$ckilπB7:˩ٗ4N.4Nc0 PXvd A_9V 7Id.Pi=7 ˂eAC\ q:~88JmiC0e`A-{ԙ"M]|D݀ ^m%y/0]WebaF31 /c3Vc-Gߖ< QYae1QoޚYgD֘}iX ХN<>k0.&-! ?9 >0$9OvO&#`+=pQ࿒rMvK.Y>Bk+XtLg( / Y*gvN(m*S)iQ@,UBrzn/?{XbQbnV`n2 A }LϨb&w `!q~Ύ̾ЎJ_!BJ 2Nd[hNӞbaa>~~7?_Ү g> OѾO, (@HiDC>U^GP0Ґ1--&KNJLNPR?T_VXZ\J;wildroad_scr3.gif000077500000000000000000000122341263163240400402330ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/gamesGIF89a˘eUgʗdg4333eeeF777ɖcf3ǔaȕb EW9i6h5\Ɠ`dÐ]Uɘ'&&6t vj7[zGNNNđ^!ޣp=33k8O̙3l9@Yn;^\.VŒ_WZs@m::Q3M|IPoXQtA4ZyFQ~K,"r?qrnuBZ'N}J K' Yn`-X%Lb// gi=fffe25Is@ yFc0x4 34Gc334Lf3̙f!,H*\ȰÇ#J,ŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴ)QF*իVaʵׯ`F@ cb˶۷p(!Իx!@߿^5B`](^q vnyM_ʠMlӨX"] ɞ-;Ԩϖ66ؐD ص"_dayPu.Lފ|qG]7mCrk&cVWmZGZoԍ߁^0 6Ƞxuf!g`#]5]{[؈8`J8$v5 X# @c2g^-BX^LA.bJ>'畉7`e\=ZVFBxurKyǖlqوfFwdngB&l*!#&,gx av5i]䏚BeX`@&yڭRfr1Pߨm]1pѰUB ƀ0[=bޥ I,\d ;[u R9wö> vaǺm] ۅqhj4`Pyd| .s ֶ8'햮E R2 Z4(VfCs ,rؤ 4^aoiЁUDPVuo= &YᅝyIWW˖V0l] &qy#W30XQl+P~9hk?ֻU؀5mV 뾻_]@&b2lhP"J=X}k1nl#`P'?hz"a,Vhe+x-_4,V̑UeEmz@w@ 4`\"m-p (  pkKկ 7XV])Z3/Q sЈ-b((찅 \QF  (FࡊW nH 5w  @z q9'ٱxw`G_ ]{-F>T"[xy~飿Wu?S&`4B 7)>'r<TpvS'G~g~ŷDgg h  lPJ  9-hs { 8}'1sU)H@w 2% {z_ЄW|{@0GPK0d,;<60azp {HJOh}$LrTLuJ5qQ^`F$Tj؆nx#hyVU<oDH:Q4 2W2+lW1AiwCx._2Gx(hKfpTK JJ,8px\5~Rňdn&1 ` W)b #8) 0 QnV8cor(T+@ `6#0)戎CKP nR fC @爎CK9H܈*S $`6)SppG8<D0e#S #S,ɒ0~Hd=x1wtnI1>AS&>wq\@͗5p@I *ioS? *PEs#)j`+9q!8r5*6YZ:pv]5_= +)i@/in\! `xBܥQ5Q|c1Wpcu0]AyfC9 6`&C< 0J5fIIqfy*ƚ9Fm9gPRDEVMYLR9 Yi95p: cTFFjF?EVHp.ɒAz"f/xG|GI8 A 'j:)y ?-g>Z>:yw%ʥ @wjpNЌю_Bxg03?x6tnO}Pz5:¦Z8{2*bO|L(H@  kK̆uJBϣ8bڥ%RS ss{K3eWSMY܊0mڬ̻u|垳L+.UկCH.8:9CAe|\|K 3iar lD0  {}g9+U{M#e`&Cųraf$W/r JD As' 2(t{J ;j Q\c$u<YR^1APJϮ+pd_>gxcTp(NqeD8R=\\6#xvu8bD#;СQp5dT|I8˳g.v̻fꌻjk$vŢNwKYCxFmWqɗl/kYÍ|~*K̖먚SZ?-L|Ip@g}}Tm|ڱAZ KI6!]o_Y󰬭dH賡]Mfk dtW6ZtNձB W͋eүMV.,Y3ьNbEdݠkr0LMЖ,T.Wm٨@eyQl2ұc\YM[)fbc!@zԆEm%L6:UVa4:fa ?Bv#WT`jͪɗMb)ck|}ڬUA^"mܷjZ,ZGÛVڵfXUWFV\nUkH>I]ō=|.jlm4T6[A@="\5Tfhh¡c޺)5n6QogS1ȷ}u$kϵdN?:Ъv(ٓ Yzs{?% -pH.M)]:V)q ; DR F̶,ᏻW/E[q! := DM.6|Q1Z\D?[sj☙F0M[ܟlzohaf?$@EZT >(0Hpqd8,XshgDd" V'[ձ95g2F^y"8e-g$p+?n❉ "NHc ve<sޤ xFlεo? _{Gd7Ln?ƫuXOժ|6-؂c ֬eYJcŮ'aҞAϩd[{r2a!]%F\Sů(ĄRNAA:1bs=vܤe b4kQb,Ց7!^"YbE&wWWR/R/?ЋKe [MkYeY}/1bAZuHū"t7Z$v`K~9!X  txTNLI`8 -nT=cS[dceR{tฅ5ዔjKyذg^"5] k׋ dIA8P?u_*ᘪfy9JˏFђPǤp2Vp[!u4@n5ZC,+"eцPd9tGuh"q*]=2FK?zPW& Q2?ibNWW@k|p>[Q8p}H.j2tٿ/Y,m$a @\$4߷ 8PEZ߂R}xPȫTDߖ)p-HWF?)K\wA XMT1YO`<-ibݘ)l#-;|0׬,Ԃ[1vY u_v!K`[`۟#@H[V\sfݤXh(J;pn tv9n>?,E5Z^%PvYśQ3)V,`,쫞n[6ƃfsq𕝓(%059$z"ۺƾ-NZBAFcCME&r)lI8"V31J'| m-) fJF@SC݆W :KW Nz{uvEAҕ .QZ/ޒnVmHp-T 3П-]p5JTGZ.~hEqלe 6O%^A9'M G[@s~ND8oqUXj 4O? NEWS //#+ //#local l_cnewsNewsFile = xml_root(xml_open("hotnews.xml")) //#local l_cnewsNewsList = xml_list(l_cnewsNewsFile,"news") //#local l_cnewsIndex = 0 //#while l_cnewsIndex //#else read more... //#endif //#local l_cnewsIndex = l_cnewsIndex + 1 //#end
/*$l_cnewsName$*/
/*$l_cnewsContent$*/
//#if curLangID=="rus" ...
//#- //#+hotnews.xml000077500000000000000000000077521263163240400361330ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src Papanin's quest Увлекательная игра "Papanin's quest" для Nokia Series 60, доступна на Playmobile. http://www.playmobile.ru/games/arcade/Papanins_Quest Papanin's quest The Papanin's quest game for Nokia Series 60 has been available on Playmobile. http://www.playmobile.ru/games/arcade/Papanins_Quest Mobile chase Увлекательнейшая гонка с элементами шутера "Mobile Chase" для Nokia Series 60, доступна на Playmobile. http://www.playmobile.ru/games/race/Mobile_Chase Mobile chase Super racing game "Mobile Chase" (contains elements of shooter) for Nokia Series 60 has been available on Playmobile. http://www.playmobile.ru/games/race/Mobile_Chase Air aggression Аркада "Air aggression" для Nokia Series 60, доступна на Playmobile. http://www.playmobile.ru/games/shooter/Air_Aggression Air aggression The arcade game "Air aggression" for Nokia Series 60 has been available on Playmobile. http://www.playmobile.ru/games/shooter/Air_Aggression Caspian monster Очень красочный скроллшутер "Caspian monster" для Nokia Series 60, доступен на Playmobile. http://www.playmobile.ru/games/shooter/Caspian_monster Caspian monster The scrollshooter "Caspian monster" for Nokia Series 60 has been available on Playmobile. http://www.playmobile.ru/games/shooter/Caspian_monster Kalah Восточная игра Калах, теперь имеет свою уникальную интерпретацию на мобильных телефонах Nokia Series 60 и доступна на Playmobile. http://www.playmobile.ru/games/logic/Kalah Kalah The east game Kalah has excellent mobile verison for Nokia Series 60 what has been available on Playmobile http://www.playmobile.ru/games/logic/Kalah i_icon.gif000077500000000000000000000006611263163240400356410ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/srcGIF89a@@f̙fff3333!,@@I8ͻ`(!dihglc+08s|[`7rU[:]@=8Qʃ ʐ-s K`n%m9-|){|wNsONh}OtfT$,@ToEKznGd\1YÓǢlaOGΓNtpyJ߻fBe=]:E2{(hda0P F1^(VƊ>asS Tvi %Z'ȲC0 XAEa A7HJ*UMT BOR"^pͦuIfGL)۷p㾈;index.htm000077500000000000000000000014421263163240400355310ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src ColdCore official site
Cold Core
job.htm000077500000000000000000000011251263163240400351720ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src//#- //#excludeif true Sorry, the page is still under construction //#+

Sorry, but the page is still under construction....

Visit us later, please...

//#- //#+ ledoff.gif000077500000000000000000000001261263163240400356340ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/srcGIF89a :s! , 'HP pP!6h Ê%ZD;ledon.gif000077500000000000000000000001101263163240400354670ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/srcGIF89a :s!, Y/VSmq̒B;000077500000000000000000000000001263163240400356435ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/loadpagesmuzon_AirBoil.htm000077500000000000000000000101611263163240400411300ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/loadpages Java-: Air Boil
Air Boil




5008485
?

SMS-.

5008485

SMS- :
- 9998
, , , , , , , , , , , , , , , , , , , , 9998
- 9998
, , , , , , , , , , , , , , , , , -, , , , , , , , , -, , , , , , , , , , , , , , - , , 9998

SMS- $2,50 .

WAP-,

( ).

:
Motorola: C380, C650, v220, v180, v300, v500, v600, v535, v550, v620, E398, E375, v3
Nokia: 3510i, 7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i, 6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270, 3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD, 7610, 6260, 6670, 3230
Samsung: C100, C108T, C110, S300, S300M, S307, E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468, X100, X108, X600, X608
Siemens: M55, C60, MC60, S55, SL55, S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65, C65, SL65
LG: G1600
Sony Ericsson: T610, T616, T618, T628, T630, T637, Z600, Z608


muzon_StarHarbor.htm000077500000000000000000000104211263163240400416550ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/loadpages Java-: Star Harbor
Star Harbor




5006971
?

SMS-.

5006971

SMS- :
- 4012
, , , , , , , , , , , , , , , , , , , , 4012
- 4012
, , , , , , , , , , , , , , , , , -, , , , , , , , , -, , , , , , , , , , , , , , - , , 4012

SMS- $2,50 .

WAP-,

( ).

:
Motorola: C380, C650, v220, v180, v300, v500, v600, v535, v550, v620, E398, E375, v3
Nokia: 3410, 3510i, 7210, 3100, 3105, 3108, 3120, 3125, 3200, 3205, 3300, 5100, 6100, 6108, 6200, 6220, 6225, 6585, 6610, 6610i, 6800, 7200, 7250,7250i, 6230, 5140, 5140, 6170, 6255, 6020, 7260, 7270, 3650, 3600, 3620, 3660, 7650, N-Gage, N-GageQD, 7610, 6260, 6670, 3230
Samsung: C100, C108T, C110, S300, S300M, S307, E100, E108, E330, E338, E630, E638, E700, E708, E800, E808, E820, X460, X468, X100, X108, X600, X608
Siemens: M(T)50, C55, C56, CT56, 6688i, M46, 3118, SL45i, M55, C60, MC60, S55, SL55, S65, CX65, CXT65, CXV65, CX66, CX70, M65, M6V, M6C, S6V, S6C, S66, SK65, C65, SL65
LG: G1600
Sony Ericsson: T610, T616, T618, T628, T630, T637, Z600, Z608


000077500000000000000000000000001263163240400350275ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/logosbee_logo.gif000077500000000000000000000030541263163240400372760ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/logosGIF89a@(-3{,6{)4}*5~+6~,7-7.8z93v=3t6>w53x3;y3Ժ;ּ>ڿ98652111VSPNONMLLJIHHFEDDǰ@͵DƲT.8/:0;1;3=3>4?5?6@7B8B8B8C9C:D;EH@JBKBLCLCMDMDNENFOGQHQIRJSLULVMVNWOXSVPYQYQZR[T]U^V^V_YaZb[d\e]e^f`haibjckemfmhpiqjqkrmuovpwqxszu|yz{·ſйœÝÞğŠšƤȥȨʨʩ˪˫̬̭ͮίαϲгѴѶҷӷӸԹԺջռּֽ׾׿,@( 8ެO*\ȰÇ Q-G902jȱǏ =.X/!S\Yr^XʜUEr1i)Aq]x S 8.C,mҧ!}zGPXݺ,`{ ا &hf6a 48Dَ&uՓ, &!F(tg9eܓm^9 c}Bj'{Z$+"cv]%{d@>vV}0e^-7ˀZ3 ~Ԡ1Ar _4ij=(x?S<ǘ9 -Hӊ>>e9LGm?8U=@O?q .tLC?K8qDt0Ct4O~#6dtM7W2L#K&nH4d p^ (}5 ""< &!:#hDdɕ*ĄkD3P 4hcn2$@F|K#nӨ!2N"B Wl_ bp,܄!M0,-qDU<"s.$04vH2Vу4#4b^ԑGw1dmrCm5O^SbEtckwvK7O43N3O?Ш*P;infon.gif000077500000000000000000000015411263163240400366330ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/logosGIF89adCrCtS;6~fP@)ߛqI,y4!#0&.MK9x~()"kƮeckjB6F+CLkE;mega_logo.gif000077500000000000000000000040601263163240400374520ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/logosGIF89a(:;<=@@KNNR#U$V0_4b6d9fBmHrV|M>N?O@OAPAQBQCRDSDSETFUGVGVHWIXJYKZLZM[M\N\O]P_R`SaSbUcVdWfYfYh[h\i\j]k_l_manbobpdqerfsgshuivjvkwkxlxmynzo{p|q|r~stuuvwxxy{|}~_ăcņgNJiNjkȍmɎpʐr˒}Ϛ~ϛҢԥڲڲ۵ܵ߼߼ྡྷ¦èĨĩŪƫƬǬǭȯɰʱʱʲ˳̴̵͸ϹлѼҼҽҾӿӿ½þþĿ׵ƸȻʼ˾,( H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲm6O;8q M`ԽHO B)Na̟X=)T*PJV] PٷUVj)x\ݨ e\/e:e0U\)cc ')جBT s!Iyr2jLfJ )d?rBxXNtjd(8:P^Df4Ajs|D-s wO%7QR9YcAh%l*HAT71e=DE=ބrBTw kY!@DHAD D ?a7FFTS$ITuD@D PF@DAQ2apQE2)Q]2(QO<-DS,!Tu(#6>o5ZN?DIBDB~ @JЂ=H@;mts_logo.gif000077500000000000000000000037611263163240400373530ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/logosGIF89aH(y6Mp7Rq7QHG}X~]z[{9An9Mm)Du-Ds"Ix$Ex3Bp1Jy!_y5jm>oi8ll:mj?ph#`w%av+ds-er)ct0gpOy_Qz^U|[YZ|sHefThpRAqgIucLwaNx`0<.7-4,1&%%&,0'#( O:E]fjouE#3D5H1@\W[YlOsKuJvIqM{G}FxHeRcT`VhQ?<=:1775439/*.'&#$#))+201=1 ۩ǽĻʿ›!º    &*CBADMJ^SFofakv{uGgsOOMMNLLNLHHP S R QU RWV UZ\&e,k0n5r:uL\kb|OWQv`oet|É󨌮ˀǞǖϝƠʤΠӬժլٴܸ޾,H(ȯ@)\ȰÇ#Jł Ǐ CII.mӘqc?m'cʜyrFDOZ'ϣHCJڇ>T&z^SUSR㣯`zݺդUHЍ8rD}t @[w/aaw"kGim"3ZHhJ-X EYTgP;S<{ϒ_Њ! >vH֬ߞ-e?k^[ CԶ Df8,E{ۡmY|M#i5LV`Չ-+:ҰK=Ӊ;1=LE.@ -а#D D܊CD,J0A+ \*|+Hp#E)#$V! R$DHxI/QxE,kC ^NW6`CTHXSp7}n@0@n@ E%H 5De҃bĀGAa 'PEa \_w@ ^ 4F0$B(G$\CH@z `?2.,Ԋ-/|{,6HF~xP #VA#]+ E q) `" @$/$x+ƐO1|UI*gICqG$pK,0Krlc Mi]&2KX̦Bb;muzon.gif000077500000000000000000000016141263163240400366730ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/logosGIF89ad$v~Ða_]屯!U;uvtrKGEy!,d dihlp,ϴM|p# *G(8ШtJZ@q#HhJpFXpu \Wk q LP8}i&lclQ 1' O" b- {` MN(r$Np9#  #*@>7N8(Fd$C Xp䂃cɐRl8 <+ 9 H8co >` b! &aA,ȉ 2יpA&LRzʯ`JaXSYZiσ"pjX9ݮwMHY`PΈ ƽZ. Vr p]ɵf.0 A B閄K)F)seXN}L)x0dGBurH/x[tRH9MY 2E 6K="<`XW (̋JE`" MI<6@K4&h#"4=HAL`XG@Ei3q)In'n٦qyg :(AO裐F*餔Vj饔:l Be`ꩨꪬꫬz3 .<@뮼+lGTP6F+F[ |j;nikita.gif000077500000000000000000000010541263163240400370000ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/logosGIF89ad C,#6G΃xbβWdDwF輹!,dI8ͻr@k*Xkr0 P!ai R"mPGcv tlM  ǁp w } * qs{}w?p,*rQ (H ΗѸY Fu$wlv|v'}w݋[ #;ѱ| PyԳg']EHM' 0v(lpE.vDAeB_> xNفiYT-6lW<g=%\`@C˪9.f8} z* Q- ۇ˸_UjvH޻WeQ28 `XQ>g"Ңn@g͘?+p9 4G_|'L͡|ν;playmobile.gif000077500000000000000000000015021263163240400376540ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/logosGIF89ad,%%Bg((Ҽf!,d,I8ͻdhh BC4޸S܈P8; I nMR\N` hBnkͺװA+b" X-\}X'!1}Q>P BQVa1d` ]`_HUaDƍ5Zy N 79w]5X'@FL]9iFS`^x]aYތ5Q1'd~bN`7O)CFxStXE#40 i^Vqs@[8'6.ڈhY0?hJ믠E;simone.gif000077500000000000000000000015041263163240400370130ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/logosGIF89admmb|[\ c,yR̷Чq!,d &dihZA*tmӔ 퓕ɄBh($%fR )$6Ĉ#4'-\H+4`0  ) x~~|z|  ( y|}yr"y   } y (  '. a@i&`z.mۉna TXE z3R&dp˅x>1(CS!D!`S$X]n@Aw `C:pX $PBQ9`^}<+6Y5m.~V7f>^q_0h;8`2CF鈰K@6r p p)'-RHAl<0 //#local menuList = xml_list(site_file,"menu"+menuMainIndex) //#if xml_size(menuList)==0 //#local menuList=-1 //#local menuMainIndex = -1 //#continue //#endif //#local menuList = xml_get(menuList,0) //#local menuSubIndex = 0 //#local submenuList = xml_list(menuList,"item") //#local rootMenuNameText = xml_list(menuList,"textname") //#local rootMenuNameID = "menu"+menuMainIndex //#if xml_size(rootMenuNameText)==0 //#local rootMenuNameText="" //#else //#local rootMenuNameText = xml_get(rootMenuNameText,0) //#local rootMenuNameText=str2web(xml_text(xml_get(xml_list(rootMenuNameText,curLangID),0))) //#endif //#local submenuItemsNumber = xml_size(submenuList) //#echo SUBITEMS: /*$submenuItemsNumber$*/ //#while menuSubIndex //#local pageHeader = str2web(xml_text(xml_get(xml_list(xml_get(xml_list(site_file,"header"),0),curLangID),0))) //#if strlen(rootMenuNameText)==0 //#local rootMenuNameText2="/" //#else //#local rootMenuNameText2="/"+rootMenuNameText+"/" //#endif /*$pageHeader+rootMenuNameText2+currentItemText$*/
ColdCore(R)
 
Buy a bit of Game(TM)
//#else //#if curLangID=="rus"
НАВИГАЦИЯ
//#endif //#endif

//#local li = 0 //#while li
/*$locLangText$*/
//#else
//#endif //#local li = li +1 //#end

 
//#include "./"+"hotnews.htm"

//#local footer = xml_text(xml_get(xml_list(xml_get(xml_list(site_file,"footer"),0),curLangID),0))
//#flush //#local menuSubIndex = menuSubIndex + 1 //#end //#local menuMainIndex = menuMainIndex +1 //#end //#local langIndex = langIndex+1 //#end //#outname "end.txt"news.htm000077500000000000000000000037631263163240400354060ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src//#- //#excludeif true NEWS //#+ //#local l_newsList = xml_list(xml_root(xml_open("news.xml")),"news") //#local l_newsIndex = 0 //#while l_newsIndex
/*$l_newsDate$*/
  //#local l_newsScreen=1 //#while true //#local l_newsCurScreen = xml_list(l_newsCurrentNews,"scr"+l_newsScreen) //#if xml_size(l_newsCurScreen)==0 //#break //#endif //#local l_newsScreenHREF = xml_text(xml_get(l_newsCurScreen,0)) /*$ //#local l_newsScreen = l_newsScreen + 1 //#end
/*$l_newsCurrentNewsContent$*/
//#if strlen(l_newsCurrentLink)>0
//#if curLangID=="rus" ... //#else read more... //#endif
//#endif
//#local l_newsIndex = l_newsIndex + 1 //#end //#- //#+news.xml000077500000000000000000000231311263163240400354050ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src ../games/aneks_ny2006_scr1.gif ../games/aneks_ny2006_scr3.gif Выпущен сборник из серии "Анекдоты" на Новогоднюю тему. В сборник вошло 60 анекдотов. Приложение поддерживает практически все мобильные телефоны с платформой MIDP-1.0 The collection "Ney Year's jokes" has been completed. The collection includes 60 jokes. It supports all MIDP-1.0 Java2ME mobile devices. ../games/slider_alpop_scr1.gif Вышел слайдер по мультфильму "Алеша Попович и Тугарин Змей". Слайдер содержит 10 красочных кадров из мультфильма и текст. The slide-show "Aleosha Popovich and Toogarin Zmey" has been completed. The slide-show includes 10 frames from the cartoon film and texts. ../games/smscat_scr2.gif ../games/smscat_scr3.gif Закончена разработка приложения "SMS Catalog". Приложение позволяет потенциальным клиентам ознакамливаться с содержимым базы контент-провайдера, организованной в удобном древовидном представлении и (если телефон позволяет) формировать SMS с заказом понравившегося контента. The "SMS Catalog" application has been developed. It enables for user to look through a content provider base and order liked content with automatically generated SMS (if the device is supporting). ../games/airboil_scr1.gif ../games/airboil_scr3.gif Вышла игра "Air Boil". Игра является аркадой выполненной в классическом стиле. Игроку требуется проходить игровые уровни с нарастающей сложностью, каждая группа уровней заканчивается встречей с "боссом". The game "Air Boil" has been completed. The game is a classic style arcade game. A player should pass game stages. Game stages have different difficult of the gameplay, every group of game stages has a game "boss" what must be destroyed by the player. ../games/starharbor_scr1.gif ../games/starharbor_scr2.gif Ушла в продажу игра "Star Harbor". Игра является псевдотрехмерным шутером от первого лица. Игрок играет за стрелка турели космического крейсера и его задача - отразить вторжение инопланетных сил на Землю. Игра имеет три уровня сложности и входит в разряд timekiller приложений. Поддерживает более 100 моделей телефонов, в том числе несколько черно-белых моделей Nokia и Siemens. The "Star Harbor" game has come into the market. The game is a pseudo 3d shooter. A player is a brawe star cruiser gunner and the task is to destroy both enemy cruisers and fighters that are attacking the Earth. It is a timekiller game and it has three levels of complexity. The game supports more than 100 models of mobile devices including a few black white devices of Nokia and Siemens. Альфа-версия сайта выложена в интернет. К сожалению не все разделы еще функционируют, но как говорится "..это большой шаг для всего человечества". The alpha version of the site has been placed in the net. Unfortunately a few pages of the site are not working but we're working for it. partnership.htm000077500000000000000000000011251263163240400367570ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src//#- //#excludeif true Sorry, the page is still under construction //#+

Sorry, but the page is still under construction....

Visit us later, please...

//#- //#+ 000077500000000000000000000000001263163240400345155ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/russend_error.html000077500000000000000000000012561263163240400375540ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/rus .

, . .
 
send_ok.html000077500000000000000000000012031263163240400370240ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/rus .

. !
 
site.xml000077500000000000000000000105551263163240400354030ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src
ColdCore ColdCore
НОВОСТИ NEWS О НАС ABOUT ПАРТНЕРСТВО PARTNERSHIP ВАКАНСИИ JOB КОНТАКТЫ CONTACTS ИГРЫ GAMES ВСЕ ALL АРКАДЫ ARCADE ЭРОТИЧЕСКИЕ EROTIC ДРАКИ FIGHTING АЗАРТНЫЕ GAMBLING ЛОГИЧЕСКИЕ PUZZLE МУЛЬТИПЛЕЕР MULTIPLAYER КЛИЕНТ-СЕРВЕР CLIENT-SERVER КВЕСТЫ QUEST ГОНКИ RACING СТРЕЛЯЛКИ SHOOTER СПОРТ SPORT ПРИЛОЖЕНИЯ APPLICATIONS ВСЕ ALL
Copyright © ColdCore® 2005-2007. Символы "™" и "®" показывают торговые марки и зарегистрированные торговые марки их полноправных владельцев. © 2005-2007 ColdCore®. All rights reserved. "™" and "®" indicate trademarks or registered trademarks of their respective owners.
undercon.gif000077500000000000000000000004451263163240400362160ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/srcGIF89a(&!,(&I{͙'b.بZiں3]]"ڂHyPK,MbUn8;M9-U]6g)3oes6*$lWuIzs/Fd\6ObFwx.GmLpU}n(Xv5riq5h5=QPadA`zeH{ݤt慸麒]+;000077500000000000000000000000001263163240400344735ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/wapindex.wml000077500000000000000000000005451263163240400363320ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/wap

ColdCore(R)

Sorry, under construction...

logo.wbmp000077500000000000000000000004071263163240400363260ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/src/wap7% _Ǒ¯!_qBq_qcqq!ÃpǪD EjUU uWM>UUCừLWL!UBQǀǏUqǏ\Uc_ꪯUUUUWx_icon.gif000077500000000000000000000007001263163240400356520ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StaticSiteTest/srcGIF89a@@ii<<!,@@0I8+`d[(k;t,;u^ދﲟpMZ.3>P sop]tXBJz)A,5tM.SW:] zec*9~0yk|%uZqnuwt>4b$e?loB>kF8[z B\G? FʥO=FJGGz)JɌGNK팘Gʃ:9kܾulHRꤛ$G5B&|(AmD!L#\8ECA 7yEc 6|lI0 JBL)wF VGm̀Jр"x/0rd%C n5]vw&n+S!wǐ5$;java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/Str2JavaTest/000077500000000000000000000000001263163240400325545ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/Str2JavaTest/etl/000077500000000000000000000000001263163240400333405ustar00rootroot00000000000000text.txt000066400000000000000000000011101263163240400347770ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/Str2JavaTest/etlpublic class Hello { public void say() { System.out.println("Hello"); } } public class Test { public static void main(String[] args) throws Exception { ClassPool cp = ClassPool.getDefault(); CtClass cc = cp.get("Hello"); CtMethod m = cc.getDeclaredMethod("say"); m.insertBefore( "System.out.println(\"Hello World\");\n" +"System.out.println(\"Hello World2\");\n" ); System.out.println("Just some string"); Class c = cc.toClass(); Hello h = (Hello)c.newInstance(); h.say(); } } java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/Str2JavaTest/src/000077500000000000000000000000001263163240400333435ustar00rootroot00000000000000body.txt000066400000000000000000000002611263163240400347610ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/Str2JavaTest/src//#excludeif true //#- import some.package; public class Body { public void main(){ //#+ System.out.println("Hello World"); System.out.println("Hello World2"); //#- } } //#+str.txt000066400000000000000000000000421263163240400346310ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/Str2JavaTest/src//#excludeif true Just some stringtext.txt000066400000000000000000000010761263163240400350150ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/Str2JavaTest/srcpublic class Hello { public void say() { System.out.println("Hello"); } } public class Test { public static void main(String[] args) throws Exception { ClassPool cp = ClassPool.getDefault(); CtClass cc = cp.get("Hello"); CtMethod m = cc.getDeclaredMethod("say"); m.insertBefore( /*$str2java(evalfile("body.txt"),true)$*//*-*/"" ); System.out.println("/*$str2java(evalfile("str.txt"),false)$*/"); Class c = cc.toClass(); Hello h = (Hello)c.newInstance(); h.say(); } } 000077500000000000000000000000001263163240400341465ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StringDirectiveTest000077500000000000000000000000001263163240400347325ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StringDirectiveTest/etltext.txt000066400000000000000000000000541263163240400364560ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StringDirectiveTest/etl expected world expected /*$HELLO$*/ test 000077500000000000000000000000001263163240400347355ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StringDirectiveTest/srctext.txt000066400000000000000000000004011263163240400364550ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/StringDirectiveTest/src//#define HELLO "world" //#if false //$ unexpected /*$HELLO$*/ //#else //$ expected /*$HELLO$*/ //#endif //#if false //$$ unexpected /*$HELLO$*/ //#else //$$ expected /*$HELLO$*/ //#endif //#if false test /*-*/unexpected //#else test /*-*/expected //#endif java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/UserFunctionTest/000077500000000000000000000000001263163240400335445ustar00rootroot00000000000000000077500000000000000000000000001263163240400342515ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/UserFunctionTest/etltext.txt000066400000000000000000000000221263163240400357700ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/UserFunctionTest/etlhello test:yayaya 000077500000000000000000000000001263163240400342545ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/UserFunctionTest/srctext.txt000066400000000000000000000001371263163240400360020ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/usecases/UserFunctionTest/src//#action 1000,"hello",123 hello /*$"test:"+$testfunc(1,"hry",3)$*/ //#action 1000,"hello",123 java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/utils/000077500000000000000000000000001263163240400276055ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/src/test/resources/com/igormaznitsa/jcp/utils/somefile.txt000066400000000000000000000000251263163240400321460ustar00rootroot00000000000000it's just a some filejava-comment-preprocessor-6.0.1/texts/000077500000000000000000000000001263163240400177735ustar00rootroot00000000000000java-comment-preprocessor-6.0.1/texts/LICENSE-2.0.txt000066400000000000000000000261361263163240400221230ustar00rootroot00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. java-comment-preprocessor-6.0.1/texts/readme.txt000066400000000000000000000056651263163240400220050ustar00rootroot00000000000000JCPreprocessor --------------- Author: Igor Maznitsa (http://www.igormaznitsa.com) It is a multi-pass preprocessor with very powerful features (prefixes and postfixes in result, text generation within loops and global and local definitions). The Initial version was developed in 2002 by Igor Maznitsa to make easier the development for the J2ME platform because it was very hard to support multi-variants of the same sources for different J2ME API usage variants provided in devices of different vendors. To keep the preprocessor compatible with IDE and regular Java development chain, commented directives were chosen what doesn't make any effect in the regular java development process and IDEs but allows to make changes related to external definitions. In 2011 the preprocessor was totally reworked and published as an OSS project on Google Code https://github.com/raydac/java-comment-preprocessor Now the preprocessor supports work as : - a MAVEN plugin - an ANT task - a standalone application called through CLI (command line interface) - a Java library with direct call to JCPreprocessor class Licensing ----------- Initially the preprocessor was published and distributed under GNU LGPL v3 but since the 5.3.3 version (2014) it has been distributed under Apache License 2.0 Usage with Maven ------------------ Since version 5.3.2 I public the released plugin versions in the central Maven repository: ... com.igormaznitsa jcp 6.0.1 preprocessSources generate-sources preprocess clearGeneratedFolders clear ... If you don't want use the maven repository then you can install the plugin manually into your local maven repository with the install:install-file goal: mvn install:install-file -Dfile=./jcp-6.0.1.jar -DpomFile=./pom.xml Building --------- The project needs as minimum Maven 3.0.3 and JDK 1.6 to be built. To build the preprocessor manually you have to define the path to your Maven directory in the configuration property 'maven.home' of the 'maven-failsafe-plugin' in the pom.xml. It is a solid project without modules so that its inside testing (especially for the maven part) looks a bit bizarre, may be it would be more better to be implemented as a multi-module maven project but it's some kind of legacy. Versions --------- See the changelog.txt file