// Path: src/main/java/analysis/AnalysisSettings.java
// public static enum NFAConstruction {
// 	THOMPSON,
// 	JAVA;
// }


import matcher.*;
import regexcompiler.*;
import analysis.AnalysisSettings.NFAConstruction;
			pumpSeparators[(i - 1) / 2] = makeVerbatim(args[i]);
			pumps[(i - 1) / 2] = makeVerbatim(args[i + 1]);
		}
		for (int i = 0; i < numPumps; i++) {
			System.out.println("ps_" + i + ": " + pumps[i] + " p_" + i + ": " + pumpSeparators[i]);
		}
		String suffix = makeVerbatim(args[args.length - 1]);
	
		int counter = 1;
		StringBuilder sb = new StringBuilder("Trying to exploit " + patternStr + " with ");
		for (int i = 1; i < args.length - 1; i += 2) {
			sb.append(args[i] + args[i + 1] + "..." + args[i + 1]);
		}
		sb.append(suffix);
	
		System.out.println(sb.toString());
		StringBuilder[] pumpers = new StringBuilder[numPumps];
		for (int i = 0; i < numPumps; i++) {
			pumpers[i] = new StringBuilder(pumps[i]);
		}
		while (true) {
			StringBuilder exploitStringBuilder = new StringBuilder();
			for (int i = 0; i < numPumps; i++) {
				exploitStringBuilder.append(pumpSeparators[i]);
				exploitStringBuilder.append(pumpers[i].toString());
				pumpers[i].append(pumps[i]);
			}
			exploitStringBuilder.append(suffix);
			String exploitString = exploitStringBuilder.toString();
			//System.out.println(exploitString);
// Path: src/main/java/analysis/AnalysisSettings.java
// public static enum NFAConstruction {
// 	THOMPSON,
// 	JAVA;
// }


// Path: src/main/java/matcher/driver/MatcherExploitStringTester.java
import matcher.*;
import regexcompiler.*;
import analysis.AnalysisSettings.NFAConstruction;

			pumpSeparators[(i - 1) / 2] = makeVerbatim(args[i]);
			pumps[(i - 1) / 2] = makeVerbatim(args[i + 1]);
		}
		for (int i = 0; i < numPumps; i++) {
			System.out.println("ps_" + i + ": " + pumps[i] + " p_" + i + ": " + pumpSeparators[i]);
		}
		String suffix = makeVerbatim(args[args.length - 1]);
	
		int counter = 1;
		StringBuilder sb = new StringBuilder("Trying to exploit " + patternStr + " with ");
		for (int i = 1; i < args.length - 1; i += 2) {
			sb.append(args[i] + args[i + 1] + "..." + args[i + 1]);
		}
		sb.append(suffix);
	
		System.out.println(sb.toString());
		StringBuilder[] pumpers = new StringBuilder[numPumps];
		for (int i = 0; i < numPumps; i++) {
			pumpers[i] = new StringBuilder(pumps[i]);
		}
		while (true) {
			StringBuilder exploitStringBuilder = new StringBuilder();
			for (int i = 0; i < numPumps; i++) {
				exploitStringBuilder.append(pumpSeparators[i]);
				exploitStringBuilder.append(pumpers[i].toString());
				pumpers[i].append(pumps[i]);
			}
			exploitStringBuilder.append(suffix);
			String exploitString = exploitStringBuilder.toString();
			//System.out.println(exploitString);
			MyPattern pattern = MyPattern.compile(patternStr, NFAConstruction.JAVA);