/**
* UUID generating code sample/example
* Only here for reference and tests.
**/
function generateUUID(){
	var r, o = new Uint8Array(16);
	function i() {
		if (!r && !(r = "undefined" != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || "undefined" != typeof msCrypto && "function" == typeof msCrypto.getRandomValues && msCrypto.getRandomValues.bind(msCrypto)))
			throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
		return r(o)
	}
	var c = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
	for (var a = function(t) {
		return "string" == typeof t && c.test(t)
	}, u = [], s = 0; s < 256; ++s)
		u.push((s + 256).toString(16).substr(1));
	var l = function(t) {
		var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0
		  , e = (u[t[n + 0]] + u[t[n + 1]] + u[t[n + 2]] + u[t[n + 3]] + "-" + u[t[n + 4]] + u[t[n + 5]] + "-" + u[t[n + 6]] + u[t[n + 7]] + "-" + u[t[n + 8]] + u[t[n + 9]] + "-" + u[t[n + 10]] + u[t[n + 11]] + u[t[n + 12]] + u[t[n + 13]] + u[t[n + 14]] + u[t[n + 15]]).toLowerCase();
		if (!a(e))
			throw TypeError("Stringified UUID is invalid");
		return e
	};
	var f = function(t, n, e) {
		var r = (t = t || {}).random || (t.rng || i)();
		if (r[6] = 15 & r[6] | 64,
		r[8] = 63 & r[8] | 128,
		n) {
			e = e || 0;
			for (var o = 0; o < 16; ++o)
				n[e + o] = r[o];
			return n
		}
		return l(r)
	}
	return "".concat(Date.now(), "-").concat(f());
}