diff options
Diffstat (limited to 'docs/style-generator')
| -rw-r--r-- | docs/style-generator/index.html | 10713 | 
1 files changed, 10713 insertions, 0 deletions
| diff --git a/docs/style-generator/index.html b/docs/style-generator/index.html new file mode 100644 index 0000000..a85638d --- /dev/null +++ b/docs/style-generator/index.html @@ -0,0 +1,10713 @@ +<!DOCTYPE HTML> +<html> +<head> +  <meta charset="UTF-8"> +  <title>Main</title> +</head> + +<body> +<div id="elm-f0111bc4e658d0f98db96260c16f7e49"></div> +<script> +(function(scope){ +'use strict'; + +function F(arity, fun, wrapper) { +  wrapper.a = arity; +  wrapper.f = fun; +  return wrapper; +} + +function F2(fun) { +  return F(2, fun, function(a) { return function(b) { return fun(a,b); }; }) +} +function F3(fun) { +  return F(3, fun, function(a) { +    return function(b) { return function(c) { return fun(a, b, c); }; }; +  }); +} +function F4(fun) { +  return F(4, fun, function(a) { return function(b) { return function(c) { +    return function(d) { return fun(a, b, c, d); }; }; }; +  }); +} +function F5(fun) { +  return F(5, fun, function(a) { return function(b) { return function(c) { +    return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; }; +  }); +} +function F6(fun) { +  return F(6, fun, function(a) { return function(b) { return function(c) { +    return function(d) { return function(e) { return function(f) { +    return fun(a, b, c, d, e, f); }; }; }; }; }; +  }); +} +function F7(fun) { +  return F(7, fun, function(a) { return function(b) { return function(c) { +    return function(d) { return function(e) { return function(f) { +    return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; }; +  }); +} +function F8(fun) { +  return F(8, fun, function(a) { return function(b) { return function(c) { +    return function(d) { return function(e) { return function(f) { +    return function(g) { return function(h) { +    return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; }; +  }); +} +function F9(fun) { +  return F(9, fun, function(a) { return function(b) { return function(c) { +    return function(d) { return function(e) { return function(f) { +    return function(g) { return function(h) { return function(i) { +    return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; }; +  }); +} + +function A2(fun, a, b) { +  return fun.a === 2 ? fun.f(a, b) : fun(a)(b); +} +function A3(fun, a, b, c) { +  return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c); +} +function A4(fun, a, b, c, d) { +  return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d); +} +function A5(fun, a, b, c, d, e) { +  return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e); +} +function A6(fun, a, b, c, d, e, f) { +  return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f); +} +function A7(fun, a, b, c, d, e, f, g) { +  return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g); +} +function A8(fun, a, b, c, d, e, f, g, h) { +  return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h); +} +function A9(fun, a, b, c, d, e, f, g, h, i) { +  return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i); +} + + + + +var _List_Nil = { $: 0 }; +var _List_Nil_UNUSED = { $: '[]' }; + +function _List_Cons(hd, tl) { return { $: 1, a: hd, b: tl }; } +function _List_Cons_UNUSED(hd, tl) { return { $: '::', a: hd, b: tl }; } + + +var _List_cons = F2(_List_Cons); + +function _List_fromArray(arr) +{ +	var out = _List_Nil; +	for (var i = arr.length; i--; ) +	{ +		out = _List_Cons(arr[i], out); +	} +	return out; +} + +function _List_toArray(xs) +{ +	for (var out = []; xs.b; xs = xs.b) // WHILE_CONS +	{ +		out.push(xs.a); +	} +	return out; +} + +var _List_map2 = F3(function(f, xs, ys) +{ +	for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES +	{ +		arr.push(A2(f, xs.a, ys.a)); +	} +	return _List_fromArray(arr); +}); + +var _List_map3 = F4(function(f, xs, ys, zs) +{ +	for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES +	{ +		arr.push(A3(f, xs.a, ys.a, zs.a)); +	} +	return _List_fromArray(arr); +}); + +var _List_map4 = F5(function(f, ws, xs, ys, zs) +{ +	for (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES +	{ +		arr.push(A4(f, ws.a, xs.a, ys.a, zs.a)); +	} +	return _List_fromArray(arr); +}); + +var _List_map5 = F6(function(f, vs, ws, xs, ys, zs) +{ +	for (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES +	{ +		arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a)); +	} +	return _List_fromArray(arr); +}); + +var _List_sortBy = F2(function(f, xs) +{ +	return _List_fromArray(_List_toArray(xs).sort(function(a, b) { +		return _Utils_cmp(f(a), f(b)); +	})); +}); + +var _List_sortWith = F2(function(f, xs) +{ +	return _List_fromArray(_List_toArray(xs).sort(function(a, b) { +		var ord = A2(f, a, b); +		return ord === elm$core$Basics$EQ ? 0 : ord === elm$core$Basics$LT ? -1 : 1; +	})); +}); + + + +// EQUALITY + +function _Utils_eq(x, y) +{ +	for ( +		var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack); +		isEqual && (pair = stack.pop()); +		isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack) +		) +	{} + +	return isEqual; +} + +function _Utils_eqHelp(x, y, depth, stack) +{ +	if (depth > 100) +	{ +		stack.push(_Utils_Tuple2(x,y)); +		return true; +	} + +	if (x === y) +	{ +		return true; +	} + +	if (typeof x !== 'object' || x === null || y === null) +	{ +		typeof x === 'function' && _Debug_crash(5); +		return false; +	} + +	/**_UNUSED/ +	if (x.$ === 'Set_elm_builtin') +	{ +		x = elm$core$Set$toList(x); +		y = elm$core$Set$toList(y); +	} +	if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin') +	{ +		x = elm$core$Dict$toList(x); +		y = elm$core$Dict$toList(y); +	} +	//*/ + +	/**/ +	if (x.$ < 0) +	{ +		x = elm$core$Dict$toList(x); +		y = elm$core$Dict$toList(y); +	} +	//*/ + +	for (var key in x) +	{ +		if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack)) +		{ +			return false; +		} +	} +	return true; +} + +var _Utils_equal = F2(_Utils_eq); +var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); }); + + + +// COMPARISONS + +// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on +// the particular integer values assigned to LT, EQ, and GT. + +function _Utils_cmp(x, y, ord) +{ +	if (typeof x !== 'object') +	{ +		return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1; +	} + +	/**_UNUSED/ +	if (x instanceof String) +	{ +		var a = x.valueOf(); +		var b = y.valueOf(); +		return a === b ? 0 : a < b ? -1 : 1; +	} +	//*/ + +	/**/ +	if (!x.$) +	//*/ +	/**_UNUSED/ +	if (x.$[0] === '#') +	//*/ +	{ +		return (ord = _Utils_cmp(x.a, y.a)) +			? ord +			: (ord = _Utils_cmp(x.b, y.b)) +				? ord +				: _Utils_cmp(x.c, y.c); +	} + +	// traverse conses until end of a list or a mismatch +	for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES +	return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0); +} + +var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; }); +var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; }); +var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; }); +var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; }); + +var _Utils_compare = F2(function(x, y) +{ +	var n = _Utils_cmp(x, y); +	return n < 0 ? elm$core$Basics$LT : n ? elm$core$Basics$GT : elm$core$Basics$EQ; +}); + + +// COMMON VALUES + +var _Utils_Tuple0 = 0; +var _Utils_Tuple0_UNUSED = { $: '#0' }; + +function _Utils_Tuple2(a, b) { return { a: a, b: b }; } +function _Utils_Tuple2_UNUSED(a, b) { return { $: '#2', a: a, b: b }; } + +function _Utils_Tuple3(a, b, c) { return { a: a, b: b, c: c }; } +function _Utils_Tuple3_UNUSED(a, b, c) { return { $: '#3', a: a, b: b, c: c }; } + +function _Utils_chr(c) { return c; } +function _Utils_chr_UNUSED(c) { return new String(c); } + + +// RECORDS + +function _Utils_update(oldRecord, updatedFields) +{ +	var newRecord = {}; + +	for (var key in oldRecord) +	{ +		newRecord[key] = oldRecord[key]; +	} + +	for (var key in updatedFields) +	{ +		newRecord[key] = updatedFields[key]; +	} + +	return newRecord; +} + + +// APPEND + +var _Utils_append = F2(_Utils_ap); + +function _Utils_ap(xs, ys) +{ +	// append Strings +	if (typeof xs === 'string') +	{ +		return xs + ys; +	} + +	// append Lists +	if (!xs.b) +	{ +		return ys; +	} +	var root = _List_Cons(xs.a, ys); +	xs = xs.b +	for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS +	{ +		curr = curr.b = _List_Cons(xs.a, ys); +	} +	return root; +} + + + +var _JsArray_empty = []; + +function _JsArray_singleton(value) +{ +    return [value]; +} + +function _JsArray_length(array) +{ +    return array.length; +} + +var _JsArray_initialize = F3(function(size, offset, func) +{ +    var result = new Array(size); + +    for (var i = 0; i < size; i++) +    { +        result[i] = func(offset + i); +    } + +    return result; +}); + +var _JsArray_initializeFromList = F2(function (max, ls) +{ +    var result = new Array(max); + +    for (var i = 0; i < max && ls.b; i++) +    { +        result[i] = ls.a; +        ls = ls.b; +    } + +    result.length = i; +    return _Utils_Tuple2(result, ls); +}); + +var _JsArray_unsafeGet = F2(function(index, array) +{ +    return array[index]; +}); + +var _JsArray_unsafeSet = F3(function(index, value, array) +{ +    var length = array.length; +    var result = new Array(length); + +    for (var i = 0; i < length; i++) +    { +        result[i] = array[i]; +    } + +    result[index] = value; +    return result; +}); + +var _JsArray_push = F2(function(value, array) +{ +    var length = array.length; +    var result = new Array(length + 1); + +    for (var i = 0; i < length; i++) +    { +        result[i] = array[i]; +    } + +    result[length] = value; +    return result; +}); + +var _JsArray_foldl = F3(function(func, acc, array) +{ +    var length = array.length; + +    for (var i = 0; i < length; i++) +    { +        acc = A2(func, array[i], acc); +    } + +    return acc; +}); + +var _JsArray_foldr = F3(function(func, acc, array) +{ +    for (var i = array.length - 1; i >= 0; i--) +    { +        acc = A2(func, array[i], acc); +    } + +    return acc; +}); + +var _JsArray_map = F2(function(func, array) +{ +    var length = array.length; +    var result = new Array(length); + +    for (var i = 0; i < length; i++) +    { +        result[i] = func(array[i]); +    } + +    return result; +}); + +var _JsArray_indexedMap = F3(function(func, offset, array) +{ +    var length = array.length; +    var result = new Array(length); + +    for (var i = 0; i < length; i++) +    { +        result[i] = A2(func, offset + i, array[i]); +    } + +    return result; +}); + +var _JsArray_slice = F3(function(from, to, array) +{ +    return array.slice(from, to); +}); + +var _JsArray_appendN = F3(function(n, dest, source) +{ +    var destLen = dest.length; +    var itemsToCopy = n - destLen; + +    if (itemsToCopy > source.length) +    { +        itemsToCopy = source.length; +    } + +    var size = destLen + itemsToCopy; +    var result = new Array(size); + +    for (var i = 0; i < destLen; i++) +    { +        result[i] = dest[i]; +    } + +    for (var i = 0; i < itemsToCopy; i++) +    { +        result[i + destLen] = source[i]; +    } + +    return result; +}); + + + +// LOG + +var _Debug_log = F2(function(tag, value) +{ +	return value; +}); + +var _Debug_log_UNUSED = F2(function(tag, value) +{ +	console.log(tag + ': ' + _Debug_toString(value)); +	return value; +}); + + +// TODOS + +function _Debug_todo(moduleName, region) +{ +	return function(message) { +		_Debug_crash(8, moduleName, region, message); +	}; +} + +function _Debug_todoCase(moduleName, region, value) +{ +	return function(message) { +		_Debug_crash(9, moduleName, region, value, message); +	}; +} + + +// TO STRING + +function _Debug_toString(value) +{ +	return '<internals>'; +} + +function _Debug_toString_UNUSED(value) +{ +	return _Debug_toAnsiString(false, value); +} + +function _Debug_toAnsiString(ansi, value) +{ +	if (typeof value === 'function') +	{ +		return _Debug_internalColor(ansi, '<function>'); +	} + +	if (typeof value === 'boolean') +	{ +		return _Debug_ctorColor(ansi, value ? 'True' : 'False'); +	} + +	if (typeof value === 'number') +	{ +		return _Debug_numberColor(ansi, value + ''); +	} + +	if (value instanceof String) +	{ +		return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'"); +	} + +	if (typeof value === 'string') +	{ +		return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"'); +	} + +	if (typeof value === 'object' && '$' in value) +	{ +		var tag = value.$; + +		if (typeof tag === 'number') +		{ +			return _Debug_internalColor(ansi, '<internals>'); +		} + +		if (tag[0] === '#') +		{ +			var output = []; +			for (var k in value) +			{ +				if (k === '$') continue; +				output.push(_Debug_toAnsiString(ansi, value[k])); +			} +			return '(' + output.join(',') + ')'; +		} + +		if (tag === 'Set_elm_builtin') +		{ +			return _Debug_ctorColor(ansi, 'Set') +				+ _Debug_fadeColor(ansi, '.fromList') + ' ' +				+ _Debug_toAnsiString(ansi, elm$core$Set$toList(value)); +		} + +		if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin') +		{ +			return _Debug_ctorColor(ansi, 'Dict') +				+ _Debug_fadeColor(ansi, '.fromList') + ' ' +				+ _Debug_toAnsiString(ansi, elm$core$Dict$toList(value)); +		} + +		if (tag === 'Array_elm_builtin') +		{ +			return _Debug_ctorColor(ansi, 'Array') +				+ _Debug_fadeColor(ansi, '.fromList') + ' ' +				+ _Debug_toAnsiString(ansi, elm$core$Array$toList(value)); +		} + +		if (tag === '::' || tag === '[]') +		{ +			var output = '['; + +			value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b) + +			for (; value.b; value = value.b) // WHILE_CONS +			{ +				output += ',' + _Debug_toAnsiString(ansi, value.a); +			} +			return output + ']'; +		} + +		var output = ''; +		for (var i in value) +		{ +			if (i === '$') continue; +			var str = _Debug_toAnsiString(ansi, value[i]); +			var c0 = str[0]; +			var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0; +			output += ' ' + (parenless ? str : '(' + str + ')'); +		} +		return _Debug_ctorColor(ansi, tag) + output; +	} + +	if (typeof value === 'object') +	{ +		var output = []; +		for (var key in value) +		{ +			var field = key[0] === '_' ? key.slice(1) : key; +			output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key])); +		} +		if (output.length === 0) +		{ +			return '{}'; +		} +		return '{ ' + output.join(', ') + ' }'; +	} + +	return _Debug_internalColor(ansi, '<internals>'); +} + +function _Debug_addSlashes(str, isChar) +{ +	var s = str +		.replace(/\\/g, '\\\\') +		.replace(/\n/g, '\\n') +		.replace(/\t/g, '\\t') +		.replace(/\r/g, '\\r') +		.replace(/\v/g, '\\v') +		.replace(/\0/g, '\\0'); + +	if (isChar) +	{ +		return s.replace(/\'/g, '\\\''); +	} +	else +	{ +		return s.replace(/\"/g, '\\"'); +	} +} + +function _Debug_ctorColor(ansi, string) +{ +	return ansi ? '\x1b[96m' + string + '\x1b[0m' : string; +} + +function _Debug_numberColor(ansi, string) +{ +	return ansi ? '\x1b[95m' + string + '\x1b[0m' : string; +} + +function _Debug_stringColor(ansi, string) +{ +	return ansi ? '\x1b[93m' + string + '\x1b[0m' : string; +} + +function _Debug_charColor(ansi, string) +{ +	return ansi ? '\x1b[92m' + string + '\x1b[0m' : string; +} + +function _Debug_fadeColor(ansi, string) +{ +	return ansi ? '\x1b[37m' + string + '\x1b[0m' : string; +} + +function _Debug_internalColor(ansi, string) +{ +	return ansi ? '\x1b[94m' + string + '\x1b[0m' : string; +} + + + +// CRASH + + +function _Debug_crash(identifier) +{ +	throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md'); +} + + +function _Debug_crash_UNUSED(identifier, fact1, fact2, fact3, fact4) +{ +	switch(identifier) +	{ +		case 0: +			throw new Error('What node should I take over? In JavaScript I need something like:\n\n    Elm.Main.init({\n        node: document.getElementById("elm-node")\n    })\n\nYou need to do this with any Browser.sandbox or Browser.element program.'); + +		case 1: +			throw new Error('Browser.application programs cannot handle URLs like this:\n\n    ' + document.location.href + '\n\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.'); + +		case 2: +			var message = fact1; +			throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + message); + +		case 3: +			var portName = fact1; +			throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.'); + +		case 4: +			var portName = fact1; +			var problem = fact2; +			throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem); + +		case 5: +			throw new Error('Trying to use `(==)` on functions.\nThere is no way to know if functions are "the same" in the Elm sense.\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.'); + +		case 6: +			var moduleName = fact1; +			throw new Error('Your page is loading multiple Elm scripts with a module named ' + moduleName + '. Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!'); + +		case 8: +			var moduleName = fact1; +			var region = fact2; +			var message = fact3; +			throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message); + +		case 9: +			var moduleName = fact1; +			var region = fact2; +			var value = fact3; +			var message = fact4; +			throw new Error( +				'TODO in module `' + moduleName + '` from the `case` expression ' +				+ _Debug_regionToString(region) + '\n\nIt received the following value:\n\n    ' +				+ _Debug_toString(value).replace('\n', '\n    ') +				+ '\n\nBut the branch that handles it says:\n\n    ' + message.replace('\n', '\n    ') +			); + +		case 10: +			throw new Error('Bug in https://github.com/elm/virtual-dom/issues'); + +		case 11: +			throw new Error('Cannot perform mod 0. Division by zero error.'); +	} +} + +function _Debug_regionToString(region) +{ +	if (region.bY.N === region.bA.N) +	{ +		return 'on line ' + region.bY.N; +	} +	return 'on lines ' + region.bY.N + ' through ' + region.bA.N; +} + + + +// MATH + +var _Basics_add = F2(function(a, b) { return a + b; }); +var _Basics_sub = F2(function(a, b) { return a - b; }); +var _Basics_mul = F2(function(a, b) { return a * b; }); +var _Basics_fdiv = F2(function(a, b) { return a / b; }); +var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; }); +var _Basics_pow = F2(Math.pow); + +var _Basics_remainderBy = F2(function(b, a) { return a % b; }); + +// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf +var _Basics_modBy = F2(function(modulus, x) +{ +	var answer = x % modulus; +	return modulus === 0 +		? _Debug_crash(11) +		: +	((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0)) +		? answer + modulus +		: answer; +}); + + +// TRIGONOMETRY + +var _Basics_pi = Math.PI; +var _Basics_e = Math.E; +var _Basics_cos = Math.cos; +var _Basics_sin = Math.sin; +var _Basics_tan = Math.tan; +var _Basics_acos = Math.acos; +var _Basics_asin = Math.asin; +var _Basics_atan = Math.atan; +var _Basics_atan2 = F2(Math.atan2); + + +// MORE MATH + +function _Basics_toFloat(x) { return x; } +function _Basics_truncate(n) { return n | 0; } +function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; } + +var _Basics_ceiling = Math.ceil; +var _Basics_floor = Math.floor; +var _Basics_round = Math.round; +var _Basics_sqrt = Math.sqrt; +var _Basics_log = Math.log; +var _Basics_isNaN = isNaN; + + +// BOOLEANS + +function _Basics_not(bool) { return !bool; } +var _Basics_and = F2(function(a, b) { return a && b; }); +var _Basics_or  = F2(function(a, b) { return a || b; }); +var _Basics_xor = F2(function(a, b) { return a !== b; }); + + + +// CORE DECODERS + +function _Json_succeed(msg) +{ +	return { +		$: 0, +		a: msg +	}; +} + +function _Json_fail(msg) +{ +	return { +		$: 1, +		a: msg +	}; +} + +var _Json_decodeInt = { $: 2 }; +var _Json_decodeBool = { $: 3 }; +var _Json_decodeFloat = { $: 4 }; +var _Json_decodeValue = { $: 5 }; +var _Json_decodeString = { $: 6 }; + +function _Json_decodeList(decoder) { return { $: 7, b: decoder }; } +function _Json_decodeArray(decoder) { return { $: 8, b: decoder }; } + +function _Json_decodeNull(value) { return { $: 9, c: value }; } + +var _Json_decodeField = F2(function(field, decoder) +{ +	return { +		$: 10, +		d: field, +		b: decoder +	}; +}); + +var _Json_decodeIndex = F2(function(index, decoder) +{ +	return { +		$: 11, +		e: index, +		b: decoder +	}; +}); + +function _Json_decodeKeyValuePairs(decoder) +{ +	return { +		$: 12, +		b: decoder +	}; +} + +function _Json_mapMany(f, decoders) +{ +	return { +		$: 13, +		f: f, +		g: decoders +	}; +} + +var _Json_andThen = F2(function(callback, decoder) +{ +	return { +		$: 14, +		b: decoder, +		h: callback +	}; +}); + +function _Json_oneOf(decoders) +{ +	return { +		$: 15, +		g: decoders +	}; +} + + +// DECODING OBJECTS + +var _Json_map1 = F2(function(f, d1) +{ +	return _Json_mapMany(f, [d1]); +}); + +var _Json_map2 = F3(function(f, d1, d2) +{ +	return _Json_mapMany(f, [d1, d2]); +}); + +var _Json_map3 = F4(function(f, d1, d2, d3) +{ +	return _Json_mapMany(f, [d1, d2, d3]); +}); + +var _Json_map4 = F5(function(f, d1, d2, d3, d4) +{ +	return _Json_mapMany(f, [d1, d2, d3, d4]); +}); + +var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5) +{ +	return _Json_mapMany(f, [d1, d2, d3, d4, d5]); +}); + +var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6) +{ +	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]); +}); + +var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7) +{ +	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]); +}); + +var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8) +{ +	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]); +}); + + +// DECODE + +var _Json_runOnString = F2(function(decoder, string) +{ +	try +	{ +		var value = JSON.parse(string); +		return _Json_runHelp(decoder, value); +	} +	catch (e) +	{ +		return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string))); +	} +}); + +var _Json_run = F2(function(decoder, value) +{ +	return _Json_runHelp(decoder, _Json_unwrap(value)); +}); + +function _Json_runHelp(decoder, value) +{ +	switch (decoder.$) +	{ +		case 3: +			return (typeof value === 'boolean') +				? elm$core$Result$Ok(value) +				: _Json_expecting('a BOOL', value); + +		case 2: +			if (typeof value !== 'number') { +				return _Json_expecting('an INT', value); +			} + +			if (-2147483647 < value && value < 2147483647 && (value | 0) === value) { +				return elm$core$Result$Ok(value); +			} + +			if (isFinite(value) && !(value % 1)) { +				return elm$core$Result$Ok(value); +			} + +			return _Json_expecting('an INT', value); + +		case 4: +			return (typeof value === 'number') +				? elm$core$Result$Ok(value) +				: _Json_expecting('a FLOAT', value); + +		case 6: +			return (typeof value === 'string') +				? elm$core$Result$Ok(value) +				: (value instanceof String) +					? elm$core$Result$Ok(value + '') +					: _Json_expecting('a STRING', value); + +		case 9: +			return (value === null) +				? elm$core$Result$Ok(decoder.c) +				: _Json_expecting('null', value); + +		case 5: +			return elm$core$Result$Ok(_Json_wrap(value)); + +		case 7: +			if (!Array.isArray(value)) +			{ +				return _Json_expecting('a LIST', value); +			} +			return _Json_runArrayDecoder(decoder.b, value, _List_fromArray); + +		case 8: +			if (!Array.isArray(value)) +			{ +				return _Json_expecting('an ARRAY', value); +			} +			return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray); + +		case 10: +			var field = decoder.d; +			if (typeof value !== 'object' || value === null || !(field in value)) +			{ +				return _Json_expecting('an OBJECT with a field named `' + field + '`', value); +			} +			var result = _Json_runHelp(decoder.b, value[field]); +			return (elm$core$Result$isOk(result)) ? result : elm$core$Result$Err(A2(elm$json$Json$Decode$Field, field, result.a)); + +		case 11: +			var index = decoder.e; +			if (!Array.isArray(value)) +			{ +				return _Json_expecting('an ARRAY', value); +			} +			if (index >= value.length) +			{ +				return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value); +			} +			var result = _Json_runHelp(decoder.b, value[index]); +			return (elm$core$Result$isOk(result)) ? result : elm$core$Result$Err(A2(elm$json$Json$Decode$Index, index, result.a)); + +		case 12: +			if (typeof value !== 'object' || value === null || Array.isArray(value)) +			{ +				return _Json_expecting('an OBJECT', value); +			} + +			var keyValuePairs = _List_Nil; +			// TODO test perf of Object.keys and switch when support is good enough +			for (var key in value) +			{ +				if (value.hasOwnProperty(key)) +				{ +					var result = _Json_runHelp(decoder.b, value[key]); +					if (!elm$core$Result$isOk(result)) +					{ +						return elm$core$Result$Err(A2(elm$json$Json$Decode$Field, key, result.a)); +					} +					keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs); +				} +			} +			return elm$core$Result$Ok(elm$core$List$reverse(keyValuePairs)); + +		case 13: +			var answer = decoder.f; +			var decoders = decoder.g; +			for (var i = 0; i < decoders.length; i++) +			{ +				var result = _Json_runHelp(decoders[i], value); +				if (!elm$core$Result$isOk(result)) +				{ +					return result; +				} +				answer = answer(result.a); +			} +			return elm$core$Result$Ok(answer); + +		case 14: +			var result = _Json_runHelp(decoder.b, value); +			return (!elm$core$Result$isOk(result)) +				? result +				: _Json_runHelp(decoder.h(result.a), value); + +		case 15: +			var errors = _List_Nil; +			for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS +			{ +				var result = _Json_runHelp(temp.a, value); +				if (elm$core$Result$isOk(result)) +				{ +					return result; +				} +				errors = _List_Cons(result.a, errors); +			} +			return elm$core$Result$Err(elm$json$Json$Decode$OneOf(elm$core$List$reverse(errors))); + +		case 1: +			return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value))); + +		case 0: +			return elm$core$Result$Ok(decoder.a); +	} +} + +function _Json_runArrayDecoder(decoder, value, toElmValue) +{ +	var len = value.length; +	var array = new Array(len); +	for (var i = 0; i < len; i++) +	{ +		var result = _Json_runHelp(decoder, value[i]); +		if (!elm$core$Result$isOk(result)) +		{ +			return elm$core$Result$Err(A2(elm$json$Json$Decode$Index, i, result.a)); +		} +		array[i] = result.a; +	} +	return elm$core$Result$Ok(toElmValue(array)); +} + +function _Json_toElmArray(array) +{ +	return A2(elm$core$Array$initialize, array.length, function(i) { return array[i]; }); +} + +function _Json_expecting(type, value) +{ +	return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value))); +} + + +// EQUALITY + +function _Json_equality(x, y) +{ +	if (x === y) +	{ +		return true; +	} + +	if (x.$ !== y.$) +	{ +		return false; +	} + +	switch (x.$) +	{ +		case 0: +		case 1: +			return x.a === y.a; + +		case 3: +		case 2: +		case 4: +		case 6: +		case 5: +			return true; + +		case 9: +			return x.c === y.c; + +		case 7: +		case 8: +		case 12: +			return _Json_equality(x.b, y.b); + +		case 10: +			return x.d === y.d && _Json_equality(x.b, y.b); + +		case 11: +			return x.e === y.e && _Json_equality(x.b, y.b); + +		case 13: +			return x.f === y.f && _Json_listEquality(x.g, y.g); + +		case 14: +			return x.h === y.h && _Json_equality(x.b, y.b); + +		case 15: +			return _Json_listEquality(x.g, y.g); +	} +} + +function _Json_listEquality(aDecoders, bDecoders) +{ +	var len = aDecoders.length; +	if (len !== bDecoders.length) +	{ +		return false; +	} +	for (var i = 0; i < len; i++) +	{ +		if (!_Json_equality(aDecoders[i], bDecoders[i])) +		{ +			return false; +		} +	} +	return true; +} + + +// ENCODE + +var _Json_encode = F2(function(indentLevel, value) +{ +	return JSON.stringify(_Json_unwrap(value), null, indentLevel); +}); + +function _Json_wrap_UNUSED(value) { return { $: 0, a: value }; } +function _Json_unwrap_UNUSED(value) { return value.a; } + +function _Json_wrap(value) { return value; } +function _Json_unwrap(value) { return value; } + +function _Json_emptyArray() { return []; } +function _Json_emptyObject() { return {}; } + +var _Json_addField = F3(function(key, value, object) +{ +	object[key] = _Json_unwrap(value); +	return object; +}); + +function _Json_addEntry(func) +{ +	return F2(function(entry, array) +	{ +		array.push(_Json_unwrap(func(entry))); +		return array; +	}); +} + +var _Json_encodeNull = _Json_wrap(null); + + + +// TASKS + +function _Scheduler_succeed(value) +{ +	return { +		$: 0, +		a: value +	}; +} + +function _Scheduler_fail(error) +{ +	return { +		$: 1, +		a: error +	}; +} + +function _Scheduler_binding(callback) +{ +	return { +		$: 2, +		b: callback, +		c: null +	}; +} + +var _Scheduler_andThen = F2(function(callback, task) +{ +	return { +		$: 3, +		b: callback, +		d: task +	}; +}); + +var _Scheduler_onError = F2(function(callback, task) +{ +	return { +		$: 4, +		b: callback, +		d: task +	}; +}); + +function _Scheduler_receive(callback) +{ +	return { +		$: 5, +		b: callback +	}; +} + + +// PROCESSES + +var _Scheduler_guid = 0; + +function _Scheduler_rawSpawn(task) +{ +	var proc = { +		$: 0, +		e: _Scheduler_guid++, +		f: task, +		g: null, +		h: [] +	}; + +	_Scheduler_enqueue(proc); + +	return proc; +} + +function _Scheduler_spawn(task) +{ +	return _Scheduler_binding(function(callback) { +		callback(_Scheduler_succeed(_Scheduler_rawSpawn(task))); +	}); +} + +function _Scheduler_rawSend(proc, msg) +{ +	proc.h.push(msg); +	_Schedule | 
