// Path: src/com/rachum/amir/util/range/Range.java
// public class Range implements Iterable<Integer>, Iterator<Integer> {
// 	final int start, stop, step;
// 	int next;
// 	
// 	
// 	public Range(final Integer stop) {
// 		this(0, stop, 1);
// 	}
// 	
// 	public Range(final Integer start, final Integer stop) {
// 		this(start, stop, 1);
// 	}
// 	
// 	public Range(final Integer start, final Integer stop, final Integer step) {
// 		if (step.equals(0)) {
// 			throw new IllegalArgumentException();
// 		}
// 		this.start = start;
// 		this.stop = stop;
// 		this.step = step;
// 		this.next = start;
// 	}
// 	
// 	public List<Integer> toList() {
// 		final List<Integer> list = new ArrayList<Integer>();
// 		for (int i=start; (step > 0) ? i<stop : i>stop; i+=step) {
// 			list.add(i);
// 		}
// 		return list;
// 	}
// 	
// 	@Override
// 	public boolean hasNext() {
// 		return (next != stop);
// 	}
// 
// 	@Override
// 	public Integer next() {
// 		if (next == stop) {
// 			throw new NoSuchElementException();
// 		}
// 		final Integer ret = next;
// 		next += step;
// 		return ret;
// 	}
// 
// 	@Override
// 	public void remove() {
// 		throw new UnsupportedOperationException();
// 	}
// 
// 	@Override
// 	public Iterator<Integer> iterator() {
// 		return this;
// 	}
// 
// }


import com.rachum.amir.util.range.Range;
/**
 * 
 */
package com.rachum.amir.util.range.example;


/**
 * @author Rachum
 *
 */
public class Example {

	/**
	 * @param args
	 */
	public static void main(final String[] args) {
// Path: src/com/rachum/amir/util/range/Range.java
// public class Range implements Iterable<Integer>, Iterator<Integer> {
// 	final int start, stop, step;
// 	int next;
// 	
// 	
// 	public Range(final Integer stop) {
// 		this(0, stop, 1);
// 	}
// 	
// 	public Range(final Integer start, final Integer stop) {
// 		this(start, stop, 1);
// 	}
// 	
// 	public Range(final Integer start, final Integer stop, final Integer step) {
// 		if (step.equals(0)) {
// 			throw new IllegalArgumentException();
// 		}
// 		this.start = start;
// 		this.stop = stop;
// 		this.step = step;
// 		this.next = start;
// 	}
// 	
// 	public List<Integer> toList() {
// 		final List<Integer> list = new ArrayList<Integer>();
// 		for (int i=start; (step > 0) ? i<stop : i>stop; i+=step) {
// 			list.add(i);
// 		}
// 		return list;
// 	}
// 	
// 	@Override
// 	public boolean hasNext() {
// 		return (next != stop);
// 	}
// 
// 	@Override
// 	public Integer next() {
// 		if (next == stop) {
// 			throw new NoSuchElementException();
// 		}
// 		final Integer ret = next;
// 		next += step;
// 		return ret;
// 	}
// 
// 	@Override
// 	public void remove() {
// 		throw new UnsupportedOperationException();
// 	}
// 
// 	@Override
// 	public Iterator<Integer> iterator() {
// 		return this;
// 	}
// 
// }


// Path: src/com/rachum/amir/util/range/example/Example.java
import com.rachum.amir.util.range.Range;

/**
 * 
 */
package com.rachum.amir.util.range.example;


/**
 * @author Rachum
 *
 */
public class Example {

	/**
	 * @param args
	 */
	public static void main(final String[] args) {
		for (final int i : new Range(0,10,2)) {