Give the summation of all even numbers in a Fibonacci sequence up to, but not including, the maximum value.

The Fibonacci sequence is a series of numbers where the next value is the addition of the previous two values. The series starts with 0 and 1:

0 1 1 2 3 5 8 13 21...

For example:
```python
eve_fib(0)==0
eve_fib(33)==10
eve_fib(25997544)==19544084
```

Difficulty: EASY
Starter code: def even_fib(m):
	

Solutions:
def even_fib(m):
	(x, y) = (0, 1)
	counter = 0
	while y < m:
		if y % 2 == 0:
			counter += y
		(x, y) = (y, x + y)
	return counter


def even_fib(m):
	(a, b, total) = (1, 1, 0)
	while a < m:
		if a % 2 == 0:
			total += a
		(a, b) = (b, a + b)
	return total


def even_fib(m):
	(a, b, evens_sum) = (0, 1, 0)
	while a + b < m:
		if (a + b) % 2 == 0:
			evens_sum += a + b
		(a, b) = (b, a + b)
	return evens_sum


def even_fib(m):
	(a, b, c) = (0, 1, 0)
	while b < m:
		if b % 2 == 0:
			c += b
		(a, b) = (b, a + b)
	return c


from itertools import takewhile

def efib():
	(a, b) = (0, 1)
	while True:
		if a % 2 == 0:
			yield a
		(a, b) = (b, a + b)

def even_fib(m):
	return sum(takewhile(lambda x: x < m, efib()))


from bisect import bisect_left

def gen():
	(x, y) = (0, 1)
	while True:
		yield y
		(x, y) = (y, x + y)
(fib, memo, res) = (gen(), [0], [0])

def even_fib(m):
	while m > memo[-1]:
		val = next(fib)
		if val % 2 == 0:
			memo.append(val)
			res.append(res[-1] + val)
	return m > 0 and res[bisect_left(memo, m) - 1]


def even_fib(m):
	result = [0, 1]
	while result[-1] < m:
		result.append(sum(result[-2:]))
	return sum((num for num in result if num % 2 == 0 and num < m))


def even_fib(m):
	(a, b) = (0, 1)
	sum = 0
	while a < m:
		if a % 2 == 0:
			sum += a
		(a, b) = (b, a + b)
	return sum


def even_fib(m):
	s = 0
	(a, b) = (1, 1)
	while a < m:
		if a % 2 == 0:
			s += a
		(a, b) = (b, a + b)
	return s


def even_fib(m):
	(a, b) = (0, 1)
	summ = 0
	while b < m:
		if b % 2 == 0:
			summ += b
		(a, b) = (b, a + b)
	return summ