private int flushValue(byte[] cards) {
		byte[] count = new byte[4];
		for (byte card : cards) {
			count[getCardColor(card)]++;
		}

		if (count[0] >= 5 || count[1] >= 5 || count[2] >= 5 || count[3] >= 5) {
			int color_idx = 0;
			while (count[color_idx] < 5)
				color_idx++;

			int res = 0;
			int todo = 5;
			int i = 0;
			while (todo > 0) {
				if (getCardColor(cards[i]) == color_idx) {
					todo--;
					res = (res * 13) + getCardValue(cards[i]);
				}
				i++;
			}
			return res;
		}

		return NOT_FOUND;
	}