// Path: src/main/java/com/stackify/api/common/util/Preconditions.java
// public class Preconditions {
// 
// 	/**
// 	 * Throws NullPointerException if the argument is null
// 	 * @param o The object to check
// 	 * @throws NullPointerException
// 	 */
// 	public static void checkNotNull(final Object o) {
// 		if (o == null) {
// 			throw new NullPointerException();
// 		}
// 	}
// 	
// 	/**
// 	 * Throws IllegalArgumentException if the expression is false
// 	 * @param expression The expression
// 	 * @throws IllegalArgumentException
// 	 */
// 	public static void checkArgument(final boolean expression) {
// 		if (!expression) {
// 			throw new IllegalArgumentException();
// 		}
// 	}
// 	
// 	/**
// 	 * Hidden to prevent construction
// 	 */
// 	private Preconditions() {
// 	}
// }


import java.util.ArrayDeque;
import java.util.Collection;
import java.util.Iterator;
import java.util.Queue;
import com.stackify.api.common.util.Preconditions;
	@Override
	public synchronized boolean addAll(Collection<? extends E> c) {
		Preconditions.checkNotNull(c);
		
		for (E e : c) {
			add(e);
		}
		
		return true;
	}

	/**
	 * @see java.util.Collection#removeAll(java.util.Collection)
	 */
	@Override
	public synchronized boolean removeAll(Collection<?> c) {
		return deque.removeAll(c);
	}

	/**
	 * @see java.util.Collection#retainAll(java.util.Collection)
	 */
	@Override
	public synchronized boolean retainAll(Collection<?> c) {
		return deque.retainAll(c);
	}

	/**
	 * @see java.util.Collection#clear()
	 */
// Path: src/main/java/com/stackify/api/common/util/Preconditions.java
// public class Preconditions {
// 
// 	/**
// 	 * Throws NullPointerException if the argument is null
// 	 * @param o The object to check
// 	 * @throws NullPointerException
// 	 */
// 	public static void checkNotNull(final Object o) {
// 		if (o == null) {
// 			throw new NullPointerException();
// 		}
// 	}
// 	
// 	/**
// 	 * Throws IllegalArgumentException if the expression is false
// 	 * @param expression The expression
// 	 * @throws IllegalArgumentException
// 	 */
// 	public static void checkArgument(final boolean expression) {
// 		if (!expression) {
// 			throw new IllegalArgumentException();
// 		}
// 	}
// 	
// 	/**
// 	 * Hidden to prevent construction
// 	 */
// 	private Preconditions() {
// 	}
// }


// Path: src/main/java/com/stackify/api/common/collect/SynchronizedEvictingQueue.java
import java.util.ArrayDeque;
import java.util.Collection;
import java.util.Iterator;
import java.util.Queue;
import com.stackify.api.common.util.Preconditions;

	@Override
	public synchronized boolean addAll(Collection<? extends E> c) {
		Preconditions.checkNotNull(c);
		
		for (E e : c) {
			add(e);
		}
		
		return true;
	}

	/**
	 * @see java.util.Collection#removeAll(java.util.Collection)
	 */
	@Override
	public synchronized boolean removeAll(Collection<?> c) {
		return deque.removeAll(c);
	}

	/**
	 * @see java.util.Collection#retainAll(java.util.Collection)
	 */
	@Override
	public synchronized boolean retainAll(Collection<?> c) {
		return deque.retainAll(c);
	}

	/**
	 * @see java.util.Collection#clear()
	 */
	@Override