diff --git a/docs/usage.md b/docs/usage.md index 6aeb94e..97644d0 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -24,6 +24,15 @@ See the YouTube video on how to share a website to Notoy and save the note: [You Notoy can save the note in one of three formats: as markdown to be used with programs like Obsidian, Zettlr, Joplin, ... as an Org-Mode file to use with Emacs or as a simple, plain text file. +## Privacy Policy + +Notoy (the progressive web app) does not send any data at all to any other host as long as the reverse geolocation is disabled in the options - which is the default. + +If you enable the option to look the GPS coordinates up at `BigData`, a request is send to `BigData` to get the name of the city this position is nearest to. `BigData` adheres to the the EU General Data Protection Regulations (GDPR) and the Australian Privacy Principles contained in the Privacy Act 1988 (Cth). + +The privacy policy of `BigData` can be seen at [BigData Privacy Policy](https://www.bigdatacloud.com/privacy-and-cookie-policy) + + ## Usage with Your Own Server You need to have `npm` installed, included with `NodeJS`: [NodeJS Downloads](https://nodejs.org/en/download/) diff --git a/http/app.js b/http/app.js index 80fe611..1380c43 100644 --- a/http/app.js +++ b/http/app.js @@ -40,5 +40,5 @@ lang: `+(T+` `);throw new Error("Failed pattern match at App.ShareTarget (line 57, column 20 - line 59, column 56): "+[A.location.constructor.name])}(),R=function(){if(A.keywords instanceof u.Nothing)return"";if(A.keywords instanceof u.Just)return"Keywords: "+(c.show(l.showKeyWordArray)(A.keywords.value0)+` -`);throw new Error("Failed pattern match at App.ShareTarget (line 53, column 19 - line 55, column 65): "+[A.keywords.constructor.name])}(),E={title:u.fromMaybe("")(A.title),url:u.fromMaybe("")(i.map(u.functorMaybe)(s.noteUrlToString)(A.url)),text:R+(H+(m+u.fromMaybe("")(A.longDesc)))};return g?f.toAffE(t.shareNoteJS(E)):r.pure(p.applicativeAff)(v.unit)};n.canShare=g,n.handleShare=F,n.shareNote=d})(C);(function(e){"use strict";e["DOM.HTML.Indexed.InputType"]=e["DOM.HTML.Indexed.InputType"]||{};var n=e["DOM.HTML.Indexed.InputType"],t=function(){function m(){}return m.value=new m,m}(),a=function(){function m(){}return m.value=new m,m}(),r=function(){function m(){}return m.value=new m,m}(),o=function(){function m(){}return m.value=new m,m}(),f=function(){function m(){}return m.value=new m,m}(),i=function(){function m(){}return m.value=new m,m}(),u=function(){function m(){}return m.value=new m,m}(),l=function(){function m(){}return m.value=new m,m}(),c=function(){function m(){}return m.value=new m,m}(),s=function(){function m(){}return m.value=new m,m}(),v=function(){function m(){}return m.value=new m,m}(),p=function(){function m(){}return m.value=new m,m}(),y=function(){function m(){}return m.value=new m,m}(),b=function(){function m(){}return m.value=new m,m}(),D=function(){function m(){}return m.value=new m,m}(),_=function(){function m(){}return m.value=new m,m}(),w=function(){function m(){}return m.value=new m,m}(),L=function(){function m(){}return m.value=new m,m}(),q=function(){function m(){}return m.value=new m,m}(),F=function(){function m(){}return m.value=new m,m}(),g=function(){function m(){}return m.value=new m,m}(),d=function(){function m(){}return m.value=new m,m}(),A=function(m){if(m instanceof t)return"button";if(m instanceof a)return"checkbox";if(m instanceof r)return"color";if(m instanceof o)return"date";if(m instanceof f)return"datetime-local";if(m instanceof i)return"email";if(m instanceof u)return"file";if(m instanceof l)return"hidden";if(m instanceof c)return"image";if(m instanceof s)return"month";if(m instanceof v)return"number";if(m instanceof p)return"password";if(m instanceof y)return"radio";if(m instanceof b)return"range";if(m instanceof D)return"reset";if(m instanceof _)return"search";if(m instanceof w)return"submit";if(m instanceof L)return"tel";if(m instanceof q)return"text";if(m instanceof F)return"time";if(m instanceof g)return"url";if(m instanceof d)return"week";throw new Error("Failed pattern match at DOM.HTML.Indexed.InputType (line 28, column 19 - line 50, column 22): "+[m.constructor.name])};n.InputCheckbox=a,n.InputRadio=y,n.InputText=q,n.InputUrl=g,n.renderInputType=A})(C);(function(e){"use strict";e["Data.Exists"]=e["Data.Exists"]||{};var n=e["Data.Exists"],t=e["Unsafe.Coerce"],a=t.unsafeCoerce,r=t.unsafeCoerce;n.mkExists=r,n.runExists=a})(C);(function(e){"use strict";e["Data.Coyoneda"]=e["Data.Coyoneda"]||{};var n=e["Data.Coyoneda"],t=e["Control.Category"],a=e["Data.Exists"],r=function(){function c(s,v){this.value0=s,this.value1=v}return c.create=function(s){return function(v){return new c(s,v)}},c}(),o=function(c){return c},f=function(c){return function(s){return a.runExists(function(v){return c(v.value0)(v.value1)})(s)}},i=function(c){return function(s){return o(a.mkExists(new r(c,s)))}},u={map:function(c){return function(s){return a.runExists(function(v){return i(function(p){return c(v.value0(p))})(v.value1)})(s)}}},l=i(t.identity(t.categoryFn));n.unCoyoneda=f,n.liftCoyoneda=l,n.functorCoyoneda=u})(C);(function(e){"use strict";e["Halogen.Query.HalogenQ"]=e["Halogen.Query.HalogenQ"]||{};var n=e["Halogen.Query.HalogenQ"],t=function(){function i(u){this.value0=u}return i.create=function(u){return new i(u)},i}(),a=function(){function i(u){this.value0=u}return i.create=function(u){return new i(u)},i}(),r=function(){function i(u,l){this.value0=u,this.value1=l}return i.create=function(u){return function(l){return new i(u,l)}},i}(),o=function(){function i(u,l){this.value0=u,this.value1=l}return i.create=function(u){return function(l){return new i(u,l)}},i}(),f=function(){function i(u,l){this.value0=u,this.value1=l}return i.create=function(u){return function(l){return new i(u,l)}},i}();n.Initialize=t,n.Finalize=a,n.Receive=r,n.Action=o,n.Query=f})(C);(function(e){"use strict";e["Halogen.Component"]=e["Halogen.Component"]||{};var n=e["Halogen.Component"],t=e["Control.Applicative"],a=e["Data.Coyoneda"],r=e["Data.Foldable"],o=e["Data.Function"],f=e["Data.Functor"],i=e["Data.Maybe"],u=e["Data.Unit"],l=e["Halogen.Data.Slot"],c=e["Halogen.Query.HalogenM"],s=e["Halogen.Query.HalogenQ"],v=e["Unsafe.Coerce"],p=function(){function g(d){this.value0=d}return g.create=function(d){return new g(d)},g}(),y=function(){function g(d){this.value0=d}return g.create=function(d){return new g(d)},g}(),b=v.unsafeCoerce,D=v.unsafeCoerce,_=function(g){return function(d){if(d instanceof s.Initialize)return f.voidLeft(c.functorHalogenM)(r.traverse_(c.applicativeHalogenM)(r.foldableMaybe)(g.handleAction)(g.initialize))(d.value0);if(d instanceof s.Finalize)return f.voidLeft(c.functorHalogenM)(r.traverse_(c.applicativeHalogenM)(r.foldableMaybe)(g.handleAction)(g.finalize))(d.value0);if(d instanceof s.Receive)return f.voidLeft(c.functorHalogenM)(r.traverse_(c.applicativeHalogenM)(r.foldableMaybe)(g.handleAction)(g.receive(d.value0)))(d.value1);if(d instanceof s.Action)return f.voidLeft(c.functorHalogenM)(g.handleAction(d.value0))(d.value1);if(d instanceof s.Query)return a.unCoyoneda(function(A){var m=f.map(c.functorHalogenM)(i.maybe(d.value1(u.unit))(A));return function(H){return m(g.handleQuery(H))}})(d.value0);throw new Error("Failed pattern match at Halogen.Component (line 182, column 15 - line 192, column 70): "+[d.constructor.name])}},w=v.unsafeCoerce,L=v.unsafeCoerce,q={handleAction:o.const(t.pure(c.applicativeHalogenM)(u.unit)),handleQuery:o.const(t.pure(c.applicativeHalogenM)(i.Nothing.value)),receive:o.const(i.Nothing.value),initialize:i.Nothing.value,finalize:i.Nothing.value},F=function(g){return function(d){return function(A){return function(m){return function(H){return function(R){return function(E){return function(T){return w({get:l.lookup()(d)(A)(m)(H),pop:l.pop()(d)(A)(m)(H),set:l.insert()(d)(A)(m)(H),component:R,input:E,output:T})}}}}}}}};n.mkComponent=L,n.unComponent=D,n.mkEval=_,n.defaultEval=q,n.ComponentSlot=p,n.ThunkSlot=y,n.componentSlot=F,n.unComponentSlot=b})(C);(function(e){"use strict";e["Halogen.VDom.Machine"]=e["Halogen.VDom.Machine"]||{};var n=e["Halogen.VDom.Machine"],t=e["Unsafe.Coerce"],a=function(){function l(c,s,v,p){this.value0=c,this.value1=s,this.value2=v,this.value3=p}return l.create=function(c){return function(s){return function(v){return function(p){return new l(c,s,v,p)}}}},l}(),r=t.unsafeCoerce,o=function(l,c){return l.value2(l.value1,c)},f=t.unsafeCoerce,i=function(l){return l.value3(l.value1)},u=r(function(l){return l.value0});n.Step=a,n.mkStep=f,n.unStep=r,n.extract=u,n.step=o,n.halt=i})(C);(function(e){"use strict";e.unsafeGetAny=function(n,t){return t[n]},e.unsafeHasAny=function(n,t){return t.hasOwnProperty(n)},e.unsafeSetAny=function(n,t,a){a[n]=t},e.forE=function(n,t){for(var a=[],r=0;r= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n", "'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n", "'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n", "// Generated by purs bundle 0.14.5\nvar PS = {};\n(function(exports) {\n /* global XMLHttpRequest */\n /* global process */\n \"use strict\";\n\n exports._ajax = function () {\n var platformSpecific = { };\n if (typeof module !== \"undefined\" && module.require && !(typeof process !== \"undefined\" && process.versions[\"electron\"])) {\n // We are on node.js\n platformSpecific.newXHR = function () {\n var XHR = module.require(\"xhr2\");\n return new XHR();\n };\n\n platformSpecific.fixupUrl = function (url, xhr) {\n if (xhr.nodejsBaseUrl === null) {\n var urllib = module.require(\"url\");\n var u = urllib.parse(url);\n u.protocol = u.protocol || \"http:\";\n u.hostname = u.hostname || \"localhost\";\n return urllib.format(u);\n } else {\n return url || \"/\";\n }\n };\n\n platformSpecific.getResponse = function (xhr) {\n return xhr.response;\n };\n } else {\n // We are in the browser\n platformSpecific.newXHR = function () {\n return new XMLHttpRequest();\n };\n\n platformSpecific.fixupUrl = function (url) {\n return url || \"/\";\n };\n\n platformSpecific.getResponse = function (xhr) {\n return xhr.response;\n };\n }\n\n return function (timeoutErrorMessageIdent, requestFailedMessageIdent, mkHeader, options) {\n return function (errback, callback) {\n var xhr = platformSpecific.newXHR();\n var fixedUrl = platformSpecific.fixupUrl(options.url, xhr);\n xhr.open(options.method || \"GET\", fixedUrl, true, options.username, options.password);\n if (options.headers) {\n try {\n // eslint-disable-next-line no-eq-null,eqeqeq\n for (var i = 0, header; (header = options.headers[i]) != null; i++) {\n xhr.setRequestHeader(header.field, header.value);\n }\n } catch (e) {\n errback(e);\n }\n }\n var onerror = function (msgIdent) {\n return function () {\n errback(new Error(msgIdent));\n };\n };\n xhr.onerror = onerror(requestFailedMessageIdent);\n xhr.ontimeout = onerror(timeoutErrorMessageIdent);\n xhr.onload = function () {\n callback({\n status: xhr.status,\n statusText: xhr.statusText,\n headers: xhr.getAllResponseHeaders().split(\"\\r\\n\")\n .filter(function (header) {\n return header.length > 0;\n })\n .map(function (header) {\n var i = header.indexOf(\":\");\n return mkHeader(header.substring(0, i))(header.substring(i + 2));\n }),\n body: platformSpecific.getResponse(xhr)\n });\n };\n xhr.responseType = options.responseType;\n xhr.withCredentials = options.withCredentials;\n xhr.timeout = options.timeout;\n xhr.send(options.content);\n\n return function (error, cancelErrback, cancelCallback) {\n try {\n xhr.abort();\n } catch (e) {\n return cancelErrback(e);\n }\n return cancelCallback();\n };\n };\n };\n }();\n})(PS[\"Affjax\"] = PS[\"Affjax\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Semigroupoid\"] = $PS[\"Control.Semigroupoid\"] || {};\n var exports = $PS[\"Control.Semigroupoid\"];\n var semigroupoidFn = {\n compose: function (f) {\n return function (g) {\n return function (x) {\n return f(g(x));\n };\n };\n }\n };\n exports[\"semigroupoidFn\"] = semigroupoidFn;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Category\"] = $PS[\"Control.Category\"] || {};\n var exports = $PS[\"Control.Category\"];\n var Control_Semigroupoid = $PS[\"Control.Semigroupoid\"]; \n var identity = function (dict) {\n return dict.identity;\n };\n var categoryFn = {\n identity: function (x) {\n return x;\n },\n Semigroupoid0: function () {\n return Control_Semigroupoid.semigroupoidFn;\n }\n };\n exports[\"identity\"] = identity;\n exports[\"categoryFn\"] = categoryFn;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n var refEq = function (r1) {\n return function (r2) {\n return r1 === r2;\n };\n };\n\n exports.eqBooleanImpl = refEq;\n exports.eqIntImpl = refEq; \n exports.eqCharImpl = refEq;\n exports.eqStringImpl = refEq;\n\n exports.eqArrayImpl = function (f) {\n return function (xs) {\n return function (ys) {\n if (xs.length !== ys.length) return false;\n for (var i = 0; i < xs.length; i++) {\n if (!f(xs[i])(ys[i])) return false;\n }\n return true;\n };\n };\n };\n})(PS[\"Data.Eq\"] = PS[\"Data.Eq\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Eq\"] = $PS[\"Data.Eq\"] || {};\n var exports = $PS[\"Data.Eq\"];\n var $foreign = $PS[\"Data.Eq\"];\n var eqUnit = {\n eq: function (v) {\n return function (v1) {\n return true;\n };\n }\n };\n var eqString = {\n eq: $foreign.eqStringImpl\n };\n var eqInt = {\n eq: $foreign.eqIntImpl\n };\n var eqChar = {\n eq: $foreign.eqCharImpl\n };\n var eqBoolean = {\n eq: $foreign.eqBooleanImpl\n };\n var eq = function (dict) {\n return dict.eq;\n };\n var eqArray = function (dictEq) {\n return {\n eq: $foreign.eqArrayImpl(eq(dictEq))\n };\n };\n var notEq = function (dictEq) {\n return function (x) {\n return function (y) {\n return eq(eqBoolean)(eq(dictEq)(x)(y))(false);\n };\n };\n };\n exports[\"eq\"] = eq;\n exports[\"notEq\"] = notEq;\n exports[\"eqInt\"] = eqInt;\n exports[\"eqChar\"] = eqChar;\n exports[\"eqString\"] = eqString;\n exports[\"eqUnit\"] = eqUnit;\n exports[\"eqArray\"] = eqArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Function\"] = $PS[\"Data.Function\"] || {};\n var exports = $PS[\"Data.Function\"]; \n var on = function (f) {\n return function (g) {\n return function (x) {\n return function (y) {\n return f(g(x))(g(y));\n };\n };\n };\n };\n var flip = function (f) {\n return function (b) {\n return function (a) {\n return f(a)(b);\n };\n };\n };\n var $$const = function (a) {\n return function (v) {\n return a;\n };\n };\n var applyFlipped = function (x) {\n return function (f) {\n return f(x);\n };\n };\n exports[\"flip\"] = flip;\n exports[\"const\"] = $$const;\n exports[\"applyFlipped\"] = applyFlipped;\n exports[\"on\"] = on;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.arrayMap = function (f) {\n return function (arr) {\n var l = arr.length;\n var result = new Array(l);\n for (var i = 0; i < l; i++) {\n result[i] = f(arr[i]);\n }\n return result;\n };\n };\n})(PS[\"Data.Functor\"] = PS[\"Data.Functor\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.unit = {};\n})(PS[\"Data.Unit\"] = PS[\"Data.Unit\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Unit\"] = $PS[\"Data.Unit\"] || {};\n var exports = $PS[\"Data.Unit\"];\n var $foreign = $PS[\"Data.Unit\"];\n exports[\"unit\"] = $foreign.unit;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Functor\"] = $PS[\"Data.Functor\"] || {};\n var exports = $PS[\"Data.Functor\"];\n var $foreign = $PS[\"Data.Functor\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var map = function (dict) {\n return dict.map;\n };\n var mapFlipped = function (dictFunctor) {\n return function (fa) {\n return function (f) {\n return map(dictFunctor)(f)(fa);\n };\n };\n };\n var $$void = function (dictFunctor) {\n return map(dictFunctor)(Data_Function[\"const\"](Data_Unit.unit));\n };\n var voidLeft = function (dictFunctor) {\n return function (f) {\n return function (x) {\n return map(dictFunctor)(Data_Function[\"const\"](x))(f);\n };\n };\n };\n var voidRight = function (dictFunctor) {\n return function (x) {\n return map(dictFunctor)(Data_Function[\"const\"](x));\n };\n };\n var functorArray = {\n map: $foreign.arrayMap\n };\n exports[\"map\"] = map;\n exports[\"mapFlipped\"] = mapFlipped;\n exports[\"void\"] = $$void;\n exports[\"voidRight\"] = voidRight;\n exports[\"voidLeft\"] = voidLeft;\n exports[\"functorArray\"] = functorArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Maybe\"] = $PS[\"Data.Maybe\"] || {};\n var exports = $PS[\"Data.Maybe\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var Nothing = (function () {\n function Nothing() {\n\n };\n Nothing.value = new Nothing();\n return Nothing;\n })();\n var Just = (function () {\n function Just(value0) {\n this.value0 = value0;\n };\n Just.create = function (value0) {\n return new Just(value0);\n };\n return Just;\n })();\n var maybe = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Nothing) {\n return v;\n };\n if (v2 instanceof Just) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 230, column 1 - line 230, column 51): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n };\n var isNothing = maybe(true)(Data_Function[\"const\"](false));\n var isJust = maybe(false)(Data_Function[\"const\"](true));\n var functorMaybe = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof Just) {\n return new Just(v(v1.value0));\n };\n return Nothing.value;\n };\n }\n };\n var fromMaybe = function (a) {\n return maybe(a)(Control_Category.identity(Control_Category.categoryFn));\n };\n var fromJust = function (dictPartial) {\n return function (v) {\n if (v instanceof Just) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 281, column 1 - line 281, column 46): \" + [ v.constructor.name ]);\n };\n };\n var eqMaybe = function (dictEq) {\n return {\n eq: function (x) {\n return function (y) {\n if (x instanceof Nothing && y instanceof Nothing) {\n return true;\n };\n if (x instanceof Just && y instanceof Just) {\n return Data_Eq.eq(dictEq)(x.value0)(y.value0);\n };\n return false;\n };\n }\n };\n };\n var applyMaybe = {\n apply: function (v) {\n return function (v1) {\n if (v instanceof Just) {\n return Data_Functor.map(functorMaybe)(v.value0)(v1);\n };\n if (v instanceof Nothing) {\n return Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 68, column 1 - line 70, column 30): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorMaybe;\n }\n };\n var bindMaybe = {\n bind: function (v) {\n return function (v1) {\n if (v instanceof Just) {\n return v1(v.value0);\n };\n if (v instanceof Nothing) {\n return Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 126, column 1 - line 128, column 28): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Apply0: function () {\n return applyMaybe;\n }\n };\n var applicativeMaybe = {\n pure: Just.create,\n Apply0: function () {\n return applyMaybe;\n }\n };\n exports[\"Nothing\"] = Nothing;\n exports[\"Just\"] = Just;\n exports[\"maybe\"] = maybe;\n exports[\"fromMaybe\"] = fromMaybe;\n exports[\"isJust\"] = isJust;\n exports[\"isNothing\"] = isNothing;\n exports[\"fromJust\"] = fromJust;\n exports[\"functorMaybe\"] = functorMaybe;\n exports[\"applyMaybe\"] = applyMaybe;\n exports[\"applicativeMaybe\"] = applicativeMaybe;\n exports[\"bindMaybe\"] = bindMaybe;\n exports[\"eqMaybe\"] = eqMaybe;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.MediaType.Common\"] = $PS[\"Data.MediaType.Common\"] || {};\n var exports = $PS[\"Data.MediaType.Common\"]; \n var applicationJSON = \"application/json\";\n var applicationFormURLEncoded = \"application/x-www-form-urlencoded\";\n exports[\"applicationFormURLEncoded\"] = applicationFormURLEncoded;\n exports[\"applicationJSON\"] = applicationJSON;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Affjax.RequestBody\"] = $PS[\"Affjax.RequestBody\"] || {};\n var exports = $PS[\"Affjax.RequestBody\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_MediaType_Common = $PS[\"Data.MediaType.Common\"]; \n var ArrayView = (function () {\n function ArrayView(value0) {\n this.value0 = value0;\n };\n ArrayView.create = function (value0) {\n return new ArrayView(value0);\n };\n return ArrayView;\n })();\n var Blob = (function () {\n function Blob(value0) {\n this.value0 = value0;\n };\n Blob.create = function (value0) {\n return new Blob(value0);\n };\n return Blob;\n })();\n var Document = (function () {\n function Document(value0) {\n this.value0 = value0;\n };\n Document.create = function (value0) {\n return new Document(value0);\n };\n return Document;\n })();\n var $$String = (function () {\n function $$String(value0) {\n this.value0 = value0;\n };\n $$String.create = function (value0) {\n return new $$String(value0);\n };\n return $$String;\n })();\n var FormData = (function () {\n function FormData(value0) {\n this.value0 = value0;\n };\n FormData.create = function (value0) {\n return new FormData(value0);\n };\n return FormData;\n })();\n var FormURLEncoded = (function () {\n function FormURLEncoded(value0) {\n this.value0 = value0;\n };\n FormURLEncoded.create = function (value0) {\n return new FormURLEncoded(value0);\n };\n return FormURLEncoded;\n })();\n var Json = (function () {\n function Json(value0) {\n this.value0 = value0;\n };\n Json.create = function (value0) {\n return new Json(value0);\n };\n return Json;\n })();\n var toMediaType = function (v) {\n if (v instanceof FormURLEncoded) {\n return new Data_Maybe.Just(Data_MediaType_Common.applicationFormURLEncoded);\n };\n if (v instanceof Json) {\n return new Data_Maybe.Just(Data_MediaType_Common.applicationJSON);\n };\n return Data_Maybe.Nothing.value;\n };\n exports[\"ArrayView\"] = ArrayView;\n exports[\"Blob\"] = Blob;\n exports[\"Document\"] = Document;\n exports[\"String\"] = $$String;\n exports[\"FormData\"] = FormData;\n exports[\"FormURLEncoded\"] = FormURLEncoded;\n exports[\"Json\"] = Json;\n exports[\"toMediaType\"] = toMediaType;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // module Unsafe.Coerce\n\n exports.unsafeCoerce = function (x) {\n return x;\n };\n})(PS[\"Unsafe.Coerce\"] = PS[\"Unsafe.Coerce\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Unsafe.Coerce\"] = $PS[\"Unsafe.Coerce\"] || {};\n var exports = $PS[\"Unsafe.Coerce\"];\n var $foreign = $PS[\"Unsafe.Coerce\"];\n exports[\"unsafeCoerce\"] = $foreign.unsafeCoerce;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Safe.Coerce\"] = $PS[\"Safe.Coerce\"] || {};\n var exports = $PS[\"Safe.Coerce\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var coerce = function (dictCoercible) {\n return Unsafe_Coerce.unsafeCoerce;\n };\n exports[\"coerce\"] = coerce;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Newtype\"] = $PS[\"Data.Newtype\"] || {};\n var exports = $PS[\"Data.Newtype\"];\n var Safe_Coerce = $PS[\"Safe.Coerce\"]; \n var wrap = function (dictNewtype) {\n return Safe_Coerce.coerce();\n };\n var unwrap = function (dictNewtype) {\n return Safe_Coerce.coerce();\n };\n var alaF = function (dictCoercible) {\n return function (dictCoercible1) {\n return function (dictNewtype) {\n return function (dictNewtype1) {\n return function (v) {\n return Safe_Coerce.coerce();\n };\n };\n };\n };\n };\n exports[\"wrap\"] = wrap;\n exports[\"unwrap\"] = unwrap;\n exports[\"alaF\"] = alaF;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Affjax.RequestHeader\"] = $PS[\"Affjax.RequestHeader\"] || {};\n var exports = $PS[\"Affjax.RequestHeader\"];\n var Data_Newtype = $PS[\"Data.Newtype\"]; \n var Accept = (function () {\n function Accept(value0) {\n this.value0 = value0;\n };\n Accept.create = function (value0) {\n return new Accept(value0);\n };\n return Accept;\n })();\n var ContentType = (function () {\n function ContentType(value0) {\n this.value0 = value0;\n };\n ContentType.create = function (value0) {\n return new ContentType(value0);\n };\n return ContentType;\n })();\n var RequestHeader = (function () {\n function RequestHeader(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n RequestHeader.create = function (value0) {\n return function (value1) {\n return new RequestHeader(value0, value1);\n };\n };\n return RequestHeader;\n })();\n var value = function (v) {\n if (v instanceof Accept) {\n return Data_Newtype.unwrap()(v.value0);\n };\n if (v instanceof ContentType) {\n return Data_Newtype.unwrap()(v.value0);\n };\n if (v instanceof RequestHeader) {\n return v.value1;\n };\n throw new Error(\"Failed pattern match at Affjax.RequestHeader (line 26, column 1 - line 26, column 33): \" + [ v.constructor.name ]);\n };\n var name = function (v) {\n if (v instanceof Accept) {\n return \"Accept\";\n };\n if (v instanceof ContentType) {\n return \"Content-Type\";\n };\n if (v instanceof RequestHeader) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Affjax.RequestHeader (line 21, column 1 - line 21, column 32): \" + [ v.constructor.name ]);\n };\n exports[\"Accept\"] = Accept;\n exports[\"ContentType\"] = ContentType;\n exports[\"name\"] = name;\n exports[\"value\"] = value;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Affjax.ResponseFormat\"] = $PS[\"Affjax.ResponseFormat\"] || {};\n var exports = $PS[\"Affjax.ResponseFormat\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_MediaType_Common = $PS[\"Data.MediaType.Common\"]; \n var $$ArrayBuffer = (function () {\n function $$ArrayBuffer(value0) {\n this.value0 = value0;\n };\n $$ArrayBuffer.create = function (value0) {\n return new $$ArrayBuffer(value0);\n };\n return $$ArrayBuffer;\n })();\n var Blob = (function () {\n function Blob(value0) {\n this.value0 = value0;\n };\n Blob.create = function (value0) {\n return new Blob(value0);\n };\n return Blob;\n })();\n var Document = (function () {\n function Document(value0) {\n this.value0 = value0;\n };\n Document.create = function (value0) {\n return new Document(value0);\n };\n return Document;\n })();\n var Json = (function () {\n function Json(value0) {\n this.value0 = value0;\n };\n Json.create = function (value0) {\n return new Json(value0);\n };\n return Json;\n })();\n var $$String = (function () {\n function $$String(value0) {\n this.value0 = value0;\n };\n $$String.create = function (value0) {\n return new $$String(value0);\n };\n return $$String;\n })();\n var Ignore = (function () {\n function Ignore(value0) {\n this.value0 = value0;\n };\n Ignore.create = function (value0) {\n return new Ignore(value0);\n };\n return Ignore;\n })();\n var toResponseType = function (v) {\n if (v instanceof $$ArrayBuffer) {\n return \"arraybuffer\";\n };\n if (v instanceof Blob) {\n return \"blob\";\n };\n if (v instanceof Document) {\n return \"document\";\n };\n if (v instanceof Json) {\n return \"text\";\n };\n if (v instanceof $$String) {\n return \"text\";\n };\n if (v instanceof Ignore) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Affjax.ResponseFormat (line 44, column 3 - line 50, column 19): \" + [ v.constructor.name ]);\n };\n var toMediaType = function (v) {\n if (v instanceof Json) {\n return new Data_Maybe.Just(Data_MediaType_Common.applicationJSON);\n };\n return Data_Maybe.Nothing.value;\n }; \n var json = new Json(Control_Category.identity(Control_Category.categoryFn));\n var ignore = new Ignore(Control_Category.identity(Control_Category.categoryFn));\n exports[\"ArrayBuffer\"] = $$ArrayBuffer;\n exports[\"Blob\"] = Blob;\n exports[\"Document\"] = Document;\n exports[\"Json\"] = Json;\n exports[\"String\"] = $$String;\n exports[\"Ignore\"] = Ignore;\n exports[\"json\"] = json;\n exports[\"ignore\"] = ignore;\n exports[\"toResponseType\"] = toResponseType;\n exports[\"toMediaType\"] = toMediaType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Affjax.ResponseHeader\"] = $PS[\"Affjax.ResponseHeader\"] || {};\n var exports = $PS[\"Affjax.ResponseHeader\"]; \n var ResponseHeader = (function () {\n function ResponseHeader(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ResponseHeader.create = function (value0) {\n return function (value1) {\n return new ResponseHeader(value0, value1);\n };\n };\n return ResponseHeader;\n })();\n exports[\"ResponseHeader\"] = ResponseHeader;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Alt\"] = $PS[\"Control.Alt\"] || {};\n var exports = $PS[\"Control.Alt\"];\n var alt = function (dict) {\n return dict.alt;\n };\n exports[\"alt\"] = alt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Apply\"] = $PS[\"Control.Apply\"] || {};\n var exports = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var apply = function (dict) {\n return dict.apply;\n };\n var applySecond = function (dictApply) {\n return function (a) {\n return function (b) {\n return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(Data_Function[\"const\"](Control_Category.identity(Control_Category.categoryFn)))(a))(b);\n };\n };\n };\n exports[\"apply\"] = apply;\n exports[\"applySecond\"] = applySecond;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Applicative\"] = $PS[\"Control.Applicative\"] || {};\n var exports = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var pure = function (dict) {\n return dict.pure;\n };\n var unless = function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (!v) {\n return v1;\n };\n if (v) {\n return pure(dictApplicative)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Applicative (line 66, column 1 - line 66, column 65): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n };\n var when = function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (v) {\n return v1;\n };\n if (!v) {\n return pure(dictApplicative)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Applicative (line 61, column 1 - line 61, column 63): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n };\n var liftA1 = function (dictApplicative) {\n return function (f) {\n return function (a) {\n return Control_Apply.apply(dictApplicative.Apply0())(pure(dictApplicative)(f))(a);\n };\n };\n };\n exports[\"pure\"] = pure;\n exports[\"liftA1\"] = liftA1;\n exports[\"unless\"] = unless;\n exports[\"when\"] = when;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Bind\"] = $PS[\"Control.Bind\"] || {};\n var exports = $PS[\"Control.Bind\"];\n var Data_Function = $PS[\"Data.Function\"]; \n var discard = function (dict) {\n return dict.discard;\n };\n var bind = function (dict) {\n return dict.bind;\n };\n var bindFlipped = function (dictBind) {\n return Data_Function.flip(bind(dictBind));\n };\n var composeKleisliFlipped = function (dictBind) {\n return function (f) {\n return function (g) {\n return function (a) {\n return bindFlipped(dictBind)(f)(g(a));\n };\n };\n };\n };\n var composeKleisli = function (dictBind) {\n return function (f) {\n return function (g) {\n return function (a) {\n return bind(dictBind)(f(a))(g);\n };\n };\n };\n };\n var discardUnit = {\n discard: function (dictBind) {\n return bind(dictBind);\n }\n };\n exports[\"bind\"] = bind;\n exports[\"bindFlipped\"] = bindFlipped;\n exports[\"discard\"] = discard;\n exports[\"composeKleisli\"] = composeKleisli;\n exports[\"composeKleisliFlipped\"] = composeKleisliFlipped;\n exports[\"discardUnit\"] = discardUnit;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Either\"] = $PS[\"Data.Either\"] || {};\n var exports = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var Left = (function () {\n function Left(value0) {\n this.value0 = value0;\n };\n Left.create = function (value0) {\n return new Left(value0);\n };\n return Left;\n })();\n var Right = (function () {\n function Right(value0) {\n this.value0 = value0;\n };\n Right.create = function (value0) {\n return new Right(value0);\n };\n return Right;\n })();\n var note = function (a) {\n return Data_Maybe.maybe(new Left(a))(Right.create);\n };\n var functorEither = {\n map: function (f) {\n return function (m) {\n if (m instanceof Left) {\n return new Left(m.value0);\n };\n if (m instanceof Right) {\n return new Right(f(m.value0));\n };\n throw new Error(\"Failed pattern match at Data.Either (line 31, column 1 - line 31, column 52): \" + [ m.constructor.name ]);\n };\n }\n };\n var either = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Left) {\n return v(v2.value0);\n };\n if (v2 instanceof Right) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 208, column 1 - line 208, column 64): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n };\n var applyEither = {\n apply: function (v) {\n return function (v1) {\n if (v instanceof Left) {\n return new Left(v.value0);\n };\n if (v instanceof Right) {\n return Data_Functor.map(functorEither)(v.value0)(v1);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 70, column 1 - line 72, column 30): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorEither;\n }\n };\n var bindEither = {\n bind: either(function (e) {\n return function (v) {\n return new Left(e);\n };\n })(function (a) {\n return function (f) {\n return f(a);\n };\n }),\n Apply0: function () {\n return applyEither;\n }\n };\n var applicativeEither = {\n pure: Right.create,\n Apply0: function () {\n return applyEither;\n }\n };\n var altEither = {\n alt: function (v) {\n return function (v1) {\n if (v instanceof Left) {\n return v1;\n };\n return v;\n };\n },\n Functor0: function () {\n return functorEither;\n }\n };\n exports[\"Left\"] = Left;\n exports[\"Right\"] = Right;\n exports[\"either\"] = either;\n exports[\"note\"] = note;\n exports[\"functorEither\"] = functorEither;\n exports[\"applicativeEither\"] = applicativeEither;\n exports[\"altEither\"] = altEither;\n exports[\"bindEither\"] = bindEither;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad.Error.Class\"] = $PS[\"Control.Monad.Error.Class\"] || {};\n var exports = $PS[\"Control.Monad.Error.Class\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var throwError = function (dict) {\n return dict.throwError;\n };\n var catchError = function (dict) {\n return dict.catchError;\n };\n var $$try = function (dictMonadError) {\n return function (a) {\n return catchError(dictMonadError)(Data_Functor.map(((((dictMonadError.MonadThrow0()).Monad0()).Bind1()).Apply0()).Functor0())(Data_Either.Right.create)(a))((function () {\n var $21 = Control_Applicative.pure(((dictMonadError.MonadThrow0()).Monad0()).Applicative0());\n return function ($22) {\n return $21(Data_Either.Left.create($22));\n };\n })());\n };\n };\n exports[\"throwError\"] = throwError;\n exports[\"try\"] = $$try;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad\"] = $PS[\"Control.Monad\"] || {};\n var exports = $PS[\"Control.Monad\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var unlessM = function (dictMonad) {\n return function (mb) {\n return function (m) {\n return Control_Bind.bind(dictMonad.Bind1())(mb)(function (b) {\n return Control_Applicative.unless(dictMonad.Applicative0())(b)(m);\n });\n };\n };\n };\n var ap = function (dictMonad) {\n return function (f) {\n return function (a) {\n return Control_Bind.bind(dictMonad.Bind1())(f)(function (f$prime) {\n return Control_Bind.bind(dictMonad.Bind1())(a)(function (a$prime) {\n return Control_Applicative.pure(dictMonad.Applicative0())(f$prime(a$prime));\n });\n });\n };\n };\n };\n exports[\"unlessM\"] = unlessM;\n exports[\"ap\"] = ap;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.concatArray = function (xs) {\n return function (ys) {\n if (xs.length === 0) return ys;\n if (ys.length === 0) return xs;\n return xs.concat(ys);\n };\n };\n})(PS[\"Data.Semigroup\"] = PS[\"Data.Semigroup\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Semigroup\"] = $PS[\"Data.Semigroup\"] || {};\n var exports = $PS[\"Data.Semigroup\"];\n var $foreign = $PS[\"Data.Semigroup\"];\n var semigroupArray = {\n append: $foreign.concatArray\n };\n var append = function (dict) {\n return dict.append;\n };\n exports[\"append\"] = append;\n exports[\"semigroupArray\"] = semigroupArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad.Except.Trans\"] = $PS[\"Control.Monad.Except.Trans\"] || {};\n var exports = $PS[\"Control.Monad.Except.Trans\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"]; \n var ExceptT = function (x) {\n return x;\n };\n var runExceptT = function (v) {\n return v;\n };\n var mapExceptT = function (f) {\n return function (v) {\n return f(v);\n };\n };\n var functorExceptT = function (dictFunctor) {\n return {\n map: function (f) {\n return mapExceptT(Data_Functor.map(dictFunctor)(Data_Functor.map(Data_Either.functorEither)(f)));\n }\n };\n };\n var monadExceptT = function (dictMonad) {\n return {\n Applicative0: function () {\n return applicativeExceptT(dictMonad);\n },\n Bind1: function () {\n return bindExceptT(dictMonad);\n }\n };\n };\n var bindExceptT = function (dictMonad) {\n return {\n bind: function (v) {\n return function (k) {\n return Control_Bind.bind(dictMonad.Bind1())(v)(Data_Either.either((function () {\n var $91 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($92) {\n return $91(Data_Either.Left.create($92));\n };\n })())(function (a) {\n var v1 = k(a);\n return v1;\n }));\n };\n },\n Apply0: function () {\n return applyExceptT(dictMonad);\n }\n };\n };\n var applyExceptT = function (dictMonad) {\n return {\n apply: Control_Monad.ap(monadExceptT(dictMonad)),\n Functor0: function () {\n return functorExceptT(((dictMonad.Bind1()).Apply0()).Functor0());\n }\n };\n };\n var applicativeExceptT = function (dictMonad) {\n return {\n pure: (function () {\n var $93 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($94) {\n return ExceptT($93(Data_Either.Right.create($94)));\n };\n })(),\n Apply0: function () {\n return applyExceptT(dictMonad);\n }\n };\n };\n var monadThrowExceptT = function (dictMonad) {\n return {\n throwError: (function () {\n var $103 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($104) {\n return ExceptT($103(Data_Either.Left.create($104)));\n };\n })(),\n Monad0: function () {\n return monadExceptT(dictMonad);\n }\n };\n };\n var altExceptT = function (dictSemigroup) {\n return function (dictMonad) {\n return {\n alt: function (v) {\n return function (v1) {\n return Control_Bind.bind(dictMonad.Bind1())(v)(function (rm) {\n if (rm instanceof Data_Either.Right) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Either.Right(rm.value0));\n };\n if (rm instanceof Data_Either.Left) {\n return Control_Bind.bind(dictMonad.Bind1())(v1)(function (rn) {\n if (rn instanceof Data_Either.Right) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Either.Right(rn.value0));\n };\n if (rn instanceof Data_Either.Left) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Either.Left(Data_Semigroup.append(dictSemigroup)(rm.value0)(rn.value0)));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 87, column 9 - line 89, column 49): \" + [ rn.constructor.name ]);\n });\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 83, column 5 - line 89, column 49): \" + [ rm.constructor.name ]);\n });\n };\n },\n Functor0: function () {\n return functorExceptT(((dictMonad.Bind1()).Apply0()).Functor0());\n }\n };\n };\n };\n exports[\"runExceptT\"] = runExceptT;\n exports[\"functorExceptT\"] = functorExceptT;\n exports[\"applicativeExceptT\"] = applicativeExceptT;\n exports[\"bindExceptT\"] = bindExceptT;\n exports[\"altExceptT\"] = altExceptT;\n exports[\"monadThrowExceptT\"] = monadThrowExceptT;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad.Except\"] = $PS[\"Control.Monad.Except\"] || {};\n var exports = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Newtype = $PS[\"Data.Newtype\"]; \n var runExcept = (function () {\n var $0 = Data_Newtype.unwrap();\n return function ($1) {\n return $0(Control_Monad_Except_Trans.runExceptT($1));\n };\n })();\n exports[\"runExcept\"] = runExcept;\n})(PS);\n(function(exports) {\n /* eslint-disable no-eq-null, eqeqeq */\n \"use strict\";\n\n function id(x) {\n return x;\n } \n exports.fromString = id;\n exports.fromArray = id;\n exports.fromObject = id;\n\n exports.jsonNull = null;\n\n exports.stringify = function (j) {\n return JSON.stringify(j);\n };\n\n function isArray(a) {\n return Object.prototype.toString.call(a) === \"[object Array]\";\n }\n\n exports._caseJson = function (isNull, isBool, isNum, isStr, isArr, isObj, j) {\n if (j == null) return isNull();\n else if (typeof j === \"boolean\") return isBool(j);\n else if (typeof j === \"number\") return isNum(j);\n else if (typeof j === \"string\") return isStr(j);\n else if (Object.prototype.toString.call(j) === \"[object Array]\")\n return isArr(j);\n else return isObj(j);\n };\n\n exports._compare = function _compare(EQ, GT, LT, a, b) {\n if (a == null) {\n if (b == null) return EQ;\n else return LT;\n } else if (typeof a === \"boolean\") {\n if (typeof b === \"boolean\") {\n // boolean / boolean\n if (a === b) return EQ;\n else if (a === false) return LT;\n else return GT;\n } else if (b == null) return GT;\n else return LT;\n } else if (typeof a === \"number\") {\n if (typeof b === \"number\") {\n if (a === b) return EQ;\n else if (a < b) return LT;\n else return GT;\n } else if (b == null) return GT;\n else if (typeof b === \"boolean\") return GT;\n else return LT;\n } else if (typeof a === \"string\") {\n if (typeof b === \"string\") {\n if (a === b) return EQ;\n else if (a < b) return LT;\n else return GT;\n } else if (b == null) return GT;\n else if (typeof b === \"boolean\") return GT;\n else if (typeof b === \"number\") return GT;\n else return LT;\n } else if (isArray(a)) {\n if (isArray(b)) {\n for (var i = 0; i < Math.min(a.length, b.length); i++) {\n var ca = _compare(EQ, GT, LT, a[i], b[i]);\n if (ca !== EQ) return ca;\n }\n if (a.length === b.length) return EQ;\n else if (a.length < b.length) return LT;\n else return GT;\n } else if (b == null) return GT;\n else if (typeof b === \"boolean\") return GT;\n else if (typeof b === \"number\") return GT;\n else if (typeof b === \"string\") return GT;\n else return LT;\n } else {\n if (b == null) return GT;\n else if (typeof b === \"boolean\") return GT;\n else if (typeof b === \"number\") return GT;\n else if (typeof b === \"string\") return GT;\n else if (isArray(b)) return GT;\n else {\n var akeys = Object.keys(a);\n var bkeys = Object.keys(b);\n if (akeys.length < bkeys.length) return LT;\n else if (akeys.length > bkeys.length) return GT;\n var keys = akeys.concat(bkeys).sort();\n for (var j = 0; j < keys.length; j++) {\n var k = keys[j];\n if (a[k] === undefined) return LT;\n else if (b[k] === undefined) return GT;\n var ck = _compare(EQ, GT, LT, a[k], b[k]);\n if (ck !== EQ) return ck;\n }\n return EQ;\n }\n }\n };\n})(PS[\"Data.Argonaut.Core\"] = PS[\"Data.Argonaut.Core\"] || {});\n(function(exports) {\n \"use strict\";\n\n var unsafeCompareImpl = function (lt) {\n return function (eq) {\n return function (gt) {\n return function (x) {\n return function (y) {\n return x < y ? lt : x === y ? eq : gt;\n };\n };\n };\n };\n }; \n exports.ordIntImpl = unsafeCompareImpl; \n exports.ordStringImpl = unsafeCompareImpl;\n exports.ordCharImpl = unsafeCompareImpl;\n})(PS[\"Data.Ord\"] = PS[\"Data.Ord\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Ordering\"] = $PS[\"Data.Ordering\"] || {};\n var exports = $PS[\"Data.Ordering\"];\n var LT = (function () {\n function LT() {\n\n };\n LT.value = new LT();\n return LT;\n })();\n var GT = (function () {\n function GT() {\n\n };\n GT.value = new GT();\n return GT;\n })();\n var EQ = (function () {\n function EQ() {\n\n };\n EQ.value = new EQ();\n return EQ;\n })();\n var eqOrdering = {\n eq: function (v) {\n return function (v1) {\n if (v instanceof LT && v1 instanceof LT) {\n return true;\n };\n if (v instanceof GT && v1 instanceof GT) {\n return true;\n };\n if (v instanceof EQ && v1 instanceof EQ) {\n return true;\n };\n return false;\n };\n }\n };\n exports[\"LT\"] = LT;\n exports[\"GT\"] = GT;\n exports[\"EQ\"] = EQ;\n exports[\"eqOrdering\"] = eqOrdering;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Ord\"] = $PS[\"Data.Ord\"] || {};\n var exports = $PS[\"Data.Ord\"];\n var $foreign = $PS[\"Data.Ord\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Ordering = $PS[\"Data.Ordering\"];\n var ordUnit = {\n compare: function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n },\n Eq0: function () {\n return Data_Eq.eqUnit;\n }\n };\n var ordString = {\n compare: $foreign.ordStringImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqString;\n }\n };\n var ordInt = {\n compare: $foreign.ordIntImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqInt;\n }\n };\n var ordChar = {\n compare: $foreign.ordCharImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqChar;\n }\n };\n var compare = function (dict) {\n return dict.compare;\n };\n exports[\"compare\"] = compare;\n exports[\"ordInt\"] = ordInt;\n exports[\"ordString\"] = ordString;\n exports[\"ordChar\"] = ordChar;\n exports[\"ordUnit\"] = ordUnit;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._copyST = function (m) {\n return function () {\n var r = {};\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n r[k] = m[k];\n }\n }\n return r;\n };\n };\n\n exports.empty = {};\n\n exports.runST = function (f) {\n return f();\n };\n\n exports._fmapObject = function (m0, f) {\n var m = {};\n for (var k in m0) {\n if (hasOwnProperty.call(m0, k)) {\n m[k] = f(m0[k]);\n }\n }\n return m;\n };\n\n exports._mapWithKey = function (m0, f) {\n var m = {};\n for (var k in m0) {\n if (hasOwnProperty.call(m0, k)) {\n m[k] = f(k)(m0[k]);\n }\n }\n return m;\n };\n\n exports._foldM = function (bind) {\n return function (f) {\n return function (mz) {\n return function (m) {\n var acc = mz;\n function g(k) {\n return function (z) {\n return f(z)(k)(m[k]);\n };\n }\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n acc = bind(acc)(g(k));\n }\n }\n return acc;\n };\n };\n };\n };\n\n exports._lookup = function (no, yes, k, m) {\n return k in m ? yes(m[k]) : no;\n };\n\n function toArrayWithKey(f) {\n return function (m) {\n var r = [];\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n r.push(f(k)(m[k]));\n }\n }\n return r;\n };\n }\n\n exports.toArrayWithKey = toArrayWithKey;\n})(PS[\"Foreign.Object\"] = PS[\"Foreign.Object\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.foldrArray = function (f) {\n return function (init) {\n return function (xs) {\n var acc = init;\n var len = xs.length;\n for (var i = len - 1; i >= 0; i--) {\n acc = f(xs[i])(acc);\n }\n return acc;\n };\n };\n };\n\n exports.foldlArray = function (f) {\n return function (init) {\n return function (xs) {\n var acc = init;\n var len = xs.length;\n for (var i = 0; i < len; i++) {\n acc = f(acc)(xs[i]);\n }\n return acc;\n };\n };\n };\n})(PS[\"Data.Foldable\"] = PS[\"Data.Foldable\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Monoid\"] = $PS[\"Data.Monoid\"] || {};\n var exports = $PS[\"Data.Monoid\"];\n var mempty = function (dict) {\n return dict.mempty;\n };\n exports[\"mempty\"] = mempty;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.boolConj = function (b1) {\n return function (b2) {\n return b1 && b2;\n };\n };\n\n exports.boolDisj = function (b1) {\n return function (b2) {\n return b1 || b2;\n };\n };\n\n exports.boolNot = function (b) {\n return !b;\n };\n})(PS[\"Data.HeytingAlgebra\"] = PS[\"Data.HeytingAlgebra\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.HeytingAlgebra\"] = $PS[\"Data.HeytingAlgebra\"] || {};\n var exports = $PS[\"Data.HeytingAlgebra\"];\n var $foreign = $PS[\"Data.HeytingAlgebra\"];\n var tt = function (dict) {\n return dict.tt;\n };\n var not = function (dict) {\n return dict.not;\n };\n var implies = function (dict) {\n return dict.implies;\n };\n var ff = function (dict) {\n return dict.ff;\n };\n var disj = function (dict) {\n return dict.disj;\n };\n var heytingAlgebraBoolean = {\n ff: false,\n tt: true,\n implies: function (a) {\n return function (b) {\n return disj(heytingAlgebraBoolean)(not(heytingAlgebraBoolean)(a))(b);\n };\n },\n conj: $foreign.boolConj,\n disj: $foreign.boolDisj,\n not: $foreign.boolNot\n };\n var conj = function (dict) {\n return dict.conj;\n };\n var heytingAlgebraFunction = function (dictHeytingAlgebra) {\n return {\n ff: function (v) {\n return ff(dictHeytingAlgebra);\n },\n tt: function (v) {\n return tt(dictHeytingAlgebra);\n },\n implies: function (f) {\n return function (g) {\n return function (a) {\n return implies(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n },\n conj: function (f) {\n return function (g) {\n return function (a) {\n return conj(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n },\n disj: function (f) {\n return function (g) {\n return function (a) {\n return disj(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n },\n not: function (f) {\n return function (a) {\n return not(dictHeytingAlgebra)(f(a));\n };\n }\n };\n };\n exports[\"ff\"] = ff;\n exports[\"disj\"] = disj;\n exports[\"not\"] = not;\n exports[\"heytingAlgebraBoolean\"] = heytingAlgebraBoolean;\n exports[\"heytingAlgebraFunction\"] = heytingAlgebraFunction;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Monoid.Disj\"] = $PS[\"Data.Monoid.Disj\"] || {};\n var exports = $PS[\"Data.Monoid.Disj\"];\n var Data_HeytingAlgebra = $PS[\"Data.HeytingAlgebra\"];\n var Disj = function (x) {\n return x;\n };\n var semigroupDisj = function (dictHeytingAlgebra) {\n return {\n append: function (v) {\n return function (v1) {\n return Data_HeytingAlgebra.disj(dictHeytingAlgebra)(v)(v1);\n };\n }\n };\n };\n var monoidDisj = function (dictHeytingAlgebra) {\n return {\n mempty: Data_HeytingAlgebra.ff(dictHeytingAlgebra),\n Semigroup0: function () {\n return semigroupDisj(dictHeytingAlgebra);\n }\n };\n };\n exports[\"Disj\"] = Disj;\n exports[\"monoidDisj\"] = monoidDisj;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Foldable\"] = $PS[\"Data.Foldable\"] || {};\n var exports = $PS[\"Data.Foldable\"];\n var $foreign = $PS[\"Data.Foldable\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Monoid_Disj = $PS[\"Data.Monoid.Disj\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var foldr = function (dict) {\n return dict.foldr;\n };\n var traverse_ = function (dictApplicative) {\n return function (dictFoldable) {\n return function (f) {\n return foldr(dictFoldable)((function () {\n var $316 = Control_Apply.applySecond(dictApplicative.Apply0());\n return function ($317) {\n return $316(f($317));\n };\n })())(Control_Applicative.pure(dictApplicative)(Data_Unit.unit));\n };\n };\n };\n var for_ = function (dictApplicative) {\n return function (dictFoldable) {\n return Data_Function.flip(traverse_(dictApplicative)(dictFoldable));\n };\n };\n var foldl = function (dict) {\n return dict.foldl;\n };\n var foldableMaybe = {\n foldr: function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return z;\n };\n if (v1 instanceof Data_Maybe.Just) {\n return v(v1.value0)(z);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n },\n foldl: function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return z;\n };\n if (v1 instanceof Data_Maybe.Just) {\n return v(z)(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return Data_Monoid.mempty(dictMonoid);\n };\n if (v1 instanceof Data_Maybe.Just) {\n return v(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n }\n };\n var foldMapDefaultR = function (dictFoldable) {\n return function (dictMonoid) {\n return function (f) {\n return foldr(dictFoldable)(function (x) {\n return function (acc) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(f(x))(acc);\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n };\n };\n var foldableArray = {\n foldr: $foreign.foldrArray,\n foldl: $foreign.foldlArray,\n foldMap: function (dictMonoid) {\n return foldMapDefaultR(foldableArray)(dictMonoid);\n }\n };\n var foldMap = function (dict) {\n return dict.foldMap;\n };\n var any = function (dictFoldable) {\n return function (dictHeytingAlgebra) {\n return Data_Newtype.alaF()()()()(Data_Monoid_Disj.Disj)(foldMap(dictFoldable)(Data_Monoid_Disj.monoidDisj(dictHeytingAlgebra)));\n };\n };\n exports[\"foldr\"] = foldr;\n exports[\"foldl\"] = foldl;\n exports[\"foldMap\"] = foldMap;\n exports[\"traverse_\"] = traverse_;\n exports[\"for_\"] = for_;\n exports[\"any\"] = any;\n exports[\"foldableArray\"] = foldableArray;\n exports[\"foldableMaybe\"] = foldableMaybe;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.runFn3 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return fn(a, b, c);\n };\n };\n };\n };\n\n exports.runFn4 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return fn(a, b, c, d);\n };\n };\n };\n };\n };\n})(PS[\"Data.Function.Uncurried\"] = PS[\"Data.Function.Uncurried\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Function.Uncurried\"] = $PS[\"Data.Function.Uncurried\"] || {};\n var exports = $PS[\"Data.Function.Uncurried\"];\n var $foreign = $PS[\"Data.Function.Uncurried\"];\n exports[\"runFn3\"] = $foreign.runFn3;\n exports[\"runFn4\"] = $foreign.runFn4;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // jshint maxparams: 3\n\n exports.traverseArrayImpl = (function () {\n function array1(a) {\n return [a];\n }\n\n function array2(a) {\n return function (b) {\n return [a, b];\n };\n }\n\n function array3(a) {\n return function (b) {\n return function (c) {\n return [a, b, c];\n };\n };\n }\n\n function concat2(xs) {\n return function (ys) {\n return xs.concat(ys);\n };\n }\n\n return function (apply) {\n return function (map) {\n return function (pure) {\n return function (f) {\n return function (array) {\n function go(bot, top) {\n switch (top - bot) {\n case 0: return pure([]);\n case 1: return map(array1)(f(array[bot]));\n case 2: return apply(map(array2)(f(array[bot])))(f(array[bot + 1]));\n case 3: return apply(apply(map(array3)(f(array[bot])))(f(array[bot + 1])))(f(array[bot + 2]));\n default:\n // This slightly tricky pivot selection aims to produce two\n // even-length partitions where possible.\n var pivot = bot + Math.floor((top - bot) / 4) * 2;\n return apply(map(concat2)(go(bot, pivot)))(go(pivot, top));\n }\n }\n return go(0, array.length);\n };\n };\n };\n };\n };\n })();\n})(PS[\"Data.Traversable\"] = PS[\"Data.Traversable\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Traversable\"] = $PS[\"Data.Traversable\"] || {};\n var exports = $PS[\"Data.Traversable\"];\n var $foreign = $PS[\"Data.Traversable\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var traverse = function (dict) {\n return dict.traverse;\n };\n var sequenceDefault = function (dictTraversable) {\n return function (dictApplicative) {\n return traverse(dictTraversable)(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n };\n };\n var traversableArray = {\n traverse: function (dictApplicative) {\n return $foreign.traverseArrayImpl(Control_Apply.apply(dictApplicative.Apply0()))(Data_Functor.map((dictApplicative.Apply0()).Functor0()))(Control_Applicative.pure(dictApplicative));\n },\n sequence: function (dictApplicative) {\n return sequenceDefault(traversableArray)(dictApplicative);\n },\n Functor0: function () {\n return Data_Functor.functorArray;\n },\n Foldable1: function () {\n return Data_Foldable.foldableArray;\n }\n };\n var sequence = function (dict) {\n return dict.sequence;\n };\n exports[\"traverse\"] = traverse;\n exports[\"sequence\"] = sequence;\n exports[\"traversableArray\"] = traversableArray;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.mapWithIndexArray = function (f) {\n return function (xs) {\n var l = xs.length;\n var result = Array(l);\n for (var i = 0; i < l; i++) {\n result[i] = f(i)(xs[i]);\n }\n return result;\n };\n };\n})(PS[\"Data.FunctorWithIndex\"] = PS[\"Data.FunctorWithIndex\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.FunctorWithIndex\"] = $PS[\"Data.FunctorWithIndex\"] || {};\n var exports = $PS[\"Data.FunctorWithIndex\"];\n var $foreign = $PS[\"Data.FunctorWithIndex\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var mapWithIndex = function (dict) {\n return dict.mapWithIndex;\n };\n var functorWithIndexArray = {\n mapWithIndex: $foreign.mapWithIndexArray,\n Functor0: function () {\n return Data_Functor.functorArray;\n }\n };\n exports[\"mapWithIndex\"] = mapWithIndex;\n exports[\"functorWithIndexArray\"] = functorWithIndexArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Tuple\"] = $PS[\"Data.Tuple\"] || {};\n var exports = $PS[\"Data.Tuple\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Ordering = $PS[\"Data.Ordering\"]; \n var Tuple = (function () {\n function Tuple(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Tuple.create = function (value0) {\n return function (value1) {\n return new Tuple(value0, value1);\n };\n };\n return Tuple;\n })();\n var uncurry = function (f) {\n return function (v) {\n return f(v.value0)(v.value1);\n };\n };\n var snd = function (v) {\n return v.value1;\n };\n var functorTuple = {\n map: function (f) {\n return function (m) {\n return new Tuple(m.value0, f(m.value1));\n };\n }\n };\n var fst = function (v) {\n return v.value0;\n };\n var eqTuple = function (dictEq) {\n return function (dictEq1) {\n return {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq(dictEq)(x.value0)(y.value0) && Data_Eq.eq(dictEq1)(x.value1)(y.value1);\n };\n }\n };\n };\n };\n var ordTuple = function (dictOrd) {\n return function (dictOrd1) {\n return {\n compare: function (x) {\n return function (y) {\n var v = Data_Ord.compare(dictOrd)(x.value0)(y.value0);\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n return Data_Ord.compare(dictOrd1)(x.value1)(y.value1);\n };\n },\n Eq0: function () {\n return eqTuple(dictOrd.Eq0())(dictOrd1.Eq0());\n }\n };\n };\n };\n exports[\"Tuple\"] = Tuple;\n exports[\"fst\"] = fst;\n exports[\"snd\"] = snd;\n exports[\"uncurry\"] = uncurry;\n exports[\"ordTuple\"] = ordTuple;\n exports[\"functorTuple\"] = functorTuple;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.FoldableWithIndex\"] = $PS[\"Data.FoldableWithIndex\"] || {};\n var exports = $PS[\"Data.FoldableWithIndex\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_FunctorWithIndex = $PS[\"Data.FunctorWithIndex\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var foldrWithIndex = function (dict) {\n return dict.foldrWithIndex;\n };\n var foldMapWithIndexDefaultR = function (dictFoldableWithIndex) {\n return function (dictMonoid) {\n return function (f) {\n return foldrWithIndex(dictFoldableWithIndex)(function (i) {\n return function (x) {\n return function (acc) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(f(i)(x))(acc);\n };\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n };\n };\n var foldableWithIndexArray = {\n foldrWithIndex: function (f) {\n return function (z) {\n var $167 = Data_Foldable.foldr(Data_Foldable.foldableArray)(function (v) {\n return function (y) {\n return f(v.value0)(v.value1)(y);\n };\n })(z);\n var $168 = Data_FunctorWithIndex.mapWithIndex(Data_FunctorWithIndex.functorWithIndexArray)(Data_Tuple.Tuple.create);\n return function ($169) {\n return $167($168($169));\n };\n };\n },\n foldlWithIndex: function (f) {\n return function (z) {\n var $170 = Data_Foldable.foldl(Data_Foldable.foldableArray)(function (y) {\n return function (v) {\n return f(v.value0)(y)(v.value1);\n };\n })(z);\n var $171 = Data_FunctorWithIndex.mapWithIndex(Data_FunctorWithIndex.functorWithIndexArray)(Data_Tuple.Tuple.create);\n return function ($172) {\n return $170($171($172));\n };\n };\n },\n foldMapWithIndex: function (dictMonoid) {\n return foldMapWithIndexDefaultR(foldableWithIndexArray)(dictMonoid);\n },\n Foldable0: function () {\n return Data_Foldable.foldableArray;\n }\n };\n exports[\"foldableWithIndexArray\"] = foldableWithIndexArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.TraversableWithIndex\"] = $PS[\"Data.TraversableWithIndex\"] || {};\n var exports = $PS[\"Data.TraversableWithIndex\"];\n var Data_FoldableWithIndex = $PS[\"Data.FoldableWithIndex\"];\n var Data_FunctorWithIndex = $PS[\"Data.FunctorWithIndex\"];\n var Data_Traversable = $PS[\"Data.Traversable\"]; \n var traverseWithIndexDefault = function (dictTraversableWithIndex) {\n return function (dictApplicative) {\n return function (f) {\n var $64 = Data_Traversable.sequence(dictTraversableWithIndex.Traversable2())(dictApplicative);\n var $65 = Data_FunctorWithIndex.mapWithIndex(dictTraversableWithIndex.FunctorWithIndex0())(f);\n return function ($66) {\n return $64($65($66));\n };\n };\n };\n };\n var traverseWithIndex = function (dict) {\n return dict.traverseWithIndex;\n };\n var traversableWithIndexArray = {\n traverseWithIndex: function (dictApplicative) {\n return traverseWithIndexDefault(traversableWithIndexArray)(dictApplicative);\n },\n FunctorWithIndex0: function () {\n return Data_FunctorWithIndex.functorWithIndexArray;\n },\n FoldableWithIndex1: function () {\n return Data_FoldableWithIndex.foldableWithIndexArray;\n },\n Traversable2: function () {\n return Data_Traversable.traversableArray;\n }\n };\n exports[\"traverseWithIndex\"] = traverseWithIndex;\n exports[\"traversableWithIndexArray\"] = traversableWithIndexArray;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports[\"new\"] = function () {\n return {};\n };\n\n exports.poke = function (k) {\n return function (v) {\n return function (m) {\n return function () {\n m[k] = v;\n return m;\n };\n };\n };\n };\n})(PS[\"Foreign.Object.ST\"] = PS[\"Foreign.Object.ST\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Foreign.Object.ST\"] = $PS[\"Foreign.Object.ST\"] || {};\n var exports = $PS[\"Foreign.Object.ST\"];\n var $foreign = $PS[\"Foreign.Object.ST\"];\n exports[\"new\"] = $foreign[\"new\"];\n exports[\"poke\"] = $foreign.poke;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Foreign.Object\"] = $PS[\"Foreign.Object\"] || {};\n var exports = $PS[\"Foreign.Object\"];\n var $foreign = $PS[\"Foreign.Object\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Function_Uncurried = $PS[\"Data.Function.Uncurried\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Traversable = $PS[\"Data.Traversable\"];\n var Data_TraversableWithIndex = $PS[\"Data.TraversableWithIndex\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Foreign_Object_ST = $PS[\"Foreign.Object.ST\"]; \n var values = $foreign.toArrayWithKey(function (v) {\n return function (v1) {\n return v1;\n };\n }); \n var thawST = $foreign[\"_copyST\"];\n var mutate = function (f) {\n return function (m) {\n return $foreign.runST(function __do() {\n var s = thawST(m)();\n f(s)();\n return s;\n });\n };\n }; \n var mapWithKey = function (f) {\n return function (m) {\n return $foreign[\"_mapWithKey\"](m, f);\n };\n };\n var lookup = Data_Function_Uncurried.runFn4($foreign[\"_lookup\"])(Data_Maybe.Nothing.value)(Data_Maybe.Just.create);\n var insert = function (k) {\n return function (v) {\n return mutate(Foreign_Object_ST.poke(k)(v));\n };\n };\n var functorObject = {\n map: function (f) {\n return function (m) {\n return $foreign[\"_fmapObject\"](m, f);\n };\n }\n };\n var functorWithIndexObject = {\n mapWithIndex: mapWithKey,\n Functor0: function () {\n return functorObject;\n }\n };\n var fold = $foreign[\"_foldM\"](Data_Function.applyFlipped);\n var foldMap = function (dictMonoid) {\n return function (f) {\n return fold(function (acc) {\n return function (k) {\n return function (v) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(acc)(f(k)(v));\n };\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n };\n var foldableObject = {\n foldl: function (f) {\n return fold(function (z) {\n return function (v) {\n return f(z);\n };\n });\n },\n foldr: function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldr(Data_Foldable.foldableArray)(f)(z)(values(m));\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return foldMap(dictMonoid)(Data_Function[\"const\"](f));\n };\n }\n };\n var foldableWithIndexObject = {\n foldlWithIndex: function (f) {\n return fold(Data_Function.flip(f));\n },\n foldrWithIndex: function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldr(Data_Foldable.foldableArray)(Data_Tuple.uncurry(f))(z)($foreign.toArrayWithKey(Data_Tuple.Tuple.create)(m));\n };\n };\n },\n foldMapWithIndex: function (dictMonoid) {\n return foldMap(dictMonoid);\n },\n Foldable0: function () {\n return foldableObject;\n }\n };\n var traversableWithIndexObject = {\n traverseWithIndex: function (dictApplicative) {\n return function (f) {\n return function (ms) {\n return fold(function (acc) {\n return function (k) {\n return function (v) {\n return Control_Apply.apply(dictApplicative.Apply0())(Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Function.flip(insert(k)))(acc))(f(k)(v));\n };\n };\n })(Control_Applicative.pure(dictApplicative)($foreign.empty))(ms);\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexObject;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexObject;\n },\n Traversable2: function () {\n return traversableObject;\n }\n };\n var traversableObject = {\n traverse: function (dictApplicative) {\n var $43 = Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexObject)(dictApplicative);\n return function ($44) {\n return $43(Data_Function[\"const\"]($44));\n };\n },\n sequence: function (dictApplicative) {\n return Data_Traversable.traverse(traversableObject)(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n },\n Functor0: function () {\n return functorObject;\n },\n Foldable1: function () {\n return foldableObject;\n }\n };\n exports[\"insert\"] = insert;\n exports[\"lookup\"] = lookup;\n exports[\"traversableObject\"] = traversableObject;\n exports[\"empty\"] = $foreign.empty;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Core\"] = $PS[\"Data.Argonaut.Core\"] || {};\n var exports = $PS[\"Data.Argonaut.Core\"];\n var $foreign = $PS[\"Data.Argonaut.Core\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Ordering = $PS[\"Data.Ordering\"];\n var Foreign_Object = $PS[\"Foreign.Object\"]; \n var verbJsonType = function (def) {\n return function (f) {\n return function (g) {\n return g(def)(f);\n };\n };\n };\n var toJsonType = verbJsonType(Data_Maybe.Nothing.value)(Data_Maybe.Just.create);\n var jsonEmptyObject = $foreign.fromObject(Foreign_Object.empty);\n var isJsonType = verbJsonType(false)(Data_Function[\"const\"](true));\n var ordJson = {\n compare: function (a) {\n return function (b) {\n return $foreign[\"_compare\"](Data_Ordering.EQ.value, Data_Ordering.GT.value, Data_Ordering.LT.value, a, b);\n };\n },\n Eq0: function () {\n return eqJson;\n }\n };\n var eqJson = {\n eq: function (j1) {\n return function (j2) {\n return Data_Eq.eq(Data_Ordering.eqOrdering)(Data_Ord.compare(ordJson)(j1)(j2))(Data_Ordering.EQ.value);\n };\n }\n };\n var caseJsonString = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n }; \n var toString = toJsonType(caseJsonString);\n var caseJsonObject = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, j);\n };\n };\n }; \n var toObject = toJsonType(caseJsonObject);\n var caseJsonNumber = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n }; \n var caseJsonNull = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n };\n var isNull = isJsonType(caseJsonNull); \n var caseJsonArray = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), j);\n };\n };\n }; \n var toArray = toJsonType(caseJsonArray);\n exports[\"caseJsonNumber\"] = caseJsonNumber;\n exports[\"caseJsonString\"] = caseJsonString;\n exports[\"isNull\"] = isNull;\n exports[\"toString\"] = toString;\n exports[\"toArray\"] = toArray;\n exports[\"toObject\"] = toObject;\n exports[\"jsonEmptyObject\"] = jsonEmptyObject;\n exports[\"eqJson\"] = eqJson;\n exports[\"fromString\"] = $foreign.fromString;\n exports[\"fromArray\"] = $foreign.fromArray;\n exports[\"fromObject\"] = $foreign.fromObject;\n exports[\"jsonNull\"] = $foreign.jsonNull;\n exports[\"stringify\"] = $foreign.stringify;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._jsonParser = function (fail, succ, s) {\n try {\n return succ(JSON.parse(s));\n }\n catch (e) {\n return fail(e.message);\n }\n };\n})(PS[\"Data.Argonaut.Parser\"] = PS[\"Data.Argonaut.Parser\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Parser\"] = $PS[\"Data.Argonaut.Parser\"] || {};\n var exports = $PS[\"Data.Argonaut.Parser\"];\n var $foreign = $PS[\"Data.Argonaut.Parser\"];\n var Data_Either = $PS[\"Data.Either\"]; \n var jsonParser = function (j) {\n return $foreign[\"_jsonParser\"](Data_Either.Left.create, Data_Either.Right.create, j);\n };\n exports[\"jsonParser\"] = jsonParser;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n //------------------------------------------------------------------------------\n // Array size ------------------------------------------------------------------\n //------------------------------------------------------------------------------\n\n exports.length = function (xs) {\n return xs.length;\n };\n\n //------------------------------------------------------------------------------\n // Non-indexed reads -----------------------------------------------------------\n //------------------------------------------------------------------------------\n\n exports.unconsImpl = function (empty) {\n return function (next) {\n return function (xs) {\n return xs.length === 0 ? empty({}) : next(xs[0])(xs.slice(1));\n };\n };\n };\n\n //------------------------------------------------------------------------------\n // Indexed operations ----------------------------------------------------------\n //------------------------------------------------------------------------------\n\n exports.indexImpl = function (just) {\n return function (nothing) {\n return function (xs) {\n return function (i) {\n return i < 0 || i >= xs.length ? nothing : just(xs[i]);\n };\n };\n };\n };\n\n exports.findIndexImpl = function (just) {\n return function (nothing) {\n return function (f) {\n return function (xs) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (f(xs[i])) return just(i);\n }\n return nothing;\n };\n };\n };\n };\n\n exports._deleteAt = function (just) {\n return function (nothing) {\n return function (i) {\n return function (l) {\n if (i < 0 || i >= l.length) return nothing;\n var l1 = l.slice();\n l1.splice(i, 1);\n return just(l1);\n };\n };\n };\n }; \n\n //------------------------------------------------------------------------------\n // Subarrays -------------------------------------------------------------------\n //------------------------------------------------------------------------------\n\n exports.slice = function (s) {\n return function (e) {\n return function (l) {\n return l.slice(s, e);\n };\n };\n };\n})(PS[\"Data.Array\"] = PS[\"Data.Array\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.pushAll = function (as) {\n return function (xs) {\n return function () {\n return xs.push.apply(xs, as);\n };\n };\n };\n\n exports.unsafeFreeze = function (xs) {\n return function () {\n return xs;\n };\n };\n\n function copyImpl(xs) {\n return function () {\n return xs.slice();\n };\n } \n\n exports.thaw = copyImpl;\n})(PS[\"Data.Array.ST\"] = PS[\"Data.Array.ST\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Array.ST\"] = $PS[\"Data.Array.ST\"] || {};\n var exports = $PS[\"Data.Array.ST\"];\n var $foreign = $PS[\"Data.Array.ST\"]; \n var withArray = function (f) {\n return function (xs) {\n return function __do() {\n var result = $foreign.thaw(xs)();\n f(result)();\n return $foreign.unsafeFreeze(result)();\n };\n };\n };\n var push = function (a) {\n return $foreign.pushAll([ a ]);\n };\n exports[\"withArray\"] = withArray;\n exports[\"push\"] = push;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Array\"] = $PS[\"Data.Array\"] || {};\n var exports = $PS[\"Data.Array\"];\n var $foreign = $PS[\"Data.Array\"];\n var Data_Array_ST = $PS[\"Data.Array.ST\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var uncons = $foreign.unconsImpl(Data_Function[\"const\"](Data_Maybe.Nothing.value))(function (x) {\n return function (xs) {\n return new Data_Maybe.Just({\n head: x,\n tail: xs\n });\n };\n });\n var take = function (n) {\n return function (xs) {\n var $67 = n < 1;\n if ($67) {\n return [ ];\n };\n return $foreign.slice(0)(n)(xs);\n };\n };\n var tail = $foreign.unconsImpl(Data_Function[\"const\"](Data_Maybe.Nothing.value))(function (v) {\n return function (xs) {\n return new Data_Maybe.Just(xs);\n };\n });\n var snoc = function (xs) {\n return function (x) {\n return Data_Array_ST.withArray(Data_Array_ST.push(x))(xs)();\n };\n };\n var index = $foreign.indexImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n var head = function (xs) {\n return index(xs)(0);\n };\n var foldr = Data_Foldable.foldr(Data_Foldable.foldableArray);\n var foldl = Data_Foldable.foldl(Data_Foldable.foldableArray);\n var findIndex = $foreign.findIndexImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n var deleteAt = $foreign[\"_deleteAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n var deleteBy = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2.length === 0) {\n return [ ];\n };\n return Data_Maybe.maybe(v2)(function (i) {\n return Data_Maybe.fromJust()(deleteAt(i)(v2));\n })(findIndex(v(v1))(v2));\n };\n };\n };\n exports[\"snoc\"] = snoc;\n exports[\"head\"] = head;\n exports[\"tail\"] = tail;\n exports[\"uncons\"] = uncons;\n exports[\"foldl\"] = foldl;\n exports[\"foldr\"] = foldr;\n exports[\"take\"] = take;\n exports[\"deleteBy\"] = deleteBy;\n exports[\"length\"] = $foreign.length;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.split = function (sep) {\n return function (s) {\n return s.split(sep);\n };\n };\n\n exports.toLower = function (s) {\n return s.toLowerCase();\n };\n\n exports.trim = function (s) {\n return s.trim();\n };\n\n exports.joinWith = function (s) {\n return function (xs) {\n return xs.join(s);\n };\n };\n})(PS[\"Data.String.Common\"] = PS[\"Data.String.Common\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.String.Common\"] = $PS[\"Data.String.Common\"] || {};\n var exports = $PS[\"Data.String.Common\"];\n var $foreign = $PS[\"Data.String.Common\"];\n exports[\"split\"] = $foreign.split;\n exports[\"toLower\"] = $foreign.toLower;\n exports[\"trim\"] = $foreign.trim;\n exports[\"joinWith\"] = $foreign.joinWith;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // A helper which transforms the result ofencodeURIComponent to be compliant\n // with RFC3896, as described in the MDN documentation here:\n //\n // https://web.archive.org/web/20201206001047/https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent\n function toRFC3896(input) {\n return input.replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16);\n });\n } \n\n exports._encodeFormURLComponent = function encode(fail, succeed, input) {\n try {\n return succeed(toRFC3896(encodeURIComponent(input)).replace(/%20/g, \"+\"));\n } catch (err) {\n return fail(err);\n }\n };\n})(PS[\"JSURI\"] = PS[\"JSURI\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"JSURI\"] = $PS[\"JSURI\"] || {};\n var exports = $PS[\"JSURI\"];\n var $foreign = $PS[\"JSURI\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Function_Uncurried = $PS[\"Data.Function.Uncurried\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var encodeFormURLComponent = Data_Function_Uncurried.runFn3($foreign[\"_encodeFormURLComponent\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n exports[\"encodeFormURLComponent\"] = encodeFormURLComponent;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.FormURLEncoded\"] = $PS[\"Data.FormURLEncoded\"] || {};\n var exports = $PS[\"Data.FormURLEncoded\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Traversable = $PS[\"Data.Traversable\"];\n var JSURI = $PS[\"JSURI\"];\n var toArray = function (v) {\n return v;\n }; \n var encode = (function () {\n var encodePart = function (v) {\n if (v.value1 instanceof Data_Maybe.Nothing) {\n return JSURI.encodeFormURLComponent(v.value0);\n };\n if (v.value1 instanceof Data_Maybe.Just) {\n return Control_Apply.apply(Data_Maybe.applyMaybe)(Data_Functor.map(Data_Maybe.functorMaybe)(function (key) {\n return function (val) {\n return key + (\"=\" + val);\n };\n })(JSURI.encodeFormURLComponent(v.value0)))(JSURI.encodeFormURLComponent(v.value1.value0));\n };\n throw new Error(\"Failed pattern match at Data.FormURLEncoded (line 37, column 18 - line 39, column 116): \" + [ v.constructor.name ]);\n };\n var $16 = Data_Functor.map(Data_Maybe.functorMaybe)(Data_String_Common.joinWith(\"&\"));\n var $17 = Data_Traversable.traverse(Data_Traversable.traversableArray)(Data_Maybe.applicativeMaybe)(encodePart);\n return function ($18) {\n return $16($17(toArray($18)));\n };\n })();\n exports[\"encode\"] = encode;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.showIntImpl = function (n) {\n return n.toString();\n };\n\n exports.showNumberImpl = function (n) {\n var str = n.toString();\n return isNaN(str + \".0\") ? str : str + \".0\";\n };\n\n exports.showStringImpl = function (s) {\n var l = s.length;\n return \"\\\"\" + s.replace(\n /[\\0-\\x1F\\x7F\"\\\\]/g, // eslint-disable-line no-control-regex\n function (c, i) {\n switch (c) {\n case \"\\\"\":\n case \"\\\\\":\n return \"\\\\\" + c;\n case \"\\x07\": return \"\\\\a\";\n case \"\\b\": return \"\\\\b\";\n case \"\\f\": return \"\\\\f\";\n case \"\\n\": return \"\\\\n\";\n case \"\\r\": return \"\\\\r\";\n case \"\\t\": return \"\\\\t\";\n case \"\\v\": return \"\\\\v\";\n }\n var k = i + 1;\n var empty = k < l && s[k] >= \"0\" && s[k] <= \"9\" ? \"\\\\&\" : \"\";\n return \"\\\\\" + c.charCodeAt(0).toString(10) + empty;\n }\n ) + \"\\\"\";\n };\n\n exports.cons = function (head) {\n return function (tail) {\n return [head].concat(tail);\n };\n };\n\n exports.join = function (separator) {\n return function (xs) {\n return xs.join(separator);\n };\n };\n})(PS[\"Data.Show\"] = PS[\"Data.Show\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Symbol\"] = $PS[\"Data.Symbol\"] || {};\n var exports = $PS[\"Data.Symbol\"];\n var reflectSymbol = function (dict) {\n return dict.reflectSymbol;\n };\n exports[\"reflectSymbol\"] = reflectSymbol;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafeGet = function (label) {\n return function (rec) {\n return rec[label];\n };\n };\n\n exports.unsafeSet = function (label) {\n return function (value) {\n return function (rec) {\n var copy = {};\n for (var key in rec) {\n if ({}.hasOwnProperty.call(rec, key)) {\n copy[key] = rec[key];\n }\n }\n copy[label] = value;\n return copy;\n };\n };\n };\n})(PS[\"Record.Unsafe\"] = PS[\"Record.Unsafe\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Record.Unsafe\"] = $PS[\"Record.Unsafe\"] || {};\n var exports = $PS[\"Record.Unsafe\"];\n var $foreign = $PS[\"Record.Unsafe\"];\n exports[\"unsafeGet\"] = $foreign.unsafeGet;\n exports[\"unsafeSet\"] = $foreign.unsafeSet;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Type.Proxy\"] = $PS[\"Type.Proxy\"] || {};\n var exports = $PS[\"Type.Proxy\"];\n var $$Proxy = (function () {\n function $$Proxy() {\n\n };\n $$Proxy.value = new $$Proxy();\n return $$Proxy;\n })();\n exports[\"Proxy\"] = $$Proxy;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Show\"] = $PS[\"Data.Show\"] || {};\n var exports = $PS[\"Data.Show\"];\n var $foreign = $PS[\"Data.Show\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Record_Unsafe = $PS[\"Record.Unsafe\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n var showString = {\n show: $foreign.showStringImpl\n };\n var showRecordFieldsNil = {\n showRecordFields: function (v) {\n return function (v1) {\n return [ ];\n };\n }\n };\n var showRecordFields = function (dict) {\n return dict.showRecordFields;\n };\n var showRecord = function (dictRowToList) {\n return function (dictShowRecordFields) {\n return {\n show: function (record) {\n var v = showRecordFields(dictShowRecordFields)(Type_Proxy[\"Proxy\"].value)(record);\n if (v.length === 0) {\n return \"{}\";\n };\n return $foreign.join(\" \")([ \"{\", $foreign.join(\", \")(v), \"}\" ]);\n }\n };\n };\n };\n var showNumber = {\n show: $foreign.showNumberImpl\n };\n var showInt = {\n show: $foreign.showIntImpl\n };\n var show = function (dict) {\n return dict.show;\n };\n var showRecordFieldsCons = function (dictIsSymbol) {\n return function (dictShowRecordFields) {\n return function (dictShow) {\n return {\n showRecordFields: function (v) {\n return function (record) {\n var tail = showRecordFields(dictShowRecordFields)(Type_Proxy[\"Proxy\"].value)(record);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var focus = Record_Unsafe.unsafeGet(key)(record);\n return $foreign.cons($foreign.join(\": \")([ key, show(dictShow)(focus) ]))(tail);\n };\n }\n };\n };\n };\n };\n exports[\"show\"] = show;\n exports[\"showInt\"] = showInt;\n exports[\"showNumber\"] = showNumber;\n exports[\"showString\"] = showString;\n exports[\"showRecord\"] = showRecord;\n exports[\"showRecordFieldsNil\"] = showRecordFieldsNil;\n exports[\"showRecordFieldsCons\"] = showRecordFieldsCons;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.HTTP.Method\"] = $PS[\"Data.HTTP.Method\"] || {};\n var exports = $PS[\"Data.HTTP.Method\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Show = $PS[\"Data.Show\"]; \n var OPTIONS = (function () {\n function OPTIONS() {\n\n };\n OPTIONS.value = new OPTIONS();\n return OPTIONS;\n })();\n var GET = (function () {\n function GET() {\n\n };\n GET.value = new GET();\n return GET;\n })();\n var HEAD = (function () {\n function HEAD() {\n\n };\n HEAD.value = new HEAD();\n return HEAD;\n })();\n var POST = (function () {\n function POST() {\n\n };\n POST.value = new POST();\n return POST;\n })();\n var PUT = (function () {\n function PUT() {\n\n };\n PUT.value = new PUT();\n return PUT;\n })();\n var DELETE = (function () {\n function DELETE() {\n\n };\n DELETE.value = new DELETE();\n return DELETE;\n })();\n var TRACE = (function () {\n function TRACE() {\n\n };\n TRACE.value = new TRACE();\n return TRACE;\n })();\n var CONNECT = (function () {\n function CONNECT() {\n\n };\n CONNECT.value = new CONNECT();\n return CONNECT;\n })();\n var PROPFIND = (function () {\n function PROPFIND() {\n\n };\n PROPFIND.value = new PROPFIND();\n return PROPFIND;\n })();\n var PROPPATCH = (function () {\n function PROPPATCH() {\n\n };\n PROPPATCH.value = new PROPPATCH();\n return PROPPATCH;\n })();\n var MKCOL = (function () {\n function MKCOL() {\n\n };\n MKCOL.value = new MKCOL();\n return MKCOL;\n })();\n var COPY = (function () {\n function COPY() {\n\n };\n COPY.value = new COPY();\n return COPY;\n })();\n var MOVE = (function () {\n function MOVE() {\n\n };\n MOVE.value = new MOVE();\n return MOVE;\n })();\n var LOCK = (function () {\n function LOCK() {\n\n };\n LOCK.value = new LOCK();\n return LOCK;\n })();\n var UNLOCK = (function () {\n function UNLOCK() {\n\n };\n UNLOCK.value = new UNLOCK();\n return UNLOCK;\n })();\n var PATCH = (function () {\n function PATCH() {\n\n };\n PATCH.value = new PATCH();\n return PATCH;\n })();\n var unCustomMethod = function (v) {\n return v;\n };\n var showMethod = {\n show: function (v) {\n if (v instanceof OPTIONS) {\n return \"OPTIONS\";\n };\n if (v instanceof GET) {\n return \"GET\";\n };\n if (v instanceof HEAD) {\n return \"HEAD\";\n };\n if (v instanceof POST) {\n return \"POST\";\n };\n if (v instanceof PUT) {\n return \"PUT\";\n };\n if (v instanceof DELETE) {\n return \"DELETE\";\n };\n if (v instanceof TRACE) {\n return \"TRACE\";\n };\n if (v instanceof CONNECT) {\n return \"CONNECT\";\n };\n if (v instanceof PROPFIND) {\n return \"PROPFIND\";\n };\n if (v instanceof PROPPATCH) {\n return \"PROPPATCH\";\n };\n if (v instanceof MKCOL) {\n return \"MKCOL\";\n };\n if (v instanceof COPY) {\n return \"COPY\";\n };\n if (v instanceof MOVE) {\n return \"MOVE\";\n };\n if (v instanceof LOCK) {\n return \"LOCK\";\n };\n if (v instanceof UNLOCK) {\n return \"UNLOCK\";\n };\n if (v instanceof PATCH) {\n return \"PATCH\";\n };\n throw new Error(\"Failed pattern match at Data.HTTP.Method (line 43, column 1 - line 59, column 23): \" + [ v.constructor.name ]);\n }\n };\n var print = Data_Either.either(Data_Show.show(showMethod))(unCustomMethod);\n exports[\"GET\"] = GET;\n exports[\"print\"] = print;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Identity\"] = $PS[\"Data.Identity\"] || {};\n var exports = $PS[\"Data.Identity\"]; \n var Identity = function (x) {\n return x;\n };\n var functorIdentity = {\n map: function (f) {\n return function (m) {\n return f(m);\n };\n }\n };\n var applyIdentity = {\n apply: function (v) {\n return function (v1) {\n return v(v1);\n };\n },\n Functor0: function () {\n return functorIdentity;\n }\n };\n var bindIdentity = {\n bind: function (v) {\n return function (f) {\n return f(v);\n };\n },\n Apply0: function () {\n return applyIdentity;\n }\n };\n var applicativeIdentity = {\n pure: Identity,\n Apply0: function () {\n return applyIdentity;\n }\n };\n var monadIdentity = {\n Applicative0: function () {\n return applicativeIdentity;\n },\n Bind1: function () {\n return bindIdentity;\n }\n };\n exports[\"functorIdentity\"] = functorIdentity;\n exports[\"monadIdentity\"] = monadIdentity;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Plus\"] = $PS[\"Control.Plus\"] || {};\n var exports = $PS[\"Control.Plus\"];\n var empty = function (dict) {\n return dict.empty;\n };\n exports[\"empty\"] = empty;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.NonEmpty\"] = $PS[\"Data.NonEmpty\"] || {};\n var exports = $PS[\"Data.NonEmpty\"];\n var Control_Plus = $PS[\"Control.Plus\"]; \n var NonEmpty = (function () {\n function NonEmpty(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n NonEmpty.create = function (value0) {\n return function (value1) {\n return new NonEmpty(value0, value1);\n };\n };\n return NonEmpty;\n })();\n var singleton = function (dictPlus) {\n return function (a) {\n return new NonEmpty(a, Control_Plus.empty(dictPlus));\n };\n };\n exports[\"NonEmpty\"] = NonEmpty;\n exports[\"singleton\"] = singleton;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.List.Types\"] = $PS[\"Data.List.Types\"] || {};\n var exports = $PS[\"Data.List.Types\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_NonEmpty = $PS[\"Data.NonEmpty\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"]; \n var Nil = (function () {\n function Nil() {\n\n };\n Nil.value = new Nil();\n return Nil;\n })();\n var Cons = (function () {\n function Cons(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Cons.create = function (value0) {\n return function (value1) {\n return new Cons(value0, value1);\n };\n };\n return Cons;\n })();\n var NonEmptyList = function (x) {\n return x;\n };\n var toList = function (v) {\n return new Cons(v.value0, v.value1);\n };\n var listMap = function (f) {\n var chunkedRevMap = function ($copy_chunksAcc) {\n return function ($copy_v) {\n var $tco_var_chunksAcc = $copy_chunksAcc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(chunksAcc, v) {\n if (v instanceof Cons && (v.value1 instanceof Cons && v.value1.value1 instanceof Cons)) {\n $tco_var_chunksAcc = new Cons(v, chunksAcc);\n $copy_v = v.value1.value1.value1;\n return;\n };\n var unrolledMap = function (v1) {\n if (v1 instanceof Cons && (v1.value1 instanceof Cons && v1.value1.value1 instanceof Nil)) {\n return new Cons(f(v1.value0), new Cons(f(v1.value1.value0), Nil.value));\n };\n if (v1 instanceof Cons && v1.value1 instanceof Nil) {\n return new Cons(f(v1.value0), Nil.value);\n };\n return Nil.value;\n };\n var reverseUnrolledMap = function ($copy_v1) {\n return function ($copy_acc) {\n var $tco_var_v1 = $copy_v1;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(v1, acc) {\n if (v1 instanceof Cons && (v1.value0 instanceof Cons && (v1.value0.value1 instanceof Cons && v1.value0.value1.value1 instanceof Cons))) {\n $tco_var_v1 = v1.value1;\n $copy_acc = new Cons(f(v1.value0.value0), new Cons(f(v1.value0.value1.value0), new Cons(f(v1.value0.value1.value1.value0), acc)));\n return;\n };\n $tco_done1 = true;\n return acc;\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_v1, $copy_acc);\n };\n return $tco_result;\n };\n };\n $tco_done = true;\n return reverseUnrolledMap(chunksAcc)(unrolledMap(v));\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_chunksAcc, $copy_v);\n };\n return $tco_result;\n };\n };\n return chunkedRevMap(Nil.value);\n };\n var functorList = {\n map: listMap\n }; \n var foldableList = {\n foldr: function (f) {\n return function (b) {\n var rev = (function () {\n var go = function ($copy_acc) {\n return function ($copy_v) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, v) {\n if (v instanceof Nil) {\n $tco_done = true;\n return acc;\n };\n if (v instanceof Cons) {\n $tco_var_acc = new Cons(v.value0, acc);\n $copy_v = v.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 108, column 7 - line 108, column 23): \" + [ acc.constructor.name, v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_v);\n };\n return $tco_result;\n };\n };\n return go(Nil.value);\n })();\n var $205 = Data_Foldable.foldl(foldableList)(Data_Function.flip(f))(b);\n return function ($206) {\n return $205(rev($206));\n };\n };\n },\n foldl: function (f) {\n var go = function ($copy_b) {\n return function ($copy_v) {\n var $tco_var_b = $copy_b;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(b, v) {\n if (v instanceof Nil) {\n $tco_done1 = true;\n return b;\n };\n if (v instanceof Cons) {\n $tco_var_b = f(b)(v.value0);\n $copy_v = v.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 112, column 12 - line 114, column 30): \" + [ v.constructor.name ]);\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_b, $copy_v);\n };\n return $tco_result;\n };\n };\n return go;\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return Data_Foldable.foldl(foldableList)(function (acc) {\n var $207 = Data_Semigroup.append(dictMonoid.Semigroup0())(acc);\n return function ($208) {\n return $207(f($208));\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n }\n };\n var semigroupList = {\n append: function (xs) {\n return function (ys) {\n return Data_Foldable.foldr(foldableList)(Cons.create)(ys)(xs);\n };\n }\n };\n var semigroupNonEmptyList = {\n append: function (v) {\n return function (as$prime) {\n return new Data_NonEmpty.NonEmpty(v.value0, Data_Semigroup.append(semigroupList)(v.value1)(toList(as$prime)));\n };\n }\n };\n var applyList = {\n apply: function (v) {\n return function (v1) {\n if (v instanceof Nil) {\n return Nil.value;\n };\n if (v instanceof Cons) {\n return Data_Semigroup.append(semigroupList)(Data_Functor.map(functorList)(v.value0)(v1))(Control_Apply.apply(applyList)(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 158, column 1 - line 160, column 48): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorList;\n }\n };\n var applicativeList = {\n pure: function (a) {\n return new Cons(a, Nil.value);\n },\n Apply0: function () {\n return applyList;\n }\n };\n var altList = {\n alt: Data_Semigroup.append(semigroupList),\n Functor0: function () {\n return functorList;\n }\n };\n var plusList = {\n empty: Nil.value,\n Alt0: function () {\n return altList;\n }\n };\n exports[\"Nil\"] = Nil;\n exports[\"Cons\"] = Cons;\n exports[\"NonEmptyList\"] = NonEmptyList;\n exports[\"semigroupList\"] = semigroupList;\n exports[\"foldableList\"] = foldableList;\n exports[\"applicativeList\"] = applicativeList;\n exports[\"plusList\"] = plusList;\n exports[\"semigroupNonEmptyList\"] = semigroupNonEmptyList;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.List.NonEmpty\"] = $PS[\"Data.List.NonEmpty\"] || {};\n var exports = $PS[\"Data.List.NonEmpty\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_NonEmpty = $PS[\"Data.NonEmpty\"];\n var singleton = (function () {\n var $172 = Data_NonEmpty.singleton(Data_List_Types.plusList);\n return function ($173) {\n return Data_List_Types.NonEmptyList($172($173));\n };\n })();\n var head = function (v) {\n return v.value0;\n };\n var cons = function (y) {\n return function (v) {\n return new Data_NonEmpty.NonEmpty(y, new Data_List_Types.Cons(v.value0, v.value1));\n };\n };\n exports[\"singleton\"] = singleton;\n exports[\"cons\"] = cons;\n exports[\"head\"] = head;\n})(PS);\n(function(exports) {\n /* eslint-disable no-eq-null, eqeqeq */\n\n \"use strict\";\n\n exports[\"null\"] = null;\n\n exports.nullable = function (a, r, f) {\n return a == null ? r : f(a);\n };\n\n exports.notNull = function (x) {\n return x;\n };\n})(PS[\"Data.Nullable\"] = PS[\"Data.Nullable\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Nullable\"] = $PS[\"Data.Nullable\"] || {};\n var exports = $PS[\"Data.Nullable\"];\n var $foreign = $PS[\"Data.Nullable\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var toNullable = Data_Maybe.maybe($foreign[\"null\"])($foreign.notNull);\n var toMaybe = function (n) {\n return $foreign.nullable(n, Data_Maybe.Nothing.value, Data_Maybe.Just.create);\n };\n exports[\"toMaybe\"] = toMaybe;\n exports[\"toNullable\"] = toNullable;\n exports[\"null\"] = $foreign[\"null\"];\n})(PS);\n(function(exports) {\n /* globals setImmediate, clearImmediate, setTimeout, clearTimeout */\n /* eslint-disable no-unused-vars, no-prototype-builtins, no-use-before-define, no-unused-labels, no-param-reassign */\n \"use strict\";\n\n var Aff = function () {\n // A unique value for empty.\n var EMPTY = {};\n\n /*\n\n An awkward approximation. We elide evidence we would otherwise need in PS for\n efficiency sake.\n\n data Aff eff a\n = Pure a\n | Throw Error\n | Catch (Aff eff a) (Error -> Aff eff a)\n | Sync (Eff eff a)\n | Async ((Either Error a -> Eff eff Unit) -> Eff eff (Canceler eff))\n | forall b. Bind (Aff eff b) (b -> Aff eff a)\n | forall b. Bracket (Aff eff b) (BracketConditions eff b) (b -> Aff eff a)\n | forall b. Fork Boolean (Aff eff b) ?(Fiber eff b -> a)\n | Sequential (ParAff aff a)\n\n */ \n var PURE = \"Pure\";\n var THROW = \"Throw\";\n var CATCH = \"Catch\";\n var SYNC = \"Sync\";\n var ASYNC = \"Async\";\n var BIND = \"Bind\";\n var BRACKET = \"Bracket\";\n var FORK = \"Fork\";\n var SEQ = \"Sequential\";\n\n /*\n\n data ParAff eff a\n = forall b. Map (b -> a) (ParAff eff b)\n | forall b. Apply (ParAff eff (b -> a)) (ParAff eff b)\n | Alt (ParAff eff a) (ParAff eff a)\n | ?Par (Aff eff a)\n\n */ \n var MAP = \"Map\";\n var APPLY = \"Apply\";\n var ALT = \"Alt\";\n\n // Various constructors used in interpretation\n var CONS = \"Cons\"; // Cons-list, for stacks\n var RESUME = \"Resume\"; // Continue indiscriminately\n var RELEASE = \"Release\"; // Continue with bracket finalizers\n var FINALIZER = \"Finalizer\"; // A non-interruptible effect\n var FINALIZED = \"Finalized\"; // Marker for finalization\n var FORKED = \"Forked\"; // Reference to a forked fiber, with resumption stack\n var FIBER = \"Fiber\"; // Actual fiber reference\n var THUNK = \"Thunk\"; // Primed effect, ready to invoke\n\n function Aff(tag, _1, _2, _3) {\n this.tag = tag;\n this._1 = _1;\n this._2 = _2;\n this._3 = _3;\n }\n\n function AffCtr(tag) {\n var fn = function (_1, _2, _3) {\n return new Aff(tag, _1, _2, _3);\n };\n fn.tag = tag;\n return fn;\n }\n\n function nonCanceler(error) {\n return new Aff(PURE, void 0);\n }\n\n function runEff(eff) {\n try {\n eff();\n } catch (error) {\n setTimeout(function () {\n throw error;\n }, 0);\n }\n }\n\n function runSync(left, right, eff) {\n try {\n return right(eff());\n } catch (error) {\n return left(error);\n }\n }\n\n function runAsync(left, eff, k) {\n try {\n return eff(k)();\n } catch (error) {\n k(left(error))();\n return nonCanceler;\n }\n }\n\n var Scheduler = function () {\n var limit = 1024;\n var size = 0;\n var ix = 0;\n var queue = new Array(limit);\n var draining = false;\n\n function drain() {\n var thunk;\n draining = true;\n while (size !== 0) {\n size--;\n thunk = queue[ix];\n queue[ix] = void 0;\n ix = (ix + 1) % limit;\n thunk();\n }\n draining = false;\n }\n\n return {\n isDraining: function () {\n return draining;\n },\n enqueue: function (cb) {\n var i, tmp;\n if (size === limit) {\n tmp = draining;\n drain();\n draining = tmp;\n }\n\n queue[(ix + size) % limit] = cb;\n size++;\n\n if (!draining) {\n drain();\n }\n }\n };\n }();\n\n function Supervisor(util) {\n var fibers = {};\n var fiberId = 0;\n var count = 0;\n\n return {\n register: function (fiber) {\n var fid = fiberId++;\n fiber.onComplete({\n rethrow: true,\n handler: function (result) {\n return function () {\n count--;\n delete fibers[fid];\n };\n }\n })();\n fibers[fid] = fiber;\n count++;\n },\n isEmpty: function () {\n return count === 0;\n },\n killAll: function (killError, cb) {\n return function () {\n if (count === 0) {\n return cb();\n }\n\n var killCount = 0;\n var kills = {};\n\n function kill(fid) {\n kills[fid] = fibers[fid].kill(killError, function (result) {\n return function () {\n delete kills[fid];\n killCount--;\n if (util.isLeft(result) && util.fromLeft(result)) {\n setTimeout(function () {\n throw util.fromLeft(result);\n }, 0);\n }\n if (killCount === 0) {\n cb();\n }\n };\n })();\n }\n\n for (var k in fibers) {\n if (fibers.hasOwnProperty(k)) {\n killCount++;\n kill(k);\n }\n }\n\n fibers = {};\n fiberId = 0;\n count = 0;\n\n return function (error) {\n return new Aff(SYNC, function () {\n for (var k in kills) {\n if (kills.hasOwnProperty(k)) {\n kills[k]();\n }\n }\n });\n };\n };\n }\n };\n }\n\n // Fiber state machine\n var SUSPENDED = 0; // Suspended, pending a join.\n var CONTINUE = 1; // Interpret the next instruction.\n var STEP_BIND = 2; // Apply the next bind.\n var STEP_RESULT = 3; // Handle potential failure from a result.\n var PENDING = 4; // An async effect is running.\n var RETURN = 5; // The current stack has returned.\n var COMPLETED = 6; // The entire fiber has completed.\n\n function Fiber(util, supervisor, aff) {\n // Monotonically increasing tick, increased on each asynchronous turn.\n var runTick = 0;\n\n // The current branch of the state machine.\n var status = SUSPENDED;\n\n // The current point of interest for the state machine branch.\n var step = aff; // Successful step\n var fail = null; // Failure step\n var interrupt = null; // Asynchronous interrupt\n\n // Stack of continuations for the current fiber.\n var bhead = null;\n var btail = null;\n\n // Stack of attempts and finalizers for error recovery. Every `Cons` is also\n // tagged with current `interrupt` state. We use this to track which items\n // should be ignored or evaluated as a result of a kill.\n var attempts = null;\n\n // A special state is needed for Bracket, because it cannot be killed. When\n // we enter a bracket acquisition or finalizer, we increment the counter,\n // and then decrement once complete.\n var bracketCount = 0;\n\n // Each join gets a new id so they can be revoked.\n var joinId = 0;\n var joins = null;\n var rethrow = true;\n\n // Each invocation of `run` requires a tick. When an asynchronous effect is\n // resolved, we must check that the local tick coincides with the fiber\n // tick before resuming. This prevents multiple async continuations from\n // accidentally resuming the same fiber. A common example may be invoking\n // the provided callback in `makeAff` more than once, but it may also be an\n // async effect resuming after the fiber was already cancelled.\n function run(localRunTick) {\n var tmp, result, attempt;\n while (true) {\n tmp = null;\n result = null;\n attempt = null;\n\n switch (status) {\n case STEP_BIND:\n status = CONTINUE;\n try {\n step = bhead(step);\n if (btail === null) {\n bhead = null;\n } else {\n bhead = btail._1;\n btail = btail._2;\n }\n } catch (e) {\n status = RETURN;\n fail = util.left(e);\n step = null;\n }\n break;\n\n case STEP_RESULT:\n if (util.isLeft(step)) {\n status = RETURN;\n fail = step;\n step = null;\n } else if (bhead === null) {\n status = RETURN;\n } else {\n status = STEP_BIND;\n step = util.fromRight(step);\n }\n break;\n\n case CONTINUE:\n switch (step.tag) {\n case BIND:\n if (bhead) {\n btail = new Aff(CONS, bhead, btail);\n }\n bhead = step._2;\n status = CONTINUE;\n step = step._1;\n break;\n\n case PURE:\n if (bhead === null) {\n status = RETURN;\n step = util.right(step._1);\n } else {\n status = STEP_BIND;\n step = step._1;\n }\n break;\n\n case SYNC:\n status = STEP_RESULT;\n step = runSync(util.left, util.right, step._1);\n break;\n\n case ASYNC:\n status = PENDING;\n step = runAsync(util.left, step._1, function (result) {\n return function () {\n if (runTick !== localRunTick) {\n return;\n }\n runTick++;\n Scheduler.enqueue(function () {\n // It's possible to interrupt the fiber between enqueuing and\n // resuming, so we need to check that the runTick is still\n // valid.\n if (runTick !== localRunTick + 1) {\n return;\n }\n status = STEP_RESULT;\n step = result;\n run(runTick);\n });\n };\n });\n return;\n\n case THROW:\n status = RETURN;\n fail = util.left(step._1);\n step = null;\n break;\n\n // Enqueue the Catch so that we can call the error handler later on\n // in case of an exception.\n case CATCH:\n if (bhead === null) {\n attempts = new Aff(CONS, step, attempts, interrupt);\n } else {\n attempts = new Aff(CONS, step, new Aff(CONS, new Aff(RESUME, bhead, btail), attempts, interrupt), interrupt);\n }\n bhead = null;\n btail = null;\n status = CONTINUE;\n step = step._1;\n break;\n\n // Enqueue the Bracket so that we can call the appropriate handlers\n // after resource acquisition.\n case BRACKET:\n bracketCount++;\n if (bhead === null) {\n attempts = new Aff(CONS, step, attempts, interrupt);\n } else {\n attempts = new Aff(CONS, step, new Aff(CONS, new Aff(RESUME, bhead, btail), attempts, interrupt), interrupt);\n }\n bhead = null;\n btail = null;\n status = CONTINUE;\n step = step._1;\n break;\n\n case FORK:\n status = STEP_RESULT;\n tmp = Fiber(util, supervisor, step._2);\n if (supervisor) {\n supervisor.register(tmp);\n }\n if (step._1) {\n tmp.run();\n }\n step = util.right(tmp);\n break;\n\n case SEQ:\n status = CONTINUE;\n step = sequential(util, supervisor, step._1);\n break;\n }\n break;\n\n case RETURN:\n bhead = null;\n btail = null;\n // If the current stack has returned, and we have no other stacks to\n // resume or finalizers to run, the fiber has halted and we can\n // invoke all join callbacks. Otherwise we need to resume.\n if (attempts === null) {\n status = COMPLETED;\n step = interrupt || fail || step;\n } else {\n // The interrupt status for the enqueued item.\n tmp = attempts._3;\n attempt = attempts._1;\n attempts = attempts._2;\n\n switch (attempt.tag) {\n // We cannot recover from an unmasked interrupt. Otherwise we should\n // continue stepping, or run the exception handler if an exception\n // was raised.\n case CATCH:\n // We should compare the interrupt status as well because we\n // only want it to apply if there has been an interrupt since\n // enqueuing the catch.\n if (interrupt && interrupt !== tmp && bracketCount === 0) {\n status = RETURN;\n } else if (fail) {\n status = CONTINUE;\n step = attempt._2(util.fromLeft(fail));\n fail = null;\n }\n break;\n\n // We cannot resume from an unmasked interrupt or exception.\n case RESUME:\n // As with Catch, we only want to ignore in the case of an\n // interrupt since enqueing the item.\n if (interrupt && interrupt !== tmp && bracketCount === 0 || fail) {\n status = RETURN;\n } else {\n bhead = attempt._1;\n btail = attempt._2;\n status = STEP_BIND;\n step = util.fromRight(step);\n }\n break;\n\n // If we have a bracket, we should enqueue the handlers,\n // and continue with the success branch only if the fiber has\n // not been interrupted. If the bracket acquisition failed, we\n // should not run either.\n case BRACKET:\n bracketCount--;\n if (fail === null) {\n result = util.fromRight(step);\n // We need to enqueue the Release with the same interrupt\n // status as the Bracket that is initiating it.\n attempts = new Aff(CONS, new Aff(RELEASE, attempt._2, result), attempts, tmp);\n // We should only coninue as long as the interrupt status has not changed or\n // we are currently within a non-interruptable finalizer.\n if (interrupt === tmp || bracketCount > 0) {\n status = CONTINUE;\n step = attempt._3(result);\n }\n }\n break;\n\n // Enqueue the appropriate handler. We increase the bracket count\n // because it should not be cancelled.\n case RELEASE:\n attempts = new Aff(CONS, new Aff(FINALIZED, step, fail), attempts, interrupt);\n status = CONTINUE;\n // It has only been killed if the interrupt status has changed\n // since we enqueued the item, and the bracket count is 0. If the\n // bracket count is non-zero then we are in a masked state so it's\n // impossible to be killed.\n if (interrupt && interrupt !== tmp && bracketCount === 0) {\n step = attempt._1.killed(util.fromLeft(interrupt))(attempt._2);\n } else if (fail) {\n step = attempt._1.failed(util.fromLeft(fail))(attempt._2);\n } else {\n step = attempt._1.completed(util.fromRight(step))(attempt._2);\n }\n fail = null;\n bracketCount++;\n break;\n\n case FINALIZER:\n bracketCount++;\n attempts = new Aff(CONS, new Aff(FINALIZED, step, fail), attempts, interrupt);\n status = CONTINUE;\n step = attempt._1;\n break;\n\n case FINALIZED:\n bracketCount--;\n status = RETURN;\n step = attempt._1;\n fail = attempt._2;\n break;\n }\n }\n break;\n\n case COMPLETED:\n for (var k in joins) {\n if (joins.hasOwnProperty(k)) {\n rethrow = rethrow && joins[k].rethrow;\n runEff(joins[k].handler(step));\n }\n }\n joins = null;\n // If we have an interrupt and a fail, then the thread threw while\n // running finalizers. This should always rethrow in a fresh stack.\n if (interrupt && fail) {\n setTimeout(function () {\n throw util.fromLeft(fail);\n }, 0);\n // If we have an unhandled exception, and no other fiber has joined\n // then we need to throw the exception in a fresh stack.\n } else if (util.isLeft(step) && rethrow) {\n setTimeout(function () {\n // Guard on reathrow because a completely synchronous fiber can\n // still have an observer which was added after-the-fact.\n if (rethrow) {\n throw util.fromLeft(step);\n }\n }, 0);\n }\n return;\n case SUSPENDED:\n status = CONTINUE;\n break;\n case PENDING: return;\n }\n }\n }\n\n function onComplete(join) {\n return function () {\n if (status === COMPLETED) {\n rethrow = rethrow && join.rethrow;\n join.handler(step)();\n return function () {};\n }\n\n var jid = joinId++;\n joins = joins || {};\n joins[jid] = join;\n\n return function() {\n if (joins !== null) {\n delete joins[jid];\n }\n };\n };\n }\n\n function kill(error, cb) {\n return function () {\n if (status === COMPLETED) {\n cb(util.right(void 0))();\n return function () {};\n }\n\n var canceler = onComplete({\n rethrow: false,\n handler: function (/* unused */) {\n return cb(util.right(void 0));\n }\n })();\n\n switch (status) {\n case SUSPENDED:\n interrupt = util.left(error);\n status = COMPLETED;\n step = interrupt;\n run(runTick);\n break;\n case PENDING:\n if (interrupt === null) {\n interrupt = util.left(error);\n }\n if (bracketCount === 0) {\n if (status === PENDING) {\n attempts = new Aff(CONS, new Aff(FINALIZER, step(error)), attempts, interrupt);\n }\n status = RETURN;\n step = null;\n fail = null;\n run(++runTick);\n }\n break;\n default:\n if (interrupt === null) {\n interrupt = util.left(error);\n }\n if (bracketCount === 0) {\n status = RETURN;\n step = null;\n fail = null;\n }\n }\n\n return canceler;\n };\n }\n\n function join(cb) {\n return function () {\n var canceler = onComplete({\n rethrow: false,\n handler: cb\n })();\n if (status === SUSPENDED) {\n run(runTick);\n }\n return canceler;\n };\n }\n\n return {\n kill: kill,\n join: join,\n onComplete: onComplete,\n isSuspended: function () {\n return status === SUSPENDED;\n },\n run: function () {\n if (status === SUSPENDED) {\n if (!Scheduler.isDraining()) {\n Scheduler.enqueue(function () {\n run(runTick);\n });\n } else {\n run(runTick);\n }\n }\n }\n };\n }\n\n function runPar(util, supervisor, par, cb) {\n // Table of all forked fibers.\n var fiberId = 0;\n var fibers = {};\n\n // Table of currently running cancelers, as a product of `Alt` behavior.\n var killId = 0;\n var kills = {};\n\n // Error used for early cancelation on Alt branches.\n var early = new Error(\"[ParAff] Early exit\");\n\n // Error used to kill the entire tree.\n var interrupt = null;\n\n // The root pointer of the tree.\n var root = EMPTY;\n\n // Walks a tree, invoking all the cancelers. Returns the table of pending\n // cancellation fibers.\n function kill(error, par, cb) {\n var step = par;\n var head = null;\n var tail = null;\n var count = 0;\n var kills = {};\n var tmp, kid;\n\n loop: while (true) {\n tmp = null;\n\n switch (step.tag) {\n case FORKED:\n if (step._3 === EMPTY) {\n tmp = fibers[step._1];\n kills[count++] = tmp.kill(error, function (result) {\n return function () {\n count--;\n if (count === 0) {\n cb(result)();\n }\n };\n });\n }\n // Terminal case.\n if (head === null) {\n break loop;\n }\n // Go down the right side of the tree.\n step = head._2;\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n break;\n case MAP:\n step = step._2;\n break;\n case APPLY:\n case ALT:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = step;\n step = step._1;\n break;\n }\n }\n\n if (count === 0) {\n cb(util.right(void 0))();\n } else {\n // Run the cancelation effects. We alias `count` because it's mutable.\n kid = 0;\n tmp = count;\n for (; kid < tmp; kid++) {\n kills[kid] = kills[kid]();\n }\n }\n\n return kills;\n }\n\n // When a fiber resolves, we need to bubble back up the tree with the\n // result, computing the applicative nodes.\n function join(result, head, tail) {\n var fail, step, lhs, rhs, tmp, kid;\n\n if (util.isLeft(result)) {\n fail = result;\n step = null;\n } else {\n step = result;\n fail = null;\n }\n\n loop: while (true) {\n lhs = null;\n rhs = null;\n tmp = null;\n kid = null;\n\n // We should never continue if the entire tree has been interrupted.\n if (interrupt !== null) {\n return;\n }\n\n // We've made it all the way to the root of the tree, which means\n // the tree has fully evaluated.\n if (head === null) {\n cb(fail || step)();\n return;\n }\n\n // The tree has already been computed, so we shouldn't try to do it\n // again. This should never happen.\n // TODO: Remove this?\n if (head._3 !== EMPTY) {\n return;\n }\n\n switch (head.tag) {\n case MAP:\n if (fail === null) {\n head._3 = util.right(head._1(util.fromRight(step)));\n step = head._3;\n } else {\n head._3 = fail;\n }\n break;\n case APPLY:\n lhs = head._1._3;\n rhs = head._2._3;\n // If we have a failure we should kill the other side because we\n // can't possible yield a result anymore.\n if (fail) {\n head._3 = fail;\n tmp = true;\n kid = killId++;\n\n kills[kid] = kill(early, fail === lhs ? head._2 : head._1, function (/* unused */) {\n return function () {\n delete kills[kid];\n if (tmp) {\n tmp = false;\n } else if (tail === null) {\n join(fail, null, null);\n } else {\n join(fail, tail._1, tail._2);\n }\n };\n });\n\n if (tmp) {\n tmp = false;\n return;\n }\n } else if (lhs === EMPTY || rhs === EMPTY) {\n // We can only proceed if both sides have resolved.\n return;\n } else {\n step = util.right(util.fromRight(lhs)(util.fromRight(rhs)));\n head._3 = step;\n }\n break;\n case ALT:\n lhs = head._1._3;\n rhs = head._2._3;\n // We can only proceed if both have resolved or we have a success\n if (lhs === EMPTY && util.isLeft(rhs) || rhs === EMPTY && util.isLeft(lhs)) {\n return;\n }\n // If both sides resolve with an error, we should continue with the\n // first error\n if (lhs !== EMPTY && util.isLeft(lhs) && rhs !== EMPTY && util.isLeft(rhs)) {\n fail = step === lhs ? rhs : lhs;\n step = null;\n head._3 = fail;\n } else {\n head._3 = step;\n tmp = true;\n kid = killId++;\n // Once a side has resolved, we need to cancel the side that is still\n // pending before we can continue.\n kills[kid] = kill(early, step === lhs ? head._2 : head._1, function (/* unused */) {\n return function () {\n delete kills[kid];\n if (tmp) {\n tmp = false;\n } else if (tail === null) {\n join(step, null, null);\n } else {\n join(step, tail._1, tail._2);\n }\n };\n });\n\n if (tmp) {\n tmp = false;\n return;\n }\n }\n break;\n }\n\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n }\n }\n\n function resolve(fiber) {\n return function (result) {\n return function () {\n delete fibers[fiber._1];\n fiber._3 = result;\n join(result, fiber._2._1, fiber._2._2);\n };\n };\n }\n\n // Walks the applicative tree, substituting non-applicative nodes with\n // `FORKED` nodes. In this tree, all applicative nodes use the `_3` slot\n // as a mutable slot for memoization. In an unresolved state, the `_3`\n // slot is `EMPTY`. In the cases of `ALT` and `APPLY`, we always walk\n // the left side first, because both operations are left-associative. As\n // we `RETURN` from those branches, we then walk the right side.\n function run() {\n var status = CONTINUE;\n var step = par;\n var head = null;\n var tail = null;\n var tmp, fid;\n\n loop: while (true) {\n tmp = null;\n fid = null;\n\n switch (status) {\n case CONTINUE:\n switch (step.tag) {\n case MAP:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(MAP, step._1, EMPTY, EMPTY);\n step = step._2;\n break;\n case APPLY:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(APPLY, EMPTY, step._2, EMPTY);\n step = step._1;\n break;\n case ALT:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(ALT, EMPTY, step._2, EMPTY);\n step = step._1;\n break;\n default:\n // When we hit a leaf value, we suspend the stack in the `FORKED`.\n // When the fiber resolves, it can bubble back up the tree.\n fid = fiberId++;\n status = RETURN;\n tmp = step;\n step = new Aff(FORKED, fid, new Aff(CONS, head, tail), EMPTY);\n tmp = Fiber(util, supervisor, tmp);\n tmp.onComplete({\n rethrow: false,\n handler: resolve(step)\n })();\n fibers[fid] = tmp;\n if (supervisor) {\n supervisor.register(tmp);\n }\n }\n break;\n case RETURN:\n // Terminal case, we are back at the root.\n if (head === null) {\n break loop;\n }\n // If we are done with the right side, we need to continue down the\n // left. Otherwise we should continue up the stack.\n if (head._1 === EMPTY) {\n head._1 = step;\n status = CONTINUE;\n step = head._2;\n head._2 = EMPTY;\n } else {\n head._2 = step;\n step = head;\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n }\n }\n }\n\n // Keep a reference to the tree root so it can be cancelled.\n root = step;\n\n for (fid = 0; fid < fiberId; fid++) {\n fibers[fid].run();\n }\n }\n\n // Cancels the entire tree. If there are already subtrees being canceled,\n // we need to first cancel those joins. We will then add fresh joins for\n // all pending branches including those that were in the process of being\n // canceled.\n function cancel(error, cb) {\n interrupt = util.left(error);\n var innerKills;\n for (var kid in kills) {\n if (kills.hasOwnProperty(kid)) {\n innerKills = kills[kid];\n for (kid in innerKills) {\n if (innerKills.hasOwnProperty(kid)) {\n innerKills[kid]();\n }\n }\n }\n }\n\n kills = null;\n var newKills = kill(error, root, cb);\n\n return function (killError) {\n return new Aff(ASYNC, function (killCb) {\n return function () {\n for (var kid in newKills) {\n if (newKills.hasOwnProperty(kid)) {\n newKills[kid]();\n }\n }\n return nonCanceler;\n };\n });\n };\n }\n\n run();\n\n return function (killError) {\n return new Aff(ASYNC, function (killCb) {\n return function () {\n return cancel(killError, killCb);\n };\n });\n };\n }\n\n function sequential(util, supervisor, par) {\n return new Aff(ASYNC, function (cb) {\n return function () {\n return runPar(util, supervisor, par, cb);\n };\n });\n }\n\n Aff.EMPTY = EMPTY;\n Aff.Pure = AffCtr(PURE);\n Aff.Throw = AffCtr(THROW);\n Aff.Catch = AffCtr(CATCH);\n Aff.Sync = AffCtr(SYNC);\n Aff.Async = AffCtr(ASYNC);\n Aff.Bind = AffCtr(BIND);\n Aff.Bracket = AffCtr(BRACKET);\n Aff.Fork = AffCtr(FORK);\n Aff.Seq = AffCtr(SEQ);\n Aff.ParMap = AffCtr(MAP);\n Aff.ParApply = AffCtr(APPLY);\n Aff.ParAlt = AffCtr(ALT);\n Aff.Fiber = Fiber;\n Aff.Supervisor = Supervisor;\n Aff.Scheduler = Scheduler;\n Aff.nonCanceler = nonCanceler;\n\n return Aff;\n }();\n\n exports._pure = Aff.Pure;\n\n exports._throwError = Aff.Throw;\n\n exports._catchError = function (aff) {\n return function (k) {\n return Aff.Catch(aff, k);\n };\n };\n\n exports._map = function (f) {\n return function (aff) {\n if (aff.tag === Aff.Pure.tag) {\n return Aff.Pure(f(aff._1));\n } else {\n return Aff.Bind(aff, function (value) {\n return Aff.Pure(f(value));\n });\n }\n };\n };\n\n exports._bind = function (aff) {\n return function (k) {\n return Aff.Bind(aff, k);\n };\n };\n\n exports._fork = function (immediate) {\n return function (aff) {\n return Aff.Fork(immediate, aff);\n };\n };\n\n exports._liftEffect = Aff.Sync;\n\n exports._parAffMap = function (f) {\n return function (aff) {\n return Aff.ParMap(f, aff);\n };\n };\n\n exports._parAffApply = function (aff1) {\n return function (aff2) {\n return Aff.ParApply(aff1, aff2);\n };\n };\n\n exports.makeAff = Aff.Async;\n\n exports.generalBracket = function (acquire) {\n return function (options) {\n return function (k) {\n return Aff.Bracket(acquire, options, k);\n };\n };\n };\n\n exports._makeFiber = function (util, aff) {\n return function () {\n return Aff.Fiber(util, null, aff);\n };\n }; \n\n exports._sequential = Aff.Seq;\n})(PS[\"Effect.Aff\"] = PS[\"Effect.Aff\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.pureE = function (a) {\n return function () {\n return a;\n };\n };\n\n exports.bindE = function (a) {\n return function (f) {\n return function () {\n return f(a())();\n };\n };\n };\n})(PS[\"Effect\"] = PS[\"Effect\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect\"] = $PS[\"Effect\"] || {};\n var exports = $PS[\"Effect\"];\n var $foreign = $PS[\"Effect\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Monad = $PS[\"Control.Monad\"]; \n var monadEffect = {\n Applicative0: function () {\n return applicativeEffect;\n },\n Bind1: function () {\n return bindEffect;\n }\n };\n var bindEffect = {\n bind: $foreign.bindE,\n Apply0: function () {\n return applyEffect;\n }\n };\n var applyEffect = {\n apply: Control_Monad.ap(monadEffect),\n Functor0: function () {\n return functorEffect;\n }\n };\n var applicativeEffect = {\n pure: $foreign.pureE,\n Apply0: function () {\n return applyEffect;\n }\n };\n var functorEffect = {\n map: Control_Applicative.liftA1(applicativeEffect)\n };\n exports[\"functorEffect\"] = functorEffect;\n exports[\"applicativeEffect\"] = applicativeEffect;\n exports[\"bindEffect\"] = bindEffect;\n exports[\"monadEffect\"] = monadEffect;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.new = function (val) {\n return function () {\n return { value: val };\n };\n };\n\n exports.read = function (ref) {\n return function () {\n return ref.value;\n };\n };\n\n exports.modifyImpl = function (f) {\n return function (ref) {\n return function () {\n var t = f(ref.value);\n ref.value = t.state;\n return t.value;\n };\n };\n };\n\n exports.write = function (val) {\n return function (ref) {\n return function () {\n ref.value = val;\n };\n };\n };\n})(PS[\"Effect.Ref\"] = PS[\"Effect.Ref\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Ref\"] = $PS[\"Effect.Ref\"] || {};\n var exports = $PS[\"Effect.Ref\"];\n var $foreign = $PS[\"Effect.Ref\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Effect = $PS[\"Effect\"]; \n var modify$prime = $foreign.modifyImpl;\n var modify = function (f) {\n return modify$prime(function (s) {\n var s$prime = f(s);\n return {\n state: s$prime,\n value: s$prime\n };\n });\n };\n var modify_ = function (f) {\n return function (s) {\n return Data_Functor[\"void\"](Effect.functorEffect)(modify(f)(s));\n };\n };\n exports[\"modify'\"] = modify$prime;\n exports[\"modify_\"] = modify_;\n exports[\"new\"] = $foreign[\"new\"];\n exports[\"read\"] = $foreign.read;\n exports[\"write\"] = $foreign.write;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad.Rec.Class\"] = $PS[\"Control.Monad.Rec.Class\"] || {};\n var exports = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Ref = $PS[\"Effect.Ref\"]; \n var Loop = (function () {\n function Loop(value0) {\n this.value0 = value0;\n };\n Loop.create = function (value0) {\n return new Loop(value0);\n };\n return Loop;\n })();\n var Done = (function () {\n function Done(value0) {\n this.value0 = value0;\n };\n Done.create = function (value0) {\n return new Done(value0);\n };\n return Done;\n })();\n var tailRecM = function (dict) {\n return dict.tailRecM;\n };\n var monadRecEffect = {\n tailRecM: function (f) {\n return function (a) {\n var fromDone = function (v) {\n if (v instanceof Done) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 113, column 30 - line 113, column 44): \" + [ v.constructor.name ]);\n };\n return function __do() {\n var r = Control_Bind.bindFlipped(Effect.bindEffect)(Effect_Ref[\"new\"])(f(a))();\n (function () {\n while (!(function __do() {\n var v = Effect_Ref.read(r)();\n if (v instanceof Loop) {\n var e = f(v.value0)();\n Effect_Ref.write(e)(r)();\n return false;\n };\n if (v instanceof Done) {\n return true;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 104, column 22 - line 109, column 28): \" + [ v.constructor.name ]);\n })()) {\n\n };\n return {};\n })();\n return Data_Functor.map(Effect.functorEffect)(fromDone)(Effect_Ref.read(r))();\n };\n };\n },\n Monad0: function () {\n return Effect.monadEffect;\n }\n };\n exports[\"Loop\"] = Loop;\n exports[\"Done\"] = Done;\n exports[\"tailRecM\"] = tailRecM;\n exports[\"monadRecEffect\"] = monadRecEffect;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Parallel.Class\"] = $PS[\"Control.Parallel.Class\"] || {};\n var exports = $PS[\"Control.Parallel.Class\"];\n var sequential = function (dict) {\n return dict.sequential;\n };\n var parallel = function (dict) {\n return dict.parallel;\n };\n exports[\"parallel\"] = parallel;\n exports[\"sequential\"] = sequential;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Parallel\"] = $PS[\"Control.Parallel\"] || {};\n var exports = $PS[\"Control.Parallel\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Parallel_Class = $PS[\"Control.Parallel.Class\"];\n var Data_Foldable = $PS[\"Data.Foldable\"]; \n var parTraverse_ = function (dictParallel) {\n return function (dictFoldable) {\n return function (f) {\n var $17 = Control_Parallel_Class.sequential(dictParallel);\n var $18 = Data_Foldable.traverse_(dictParallel.Applicative1())(dictFoldable)((function () {\n var $20 = Control_Parallel_Class.parallel(dictParallel);\n return function ($21) {\n return $20(f($21));\n };\n })());\n return function ($19) {\n return $17($18($19));\n };\n };\n };\n };\n var parSequence_ = function (dictParallel) {\n return function (dictFoldable) {\n return parTraverse_(dictParallel)(dictFoldable)(Control_Category.identity(Control_Category.categoryFn));\n };\n };\n exports[\"parSequence_\"] = parSequence_;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Class\"] = $PS[\"Effect.Class\"] || {};\n var exports = $PS[\"Effect.Class\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Effect = $PS[\"Effect\"]; \n var monadEffectEffect = {\n liftEffect: Control_Category.identity(Control_Category.categoryFn),\n Monad0: function () {\n return Effect.monadEffect;\n }\n };\n var liftEffect = function (dict) {\n return dict.liftEffect;\n };\n exports[\"liftEffect\"] = liftEffect;\n exports[\"monadEffectEffect\"] = monadEffectEffect;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafePerformEffect = function (f) {\n return f();\n };\n})(PS[\"Effect.Unsafe\"] = PS[\"Effect.Unsafe\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Unsafe\"] = $PS[\"Effect.Unsafe\"] || {};\n var exports = $PS[\"Effect.Unsafe\"];\n var $foreign = $PS[\"Effect.Unsafe\"];\n exports[\"unsafePerformEffect\"] = $foreign.unsafePerformEffect;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // module Partial.Unsafe\n\n exports._unsafePartial = function (f) {\n return f();\n };\n})(PS[\"Partial.Unsafe\"] = PS[\"Partial.Unsafe\"] || {});\n(function(exports) {\n \"use strict\";\n\n // module Partial\n\n exports._crashWith = function (msg) {\n throw new Error(msg);\n };\n})(PS[\"Partial\"] = PS[\"Partial\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Partial\"] = $PS[\"Partial\"] || {};\n var exports = $PS[\"Partial\"];\n var $foreign = $PS[\"Partial\"]; \n var crashWith = function (dictPartial) {\n return $foreign[\"_crashWith\"];\n };\n exports[\"crashWith\"] = crashWith;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Partial.Unsafe\"] = $PS[\"Partial.Unsafe\"] || {};\n var exports = $PS[\"Partial.Unsafe\"];\n var $foreign = $PS[\"Partial.Unsafe\"];\n var Partial = $PS[\"Partial\"]; \n var unsafePartial = $foreign[\"_unsafePartial\"];\n var unsafeCrashWith = function (msg) {\n return unsafePartial(function (dictPartial) {\n return Partial.crashWith()(msg);\n });\n };\n exports[\"unsafeCrashWith\"] = unsafeCrashWith;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Aff\"] = $PS[\"Effect.Aff\"] || {};\n var exports = $PS[\"Effect.Aff\"];\n var $foreign = $PS[\"Effect.Aff\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Parallel = $PS[\"Control.Parallel\"];\n var Control_Parallel_Class = $PS[\"Control.Parallel.Class\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Unsafe = $PS[\"Effect.Unsafe\"];\n var Partial_Unsafe = $PS[\"Partial.Unsafe\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Canceler = function (x) {\n return x;\n };\n var suspendAff = $foreign[\"_fork\"](false);\n var functorParAff = {\n map: $foreign[\"_parAffMap\"]\n };\n var functorAff = {\n map: $foreign[\"_map\"]\n };\n var forkAff = $foreign[\"_fork\"](true);\n var ffiUtil = (function () {\n var unsafeFromRight = function (v) {\n if (v instanceof Data_Either.Right) {\n return v.value0;\n };\n if (v instanceof Data_Either.Left) {\n return Partial_Unsafe.unsafeCrashWith(\"unsafeFromRight: Left\");\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 404, column 21 - line 406, column 54): \" + [ v.constructor.name ]);\n };\n var unsafeFromLeft = function (v) {\n if (v instanceof Data_Either.Left) {\n return v.value0;\n };\n if (v instanceof Data_Either.Right) {\n return Partial_Unsafe.unsafeCrashWith(\"unsafeFromLeft: Right\");\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 399, column 20 - line 401, column 54): \" + [ v.constructor.name ]);\n };\n var isLeft = function (v) {\n if (v instanceof Data_Either.Left) {\n return true;\n };\n if (v instanceof Data_Either.Right) {\n return false;\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 394, column 12 - line 396, column 20): \" + [ v.constructor.name ]);\n };\n return {\n isLeft: isLeft,\n fromLeft: unsafeFromLeft,\n fromRight: unsafeFromRight,\n left: Data_Either.Left.create,\n right: Data_Either.Right.create\n };\n })();\n var makeFiber = function (aff) {\n return $foreign[\"_makeFiber\"](ffiUtil, aff);\n };\n var launchAff = function (aff) {\n return function __do() {\n var fiber = makeFiber(aff)();\n fiber.run();\n return fiber;\n };\n };\n var bracket = function (acquire) {\n return function (completed) {\n return $foreign.generalBracket(acquire)({\n killed: Data_Function[\"const\"](completed),\n failed: Data_Function[\"const\"](completed),\n completed: Data_Function[\"const\"](completed)\n });\n };\n };\n var applyParAff = {\n apply: $foreign[\"_parAffApply\"],\n Functor0: function () {\n return functorParAff;\n }\n };\n var monadAff = {\n Applicative0: function () {\n return applicativeAff;\n },\n Bind1: function () {\n return bindAff;\n }\n };\n var bindAff = {\n bind: $foreign[\"_bind\"],\n Apply0: function () {\n return applyAff;\n }\n };\n var applyAff = {\n apply: Control_Monad.ap(monadAff),\n Functor0: function () {\n return functorAff;\n }\n };\n var applicativeAff = {\n pure: $foreign[\"_pure\"],\n Apply0: function () {\n return applyAff;\n }\n };\n var $$finally = function (fin) {\n return function (a) {\n return bracket(Control_Applicative.pure(applicativeAff)(Data_Unit.unit))(Data_Function[\"const\"](fin))(Data_Function[\"const\"](a));\n };\n };\n var monadEffectAff = {\n liftEffect: $foreign[\"_liftEffect\"],\n Monad0: function () {\n return monadAff;\n }\n };\n var effectCanceler = (function () {\n var $42 = Effect_Class.liftEffect(monadEffectAff);\n return function ($43) {\n return Canceler(Data_Function[\"const\"]($42($43)));\n };\n })();\n var joinFiber = function (v) {\n return $foreign.makeAff(function (k) {\n return Data_Functor.map(Effect.functorEffect)(effectCanceler)(v.join(k));\n });\n };\n var functorFiber = {\n map: function (f) {\n return function (t) {\n return Effect_Unsafe.unsafePerformEffect(makeFiber(Data_Functor.map(functorAff)(f)(joinFiber(t))));\n };\n }\n };\n var killFiber = function (e) {\n return function (v) {\n return Control_Bind.bind(bindAff)(Effect_Class.liftEffect(monadEffectAff)(v.isSuspended))(function (v1) {\n if (v1) {\n return Effect_Class.liftEffect(monadEffectAff)(Data_Functor[\"void\"](Effect.functorEffect)(v.kill(e, Data_Function[\"const\"](Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit)))));\n };\n return $foreign.makeAff(function (k) {\n return Data_Functor.map(Effect.functorEffect)(effectCanceler)(v.kill(e, k));\n });\n });\n };\n }; \n var monadThrowAff = {\n throwError: $foreign[\"_throwError\"],\n Monad0: function () {\n return monadAff;\n }\n };\n var monadErrorAff = {\n catchError: $foreign[\"_catchError\"],\n MonadThrow0: function () {\n return monadThrowAff;\n }\n };\n var attempt = Control_Monad_Error_Class[\"try\"](monadErrorAff);\n var runAff = function (k) {\n return function (aff) {\n return launchAff(Control_Bind.bindFlipped(bindAff)((function () {\n var $46 = Effect_Class.liftEffect(monadEffectAff);\n return function ($47) {\n return $46(k($47));\n };\n })())(Control_Monad_Error_Class[\"try\"](monadErrorAff)(aff)));\n };\n };\n var runAff_ = function (k) {\n return function (aff) {\n return Data_Functor[\"void\"](Effect.functorEffect)(runAff(k)(aff));\n };\n };\n var parallelAff = {\n parallel: Unsafe_Coerce.unsafeCoerce,\n sequential: $foreign[\"_sequential\"],\n Monad0: function () {\n return monadAff;\n },\n Applicative1: function () {\n return applicativeParAff;\n }\n };\n var applicativeParAff = {\n pure: (function () {\n var $50 = Control_Parallel_Class.parallel(parallelAff);\n var $51 = Control_Applicative.pure(applicativeAff);\n return function ($52) {\n return $50($51($52));\n };\n })(),\n Apply0: function () {\n return applyParAff;\n }\n };\n var semigroupCanceler = {\n append: function (v) {\n return function (v1) {\n return function (err) {\n return Control_Parallel.parSequence_(parallelAff)(Data_Foldable.foldableArray)([ v(err), v1(err) ]);\n };\n };\n }\n };\n var monadRecAff = {\n tailRecM: function (k) {\n var go = function (a) {\n return Control_Bind.bind(bindAff)(k(a))(function (res) {\n if (res instanceof Control_Monad_Rec_Class.Done) {\n return Control_Applicative.pure(applicativeAff)(res.value0);\n };\n if (res instanceof Control_Monad_Rec_Class.Loop) {\n return go(res.value0);\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 102, column 7 - line 104, column 22): \" + [ res.constructor.name ]);\n });\n };\n return go;\n },\n Monad0: function () {\n return monadAff;\n }\n };\n var nonCanceler = Data_Function[\"const\"](Control_Applicative.pure(applicativeAff)(Data_Unit.unit));\n var monoidCanceler = {\n mempty: nonCanceler,\n Semigroup0: function () {\n return semigroupCanceler;\n }\n };\n exports[\"runAff_\"] = runAff_;\n exports[\"forkAff\"] = forkAff;\n exports[\"suspendAff\"] = suspendAff;\n exports[\"attempt\"] = attempt;\n exports[\"finally\"] = $$finally;\n exports[\"killFiber\"] = killFiber;\n exports[\"joinFiber\"] = joinFiber;\n exports[\"nonCanceler\"] = nonCanceler;\n exports[\"effectCanceler\"] = effectCanceler;\n exports[\"functorAff\"] = functorAff;\n exports[\"applicativeAff\"] = applicativeAff;\n exports[\"bindAff\"] = bindAff;\n exports[\"monadAff\"] = monadAff;\n exports[\"monadRecAff\"] = monadRecAff;\n exports[\"monadErrorAff\"] = monadErrorAff;\n exports[\"monadEffectAff\"] = monadEffectAff;\n exports[\"applicativeParAff\"] = applicativeParAff;\n exports[\"parallelAff\"] = parallelAff;\n exports[\"functorFiber\"] = functorFiber;\n exports[\"monoidCanceler\"] = monoidCanceler;\n exports[\"makeAff\"] = $foreign.makeAff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Aff.Compat\"] = $PS[\"Effect.Aff.Compat\"] || {};\n var exports = $PS[\"Effect.Aff.Compat\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var fromEffectFnAff = function (v) {\n return Effect_Aff.makeAff(function (k) {\n return function __do() {\n var v1 = v(function ($4) {\n return k(Data_Either.Left.create($4))();\n }, function ($5) {\n return k(Data_Either.Right.create($5))();\n });\n return function (e) {\n return Effect_Aff.makeAff(function (k2) {\n return function __do() {\n v1(e, function ($6) {\n return k2(Data_Either.Left.create($6))();\n }, function ($7) {\n return k2(Data_Either.Right.create($7))();\n });\n return Effect_Aff.nonCanceler;\n };\n });\n };\n };\n });\n };\n exports[\"fromEffectFnAff\"] = fromEffectFnAff;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.showErrorImpl = function (err) {\n return err.stack || err.toString();\n };\n\n exports.error = function (msg) {\n return new Error(msg);\n };\n\n exports.message = function (e) {\n return e.message;\n };\n\n exports.throwException = function (e) {\n return function () {\n throw e;\n };\n };\n})(PS[\"Effect.Exception\"] = PS[\"Effect.Exception\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Exception\"] = $PS[\"Effect.Exception\"] || {};\n var exports = $PS[\"Effect.Exception\"];\n var $foreign = $PS[\"Effect.Exception\"];\n var $$throw = function ($2) {\n return $foreign.throwException($foreign.error($2));\n }; \n var showError = {\n show: $foreign.showErrorImpl\n };\n exports[\"throw\"] = $$throw;\n exports[\"showError\"] = showError;\n exports[\"error\"] = $foreign.error;\n exports[\"message\"] = $foreign.message;\n exports[\"throwException\"] = $foreign.throwException;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.typeOf = function (value) {\n return typeof value;\n };\n\n exports.tagOf = function (value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n };\n})(PS[\"Foreign\"] = PS[\"Foreign\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Boolean\"] = $PS[\"Data.Boolean\"] || {};\n var exports = $PS[\"Data.Boolean\"];\n var otherwise = true;\n exports[\"otherwise\"] = otherwise;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Foreign\"] = $PS[\"Foreign\"] || {};\n var exports = $PS[\"Foreign\"];\n var $foreign = $PS[\"Foreign\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_List_NonEmpty = $PS[\"Data.List.NonEmpty\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var ForeignError = (function () {\n function ForeignError(value0) {\n this.value0 = value0;\n };\n ForeignError.create = function (value0) {\n return new ForeignError(value0);\n };\n return ForeignError;\n })();\n var TypeMismatch = (function () {\n function TypeMismatch(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n TypeMismatch.create = function (value0) {\n return function (value1) {\n return new TypeMismatch(value0, value1);\n };\n };\n return TypeMismatch;\n })();\n var ErrorAtIndex = (function () {\n function ErrorAtIndex(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ErrorAtIndex.create = function (value0) {\n return function (value1) {\n return new ErrorAtIndex(value0, value1);\n };\n };\n return ErrorAtIndex;\n })();\n var ErrorAtProperty = (function () {\n function ErrorAtProperty(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ErrorAtProperty.create = function (value0) {\n return function (value1) {\n return new ErrorAtProperty(value0, value1);\n };\n };\n return ErrorAtProperty;\n })();\n var unsafeToForeign = Unsafe_Coerce.unsafeCoerce;\n var unsafeFromForeign = Unsafe_Coerce.unsafeCoerce;\n var renderForeignError = function (v) {\n if (v instanceof ForeignError) {\n return v.value0;\n };\n if (v instanceof ErrorAtIndex) {\n return \"Error at array index \" + (Data_Show.show(Data_Show.showInt)(v.value0) + (\": \" + renderForeignError(v.value1)));\n };\n if (v instanceof ErrorAtProperty) {\n return \"Error at property \" + (Data_Show.show(Data_Show.showString)(v.value0) + (\": \" + renderForeignError(v.value1)));\n };\n if (v instanceof TypeMismatch) {\n return \"Type mismatch: expected \" + (v.value0 + (\", found \" + v.value1));\n };\n throw new Error(\"Failed pattern match at Foreign (line 73, column 1 - line 73, column 45): \" + [ v.constructor.name ]);\n };\n var fail = function (dictMonad) {\n var $118 = Control_Monad_Error_Class.throwError(Control_Monad_Except_Trans.monadThrowExceptT(dictMonad));\n return function ($119) {\n return $118(Data_List_NonEmpty.singleton($119));\n };\n };\n var unsafeReadTagged = function (dictMonad) {\n return function (tag) {\n return function (value) {\n if ($foreign.tagOf(value) === tag) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad))(unsafeFromForeign(value));\n };\n if (Data_Boolean.otherwise) {\n return fail(dictMonad)(new TypeMismatch(tag, $foreign.tagOf(value)));\n };\n throw new Error(\"Failed pattern match at Foreign (line 110, column 1 - line 110, column 71): \" + [ tag.constructor.name, value.constructor.name ]);\n };\n };\n };\n var readBoolean = function (dictMonad) {\n return unsafeReadTagged(dictMonad)(\"Boolean\");\n };\n var readString = function (dictMonad) {\n return unsafeReadTagged(dictMonad)(\"String\");\n };\n exports[\"ForeignError\"] = ForeignError;\n exports[\"TypeMismatch\"] = TypeMismatch;\n exports[\"renderForeignError\"] = renderForeignError;\n exports[\"unsafeToForeign\"] = unsafeToForeign;\n exports[\"unsafeReadTagged\"] = unsafeReadTagged;\n exports[\"readString\"] = readString;\n exports[\"readBoolean\"] = readBoolean;\n exports[\"fail\"] = fail;\n exports[\"typeOf\"] = $foreign.typeOf;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Affjax\"] = $PS[\"Affjax\"] || {};\n var exports = $PS[\"Affjax\"];\n var $foreign = $PS[\"Affjax\"];\n var Affjax_RequestBody = $PS[\"Affjax.RequestBody\"];\n var Affjax_RequestHeader = $PS[\"Affjax.RequestHeader\"];\n var Affjax_ResponseFormat = $PS[\"Affjax.ResponseFormat\"];\n var Affjax_ResponseHeader = $PS[\"Affjax.ResponseHeader\"];\n var Control_Alt = $PS[\"Control.Alt\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Control_Monad_Except = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Parser = $PS[\"Data.Argonaut.Parser\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_FormURLEncoded = $PS[\"Data.FormURLEncoded\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_HTTP_Method = $PS[\"Data.HTTP.Method\"];\n var Data_HeytingAlgebra = $PS[\"Data.HeytingAlgebra\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_List_NonEmpty = $PS[\"Data.List.NonEmpty\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_Compat = $PS[\"Effect.Aff.Compat\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Foreign = $PS[\"Foreign\"]; \n var RequestContentError = (function () {\n function RequestContentError(value0) {\n this.value0 = value0;\n };\n RequestContentError.create = function (value0) {\n return new RequestContentError(value0);\n };\n return RequestContentError;\n })();\n var ResponseBodyError = (function () {\n function ResponseBodyError(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ResponseBodyError.create = function (value0) {\n return function (value1) {\n return new ResponseBodyError(value0, value1);\n };\n };\n return ResponseBodyError;\n })();\n var TimeoutError = (function () {\n function TimeoutError() {\n\n };\n TimeoutError.value = new TimeoutError();\n return TimeoutError;\n })();\n var RequestFailedError = (function () {\n function RequestFailedError() {\n\n };\n RequestFailedError.value = new RequestFailedError();\n return RequestFailedError;\n })();\n var XHROtherError = (function () {\n function XHROtherError(value0) {\n this.value0 = value0;\n };\n XHROtherError.create = function (value0) {\n return new XHROtherError(value0);\n };\n return XHROtherError;\n })();\n var request = function (req) {\n var parseJSON = function (v) {\n if (v === \"\") {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Data_Argonaut_Core.jsonEmptyObject);\n };\n return Data_Either.either((function () {\n var $51 = Foreign.fail(Data_Identity.monadIdentity);\n return function ($52) {\n return $51(Foreign.ForeignError.create($52));\n };\n })())(Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity)))(Data_Argonaut_Parser.jsonParser(v));\n };\n var fromResponse = (function () {\n if (req.responseFormat instanceof Affjax_ResponseFormat[\"ArrayBuffer\"]) {\n return Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"ArrayBuffer\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Blob) {\n return Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"Blob\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Document) {\n return function (x) {\n return Control_Alt.alt(Control_Monad_Except_Trans.altExceptT(Data_List_Types.semigroupNonEmptyList)(Data_Identity.monadIdentity))(Control_Alt.alt(Control_Monad_Except_Trans.altExceptT(Data_List_Types.semigroupNonEmptyList)(Data_Identity.monadIdentity))(Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"Document\")(x))(Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"XMLDocument\")(x)))(Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"HTMLDocument\")(x));\n };\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Json) {\n return Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(function ($53) {\n return req.responseFormat.value0(parseJSON($53));\n })(Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"String\"));\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat[\"String\"]) {\n return Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"String\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Ignore) {\n return Data_Function[\"const\"](req.responseFormat.value0(Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Data_Unit.unit)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 257, column 18 - line 265, column 57): \" + [ req.responseFormat.constructor.name ]);\n })();\n var extractContent = function (v) {\n if (v instanceof Affjax_RequestBody.ArrayView) {\n return Data_Either.Right.create(v.value0(Foreign.unsafeToForeign));\n };\n if (v instanceof Affjax_RequestBody.Blob) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.Document) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody[\"String\"]) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.FormData) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.FormURLEncoded) {\n return Data_Either.note(\"Body contains values that cannot be encoded as application/x-www-form-urlencoded\")(Data_Functor.map(Data_Maybe.functorMaybe)(Foreign.unsafeToForeign)(Data_FormURLEncoded.encode(v.value0)));\n };\n if (v instanceof Affjax_RequestBody.Json) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(Data_Argonaut_Core.stringify(v.value0)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 217, column 20 - line 232, column 69): \" + [ v.constructor.name ]);\n };\n var addHeader = function (mh) {\n return function (hs) {\n if (mh instanceof Data_Maybe.Just && !Data_Foldable.any(Data_Foldable.foldableArray)(Data_HeytingAlgebra.heytingAlgebraBoolean)(Data_Function.on(Data_Eq.eq(Data_Eq.eqString))(Affjax_RequestHeader.name)(mh.value0))(hs)) {\n return Data_Array.snoc(hs)(mh.value0);\n };\n return hs;\n };\n };\n var headers = function (reqContent) {\n return addHeader(Data_Functor.map(Data_Maybe.functorMaybe)(Affjax_RequestHeader.ContentType.create)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Affjax_RequestBody.toMediaType)(reqContent)))(addHeader(Data_Functor.map(Data_Maybe.functorMaybe)(Affjax_RequestHeader.Accept.create)(Affjax_ResponseFormat.toMediaType(req.responseFormat)))(req.headers));\n };\n var ajaxRequest = function (v) {\n return {\n method: Data_HTTP_Method.print(req.method),\n url: req.url,\n headers: Data_Functor.map(Data_Functor.functorArray)(function (h) {\n return {\n field: Affjax_RequestHeader.name(h),\n value: Affjax_RequestHeader.value(h)\n };\n })(headers(req.content)),\n content: v,\n responseType: Affjax_ResponseFormat.toResponseType(req.responseFormat),\n username: Data_Nullable.toNullable(req.username),\n password: Data_Nullable.toNullable(req.password),\n withCredentials: req.withCredentials,\n timeout: Data_Maybe.fromMaybe(0.0)(Data_Functor.map(Data_Maybe.functorMaybe)(function (v1) {\n return v1;\n })(req.timeout))\n };\n };\n var send = function (content) {\n return Data_Functor.mapFlipped(Effect_Aff.functorAff)(Control_Monad_Error_Class[\"try\"](Effect_Aff.monadErrorAff)(Effect_Aff_Compat.fromEffectFnAff($foreign[\"_ajax\"](\"AffjaxTimeoutErrorMessageIdent\", \"AffjaxRequestFailedMessageIdent\", Affjax_ResponseHeader.ResponseHeader.create, ajaxRequest(content)))))(function (v) {\n if (v instanceof Data_Either.Right) {\n var v1 = Control_Monad_Except.runExcept(fromResponse(v.value0.body));\n if (v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(new ResponseBodyError(Data_List_NonEmpty.head(v1.value0), v.value0));\n };\n if (v1 instanceof Data_Either.Right) {\n return new Data_Either.Right({\n body: v1.value0,\n headers: v.value0.headers,\n status: v.value0.status,\n statusText: v.value0.statusText\n });\n };\n throw new Error(\"Failed pattern match at Affjax (line 193, column 9 - line 195, column 52): \" + [ v1.constructor.name ]);\n };\n if (v instanceof Data_Either.Left) {\n var message = Effect_Exception.message(v.value0);\n return Data_Either.Left.create((function () {\n var $38 = message === \"AffjaxTimeoutErrorMessageIdent\";\n if ($38) {\n return TimeoutError.value;\n };\n var $39 = message === \"AffjaxRequestFailedMessageIdent\";\n if ($39) {\n return RequestFailedError.value;\n };\n return new XHROtherError(v.value0);\n })());\n };\n throw new Error(\"Failed pattern match at Affjax (line 191, column 137 - line 201, column 33): \" + [ v.constructor.name ]);\n });\n };\n if (req.content instanceof Data_Maybe.Nothing) {\n return send(Data_Nullable.toNullable(Data_Maybe.Nothing.value));\n };\n if (req.content instanceof Data_Maybe.Just) {\n var v = extractContent(req.content.value0);\n if (v instanceof Data_Either.Right) {\n return send(Data_Nullable.toNullable(new Data_Maybe.Just(v.value0)));\n };\n if (v instanceof Data_Either.Left) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(new Data_Either.Left(new RequestContentError(v.value0)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 183, column 7 - line 187, column 48): \" + [ v.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Affjax (line 179, column 3 - line 187, column 48): \" + [ req.content.constructor.name ]);\n };\n var printError = function (v) {\n if (v instanceof RequestContentError) {\n return \"There was a problem with the request content: \" + v.value0;\n };\n if (v instanceof ResponseBodyError) {\n return \"There was a problem with the response body: \" + Foreign.renderForeignError(v.value0);\n };\n if (v instanceof TimeoutError) {\n return \"There was a problem making the request: timeout\";\n };\n if (v instanceof RequestFailedError) {\n return \"There was a problem making the request: request failed\";\n };\n if (v instanceof XHROtherError) {\n return \"There was a problem making the request: \" + Effect_Exception.message(v.value0);\n };\n throw new Error(\"Failed pattern match at Affjax (line 97, column 14 - line 107, column 66): \" + [ v.constructor.name ]);\n };\n var defaultRequest = {\n method: new Data_Either.Left(Data_HTTP_Method.GET.value),\n url: \"/\",\n headers: [ ],\n content: Data_Maybe.Nothing.value,\n username: Data_Maybe.Nothing.value,\n password: Data_Maybe.Nothing.value,\n withCredentials: false,\n responseFormat: Affjax_ResponseFormat.ignore,\n timeout: Data_Maybe.Nothing.value\n };\n exports[\"defaultRequest\"] = defaultRequest;\n exports[\"printError\"] = printError;\n exports[\"request\"] = request;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Decode.Error\"] = $PS[\"Data.Argonaut.Decode.Error\"] || {};\n var exports = $PS[\"Data.Argonaut.Decode.Error\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Show = $PS[\"Data.Show\"]; \n var TypeMismatch = (function () {\n function TypeMismatch(value0) {\n this.value0 = value0;\n };\n TypeMismatch.create = function (value0) {\n return new TypeMismatch(value0);\n };\n return TypeMismatch;\n })();\n var UnexpectedValue = (function () {\n function UnexpectedValue(value0) {\n this.value0 = value0;\n };\n UnexpectedValue.create = function (value0) {\n return new UnexpectedValue(value0);\n };\n return UnexpectedValue;\n })();\n var AtIndex = (function () {\n function AtIndex(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n AtIndex.create = function (value0) {\n return function (value1) {\n return new AtIndex(value0, value1);\n };\n };\n return AtIndex;\n })();\n var AtKey = (function () {\n function AtKey(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n AtKey.create = function (value0) {\n return function (value1) {\n return new AtKey(value0, value1);\n };\n };\n return AtKey;\n })();\n var Named = (function () {\n function Named(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Named.create = function (value0) {\n return function (value1) {\n return new Named(value0, value1);\n };\n };\n return Named;\n })();\n var MissingValue = (function () {\n function MissingValue() {\n\n };\n MissingValue.value = new MissingValue();\n return MissingValue;\n })();\n var printJsonDecodeError = function (err) {\n var go = function (v) {\n if (v instanceof TypeMismatch) {\n return \" Expected value of type '\" + (v.value0 + \"'.\");\n };\n if (v instanceof UnexpectedValue) {\n return \" Unexpected value \" + (Data_Argonaut_Core.stringify(v.value0) + \".\");\n };\n if (v instanceof AtIndex) {\n return \" At array index \" + (Data_Show.show(Data_Show.showInt)(v.value0) + (\":\\x0a\" + go(v.value1)));\n };\n if (v instanceof AtKey) {\n return \" At object key '\" + (v.value0 + (\"':\\x0a\" + go(v.value1)));\n };\n if (v instanceof Named) {\n return \" Under '\" + (v.value0 + (\"':\\x0a\" + go(v.value1)));\n };\n if (v instanceof MissingValue) {\n return \" No value was found.\";\n };\n throw new Error(\"Failed pattern match at Data.Argonaut.Decode.Error (line 37, column 8 - line 43, column 44): \" + [ v.constructor.name ]);\n };\n return \"An error occurred while decoding a JSON value:\\x0a\" + go(err);\n };\n exports[\"TypeMismatch\"] = TypeMismatch;\n exports[\"UnexpectedValue\"] = UnexpectedValue;\n exports[\"AtIndex\"] = AtIndex;\n exports[\"AtKey\"] = AtKey;\n exports[\"Named\"] = Named;\n exports[\"MissingValue\"] = MissingValue;\n exports[\"printJsonDecodeError\"] = printJsonDecodeError;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Bifunctor\"] = $PS[\"Data.Bifunctor\"] || {};\n var exports = $PS[\"Data.Bifunctor\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Either = $PS[\"Data.Either\"]; \n var bimap = function (dict) {\n return dict.bimap;\n };\n var lmap = function (dictBifunctor) {\n return function (f) {\n return bimap(dictBifunctor)(f)(Control_Category.identity(Control_Category.categoryFn));\n };\n };\n var bifunctorEither = {\n bimap: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Either.Left) {\n return new Data_Either.Left(v(v2.value0));\n };\n if (v2 instanceof Data_Either.Right) {\n return new Data_Either.Right(v1(v2.value0));\n };\n throw new Error(\"Failed pattern match at Data.Bifunctor (line 32, column 1 - line 34, column 36): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n }\n };\n exports[\"bimap\"] = bimap;\n exports[\"lmap\"] = lmap;\n exports[\"bifunctorEither\"] = bifunctorEither;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Decode.Decoders\"] = $PS[\"Data.Argonaut.Decode.Decoders\"] || {};\n var exports = $PS[\"Data.Argonaut.Decode.Decoders\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Decode_Error = $PS[\"Data.Argonaut.Decode.Error\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Traversable = $PS[\"Data.Traversable\"];\n var Data_TraversableWithIndex = $PS[\"Data.TraversableWithIndex\"];\n var Foreign_Object = $PS[\"Foreign.Object\"]; \n var getFieldOptional$prime = function (decoder) {\n return function (obj) {\n return function (str) {\n var decode = function (json) {\n var $5 = Data_Argonaut_Core.isNull(json);\n if ($5) {\n return Control_Applicative.pure(Data_Either.applicativeEither)(Data_Maybe.Nothing.value);\n };\n return Data_Functor.map(Data_Either.functorEither)(Data_Maybe.Just.create)(Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)(Data_Argonaut_Decode_Error.AtKey.create(str))(decoder(json)));\n };\n return Data_Maybe.maybe(Control_Applicative.pure(Data_Either.applicativeEither)(Data_Maybe.Nothing.value))(decode)(Foreign_Object.lookup(str)(obj));\n };\n };\n };\n var getField = function (decoder) {\n return function (obj) {\n return function (str) {\n return Data_Maybe.maybe(Data_Either.Left.create(new Data_Argonaut_Decode_Error.AtKey(str, Data_Argonaut_Decode_Error.MissingValue.value)))((function () {\n var $18 = Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)(Data_Argonaut_Decode_Error.AtKey.create(str));\n return function ($19) {\n return $18(decoder($19));\n };\n })())(Foreign_Object.lookup(str)(obj));\n };\n };\n };\n var decodeString = Data_Argonaut_Core.caseJsonString(Data_Either.Left.create(new Data_Argonaut_Decode_Error.TypeMismatch(\"String\")))(Data_Either.Right.create);\n var decodeNumber = Data_Argonaut_Core.caseJsonNumber(Data_Either.Left.create(new Data_Argonaut_Decode_Error.TypeMismatch(\"Number\")))(Data_Either.Right.create);\n var decodeMaybe = function (decoder) {\n return function (json) {\n if (Data_Argonaut_Core.isNull(json)) {\n return Control_Applicative.pure(Data_Either.applicativeEither)(Data_Maybe.Nothing.value);\n };\n if (Data_Boolean.otherwise) {\n return Data_Functor.map(Data_Either.functorEither)(Data_Maybe.Just.create)(decoder(json));\n };\n throw new Error(\"Failed pattern match at Data.Argonaut.Decode.Decoders (line 37, column 1 - line 41, column 38): \" + [ decoder.constructor.name, json.constructor.name ]);\n };\n };\n var decodeJObject = (function () {\n var $20 = Data_Either.note(new Data_Argonaut_Decode_Error.TypeMismatch(\"Object\"));\n return function ($21) {\n return $20(Data_Argonaut_Core.toObject($21));\n };\n })();\n var decodeJArray = (function () {\n var $22 = Data_Either.note(new Data_Argonaut_Decode_Error.TypeMismatch(\"Array\"));\n return function ($23) {\n return $22(Data_Argonaut_Core.toArray($23));\n };\n })();\n var decodeForeignObject = function (decoder) {\n return Control_Bind.composeKleisliFlipped(Data_Either.bindEither)((function () {\n var $56 = Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)(Data_Argonaut_Decode_Error.Named.create(\"ForeignObject\"));\n var $57 = Data_Traversable.traverse(Foreign_Object.traversableObject)(Data_Either.applicativeEither)(decoder);\n return function ($58) {\n return $56($57($58));\n };\n })())(decodeJObject);\n }; \n var decodeArray = function (decoder) {\n return Control_Bind.composeKleisliFlipped(Data_Either.bindEither)((function () {\n var $59 = Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)(Data_Argonaut_Decode_Error.Named.create(\"Array\"));\n var $60 = Data_TraversableWithIndex.traverseWithIndex(Data_TraversableWithIndex.traversableWithIndexArray)(Data_Either.applicativeEither)(function (i) {\n var $62 = Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)(Data_Argonaut_Decode_Error.AtIndex.create(i));\n return function ($63) {\n return $62(decoder($63));\n };\n });\n return function ($61) {\n return $59($60($61));\n };\n })())(decodeJArray);\n };\n exports[\"decodeMaybe\"] = decodeMaybe;\n exports[\"decodeNumber\"] = decodeNumber;\n exports[\"decodeString\"] = decodeString;\n exports[\"decodeForeignObject\"] = decodeForeignObject;\n exports[\"decodeArray\"] = decodeArray;\n exports[\"getField\"] = getField;\n exports[\"getFieldOptional'\"] = getFieldOptional$prime;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Record\"] = $PS[\"Record\"] || {};\n var exports = $PS[\"Record\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Record_Unsafe = $PS[\"Record.Unsafe\"];\n var insert = function (dictIsSymbol) {\n return function (dictLacks) {\n return function (dictCons) {\n return function (l) {\n return function (a) {\n return function (r) {\n return Record_Unsafe.unsafeSet(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(a)(r);\n };\n };\n };\n };\n };\n };\n var get = function (dictIsSymbol) {\n return function (dictCons) {\n return function (l) {\n return function (r) {\n return Record_Unsafe.unsafeGet(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(r);\n };\n };\n };\n };\n exports[\"get\"] = get;\n exports[\"insert\"] = insert;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Decode.Class\"] = $PS[\"Data.Argonaut.Decode.Class\"] || {};\n var exports = $PS[\"Data.Argonaut.Decode.Class\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Decode_Decoders = $PS[\"Data.Argonaut.Decode.Decoders\"];\n var Data_Argonaut_Decode_Error = $PS[\"Data.Argonaut.Decode.Error\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Foreign_Object = $PS[\"Foreign.Object\"];\n var Record = $PS[\"Record\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n var gDecodeJsonNil = {\n gDecodeJson: function (v) {\n return function (v1) {\n return new Data_Either.Right({});\n };\n }\n };\n var gDecodeJson = function (dict) {\n return dict.gDecodeJson;\n };\n var decodeRecord = function (dictGDecodeJson) {\n return function (dictRowToList) {\n return {\n decodeJson: function (json) {\n var v = Data_Argonaut_Core.toObject(json);\n if (v instanceof Data_Maybe.Just) {\n return gDecodeJson(dictGDecodeJson)(v.value0)(Type_Proxy[\"Proxy\"].value);\n };\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Either.Left.create(new Data_Argonaut_Decode_Error.TypeMismatch(\"Object\"));\n };\n throw new Error(\"Failed pattern match at Data.Argonaut.Decode.Class (line 103, column 5 - line 105, column 46): \" + [ v.constructor.name ]);\n }\n };\n };\n };\n var decodeJsonString = {\n decodeJson: Data_Argonaut_Decode_Decoders.decodeString\n };\n var decodeJsonNumber = {\n decodeJson: Data_Argonaut_Decode_Decoders.decodeNumber\n };\n var decodeJsonJson = {\n decodeJson: Data_Either.Right.create\n };\n var decodeJsonField = function (dict) {\n return dict.decodeJsonField;\n };\n var gDecodeJsonCons = function (dictDecodeJsonField) {\n return function (dictGDecodeJson) {\n return function (dictIsSymbol) {\n return function (dictCons) {\n return function (dictLacks) {\n return {\n gDecodeJson: function (object) {\n return function (v) {\n var fieldName = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var fieldValue = Foreign_Object.lookup(fieldName)(object);\n var v1 = decodeJsonField(dictDecodeJsonField)(fieldValue);\n if (v1 instanceof Data_Maybe.Just) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)(Data_Argonaut_Decode_Error.AtKey.create(fieldName))(v1.value0))(function (val) {\n return Control_Bind.bind(Data_Either.bindEither)(gDecodeJson(dictGDecodeJson)(object)(Type_Proxy[\"Proxy\"].value))(function (rest) {\n return Data_Either.Right.create(Record.insert(dictIsSymbol)()()(Type_Proxy[\"Proxy\"].value)(val)(rest));\n });\n });\n };\n if (v1 instanceof Data_Maybe.Nothing) {\n return Data_Either.Left.create(new Data_Argonaut_Decode_Error.AtKey(fieldName, Data_Argonaut_Decode_Error.MissingValue.value));\n };\n throw new Error(\"Failed pattern match at Data.Argonaut.Decode.Class (line 127, column 5 - line 134, column 44): \" + [ v1.constructor.name ]);\n };\n }\n };\n };\n };\n };\n };\n };\n var decodeJson = function (dict) {\n return dict.decodeJson;\n };\n var decodeJsonMaybe = function (dictDecodeJson) {\n return {\n decodeJson: Data_Argonaut_Decode_Decoders.decodeMaybe(decodeJson(dictDecodeJson))\n };\n };\n var decodeForeignObject = function (dictDecodeJson) {\n return {\n decodeJson: Data_Argonaut_Decode_Decoders.decodeForeignObject(decodeJson(dictDecodeJson))\n };\n };\n var decodeFieldMaybe = function (dictDecodeJson) {\n return {\n decodeJsonField: function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Just.create(new Data_Either.Right(Data_Maybe.Nothing.value));\n };\n if (v instanceof Data_Maybe.Just) {\n return Data_Maybe.Just.create(decodeJson(decodeJsonMaybe(dictDecodeJson))(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Argonaut.Decode.Class (line 139, column 1 - line 143, column 49): \" + [ v.constructor.name ]);\n }\n };\n };\n var decodeFieldId = function (dictDecodeJson) {\n return {\n decodeJsonField: function (j) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(decodeJson(dictDecodeJson))(j);\n }\n };\n };\n var decodeArray = function (dictDecodeJson) {\n return {\n decodeJson: Data_Argonaut_Decode_Decoders.decodeArray(decodeJson(dictDecodeJson))\n };\n };\n exports[\"decodeJson\"] = decodeJson;\n exports[\"decodeJsonMaybe\"] = decodeJsonMaybe;\n exports[\"decodeJsonNumber\"] = decodeJsonNumber;\n exports[\"decodeJsonString\"] = decodeJsonString;\n exports[\"decodeJsonJson\"] = decodeJsonJson;\n exports[\"decodeForeignObject\"] = decodeForeignObject;\n exports[\"decodeArray\"] = decodeArray;\n exports[\"decodeRecord\"] = decodeRecord;\n exports[\"gDecodeJsonNil\"] = gDecodeJsonNil;\n exports[\"gDecodeJsonCons\"] = gDecodeJsonCons;\n exports[\"decodeFieldMaybe\"] = decodeFieldMaybe;\n exports[\"decodeFieldId\"] = decodeFieldId;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Decode.Combinators\"] = $PS[\"Data.Argonaut.Decode.Combinators\"] || {};\n var exports = $PS[\"Data.Argonaut.Decode.Combinators\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Argonaut_Decode_Decoders = $PS[\"Data.Argonaut.Decode.Decoders\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var getFieldOptional$prime = function (dictDecodeJson) {\n return Data_Argonaut_Decode_Decoders[\"getFieldOptional'\"](Data_Argonaut_Decode_Class.decodeJson(dictDecodeJson));\n };\n var getField = function (dictDecodeJson) {\n return Data_Argonaut_Decode_Decoders.getField(Data_Argonaut_Decode_Class.decodeJson(dictDecodeJson));\n };\n var defaultField = function (parser) {\n return function ($$default) {\n return Data_Functor.map(Data_Either.functorEither)(Data_Maybe.fromMaybe($$default))(parser);\n };\n };\n exports[\"getField\"] = getField;\n exports[\"getFieldOptional'\"] = getFieldOptional$prime;\n exports[\"defaultField\"] = defaultField;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.DateTimeFormat\"] = $PS[\"Data.DateTimeFormat\"] || {};\n var exports = $PS[\"Data.DateTimeFormat\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var localeToString = Data_Newtype.unwrap();\n exports[\"localeToString\"] = localeToString;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"App.BigDataGeoLoc\"] = $PS[\"App.BigDataGeoLoc\"] || {};\n var exports = $PS[\"App.BigDataGeoLoc\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Argonaut_Decode_Combinators = $PS[\"Data.Argonaut.Decode.Combinators\"];\n var Data_DateTimeFormat = $PS[\"Data.DateTimeFormat\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Show = $PS[\"Data.Show\"];\n var showBigDataJson = {\n show: function (v) {\n var addHyphenOrNot = function (string) {\n if (string === \"\") {\n return \"\";\n };\n return string + \" - \";\n };\n var city$prime = addHyphenOrNot(v.city);\n var continent$prime = addHyphenOrNot(v.continent);\n var countryName$prime = addHyphenOrNot(v.countryName);\n var addDegreeSign = function (num) {\n return Data_Show.show(Data_Show.showNumber)(num) + \"\\xb0\";\n };\n return continent$prime + (countryName$prime + (city$prime + (v.locality + (\" (\" + (addDegreeSign(v.latitude) + (\", \" + (addDegreeSign(v.longitude) + \")\")))))));\n }\n };\n var decodeJsonBigDataJson = {\n decodeJson: function (json) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Class.decodeJson(Data_Argonaut_Decode_Class.decodeForeignObject(Data_Argonaut_Decode_Class.decodeJsonJson))(json))(function (x) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Combinators.getField(Data_Argonaut_Decode_Class.decodeJsonNumber)(x)(\"latitude\"))(function (latitude) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Combinators.getField(Data_Argonaut_Decode_Class.decodeJsonNumber)(x)(\"longitude\"))(function (longitude) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Combinators.defaultField(Data_Argonaut_Decode_Combinators[\"getFieldOptional'\"](Data_Argonaut_Decode_Class.decodeJsonString)(x)(\"continent\"))(\"\"))(function (continent) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Combinators.defaultField(Data_Argonaut_Decode_Combinators[\"getFieldOptional'\"](Data_Argonaut_Decode_Class.decodeJsonString)(x)(\"city\"))(\"\"))(function (city) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Combinators.defaultField(Data_Argonaut_Decode_Combinators[\"getFieldOptional'\"](Data_Argonaut_Decode_Class.decodeJsonString)(x)(\"countryName\"))(\"\"))(function (countryName) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Combinators.defaultField(Data_Argonaut_Decode_Combinators[\"getFieldOptional'\"](Data_Argonaut_Decode_Class.decodeJsonString)(x)(\"locality\"))(\"\"))(function (locality) {\n return Control_Applicative.pure(Data_Either.applicativeEither)({\n latitude: latitude,\n longitude: longitude,\n continent: continent,\n city: city,\n countryName: countryName,\n locality: locality\n });\n });\n });\n });\n });\n });\n });\n });\n }\n };\n var bigDataGeolocURL = function (locale) {\n return function (v) {\n return \"https://api.bigdatacloud.net/data/reverse-geocode-client?latitude=\" + (Data_Show.show(Data_Show.showNumber)(v.latitude) + (\"&longitude=\" + (Data_Show.show(Data_Show.showNumber)(v.longitude) + (\"&localityLanguage=\" + Data_DateTimeFormat.localeToString(locale)))));\n };\n };\n var bigDataGeolocResponse = function (json) {\n var v = Data_Argonaut_Decode_Class.decodeJson(decodeJsonBigDataJson)(json);\n if (v instanceof Data_Either.Left) {\n return \"\";\n };\n if (v instanceof Data_Either.Right) {\n return Data_Show.show(showBigDataJson)(v.value0);\n };\n throw new Error(\"Failed pattern match at App.BigDataGeoLoc (line 45, column 30 - line 47, column 41): \" + [ v.constructor.name ]);\n };\n exports[\"bigDataGeolocResponse\"] = bigDataGeolocResponse;\n exports[\"bigDataGeolocURL\"] = bigDataGeolocURL;\n})(PS);\n(function(exports) {\n \"use strict\";\n /* global Symbol */\n\n var hasArrayFrom = typeof Array.from === \"function\";\n var hasStringIterator =\n typeof Symbol !== \"undefined\" &&\n Symbol != null &&\n typeof Symbol.iterator !== \"undefined\" &&\n typeof String.prototype[Symbol.iterator] === \"function\";\n var hasFromCodePoint = typeof String.prototype.fromCodePoint === \"function\";\n var hasCodePointAt = typeof String.prototype.codePointAt === \"function\";\n\n exports._unsafeCodePointAt0 = function (fallback) {\n return hasCodePointAt\n ? function (str) { return str.codePointAt(0); }\n : fallback;\n };\n\n exports._singleton = function (fallback) {\n return hasFromCodePoint ? String.fromCodePoint : fallback;\n };\n\n exports._take = function (fallback) {\n return function (n) {\n if (hasStringIterator) {\n return function (str) {\n var accum = \"\";\n var iter = str[Symbol.iterator]();\n for (var i = 0; i < n; ++i) {\n var o = iter.next();\n if (o.done) return accum;\n accum += o.value;\n }\n return accum;\n };\n }\n return fallback(n);\n };\n };\n\n exports._toCodePointArray = function (fallback) {\n return function (unsafeCodePointAt0) {\n if (hasArrayFrom) {\n return function (str) {\n return Array.from(str, unsafeCodePointAt0);\n };\n }\n return fallback;\n };\n };\n})(PS[\"Data.String.CodePoints\"] = PS[\"Data.String.CodePoints\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.topInt = 2147483647;\n exports.bottomInt = -2147483648;\n\n exports.topChar = String.fromCharCode(65535);\n exports.bottomChar = String.fromCharCode(0);\n})(PS[\"Data.Bounded\"] = PS[\"Data.Bounded\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Bounded\"] = $PS[\"Data.Bounded\"] || {};\n var exports = $PS[\"Data.Bounded\"];\n var $foreign = $PS[\"Data.Bounded\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var top = function (dict) {\n return dict.top;\n };\n var boundedInt = {\n top: $foreign.topInt,\n bottom: $foreign.bottomInt,\n Ord0: function () {\n return Data_Ord.ordInt;\n }\n };\n var boundedChar = {\n top: $foreign.topChar,\n bottom: $foreign.bottomChar,\n Ord0: function () {\n return Data_Ord.ordChar;\n }\n };\n var bottom = function (dict) {\n return dict.bottom;\n };\n exports[\"bottom\"] = bottom;\n exports[\"top\"] = top;\n exports[\"boundedInt\"] = boundedInt;\n exports[\"boundedChar\"] = boundedChar;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.toCharCode = function (c) {\n return c.charCodeAt(0);\n };\n\n exports.fromCharCode = function (c) {\n return String.fromCharCode(c);\n };\n})(PS[\"Data.Enum\"] = PS[\"Data.Enum\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Enum\"] = $PS[\"Data.Enum\"] || {};\n var exports = $PS[\"Data.Enum\"];\n var $foreign = $PS[\"Data.Enum\"];\n var Data_Bounded = $PS[\"Data.Bounded\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var toEnum = function (dict) {\n return dict.toEnum;\n };\n var fromEnum = function (dict) {\n return dict.fromEnum;\n };\n var toEnumWithDefaults = function (dictBoundedEnum) {\n return function (low) {\n return function (high) {\n return function (x) {\n var v = toEnum(dictBoundedEnum)(x);\n if (v instanceof Data_Maybe.Just) {\n return v.value0;\n };\n if (v instanceof Data_Maybe.Nothing) {\n var $55 = x < fromEnum(dictBoundedEnum)(Data_Bounded.bottom(dictBoundedEnum.Bounded0()));\n if ($55) {\n return low;\n };\n return high;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 158, column 33 - line 160, column 62): \" + [ v.constructor.name ]);\n };\n };\n };\n };\n var defaultSucc = function (toEnum$prime) {\n return function (fromEnum$prime) {\n return function (a) {\n return toEnum$prime(fromEnum$prime(a) + 1 | 0);\n };\n };\n };\n var defaultPred = function (toEnum$prime) {\n return function (fromEnum$prime) {\n return function (a) {\n return toEnum$prime(fromEnum$prime(a) - 1 | 0);\n };\n };\n };\n var charToEnum = function (v) {\n if (v >= Data_Bounded.bottom(Data_Bounded.boundedInt) && v <= Data_Bounded.top(Data_Bounded.boundedInt)) {\n return new Data_Maybe.Just($foreign.fromCharCode(v));\n };\n return Data_Maybe.Nothing.value;\n };\n var enumChar = {\n succ: defaultSucc(charToEnum)($foreign.toCharCode),\n pred: defaultPred(charToEnum)($foreign.toCharCode),\n Ord0: function () {\n return Data_Ord.ordChar;\n }\n };\n var boundedEnumChar = {\n cardinality: $foreign.toCharCode(Data_Bounded.top(Data_Bounded.boundedChar)) - $foreign.toCharCode(Data_Bounded.bottom(Data_Bounded.boundedChar)) | 0,\n toEnum: charToEnum,\n fromEnum: $foreign.toCharCode,\n Bounded0: function () {\n return Data_Bounded.boundedChar;\n },\n Enum1: function () {\n return enumChar;\n }\n };\n exports[\"fromEnum\"] = fromEnum;\n exports[\"toEnumWithDefaults\"] = toEnumWithDefaults;\n exports[\"boundedEnumChar\"] = boundedEnumChar;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.intDegree = function (x) {\n return Math.min(Math.abs(x), 2147483647);\n };\n\n // See the Euclidean definition in\n // https://en.m.wikipedia.org/wiki/Modulo_operation.\n exports.intDiv = function (x) {\n return function (y) {\n if (y === 0) return 0;\n return y > 0 ? Math.floor(x / y) : -Math.floor(x / -y);\n };\n };\n\n exports.intMod = function (x) {\n return function (y) {\n if (y === 0) return 0;\n var yy = Math.abs(y);\n return ((x % yy) + yy) % yy;\n };\n };\n})(PS[\"Data.EuclideanRing\"] = PS[\"Data.EuclideanRing\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.intSub = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x - y | 0;\n };\n };\n})(PS[\"Data.Ring\"] = PS[\"Data.Ring\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.intAdd = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x + y | 0;\n };\n };\n\n exports.intMul = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x * y | 0;\n };\n };\n})(PS[\"Data.Semiring\"] = PS[\"Data.Semiring\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Semiring\"] = $PS[\"Data.Semiring\"] || {};\n var exports = $PS[\"Data.Semiring\"];\n var $foreign = $PS[\"Data.Semiring\"];\n var semiringInt = {\n add: $foreign.intAdd,\n zero: 0,\n mul: $foreign.intMul,\n one: 1\n };\n exports[\"semiringInt\"] = semiringInt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Ring\"] = $PS[\"Data.Ring\"] || {};\n var exports = $PS[\"Data.Ring\"];\n var $foreign = $PS[\"Data.Ring\"];\n var Data_Semiring = $PS[\"Data.Semiring\"];\n var ringInt = {\n sub: $foreign.intSub,\n Semiring0: function () {\n return Data_Semiring.semiringInt;\n }\n };\n exports[\"ringInt\"] = ringInt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.CommutativeRing\"] = $PS[\"Data.CommutativeRing\"] || {};\n var exports = $PS[\"Data.CommutativeRing\"];\n var Data_Ring = $PS[\"Data.Ring\"];\n var commutativeRingInt = {\n Ring0: function () {\n return Data_Ring.ringInt;\n }\n };\n exports[\"commutativeRingInt\"] = commutativeRingInt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.EuclideanRing\"] = $PS[\"Data.EuclideanRing\"] || {};\n var exports = $PS[\"Data.EuclideanRing\"];\n var $foreign = $PS[\"Data.EuclideanRing\"];\n var Data_CommutativeRing = $PS[\"Data.CommutativeRing\"]; \n var mod = function (dict) {\n return dict.mod;\n };\n var euclideanRingInt = {\n degree: $foreign.intDegree,\n div: $foreign.intDiv,\n mod: $foreign.intMod,\n CommutativeRing0: function () {\n return Data_CommutativeRing.commutativeRingInt;\n }\n };\n var div = function (dict) {\n return dict.div;\n };\n exports[\"div\"] = div;\n exports[\"mod\"] = mod;\n exports[\"euclideanRingInt\"] = euclideanRingInt;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.singleton = function (c) {\n return c;\n };\n\n exports.length = function (s) {\n return s.length;\n };\n\n exports.drop = function (n) {\n return function (s) {\n return s.substring(n);\n };\n };\n})(PS[\"Data.String.CodeUnits\"] = PS[\"Data.String.CodeUnits\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.String.CodeUnits\"] = $PS[\"Data.String.CodeUnits\"] || {};\n var exports = $PS[\"Data.String.CodeUnits\"];\n var $foreign = $PS[\"Data.String.CodeUnits\"];\n exports[\"singleton\"] = $foreign.singleton;\n exports[\"length\"] = $foreign.length;\n exports[\"drop\"] = $foreign.drop;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.charAt = function (i) {\n return function (s) {\n if (i >= 0 && i < s.length) return s.charAt(i);\n throw new Error(\"Data.String.Unsafe.charAt: Invalid index.\");\n };\n };\n})(PS[\"Data.String.Unsafe\"] = PS[\"Data.String.Unsafe\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.String.Unsafe\"] = $PS[\"Data.String.Unsafe\"] || {};\n var exports = $PS[\"Data.String.Unsafe\"];\n var $foreign = $PS[\"Data.String.Unsafe\"];\n exports[\"charAt\"] = $foreign.charAt;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unfoldrArrayImpl = function (isNothing) {\n return function (fromJust) {\n return function (fst) {\n return function (snd) {\n return function (f) {\n return function (b) {\n var result = [];\n var value = b;\n while (true) { // eslint-disable-line no-constant-condition\n var maybe = f(value);\n if (isNothing(maybe)) return result;\n var tuple = fromJust(maybe);\n result.push(fst(tuple));\n value = snd(tuple);\n }\n };\n };\n };\n };\n };\n };\n})(PS[\"Data.Unfoldable\"] = PS[\"Data.Unfoldable\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.unfoldr1ArrayImpl = function (isNothing) {\n return function (fromJust) {\n return function (fst) {\n return function (snd) {\n return function (f) {\n return function (b) {\n var result = [];\n var value = b;\n while (true) { // eslint-disable-line no-constant-condition\n var tuple = f(value);\n result.push(fst(tuple));\n var maybe = snd(tuple);\n if (isNothing(maybe)) return result;\n value = fromJust(maybe);\n }\n };\n };\n };\n };\n };\n };\n})(PS[\"Data.Unfoldable1\"] = PS[\"Data.Unfoldable1\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Unfoldable1\"] = $PS[\"Data.Unfoldable1\"] || {};\n var exports = $PS[\"Data.Unfoldable1\"];\n var $foreign = $PS[\"Data.Unfoldable1\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var unfoldable1Array = {\n unfoldr1: $foreign.unfoldr1ArrayImpl(Data_Maybe.isNothing)(Data_Maybe.fromJust())(Data_Tuple.fst)(Data_Tuple.snd)\n };\n exports[\"unfoldable1Array\"] = unfoldable1Array;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Unfoldable\"] = $PS[\"Data.Unfoldable\"] || {};\n var exports = $PS[\"Data.Unfoldable\"];\n var $foreign = $PS[\"Data.Unfoldable\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unfoldable1 = $PS[\"Data.Unfoldable1\"]; \n var unfoldr = function (dict) {\n return dict.unfoldr;\n };\n var unfoldableArray = {\n unfoldr: $foreign.unfoldrArrayImpl(Data_Maybe.isNothing)(Data_Maybe.fromJust())(Data_Tuple.fst)(Data_Tuple.snd),\n Unfoldable10: function () {\n return Data_Unfoldable1.unfoldable1Array;\n }\n };\n exports[\"unfoldr\"] = unfoldr;\n exports[\"unfoldableArray\"] = unfoldableArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.String.CodePoints\"] = $PS[\"Data.String.CodePoints\"] || {};\n var exports = $PS[\"Data.String.CodePoints\"];\n var $foreign = $PS[\"Data.String.CodePoints\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Bounded = $PS[\"Data.Bounded\"];\n var Data_Enum = $PS[\"Data.Enum\"];\n var Data_EuclideanRing = $PS[\"Data.EuclideanRing\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_String_CodeUnits = $PS[\"Data.String.CodeUnits\"];\n var Data_String_Unsafe = $PS[\"Data.String.Unsafe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unfoldable = $PS[\"Data.Unfoldable\"];\n var unsurrogate = function (lead) {\n return function (trail) {\n return (((lead - 55296 | 0) * 1024 | 0) + (trail - 56320 | 0) | 0) + 65536 | 0;\n };\n };\n var isTrail = function (cu) {\n return 56320 <= cu && cu <= 57343;\n };\n var isLead = function (cu) {\n return 55296 <= cu && cu <= 56319;\n };\n var uncons = function (s) {\n var v = Data_String_CodeUnits.length(s);\n if (v === 0) {\n return Data_Maybe.Nothing.value;\n };\n if (v === 1) {\n return new Data_Maybe.Just({\n head: Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s)),\n tail: \"\"\n });\n };\n var cu1 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(1)(s));\n var cu0 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s));\n var $21 = isLead(cu0) && isTrail(cu1);\n if ($21) {\n return new Data_Maybe.Just({\n head: unsurrogate(cu0)(cu1),\n tail: Data_String_CodeUnits.drop(2)(s)\n });\n };\n return new Data_Maybe.Just({\n head: cu0,\n tail: Data_String_CodeUnits.drop(1)(s)\n });\n };\n var unconsButWithTuple = function (s) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (v) {\n return new Data_Tuple.Tuple(v.head, v.tail);\n })(uncons(s));\n };\n var toCodePointArrayFallback = function (s) {\n return Data_Unfoldable.unfoldr(Data_Unfoldable.unfoldableArray)(unconsButWithTuple)(s);\n };\n var unsafeCodePointAt0Fallback = function (s) {\n var cu0 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s));\n var $25 = isLead(cu0) && Data_String_CodeUnits.length(s) > 1;\n if ($25) {\n var cu1 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(1)(s));\n var $26 = isTrail(cu1);\n if ($26) {\n return unsurrogate(cu0)(cu1);\n };\n return cu0;\n };\n return cu0;\n };\n var unsafeCodePointAt0 = $foreign[\"_unsafeCodePointAt0\"](unsafeCodePointAt0Fallback);\n var toCodePointArray = $foreign[\"_toCodePointArray\"](toCodePointArrayFallback)(unsafeCodePointAt0);\n var length = function ($52) {\n return Data_Array.length(toCodePointArray($52));\n };\n var fromCharCode = (function () {\n var $53 = Data_Enum.toEnumWithDefaults(Data_Enum.boundedEnumChar)(Data_Bounded.bottom(Data_Bounded.boundedChar))(Data_Bounded.top(Data_Bounded.boundedChar));\n return function ($54) {\n return Data_String_CodeUnits.singleton($53($54));\n };\n })();\n var singletonFallback = function (v) {\n if (v <= 65535) {\n return fromCharCode(v);\n };\n var lead = Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt)(v - 65536 | 0)(1024) + 55296 | 0;\n var trail = Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt)(v - 65536 | 0)(1024) + 56320 | 0;\n return fromCharCode(lead) + fromCharCode(trail);\n }; \n var singleton = $foreign[\"_singleton\"](singletonFallback);\n var takeFallback = function (n) {\n return function (v) {\n if (n < 1) {\n return \"\";\n };\n var v1 = uncons(v);\n if (v1 instanceof Data_Maybe.Just) {\n return singleton(v1.value0.head) + takeFallback(n - 1 | 0)(v1.value0.tail);\n };\n return v;\n };\n };\n var take = $foreign[\"_take\"](takeFallback);\n var drop = function (n) {\n return function (s) {\n return Data_String_CodeUnits.drop(Data_String_CodeUnits.length(take(n)(s)))(s);\n };\n };\n exports[\"take\"] = take;\n})(PS);\n(function($PS) {\n \n // SPDX-License-Identifier: GPL-3.0-or-later\n // Copyright (C) 2022 Roland Csaszar\n //\n // Project: notoy-pwa\n // File: Constants.purs\n // Date: 06.Jan.2022\n //\n // =============================================================================\n // | Module App.Constants, various constants used in the app.\n \"use strict\";\n $PS[\"App.Constants\"] = $PS[\"App.Constants\"] || {};\n var exports = $PS[\"App.Constants\"];\n var Data_String_CodePoints = $PS[\"Data.String.CodePoints\"];\n var Data_String_Common = $PS[\"Data.String.Common\"]; \n\n /**\n * ------------------------------------------------------------------------------\n * | Return the Slovak translation.\n */ \n var translateToSK = function (trans) {\n return trans.sk;\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the Esperanto translation.\n */ \n var translateToEo = function (trans) {\n return trans.eo;\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the English translation.\n */ \n var translateToEn = function (trans) {\n return trans.en;\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the German translation.\n */ \n var translateToDe = function (trans) {\n return trans.de;\n };\n var optionsTextYAML = {\n en: \"Add YAML front matter (metadata for e.g. Pandoc)?\",\n de: \"YAML Front Matter (YAML Metadata f\\xfcr Pandoc) hinzuf\\xfcgen?\",\n eo: \"\\u0108u aldoni 'YAML Front Matter' (YAML metadatumojn por Pandoc) al la noto?\",\n sk: \"Prida\\u0165 YAML Front Matter (YAML meta data pre Pandoc)?\"\n };\n var optionsTextTimestamp = {\n en: \"Add current date to note?\",\n de: \"Aktuelles Datum zur Notiz hinzuf\\xfcgen?\",\n eo: \"\\u0108u aldoni hodia\\u016dan daton al la noto?\",\n sk: \"Potrebujete prida\\u0165 aktu\\xe1lny d\\xe1tum?\"\n };\n var optionsTextText = {\n en: \"Plain Text\",\n de: \"Nur Text\",\n sk: \"Text\",\n eo: \"Text\"\n };\n var optionsTextPosLookup = {\n en: \"Look the position up on BigData?\",\n de: \"Den Ortsnamen auf BigData abfragen?\",\n sk: \"Look the position up on BigData?\",\n eo: \"Look the position up on BigData?\"\n };\n var optionsTextOrgMode = {\n en: \"Org-Mode (Emacs)\",\n de: \"Org-Mode (Emacs)\",\n sk: \"Org-Mode (Emacs)\",\n eo: \"Org-Mode (Emacs)\"\n };\n var optionsTextMarkdown = {\n en: \"Markdown (Obsidian, Joplin, Zettlr)\",\n de: \"Markdown (Obsidian, Joplin, Zettlr)\",\n sk: \"Markdown (Obsidian, Joplin, Zettlr)\",\n eo: \"Markdown (Obsidian, Joplin, Zettlr)\"\n };\n var optionsTextFormat = {\n en: \"Note file format\",\n de: \"Format der erstellten Notiz:\",\n eo: \"Formato de la noto:\",\n sk: \"Zvolen\\xfd form\\xe1t pozn\\xe1mok:\"\n };\n var noteTextUrl = {\n en: \"Link:\",\n de: \"Link:\",\n eo: \"Ligilo:\",\n sk: \"Link:\"\n };\n var noteTextTitle = {\n en: \"Title:\",\n de: \"\\xdcberschrift:\",\n eo: \"Titolo:\",\n sk: \"N\\xe1zov:\"\n };\n var noteTextShortDescription = {\n en: \"Short description:\",\n de: \"Kurze Beschreibung:\",\n eo: \"Mallonga priskribo:\",\n sk: \"Kr\\xe1tky popis:\"\n };\n var noteTextShare = {\n en: \"Share\",\n de: \"Teilen\",\n eo: \"Diskonigi\",\n sk: \"Zdie\\u013ea\\u0165\"\n };\n var noteTextSave = {\n en: \"Save\",\n de: \"Speichern\",\n eo: \"Konservi\",\n sk: \"Ulo\\u017ei\\u0165\"\n };\n var noteTextPosition = {\n en: \"Location:\",\n de: \"Ort:\",\n eo: \"Loko:\",\n sk: \"Poz\\xedcia:\"\n };\n var noteTextLongDescription = {\n en: \"Detailed description:\",\n de: \"Ausf\\xfchrliche Beschreibung:\",\n eo: \"Detala priskribo:\",\n sk: \"Podrobn\\xfd popis:\"\n };\n var noteTextKeywords = {\n en: \"Keywords (comma separated):\",\n de: \"Schlagworte (getrennt mit Beistrichen):\",\n eo: \"Etikedoj (separitaj per komoj):\",\n sk: \"K\\u013e\\xfa\\u010dov\\xe9 slov\\xe1 (oddelen\\xe9 \\u010diarkami):\"\n };\n var noteTextGetPosition = {\n en: \"Get position\",\n de: \"Position abfragen\",\n eo: \"Demandi lokon\",\n sk: \"Get position\"\n };\n var localeToTranslation = function (v) {\n var v1 = Data_String_Common.toLower(Data_String_CodePoints.take(2)(v));\n if (v1 === \"en\") {\n return translateToEn;\n };\n if (v1 === \"de\") {\n return translateToDe;\n };\n if (v1 === \"sk\") {\n return translateToSK;\n };\n if (v1 === \"eo\") {\n return translateToEo;\n };\n return translateToEn;\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | HTML attribute `href`.\n */ \n var hrefAttr = \"href\";\n\n /**\n * ------------------------------------------------------------------------------\n * | The id of the hidden `a` HTML element used to download the note.\n * |\n * | \"hiddenURL\"\n */ \n var hiddenURLId = \"hiddenURL\";\n\n /**\n * ------------------------------------------------------------------------------\n * | HTML attribute `download`.\n */ \n var downloadAttr = \"download\";\n\n /**\n * ------------------------------------------------------------------------------\n * | The id of the HTML div to render the app to.\n * |\n * | \"app\"\n */ \n var appElementId = \"app\";\n exports[\"appElementId\"] = appElementId;\n exports[\"downloadAttr\"] = downloadAttr;\n exports[\"hiddenURLId\"] = hiddenURLId;\n exports[\"hrefAttr\"] = hrefAttr;\n exports[\"localeToTranslation\"] = localeToTranslation;\n exports[\"noteTextGetPosition\"] = noteTextGetPosition;\n exports[\"noteTextKeywords\"] = noteTextKeywords;\n exports[\"noteTextLongDescription\"] = noteTextLongDescription;\n exports[\"noteTextPosition\"] = noteTextPosition;\n exports[\"noteTextSave\"] = noteTextSave;\n exports[\"noteTextShare\"] = noteTextShare;\n exports[\"noteTextShortDescription\"] = noteTextShortDescription;\n exports[\"noteTextTitle\"] = noteTextTitle;\n exports[\"noteTextUrl\"] = noteTextUrl;\n exports[\"optionsTextFormat\"] = optionsTextFormat;\n exports[\"optionsTextMarkdown\"] = optionsTextMarkdown;\n exports[\"optionsTextOrgMode\"] = optionsTextOrgMode;\n exports[\"optionsTextPosLookup\"] = optionsTextPosLookup;\n exports[\"optionsTextText\"] = optionsTextText;\n exports[\"optionsTextTimestamp\"] = optionsTextTimestamp;\n exports[\"optionsTextYAML\"] = optionsTextYAML;\n})(PS);\n(function(exports) {\n /* globals exports */\n \"use strict\"; \n\n exports.infinity = Infinity;\n})(PS[\"Data.Number\"] = PS[\"Data.Number\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Number\"] = $PS[\"Data.Number\"] || {};\n var exports = $PS[\"Data.Number\"];\n var $foreign = $PS[\"Data.Number\"];\n exports[\"infinity\"] = $foreign.infinity;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"App.GeoLocOptions\"] = $PS[\"App.GeoLocOptions\"] || {};\n var exports = $PS[\"App.GeoLocOptions\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Number = $PS[\"Data.Number\"];\n var setTimeout = function (v) {\n return function (v1) {\n if (v < 0.0) {\n return Data_Maybe.Nothing.value;\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Just.create(Data_Newtype.wrap()({\n timeout: v,\n enableHighAccuracy: v1.enableHighAccuracy,\n maximumAge: v1.maximumAge\n }));\n };\n throw new Error(\"Failed pattern match at App.GeoLocOptions (line 119, column 1 - line 119, column 67): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }; \n var defaultGeoLocOptions = {\n enableHighAccuracy: false,\n timeout: Data_Number.infinity,\n maximumAge: 0.0\n };\n exports[\"defaultGeoLocOptions\"] = defaultGeoLocOptions;\n exports[\"setTimeout\"] = setTimeout;\n})(PS);\n(function(exports) {\n // SPDX-License-Identifier: GPL-3.0-or-later\n // Copyright (C) 2022 Roland Csaszar\n //\n // Project: notoy-pwa\n // File: GeoLocation.js\n // Date: 26.Jan.2022\n //\n // ==============================================================================\n /* eslint-disable no-undef */\n /* eslint-disable no-console */\n\n // eslint-disable-next-line strict\n \"use strict\"\n\n exports.supportsGeoLocationJS = supportsGeoLocationJS\n exports.currPositionAffJs = currPositionAffJs\n\n /**\n * Return `true`, if detecting the current position (GPS on mobile, network\n * routing, ...) is supported, `false` else.\n *\n * @returns `true`, if detecting the current position (GPS on mobile, network\n * routing, ...) is supported, `false` else.\n */ \n function supportsGeoLocationJS() {\n if (\"geolocation\" in navigator) {\n return true\n } else {\n return false\n }\n }\n\n /**\n * Return the result of waiting for the current geolocation wrapped in an\n * `Effect` (an additional function).\n *\n * Wrapped in a function to be able to call it as an `Effect` from PureScript.\n *\n * @param {GeoLocOptionsJS} options\n * @returns The awaited promise to get the current geolocation.\n */ \n function currPositionAffJs(options) {\n return function () {\n return promise(options)\n }\n }\n\n /**\n * Return the result of waiting for the current geolocation.\n *\n * @param {GeoLocOptionsJS} options\n * @returns The awaited promise to get the current geolocation.\n */ \n async function promise(options) {\n const pos = await new Promise(function (successCB, errorCB) {\n navigator.geolocation.getCurrentPosition(\n function (position) {\n successCB({\n latitude: position.coords.latitude,\n longitude: position.coords.longitude,\n altitude: position.coords.altitude,\n accuracy: position.coords.accuracy,\n altitudeAccuracy: position.coords.altitudeAccuracy,\n heading: position.coords.heading,\n speed: position.coords.speed,\n timestamp: position.timestamp,\n })\n },\n function (posErr) {\n errorCB(new Error(posErr.message))\n },\n options\n )\n })\n return pos\n }\n})(PS[\"App.Geolocation\"] = PS[\"App.Geolocation\"] || {});\n(function(exports) {\n \n\n exports.thenImpl = function(promise) {\n return function(errCB) {\n return function(succCB) {\n return function() {\n promise.then(succCB, errCB);\n };\n };\n };\n };\n})(PS[\"Control.Promise\"] = PS[\"Control.Promise\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Promise\"] = $PS[\"Control.Promise\"] || {};\n var exports = $PS[\"Control.Promise\"];\n var $foreign = $PS[\"Control.Promise\"];\n var Control_Alt = $PS[\"Control.Alt\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Monad_Except = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Foreign = $PS[\"Foreign\"]; \n var toAff$prime = function (customCoerce) {\n return function (p) {\n return Effect_Aff.makeAff(function (cb) {\n return Data_Functor.voidRight(Effect.functorEffect)(Data_Monoid.mempty(Effect_Aff.monoidCanceler))($foreign.thenImpl(p)(function ($1) {\n return cb(Data_Either.Left.create(customCoerce($1)))();\n })(function ($2) {\n return cb(Data_Either.Right.create($2))();\n }));\n });\n };\n };\n var coerce = function (fn) {\n return Data_Either.either(function (v) {\n return Effect_Exception.error(\"Promise failed, couldn't extract JS Error or String\");\n })(Control_Category.identity(Control_Category.categoryFn))(Control_Monad_Except.runExcept(Control_Alt.alt(Control_Monad_Except_Trans.altExceptT(Data_List_Types.semigroupNonEmptyList)(Data_Identity.monadIdentity))(Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"Error\")(fn))(Data_Functor.map(Control_Monad_Except_Trans.functorExceptT(Data_Identity.functorIdentity))(Effect_Exception.error)(Foreign.readString(Data_Identity.monadIdentity)(fn)))));\n };\n var toAff = toAff$prime(coerce);\n var toAffE = function (f) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(f))(toAff);\n };\n exports[\"toAffE\"] = toAffE;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Untagged.TypeCheck\"] = $PS[\"Untagged.TypeCheck\"] || {};\n var exports = $PS[\"Untagged.TypeCheck\"];\n var Foreign = $PS[\"Foreign\"];\n var hasRuntimeType = function (dict) {\n return dict.hasRuntimeType;\n };\n var hasJsType = function (name) {\n return function (x) {\n return Foreign.typeOf(x) === name;\n };\n };\n var hasRuntimeTypeNumber = {\n hasRuntimeType: function (v) {\n return hasJsType(\"number\");\n }\n };\n exports[\"hasRuntimeType\"] = hasRuntimeType;\n exports[\"hasRuntimeTypeNumber\"] = hasRuntimeTypeNumber;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Untagged.Union\"] = $PS[\"Untagged.Union\"] || {};\n var exports = $PS[\"Untagged.Union\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Foreign = $PS[\"Foreign\"];\n var Type_Proxy = $PS[\"Type.Proxy\"];\n var Untagged_TypeCheck = $PS[\"Untagged.TypeCheck\"];\n var fromOneOf = function (dictInOneOf) {\n return function (dictHasRuntimeType) {\n return function (f) {\n var $46 = Untagged_TypeCheck.hasRuntimeType(dictHasRuntimeType)(Type_Proxy[\"Proxy\"].value)(Foreign.unsafeToForeign(f));\n if ($46) {\n return Data_Maybe.Just.create(f);\n };\n return Data_Maybe.Nothing.value;\n };\n };\n };\n exports[\"fromOneOf\"] = fromOneOf;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"App.Geolocation\"] = $PS[\"App.Geolocation\"] || {};\n var exports = $PS[\"App.Geolocation\"];\n var $foreign = $PS[\"App.Geolocation\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Promise = $PS[\"Control.Promise\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Untagged_TypeCheck = $PS[\"Untagged.TypeCheck\"];\n var Untagged_Union = $PS[\"Untagged.Union\"];\n var supportsGeoLocation = $foreign.supportsGeoLocationJS(Data_Unit.unit);\n var showLatitudeLongitude = function (v) {\n var addDegreeSign = function (num) {\n return Data_Show.show(Data_Show.showNumber)(num) + \"\\xb0\";\n };\n return \"(\" + (addDegreeSign(v.latitude) + (\", \" + (addDegreeSign(v.longitude) + \")\")));\n };\n var fromPosJS = function (pos) {\n return {\n latitude: pos.latitude,\n longitude: pos.longitude,\n altitude: Untagged_Union.fromOneOf()(Untagged_TypeCheck.hasRuntimeTypeNumber)(pos.altitude),\n accuracy: pos.accuracy,\n altitudeAccuracy: Untagged_Union.fromOneOf()(Untagged_TypeCheck.hasRuntimeTypeNumber)(pos.altitudeAccuracy),\n heading: Untagged_Union.fromOneOf()(Untagged_TypeCheck.hasRuntimeTypeNumber)(pos.heading),\n speed: Untagged_Union.fromOneOf()(Untagged_TypeCheck.hasRuntimeTypeNumber)(pos.speed),\n timestamp: pos.timestamp\n };\n };\n var getCurrentPosition = function (options) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Aff.attempt(Control_Promise.toAffE($foreign.currPositionAffJs(Data_Newtype.unwrap()(options)))))(function (res) {\n if (res instanceof Data_Either.Left) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(new Data_Either.Left(res.value0));\n };\n if (res instanceof Data_Either.Right) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Either.Right.create(fromPosJS(res.value0)));\n };\n throw new Error(\"Failed pattern match at App.Geolocation (line 203, column 3 - line 205, column 50): \" + [ res.constructor.name ]);\n });\n };\n exports[\"getCurrentPosition\"] = getCurrentPosition;\n exports[\"showLatitudeLongitude\"] = showLatitudeLongitude;\n exports[\"supportsGeoLocation\"] = supportsGeoLocation;\n})(PS);\n(function(exports) {\n // SPDX-License-Identifier: GPL-3.0-or-later\n // Copyright (C) 2022 Roland Csaszar\n //\n // Project: notoy-pwa\n // File: ShareTarget.js\n // Date: 16.Jan.2022\n //\n // ==============================================================================\n /* eslint-disable no-undef */\n /* eslint-disable no-console */\n\n // eslint-disable-next-line strict\n \"use strict\"\n\n exports.canShareJS = canShareJS\n exports.shareNoteJS = shareNoteJS\n\n /**\n * Return `true` if the current platform supports sharing, `false` else.\n *\n * @returns `true` if the platform supports sharing to other apps, `false`\n * else.\n */ \n function canShareJS() {\n return navigator.share\n }\n\n /**\n * Share the given note as a record `{ title, text, url }` to other apps.\n *\n * Promise has to be wrapped in a function to work with `Control.Promise`.\n *\n * @param {ShareTargetRecord} note the record `{ title, text, url }` of the note to share.\n */ \n function shareNoteJS({ title, text, url }) {\n return function () {\n return navigator.\n share({ title, text, url })\n .then(\n function () {\n console.log(\n `Successfully shared note '${title}, ${url}, ${text}'`\n )\n }\n // eslint-disable-next-line function-paren-newline\n )\n .catch(function (error) {\n console.log(`Error '${error}' sharing note`)\n })\n }\n }\n})(PS[\"App.ShareTarget\"] = PS[\"App.ShareTarget\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad.State.Class\"] = $PS[\"Control.Monad.State.Class\"] || {};\n var exports = $PS[\"Control.Monad.State.Class\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var state = function (dict) {\n return dict.state;\n };\n var modify_ = function (dictMonadState) {\n return function (f) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(Data_Unit.unit, f(s));\n });\n };\n };\n var modify = function (dictMonadState) {\n return function (f) {\n return state(dictMonadState)(function (s) {\n var s$prime = f(s);\n return new Data_Tuple.Tuple(s$prime, s$prime);\n });\n };\n };\n var get = function (dictMonadState) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(s, s);\n });\n };\n exports[\"get\"] = get;\n exports[\"modify\"] = modify;\n exports[\"modify_\"] = modify_;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.MediaType\"] = $PS[\"Data.MediaType\"] || {};\n var exports = $PS[\"Data.MediaType\"]; \n var MediaType = function (x) {\n return x;\n };\n exports[\"MediaType\"] = MediaType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Types.Generic\"] = $PS[\"Data.Argonaut.Types.Generic\"] || {};\n var exports = $PS[\"Data.Argonaut.Types.Generic\"];\n var defaultEncoding = {\n tagKey: \"tag\",\n valuesKey: \"values\",\n unwrapSingleArguments: false\n };\n exports[\"defaultEncoding\"] = defaultEncoding;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Generic.Rep\"] = $PS[\"Data.Generic.Rep\"] || {};\n var exports = $PS[\"Data.Generic.Rep\"]; \n var Inl = (function () {\n function Inl(value0) {\n this.value0 = value0;\n };\n Inl.create = function (value0) {\n return new Inl(value0);\n };\n return Inl;\n })();\n var Inr = (function () {\n function Inr(value0) {\n this.value0 = value0;\n };\n Inr.create = function (value0) {\n return new Inr(value0);\n };\n return Inr;\n })();\n var NoArguments = (function () {\n function NoArguments() {\n\n };\n NoArguments.value = new NoArguments();\n return NoArguments;\n })();\n var Argument = function (x) {\n return x;\n };\n var to = function (dict) {\n return dict.to;\n };\n var from = function (dict) {\n return dict.from;\n };\n exports[\"to\"] = to;\n exports[\"from\"] = from;\n exports[\"NoArguments\"] = NoArguments;\n exports[\"Inl\"] = Inl;\n exports[\"Inr\"] = Inr;\n exports[\"Argument\"] = Argument;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Decode.Generic\"] = $PS[\"Data.Argonaut.Decode.Generic\"] || {};\n var exports = $PS[\"Data.Argonaut.Decode.Generic\"];\n var Control_Alt = $PS[\"Control.Alt\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Argonaut_Decode_Error = $PS[\"Data.Argonaut.Decode.Error\"];\n var Data_Argonaut_Types_Generic = $PS[\"Data.Argonaut.Types.Generic\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Generic_Rep = $PS[\"Data.Generic.Rep\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Foreign_Object = $PS[\"Foreign.Object\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n var withTag = function (e) {\n return function (j) {\n return function (name) {\n var decodingErr = Data_Argonaut_Decode_Error.Named.create(name);\n return Control_Bind.bind(Data_Either.bindEither)(Data_Either.note(decodingErr(new Data_Argonaut_Decode_Error.TypeMismatch(\"Object\")))(Data_Argonaut_Core.toObject(j)))(function (jObj) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Either.note(decodingErr(new Data_Argonaut_Decode_Error.AtKey(e.tagKey, Data_Argonaut_Decode_Error.MissingValue.value)))(Foreign_Object.lookup(e.tagKey)(jObj)))(function (jTag) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Either.note(decodingErr(Data_Argonaut_Decode_Error.AtKey.create(e.tagKey)(new Data_Argonaut_Decode_Error.TypeMismatch(\"String\"))))(Data_Argonaut_Core.toString(jTag)))(function (tag) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Data_Either.bindEither)(Control_Applicative.when(Data_Either.applicativeEither)(tag !== name)(Data_Either.Left.create(decodingErr(Data_Argonaut_Decode_Error.AtKey.create(e.tagKey)(Data_Argonaut_Decode_Error.UnexpectedValue.create(Data_Argonaut_Core.fromString(tag)))))))(function () {\n return Control_Applicative.pure(Data_Either.applicativeEither)({\n tag: tag,\n decodingErr: decodingErr\n });\n });\n });\n });\n });\n };\n };\n };\n var withTagAndValues = function (e) {\n return function (j) {\n return function (name) {\n return Control_Bind.bind(Data_Either.bindEither)(withTag(e)(j)(name))(function (v) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Either.note(v.decodingErr(new Data_Argonaut_Decode_Error.TypeMismatch(\"Object\")))(Data_Argonaut_Core.toObject(j)))(function (jObj) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Either.note(v.decodingErr(new Data_Argonaut_Decode_Error.AtKey(e.valuesKey, Data_Argonaut_Decode_Error.MissingValue.value)))(Foreign_Object.lookup(e.valuesKey)(jObj)))(function (values) {\n return Control_Applicative.pure(Data_Either.applicativeEither)({\n tag: v.tag,\n values: values,\n decodingErr: v.decodingErr\n });\n });\n });\n });\n };\n };\n };\n var decodeRepWith = function (dict) {\n return dict.decodeRepWith;\n };\n var genericDecodeJsonWith = function (dictGeneric) {\n return function (dictDecodeRep) {\n return function (e) {\n var $64 = Data_Functor.map(Data_Either.functorEither)(Data_Generic_Rep.to(dictGeneric));\n var $65 = decodeRepWith(dictDecodeRep)(e);\n return function ($66) {\n return $64($65($66));\n };\n };\n };\n };\n var genericDecodeJson = function (dictGeneric) {\n return function (dictDecodeRep) {\n return genericDecodeJsonWith(dictGeneric)(dictDecodeRep)(Data_Argonaut_Types_Generic.defaultEncoding);\n };\n };\n var decodeRepSum = function (dictDecodeRep) {\n return function (dictDecodeRep1) {\n return {\n decodeRepWith: function (e) {\n return function (j) {\n return Control_Alt.alt(Data_Either.altEither)(Data_Functor.map(Data_Either.functorEither)(Data_Generic_Rep.Inl.create)(decodeRepWith(dictDecodeRep)(e)(j)))(Data_Functor.map(Data_Either.functorEither)(Data_Generic_Rep.Inr.create)(decodeRepWith(dictDecodeRep1)(e)(j)));\n };\n }\n };\n };\n };\n var decodeRepArgsNoArguments = {\n decodeRepArgs: function (js) {\n return new Data_Either.Right({\n init: Data_Generic_Rep.NoArguments.value,\n rest: js\n });\n }\n };\n var decodeRepArgsArgument = function (dictDecodeJson) {\n return {\n decodeRepArgs: function (js) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Either.note(new Data_Argonaut_Decode_Error.TypeMismatch(\"NonEmptyArray\"))(Data_Array.uncons(js)))(function (v) {\n return Data_Functor.map(Data_Either.functorEither)(function ($67) {\n return (function (v1) {\n return {\n init: v1,\n rest: v.tail\n };\n })(Data_Generic_Rep.Argument($67));\n })(Data_Argonaut_Decode_Class.decodeJson(dictDecodeJson)(v.head));\n });\n }\n };\n };\n var decodeRepArgs = function (dict) {\n return dict.decodeRepArgs;\n };\n var construct = function (dictDecodeRepArgs) {\n return function (e) {\n return function (valuesArray) {\n return function (decodingErr) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)(decodingErr)(decodeRepArgs(dictDecodeRepArgs)(valuesArray)))(function (v) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Data_Either.bindEither)(Control_Applicative.when(Data_Either.applicativeEither)(Data_Eq.notEq(Data_Eq.eqArray(Data_Argonaut_Core.eqJson))(v.rest)([ ]))(Data_Either.Left.create(decodingErr(Data_Argonaut_Decode_Error.AtKey.create(e.valuesKey)(new Data_Argonaut_Decode_Error.UnexpectedValue(Data_Argonaut_Core.fromArray(v.rest)))))))(function () {\n return Control_Applicative.pure(Data_Either.applicativeEither)(v.init);\n });\n });\n };\n };\n };\n };\n var decodeRepConstructorArg = function (dictIsSymbol) {\n return function (dictDecodeJson) {\n return {\n decodeRepWith: function (e) {\n return function (j) {\n var name = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n return Control_Bind.bind(Data_Either.bindEither)(withTagAndValues(e)(j)(name))(function (v) {\n if (e.unwrapSingleArguments) {\n return construct(decodeRepArgsArgument(dictDecodeJson))(e)([ v.values ])(v.decodingErr);\n };\n return Control_Bind.bind(Data_Either.bindEither)(Data_Either.note(v.decodingErr(Data_Argonaut_Decode_Error.AtKey.create(e.valuesKey)(new Data_Argonaut_Decode_Error.TypeMismatch(\"Array\"))))(Data_Argonaut_Core.toArray(v.values)))(function (valuesArray) {\n return construct(decodeRepArgsArgument(dictDecodeJson))(e)(valuesArray)(v.decodingErr);\n });\n });\n };\n }\n };\n };\n };\n var decodeRepConstructorNoArgs = function (dictIsSymbol) {\n return {\n decodeRepWith: function (e) {\n return function (j) {\n var name = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n return Control_Bind.bind(Data_Either.bindEither)(withTag(e)(j)(name))(function (v) {\n return construct(decodeRepArgsNoArguments)(e)([ ])(v.decodingErr);\n });\n };\n }\n };\n };\n exports[\"genericDecodeJson\"] = genericDecodeJson;\n exports[\"decodeRepSum\"] = decodeRepSum;\n exports[\"decodeRepConstructorNoArgs\"] = decodeRepConstructorNoArgs;\n exports[\"decodeRepConstructorArg\"] = decodeRepConstructorArg;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Encode.Encoders\"] = $PS[\"Data.Argonaut.Encode.Encoders\"] || {};\n var exports = $PS[\"Data.Argonaut.Encode.Encoders\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var encodeString = Data_Argonaut_Core.fromString;\n var encodeMaybe = function (encoder) {\n return function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Argonaut_Core.jsonNull;\n };\n if (v instanceof Data_Maybe.Just) {\n return encoder(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Argonaut.Encode.Encoders (line 31, column 23 - line 33, column 22): \" + [ v.constructor.name ]);\n };\n }; \n var encodeArray = function (encoder) {\n var $53 = Data_Functor.map(Data_Functor.functorArray)(encoder);\n return function ($54) {\n return Data_Argonaut_Core.fromArray($53($54));\n };\n };\n exports[\"encodeMaybe\"] = encodeMaybe;\n exports[\"encodeString\"] = encodeString;\n exports[\"encodeArray\"] = encodeArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Encode.Class\"] = $PS[\"Data.Argonaut.Encode.Class\"] || {};\n var exports = $PS[\"Data.Argonaut.Encode.Class\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Encode_Encoders = $PS[\"Data.Argonaut.Encode.Encoders\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Foreign_Object = $PS[\"Foreign.Object\"];\n var Record = $PS[\"Record\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n var gEncodeJsonNil = {\n gEncodeJson: function (v) {\n return function (v1) {\n return Foreign_Object.empty;\n };\n }\n };\n var gEncodeJson = function (dict) {\n return dict.gEncodeJson;\n };\n var encodeRecord = function (dictGEncodeJson) {\n return function (dictRowToList) {\n return {\n encodeJson: function (rec) {\n return Data_Argonaut_Core.fromObject(gEncodeJson(dictGEncodeJson)(rec)(Type_Proxy[\"Proxy\"].value));\n }\n };\n };\n };\n var encodeJsonJString = {\n encodeJson: Data_Argonaut_Encode_Encoders.encodeString\n };\n var encodeJson = function (dict) {\n return dict.encodeJson;\n };\n var encodeJsonArray = function (dictEncodeJson) {\n return {\n encodeJson: Data_Argonaut_Encode_Encoders.encodeArray(encodeJson(dictEncodeJson))\n };\n };\n var encodeJsonMaybe = function (dictEncodeJson) {\n return {\n encodeJson: Data_Argonaut_Encode_Encoders.encodeMaybe(encodeJson(dictEncodeJson))\n };\n };\n var gEncodeJsonCons = function (dictEncodeJson) {\n return function (dictGEncodeJson) {\n return function (dictIsSymbol) {\n return function (dictCons) {\n return {\n gEncodeJson: function (row) {\n return function (v) {\n return Foreign_Object.insert(Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value))(encodeJson(dictEncodeJson)(Record.get(dictIsSymbol)()(Type_Proxy[\"Proxy\"].value)(row)))(gEncodeJson(dictGEncodeJson)(row)(Type_Proxy[\"Proxy\"].value));\n };\n }\n };\n };\n };\n };\n };\n exports[\"encodeJson\"] = encodeJson;\n exports[\"encodeJsonMaybe\"] = encodeJsonMaybe;\n exports[\"encodeJsonJString\"] = encodeJsonJString;\n exports[\"encodeJsonArray\"] = encodeJsonArray;\n exports[\"encodeRecord\"] = encodeRecord;\n exports[\"gEncodeJsonNil\"] = gEncodeJsonNil;\n exports[\"gEncodeJsonCons\"] = gEncodeJsonCons;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Encode.Generic\"] = $PS[\"Data.Argonaut.Encode.Generic\"] || {};\n var exports = $PS[\"Data.Argonaut.Encode.Generic\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Encode_Class = $PS[\"Data.Argonaut.Encode.Class\"];\n var Data_Argonaut_Types_Generic = $PS[\"Data.Argonaut.Types.Generic\"];\n var Data_Generic_Rep = $PS[\"Data.Generic.Rep\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Foreign_Object = $PS[\"Foreign.Object\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n var encodeRepWith = function (dict) {\n return dict.encodeRepWith;\n };\n var genericEncodeJsonWith = function (dictGeneric) {\n return function (dictEncodeRep) {\n return function (e) {\n var $50 = encodeRepWith(dictEncodeRep)(e);\n var $51 = Data_Generic_Rep.from(dictGeneric);\n return function ($52) {\n return $50($51($52));\n };\n };\n };\n };\n var genericEncodeJson = function (dictGeneric) {\n return function (dictEncodeRep) {\n return genericEncodeJsonWith(dictGeneric)(dictEncodeRep)(Data_Argonaut_Types_Generic.defaultEncoding);\n };\n };\n var encodeRepSum = function (dictEncodeRep) {\n return function (dictEncodeRep1) {\n return {\n encodeRepWith: function (e) {\n return function (v) {\n if (v instanceof Data_Generic_Rep.Inl) {\n return encodeRepWith(dictEncodeRep)(e)(v.value0);\n };\n if (v instanceof Data_Generic_Rep.Inr) {\n return encodeRepWith(dictEncodeRep1)(e)(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Argonaut.Encode.Generic (line 36, column 1 - line 38, column 50): \" + [ e.constructor.name, v.constructor.name ]);\n };\n }\n };\n };\n };\n var encodeRepArgsNoArguments = {\n encodeRepArgs: function (v) {\n return [ ];\n }\n };\n var encodeRepArgsArgument = function (dictEncodeJson) {\n return {\n encodeRepArgs: function (v) {\n return [ Data_Argonaut_Encode_Class.encodeJson(dictEncodeJson)(v) ];\n }\n };\n };\n var encodeRepArgs = function (dict) {\n return dict.encodeRepArgs;\n };\n var encodeRepConstructor = function (dictIsSymbol) {\n return function (dictEncodeRepArgs) {\n return {\n encodeRepWith: function (e) {\n return function (v) {\n var values = (function () {\n var vs = encodeRepArgs(dictEncodeRepArgs)(v);\n if (e.unwrapSingleArguments) {\n if (vs.length === 1) {\n return vs[0];\n };\n return Data_Argonaut_Core.fromArray(vs);\n };\n return Data_Argonaut_Core.fromArray(vs);\n })();\n return Data_Argonaut_Core.fromObject(Foreign_Object.insert(e.tagKey)(Data_Argonaut_Core.fromString(Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value)))(Foreign_Object.insert(e.valuesKey)(values)(Foreign_Object.empty)));\n };\n }\n };\n };\n };\n exports[\"genericEncodeJson\"] = genericEncodeJson;\n exports[\"encodeRepSum\"] = encodeRepSum;\n exports[\"encodeRepConstructor\"] = encodeRepConstructor;\n exports[\"encodeRepArgsNoArguments\"] = encodeRepArgsNoArguments;\n exports[\"encodeRepArgsArgument\"] = encodeRepArgsArgument;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.regexImpl = function (left) {\n return function (right) {\n return function (s1) {\n return function (s2) {\n try {\n return right(new RegExp(s1, s2));\n } catch (e) {\n return left(e.message);\n }\n };\n };\n };\n };\n\n exports.test = function (r) {\n return function (s) {\n var lastIndex = r.lastIndex;\n var result = r.test(s);\n r.lastIndex = lastIndex;\n return result;\n };\n };\n\n exports._match = function (just) {\n return function (nothing) {\n return function (r) {\n return function (s) {\n var m = s.match(r);\n if (m == null || m.length === 0) {\n return nothing;\n } else {\n for (var i = 0; i < m.length; i++) {\n m[i] = m[i] == null ? nothing : just(m[i]);\n }\n return just(m);\n }\n };\n };\n };\n };\n\n exports.replace = function (r) {\n return function (s1) {\n return function (s2) {\n return s2.replace(r, s1);\n };\n };\n };\n})(PS[\"Data.String.Regex\"] = PS[\"Data.String.Regex\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.String.Regex\"] = $PS[\"Data.String.Regex\"] || {};\n var exports = $PS[\"Data.String.Regex\"];\n var $foreign = $PS[\"Data.String.Regex\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var renderFlags = function (v) {\n return (function () {\n if (v.value0.global) {\n return \"g\";\n };\n return \"\";\n })() + ((function () {\n if (v.value0.ignoreCase) {\n return \"i\";\n };\n return \"\";\n })() + ((function () {\n if (v.value0.multiline) {\n return \"m\";\n };\n return \"\";\n })() + ((function () {\n if (v.value0.dotAll) {\n return \"s\";\n };\n return \"\";\n })() + ((function () {\n if (v.value0.sticky) {\n return \"y\";\n };\n return \"\";\n })() + (function () {\n if (v.value0.unicode) {\n return \"u\";\n };\n return \"\";\n })()))));\n };\n var regex = function (s) {\n return function (f) {\n return $foreign.regexImpl(Data_Either.Left.create)(Data_Either.Right.create)(s)(renderFlags(f));\n };\n };\n var match = $foreign[\"_match\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n exports[\"regex\"] = regex;\n exports[\"match\"] = match;\n exports[\"test\"] = $foreign.test;\n exports[\"replace\"] = $foreign.replace;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.String.Regex.Flags\"] = $PS[\"Data.String.Regex.Flags\"] || {};\n var exports = $PS[\"Data.String.Regex.Flags\"]; \n var RegexFlags = (function () {\n function RegexFlags(value0) {\n this.value0 = value0;\n };\n RegexFlags.create = function (value0) {\n return new RegexFlags(value0);\n };\n return RegexFlags;\n })();\n var unicode = new RegexFlags({\n global: false,\n ignoreCase: false,\n multiline: false,\n dotAll: false,\n sticky: false,\n unicode: true\n });\n var ignoreCase = new RegexFlags({\n global: false,\n ignoreCase: true,\n multiline: false,\n dotAll: false,\n sticky: false,\n unicode: false\n });\n var global = new RegexFlags({\n global: true,\n ignoreCase: false,\n multiline: false,\n dotAll: false,\n sticky: false,\n unicode: false\n });\n exports[\"RegexFlags\"] = RegexFlags;\n exports[\"global\"] = global;\n exports[\"ignoreCase\"] = ignoreCase;\n exports[\"unicode\"] = unicode;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.String.Regex.Unsafe\"] = $PS[\"Data.String.Regex.Unsafe\"] || {};\n var exports = $PS[\"Data.String.Regex.Unsafe\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_String_Regex = $PS[\"Data.String.Regex\"];\n var Partial_Unsafe = $PS[\"Partial.Unsafe\"]; \n var unsafeRegex = function (s) {\n return function (f) {\n return Data_Either.either(Partial_Unsafe.unsafeCrashWith)(Control_Category.identity(Control_Category.categoryFn))(Data_String_Regex.regex(s)(f));\n };\n };\n exports[\"unsafeRegex\"] = unsafeRegex;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.urlImpl = function(just) {\n return function(nothing) {\n return function(base) {\n try {\n return just(new URL(base));\n } catch (TypeError) {\n return nothing;\n }\n }\n }\n };\n\n exports.toString = function(url) { return url.toString(); };\n exports.searchParams = function(url) { return url.searchParams; }\n})(PS[\"Web.URL\"] = PS[\"Web.URL\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.URL\"] = $PS[\"Web.URL\"] || {};\n var exports = $PS[\"Web.URL\"];\n var $foreign = $PS[\"Web.URL\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var fromAbsolute = function (base) {\n return $foreign.urlImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value)(base);\n }; \n var eqURL = {\n eq: function (a) {\n return function (b) {\n return $foreign.toString(a) === $foreign.toString(b);\n };\n }\n };\n exports[\"fromAbsolute\"] = fromAbsolute;\n exports[\"eqURL\"] = eqURL;\n exports[\"toString\"] = $foreign.toString;\n exports[\"searchParams\"] = $foreign.searchParams;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.URL\"] = $PS[\"Data.URL\"] || {};\n var exports = $PS[\"Data.URL\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Argonaut_Decode_Error = $PS[\"Data.Argonaut.Decode.Error\"];\n var Data_Argonaut_Encode_Class = $PS[\"Data.Argonaut.Encode.Class\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_String_Regex = $PS[\"Data.String.Regex\"];\n var Data_String_Regex_Flags = $PS[\"Data.String.Regex.Flags\"];\n var Data_String_Regex_Unsafe = $PS[\"Data.String.Regex.Unsafe\"];\n var Web_URL = $PS[\"Web.URL\"]; \n var quoteRegex = Data_String_Regex_Unsafe.unsafeRegex(\"(^\\\")|(\\\"$)\")(Data_String_Regex_Flags.global);\n var trimQuotes = Data_String_Regex.replace(quoteRegex)(\"\");\n var noteUrlFromString = function (s) {\n var v = Web_URL.fromAbsolute(trimQuotes(s));\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Maybe.Just) {\n return Data_Maybe.Just.create(Data_Newtype.wrap()(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.URL (line 70, column 23 - line 72, column 30): \" + [ v.constructor.name ]);\n };\n var noteUrlToString = function (url) {\n return Web_URL.toString(Data_Newtype.unwrap()(url));\n };\n var eqURL = Web_URL.eqURL;\n var encodeJSONURL = {\n encodeJson: function (url) {\n return Data_Argonaut_Encode_Class.encodeJson(Data_Argonaut_Encode_Class.encodeJsonJString)(noteUrlToString(url));\n }\n };\n var decodeJSONURL = {\n decodeJson: function (json) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Class.decodeJson(Data_Argonaut_Decode_Class.decodeJsonString)(json))(function (st) {\n return Data_Either.note(new Data_Argonaut_Decode_Error.TypeMismatch(\"URL\"))(noteUrlFromString(st));\n });\n }\n };\n exports[\"noteUrlFromString\"] = noteUrlFromString;\n exports[\"noteUrlToString\"] = noteUrlToString;\n exports[\"trimQuotes\"] = trimQuotes;\n exports[\"eqURL\"] = eqURL;\n exports[\"decodeJSONURL\"] = decodeJSONURL;\n exports[\"encodeJSONURL\"] = encodeJSONURL;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Array.NonEmpty\"] = $PS[\"Data.Array.NonEmpty\"] || {};\n var exports = $PS[\"Data.Array.NonEmpty\"];\n var Data_Array = $PS[\"Data.Array\"]; \n var toArray = function (v) {\n return v;\n }; \n var adaptAny = function (f) {\n return function ($78) {\n return f(toArray($78));\n };\n };\n var take = function (i) {\n return adaptAny(Data_Array.take(i));\n };\n exports[\"take\"] = take;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Helpers.General\"] = $PS[\"Helpers.General\"] || {};\n var exports = $PS[\"Helpers.General\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Argonaut_Decode_Error = $PS[\"Data.Argonaut.Decode.Error\"];\n var Data_Argonaut_Encode_Class = $PS[\"Data.Argonaut.Encode.Class\"];\n var Data_Argonaut_Parser = $PS[\"Data.Argonaut.Parser\"];\n var Data_Array_NonEmpty = $PS[\"Data.Array.NonEmpty\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_String_Regex = $PS[\"Data.String.Regex\"];\n var Data_String_Regex_Flags = $PS[\"Data.String.Regex.Flags\"];\n var Data_String_Regex_Unsafe = $PS[\"Data.String.Regex.Unsafe\"];\n var Data_URL = $PS[\"Data.URL\"];\n var regexURL = Data_String_Regex_Unsafe.unsafeRegex(\"(file|ftp|https?):\\\\/\\\\/[^\\\\s$.?#].[\\\\S]*[^\\\\s.]+\")(Data_String_Regex_Flags.ignoreCase);\n var regexNotAWord = Data_String_Regex_Unsafe.unsafeRegex(\"(\\\\P{L})+\")(new Data_String_Regex_Flags.RegexFlags({\n global: true,\n ignoreCase: true,\n unicode: true,\n dotAll: false,\n multiline: false,\n sticky: false\n }));\n var sanitizeFileName = Data_String_Regex.replace(regexNotAWord)(\"_\");\n var getFirstMatch = function (rex) {\n return function (text) {\n var firstMatch = (function () {\n var v = Data_String_Regex.match(rex)(text);\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Maybe.Just) {\n var v1 = Data_Array_NonEmpty.take(1)(v.value0);\n if (v1.length === 1) {\n return v1[0];\n };\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Helpers.General (line 86, column 16 - line 90, column 19): \" + [ v.constructor.name ]);\n })();\n return firstMatch;\n };\n };\n var getNoteURL = function (text) {\n var v = Data_String_Regex.test(regexURL)(text);\n if (!v) {\n return Data_Maybe.Nothing.value;\n };\n if (v) {\n return Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Data_URL.noteUrlFromString)(getFirstMatch(regexURL)(text));\n };\n throw new Error(\"Failed pattern match at Helpers.General (line 100, column 19 - line 102, column 60): \" + [ v.constructor.name ]);\n };\n var getURLString = function (text) {\n var v = Data_String_Regex.test(regexURL)(text);\n if (!v) {\n return Data_Maybe.Nothing.value;\n };\n if (v) {\n return getFirstMatch(regexURL)(text);\n };\n throw new Error(\"Failed pattern match at Helpers.General (line 112, column 21 - line 114, column 38): \" + [ v.constructor.name ]);\n }; \n var encodeToJsonString = function (dictEncodeJson) {\n var $26 = Data_Argonaut_Encode_Class.encodeJson(dictEncodeJson);\n return function ($27) {\n return Data_Argonaut_Core.stringify($26($27));\n };\n }; \n var decodeJsonFromString = function (dictDecodeJson) {\n return function (str) {\n var parsed = Data_Argonaut_Parser.jsonParser(str);\n if (parsed instanceof Data_Either.Left) {\n return new Data_Either.Left(parsed.value0);\n };\n if (parsed instanceof Data_Either.Right) {\n var v = Data_Argonaut_Decode_Class.decodeJson(dictDecodeJson)(parsed.value0);\n if (v instanceof Data_Either.Left) {\n return Data_Either.Left.create(\"JSON decode error: \" + (Data_Argonaut_Decode_Error.printJsonDecodeError(v.value0) + Data_Argonaut_Core.stringify(parsed.value0)));\n };\n if (v instanceof Data_Either.Right) {\n return new Data_Either.Right(v.value0);\n };\n throw new Error(\"Failed pattern match at Helpers.General (line 231, column 18 - line 233, column 27): \" + [ v.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Helpers.General (line 229, column 5 - line 233, column 27): \" + [ parsed.constructor.name ]);\n };\n };\n exports[\"decodeJsonFromString\"] = decodeJsonFromString;\n exports[\"encodeToJsonString\"] = encodeToJsonString;\n exports[\"getNoteURL\"] = getNoteURL;\n exports[\"getURLString\"] = getURLString;\n exports[\"sanitizeFileName\"] = sanitizeFileName;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Note\"] = $PS[\"Data.Note\"] || {};\n var exports = $PS[\"Data.Note\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Argonaut_Decode_Generic = $PS[\"Data.Argonaut.Decode.Generic\"];\n var Data_Argonaut_Encode_Class = $PS[\"Data.Argonaut.Encode.Class\"];\n var Data_Argonaut_Encode_Generic = $PS[\"Data.Argonaut.Encode.Generic\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_URL = $PS[\"Data.URL\"];\n var Helpers_General = $PS[\"Helpers.General\"];\n var KeyWordArray = function (x) {\n return x;\n };\n var showKeyWordArray = {\n show: function (v) {\n return Data_Array.foldl(function (acc) {\n return function (e) {\n var $29 = acc === \"\";\n if ($29) {\n return acc + e;\n };\n return acc + (\", \" + e);\n };\n })(\"\")(v);\n }\n };\n var showNote = {\n show: function (v) {\n var showFieldKeyWds = function (keywds) {\n if (keywds instanceof Data_Maybe.Just) {\n return \"Keywords: \" + (Data_Show.show(showKeyWordArray)(keywds.value0) + \" \");\n };\n if (keywds instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Data.Note (line 106, column 30 - line 108, column 20): \" + [ keywds.constructor.name ]);\n };\n var showField = function (name) {\n return function (val) {\n if (val instanceof Data_Maybe.Just) {\n return name + (\": \" + (val.value0 + \" \"));\n };\n if (val instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Data.Note (line 102, column 26 - line 104, column 20): \" + [ val.constructor.name ]);\n };\n };\n var titleString = showField(\"Title\")(v.title);\n var urlString = showField(\"URL\")(Data_Functor.map(Data_Maybe.functorMaybe)(Data_URL.noteUrlToString)(v.url));\n var shortString = showField(\"Short Description\")(v.shortDesc);\n var longString = showField(\"Detailed Description\")(v.longDesc);\n var locationString = showField(\"Location\")(v.location);\n var keywordString = showFieldKeyWds(v.keywords);\n return titleString + (urlString + (keywordString + (locationString + (shortString + longString))));\n }\n };\n var noteKeyId = \"Note\";\n var storeKeyNote = {\n key: function (v) {\n return noteKeyId;\n }\n };\n var keyWordArrayFromString = function (v) {\n if (v === \"\") {\n return Data_Maybe.Nothing.value;\n };\n if (Data_String_Common.trim(v) === \"\") {\n return Data_Maybe.Nothing.value;\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Just.create(KeyWordArray(Data_Functor.map(Data_Functor.functorArray)(Data_String_Common.trim)(Data_String_Common.split(\",\")(v))));\n };\n throw new Error(\"Failed pattern match at Data.Note (line 226, column 1 - line 226, column 55): \" + [ v.constructor.name ]);\n };\n var getURLAndText = function (text) {\n var urlSt = Helpers_General.getURLString(Data_URL.trimQuotes(text));\n var url = Helpers_General.getNoteURL(text);\n var trimmed = Data_Maybe.Just.create(Data_URL.trimQuotes(Data_String_Common.trim(text)));\n var txt = (function () {\n var v = Data_Eq.eq(Data_Maybe.eqMaybe(Data_Eq.eqString))(trimmed)(urlSt);\n if (v) {\n return Data_Maybe.Nothing.value;\n };\n return trimmed;\n })();\n return new Data_Tuple.Tuple(url, txt);\n };\n var genericNote = {\n to: function (x) {\n return x;\n },\n from: function (x) {\n return x;\n }\n };\n var genericKeyWordArray = {\n to: function (x) {\n return x;\n },\n from: function (x) {\n return x;\n }\n };\n var fromShared = function (v) {\n return function (v1) {\n return function (v2) {\n if (v instanceof Data_Maybe.Just && (v1 instanceof Data_Maybe.Nothing && v2 instanceof Data_Maybe.Nothing)) {\n var v3 = getURLAndText(v.value0);\n return {\n title: v3.value1,\n url: v3.value0,\n keywords: Data_Maybe.Nothing.value,\n location: Data_Maybe.Nothing.value,\n shortDesc: Data_Maybe.Nothing.value,\n longDesc: Data_Maybe.Nothing.value\n };\n };\n if (v instanceof Data_Maybe.Nothing && (v1 instanceof Data_Maybe.Nothing && v2 instanceof Data_Maybe.Just)) {\n var v3 = getURLAndText(v2.value0);\n return {\n title: Data_Maybe.Nothing.value,\n url: v3.value0,\n keywords: Data_Maybe.Nothing.value,\n location: Data_Maybe.Nothing.value,\n shortDesc: v3.value1,\n longDesc: Data_Maybe.Nothing.value\n };\n };\n if (v instanceof Data_Maybe.Just && (v1 instanceof Data_Maybe.Nothing && v2 instanceof Data_Maybe.Just)) {\n var v3 = getURLAndText(v2.value0);\n var v4 = getURLAndText(v.value0);\n var foundURL = (function () {\n if (v3.value0 instanceof Data_Maybe.Nothing) {\n return v4.value0;\n };\n return v3.value0;\n })();\n return {\n title: v4.value1,\n url: foundURL,\n keywords: Data_Maybe.Nothing.value,\n location: Data_Maybe.Nothing.value,\n shortDesc: v3.value1,\n longDesc: Data_Maybe.Nothing.value\n };\n };\n return {\n title: v,\n url: v1,\n keywords: Data_Maybe.Nothing.value,\n location: Data_Maybe.Nothing.value,\n shortDesc: v2,\n longDesc: Data_Maybe.Nothing.value\n };\n };\n };\n };\n var eqKeywordArray = {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq(Data_Eq.eqArray(Data_Eq.eqString))(x)(y);\n };\n }\n };\n var eqNote = {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq(Data_Maybe.eqMaybe(eqKeywordArray))(x.keywords)(y.keywords) && Data_Eq.eq(Data_Maybe.eqMaybe(Data_Eq.eqString))(x.location)(y.location) && Data_Eq.eq(Data_Maybe.eqMaybe(Data_Eq.eqString))(x.longDesc)(y.longDesc) && Data_Eq.eq(Data_Maybe.eqMaybe(Data_Eq.eqString))(x.shortDesc)(y.shortDesc) && Data_Eq.eq(Data_Maybe.eqMaybe(Data_Eq.eqString))(x.title)(y.title) && Data_Eq.eq(Data_Maybe.eqMaybe(Data_URL.eqURL))(x.url)(y.url);\n };\n }\n };\n var encodeJSONKeyWordArray = {\n encodeJson: Data_Argonaut_Encode_Generic.genericEncodeJson(genericKeyWordArray)(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"KeyWordArray\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsArgument(Data_Argonaut_Encode_Class.encodeJsonArray(Data_Argonaut_Encode_Class.encodeJsonJString))))\n };\n var encodeJSONNote = {\n encodeJson: Data_Argonaut_Encode_Generic.genericEncodeJson(genericNote)(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"Note\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsArgument(Data_Argonaut_Encode_Class.encodeRecord(Data_Argonaut_Encode_Class.gEncodeJsonCons(Data_Argonaut_Encode_Class.encodeJsonMaybe(encodeJSONKeyWordArray))(Data_Argonaut_Encode_Class.gEncodeJsonCons(Data_Argonaut_Encode_Class.encodeJsonMaybe(Data_Argonaut_Encode_Class.encodeJsonJString))(Data_Argonaut_Encode_Class.gEncodeJsonCons(Data_Argonaut_Encode_Class.encodeJsonMaybe(Data_Argonaut_Encode_Class.encodeJsonJString))(Data_Argonaut_Encode_Class.gEncodeJsonCons(Data_Argonaut_Encode_Class.encodeJsonMaybe(Data_Argonaut_Encode_Class.encodeJsonJString))(Data_Argonaut_Encode_Class.gEncodeJsonCons(Data_Argonaut_Encode_Class.encodeJsonMaybe(Data_Argonaut_Encode_Class.encodeJsonJString))(Data_Argonaut_Encode_Class.gEncodeJsonCons(Data_Argonaut_Encode_Class.encodeJsonMaybe(Data_URL.encodeJSONURL))(Data_Argonaut_Encode_Class.gEncodeJsonNil)({\n reflectSymbol: function () {\n return \"url\";\n }\n })())({\n reflectSymbol: function () {\n return \"title\";\n }\n })())({\n reflectSymbol: function () {\n return \"shortDesc\";\n }\n })())({\n reflectSymbol: function () {\n return \"longDesc\";\n }\n })())({\n reflectSymbol: function () {\n return \"location\";\n }\n })())({\n reflectSymbol: function () {\n return \"keywords\";\n }\n })())())))\n };\n var defaultNote = {\n title: Data_Maybe.Nothing.value,\n url: Data_Maybe.Nothing.value,\n keywords: Data_Maybe.Nothing.value,\n location: Data_Maybe.Nothing.value,\n shortDesc: Data_Maybe.Nothing.value,\n longDesc: Data_Maybe.Nothing.value\n };\n var decodeJSONKeyWordArray = {\n decodeJson: Data_Argonaut_Decode_Generic.genericDecodeJson(genericKeyWordArray)(Data_Argonaut_Decode_Generic.decodeRepConstructorArg({\n reflectSymbol: function () {\n return \"KeyWordArray\";\n }\n })(Data_Argonaut_Decode_Class.decodeArray(Data_Argonaut_Decode_Class.decodeJsonString)))\n };\n var decodeJSONNote = {\n decodeJson: Data_Argonaut_Decode_Generic.genericDecodeJson(genericNote)(Data_Argonaut_Decode_Generic.decodeRepConstructorArg({\n reflectSymbol: function () {\n return \"Note\";\n }\n })(Data_Argonaut_Decode_Class.decodeRecord(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldMaybe(decodeJSONKeyWordArray))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldMaybe(Data_Argonaut_Decode_Class.decodeJsonString))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldMaybe(Data_Argonaut_Decode_Class.decodeJsonString))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldMaybe(Data_Argonaut_Decode_Class.decodeJsonString))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldMaybe(Data_Argonaut_Decode_Class.decodeJsonString))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldMaybe(Data_URL.decodeJSONURL))(Data_Argonaut_Decode_Class.gDecodeJsonNil)({\n reflectSymbol: function () {\n return \"url\";\n }\n })()())({\n reflectSymbol: function () {\n return \"title\";\n }\n })()())({\n reflectSymbol: function () {\n return \"shortDesc\";\n }\n })()())({\n reflectSymbol: function () {\n return \"longDesc\";\n }\n })()())({\n reflectSymbol: function () {\n return \"location\";\n }\n })()())({\n reflectSymbol: function () {\n return \"keywords\";\n }\n })()())()))\n };\n exports[\"defaultNote\"] = defaultNote;\n exports[\"fromShared\"] = fromShared;\n exports[\"keyWordArrayFromString\"] = keyWordArrayFromString;\n exports[\"noteKeyId\"] = noteKeyId;\n exports[\"eqNote\"] = eqNote;\n exports[\"encodeJSONNote\"] = encodeJSONNote;\n exports[\"decodeJSONNote\"] = decodeJSONNote;\n exports[\"storeKeyNote\"] = storeKeyNote;\n exports[\"showNote\"] = showNote;\n exports[\"showKeyWordArray\"] = showKeyWordArray;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.intercalate = function (separator) {\n return function (xs) {\n var len = xs.length;\n if (len === 0) return \"\";\n\n var res = xs[0];\n for (var i = 1; i < len; i++) {\n res = res + separator + xs[i];\n }\n return res;\n };\n };\n})(PS[\"Data.Show.Generic\"] = PS[\"Data.Show.Generic\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Show.Generic\"] = $PS[\"Data.Show.Generic\"] || {};\n var exports = $PS[\"Data.Show.Generic\"];\n var $foreign = $PS[\"Data.Show.Generic\"];\n var Data_Generic_Rep = $PS[\"Data.Generic.Rep\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n var genericShowArgsNoArguments = {\n genericShowArgs: function (v) {\n return [ ];\n }\n };\n var genericShowArgsArgument = function (dictShow) {\n return {\n genericShowArgs: function (v) {\n return [ Data_Show.show(dictShow)(v) ];\n }\n };\n };\n var genericShowArgs = function (dict) {\n return dict.genericShowArgs;\n };\n var genericShowConstructor = function (dictGenericShowArgs) {\n return function (dictIsSymbol) {\n return {\n \"genericShow'\": function (v) {\n var ctor = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var v1 = genericShowArgs(dictGenericShowArgs)(v);\n if (v1.length === 0) {\n return ctor;\n };\n return \"(\" + ($foreign.intercalate(\" \")(Data_Semigroup.append(Data_Semigroup.semigroupArray)([ ctor ])(v1)) + \")\");\n }\n };\n };\n };\n var genericShow$prime = function (dict) {\n return dict[\"genericShow'\"];\n };\n var genericShowSum = function (dictGenericShow) {\n return function (dictGenericShow1) {\n return {\n \"genericShow'\": function (v) {\n if (v instanceof Data_Generic_Rep.Inl) {\n return genericShow$prime(dictGenericShow)(v.value0);\n };\n if (v instanceof Data_Generic_Rep.Inr) {\n return genericShow$prime(dictGenericShow1)(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Show.Generic (line 26, column 1 - line 28, column 40): \" + [ v.constructor.name ]);\n }\n };\n };\n };\n var genericShow = function (dictGeneric) {\n return function (dictGenericShow) {\n return function (x) {\n return genericShow$prime(dictGenericShow)(Data_Generic_Rep.from(dictGeneric)(x));\n };\n };\n };\n exports[\"genericShow\"] = genericShow;\n exports[\"genericShowArgsNoArguments\"] = genericShowArgsNoArguments;\n exports[\"genericShowSum\"] = genericShowSum;\n exports[\"genericShowConstructor\"] = genericShowConstructor;\n exports[\"genericShowArgsArgument\"] = genericShowArgsArgument;\n})(PS);\n(function($PS) {\n \n // SPDX-License-Identifier: GPL-3.0-or-later\n // Copyright (C) 2021 Roland Csaszar\n //\n // Project: notoy-pwa\n // File: Options.purs\n // Date: 23.Dec.2021\n //\n // =============================================================================\n // | Module Data.Options, the record holding the app's options and related\n // | functions.\n \"use strict\";\n $PS[\"Data.Options\"] = $PS[\"Data.Options\"] || {};\n var exports = $PS[\"Data.Options\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Argonaut_Decode_Generic = $PS[\"Data.Argonaut.Decode.Generic\"];\n var Data_Argonaut_Encode_Class = $PS[\"Data.Argonaut.Encode.Class\"];\n var Data_Argonaut_Encode_Generic = $PS[\"Data.Argonaut.Encode.Generic\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Generic_Rep = $PS[\"Data.Generic.Rep\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_Show_Generic = $PS[\"Data.Show.Generic\"]; \n\n /**\n * ------------------------------------------------------------------------------\n * | Whether to do a reverse geolocation lookup of the position or not.\n * |\n * | One of\n * | * ReverseGeolocation\n * | * NoReverseGeolocation\n */ \n var ReverseGeolocation = (function () {\n function ReverseGeolocation() {\n\n };\n ReverseGeolocation.value = new ReverseGeolocation();\n return ReverseGeolocation;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | Whether to do a reverse geolocation lookup of the position or not.\n * |\n * | One of\n * | * ReverseGeolocation\n * | * NoReverseGeolocation\n */ \n var NoReverseGeolocation = (function () {\n function NoReverseGeolocation() {\n\n };\n NoReverseGeolocation.value = new NoReverseGeolocation();\n return NoReverseGeolocation;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The format of the note.\n * |\n * | One of\n * | * `Markdown` - Markdown formatted text.\n * | * `OrgMode` - Emacs Org-Mode formatted text.\n * | * `Text` - plain text.\n */ \n var Markdown = (function () {\n function Markdown() {\n\n };\n Markdown.value = new Markdown();\n return Markdown;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The format of the note.\n * |\n * | One of\n * | * `Markdown` - Markdown formatted text.\n * | * `OrgMode` - Emacs Org-Mode formatted text.\n * | * `Text` - plain text.\n */ \n var OrgMode = (function () {\n function OrgMode() {\n\n };\n OrgMode.value = new OrgMode();\n return OrgMode;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The format of the note.\n * |\n * | One of\n * | * `Markdown` - Markdown formatted text.\n * | * `OrgMode` - Emacs Org-Mode formatted text.\n * | * `Text` - plain text.\n */ \n var Text = (function () {\n function Text() {\n\n };\n Text.value = new Text();\n return Text;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | Whether to automatically add a YAML front matter header to the note.\n * |\n * | One of:\n * | * NoYamlHeader\n * | * AddYamlHeader\n */ \n var NoYamlHeader = (function () {\n function NoYamlHeader() {\n\n };\n NoYamlHeader.value = new NoYamlHeader();\n return NoYamlHeader;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | Whether to automatically add a YAML front matter header to the note.\n * |\n * | One of:\n * | * NoYamlHeader\n * | * AddYamlHeader\n */ \n var AddYamlHeader = (function () {\n function AddYamlHeader() {\n\n };\n AddYamlHeader.value = new AddYamlHeader();\n return AddYamlHeader;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | Whether to automatically add the current date as timestamp to the note.\n * |\n * | One of:\n * | * NoDate\n * | * AddDate\n */ \n var NoDate = (function () {\n function NoDate() {\n\n };\n NoDate.value = new NoDate();\n return NoDate;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | Whether to automatically add the current date as timestamp to the note.\n * |\n * | One of:\n * | * NoDate\n * | * AddDate\n */ \n var AddDate = (function () {\n function AddDate() {\n\n };\n AddDate.value = new AddDate();\n return AddDate;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | Convert a `Boolean` to an `AddYamlHeader`.\n * |\n * | * `b` - If `b` is `true`, return `AddYamlHeader`. Else return `NoYamlHeader`.\n */ \n var yamlHeaderFromBool = function (v) {\n if (!v) {\n return NoYamlHeader.value;\n };\n if (v) {\n return AddYamlHeader.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 291, column 1 - line 291, column 47): \" + [ v.constructor.name ]);\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | The `StoreKeyId` of `Options`.\n */ \n var optionsKeyId = \"Options\";\n var storeKeyIdOptions = {\n key: function (v) {\n return optionsKeyId;\n }\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | MIME type of the various document formats.\n */ \n var mimeTypes = {\n markdown: \"text/markdown\",\n orgMode: \"text/org\",\n text: \"text/plain\"\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the MIME type for the given `Format`.\n * |\n * | - Markdown: \"text/markdown\"\n * | - OrgMode: \"text/org\"\n * | - Text: \"text/plain\"\n * |\n * | * `options` - The `Options` object with the format to use.\n */ \n var noteFileMime = function (v) {\n if (v.format instanceof Markdown) {\n return mimeTypes.markdown;\n };\n if (v.format instanceof OrgMode) {\n return mimeTypes.orgMode;\n };\n if (v.format instanceof Text) {\n return mimeTypes.text;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 321, column 1 - line 321, column 34): \" + [ v.constructor.name ]);\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Convert a `Boolean` to an `LookupLocation`.\n * |\n * | * `b` - If `b` is `true`, return `ReverseGeolocation`. Else return\n * | `NoReverseGeolocation`.\n */ \n var lookupLocationFromBool = function (v) {\n if (!v) {\n return NoReverseGeolocation.value;\n };\n if (v) {\n return ReverseGeolocation.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 281, column 1 - line 281, column 52): \" + [ v.constructor.name ]);\n };\n var genericOptions = {\n to: function (x) {\n return x;\n },\n from: function (x) {\n return x;\n }\n };\n var genericLookupLocation = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return ReverseGeolocation.value;\n };\n if (x instanceof Data_Generic_Rep.Inr) {\n return NoReverseGeolocation.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 189, column 1 - line 189, column 66): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof ReverseGeolocation) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof NoReverseGeolocation) {\n return new Data_Generic_Rep.Inr(Data_Generic_Rep.NoArguments.value);\n };\n throw new Error(\"Failed pattern match at Data.Options (line 189, column 1 - line 189, column 66): \" + [ x.constructor.name ]);\n }\n };\n var showLookupLocation = {\n show: Data_Show_Generic.genericShow(genericLookupLocation)(Data_Show_Generic.genericShowSum(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"ReverseGeolocation\";\n }\n }))(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"NoReverseGeolocation\";\n }\n })))\n };\n var genericFormat = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return Markdown.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && x.value0 instanceof Data_Generic_Rep.Inl) {\n return OrgMode.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && x.value0 instanceof Data_Generic_Rep.Inr) {\n return Text.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 110, column 1 - line 110, column 50): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof Markdown) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof OrgMode) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value));\n };\n if (x instanceof Text) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(Data_Generic_Rep.NoArguments.value));\n };\n throw new Error(\"Failed pattern match at Data.Options (line 110, column 1 - line 110, column 50): \" + [ x.constructor.name ]);\n }\n };\n var showFormat = {\n show: Data_Show_Generic.genericShow(genericFormat)(Data_Show_Generic.genericShowSum(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"Markdown\";\n }\n }))(Data_Show_Generic.genericShowSum(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"OrgMode\";\n }\n }))(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"Text\";\n }\n }))))\n };\n var genericAddYamlHeader = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return NoYamlHeader.value;\n };\n if (x instanceof Data_Generic_Rep.Inr) {\n return AddYamlHeader.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 228, column 1 - line 228, column 64): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof NoYamlHeader) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof AddYamlHeader) {\n return new Data_Generic_Rep.Inr(Data_Generic_Rep.NoArguments.value);\n };\n throw new Error(\"Failed pattern match at Data.Options (line 228, column 1 - line 228, column 64): \" + [ x.constructor.name ]);\n }\n };\n var showAddYamlHeader = {\n show: Data_Show_Generic.genericShow(genericAddYamlHeader)(Data_Show_Generic.genericShowSum(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"NoYamlHeader\";\n }\n }))(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"AddYamlHeader\";\n }\n })))\n };\n var genericAddDate = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return NoDate.value;\n };\n if (x instanceof Data_Generic_Rep.Inr) {\n return AddDate.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 150, column 1 - line 150, column 52): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof NoDate) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof AddDate) {\n return new Data_Generic_Rep.Inr(Data_Generic_Rep.NoArguments.value);\n };\n throw new Error(\"Failed pattern match at Data.Options (line 150, column 1 - line 150, column 52): \" + [ x.constructor.name ]);\n }\n };\n var showAddDate = {\n show: Data_Show_Generic.genericShow(genericAddDate)(Data_Show_Generic.genericShowSum(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"NoDate\";\n }\n }))(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"AddDate\";\n }\n })))\n };\n var showOptions = {\n show: Data_Show_Generic.genericShow(genericOptions)(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsArgument(Data_Show.showRecord()(Data_Show.showRecordFieldsCons({\n reflectSymbol: function () {\n return \"addDate\";\n }\n })(Data_Show.showRecordFieldsCons({\n reflectSymbol: function () {\n return \"addYaml\";\n }\n })(Data_Show.showRecordFieldsCons({\n reflectSymbol: function () {\n return \"format\";\n }\n })(Data_Show.showRecordFieldsCons({\n reflectSymbol: function () {\n return \"lookupLocation\";\n }\n })(Data_Show.showRecordFieldsNil)(showLookupLocation))(showFormat))(showAddYamlHeader))(showAddDate))))({\n reflectSymbol: function () {\n return \"Options\";\n }\n }))\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Convert a `String` to a `Format`.\n * |\n * | If the given string is not one of the `Format` options, `Text` is returned.\n * |\n * | * `st` - The string representation of the `Format` to convert to a `Format`.\n */ \n var formatFromString = function (st) {\n if (st === Data_Show.show(showFormat)(Markdown.value)) {\n return Markdown.value;\n };\n if (st === Data_Show.show(showFormat)(OrgMode.value)) {\n return OrgMode.value;\n };\n if (Data_Boolean.otherwise) {\n return Text.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 259, column 1 - line 259, column 37): \" + [ st.constructor.name ]);\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | File suffixes of the document formats.\n */ \n var fileSuffix = {\n markdown: \".md\",\n orgMode: \".org\",\n text: \".txt\"\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the file suffix for the given `Format`.\n * |\n * | - Markdown: `.md`\n * | - OrgMode: `.org`\n * | - Text: `.txt`\n * |\n * | * `options` - The `Options` object with the format to use.\n */ \n var noteFileSuffix = function (v) {\n if (v.format instanceof Markdown) {\n return fileSuffix.markdown;\n };\n if (v.format instanceof OrgMode) {\n return fileSuffix.orgMode;\n };\n if (v.format instanceof Text) {\n return fileSuffix.text;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 305, column 1 - line 305, column 36): \" + [ v.constructor.name ]);\n };\n var eqLookupLocation = {\n eq: function (x) {\n return function (y) {\n if (x instanceof ReverseGeolocation && y instanceof ReverseGeolocation) {\n return true;\n };\n if (x instanceof NoReverseGeolocation && y instanceof NoReverseGeolocation) {\n return true;\n };\n return false;\n };\n }\n };\n var eqFormat = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Markdown && y instanceof Markdown) {\n return true;\n };\n if (x instanceof OrgMode && y instanceof OrgMode) {\n return true;\n };\n if (x instanceof Text && y instanceof Text) {\n return true;\n };\n return false;\n };\n }\n };\n var eqAddYamlHeader = {\n eq: function (x) {\n return function (y) {\n if (x instanceof NoYamlHeader && y instanceof NoYamlHeader) {\n return true;\n };\n if (x instanceof AddYamlHeader && y instanceof AddYamlHeader) {\n return true;\n };\n return false;\n };\n }\n };\n var eqAddDate = {\n eq: function (x) {\n return function (y) {\n if (x instanceof NoDate && y instanceof NoDate) {\n return true;\n };\n if (x instanceof AddDate && y instanceof AddDate) {\n return true;\n };\n return false;\n };\n }\n };\n var eqOptions = {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq(eqAddDate)(x.addDate)(y.addDate) && Data_Eq.eq(eqAddYamlHeader)(x.addYaml)(y.addYaml) && Data_Eq.eq(eqFormat)(x.format)(y.format) && Data_Eq.eq(eqLookupLocation)(x.lookupLocation)(y.lookupLocation);\n };\n }\n };\n var encodeJsonLookupLocation = {\n encodeJson: Data_Argonaut_Encode_Generic.genericEncodeJson(genericLookupLocation)(Data_Argonaut_Encode_Generic.encodeRepSum(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"ReverseGeolocation\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments))(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"NoReverseGeolocation\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments)))\n };\n var encodeJsonFormat = {\n encodeJson: Data_Argonaut_Encode_Generic.genericEncodeJson(genericFormat)(Data_Argonaut_Encode_Generic.encodeRepSum(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"Markdown\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments))(Data_Argonaut_Encode_Generic.encodeRepSum(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"OrgMode\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments))(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"Text\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments))))\n };\n var encodeJsonAddYamlHeader = {\n encodeJson: Data_Argonaut_Encode_Generic.genericEncodeJson(genericAddYamlHeader)(Data_Argonaut_Encode_Generic.encodeRepSum(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"NoYamlHeader\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments))(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"AddYamlHeader\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments)))\n };\n var encodeJsonAddDate = {\n encodeJson: Data_Argonaut_Encode_Generic.genericEncodeJson(genericAddDate)(Data_Argonaut_Encode_Generic.encodeRepSum(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"NoDate\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments))(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"AddDate\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments)))\n };\n var encodeJsonOptions = {\n encodeJson: Data_Argonaut_Encode_Generic.genericEncodeJson(genericOptions)(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"Options\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsArgument(Data_Argonaut_Encode_Class.encodeRecord(Data_Argonaut_Encode_Class.gEncodeJsonCons(encodeJsonAddDate)(Data_Argonaut_Encode_Class.gEncodeJsonCons(encodeJsonAddYamlHeader)(Data_Argonaut_Encode_Class.gEncodeJsonCons(encodeJsonFormat)(Data_Argonaut_Encode_Class.gEncodeJsonCons(encodeJsonLookupLocation)(Data_Argonaut_Encode_Class.gEncodeJsonNil)({\n reflectSymbol: function () {\n return \"lookupLocation\";\n }\n })())({\n reflectSymbol: function () {\n return \"format\";\n }\n })())({\n reflectSymbol: function () {\n return \"addYaml\";\n }\n })())({\n reflectSymbol: function () {\n return \"addDate\";\n }\n })())())))\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | The default `Options`, markdown format with the current date as timestamp,\n * | but no YAML front matter or reverse geolocation of the position.\n */ \n var defaultOptions = {\n format: Markdown.value,\n addDate: AddDate.value,\n lookupLocation: NoReverseGeolocation.value,\n addYaml: NoYamlHeader.value\n };\n var decodeJsonLookupLocation = {\n decodeJson: Data_Argonaut_Decode_Generic.genericDecodeJson(genericLookupLocation)(Data_Argonaut_Decode_Generic.decodeRepSum(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"ReverseGeolocation\";\n }\n }))(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"NoReverseGeolocation\";\n }\n })))\n };\n var decodeJsonFormat = {\n decodeJson: Data_Argonaut_Decode_Generic.genericDecodeJson(genericFormat)(Data_Argonaut_Decode_Generic.decodeRepSum(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"Markdown\";\n }\n }))(Data_Argonaut_Decode_Generic.decodeRepSum(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"OrgMode\";\n }\n }))(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"Text\";\n }\n }))))\n };\n var decodeJsonAddYamlHeader = {\n decodeJson: Data_Argonaut_Decode_Generic.genericDecodeJson(genericAddYamlHeader)(Data_Argonaut_Decode_Generic.decodeRepSum(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"NoYamlHeader\";\n }\n }))(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"AddYamlHeader\";\n }\n })))\n };\n var decodeJsonAddDate = {\n decodeJson: Data_Argonaut_Decode_Generic.genericDecodeJson(genericAddDate)(Data_Argonaut_Decode_Generic.decodeRepSum(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"NoDate\";\n }\n }))(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"AddDate\";\n }\n })))\n };\n var decodeJsonOptions = {\n decodeJson: Data_Argonaut_Decode_Generic.genericDecodeJson(genericOptions)(Data_Argonaut_Decode_Generic.decodeRepConstructorArg({\n reflectSymbol: function () {\n return \"Options\";\n }\n })(Data_Argonaut_Decode_Class.decodeRecord(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldId(decodeJsonAddDate))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldId(decodeJsonAddYamlHeader))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldId(decodeJsonFormat))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldId(decodeJsonLookupLocation))(Data_Argonaut_Decode_Class.gDecodeJsonNil)({\n reflectSymbol: function () {\n return \"lookupLocation\";\n }\n })()())({\n reflectSymbol: function () {\n return \"format\";\n }\n })()())({\n reflectSymbol: function () {\n return \"addYaml\";\n }\n })()())({\n reflectSymbol: function () {\n return \"addDate\";\n }\n })()())()))\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Convert a `Boolean` to an `AddDate`.\n * |\n * | * `b` - If `b` is `true`, return `AddDate`. Else return `NoDate`.\n */ \n var addDateFromBool = function (v) {\n if (!v) {\n return NoDate.value;\n };\n if (v) {\n return AddDate.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 270, column 1 - line 270, column 38): \" + [ v.constructor.name ]);\n };\n exports[\"NoDate\"] = NoDate;\n exports[\"AddDate\"] = AddDate;\n exports[\"NoYamlHeader\"] = NoYamlHeader;\n exports[\"AddYamlHeader\"] = AddYamlHeader;\n exports[\"Markdown\"] = Markdown;\n exports[\"OrgMode\"] = OrgMode;\n exports[\"Text\"] = Text;\n exports[\"ReverseGeolocation\"] = ReverseGeolocation;\n exports[\"NoReverseGeolocation\"] = NoReverseGeolocation;\n exports[\"addDateFromBool\"] = addDateFromBool;\n exports[\"defaultOptions\"] = defaultOptions;\n exports[\"formatFromString\"] = formatFromString;\n exports[\"lookupLocationFromBool\"] = lookupLocationFromBool;\n exports[\"noteFileMime\"] = noteFileMime;\n exports[\"noteFileSuffix\"] = noteFileSuffix;\n exports[\"optionsKeyId\"] = optionsKeyId;\n exports[\"yamlHeaderFromBool\"] = yamlHeaderFromBool;\n exports[\"eqOptions\"] = eqOptions;\n exports[\"decodeJsonOptions\"] = decodeJsonOptions;\n exports[\"encodeJsonOptions\"] = encodeJsonOptions;\n exports[\"showOptions\"] = showOptions;\n exports[\"storeKeyIdOptions\"] = storeKeyIdOptions;\n exports[\"eqFormat\"] = eqFormat;\n exports[\"showFormat\"] = showFormat;\n exports[\"eqAddDate\"] = eqAddDate;\n exports[\"eqLookupLocation\"] = eqLookupLocation;\n exports[\"eqAddYamlHeader\"] = eqAddYamlHeader;\n})(PS);\n(function($PS) {\n \n // SPDX-License-Identifier: GPL-3.0-or-later\n // Copyright (C) 2022 Roland Csaszar\n //\n // Project: notoy-pwa\n // File: NoteContent.purs\n // Date: 17.Jan.2022\n //\n // ==============================================================================\n // | Module Data.NoteContent, contains everything to generate a formatted note\n // | from `Note` and `Options` instances.\n \"use strict\";\n $PS[\"Data.NoteContent\"] = $PS[\"Data.NoteContent\"] || {};\n var exports = $PS[\"Data.NoteContent\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Options = $PS[\"Data.Options\"];\n var Data_String_Regex = $PS[\"Data.String.Regex\"];\n var Data_String_Regex_Flags = $PS[\"Data.String.Regex.Flags\"];\n var Data_String_Regex_Unsafe = $PS[\"Data.String.Regex.Unsafe\"];\n var Data_URL = $PS[\"Data.URL\"]; \n\n /**\n * ------------------------------------------------------------------------------\n * | Regex to match consecutive whitespace.\n */ \n var whitespaceToUnderscoreRex = Data_String_Regex_Unsafe.unsafeRegex(\"\\\\s+\")(Data_String_Regex_Flags.unicode);\n\n /**\n * ------------------------------------------------------------------------------\n * | Replace all whitespace in the string with an underscore `_`.\n */ \n var whitespaceToUnderscore = Data_Functor.map(Data_Functor.functorArray)(function (e) {\n return Data_String_Regex.replace(whitespaceToUnderscoreRex)(\"_\")(e);\n });\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the URL of the note as a string, depending on the format of the note.\n */ \n var urlStr = function (v) {\n return function (v1) {\n if (v.url instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n if (v.url instanceof Data_Maybe.Just && v1.format instanceof Data_Options.Markdown) {\n var urlSt = Data_URL.noteUrlToString(v.url.value0);\n var title = (function () {\n if (v.title instanceof Data_Maybe.Nothing) {\n return urlSt;\n };\n if (v.title instanceof Data_Maybe.Just) {\n return v.title.value0;\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 219, column 11 - line 221, column 16): \" + [ v.title.constructor.name ]);\n })();\n return \"[\" + (title + (\"](\" + (urlSt + \")\\x0a\")));\n };\n if (v.url instanceof Data_Maybe.Just && v1.format instanceof Data_Options.OrgMode) {\n var urlSt = Data_URL.noteUrlToString(v.url.value0);\n var title = (function () {\n if (v.title instanceof Data_Maybe.Nothing) {\n return urlSt;\n };\n if (v.title instanceof Data_Maybe.Just) {\n return v.title.value0;\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 234, column 11 - line 236, column 16): \" + [ v.title.constructor.name ]);\n })();\n return \"[[\" + (urlSt + (\"][\" + (title + \"]]\\x0a\")));\n };\n if (v.url instanceof Data_Maybe.Just && v1.format instanceof Data_Options.Text) {\n var urlSt = Data_URL.noteUrlToString(v.url.value0);\n return urlSt + \"\\x0a\";\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 205, column 1 - line 205, column 33): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the title of the note as a string.\n * |\n * | If the title is `Nothing`, \"Title\" is returned.\n */ \n var titleStrFromNote = function (v) {\n return Data_Maybe.fromMaybe(\"Title\")(v.title);\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the short description of the note as a string.\n */ \n var shortDescStr = function (v) {\n if (v.shortDesc instanceof Data_Maybe.Just) {\n return v.shortDesc.value0 + \"\\x0a\";\n };\n if (v.shortDesc instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 197, column 1 - line 197, column 31): \" + [ v.constructor.name ]);\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the detailed description of the note as a string.\n */ \n var longDescStr = function (v) {\n if (v.longDesc instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n if (v.longDesc instanceof Data_Maybe.Just) {\n return v.longDesc.value0 + \"\\x0a\";\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 245, column 1 - line 245, column 30): \" + [ v.constructor.name ]);\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the device's position as a string.\n */ \n var locationStr = function (v) {\n return function (v1) {\n if (v.location instanceof Data_Maybe.Nothing) {\n return \"\\x0a\\x0a\";\n };\n if (v.location instanceof Data_Maybe.Just && v1.format instanceof Data_Options.Markdown) {\n return v.location.value0 + \"\\x0a\\x0a\";\n };\n if (v.location instanceof Data_Maybe.Just && v1.format instanceof Data_Options.OrgMode) {\n return v.location.value0 + \"\\x0a\\x0a\";\n };\n if (v.location instanceof Data_Maybe.Just && v1.format instanceof Data_Options.Text) {\n return v.location.value0 + \"\\x0a\\x0a\";\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 185, column 1 - line 185, column 41): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the keywords as a YAML list, with whitespace replaced by an underscore\n * | `_`.\n */ \n var keywordsToYaml = function (v) {\n return Data_Array.foldr(function (e) {\n return function (acc) {\n return \"\\x0a - \" + (e + acc);\n };\n })(\"\")(whitespaceToUnderscore(v));\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the YAML front matter header as a string.\n */ \n var yamlStrFromNote = function (v) {\n return function (v1) {\n return function (v2) {\n if (v1.addYaml instanceof Data_Options.AddYamlHeader) {\n var keywords = Data_Maybe.fromMaybe([ ])(v.keywords);\n return \"---\\x0atitle: \" + (Data_Maybe.fromMaybe(\"\")(v.title) + (\"\\x0aauthor:\\x0a -\\x0akeywords:\" + (keywordsToYaml(keywords) + (\"\\x0atags:\" + (keywordsToYaml(keywords) + (\"\\x0alang: \" + (v2 + \"\\x0a---\\x0a\\x0a\")))))));\n };\n if (v1.addYaml instanceof Data_Options.NoYamlHeader) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 120, column 1 - line 120, column 55): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the keywords as Org-Mode formatted keywords, that is, as double colon\n * | `:` separated list of keywords, where whitespace has been replaced by an\n * | underscore `_`.\n */ \n var keywordsToOrgMode = function (v) {\n return Data_Array.foldr(function (e) {\n return function (acc) {\n return \":\" + (e + acc);\n };\n })(\":\")(whitespaceToUnderscore(v));\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the keywords as a comma separated list of tags with a hash sign `#` as\n * | prefix of each keyword and all whitespace in the keywords replaced by one\n * | underscore `_`.\n */ \n var keywordsAddHash = function (v) {\n var sanitized = whitespaceToUnderscore(v);\n var rest = Data_Maybe.fromMaybe([ ])(Data_Array.tail(sanitized));\n var frst = Data_Maybe.fromMaybe(\"\")(Data_Array.head(sanitized));\n return \"#\" + (frst + Data_Array.foldr(function (e) {\n return function (acc) {\n return \", #\" + (e + acc);\n };\n })(\"\")(rest));\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the keywords as a comma separated list of tags with a hash sign `#` as\n * | prefix of each keyword and all whitespace in the keywords replaced by one\n * | underscore `_`.\n */ \n var keywordStr = function (v) {\n return function (v1) {\n if (v.keywords instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n if (v.keywords instanceof Data_Maybe.Just && v1.format instanceof Data_Options.Markdown) {\n return \"Keywords: \" + (keywordsAddHash(v.keywords.value0) + \"\\x0a\");\n };\n if (v.keywords instanceof Data_Maybe.Just && v1.format instanceof Data_Options.OrgMode) {\n return \"Keywords: \" + (keywordsAddHash(v.keywords.value0) + \"\\x0a\");\n };\n if (v.keywords instanceof Data_Maybe.Just && v1.format instanceof Data_Options.Text) {\n return \"Keywords: \" + (keywordsAddHash(v.keywords.value0) + \"\\x0a\");\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 149, column 1 - line 149, column 40): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the date timestamp as a string, suitable for the note format used.\n * |\n * | If the format is `OrgMode`, the date is returned in angle brackets ``.\n */ \n var dateStrFromOptions = function (v) {\n return function (v1) {\n if (v.addDate instanceof Data_Options.AddDate && v.format instanceof Data_Options.OrgMode) {\n return \"<\" + (v1 + \"> \");\n };\n if (v.addDate instanceof Data_Options.AddDate) {\n return v1 + \" \";\n };\n if (v.addDate instanceof Data_Options.NoDate) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 172, column 1 - line 172, column 50): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return a markdown formatted note.\n * |\n * | * `options` - The `Options` to use to format the note.\n * | * `note` - The `Note` to format.\n * | * `timestamp` - The timestamp to add to the note if the option is set.\n * | * `language` - The language this note is written in, used for the YAML front\n * | matter header (if enabled in the options).\n */ \n var noteContentMarkdown = function (options) {\n return function (note) {\n return function (timestamp) {\n return function (language) {\n return yamlStrFromNote(note)(options)(language) + (\"# \" + (titleStrFromNote(note) + (\"\\x0a\\x0a\" + (keywordStr(note)(options) + (dateStrFromOptions(options)(timestamp) + (locationStr(note)(options) + (shortDescStr(note) + (urlStr(note)(options) + longDescStr(note)))))))));\n };\n };\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return an Org-Mode formatted note.\n * |\n * | * `options` - The `Options` to use to format the note.\n * | * `note` - The `Note` to format.\n * | * `timestamp` - The timestamp to add to the note if the option is set.\n * | * `language` - The language this note is written in. Not used, as Org-Mode\n * | has it's own header.\n */ \n var noteContentOrgMode = function (options) {\n return function (note) {\n return function (timestamp) {\n return function (v) {\n var keywords = Data_Maybe.fromMaybe([ ])(note.keywords);\n return \"#+title: \" + (titleStrFromNote(note) + (\"\\x0a#+date: \" + (timestamp + (\"\\x0a#+FILETAGS\" + (\"\\x0a\\x0a\" + (\"* \" + (titleStrFromNote(note) + (\"\\x09\\x09\" + (keywordsToOrgMode(keywords) + (\"\\x0a\\x0a\" + (keywordStr(note)(options) + (dateStrFromOptions(options)(timestamp) + (locationStr(note)(options) + (shortDescStr(note) + (urlStr(note)(options) + longDescStr(note))))))))))))))));\n };\n };\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return a plain text formatted note.\n * |\n * | * `options` - The `Options` to use to format the note.\n * | * `note` - The `Note` to format.\n * | * `timestamp` - The timestamp to add to the note if the option is set.\n * | * `language` - The language this note is written in, used for the YAML front\n * | matter header (if enabled in the options).\n */ \n var noteContentText = function (options) {\n return function (note) {\n return function (timestamp) {\n return function (language) {\n return yamlStrFromNote(note)(options)(language) + (titleStrFromNote(note) + (\"\\x0a\\x0a\" + (keywordStr(note)(options) + (dateStrFromOptions(options)(timestamp) + (locationStr(note)(options) + (shortDescStr(note) + (urlStr(note)(options) + longDescStr(note))))))));\n };\n };\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return a formatted note depending on the options set in `options`.\n * |\n * | * `options` - The `Options` to use to format the note.\n * | * `note` - The `Note` to format.\n * | * `timestamp` - The timestamp to add to the note if the option is set.\n * | * `language` - The language this note is written in, used for the YAML front\n * | matter header (if enabled in the options).\n */ \n var noteContentString = function (v) {\n if (v.format instanceof Data_Options.Markdown) {\n return noteContentMarkdown(v);\n };\n if (v.format instanceof Data_Options.OrgMode) {\n return noteContentOrgMode(v);\n };\n if (v.format instanceof Data_Options.Text) {\n return noteContentText(v);\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 34, column 1 - line 34, column 67): \" + [ v.constructor.name ]);\n };\n exports[\"noteContentString\"] = noteContentString;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.List\"] = $PS[\"Data.List\"] || {};\n var exports = $PS[\"Data.List\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var reverse = (function () {\n var go = function ($copy_acc) {\n return function ($copy_v) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, v) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return acc;\n };\n if (v instanceof Data_List_Types.Cons) {\n $tco_var_acc = new Data_List_Types.Cons(v.value0, acc);\n $copy_v = v.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 372, column 3 - line 372, column 19): \" + [ acc.constructor.name, v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_v);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n })();\n var $$null = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return true;\n };\n return false;\n };\n exports[\"null\"] = $$null;\n exports[\"reverse\"] = reverse;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.CatQueue\"] = $PS[\"Data.CatQueue\"] || {};\n var exports = $PS[\"Data.CatQueue\"];\n var Data_List = $PS[\"Data.List\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var CatQueue = (function () {\n function CatQueue(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CatQueue.create = function (value0) {\n return function (value1) {\n return new CatQueue(value0, value1);\n };\n };\n return CatQueue;\n })();\n var uncons = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value0 instanceof Data_List_Types.Nil && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v.value0 instanceof Data_List_Types.Nil) {\n $copy_v = new CatQueue(Data_List.reverse(v.value1), Data_List_Types.Nil.value);\n return;\n };\n if (v.value0 instanceof Data_List_Types.Cons) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value0.value0, new CatQueue(v.value0.value1, v.value1)));\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 83, column 1 - line 83, column 63): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n var snoc = function (v) {\n return function (a) {\n return new CatQueue(v.value0, new Data_List_Types.Cons(a, v.value1));\n };\n };\n var $$null = function (v) {\n if (v.value0 instanceof Data_List_Types.Nil && v.value1 instanceof Data_List_Types.Nil) {\n return true;\n };\n return false;\n };\n var empty = new CatQueue(Data_List_Types.Nil.value, Data_List_Types.Nil.value);\n exports[\"empty\"] = empty;\n exports[\"null\"] = $$null;\n exports[\"snoc\"] = snoc;\n exports[\"uncons\"] = uncons;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.CatList\"] = $PS[\"Data.CatList\"] || {};\n var exports = $PS[\"Data.CatList\"];\n var Data_CatQueue = $PS[\"Data.CatQueue\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var CatNil = (function () {\n function CatNil() {\n\n };\n CatNil.value = new CatNil();\n return CatNil;\n })();\n var CatCons = (function () {\n function CatCons(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CatCons.create = function (value0) {\n return function (value1) {\n return new CatCons(value0, value1);\n };\n };\n return CatCons;\n })();\n var link = function (v) {\n return function (v1) {\n if (v instanceof CatNil) {\n return v1;\n };\n if (v1 instanceof CatNil) {\n return v;\n };\n if (v instanceof CatCons) {\n return new CatCons(v.value0, Data_CatQueue.snoc(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 109, column 1 - line 109, column 54): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n var foldr = function (k) {\n return function (b) {\n return function (q) {\n var foldl = function ($copy_v) {\n return function ($copy_c) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_var_c = $copy_c;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, c, v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return c;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n $tco_var_v = v;\n $tco_var_c = v(c)(v1.value0);\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 125, column 3 - line 125, column 59): \" + [ v.constructor.name, c.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_c, $copy_v1);\n };\n return $tco_result;\n };\n };\n };\n var go = function ($copy_xs) {\n return function ($copy_ys) {\n var $tco_var_xs = $copy_xs;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(xs, ys) {\n var v = Data_CatQueue.uncons(xs);\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done1 = true;\n return foldl(function (x) {\n return function (i) {\n return i(x);\n };\n })(b)(ys);\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_xs = v.value0.value1;\n $copy_ys = new Data_List_Types.Cons(k(v.value0.value0), ys);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 121, column 14 - line 123, column 67): \" + [ v.constructor.name ]);\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_xs, $copy_ys);\n };\n return $tco_result;\n };\n };\n return go(q)(Data_List_Types.Nil.value);\n };\n };\n };\n var uncons = function (v) {\n if (v instanceof CatNil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof CatCons) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value0, (function () {\n var $45 = Data_CatQueue[\"null\"](v.value1);\n if ($45) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v.value1);\n })()));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 100, column 1 - line 100, column 61): \" + [ v.constructor.name ]);\n };\n var empty = CatNil.value;\n var append = link;\n var semigroupCatList = {\n append: append\n };\n var snoc = function (cat) {\n return function (a) {\n return append(cat)(new CatCons(a, Data_CatQueue.empty));\n };\n };\n exports[\"empty\"] = empty;\n exports[\"snoc\"] = snoc;\n exports[\"uncons\"] = uncons;\n exports[\"semigroupCatList\"] = semigroupCatList;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad.Free\"] = $PS[\"Control.Monad.Free\"] || {};\n var exports = $PS[\"Control.Monad.Free\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Data_CatList = $PS[\"Data.CatList\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Free = (function () {\n function Free(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Free.create = function (value0) {\n return function (value1) {\n return new Free(value0, value1);\n };\n };\n return Free;\n })();\n var Return = (function () {\n function Return(value0) {\n this.value0 = value0;\n };\n Return.create = function (value0) {\n return new Return(value0);\n };\n return Return;\n })();\n var Bind = (function () {\n function Bind(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Bind.create = function (value0) {\n return function (value1) {\n return new Bind(value0, value1);\n };\n };\n return Bind;\n })();\n var toView = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n var runExpF = function (v2) {\n return v2;\n };\n var concatF = function (v2) {\n return function (r) {\n return new Free(v2.value0, Data_Semigroup.append(Data_CatList.semigroupCatList)(v2.value1)(r));\n };\n };\n if (v.value0 instanceof Return) {\n var v2 = Data_CatList.uncons(v.value1);\n if (v2 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return new Return(v.value0.value0);\n };\n if (v2 instanceof Data_Maybe.Just) {\n $copy_v = concatF(runExpF(v2.value0.value0)(v.value0.value0))(v2.value0.value1);\n return;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 227, column 7 - line 231, column 64): \" + [ v2.constructor.name ]);\n };\n if (v.value0 instanceof Bind) {\n $tco_done = true;\n return new Bind(v.value0.value0, function (a) {\n return concatF(v.value0.value1(a))(v.value1);\n });\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 225, column 3 - line 233, column 56): \" + [ v.value0.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n var fromView = function (f) {\n return new Free(f, Data_CatList.empty);\n };\n var freeMonad = {\n Applicative0: function () {\n return freeApplicative;\n },\n Bind1: function () {\n return freeBind;\n }\n };\n var freeFunctor = {\n map: function (k) {\n return function (f) {\n return Control_Bind.bindFlipped(freeBind)((function () {\n var $119 = Control_Applicative.pure(freeApplicative);\n return function ($120) {\n return $119(k($120));\n };\n })())(f);\n };\n }\n };\n var freeBind = {\n bind: function (v) {\n return function (k) {\n return new Free(v.value0, Data_CatList.snoc(v.value1)(k));\n };\n },\n Apply0: function () {\n return freeApply;\n }\n };\n var freeApply = {\n apply: Control_Monad.ap(freeMonad),\n Functor0: function () {\n return freeFunctor;\n }\n };\n var freeApplicative = {\n pure: function ($121) {\n return fromView(Return.create($121));\n },\n Apply0: function () {\n return freeApply;\n }\n };\n var liftF = function (f) {\n return fromView(new Bind(f, (function () {\n var $122 = Control_Applicative.pure(freeApplicative);\n return function ($123) {\n return $122($123);\n };\n })()));\n };\n var foldFree = function (dictMonadRec) {\n return function (k) {\n var go = function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_Rec_Class.Done.create)(Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(v.value0));\n };\n if (v instanceof Bind) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(function ($135) {\n return Control_Monad_Rec_Class.Loop.create(v.value1($135));\n })(k(v.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 158, column 10 - line 160, column 37): \" + [ v.constructor.name ]);\n };\n return Control_Monad_Rec_Class.tailRecM(dictMonadRec)(go);\n };\n };\n exports[\"liftF\"] = liftF;\n exports[\"foldFree\"] = foldFree;\n exports[\"freeFunctor\"] = freeFunctor;\n exports[\"freeBind\"] = freeBind;\n exports[\"freeApplicative\"] = freeApplicative;\n exports[\"freeMonad\"] = freeMonad;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Aff.Class\"] = $PS[\"Effect.Aff.Class\"] || {};\n var exports = $PS[\"Effect.Aff.Class\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Effect_Aff = $PS[\"Effect.Aff\"]; \n var monadAffAff = {\n liftAff: Control_Category.identity(Control_Category.categoryFn),\n MonadEffect0: function () {\n return Effect_Aff.monadEffectAff;\n }\n };\n var liftAff = function (dict) {\n return dict.liftAff;\n };\n exports[\"liftAff\"] = liftAff;\n exports[\"monadAffAff\"] = monadAffAff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Map.Internal\"] = $PS[\"Data.Map.Internal\"] || {};\n var exports = $PS[\"Data.Map.Internal\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Ordering = $PS[\"Data.Ordering\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var Leaf = (function () {\n function Leaf() {\n\n };\n Leaf.value = new Leaf();\n return Leaf;\n })();\n var Two = (function () {\n function Two(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Two.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Two(value0, value1, value2, value3);\n };\n };\n };\n };\n return Two;\n })();\n var Three = (function () {\n function Three(value0, value1, value2, value3, value4, value5, value6) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n this.value6 = value6;\n };\n Three.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return function (value6) {\n return new Three(value0, value1, value2, value3, value4, value5, value6);\n };\n };\n };\n };\n };\n };\n };\n return Three;\n })();\n var TwoLeft = (function () {\n function TwoLeft(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n TwoLeft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new TwoLeft(value0, value1, value2);\n };\n };\n };\n return TwoLeft;\n })();\n var TwoRight = (function () {\n function TwoRight(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n TwoRight.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new TwoRight(value0, value1, value2);\n };\n };\n };\n return TwoRight;\n })();\n var ThreeLeft = (function () {\n function ThreeLeft(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeLeft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeLeft(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeLeft;\n })();\n var ThreeMiddle = (function () {\n function ThreeMiddle(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeMiddle.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeMiddle(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeMiddle;\n })();\n var ThreeRight = (function () {\n function ThreeRight(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeRight.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeRight(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeRight;\n })();\n var KickUp = (function () {\n function KickUp(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n KickUp.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new KickUp(value0, value1, value2, value3);\n };\n };\n };\n };\n return KickUp;\n })();\n var values = function (v) {\n if (v instanceof Leaf) {\n return Data_List_Types.Nil.value;\n };\n if (v instanceof Two) {\n return Data_Semigroup.append(Data_List_Types.semigroupList)(values(v.value0))(Data_Semigroup.append(Data_List_Types.semigroupList)(Control_Applicative.pure(Data_List_Types.applicativeList)(v.value2))(values(v.value3)));\n };\n if (v instanceof Three) {\n return Data_Semigroup.append(Data_List_Types.semigroupList)(values(v.value0))(Data_Semigroup.append(Data_List_Types.semigroupList)(Control_Applicative.pure(Data_List_Types.applicativeList)(v.value2))(Data_Semigroup.append(Data_List_Types.semigroupList)(values(v.value3))(Data_Semigroup.append(Data_List_Types.semigroupList)(Control_Applicative.pure(Data_List_Types.applicativeList)(v.value5))(values(v.value6)))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 626, column 1 - line 626, column 40): \" + [ v.constructor.name ]);\n };\n var lookup = function (dictOrd) {\n return function (k) {\n var comp = Data_Ord.compare(dictOrd);\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Leaf) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Two) {\n var v2 = comp(k)(v.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value2);\n };\n if (v2 instanceof Data_Ordering.LT) {\n $copy_v = v.value0;\n return;\n };\n $copy_v = v.value3;\n return;\n };\n if (v instanceof Three) {\n var v3 = comp(k)(v.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value2);\n };\n var v4 = comp(k)(v.value4);\n if (v4 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value5);\n };\n if (v3 instanceof Data_Ordering.LT) {\n $copy_v = v.value0;\n return;\n };\n if (v4 instanceof Data_Ordering.GT) {\n $copy_v = v.value6;\n return;\n };\n $copy_v = v.value3;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 211, column 5 - line 211, column 22): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go;\n };\n };\n var fromZipper = function ($copy_dictOrd) {\n return function ($copy_v) {\n return function ($copy_tree) {\n var $tco_var_dictOrd = $copy_dictOrd;\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictOrd, v, tree) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return tree;\n };\n if (v instanceof Data_List_Types.Cons) {\n if (v.value0 instanceof TwoLeft) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Two(tree, v.value0.value0, v.value0.value1, v.value0.value2);\n return;\n };\n if (v.value0 instanceof TwoRight) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Two(v.value0.value0, v.value0.value1, v.value0.value2, tree);\n return;\n };\n if (v.value0 instanceof ThreeLeft) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(tree, v.value0.value0, v.value0.value1, v.value0.value2, v.value0.value3, v.value0.value4, v.value0.value5);\n return;\n };\n if (v.value0 instanceof ThreeMiddle) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(v.value0.value0, v.value0.value1, v.value0.value2, tree, v.value0.value3, v.value0.value4, v.value0.value5);\n return;\n };\n if (v.value0 instanceof ThreeRight) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(v.value0.value0, v.value0.value1, v.value0.value2, v.value0.value3, v.value0.value4, v.value0.value5, tree);\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 432, column 3 - line 437, column 88): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 429, column 1 - line 429, column 80): \" + [ v.constructor.name, tree.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictOrd, $tco_var_v, $copy_tree);\n };\n return $tco_result;\n };\n };\n };\n var insert = function (dictOrd) {\n return function (k) {\n return function (v) {\n var up = function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v1, v2) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Two(v2.value0, v2.value1, v2.value2, v2.value3);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n if (v1.value0 instanceof TwoLeft) {\n $tco_done = true;\n return fromZipper(dictOrd)(v1.value1)(new Three(v2.value0, v2.value1, v2.value2, v2.value3, v1.value0.value0, v1.value0.value1, v1.value0.value2));\n };\n if (v1.value0 instanceof TwoRight) {\n $tco_done = true;\n return fromZipper(dictOrd)(v1.value1)(new Three(v1.value0.value0, v1.value0.value1, v1.value0.value2, v2.value0, v2.value1, v2.value2, v2.value3));\n };\n if (v1.value0 instanceof ThreeLeft) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v2.value0, v2.value1, v2.value2, v2.value3), v1.value0.value0, v1.value0.value1, new Two(v1.value0.value2, v1.value0.value3, v1.value0.value4, v1.value0.value5));\n return;\n };\n if (v1.value0 instanceof ThreeMiddle) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v1.value0.value0, v1.value0.value1, v1.value0.value2, v2.value0), v2.value1, v2.value2, new Two(v2.value3, v1.value0.value3, v1.value0.value4, v1.value0.value5));\n return;\n };\n if (v1.value0 instanceof ThreeRight) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v1.value0.value0, v1.value0.value1, v1.value0.value2, v1.value0.value3), v1.value0.value4, v1.value0.value5, new Two(v2.value0, v2.value1, v2.value2, v2.value3));\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 468, column 5 - line 473, column 108): \" + [ v1.value0.constructor.name, v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 465, column 3 - line 465, column 56): \" + [ v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n var comp = Data_Ord.compare(dictOrd);\n var down = function ($copy_ctx) {\n return function ($copy_v1) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(ctx, v1) {\n if (v1 instanceof Leaf) {\n $tco_done1 = true;\n return up(ctx)(new KickUp(Leaf.value, k, v, Leaf.value));\n };\n if (v1 instanceof Two) {\n var v2 = comp(k)(v1.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_done1 = true;\n return fromZipper(dictOrd)(ctx)(new Two(v1.value0, k, v, v1.value3));\n };\n if (v2 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoLeft(v1.value1, v1.value2, v1.value3), ctx);\n $copy_v1 = v1.value0;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(v1.value0, v1.value1, v1.value2), ctx);\n $copy_v1 = v1.value3;\n return;\n };\n if (v1 instanceof Three) {\n var v3 = comp(k)(v1.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n $tco_done1 = true;\n return fromZipper(dictOrd)(ctx)(new Three(v1.value0, k, v, v1.value3, v1.value4, v1.value5, v1.value6));\n };\n var v4 = comp(k)(v1.value4);\n if (v4 instanceof Data_Ordering.EQ) {\n $tco_done1 = true;\n return fromZipper(dictOrd)(ctx)(new Three(v1.value0, v1.value1, v1.value2, v1.value3, k, v, v1.value6));\n };\n if (v3 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeLeft(v1.value1, v1.value2, v1.value3, v1.value4, v1.value5, v1.value6), ctx);\n $copy_v1 = v1.value0;\n return;\n };\n if (v3 instanceof Data_Ordering.GT && v4 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeMiddle(v1.value0, v1.value1, v1.value2, v1.value4, v1.value5, v1.value6), ctx);\n $copy_v1 = v1.value3;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(v1.value0, v1.value1, v1.value2, v1.value3, v1.value4, v1.value5), ctx);\n $copy_v1 = v1.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 448, column 3 - line 448, column 55): \" + [ ctx.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_v1);\n };\n return $tco_result;\n };\n };\n return down(Data_List_Types.Nil.value);\n };\n };\n };\n var pop = function (dictOrd) {\n return function (k) {\n var up = function ($copy_ctxs) {\n return function ($copy_tree) {\n var $tco_var_ctxs = $copy_ctxs;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(ctxs, tree) {\n if (ctxs instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return tree;\n };\n if (ctxs instanceof Data_List_Types.Cons) {\n if (ctxs.value0 instanceof TwoLeft && (ctxs.value0.value2 instanceof Leaf && tree instanceof Leaf)) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(Leaf.value, ctxs.value0.value0, ctxs.value0.value1, Leaf.value));\n };\n if (ctxs.value0 instanceof TwoRight && (ctxs.value0.value0 instanceof Leaf && tree instanceof Leaf)) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value));\n };\n if (ctxs.value0 instanceof TwoLeft && ctxs.value0.value2 instanceof Two) {\n $tco_var_ctxs = ctxs.value1;\n $copy_tree = new Three(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0, ctxs.value0.value2.value1, ctxs.value0.value2.value2, ctxs.value0.value2.value3);\n return;\n };\n if (ctxs.value0 instanceof TwoRight && ctxs.value0.value0 instanceof Two) {\n $tco_var_ctxs = ctxs.value1;\n $copy_tree = new Three(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3, ctxs.value0.value1, ctxs.value0.value2, tree);\n return;\n };\n if (ctxs.value0 instanceof TwoLeft && ctxs.value0.value2 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Two(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0), ctxs.value0.value2.value1, ctxs.value0.value2.value2, new Two(ctxs.value0.value2.value3, ctxs.value0.value2.value4, ctxs.value0.value2.value5, ctxs.value0.value2.value6)));\n };\n if (ctxs.value0 instanceof TwoRight && ctxs.value0.value0 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Two(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3), ctxs.value0.value0.value4, ctxs.value0.value0.value5, new Two(ctxs.value0.value0.value6, ctxs.value0.value1, ctxs.value0.value2, tree)));\n };\n if (ctxs.value0 instanceof ThreeLeft && (ctxs.value0.value2 instanceof Leaf && (ctxs.value0.value5 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value0, ctxs.value0.value1, Leaf.value, ctxs.value0.value3, ctxs.value0.value4, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeMiddle && (ctxs.value0.value0 instanceof Leaf && (ctxs.value0.value5 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value, ctxs.value0.value3, ctxs.value0.value4, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeRight && (ctxs.value0.value0 instanceof Leaf && (ctxs.value0.value3 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value, ctxs.value0.value4, ctxs.value0.value5, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeLeft && ctxs.value0.value2 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Three(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0, ctxs.value0.value2.value1, ctxs.value0.value2.value2, ctxs.value0.value2.value3), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value0 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Three(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3, ctxs.value0.value1, ctxs.value0.value2, tree), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value5 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Three(tree, ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5.value0, ctxs.value0.value5.value1, ctxs.value0.value5.value2, ctxs.value0.value5.value3)));\n };\n if (ctxs.value0 instanceof ThreeRight && ctxs.value0.value3 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Three(ctxs.value0.value3.value0, ctxs.value0.value3.value1, ctxs.value0.value3.value2, ctxs.value0.value3.value3, ctxs.value0.value4, ctxs.value0.value5, tree)));\n };\n if (ctxs.value0 instanceof ThreeLeft && ctxs.value0.value2 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(new Two(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0), ctxs.value0.value2.value1, ctxs.value0.value2.value2, new Two(ctxs.value0.value2.value3, ctxs.value0.value2.value4, ctxs.value0.value2.value5, ctxs.value0.value2.value6), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value0 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(new Two(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3), ctxs.value0.value0.value4, ctxs.value0.value0.value5, new Two(ctxs.value0.value0.value6, ctxs.value0.value1, ctxs.value0.value2, tree), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value5 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Two(tree, ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5.value0), ctxs.value0.value5.value1, ctxs.value0.value5.value2, new Two(ctxs.value0.value5.value3, ctxs.value0.value5.value4, ctxs.value0.value5.value5, ctxs.value0.value5.value6)));\n };\n if (ctxs.value0 instanceof ThreeRight && ctxs.value0.value3 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Two(ctxs.value0.value3.value0, ctxs.value0.value3.value1, ctxs.value0.value3.value2, ctxs.value0.value3.value3), ctxs.value0.value3.value4, ctxs.value0.value3.value5, new Two(ctxs.value0.value3.value6, ctxs.value0.value4, ctxs.value0.value5, tree)));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 525, column 9 - line 542, column 136): \" + [ ctxs.value0.constructor.name, tree.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 522, column 5 - line 542, column 136): \" + [ ctxs.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_ctxs, $copy_tree);\n };\n return $tco_result;\n };\n };\n var removeMaxNode = function ($copy_ctx) {\n return function ($copy_m) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(ctx, m) {\n if (m instanceof Two && (m.value0 instanceof Leaf && m.value3 instanceof Leaf)) {\n $tco_done1 = true;\n return up(ctx)(Leaf.value);\n };\n if (m instanceof Two) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(m.value0, m.value1, m.value2), ctx);\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three && (m.value0 instanceof Leaf && (m.value3 instanceof Leaf && m.value6 instanceof Leaf))) {\n $tco_done1 = true;\n return up(new Data_List_Types.Cons(new TwoRight(Leaf.value, m.value1, m.value2), ctx))(Leaf.value);\n };\n if (m instanceof Three) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(m.value0, m.value1, m.value2, m.value3, m.value4, m.value5), ctx);\n $copy_m = m.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 554, column 5 - line 558, column 107): \" + [ m.constructor.name ]);\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_m);\n };\n return $tco_result;\n };\n };\n var maxNode = function ($copy_m) {\n var $tco_done2 = false;\n var $tco_result;\n function $tco_loop(m) {\n if (m instanceof Two && m.value3 instanceof Leaf) {\n $tco_done2 = true;\n return {\n key: m.value1,\n value: m.value2\n };\n };\n if (m instanceof Two) {\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three && m.value6 instanceof Leaf) {\n $tco_done2 = true;\n return {\n key: m.value4,\n value: m.value5\n };\n };\n if (m instanceof Three) {\n $copy_m = m.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 545, column 33 - line 549, column 45): \" + [ m.constructor.name ]);\n };\n while (!$tco_done2) {\n $tco_result = $tco_loop($copy_m);\n };\n return $tco_result;\n };\n var comp = Data_Ord.compare(dictOrd);\n var down = function ($copy_ctx) {\n return function ($copy_m) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done3 = false;\n var $tco_result;\n function $tco_loop(ctx, m) {\n if (m instanceof Leaf) {\n $tco_done3 = true;\n return Data_Maybe.Nothing.value;\n };\n if (m instanceof Two) {\n var v = comp(k)(m.value1);\n if (m.value3 instanceof Leaf && v instanceof Data_Ordering.EQ) {\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, up(ctx)(Leaf.value)));\n };\n if (v instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value0);\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, removeMaxNode(new Data_List_Types.Cons(new TwoLeft(max.key, max.value, m.value3), ctx))(m.value0)));\n };\n if (v instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoLeft(m.value1, m.value2, m.value3), ctx);\n $copy_m = m.value0;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(m.value0, m.value1, m.value2), ctx);\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three) {\n var leaves = (function () {\n if (m.value0 instanceof Leaf && (m.value3 instanceof Leaf && m.value6 instanceof Leaf)) {\n return true;\n };\n return false;\n })();\n var v = comp(k)(m.value4);\n var v3 = comp(k)(m.value1);\n if (leaves && v3 instanceof Data_Ordering.EQ) {\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, fromZipper(dictOrd)(ctx)(new Two(Leaf.value, m.value4, m.value5, Leaf.value))));\n };\n if (leaves && v instanceof Data_Ordering.EQ) {\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value5, fromZipper(dictOrd)(ctx)(new Two(Leaf.value, m.value1, m.value2, Leaf.value))));\n };\n if (v3 instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value0);\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, removeMaxNode(new Data_List_Types.Cons(new ThreeLeft(max.key, max.value, m.value3, m.value4, m.value5, m.value6), ctx))(m.value0)));\n };\n if (v instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value3);\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value5, removeMaxNode(new Data_List_Types.Cons(new ThreeMiddle(m.value0, m.value1, m.value2, max.key, max.value, m.value6), ctx))(m.value3)));\n };\n if (v3 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeLeft(m.value1, m.value2, m.value3, m.value4, m.value5, m.value6), ctx);\n $copy_m = m.value0;\n return;\n };\n if (v3 instanceof Data_Ordering.GT && v instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeMiddle(m.value0, m.value1, m.value2, m.value4, m.value5, m.value6), ctx);\n $copy_m = m.value3;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(m.value0, m.value1, m.value2, m.value3, m.value4, m.value5), ctx);\n $copy_m = m.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 495, column 34 - line 518, column 80): \" + [ m.constructor.name ]);\n };\n while (!$tco_done3) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_m);\n };\n return $tco_result;\n };\n };\n return down(Data_List_Types.Nil.value);\n };\n };\n var foldableMap = {\n foldl: function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldl(Data_List_Types.foldableList)(f)(z)(values(m));\n };\n };\n },\n foldr: function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldr(Data_List_Types.foldableList)(f)(z)(values(m));\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (m) {\n return Data_Foldable.foldMap(Data_List_Types.foldableList)(dictMonoid)(f)(values(m));\n };\n };\n }\n };\n var empty = Leaf.value;\n var $$delete = function (dictOrd) {\n return function (k) {\n return function (m) {\n return Data_Maybe.maybe(m)(Data_Tuple.snd)(pop(dictOrd)(k)(m));\n };\n };\n };\n var alter = function (dictOrd) {\n return function (f) {\n return function (k) {\n return function (m) {\n var v = f(lookup(dictOrd)(k)(m));\n if (v instanceof Data_Maybe.Nothing) {\n return $$delete(dictOrd)(k)(m);\n };\n if (v instanceof Data_Maybe.Just) {\n return insert(dictOrd)(k)(v.value0)(m);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 563, column 15 - line 565, column 25): \" + [ v.constructor.name ]);\n };\n };\n };\n };\n exports[\"empty\"] = empty;\n exports[\"insert\"] = insert;\n exports[\"lookup\"] = lookup;\n exports[\"delete\"] = $$delete;\n exports[\"pop\"] = pop;\n exports[\"alter\"] = alter;\n exports[\"foldableMap\"] = foldableMap;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Data.OrdBox\"] = $PS[\"Halogen.Data.OrdBox\"] || {};\n var exports = $PS[\"Halogen.Data.OrdBox\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Ord = $PS[\"Data.Ord\"]; \n var OrdBox = (function () {\n function OrdBox(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n OrdBox.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new OrdBox(value0, value1, value2);\n };\n };\n };\n return OrdBox;\n })();\n var mkOrdBox = function (dictOrd) {\n return OrdBox.create(Data_Eq.eq(dictOrd.Eq0()))(Data_Ord.compare(dictOrd));\n };\n var eqOrdBox = {\n eq: function (v) {\n return function (v1) {\n return v.value0(v.value2)(v1.value2);\n };\n }\n };\n var ordOrdBox = {\n compare: function (v) {\n return function (v1) {\n return v.value1(v.value2)(v1.value2);\n };\n },\n Eq0: function () {\n return eqOrdBox;\n }\n };\n exports[\"mkOrdBox\"] = mkOrdBox;\n exports[\"ordOrdBox\"] = ordOrdBox;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Data.Slot\"] = $PS[\"Halogen.Data.Slot\"] || {};\n var exports = $PS[\"Halogen.Data.Slot\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Halogen_Data_OrdBox = $PS[\"Halogen.Data.OrdBox\"];\n var pop = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (v) {\n return Data_Map_Internal.pop(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(v);\n };\n };\n };\n };\n };\n };\n var lookup = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (v) {\n return Data_Map_Internal.lookup(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(v);\n };\n };\n };\n };\n };\n };\n var insert = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (val) {\n return function (v) {\n return Data_Map_Internal.insert(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(val)(v);\n };\n };\n };\n };\n };\n };\n };\n var foreachSlot = function (dictApplicative) {\n return function (v) {\n return function (k) {\n return Data_Foldable.traverse_(dictApplicative)(Data_Map_Internal.foldableMap)(function ($37) {\n return k($37);\n })(v);\n };\n };\n };\n var empty = Data_Map_Internal.empty;\n exports[\"empty\"] = empty;\n exports[\"lookup\"] = lookup;\n exports[\"insert\"] = insert;\n exports[\"pop\"] = pop;\n exports[\"foreachSlot\"] = foreachSlot;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Query.ChildQuery\"] = $PS[\"Halogen.Query.ChildQuery\"] || {};\n var exports = $PS[\"Halogen.Query.ChildQuery\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var ChildQuery = (function () {\n function ChildQuery(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n ChildQuery.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new ChildQuery(value0, value1, value2);\n };\n };\n };\n return ChildQuery;\n })();\n var unChildQueryBox = Unsafe_Coerce.unsafeCoerce;\n var mkChildQueryBox = Unsafe_Coerce.unsafeCoerce;\n exports[\"ChildQuery\"] = ChildQuery;\n exports[\"mkChildQueryBox\"] = mkChildQueryBox;\n exports[\"unChildQueryBox\"] = unChildQueryBox;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Query.HalogenM\"] = $PS[\"Halogen.Query.HalogenM\"] || {};\n var exports = $PS[\"Halogen.Query.HalogenM\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Monad_Free = $PS[\"Control.Monad.Free\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Halogen_Data_Slot = $PS[\"Halogen.Data.Slot\"];\n var Halogen_Query_ChildQuery = $PS[\"Halogen.Query.ChildQuery\"]; \n var SubscriptionId = function (x) {\n return x;\n };\n var ForkId = function (x) {\n return x;\n };\n var State = (function () {\n function State(value0) {\n this.value0 = value0;\n };\n State.create = function (value0) {\n return new State(value0);\n };\n return State;\n })();\n var Subscribe = (function () {\n function Subscribe(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Subscribe.create = function (value0) {\n return function (value1) {\n return new Subscribe(value0, value1);\n };\n };\n return Subscribe;\n })();\n var Unsubscribe = (function () {\n function Unsubscribe(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Unsubscribe.create = function (value0) {\n return function (value1) {\n return new Unsubscribe(value0, value1);\n };\n };\n return Unsubscribe;\n })();\n var Lift = (function () {\n function Lift(value0) {\n this.value0 = value0;\n };\n Lift.create = function (value0) {\n return new Lift(value0);\n };\n return Lift;\n })();\n var ChildQuery = (function () {\n function ChildQuery(value0) {\n this.value0 = value0;\n };\n ChildQuery.create = function (value0) {\n return new ChildQuery(value0);\n };\n return ChildQuery;\n })();\n var Raise = (function () {\n function Raise(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Raise.create = function (value0) {\n return function (value1) {\n return new Raise(value0, value1);\n };\n };\n return Raise;\n })();\n var Par = (function () {\n function Par(value0) {\n this.value0 = value0;\n };\n Par.create = function (value0) {\n return new Par(value0);\n };\n return Par;\n })();\n var Fork = (function () {\n function Fork(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Fork.create = function (value0) {\n return function (value1) {\n return new Fork(value0, value1);\n };\n };\n return Fork;\n })();\n var Kill = (function () {\n function Kill(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Kill.create = function (value0) {\n return function (value1) {\n return new Kill(value0, value1);\n };\n };\n return Kill;\n })();\n var GetRef = (function () {\n function GetRef(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n GetRef.create = function (value0) {\n return function (value1) {\n return new GetRef(value0, value1);\n };\n };\n return GetRef;\n })();\n var HalogenM = function (x) {\n return x;\n };\n var subscribe$prime = function (esc) {\n return HalogenM(Control_Monad_Free.liftF(new Subscribe(esc, Data_Function[\"const\"](Data_Unit.unit))));\n };\n var raise = function (o) {\n return HalogenM(Control_Monad_Free.liftF(new Raise(o, Data_Unit.unit)));\n };\n var query = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (p) {\n return function (q) {\n return HalogenM(Control_Monad_Free.liftF(ChildQuery.create(Halogen_Query_ChildQuery.mkChildQueryBox(new Halogen_Query_ChildQuery.ChildQuery(function (dictApplicative) {\n return function (k) {\n var $132 = Data_Maybe.maybe(Control_Applicative.pure(dictApplicative)(Data_Maybe.Nothing.value))(k);\n var $133 = Halogen_Data_Slot.lookup()(dictIsSymbol)(dictOrd)(label)(p);\n return function ($134) {\n return $132($133($134));\n };\n };\n }, q, Control_Category.identity(Control_Category.categoryFn))))));\n };\n };\n };\n };\n };\n };\n var ordSubscriptionId = Data_Ord.ordInt;\n var ordForkId = Data_Ord.ordInt;\n var monadHalogenM = Control_Monad_Free.freeMonad;\n var monadStateHalogenM = {\n state: function ($136) {\n return HalogenM(Control_Monad_Free.liftF(State.create($136)));\n },\n Monad0: function () {\n return monadHalogenM;\n }\n };\n var monadEffectHalogenM = function (dictMonadEffect) {\n return {\n liftEffect: (function () {\n var $141 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($142) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($141($142))));\n };\n })(),\n Monad0: function () {\n return monadHalogenM;\n }\n };\n };\n var monadAffHalogenM = function (dictMonadAff) {\n return {\n liftAff: (function () {\n var $143 = Effect_Aff_Class.liftAff(dictMonadAff);\n return function ($144) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($143($144))));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectHalogenM(dictMonadAff.MonadEffect0());\n }\n };\n };\n var functorHalogenM = Control_Monad_Free.freeFunctor;\n var bindHalogenM = Control_Monad_Free.freeBind; \n var applicativeHalogenM = Control_Monad_Free.freeApplicative;\n exports[\"State\"] = State;\n exports[\"Subscribe\"] = Subscribe;\n exports[\"Unsubscribe\"] = Unsubscribe;\n exports[\"Lift\"] = Lift;\n exports[\"ChildQuery\"] = ChildQuery;\n exports[\"Raise\"] = Raise;\n exports[\"Par\"] = Par;\n exports[\"Fork\"] = Fork;\n exports[\"Kill\"] = Kill;\n exports[\"GetRef\"] = GetRef;\n exports[\"raise\"] = raise;\n exports[\"query\"] = query;\n exports[\"SubscriptionId\"] = SubscriptionId;\n exports[\"subscribe'\"] = subscribe$prime;\n exports[\"ForkId\"] = ForkId;\n exports[\"functorHalogenM\"] = functorHalogenM;\n exports[\"applicativeHalogenM\"] = applicativeHalogenM;\n exports[\"bindHalogenM\"] = bindHalogenM;\n exports[\"monadEffectHalogenM\"] = monadEffectHalogenM;\n exports[\"monadAffHalogenM\"] = monadAffHalogenM;\n exports[\"monadStateHalogenM\"] = monadStateHalogenM;\n exports[\"ordSubscriptionId\"] = ordSubscriptionId;\n exports[\"ordForkId\"] = ordForkId;\n})(PS);\n(function(exports) {\n \"use strict\"; \n\n exports.blobImpl = function (args) {\n return function (mediaType) {\n return new Blob(args, {type: mediaType});\n };\n };\n})(PS[\"Web.File.Blob\"] = PS[\"Web.File.Blob\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.File.Blob\"] = $PS[\"Web.File.Blob\"] || {};\n var exports = $PS[\"Web.File.Blob\"];\n var $foreign = $PS[\"Web.File.Blob\"];\n var fromString = function (str) {\n return function (ct) {\n return $foreign.blobImpl([ str ])(ct);\n };\n };\n exports[\"fromString\"] = fromString;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"App.State\"] = $PS[\"App.State\"] || {};\n var exports = $PS[\"App.State\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_MediaType = $PS[\"Data.MediaType\"];\n var Data_Note = $PS[\"Data.Note\"];\n var Data_NoteContent = $PS[\"Data.NoteContent\"];\n var Data_Options = $PS[\"Data.Options\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Helpers_General = $PS[\"Helpers.General\"];\n var Web_File_Blob = $PS[\"Web.File.Blob\"]; \n var setOptionsStateGeneric = function (dictMonadAff) {\n return function (f) {\n return function (newOptions) {\n return f(function (state) {\n return {\n options: newOptions,\n note: state.note\n };\n });\n };\n };\n };\n var setOptionsState_ = function (dictMonadAff) {\n return setOptionsStateGeneric(dictMonadAff)(Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM));\n };\n var setOptionsState = function (dictMonadAff) {\n return setOptionsStateGeneric(dictMonadAff)(Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM));\n };\n var setNoteStateGeneric = function (dictMonadAff) {\n return function (f) {\n return function (newNote) {\n return f(function (state) {\n return {\n options: state.options,\n note: newNote\n };\n });\n };\n };\n };\n var setNoteState_ = function (dictMonadAff) {\n return setNoteStateGeneric(dictMonadAff)(Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM));\n };\n var setNoteState = function (dictMonadAff) {\n return setNoteStateGeneric(dictMonadAff)(Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM));\n };\n var makeBlob = function (state) {\n return function (timestamp) {\n return function (language) {\n var mediaType = Data_MediaType.MediaType(Data_Options.noteFileMime(state.options));\n var content = Data_NoteContent.noteContentString(state.options)(state.note)(timestamp)(language);\n return Web_File_Blob.fromString(content)(mediaType);\n };\n };\n };\n var initialState = function (v) {\n return {\n options: Data_Options.defaultOptions,\n note: Data_Note.defaultNote\n };\n };\n var getState = function (dictMonadAff) {\n return Control_Monad_State_Class.get(Halogen_Query_HalogenM.monadStateHalogenM);\n };\n var filenameFromState = function (state) {\n var title = Data_Maybe.fromMaybe(\"note\")(state.note.title);\n return Helpers_General.sanitizeFileName(title) + Data_Options.noteFileSuffix(state.options);\n };\n exports[\"filenameFromState\"] = filenameFromState;\n exports[\"getState\"] = getState;\n exports[\"initialState\"] = initialState;\n exports[\"makeBlob\"] = makeBlob;\n exports[\"setNoteState\"] = setNoteState;\n exports[\"setNoteState_\"] = setNoteState_;\n exports[\"setOptionsState\"] = setOptionsState;\n exports[\"setOptionsState_\"] = setOptionsState_;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.log = function (s) {\n return function () {\n console.log(s);\n };\n };\n\n exports.warn = function (s) {\n return function () {\n console.warn(s);\n };\n };\n})(PS[\"Effect.Console\"] = PS[\"Effect.Console\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Console\"] = $PS[\"Effect.Console\"] || {};\n var exports = $PS[\"Effect.Console\"];\n var $foreign = $PS[\"Effect.Console\"];\n exports[\"log\"] = $foreign.log;\n exports[\"warn\"] = $foreign.warn;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.StoreKey\"] = $PS[\"Data.StoreKey\"] || {};\n var exports = $PS[\"Data.StoreKey\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var storeKeyIdToString = Data_Newtype.unwrap();\n var key = function (dict) {\n return dict.key;\n };\n var storeKeyIdStringFromObject = function (dictStoreKey) {\n var $7 = key(dictStoreKey);\n return function ($8) {\n return storeKeyIdToString($7($8));\n };\n };\n exports[\"storeKeyIdStringFromObject\"] = storeKeyIdStringFromObject;\n exports[\"storeKeyIdToString\"] = storeKeyIdToString;\n})(PS);\n(function(exports) {\n // SPDX-License-Identifier: GPL-3.0-or-later\n // Copyright (C) 2022 Roland Csaszar\n //\n // Project: notoy-pwa\n // File: DateTime.js\n // Date: 18.Jan.2022\n //\n // ==============================================================================\n /* eslint-disable no-undef */\n\n // eslint-disable-next-line strict\n \"use strict\"\n\n exports.getDateStringJS = getDateStringJS \n\n /**\n * Return the current local date in ISO format, \"YYYY-MM-DD\".\n *\n * @returns The current local date in ISO format, \"YYYY-MM-DD\".\n */ \n function getDateStringJS() {\n return function () {\n const today = new Date()\n\n return (\n today.getFullYear() +\n \"-\" +\n // eslint-disable-next-line no-magic-numbers\n pad0s(today.getMonth() + 1) +\n \"-\" +\n pad0s(today.getDate())\n )\n }\n }\n\n /**\n * Left pad the given number with a zero `0`, if it is lesser than 10.\n *\n * @param {number} n - The number to format\n * @returns The number with a leading zero `0`, if it is lesser than 10, the\n * number else.\n */ \n function pad0s(n) {\n // eslint-disable-next-line no-magic-numbers\n return n < 10 ? \"0\" + n : n.toString()\n }\n})(PS[\"Helpers.DateTime\"] = PS[\"Helpers.DateTime\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Helpers.DateTime\"] = $PS[\"Helpers.DateTime\"] || {};\n var exports = $PS[\"Helpers.DateTime\"];\n var $foreign = $PS[\"Helpers.DateTime\"];\n exports[\"getDateStringJS\"] = $foreign.getDateStringJS;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.setAttribute = function (name) {\n return function (value) {\n return function (element) {\n return function () {\n element.setAttribute(name, value);\n };\n };\n };\n };\n})(PS[\"Web.DOM.Element\"] = PS[\"Web.DOM.Element\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.DOM.Element\"] = $PS[\"Web.DOM.Element\"] || {};\n var exports = $PS[\"Web.DOM.Element\"];\n var $foreign = $PS[\"Web.DOM.Element\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var toNode = Unsafe_Coerce.unsafeCoerce;\n exports[\"toNode\"] = toNode;\n exports[\"setAttribute\"] = $foreign.setAttribute;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._getElementById = function (id) {\n return function (node) {\n return function () {\n return node.getElementById(id);\n };\n };\n };\n})(PS[\"Web.DOM.NonElementParentNode\"] = PS[\"Web.DOM.NonElementParentNode\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.DOM.NonElementParentNode\"] = $PS[\"Web.DOM.NonElementParentNode\"] || {};\n var exports = $PS[\"Web.DOM.NonElementParentNode\"];\n var $foreign = $PS[\"Web.DOM.NonElementParentNode\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Effect = $PS[\"Effect\"]; \n var getElementById = function (eid) {\n var $0 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $1 = $foreign[\"_getElementById\"](eid);\n return function ($2) {\n return $0($1($2));\n };\n };\n exports[\"getElementById\"] = getElementById;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.createObjectURL = function (blob) {\n return function () {\n return URL.createObjectURL(blob);\n };\n };\n})(PS[\"Web.File.Url\"] = PS[\"Web.File.Url\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.File.Url\"] = $PS[\"Web.File.Url\"] || {};\n var exports = $PS[\"Web.File.Url\"];\n var $foreign = $PS[\"Web.File.Url\"];\n exports[\"createObjectURL\"] = $foreign.createObjectURL;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.window = function () {\n return window;\n };\n})(PS[\"Web.HTML\"] = PS[\"Web.HTML\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML\"] = $PS[\"Web.HTML\"] || {};\n var exports = $PS[\"Web.HTML\"];\n var $foreign = $PS[\"Web.HTML\"];\n exports[\"window\"] = $foreign.window;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.setText = function (text) {\n return function (a) {\n return function () {\n a.text = text;\n };\n };\n };\n})(PS[\"Web.HTML.HTMLAnchorElement\"] = PS[\"Web.HTML.HTMLAnchorElement\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports._unsafeReadProtoTagged = function (nothing, just, name, value) {\n if (typeof window !== \"undefined\") {\n var ty = window[name];\n if (ty != null && value instanceof ty) {\n return just(value);\n }\n }\n var obj = value;\n while (obj != null) {\n var proto = Object.getPrototypeOf(obj);\n var constructorName = proto.constructor.name;\n if (constructorName === name) {\n return just(value);\n } else if (constructorName === \"Object\") {\n return nothing;\n }\n obj = proto;\n }\n return nothing;\n };\n})(PS[\"Web.Internal.FFI\"] = PS[\"Web.Internal.FFI\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.Internal.FFI\"] = $PS[\"Web.Internal.FFI\"] || {};\n var exports = $PS[\"Web.Internal.FFI\"];\n var $foreign = $PS[\"Web.Internal.FFI\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var unsafeReadProtoTagged = function (name) {\n return function (value) {\n return $foreign[\"_unsafeReadProtoTagged\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, name, value);\n };\n };\n exports[\"unsafeReadProtoTagged\"] = unsafeReadProtoTagged;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.HTMLAnchorElement\"] = $PS[\"Web.HTML.HTMLAnchorElement\"] || {};\n var exports = $PS[\"Web.HTML.HTMLAnchorElement\"];\n var $foreign = $PS[\"Web.HTML.HTMLAnchorElement\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Web_Internal_FFI = $PS[\"Web.Internal.FFI\"]; \n var toHTMLElement = Unsafe_Coerce.unsafeCoerce;\n var toElement = Unsafe_Coerce.unsafeCoerce; \n var fromElement = Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLAnchorElement\");\n exports[\"fromElement\"] = fromElement;\n exports[\"toHTMLElement\"] = toHTMLElement;\n exports[\"toElement\"] = toElement;\n exports[\"setText\"] = $foreign.setText;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._readyState = function (doc) {\n return function () {\n return doc.readyState;\n };\n };\n})(PS[\"Web.HTML.HTMLDocument\"] = PS[\"Web.HTML.HTMLDocument\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.HTMLDocument.ReadyState\"] = $PS[\"Web.HTML.HTMLDocument.ReadyState\"] || {};\n var exports = $PS[\"Web.HTML.HTMLDocument.ReadyState\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var Loading = (function () {\n function Loading() {\n\n };\n Loading.value = new Loading();\n return Loading;\n })();\n var Interactive = (function () {\n function Interactive() {\n\n };\n Interactive.value = new Interactive();\n return Interactive;\n })();\n var Complete = (function () {\n function Complete() {\n\n };\n Complete.value = new Complete();\n return Complete;\n })();\n var parse = function (v) {\n if (v === \"loading\") {\n return new Data_Maybe.Just(Loading.value);\n };\n if (v === \"interactive\") {\n return new Data_Maybe.Just(Interactive.value);\n };\n if (v === \"complete\") {\n return new Data_Maybe.Just(Complete.value);\n };\n return Data_Maybe.Nothing.value;\n };\n exports[\"Loading\"] = Loading;\n exports[\"parse\"] = parse;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.HTMLDocument\"] = $PS[\"Web.HTML.HTMLDocument\"] || {};\n var exports = $PS[\"Web.HTML.HTMLDocument\"];\n var $foreign = $PS[\"Web.HTML.HTMLDocument\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Effect = $PS[\"Effect\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Web_HTML_HTMLDocument_ReadyState = $PS[\"Web.HTML.HTMLDocument.ReadyState\"];\n var toParentNode = Unsafe_Coerce.unsafeCoerce;\n var toNonElementParentNode = Unsafe_Coerce.unsafeCoerce;\n var toDocument = Unsafe_Coerce.unsafeCoerce;\n var readyState = (function () {\n var $0 = Data_Functor.map(Effect.functorEffect)((function () {\n var $2 = Data_Maybe.fromMaybe(Web_HTML_HTMLDocument_ReadyState.Loading.value);\n return function ($3) {\n return $2(Web_HTML_HTMLDocument_ReadyState.parse($3));\n };\n })());\n return function ($1) {\n return $0($foreign[\"_readyState\"]($1));\n };\n })();\n exports[\"toDocument\"] = toDocument;\n exports[\"toParentNode\"] = toParentNode;\n exports[\"toNonElementParentNode\"] = toNonElementParentNode;\n exports[\"readyState\"] = readyState;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._read = function (nothing, just, value) {\n var tag = Object.prototype.toString.call(value);\n if (tag.indexOf(\"[object HTML\") === 0 && tag.indexOf(\"Element]\") === tag.length - 8) {\n return just(value);\n } else {\n return nothing;\n }\n };\n\n // ----------------------------------------------------------------------------\n\n exports.click = function (elt) {\n return function () {\n return elt.click();\n };\n };\n})(PS[\"Web.HTML.HTMLElement\"] = PS[\"Web.HTML.HTMLElement\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.HTMLElement\"] = $PS[\"Web.HTML.HTMLElement\"] || {};\n var exports = $PS[\"Web.HTML.HTMLElement\"];\n var $foreign = $PS[\"Web.HTML.HTMLElement\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var toNode = Unsafe_Coerce.unsafeCoerce;\n var fromElement = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n };\n exports[\"fromElement\"] = fromElement;\n exports[\"toNode\"] = toNode;\n exports[\"click\"] = $foreign.click;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // ----------------------------------------------------------------------------\n\n exports.href = function (location) {\n return function () {\n return location.href;\n };\n };\n})(PS[\"Web.HTML.Location\"] = PS[\"Web.HTML.Location\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.Location\"] = $PS[\"Web.HTML.Location\"] || {};\n var exports = $PS[\"Web.HTML.Location\"];\n var $foreign = $PS[\"Web.HTML.Location\"];\n exports[\"href\"] = $foreign.href;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.language = function (navigator) {\n return function () {\n return navigator.language;\n };\n };\n})(PS[\"Web.HTML.Navigator\"] = PS[\"Web.HTML.Navigator\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.Navigator\"] = $PS[\"Web.HTML.Navigator\"] || {};\n var exports = $PS[\"Web.HTML.Navigator\"];\n var $foreign = $PS[\"Web.HTML.Navigator\"];\n exports[\"language\"] = $foreign.language;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.document = function (window) {\n return function () {\n return window.document;\n };\n };\n\n exports.navigator = function (window) {\n return function () {\n return window.navigator;\n };\n };\n\n exports.location = function (window) {\n return function () {\n return window.location;\n };\n };\n\n exports.localStorage = function (window) {\n return function () {\n return window.localStorage;\n };\n };\n})(PS[\"Web.HTML.Window\"] = PS[\"Web.HTML.Window\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.Window\"] = $PS[\"Web.HTML.Window\"] || {};\n var exports = $PS[\"Web.HTML.Window\"];\n var $foreign = $PS[\"Web.HTML.Window\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var toEventTarget = Unsafe_Coerce.unsafeCoerce;\n exports[\"toEventTarget\"] = toEventTarget;\n exports[\"document\"] = $foreign.document;\n exports[\"navigator\"] = $foreign.navigator;\n exports[\"location\"] = $foreign.location;\n exports[\"localStorage\"] = $foreign.localStorage;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._getItem = function (key) {\n return function (storage) {\n return function () {\n return storage.getItem(key);\n };\n };\n };\n\n exports.setItem = function (key) {\n return function (value) {\n return function (storage) {\n return function () {\n storage.setItem(key, value);\n };\n };\n };\n };\n})(PS[\"Web.Storage.Storage\"] = PS[\"Web.Storage.Storage\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.Storage.Storage\"] = $PS[\"Web.Storage.Storage\"] || {};\n var exports = $PS[\"Web.Storage.Storage\"];\n var $foreign = $PS[\"Web.Storage.Storage\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Effect = $PS[\"Effect\"];\n var getItem = function (s) {\n var $3 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $4 = $foreign[\"_getItem\"](s);\n return function ($5) {\n return $3($4($5));\n };\n };\n exports[\"getItem\"] = getItem;\n exports[\"setItem\"] = $foreign.setItem;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Helpers.Browser\"] = $PS[\"Helpers.Browser\"] || {};\n var exports = $PS[\"Helpers.Browser\"];\n var Affjax = $PS[\"Affjax\"];\n var Affjax_ResponseFormat = $PS[\"Affjax.ResponseFormat\"];\n var App_Constants = $PS[\"App.Constants\"];\n var App_State = $PS[\"App.State\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_DateTimeFormat = $PS[\"Data.DateTimeFormat\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_HTTP_Method = $PS[\"Data.HTTP.Method\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_StoreKey = $PS[\"Data.StoreKey\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Console = $PS[\"Effect.Console\"];\n var Helpers_DateTime = $PS[\"Helpers.DateTime\"];\n var Helpers_General = $PS[\"Helpers.General\"];\n var Web_DOM_Element = $PS[\"Web.DOM.Element\"];\n var Web_DOM_NonElementParentNode = $PS[\"Web.DOM.NonElementParentNode\"];\n var Web_File_Url = $PS[\"Web.File.Url\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_HTMLAnchorElement = $PS[\"Web.HTML.HTMLAnchorElement\"];\n var Web_HTML_HTMLDocument = $PS[\"Web.HTML.HTMLDocument\"];\n var Web_HTML_HTMLElement = $PS[\"Web.HTML.HTMLElement\"];\n var Web_HTML_Location = $PS[\"Web.HTML.Location\"];\n var Web_HTML_Navigator = $PS[\"Web.HTML.Navigator\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"];\n var Web_Storage_Storage = $PS[\"Web.Storage.Storage\"];\n var Web_URL = $PS[\"Web.URL\"]; \n var saveToLocalStorage = function (dictStoreKey) {\n return function (dictEncodeJson) {\n return function (win) {\n return function (object) {\n return function __do() {\n var s = Web_HTML_Window.localStorage(win)();\n return Web_Storage_Storage.setItem(Data_StoreKey.storeKeyIdStringFromObject(dictStoreKey)(object))(Helpers_General.encodeToJsonString(dictEncodeJson)(object))(s)();\n };\n };\n };\n };\n };\n var loadFromLocalStorage = function (dictDecodeJson) {\n return function (win) {\n return function (key) {\n return function __do() {\n var s = Web_HTML_Window.localStorage(win)();\n var jsonStr = Web_Storage_Storage.getItem(Data_StoreKey.storeKeyIdToString(key))(s)();\n if (jsonStr instanceof Data_Maybe.Nothing) {\n Effect_Console.log(\"Error loading item for key \" + Data_StoreKey.storeKeyIdToString(key))();\n return Data_Maybe.Nothing.value;\n };\n if (jsonStr instanceof Data_Maybe.Just) {\n var v = Helpers_General.decodeJsonFromString(Data_Argonaut_Decode_Class.decodeJsonMaybe(dictDecodeJson))(jsonStr.value0);\n if (v instanceof Data_Either.Left) {\n Effect_Console.log(v.value0)();\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Either.Right) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Helpers.Browser (line 219, column 17 - line 223, column 28): \" + [ v.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Helpers.Browser (line 215, column 3 - line 223, column 28): \" + [ jsonStr.constructor.name ]);\n };\n };\n };\n };\n var getLanguage = function (v) {\n return function __do() {\n var locale = Control_Bind.bind(Effect.bindEffect)(Control_Bind.bind(Effect.bindEffect)(Web_HTML.window)(Web_HTML_Window.navigator))(Web_HTML_Navigator.language)();\n return locale;\n };\n };\n var reverseGeoLocation = function (getURLForGeoloc) {\n return function (geolocJson2String) {\n return function (pos) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(getLanguage(Data_Unit.unit)))(function (locale) {\n var fetchUrl = getURLForGeoloc(locale)(pos);\n return Control_Bind.bind(Effect_Aff.bindAff)(Affjax.request({\n method: new Data_Either.Left(Data_HTTP_Method.GET.value),\n url: fetchUrl,\n headers: Affjax.defaultRequest.headers,\n content: Affjax.defaultRequest.content,\n username: Affjax.defaultRequest.username,\n password: Affjax.defaultRequest.password,\n withCredentials: Affjax.defaultRequest.withCredentials,\n responseFormat: Affjax_ResponseFormat.json,\n timeout: Affjax.defaultRequest.timeout\n }))(function (result) {\n if (result instanceof Data_Either.Left) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Either.Left.create(Affjax.printError(result.value0)));\n };\n if (result instanceof Data_Either.Right) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Either.Right.create(geolocJson2String(result.value0.body)));\n };\n throw new Error(\"Failed pattern match at Helpers.Browser (line 79, column 3 - line 81, column 69): \" + [ result.constructor.name ]);\n });\n });\n };\n };\n };\n var getElementFromId = function (id) {\n return function __do() {\n var doc = Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Window.document)(Web_HTML.window)();\n return Web_DOM_NonElementParentNode.getElementById(id)(Web_HTML_HTMLDocument.toNonElementParentNode(doc))();\n };\n };\n var getCurrentUrlString = function (v) {\n return Control_Bind.bind(Effect.bindEffect)(Control_Bind.bind(Effect.bindEffect)(Web_HTML.window)(Web_HTML_Window.location))(Web_HTML_Location.href);\n };\n var getCurrentUrl = function (v) {\n return function __do() {\n var urlString = getCurrentUrlString(Data_Unit.unit)();\n return Web_URL.fromAbsolute(urlString);\n };\n };\n var downloadFromAnchor = function (filenameFromObj) {\n return function (makeBlobFromObj) {\n return function (anchorEl) {\n return function (obj) {\n var filename = filenameFromObj(obj);\n var element = Web_HTML_HTMLAnchorElement.toElement(anchorEl);\n return function __do() {\n Web_DOM_Element.setAttribute(App_Constants.downloadAttr)(filename)(element)();\n Web_HTML_HTMLAnchorElement.setText(filename)(anchorEl)();\n var timestamp = Helpers_DateTime.getDateStringJS(Data_Unit.unit)();\n var locale = getLanguage(Data_Unit.unit)();\n var blobUrl = Web_File_Url.createObjectURL(makeBlobFromObj(obj)(timestamp)(Data_DateTimeFormat.localeToString(locale)))();\n Web_DOM_Element.setAttribute(App_Constants.hrefAttr)(blobUrl)(element)();\n return Web_HTML_HTMLElement.click(Web_HTML_HTMLAnchorElement.toHTMLElement(anchorEl))();\n };\n };\n };\n };\n };\n var downloadNote = function (aId) {\n return function (state) {\n return function __do() {\n var hiddenA = getElementFromId(aId)();\n if (hiddenA instanceof Data_Maybe.Nothing) {\n return Effect_Console.log(\"Error trying to download: hidden element not found: \" + aId)();\n };\n if (hiddenA instanceof Data_Maybe.Just) {\n var v = Web_HTML_HTMLAnchorElement.fromElement(hiddenA.value0);\n if (v instanceof Data_Maybe.Nothing) {\n return Effect_Console.log(\"Error trying to download: the element with id \" + (aId + \" is not an anchor\"))();\n };\n if (v instanceof Data_Maybe.Just) {\n return downloadFromAnchor(App_State.filenameFromState)(App_State.makeBlob)(v.value0)(state)();\n };\n throw new Error(\"Failed pattern match at Helpers.Browser (line 95, column 16 - line 100, column 84): \" + [ v.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Helpers.Browser (line 93, column 3 - line 100, column 84): \" + [ hiddenA.constructor.name ]);\n };\n };\n };\n exports[\"downloadNote\"] = downloadNote;\n exports[\"getCurrentUrl\"] = getCurrentUrl;\n exports[\"loadFromLocalStorage\"] = loadFromLocalStorage;\n exports[\"reverseGeoLocation\"] = reverseGeoLocation;\n exports[\"saveToLocalStorage\"] = saveToLocalStorage;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.getImpl = function(just) {\n return function(nothing) {\n return function(name) {\n return function(p) {\n var v = p.get(name);\n if (v === null) {\n return nothing;\n } else {\n return just(v);\n }\n }\n }\n }\n };\n})(PS[\"Web.URL.URLSearchParams\"] = PS[\"Web.URL.URLSearchParams\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.URL.URLSearchParams\"] = $PS[\"Web.URL.URLSearchParams\"] || {};\n var exports = $PS[\"Web.URL.URLSearchParams\"];\n var $foreign = $PS[\"Web.URL.URLSearchParams\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var get = $foreign.getImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n exports[\"get\"] = get;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"App.ShareTarget\"] = $PS[\"App.ShareTarget\"] || {};\n var exports = $PS[\"App.ShareTarget\"];\n var $foreign = $PS[\"App.ShareTarget\"];\n var App_State = $PS[\"App.State\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Promise = $PS[\"Control.Promise\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Note = $PS[\"Data.Note\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_URL = $PS[\"Data.URL\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Console = $PS[\"Effect.Console\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Helpers_Browser = $PS[\"Helpers.Browser\"];\n var Web_URL = $PS[\"Web.URL\"];\n var Web_URL_URLSearchParams = $PS[\"Web.URL.URLSearchParams\"]; \n var shareTargetFields = {\n title: \"title\",\n url: \"url\",\n text: \"text\"\n };\n var handleShare = function (dictMonadAff) {\n return function (win) {\n return function (v) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Helpers_Browser.getCurrentUrl(Data_Unit.unit)))(function (url) {\n if (url instanceof Data_Maybe.Just) {\n var toSearch = Web_URL.searchParams(url.value0);\n var sharedUrl = Web_URL_URLSearchParams.get(shareTargetFields.url)(toSearch);\n var sharedTitle = Web_URL_URLSearchParams.get(shareTargetFields.title)(toSearch);\n var sharedText = Web_URL_URLSearchParams.get(shareTargetFields.text)(toSearch);\n var maybeURL = Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Data_URL.noteUrlFromString)(sharedUrl);\n var note = Data_Note.fromShared(sharedTitle)(maybeURL)(sharedText);\n if (note.title instanceof Data_Maybe.Nothing && (note.url instanceof Data_Maybe.Nothing && (note.keywords instanceof Data_Maybe.Nothing && (note.shortDesc instanceof Data_Maybe.Nothing && note.longDesc instanceof Data_Maybe.Nothing)))) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(App_State.setNoteState_(dictMonadAff)(note))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Helpers_Browser.saveToLocalStorage(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)(win)(note)))(function () {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Effect_Console.log(\"Got shared note: \" + Data_Show.show(Data_Note.showNote)(note)));\n });\n });\n };\n if (url instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at App.ShareTarget (line 87, column 3 - line 113, column 25): \" + [ url.constructor.name ]);\n });\n };\n };\n };\n var canShare = $foreign.canShareJS(Data_Unit.unit);\n var shareNote = function (v) {\n var shortDescString = (function () {\n if (v.shortDesc instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n if (v.shortDesc instanceof Data_Maybe.Just) {\n return v.shortDesc.value0 + \"\\x0a\";\n };\n throw new Error(\"Failed pattern match at App.ShareTarget (line 61, column 21 - line 63, column 34): \" + [ v.shortDesc.constructor.name ]);\n })();\n var locationString = (function () {\n if (v.location instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n if (v.location instanceof Data_Maybe.Just) {\n return \"Location: \" + (v.location.value0 + \"\\x0a\\x0a\");\n };\n throw new Error(\"Failed pattern match at App.ShareTarget (line 57, column 20 - line 59, column 56): \" + [ v.location.constructor.name ]);\n })();\n var keywordString = (function () {\n if (v.keywords instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n if (v.keywords instanceof Data_Maybe.Just) {\n return \"Keywords: \" + (Data_Show.show(Data_Note.showKeyWordArray)(v.keywords.value0) + \"\\x0a\\x0a\");\n };\n throw new Error(\"Failed pattern match at App.ShareTarget (line 53, column 19 - line 55, column 65): \" + [ v.keywords.constructor.name ]);\n })();\n var noteRecord = {\n title: Data_Maybe.fromMaybe(\"\")(v.title),\n url: Data_Maybe.fromMaybe(\"\")(Data_Functor.map(Data_Maybe.functorMaybe)(Data_URL.noteUrlToString)(v.url)),\n text: keywordString + (locationString + (shortDescString + Data_Maybe.fromMaybe(\"\")(v.longDesc)))\n };\n if (canShare) {\n return Control_Promise.toAffE($foreign.shareNoteJS(noteRecord));\n };\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Unit.unit);\n };\n exports[\"canShare\"] = canShare;\n exports[\"handleShare\"] = handleShare;\n exports[\"shareNote\"] = shareNote;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"DOM.HTML.Indexed.InputType\"] = $PS[\"DOM.HTML.Indexed.InputType\"] || {};\n var exports = $PS[\"DOM.HTML.Indexed.InputType\"];\n var InputButton = (function () {\n function InputButton() {\n\n };\n InputButton.value = new InputButton();\n return InputButton;\n })();\n var InputCheckbox = (function () {\n function InputCheckbox() {\n\n };\n InputCheckbox.value = new InputCheckbox();\n return InputCheckbox;\n })();\n var InputColor = (function () {\n function InputColor() {\n\n };\n InputColor.value = new InputColor();\n return InputColor;\n })();\n var InputDate = (function () {\n function InputDate() {\n\n };\n InputDate.value = new InputDate();\n return InputDate;\n })();\n var InputDatetimeLocal = (function () {\n function InputDatetimeLocal() {\n\n };\n InputDatetimeLocal.value = new InputDatetimeLocal();\n return InputDatetimeLocal;\n })();\n var InputEmail = (function () {\n function InputEmail() {\n\n };\n InputEmail.value = new InputEmail();\n return InputEmail;\n })();\n var InputFile = (function () {\n function InputFile() {\n\n };\n InputFile.value = new InputFile();\n return InputFile;\n })();\n var InputHidden = (function () {\n function InputHidden() {\n\n };\n InputHidden.value = new InputHidden();\n return InputHidden;\n })();\n var InputImage = (function () {\n function InputImage() {\n\n };\n InputImage.value = new InputImage();\n return InputImage;\n })();\n var InputMonth = (function () {\n function InputMonth() {\n\n };\n InputMonth.value = new InputMonth();\n return InputMonth;\n })();\n var InputNumber = (function () {\n function InputNumber() {\n\n };\n InputNumber.value = new InputNumber();\n return InputNumber;\n })();\n var InputPassword = (function () {\n function InputPassword() {\n\n };\n InputPassword.value = new InputPassword();\n return InputPassword;\n })();\n var InputRadio = (function () {\n function InputRadio() {\n\n };\n InputRadio.value = new InputRadio();\n return InputRadio;\n })();\n var InputRange = (function () {\n function InputRange() {\n\n };\n InputRange.value = new InputRange();\n return InputRange;\n })();\n var InputReset = (function () {\n function InputReset() {\n\n };\n InputReset.value = new InputReset();\n return InputReset;\n })();\n var InputSearch = (function () {\n function InputSearch() {\n\n };\n InputSearch.value = new InputSearch();\n return InputSearch;\n })();\n var InputSubmit = (function () {\n function InputSubmit() {\n\n };\n InputSubmit.value = new InputSubmit();\n return InputSubmit;\n })();\n var InputTel = (function () {\n function InputTel() {\n\n };\n InputTel.value = new InputTel();\n return InputTel;\n })();\n var InputText = (function () {\n function InputText() {\n\n };\n InputText.value = new InputText();\n return InputText;\n })();\n var InputTime = (function () {\n function InputTime() {\n\n };\n InputTime.value = new InputTime();\n return InputTime;\n })();\n var InputUrl = (function () {\n function InputUrl() {\n\n };\n InputUrl.value = new InputUrl();\n return InputUrl;\n })();\n var InputWeek = (function () {\n function InputWeek() {\n\n };\n InputWeek.value = new InputWeek();\n return InputWeek;\n })();\n var renderInputType = function (v) {\n if (v instanceof InputButton) {\n return \"button\";\n };\n if (v instanceof InputCheckbox) {\n return \"checkbox\";\n };\n if (v instanceof InputColor) {\n return \"color\";\n };\n if (v instanceof InputDate) {\n return \"date\";\n };\n if (v instanceof InputDatetimeLocal) {\n return \"datetime-local\";\n };\n if (v instanceof InputEmail) {\n return \"email\";\n };\n if (v instanceof InputFile) {\n return \"file\";\n };\n if (v instanceof InputHidden) {\n return \"hidden\";\n };\n if (v instanceof InputImage) {\n return \"image\";\n };\n if (v instanceof InputMonth) {\n return \"month\";\n };\n if (v instanceof InputNumber) {\n return \"number\";\n };\n if (v instanceof InputPassword) {\n return \"password\";\n };\n if (v instanceof InputRadio) {\n return \"radio\";\n };\n if (v instanceof InputRange) {\n return \"range\";\n };\n if (v instanceof InputReset) {\n return \"reset\";\n };\n if (v instanceof InputSearch) {\n return \"search\";\n };\n if (v instanceof InputSubmit) {\n return \"submit\";\n };\n if (v instanceof InputTel) {\n return \"tel\";\n };\n if (v instanceof InputText) {\n return \"text\";\n };\n if (v instanceof InputTime) {\n return \"time\";\n };\n if (v instanceof InputUrl) {\n return \"url\";\n };\n if (v instanceof InputWeek) {\n return \"week\";\n };\n throw new Error(\"Failed pattern match at DOM.HTML.Indexed.InputType (line 28, column 19 - line 50, column 22): \" + [ v.constructor.name ]);\n };\n exports[\"InputCheckbox\"] = InputCheckbox;\n exports[\"InputRadio\"] = InputRadio;\n exports[\"InputText\"] = InputText;\n exports[\"InputUrl\"] = InputUrl;\n exports[\"renderInputType\"] = renderInputType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Exists\"] = $PS[\"Data.Exists\"] || {};\n var exports = $PS[\"Data.Exists\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var runExists = Unsafe_Coerce.unsafeCoerce;\n var mkExists = Unsafe_Coerce.unsafeCoerce;\n exports[\"mkExists\"] = mkExists;\n exports[\"runExists\"] = runExists;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Coyoneda\"] = $PS[\"Data.Coyoneda\"] || {};\n var exports = $PS[\"Data.Coyoneda\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Exists = $PS[\"Data.Exists\"]; \n var CoyonedaF = (function () {\n function CoyonedaF(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CoyonedaF.create = function (value0) {\n return function (value1) {\n return new CoyonedaF(value0, value1);\n };\n };\n return CoyonedaF;\n })();\n var Coyoneda = function (x) {\n return x;\n };\n var unCoyoneda = function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return f(v1.value0)(v1.value1);\n })(v);\n };\n };\n var coyoneda = function (k) {\n return function (fi) {\n return Coyoneda(Data_Exists.mkExists(new CoyonedaF(k, fi)));\n };\n };\n var functorCoyoneda = {\n map: function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return coyoneda(function ($84) {\n return f(v1.value0($84));\n })(v1.value1);\n })(v);\n };\n }\n };\n var liftCoyoneda = coyoneda(Control_Category.identity(Control_Category.categoryFn));\n exports[\"unCoyoneda\"] = unCoyoneda;\n exports[\"liftCoyoneda\"] = liftCoyoneda;\n exports[\"functorCoyoneda\"] = functorCoyoneda;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Query.HalogenQ\"] = $PS[\"Halogen.Query.HalogenQ\"] || {};\n var exports = $PS[\"Halogen.Query.HalogenQ\"]; \n var Initialize = (function () {\n function Initialize(value0) {\n this.value0 = value0;\n };\n Initialize.create = function (value0) {\n return new Initialize(value0);\n };\n return Initialize;\n })();\n var Finalize = (function () {\n function Finalize(value0) {\n this.value0 = value0;\n };\n Finalize.create = function (value0) {\n return new Finalize(value0);\n };\n return Finalize;\n })();\n var Receive = (function () {\n function Receive(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Receive.create = function (value0) {\n return function (value1) {\n return new Receive(value0, value1);\n };\n };\n return Receive;\n })();\n var Action = (function () {\n function Action(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Action.create = function (value0) {\n return function (value1) {\n return new Action(value0, value1);\n };\n };\n return Action;\n })();\n var Query = (function () {\n function Query(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Query.create = function (value0) {\n return function (value1) {\n return new Query(value0, value1);\n };\n };\n return Query;\n })();\n exports[\"Initialize\"] = Initialize;\n exports[\"Finalize\"] = Finalize;\n exports[\"Receive\"] = Receive;\n exports[\"Action\"] = Action;\n exports[\"Query\"] = Query;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Component\"] = $PS[\"Halogen.Component\"] || {};\n var exports = $PS[\"Halogen.Component\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Coyoneda = $PS[\"Data.Coyoneda\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Halogen_Data_Slot = $PS[\"Halogen.Data.Slot\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Halogen_Query_HalogenQ = $PS[\"Halogen.Query.HalogenQ\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var ComponentSlot = (function () {\n function ComponentSlot(value0) {\n this.value0 = value0;\n };\n ComponentSlot.create = function (value0) {\n return new ComponentSlot(value0);\n };\n return ComponentSlot;\n })();\n var ThunkSlot = (function () {\n function ThunkSlot(value0) {\n this.value0 = value0;\n };\n ThunkSlot.create = function (value0) {\n return new ThunkSlot(value0);\n };\n return ThunkSlot;\n })();\n var unComponentSlot = Unsafe_Coerce.unsafeCoerce;\n var unComponent = Unsafe_Coerce.unsafeCoerce;\n var mkEval = function (args) {\n return function (v) {\n if (v instanceof Halogen_Query_HalogenQ.Initialize) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.initialize))(v.value0);\n };\n if (v instanceof Halogen_Query_HalogenQ.Finalize) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.finalize))(v.value0);\n };\n if (v instanceof Halogen_Query_HalogenQ.Receive) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.receive(v.value0)))(v.value1);\n };\n if (v instanceof Halogen_Query_HalogenQ.Action) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(args.handleAction(v.value0))(v.value1);\n };\n if (v instanceof Halogen_Query_HalogenQ.Query) {\n return Data_Coyoneda.unCoyoneda(function (g) {\n var $25 = Data_Functor.map(Halogen_Query_HalogenM.functorHalogenM)(Data_Maybe.maybe(v.value1(Data_Unit.unit))(g));\n return function ($26) {\n return $25(args.handleQuery($26));\n };\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at Halogen.Component (line 182, column 15 - line 192, column 70): \" + [ v.constructor.name ]);\n };\n };\n var mkComponentSlot = Unsafe_Coerce.unsafeCoerce;\n var mkComponent = Unsafe_Coerce.unsafeCoerce;\n var defaultEval = {\n handleAction: Data_Function[\"const\"](Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit)),\n handleQuery: Data_Function[\"const\"](Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Maybe.Nothing.value)),\n receive: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n initialize: Data_Maybe.Nothing.value,\n finalize: Data_Maybe.Nothing.value\n };\n var componentSlot = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (p) {\n return function (comp) {\n return function (input) {\n return function (output) {\n return mkComponentSlot({\n get: Halogen_Data_Slot.lookup()(dictIsSymbol)(dictOrd)(label)(p),\n pop: Halogen_Data_Slot.pop()(dictIsSymbol)(dictOrd)(label)(p),\n set: Halogen_Data_Slot.insert()(dictIsSymbol)(dictOrd)(label)(p),\n component: comp,\n input: input,\n output: output\n });\n };\n };\n };\n };\n };\n };\n };\n };\n exports[\"mkComponent\"] = mkComponent;\n exports[\"unComponent\"] = unComponent;\n exports[\"mkEval\"] = mkEval;\n exports[\"defaultEval\"] = defaultEval;\n exports[\"ComponentSlot\"] = ComponentSlot;\n exports[\"ThunkSlot\"] = ThunkSlot;\n exports[\"componentSlot\"] = componentSlot;\n exports[\"unComponentSlot\"] = unComponentSlot;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.VDom.Machine\"] = $PS[\"Halogen.VDom.Machine\"] || {};\n var exports = $PS[\"Halogen.VDom.Machine\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var Step = (function () {\n function Step(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Step.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Step(value0, value1, value2, value3);\n };\n };\n };\n };\n return Step;\n })();\n var unStep = Unsafe_Coerce.unsafeCoerce;\n var step = function (v, a) {\n return v.value2(v.value1, a);\n };\n var mkStep = Unsafe_Coerce.unsafeCoerce;\n var halt = function (v) {\n return v.value3(v.value1);\n };\n var extract = unStep(function (v) {\n return v.value0;\n });\n exports[\"Step\"] = Step;\n exports[\"mkStep\"] = mkStep;\n exports[\"unStep\"] = unStep;\n exports[\"extract\"] = extract;\n exports[\"step\"] = step;\n exports[\"halt\"] = halt;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafeGetAny = function (key, obj) {\n return obj[key];\n };\n\n exports.unsafeHasAny = function (key, obj) {\n return obj.hasOwnProperty(key);\n };\n\n exports.unsafeSetAny = function (key, val, obj) {\n obj[key] = val;\n };\n\n exports.forE = function (a, f) {\n var b = [];\n for (var i = 0; i < a.length; i++) {\n b.push(f(i, a[i]));\n }\n return b;\n };\n\n exports.forEachE = function (a, f) {\n for (var i = 0; i < a.length; i++) {\n f(a[i]);\n }\n };\n\n exports.forInE = function (o, f) {\n var ks = Object.keys(o);\n for (var i = 0; i < ks.length; i++) {\n var k = ks[i];\n f(k, o[k]);\n }\n };\n\n exports.diffWithIxE = function (a1, a2, f1, f2, f3) {\n var a3 = [];\n var l1 = a1.length;\n var l2 = a2.length;\n var i = 0;\n while (1) {\n if (i < l1) {\n if (i < l2) {\n a3.push(f1(i, a1[i], a2[i]));\n } else {\n f2(i, a1[i]);\n }\n } else if (i < l2) {\n a3.push(f3(i, a2[i]));\n } else {\n break;\n }\n i++;\n }\n return a3;\n };\n\n exports.strMapWithIxE = function (as, fk, f) {\n var o = {};\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n var k = fk(a);\n o[k] = f(k, i, a);\n }\n return o;\n };\n\n exports.diffWithKeyAndIxE = function (o1, as, fk, f1, f2, f3) {\n var o2 = {};\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n var k = fk(a);\n if (o1.hasOwnProperty(k)) {\n o2[k] = f1(k, i, o1[k], a);\n } else {\n o2[k] = f3(k, i, a);\n }\n }\n for (var k in o1) {\n if (k in o2) {\n continue;\n }\n f2(k, o1[k]);\n }\n return o2;\n };\n\n exports.refEq = function (a, b) {\n return a === b;\n };\n\n exports.createTextNode = function (s, doc) {\n return doc.createTextNode(s);\n };\n\n exports.setTextContent = function (s, n) {\n n.textContent = s;\n };\n\n exports.createElement = function (ns, name, doc) {\n if (ns != null) {\n return doc.createElementNS(ns, name);\n } else {\n return doc.createElement(name)\n }\n };\n\n exports.insertChildIx = function (i, a, b) {\n var n = b.childNodes.item(i) || null;\n if (n !== a) {\n b.insertBefore(a, n);\n }\n };\n\n exports.removeChild = function (a, b) {\n if (b && a.parentNode === b) {\n b.removeChild(a);\n }\n };\n\n exports.parentNode = function (a) {\n return a.parentNode;\n };\n\n exports.setAttribute = function (ns, attr, val, el) {\n if (ns != null) {\n el.setAttributeNS(ns, attr, val);\n } else {\n el.setAttribute(attr, val);\n }\n };\n\n exports.removeAttribute = function (ns, attr, el) {\n if (ns != null) {\n el.removeAttributeNS(ns, attr);\n } else {\n el.removeAttribute(attr);\n }\n };\n\n exports.hasAttribute = function (ns, attr, el) {\n if (ns != null) {\n return el.hasAttributeNS(ns, attr);\n } else {\n return el.hasAttribute(attr);\n }\n };\n\n exports.addEventListener = function (ev, listener, el) {\n el.addEventListener(ev, listener, false);\n };\n\n exports.removeEventListener = function (ev, listener, el) {\n el.removeEventListener(ev, listener, false);\n };\n\n exports.jsUndefined = void 0;\n})(PS[\"Halogen.VDom.Util\"] = PS[\"Halogen.VDom.Util\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.VDom.Util\"] = $PS[\"Halogen.VDom.Util\"] || {};\n var exports = $PS[\"Halogen.VDom.Util\"];\n var $foreign = $PS[\"Halogen.VDom.Util\"];\n var Foreign_Object_ST = $PS[\"Foreign.Object.ST\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var unsafeLookup = $foreign.unsafeGetAny;\n var unsafeFreeze = Unsafe_Coerce.unsafeCoerce;\n var pokeMutMap = $foreign.unsafeSetAny;\n var newMutMap = Foreign_Object_ST[\"new\"];\n exports[\"newMutMap\"] = newMutMap;\n exports[\"pokeMutMap\"] = pokeMutMap;\n exports[\"unsafeFreeze\"] = unsafeFreeze;\n exports[\"unsafeLookup\"] = unsafeLookup;\n exports[\"unsafeGetAny\"] = $foreign.unsafeGetAny;\n exports[\"unsafeHasAny\"] = $foreign.unsafeHasAny;\n exports[\"unsafeSetAny\"] = $foreign.unsafeSetAny;\n exports[\"forE\"] = $foreign.forE;\n exports[\"forEachE\"] = $foreign.forEachE;\n exports[\"forInE\"] = $foreign.forInE;\n exports[\"diffWithIxE\"] = $foreign.diffWithIxE;\n exports[\"diffWithKeyAndIxE\"] = $foreign.diffWithKeyAndIxE;\n exports[\"strMapWithIxE\"] = $foreign.strMapWithIxE;\n exports[\"refEq\"] = $foreign.refEq;\n exports[\"createTextNode\"] = $foreign.createTextNode;\n exports[\"setTextContent\"] = $foreign.setTextContent;\n exports[\"createElement\"] = $foreign.createElement;\n exports[\"insertChildIx\"] = $foreign.insertChildIx;\n exports[\"removeChild\"] = $foreign.removeChild;\n exports[\"parentNode\"] = $foreign.parentNode;\n exports[\"setAttribute\"] = $foreign.setAttribute;\n exports[\"removeAttribute\"] = $foreign.removeAttribute;\n exports[\"hasAttribute\"] = $foreign.hasAttribute;\n exports[\"addEventListener\"] = $foreign.addEventListener;\n exports[\"removeEventListener\"] = $foreign.removeEventListener;\n exports[\"jsUndefined\"] = $foreign.jsUndefined;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.eventListener = function (fn) {\n return function () {\n return function (event) {\n return fn(event)();\n };\n };\n };\n\n exports.addEventListener = function (type) {\n return function (listener) {\n return function (useCapture) {\n return function (target) {\n return function () {\n return target.addEventListener(type, listener, useCapture);\n };\n };\n };\n };\n };\n\n exports.removeEventListener = function (type) {\n return function (listener) {\n return function (useCapture) {\n return function (target) {\n return function () {\n return target.removeEventListener(type, listener, useCapture);\n };\n };\n };\n };\n };\n})(PS[\"Web.Event.EventTarget\"] = PS[\"Web.Event.EventTarget\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.Event.EventTarget\"] = $PS[\"Web.Event.EventTarget\"] || {};\n var exports = $PS[\"Web.Event.EventTarget\"];\n var $foreign = $PS[\"Web.Event.EventTarget\"];\n exports[\"eventListener\"] = $foreign.eventListener;\n exports[\"addEventListener\"] = $foreign.addEventListener;\n exports[\"removeEventListener\"] = $foreign.removeEventListener;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.VDom.DOM.Prop\"] = $PS[\"Halogen.VDom.DOM.Prop\"] || {};\n var exports = $PS[\"Halogen.VDom.DOM.Prop\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Foreign = $PS[\"Foreign\"];\n var Foreign_Object = $PS[\"Foreign.Object\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Util = $PS[\"Halogen.VDom.Util\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Web_Event_EventTarget = $PS[\"Web.Event.EventTarget\"]; \n var Created = (function () {\n function Created(value0) {\n this.value0 = value0;\n };\n Created.create = function (value0) {\n return new Created(value0);\n };\n return Created;\n })();\n var Removed = (function () {\n function Removed(value0) {\n this.value0 = value0;\n };\n Removed.create = function (value0) {\n return new Removed(value0);\n };\n return Removed;\n })();\n var Attribute = (function () {\n function Attribute(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n Attribute.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new Attribute(value0, value1, value2);\n };\n };\n };\n return Attribute;\n })();\n var Property = (function () {\n function Property(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Property.create = function (value0) {\n return function (value1) {\n return new Property(value0, value1);\n };\n };\n return Property;\n })();\n var Handler = (function () {\n function Handler(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Handler.create = function (value0) {\n return function (value1) {\n return new Handler(value0, value1);\n };\n };\n return Handler;\n })();\n var Ref = (function () {\n function Ref(value0) {\n this.value0 = value0;\n };\n Ref.create = function (value0) {\n return new Ref(value0);\n };\n return Ref;\n })();\n var unsafeGetProperty = Halogen_VDom_Util.unsafeGetAny;\n var setProperty = Halogen_VDom_Util.unsafeSetAny;\n var removeProperty = function (key, el) {\n var v = Halogen_VDom_Util.hasAttribute(Data_Nullable[\"null\"], key, el);\n if (v) {\n return Halogen_VDom_Util.removeAttribute(Data_Nullable[\"null\"], key, el);\n };\n var v1 = Foreign.typeOf(Halogen_VDom_Util.unsafeGetAny(key, el));\n if (v1 === \"string\") {\n return Halogen_VDom_Util.unsafeSetAny(key, \"\", el);\n };\n if (key === \"rowSpan\") {\n return Halogen_VDom_Util.unsafeSetAny(key, 1, el);\n };\n if (key === \"colSpan\") {\n return Halogen_VDom_Util.unsafeSetAny(key, 1, el);\n };\n return Halogen_VDom_Util.unsafeSetAny(key, Halogen_VDom_Util.jsUndefined, el);\n };\n var propToStrKey = function (v) {\n if (v instanceof Attribute && v.value0 instanceof Data_Maybe.Just) {\n return \"attr/\" + (v.value0.value0 + (\":\" + v.value1));\n };\n if (v instanceof Attribute) {\n return \"attr/:\" + v.value1;\n };\n if (v instanceof Property) {\n return \"prop/\" + v.value0;\n };\n if (v instanceof Handler) {\n return \"handler/\" + v.value0;\n };\n if (v instanceof Ref) {\n return \"ref\";\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 182, column 16 - line 187, column 16): \" + [ v.constructor.name ]);\n };\n var propFromString = Unsafe_Coerce.unsafeCoerce;\n var propFromNumber = Unsafe_Coerce.unsafeCoerce;\n var propFromInt = Unsafe_Coerce.unsafeCoerce;\n var propFromBoolean = Unsafe_Coerce.unsafeCoerce;\n var buildProp = function (emit) {\n return function (el) {\n var removeProp = function (prevEvents) {\n return function (v, v1) {\n if (v1 instanceof Attribute) {\n return Halogen_VDom_Util.removeAttribute(Data_Nullable.toNullable(v1.value0), v1.value1, el);\n };\n if (v1 instanceof Property) {\n return removeProperty(v1.value0, el);\n };\n if (v1 instanceof Handler) {\n var handler = Halogen_VDom_Util.unsafeLookup(v1.value0, prevEvents);\n return Halogen_VDom_Util.removeEventListener(v1.value0, Data_Tuple.fst(handler), el);\n };\n if (v1 instanceof Ref) {\n return Data_Unit.unit;\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 169, column 5 - line 179, column 18): \" + [ v1.constructor.name ]);\n };\n };\n var mbEmit = function (v) {\n if (v instanceof Data_Maybe.Just) {\n return emit(v.value0)();\n };\n return Data_Unit.unit;\n };\n var haltProp = function (state) {\n var v = Foreign_Object.lookup(\"ref\")(state.props);\n if (v instanceof Data_Maybe.Just && v.value0 instanceof Ref) {\n return mbEmit(v.value0.value0(new Removed(el)));\n };\n return Data_Unit.unit;\n };\n var diffProp = function (prevEvents, events) {\n return function (v, v1, v11, v2) {\n if (v11 instanceof Attribute && v2 instanceof Attribute) {\n var $57 = v11.value2 === v2.value2;\n if ($57) {\n return v2;\n };\n Halogen_VDom_Util.setAttribute(Data_Nullable.toNullable(v2.value0), v2.value1, v2.value2, el);\n return v2;\n };\n if (v11 instanceof Property && v2 instanceof Property) {\n var v4 = Halogen_VDom_Util.refEq(v11.value1, v2.value1);\n if (v4) {\n return v2;\n };\n if (v2.value0 === \"value\") {\n var elVal = unsafeGetProperty(\"value\", el);\n var $66 = Halogen_VDom_Util.refEq(elVal, v2.value1);\n if ($66) {\n return v2;\n };\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n if (v11 instanceof Handler && v2 instanceof Handler) {\n var handler = Halogen_VDom_Util.unsafeLookup(v2.value0, prevEvents);\n Effect_Ref.write(v2.value1)(Data_Tuple.snd(handler))();\n Halogen_VDom_Util.pokeMutMap(v2.value0, handler, events);\n return v2;\n };\n return v2;\n };\n };\n var applyProp = function (events) {\n return function (v, v1, v2) {\n if (v2 instanceof Attribute) {\n Halogen_VDom_Util.setAttribute(Data_Nullable.toNullable(v2.value0), v2.value1, v2.value2, el);\n return v2;\n };\n if (v2 instanceof Property) {\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n if (v2 instanceof Handler) {\n var v3 = Halogen_VDom_Util.unsafeGetAny(v2.value0, events);\n if (Halogen_VDom_Util.unsafeHasAny(v2.value0, events)) {\n Effect_Ref.write(v2.value1)(Data_Tuple.snd(v3))();\n return v2;\n };\n var ref = Effect_Ref[\"new\"](v2.value1)();\n var listener = Web_Event_EventTarget.eventListener(function (ev) {\n return function __do() {\n var f$prime = Effect_Ref.read(ref)();\n return mbEmit(f$prime(ev));\n };\n })();\n Halogen_VDom_Util.pokeMutMap(v2.value0, new Data_Tuple.Tuple(listener, ref), events);\n Halogen_VDom_Util.addEventListener(v2.value0, listener, el);\n return v2;\n };\n if (v2 instanceof Ref) {\n mbEmit(v2.value0(new Created(el)));\n return v2;\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 113, column 5 - line 135, column 15): \" + [ v2.constructor.name ]);\n };\n };\n var patchProp = function (state, ps2) {\n var events = Halogen_VDom_Util.newMutMap();\n var onThis = removeProp(state.events);\n var onThese = diffProp(state.events, events);\n var onThat = applyProp(events);\n var props = Halogen_VDom_Util.diffWithKeyAndIxE(state.props, ps2, propToStrKey, onThese, onThis, onThat);\n var nextState = {\n events: Halogen_VDom_Util.unsafeFreeze(events),\n props: props\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Data_Unit.unit, nextState, patchProp, haltProp));\n };\n var renderProp = function (ps1) {\n var events = Halogen_VDom_Util.newMutMap();\n var ps1$prime = Halogen_VDom_Util.strMapWithIxE(ps1, propToStrKey, applyProp(events));\n var state = {\n events: Halogen_VDom_Util.unsafeFreeze(events),\n props: ps1$prime\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Data_Unit.unit, state, patchProp, haltProp));\n };\n return renderProp;\n };\n };\n exports[\"Property\"] = Property;\n exports[\"Handler\"] = Handler;\n exports[\"propFromString\"] = propFromString;\n exports[\"propFromBoolean\"] = propFromBoolean;\n exports[\"propFromInt\"] = propFromInt;\n exports[\"propFromNumber\"] = propFromNumber;\n exports[\"buildProp\"] = buildProp;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.VDom.Types\"] = $PS[\"Halogen.VDom.Types\"] || {};\n var exports = $PS[\"Halogen.VDom.Types\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Text = (function () {\n function Text(value0) {\n this.value0 = value0;\n };\n Text.create = function (value0) {\n return new Text(value0);\n };\n return Text;\n })();\n var Elem = (function () {\n function Elem(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Elem.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Elem(value0, value1, value2, value3);\n };\n };\n };\n };\n return Elem;\n })();\n var Keyed = (function () {\n function Keyed(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Keyed.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Keyed(value0, value1, value2, value3);\n };\n };\n };\n };\n return Keyed;\n })();\n var Widget = (function () {\n function Widget(value0) {\n this.value0 = value0;\n };\n Widget.create = function (value0) {\n return new Widget(value0);\n };\n return Widget;\n })();\n var Grafted = (function () {\n function Grafted(value0) {\n this.value0 = value0;\n };\n Grafted.create = function (value0) {\n return new Grafted(value0);\n };\n return Grafted;\n })();\n var Graft = (function () {\n function Graft(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n Graft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new Graft(value0, value1, value2);\n };\n };\n };\n return Graft;\n })();\n var unGraft = function (f) {\n return function ($55) {\n return f($55);\n };\n };\n var graft = Unsafe_Coerce.unsafeCoerce;\n var bifunctorGraft = {\n bimap: function (f) {\n return function (g) {\n return unGraft(function (v) {\n return graft(new Graft(function ($57) {\n return f(v.value0($57));\n }, function ($58) {\n return g(v.value1($58));\n }, v.value2));\n });\n };\n }\n };\n var runGraft = unGraft(function (v) {\n var go = function (v2) {\n if (v2 instanceof Text) {\n return new Text(v2.value0);\n };\n if (v2 instanceof Elem) {\n return new Elem(v2.value0, v2.value1, v.value0(v2.value2), Data_Functor.map(Data_Functor.functorArray)(go)(v2.value3));\n };\n if (v2 instanceof Keyed) {\n return new Keyed(v2.value0, v2.value1, v.value0(v2.value2), Data_Functor.map(Data_Functor.functorArray)(Data_Functor.map(Data_Tuple.functorTuple)(go))(v2.value3));\n };\n if (v2 instanceof Widget) {\n return new Widget(v.value1(v2.value0));\n };\n if (v2 instanceof Grafted) {\n return new Grafted(Data_Bifunctor.bimap(bifunctorGraft)(v.value0)(v.value1)(v2.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Types (line 86, column 7 - line 86, column 27): \" + [ v2.constructor.name ]);\n };\n return go(v.value2);\n });\n exports[\"Text\"] = Text;\n exports[\"Elem\"] = Elem;\n exports[\"Keyed\"] = Keyed;\n exports[\"Widget\"] = Widget;\n exports[\"Grafted\"] = Grafted;\n exports[\"runGraft\"] = runGraft;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.HTML.Core\"] = $PS[\"Halogen.HTML.Core\"] || {};\n var exports = $PS[\"Halogen.HTML.Core\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var Halogen_VDom_DOM_Prop = $PS[\"Halogen.VDom.DOM.Prop\"];\n var Halogen_VDom_Types = $PS[\"Halogen.VDom.Types\"]; \n var HTML = function (x) {\n return x;\n };\n var widget = function ($19) {\n return HTML(Halogen_VDom_Types.Widget.create($19));\n };\n var toPropValue = function (dict) {\n return dict.toPropValue;\n };\n var text = function ($20) {\n return HTML(Halogen_VDom_Types.Text.create($20));\n };\n var prop = function (dictIsProp) {\n return function (v) {\n var $22 = Halogen_VDom_DOM_Prop.Property.create(v);\n var $23 = toPropValue(dictIsProp);\n return function ($24) {\n return $22($23($24));\n };\n };\n };\n var isPropString = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromString\n };\n var isPropNumber = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromNumber\n };\n var isPropInt = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromInt\n };\n var isPropInputType = {\n toPropValue: function ($38) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_InputType.renderInputType($38));\n }\n };\n var isPropBoolean = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromBoolean\n };\n var handler = Halogen_VDom_DOM_Prop.Handler.create;\n var element = function (ns) {\n return function (name) {\n return function (props) {\n return function (children) {\n return new Halogen_VDom_Types.Elem(ns, name, props, children);\n };\n };\n };\n };\n exports[\"widget\"] = widget;\n exports[\"text\"] = text;\n exports[\"element\"] = element;\n exports[\"prop\"] = prop;\n exports[\"handler\"] = handler;\n exports[\"isPropString\"] = isPropString;\n exports[\"isPropInt\"] = isPropInt;\n exports[\"isPropNumber\"] = isPropNumber;\n exports[\"isPropBoolean\"] = isPropBoolean;\n exports[\"isPropInputType\"] = isPropInputType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.HTML.Elements\"] = $PS[\"Halogen.HTML.Elements\"] || {};\n var exports = $PS[\"Halogen.HTML.Elements\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var element = Halogen_HTML_Core.element(Data_Maybe.Nothing.value);\n var fieldset = element(\"fieldset\");\n var h2 = element(\"h2\");\n var input = function (props) {\n return element(\"input\")(props)([ ]);\n }; \n var label = element(\"label\");\n var legend = element(\"legend\");\n var span = element(\"span\");\n var span_ = span([ ]);\n var textarea = function (es) {\n return element(\"textarea\")(es)([ ]);\n }; \n var div = element(\"div\");\n var div_ = div([ ]);\n var button = element(\"button\");\n var br = function (props) {\n return element(\"br\")(props)([ ]);\n };\n var br_ = br([ ]); \n var a = element(\"a\");\n exports[\"a\"] = a;\n exports[\"br_\"] = br_;\n exports[\"button\"] = button;\n exports[\"div\"] = div;\n exports[\"div_\"] = div_;\n exports[\"fieldset\"] = fieldset;\n exports[\"h2\"] = h2;\n exports[\"input\"] = input;\n exports[\"label\"] = label;\n exports[\"legend\"] = legend;\n exports[\"span\"] = span;\n exports[\"span_\"] = span_;\n exports[\"textarea\"] = textarea;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafeReadPropImpl = function (f, s, key, value) {\n return value == null ? f : s(value[key]);\n };\n})(PS[\"Foreign.Index\"] = PS[\"Foreign.Index\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Foreign.Index\"] = $PS[\"Foreign.Index\"] || {};\n var exports = $PS[\"Foreign.Index\"];\n var $foreign = $PS[\"Foreign.Index\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Foreign = $PS[\"Foreign\"]; \n var unsafeReadProp = function (dictMonad) {\n return function (k) {\n return function (value) {\n return $foreign.unsafeReadPropImpl(Foreign.fail(dictMonad)(new Foreign.TypeMismatch(\"object\", Foreign.typeOf(value))), Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad)), k, value);\n };\n };\n };\n var readProp = function (dictMonad) {\n return unsafeReadProp(dictMonad);\n };\n exports[\"readProp\"] = readProp;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Query.Input\"] = $PS[\"Halogen.Query.Input\"] || {};\n var exports = $PS[\"Halogen.Query.Input\"];\n var RefUpdate = (function () {\n function RefUpdate(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n RefUpdate.create = function (value0) {\n return function (value1) {\n return new RefUpdate(value0, value1);\n };\n };\n return RefUpdate;\n })();\n var Action = (function () {\n function Action(value0) {\n this.value0 = value0;\n };\n Action.create = function (value0) {\n return new Action(value0);\n };\n return Action;\n })();\n exports[\"RefUpdate\"] = RefUpdate;\n exports[\"Action\"] = Action;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._currentTarget = function (e) {\n return e.currentTarget;\n };\n})(PS[\"Web.Event.Event\"] = PS[\"Web.Event.Event\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.Event.Event\"] = $PS[\"Web.Event.Event\"] || {};\n var exports = $PS[\"Web.Event.Event\"];\n var $foreign = $PS[\"Web.Event.Event\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var currentTarget = function ($5) {\n return Data_Nullable.toMaybe($foreign[\"_currentTarget\"]($5));\n };\n exports[\"currentTarget\"] = currentTarget;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.Event.EventTypes\"] = $PS[\"Web.HTML.Event.EventTypes\"] || {};\n var exports = $PS[\"Web.HTML.Event.EventTypes\"];\n var input = \"input\";\n var domcontentloaded = \"DOMContentLoaded\";\n var change = \"change\";\n exports[\"change\"] = change;\n exports[\"domcontentloaded\"] = domcontentloaded;\n exports[\"input\"] = input;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.UIEvent.MouseEvent.EventTypes\"] = $PS[\"Web.UIEvent.MouseEvent.EventTypes\"] || {};\n var exports = $PS[\"Web.UIEvent.MouseEvent.EventTypes\"];\n var click = \"click\";\n exports[\"click\"] = click;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.HTML.Events\"] = $PS[\"Halogen.HTML.Events\"] || {};\n var exports = $PS[\"Halogen.HTML.Events\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_Except = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Foreign = $PS[\"Foreign\"];\n var Foreign_Index = $PS[\"Foreign.Index\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_Query_Input = $PS[\"Halogen.Query.Input\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Web_Event_Event = $PS[\"Web.Event.Event\"];\n var Web_HTML_Event_EventTypes = $PS[\"Web.HTML.Event.EventTypes\"];\n var Web_UIEvent_MouseEvent_EventTypes = $PS[\"Web.UIEvent.MouseEvent.EventTypes\"];\n var mouseHandler = Unsafe_Coerce.unsafeCoerce;\n var handler$prime = function (et) {\n return function (f) {\n return Halogen_HTML_Core.handler(et)(function (ev) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Halogen_Query_Input.Action.create)(f(ev));\n });\n };\n };\n var handler = function (et) {\n return function (f) {\n return Halogen_HTML_Core.handler(et)(function (ev) {\n return new Data_Maybe.Just(new Halogen_Query_Input.Action(f(ev)));\n });\n };\n }; \n var onClick = (function () {\n var $1 = handler(Web_UIEvent_MouseEvent_EventTypes.click);\n return function ($2) {\n return $1(mouseHandler($2));\n };\n })();\n var addForeignPropHandler = function (key) {\n return function (prop) {\n return function (reader) {\n return function (f) {\n var go = function (a) {\n return Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(reader)(Foreign_Index.readProp(Data_Identity.monadIdentity)(prop))(Foreign.unsafeToForeign(a));\n };\n return handler$prime(key)(Control_Bind.composeKleisli(Data_Maybe.bindMaybe)(Web_Event_Event.currentTarget)(function (e) {\n return Data_Either.either(Data_Function[\"const\"](Data_Maybe.Nothing.value))(function ($71) {\n return Data_Maybe.Just.create(f($71));\n })(Control_Monad_Except.runExcept(go(e)));\n }));\n };\n };\n };\n };\n var onChecked = addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"checked\")(Foreign.readBoolean(Data_Identity.monadIdentity)); \n var onValueInput = addForeignPropHandler(Web_HTML_Event_EventTypes.input)(\"value\")(Foreign.readString(Data_Identity.monadIdentity));\n exports[\"onClick\"] = onClick;\n exports[\"onValueInput\"] = onValueInput;\n exports[\"onChecked\"] = onChecked;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.HTML.Properties\"] = $PS[\"Halogen.HTML.Properties\"] || {};\n var exports = $PS[\"Halogen.HTML.Properties\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var prop = function (dictIsProp) {\n return Halogen_HTML_Core.prop(dictIsProp);\n }; \n var rows = prop(Halogen_HTML_Core.isPropInt)(\"rows\"); \n var type_ = function (dictIsProp) {\n return prop(dictIsProp)(\"type\");\n };\n var value = prop(Halogen_HTML_Core.isPropString)(\"value\"); \n var placeholder = prop(Halogen_HTML_Core.isPropString)(\"placeholder\");\n var name = prop(Halogen_HTML_Core.isPropString)(\"name\"); \n var min = prop(Halogen_HTML_Core.isPropNumber)(\"min\"); \n var id = prop(Halogen_HTML_Core.isPropString)(\"id\");\n var $$for = prop(Halogen_HTML_Core.isPropString)(\"htmlFor\"); \n var cols = prop(Halogen_HTML_Core.isPropInt)(\"cols\"); \n var classes = (function () {\n var $12 = prop(Halogen_HTML_Core.isPropString)(\"className\");\n var $13 = Data_String_Common.joinWith(\" \");\n var $14 = Data_Functor.map(Data_Functor.functorArray)(Data_Newtype.unwrap());\n return function ($15) {\n return $12($13($14($15)));\n };\n })();\n var checked = prop(Halogen_HTML_Core.isPropBoolean)(\"checked\");\n exports[\"prop\"] = prop;\n exports[\"classes\"] = classes;\n exports[\"cols\"] = cols;\n exports[\"rows\"] = rows;\n exports[\"for\"] = $$for;\n exports[\"id\"] = id;\n exports[\"name\"] = name;\n exports[\"type_\"] = type_;\n exports[\"value\"] = value;\n exports[\"min\"] = min;\n exports[\"checked\"] = checked;\n exports[\"placeholder\"] = placeholder;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Helpers.Components\"] = $PS[\"Helpers.Components\"] || {};\n var exports = $PS[\"Helpers.Components\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Note = $PS[\"Data.Note\"];\n var Data_Options = $PS[\"Data.Options\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Helpers_Browser = $PS[\"Helpers.Browser\"];\n var Web_HTML = $PS[\"Web.HTML\"]; \n var setState = function (dictMonadAff) {\n return function (state) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return state;\n });\n };\n };\n var modifyStateAndSave = function (dictMonadAff) {\n return function (f) {\n return function (newVal) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(f(newVal))(function (newStat) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Web_HTML.window))(function (win) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Helpers_Browser.saveToLocalStorage(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)(win)(newStat.note)))(function () {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Helpers_Browser.saveToLocalStorage(Data_Options.storeKeyIdOptions)(Data_Options.encodeJsonOptions)(win)(newStat.options));\n });\n });\n });\n };\n };\n };\n var modifyComponentStateAndSave = function (dictMonadAff) {\n return function (dictStoreKey) {\n return function (dictEncodeJson) {\n return function (f) {\n return function (newVal) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(f(newVal))(function (newStat) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Web_HTML.window))(function (win) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Helpers_Browser.saveToLocalStorage(dictStoreKey)(dictEncodeJson)(win)(newStat));\n });\n });\n };\n };\n };\n };\n };\n exports[\"modifyComponentStateAndSave\"] = modifyComponentStateAndSave;\n exports[\"modifyStateAndSave\"] = modifyStateAndSave;\n exports[\"setState\"] = setState;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"App.NoteComponent\"] = $PS[\"App.NoteComponent\"] || {};\n var exports = $PS[\"App.NoteComponent\"];\n var App_Constants = $PS[\"App.Constants\"];\n var App_Geolocation = $PS[\"App.Geolocation\"];\n var App_ShareTarget = $PS[\"App.ShareTarget\"];\n var App_State = $PS[\"App.State\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Note = $PS[\"Data.Note\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_String_Regex = $PS[\"Data.String.Regex\"];\n var Data_String_Regex_Flags = $PS[\"Data.String.Regex.Flags\"];\n var Data_String_Regex_Unsafe = $PS[\"Data.String.Regex.Unsafe\"];\n var Data_URL = $PS[\"Data.URL\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Events = $PS[\"Halogen.HTML.Events\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Helpers_Components = $PS[\"Helpers.Components\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n var Download = (function () {\n function Download(value0) {\n this.value0 = value0;\n };\n Download.create = function (value0) {\n return new Download(value0);\n };\n return Download;\n })();\n var Geolocation = (function () {\n function Geolocation(value0) {\n this.value0 = value0;\n };\n Geolocation.create = function (value0) {\n return new Geolocation(value0);\n };\n return Geolocation;\n })();\n var Share = (function () {\n function Share(value0) {\n this.value0 = value0;\n };\n Share.create = function (value0) {\n return new Share(value0);\n };\n return Share;\n })();\n var Receive = (function () {\n function Receive(value0) {\n this.value0 = value0;\n };\n Receive.create = function (value0) {\n return new Receive(value0);\n };\n return Receive;\n })();\n var TitleChanged = (function () {\n function TitleChanged(value0) {\n this.value0 = value0;\n };\n TitleChanged.create = function (value0) {\n return new TitleChanged(value0);\n };\n return TitleChanged;\n })();\n var URLChanged = (function () {\n function URLChanged(value0) {\n this.value0 = value0;\n };\n URLChanged.create = function (value0) {\n return new URLChanged(value0);\n };\n return URLChanged;\n })();\n var PositionChanged = (function () {\n function PositionChanged(value0) {\n this.value0 = value0;\n };\n PositionChanged.create = function (value0) {\n return new PositionChanged(value0);\n };\n return PositionChanged;\n })();\n var KeywordsChanged = (function () {\n function KeywordsChanged(value0) {\n this.value0 = value0;\n };\n KeywordsChanged.create = function (value0) {\n return new KeywordsChanged(value0);\n };\n return KeywordsChanged;\n })();\n var ShortDescChanged = (function () {\n function ShortDescChanged(value0) {\n this.value0 = value0;\n };\n ShortDescChanged.create = function (value0) {\n return new ShortDescChanged(value0);\n };\n return ShortDescChanged;\n })();\n var LongDescChanged = (function () {\n function LongDescChanged(value0) {\n this.value0 = value0;\n };\n LongDescChanged.create = function (value0) {\n return new LongDescChanged(value0);\n };\n return LongDescChanged;\n })();\n var GetPosition = (function () {\n function GetPosition() {\n\n };\n GetPosition.value = new GetPosition();\n return GetPosition;\n })();\n var ShareNote = (function () {\n function ShareNote() {\n\n };\n ShareNote.value = new ShareNote();\n return ShareNote;\n })();\n var DownloadNote = (function () {\n function DownloadNote() {\n\n };\n DownloadNote.value = new DownloadNote();\n return DownloadNote;\n })();\n var setNoteStateUrl = function (dictMonadAff) {\n return function (newUrl) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n title: v.title,\n url: newUrl,\n keywords: v.keywords,\n location: v.location,\n shortDesc: v.shortDesc,\n longDesc: v.longDesc\n };\n });\n };\n };\n var setNoteStateTitle = function (dictMonadAff) {\n return function (newTitle) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n title: new Data_Maybe.Just(newTitle),\n url: v.url,\n keywords: v.keywords,\n location: v.location,\n shortDesc: v.shortDesc,\n longDesc: v.longDesc\n };\n });\n };\n };\n var setNoteStateShortDesc = function (dictMonadAff) {\n return function (newShortDesc) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n title: v.title,\n url: v.url,\n keywords: v.keywords,\n location: v.location,\n shortDesc: new Data_Maybe.Just(newShortDesc),\n longDesc: v.longDesc\n };\n });\n };\n };\n var setNoteStateLongDesc = function (dictMonadAff) {\n return function (newLongDesc) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n title: v.title,\n url: v.url,\n keywords: v.keywords,\n location: v.location,\n shortDesc: v.shortDesc,\n longDesc: new Data_Maybe.Just(newLongDesc)\n };\n });\n };\n };\n var setNoteStateLocation = function (dictMonadAff) {\n return function (newLocation) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n title: v.title,\n url: v.url,\n keywords: v.keywords,\n location: new Data_Maybe.Just(newLocation),\n shortDesc: v.shortDesc,\n longDesc: v.longDesc\n };\n });\n };\n };\n var setNoteStateKeyWords = function (dictMonadAff) {\n return function (newKeywords) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n title: v.title,\n url: v.url,\n keywords: newKeywords,\n location: v.location,\n shortDesc: v.shortDesc,\n longDesc: v.longDesc\n };\n });\n };\n };\n var render = function (dictMonadAff) {\n return function (n) {\n var urlSuffixRegex = Data_String_Regex_Unsafe.unsafeRegex(\"[/]+$\")(Data_String_Regex_Flags.unicode);\n var transFunc = App_Constants.localeToTranslation(\"en-US\");\n return Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"note\"), Halogen_HTML_Properties.classes([ \"px-4\", \"max-w-4xl\", \"grow\", \"w-160\", \"space-y-3\" ]) ])([ Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"title\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"titleText\") ])([ Halogen_HTML_Elements.span([ Halogen_HTML_Properties.classes([ ]) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextTitle)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(\"titleText\"), Halogen_HTML_Properties.classes([ \"rounded-md\", \"border-gray-300\", \"shadow-sm\", \"w-full\" ]), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputText.value), Halogen_HTML_Properties.min(50.0), Halogen_HTML_Properties.value(Data_Maybe.fromMaybe(\"\")(n.title)), Halogen_HTML_Events.onValueInput(function (st) {\n return new TitleChanged(st);\n }) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"url\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"pageURL\") ])([ Halogen_HTML_Elements.span_([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextUrl)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(\"pageURL\"), Halogen_HTML_Properties.classes([ \"rounded-md\", \"border-gray-300\", \"shadow-sm\", \"w-full\" ]), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputUrl.value), Halogen_HTML_Properties.min(50.0), Halogen_HTML_Properties.value(Data_String_Regex.replace(urlSuffixRegex)(\"\")(Data_Maybe.fromMaybe(\"\")(Data_Functor.map(Data_Maybe.functorMaybe)(Data_URL.noteUrlToString)(n.url)))), Halogen_HTML_Events.onValueInput(function (st) {\n return new URLChanged(st);\n }) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"keywords\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"keyWords\") ])([ Halogen_HTML_Elements.span_([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextKeywords)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(\"keyWords\"), Halogen_HTML_Properties.classes([ \"rounded-md\", \"border-gray-300\", \"shadow-sm\", \"w-full\" ]), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputText.value), Halogen_HTML_Properties.min(50.0), Halogen_HTML_Properties.placeholder(\"keyword1, key word 2, Keyword 3\"), Halogen_HTML_Properties.value(Data_Maybe.fromMaybe(\"\")(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Show.show(Data_Note.showKeyWordArray))(n.keywords))), Halogen_HTML_Events.onValueInput(function (st) {\n return new KeywordsChanged(st);\n }) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"Geolocation\"), Halogen_HTML_Properties.classes([ \"flex\", \"flex-row\", \"flex-wrap\", \"items-end\", \"ml--4\", \"space-y-2\" ]) ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"currentPosition\"), Halogen_HTML_Properties.classes([ \"inline\", \"grow\", \"ml-4\" ]) ])([ Halogen_HTML_Elements.span_([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextPosition)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(\"currentPosition\"), Halogen_HTML_Properties.classes([ \"rounded-md\", \"border-gray-300\", \"shadow-sm\", \"w-full\" ]), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputText.value), Halogen_HTML_Properties.min(50.0), Halogen_HTML_Properties.placeholder(\"Position\"), Halogen_HTML_Properties.value(Data_Maybe.fromMaybe(\"\")(n.location)), Halogen_HTML_Events.onValueInput(function (st) {\n return new PositionChanged(st);\n }) ]) ]), (function () {\n if (App_Geolocation.supportsGeoLocation) {\n return Halogen_HTML_Elements.button([ Halogen_HTML_Properties.id(\"positionButton\"), Halogen_HTML_Properties.classes([ \"inline\", \"btn\", \"btn-blue\", \"position\", \"ml-4\", \"h-fit-content\" ]), Halogen_HTML_Events.onClick(function (v) {\n return GetPosition.value;\n }) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextGetPosition)) ]);\n };\n return Halogen_HTML_Elements.div_([ ]);\n })() ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"description\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"descriptionText\") ])([ Halogen_HTML_Elements.span_([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextShortDescription)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.textarea([ Halogen_HTML_Properties.id(\"descriptionText\"), Halogen_HTML_Properties.classes([ \"rounded-md\", \"border-gray-300\", \"shadow-sm\", \"resize\", \"w-full\" ]), Halogen_HTML_Properties.rows(5), Halogen_HTML_Properties.cols(40), Halogen_HTML_Properties.value(Data_Maybe.fromMaybe(\"\")(n.shortDesc)), Halogen_HTML_Events.onValueInput(function (st) {\n return new ShortDescChanged(st);\n }) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"detailed_text\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"detailedDescription\") ])([ Halogen_HTML_Elements.span_([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextLongDescription)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.textarea([ Halogen_HTML_Properties.id(\"detailedDescription\"), Halogen_HTML_Properties.classes([ \"rounded-md\", \"border-gray-300\", \"shadow-sm\", \"resize\", \"w-full\" ]), Halogen_HTML_Properties.rows(5), Halogen_HTML_Properties.cols(40), Halogen_HTML_Properties.value(Data_Maybe.fromMaybe(\"\")(n.longDesc)), Halogen_HTML_Events.onValueInput(function (st) {\n return new LongDescChanged(st);\n }) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"buttons\"), Halogen_HTML_Properties.classes([ \"flex\", \"flex-wrap\", \"place-content-between\" ]) ])([ Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"save\"), Halogen_HTML_Properties.classes([ \"inline\", \"px-2\" ]) ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.id(\"saveButton\"), Halogen_HTML_Properties.classes([ \"btn\", \"btn-blue\", \"download\", \"my-1\" ]), Halogen_HTML_Events.onClick(function (v) {\n return DownloadNote.value;\n }) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextSave)) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"share\"), Halogen_HTML_Properties.classes([ \"inline\", \"px-2\" ]) ])((function () {\n if (App_ShareTarget.canShare) {\n return [ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.id(\"shareButton\"), Halogen_HTML_Properties.classes([ \"btn\", \"btn-blue\", \"share\", \"my-1\" ]), Halogen_HTML_Events.onClick(function (v) {\n return ShareNote.value;\n }) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextShare)) ]) ];\n };\n return [ ];\n })()) ]) ]);\n };\n };\n var handleAction = function (dictMonadAff) {\n return function (action) {\n if (action instanceof Receive) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.getState(dictMonadAff))(function (currState) {\n var v = Data_Eq.eq(Data_Note.eqNote)(currState)(action.value0);\n if (v) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n if (!v) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)(Helpers_Components.setState(dictMonadAff))(action.value0);\n };\n throw new Error(\"Failed pattern match at App.NoteComponent (line 152, column 5 - line 154, column 57): \" + [ v.constructor.name ]);\n });\n };\n if (action instanceof TitleChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)(setNoteStateTitle(dictMonadAff))(action.value0);\n };\n if (action instanceof URLChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)((function () {\n var $147 = setNoteStateUrl(dictMonadAff);\n return function ($148) {\n return $147(Data_URL.noteUrlFromString($148));\n };\n })())(action.value0);\n };\n if (action instanceof PositionChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)(setNoteStateLocation(dictMonadAff))(action.value0);\n };\n if (action instanceof KeywordsChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)((function () {\n var $149 = setNoteStateKeyWords(dictMonadAff);\n return function ($150) {\n return $149(Data_Note.keyWordArrayFromString($150));\n };\n })())(action.value0);\n };\n if (action instanceof ShortDescChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)(setNoteStateShortDesc(dictMonadAff))(action.value0);\n };\n if (action instanceof LongDescChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)(setNoteStateLongDesc(dictMonadAff))(action.value0);\n };\n if (action instanceof GetPosition) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.getState(dictMonadAff))(function (note) {\n return Halogen_Query_HalogenM.raise(new Geolocation(note));\n });\n };\n if (action instanceof ShareNote) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.getState(dictMonadAff))(function (note) {\n return Halogen_Query_HalogenM.raise(new Share(note));\n });\n };\n if (action instanceof DownloadNote) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.getState(dictMonadAff))(function (note) {\n return Halogen_Query_HalogenM.raise(new Download(note));\n });\n };\n throw new Error(\"Failed pattern match at App.NoteComponent (line 149, column 23 - line 169, column 28): \" + [ action.constructor.name ]);\n };\n };\n var component = function (dictMonadAff) {\n var initialState = function (note) {\n return note;\n };\n return Halogen_Component.mkComponent({\n initialState: initialState,\n render: render(dictMonadAff),\n \"eval\": Halogen_Component.mkEval({\n handleAction: handleAction(dictMonadAff),\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: function ($151) {\n return Data_Maybe.Just.create(Receive.create($151));\n },\n initialize: Halogen_Component.defaultEval.initialize,\n finalize: Halogen_Component.defaultEval.finalize\n })\n });\n };\n var _noteComponent = Type_Proxy[\"Proxy\"].value;\n exports[\"Download\"] = Download;\n exports[\"Geolocation\"] = Geolocation;\n exports[\"Share\"] = Share;\n exports[\"_noteComponent\"] = _noteComponent;\n exports[\"component\"] = component;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"App.OptionsComponent\"] = $PS[\"App.OptionsComponent\"] || {};\n var exports = $PS[\"App.OptionsComponent\"];\n var App_Constants = $PS[\"App.Constants\"];\n var App_State = $PS[\"App.State\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Options = $PS[\"Data.Options\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Events = $PS[\"Halogen.HTML.Events\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Helpers_Components = $PS[\"Helpers.Components\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n var GetOptions = (function () {\n function GetOptions(value0) {\n this.value0 = value0;\n };\n GetOptions.create = function (value0) {\n return new GetOptions(value0);\n };\n return GetOptions;\n })();\n var Receive = (function () {\n function Receive(value0) {\n this.value0 = value0;\n };\n Receive.create = function (value0) {\n return new Receive(value0);\n };\n return Receive;\n })();\n var FormatChanged = (function () {\n function FormatChanged(value0) {\n this.value0 = value0;\n };\n FormatChanged.create = function (value0) {\n return new FormatChanged(value0);\n };\n return FormatChanged;\n })();\n var AddDateChanged = (function () {\n function AddDateChanged(value0) {\n this.value0 = value0;\n };\n AddDateChanged.create = function (value0) {\n return new AddDateChanged(value0);\n };\n return AddDateChanged;\n })();\n var ReverseGeolocChanged = (function () {\n function ReverseGeolocChanged(value0) {\n this.value0 = value0;\n };\n ReverseGeolocChanged.create = function (value0) {\n return new ReverseGeolocChanged(value0);\n };\n return ReverseGeolocChanged;\n })();\n var AddYamlHeaderChanged = (function () {\n function AddYamlHeaderChanged(value0) {\n this.value0 = value0;\n };\n AddYamlHeaderChanged.create = function (value0) {\n return new AddYamlHeaderChanged(value0);\n };\n return AddYamlHeaderChanged;\n })();\n var setOptionsStateLookupLocation = function (dictMonadAff) {\n return function (newLookup) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n format: v.format,\n addDate: v.addDate,\n lookupLocation: newLookup,\n addYaml: v.addYaml\n };\n });\n };\n };\n var setOptionsStateFormat = function (dictMonadAff) {\n return function (newFormat) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n format: newFormat,\n addDate: v.addDate,\n lookupLocation: v.lookupLocation,\n addYaml: v.addYaml\n };\n });\n };\n };\n var setOptionsStateAddYamlHeader = function (dictMonadAff) {\n return function (newAddYaml) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n format: v.format,\n addDate: v.addDate,\n lookupLocation: v.lookupLocation,\n addYaml: newAddYaml\n };\n });\n };\n };\n var setOptionsStateAddDate = function (dictMonadAff) {\n return function (newAddDate) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n format: v.format,\n addDate: newAddDate,\n lookupLocation: v.lookupLocation,\n addYaml: v.addYaml\n };\n });\n };\n };\n var render = function (dictMonadAff) {\n return function (opts) {\n var transFunc = App_Constants.localeToTranslation(\"en-US\");\n return Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"options\"), Halogen_HTML_Properties.classes([ \"px-4\", \"max-w-4xl\", \"grow\", \"space-y-3\", \"mt-4\" ]) ])([ Halogen_HTML_Elements.h2([ Halogen_HTML_Properties.classes([ ]) ])([ Halogen_HTML_Core.text(\"Options\") ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"format\"), Halogen_HTML_Properties.classes([ ]) ])([ Halogen_HTML_Elements.fieldset([ Halogen_HTML_Properties.id(\"formatParent\"), Halogen_HTML_Properties.classes([ \"space-y-2 space-x-4\" ]) ])([ Halogen_HTML_Elements.legend([ ])([ Halogen_HTML_Core.text(transFunc(App_Constants.optionsTextFormat)) ]), Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"markdown\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(\"markdown\"), Halogen_HTML_Properties.name(\"formatRadio\"), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputRadio.value), Halogen_HTML_Properties.value(Data_Show.show(Data_Options.showFormat)(Data_Options.Markdown.value)), Halogen_HTML_Properties.classes([ \"mr-1\" ]), Halogen_HTML_Properties.checked(Data_Eq.eq(Data_Options.eqFormat)(opts.format)(Data_Options.Markdown.value)), Halogen_HTML_Events.onChecked(function (v) {\n return FormatChanged.create(Data_Show.show(Data_Options.showFormat)(Data_Options.Markdown.value));\n }) ]), Halogen_HTML_Elements.span([ Halogen_HTML_Properties.classes([ \"align-middle\" ]) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.optionsTextMarkdown)) ]) ]), Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"orgMode\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(\"orgMode\"), Halogen_HTML_Properties.name(\"formatRadio\"), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputRadio.value), Halogen_HTML_Properties.value(Data_Show.show(Data_Options.showFormat)(Data_Options.OrgMode.value)), Halogen_HTML_Properties.classes([ \"mr-1\" ]), Halogen_HTML_Properties.checked(Data_Eq.eq(Data_Options.eqFormat)(opts.format)(Data_Options.OrgMode.value)), Halogen_HTML_Events.onChecked(function (v) {\n return FormatChanged.create(Data_Show.show(Data_Options.showFormat)(Data_Options.OrgMode.value));\n }) ]), Halogen_HTML_Elements.span([ Halogen_HTML_Properties.classes([ \"align-middle\" ]) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.optionsTextOrgMode)) ]) ]), Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"text\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(\"text\"), Halogen_HTML_Properties.name(\"formatRadio\"), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputRadio.value), Halogen_HTML_Properties.value(Data_Show.show(Data_Options.showFormat)(Data_Options.Text.value)), Halogen_HTML_Properties.classes([ \"mr-1\" ]), Halogen_HTML_Properties.checked(Data_Eq.eq(Data_Options.eqFormat)(opts.format)(Data_Options.Text.value)), Halogen_HTML_Events.onChecked(function (v) {\n return FormatChanged.create(Data_Show.show(Data_Options.showFormat)(Data_Options.Text.value));\n }) ]), Halogen_HTML_Elements.span([ Halogen_HTML_Properties.classes([ \"align-middle\" ]) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.optionsTextText)) ]) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"timestamp\") ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"timestampInput\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.span([ Halogen_HTML_Properties.classes([ \"align-middle\" ]) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.optionsTextTimestamp)) ]), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputCheckbox.value), Halogen_HTML_Properties.id(\"timestampInput\"), Halogen_HTML_Properties.classes([ \"ml-1\" ]), Halogen_HTML_Properties.checked(Data_Eq.eq(Data_Options.eqAddDate)(opts.addDate)(Data_Options.AddDate.value)), Halogen_HTML_Events.onChecked(function (b) {\n return new AddDateChanged(b);\n }) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"reverseGeolocation\") ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"reverseGeolocationInput\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.span([ Halogen_HTML_Properties.classes([ \"align-middle\" ]) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.optionsTextPosLookup)) ]), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputCheckbox.value), Halogen_HTML_Properties.id(\"reverseGeolocationInput\"), Halogen_HTML_Properties.classes([ \"ml-1\" ]), Halogen_HTML_Properties.checked(Data_Eq.eq(Data_Options.eqLookupLocation)(opts.lookupLocation)(Data_Options.ReverseGeolocation.value)), Halogen_HTML_Events.onChecked(function (b) {\n return new ReverseGeolocChanged(b);\n }) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"yaml\") ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"yamlFrontMatter\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.span([ Halogen_HTML_Properties.classes([ \"align-middle\" ]) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.optionsTextYAML)) ]), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputCheckbox.value), Halogen_HTML_Properties.id(\"yamlFrontMatter\"), Halogen_HTML_Properties.classes([ \"ml-1\" ]), Halogen_HTML_Properties.checked(Data_Eq.eq(Data_Options.eqAddYamlHeader)(opts.addYaml)(Data_Options.AddYamlHeader.value)), Halogen_HTML_Events.onChecked(function (b) {\n return new AddYamlHeaderChanged(b);\n }) ]) ]) ]) ]);\n };\n };\n var handleQuery = function (dictMonadAff) {\n return function (q) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.getState(dictMonadAff))(function (options) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Maybe.Just.create(q.value0(options)));\n });\n };\n };\n var handleAction = function (dictMonadAff) {\n return function (action) {\n if (action instanceof Receive) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.getState(dictMonadAff))(function (currState) {\n var v = Data_Eq.eq(Data_Options.eqOptions)(currState)(action.value0);\n if (v) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n if (!v) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Options.storeKeyIdOptions)(Data_Options.encodeJsonOptions)(Helpers_Components.setState(dictMonadAff))(action.value0);\n };\n throw new Error(\"Failed pattern match at App.OptionsComponent (line 124, column 5 - line 126, column 60): \" + [ v.constructor.name ]);\n });\n };\n if (action instanceof FormatChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Options.storeKeyIdOptions)(Data_Options.encodeJsonOptions)((function () {\n var $35 = setOptionsStateFormat(dictMonadAff);\n return function ($36) {\n return $35(Data_Options.formatFromString($36));\n };\n })())(action.value0);\n };\n if (action instanceof AddDateChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Options.storeKeyIdOptions)(Data_Options.encodeJsonOptions)((function () {\n var $37 = setOptionsStateAddDate(dictMonadAff);\n return function ($38) {\n return $37(Data_Options.addDateFromBool($38));\n };\n })())(action.value0);\n };\n if (action instanceof ReverseGeolocChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Options.storeKeyIdOptions)(Data_Options.encodeJsonOptions)((function () {\n var $39 = setOptionsStateLookupLocation(dictMonadAff);\n return function ($40) {\n return $39(Data_Options.lookupLocationFromBool($40));\n };\n })())(action.value0);\n };\n if (action instanceof AddYamlHeaderChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Options.storeKeyIdOptions)(Data_Options.encodeJsonOptions)((function () {\n var $41 = setOptionsStateAddYamlHeader(dictMonadAff);\n return function ($42) {\n return $41(Data_Options.yamlHeaderFromBool($42));\n };\n })())(action.value0);\n };\n throw new Error(\"Failed pattern match at App.OptionsComponent (line 121, column 23 - line 130, column 112): \" + [ action.constructor.name ]);\n };\n };\n var component = function (dictMonadAff) {\n var initialState = function (options) {\n return options;\n };\n return Halogen_Component.mkComponent({\n initialState: initialState,\n render: render(dictMonadAff),\n \"eval\": Halogen_Component.mkEval({\n handleAction: handleAction(dictMonadAff),\n handleQuery: handleQuery(dictMonadAff),\n receive: function ($43) {\n return Data_Maybe.Just.create(Receive.create($43));\n },\n initialize: Halogen_Component.defaultEval.initialize,\n finalize: Halogen_Component.defaultEval.finalize\n })\n });\n };\n var _optionsComponent = Type_Proxy[\"Proxy\"].value;\n exports[\"GetOptions\"] = GetOptions;\n exports[\"_optionsComponent\"] = _optionsComponent;\n exports[\"component\"] = component;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Query\"] = $PS[\"Halogen.Query\"] || {};\n var exports = $PS[\"Halogen.Query\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var request = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (slot) {\n return function (label) {\n return function (req) {\n return Halogen_Query_HalogenM.query()(dictIsSymbol)(dictOrd)(slot)(label)(req(Control_Category.identity(Control_Category.categoryFn)));\n };\n };\n };\n };\n };\n };\n exports[\"request\"] = request;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.reallyUnsafeRefEq = function (a) {\n return function (b) {\n return a === b;\n };\n };\n})(PS[\"Unsafe.Reference\"] = PS[\"Unsafe.Reference\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Unsafe.Reference\"] = $PS[\"Unsafe.Reference\"] || {};\n var exports = $PS[\"Unsafe.Reference\"];\n var $foreign = $PS[\"Unsafe.Reference\"];\n var unsafeRefEq = $foreign.reallyUnsafeRefEq;\n exports[\"unsafeRefEq\"] = unsafeRefEq;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Subscription\"] = $PS[\"Halogen.Subscription\"] || {};\n var exports = $PS[\"Halogen.Subscription\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Safe_Coerce = $PS[\"Safe.Coerce\"];\n var Unsafe_Reference = $PS[\"Unsafe.Reference\"];\n var unsubscribe = function (v) {\n return v;\n };\n var subscribe = function (v) {\n return function (k) {\n return v((function () {\n var $55 = Data_Functor[\"void\"](Effect.functorEffect);\n return function ($56) {\n return $55(k($56));\n };\n })());\n };\n }; \n var notify = function (v) {\n return function (a) {\n return v(a);\n };\n }; \n var makeEmitter = Safe_Coerce.coerce();\n var create = function __do() {\n var subscribers = Effect_Ref[\"new\"]([ ])();\n return {\n emitter: function (k) {\n return function __do() {\n Effect_Ref.modify_(function (v) {\n return Data_Semigroup.append(Data_Semigroup.semigroupArray)(v)([ k ]);\n })(subscribers)();\n return Effect_Ref.modify_(Data_Array.deleteBy(Unsafe_Reference.unsafeRefEq)(k))(subscribers);\n };\n },\n listener: function (a) {\n return Control_Bind.bind(Effect.bindEffect)(Effect_Ref.read(subscribers))(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableArray)(function (k) {\n return k(a);\n }));\n }\n };\n };\n exports[\"create\"] = create;\n exports[\"notify\"] = notify;\n exports[\"makeEmitter\"] = makeEmitter;\n exports[\"subscribe\"] = subscribe;\n exports[\"unsubscribe\"] = unsubscribe;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Query.Event\"] = $PS[\"Halogen.Query.Event\"] || {};\n var exports = $PS[\"Halogen.Query.Event\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Effect = $PS[\"Effect\"];\n var Halogen_Subscription = $PS[\"Halogen.Subscription\"];\n var Web_Event_EventTarget = $PS[\"Web.Event.EventTarget\"]; \n var eventListener = function (eventType) {\n return function (target) {\n return function (f) {\n return Halogen_Subscription.makeEmitter(function (push) {\n return function __do() {\n var listener = Web_Event_EventTarget.eventListener(function (ev) {\n return Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(push)(f(ev));\n })();\n Web_Event_EventTarget.addEventListener(eventType)(listener)(false)(target)();\n return Web_Event_EventTarget.removeEventListener(eventType)(listener)(false)(target);\n };\n });\n };\n };\n };\n exports[\"eventListener\"] = eventListener;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"App.Action\"] = $PS[\"App.Action\"] || {};\n var exports = $PS[\"App.Action\"];\n var App_BigDataGeoLoc = $PS[\"App.BigDataGeoLoc\"];\n var App_Constants = $PS[\"App.Constants\"];\n var App_GeoLocOptions = $PS[\"App.GeoLocOptions\"];\n var App_Geolocation = $PS[\"App.Geolocation\"];\n var App_NoteComponent = $PS[\"App.NoteComponent\"];\n var App_OptionsComponent = $PS[\"App.OptionsComponent\"];\n var App_ShareTarget = $PS[\"App.ShareTarget\"];\n var App_State = $PS[\"App.State\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Note = $PS[\"Data.Note\"];\n var Data_Options = $PS[\"Data.Options\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Console = $PS[\"Effect.Console\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Halogen_Query = $PS[\"Halogen.Query\"];\n var Halogen_Query_Event = $PS[\"Halogen.Query.Event\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Helpers_Browser = $PS[\"Helpers.Browser\"];\n var Helpers_Components = $PS[\"Helpers.Components\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_Event_EventTypes = $PS[\"Web.HTML.Event.EventTypes\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"]; \n var Initialize = (function () {\n function Initialize() {\n\n };\n Initialize.value = new Initialize();\n return Initialize;\n })();\n var ShareTargetEvent = (function () {\n function ShareTargetEvent(value0) {\n this.value0 = value0;\n };\n ShareTargetEvent.create = function (value0) {\n return new ShareTargetEvent(value0);\n };\n return ShareTargetEvent;\n })();\n var NoteAction = (function () {\n function NoteAction(value0) {\n this.value0 = value0;\n };\n NoteAction.create = function (value0) {\n return new NoteAction(value0);\n };\n return NoteAction;\n })();\n var updateOptions = function (dictMonadAff) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Halogen_Query.request()({\n reflectSymbol: function () {\n return \"options\";\n }\n })(Data_Ord.ordUnit)(App_OptionsComponent[\"_optionsComponent\"])(Data_Unit.unit)(App_OptionsComponent.GetOptions.create))(function (options) {\n if (options instanceof Data_Maybe.Just) {\n return App_State.setOptionsState_(dictMonadAff)(options.value0);\n };\n if (options instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at App.Action (line 174, column 3 - line 176, column 25): \" + [ options.constructor.name ]);\n });\n };\n var setNoteStateLocation = function (dictMonadAff) {\n return function (newLocation) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (state) {\n return {\n note: {\n title: state.note.title,\n url: state.note.url,\n keywords: state.note.keywords,\n location: new Data_Maybe.Just(newLocation),\n shortDesc: state.note.shortDesc,\n longDesc: state.note.longDesc\n },\n options: state.options\n };\n });\n };\n };\n var savePosToState = function (dictMonadAff) {\n return Helpers_Components.modifyStateAndSave(dictMonadAff)(setNoteStateLocation(dictMonadAff));\n };\n var loadObject = function (dictStoreKey) {\n return function (dictDecodeJson) {\n return function (dictShow) {\n return function (dictMonadAff) {\n return function (storeToState) {\n return function (keyId) {\n return function (name) {\n return function (win) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Helpers_Browser.loadFromLocalStorage(dictDecodeJson)(win)(keyId)))(function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Effect_Console.log(\"No \" + (name + \" loaded!\")));\n };\n if (v instanceof Data_Maybe.Just) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(storeToState(v.value0))(function (currState) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Effect_Console.log(\"Loaded \" + (name + (\": \" + Data_Show.show(dictShow)(v.value0))))))(function () {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Effect_Console.log(\"New state is: \" + Data_Show.show(Data_Show.showRecord()(Data_Show.showRecordFieldsCons({\n reflectSymbol: function () {\n return \"note\";\n }\n })(Data_Show.showRecordFieldsCons({\n reflectSymbol: function () {\n return \"options\";\n }\n })(Data_Show.showRecordFieldsNil)(Data_Options.showOptions))(Data_Note.showNote)))(currState)));\n });\n });\n };\n throw new Error(\"Failed pattern match at App.Action (line 224, column 3 - line 229, column 62): \" + [ v.constructor.name ]);\n });\n };\n };\n };\n };\n };\n };\n };\n };\n var loadOptions = function (dictMonadAff) {\n return loadObject(Data_Options.storeKeyIdOptions)(Data_Options.decodeJsonOptions)(Data_Options.showOptions)(dictMonadAff)(App_State.setOptionsState(dictMonadAff))(Data_Options.optionsKeyId)(\"Options\");\n };\n var loadNote = function (dictMonadAff) {\n return loadObject(Data_Note.storeKeyNote)(Data_Note.decodeJSONNote)(Data_Note.showNote)(dictMonadAff)(App_State.setNoteState(dictMonadAff))(Data_Note.noteKeyId)(\"Note\");\n };\n var getCurrPosTimeout = function (timeout) {\n return App_Geolocation.getCurrentPosition(Data_Maybe.fromJust()(App_GeoLocOptions.setTimeout(timeout)(App_GeoLocOptions.defaultGeoLocOptions)));\n };\n var getPosition = function (dictMonadAff) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff))(getCurrPosTimeout(10000.0)))(function (poE) {\n if (poE instanceof Data_Either.Left) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Effect_Console.log(Data_Show.show(Effect_Exception.showError)(poE.value0)));\n };\n if (poE instanceof Data_Either.Right) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.getState(dictMonadAff))(function (state) {\n if (state.options.lookupLocation instanceof Data_Options.NoReverseGeolocation) {\n return savePosToState(dictMonadAff)(App_Geolocation.showLatitudeLongitude(poE.value0));\n };\n if (state.options.lookupLocation instanceof Data_Options.ReverseGeolocation) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff))(Helpers_Browser.reverseGeoLocation(App_BigDataGeoLoc.bigDataGeolocURL)(App_BigDataGeoLoc.bigDataGeolocResponse)(poE.value0)))(function (posString) {\n if (posString instanceof Data_Either.Left) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(savePosToState(dictMonadAff)(App_Geolocation.showLatitudeLongitude(poE.value0)))(function () {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Effect_Console.log(\"Reverse geolocation response failed to decode: \" + posString.value0));\n });\n };\n if (posString instanceof Data_Either.Right) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(savePosToState(dictMonadAff)(posString.value0))(function () {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Effect_Console.log(\"Reverse geolocation response: \" + posString.value0));\n });\n };\n throw new Error(\"Failed pattern match at App.Action (line 144, column 11 - line 150, column 75): \" + [ posString.constructor.name ]);\n });\n };\n throw new Error(\"Failed pattern match at App.Action (line 140, column 7 - line 150, column 75): \" + [ state.options.lookupLocation.constructor.name ]);\n });\n };\n throw new Error(\"Failed pattern match at App.Action (line 134, column 3 - line 150, column 75): \" + [ poE.constructor.name ]);\n });\n };\n var appInit = function (dictMonadAff) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Web_HTML.window))(function (win) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(loadOptions(dictMonadAff)(win))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(loadNote(dictMonadAff)(win))(function () {\n return Halogen_Query_HalogenM[\"subscribe'\"](function (v) {\n return Halogen_Query_Event.eventListener(Web_HTML_Event_EventTypes.domcontentloaded)(Web_HTML_Window.toEventTarget(win))(function (e) {\n return Data_Maybe.Just.create(new ShareTargetEvent(e));\n });\n });\n });\n });\n });\n };\n var handleAction = function (dictMonadAff) {\n return function (action) {\n if (action instanceof Initialize) {\n return appInit(dictMonadAff);\n };\n if (action instanceof ShareTargetEvent) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Web_HTML.window))(function (win) {\n return App_ShareTarget.handleShare(dictMonadAff)(win)(action.value0);\n });\n };\n if (action instanceof NoteAction) {\n if (action.value0 instanceof App_NoteComponent.Geolocation) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(updateOptions(dictMonadAff))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(App_State.setNoteState_(dictMonadAff)(action.value0.value0))(function () {\n return getPosition(dictMonadAff);\n });\n });\n };\n if (action.value0 instanceof App_NoteComponent.Share) {\n return Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff))(App_ShareTarget.shareNote(action.value0.value0));\n };\n if (action.value0 instanceof App_NoteComponent.Download) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(updateOptions(dictMonadAff))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.setNoteState(dictMonadAff)(action.value0.value0))(function (state) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Helpers_Browser.downloadNote(App_Constants.hiddenURLId)(state));\n });\n });\n };\n throw new Error(\"Failed pattern match at App.Action (line 97, column 24 - line 107, column 52): \" + [ action.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at App.Action (line 92, column 23 - line 107, column 52): \" + [ action.constructor.name ]);\n };\n };\n exports[\"Initialize\"] = Initialize;\n exports[\"NoteAction\"] = NoteAction;\n exports[\"handleAction\"] = handleAction;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Applicative.Free\"] = $PS[\"Control.Applicative.Free\"] || {};\n var exports = $PS[\"Control.Applicative.Free\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_List_NonEmpty = $PS[\"Data.List.NonEmpty\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_NonEmpty = $PS[\"Data.NonEmpty\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var Pure = (function () {\n function Pure(value0) {\n this.value0 = value0;\n };\n Pure.create = function (value0) {\n return new Pure(value0);\n };\n return Pure;\n })();\n var Lift = (function () {\n function Lift(value0) {\n this.value0 = value0;\n };\n Lift.create = function (value0) {\n return new Lift(value0);\n };\n return Lift;\n })();\n var Ap = (function () {\n function Ap(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Ap.create = function (value0) {\n return function (value1) {\n return new Ap(value0, value1);\n };\n };\n return Ap;\n })();\n var mkAp = function (fba) {\n return function (fb) {\n return new Ap(fba, fb);\n };\n };\n var liftFreeAp = Lift.create;\n var goLeft = function ($copy_dictApplicative) {\n return function ($copy_fStack) {\n return function ($copy_valStack) {\n return function ($copy_nat) {\n return function ($copy_func) {\n return function ($copy_count) {\n var $tco_var_dictApplicative = $copy_dictApplicative;\n var $tco_var_fStack = $copy_fStack;\n var $tco_var_valStack = $copy_valStack;\n var $tco_var_nat = $copy_nat;\n var $tco_var_func = $copy_func;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictApplicative, fStack, valStack, nat, func, count) {\n if (func instanceof Pure) {\n $tco_done = true;\n return new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: Control_Applicative.pure(dictApplicative)(func.value0),\n count: count\n }, fStack), valStack);\n };\n if (func instanceof Lift) {\n $tco_done = true;\n return new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: nat(func.value0),\n count: count\n }, fStack), valStack);\n };\n if (func instanceof Ap) {\n $tco_var_dictApplicative = dictApplicative;\n $tco_var_fStack = fStack;\n $tco_var_valStack = Data_List_NonEmpty.cons(func.value1)(valStack);\n $tco_var_nat = nat;\n $tco_var_func = func.value0;\n $copy_count = count + 1 | 0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 102, column 41 - line 105, column 81): \" + [ func.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictApplicative, $tco_var_fStack, $tco_var_valStack, $tco_var_nat, $tco_var_func, $copy_count);\n };\n return $tco_result;\n };\n };\n };\n };\n };\n };\n var goApply = function ($copy_dictApplicative) {\n return function ($copy_fStack) {\n return function ($copy_vals) {\n return function ($copy_gVal) {\n var $tco_var_dictApplicative = $copy_dictApplicative;\n var $tco_var_fStack = $copy_fStack;\n var $tco_var_vals = $copy_vals;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictApplicative, fStack, vals, gVal) {\n if (fStack instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gVal);\n };\n if (fStack instanceof Data_List_Types.Cons) {\n var gRes = Control_Apply.apply(dictApplicative.Apply0())(fStack.value0.func)(gVal);\n var $14 = fStack.value0.count === 1;\n if ($14) {\n if (fStack.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gRes);\n };\n $tco_var_dictApplicative = dictApplicative;\n $tco_var_fStack = fStack.value1;\n $tco_var_vals = vals;\n $copy_gVal = gRes;\n return;\n };\n if (vals instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gRes);\n };\n if (vals instanceof Data_List_Types.Cons) {\n $tco_done = true;\n return Data_Either.Right.create(new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: gRes,\n count: fStack.value0.count - 1 | 0\n }, fStack.value1), new Data_NonEmpty.NonEmpty(vals.value0, vals.value1)));\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 83, column 11 - line 88, column 50): \" + [ vals.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 72, column 3 - line 88, column 50): \" + [ fStack.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictApplicative, $tco_var_fStack, $tco_var_vals, $copy_gVal);\n };\n return $tco_result;\n };\n };\n };\n };\n var functorFreeAp = {\n map: function (f) {\n return function (x) {\n return mkAp(new Pure(f))(x);\n };\n }\n };\n var foldFreeAp = function (dictApplicative) {\n return function (nat) {\n return function (z) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value1.value0 instanceof Pure) {\n var v1 = goApply(dictApplicative)(v.value0)(v.value1.value1)(Control_Applicative.pure(dictApplicative)(v.value1.value0.value0));\n if (v1 instanceof Data_Either.Left) {\n $tco_done = true;\n return v1.value0;\n };\n if (v1 instanceof Data_Either.Right) {\n $copy_v = v1.value0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 54, column 17 - line 56, column 24): \" + [ v1.constructor.name ]);\n };\n if (v.value1.value0 instanceof Lift) {\n var v1 = goApply(dictApplicative)(v.value0)(v.value1.value1)(nat(v.value1.value0.value0));\n if (v1 instanceof Data_Either.Left) {\n $tco_done = true;\n return v1.value0;\n };\n if (v1 instanceof Data_Either.Right) {\n $copy_v = v1.value0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 57, column 17 - line 59, column 24): \" + [ v1.constructor.name ]);\n };\n if (v.value1.value0 instanceof Ap) {\n var nextVals = new Data_NonEmpty.NonEmpty(v.value1.value0.value1, v.value1.value1);\n $copy_v = goLeft(dictApplicative)(v.value0)(nextVals)(nat)(v.value1.value0.value0)(1);\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 53, column 5 - line 62, column 47): \" + [ v.value1.value0.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go(new Data_Tuple.Tuple(Data_List_Types.Nil.value, Data_List_NonEmpty.singleton(z)));\n };\n };\n };\n var retractFreeAp = function (dictApplicative) {\n return foldFreeAp(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n };\n var applyFreeAp = {\n apply: function (fba) {\n return function (fb) {\n return mkAp(fba)(fb);\n };\n },\n Functor0: function () {\n return functorFreeAp;\n }\n };\n var applicativeFreeAp = {\n pure: Pure.create,\n Apply0: function () {\n return applyFreeAp;\n }\n };\n var hoistFreeAp = function (f) {\n return foldFreeAp(applicativeFreeAp)(function ($37) {\n return liftFreeAp(f($37));\n });\n };\n exports[\"retractFreeAp\"] = retractFreeAp;\n exports[\"hoistFreeAp\"] = hoistFreeAp;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad.Fork.Class\"] = $PS[\"Control.Monad.Fork.Class\"] || {};\n var exports = $PS[\"Control.Monad.Fork.Class\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var monadForkAff = {\n suspend: Effect_Aff.suspendAff,\n fork: Effect_Aff.forkAff,\n join: Effect_Aff.joinFiber,\n Monad0: function () {\n return Effect_Aff.monadAff;\n },\n Functor1: function () {\n return Effect_Aff.functorFiber;\n }\n };\n var fork = function (dict) {\n return dict.fork;\n };\n exports[\"fork\"] = fork;\n exports[\"monadForkAff\"] = monadForkAff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Aff.Driver.State\"] = $PS[\"Halogen.Aff.Driver.State\"] || {};\n var exports = $PS[\"Halogen.Aff.Driver.State\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Data_Slot = $PS[\"Halogen.Data.Slot\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var unRenderStateX = Unsafe_Coerce.unsafeCoerce;\n var unDriverStateX = Unsafe_Coerce.unsafeCoerce;\n var renderStateX_ = function (dictApplicative) {\n return function (f) {\n return unDriverStateX(function (st) {\n return Data_Foldable.traverse_(dictApplicative)(Data_Foldable.foldableMaybe)(f)(st.rendering);\n });\n };\n };\n var mkRenderStateX = Unsafe_Coerce.unsafeCoerce;\n var renderStateX = function (dictFunctor) {\n return function (f) {\n return unDriverStateX(function (st) {\n return mkRenderStateX(f(st.rendering));\n });\n };\n };\n var mkDriverStateXRef = Unsafe_Coerce.unsafeCoerce;\n var mapDriverState = function (f) {\n return function (v) {\n return f(v);\n };\n };\n var initDriverState = function (component) {\n return function (input) {\n return function (handler) {\n return function (lchs) {\n return function __do() {\n var selfRef = Effect_Ref[\"new\"]({})();\n var childrenIn = Effect_Ref[\"new\"](Halogen_Data_Slot.empty)();\n var childrenOut = Effect_Ref[\"new\"](Halogen_Data_Slot.empty)();\n var handlerRef = Effect_Ref[\"new\"](handler)();\n var pendingQueries = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_List_Types.Nil.value))();\n var pendingOuts = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_List_Types.Nil.value))();\n var pendingHandlers = Effect_Ref[\"new\"](Data_Maybe.Nothing.value)();\n var fresh = Effect_Ref[\"new\"](1)();\n var subscriptions = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_Map_Internal.empty))();\n var forks = Effect_Ref[\"new\"](Data_Map_Internal.empty)();\n var ds = {\n component: component,\n state: component.initialState(input),\n refs: Data_Map_Internal.empty,\n children: Halogen_Data_Slot.empty,\n childrenIn: childrenIn,\n childrenOut: childrenOut,\n selfRef: selfRef,\n handlerRef: handlerRef,\n pendingQueries: pendingQueries,\n pendingOuts: pendingOuts,\n pendingHandlers: pendingHandlers,\n rendering: Data_Maybe.Nothing.value,\n fresh: fresh,\n subscriptions: subscriptions,\n forks: forks,\n lifecycleHandlers: lchs\n };\n Effect_Ref.write(ds)(selfRef)();\n return mkDriverStateXRef(selfRef);\n };\n };\n };\n };\n };\n exports[\"mapDriverState\"] = mapDriverState;\n exports[\"unDriverStateX\"] = unDriverStateX;\n exports[\"renderStateX\"] = renderStateX;\n exports[\"renderStateX_\"] = renderStateX_;\n exports[\"unRenderStateX\"] = unRenderStateX;\n exports[\"initDriverState\"] = initDriverState;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Aff.Driver.Eval\"] = $PS[\"Halogen.Aff.Driver.Eval\"] || {};\n var exports = $PS[\"Halogen.Aff.Driver.Eval\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Applicative_Free = $PS[\"Control.Applicative.Free\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Fork_Class = $PS[\"Control.Monad.Fork.Class\"];\n var Control_Monad_Free = $PS[\"Control.Monad.Free\"];\n var Control_Parallel = $PS[\"Control.Parallel\"];\n var Control_Parallel_Class = $PS[\"Control.Parallel.Class\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Coyoneda = $PS[\"Data.Coyoneda\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Aff_Driver_State = $PS[\"Halogen.Aff.Driver.State\"];\n var Halogen_Query_ChildQuery = $PS[\"Halogen.Query.ChildQuery\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Halogen_Query_HalogenQ = $PS[\"Halogen.Query.HalogenQ\"];\n var Halogen_Query_Input = $PS[\"Halogen.Query.Input\"];\n var Halogen_Subscription = $PS[\"Halogen.Subscription\"];\n var Unsafe_Reference = $PS[\"Unsafe.Reference\"]; \n var unsubscribe = function (sid) {\n return function (ref) {\n return function __do() {\n var v = Effect_Ref.read(ref)();\n var subs = Effect_Ref.read(v.subscriptions)();\n return Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(Halogen_Subscription.unsubscribe)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordSubscriptionId)(sid))(subs))();\n };\n };\n };\n var queueOrRun = function (ref) {\n return function (au) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return au;\n };\n if (v instanceof Data_Maybe.Just) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write(new Data_Maybe.Just(new Data_List_Types.Cons(au, v.value0)))(ref));\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 182, column 33 - line 184, column 57): \" + [ v.constructor.name ]);\n });\n };\n };\n var handleLifecycle = function (lchs) {\n return function (f) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write({\n initializers: Data_List_Types.Nil.value,\n finalizers: Data_List_Types.Nil.value\n })(lchs)))(function () {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(f))(function (result) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(lchs)))(function (v) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff))(v.finalizers))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Control_Parallel.parSequence_(Effect_Aff.parallelAff)(Data_List_Types.foldableList)(v.initializers))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(result);\n });\n });\n });\n });\n });\n };\n };\n var handleAff = Effect_Aff.runAff_(Data_Either.either(Effect_Exception.throwException)(Data_Function[\"const\"](Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit))));\n var fresh = function (f) {\n return function (ref) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"modify'\"](function (i) {\n return {\n state: i + 1 | 0,\n value: f(i)\n };\n })(v.fresh));\n });\n };\n };\n var evalQ = function (render) {\n return function (ref) {\n return function (q) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n return evalM(render)(ref)(v[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Query(Data_Functor.map(Data_Coyoneda.functorCoyoneda)(Data_Maybe.Just.create)(Data_Coyoneda.liftCoyoneda(q)), Data_Function[\"const\"](Data_Maybe.Nothing.value))));\n });\n };\n };\n };\n var evalM = function (render) {\n return function (initRef) {\n return function (v) {\n var evalChildQuery = function (ref) {\n return function (cqb) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v1) {\n return Halogen_Query_ChildQuery.unChildQueryBox(function (v2) {\n var evalChild = function (v3) {\n return Control_Parallel_Class.parallel(Effect_Aff.parallelAff)(Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v3)))(function (dsx) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (ds) {\n return evalQ(render)(ds.selfRef)(v2.value1);\n })(dsx);\n }));\n };\n return Data_Functor.map(Effect_Aff.functorAff)(v2.value2)(Control_Parallel_Class.sequential(Effect_Aff.parallelAff)(v2.value0(Effect_Aff.applicativeParAff)(evalChild)(v1.children)));\n })(cqb);\n });\n };\n };\n var go = function (ref) {\n return function (v1) {\n if (v1 instanceof Halogen_Query_HalogenM.State) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n var v3 = v1.value0(v2.state);\n if (Unsafe_Reference.unsafeRefEq(v2.state)(v3.value1)) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v3.value0);\n };\n if (Data_Boolean.otherwise) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write({\n component: v2.component,\n state: v3.value1,\n refs: v2.refs,\n children: v2.children,\n childrenIn: v2.childrenIn,\n childrenOut: v2.childrenOut,\n selfRef: v2.selfRef,\n handlerRef: v2.handlerRef,\n pendingQueries: v2.pendingQueries,\n pendingOuts: v2.pendingOuts,\n pendingHandlers: v2.pendingHandlers,\n rendering: v2.rendering,\n fresh: v2.fresh,\n subscriptions: v2.subscriptions,\n forks: v2.forks,\n lifecycleHandlers: v2.lifecycleHandlers\n })(ref)))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(handleLifecycle(v2.lifecycleHandlers)(render(v2.lifecycleHandlers)(ref)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v3.value0);\n });\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 86, column 7 - line 92, column 21): \" + [ v3.constructor.name ]);\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Subscribe) {\n return Control_Bind.bind(Effect_Aff.bindAff)(fresh(Halogen_Query_HalogenM.SubscriptionId)(ref))(function (sid) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Halogen_Subscription.subscribe(v1.value0(sid))(function (act) {\n return handleAff(evalF(render)(ref)(new Halogen_Query_Input.Action(act)));\n })))(function (finalize) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.modify_(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Map_Internal.insert(Halogen_Query_HalogenM.ordSubscriptionId)(sid)(finalize)))(v2.subscriptions)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(sid));\n });\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Unsubscribe) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(unsubscribe(v1.value0)(ref)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Lift) {\n return v1.value0;\n };\n if (v1 instanceof Halogen_Query_HalogenM.ChildQuery) {\n return evalChildQuery(ref)(v1.value0);\n };\n if (v1 instanceof Halogen_Query_HalogenM.Raise) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v2.handlerRef)))(function (handler) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(queueOrRun(v2.pendingOuts)(handler(v1.value0)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Par) {\n return Control_Parallel_Class.sequential(Effect_Aff.parallelAff)(Control_Applicative_Free.retractFreeAp(Effect_Aff.applicativeParAff)(Control_Applicative_Free.hoistFreeAp((function () {\n var $78 = Control_Parallel_Class.parallel(Effect_Aff.parallelAff);\n var $79 = evalM(render)(ref);\n return function ($80) {\n return $78($79($80));\n };\n })())(v1.value0)));\n };\n if (v1 instanceof Halogen_Query_HalogenM.Fork) {\n return Control_Bind.bind(Effect_Aff.bindAff)(fresh(Halogen_Query_HalogenM.ForkId)(ref))(function (fid) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"new\"](false)))(function (doneRef) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff)(Effect_Aff[\"finally\"](Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(function __do() {\n Effect_Ref.modify_(Data_Map_Internal[\"delete\"](Halogen_Query_HalogenM.ordForkId)(fid))(v2.forks)();\n return Effect_Ref.write(true)(doneRef)();\n }))(evalM(render)(ref)(v1.value0))))(function (fiber) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Control_Monad.unlessM(Effect.monadEffect)(Effect_Ref.read(doneRef))(Effect_Ref.modify_(Data_Map_Internal.insert(Halogen_Query_HalogenM.ordForkId)(fid)(fiber))(v2.forks))))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(fid));\n });\n });\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Kill) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v2.forks)))(function (forkMap) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(Effect_Aff.killFiber(Effect_Exception.error(\"Cancelled\")))(Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordForkId)(v1.value0)(forkMap)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.GetRef) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(Data_Map_Internal.lookup(Data_Ord.ordString)(v1.value0)(v2.refs)));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 83, column 12 - line 133, column 33): \" + [ v1.constructor.name ]);\n };\n };\n return Control_Monad_Free.foldFree(Effect_Aff.monadRecAff)(go(initRef))(v);\n };\n };\n };\n var evalF = function (render) {\n return function (ref) {\n return function (v) {\n if (v instanceof Halogen_Query_Input.RefUpdate) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Data_Function.flip(Effect_Ref.modify_)(ref)(Halogen_Aff_Driver_State.mapDriverState(function (st) {\n return {\n component: st.component,\n state: st.state,\n refs: Data_Map_Internal.alter(Data_Ord.ordString)(Data_Function[\"const\"](v.value1))(v.value0)(st.refs),\n children: st.children,\n childrenIn: st.childrenIn,\n childrenOut: st.childrenOut,\n selfRef: st.selfRef,\n handlerRef: st.handlerRef,\n pendingQueries: st.pendingQueries,\n pendingOuts: st.pendingOuts,\n pendingHandlers: st.pendingHandlers,\n rendering: st.rendering,\n fresh: st.fresh,\n subscriptions: st.subscriptions,\n forks: st.forks,\n lifecycleHandlers: st.lifecycleHandlers\n };\n })));\n };\n if (v instanceof Halogen_Query_Input.Action) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v1) {\n return evalM(render)(ref)(v1[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Action(v.value0, Data_Unit.unit)));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 52, column 20 - line 58, column 62): \" + [ v.constructor.name ]);\n };\n };\n };\n exports[\"evalF\"] = evalF;\n exports[\"evalQ\"] = evalQ;\n exports[\"evalM\"] = evalM;\n exports[\"handleLifecycle\"] = handleLifecycle;\n exports[\"queueOrRun\"] = queueOrRun;\n exports[\"handleAff\"] = handleAff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Aff.Driver\"] = $PS[\"Halogen.Aff.Driver\"] || {};\n var exports = $PS[\"Halogen.Aff.Driver\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Monad_Fork_Class = $PS[\"Control.Monad.Fork.Class\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Parallel = $PS[\"Control.Parallel\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_List = $PS[\"Data.List\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Console = $PS[\"Effect.Console\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Aff_Driver_Eval = $PS[\"Halogen.Aff.Driver.Eval\"];\n var Halogen_Aff_Driver_State = $PS[\"Halogen.Aff.Driver.State\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_Data_Slot = $PS[\"Halogen.Data.Slot\"];\n var Halogen_Query_HalogenQ = $PS[\"Halogen.Query.HalogenQ\"];\n var Halogen_Query_Input = $PS[\"Halogen.Query.Input\"];\n var Halogen_Subscription = $PS[\"Halogen.Subscription\"]; \n var newLifecycleHandlers = Effect_Ref[\"new\"]({\n initializers: Data_List_Types.Nil.value,\n finalizers: Data_List_Types.Nil.value\n });\n var handlePending = function (ref) {\n return function __do() {\n var queue = Effect_Ref.read(ref)();\n Effect_Ref.write(Data_Maybe.Nothing.value)(ref)();\n return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(queue)((function () {\n var $28 = Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff));\n return function ($29) {\n return Halogen_Aff_Driver_Eval.handleAff($28(Data_List.reverse($29)));\n };\n })())();\n };\n };\n var cleanupSubscriptionsAndForks = function (v) {\n return function __do() {\n Control_Bind.bindFlipped(Effect.bindEffect)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Map_Internal.foldableMap)(Halogen_Subscription.unsubscribe)))(Effect_Ref.read(v.subscriptions))();\n Effect_Ref.write(Data_Maybe.Nothing.value)(v.subscriptions)();\n Control_Bind.bindFlipped(Effect.bindEffect)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Map_Internal.foldableMap)((function () {\n var $30 = Effect_Aff.killFiber(Effect_Exception.error(\"finalized\"));\n return function ($31) {\n return Halogen_Aff_Driver_Eval.handleAff($30($31));\n };\n })()))(Effect_Ref.read(v.forks))();\n return Effect_Ref.write(Data_Map_Internal.empty)(v.forks)();\n };\n };\n var runUI = function (renderSpec) {\n return function (component) {\n return function (i) {\n var squashChildInitializers = function (lchs) {\n return function (preInits) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n var parentInitializer = Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Initialize(Data_Unit.unit)));\n return Effect_Ref.modify_(function (handlers) {\n return {\n initializers: new Data_List_Types.Cons(Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Control_Parallel.parSequence_(Effect_Aff.parallelAff)(Data_List_Types.foldableList)(Data_List.reverse(handlers.initializers)))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(parentInitializer)(function () {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(function __do() {\n handlePending(st.pendingQueries)();\n return handlePending(st.pendingOuts)();\n });\n });\n }), preInits),\n finalizers: handlers.finalizers\n };\n })(lchs);\n });\n };\n };\n var runComponent = function (lchs) {\n return function (handler) {\n return function (j) {\n return Halogen_Component.unComponent(function (c) {\n return function __do() {\n var lchs$prime = newLifecycleHandlers();\n var $$var = Halogen_Aff_Driver_State.initDriverState(c)(j)(handler)(lchs$prime)();\n var pre = Effect_Ref.read(lchs)();\n Effect_Ref.write({\n initializers: Data_List_Types.Nil.value,\n finalizers: pre.finalizers\n })(lchs)();\n Control_Bind.bindFlipped(Effect.bindEffect)(Halogen_Aff_Driver_State.unDriverStateX((function () {\n var $32 = render(lchs);\n return function ($33) {\n return $32((function (v) {\n return v.selfRef;\n })($33));\n };\n })()))(Effect_Ref.read($$var))();\n Control_Bind.bindFlipped(Effect.bindEffect)(squashChildInitializers(lchs)(pre.initializers))(Effect_Ref.read($$var))();\n return $$var;\n };\n });\n };\n };\n };\n var renderChild = function (lchs) {\n return function (handler) {\n return function (childrenInRef) {\n return function (childrenOutRef) {\n return Halogen_Component.unComponentSlot(function (slot) {\n return function __do() {\n var childrenIn = Data_Functor.map(Effect.functorEffect)(slot.pop)(Effect_Ref.read(childrenInRef))();\n var $$var = (function () {\n if (childrenIn instanceof Data_Maybe.Just) {\n Effect_Ref.write(childrenIn.value0.value1)(childrenInRef)();\n var dsx = Effect_Ref.read(childrenIn.value0.value0)();\n Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return function __do() {\n Data_Function.flip(Effect_Ref.write)(st.handlerRef)((function () {\n var $34 = Data_Maybe.maybe(Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Unit.unit))(handler);\n return function ($35) {\n return $34(slot.output($35));\n };\n })())();\n return Halogen_Aff_Driver_Eval.handleAff(Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Receive(slot.input, Data_Unit.unit))))();\n };\n })(dsx)();\n return childrenIn.value0.value0;\n };\n if (childrenIn instanceof Data_Maybe.Nothing) {\n return runComponent(lchs)((function () {\n var $36 = Data_Maybe.maybe(Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Unit.unit))(handler);\n return function ($37) {\n return $36(slot.output($37));\n };\n })())(slot.input)(slot.component)();\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver (line 210, column 14 - line 219, column 98): \" + [ childrenIn.constructor.name ]);\n })();\n var isDuplicate = Data_Functor.map(Effect.functorEffect)(function ($38) {\n return Data_Maybe.isJust(slot.get($38));\n })(Effect_Ref.read(childrenOutRef))();\n Control_Applicative.when(Effect.applicativeEffect)(isDuplicate)(Effect_Console.warn(\"Halogen: Duplicate slot address was detected during rendering, unexpected results may occur\"))();\n Effect_Ref.modify_(slot.set($$var))(childrenOutRef)();\n return Control_Bind.bind(Effect.bindEffect)(Effect_Ref.read($$var))(Halogen_Aff_Driver_State.renderStateX(Effect.functorEffect)(function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Effect_Exception[\"throw\"](\"Halogen internal error: child was not initialized in renderChild\");\n };\n if (v instanceof Data_Maybe.Just) {\n return Control_Applicative.pure(Effect.applicativeEffect)(renderSpec.renderChild(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver (line 224, column 37 - line 226, column 50): \" + [ v.constructor.name ]);\n }))();\n };\n });\n };\n };\n };\n };\n var render = function (lchs) {\n return function ($$var) {\n return function __do() {\n var v = Effect_Ref.read($$var)();\n var shouldProcessHandlers = Data_Functor.map(Effect.functorEffect)(Data_Maybe.isNothing)(Effect_Ref.read(v.pendingHandlers))();\n Control_Applicative.when(Effect.applicativeEffect)(shouldProcessHandlers)(Effect_Ref.write(new Data_Maybe.Just(Data_List_Types.Nil.value))(v.pendingHandlers))();\n Effect_Ref.write(Halogen_Data_Slot.empty)(v.childrenOut)();\n Effect_Ref.write(v.children)(v.childrenIn)();\n var selfRef = Control_Category.identity(Control_Category.categoryFn)(v.selfRef);\n var pendingQueries = Control_Category.identity(Control_Category.categoryFn)(v.pendingQueries);\n var pendingHandlers = Control_Category.identity(Control_Category.categoryFn)(v.pendingHandlers);\n var handler = (function () {\n var $39 = Halogen_Aff_Driver_Eval.queueOrRun(pendingHandlers);\n var $40 = Data_Functor[\"void\"](Effect_Aff.functorAff);\n var $41 = Halogen_Aff_Driver_Eval.evalF(render)(selfRef);\n return function ($42) {\n return $39($40($41($42)));\n };\n })();\n var childHandler = (function () {\n var $43 = Halogen_Aff_Driver_Eval.queueOrRun(pendingQueries);\n return function ($44) {\n return $43(handler(Halogen_Query_Input.Action.create($44)));\n };\n })();\n var rendering = renderSpec.render(function ($45) {\n return Halogen_Aff_Driver_Eval.handleAff(handler($45));\n })(renderChild(lchs)(childHandler)(v.childrenIn)(v.childrenOut))(v.component.render(v.state))(v.rendering)();\n var children = Effect_Ref.read(v.childrenOut)();\n var childrenIn = Effect_Ref.read(v.childrenIn)();\n Halogen_Data_Slot.foreachSlot(Effect.applicativeEffect)(childrenIn)(function (v1) {\n return function __do() {\n var childDS = Effect_Ref.read(v1)();\n Halogen_Aff_Driver_State.renderStateX_(Effect.applicativeEffect)(renderSpec.removeChild)(childDS)();\n return finalize(lchs)(childDS)();\n };\n })();\n Data_Function.flip(Effect_Ref.modify_)(v.selfRef)(Halogen_Aff_Driver_State.mapDriverState(function (ds$prime) {\n return {\n component: ds$prime.component,\n state: ds$prime.state,\n refs: ds$prime.refs,\n children: children,\n childrenIn: ds$prime.childrenIn,\n childrenOut: ds$prime.childrenOut,\n selfRef: ds$prime.selfRef,\n handlerRef: ds$prime.handlerRef,\n pendingQueries: ds$prime.pendingQueries,\n pendingOuts: ds$prime.pendingOuts,\n pendingHandlers: ds$prime.pendingHandlers,\n rendering: new Data_Maybe.Just(rendering),\n fresh: ds$prime.fresh,\n subscriptions: ds$prime.subscriptions,\n forks: ds$prime.forks,\n lifecycleHandlers: ds$prime.lifecycleHandlers\n };\n }))();\n return Control_Applicative.when(Effect.applicativeEffect)(shouldProcessHandlers)(Data_Function.flip(Control_Monad_Rec_Class.tailRecM(Control_Monad_Rec_Class.monadRecEffect))(Data_Unit.unit)(function (v1) {\n return function __do() {\n var handlers = Effect_Ref.read(pendingHandlers)();\n Effect_Ref.write(new Data_Maybe.Just(Data_List_Types.Nil.value))(pendingHandlers)();\n Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)((function () {\n var $46 = Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff));\n return function ($47) {\n return Halogen_Aff_Driver_Eval.handleAff($46(Data_List.reverse($47)));\n };\n })())(handlers)();\n var mmore = Effect_Ref.read(pendingHandlers)();\n var $21 = Data_Maybe.maybe(false)(Data_List[\"null\"])(mmore);\n if ($21) {\n return Data_Functor.voidLeft(Effect.functorEffect)(Effect_Ref.write(Data_Maybe.Nothing.value)(pendingHandlers))(new Control_Monad_Rec_Class.Done(Data_Unit.unit))();\n };\n return new Control_Monad_Rec_Class.Loop(Data_Unit.unit);\n };\n }))();\n };\n };\n };\n var finalize = function (lchs) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return function __do() {\n cleanupSubscriptionsAndForks(st)();\n var f = Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Finalize(Data_Unit.unit)));\n Effect_Ref.modify_(function (handlers) {\n return {\n initializers: handlers.initializers,\n finalizers: new Data_List_Types.Cons(f, handlers.finalizers)\n };\n })(lchs)();\n return Halogen_Data_Slot.foreachSlot(Effect.applicativeEffect)(st.children)(function (v) {\n return function __do() {\n var dsx = Effect_Ref.read(v)();\n return finalize(lchs)(dsx)();\n };\n })();\n };\n });\n };\n var evalDriver = function (disposed) {\n return function (ref) {\n return function (q) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(disposed)))(function (v) {\n if (v) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Maybe.Nothing.value);\n };\n return Halogen_Aff_Driver_Eval.evalQ(render)(ref)(q);\n });\n };\n };\n };\n var dispose = function (disposed) {\n return function (lchs) {\n return function (dsx) {\n return Halogen_Aff_Driver_Eval.handleLifecycle(lchs)(function __do() {\n var v = Effect_Ref.read(disposed)();\n if (v) {\n return Data_Unit.unit;\n };\n Effect_Ref.write(true)(disposed)();\n finalize(lchs)(dsx)();\n return Halogen_Aff_Driver_State.unDriverStateX(function (v1) {\n return function __do() {\n var v2 = Effect_Class.liftEffect(Effect_Class.monadEffectEffect)(Effect_Ref.read(v1.selfRef))();\n return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(v2.rendering)(renderSpec.dispose)();\n };\n })(dsx)();\n });\n };\n };\n };\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(newLifecycleHandlers))(function (lchs) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"new\"](false)))(function (disposed) {\n return Halogen_Aff_Driver_Eval.handleLifecycle(lchs)(function __do() {\n var sio = Halogen_Subscription.create();\n var dsx = Control_Bind.bindFlipped(Effect.bindEffect)(Effect_Ref.read)(runComponent(lchs)((function () {\n var $48 = Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\n var $49 = Halogen_Subscription.notify(sio.listener);\n return function ($50) {\n return $48($49($50));\n };\n })())(i)(component))();\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return Control_Applicative.pure(Effect.applicativeEffect)({\n query: evalDriver(disposed)(st.selfRef),\n messages: sio.emitter,\n dispose: dispose(disposed)(lchs)(dsx)\n });\n })(dsx)();\n });\n });\n });\n };\n };\n };\n exports[\"runUI\"] = runUI;\n})(PS);\n(function(exports) {\n \"use strict\"; \n\n exports._querySelector = function (selector) {\n return function (node) {\n return function () {\n return node.querySelector(selector);\n };\n };\n };\n})(PS[\"Web.DOM.ParentNode\"] = PS[\"Web.DOM.ParentNode\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.DOM.ParentNode\"] = $PS[\"Web.DOM.ParentNode\"] || {};\n var exports = $PS[\"Web.DOM.ParentNode\"];\n var $foreign = $PS[\"Web.DOM.ParentNode\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Effect = $PS[\"Effect\"]; \n var QuerySelector = function (x) {\n return x;\n };\n var querySelector = function (qs) {\n var $0 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $1 = $foreign[\"_querySelector\"](qs);\n return function ($2) {\n return $0($1($2));\n };\n };\n exports[\"QuerySelector\"] = QuerySelector;\n exports[\"querySelector\"] = querySelector;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Aff.Util\"] = $PS[\"Halogen.Aff.Util\"] || {};\n var exports = $PS[\"Halogen.Aff.Util\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Web_DOM_ParentNode = $PS[\"Web.DOM.ParentNode\"];\n var Web_Event_EventTarget = $PS[\"Web.Event.EventTarget\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_Event_EventTypes = $PS[\"Web.HTML.Event.EventTypes\"];\n var Web_HTML_HTMLDocument = $PS[\"Web.HTML.HTMLDocument\"];\n var Web_HTML_HTMLDocument_ReadyState = $PS[\"Web.HTML.HTMLDocument.ReadyState\"];\n var Web_HTML_HTMLElement = $PS[\"Web.HTML.HTMLElement\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"]; \n var selectElement = function (query) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Control_Bind.bindFlipped(Effect.bindEffect)(Control_Bind.composeKleisliFlipped(Effect.bindEffect)((function () {\n var $2 = Web_DOM_ParentNode.querySelector(query);\n return function ($3) {\n return $2(Web_HTML_HTMLDocument.toParentNode($3));\n };\n })())(Web_HTML_Window.document))(Web_HTML.window)))(function (mel) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_HTML_HTMLElement.fromElement)(mel));\n });\n };\n var runHalogenAff = Effect_Aff.runAff_(Data_Either.either(Effect_Exception.throwException)(Data_Function[\"const\"](Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit))));\n var awaitLoad = Effect_Aff.makeAff(function (callback) {\n return function __do() {\n var rs = Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_HTMLDocument.readyState)(Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Window.document)(Web_HTML.window))();\n if (rs instanceof Web_HTML_HTMLDocument_ReadyState.Loading) {\n var et = Data_Functor.map(Effect.functorEffect)(Web_HTML_Window.toEventTarget)(Web_HTML.window)();\n var listener = Web_Event_EventTarget.eventListener(function (v) {\n return callback(new Data_Either.Right(Data_Unit.unit));\n })();\n Web_Event_EventTarget.addEventListener(Web_HTML_Event_EventTypes.domcontentloaded)(listener)(false)(et)();\n return Effect_Aff.effectCanceler(Web_Event_EventTarget.removeEventListener(Web_HTML_Event_EventTypes.domcontentloaded)(listener)(false)(et));\n };\n callback(new Data_Either.Right(Data_Unit.unit))();\n return Effect_Aff.nonCanceler;\n };\n });\n exports[\"awaitLoad\"] = awaitLoad;\n exports[\"selectElement\"] = selectElement;\n exports[\"runHalogenAff\"] = runHalogenAff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.HTML\"] = $PS[\"Halogen.HTML\"] || {};\n var exports = $PS[\"Halogen.HTML\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"]; \n var slot_ = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (p) {\n return function (component) {\n return function (input) {\n return Halogen_HTML_Core.widget(new Halogen_Component.ComponentSlot(Halogen_Component.componentSlot()(dictIsSymbol)(dictOrd)(label)(p)(component)(input)(Data_Function[\"const\"](Data_Maybe.Nothing.value))));\n };\n };\n };\n };\n };\n };\n };\n var slot = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (p) {\n return function (component) {\n return function (input) {\n return function (outputQuery) {\n return Halogen_HTML_Core.widget(new Halogen_Component.ComponentSlot(Halogen_Component.componentSlot()(dictIsSymbol)(dictOrd)(label)(p)(component)(input)(function ($6) {\n return Data_Maybe.Just.create(outputQuery($6));\n })));\n };\n };\n };\n };\n };\n };\n };\n };\n exports[\"slot\"] = slot;\n exports[\"slot_\"] = slot_;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.VDom.DOM\"] = $PS[\"Halogen.VDom.DOM\"] || {};\n var exports = $PS[\"Halogen.VDom.DOM\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Types = $PS[\"Halogen.VDom.Types\"];\n var Halogen_VDom_Util = $PS[\"Halogen.VDom.Util\"];\n var Web_DOM_Element = $PS[\"Web.DOM.Element\"];\n var haltWidget = function (v) {\n return Halogen_VDom_Machine.halt(v.widget);\n };\n var patchWidget = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchWidget(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Widget) {\n var res = Halogen_VDom_Machine.step(state.widget, vdom.value0);\n var res$prime = Halogen_VDom_Machine.unStep(function (v) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(v.value0, {\n build: state.build,\n widget: res\n }, patchWidget, haltWidget));\n })(res);\n return res$prime;\n };\n haltWidget(state);\n return state.build(vdom);\n };\n var haltText = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n return Halogen_VDom_Util.removeChild(v.node, parent);\n };\n var patchText = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchText(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Text) {\n if (state.value === vdom.value0) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, state, patchText, haltText));\n };\n if (Data_Boolean.otherwise) {\n var nextState = {\n build: state.build,\n node: state.node,\n value: vdom.value0\n };\n Halogen_VDom_Util.setTextContent(vdom.value0, state.node);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchText, haltText));\n };\n };\n haltText(state);\n return state.build(vdom);\n };\n var haltKeyed = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n Halogen_VDom_Util.removeChild(v.node, parent);\n Halogen_VDom_Util.forInE(v.children, function (v1, s) {\n return Halogen_VDom_Machine.halt(s);\n });\n return Halogen_VDom_Machine.halt(v.attrs);\n };\n var haltElem = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n Halogen_VDom_Util.removeChild(v.node, parent);\n Halogen_VDom_Util.forEachE(v.children, Halogen_VDom_Machine.halt);\n return Halogen_VDom_Machine.halt(v.attrs);\n };\n var eqElemSpec = function (ns1, v, ns2, v1) {\n var $58 = v === v1;\n if ($58) {\n if (ns1 instanceof Data_Maybe.Just && (ns2 instanceof Data_Maybe.Just && ns1.value0 === ns2.value0)) {\n return true;\n };\n if (ns1 instanceof Data_Maybe.Nothing && ns2 instanceof Data_Maybe.Nothing) {\n return true;\n };\n return false;\n };\n return false;\n };\n var patchElem = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchElem(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Elem && eqElemSpec(state.ns, state.name, vdom.value0, vdom.value1)) {\n var v = Data_Array.length(vdom.value3);\n var v1 = Data_Array.length(state.children);\n if (v1 === 0 && v === 0) {\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: state.children\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchElem, haltElem));\n };\n var onThis = function (v2, s) {\n return Halogen_VDom_Machine.halt(s);\n };\n var onThese = function (ix, s, v2) {\n var res = Halogen_VDom_Machine.step(s, v2);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var onThat = function (ix, v2) {\n var res = state.build(v2);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var children2 = Halogen_VDom_Util.diffWithIxE(state.children, vdom.value3, onThese, onThis, onThat);\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: children2\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchElem, haltElem));\n };\n haltElem(state);\n return state.build(vdom);\n };\n var patchKeyed = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchKeyed(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Keyed && eqElemSpec(state.ns, state.name, vdom.value0, vdom.value1)) {\n var v = Data_Array.length(vdom.value3);\n if (state.length === 0 && v === 0) {\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: state.children,\n length: 0\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchKeyed, haltKeyed));\n };\n var onThis = function (v2, s) {\n return Halogen_VDom_Machine.halt(s);\n };\n var onThese = function (v2, ix$prime, s, v3) {\n var res = Halogen_VDom_Machine.step(s, v3.value1);\n Halogen_VDom_Util.insertChildIx(ix$prime, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var onThat = function (v2, ix, v3) {\n var res = state.build(v3.value1);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var children2 = Halogen_VDom_Util.diffWithKeyAndIxE(state.children, vdom.value3, Data_Tuple.fst, onThese, onThis, onThat);\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: children2,\n length: v\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchKeyed, haltKeyed));\n };\n haltKeyed(state);\n return state.build(vdom);\n };\n var buildWidget = function (v, build, w) {\n var res = v.buildWidget(v)(w);\n var res$prime = Halogen_VDom_Machine.unStep(function (v1) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(v1.value0, {\n build: build,\n widget: res\n }, patchWidget, haltWidget));\n })(res);\n return res$prime;\n };\n var buildText = function (v, build, s) {\n var node = Halogen_VDom_Util.createTextNode(s, v.document);\n var state = {\n build: build,\n node: node,\n value: s\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchText, haltText));\n };\n var buildKeyed = function (v, build, ns1, name1, as1, ch1) {\n var el = Halogen_VDom_Util.createElement(Data_Nullable.toNullable(ns1), name1, v.document);\n var node = Web_DOM_Element.toNode(el);\n var onChild = function (v1, ix, v2) {\n var res = build(v2.value1);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), node);\n return res;\n };\n var children = Halogen_VDom_Util.strMapWithIxE(ch1, Data_Tuple.fst, onChild);\n var attrs = v.buildAttributes(el)(as1);\n var state = {\n build: build,\n node: node,\n attrs: attrs,\n ns: ns1,\n name: name1,\n children: children,\n length: Data_Array.length(ch1)\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchKeyed, haltKeyed));\n };\n var buildElem = function (v, build, ns1, name1, as1, ch1) {\n var el = Halogen_VDom_Util.createElement(Data_Nullable.toNullable(ns1), name1, v.document);\n var node = Web_DOM_Element.toNode(el);\n var onChild = function (ix, child) {\n var res = build(child);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), node);\n return res;\n };\n var children = Halogen_VDom_Util.forE(ch1, onChild);\n var attrs = v.buildAttributes(el)(as1);\n var state = {\n build: build,\n node: node,\n attrs: attrs,\n ns: ns1,\n name: name1,\n children: children\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchElem, haltElem));\n };\n var buildVDom = function (spec) {\n var build = function (v) {\n if (v instanceof Halogen_VDom_Types.Text) {\n return buildText(spec, build, v.value0);\n };\n if (v instanceof Halogen_VDom_Types.Elem) {\n return buildElem(spec, build, v.value0, v.value1, v.value2, v.value3);\n };\n if (v instanceof Halogen_VDom_Types.Keyed) {\n return buildKeyed(spec, build, v.value0, v.value1, v.value2, v.value3);\n };\n if (v instanceof Halogen_VDom_Types.Widget) {\n return buildWidget(spec, build, v.value0);\n };\n if (v instanceof Halogen_VDom_Types.Grafted) {\n return build(Halogen_VDom_Types.runGraft(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM (line 58, column 27 - line 63, column 52): \" + [ v.constructor.name ]);\n };\n return build;\n };\n exports[\"buildVDom\"] = buildVDom;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.VDom.Thunk\"] = $PS[\"Halogen.VDom.Thunk\"] || {};\n var exports = $PS[\"Halogen.VDom.Thunk\"];\n var Halogen_VDom_DOM = $PS[\"Halogen.VDom.DOM\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Util = $PS[\"Halogen.VDom.Util\"]; \n var Thunk = (function () {\n function Thunk(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Thunk.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Thunk(value0, value1, value2, value3);\n };\n };\n };\n };\n return Thunk;\n })(); \n var unsafeEqThunk = function (v, v1) {\n return Halogen_VDom_Util.refEq(v.value0, v1.value0) && (Halogen_VDom_Util.refEq(v.value1, v1.value1) && v.value1(v.value3, v1.value3));\n };\n var thunk = function (tid, eqFn, f, a) {\n return new Thunk(tid, eqFn, f, a);\n };\n var runThunk = function (v) {\n return v.value2(v.value3);\n };\n var buildThunk = function (toVDom) {\n var haltThunk = function (state) {\n return Halogen_VDom_Machine.halt(state.vdom);\n };\n var patchThunk = function (state, t2) {\n var $43 = unsafeEqThunk(state.thunk, t2);\n if ($43) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(state.vdom), state, patchThunk, haltThunk));\n };\n var vdom = Halogen_VDom_Machine.step(state.vdom, toVDom(runThunk(t2)));\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(vdom), {\n vdom: vdom,\n thunk: t2\n }, patchThunk, haltThunk));\n };\n var renderThunk = function (spec) {\n return function (t) {\n var vdom = Halogen_VDom_DOM.buildVDom(spec)(toVDom(runThunk(t)));\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(vdom), {\n thunk: t,\n vdom: vdom\n }, patchThunk, haltThunk));\n };\n };\n return renderThunk;\n };\n exports[\"buildThunk\"] = buildThunk;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n var getEffProp = function (name) {\n return function (node) {\n return function () {\n return node[name];\n };\n };\n }; \n\n exports._parentNode = getEffProp(\"parentNode\"); \n\n exports._nextSibling = getEffProp(\"nextSibling\");\n\n exports.insertBefore = function (node1) {\n return function (node2) {\n return function (parent) {\n return function () {\n parent.insertBefore(node1, node2);\n };\n };\n };\n };\n\n exports.appendChild = function (node) {\n return function (parent) {\n return function () {\n parent.appendChild(node);\n };\n };\n };\n\n exports.removeChild = function (node) {\n return function (parent) {\n return function () {\n parent.removeChild(node);\n };\n };\n };\n})(PS[\"Web.DOM.Node\"] = PS[\"Web.DOM.Node\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.DOM.Node\"] = $PS[\"Web.DOM.Node\"] || {};\n var exports = $PS[\"Web.DOM.Node\"];\n var $foreign = $PS[\"Web.DOM.Node\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Effect = $PS[\"Effect\"];\n var parentNode = (function () {\n var $3 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($4) {\n return $3($foreign[\"_parentNode\"]($4));\n };\n })();\n var nextSibling = (function () {\n var $14 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($15) {\n return $14($foreign[\"_nextSibling\"]($15));\n };\n })();\n exports[\"parentNode\"] = parentNode;\n exports[\"nextSibling\"] = nextSibling;\n exports[\"insertBefore\"] = $foreign.insertBefore;\n exports[\"appendChild\"] = $foreign.appendChild;\n exports[\"removeChild\"] = $foreign.removeChild;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.VDom.Driver\"] = $PS[\"Halogen.VDom.Driver\"] || {};\n var exports = $PS[\"Halogen.VDom.Driver\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_HeytingAlgebra = $PS[\"Data.HeytingAlgebra\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Aff_Driver = $PS[\"Halogen.Aff.Driver\"];\n var Halogen_Aff_Driver_State = $PS[\"Halogen.Aff.Driver.State\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_VDom_DOM = $PS[\"Halogen.VDom.DOM\"];\n var Halogen_VDom_DOM_Prop = $PS[\"Halogen.VDom.DOM.Prop\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Thunk = $PS[\"Halogen.VDom.Thunk\"];\n var Unsafe_Reference = $PS[\"Unsafe.Reference\"];\n var Web_DOM_Node = $PS[\"Web.DOM.Node\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_HTMLDocument = $PS[\"Web.HTML.HTMLDocument\"];\n var Web_HTML_HTMLElement = $PS[\"Web.HTML.HTMLElement\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"];\n var substInParent = function (v) {\n return function (v1) {\n return function (v2) {\n if (v1 instanceof Data_Maybe.Just && v2 instanceof Data_Maybe.Just) {\n return Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.insertBefore(v)(v1.value0)(v2.value0));\n };\n if (v1 instanceof Data_Maybe.Nothing && v2 instanceof Data_Maybe.Just) {\n return Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.appendChild(v)(v2.value0));\n };\n return Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit);\n };\n };\n };\n var removeChild = function (v) {\n return function __do() {\n var npn = Web_DOM_Node.parentNode(v.node)();\n return Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(function (pn) {\n return Web_DOM_Node.removeChild(v.node)(pn);\n })(npn)();\n };\n };\n var mkSpec = function (handler) {\n return function (renderChildRef) {\n return function (document) {\n var getNode = Halogen_Aff_Driver_State.unRenderStateX(function (v) {\n return v.node;\n });\n var done = function (st) {\n if (st instanceof Data_Maybe.Just) {\n return Halogen_VDom_Machine.halt(st.value0);\n };\n return Data_Unit.unit;\n };\n var buildWidget = function (spec) {\n var buildThunk = Halogen_VDom_Thunk.buildThunk(Data_Newtype.unwrap())(spec);\n var renderComponentSlot = function (cs) {\n var renderChild = Effect_Ref.read(renderChildRef)();\n var rsx = renderChild(cs)();\n var node = getNode(rsx);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, Data_Maybe.Nothing.value, patch, done));\n };\n var render = function (slot) {\n if (slot instanceof Halogen_Component.ComponentSlot) {\n return renderComponentSlot(slot.value0);\n };\n if (slot instanceof Halogen_Component.ThunkSlot) {\n var step = buildThunk(slot.value0);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(step), new Data_Maybe.Just(step), patch, done));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 85, column 7 - line 90, column 75): \" + [ slot.constructor.name ]);\n };\n var patch = function (st, slot) {\n if (st instanceof Data_Maybe.Just) {\n if (slot instanceof Halogen_Component.ComponentSlot) {\n Halogen_VDom_Machine.halt(st.value0);\n return renderComponentSlot(slot.value0);\n };\n if (slot instanceof Halogen_Component.ThunkSlot) {\n var step$prime = Halogen_VDom_Machine.step(st.value0, slot.value0);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(step$prime), new Data_Maybe.Just(step$prime), patch, done));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 98, column 22 - line 104, column 79): \" + [ slot.constructor.name ]);\n };\n return render(slot);\n };\n return render;\n };\n var buildAttributes = Halogen_VDom_DOM_Prop.buildProp(handler);\n return {\n buildWidget: buildWidget,\n buildAttributes: buildAttributes,\n document: document\n };\n };\n };\n };\n var renderSpec = function (document) {\n return function (container) {\n var render = function (handler) {\n return function (child) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return function __do() {\n var renderChildRef = Effect_Ref[\"new\"](child)();\n var spec = mkSpec(handler)(renderChildRef)(document);\n var machine = Halogen_VDom_DOM.buildVDom(spec)(v);\n var node = Halogen_VDom_Machine.extract(machine);\n Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.appendChild(node)(Web_HTML_HTMLElement.toNode(container)))();\n return {\n machine: machine,\n node: node,\n renderChildRef: renderChildRef\n };\n };\n };\n if (v1 instanceof Data_Maybe.Just) {\n return function __do() {\n Effect_Ref.write(child)(v1.value0.renderChildRef)();\n var parent = Web_DOM_Node.parentNode(v1.value0.node)();\n var nextSib = Web_DOM_Node.nextSibling(v1.value0.node)();\n var machine$prime = Halogen_VDom_Machine.step(v1.value0.machine, v);\n var newNode = Halogen_VDom_Machine.extract(machine$prime);\n Control_Applicative.when(Effect.applicativeEffect)(Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraBoolean)))(Unsafe_Reference.unsafeRefEq)(v1.value0.node)(newNode))(substInParent(newNode)(nextSib)(parent))();\n return {\n machine: machine$prime,\n node: newNode,\n renderChildRef: v1.value0.renderChildRef\n };\n };\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 159, column 5 - line 175, column 80): \" + [ v1.constructor.name ]);\n };\n };\n };\n };\n return {\n render: render,\n renderChild: Control_Category.identity(Control_Category.categoryFn),\n removeChild: removeChild,\n dispose: removeChild\n };\n };\n };\n var runUI = function (component) {\n return function (i) {\n return function (element) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Data_Functor.map(Effect.functorEffect)(Web_HTML_HTMLDocument.toDocument)(Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Window.document)(Web_HTML.window))))(function (document) {\n return Halogen_Aff_Driver.runUI(renderSpec(document)(element))(component)(i);\n });\n };\n };\n };\n exports[\"runUI\"] = runUI;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Main\"] = $PS[\"Main\"] || {};\n var exports = $PS[\"Main\"];\n var App_Action = $PS[\"App.Action\"];\n var App_Constants = $PS[\"App.Constants\"];\n var App_NoteComponent = $PS[\"App.NoteComponent\"];\n var App_OptionsComponent = $PS[\"App.OptionsComponent\"];\n var App_State = $PS[\"App.State\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Halogen_Aff_Util = $PS[\"Halogen.Aff.Util\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML = $PS[\"Halogen.HTML\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_VDom_Driver = $PS[\"Halogen.VDom.Driver\"];\n var Web_DOM_ParentNode = $PS[\"Web.DOM.ParentNode\"]; \n var hiddenP = Halogen_HTML_Properties.prop(Halogen_HTML_Core.isPropBoolean)(\"hidden\");\n var render = function (dictMonadAff) {\n return function (state) {\n return Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"all\"), Halogen_HTML_Properties.classes([ \"flex\", \"flex-wrap\", \"justify-center\", \"my-4\" ]) ])([ Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"hiddenDiv\") ])([ Halogen_HTML_Elements.a([ Halogen_HTML_Properties.id(App_Constants.hiddenURLId), hiddenP(true) ])([ Halogen_HTML_Core.text(\"download.md\") ]) ]), Halogen_HTML.slot()({\n reflectSymbol: function () {\n return \"note\";\n }\n })(Data_Ord.ordUnit)(App_NoteComponent[\"_noteComponent\"])(Data_Unit.unit)(App_NoteComponent.component(dictMonadAff))(state.note)(App_Action.NoteAction.create), Halogen_HTML.slot_()({\n reflectSymbol: function () {\n return \"options\";\n }\n })(Data_Ord.ordUnit)(App_OptionsComponent[\"_optionsComponent\"])(Data_Unit.unit)(App_OptionsComponent.component(dictMonadAff))(state.options) ]);\n };\n };\n var parentComponent = function (dictMonadAff) {\n return Halogen_Component.mkComponent({\n initialState: App_State.initialState,\n render: render(dictMonadAff),\n \"eval\": Halogen_Component.mkEval({\n handleAction: App_Action.handleAction(dictMonadAff),\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: Halogen_Component.defaultEval.receive,\n initialize: new Data_Maybe.Just(App_Action.Initialize.value),\n finalize: Halogen_Component.defaultEval.finalize\n })\n });\n };\n var main = Halogen_Aff_Util.runHalogenAff(Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Halogen_Aff_Util.awaitLoad)(function () {\n return Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(Web_DOM_ParentNode.QuerySelector(\"#\" + App_Constants.appElementId)))(function (appEl) {\n var app = Data_Maybe.fromJust()(appEl);\n return Halogen_VDom_Driver.runUI(parentComponent(Effect_Aff_Class.monadAffAff))(Data_Unit.unit)(app);\n });\n }));\n exports[\"main\"] = main;\n})(PS);\nPS[\"Main\"].main();"], - "mappings": "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", + "sourcesContent": ["module.exports = XMLHttpRequest;\n", "/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n", "'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n", "'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n", "// Generated by purs bundle 0.14.5\nvar PS = {};\n(function(exports) {\n /* global XMLHttpRequest */\n /* global process */\n \"use strict\";\n\n exports._ajax = function () {\n var platformSpecific = { };\n if (typeof module !== \"undefined\" && module.require && !(typeof process !== \"undefined\" && process.versions[\"electron\"])) {\n // We are on node.js\n platformSpecific.newXHR = function () {\n var XHR = module.require(\"xhr2\");\n return new XHR();\n };\n\n platformSpecific.fixupUrl = function (url, xhr) {\n if (xhr.nodejsBaseUrl === null) {\n var urllib = module.require(\"url\");\n var u = urllib.parse(url);\n u.protocol = u.protocol || \"http:\";\n u.hostname = u.hostname || \"localhost\";\n return urllib.format(u);\n } else {\n return url || \"/\";\n }\n };\n\n platformSpecific.getResponse = function (xhr) {\n return xhr.response;\n };\n } else {\n // We are in the browser\n platformSpecific.newXHR = function () {\n return new XMLHttpRequest();\n };\n\n platformSpecific.fixupUrl = function (url) {\n return url || \"/\";\n };\n\n platformSpecific.getResponse = function (xhr) {\n return xhr.response;\n };\n }\n\n return function (timeoutErrorMessageIdent, requestFailedMessageIdent, mkHeader, options) {\n return function (errback, callback) {\n var xhr = platformSpecific.newXHR();\n var fixedUrl = platformSpecific.fixupUrl(options.url, xhr);\n xhr.open(options.method || \"GET\", fixedUrl, true, options.username, options.password);\n if (options.headers) {\n try {\n // eslint-disable-next-line no-eq-null,eqeqeq\n for (var i = 0, header; (header = options.headers[i]) != null; i++) {\n xhr.setRequestHeader(header.field, header.value);\n }\n } catch (e) {\n errback(e);\n }\n }\n var onerror = function (msgIdent) {\n return function () {\n errback(new Error(msgIdent));\n };\n };\n xhr.onerror = onerror(requestFailedMessageIdent);\n xhr.ontimeout = onerror(timeoutErrorMessageIdent);\n xhr.onload = function () {\n callback({\n status: xhr.status,\n statusText: xhr.statusText,\n headers: xhr.getAllResponseHeaders().split(\"\\r\\n\")\n .filter(function (header) {\n return header.length > 0;\n })\n .map(function (header) {\n var i = header.indexOf(\":\");\n return mkHeader(header.substring(0, i))(header.substring(i + 2));\n }),\n body: platformSpecific.getResponse(xhr)\n });\n };\n xhr.responseType = options.responseType;\n xhr.withCredentials = options.withCredentials;\n xhr.timeout = options.timeout;\n xhr.send(options.content);\n\n return function (error, cancelErrback, cancelCallback) {\n try {\n xhr.abort();\n } catch (e) {\n return cancelErrback(e);\n }\n return cancelCallback();\n };\n };\n };\n }();\n})(PS[\"Affjax\"] = PS[\"Affjax\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Semigroupoid\"] = $PS[\"Control.Semigroupoid\"] || {};\n var exports = $PS[\"Control.Semigroupoid\"];\n var semigroupoidFn = {\n compose: function (f) {\n return function (g) {\n return function (x) {\n return f(g(x));\n };\n };\n }\n };\n exports[\"semigroupoidFn\"] = semigroupoidFn;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Category\"] = $PS[\"Control.Category\"] || {};\n var exports = $PS[\"Control.Category\"];\n var Control_Semigroupoid = $PS[\"Control.Semigroupoid\"]; \n var identity = function (dict) {\n return dict.identity;\n };\n var categoryFn = {\n identity: function (x) {\n return x;\n },\n Semigroupoid0: function () {\n return Control_Semigroupoid.semigroupoidFn;\n }\n };\n exports[\"identity\"] = identity;\n exports[\"categoryFn\"] = categoryFn;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n var refEq = function (r1) {\n return function (r2) {\n return r1 === r2;\n };\n };\n\n exports.eqBooleanImpl = refEq;\n exports.eqIntImpl = refEq; \n exports.eqCharImpl = refEq;\n exports.eqStringImpl = refEq;\n\n exports.eqArrayImpl = function (f) {\n return function (xs) {\n return function (ys) {\n if (xs.length !== ys.length) return false;\n for (var i = 0; i < xs.length; i++) {\n if (!f(xs[i])(ys[i])) return false;\n }\n return true;\n };\n };\n };\n})(PS[\"Data.Eq\"] = PS[\"Data.Eq\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Eq\"] = $PS[\"Data.Eq\"] || {};\n var exports = $PS[\"Data.Eq\"];\n var $foreign = $PS[\"Data.Eq\"];\n var eqUnit = {\n eq: function (v) {\n return function (v1) {\n return true;\n };\n }\n };\n var eqString = {\n eq: $foreign.eqStringImpl\n };\n var eqInt = {\n eq: $foreign.eqIntImpl\n };\n var eqChar = {\n eq: $foreign.eqCharImpl\n };\n var eqBoolean = {\n eq: $foreign.eqBooleanImpl\n };\n var eq = function (dict) {\n return dict.eq;\n };\n var eqArray = function (dictEq) {\n return {\n eq: $foreign.eqArrayImpl(eq(dictEq))\n };\n };\n var notEq = function (dictEq) {\n return function (x) {\n return function (y) {\n return eq(eqBoolean)(eq(dictEq)(x)(y))(false);\n };\n };\n };\n exports[\"eq\"] = eq;\n exports[\"notEq\"] = notEq;\n exports[\"eqInt\"] = eqInt;\n exports[\"eqChar\"] = eqChar;\n exports[\"eqString\"] = eqString;\n exports[\"eqUnit\"] = eqUnit;\n exports[\"eqArray\"] = eqArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Function\"] = $PS[\"Data.Function\"] || {};\n var exports = $PS[\"Data.Function\"]; \n var on = function (f) {\n return function (g) {\n return function (x) {\n return function (y) {\n return f(g(x))(g(y));\n };\n };\n };\n };\n var flip = function (f) {\n return function (b) {\n return function (a) {\n return f(a)(b);\n };\n };\n };\n var $$const = function (a) {\n return function (v) {\n return a;\n };\n };\n var applyFlipped = function (x) {\n return function (f) {\n return f(x);\n };\n };\n exports[\"flip\"] = flip;\n exports[\"const\"] = $$const;\n exports[\"applyFlipped\"] = applyFlipped;\n exports[\"on\"] = on;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.arrayMap = function (f) {\n return function (arr) {\n var l = arr.length;\n var result = new Array(l);\n for (var i = 0; i < l; i++) {\n result[i] = f(arr[i]);\n }\n return result;\n };\n };\n})(PS[\"Data.Functor\"] = PS[\"Data.Functor\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.unit = {};\n})(PS[\"Data.Unit\"] = PS[\"Data.Unit\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Unit\"] = $PS[\"Data.Unit\"] || {};\n var exports = $PS[\"Data.Unit\"];\n var $foreign = $PS[\"Data.Unit\"];\n exports[\"unit\"] = $foreign.unit;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Functor\"] = $PS[\"Data.Functor\"] || {};\n var exports = $PS[\"Data.Functor\"];\n var $foreign = $PS[\"Data.Functor\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var map = function (dict) {\n return dict.map;\n };\n var mapFlipped = function (dictFunctor) {\n return function (fa) {\n return function (f) {\n return map(dictFunctor)(f)(fa);\n };\n };\n };\n var $$void = function (dictFunctor) {\n return map(dictFunctor)(Data_Function[\"const\"](Data_Unit.unit));\n };\n var voidLeft = function (dictFunctor) {\n return function (f) {\n return function (x) {\n return map(dictFunctor)(Data_Function[\"const\"](x))(f);\n };\n };\n };\n var voidRight = function (dictFunctor) {\n return function (x) {\n return map(dictFunctor)(Data_Function[\"const\"](x));\n };\n };\n var functorArray = {\n map: $foreign.arrayMap\n };\n exports[\"map\"] = map;\n exports[\"mapFlipped\"] = mapFlipped;\n exports[\"void\"] = $$void;\n exports[\"voidRight\"] = voidRight;\n exports[\"voidLeft\"] = voidLeft;\n exports[\"functorArray\"] = functorArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Maybe\"] = $PS[\"Data.Maybe\"] || {};\n var exports = $PS[\"Data.Maybe\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var Nothing = (function () {\n function Nothing() {\n\n };\n Nothing.value = new Nothing();\n return Nothing;\n })();\n var Just = (function () {\n function Just(value0) {\n this.value0 = value0;\n };\n Just.create = function (value0) {\n return new Just(value0);\n };\n return Just;\n })();\n var maybe = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Nothing) {\n return v;\n };\n if (v2 instanceof Just) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 230, column 1 - line 230, column 51): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n };\n var isNothing = maybe(true)(Data_Function[\"const\"](false));\n var isJust = maybe(false)(Data_Function[\"const\"](true));\n var functorMaybe = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof Just) {\n return new Just(v(v1.value0));\n };\n return Nothing.value;\n };\n }\n };\n var fromMaybe = function (a) {\n return maybe(a)(Control_Category.identity(Control_Category.categoryFn));\n };\n var fromJust = function (dictPartial) {\n return function (v) {\n if (v instanceof Just) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 281, column 1 - line 281, column 46): \" + [ v.constructor.name ]);\n };\n };\n var eqMaybe = function (dictEq) {\n return {\n eq: function (x) {\n return function (y) {\n if (x instanceof Nothing && y instanceof Nothing) {\n return true;\n };\n if (x instanceof Just && y instanceof Just) {\n return Data_Eq.eq(dictEq)(x.value0)(y.value0);\n };\n return false;\n };\n }\n };\n };\n var applyMaybe = {\n apply: function (v) {\n return function (v1) {\n if (v instanceof Just) {\n return Data_Functor.map(functorMaybe)(v.value0)(v1);\n };\n if (v instanceof Nothing) {\n return Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 68, column 1 - line 70, column 30): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorMaybe;\n }\n };\n var bindMaybe = {\n bind: function (v) {\n return function (v1) {\n if (v instanceof Just) {\n return v1(v.value0);\n };\n if (v instanceof Nothing) {\n return Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 126, column 1 - line 128, column 28): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Apply0: function () {\n return applyMaybe;\n }\n };\n var applicativeMaybe = {\n pure: Just.create,\n Apply0: function () {\n return applyMaybe;\n }\n };\n exports[\"Nothing\"] = Nothing;\n exports[\"Just\"] = Just;\n exports[\"maybe\"] = maybe;\n exports[\"fromMaybe\"] = fromMaybe;\n exports[\"isJust\"] = isJust;\n exports[\"isNothing\"] = isNothing;\n exports[\"fromJust\"] = fromJust;\n exports[\"functorMaybe\"] = functorMaybe;\n exports[\"applyMaybe\"] = applyMaybe;\n exports[\"applicativeMaybe\"] = applicativeMaybe;\n exports[\"bindMaybe\"] = bindMaybe;\n exports[\"eqMaybe\"] = eqMaybe;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.MediaType.Common\"] = $PS[\"Data.MediaType.Common\"] || {};\n var exports = $PS[\"Data.MediaType.Common\"]; \n var applicationJSON = \"application/json\";\n var applicationFormURLEncoded = \"application/x-www-form-urlencoded\";\n exports[\"applicationFormURLEncoded\"] = applicationFormURLEncoded;\n exports[\"applicationJSON\"] = applicationJSON;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Affjax.RequestBody\"] = $PS[\"Affjax.RequestBody\"] || {};\n var exports = $PS[\"Affjax.RequestBody\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_MediaType_Common = $PS[\"Data.MediaType.Common\"]; \n var ArrayView = (function () {\n function ArrayView(value0) {\n this.value0 = value0;\n };\n ArrayView.create = function (value0) {\n return new ArrayView(value0);\n };\n return ArrayView;\n })();\n var Blob = (function () {\n function Blob(value0) {\n this.value0 = value0;\n };\n Blob.create = function (value0) {\n return new Blob(value0);\n };\n return Blob;\n })();\n var Document = (function () {\n function Document(value0) {\n this.value0 = value0;\n };\n Document.create = function (value0) {\n return new Document(value0);\n };\n return Document;\n })();\n var $$String = (function () {\n function $$String(value0) {\n this.value0 = value0;\n };\n $$String.create = function (value0) {\n return new $$String(value0);\n };\n return $$String;\n })();\n var FormData = (function () {\n function FormData(value0) {\n this.value0 = value0;\n };\n FormData.create = function (value0) {\n return new FormData(value0);\n };\n return FormData;\n })();\n var FormURLEncoded = (function () {\n function FormURLEncoded(value0) {\n this.value0 = value0;\n };\n FormURLEncoded.create = function (value0) {\n return new FormURLEncoded(value0);\n };\n return FormURLEncoded;\n })();\n var Json = (function () {\n function Json(value0) {\n this.value0 = value0;\n };\n Json.create = function (value0) {\n return new Json(value0);\n };\n return Json;\n })();\n var toMediaType = function (v) {\n if (v instanceof FormURLEncoded) {\n return new Data_Maybe.Just(Data_MediaType_Common.applicationFormURLEncoded);\n };\n if (v instanceof Json) {\n return new Data_Maybe.Just(Data_MediaType_Common.applicationJSON);\n };\n return Data_Maybe.Nothing.value;\n };\n exports[\"ArrayView\"] = ArrayView;\n exports[\"Blob\"] = Blob;\n exports[\"Document\"] = Document;\n exports[\"String\"] = $$String;\n exports[\"FormData\"] = FormData;\n exports[\"FormURLEncoded\"] = FormURLEncoded;\n exports[\"Json\"] = Json;\n exports[\"toMediaType\"] = toMediaType;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // module Unsafe.Coerce\n\n exports.unsafeCoerce = function (x) {\n return x;\n };\n})(PS[\"Unsafe.Coerce\"] = PS[\"Unsafe.Coerce\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Unsafe.Coerce\"] = $PS[\"Unsafe.Coerce\"] || {};\n var exports = $PS[\"Unsafe.Coerce\"];\n var $foreign = $PS[\"Unsafe.Coerce\"];\n exports[\"unsafeCoerce\"] = $foreign.unsafeCoerce;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Safe.Coerce\"] = $PS[\"Safe.Coerce\"] || {};\n var exports = $PS[\"Safe.Coerce\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var coerce = function (dictCoercible) {\n return Unsafe_Coerce.unsafeCoerce;\n };\n exports[\"coerce\"] = coerce;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Newtype\"] = $PS[\"Data.Newtype\"] || {};\n var exports = $PS[\"Data.Newtype\"];\n var Safe_Coerce = $PS[\"Safe.Coerce\"]; \n var wrap = function (dictNewtype) {\n return Safe_Coerce.coerce();\n };\n var unwrap = function (dictNewtype) {\n return Safe_Coerce.coerce();\n };\n var alaF = function (dictCoercible) {\n return function (dictCoercible1) {\n return function (dictNewtype) {\n return function (dictNewtype1) {\n return function (v) {\n return Safe_Coerce.coerce();\n };\n };\n };\n };\n };\n exports[\"wrap\"] = wrap;\n exports[\"unwrap\"] = unwrap;\n exports[\"alaF\"] = alaF;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Affjax.RequestHeader\"] = $PS[\"Affjax.RequestHeader\"] || {};\n var exports = $PS[\"Affjax.RequestHeader\"];\n var Data_Newtype = $PS[\"Data.Newtype\"]; \n var Accept = (function () {\n function Accept(value0) {\n this.value0 = value0;\n };\n Accept.create = function (value0) {\n return new Accept(value0);\n };\n return Accept;\n })();\n var ContentType = (function () {\n function ContentType(value0) {\n this.value0 = value0;\n };\n ContentType.create = function (value0) {\n return new ContentType(value0);\n };\n return ContentType;\n })();\n var RequestHeader = (function () {\n function RequestHeader(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n RequestHeader.create = function (value0) {\n return function (value1) {\n return new RequestHeader(value0, value1);\n };\n };\n return RequestHeader;\n })();\n var value = function (v) {\n if (v instanceof Accept) {\n return Data_Newtype.unwrap()(v.value0);\n };\n if (v instanceof ContentType) {\n return Data_Newtype.unwrap()(v.value0);\n };\n if (v instanceof RequestHeader) {\n return v.value1;\n };\n throw new Error(\"Failed pattern match at Affjax.RequestHeader (line 26, column 1 - line 26, column 33): \" + [ v.constructor.name ]);\n };\n var name = function (v) {\n if (v instanceof Accept) {\n return \"Accept\";\n };\n if (v instanceof ContentType) {\n return \"Content-Type\";\n };\n if (v instanceof RequestHeader) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Affjax.RequestHeader (line 21, column 1 - line 21, column 32): \" + [ v.constructor.name ]);\n };\n exports[\"Accept\"] = Accept;\n exports[\"ContentType\"] = ContentType;\n exports[\"name\"] = name;\n exports[\"value\"] = value;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Affjax.ResponseFormat\"] = $PS[\"Affjax.ResponseFormat\"] || {};\n var exports = $PS[\"Affjax.ResponseFormat\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_MediaType_Common = $PS[\"Data.MediaType.Common\"]; \n var $$ArrayBuffer = (function () {\n function $$ArrayBuffer(value0) {\n this.value0 = value0;\n };\n $$ArrayBuffer.create = function (value0) {\n return new $$ArrayBuffer(value0);\n };\n return $$ArrayBuffer;\n })();\n var Blob = (function () {\n function Blob(value0) {\n this.value0 = value0;\n };\n Blob.create = function (value0) {\n return new Blob(value0);\n };\n return Blob;\n })();\n var Document = (function () {\n function Document(value0) {\n this.value0 = value0;\n };\n Document.create = function (value0) {\n return new Document(value0);\n };\n return Document;\n })();\n var Json = (function () {\n function Json(value0) {\n this.value0 = value0;\n };\n Json.create = function (value0) {\n return new Json(value0);\n };\n return Json;\n })();\n var $$String = (function () {\n function $$String(value0) {\n this.value0 = value0;\n };\n $$String.create = function (value0) {\n return new $$String(value0);\n };\n return $$String;\n })();\n var Ignore = (function () {\n function Ignore(value0) {\n this.value0 = value0;\n };\n Ignore.create = function (value0) {\n return new Ignore(value0);\n };\n return Ignore;\n })();\n var toResponseType = function (v) {\n if (v instanceof $$ArrayBuffer) {\n return \"arraybuffer\";\n };\n if (v instanceof Blob) {\n return \"blob\";\n };\n if (v instanceof Document) {\n return \"document\";\n };\n if (v instanceof Json) {\n return \"text\";\n };\n if (v instanceof $$String) {\n return \"text\";\n };\n if (v instanceof Ignore) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Affjax.ResponseFormat (line 44, column 3 - line 50, column 19): \" + [ v.constructor.name ]);\n };\n var toMediaType = function (v) {\n if (v instanceof Json) {\n return new Data_Maybe.Just(Data_MediaType_Common.applicationJSON);\n };\n return Data_Maybe.Nothing.value;\n }; \n var json = new Json(Control_Category.identity(Control_Category.categoryFn));\n var ignore = new Ignore(Control_Category.identity(Control_Category.categoryFn));\n exports[\"ArrayBuffer\"] = $$ArrayBuffer;\n exports[\"Blob\"] = Blob;\n exports[\"Document\"] = Document;\n exports[\"Json\"] = Json;\n exports[\"String\"] = $$String;\n exports[\"Ignore\"] = Ignore;\n exports[\"json\"] = json;\n exports[\"ignore\"] = ignore;\n exports[\"toResponseType\"] = toResponseType;\n exports[\"toMediaType\"] = toMediaType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Affjax.ResponseHeader\"] = $PS[\"Affjax.ResponseHeader\"] || {};\n var exports = $PS[\"Affjax.ResponseHeader\"]; \n var ResponseHeader = (function () {\n function ResponseHeader(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ResponseHeader.create = function (value0) {\n return function (value1) {\n return new ResponseHeader(value0, value1);\n };\n };\n return ResponseHeader;\n })();\n exports[\"ResponseHeader\"] = ResponseHeader;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Alt\"] = $PS[\"Control.Alt\"] || {};\n var exports = $PS[\"Control.Alt\"];\n var alt = function (dict) {\n return dict.alt;\n };\n exports[\"alt\"] = alt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Apply\"] = $PS[\"Control.Apply\"] || {};\n var exports = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var apply = function (dict) {\n return dict.apply;\n };\n var applySecond = function (dictApply) {\n return function (a) {\n return function (b) {\n return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(Data_Function[\"const\"](Control_Category.identity(Control_Category.categoryFn)))(a))(b);\n };\n };\n };\n exports[\"apply\"] = apply;\n exports[\"applySecond\"] = applySecond;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Applicative\"] = $PS[\"Control.Applicative\"] || {};\n var exports = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var pure = function (dict) {\n return dict.pure;\n };\n var unless = function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (!v) {\n return v1;\n };\n if (v) {\n return pure(dictApplicative)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Applicative (line 66, column 1 - line 66, column 65): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n };\n var when = function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (v) {\n return v1;\n };\n if (!v) {\n return pure(dictApplicative)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Applicative (line 61, column 1 - line 61, column 63): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n };\n var liftA1 = function (dictApplicative) {\n return function (f) {\n return function (a) {\n return Control_Apply.apply(dictApplicative.Apply0())(pure(dictApplicative)(f))(a);\n };\n };\n };\n exports[\"pure\"] = pure;\n exports[\"liftA1\"] = liftA1;\n exports[\"unless\"] = unless;\n exports[\"when\"] = when;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Bind\"] = $PS[\"Control.Bind\"] || {};\n var exports = $PS[\"Control.Bind\"];\n var Data_Function = $PS[\"Data.Function\"]; \n var discard = function (dict) {\n return dict.discard;\n };\n var bind = function (dict) {\n return dict.bind;\n };\n var bindFlipped = function (dictBind) {\n return Data_Function.flip(bind(dictBind));\n };\n var composeKleisliFlipped = function (dictBind) {\n return function (f) {\n return function (g) {\n return function (a) {\n return bindFlipped(dictBind)(f)(g(a));\n };\n };\n };\n };\n var composeKleisli = function (dictBind) {\n return function (f) {\n return function (g) {\n return function (a) {\n return bind(dictBind)(f(a))(g);\n };\n };\n };\n };\n var discardUnit = {\n discard: function (dictBind) {\n return bind(dictBind);\n }\n };\n exports[\"bind\"] = bind;\n exports[\"bindFlipped\"] = bindFlipped;\n exports[\"discard\"] = discard;\n exports[\"composeKleisli\"] = composeKleisli;\n exports[\"composeKleisliFlipped\"] = composeKleisliFlipped;\n exports[\"discardUnit\"] = discardUnit;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Either\"] = $PS[\"Data.Either\"] || {};\n var exports = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var Left = (function () {\n function Left(value0) {\n this.value0 = value0;\n };\n Left.create = function (value0) {\n return new Left(value0);\n };\n return Left;\n })();\n var Right = (function () {\n function Right(value0) {\n this.value0 = value0;\n };\n Right.create = function (value0) {\n return new Right(value0);\n };\n return Right;\n })();\n var note = function (a) {\n return Data_Maybe.maybe(new Left(a))(Right.create);\n };\n var functorEither = {\n map: function (f) {\n return function (m) {\n if (m instanceof Left) {\n return new Left(m.value0);\n };\n if (m instanceof Right) {\n return new Right(f(m.value0));\n };\n throw new Error(\"Failed pattern match at Data.Either (line 31, column 1 - line 31, column 52): \" + [ m.constructor.name ]);\n };\n }\n };\n var either = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Left) {\n return v(v2.value0);\n };\n if (v2 instanceof Right) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 208, column 1 - line 208, column 64): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n };\n var applyEither = {\n apply: function (v) {\n return function (v1) {\n if (v instanceof Left) {\n return new Left(v.value0);\n };\n if (v instanceof Right) {\n return Data_Functor.map(functorEither)(v.value0)(v1);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 70, column 1 - line 72, column 30): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorEither;\n }\n };\n var bindEither = {\n bind: either(function (e) {\n return function (v) {\n return new Left(e);\n };\n })(function (a) {\n return function (f) {\n return f(a);\n };\n }),\n Apply0: function () {\n return applyEither;\n }\n };\n var applicativeEither = {\n pure: Right.create,\n Apply0: function () {\n return applyEither;\n }\n };\n var altEither = {\n alt: function (v) {\n return function (v1) {\n if (v instanceof Left) {\n return v1;\n };\n return v;\n };\n },\n Functor0: function () {\n return functorEither;\n }\n };\n exports[\"Left\"] = Left;\n exports[\"Right\"] = Right;\n exports[\"either\"] = either;\n exports[\"note\"] = note;\n exports[\"functorEither\"] = functorEither;\n exports[\"applicativeEither\"] = applicativeEither;\n exports[\"altEither\"] = altEither;\n exports[\"bindEither\"] = bindEither;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad.Error.Class\"] = $PS[\"Control.Monad.Error.Class\"] || {};\n var exports = $PS[\"Control.Monad.Error.Class\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var throwError = function (dict) {\n return dict.throwError;\n };\n var catchError = function (dict) {\n return dict.catchError;\n };\n var $$try = function (dictMonadError) {\n return function (a) {\n return catchError(dictMonadError)(Data_Functor.map(((((dictMonadError.MonadThrow0()).Monad0()).Bind1()).Apply0()).Functor0())(Data_Either.Right.create)(a))((function () {\n var $21 = Control_Applicative.pure(((dictMonadError.MonadThrow0()).Monad0()).Applicative0());\n return function ($22) {\n return $21(Data_Either.Left.create($22));\n };\n })());\n };\n };\n exports[\"throwError\"] = throwError;\n exports[\"try\"] = $$try;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad\"] = $PS[\"Control.Monad\"] || {};\n var exports = $PS[\"Control.Monad\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var unlessM = function (dictMonad) {\n return function (mb) {\n return function (m) {\n return Control_Bind.bind(dictMonad.Bind1())(mb)(function (b) {\n return Control_Applicative.unless(dictMonad.Applicative0())(b)(m);\n });\n };\n };\n };\n var ap = function (dictMonad) {\n return function (f) {\n return function (a) {\n return Control_Bind.bind(dictMonad.Bind1())(f)(function (f$prime) {\n return Control_Bind.bind(dictMonad.Bind1())(a)(function (a$prime) {\n return Control_Applicative.pure(dictMonad.Applicative0())(f$prime(a$prime));\n });\n });\n };\n };\n };\n exports[\"unlessM\"] = unlessM;\n exports[\"ap\"] = ap;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.concatArray = function (xs) {\n return function (ys) {\n if (xs.length === 0) return ys;\n if (ys.length === 0) return xs;\n return xs.concat(ys);\n };\n };\n})(PS[\"Data.Semigroup\"] = PS[\"Data.Semigroup\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Semigroup\"] = $PS[\"Data.Semigroup\"] || {};\n var exports = $PS[\"Data.Semigroup\"];\n var $foreign = $PS[\"Data.Semigroup\"];\n var semigroupArray = {\n append: $foreign.concatArray\n };\n var append = function (dict) {\n return dict.append;\n };\n exports[\"append\"] = append;\n exports[\"semigroupArray\"] = semigroupArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad.Except.Trans\"] = $PS[\"Control.Monad.Except.Trans\"] || {};\n var exports = $PS[\"Control.Monad.Except.Trans\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"]; \n var ExceptT = function (x) {\n return x;\n };\n var runExceptT = function (v) {\n return v;\n };\n var mapExceptT = function (f) {\n return function (v) {\n return f(v);\n };\n };\n var functorExceptT = function (dictFunctor) {\n return {\n map: function (f) {\n return mapExceptT(Data_Functor.map(dictFunctor)(Data_Functor.map(Data_Either.functorEither)(f)));\n }\n };\n };\n var monadExceptT = function (dictMonad) {\n return {\n Applicative0: function () {\n return applicativeExceptT(dictMonad);\n },\n Bind1: function () {\n return bindExceptT(dictMonad);\n }\n };\n };\n var bindExceptT = function (dictMonad) {\n return {\n bind: function (v) {\n return function (k) {\n return Control_Bind.bind(dictMonad.Bind1())(v)(Data_Either.either((function () {\n var $91 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($92) {\n return $91(Data_Either.Left.create($92));\n };\n })())(function (a) {\n var v1 = k(a);\n return v1;\n }));\n };\n },\n Apply0: function () {\n return applyExceptT(dictMonad);\n }\n };\n };\n var applyExceptT = function (dictMonad) {\n return {\n apply: Control_Monad.ap(monadExceptT(dictMonad)),\n Functor0: function () {\n return functorExceptT(((dictMonad.Bind1()).Apply0()).Functor0());\n }\n };\n };\n var applicativeExceptT = function (dictMonad) {\n return {\n pure: (function () {\n var $93 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($94) {\n return ExceptT($93(Data_Either.Right.create($94)));\n };\n })(),\n Apply0: function () {\n return applyExceptT(dictMonad);\n }\n };\n };\n var monadThrowExceptT = function (dictMonad) {\n return {\n throwError: (function () {\n var $103 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($104) {\n return ExceptT($103(Data_Either.Left.create($104)));\n };\n })(),\n Monad0: function () {\n return monadExceptT(dictMonad);\n }\n };\n };\n var altExceptT = function (dictSemigroup) {\n return function (dictMonad) {\n return {\n alt: function (v) {\n return function (v1) {\n return Control_Bind.bind(dictMonad.Bind1())(v)(function (rm) {\n if (rm instanceof Data_Either.Right) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Either.Right(rm.value0));\n };\n if (rm instanceof Data_Either.Left) {\n return Control_Bind.bind(dictMonad.Bind1())(v1)(function (rn) {\n if (rn instanceof Data_Either.Right) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Either.Right(rn.value0));\n };\n if (rn instanceof Data_Either.Left) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Either.Left(Data_Semigroup.append(dictSemigroup)(rm.value0)(rn.value0)));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 87, column 9 - line 89, column 49): \" + [ rn.constructor.name ]);\n });\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 83, column 5 - line 89, column 49): \" + [ rm.constructor.name ]);\n });\n };\n },\n Functor0: function () {\n return functorExceptT(((dictMonad.Bind1()).Apply0()).Functor0());\n }\n };\n };\n };\n exports[\"runExceptT\"] = runExceptT;\n exports[\"functorExceptT\"] = functorExceptT;\n exports[\"applicativeExceptT\"] = applicativeExceptT;\n exports[\"bindExceptT\"] = bindExceptT;\n exports[\"altExceptT\"] = altExceptT;\n exports[\"monadThrowExceptT\"] = monadThrowExceptT;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad.Except\"] = $PS[\"Control.Monad.Except\"] || {};\n var exports = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Newtype = $PS[\"Data.Newtype\"]; \n var runExcept = (function () {\n var $0 = Data_Newtype.unwrap();\n return function ($1) {\n return $0(Control_Monad_Except_Trans.runExceptT($1));\n };\n })();\n exports[\"runExcept\"] = runExcept;\n})(PS);\n(function(exports) {\n /* eslint-disable no-eq-null, eqeqeq */\n \"use strict\";\n\n function id(x) {\n return x;\n } \n exports.fromString = id;\n exports.fromArray = id;\n exports.fromObject = id;\n\n exports.jsonNull = null;\n\n exports.stringify = function (j) {\n return JSON.stringify(j);\n };\n\n function isArray(a) {\n return Object.prototype.toString.call(a) === \"[object Array]\";\n }\n\n exports._caseJson = function (isNull, isBool, isNum, isStr, isArr, isObj, j) {\n if (j == null) return isNull();\n else if (typeof j === \"boolean\") return isBool(j);\n else if (typeof j === \"number\") return isNum(j);\n else if (typeof j === \"string\") return isStr(j);\n else if (Object.prototype.toString.call(j) === \"[object Array]\")\n return isArr(j);\n else return isObj(j);\n };\n\n exports._compare = function _compare(EQ, GT, LT, a, b) {\n if (a == null) {\n if (b == null) return EQ;\n else return LT;\n } else if (typeof a === \"boolean\") {\n if (typeof b === \"boolean\") {\n // boolean / boolean\n if (a === b) return EQ;\n else if (a === false) return LT;\n else return GT;\n } else if (b == null) return GT;\n else return LT;\n } else if (typeof a === \"number\") {\n if (typeof b === \"number\") {\n if (a === b) return EQ;\n else if (a < b) return LT;\n else return GT;\n } else if (b == null) return GT;\n else if (typeof b === \"boolean\") return GT;\n else return LT;\n } else if (typeof a === \"string\") {\n if (typeof b === \"string\") {\n if (a === b) return EQ;\n else if (a < b) return LT;\n else return GT;\n } else if (b == null) return GT;\n else if (typeof b === \"boolean\") return GT;\n else if (typeof b === \"number\") return GT;\n else return LT;\n } else if (isArray(a)) {\n if (isArray(b)) {\n for (var i = 0; i < Math.min(a.length, b.length); i++) {\n var ca = _compare(EQ, GT, LT, a[i], b[i]);\n if (ca !== EQ) return ca;\n }\n if (a.length === b.length) return EQ;\n else if (a.length < b.length) return LT;\n else return GT;\n } else if (b == null) return GT;\n else if (typeof b === \"boolean\") return GT;\n else if (typeof b === \"number\") return GT;\n else if (typeof b === \"string\") return GT;\n else return LT;\n } else {\n if (b == null) return GT;\n else if (typeof b === \"boolean\") return GT;\n else if (typeof b === \"number\") return GT;\n else if (typeof b === \"string\") return GT;\n else if (isArray(b)) return GT;\n else {\n var akeys = Object.keys(a);\n var bkeys = Object.keys(b);\n if (akeys.length < bkeys.length) return LT;\n else if (akeys.length > bkeys.length) return GT;\n var keys = akeys.concat(bkeys).sort();\n for (var j = 0; j < keys.length; j++) {\n var k = keys[j];\n if (a[k] === undefined) return LT;\n else if (b[k] === undefined) return GT;\n var ck = _compare(EQ, GT, LT, a[k], b[k]);\n if (ck !== EQ) return ck;\n }\n return EQ;\n }\n }\n };\n})(PS[\"Data.Argonaut.Core\"] = PS[\"Data.Argonaut.Core\"] || {});\n(function(exports) {\n \"use strict\";\n\n var unsafeCompareImpl = function (lt) {\n return function (eq) {\n return function (gt) {\n return function (x) {\n return function (y) {\n return x < y ? lt : x === y ? eq : gt;\n };\n };\n };\n };\n }; \n exports.ordIntImpl = unsafeCompareImpl; \n exports.ordStringImpl = unsafeCompareImpl;\n exports.ordCharImpl = unsafeCompareImpl;\n})(PS[\"Data.Ord\"] = PS[\"Data.Ord\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Ordering\"] = $PS[\"Data.Ordering\"] || {};\n var exports = $PS[\"Data.Ordering\"];\n var LT = (function () {\n function LT() {\n\n };\n LT.value = new LT();\n return LT;\n })();\n var GT = (function () {\n function GT() {\n\n };\n GT.value = new GT();\n return GT;\n })();\n var EQ = (function () {\n function EQ() {\n\n };\n EQ.value = new EQ();\n return EQ;\n })();\n var eqOrdering = {\n eq: function (v) {\n return function (v1) {\n if (v instanceof LT && v1 instanceof LT) {\n return true;\n };\n if (v instanceof GT && v1 instanceof GT) {\n return true;\n };\n if (v instanceof EQ && v1 instanceof EQ) {\n return true;\n };\n return false;\n };\n }\n };\n exports[\"LT\"] = LT;\n exports[\"GT\"] = GT;\n exports[\"EQ\"] = EQ;\n exports[\"eqOrdering\"] = eqOrdering;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Ord\"] = $PS[\"Data.Ord\"] || {};\n var exports = $PS[\"Data.Ord\"];\n var $foreign = $PS[\"Data.Ord\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Ordering = $PS[\"Data.Ordering\"];\n var ordUnit = {\n compare: function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n },\n Eq0: function () {\n return Data_Eq.eqUnit;\n }\n };\n var ordString = {\n compare: $foreign.ordStringImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqString;\n }\n };\n var ordInt = {\n compare: $foreign.ordIntImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqInt;\n }\n };\n var ordChar = {\n compare: $foreign.ordCharImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqChar;\n }\n };\n var compare = function (dict) {\n return dict.compare;\n };\n exports[\"compare\"] = compare;\n exports[\"ordInt\"] = ordInt;\n exports[\"ordString\"] = ordString;\n exports[\"ordChar\"] = ordChar;\n exports[\"ordUnit\"] = ordUnit;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._copyST = function (m) {\n return function () {\n var r = {};\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n r[k] = m[k];\n }\n }\n return r;\n };\n };\n\n exports.empty = {};\n\n exports.runST = function (f) {\n return f();\n };\n\n exports._fmapObject = function (m0, f) {\n var m = {};\n for (var k in m0) {\n if (hasOwnProperty.call(m0, k)) {\n m[k] = f(m0[k]);\n }\n }\n return m;\n };\n\n exports._mapWithKey = function (m0, f) {\n var m = {};\n for (var k in m0) {\n if (hasOwnProperty.call(m0, k)) {\n m[k] = f(k)(m0[k]);\n }\n }\n return m;\n };\n\n exports._foldM = function (bind) {\n return function (f) {\n return function (mz) {\n return function (m) {\n var acc = mz;\n function g(k) {\n return function (z) {\n return f(z)(k)(m[k]);\n };\n }\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n acc = bind(acc)(g(k));\n }\n }\n return acc;\n };\n };\n };\n };\n\n exports._lookup = function (no, yes, k, m) {\n return k in m ? yes(m[k]) : no;\n };\n\n function toArrayWithKey(f) {\n return function (m) {\n var r = [];\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n r.push(f(k)(m[k]));\n }\n }\n return r;\n };\n }\n\n exports.toArrayWithKey = toArrayWithKey;\n})(PS[\"Foreign.Object\"] = PS[\"Foreign.Object\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.foldrArray = function (f) {\n return function (init) {\n return function (xs) {\n var acc = init;\n var len = xs.length;\n for (var i = len - 1; i >= 0; i--) {\n acc = f(xs[i])(acc);\n }\n return acc;\n };\n };\n };\n\n exports.foldlArray = function (f) {\n return function (init) {\n return function (xs) {\n var acc = init;\n var len = xs.length;\n for (var i = 0; i < len; i++) {\n acc = f(acc)(xs[i]);\n }\n return acc;\n };\n };\n };\n})(PS[\"Data.Foldable\"] = PS[\"Data.Foldable\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Monoid\"] = $PS[\"Data.Monoid\"] || {};\n var exports = $PS[\"Data.Monoid\"];\n var mempty = function (dict) {\n return dict.mempty;\n };\n exports[\"mempty\"] = mempty;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.boolConj = function (b1) {\n return function (b2) {\n return b1 && b2;\n };\n };\n\n exports.boolDisj = function (b1) {\n return function (b2) {\n return b1 || b2;\n };\n };\n\n exports.boolNot = function (b) {\n return !b;\n };\n})(PS[\"Data.HeytingAlgebra\"] = PS[\"Data.HeytingAlgebra\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.HeytingAlgebra\"] = $PS[\"Data.HeytingAlgebra\"] || {};\n var exports = $PS[\"Data.HeytingAlgebra\"];\n var $foreign = $PS[\"Data.HeytingAlgebra\"];\n var tt = function (dict) {\n return dict.tt;\n };\n var not = function (dict) {\n return dict.not;\n };\n var implies = function (dict) {\n return dict.implies;\n };\n var ff = function (dict) {\n return dict.ff;\n };\n var disj = function (dict) {\n return dict.disj;\n };\n var heytingAlgebraBoolean = {\n ff: false,\n tt: true,\n implies: function (a) {\n return function (b) {\n return disj(heytingAlgebraBoolean)(not(heytingAlgebraBoolean)(a))(b);\n };\n },\n conj: $foreign.boolConj,\n disj: $foreign.boolDisj,\n not: $foreign.boolNot\n };\n var conj = function (dict) {\n return dict.conj;\n };\n var heytingAlgebraFunction = function (dictHeytingAlgebra) {\n return {\n ff: function (v) {\n return ff(dictHeytingAlgebra);\n },\n tt: function (v) {\n return tt(dictHeytingAlgebra);\n },\n implies: function (f) {\n return function (g) {\n return function (a) {\n return implies(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n },\n conj: function (f) {\n return function (g) {\n return function (a) {\n return conj(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n },\n disj: function (f) {\n return function (g) {\n return function (a) {\n return disj(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n },\n not: function (f) {\n return function (a) {\n return not(dictHeytingAlgebra)(f(a));\n };\n }\n };\n };\n exports[\"ff\"] = ff;\n exports[\"disj\"] = disj;\n exports[\"not\"] = not;\n exports[\"heytingAlgebraBoolean\"] = heytingAlgebraBoolean;\n exports[\"heytingAlgebraFunction\"] = heytingAlgebraFunction;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Monoid.Disj\"] = $PS[\"Data.Monoid.Disj\"] || {};\n var exports = $PS[\"Data.Monoid.Disj\"];\n var Data_HeytingAlgebra = $PS[\"Data.HeytingAlgebra\"];\n var Disj = function (x) {\n return x;\n };\n var semigroupDisj = function (dictHeytingAlgebra) {\n return {\n append: function (v) {\n return function (v1) {\n return Data_HeytingAlgebra.disj(dictHeytingAlgebra)(v)(v1);\n };\n }\n };\n };\n var monoidDisj = function (dictHeytingAlgebra) {\n return {\n mempty: Data_HeytingAlgebra.ff(dictHeytingAlgebra),\n Semigroup0: function () {\n return semigroupDisj(dictHeytingAlgebra);\n }\n };\n };\n exports[\"Disj\"] = Disj;\n exports[\"monoidDisj\"] = monoidDisj;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Foldable\"] = $PS[\"Data.Foldable\"] || {};\n var exports = $PS[\"Data.Foldable\"];\n var $foreign = $PS[\"Data.Foldable\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Monoid_Disj = $PS[\"Data.Monoid.Disj\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var foldr = function (dict) {\n return dict.foldr;\n };\n var traverse_ = function (dictApplicative) {\n return function (dictFoldable) {\n return function (f) {\n return foldr(dictFoldable)((function () {\n var $316 = Control_Apply.applySecond(dictApplicative.Apply0());\n return function ($317) {\n return $316(f($317));\n };\n })())(Control_Applicative.pure(dictApplicative)(Data_Unit.unit));\n };\n };\n };\n var for_ = function (dictApplicative) {\n return function (dictFoldable) {\n return Data_Function.flip(traverse_(dictApplicative)(dictFoldable));\n };\n };\n var foldl = function (dict) {\n return dict.foldl;\n };\n var foldableMaybe = {\n foldr: function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return z;\n };\n if (v1 instanceof Data_Maybe.Just) {\n return v(v1.value0)(z);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n },\n foldl: function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return z;\n };\n if (v1 instanceof Data_Maybe.Just) {\n return v(z)(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return Data_Monoid.mempty(dictMonoid);\n };\n if (v1 instanceof Data_Maybe.Just) {\n return v(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n }\n };\n var foldMapDefaultR = function (dictFoldable) {\n return function (dictMonoid) {\n return function (f) {\n return foldr(dictFoldable)(function (x) {\n return function (acc) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(f(x))(acc);\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n };\n };\n var foldableArray = {\n foldr: $foreign.foldrArray,\n foldl: $foreign.foldlArray,\n foldMap: function (dictMonoid) {\n return foldMapDefaultR(foldableArray)(dictMonoid);\n }\n };\n var foldMap = function (dict) {\n return dict.foldMap;\n };\n var any = function (dictFoldable) {\n return function (dictHeytingAlgebra) {\n return Data_Newtype.alaF()()()()(Data_Monoid_Disj.Disj)(foldMap(dictFoldable)(Data_Monoid_Disj.monoidDisj(dictHeytingAlgebra)));\n };\n };\n exports[\"foldr\"] = foldr;\n exports[\"foldl\"] = foldl;\n exports[\"foldMap\"] = foldMap;\n exports[\"traverse_\"] = traverse_;\n exports[\"for_\"] = for_;\n exports[\"any\"] = any;\n exports[\"foldableArray\"] = foldableArray;\n exports[\"foldableMaybe\"] = foldableMaybe;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.runFn3 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return fn(a, b, c);\n };\n };\n };\n };\n\n exports.runFn4 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return fn(a, b, c, d);\n };\n };\n };\n };\n };\n})(PS[\"Data.Function.Uncurried\"] = PS[\"Data.Function.Uncurried\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Function.Uncurried\"] = $PS[\"Data.Function.Uncurried\"] || {};\n var exports = $PS[\"Data.Function.Uncurried\"];\n var $foreign = $PS[\"Data.Function.Uncurried\"];\n exports[\"runFn3\"] = $foreign.runFn3;\n exports[\"runFn4\"] = $foreign.runFn4;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // jshint maxparams: 3\n\n exports.traverseArrayImpl = (function () {\n function array1(a) {\n return [a];\n }\n\n function array2(a) {\n return function (b) {\n return [a, b];\n };\n }\n\n function array3(a) {\n return function (b) {\n return function (c) {\n return [a, b, c];\n };\n };\n }\n\n function concat2(xs) {\n return function (ys) {\n return xs.concat(ys);\n };\n }\n\n return function (apply) {\n return function (map) {\n return function (pure) {\n return function (f) {\n return function (array) {\n function go(bot, top) {\n switch (top - bot) {\n case 0: return pure([]);\n case 1: return map(array1)(f(array[bot]));\n case 2: return apply(map(array2)(f(array[bot])))(f(array[bot + 1]));\n case 3: return apply(apply(map(array3)(f(array[bot])))(f(array[bot + 1])))(f(array[bot + 2]));\n default:\n // This slightly tricky pivot selection aims to produce two\n // even-length partitions where possible.\n var pivot = bot + Math.floor((top - bot) / 4) * 2;\n return apply(map(concat2)(go(bot, pivot)))(go(pivot, top));\n }\n }\n return go(0, array.length);\n };\n };\n };\n };\n };\n })();\n})(PS[\"Data.Traversable\"] = PS[\"Data.Traversable\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Traversable\"] = $PS[\"Data.Traversable\"] || {};\n var exports = $PS[\"Data.Traversable\"];\n var $foreign = $PS[\"Data.Traversable\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var traverse = function (dict) {\n return dict.traverse;\n };\n var sequenceDefault = function (dictTraversable) {\n return function (dictApplicative) {\n return traverse(dictTraversable)(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n };\n };\n var traversableArray = {\n traverse: function (dictApplicative) {\n return $foreign.traverseArrayImpl(Control_Apply.apply(dictApplicative.Apply0()))(Data_Functor.map((dictApplicative.Apply0()).Functor0()))(Control_Applicative.pure(dictApplicative));\n },\n sequence: function (dictApplicative) {\n return sequenceDefault(traversableArray)(dictApplicative);\n },\n Functor0: function () {\n return Data_Functor.functorArray;\n },\n Foldable1: function () {\n return Data_Foldable.foldableArray;\n }\n };\n var sequence = function (dict) {\n return dict.sequence;\n };\n exports[\"traverse\"] = traverse;\n exports[\"sequence\"] = sequence;\n exports[\"traversableArray\"] = traversableArray;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.mapWithIndexArray = function (f) {\n return function (xs) {\n var l = xs.length;\n var result = Array(l);\n for (var i = 0; i < l; i++) {\n result[i] = f(i)(xs[i]);\n }\n return result;\n };\n };\n})(PS[\"Data.FunctorWithIndex\"] = PS[\"Data.FunctorWithIndex\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.FunctorWithIndex\"] = $PS[\"Data.FunctorWithIndex\"] || {};\n var exports = $PS[\"Data.FunctorWithIndex\"];\n var $foreign = $PS[\"Data.FunctorWithIndex\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var mapWithIndex = function (dict) {\n return dict.mapWithIndex;\n };\n var functorWithIndexArray = {\n mapWithIndex: $foreign.mapWithIndexArray,\n Functor0: function () {\n return Data_Functor.functorArray;\n }\n };\n exports[\"mapWithIndex\"] = mapWithIndex;\n exports[\"functorWithIndexArray\"] = functorWithIndexArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Tuple\"] = $PS[\"Data.Tuple\"] || {};\n var exports = $PS[\"Data.Tuple\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Ordering = $PS[\"Data.Ordering\"]; \n var Tuple = (function () {\n function Tuple(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Tuple.create = function (value0) {\n return function (value1) {\n return new Tuple(value0, value1);\n };\n };\n return Tuple;\n })();\n var uncurry = function (f) {\n return function (v) {\n return f(v.value0)(v.value1);\n };\n };\n var snd = function (v) {\n return v.value1;\n };\n var functorTuple = {\n map: function (f) {\n return function (m) {\n return new Tuple(m.value0, f(m.value1));\n };\n }\n };\n var fst = function (v) {\n return v.value0;\n };\n var eqTuple = function (dictEq) {\n return function (dictEq1) {\n return {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq(dictEq)(x.value0)(y.value0) && Data_Eq.eq(dictEq1)(x.value1)(y.value1);\n };\n }\n };\n };\n };\n var ordTuple = function (dictOrd) {\n return function (dictOrd1) {\n return {\n compare: function (x) {\n return function (y) {\n var v = Data_Ord.compare(dictOrd)(x.value0)(y.value0);\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n return Data_Ord.compare(dictOrd1)(x.value1)(y.value1);\n };\n },\n Eq0: function () {\n return eqTuple(dictOrd.Eq0())(dictOrd1.Eq0());\n }\n };\n };\n };\n exports[\"Tuple\"] = Tuple;\n exports[\"fst\"] = fst;\n exports[\"snd\"] = snd;\n exports[\"uncurry\"] = uncurry;\n exports[\"ordTuple\"] = ordTuple;\n exports[\"functorTuple\"] = functorTuple;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.FoldableWithIndex\"] = $PS[\"Data.FoldableWithIndex\"] || {};\n var exports = $PS[\"Data.FoldableWithIndex\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_FunctorWithIndex = $PS[\"Data.FunctorWithIndex\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var foldrWithIndex = function (dict) {\n return dict.foldrWithIndex;\n };\n var foldMapWithIndexDefaultR = function (dictFoldableWithIndex) {\n return function (dictMonoid) {\n return function (f) {\n return foldrWithIndex(dictFoldableWithIndex)(function (i) {\n return function (x) {\n return function (acc) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(f(i)(x))(acc);\n };\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n };\n };\n var foldableWithIndexArray = {\n foldrWithIndex: function (f) {\n return function (z) {\n var $167 = Data_Foldable.foldr(Data_Foldable.foldableArray)(function (v) {\n return function (y) {\n return f(v.value0)(v.value1)(y);\n };\n })(z);\n var $168 = Data_FunctorWithIndex.mapWithIndex(Data_FunctorWithIndex.functorWithIndexArray)(Data_Tuple.Tuple.create);\n return function ($169) {\n return $167($168($169));\n };\n };\n },\n foldlWithIndex: function (f) {\n return function (z) {\n var $170 = Data_Foldable.foldl(Data_Foldable.foldableArray)(function (y) {\n return function (v) {\n return f(v.value0)(y)(v.value1);\n };\n })(z);\n var $171 = Data_FunctorWithIndex.mapWithIndex(Data_FunctorWithIndex.functorWithIndexArray)(Data_Tuple.Tuple.create);\n return function ($172) {\n return $170($171($172));\n };\n };\n },\n foldMapWithIndex: function (dictMonoid) {\n return foldMapWithIndexDefaultR(foldableWithIndexArray)(dictMonoid);\n },\n Foldable0: function () {\n return Data_Foldable.foldableArray;\n }\n };\n exports[\"foldableWithIndexArray\"] = foldableWithIndexArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.TraversableWithIndex\"] = $PS[\"Data.TraversableWithIndex\"] || {};\n var exports = $PS[\"Data.TraversableWithIndex\"];\n var Data_FoldableWithIndex = $PS[\"Data.FoldableWithIndex\"];\n var Data_FunctorWithIndex = $PS[\"Data.FunctorWithIndex\"];\n var Data_Traversable = $PS[\"Data.Traversable\"]; \n var traverseWithIndexDefault = function (dictTraversableWithIndex) {\n return function (dictApplicative) {\n return function (f) {\n var $64 = Data_Traversable.sequence(dictTraversableWithIndex.Traversable2())(dictApplicative);\n var $65 = Data_FunctorWithIndex.mapWithIndex(dictTraversableWithIndex.FunctorWithIndex0())(f);\n return function ($66) {\n return $64($65($66));\n };\n };\n };\n };\n var traverseWithIndex = function (dict) {\n return dict.traverseWithIndex;\n };\n var traversableWithIndexArray = {\n traverseWithIndex: function (dictApplicative) {\n return traverseWithIndexDefault(traversableWithIndexArray)(dictApplicative);\n },\n FunctorWithIndex0: function () {\n return Data_FunctorWithIndex.functorWithIndexArray;\n },\n FoldableWithIndex1: function () {\n return Data_FoldableWithIndex.foldableWithIndexArray;\n },\n Traversable2: function () {\n return Data_Traversable.traversableArray;\n }\n };\n exports[\"traverseWithIndex\"] = traverseWithIndex;\n exports[\"traversableWithIndexArray\"] = traversableWithIndexArray;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports[\"new\"] = function () {\n return {};\n };\n\n exports.poke = function (k) {\n return function (v) {\n return function (m) {\n return function () {\n m[k] = v;\n return m;\n };\n };\n };\n };\n})(PS[\"Foreign.Object.ST\"] = PS[\"Foreign.Object.ST\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Foreign.Object.ST\"] = $PS[\"Foreign.Object.ST\"] || {};\n var exports = $PS[\"Foreign.Object.ST\"];\n var $foreign = $PS[\"Foreign.Object.ST\"];\n exports[\"new\"] = $foreign[\"new\"];\n exports[\"poke\"] = $foreign.poke;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Foreign.Object\"] = $PS[\"Foreign.Object\"] || {};\n var exports = $PS[\"Foreign.Object\"];\n var $foreign = $PS[\"Foreign.Object\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Function_Uncurried = $PS[\"Data.Function.Uncurried\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Traversable = $PS[\"Data.Traversable\"];\n var Data_TraversableWithIndex = $PS[\"Data.TraversableWithIndex\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Foreign_Object_ST = $PS[\"Foreign.Object.ST\"]; \n var values = $foreign.toArrayWithKey(function (v) {\n return function (v1) {\n return v1;\n };\n }); \n var thawST = $foreign[\"_copyST\"];\n var mutate = function (f) {\n return function (m) {\n return $foreign.runST(function __do() {\n var s = thawST(m)();\n f(s)();\n return s;\n });\n };\n }; \n var mapWithKey = function (f) {\n return function (m) {\n return $foreign[\"_mapWithKey\"](m, f);\n };\n };\n var lookup = Data_Function_Uncurried.runFn4($foreign[\"_lookup\"])(Data_Maybe.Nothing.value)(Data_Maybe.Just.create);\n var insert = function (k) {\n return function (v) {\n return mutate(Foreign_Object_ST.poke(k)(v));\n };\n };\n var functorObject = {\n map: function (f) {\n return function (m) {\n return $foreign[\"_fmapObject\"](m, f);\n };\n }\n };\n var functorWithIndexObject = {\n mapWithIndex: mapWithKey,\n Functor0: function () {\n return functorObject;\n }\n };\n var fold = $foreign[\"_foldM\"](Data_Function.applyFlipped);\n var foldMap = function (dictMonoid) {\n return function (f) {\n return fold(function (acc) {\n return function (k) {\n return function (v) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(acc)(f(k)(v));\n };\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n };\n var foldableObject = {\n foldl: function (f) {\n return fold(function (z) {\n return function (v) {\n return f(z);\n };\n });\n },\n foldr: function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldr(Data_Foldable.foldableArray)(f)(z)(values(m));\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return foldMap(dictMonoid)(Data_Function[\"const\"](f));\n };\n }\n };\n var foldableWithIndexObject = {\n foldlWithIndex: function (f) {\n return fold(Data_Function.flip(f));\n },\n foldrWithIndex: function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldr(Data_Foldable.foldableArray)(Data_Tuple.uncurry(f))(z)($foreign.toArrayWithKey(Data_Tuple.Tuple.create)(m));\n };\n };\n },\n foldMapWithIndex: function (dictMonoid) {\n return foldMap(dictMonoid);\n },\n Foldable0: function () {\n return foldableObject;\n }\n };\n var traversableWithIndexObject = {\n traverseWithIndex: function (dictApplicative) {\n return function (f) {\n return function (ms) {\n return fold(function (acc) {\n return function (k) {\n return function (v) {\n return Control_Apply.apply(dictApplicative.Apply0())(Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Function.flip(insert(k)))(acc))(f(k)(v));\n };\n };\n })(Control_Applicative.pure(dictApplicative)($foreign.empty))(ms);\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexObject;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexObject;\n },\n Traversable2: function () {\n return traversableObject;\n }\n };\n var traversableObject = {\n traverse: function (dictApplicative) {\n var $43 = Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexObject)(dictApplicative);\n return function ($44) {\n return $43(Data_Function[\"const\"]($44));\n };\n },\n sequence: function (dictApplicative) {\n return Data_Traversable.traverse(traversableObject)(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n },\n Functor0: function () {\n return functorObject;\n },\n Foldable1: function () {\n return foldableObject;\n }\n };\n exports[\"insert\"] = insert;\n exports[\"lookup\"] = lookup;\n exports[\"traversableObject\"] = traversableObject;\n exports[\"empty\"] = $foreign.empty;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Core\"] = $PS[\"Data.Argonaut.Core\"] || {};\n var exports = $PS[\"Data.Argonaut.Core\"];\n var $foreign = $PS[\"Data.Argonaut.Core\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Ordering = $PS[\"Data.Ordering\"];\n var Foreign_Object = $PS[\"Foreign.Object\"]; \n var verbJsonType = function (def) {\n return function (f) {\n return function (g) {\n return g(def)(f);\n };\n };\n };\n var toJsonType = verbJsonType(Data_Maybe.Nothing.value)(Data_Maybe.Just.create);\n var jsonEmptyObject = $foreign.fromObject(Foreign_Object.empty);\n var isJsonType = verbJsonType(false)(Data_Function[\"const\"](true));\n var ordJson = {\n compare: function (a) {\n return function (b) {\n return $foreign[\"_compare\"](Data_Ordering.EQ.value, Data_Ordering.GT.value, Data_Ordering.LT.value, a, b);\n };\n },\n Eq0: function () {\n return eqJson;\n }\n };\n var eqJson = {\n eq: function (j1) {\n return function (j2) {\n return Data_Eq.eq(Data_Ordering.eqOrdering)(Data_Ord.compare(ordJson)(j1)(j2))(Data_Ordering.EQ.value);\n };\n }\n };\n var caseJsonString = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n }; \n var toString = toJsonType(caseJsonString);\n var caseJsonObject = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, j);\n };\n };\n }; \n var toObject = toJsonType(caseJsonObject);\n var caseJsonNumber = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n }; \n var caseJsonNull = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n };\n var isNull = isJsonType(caseJsonNull); \n var caseJsonArray = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), j);\n };\n };\n }; \n var toArray = toJsonType(caseJsonArray);\n exports[\"caseJsonNumber\"] = caseJsonNumber;\n exports[\"caseJsonString\"] = caseJsonString;\n exports[\"isNull\"] = isNull;\n exports[\"toString\"] = toString;\n exports[\"toArray\"] = toArray;\n exports[\"toObject\"] = toObject;\n exports[\"jsonEmptyObject\"] = jsonEmptyObject;\n exports[\"eqJson\"] = eqJson;\n exports[\"fromString\"] = $foreign.fromString;\n exports[\"fromArray\"] = $foreign.fromArray;\n exports[\"fromObject\"] = $foreign.fromObject;\n exports[\"jsonNull\"] = $foreign.jsonNull;\n exports[\"stringify\"] = $foreign.stringify;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._jsonParser = function (fail, succ, s) {\n try {\n return succ(JSON.parse(s));\n }\n catch (e) {\n return fail(e.message);\n }\n };\n})(PS[\"Data.Argonaut.Parser\"] = PS[\"Data.Argonaut.Parser\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Parser\"] = $PS[\"Data.Argonaut.Parser\"] || {};\n var exports = $PS[\"Data.Argonaut.Parser\"];\n var $foreign = $PS[\"Data.Argonaut.Parser\"];\n var Data_Either = $PS[\"Data.Either\"]; \n var jsonParser = function (j) {\n return $foreign[\"_jsonParser\"](Data_Either.Left.create, Data_Either.Right.create, j);\n };\n exports[\"jsonParser\"] = jsonParser;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n //------------------------------------------------------------------------------\n // Array size ------------------------------------------------------------------\n //------------------------------------------------------------------------------\n\n exports.length = function (xs) {\n return xs.length;\n };\n\n //------------------------------------------------------------------------------\n // Non-indexed reads -----------------------------------------------------------\n //------------------------------------------------------------------------------\n\n exports.unconsImpl = function (empty) {\n return function (next) {\n return function (xs) {\n return xs.length === 0 ? empty({}) : next(xs[0])(xs.slice(1));\n };\n };\n };\n\n //------------------------------------------------------------------------------\n // Indexed operations ----------------------------------------------------------\n //------------------------------------------------------------------------------\n\n exports.indexImpl = function (just) {\n return function (nothing) {\n return function (xs) {\n return function (i) {\n return i < 0 || i >= xs.length ? nothing : just(xs[i]);\n };\n };\n };\n };\n\n exports.findIndexImpl = function (just) {\n return function (nothing) {\n return function (f) {\n return function (xs) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (f(xs[i])) return just(i);\n }\n return nothing;\n };\n };\n };\n };\n\n exports._deleteAt = function (just) {\n return function (nothing) {\n return function (i) {\n return function (l) {\n if (i < 0 || i >= l.length) return nothing;\n var l1 = l.slice();\n l1.splice(i, 1);\n return just(l1);\n };\n };\n };\n }; \n\n //------------------------------------------------------------------------------\n // Subarrays -------------------------------------------------------------------\n //------------------------------------------------------------------------------\n\n exports.slice = function (s) {\n return function (e) {\n return function (l) {\n return l.slice(s, e);\n };\n };\n };\n})(PS[\"Data.Array\"] = PS[\"Data.Array\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.pushAll = function (as) {\n return function (xs) {\n return function () {\n return xs.push.apply(xs, as);\n };\n };\n };\n\n exports.unsafeFreeze = function (xs) {\n return function () {\n return xs;\n };\n };\n\n function copyImpl(xs) {\n return function () {\n return xs.slice();\n };\n } \n\n exports.thaw = copyImpl;\n})(PS[\"Data.Array.ST\"] = PS[\"Data.Array.ST\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Array.ST\"] = $PS[\"Data.Array.ST\"] || {};\n var exports = $PS[\"Data.Array.ST\"];\n var $foreign = $PS[\"Data.Array.ST\"]; \n var withArray = function (f) {\n return function (xs) {\n return function __do() {\n var result = $foreign.thaw(xs)();\n f(result)();\n return $foreign.unsafeFreeze(result)();\n };\n };\n };\n var push = function (a) {\n return $foreign.pushAll([ a ]);\n };\n exports[\"withArray\"] = withArray;\n exports[\"push\"] = push;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Array\"] = $PS[\"Data.Array\"] || {};\n var exports = $PS[\"Data.Array\"];\n var $foreign = $PS[\"Data.Array\"];\n var Data_Array_ST = $PS[\"Data.Array.ST\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var uncons = $foreign.unconsImpl(Data_Function[\"const\"](Data_Maybe.Nothing.value))(function (x) {\n return function (xs) {\n return new Data_Maybe.Just({\n head: x,\n tail: xs\n });\n };\n });\n var take = function (n) {\n return function (xs) {\n var $67 = n < 1;\n if ($67) {\n return [ ];\n };\n return $foreign.slice(0)(n)(xs);\n };\n };\n var tail = $foreign.unconsImpl(Data_Function[\"const\"](Data_Maybe.Nothing.value))(function (v) {\n return function (xs) {\n return new Data_Maybe.Just(xs);\n };\n });\n var snoc = function (xs) {\n return function (x) {\n return Data_Array_ST.withArray(Data_Array_ST.push(x))(xs)();\n };\n };\n var index = $foreign.indexImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n var head = function (xs) {\n return index(xs)(0);\n };\n var foldr = Data_Foldable.foldr(Data_Foldable.foldableArray);\n var foldl = Data_Foldable.foldl(Data_Foldable.foldableArray);\n var findIndex = $foreign.findIndexImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n var deleteAt = $foreign[\"_deleteAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n var deleteBy = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2.length === 0) {\n return [ ];\n };\n return Data_Maybe.maybe(v2)(function (i) {\n return Data_Maybe.fromJust()(deleteAt(i)(v2));\n })(findIndex(v(v1))(v2));\n };\n };\n };\n exports[\"snoc\"] = snoc;\n exports[\"head\"] = head;\n exports[\"tail\"] = tail;\n exports[\"uncons\"] = uncons;\n exports[\"foldl\"] = foldl;\n exports[\"foldr\"] = foldr;\n exports[\"take\"] = take;\n exports[\"deleteBy\"] = deleteBy;\n exports[\"length\"] = $foreign.length;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.split = function (sep) {\n return function (s) {\n return s.split(sep);\n };\n };\n\n exports.toLower = function (s) {\n return s.toLowerCase();\n };\n\n exports.trim = function (s) {\n return s.trim();\n };\n\n exports.joinWith = function (s) {\n return function (xs) {\n return xs.join(s);\n };\n };\n})(PS[\"Data.String.Common\"] = PS[\"Data.String.Common\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.String.Common\"] = $PS[\"Data.String.Common\"] || {};\n var exports = $PS[\"Data.String.Common\"];\n var $foreign = $PS[\"Data.String.Common\"];\n exports[\"split\"] = $foreign.split;\n exports[\"toLower\"] = $foreign.toLower;\n exports[\"trim\"] = $foreign.trim;\n exports[\"joinWith\"] = $foreign.joinWith;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // A helper which transforms the result ofencodeURIComponent to be compliant\n // with RFC3896, as described in the MDN documentation here:\n //\n // https://web.archive.org/web/20201206001047/https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent\n function toRFC3896(input) {\n return input.replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16);\n });\n } \n\n exports._encodeFormURLComponent = function encode(fail, succeed, input) {\n try {\n return succeed(toRFC3896(encodeURIComponent(input)).replace(/%20/g, \"+\"));\n } catch (err) {\n return fail(err);\n }\n };\n})(PS[\"JSURI\"] = PS[\"JSURI\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"JSURI\"] = $PS[\"JSURI\"] || {};\n var exports = $PS[\"JSURI\"];\n var $foreign = $PS[\"JSURI\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Function_Uncurried = $PS[\"Data.Function.Uncurried\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var encodeFormURLComponent = Data_Function_Uncurried.runFn3($foreign[\"_encodeFormURLComponent\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n exports[\"encodeFormURLComponent\"] = encodeFormURLComponent;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.FormURLEncoded\"] = $PS[\"Data.FormURLEncoded\"] || {};\n var exports = $PS[\"Data.FormURLEncoded\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Traversable = $PS[\"Data.Traversable\"];\n var JSURI = $PS[\"JSURI\"];\n var toArray = function (v) {\n return v;\n }; \n var encode = (function () {\n var encodePart = function (v) {\n if (v.value1 instanceof Data_Maybe.Nothing) {\n return JSURI.encodeFormURLComponent(v.value0);\n };\n if (v.value1 instanceof Data_Maybe.Just) {\n return Control_Apply.apply(Data_Maybe.applyMaybe)(Data_Functor.map(Data_Maybe.functorMaybe)(function (key) {\n return function (val) {\n return key + (\"=\" + val);\n };\n })(JSURI.encodeFormURLComponent(v.value0)))(JSURI.encodeFormURLComponent(v.value1.value0));\n };\n throw new Error(\"Failed pattern match at Data.FormURLEncoded (line 37, column 18 - line 39, column 116): \" + [ v.constructor.name ]);\n };\n var $16 = Data_Functor.map(Data_Maybe.functorMaybe)(Data_String_Common.joinWith(\"&\"));\n var $17 = Data_Traversable.traverse(Data_Traversable.traversableArray)(Data_Maybe.applicativeMaybe)(encodePart);\n return function ($18) {\n return $16($17(toArray($18)));\n };\n })();\n exports[\"encode\"] = encode;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.showIntImpl = function (n) {\n return n.toString();\n };\n\n exports.showNumberImpl = function (n) {\n var str = n.toString();\n return isNaN(str + \".0\") ? str : str + \".0\";\n };\n\n exports.showStringImpl = function (s) {\n var l = s.length;\n return \"\\\"\" + s.replace(\n /[\\0-\\x1F\\x7F\"\\\\]/g, // eslint-disable-line no-control-regex\n function (c, i) {\n switch (c) {\n case \"\\\"\":\n case \"\\\\\":\n return \"\\\\\" + c;\n case \"\\x07\": return \"\\\\a\";\n case \"\\b\": return \"\\\\b\";\n case \"\\f\": return \"\\\\f\";\n case \"\\n\": return \"\\\\n\";\n case \"\\r\": return \"\\\\r\";\n case \"\\t\": return \"\\\\t\";\n case \"\\v\": return \"\\\\v\";\n }\n var k = i + 1;\n var empty = k < l && s[k] >= \"0\" && s[k] <= \"9\" ? \"\\\\&\" : \"\";\n return \"\\\\\" + c.charCodeAt(0).toString(10) + empty;\n }\n ) + \"\\\"\";\n };\n\n exports.cons = function (head) {\n return function (tail) {\n return [head].concat(tail);\n };\n };\n\n exports.join = function (separator) {\n return function (xs) {\n return xs.join(separator);\n };\n };\n})(PS[\"Data.Show\"] = PS[\"Data.Show\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Symbol\"] = $PS[\"Data.Symbol\"] || {};\n var exports = $PS[\"Data.Symbol\"];\n var reflectSymbol = function (dict) {\n return dict.reflectSymbol;\n };\n exports[\"reflectSymbol\"] = reflectSymbol;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafeGet = function (label) {\n return function (rec) {\n return rec[label];\n };\n };\n\n exports.unsafeSet = function (label) {\n return function (value) {\n return function (rec) {\n var copy = {};\n for (var key in rec) {\n if ({}.hasOwnProperty.call(rec, key)) {\n copy[key] = rec[key];\n }\n }\n copy[label] = value;\n return copy;\n };\n };\n };\n})(PS[\"Record.Unsafe\"] = PS[\"Record.Unsafe\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Record.Unsafe\"] = $PS[\"Record.Unsafe\"] || {};\n var exports = $PS[\"Record.Unsafe\"];\n var $foreign = $PS[\"Record.Unsafe\"];\n exports[\"unsafeGet\"] = $foreign.unsafeGet;\n exports[\"unsafeSet\"] = $foreign.unsafeSet;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Type.Proxy\"] = $PS[\"Type.Proxy\"] || {};\n var exports = $PS[\"Type.Proxy\"];\n var $$Proxy = (function () {\n function $$Proxy() {\n\n };\n $$Proxy.value = new $$Proxy();\n return $$Proxy;\n })();\n exports[\"Proxy\"] = $$Proxy;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Show\"] = $PS[\"Data.Show\"] || {};\n var exports = $PS[\"Data.Show\"];\n var $foreign = $PS[\"Data.Show\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Record_Unsafe = $PS[\"Record.Unsafe\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n var showString = {\n show: $foreign.showStringImpl\n };\n var showRecordFieldsNil = {\n showRecordFields: function (v) {\n return function (v1) {\n return [ ];\n };\n }\n };\n var showRecordFields = function (dict) {\n return dict.showRecordFields;\n };\n var showRecord = function (dictRowToList) {\n return function (dictShowRecordFields) {\n return {\n show: function (record) {\n var v = showRecordFields(dictShowRecordFields)(Type_Proxy[\"Proxy\"].value)(record);\n if (v.length === 0) {\n return \"{}\";\n };\n return $foreign.join(\" \")([ \"{\", $foreign.join(\", \")(v), \"}\" ]);\n }\n };\n };\n };\n var showNumber = {\n show: $foreign.showNumberImpl\n };\n var showInt = {\n show: $foreign.showIntImpl\n };\n var show = function (dict) {\n return dict.show;\n };\n var showRecordFieldsCons = function (dictIsSymbol) {\n return function (dictShowRecordFields) {\n return function (dictShow) {\n return {\n showRecordFields: function (v) {\n return function (record) {\n var tail = showRecordFields(dictShowRecordFields)(Type_Proxy[\"Proxy\"].value)(record);\n var key = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var focus = Record_Unsafe.unsafeGet(key)(record);\n return $foreign.cons($foreign.join(\": \")([ key, show(dictShow)(focus) ]))(tail);\n };\n }\n };\n };\n };\n };\n exports[\"show\"] = show;\n exports[\"showInt\"] = showInt;\n exports[\"showNumber\"] = showNumber;\n exports[\"showString\"] = showString;\n exports[\"showRecord\"] = showRecord;\n exports[\"showRecordFieldsNil\"] = showRecordFieldsNil;\n exports[\"showRecordFieldsCons\"] = showRecordFieldsCons;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.HTTP.Method\"] = $PS[\"Data.HTTP.Method\"] || {};\n var exports = $PS[\"Data.HTTP.Method\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Show = $PS[\"Data.Show\"]; \n var OPTIONS = (function () {\n function OPTIONS() {\n\n };\n OPTIONS.value = new OPTIONS();\n return OPTIONS;\n })();\n var GET = (function () {\n function GET() {\n\n };\n GET.value = new GET();\n return GET;\n })();\n var HEAD = (function () {\n function HEAD() {\n\n };\n HEAD.value = new HEAD();\n return HEAD;\n })();\n var POST = (function () {\n function POST() {\n\n };\n POST.value = new POST();\n return POST;\n })();\n var PUT = (function () {\n function PUT() {\n\n };\n PUT.value = new PUT();\n return PUT;\n })();\n var DELETE = (function () {\n function DELETE() {\n\n };\n DELETE.value = new DELETE();\n return DELETE;\n })();\n var TRACE = (function () {\n function TRACE() {\n\n };\n TRACE.value = new TRACE();\n return TRACE;\n })();\n var CONNECT = (function () {\n function CONNECT() {\n\n };\n CONNECT.value = new CONNECT();\n return CONNECT;\n })();\n var PROPFIND = (function () {\n function PROPFIND() {\n\n };\n PROPFIND.value = new PROPFIND();\n return PROPFIND;\n })();\n var PROPPATCH = (function () {\n function PROPPATCH() {\n\n };\n PROPPATCH.value = new PROPPATCH();\n return PROPPATCH;\n })();\n var MKCOL = (function () {\n function MKCOL() {\n\n };\n MKCOL.value = new MKCOL();\n return MKCOL;\n })();\n var COPY = (function () {\n function COPY() {\n\n };\n COPY.value = new COPY();\n return COPY;\n })();\n var MOVE = (function () {\n function MOVE() {\n\n };\n MOVE.value = new MOVE();\n return MOVE;\n })();\n var LOCK = (function () {\n function LOCK() {\n\n };\n LOCK.value = new LOCK();\n return LOCK;\n })();\n var UNLOCK = (function () {\n function UNLOCK() {\n\n };\n UNLOCK.value = new UNLOCK();\n return UNLOCK;\n })();\n var PATCH = (function () {\n function PATCH() {\n\n };\n PATCH.value = new PATCH();\n return PATCH;\n })();\n var unCustomMethod = function (v) {\n return v;\n };\n var showMethod = {\n show: function (v) {\n if (v instanceof OPTIONS) {\n return \"OPTIONS\";\n };\n if (v instanceof GET) {\n return \"GET\";\n };\n if (v instanceof HEAD) {\n return \"HEAD\";\n };\n if (v instanceof POST) {\n return \"POST\";\n };\n if (v instanceof PUT) {\n return \"PUT\";\n };\n if (v instanceof DELETE) {\n return \"DELETE\";\n };\n if (v instanceof TRACE) {\n return \"TRACE\";\n };\n if (v instanceof CONNECT) {\n return \"CONNECT\";\n };\n if (v instanceof PROPFIND) {\n return \"PROPFIND\";\n };\n if (v instanceof PROPPATCH) {\n return \"PROPPATCH\";\n };\n if (v instanceof MKCOL) {\n return \"MKCOL\";\n };\n if (v instanceof COPY) {\n return \"COPY\";\n };\n if (v instanceof MOVE) {\n return \"MOVE\";\n };\n if (v instanceof LOCK) {\n return \"LOCK\";\n };\n if (v instanceof UNLOCK) {\n return \"UNLOCK\";\n };\n if (v instanceof PATCH) {\n return \"PATCH\";\n };\n throw new Error(\"Failed pattern match at Data.HTTP.Method (line 43, column 1 - line 59, column 23): \" + [ v.constructor.name ]);\n }\n };\n var print = Data_Either.either(Data_Show.show(showMethod))(unCustomMethod);\n exports[\"GET\"] = GET;\n exports[\"print\"] = print;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Identity\"] = $PS[\"Data.Identity\"] || {};\n var exports = $PS[\"Data.Identity\"]; \n var Identity = function (x) {\n return x;\n };\n var functorIdentity = {\n map: function (f) {\n return function (m) {\n return f(m);\n };\n }\n };\n var applyIdentity = {\n apply: function (v) {\n return function (v1) {\n return v(v1);\n };\n },\n Functor0: function () {\n return functorIdentity;\n }\n };\n var bindIdentity = {\n bind: function (v) {\n return function (f) {\n return f(v);\n };\n },\n Apply0: function () {\n return applyIdentity;\n }\n };\n var applicativeIdentity = {\n pure: Identity,\n Apply0: function () {\n return applyIdentity;\n }\n };\n var monadIdentity = {\n Applicative0: function () {\n return applicativeIdentity;\n },\n Bind1: function () {\n return bindIdentity;\n }\n };\n exports[\"functorIdentity\"] = functorIdentity;\n exports[\"monadIdentity\"] = monadIdentity;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Plus\"] = $PS[\"Control.Plus\"] || {};\n var exports = $PS[\"Control.Plus\"];\n var empty = function (dict) {\n return dict.empty;\n };\n exports[\"empty\"] = empty;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.NonEmpty\"] = $PS[\"Data.NonEmpty\"] || {};\n var exports = $PS[\"Data.NonEmpty\"];\n var Control_Plus = $PS[\"Control.Plus\"]; \n var NonEmpty = (function () {\n function NonEmpty(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n NonEmpty.create = function (value0) {\n return function (value1) {\n return new NonEmpty(value0, value1);\n };\n };\n return NonEmpty;\n })();\n var singleton = function (dictPlus) {\n return function (a) {\n return new NonEmpty(a, Control_Plus.empty(dictPlus));\n };\n };\n exports[\"NonEmpty\"] = NonEmpty;\n exports[\"singleton\"] = singleton;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.List.Types\"] = $PS[\"Data.List.Types\"] || {};\n var exports = $PS[\"Data.List.Types\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_NonEmpty = $PS[\"Data.NonEmpty\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"]; \n var Nil = (function () {\n function Nil() {\n\n };\n Nil.value = new Nil();\n return Nil;\n })();\n var Cons = (function () {\n function Cons(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Cons.create = function (value0) {\n return function (value1) {\n return new Cons(value0, value1);\n };\n };\n return Cons;\n })();\n var NonEmptyList = function (x) {\n return x;\n };\n var toList = function (v) {\n return new Cons(v.value0, v.value1);\n };\n var listMap = function (f) {\n var chunkedRevMap = function ($copy_chunksAcc) {\n return function ($copy_v) {\n var $tco_var_chunksAcc = $copy_chunksAcc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(chunksAcc, v) {\n if (v instanceof Cons && (v.value1 instanceof Cons && v.value1.value1 instanceof Cons)) {\n $tco_var_chunksAcc = new Cons(v, chunksAcc);\n $copy_v = v.value1.value1.value1;\n return;\n };\n var unrolledMap = function (v1) {\n if (v1 instanceof Cons && (v1.value1 instanceof Cons && v1.value1.value1 instanceof Nil)) {\n return new Cons(f(v1.value0), new Cons(f(v1.value1.value0), Nil.value));\n };\n if (v1 instanceof Cons && v1.value1 instanceof Nil) {\n return new Cons(f(v1.value0), Nil.value);\n };\n return Nil.value;\n };\n var reverseUnrolledMap = function ($copy_v1) {\n return function ($copy_acc) {\n var $tco_var_v1 = $copy_v1;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(v1, acc) {\n if (v1 instanceof Cons && (v1.value0 instanceof Cons && (v1.value0.value1 instanceof Cons && v1.value0.value1.value1 instanceof Cons))) {\n $tco_var_v1 = v1.value1;\n $copy_acc = new Cons(f(v1.value0.value0), new Cons(f(v1.value0.value1.value0), new Cons(f(v1.value0.value1.value1.value0), acc)));\n return;\n };\n $tco_done1 = true;\n return acc;\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_v1, $copy_acc);\n };\n return $tco_result;\n };\n };\n $tco_done = true;\n return reverseUnrolledMap(chunksAcc)(unrolledMap(v));\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_chunksAcc, $copy_v);\n };\n return $tco_result;\n };\n };\n return chunkedRevMap(Nil.value);\n };\n var functorList = {\n map: listMap\n }; \n var foldableList = {\n foldr: function (f) {\n return function (b) {\n var rev = (function () {\n var go = function ($copy_acc) {\n return function ($copy_v) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, v) {\n if (v instanceof Nil) {\n $tco_done = true;\n return acc;\n };\n if (v instanceof Cons) {\n $tco_var_acc = new Cons(v.value0, acc);\n $copy_v = v.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 108, column 7 - line 108, column 23): \" + [ acc.constructor.name, v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_v);\n };\n return $tco_result;\n };\n };\n return go(Nil.value);\n })();\n var $205 = Data_Foldable.foldl(foldableList)(Data_Function.flip(f))(b);\n return function ($206) {\n return $205(rev($206));\n };\n };\n },\n foldl: function (f) {\n var go = function ($copy_b) {\n return function ($copy_v) {\n var $tco_var_b = $copy_b;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(b, v) {\n if (v instanceof Nil) {\n $tco_done1 = true;\n return b;\n };\n if (v instanceof Cons) {\n $tco_var_b = f(b)(v.value0);\n $copy_v = v.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 112, column 12 - line 114, column 30): \" + [ v.constructor.name ]);\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_b, $copy_v);\n };\n return $tco_result;\n };\n };\n return go;\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return Data_Foldable.foldl(foldableList)(function (acc) {\n var $207 = Data_Semigroup.append(dictMonoid.Semigroup0())(acc);\n return function ($208) {\n return $207(f($208));\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n }\n };\n var semigroupList = {\n append: function (xs) {\n return function (ys) {\n return Data_Foldable.foldr(foldableList)(Cons.create)(ys)(xs);\n };\n }\n };\n var semigroupNonEmptyList = {\n append: function (v) {\n return function (as$prime) {\n return new Data_NonEmpty.NonEmpty(v.value0, Data_Semigroup.append(semigroupList)(v.value1)(toList(as$prime)));\n };\n }\n };\n var applyList = {\n apply: function (v) {\n return function (v1) {\n if (v instanceof Nil) {\n return Nil.value;\n };\n if (v instanceof Cons) {\n return Data_Semigroup.append(semigroupList)(Data_Functor.map(functorList)(v.value0)(v1))(Control_Apply.apply(applyList)(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 158, column 1 - line 160, column 48): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorList;\n }\n };\n var applicativeList = {\n pure: function (a) {\n return new Cons(a, Nil.value);\n },\n Apply0: function () {\n return applyList;\n }\n };\n var altList = {\n alt: Data_Semigroup.append(semigroupList),\n Functor0: function () {\n return functorList;\n }\n };\n var plusList = {\n empty: Nil.value,\n Alt0: function () {\n return altList;\n }\n };\n exports[\"Nil\"] = Nil;\n exports[\"Cons\"] = Cons;\n exports[\"NonEmptyList\"] = NonEmptyList;\n exports[\"semigroupList\"] = semigroupList;\n exports[\"foldableList\"] = foldableList;\n exports[\"applicativeList\"] = applicativeList;\n exports[\"plusList\"] = plusList;\n exports[\"semigroupNonEmptyList\"] = semigroupNonEmptyList;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.List.NonEmpty\"] = $PS[\"Data.List.NonEmpty\"] || {};\n var exports = $PS[\"Data.List.NonEmpty\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_NonEmpty = $PS[\"Data.NonEmpty\"];\n var singleton = (function () {\n var $172 = Data_NonEmpty.singleton(Data_List_Types.plusList);\n return function ($173) {\n return Data_List_Types.NonEmptyList($172($173));\n };\n })();\n var head = function (v) {\n return v.value0;\n };\n var cons = function (y) {\n return function (v) {\n return new Data_NonEmpty.NonEmpty(y, new Data_List_Types.Cons(v.value0, v.value1));\n };\n };\n exports[\"singleton\"] = singleton;\n exports[\"cons\"] = cons;\n exports[\"head\"] = head;\n})(PS);\n(function(exports) {\n /* eslint-disable no-eq-null, eqeqeq */\n\n \"use strict\";\n\n exports[\"null\"] = null;\n\n exports.nullable = function (a, r, f) {\n return a == null ? r : f(a);\n };\n\n exports.notNull = function (x) {\n return x;\n };\n})(PS[\"Data.Nullable\"] = PS[\"Data.Nullable\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Nullable\"] = $PS[\"Data.Nullable\"] || {};\n var exports = $PS[\"Data.Nullable\"];\n var $foreign = $PS[\"Data.Nullable\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var toNullable = Data_Maybe.maybe($foreign[\"null\"])($foreign.notNull);\n var toMaybe = function (n) {\n return $foreign.nullable(n, Data_Maybe.Nothing.value, Data_Maybe.Just.create);\n };\n exports[\"toMaybe\"] = toMaybe;\n exports[\"toNullable\"] = toNullable;\n exports[\"null\"] = $foreign[\"null\"];\n})(PS);\n(function(exports) {\n /* globals setImmediate, clearImmediate, setTimeout, clearTimeout */\n /* eslint-disable no-unused-vars, no-prototype-builtins, no-use-before-define, no-unused-labels, no-param-reassign */\n \"use strict\";\n\n var Aff = function () {\n // A unique value for empty.\n var EMPTY = {};\n\n /*\n\n An awkward approximation. We elide evidence we would otherwise need in PS for\n efficiency sake.\n\n data Aff eff a\n = Pure a\n | Throw Error\n | Catch (Aff eff a) (Error -> Aff eff a)\n | Sync (Eff eff a)\n | Async ((Either Error a -> Eff eff Unit) -> Eff eff (Canceler eff))\n | forall b. Bind (Aff eff b) (b -> Aff eff a)\n | forall b. Bracket (Aff eff b) (BracketConditions eff b) (b -> Aff eff a)\n | forall b. Fork Boolean (Aff eff b) ?(Fiber eff b -> a)\n | Sequential (ParAff aff a)\n\n */ \n var PURE = \"Pure\";\n var THROW = \"Throw\";\n var CATCH = \"Catch\";\n var SYNC = \"Sync\";\n var ASYNC = \"Async\";\n var BIND = \"Bind\";\n var BRACKET = \"Bracket\";\n var FORK = \"Fork\";\n var SEQ = \"Sequential\";\n\n /*\n\n data ParAff eff a\n = forall b. Map (b -> a) (ParAff eff b)\n | forall b. Apply (ParAff eff (b -> a)) (ParAff eff b)\n | Alt (ParAff eff a) (ParAff eff a)\n | ?Par (Aff eff a)\n\n */ \n var MAP = \"Map\";\n var APPLY = \"Apply\";\n var ALT = \"Alt\";\n\n // Various constructors used in interpretation\n var CONS = \"Cons\"; // Cons-list, for stacks\n var RESUME = \"Resume\"; // Continue indiscriminately\n var RELEASE = \"Release\"; // Continue with bracket finalizers\n var FINALIZER = \"Finalizer\"; // A non-interruptible effect\n var FINALIZED = \"Finalized\"; // Marker for finalization\n var FORKED = \"Forked\"; // Reference to a forked fiber, with resumption stack\n var FIBER = \"Fiber\"; // Actual fiber reference\n var THUNK = \"Thunk\"; // Primed effect, ready to invoke\n\n function Aff(tag, _1, _2, _3) {\n this.tag = tag;\n this._1 = _1;\n this._2 = _2;\n this._3 = _3;\n }\n\n function AffCtr(tag) {\n var fn = function (_1, _2, _3) {\n return new Aff(tag, _1, _2, _3);\n };\n fn.tag = tag;\n return fn;\n }\n\n function nonCanceler(error) {\n return new Aff(PURE, void 0);\n }\n\n function runEff(eff) {\n try {\n eff();\n } catch (error) {\n setTimeout(function () {\n throw error;\n }, 0);\n }\n }\n\n function runSync(left, right, eff) {\n try {\n return right(eff());\n } catch (error) {\n return left(error);\n }\n }\n\n function runAsync(left, eff, k) {\n try {\n return eff(k)();\n } catch (error) {\n k(left(error))();\n return nonCanceler;\n }\n }\n\n var Scheduler = function () {\n var limit = 1024;\n var size = 0;\n var ix = 0;\n var queue = new Array(limit);\n var draining = false;\n\n function drain() {\n var thunk;\n draining = true;\n while (size !== 0) {\n size--;\n thunk = queue[ix];\n queue[ix] = void 0;\n ix = (ix + 1) % limit;\n thunk();\n }\n draining = false;\n }\n\n return {\n isDraining: function () {\n return draining;\n },\n enqueue: function (cb) {\n var i, tmp;\n if (size === limit) {\n tmp = draining;\n drain();\n draining = tmp;\n }\n\n queue[(ix + size) % limit] = cb;\n size++;\n\n if (!draining) {\n drain();\n }\n }\n };\n }();\n\n function Supervisor(util) {\n var fibers = {};\n var fiberId = 0;\n var count = 0;\n\n return {\n register: function (fiber) {\n var fid = fiberId++;\n fiber.onComplete({\n rethrow: true,\n handler: function (result) {\n return function () {\n count--;\n delete fibers[fid];\n };\n }\n })();\n fibers[fid] = fiber;\n count++;\n },\n isEmpty: function () {\n return count === 0;\n },\n killAll: function (killError, cb) {\n return function () {\n if (count === 0) {\n return cb();\n }\n\n var killCount = 0;\n var kills = {};\n\n function kill(fid) {\n kills[fid] = fibers[fid].kill(killError, function (result) {\n return function () {\n delete kills[fid];\n killCount--;\n if (util.isLeft(result) && util.fromLeft(result)) {\n setTimeout(function () {\n throw util.fromLeft(result);\n }, 0);\n }\n if (killCount === 0) {\n cb();\n }\n };\n })();\n }\n\n for (var k in fibers) {\n if (fibers.hasOwnProperty(k)) {\n killCount++;\n kill(k);\n }\n }\n\n fibers = {};\n fiberId = 0;\n count = 0;\n\n return function (error) {\n return new Aff(SYNC, function () {\n for (var k in kills) {\n if (kills.hasOwnProperty(k)) {\n kills[k]();\n }\n }\n });\n };\n };\n }\n };\n }\n\n // Fiber state machine\n var SUSPENDED = 0; // Suspended, pending a join.\n var CONTINUE = 1; // Interpret the next instruction.\n var STEP_BIND = 2; // Apply the next bind.\n var STEP_RESULT = 3; // Handle potential failure from a result.\n var PENDING = 4; // An async effect is running.\n var RETURN = 5; // The current stack has returned.\n var COMPLETED = 6; // The entire fiber has completed.\n\n function Fiber(util, supervisor, aff) {\n // Monotonically increasing tick, increased on each asynchronous turn.\n var runTick = 0;\n\n // The current branch of the state machine.\n var status = SUSPENDED;\n\n // The current point of interest for the state machine branch.\n var step = aff; // Successful step\n var fail = null; // Failure step\n var interrupt = null; // Asynchronous interrupt\n\n // Stack of continuations for the current fiber.\n var bhead = null;\n var btail = null;\n\n // Stack of attempts and finalizers for error recovery. Every `Cons` is also\n // tagged with current `interrupt` state. We use this to track which items\n // should be ignored or evaluated as a result of a kill.\n var attempts = null;\n\n // A special state is needed for Bracket, because it cannot be killed. When\n // we enter a bracket acquisition or finalizer, we increment the counter,\n // and then decrement once complete.\n var bracketCount = 0;\n\n // Each join gets a new id so they can be revoked.\n var joinId = 0;\n var joins = null;\n var rethrow = true;\n\n // Each invocation of `run` requires a tick. When an asynchronous effect is\n // resolved, we must check that the local tick coincides with the fiber\n // tick before resuming. This prevents multiple async continuations from\n // accidentally resuming the same fiber. A common example may be invoking\n // the provided callback in `makeAff` more than once, but it may also be an\n // async effect resuming after the fiber was already cancelled.\n function run(localRunTick) {\n var tmp, result, attempt;\n while (true) {\n tmp = null;\n result = null;\n attempt = null;\n\n switch (status) {\n case STEP_BIND:\n status = CONTINUE;\n try {\n step = bhead(step);\n if (btail === null) {\n bhead = null;\n } else {\n bhead = btail._1;\n btail = btail._2;\n }\n } catch (e) {\n status = RETURN;\n fail = util.left(e);\n step = null;\n }\n break;\n\n case STEP_RESULT:\n if (util.isLeft(step)) {\n status = RETURN;\n fail = step;\n step = null;\n } else if (bhead === null) {\n status = RETURN;\n } else {\n status = STEP_BIND;\n step = util.fromRight(step);\n }\n break;\n\n case CONTINUE:\n switch (step.tag) {\n case BIND:\n if (bhead) {\n btail = new Aff(CONS, bhead, btail);\n }\n bhead = step._2;\n status = CONTINUE;\n step = step._1;\n break;\n\n case PURE:\n if (bhead === null) {\n status = RETURN;\n step = util.right(step._1);\n } else {\n status = STEP_BIND;\n step = step._1;\n }\n break;\n\n case SYNC:\n status = STEP_RESULT;\n step = runSync(util.left, util.right, step._1);\n break;\n\n case ASYNC:\n status = PENDING;\n step = runAsync(util.left, step._1, function (result) {\n return function () {\n if (runTick !== localRunTick) {\n return;\n }\n runTick++;\n Scheduler.enqueue(function () {\n // It's possible to interrupt the fiber between enqueuing and\n // resuming, so we need to check that the runTick is still\n // valid.\n if (runTick !== localRunTick + 1) {\n return;\n }\n status = STEP_RESULT;\n step = result;\n run(runTick);\n });\n };\n });\n return;\n\n case THROW:\n status = RETURN;\n fail = util.left(step._1);\n step = null;\n break;\n\n // Enqueue the Catch so that we can call the error handler later on\n // in case of an exception.\n case CATCH:\n if (bhead === null) {\n attempts = new Aff(CONS, step, attempts, interrupt);\n } else {\n attempts = new Aff(CONS, step, new Aff(CONS, new Aff(RESUME, bhead, btail), attempts, interrupt), interrupt);\n }\n bhead = null;\n btail = null;\n status = CONTINUE;\n step = step._1;\n break;\n\n // Enqueue the Bracket so that we can call the appropriate handlers\n // after resource acquisition.\n case BRACKET:\n bracketCount++;\n if (bhead === null) {\n attempts = new Aff(CONS, step, attempts, interrupt);\n } else {\n attempts = new Aff(CONS, step, new Aff(CONS, new Aff(RESUME, bhead, btail), attempts, interrupt), interrupt);\n }\n bhead = null;\n btail = null;\n status = CONTINUE;\n step = step._1;\n break;\n\n case FORK:\n status = STEP_RESULT;\n tmp = Fiber(util, supervisor, step._2);\n if (supervisor) {\n supervisor.register(tmp);\n }\n if (step._1) {\n tmp.run();\n }\n step = util.right(tmp);\n break;\n\n case SEQ:\n status = CONTINUE;\n step = sequential(util, supervisor, step._1);\n break;\n }\n break;\n\n case RETURN:\n bhead = null;\n btail = null;\n // If the current stack has returned, and we have no other stacks to\n // resume or finalizers to run, the fiber has halted and we can\n // invoke all join callbacks. Otherwise we need to resume.\n if (attempts === null) {\n status = COMPLETED;\n step = interrupt || fail || step;\n } else {\n // The interrupt status for the enqueued item.\n tmp = attempts._3;\n attempt = attempts._1;\n attempts = attempts._2;\n\n switch (attempt.tag) {\n // We cannot recover from an unmasked interrupt. Otherwise we should\n // continue stepping, or run the exception handler if an exception\n // was raised.\n case CATCH:\n // We should compare the interrupt status as well because we\n // only want it to apply if there has been an interrupt since\n // enqueuing the catch.\n if (interrupt && interrupt !== tmp && bracketCount === 0) {\n status = RETURN;\n } else if (fail) {\n status = CONTINUE;\n step = attempt._2(util.fromLeft(fail));\n fail = null;\n }\n break;\n\n // We cannot resume from an unmasked interrupt or exception.\n case RESUME:\n // As with Catch, we only want to ignore in the case of an\n // interrupt since enqueing the item.\n if (interrupt && interrupt !== tmp && bracketCount === 0 || fail) {\n status = RETURN;\n } else {\n bhead = attempt._1;\n btail = attempt._2;\n status = STEP_BIND;\n step = util.fromRight(step);\n }\n break;\n\n // If we have a bracket, we should enqueue the handlers,\n // and continue with the success branch only if the fiber has\n // not been interrupted. If the bracket acquisition failed, we\n // should not run either.\n case BRACKET:\n bracketCount--;\n if (fail === null) {\n result = util.fromRight(step);\n // We need to enqueue the Release with the same interrupt\n // status as the Bracket that is initiating it.\n attempts = new Aff(CONS, new Aff(RELEASE, attempt._2, result), attempts, tmp);\n // We should only coninue as long as the interrupt status has not changed or\n // we are currently within a non-interruptable finalizer.\n if (interrupt === tmp || bracketCount > 0) {\n status = CONTINUE;\n step = attempt._3(result);\n }\n }\n break;\n\n // Enqueue the appropriate handler. We increase the bracket count\n // because it should not be cancelled.\n case RELEASE:\n attempts = new Aff(CONS, new Aff(FINALIZED, step, fail), attempts, interrupt);\n status = CONTINUE;\n // It has only been killed if the interrupt status has changed\n // since we enqueued the item, and the bracket count is 0. If the\n // bracket count is non-zero then we are in a masked state so it's\n // impossible to be killed.\n if (interrupt && interrupt !== tmp && bracketCount === 0) {\n step = attempt._1.killed(util.fromLeft(interrupt))(attempt._2);\n } else if (fail) {\n step = attempt._1.failed(util.fromLeft(fail))(attempt._2);\n } else {\n step = attempt._1.completed(util.fromRight(step))(attempt._2);\n }\n fail = null;\n bracketCount++;\n break;\n\n case FINALIZER:\n bracketCount++;\n attempts = new Aff(CONS, new Aff(FINALIZED, step, fail), attempts, interrupt);\n status = CONTINUE;\n step = attempt._1;\n break;\n\n case FINALIZED:\n bracketCount--;\n status = RETURN;\n step = attempt._1;\n fail = attempt._2;\n break;\n }\n }\n break;\n\n case COMPLETED:\n for (var k in joins) {\n if (joins.hasOwnProperty(k)) {\n rethrow = rethrow && joins[k].rethrow;\n runEff(joins[k].handler(step));\n }\n }\n joins = null;\n // If we have an interrupt and a fail, then the thread threw while\n // running finalizers. This should always rethrow in a fresh stack.\n if (interrupt && fail) {\n setTimeout(function () {\n throw util.fromLeft(fail);\n }, 0);\n // If we have an unhandled exception, and no other fiber has joined\n // then we need to throw the exception in a fresh stack.\n } else if (util.isLeft(step) && rethrow) {\n setTimeout(function () {\n // Guard on reathrow because a completely synchronous fiber can\n // still have an observer which was added after-the-fact.\n if (rethrow) {\n throw util.fromLeft(step);\n }\n }, 0);\n }\n return;\n case SUSPENDED:\n status = CONTINUE;\n break;\n case PENDING: return;\n }\n }\n }\n\n function onComplete(join) {\n return function () {\n if (status === COMPLETED) {\n rethrow = rethrow && join.rethrow;\n join.handler(step)();\n return function () {};\n }\n\n var jid = joinId++;\n joins = joins || {};\n joins[jid] = join;\n\n return function() {\n if (joins !== null) {\n delete joins[jid];\n }\n };\n };\n }\n\n function kill(error, cb) {\n return function () {\n if (status === COMPLETED) {\n cb(util.right(void 0))();\n return function () {};\n }\n\n var canceler = onComplete({\n rethrow: false,\n handler: function (/* unused */) {\n return cb(util.right(void 0));\n }\n })();\n\n switch (status) {\n case SUSPENDED:\n interrupt = util.left(error);\n status = COMPLETED;\n step = interrupt;\n run(runTick);\n break;\n case PENDING:\n if (interrupt === null) {\n interrupt = util.left(error);\n }\n if (bracketCount === 0) {\n if (status === PENDING) {\n attempts = new Aff(CONS, new Aff(FINALIZER, step(error)), attempts, interrupt);\n }\n status = RETURN;\n step = null;\n fail = null;\n run(++runTick);\n }\n break;\n default:\n if (interrupt === null) {\n interrupt = util.left(error);\n }\n if (bracketCount === 0) {\n status = RETURN;\n step = null;\n fail = null;\n }\n }\n\n return canceler;\n };\n }\n\n function join(cb) {\n return function () {\n var canceler = onComplete({\n rethrow: false,\n handler: cb\n })();\n if (status === SUSPENDED) {\n run(runTick);\n }\n return canceler;\n };\n }\n\n return {\n kill: kill,\n join: join,\n onComplete: onComplete,\n isSuspended: function () {\n return status === SUSPENDED;\n },\n run: function () {\n if (status === SUSPENDED) {\n if (!Scheduler.isDraining()) {\n Scheduler.enqueue(function () {\n run(runTick);\n });\n } else {\n run(runTick);\n }\n }\n }\n };\n }\n\n function runPar(util, supervisor, par, cb) {\n // Table of all forked fibers.\n var fiberId = 0;\n var fibers = {};\n\n // Table of currently running cancelers, as a product of `Alt` behavior.\n var killId = 0;\n var kills = {};\n\n // Error used for early cancelation on Alt branches.\n var early = new Error(\"[ParAff] Early exit\");\n\n // Error used to kill the entire tree.\n var interrupt = null;\n\n // The root pointer of the tree.\n var root = EMPTY;\n\n // Walks a tree, invoking all the cancelers. Returns the table of pending\n // cancellation fibers.\n function kill(error, par, cb) {\n var step = par;\n var head = null;\n var tail = null;\n var count = 0;\n var kills = {};\n var tmp, kid;\n\n loop: while (true) {\n tmp = null;\n\n switch (step.tag) {\n case FORKED:\n if (step._3 === EMPTY) {\n tmp = fibers[step._1];\n kills[count++] = tmp.kill(error, function (result) {\n return function () {\n count--;\n if (count === 0) {\n cb(result)();\n }\n };\n });\n }\n // Terminal case.\n if (head === null) {\n break loop;\n }\n // Go down the right side of the tree.\n step = head._2;\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n break;\n case MAP:\n step = step._2;\n break;\n case APPLY:\n case ALT:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = step;\n step = step._1;\n break;\n }\n }\n\n if (count === 0) {\n cb(util.right(void 0))();\n } else {\n // Run the cancelation effects. We alias `count` because it's mutable.\n kid = 0;\n tmp = count;\n for (; kid < tmp; kid++) {\n kills[kid] = kills[kid]();\n }\n }\n\n return kills;\n }\n\n // When a fiber resolves, we need to bubble back up the tree with the\n // result, computing the applicative nodes.\n function join(result, head, tail) {\n var fail, step, lhs, rhs, tmp, kid;\n\n if (util.isLeft(result)) {\n fail = result;\n step = null;\n } else {\n step = result;\n fail = null;\n }\n\n loop: while (true) {\n lhs = null;\n rhs = null;\n tmp = null;\n kid = null;\n\n // We should never continue if the entire tree has been interrupted.\n if (interrupt !== null) {\n return;\n }\n\n // We've made it all the way to the root of the tree, which means\n // the tree has fully evaluated.\n if (head === null) {\n cb(fail || step)();\n return;\n }\n\n // The tree has already been computed, so we shouldn't try to do it\n // again. This should never happen.\n // TODO: Remove this?\n if (head._3 !== EMPTY) {\n return;\n }\n\n switch (head.tag) {\n case MAP:\n if (fail === null) {\n head._3 = util.right(head._1(util.fromRight(step)));\n step = head._3;\n } else {\n head._3 = fail;\n }\n break;\n case APPLY:\n lhs = head._1._3;\n rhs = head._2._3;\n // If we have a failure we should kill the other side because we\n // can't possible yield a result anymore.\n if (fail) {\n head._3 = fail;\n tmp = true;\n kid = killId++;\n\n kills[kid] = kill(early, fail === lhs ? head._2 : head._1, function (/* unused */) {\n return function () {\n delete kills[kid];\n if (tmp) {\n tmp = false;\n } else if (tail === null) {\n join(fail, null, null);\n } else {\n join(fail, tail._1, tail._2);\n }\n };\n });\n\n if (tmp) {\n tmp = false;\n return;\n }\n } else if (lhs === EMPTY || rhs === EMPTY) {\n // We can only proceed if both sides have resolved.\n return;\n } else {\n step = util.right(util.fromRight(lhs)(util.fromRight(rhs)));\n head._3 = step;\n }\n break;\n case ALT:\n lhs = head._1._3;\n rhs = head._2._3;\n // We can only proceed if both have resolved or we have a success\n if (lhs === EMPTY && util.isLeft(rhs) || rhs === EMPTY && util.isLeft(lhs)) {\n return;\n }\n // If both sides resolve with an error, we should continue with the\n // first error\n if (lhs !== EMPTY && util.isLeft(lhs) && rhs !== EMPTY && util.isLeft(rhs)) {\n fail = step === lhs ? rhs : lhs;\n step = null;\n head._3 = fail;\n } else {\n head._3 = step;\n tmp = true;\n kid = killId++;\n // Once a side has resolved, we need to cancel the side that is still\n // pending before we can continue.\n kills[kid] = kill(early, step === lhs ? head._2 : head._1, function (/* unused */) {\n return function () {\n delete kills[kid];\n if (tmp) {\n tmp = false;\n } else if (tail === null) {\n join(step, null, null);\n } else {\n join(step, tail._1, tail._2);\n }\n };\n });\n\n if (tmp) {\n tmp = false;\n return;\n }\n }\n break;\n }\n\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n }\n }\n\n function resolve(fiber) {\n return function (result) {\n return function () {\n delete fibers[fiber._1];\n fiber._3 = result;\n join(result, fiber._2._1, fiber._2._2);\n };\n };\n }\n\n // Walks the applicative tree, substituting non-applicative nodes with\n // `FORKED` nodes. In this tree, all applicative nodes use the `_3` slot\n // as a mutable slot for memoization. In an unresolved state, the `_3`\n // slot is `EMPTY`. In the cases of `ALT` and `APPLY`, we always walk\n // the left side first, because both operations are left-associative. As\n // we `RETURN` from those branches, we then walk the right side.\n function run() {\n var status = CONTINUE;\n var step = par;\n var head = null;\n var tail = null;\n var tmp, fid;\n\n loop: while (true) {\n tmp = null;\n fid = null;\n\n switch (status) {\n case CONTINUE:\n switch (step.tag) {\n case MAP:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(MAP, step._1, EMPTY, EMPTY);\n step = step._2;\n break;\n case APPLY:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(APPLY, EMPTY, step._2, EMPTY);\n step = step._1;\n break;\n case ALT:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(ALT, EMPTY, step._2, EMPTY);\n step = step._1;\n break;\n default:\n // When we hit a leaf value, we suspend the stack in the `FORKED`.\n // When the fiber resolves, it can bubble back up the tree.\n fid = fiberId++;\n status = RETURN;\n tmp = step;\n step = new Aff(FORKED, fid, new Aff(CONS, head, tail), EMPTY);\n tmp = Fiber(util, supervisor, tmp);\n tmp.onComplete({\n rethrow: false,\n handler: resolve(step)\n })();\n fibers[fid] = tmp;\n if (supervisor) {\n supervisor.register(tmp);\n }\n }\n break;\n case RETURN:\n // Terminal case, we are back at the root.\n if (head === null) {\n break loop;\n }\n // If we are done with the right side, we need to continue down the\n // left. Otherwise we should continue up the stack.\n if (head._1 === EMPTY) {\n head._1 = step;\n status = CONTINUE;\n step = head._2;\n head._2 = EMPTY;\n } else {\n head._2 = step;\n step = head;\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n }\n }\n }\n\n // Keep a reference to the tree root so it can be cancelled.\n root = step;\n\n for (fid = 0; fid < fiberId; fid++) {\n fibers[fid].run();\n }\n }\n\n // Cancels the entire tree. If there are already subtrees being canceled,\n // we need to first cancel those joins. We will then add fresh joins for\n // all pending branches including those that were in the process of being\n // canceled.\n function cancel(error, cb) {\n interrupt = util.left(error);\n var innerKills;\n for (var kid in kills) {\n if (kills.hasOwnProperty(kid)) {\n innerKills = kills[kid];\n for (kid in innerKills) {\n if (innerKills.hasOwnProperty(kid)) {\n innerKills[kid]();\n }\n }\n }\n }\n\n kills = null;\n var newKills = kill(error, root, cb);\n\n return function (killError) {\n return new Aff(ASYNC, function (killCb) {\n return function () {\n for (var kid in newKills) {\n if (newKills.hasOwnProperty(kid)) {\n newKills[kid]();\n }\n }\n return nonCanceler;\n };\n });\n };\n }\n\n run();\n\n return function (killError) {\n return new Aff(ASYNC, function (killCb) {\n return function () {\n return cancel(killError, killCb);\n };\n });\n };\n }\n\n function sequential(util, supervisor, par) {\n return new Aff(ASYNC, function (cb) {\n return function () {\n return runPar(util, supervisor, par, cb);\n };\n });\n }\n\n Aff.EMPTY = EMPTY;\n Aff.Pure = AffCtr(PURE);\n Aff.Throw = AffCtr(THROW);\n Aff.Catch = AffCtr(CATCH);\n Aff.Sync = AffCtr(SYNC);\n Aff.Async = AffCtr(ASYNC);\n Aff.Bind = AffCtr(BIND);\n Aff.Bracket = AffCtr(BRACKET);\n Aff.Fork = AffCtr(FORK);\n Aff.Seq = AffCtr(SEQ);\n Aff.ParMap = AffCtr(MAP);\n Aff.ParApply = AffCtr(APPLY);\n Aff.ParAlt = AffCtr(ALT);\n Aff.Fiber = Fiber;\n Aff.Supervisor = Supervisor;\n Aff.Scheduler = Scheduler;\n Aff.nonCanceler = nonCanceler;\n\n return Aff;\n }();\n\n exports._pure = Aff.Pure;\n\n exports._throwError = Aff.Throw;\n\n exports._catchError = function (aff) {\n return function (k) {\n return Aff.Catch(aff, k);\n };\n };\n\n exports._map = function (f) {\n return function (aff) {\n if (aff.tag === Aff.Pure.tag) {\n return Aff.Pure(f(aff._1));\n } else {\n return Aff.Bind(aff, function (value) {\n return Aff.Pure(f(value));\n });\n }\n };\n };\n\n exports._bind = function (aff) {\n return function (k) {\n return Aff.Bind(aff, k);\n };\n };\n\n exports._fork = function (immediate) {\n return function (aff) {\n return Aff.Fork(immediate, aff);\n };\n };\n\n exports._liftEffect = Aff.Sync;\n\n exports._parAffMap = function (f) {\n return function (aff) {\n return Aff.ParMap(f, aff);\n };\n };\n\n exports._parAffApply = function (aff1) {\n return function (aff2) {\n return Aff.ParApply(aff1, aff2);\n };\n };\n\n exports.makeAff = Aff.Async;\n\n exports.generalBracket = function (acquire) {\n return function (options) {\n return function (k) {\n return Aff.Bracket(acquire, options, k);\n };\n };\n };\n\n exports._makeFiber = function (util, aff) {\n return function () {\n return Aff.Fiber(util, null, aff);\n };\n }; \n\n exports._sequential = Aff.Seq;\n})(PS[\"Effect.Aff\"] = PS[\"Effect.Aff\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.pureE = function (a) {\n return function () {\n return a;\n };\n };\n\n exports.bindE = function (a) {\n return function (f) {\n return function () {\n return f(a())();\n };\n };\n };\n})(PS[\"Effect\"] = PS[\"Effect\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect\"] = $PS[\"Effect\"] || {};\n var exports = $PS[\"Effect\"];\n var $foreign = $PS[\"Effect\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Monad = $PS[\"Control.Monad\"]; \n var monadEffect = {\n Applicative0: function () {\n return applicativeEffect;\n },\n Bind1: function () {\n return bindEffect;\n }\n };\n var bindEffect = {\n bind: $foreign.bindE,\n Apply0: function () {\n return applyEffect;\n }\n };\n var applyEffect = {\n apply: Control_Monad.ap(monadEffect),\n Functor0: function () {\n return functorEffect;\n }\n };\n var applicativeEffect = {\n pure: $foreign.pureE,\n Apply0: function () {\n return applyEffect;\n }\n };\n var functorEffect = {\n map: Control_Applicative.liftA1(applicativeEffect)\n };\n exports[\"functorEffect\"] = functorEffect;\n exports[\"applicativeEffect\"] = applicativeEffect;\n exports[\"bindEffect\"] = bindEffect;\n exports[\"monadEffect\"] = monadEffect;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.new = function (val) {\n return function () {\n return { value: val };\n };\n };\n\n exports.read = function (ref) {\n return function () {\n return ref.value;\n };\n };\n\n exports.modifyImpl = function (f) {\n return function (ref) {\n return function () {\n var t = f(ref.value);\n ref.value = t.state;\n return t.value;\n };\n };\n };\n\n exports.write = function (val) {\n return function (ref) {\n return function () {\n ref.value = val;\n };\n };\n };\n})(PS[\"Effect.Ref\"] = PS[\"Effect.Ref\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Ref\"] = $PS[\"Effect.Ref\"] || {};\n var exports = $PS[\"Effect.Ref\"];\n var $foreign = $PS[\"Effect.Ref\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Effect = $PS[\"Effect\"]; \n var modify$prime = $foreign.modifyImpl;\n var modify = function (f) {\n return modify$prime(function (s) {\n var s$prime = f(s);\n return {\n state: s$prime,\n value: s$prime\n };\n });\n };\n var modify_ = function (f) {\n return function (s) {\n return Data_Functor[\"void\"](Effect.functorEffect)(modify(f)(s));\n };\n };\n exports[\"modify'\"] = modify$prime;\n exports[\"modify_\"] = modify_;\n exports[\"new\"] = $foreign[\"new\"];\n exports[\"read\"] = $foreign.read;\n exports[\"write\"] = $foreign.write;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad.Rec.Class\"] = $PS[\"Control.Monad.Rec.Class\"] || {};\n var exports = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Ref = $PS[\"Effect.Ref\"]; \n var Loop = (function () {\n function Loop(value0) {\n this.value0 = value0;\n };\n Loop.create = function (value0) {\n return new Loop(value0);\n };\n return Loop;\n })();\n var Done = (function () {\n function Done(value0) {\n this.value0 = value0;\n };\n Done.create = function (value0) {\n return new Done(value0);\n };\n return Done;\n })();\n var tailRecM = function (dict) {\n return dict.tailRecM;\n };\n var monadRecEffect = {\n tailRecM: function (f) {\n return function (a) {\n var fromDone = function (v) {\n if (v instanceof Done) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 113, column 30 - line 113, column 44): \" + [ v.constructor.name ]);\n };\n return function __do() {\n var r = Control_Bind.bindFlipped(Effect.bindEffect)(Effect_Ref[\"new\"])(f(a))();\n (function () {\n while (!(function __do() {\n var v = Effect_Ref.read(r)();\n if (v instanceof Loop) {\n var e = f(v.value0)();\n Effect_Ref.write(e)(r)();\n return false;\n };\n if (v instanceof Done) {\n return true;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 104, column 22 - line 109, column 28): \" + [ v.constructor.name ]);\n })()) {\n\n };\n return {};\n })();\n return Data_Functor.map(Effect.functorEffect)(fromDone)(Effect_Ref.read(r))();\n };\n };\n },\n Monad0: function () {\n return Effect.monadEffect;\n }\n };\n exports[\"Loop\"] = Loop;\n exports[\"Done\"] = Done;\n exports[\"tailRecM\"] = tailRecM;\n exports[\"monadRecEffect\"] = monadRecEffect;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Parallel.Class\"] = $PS[\"Control.Parallel.Class\"] || {};\n var exports = $PS[\"Control.Parallel.Class\"];\n var sequential = function (dict) {\n return dict.sequential;\n };\n var parallel = function (dict) {\n return dict.parallel;\n };\n exports[\"parallel\"] = parallel;\n exports[\"sequential\"] = sequential;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Parallel\"] = $PS[\"Control.Parallel\"] || {};\n var exports = $PS[\"Control.Parallel\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Parallel_Class = $PS[\"Control.Parallel.Class\"];\n var Data_Foldable = $PS[\"Data.Foldable\"]; \n var parTraverse_ = function (dictParallel) {\n return function (dictFoldable) {\n return function (f) {\n var $17 = Control_Parallel_Class.sequential(dictParallel);\n var $18 = Data_Foldable.traverse_(dictParallel.Applicative1())(dictFoldable)((function () {\n var $20 = Control_Parallel_Class.parallel(dictParallel);\n return function ($21) {\n return $20(f($21));\n };\n })());\n return function ($19) {\n return $17($18($19));\n };\n };\n };\n };\n var parSequence_ = function (dictParallel) {\n return function (dictFoldable) {\n return parTraverse_(dictParallel)(dictFoldable)(Control_Category.identity(Control_Category.categoryFn));\n };\n };\n exports[\"parSequence_\"] = parSequence_;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Class\"] = $PS[\"Effect.Class\"] || {};\n var exports = $PS[\"Effect.Class\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Effect = $PS[\"Effect\"]; \n var monadEffectEffect = {\n liftEffect: Control_Category.identity(Control_Category.categoryFn),\n Monad0: function () {\n return Effect.monadEffect;\n }\n };\n var liftEffect = function (dict) {\n return dict.liftEffect;\n };\n exports[\"liftEffect\"] = liftEffect;\n exports[\"monadEffectEffect\"] = monadEffectEffect;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafePerformEffect = function (f) {\n return f();\n };\n})(PS[\"Effect.Unsafe\"] = PS[\"Effect.Unsafe\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Unsafe\"] = $PS[\"Effect.Unsafe\"] || {};\n var exports = $PS[\"Effect.Unsafe\"];\n var $foreign = $PS[\"Effect.Unsafe\"];\n exports[\"unsafePerformEffect\"] = $foreign.unsafePerformEffect;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // module Partial.Unsafe\n\n exports._unsafePartial = function (f) {\n return f();\n };\n})(PS[\"Partial.Unsafe\"] = PS[\"Partial.Unsafe\"] || {});\n(function(exports) {\n \"use strict\";\n\n // module Partial\n\n exports._crashWith = function (msg) {\n throw new Error(msg);\n };\n})(PS[\"Partial\"] = PS[\"Partial\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Partial\"] = $PS[\"Partial\"] || {};\n var exports = $PS[\"Partial\"];\n var $foreign = $PS[\"Partial\"]; \n var crashWith = function (dictPartial) {\n return $foreign[\"_crashWith\"];\n };\n exports[\"crashWith\"] = crashWith;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Partial.Unsafe\"] = $PS[\"Partial.Unsafe\"] || {};\n var exports = $PS[\"Partial.Unsafe\"];\n var $foreign = $PS[\"Partial.Unsafe\"];\n var Partial = $PS[\"Partial\"]; \n var unsafePartial = $foreign[\"_unsafePartial\"];\n var unsafeCrashWith = function (msg) {\n return unsafePartial(function (dictPartial) {\n return Partial.crashWith()(msg);\n });\n };\n exports[\"unsafeCrashWith\"] = unsafeCrashWith;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Aff\"] = $PS[\"Effect.Aff\"] || {};\n var exports = $PS[\"Effect.Aff\"];\n var $foreign = $PS[\"Effect.Aff\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Parallel = $PS[\"Control.Parallel\"];\n var Control_Parallel_Class = $PS[\"Control.Parallel.Class\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Unsafe = $PS[\"Effect.Unsafe\"];\n var Partial_Unsafe = $PS[\"Partial.Unsafe\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Canceler = function (x) {\n return x;\n };\n var suspendAff = $foreign[\"_fork\"](false);\n var functorParAff = {\n map: $foreign[\"_parAffMap\"]\n };\n var functorAff = {\n map: $foreign[\"_map\"]\n };\n var forkAff = $foreign[\"_fork\"](true);\n var ffiUtil = (function () {\n var unsafeFromRight = function (v) {\n if (v instanceof Data_Either.Right) {\n return v.value0;\n };\n if (v instanceof Data_Either.Left) {\n return Partial_Unsafe.unsafeCrashWith(\"unsafeFromRight: Left\");\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 404, column 21 - line 406, column 54): \" + [ v.constructor.name ]);\n };\n var unsafeFromLeft = function (v) {\n if (v instanceof Data_Either.Left) {\n return v.value0;\n };\n if (v instanceof Data_Either.Right) {\n return Partial_Unsafe.unsafeCrashWith(\"unsafeFromLeft: Right\");\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 399, column 20 - line 401, column 54): \" + [ v.constructor.name ]);\n };\n var isLeft = function (v) {\n if (v instanceof Data_Either.Left) {\n return true;\n };\n if (v instanceof Data_Either.Right) {\n return false;\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 394, column 12 - line 396, column 20): \" + [ v.constructor.name ]);\n };\n return {\n isLeft: isLeft,\n fromLeft: unsafeFromLeft,\n fromRight: unsafeFromRight,\n left: Data_Either.Left.create,\n right: Data_Either.Right.create\n };\n })();\n var makeFiber = function (aff) {\n return $foreign[\"_makeFiber\"](ffiUtil, aff);\n };\n var launchAff = function (aff) {\n return function __do() {\n var fiber = makeFiber(aff)();\n fiber.run();\n return fiber;\n };\n };\n var bracket = function (acquire) {\n return function (completed) {\n return $foreign.generalBracket(acquire)({\n killed: Data_Function[\"const\"](completed),\n failed: Data_Function[\"const\"](completed),\n completed: Data_Function[\"const\"](completed)\n });\n };\n };\n var applyParAff = {\n apply: $foreign[\"_parAffApply\"],\n Functor0: function () {\n return functorParAff;\n }\n };\n var monadAff = {\n Applicative0: function () {\n return applicativeAff;\n },\n Bind1: function () {\n return bindAff;\n }\n };\n var bindAff = {\n bind: $foreign[\"_bind\"],\n Apply0: function () {\n return applyAff;\n }\n };\n var applyAff = {\n apply: Control_Monad.ap(monadAff),\n Functor0: function () {\n return functorAff;\n }\n };\n var applicativeAff = {\n pure: $foreign[\"_pure\"],\n Apply0: function () {\n return applyAff;\n }\n };\n var $$finally = function (fin) {\n return function (a) {\n return bracket(Control_Applicative.pure(applicativeAff)(Data_Unit.unit))(Data_Function[\"const\"](fin))(Data_Function[\"const\"](a));\n };\n };\n var monadEffectAff = {\n liftEffect: $foreign[\"_liftEffect\"],\n Monad0: function () {\n return monadAff;\n }\n };\n var effectCanceler = (function () {\n var $42 = Effect_Class.liftEffect(monadEffectAff);\n return function ($43) {\n return Canceler(Data_Function[\"const\"]($42($43)));\n };\n })();\n var joinFiber = function (v) {\n return $foreign.makeAff(function (k) {\n return Data_Functor.map(Effect.functorEffect)(effectCanceler)(v.join(k));\n });\n };\n var functorFiber = {\n map: function (f) {\n return function (t) {\n return Effect_Unsafe.unsafePerformEffect(makeFiber(Data_Functor.map(functorAff)(f)(joinFiber(t))));\n };\n }\n };\n var killFiber = function (e) {\n return function (v) {\n return Control_Bind.bind(bindAff)(Effect_Class.liftEffect(monadEffectAff)(v.isSuspended))(function (v1) {\n if (v1) {\n return Effect_Class.liftEffect(monadEffectAff)(Data_Functor[\"void\"](Effect.functorEffect)(v.kill(e, Data_Function[\"const\"](Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit)))));\n };\n return $foreign.makeAff(function (k) {\n return Data_Functor.map(Effect.functorEffect)(effectCanceler)(v.kill(e, k));\n });\n });\n };\n }; \n var monadThrowAff = {\n throwError: $foreign[\"_throwError\"],\n Monad0: function () {\n return monadAff;\n }\n };\n var monadErrorAff = {\n catchError: $foreign[\"_catchError\"],\n MonadThrow0: function () {\n return monadThrowAff;\n }\n };\n var attempt = Control_Monad_Error_Class[\"try\"](monadErrorAff);\n var runAff = function (k) {\n return function (aff) {\n return launchAff(Control_Bind.bindFlipped(bindAff)((function () {\n var $46 = Effect_Class.liftEffect(monadEffectAff);\n return function ($47) {\n return $46(k($47));\n };\n })())(Control_Monad_Error_Class[\"try\"](monadErrorAff)(aff)));\n };\n };\n var runAff_ = function (k) {\n return function (aff) {\n return Data_Functor[\"void\"](Effect.functorEffect)(runAff(k)(aff));\n };\n };\n var parallelAff = {\n parallel: Unsafe_Coerce.unsafeCoerce,\n sequential: $foreign[\"_sequential\"],\n Monad0: function () {\n return monadAff;\n },\n Applicative1: function () {\n return applicativeParAff;\n }\n };\n var applicativeParAff = {\n pure: (function () {\n var $50 = Control_Parallel_Class.parallel(parallelAff);\n var $51 = Control_Applicative.pure(applicativeAff);\n return function ($52) {\n return $50($51($52));\n };\n })(),\n Apply0: function () {\n return applyParAff;\n }\n };\n var semigroupCanceler = {\n append: function (v) {\n return function (v1) {\n return function (err) {\n return Control_Parallel.parSequence_(parallelAff)(Data_Foldable.foldableArray)([ v(err), v1(err) ]);\n };\n };\n }\n };\n var monadRecAff = {\n tailRecM: function (k) {\n var go = function (a) {\n return Control_Bind.bind(bindAff)(k(a))(function (res) {\n if (res instanceof Control_Monad_Rec_Class.Done) {\n return Control_Applicative.pure(applicativeAff)(res.value0);\n };\n if (res instanceof Control_Monad_Rec_Class.Loop) {\n return go(res.value0);\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 102, column 7 - line 104, column 22): \" + [ res.constructor.name ]);\n });\n };\n return go;\n },\n Monad0: function () {\n return monadAff;\n }\n };\n var nonCanceler = Data_Function[\"const\"](Control_Applicative.pure(applicativeAff)(Data_Unit.unit));\n var monoidCanceler = {\n mempty: nonCanceler,\n Semigroup0: function () {\n return semigroupCanceler;\n }\n };\n exports[\"runAff_\"] = runAff_;\n exports[\"forkAff\"] = forkAff;\n exports[\"suspendAff\"] = suspendAff;\n exports[\"attempt\"] = attempt;\n exports[\"finally\"] = $$finally;\n exports[\"killFiber\"] = killFiber;\n exports[\"joinFiber\"] = joinFiber;\n exports[\"nonCanceler\"] = nonCanceler;\n exports[\"effectCanceler\"] = effectCanceler;\n exports[\"functorAff\"] = functorAff;\n exports[\"applicativeAff\"] = applicativeAff;\n exports[\"bindAff\"] = bindAff;\n exports[\"monadAff\"] = monadAff;\n exports[\"monadRecAff\"] = monadRecAff;\n exports[\"monadErrorAff\"] = monadErrorAff;\n exports[\"monadEffectAff\"] = monadEffectAff;\n exports[\"applicativeParAff\"] = applicativeParAff;\n exports[\"parallelAff\"] = parallelAff;\n exports[\"functorFiber\"] = functorFiber;\n exports[\"monoidCanceler\"] = monoidCanceler;\n exports[\"makeAff\"] = $foreign.makeAff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Aff.Compat\"] = $PS[\"Effect.Aff.Compat\"] || {};\n var exports = $PS[\"Effect.Aff.Compat\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var fromEffectFnAff = function (v) {\n return Effect_Aff.makeAff(function (k) {\n return function __do() {\n var v1 = v(function ($4) {\n return k(Data_Either.Left.create($4))();\n }, function ($5) {\n return k(Data_Either.Right.create($5))();\n });\n return function (e) {\n return Effect_Aff.makeAff(function (k2) {\n return function __do() {\n v1(e, function ($6) {\n return k2(Data_Either.Left.create($6))();\n }, function ($7) {\n return k2(Data_Either.Right.create($7))();\n });\n return Effect_Aff.nonCanceler;\n };\n });\n };\n };\n });\n };\n exports[\"fromEffectFnAff\"] = fromEffectFnAff;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.showErrorImpl = function (err) {\n return err.stack || err.toString();\n };\n\n exports.error = function (msg) {\n return new Error(msg);\n };\n\n exports.message = function (e) {\n return e.message;\n };\n\n exports.throwException = function (e) {\n return function () {\n throw e;\n };\n };\n})(PS[\"Effect.Exception\"] = PS[\"Effect.Exception\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Exception\"] = $PS[\"Effect.Exception\"] || {};\n var exports = $PS[\"Effect.Exception\"];\n var $foreign = $PS[\"Effect.Exception\"];\n var $$throw = function ($2) {\n return $foreign.throwException($foreign.error($2));\n }; \n var showError = {\n show: $foreign.showErrorImpl\n };\n exports[\"throw\"] = $$throw;\n exports[\"showError\"] = showError;\n exports[\"error\"] = $foreign.error;\n exports[\"message\"] = $foreign.message;\n exports[\"throwException\"] = $foreign.throwException;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.typeOf = function (value) {\n return typeof value;\n };\n\n exports.tagOf = function (value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n };\n})(PS[\"Foreign\"] = PS[\"Foreign\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Boolean\"] = $PS[\"Data.Boolean\"] || {};\n var exports = $PS[\"Data.Boolean\"];\n var otherwise = true;\n exports[\"otherwise\"] = otherwise;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Foreign\"] = $PS[\"Foreign\"] || {};\n var exports = $PS[\"Foreign\"];\n var $foreign = $PS[\"Foreign\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_List_NonEmpty = $PS[\"Data.List.NonEmpty\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var ForeignError = (function () {\n function ForeignError(value0) {\n this.value0 = value0;\n };\n ForeignError.create = function (value0) {\n return new ForeignError(value0);\n };\n return ForeignError;\n })();\n var TypeMismatch = (function () {\n function TypeMismatch(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n TypeMismatch.create = function (value0) {\n return function (value1) {\n return new TypeMismatch(value0, value1);\n };\n };\n return TypeMismatch;\n })();\n var ErrorAtIndex = (function () {\n function ErrorAtIndex(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ErrorAtIndex.create = function (value0) {\n return function (value1) {\n return new ErrorAtIndex(value0, value1);\n };\n };\n return ErrorAtIndex;\n })();\n var ErrorAtProperty = (function () {\n function ErrorAtProperty(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ErrorAtProperty.create = function (value0) {\n return function (value1) {\n return new ErrorAtProperty(value0, value1);\n };\n };\n return ErrorAtProperty;\n })();\n var unsafeToForeign = Unsafe_Coerce.unsafeCoerce;\n var unsafeFromForeign = Unsafe_Coerce.unsafeCoerce;\n var renderForeignError = function (v) {\n if (v instanceof ForeignError) {\n return v.value0;\n };\n if (v instanceof ErrorAtIndex) {\n return \"Error at array index \" + (Data_Show.show(Data_Show.showInt)(v.value0) + (\": \" + renderForeignError(v.value1)));\n };\n if (v instanceof ErrorAtProperty) {\n return \"Error at property \" + (Data_Show.show(Data_Show.showString)(v.value0) + (\": \" + renderForeignError(v.value1)));\n };\n if (v instanceof TypeMismatch) {\n return \"Type mismatch: expected \" + (v.value0 + (\", found \" + v.value1));\n };\n throw new Error(\"Failed pattern match at Foreign (line 73, column 1 - line 73, column 45): \" + [ v.constructor.name ]);\n };\n var fail = function (dictMonad) {\n var $118 = Control_Monad_Error_Class.throwError(Control_Monad_Except_Trans.monadThrowExceptT(dictMonad));\n return function ($119) {\n return $118(Data_List_NonEmpty.singleton($119));\n };\n };\n var unsafeReadTagged = function (dictMonad) {\n return function (tag) {\n return function (value) {\n if ($foreign.tagOf(value) === tag) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad))(unsafeFromForeign(value));\n };\n if (Data_Boolean.otherwise) {\n return fail(dictMonad)(new TypeMismatch(tag, $foreign.tagOf(value)));\n };\n throw new Error(\"Failed pattern match at Foreign (line 110, column 1 - line 110, column 71): \" + [ tag.constructor.name, value.constructor.name ]);\n };\n };\n };\n var readBoolean = function (dictMonad) {\n return unsafeReadTagged(dictMonad)(\"Boolean\");\n };\n var readString = function (dictMonad) {\n return unsafeReadTagged(dictMonad)(\"String\");\n };\n exports[\"ForeignError\"] = ForeignError;\n exports[\"TypeMismatch\"] = TypeMismatch;\n exports[\"renderForeignError\"] = renderForeignError;\n exports[\"unsafeToForeign\"] = unsafeToForeign;\n exports[\"unsafeReadTagged\"] = unsafeReadTagged;\n exports[\"readString\"] = readString;\n exports[\"readBoolean\"] = readBoolean;\n exports[\"fail\"] = fail;\n exports[\"typeOf\"] = $foreign.typeOf;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Affjax\"] = $PS[\"Affjax\"] || {};\n var exports = $PS[\"Affjax\"];\n var $foreign = $PS[\"Affjax\"];\n var Affjax_RequestBody = $PS[\"Affjax.RequestBody\"];\n var Affjax_RequestHeader = $PS[\"Affjax.RequestHeader\"];\n var Affjax_ResponseFormat = $PS[\"Affjax.ResponseFormat\"];\n var Affjax_ResponseHeader = $PS[\"Affjax.ResponseHeader\"];\n var Control_Alt = $PS[\"Control.Alt\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Control_Monad_Except = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Parser = $PS[\"Data.Argonaut.Parser\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_FormURLEncoded = $PS[\"Data.FormURLEncoded\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_HTTP_Method = $PS[\"Data.HTTP.Method\"];\n var Data_HeytingAlgebra = $PS[\"Data.HeytingAlgebra\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_List_NonEmpty = $PS[\"Data.List.NonEmpty\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_Compat = $PS[\"Effect.Aff.Compat\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Foreign = $PS[\"Foreign\"]; \n var RequestContentError = (function () {\n function RequestContentError(value0) {\n this.value0 = value0;\n };\n RequestContentError.create = function (value0) {\n return new RequestContentError(value0);\n };\n return RequestContentError;\n })();\n var ResponseBodyError = (function () {\n function ResponseBodyError(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ResponseBodyError.create = function (value0) {\n return function (value1) {\n return new ResponseBodyError(value0, value1);\n };\n };\n return ResponseBodyError;\n })();\n var TimeoutError = (function () {\n function TimeoutError() {\n\n };\n TimeoutError.value = new TimeoutError();\n return TimeoutError;\n })();\n var RequestFailedError = (function () {\n function RequestFailedError() {\n\n };\n RequestFailedError.value = new RequestFailedError();\n return RequestFailedError;\n })();\n var XHROtherError = (function () {\n function XHROtherError(value0) {\n this.value0 = value0;\n };\n XHROtherError.create = function (value0) {\n return new XHROtherError(value0);\n };\n return XHROtherError;\n })();\n var request = function (req) {\n var parseJSON = function (v) {\n if (v === \"\") {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Data_Argonaut_Core.jsonEmptyObject);\n };\n return Data_Either.either((function () {\n var $51 = Foreign.fail(Data_Identity.monadIdentity);\n return function ($52) {\n return $51(Foreign.ForeignError.create($52));\n };\n })())(Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity)))(Data_Argonaut_Parser.jsonParser(v));\n };\n var fromResponse = (function () {\n if (req.responseFormat instanceof Affjax_ResponseFormat[\"ArrayBuffer\"]) {\n return Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"ArrayBuffer\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Blob) {\n return Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"Blob\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Document) {\n return function (x) {\n return Control_Alt.alt(Control_Monad_Except_Trans.altExceptT(Data_List_Types.semigroupNonEmptyList)(Data_Identity.monadIdentity))(Control_Alt.alt(Control_Monad_Except_Trans.altExceptT(Data_List_Types.semigroupNonEmptyList)(Data_Identity.monadIdentity))(Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"Document\")(x))(Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"XMLDocument\")(x)))(Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"HTMLDocument\")(x));\n };\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Json) {\n return Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(function ($53) {\n return req.responseFormat.value0(parseJSON($53));\n })(Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"String\"));\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat[\"String\"]) {\n return Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"String\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Ignore) {\n return Data_Function[\"const\"](req.responseFormat.value0(Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Data_Unit.unit)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 257, column 18 - line 265, column 57): \" + [ req.responseFormat.constructor.name ]);\n })();\n var extractContent = function (v) {\n if (v instanceof Affjax_RequestBody.ArrayView) {\n return Data_Either.Right.create(v.value0(Foreign.unsafeToForeign));\n };\n if (v instanceof Affjax_RequestBody.Blob) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.Document) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody[\"String\"]) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.FormData) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.FormURLEncoded) {\n return Data_Either.note(\"Body contains values that cannot be encoded as application/x-www-form-urlencoded\")(Data_Functor.map(Data_Maybe.functorMaybe)(Foreign.unsafeToForeign)(Data_FormURLEncoded.encode(v.value0)));\n };\n if (v instanceof Affjax_RequestBody.Json) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(Data_Argonaut_Core.stringify(v.value0)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 217, column 20 - line 232, column 69): \" + [ v.constructor.name ]);\n };\n var addHeader = function (mh) {\n return function (hs) {\n if (mh instanceof Data_Maybe.Just && !Data_Foldable.any(Data_Foldable.foldableArray)(Data_HeytingAlgebra.heytingAlgebraBoolean)(Data_Function.on(Data_Eq.eq(Data_Eq.eqString))(Affjax_RequestHeader.name)(mh.value0))(hs)) {\n return Data_Array.snoc(hs)(mh.value0);\n };\n return hs;\n };\n };\n var headers = function (reqContent) {\n return addHeader(Data_Functor.map(Data_Maybe.functorMaybe)(Affjax_RequestHeader.ContentType.create)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Affjax_RequestBody.toMediaType)(reqContent)))(addHeader(Data_Functor.map(Data_Maybe.functorMaybe)(Affjax_RequestHeader.Accept.create)(Affjax_ResponseFormat.toMediaType(req.responseFormat)))(req.headers));\n };\n var ajaxRequest = function (v) {\n return {\n method: Data_HTTP_Method.print(req.method),\n url: req.url,\n headers: Data_Functor.map(Data_Functor.functorArray)(function (h) {\n return {\n field: Affjax_RequestHeader.name(h),\n value: Affjax_RequestHeader.value(h)\n };\n })(headers(req.content)),\n content: v,\n responseType: Affjax_ResponseFormat.toResponseType(req.responseFormat),\n username: Data_Nullable.toNullable(req.username),\n password: Data_Nullable.toNullable(req.password),\n withCredentials: req.withCredentials,\n timeout: Data_Maybe.fromMaybe(0.0)(Data_Functor.map(Data_Maybe.functorMaybe)(function (v1) {\n return v1;\n })(req.timeout))\n };\n };\n var send = function (content) {\n return Data_Functor.mapFlipped(Effect_Aff.functorAff)(Control_Monad_Error_Class[\"try\"](Effect_Aff.monadErrorAff)(Effect_Aff_Compat.fromEffectFnAff($foreign[\"_ajax\"](\"AffjaxTimeoutErrorMessageIdent\", \"AffjaxRequestFailedMessageIdent\", Affjax_ResponseHeader.ResponseHeader.create, ajaxRequest(content)))))(function (v) {\n if (v instanceof Data_Either.Right) {\n var v1 = Control_Monad_Except.runExcept(fromResponse(v.value0.body));\n if (v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(new ResponseBodyError(Data_List_NonEmpty.head(v1.value0), v.value0));\n };\n if (v1 instanceof Data_Either.Right) {\n return new Data_Either.Right({\n body: v1.value0,\n headers: v.value0.headers,\n status: v.value0.status,\n statusText: v.value0.statusText\n });\n };\n throw new Error(\"Failed pattern match at Affjax (line 193, column 9 - line 195, column 52): \" + [ v1.constructor.name ]);\n };\n if (v instanceof Data_Either.Left) {\n var message = Effect_Exception.message(v.value0);\n return Data_Either.Left.create((function () {\n var $38 = message === \"AffjaxTimeoutErrorMessageIdent\";\n if ($38) {\n return TimeoutError.value;\n };\n var $39 = message === \"AffjaxRequestFailedMessageIdent\";\n if ($39) {\n return RequestFailedError.value;\n };\n return new XHROtherError(v.value0);\n })());\n };\n throw new Error(\"Failed pattern match at Affjax (line 191, column 137 - line 201, column 33): \" + [ v.constructor.name ]);\n });\n };\n if (req.content instanceof Data_Maybe.Nothing) {\n return send(Data_Nullable.toNullable(Data_Maybe.Nothing.value));\n };\n if (req.content instanceof Data_Maybe.Just) {\n var v = extractContent(req.content.value0);\n if (v instanceof Data_Either.Right) {\n return send(Data_Nullable.toNullable(new Data_Maybe.Just(v.value0)));\n };\n if (v instanceof Data_Either.Left) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(new Data_Either.Left(new RequestContentError(v.value0)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 183, column 7 - line 187, column 48): \" + [ v.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Affjax (line 179, column 3 - line 187, column 48): \" + [ req.content.constructor.name ]);\n };\n var printError = function (v) {\n if (v instanceof RequestContentError) {\n return \"There was a problem with the request content: \" + v.value0;\n };\n if (v instanceof ResponseBodyError) {\n return \"There was a problem with the response body: \" + Foreign.renderForeignError(v.value0);\n };\n if (v instanceof TimeoutError) {\n return \"There was a problem making the request: timeout\";\n };\n if (v instanceof RequestFailedError) {\n return \"There was a problem making the request: request failed\";\n };\n if (v instanceof XHROtherError) {\n return \"There was a problem making the request: \" + Effect_Exception.message(v.value0);\n };\n throw new Error(\"Failed pattern match at Affjax (line 97, column 14 - line 107, column 66): \" + [ v.constructor.name ]);\n };\n var defaultRequest = {\n method: new Data_Either.Left(Data_HTTP_Method.GET.value),\n url: \"/\",\n headers: [ ],\n content: Data_Maybe.Nothing.value,\n username: Data_Maybe.Nothing.value,\n password: Data_Maybe.Nothing.value,\n withCredentials: false,\n responseFormat: Affjax_ResponseFormat.ignore,\n timeout: Data_Maybe.Nothing.value\n };\n exports[\"defaultRequest\"] = defaultRequest;\n exports[\"printError\"] = printError;\n exports[\"request\"] = request;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Decode.Error\"] = $PS[\"Data.Argonaut.Decode.Error\"] || {};\n var exports = $PS[\"Data.Argonaut.Decode.Error\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Show = $PS[\"Data.Show\"]; \n var TypeMismatch = (function () {\n function TypeMismatch(value0) {\n this.value0 = value0;\n };\n TypeMismatch.create = function (value0) {\n return new TypeMismatch(value0);\n };\n return TypeMismatch;\n })();\n var UnexpectedValue = (function () {\n function UnexpectedValue(value0) {\n this.value0 = value0;\n };\n UnexpectedValue.create = function (value0) {\n return new UnexpectedValue(value0);\n };\n return UnexpectedValue;\n })();\n var AtIndex = (function () {\n function AtIndex(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n AtIndex.create = function (value0) {\n return function (value1) {\n return new AtIndex(value0, value1);\n };\n };\n return AtIndex;\n })();\n var AtKey = (function () {\n function AtKey(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n AtKey.create = function (value0) {\n return function (value1) {\n return new AtKey(value0, value1);\n };\n };\n return AtKey;\n })();\n var Named = (function () {\n function Named(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Named.create = function (value0) {\n return function (value1) {\n return new Named(value0, value1);\n };\n };\n return Named;\n })();\n var MissingValue = (function () {\n function MissingValue() {\n\n };\n MissingValue.value = new MissingValue();\n return MissingValue;\n })();\n var printJsonDecodeError = function (err) {\n var go = function (v) {\n if (v instanceof TypeMismatch) {\n return \" Expected value of type '\" + (v.value0 + \"'.\");\n };\n if (v instanceof UnexpectedValue) {\n return \" Unexpected value \" + (Data_Argonaut_Core.stringify(v.value0) + \".\");\n };\n if (v instanceof AtIndex) {\n return \" At array index \" + (Data_Show.show(Data_Show.showInt)(v.value0) + (\":\\x0a\" + go(v.value1)));\n };\n if (v instanceof AtKey) {\n return \" At object key '\" + (v.value0 + (\"':\\x0a\" + go(v.value1)));\n };\n if (v instanceof Named) {\n return \" Under '\" + (v.value0 + (\"':\\x0a\" + go(v.value1)));\n };\n if (v instanceof MissingValue) {\n return \" No value was found.\";\n };\n throw new Error(\"Failed pattern match at Data.Argonaut.Decode.Error (line 37, column 8 - line 43, column 44): \" + [ v.constructor.name ]);\n };\n return \"An error occurred while decoding a JSON value:\\x0a\" + go(err);\n };\n exports[\"TypeMismatch\"] = TypeMismatch;\n exports[\"UnexpectedValue\"] = UnexpectedValue;\n exports[\"AtIndex\"] = AtIndex;\n exports[\"AtKey\"] = AtKey;\n exports[\"Named\"] = Named;\n exports[\"MissingValue\"] = MissingValue;\n exports[\"printJsonDecodeError\"] = printJsonDecodeError;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Bifunctor\"] = $PS[\"Data.Bifunctor\"] || {};\n var exports = $PS[\"Data.Bifunctor\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Either = $PS[\"Data.Either\"]; \n var bimap = function (dict) {\n return dict.bimap;\n };\n var lmap = function (dictBifunctor) {\n return function (f) {\n return bimap(dictBifunctor)(f)(Control_Category.identity(Control_Category.categoryFn));\n };\n };\n var bifunctorEither = {\n bimap: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Either.Left) {\n return new Data_Either.Left(v(v2.value0));\n };\n if (v2 instanceof Data_Either.Right) {\n return new Data_Either.Right(v1(v2.value0));\n };\n throw new Error(\"Failed pattern match at Data.Bifunctor (line 32, column 1 - line 34, column 36): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n }\n };\n exports[\"bimap\"] = bimap;\n exports[\"lmap\"] = lmap;\n exports[\"bifunctorEither\"] = bifunctorEither;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Decode.Decoders\"] = $PS[\"Data.Argonaut.Decode.Decoders\"] || {};\n var exports = $PS[\"Data.Argonaut.Decode.Decoders\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Decode_Error = $PS[\"Data.Argonaut.Decode.Error\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Traversable = $PS[\"Data.Traversable\"];\n var Data_TraversableWithIndex = $PS[\"Data.TraversableWithIndex\"];\n var Foreign_Object = $PS[\"Foreign.Object\"]; \n var getFieldOptional$prime = function (decoder) {\n return function (obj) {\n return function (str) {\n var decode = function (json) {\n var $5 = Data_Argonaut_Core.isNull(json);\n if ($5) {\n return Control_Applicative.pure(Data_Either.applicativeEither)(Data_Maybe.Nothing.value);\n };\n return Data_Functor.map(Data_Either.functorEither)(Data_Maybe.Just.create)(Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)(Data_Argonaut_Decode_Error.AtKey.create(str))(decoder(json)));\n };\n return Data_Maybe.maybe(Control_Applicative.pure(Data_Either.applicativeEither)(Data_Maybe.Nothing.value))(decode)(Foreign_Object.lookup(str)(obj));\n };\n };\n };\n var getField = function (decoder) {\n return function (obj) {\n return function (str) {\n return Data_Maybe.maybe(Data_Either.Left.create(new Data_Argonaut_Decode_Error.AtKey(str, Data_Argonaut_Decode_Error.MissingValue.value)))((function () {\n var $18 = Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)(Data_Argonaut_Decode_Error.AtKey.create(str));\n return function ($19) {\n return $18(decoder($19));\n };\n })())(Foreign_Object.lookup(str)(obj));\n };\n };\n };\n var decodeString = Data_Argonaut_Core.caseJsonString(Data_Either.Left.create(new Data_Argonaut_Decode_Error.TypeMismatch(\"String\")))(Data_Either.Right.create);\n var decodeNumber = Data_Argonaut_Core.caseJsonNumber(Data_Either.Left.create(new Data_Argonaut_Decode_Error.TypeMismatch(\"Number\")))(Data_Either.Right.create);\n var decodeMaybe = function (decoder) {\n return function (json) {\n if (Data_Argonaut_Core.isNull(json)) {\n return Control_Applicative.pure(Data_Either.applicativeEither)(Data_Maybe.Nothing.value);\n };\n if (Data_Boolean.otherwise) {\n return Data_Functor.map(Data_Either.functorEither)(Data_Maybe.Just.create)(decoder(json));\n };\n throw new Error(\"Failed pattern match at Data.Argonaut.Decode.Decoders (line 37, column 1 - line 41, column 38): \" + [ decoder.constructor.name, json.constructor.name ]);\n };\n };\n var decodeJObject = (function () {\n var $20 = Data_Either.note(new Data_Argonaut_Decode_Error.TypeMismatch(\"Object\"));\n return function ($21) {\n return $20(Data_Argonaut_Core.toObject($21));\n };\n })();\n var decodeJArray = (function () {\n var $22 = Data_Either.note(new Data_Argonaut_Decode_Error.TypeMismatch(\"Array\"));\n return function ($23) {\n return $22(Data_Argonaut_Core.toArray($23));\n };\n })();\n var decodeForeignObject = function (decoder) {\n return Control_Bind.composeKleisliFlipped(Data_Either.bindEither)((function () {\n var $56 = Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)(Data_Argonaut_Decode_Error.Named.create(\"ForeignObject\"));\n var $57 = Data_Traversable.traverse(Foreign_Object.traversableObject)(Data_Either.applicativeEither)(decoder);\n return function ($58) {\n return $56($57($58));\n };\n })())(decodeJObject);\n }; \n var decodeArray = function (decoder) {\n return Control_Bind.composeKleisliFlipped(Data_Either.bindEither)((function () {\n var $59 = Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)(Data_Argonaut_Decode_Error.Named.create(\"Array\"));\n var $60 = Data_TraversableWithIndex.traverseWithIndex(Data_TraversableWithIndex.traversableWithIndexArray)(Data_Either.applicativeEither)(function (i) {\n var $62 = Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)(Data_Argonaut_Decode_Error.AtIndex.create(i));\n return function ($63) {\n return $62(decoder($63));\n };\n });\n return function ($61) {\n return $59($60($61));\n };\n })())(decodeJArray);\n };\n exports[\"decodeMaybe\"] = decodeMaybe;\n exports[\"decodeNumber\"] = decodeNumber;\n exports[\"decodeString\"] = decodeString;\n exports[\"decodeForeignObject\"] = decodeForeignObject;\n exports[\"decodeArray\"] = decodeArray;\n exports[\"getField\"] = getField;\n exports[\"getFieldOptional'\"] = getFieldOptional$prime;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Record\"] = $PS[\"Record\"] || {};\n var exports = $PS[\"Record\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Record_Unsafe = $PS[\"Record.Unsafe\"];\n var insert = function (dictIsSymbol) {\n return function (dictLacks) {\n return function (dictCons) {\n return function (l) {\n return function (a) {\n return function (r) {\n return Record_Unsafe.unsafeSet(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(a)(r);\n };\n };\n };\n };\n };\n };\n var get = function (dictIsSymbol) {\n return function (dictCons) {\n return function (l) {\n return function (r) {\n return Record_Unsafe.unsafeGet(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(r);\n };\n };\n };\n };\n exports[\"get\"] = get;\n exports[\"insert\"] = insert;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Decode.Class\"] = $PS[\"Data.Argonaut.Decode.Class\"] || {};\n var exports = $PS[\"Data.Argonaut.Decode.Class\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Decode_Decoders = $PS[\"Data.Argonaut.Decode.Decoders\"];\n var Data_Argonaut_Decode_Error = $PS[\"Data.Argonaut.Decode.Error\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Foreign_Object = $PS[\"Foreign.Object\"];\n var Record = $PS[\"Record\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n var gDecodeJsonNil = {\n gDecodeJson: function (v) {\n return function (v1) {\n return new Data_Either.Right({});\n };\n }\n };\n var gDecodeJson = function (dict) {\n return dict.gDecodeJson;\n };\n var decodeRecord = function (dictGDecodeJson) {\n return function (dictRowToList) {\n return {\n decodeJson: function (json) {\n var v = Data_Argonaut_Core.toObject(json);\n if (v instanceof Data_Maybe.Just) {\n return gDecodeJson(dictGDecodeJson)(v.value0)(Type_Proxy[\"Proxy\"].value);\n };\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Either.Left.create(new Data_Argonaut_Decode_Error.TypeMismatch(\"Object\"));\n };\n throw new Error(\"Failed pattern match at Data.Argonaut.Decode.Class (line 103, column 5 - line 105, column 46): \" + [ v.constructor.name ]);\n }\n };\n };\n };\n var decodeJsonString = {\n decodeJson: Data_Argonaut_Decode_Decoders.decodeString\n };\n var decodeJsonNumber = {\n decodeJson: Data_Argonaut_Decode_Decoders.decodeNumber\n };\n var decodeJsonJson = {\n decodeJson: Data_Either.Right.create\n };\n var decodeJsonField = function (dict) {\n return dict.decodeJsonField;\n };\n var gDecodeJsonCons = function (dictDecodeJsonField) {\n return function (dictGDecodeJson) {\n return function (dictIsSymbol) {\n return function (dictCons) {\n return function (dictLacks) {\n return {\n gDecodeJson: function (object) {\n return function (v) {\n var fieldName = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var fieldValue = Foreign_Object.lookup(fieldName)(object);\n var v1 = decodeJsonField(dictDecodeJsonField)(fieldValue);\n if (v1 instanceof Data_Maybe.Just) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)(Data_Argonaut_Decode_Error.AtKey.create(fieldName))(v1.value0))(function (val) {\n return Control_Bind.bind(Data_Either.bindEither)(gDecodeJson(dictGDecodeJson)(object)(Type_Proxy[\"Proxy\"].value))(function (rest) {\n return Data_Either.Right.create(Record.insert(dictIsSymbol)()()(Type_Proxy[\"Proxy\"].value)(val)(rest));\n });\n });\n };\n if (v1 instanceof Data_Maybe.Nothing) {\n return Data_Either.Left.create(new Data_Argonaut_Decode_Error.AtKey(fieldName, Data_Argonaut_Decode_Error.MissingValue.value));\n };\n throw new Error(\"Failed pattern match at Data.Argonaut.Decode.Class (line 127, column 5 - line 134, column 44): \" + [ v1.constructor.name ]);\n };\n }\n };\n };\n };\n };\n };\n };\n var decodeJson = function (dict) {\n return dict.decodeJson;\n };\n var decodeJsonMaybe = function (dictDecodeJson) {\n return {\n decodeJson: Data_Argonaut_Decode_Decoders.decodeMaybe(decodeJson(dictDecodeJson))\n };\n };\n var decodeForeignObject = function (dictDecodeJson) {\n return {\n decodeJson: Data_Argonaut_Decode_Decoders.decodeForeignObject(decodeJson(dictDecodeJson))\n };\n };\n var decodeFieldMaybe = function (dictDecodeJson) {\n return {\n decodeJsonField: function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Just.create(new Data_Either.Right(Data_Maybe.Nothing.value));\n };\n if (v instanceof Data_Maybe.Just) {\n return Data_Maybe.Just.create(decodeJson(decodeJsonMaybe(dictDecodeJson))(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Argonaut.Decode.Class (line 139, column 1 - line 143, column 49): \" + [ v.constructor.name ]);\n }\n };\n };\n var decodeFieldId = function (dictDecodeJson) {\n return {\n decodeJsonField: function (j) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(decodeJson(dictDecodeJson))(j);\n }\n };\n };\n var decodeArray = function (dictDecodeJson) {\n return {\n decodeJson: Data_Argonaut_Decode_Decoders.decodeArray(decodeJson(dictDecodeJson))\n };\n };\n exports[\"decodeJson\"] = decodeJson;\n exports[\"decodeJsonMaybe\"] = decodeJsonMaybe;\n exports[\"decodeJsonNumber\"] = decodeJsonNumber;\n exports[\"decodeJsonString\"] = decodeJsonString;\n exports[\"decodeJsonJson\"] = decodeJsonJson;\n exports[\"decodeForeignObject\"] = decodeForeignObject;\n exports[\"decodeArray\"] = decodeArray;\n exports[\"decodeRecord\"] = decodeRecord;\n exports[\"gDecodeJsonNil\"] = gDecodeJsonNil;\n exports[\"gDecodeJsonCons\"] = gDecodeJsonCons;\n exports[\"decodeFieldMaybe\"] = decodeFieldMaybe;\n exports[\"decodeFieldId\"] = decodeFieldId;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Decode.Combinators\"] = $PS[\"Data.Argonaut.Decode.Combinators\"] || {};\n var exports = $PS[\"Data.Argonaut.Decode.Combinators\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Argonaut_Decode_Decoders = $PS[\"Data.Argonaut.Decode.Decoders\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var getFieldOptional$prime = function (dictDecodeJson) {\n return Data_Argonaut_Decode_Decoders[\"getFieldOptional'\"](Data_Argonaut_Decode_Class.decodeJson(dictDecodeJson));\n };\n var getField = function (dictDecodeJson) {\n return Data_Argonaut_Decode_Decoders.getField(Data_Argonaut_Decode_Class.decodeJson(dictDecodeJson));\n };\n var defaultField = function (parser) {\n return function ($$default) {\n return Data_Functor.map(Data_Either.functorEither)(Data_Maybe.fromMaybe($$default))(parser);\n };\n };\n exports[\"getField\"] = getField;\n exports[\"getFieldOptional'\"] = getFieldOptional$prime;\n exports[\"defaultField\"] = defaultField;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.DateTimeFormat\"] = $PS[\"Data.DateTimeFormat\"] || {};\n var exports = $PS[\"Data.DateTimeFormat\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var localeToString = Data_Newtype.unwrap();\n exports[\"localeToString\"] = localeToString;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"App.BigDataGeoLoc\"] = $PS[\"App.BigDataGeoLoc\"] || {};\n var exports = $PS[\"App.BigDataGeoLoc\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Argonaut_Decode_Combinators = $PS[\"Data.Argonaut.Decode.Combinators\"];\n var Data_DateTimeFormat = $PS[\"Data.DateTimeFormat\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Show = $PS[\"Data.Show\"];\n var showBigDataJson = {\n show: function (v) {\n var addHyphenOrNot = function (string) {\n if (string === \"\") {\n return \"\";\n };\n return string + \" - \";\n };\n var city$prime = addHyphenOrNot(v.city);\n var continent$prime = addHyphenOrNot(v.continent);\n var countryName$prime = addHyphenOrNot(v.countryName);\n var addDegreeSign = function (num) {\n return Data_Show.show(Data_Show.showNumber)(num) + \"\\xb0\";\n };\n return continent$prime + (countryName$prime + (city$prime + (v.locality + (\" (\" + (addDegreeSign(v.latitude) + (\", \" + (addDegreeSign(v.longitude) + \")\")))))));\n }\n };\n var decodeJsonBigDataJson = {\n decodeJson: function (json) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Class.decodeJson(Data_Argonaut_Decode_Class.decodeForeignObject(Data_Argonaut_Decode_Class.decodeJsonJson))(json))(function (x) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Combinators.getField(Data_Argonaut_Decode_Class.decodeJsonNumber)(x)(\"latitude\"))(function (latitude) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Combinators.getField(Data_Argonaut_Decode_Class.decodeJsonNumber)(x)(\"longitude\"))(function (longitude) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Combinators.defaultField(Data_Argonaut_Decode_Combinators[\"getFieldOptional'\"](Data_Argonaut_Decode_Class.decodeJsonString)(x)(\"continent\"))(\"\"))(function (continent) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Combinators.defaultField(Data_Argonaut_Decode_Combinators[\"getFieldOptional'\"](Data_Argonaut_Decode_Class.decodeJsonString)(x)(\"city\"))(\"\"))(function (city) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Combinators.defaultField(Data_Argonaut_Decode_Combinators[\"getFieldOptional'\"](Data_Argonaut_Decode_Class.decodeJsonString)(x)(\"countryName\"))(\"\"))(function (countryName) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Combinators.defaultField(Data_Argonaut_Decode_Combinators[\"getFieldOptional'\"](Data_Argonaut_Decode_Class.decodeJsonString)(x)(\"locality\"))(\"\"))(function (locality) {\n return Control_Applicative.pure(Data_Either.applicativeEither)({\n latitude: latitude,\n longitude: longitude,\n continent: continent,\n city: city,\n countryName: countryName,\n locality: locality\n });\n });\n });\n });\n });\n });\n });\n });\n }\n };\n var bigDataGeolocURL = function (locale) {\n return function (v) {\n return \"https://api.bigdatacloud.net/data/reverse-geocode-client?latitude=\" + (Data_Show.show(Data_Show.showNumber)(v.latitude) + (\"&longitude=\" + (Data_Show.show(Data_Show.showNumber)(v.longitude) + (\"&localityLanguage=\" + Data_DateTimeFormat.localeToString(locale)))));\n };\n };\n var bigDataGeolocResponse = function (json) {\n var v = Data_Argonaut_Decode_Class.decodeJson(decodeJsonBigDataJson)(json);\n if (v instanceof Data_Either.Left) {\n return \"\";\n };\n if (v instanceof Data_Either.Right) {\n return Data_Show.show(showBigDataJson)(v.value0);\n };\n throw new Error(\"Failed pattern match at App.BigDataGeoLoc (line 45, column 30 - line 47, column 41): \" + [ v.constructor.name ]);\n };\n exports[\"bigDataGeolocResponse\"] = bigDataGeolocResponse;\n exports[\"bigDataGeolocURL\"] = bigDataGeolocURL;\n})(PS);\n(function(exports) {\n \"use strict\";\n /* global Symbol */\n\n var hasArrayFrom = typeof Array.from === \"function\";\n var hasStringIterator =\n typeof Symbol !== \"undefined\" &&\n Symbol != null &&\n typeof Symbol.iterator !== \"undefined\" &&\n typeof String.prototype[Symbol.iterator] === \"function\";\n var hasFromCodePoint = typeof String.prototype.fromCodePoint === \"function\";\n var hasCodePointAt = typeof String.prototype.codePointAt === \"function\";\n\n exports._unsafeCodePointAt0 = function (fallback) {\n return hasCodePointAt\n ? function (str) { return str.codePointAt(0); }\n : fallback;\n };\n\n exports._singleton = function (fallback) {\n return hasFromCodePoint ? String.fromCodePoint : fallback;\n };\n\n exports._take = function (fallback) {\n return function (n) {\n if (hasStringIterator) {\n return function (str) {\n var accum = \"\";\n var iter = str[Symbol.iterator]();\n for (var i = 0; i < n; ++i) {\n var o = iter.next();\n if (o.done) return accum;\n accum += o.value;\n }\n return accum;\n };\n }\n return fallback(n);\n };\n };\n\n exports._toCodePointArray = function (fallback) {\n return function (unsafeCodePointAt0) {\n if (hasArrayFrom) {\n return function (str) {\n return Array.from(str, unsafeCodePointAt0);\n };\n }\n return fallback;\n };\n };\n})(PS[\"Data.String.CodePoints\"] = PS[\"Data.String.CodePoints\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.topInt = 2147483647;\n exports.bottomInt = -2147483648;\n\n exports.topChar = String.fromCharCode(65535);\n exports.bottomChar = String.fromCharCode(0);\n})(PS[\"Data.Bounded\"] = PS[\"Data.Bounded\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Bounded\"] = $PS[\"Data.Bounded\"] || {};\n var exports = $PS[\"Data.Bounded\"];\n var $foreign = $PS[\"Data.Bounded\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var top = function (dict) {\n return dict.top;\n };\n var boundedInt = {\n top: $foreign.topInt,\n bottom: $foreign.bottomInt,\n Ord0: function () {\n return Data_Ord.ordInt;\n }\n };\n var boundedChar = {\n top: $foreign.topChar,\n bottom: $foreign.bottomChar,\n Ord0: function () {\n return Data_Ord.ordChar;\n }\n };\n var bottom = function (dict) {\n return dict.bottom;\n };\n exports[\"bottom\"] = bottom;\n exports[\"top\"] = top;\n exports[\"boundedInt\"] = boundedInt;\n exports[\"boundedChar\"] = boundedChar;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.toCharCode = function (c) {\n return c.charCodeAt(0);\n };\n\n exports.fromCharCode = function (c) {\n return String.fromCharCode(c);\n };\n})(PS[\"Data.Enum\"] = PS[\"Data.Enum\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Enum\"] = $PS[\"Data.Enum\"] || {};\n var exports = $PS[\"Data.Enum\"];\n var $foreign = $PS[\"Data.Enum\"];\n var Data_Bounded = $PS[\"Data.Bounded\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var toEnum = function (dict) {\n return dict.toEnum;\n };\n var fromEnum = function (dict) {\n return dict.fromEnum;\n };\n var toEnumWithDefaults = function (dictBoundedEnum) {\n return function (low) {\n return function (high) {\n return function (x) {\n var v = toEnum(dictBoundedEnum)(x);\n if (v instanceof Data_Maybe.Just) {\n return v.value0;\n };\n if (v instanceof Data_Maybe.Nothing) {\n var $55 = x < fromEnum(dictBoundedEnum)(Data_Bounded.bottom(dictBoundedEnum.Bounded0()));\n if ($55) {\n return low;\n };\n return high;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 158, column 33 - line 160, column 62): \" + [ v.constructor.name ]);\n };\n };\n };\n };\n var defaultSucc = function (toEnum$prime) {\n return function (fromEnum$prime) {\n return function (a) {\n return toEnum$prime(fromEnum$prime(a) + 1 | 0);\n };\n };\n };\n var defaultPred = function (toEnum$prime) {\n return function (fromEnum$prime) {\n return function (a) {\n return toEnum$prime(fromEnum$prime(a) - 1 | 0);\n };\n };\n };\n var charToEnum = function (v) {\n if (v >= Data_Bounded.bottom(Data_Bounded.boundedInt) && v <= Data_Bounded.top(Data_Bounded.boundedInt)) {\n return new Data_Maybe.Just($foreign.fromCharCode(v));\n };\n return Data_Maybe.Nothing.value;\n };\n var enumChar = {\n succ: defaultSucc(charToEnum)($foreign.toCharCode),\n pred: defaultPred(charToEnum)($foreign.toCharCode),\n Ord0: function () {\n return Data_Ord.ordChar;\n }\n };\n var boundedEnumChar = {\n cardinality: $foreign.toCharCode(Data_Bounded.top(Data_Bounded.boundedChar)) - $foreign.toCharCode(Data_Bounded.bottom(Data_Bounded.boundedChar)) | 0,\n toEnum: charToEnum,\n fromEnum: $foreign.toCharCode,\n Bounded0: function () {\n return Data_Bounded.boundedChar;\n },\n Enum1: function () {\n return enumChar;\n }\n };\n exports[\"fromEnum\"] = fromEnum;\n exports[\"toEnumWithDefaults\"] = toEnumWithDefaults;\n exports[\"boundedEnumChar\"] = boundedEnumChar;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.intDegree = function (x) {\n return Math.min(Math.abs(x), 2147483647);\n };\n\n // See the Euclidean definition in\n // https://en.m.wikipedia.org/wiki/Modulo_operation.\n exports.intDiv = function (x) {\n return function (y) {\n if (y === 0) return 0;\n return y > 0 ? Math.floor(x / y) : -Math.floor(x / -y);\n };\n };\n\n exports.intMod = function (x) {\n return function (y) {\n if (y === 0) return 0;\n var yy = Math.abs(y);\n return ((x % yy) + yy) % yy;\n };\n };\n})(PS[\"Data.EuclideanRing\"] = PS[\"Data.EuclideanRing\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.intSub = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x - y | 0;\n };\n };\n})(PS[\"Data.Ring\"] = PS[\"Data.Ring\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.intAdd = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x + y | 0;\n };\n };\n\n exports.intMul = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x * y | 0;\n };\n };\n})(PS[\"Data.Semiring\"] = PS[\"Data.Semiring\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Semiring\"] = $PS[\"Data.Semiring\"] || {};\n var exports = $PS[\"Data.Semiring\"];\n var $foreign = $PS[\"Data.Semiring\"];\n var semiringInt = {\n add: $foreign.intAdd,\n zero: 0,\n mul: $foreign.intMul,\n one: 1\n };\n exports[\"semiringInt\"] = semiringInt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Ring\"] = $PS[\"Data.Ring\"] || {};\n var exports = $PS[\"Data.Ring\"];\n var $foreign = $PS[\"Data.Ring\"];\n var Data_Semiring = $PS[\"Data.Semiring\"];\n var ringInt = {\n sub: $foreign.intSub,\n Semiring0: function () {\n return Data_Semiring.semiringInt;\n }\n };\n exports[\"ringInt\"] = ringInt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.CommutativeRing\"] = $PS[\"Data.CommutativeRing\"] || {};\n var exports = $PS[\"Data.CommutativeRing\"];\n var Data_Ring = $PS[\"Data.Ring\"];\n var commutativeRingInt = {\n Ring0: function () {\n return Data_Ring.ringInt;\n }\n };\n exports[\"commutativeRingInt\"] = commutativeRingInt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.EuclideanRing\"] = $PS[\"Data.EuclideanRing\"] || {};\n var exports = $PS[\"Data.EuclideanRing\"];\n var $foreign = $PS[\"Data.EuclideanRing\"];\n var Data_CommutativeRing = $PS[\"Data.CommutativeRing\"]; \n var mod = function (dict) {\n return dict.mod;\n };\n var euclideanRingInt = {\n degree: $foreign.intDegree,\n div: $foreign.intDiv,\n mod: $foreign.intMod,\n CommutativeRing0: function () {\n return Data_CommutativeRing.commutativeRingInt;\n }\n };\n var div = function (dict) {\n return dict.div;\n };\n exports[\"div\"] = div;\n exports[\"mod\"] = mod;\n exports[\"euclideanRingInt\"] = euclideanRingInt;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.singleton = function (c) {\n return c;\n };\n\n exports.length = function (s) {\n return s.length;\n };\n\n exports.drop = function (n) {\n return function (s) {\n return s.substring(n);\n };\n };\n})(PS[\"Data.String.CodeUnits\"] = PS[\"Data.String.CodeUnits\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.String.CodeUnits\"] = $PS[\"Data.String.CodeUnits\"] || {};\n var exports = $PS[\"Data.String.CodeUnits\"];\n var $foreign = $PS[\"Data.String.CodeUnits\"];\n exports[\"singleton\"] = $foreign.singleton;\n exports[\"length\"] = $foreign.length;\n exports[\"drop\"] = $foreign.drop;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.charAt = function (i) {\n return function (s) {\n if (i >= 0 && i < s.length) return s.charAt(i);\n throw new Error(\"Data.String.Unsafe.charAt: Invalid index.\");\n };\n };\n})(PS[\"Data.String.Unsafe\"] = PS[\"Data.String.Unsafe\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.String.Unsafe\"] = $PS[\"Data.String.Unsafe\"] || {};\n var exports = $PS[\"Data.String.Unsafe\"];\n var $foreign = $PS[\"Data.String.Unsafe\"];\n exports[\"charAt\"] = $foreign.charAt;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unfoldrArrayImpl = function (isNothing) {\n return function (fromJust) {\n return function (fst) {\n return function (snd) {\n return function (f) {\n return function (b) {\n var result = [];\n var value = b;\n while (true) { // eslint-disable-line no-constant-condition\n var maybe = f(value);\n if (isNothing(maybe)) return result;\n var tuple = fromJust(maybe);\n result.push(fst(tuple));\n value = snd(tuple);\n }\n };\n };\n };\n };\n };\n };\n})(PS[\"Data.Unfoldable\"] = PS[\"Data.Unfoldable\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.unfoldr1ArrayImpl = function (isNothing) {\n return function (fromJust) {\n return function (fst) {\n return function (snd) {\n return function (f) {\n return function (b) {\n var result = [];\n var value = b;\n while (true) { // eslint-disable-line no-constant-condition\n var tuple = f(value);\n result.push(fst(tuple));\n var maybe = snd(tuple);\n if (isNothing(maybe)) return result;\n value = fromJust(maybe);\n }\n };\n };\n };\n };\n };\n };\n})(PS[\"Data.Unfoldable1\"] = PS[\"Data.Unfoldable1\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Unfoldable1\"] = $PS[\"Data.Unfoldable1\"] || {};\n var exports = $PS[\"Data.Unfoldable1\"];\n var $foreign = $PS[\"Data.Unfoldable1\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var unfoldable1Array = {\n unfoldr1: $foreign.unfoldr1ArrayImpl(Data_Maybe.isNothing)(Data_Maybe.fromJust())(Data_Tuple.fst)(Data_Tuple.snd)\n };\n exports[\"unfoldable1Array\"] = unfoldable1Array;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Unfoldable\"] = $PS[\"Data.Unfoldable\"] || {};\n var exports = $PS[\"Data.Unfoldable\"];\n var $foreign = $PS[\"Data.Unfoldable\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unfoldable1 = $PS[\"Data.Unfoldable1\"]; \n var unfoldr = function (dict) {\n return dict.unfoldr;\n };\n var unfoldableArray = {\n unfoldr: $foreign.unfoldrArrayImpl(Data_Maybe.isNothing)(Data_Maybe.fromJust())(Data_Tuple.fst)(Data_Tuple.snd),\n Unfoldable10: function () {\n return Data_Unfoldable1.unfoldable1Array;\n }\n };\n exports[\"unfoldr\"] = unfoldr;\n exports[\"unfoldableArray\"] = unfoldableArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.String.CodePoints\"] = $PS[\"Data.String.CodePoints\"] || {};\n var exports = $PS[\"Data.String.CodePoints\"];\n var $foreign = $PS[\"Data.String.CodePoints\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Bounded = $PS[\"Data.Bounded\"];\n var Data_Enum = $PS[\"Data.Enum\"];\n var Data_EuclideanRing = $PS[\"Data.EuclideanRing\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_String_CodeUnits = $PS[\"Data.String.CodeUnits\"];\n var Data_String_Unsafe = $PS[\"Data.String.Unsafe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unfoldable = $PS[\"Data.Unfoldable\"];\n var unsurrogate = function (lead) {\n return function (trail) {\n return (((lead - 55296 | 0) * 1024 | 0) + (trail - 56320 | 0) | 0) + 65536 | 0;\n };\n };\n var isTrail = function (cu) {\n return 56320 <= cu && cu <= 57343;\n };\n var isLead = function (cu) {\n return 55296 <= cu && cu <= 56319;\n };\n var uncons = function (s) {\n var v = Data_String_CodeUnits.length(s);\n if (v === 0) {\n return Data_Maybe.Nothing.value;\n };\n if (v === 1) {\n return new Data_Maybe.Just({\n head: Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s)),\n tail: \"\"\n });\n };\n var cu1 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(1)(s));\n var cu0 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s));\n var $21 = isLead(cu0) && isTrail(cu1);\n if ($21) {\n return new Data_Maybe.Just({\n head: unsurrogate(cu0)(cu1),\n tail: Data_String_CodeUnits.drop(2)(s)\n });\n };\n return new Data_Maybe.Just({\n head: cu0,\n tail: Data_String_CodeUnits.drop(1)(s)\n });\n };\n var unconsButWithTuple = function (s) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (v) {\n return new Data_Tuple.Tuple(v.head, v.tail);\n })(uncons(s));\n };\n var toCodePointArrayFallback = function (s) {\n return Data_Unfoldable.unfoldr(Data_Unfoldable.unfoldableArray)(unconsButWithTuple)(s);\n };\n var unsafeCodePointAt0Fallback = function (s) {\n var cu0 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s));\n var $25 = isLead(cu0) && Data_String_CodeUnits.length(s) > 1;\n if ($25) {\n var cu1 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(1)(s));\n var $26 = isTrail(cu1);\n if ($26) {\n return unsurrogate(cu0)(cu1);\n };\n return cu0;\n };\n return cu0;\n };\n var unsafeCodePointAt0 = $foreign[\"_unsafeCodePointAt0\"](unsafeCodePointAt0Fallback);\n var toCodePointArray = $foreign[\"_toCodePointArray\"](toCodePointArrayFallback)(unsafeCodePointAt0);\n var length = function ($52) {\n return Data_Array.length(toCodePointArray($52));\n };\n var fromCharCode = (function () {\n var $53 = Data_Enum.toEnumWithDefaults(Data_Enum.boundedEnumChar)(Data_Bounded.bottom(Data_Bounded.boundedChar))(Data_Bounded.top(Data_Bounded.boundedChar));\n return function ($54) {\n return Data_String_CodeUnits.singleton($53($54));\n };\n })();\n var singletonFallback = function (v) {\n if (v <= 65535) {\n return fromCharCode(v);\n };\n var lead = Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt)(v - 65536 | 0)(1024) + 55296 | 0;\n var trail = Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt)(v - 65536 | 0)(1024) + 56320 | 0;\n return fromCharCode(lead) + fromCharCode(trail);\n }; \n var singleton = $foreign[\"_singleton\"](singletonFallback);\n var takeFallback = function (n) {\n return function (v) {\n if (n < 1) {\n return \"\";\n };\n var v1 = uncons(v);\n if (v1 instanceof Data_Maybe.Just) {\n return singleton(v1.value0.head) + takeFallback(n - 1 | 0)(v1.value0.tail);\n };\n return v;\n };\n };\n var take = $foreign[\"_take\"](takeFallback);\n var drop = function (n) {\n return function (s) {\n return Data_String_CodeUnits.drop(Data_String_CodeUnits.length(take(n)(s)))(s);\n };\n };\n exports[\"take\"] = take;\n})(PS);\n(function($PS) {\n \n // SPDX-License-Identifier: GPL-3.0-or-later\n // Copyright (C) 2022 Roland Csaszar\n //\n // Project: notoy-pwa\n // File: Constants.purs\n // Date: 06.Jan.2022\n //\n // =============================================================================\n // | Module App.Constants, various constants used in the app.\n \"use strict\";\n $PS[\"App.Constants\"] = $PS[\"App.Constants\"] || {};\n var exports = $PS[\"App.Constants\"];\n var Data_String_CodePoints = $PS[\"Data.String.CodePoints\"];\n var Data_String_Common = $PS[\"Data.String.Common\"]; \n\n /**\n * ------------------------------------------------------------------------------\n * | Return the Slovak translation.\n */ \n var translateToSK = function (trans) {\n return trans.sk;\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the Esperanto translation.\n */ \n var translateToEo = function (trans) {\n return trans.eo;\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the English translation.\n */ \n var translateToEn = function (trans) {\n return trans.en;\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the German translation.\n */ \n var translateToDe = function (trans) {\n return trans.de;\n };\n var optionsTextYAML = {\n en: \"Add YAML front matter (metadata for e.g. Pandoc)?\",\n de: \"YAML Front Matter (YAML Metadata f\\xfcr Pandoc) hinzuf\\xfcgen?\",\n eo: \"\\u0108u aldoni 'YAML Front Matter' (YAML metadatumojn por Pandoc) al la noto?\",\n sk: \"Prida\\u0165 YAML Front Matter (YAML meta data pre Pandoc)?\"\n };\n var optionsTextTimestamp = {\n en: \"Add current date to note?\",\n de: \"Aktuelles Datum zur Notiz hinzuf\\xfcgen?\",\n eo: \"\\u0108u aldoni hodia\\u016dan daton al la noto?\",\n sk: \"Potrebujete prida\\u0165 aktu\\xe1lny d\\xe1tum?\"\n };\n var optionsTextText = {\n en: \"Plain Text\",\n de: \"Nur Text\",\n sk: \"Text\",\n eo: \"Text\"\n };\n var optionsTextPosLookup = {\n en: \"Look the position up on BigData?\",\n de: \"Den Ortsnamen auf BigData abfragen?\",\n sk: \"Look the position up on BigData?\",\n eo: \"Look the position up on BigData?\"\n };\n var optionsTextOrgMode = {\n en: \"Org-Mode (Emacs)\",\n de: \"Org-Mode (Emacs)\",\n sk: \"Org-Mode (Emacs)\",\n eo: \"Org-Mode (Emacs)\"\n };\n var optionsTextMarkdown = {\n en: \"Markdown (Obsidian, Joplin, Zettlr)\",\n de: \"Markdown (Obsidian, Joplin, Zettlr)\",\n sk: \"Markdown (Obsidian, Joplin, Zettlr)\",\n eo: \"Markdown (Obsidian, Joplin, Zettlr)\"\n };\n var optionsTextFormat = {\n en: \"Note file format\",\n de: \"Format der erstellten Notiz:\",\n eo: \"Formato de la noto:\",\n sk: \"Zvolen\\xfd form\\xe1t pozn\\xe1mok:\"\n };\n var noteTextUrl = {\n en: \"Link:\",\n de: \"Link:\",\n eo: \"Ligilo:\",\n sk: \"Link:\"\n };\n var noteTextTitle = {\n en: \"Title:\",\n de: \"\\xdcberschrift:\",\n eo: \"Titolo:\",\n sk: \"N\\xe1zov:\"\n };\n var noteTextShortDescription = {\n en: \"Short description:\",\n de: \"Kurze Beschreibung:\",\n eo: \"Mallonga priskribo:\",\n sk: \"Kr\\xe1tky popis:\"\n };\n var noteTextShare = {\n en: \"Share\",\n de: \"Teilen\",\n eo: \"Diskonigi\",\n sk: \"Zdie\\u013ea\\u0165\"\n };\n var noteTextSave = {\n en: \"Save\",\n de: \"Speichern\",\n eo: \"Konservi\",\n sk: \"Ulo\\u017ei\\u0165\"\n };\n var noteTextPosition = {\n en: \"Location:\",\n de: \"Ort:\",\n eo: \"Loko:\",\n sk: \"Poz\\xedcia:\"\n };\n var noteTextLongDescription = {\n en: \"Detailed description:\",\n de: \"Ausf\\xfchrliche Beschreibung:\",\n eo: \"Detala priskribo:\",\n sk: \"Podrobn\\xfd popis:\"\n };\n var noteTextKeywords = {\n en: \"Keywords (comma separated):\",\n de: \"Schlagworte (getrennt mit Beistrichen):\",\n eo: \"Etikedoj (separitaj per komoj):\",\n sk: \"K\\u013e\\xfa\\u010dov\\xe9 slov\\xe1 (oddelen\\xe9 \\u010diarkami):\"\n };\n var noteTextGetPosition = {\n en: \"Get position\",\n de: \"Position abfragen\",\n eo: \"Demandi lokon\",\n sk: \"Get position\"\n };\n var localeToTranslation = function (v) {\n var v1 = Data_String_Common.toLower(Data_String_CodePoints.take(2)(v));\n if (v1 === \"en\") {\n return translateToEn;\n };\n if (v1 === \"de\") {\n return translateToDe;\n };\n if (v1 === \"sk\") {\n return translateToSK;\n };\n if (v1 === \"eo\") {\n return translateToEo;\n };\n return translateToEn;\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | HTML attribute `href`.\n */ \n var hrefAttr = \"href\";\n\n /**\n * ------------------------------------------------------------------------------\n * | The id of the hidden `a` HTML element used to download the note.\n * |\n * | \"hiddenURL\"\n */ \n var hiddenURLId = \"hiddenURL\";\n\n /**\n * ------------------------------------------------------------------------------\n * | HTML attribute `download`.\n */ \n var downloadAttr = \"download\";\n\n /**\n * ------------------------------------------------------------------------------\n * | The id of the HTML div to render the app to.\n * |\n * | \"app\"\n */ \n var appElementId = \"app\";\n exports[\"appElementId\"] = appElementId;\n exports[\"downloadAttr\"] = downloadAttr;\n exports[\"hiddenURLId\"] = hiddenURLId;\n exports[\"hrefAttr\"] = hrefAttr;\n exports[\"localeToTranslation\"] = localeToTranslation;\n exports[\"noteTextGetPosition\"] = noteTextGetPosition;\n exports[\"noteTextKeywords\"] = noteTextKeywords;\n exports[\"noteTextLongDescription\"] = noteTextLongDescription;\n exports[\"noteTextPosition\"] = noteTextPosition;\n exports[\"noteTextSave\"] = noteTextSave;\n exports[\"noteTextShare\"] = noteTextShare;\n exports[\"noteTextShortDescription\"] = noteTextShortDescription;\n exports[\"noteTextTitle\"] = noteTextTitle;\n exports[\"noteTextUrl\"] = noteTextUrl;\n exports[\"optionsTextFormat\"] = optionsTextFormat;\n exports[\"optionsTextMarkdown\"] = optionsTextMarkdown;\n exports[\"optionsTextOrgMode\"] = optionsTextOrgMode;\n exports[\"optionsTextPosLookup\"] = optionsTextPosLookup;\n exports[\"optionsTextText\"] = optionsTextText;\n exports[\"optionsTextTimestamp\"] = optionsTextTimestamp;\n exports[\"optionsTextYAML\"] = optionsTextYAML;\n})(PS);\n(function(exports) {\n /* globals exports */\n \"use strict\"; \n\n exports.infinity = Infinity;\n})(PS[\"Data.Number\"] = PS[\"Data.Number\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Number\"] = $PS[\"Data.Number\"] || {};\n var exports = $PS[\"Data.Number\"];\n var $foreign = $PS[\"Data.Number\"];\n exports[\"infinity\"] = $foreign.infinity;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"App.GeoLocOptions\"] = $PS[\"App.GeoLocOptions\"] || {};\n var exports = $PS[\"App.GeoLocOptions\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Number = $PS[\"Data.Number\"];\n var setTimeout = function (v) {\n return function (v1) {\n if (v < 0.0) {\n return Data_Maybe.Nothing.value;\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Just.create(Data_Newtype.wrap()({\n timeout: v,\n enableHighAccuracy: v1.enableHighAccuracy,\n maximumAge: v1.maximumAge\n }));\n };\n throw new Error(\"Failed pattern match at App.GeoLocOptions (line 119, column 1 - line 119, column 67): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }; \n var defaultGeoLocOptions = {\n enableHighAccuracy: false,\n timeout: Data_Number.infinity,\n maximumAge: 0.0\n };\n exports[\"defaultGeoLocOptions\"] = defaultGeoLocOptions;\n exports[\"setTimeout\"] = setTimeout;\n})(PS);\n(function(exports) {\n // SPDX-License-Identifier: GPL-3.0-or-later\n // Copyright (C) 2022 Roland Csaszar\n //\n // Project: notoy-pwa\n // File: GeoLocation.js\n // Date: 26.Jan.2022\n //\n // ==============================================================================\n /* eslint-disable no-undef */\n /* eslint-disable no-console */\n\n // eslint-disable-next-line strict\n \"use strict\"\n\n exports.supportsGeoLocationJS = supportsGeoLocationJS\n exports.currPositionAffJs = currPositionAffJs\n\n /**\n * Return `true`, if detecting the current position (GPS on mobile, network\n * routing, ...) is supported, `false` else.\n *\n * @returns `true`, if detecting the current position (GPS on mobile, network\n * routing, ...) is supported, `false` else.\n */ \n function supportsGeoLocationJS() {\n if (\"geolocation\" in navigator) {\n return true\n } else {\n return false\n }\n }\n\n /**\n * Return the result of waiting for the current geolocation wrapped in an\n * `Effect` (an additional function).\n *\n * Wrapped in a function to be able to call it as an `Effect` from PureScript.\n *\n * @param {GeoLocOptionsJS} options\n * @returns The awaited promise to get the current geolocation.\n */ \n function currPositionAffJs(options) {\n return function () {\n return promise(options)\n }\n }\n\n /**\n * Return the result of waiting for the current geolocation.\n *\n * @param {GeoLocOptionsJS} options\n * @returns The awaited promise to get the current geolocation.\n */ \n async function promise(options) {\n const pos = await new Promise(function (successCB, errorCB) {\n navigator.geolocation.getCurrentPosition(\n function (position) {\n successCB({\n latitude: position.coords.latitude,\n longitude: position.coords.longitude,\n altitude: position.coords.altitude,\n accuracy: position.coords.accuracy,\n altitudeAccuracy: position.coords.altitudeAccuracy,\n heading: position.coords.heading,\n speed: position.coords.speed,\n timestamp: position.timestamp,\n })\n },\n function (posErr) {\n errorCB(new Error(posErr.message))\n },\n options\n )\n })\n return pos\n }\n})(PS[\"App.Geolocation\"] = PS[\"App.Geolocation\"] || {});\n(function(exports) {\n \n\n exports.thenImpl = function(promise) {\n return function(errCB) {\n return function(succCB) {\n return function() {\n promise.then(succCB, errCB);\n };\n };\n };\n };\n})(PS[\"Control.Promise\"] = PS[\"Control.Promise\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Promise\"] = $PS[\"Control.Promise\"] || {};\n var exports = $PS[\"Control.Promise\"];\n var $foreign = $PS[\"Control.Promise\"];\n var Control_Alt = $PS[\"Control.Alt\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Monad_Except = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Foreign = $PS[\"Foreign\"]; \n var toAff$prime = function (customCoerce) {\n return function (p) {\n return Effect_Aff.makeAff(function (cb) {\n return Data_Functor.voidRight(Effect.functorEffect)(Data_Monoid.mempty(Effect_Aff.monoidCanceler))($foreign.thenImpl(p)(function ($1) {\n return cb(Data_Either.Left.create(customCoerce($1)))();\n })(function ($2) {\n return cb(Data_Either.Right.create($2))();\n }));\n });\n };\n };\n var coerce = function (fn) {\n return Data_Either.either(function (v) {\n return Effect_Exception.error(\"Promise failed, couldn't extract JS Error or String\");\n })(Control_Category.identity(Control_Category.categoryFn))(Control_Monad_Except.runExcept(Control_Alt.alt(Control_Monad_Except_Trans.altExceptT(Data_List_Types.semigroupNonEmptyList)(Data_Identity.monadIdentity))(Foreign.unsafeReadTagged(Data_Identity.monadIdentity)(\"Error\")(fn))(Data_Functor.map(Control_Monad_Except_Trans.functorExceptT(Data_Identity.functorIdentity))(Effect_Exception.error)(Foreign.readString(Data_Identity.monadIdentity)(fn)))));\n };\n var toAff = toAff$prime(coerce);\n var toAffE = function (f) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(f))(toAff);\n };\n exports[\"toAffE\"] = toAffE;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Untagged.TypeCheck\"] = $PS[\"Untagged.TypeCheck\"] || {};\n var exports = $PS[\"Untagged.TypeCheck\"];\n var Foreign = $PS[\"Foreign\"];\n var hasRuntimeType = function (dict) {\n return dict.hasRuntimeType;\n };\n var hasJsType = function (name) {\n return function (x) {\n return Foreign.typeOf(x) === name;\n };\n };\n var hasRuntimeTypeNumber = {\n hasRuntimeType: function (v) {\n return hasJsType(\"number\");\n }\n };\n exports[\"hasRuntimeType\"] = hasRuntimeType;\n exports[\"hasRuntimeTypeNumber\"] = hasRuntimeTypeNumber;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Untagged.Union\"] = $PS[\"Untagged.Union\"] || {};\n var exports = $PS[\"Untagged.Union\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Foreign = $PS[\"Foreign\"];\n var Type_Proxy = $PS[\"Type.Proxy\"];\n var Untagged_TypeCheck = $PS[\"Untagged.TypeCheck\"];\n var fromOneOf = function (dictInOneOf) {\n return function (dictHasRuntimeType) {\n return function (f) {\n var $46 = Untagged_TypeCheck.hasRuntimeType(dictHasRuntimeType)(Type_Proxy[\"Proxy\"].value)(Foreign.unsafeToForeign(f));\n if ($46) {\n return Data_Maybe.Just.create(f);\n };\n return Data_Maybe.Nothing.value;\n };\n };\n };\n exports[\"fromOneOf\"] = fromOneOf;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"App.Geolocation\"] = $PS[\"App.Geolocation\"] || {};\n var exports = $PS[\"App.Geolocation\"];\n var $foreign = $PS[\"App.Geolocation\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Promise = $PS[\"Control.Promise\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Untagged_TypeCheck = $PS[\"Untagged.TypeCheck\"];\n var Untagged_Union = $PS[\"Untagged.Union\"];\n var supportsGeoLocation = $foreign.supportsGeoLocationJS(Data_Unit.unit);\n var showLatitudeLongitude = function (v) {\n var addDegreeSign = function (num) {\n return Data_Show.show(Data_Show.showNumber)(num) + \"\\xb0\";\n };\n return \"(\" + (addDegreeSign(v.latitude) + (\", \" + (addDegreeSign(v.longitude) + \")\")));\n };\n var fromPosJS = function (pos) {\n return {\n latitude: pos.latitude,\n longitude: pos.longitude,\n altitude: Untagged_Union.fromOneOf()(Untagged_TypeCheck.hasRuntimeTypeNumber)(pos.altitude),\n accuracy: pos.accuracy,\n altitudeAccuracy: Untagged_Union.fromOneOf()(Untagged_TypeCheck.hasRuntimeTypeNumber)(pos.altitudeAccuracy),\n heading: Untagged_Union.fromOneOf()(Untagged_TypeCheck.hasRuntimeTypeNumber)(pos.heading),\n speed: Untagged_Union.fromOneOf()(Untagged_TypeCheck.hasRuntimeTypeNumber)(pos.speed),\n timestamp: pos.timestamp\n };\n };\n var getCurrentPosition = function (options) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Aff.attempt(Control_Promise.toAffE($foreign.currPositionAffJs(Data_Newtype.unwrap()(options)))))(function (res) {\n if (res instanceof Data_Either.Left) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(new Data_Either.Left(res.value0));\n };\n if (res instanceof Data_Either.Right) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Either.Right.create(fromPosJS(res.value0)));\n };\n throw new Error(\"Failed pattern match at App.Geolocation (line 203, column 3 - line 205, column 50): \" + [ res.constructor.name ]);\n });\n };\n exports[\"getCurrentPosition\"] = getCurrentPosition;\n exports[\"showLatitudeLongitude\"] = showLatitudeLongitude;\n exports[\"supportsGeoLocation\"] = supportsGeoLocation;\n})(PS);\n(function(exports) {\n // SPDX-License-Identifier: GPL-3.0-or-later\n // Copyright (C) 2022 Roland Csaszar\n //\n // Project: notoy-pwa\n // File: ShareTarget.js\n // Date: 16.Jan.2022\n //\n // ==============================================================================\n /* eslint-disable no-undef */\n /* eslint-disable no-console */\n\n // eslint-disable-next-line strict\n \"use strict\"\n\n exports.canShareJS = canShareJS\n exports.shareNoteJS = shareNoteJS\n\n /**\n * Return `true` if the current platform supports sharing, `false` else.\n *\n * @returns `true` if the platform supports sharing to other apps, `false`\n * else.\n */ \n function canShareJS() {\n return navigator.share\n }\n\n /**\n * Share the given note as a record `{ title, text, url }` to other apps.\n *\n * Promise has to be wrapped in a function to work with `Control.Promise`.\n *\n * @param {ShareTargetRecord} note the record `{ title, text, url }` of the note to share.\n */ \n function shareNoteJS({ title, text, url }) {\n return function () {\n return navigator.\n share({ title, text, url })\n .then(\n function () {\n console.log(\n `Successfully shared note '${title}, ${url}, ${text}'`\n )\n }\n // eslint-disable-next-line function-paren-newline\n )\n .catch(function (error) {\n console.log(`Error '${error}' sharing note`)\n })\n }\n }\n})(PS[\"App.ShareTarget\"] = PS[\"App.ShareTarget\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad.State.Class\"] = $PS[\"Control.Monad.State.Class\"] || {};\n var exports = $PS[\"Control.Monad.State.Class\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var state = function (dict) {\n return dict.state;\n };\n var modify_ = function (dictMonadState) {\n return function (f) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(Data_Unit.unit, f(s));\n });\n };\n };\n var modify = function (dictMonadState) {\n return function (f) {\n return state(dictMonadState)(function (s) {\n var s$prime = f(s);\n return new Data_Tuple.Tuple(s$prime, s$prime);\n });\n };\n };\n var get = function (dictMonadState) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(s, s);\n });\n };\n exports[\"get\"] = get;\n exports[\"modify\"] = modify;\n exports[\"modify_\"] = modify_;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.MediaType\"] = $PS[\"Data.MediaType\"] || {};\n var exports = $PS[\"Data.MediaType\"]; \n var MediaType = function (x) {\n return x;\n };\n exports[\"MediaType\"] = MediaType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Types.Generic\"] = $PS[\"Data.Argonaut.Types.Generic\"] || {};\n var exports = $PS[\"Data.Argonaut.Types.Generic\"];\n var defaultEncoding = {\n tagKey: \"tag\",\n valuesKey: \"values\",\n unwrapSingleArguments: false\n };\n exports[\"defaultEncoding\"] = defaultEncoding;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Generic.Rep\"] = $PS[\"Data.Generic.Rep\"] || {};\n var exports = $PS[\"Data.Generic.Rep\"]; \n var Inl = (function () {\n function Inl(value0) {\n this.value0 = value0;\n };\n Inl.create = function (value0) {\n return new Inl(value0);\n };\n return Inl;\n })();\n var Inr = (function () {\n function Inr(value0) {\n this.value0 = value0;\n };\n Inr.create = function (value0) {\n return new Inr(value0);\n };\n return Inr;\n })();\n var NoArguments = (function () {\n function NoArguments() {\n\n };\n NoArguments.value = new NoArguments();\n return NoArguments;\n })();\n var Argument = function (x) {\n return x;\n };\n var to = function (dict) {\n return dict.to;\n };\n var from = function (dict) {\n return dict.from;\n };\n exports[\"to\"] = to;\n exports[\"from\"] = from;\n exports[\"NoArguments\"] = NoArguments;\n exports[\"Inl\"] = Inl;\n exports[\"Inr\"] = Inr;\n exports[\"Argument\"] = Argument;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Decode.Generic\"] = $PS[\"Data.Argonaut.Decode.Generic\"] || {};\n var exports = $PS[\"Data.Argonaut.Decode.Generic\"];\n var Control_Alt = $PS[\"Control.Alt\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Argonaut_Decode_Error = $PS[\"Data.Argonaut.Decode.Error\"];\n var Data_Argonaut_Types_Generic = $PS[\"Data.Argonaut.Types.Generic\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Generic_Rep = $PS[\"Data.Generic.Rep\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Foreign_Object = $PS[\"Foreign.Object\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n var withTag = function (e) {\n return function (j) {\n return function (name) {\n var decodingErr = Data_Argonaut_Decode_Error.Named.create(name);\n return Control_Bind.bind(Data_Either.bindEither)(Data_Either.note(decodingErr(new Data_Argonaut_Decode_Error.TypeMismatch(\"Object\")))(Data_Argonaut_Core.toObject(j)))(function (jObj) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Either.note(decodingErr(new Data_Argonaut_Decode_Error.AtKey(e.tagKey, Data_Argonaut_Decode_Error.MissingValue.value)))(Foreign_Object.lookup(e.tagKey)(jObj)))(function (jTag) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Either.note(decodingErr(Data_Argonaut_Decode_Error.AtKey.create(e.tagKey)(new Data_Argonaut_Decode_Error.TypeMismatch(\"String\"))))(Data_Argonaut_Core.toString(jTag)))(function (tag) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Data_Either.bindEither)(Control_Applicative.when(Data_Either.applicativeEither)(tag !== name)(Data_Either.Left.create(decodingErr(Data_Argonaut_Decode_Error.AtKey.create(e.tagKey)(Data_Argonaut_Decode_Error.UnexpectedValue.create(Data_Argonaut_Core.fromString(tag)))))))(function () {\n return Control_Applicative.pure(Data_Either.applicativeEither)({\n tag: tag,\n decodingErr: decodingErr\n });\n });\n });\n });\n });\n };\n };\n };\n var withTagAndValues = function (e) {\n return function (j) {\n return function (name) {\n return Control_Bind.bind(Data_Either.bindEither)(withTag(e)(j)(name))(function (v) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Either.note(v.decodingErr(new Data_Argonaut_Decode_Error.TypeMismatch(\"Object\")))(Data_Argonaut_Core.toObject(j)))(function (jObj) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Either.note(v.decodingErr(new Data_Argonaut_Decode_Error.AtKey(e.valuesKey, Data_Argonaut_Decode_Error.MissingValue.value)))(Foreign_Object.lookup(e.valuesKey)(jObj)))(function (values) {\n return Control_Applicative.pure(Data_Either.applicativeEither)({\n tag: v.tag,\n values: values,\n decodingErr: v.decodingErr\n });\n });\n });\n });\n };\n };\n };\n var decodeRepWith = function (dict) {\n return dict.decodeRepWith;\n };\n var genericDecodeJsonWith = function (dictGeneric) {\n return function (dictDecodeRep) {\n return function (e) {\n var $64 = Data_Functor.map(Data_Either.functorEither)(Data_Generic_Rep.to(dictGeneric));\n var $65 = decodeRepWith(dictDecodeRep)(e);\n return function ($66) {\n return $64($65($66));\n };\n };\n };\n };\n var genericDecodeJson = function (dictGeneric) {\n return function (dictDecodeRep) {\n return genericDecodeJsonWith(dictGeneric)(dictDecodeRep)(Data_Argonaut_Types_Generic.defaultEncoding);\n };\n };\n var decodeRepSum = function (dictDecodeRep) {\n return function (dictDecodeRep1) {\n return {\n decodeRepWith: function (e) {\n return function (j) {\n return Control_Alt.alt(Data_Either.altEither)(Data_Functor.map(Data_Either.functorEither)(Data_Generic_Rep.Inl.create)(decodeRepWith(dictDecodeRep)(e)(j)))(Data_Functor.map(Data_Either.functorEither)(Data_Generic_Rep.Inr.create)(decodeRepWith(dictDecodeRep1)(e)(j)));\n };\n }\n };\n };\n };\n var decodeRepArgsNoArguments = {\n decodeRepArgs: function (js) {\n return new Data_Either.Right({\n init: Data_Generic_Rep.NoArguments.value,\n rest: js\n });\n }\n };\n var decodeRepArgsArgument = function (dictDecodeJson) {\n return {\n decodeRepArgs: function (js) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Either.note(new Data_Argonaut_Decode_Error.TypeMismatch(\"NonEmptyArray\"))(Data_Array.uncons(js)))(function (v) {\n return Data_Functor.map(Data_Either.functorEither)(function ($67) {\n return (function (v1) {\n return {\n init: v1,\n rest: v.tail\n };\n })(Data_Generic_Rep.Argument($67));\n })(Data_Argonaut_Decode_Class.decodeJson(dictDecodeJson)(v.head));\n });\n }\n };\n };\n var decodeRepArgs = function (dict) {\n return dict.decodeRepArgs;\n };\n var construct = function (dictDecodeRepArgs) {\n return function (e) {\n return function (valuesArray) {\n return function (decodingErr) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)(decodingErr)(decodeRepArgs(dictDecodeRepArgs)(valuesArray)))(function (v) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Data_Either.bindEither)(Control_Applicative.when(Data_Either.applicativeEither)(Data_Eq.notEq(Data_Eq.eqArray(Data_Argonaut_Core.eqJson))(v.rest)([ ]))(Data_Either.Left.create(decodingErr(Data_Argonaut_Decode_Error.AtKey.create(e.valuesKey)(new Data_Argonaut_Decode_Error.UnexpectedValue(Data_Argonaut_Core.fromArray(v.rest)))))))(function () {\n return Control_Applicative.pure(Data_Either.applicativeEither)(v.init);\n });\n });\n };\n };\n };\n };\n var decodeRepConstructorArg = function (dictIsSymbol) {\n return function (dictDecodeJson) {\n return {\n decodeRepWith: function (e) {\n return function (j) {\n var name = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n return Control_Bind.bind(Data_Either.bindEither)(withTagAndValues(e)(j)(name))(function (v) {\n if (e.unwrapSingleArguments) {\n return construct(decodeRepArgsArgument(dictDecodeJson))(e)([ v.values ])(v.decodingErr);\n };\n return Control_Bind.bind(Data_Either.bindEither)(Data_Either.note(v.decodingErr(Data_Argonaut_Decode_Error.AtKey.create(e.valuesKey)(new Data_Argonaut_Decode_Error.TypeMismatch(\"Array\"))))(Data_Argonaut_Core.toArray(v.values)))(function (valuesArray) {\n return construct(decodeRepArgsArgument(dictDecodeJson))(e)(valuesArray)(v.decodingErr);\n });\n });\n };\n }\n };\n };\n };\n var decodeRepConstructorNoArgs = function (dictIsSymbol) {\n return {\n decodeRepWith: function (e) {\n return function (j) {\n var name = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n return Control_Bind.bind(Data_Either.bindEither)(withTag(e)(j)(name))(function (v) {\n return construct(decodeRepArgsNoArguments)(e)([ ])(v.decodingErr);\n });\n };\n }\n };\n };\n exports[\"genericDecodeJson\"] = genericDecodeJson;\n exports[\"decodeRepSum\"] = decodeRepSum;\n exports[\"decodeRepConstructorNoArgs\"] = decodeRepConstructorNoArgs;\n exports[\"decodeRepConstructorArg\"] = decodeRepConstructorArg;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Encode.Encoders\"] = $PS[\"Data.Argonaut.Encode.Encoders\"] || {};\n var exports = $PS[\"Data.Argonaut.Encode.Encoders\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var encodeString = Data_Argonaut_Core.fromString;\n var encodeMaybe = function (encoder) {\n return function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Argonaut_Core.jsonNull;\n };\n if (v instanceof Data_Maybe.Just) {\n return encoder(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Argonaut.Encode.Encoders (line 31, column 23 - line 33, column 22): \" + [ v.constructor.name ]);\n };\n }; \n var encodeArray = function (encoder) {\n var $53 = Data_Functor.map(Data_Functor.functorArray)(encoder);\n return function ($54) {\n return Data_Argonaut_Core.fromArray($53($54));\n };\n };\n exports[\"encodeMaybe\"] = encodeMaybe;\n exports[\"encodeString\"] = encodeString;\n exports[\"encodeArray\"] = encodeArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Encode.Class\"] = $PS[\"Data.Argonaut.Encode.Class\"] || {};\n var exports = $PS[\"Data.Argonaut.Encode.Class\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Encode_Encoders = $PS[\"Data.Argonaut.Encode.Encoders\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Foreign_Object = $PS[\"Foreign.Object\"];\n var Record = $PS[\"Record\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n var gEncodeJsonNil = {\n gEncodeJson: function (v) {\n return function (v1) {\n return Foreign_Object.empty;\n };\n }\n };\n var gEncodeJson = function (dict) {\n return dict.gEncodeJson;\n };\n var encodeRecord = function (dictGEncodeJson) {\n return function (dictRowToList) {\n return {\n encodeJson: function (rec) {\n return Data_Argonaut_Core.fromObject(gEncodeJson(dictGEncodeJson)(rec)(Type_Proxy[\"Proxy\"].value));\n }\n };\n };\n };\n var encodeJsonJString = {\n encodeJson: Data_Argonaut_Encode_Encoders.encodeString\n };\n var encodeJson = function (dict) {\n return dict.encodeJson;\n };\n var encodeJsonArray = function (dictEncodeJson) {\n return {\n encodeJson: Data_Argonaut_Encode_Encoders.encodeArray(encodeJson(dictEncodeJson))\n };\n };\n var encodeJsonMaybe = function (dictEncodeJson) {\n return {\n encodeJson: Data_Argonaut_Encode_Encoders.encodeMaybe(encodeJson(dictEncodeJson))\n };\n };\n var gEncodeJsonCons = function (dictEncodeJson) {\n return function (dictGEncodeJson) {\n return function (dictIsSymbol) {\n return function (dictCons) {\n return {\n gEncodeJson: function (row) {\n return function (v) {\n return Foreign_Object.insert(Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value))(encodeJson(dictEncodeJson)(Record.get(dictIsSymbol)()(Type_Proxy[\"Proxy\"].value)(row)))(gEncodeJson(dictGEncodeJson)(row)(Type_Proxy[\"Proxy\"].value));\n };\n }\n };\n };\n };\n };\n };\n exports[\"encodeJson\"] = encodeJson;\n exports[\"encodeJsonMaybe\"] = encodeJsonMaybe;\n exports[\"encodeJsonJString\"] = encodeJsonJString;\n exports[\"encodeJsonArray\"] = encodeJsonArray;\n exports[\"encodeRecord\"] = encodeRecord;\n exports[\"gEncodeJsonNil\"] = gEncodeJsonNil;\n exports[\"gEncodeJsonCons\"] = gEncodeJsonCons;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Argonaut.Encode.Generic\"] = $PS[\"Data.Argonaut.Encode.Generic\"] || {};\n var exports = $PS[\"Data.Argonaut.Encode.Generic\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Encode_Class = $PS[\"Data.Argonaut.Encode.Class\"];\n var Data_Argonaut_Types_Generic = $PS[\"Data.Argonaut.Types.Generic\"];\n var Data_Generic_Rep = $PS[\"Data.Generic.Rep\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Foreign_Object = $PS[\"Foreign.Object\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n var encodeRepWith = function (dict) {\n return dict.encodeRepWith;\n };\n var genericEncodeJsonWith = function (dictGeneric) {\n return function (dictEncodeRep) {\n return function (e) {\n var $50 = encodeRepWith(dictEncodeRep)(e);\n var $51 = Data_Generic_Rep.from(dictGeneric);\n return function ($52) {\n return $50($51($52));\n };\n };\n };\n };\n var genericEncodeJson = function (dictGeneric) {\n return function (dictEncodeRep) {\n return genericEncodeJsonWith(dictGeneric)(dictEncodeRep)(Data_Argonaut_Types_Generic.defaultEncoding);\n };\n };\n var encodeRepSum = function (dictEncodeRep) {\n return function (dictEncodeRep1) {\n return {\n encodeRepWith: function (e) {\n return function (v) {\n if (v instanceof Data_Generic_Rep.Inl) {\n return encodeRepWith(dictEncodeRep)(e)(v.value0);\n };\n if (v instanceof Data_Generic_Rep.Inr) {\n return encodeRepWith(dictEncodeRep1)(e)(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Argonaut.Encode.Generic (line 36, column 1 - line 38, column 50): \" + [ e.constructor.name, v.constructor.name ]);\n };\n }\n };\n };\n };\n var encodeRepArgsNoArguments = {\n encodeRepArgs: function (v) {\n return [ ];\n }\n };\n var encodeRepArgsArgument = function (dictEncodeJson) {\n return {\n encodeRepArgs: function (v) {\n return [ Data_Argonaut_Encode_Class.encodeJson(dictEncodeJson)(v) ];\n }\n };\n };\n var encodeRepArgs = function (dict) {\n return dict.encodeRepArgs;\n };\n var encodeRepConstructor = function (dictIsSymbol) {\n return function (dictEncodeRepArgs) {\n return {\n encodeRepWith: function (e) {\n return function (v) {\n var values = (function () {\n var vs = encodeRepArgs(dictEncodeRepArgs)(v);\n if (e.unwrapSingleArguments) {\n if (vs.length === 1) {\n return vs[0];\n };\n return Data_Argonaut_Core.fromArray(vs);\n };\n return Data_Argonaut_Core.fromArray(vs);\n })();\n return Data_Argonaut_Core.fromObject(Foreign_Object.insert(e.tagKey)(Data_Argonaut_Core.fromString(Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value)))(Foreign_Object.insert(e.valuesKey)(values)(Foreign_Object.empty)));\n };\n }\n };\n };\n };\n exports[\"genericEncodeJson\"] = genericEncodeJson;\n exports[\"encodeRepSum\"] = encodeRepSum;\n exports[\"encodeRepConstructor\"] = encodeRepConstructor;\n exports[\"encodeRepArgsNoArguments\"] = encodeRepArgsNoArguments;\n exports[\"encodeRepArgsArgument\"] = encodeRepArgsArgument;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.regexImpl = function (left) {\n return function (right) {\n return function (s1) {\n return function (s2) {\n try {\n return right(new RegExp(s1, s2));\n } catch (e) {\n return left(e.message);\n }\n };\n };\n };\n };\n\n exports.test = function (r) {\n return function (s) {\n var lastIndex = r.lastIndex;\n var result = r.test(s);\n r.lastIndex = lastIndex;\n return result;\n };\n };\n\n exports._match = function (just) {\n return function (nothing) {\n return function (r) {\n return function (s) {\n var m = s.match(r);\n if (m == null || m.length === 0) {\n return nothing;\n } else {\n for (var i = 0; i < m.length; i++) {\n m[i] = m[i] == null ? nothing : just(m[i]);\n }\n return just(m);\n }\n };\n };\n };\n };\n\n exports.replace = function (r) {\n return function (s1) {\n return function (s2) {\n return s2.replace(r, s1);\n };\n };\n };\n})(PS[\"Data.String.Regex\"] = PS[\"Data.String.Regex\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.String.Regex\"] = $PS[\"Data.String.Regex\"] || {};\n var exports = $PS[\"Data.String.Regex\"];\n var $foreign = $PS[\"Data.String.Regex\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var renderFlags = function (v) {\n return (function () {\n if (v.value0.global) {\n return \"g\";\n };\n return \"\";\n })() + ((function () {\n if (v.value0.ignoreCase) {\n return \"i\";\n };\n return \"\";\n })() + ((function () {\n if (v.value0.multiline) {\n return \"m\";\n };\n return \"\";\n })() + ((function () {\n if (v.value0.dotAll) {\n return \"s\";\n };\n return \"\";\n })() + ((function () {\n if (v.value0.sticky) {\n return \"y\";\n };\n return \"\";\n })() + (function () {\n if (v.value0.unicode) {\n return \"u\";\n };\n return \"\";\n })()))));\n };\n var regex = function (s) {\n return function (f) {\n return $foreign.regexImpl(Data_Either.Left.create)(Data_Either.Right.create)(s)(renderFlags(f));\n };\n };\n var match = $foreign[\"_match\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n exports[\"regex\"] = regex;\n exports[\"match\"] = match;\n exports[\"test\"] = $foreign.test;\n exports[\"replace\"] = $foreign.replace;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.String.Regex.Flags\"] = $PS[\"Data.String.Regex.Flags\"] || {};\n var exports = $PS[\"Data.String.Regex.Flags\"]; \n var RegexFlags = (function () {\n function RegexFlags(value0) {\n this.value0 = value0;\n };\n RegexFlags.create = function (value0) {\n return new RegexFlags(value0);\n };\n return RegexFlags;\n })();\n var unicode = new RegexFlags({\n global: false,\n ignoreCase: false,\n multiline: false,\n dotAll: false,\n sticky: false,\n unicode: true\n });\n var ignoreCase = new RegexFlags({\n global: false,\n ignoreCase: true,\n multiline: false,\n dotAll: false,\n sticky: false,\n unicode: false\n });\n var global = new RegexFlags({\n global: true,\n ignoreCase: false,\n multiline: false,\n dotAll: false,\n sticky: false,\n unicode: false\n });\n exports[\"RegexFlags\"] = RegexFlags;\n exports[\"global\"] = global;\n exports[\"ignoreCase\"] = ignoreCase;\n exports[\"unicode\"] = unicode;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.String.Regex.Unsafe\"] = $PS[\"Data.String.Regex.Unsafe\"] || {};\n var exports = $PS[\"Data.String.Regex.Unsafe\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_String_Regex = $PS[\"Data.String.Regex\"];\n var Partial_Unsafe = $PS[\"Partial.Unsafe\"]; \n var unsafeRegex = function (s) {\n return function (f) {\n return Data_Either.either(Partial_Unsafe.unsafeCrashWith)(Control_Category.identity(Control_Category.categoryFn))(Data_String_Regex.regex(s)(f));\n };\n };\n exports[\"unsafeRegex\"] = unsafeRegex;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.urlImpl = function(just) {\n return function(nothing) {\n return function(base) {\n try {\n return just(new URL(base));\n } catch (TypeError) {\n return nothing;\n }\n }\n }\n };\n\n exports.toString = function(url) { return url.toString(); };\n exports.searchParams = function(url) { return url.searchParams; }\n})(PS[\"Web.URL\"] = PS[\"Web.URL\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.URL\"] = $PS[\"Web.URL\"] || {};\n var exports = $PS[\"Web.URL\"];\n var $foreign = $PS[\"Web.URL\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var fromAbsolute = function (base) {\n return $foreign.urlImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value)(base);\n }; \n var eqURL = {\n eq: function (a) {\n return function (b) {\n return $foreign.toString(a) === $foreign.toString(b);\n };\n }\n };\n exports[\"fromAbsolute\"] = fromAbsolute;\n exports[\"eqURL\"] = eqURL;\n exports[\"toString\"] = $foreign.toString;\n exports[\"searchParams\"] = $foreign.searchParams;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.URL\"] = $PS[\"Data.URL\"] || {};\n var exports = $PS[\"Data.URL\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Argonaut_Decode_Error = $PS[\"Data.Argonaut.Decode.Error\"];\n var Data_Argonaut_Encode_Class = $PS[\"Data.Argonaut.Encode.Class\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_String_Regex = $PS[\"Data.String.Regex\"];\n var Data_String_Regex_Flags = $PS[\"Data.String.Regex.Flags\"];\n var Data_String_Regex_Unsafe = $PS[\"Data.String.Regex.Unsafe\"];\n var Web_URL = $PS[\"Web.URL\"]; \n var quoteRegex = Data_String_Regex_Unsafe.unsafeRegex(\"(^\\\")|(\\\"$)\")(Data_String_Regex_Flags.global);\n var trimQuotes = Data_String_Regex.replace(quoteRegex)(\"\");\n var noteUrlFromString = function (s) {\n var v = Web_URL.fromAbsolute(trimQuotes(s));\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Maybe.Just) {\n return Data_Maybe.Just.create(Data_Newtype.wrap()(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.URL (line 70, column 23 - line 72, column 30): \" + [ v.constructor.name ]);\n };\n var noteUrlToString = function (url) {\n return Web_URL.toString(Data_Newtype.unwrap()(url));\n };\n var eqURL = Web_URL.eqURL;\n var encodeJSONURL = {\n encodeJson: function (url) {\n return Data_Argonaut_Encode_Class.encodeJson(Data_Argonaut_Encode_Class.encodeJsonJString)(noteUrlToString(url));\n }\n };\n var decodeJSONURL = {\n decodeJson: function (json) {\n return Control_Bind.bind(Data_Either.bindEither)(Data_Argonaut_Decode_Class.decodeJson(Data_Argonaut_Decode_Class.decodeJsonString)(json))(function (st) {\n return Data_Either.note(new Data_Argonaut_Decode_Error.TypeMismatch(\"URL\"))(noteUrlFromString(st));\n });\n }\n };\n exports[\"noteUrlFromString\"] = noteUrlFromString;\n exports[\"noteUrlToString\"] = noteUrlToString;\n exports[\"trimQuotes\"] = trimQuotes;\n exports[\"eqURL\"] = eqURL;\n exports[\"decodeJSONURL\"] = decodeJSONURL;\n exports[\"encodeJSONURL\"] = encodeJSONURL;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Array.NonEmpty\"] = $PS[\"Data.Array.NonEmpty\"] || {};\n var exports = $PS[\"Data.Array.NonEmpty\"];\n var Data_Array = $PS[\"Data.Array\"]; \n var toArray = function (v) {\n return v;\n }; \n var adaptAny = function (f) {\n return function ($78) {\n return f(toArray($78));\n };\n };\n var take = function (i) {\n return adaptAny(Data_Array.take(i));\n };\n exports[\"take\"] = take;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Helpers.General\"] = $PS[\"Helpers.General\"] || {};\n var exports = $PS[\"Helpers.General\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Argonaut_Decode_Error = $PS[\"Data.Argonaut.Decode.Error\"];\n var Data_Argonaut_Encode_Class = $PS[\"Data.Argonaut.Encode.Class\"];\n var Data_Argonaut_Parser = $PS[\"Data.Argonaut.Parser\"];\n var Data_Array_NonEmpty = $PS[\"Data.Array.NonEmpty\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_String_Regex = $PS[\"Data.String.Regex\"];\n var Data_String_Regex_Flags = $PS[\"Data.String.Regex.Flags\"];\n var Data_String_Regex_Unsafe = $PS[\"Data.String.Regex.Unsafe\"];\n var Data_URL = $PS[\"Data.URL\"];\n var regexURL = Data_String_Regex_Unsafe.unsafeRegex(\"(file|ftp|https?):\\\\/\\\\/[^\\\\s$.?#].[\\\\S]*[^\\\\s.]+\")(Data_String_Regex_Flags.ignoreCase);\n var regexNotAWord = Data_String_Regex_Unsafe.unsafeRegex(\"(\\\\P{L})+\")(new Data_String_Regex_Flags.RegexFlags({\n global: true,\n ignoreCase: true,\n unicode: true,\n dotAll: false,\n multiline: false,\n sticky: false\n }));\n var sanitizeFileName = Data_String_Regex.replace(regexNotAWord)(\"_\");\n var getFirstMatch = function (rex) {\n return function (text) {\n var firstMatch = (function () {\n var v = Data_String_Regex.match(rex)(text);\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Maybe.Just) {\n var v1 = Data_Array_NonEmpty.take(1)(v.value0);\n if (v1.length === 1) {\n return v1[0];\n };\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Helpers.General (line 86, column 16 - line 90, column 19): \" + [ v.constructor.name ]);\n })();\n return firstMatch;\n };\n };\n var getNoteURL = function (text) {\n var v = Data_String_Regex.test(regexURL)(text);\n if (!v) {\n return Data_Maybe.Nothing.value;\n };\n if (v) {\n return Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Data_URL.noteUrlFromString)(getFirstMatch(regexURL)(text));\n };\n throw new Error(\"Failed pattern match at Helpers.General (line 100, column 19 - line 102, column 60): \" + [ v.constructor.name ]);\n };\n var getURLString = function (text) {\n var v = Data_String_Regex.test(regexURL)(text);\n if (!v) {\n return Data_Maybe.Nothing.value;\n };\n if (v) {\n return getFirstMatch(regexURL)(text);\n };\n throw new Error(\"Failed pattern match at Helpers.General (line 112, column 21 - line 114, column 38): \" + [ v.constructor.name ]);\n }; \n var encodeToJsonString = function (dictEncodeJson) {\n var $26 = Data_Argonaut_Encode_Class.encodeJson(dictEncodeJson);\n return function ($27) {\n return Data_Argonaut_Core.stringify($26($27));\n };\n }; \n var decodeJsonFromString = function (dictDecodeJson) {\n return function (str) {\n var parsed = Data_Argonaut_Parser.jsonParser(str);\n if (parsed instanceof Data_Either.Left) {\n return new Data_Either.Left(parsed.value0);\n };\n if (parsed instanceof Data_Either.Right) {\n var v = Data_Argonaut_Decode_Class.decodeJson(dictDecodeJson)(parsed.value0);\n if (v instanceof Data_Either.Left) {\n return Data_Either.Left.create(\"JSON decode error: \" + (Data_Argonaut_Decode_Error.printJsonDecodeError(v.value0) + Data_Argonaut_Core.stringify(parsed.value0)));\n };\n if (v instanceof Data_Either.Right) {\n return new Data_Either.Right(v.value0);\n };\n throw new Error(\"Failed pattern match at Helpers.General (line 231, column 18 - line 233, column 27): \" + [ v.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Helpers.General (line 229, column 5 - line 233, column 27): \" + [ parsed.constructor.name ]);\n };\n };\n exports[\"decodeJsonFromString\"] = decodeJsonFromString;\n exports[\"encodeToJsonString\"] = encodeToJsonString;\n exports[\"getNoteURL\"] = getNoteURL;\n exports[\"getURLString\"] = getURLString;\n exports[\"sanitizeFileName\"] = sanitizeFileName;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Note\"] = $PS[\"Data.Note\"] || {};\n var exports = $PS[\"Data.Note\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Argonaut_Decode_Generic = $PS[\"Data.Argonaut.Decode.Generic\"];\n var Data_Argonaut_Encode_Class = $PS[\"Data.Argonaut.Encode.Class\"];\n var Data_Argonaut_Encode_Generic = $PS[\"Data.Argonaut.Encode.Generic\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_URL = $PS[\"Data.URL\"];\n var Helpers_General = $PS[\"Helpers.General\"];\n var KeyWordArray = function (x) {\n return x;\n };\n var showKeyWordArray = {\n show: function (v) {\n return Data_Array.foldl(function (acc) {\n return function (e) {\n var $29 = acc === \"\";\n if ($29) {\n return acc + e;\n };\n return acc + (\", \" + e);\n };\n })(\"\")(v);\n }\n };\n var showNote = {\n show: function (v) {\n var showFieldKeyWds = function (keywds) {\n if (keywds instanceof Data_Maybe.Just) {\n return \"Keywords: \" + (Data_Show.show(showKeyWordArray)(keywds.value0) + \" \");\n };\n if (keywds instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Data.Note (line 106, column 30 - line 108, column 20): \" + [ keywds.constructor.name ]);\n };\n var showField = function (name) {\n return function (val) {\n if (val instanceof Data_Maybe.Just) {\n return name + (\": \" + (val.value0 + \" \"));\n };\n if (val instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Data.Note (line 102, column 26 - line 104, column 20): \" + [ val.constructor.name ]);\n };\n };\n var titleString = showField(\"Title\")(v.title);\n var urlString = showField(\"URL\")(Data_Functor.map(Data_Maybe.functorMaybe)(Data_URL.noteUrlToString)(v.url));\n var shortString = showField(\"Short Description\")(v.shortDesc);\n var longString = showField(\"Detailed Description\")(v.longDesc);\n var locationString = showField(\"Location\")(v.location);\n var keywordString = showFieldKeyWds(v.keywords);\n return titleString + (urlString + (keywordString + (locationString + (shortString + longString))));\n }\n };\n var noteKeyId = \"Note\";\n var storeKeyNote = {\n key: function (v) {\n return noteKeyId;\n }\n };\n var keyWordArrayFromString = function (v) {\n if (v === \"\") {\n return Data_Maybe.Nothing.value;\n };\n if (Data_String_Common.trim(v) === \"\") {\n return Data_Maybe.Nothing.value;\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Just.create(KeyWordArray(Data_Functor.map(Data_Functor.functorArray)(Data_String_Common.trim)(Data_String_Common.split(\",\")(v))));\n };\n throw new Error(\"Failed pattern match at Data.Note (line 226, column 1 - line 226, column 55): \" + [ v.constructor.name ]);\n };\n var getURLAndText = function (text) {\n var urlSt = Helpers_General.getURLString(Data_URL.trimQuotes(text));\n var url = Helpers_General.getNoteURL(text);\n var trimmed = Data_Maybe.Just.create(Data_URL.trimQuotes(Data_String_Common.trim(text)));\n var txt = (function () {\n var v = Data_Eq.eq(Data_Maybe.eqMaybe(Data_Eq.eqString))(trimmed)(urlSt);\n if (v) {\n return Data_Maybe.Nothing.value;\n };\n return trimmed;\n })();\n return new Data_Tuple.Tuple(url, txt);\n };\n var genericNote = {\n to: function (x) {\n return x;\n },\n from: function (x) {\n return x;\n }\n };\n var genericKeyWordArray = {\n to: function (x) {\n return x;\n },\n from: function (x) {\n return x;\n }\n };\n var fromShared = function (v) {\n return function (v1) {\n return function (v2) {\n if (v instanceof Data_Maybe.Just && (v1 instanceof Data_Maybe.Nothing && v2 instanceof Data_Maybe.Nothing)) {\n var v3 = getURLAndText(v.value0);\n return {\n title: v3.value1,\n url: v3.value0,\n keywords: Data_Maybe.Nothing.value,\n location: Data_Maybe.Nothing.value,\n shortDesc: Data_Maybe.Nothing.value,\n longDesc: Data_Maybe.Nothing.value\n };\n };\n if (v instanceof Data_Maybe.Nothing && (v1 instanceof Data_Maybe.Nothing && v2 instanceof Data_Maybe.Just)) {\n var v3 = getURLAndText(v2.value0);\n return {\n title: Data_Maybe.Nothing.value,\n url: v3.value0,\n keywords: Data_Maybe.Nothing.value,\n location: Data_Maybe.Nothing.value,\n shortDesc: v3.value1,\n longDesc: Data_Maybe.Nothing.value\n };\n };\n if (v instanceof Data_Maybe.Just && (v1 instanceof Data_Maybe.Nothing && v2 instanceof Data_Maybe.Just)) {\n var v3 = getURLAndText(v2.value0);\n var v4 = getURLAndText(v.value0);\n var foundURL = (function () {\n if (v3.value0 instanceof Data_Maybe.Nothing) {\n return v4.value0;\n };\n return v3.value0;\n })();\n return {\n title: v4.value1,\n url: foundURL,\n keywords: Data_Maybe.Nothing.value,\n location: Data_Maybe.Nothing.value,\n shortDesc: v3.value1,\n longDesc: Data_Maybe.Nothing.value\n };\n };\n return {\n title: v,\n url: v1,\n keywords: Data_Maybe.Nothing.value,\n location: Data_Maybe.Nothing.value,\n shortDesc: v2,\n longDesc: Data_Maybe.Nothing.value\n };\n };\n };\n };\n var eqKeywordArray = {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq(Data_Eq.eqArray(Data_Eq.eqString))(x)(y);\n };\n }\n };\n var eqNote = {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq(Data_Maybe.eqMaybe(eqKeywordArray))(x.keywords)(y.keywords) && Data_Eq.eq(Data_Maybe.eqMaybe(Data_Eq.eqString))(x.location)(y.location) && Data_Eq.eq(Data_Maybe.eqMaybe(Data_Eq.eqString))(x.longDesc)(y.longDesc) && Data_Eq.eq(Data_Maybe.eqMaybe(Data_Eq.eqString))(x.shortDesc)(y.shortDesc) && Data_Eq.eq(Data_Maybe.eqMaybe(Data_Eq.eqString))(x.title)(y.title) && Data_Eq.eq(Data_Maybe.eqMaybe(Data_URL.eqURL))(x.url)(y.url);\n };\n }\n };\n var encodeJSONKeyWordArray = {\n encodeJson: Data_Argonaut_Encode_Generic.genericEncodeJson(genericKeyWordArray)(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"KeyWordArray\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsArgument(Data_Argonaut_Encode_Class.encodeJsonArray(Data_Argonaut_Encode_Class.encodeJsonJString))))\n };\n var encodeJSONNote = {\n encodeJson: Data_Argonaut_Encode_Generic.genericEncodeJson(genericNote)(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"Note\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsArgument(Data_Argonaut_Encode_Class.encodeRecord(Data_Argonaut_Encode_Class.gEncodeJsonCons(Data_Argonaut_Encode_Class.encodeJsonMaybe(encodeJSONKeyWordArray))(Data_Argonaut_Encode_Class.gEncodeJsonCons(Data_Argonaut_Encode_Class.encodeJsonMaybe(Data_Argonaut_Encode_Class.encodeJsonJString))(Data_Argonaut_Encode_Class.gEncodeJsonCons(Data_Argonaut_Encode_Class.encodeJsonMaybe(Data_Argonaut_Encode_Class.encodeJsonJString))(Data_Argonaut_Encode_Class.gEncodeJsonCons(Data_Argonaut_Encode_Class.encodeJsonMaybe(Data_Argonaut_Encode_Class.encodeJsonJString))(Data_Argonaut_Encode_Class.gEncodeJsonCons(Data_Argonaut_Encode_Class.encodeJsonMaybe(Data_Argonaut_Encode_Class.encodeJsonJString))(Data_Argonaut_Encode_Class.gEncodeJsonCons(Data_Argonaut_Encode_Class.encodeJsonMaybe(Data_URL.encodeJSONURL))(Data_Argonaut_Encode_Class.gEncodeJsonNil)({\n reflectSymbol: function () {\n return \"url\";\n }\n })())({\n reflectSymbol: function () {\n return \"title\";\n }\n })())({\n reflectSymbol: function () {\n return \"shortDesc\";\n }\n })())({\n reflectSymbol: function () {\n return \"longDesc\";\n }\n })())({\n reflectSymbol: function () {\n return \"location\";\n }\n })())({\n reflectSymbol: function () {\n return \"keywords\";\n }\n })())())))\n };\n var defaultNote = {\n title: Data_Maybe.Nothing.value,\n url: Data_Maybe.Nothing.value,\n keywords: Data_Maybe.Nothing.value,\n location: Data_Maybe.Nothing.value,\n shortDesc: Data_Maybe.Nothing.value,\n longDesc: Data_Maybe.Nothing.value\n };\n var decodeJSONKeyWordArray = {\n decodeJson: Data_Argonaut_Decode_Generic.genericDecodeJson(genericKeyWordArray)(Data_Argonaut_Decode_Generic.decodeRepConstructorArg({\n reflectSymbol: function () {\n return \"KeyWordArray\";\n }\n })(Data_Argonaut_Decode_Class.decodeArray(Data_Argonaut_Decode_Class.decodeJsonString)))\n };\n var decodeJSONNote = {\n decodeJson: Data_Argonaut_Decode_Generic.genericDecodeJson(genericNote)(Data_Argonaut_Decode_Generic.decodeRepConstructorArg({\n reflectSymbol: function () {\n return \"Note\";\n }\n })(Data_Argonaut_Decode_Class.decodeRecord(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldMaybe(decodeJSONKeyWordArray))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldMaybe(Data_Argonaut_Decode_Class.decodeJsonString))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldMaybe(Data_Argonaut_Decode_Class.decodeJsonString))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldMaybe(Data_Argonaut_Decode_Class.decodeJsonString))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldMaybe(Data_Argonaut_Decode_Class.decodeJsonString))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldMaybe(Data_URL.decodeJSONURL))(Data_Argonaut_Decode_Class.gDecodeJsonNil)({\n reflectSymbol: function () {\n return \"url\";\n }\n })()())({\n reflectSymbol: function () {\n return \"title\";\n }\n })()())({\n reflectSymbol: function () {\n return \"shortDesc\";\n }\n })()())({\n reflectSymbol: function () {\n return \"longDesc\";\n }\n })()())({\n reflectSymbol: function () {\n return \"location\";\n }\n })()())({\n reflectSymbol: function () {\n return \"keywords\";\n }\n })()())()))\n };\n exports[\"defaultNote\"] = defaultNote;\n exports[\"fromShared\"] = fromShared;\n exports[\"keyWordArrayFromString\"] = keyWordArrayFromString;\n exports[\"noteKeyId\"] = noteKeyId;\n exports[\"eqNote\"] = eqNote;\n exports[\"encodeJSONNote\"] = encodeJSONNote;\n exports[\"decodeJSONNote\"] = decodeJSONNote;\n exports[\"storeKeyNote\"] = storeKeyNote;\n exports[\"showNote\"] = showNote;\n exports[\"showKeyWordArray\"] = showKeyWordArray;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.intercalate = function (separator) {\n return function (xs) {\n var len = xs.length;\n if (len === 0) return \"\";\n\n var res = xs[0];\n for (var i = 1; i < len; i++) {\n res = res + separator + xs[i];\n }\n return res;\n };\n };\n})(PS[\"Data.Show.Generic\"] = PS[\"Data.Show.Generic\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Show.Generic\"] = $PS[\"Data.Show.Generic\"] || {};\n var exports = $PS[\"Data.Show.Generic\"];\n var $foreign = $PS[\"Data.Show.Generic\"];\n var Data_Generic_Rep = $PS[\"Data.Generic.Rep\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n var genericShowArgsNoArguments = {\n genericShowArgs: function (v) {\n return [ ];\n }\n };\n var genericShowArgsArgument = function (dictShow) {\n return {\n genericShowArgs: function (v) {\n return [ Data_Show.show(dictShow)(v) ];\n }\n };\n };\n var genericShowArgs = function (dict) {\n return dict.genericShowArgs;\n };\n var genericShowConstructor = function (dictGenericShowArgs) {\n return function (dictIsSymbol) {\n return {\n \"genericShow'\": function (v) {\n var ctor = Data_Symbol.reflectSymbol(dictIsSymbol)(Type_Proxy[\"Proxy\"].value);\n var v1 = genericShowArgs(dictGenericShowArgs)(v);\n if (v1.length === 0) {\n return ctor;\n };\n return \"(\" + ($foreign.intercalate(\" \")(Data_Semigroup.append(Data_Semigroup.semigroupArray)([ ctor ])(v1)) + \")\");\n }\n };\n };\n };\n var genericShow$prime = function (dict) {\n return dict[\"genericShow'\"];\n };\n var genericShowSum = function (dictGenericShow) {\n return function (dictGenericShow1) {\n return {\n \"genericShow'\": function (v) {\n if (v instanceof Data_Generic_Rep.Inl) {\n return genericShow$prime(dictGenericShow)(v.value0);\n };\n if (v instanceof Data_Generic_Rep.Inr) {\n return genericShow$prime(dictGenericShow1)(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Show.Generic (line 26, column 1 - line 28, column 40): \" + [ v.constructor.name ]);\n }\n };\n };\n };\n var genericShow = function (dictGeneric) {\n return function (dictGenericShow) {\n return function (x) {\n return genericShow$prime(dictGenericShow)(Data_Generic_Rep.from(dictGeneric)(x));\n };\n };\n };\n exports[\"genericShow\"] = genericShow;\n exports[\"genericShowArgsNoArguments\"] = genericShowArgsNoArguments;\n exports[\"genericShowSum\"] = genericShowSum;\n exports[\"genericShowConstructor\"] = genericShowConstructor;\n exports[\"genericShowArgsArgument\"] = genericShowArgsArgument;\n})(PS);\n(function($PS) {\n \n // SPDX-License-Identifier: GPL-3.0-or-later\n // Copyright (C) 2021 Roland Csaszar\n //\n // Project: notoy-pwa\n // File: Options.purs\n // Date: 23.Dec.2021\n //\n // =============================================================================\n // | Module Data.Options, the record holding the app's options and related\n // | functions.\n \"use strict\";\n $PS[\"Data.Options\"] = $PS[\"Data.Options\"] || {};\n var exports = $PS[\"Data.Options\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Argonaut_Decode_Generic = $PS[\"Data.Argonaut.Decode.Generic\"];\n var Data_Argonaut_Encode_Class = $PS[\"Data.Argonaut.Encode.Class\"];\n var Data_Argonaut_Encode_Generic = $PS[\"Data.Argonaut.Encode.Generic\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Generic_Rep = $PS[\"Data.Generic.Rep\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_Show_Generic = $PS[\"Data.Show.Generic\"]; \n\n /**\n * ------------------------------------------------------------------------------\n * | Whether to do a reverse geolocation lookup of the position or not.\n * |\n * | One of\n * | * ReverseGeolocation\n * | * NoReverseGeolocation\n */ \n var ReverseGeolocation = (function () {\n function ReverseGeolocation() {\n\n };\n ReverseGeolocation.value = new ReverseGeolocation();\n return ReverseGeolocation;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | Whether to do a reverse geolocation lookup of the position or not.\n * |\n * | One of\n * | * ReverseGeolocation\n * | * NoReverseGeolocation\n */ \n var NoReverseGeolocation = (function () {\n function NoReverseGeolocation() {\n\n };\n NoReverseGeolocation.value = new NoReverseGeolocation();\n return NoReverseGeolocation;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The format of the note.\n * |\n * | One of\n * | * `Markdown` - Markdown formatted text.\n * | * `OrgMode` - Emacs Org-Mode formatted text.\n * | * `Text` - plain text.\n */ \n var Markdown = (function () {\n function Markdown() {\n\n };\n Markdown.value = new Markdown();\n return Markdown;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The format of the note.\n * |\n * | One of\n * | * `Markdown` - Markdown formatted text.\n * | * `OrgMode` - Emacs Org-Mode formatted text.\n * | * `Text` - plain text.\n */ \n var OrgMode = (function () {\n function OrgMode() {\n\n };\n OrgMode.value = new OrgMode();\n return OrgMode;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The format of the note.\n * |\n * | One of\n * | * `Markdown` - Markdown formatted text.\n * | * `OrgMode` - Emacs Org-Mode formatted text.\n * | * `Text` - plain text.\n */ \n var Text = (function () {\n function Text() {\n\n };\n Text.value = new Text();\n return Text;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | Whether to automatically add a YAML front matter header to the note.\n * |\n * | One of:\n * | * NoYamlHeader\n * | * AddYamlHeader\n */ \n var NoYamlHeader = (function () {\n function NoYamlHeader() {\n\n };\n NoYamlHeader.value = new NoYamlHeader();\n return NoYamlHeader;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | Whether to automatically add a YAML front matter header to the note.\n * |\n * | One of:\n * | * NoYamlHeader\n * | * AddYamlHeader\n */ \n var AddYamlHeader = (function () {\n function AddYamlHeader() {\n\n };\n AddYamlHeader.value = new AddYamlHeader();\n return AddYamlHeader;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | Whether to automatically add the current date as timestamp to the note.\n * |\n * | One of:\n * | * NoDate\n * | * AddDate\n */ \n var NoDate = (function () {\n function NoDate() {\n\n };\n NoDate.value = new NoDate();\n return NoDate;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | Whether to automatically add the current date as timestamp to the note.\n * |\n * | One of:\n * | * NoDate\n * | * AddDate\n */ \n var AddDate = (function () {\n function AddDate() {\n\n };\n AddDate.value = new AddDate();\n return AddDate;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | Convert a `Boolean` to an `AddYamlHeader`.\n * |\n * | * `b` - If `b` is `true`, return `AddYamlHeader`. Else return `NoYamlHeader`.\n */ \n var yamlHeaderFromBool = function (v) {\n if (!v) {\n return NoYamlHeader.value;\n };\n if (v) {\n return AddYamlHeader.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 291, column 1 - line 291, column 47): \" + [ v.constructor.name ]);\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | The `StoreKeyId` of `Options`.\n */ \n var optionsKeyId = \"Options\";\n var storeKeyIdOptions = {\n key: function (v) {\n return optionsKeyId;\n }\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | MIME type of the various document formats.\n */ \n var mimeTypes = {\n markdown: \"text/markdown\",\n orgMode: \"text/org\",\n text: \"text/plain\"\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the MIME type for the given `Format`.\n * |\n * | - Markdown: \"text/markdown\"\n * | - OrgMode: \"text/org\"\n * | - Text: \"text/plain\"\n * |\n * | * `options` - The `Options` object with the format to use.\n */ \n var noteFileMime = function (v) {\n if (v.format instanceof Markdown) {\n return mimeTypes.markdown;\n };\n if (v.format instanceof OrgMode) {\n return mimeTypes.orgMode;\n };\n if (v.format instanceof Text) {\n return mimeTypes.text;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 321, column 1 - line 321, column 34): \" + [ v.constructor.name ]);\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Convert a `Boolean` to an `LookupLocation`.\n * |\n * | * `b` - If `b` is `true`, return `ReverseGeolocation`. Else return\n * | `NoReverseGeolocation`.\n */ \n var lookupLocationFromBool = function (v) {\n if (!v) {\n return NoReverseGeolocation.value;\n };\n if (v) {\n return ReverseGeolocation.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 281, column 1 - line 281, column 52): \" + [ v.constructor.name ]);\n };\n var genericOptions = {\n to: function (x) {\n return x;\n },\n from: function (x) {\n return x;\n }\n };\n var genericLookupLocation = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return ReverseGeolocation.value;\n };\n if (x instanceof Data_Generic_Rep.Inr) {\n return NoReverseGeolocation.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 189, column 1 - line 189, column 66): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof ReverseGeolocation) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof NoReverseGeolocation) {\n return new Data_Generic_Rep.Inr(Data_Generic_Rep.NoArguments.value);\n };\n throw new Error(\"Failed pattern match at Data.Options (line 189, column 1 - line 189, column 66): \" + [ x.constructor.name ]);\n }\n };\n var showLookupLocation = {\n show: Data_Show_Generic.genericShow(genericLookupLocation)(Data_Show_Generic.genericShowSum(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"ReverseGeolocation\";\n }\n }))(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"NoReverseGeolocation\";\n }\n })))\n };\n var genericFormat = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return Markdown.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && x.value0 instanceof Data_Generic_Rep.Inl) {\n return OrgMode.value;\n };\n if (x instanceof Data_Generic_Rep.Inr && x.value0 instanceof Data_Generic_Rep.Inr) {\n return Text.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 110, column 1 - line 110, column 50): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof Markdown) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof OrgMode) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value));\n };\n if (x instanceof Text) {\n return new Data_Generic_Rep.Inr(new Data_Generic_Rep.Inr(Data_Generic_Rep.NoArguments.value));\n };\n throw new Error(\"Failed pattern match at Data.Options (line 110, column 1 - line 110, column 50): \" + [ x.constructor.name ]);\n }\n };\n var showFormat = {\n show: Data_Show_Generic.genericShow(genericFormat)(Data_Show_Generic.genericShowSum(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"Markdown\";\n }\n }))(Data_Show_Generic.genericShowSum(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"OrgMode\";\n }\n }))(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"Text\";\n }\n }))))\n };\n var genericAddYamlHeader = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return NoYamlHeader.value;\n };\n if (x instanceof Data_Generic_Rep.Inr) {\n return AddYamlHeader.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 228, column 1 - line 228, column 64): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof NoYamlHeader) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof AddYamlHeader) {\n return new Data_Generic_Rep.Inr(Data_Generic_Rep.NoArguments.value);\n };\n throw new Error(\"Failed pattern match at Data.Options (line 228, column 1 - line 228, column 64): \" + [ x.constructor.name ]);\n }\n };\n var showAddYamlHeader = {\n show: Data_Show_Generic.genericShow(genericAddYamlHeader)(Data_Show_Generic.genericShowSum(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"NoYamlHeader\";\n }\n }))(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"AddYamlHeader\";\n }\n })))\n };\n var genericAddDate = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return NoDate.value;\n };\n if (x instanceof Data_Generic_Rep.Inr) {\n return AddDate.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 150, column 1 - line 150, column 52): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof NoDate) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof AddDate) {\n return new Data_Generic_Rep.Inr(Data_Generic_Rep.NoArguments.value);\n };\n throw new Error(\"Failed pattern match at Data.Options (line 150, column 1 - line 150, column 52): \" + [ x.constructor.name ]);\n }\n };\n var showAddDate = {\n show: Data_Show_Generic.genericShow(genericAddDate)(Data_Show_Generic.genericShowSum(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"NoDate\";\n }\n }))(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsNoArguments)({\n reflectSymbol: function () {\n return \"AddDate\";\n }\n })))\n };\n var showOptions = {\n show: Data_Show_Generic.genericShow(genericOptions)(Data_Show_Generic.genericShowConstructor(Data_Show_Generic.genericShowArgsArgument(Data_Show.showRecord()(Data_Show.showRecordFieldsCons({\n reflectSymbol: function () {\n return \"addDate\";\n }\n })(Data_Show.showRecordFieldsCons({\n reflectSymbol: function () {\n return \"addYaml\";\n }\n })(Data_Show.showRecordFieldsCons({\n reflectSymbol: function () {\n return \"format\";\n }\n })(Data_Show.showRecordFieldsCons({\n reflectSymbol: function () {\n return \"lookupLocation\";\n }\n })(Data_Show.showRecordFieldsNil)(showLookupLocation))(showFormat))(showAddYamlHeader))(showAddDate))))({\n reflectSymbol: function () {\n return \"Options\";\n }\n }))\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Convert a `String` to a `Format`.\n * |\n * | If the given string is not one of the `Format` options, `Text` is returned.\n * |\n * | * `st` - The string representation of the `Format` to convert to a `Format`.\n */ \n var formatFromString = function (st) {\n if (st === Data_Show.show(showFormat)(Markdown.value)) {\n return Markdown.value;\n };\n if (st === Data_Show.show(showFormat)(OrgMode.value)) {\n return OrgMode.value;\n };\n if (Data_Boolean.otherwise) {\n return Text.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 259, column 1 - line 259, column 37): \" + [ st.constructor.name ]);\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | File suffixes of the document formats.\n */ \n var fileSuffix = {\n markdown: \".md\",\n orgMode: \".org\",\n text: \".txt\"\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the file suffix for the given `Format`.\n * |\n * | - Markdown: `.md`\n * | - OrgMode: `.org`\n * | - Text: `.txt`\n * |\n * | * `options` - The `Options` object with the format to use.\n */ \n var noteFileSuffix = function (v) {\n if (v.format instanceof Markdown) {\n return fileSuffix.markdown;\n };\n if (v.format instanceof OrgMode) {\n return fileSuffix.orgMode;\n };\n if (v.format instanceof Text) {\n return fileSuffix.text;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 305, column 1 - line 305, column 36): \" + [ v.constructor.name ]);\n };\n var eqLookupLocation = {\n eq: function (x) {\n return function (y) {\n if (x instanceof ReverseGeolocation && y instanceof ReverseGeolocation) {\n return true;\n };\n if (x instanceof NoReverseGeolocation && y instanceof NoReverseGeolocation) {\n return true;\n };\n return false;\n };\n }\n };\n var eqFormat = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Markdown && y instanceof Markdown) {\n return true;\n };\n if (x instanceof OrgMode && y instanceof OrgMode) {\n return true;\n };\n if (x instanceof Text && y instanceof Text) {\n return true;\n };\n return false;\n };\n }\n };\n var eqAddYamlHeader = {\n eq: function (x) {\n return function (y) {\n if (x instanceof NoYamlHeader && y instanceof NoYamlHeader) {\n return true;\n };\n if (x instanceof AddYamlHeader && y instanceof AddYamlHeader) {\n return true;\n };\n return false;\n };\n }\n };\n var eqAddDate = {\n eq: function (x) {\n return function (y) {\n if (x instanceof NoDate && y instanceof NoDate) {\n return true;\n };\n if (x instanceof AddDate && y instanceof AddDate) {\n return true;\n };\n return false;\n };\n }\n };\n var eqOptions = {\n eq: function (x) {\n return function (y) {\n return Data_Eq.eq(eqAddDate)(x.addDate)(y.addDate) && Data_Eq.eq(eqAddYamlHeader)(x.addYaml)(y.addYaml) && Data_Eq.eq(eqFormat)(x.format)(y.format) && Data_Eq.eq(eqLookupLocation)(x.lookupLocation)(y.lookupLocation);\n };\n }\n };\n var encodeJsonLookupLocation = {\n encodeJson: Data_Argonaut_Encode_Generic.genericEncodeJson(genericLookupLocation)(Data_Argonaut_Encode_Generic.encodeRepSum(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"ReverseGeolocation\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments))(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"NoReverseGeolocation\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments)))\n };\n var encodeJsonFormat = {\n encodeJson: Data_Argonaut_Encode_Generic.genericEncodeJson(genericFormat)(Data_Argonaut_Encode_Generic.encodeRepSum(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"Markdown\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments))(Data_Argonaut_Encode_Generic.encodeRepSum(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"OrgMode\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments))(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"Text\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments))))\n };\n var encodeJsonAddYamlHeader = {\n encodeJson: Data_Argonaut_Encode_Generic.genericEncodeJson(genericAddYamlHeader)(Data_Argonaut_Encode_Generic.encodeRepSum(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"NoYamlHeader\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments))(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"AddYamlHeader\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments)))\n };\n var encodeJsonAddDate = {\n encodeJson: Data_Argonaut_Encode_Generic.genericEncodeJson(genericAddDate)(Data_Argonaut_Encode_Generic.encodeRepSum(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"NoDate\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments))(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"AddDate\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsNoArguments)))\n };\n var encodeJsonOptions = {\n encodeJson: Data_Argonaut_Encode_Generic.genericEncodeJson(genericOptions)(Data_Argonaut_Encode_Generic.encodeRepConstructor({\n reflectSymbol: function () {\n return \"Options\";\n }\n })(Data_Argonaut_Encode_Generic.encodeRepArgsArgument(Data_Argonaut_Encode_Class.encodeRecord(Data_Argonaut_Encode_Class.gEncodeJsonCons(encodeJsonAddDate)(Data_Argonaut_Encode_Class.gEncodeJsonCons(encodeJsonAddYamlHeader)(Data_Argonaut_Encode_Class.gEncodeJsonCons(encodeJsonFormat)(Data_Argonaut_Encode_Class.gEncodeJsonCons(encodeJsonLookupLocation)(Data_Argonaut_Encode_Class.gEncodeJsonNil)({\n reflectSymbol: function () {\n return \"lookupLocation\";\n }\n })())({\n reflectSymbol: function () {\n return \"format\";\n }\n })())({\n reflectSymbol: function () {\n return \"addYaml\";\n }\n })())({\n reflectSymbol: function () {\n return \"addDate\";\n }\n })())())))\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | The default `Options`, markdown format with the current date as timestamp,\n * | but no YAML front matter or reverse geolocation of the position.\n */ \n var defaultOptions = {\n format: Markdown.value,\n addDate: AddDate.value,\n lookupLocation: NoReverseGeolocation.value,\n addYaml: NoYamlHeader.value\n };\n var decodeJsonLookupLocation = {\n decodeJson: Data_Argonaut_Decode_Generic.genericDecodeJson(genericLookupLocation)(Data_Argonaut_Decode_Generic.decodeRepSum(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"ReverseGeolocation\";\n }\n }))(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"NoReverseGeolocation\";\n }\n })))\n };\n var decodeJsonFormat = {\n decodeJson: Data_Argonaut_Decode_Generic.genericDecodeJson(genericFormat)(Data_Argonaut_Decode_Generic.decodeRepSum(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"Markdown\";\n }\n }))(Data_Argonaut_Decode_Generic.decodeRepSum(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"OrgMode\";\n }\n }))(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"Text\";\n }\n }))))\n };\n var decodeJsonAddYamlHeader = {\n decodeJson: Data_Argonaut_Decode_Generic.genericDecodeJson(genericAddYamlHeader)(Data_Argonaut_Decode_Generic.decodeRepSum(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"NoYamlHeader\";\n }\n }))(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"AddYamlHeader\";\n }\n })))\n };\n var decodeJsonAddDate = {\n decodeJson: Data_Argonaut_Decode_Generic.genericDecodeJson(genericAddDate)(Data_Argonaut_Decode_Generic.decodeRepSum(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"NoDate\";\n }\n }))(Data_Argonaut_Decode_Generic.decodeRepConstructorNoArgs({\n reflectSymbol: function () {\n return \"AddDate\";\n }\n })))\n };\n var decodeJsonOptions = {\n decodeJson: Data_Argonaut_Decode_Generic.genericDecodeJson(genericOptions)(Data_Argonaut_Decode_Generic.decodeRepConstructorArg({\n reflectSymbol: function () {\n return \"Options\";\n }\n })(Data_Argonaut_Decode_Class.decodeRecord(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldId(decodeJsonAddDate))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldId(decodeJsonAddYamlHeader))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldId(decodeJsonFormat))(Data_Argonaut_Decode_Class.gDecodeJsonCons(Data_Argonaut_Decode_Class.decodeFieldId(decodeJsonLookupLocation))(Data_Argonaut_Decode_Class.gDecodeJsonNil)({\n reflectSymbol: function () {\n return \"lookupLocation\";\n }\n })()())({\n reflectSymbol: function () {\n return \"format\";\n }\n })()())({\n reflectSymbol: function () {\n return \"addYaml\";\n }\n })()())({\n reflectSymbol: function () {\n return \"addDate\";\n }\n })()())()))\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Convert a `Boolean` to an `AddDate`.\n * |\n * | * `b` - If `b` is `true`, return `AddDate`. Else return `NoDate`.\n */ \n var addDateFromBool = function (v) {\n if (!v) {\n return NoDate.value;\n };\n if (v) {\n return AddDate.value;\n };\n throw new Error(\"Failed pattern match at Data.Options (line 270, column 1 - line 270, column 38): \" + [ v.constructor.name ]);\n };\n exports[\"NoDate\"] = NoDate;\n exports[\"AddDate\"] = AddDate;\n exports[\"NoYamlHeader\"] = NoYamlHeader;\n exports[\"AddYamlHeader\"] = AddYamlHeader;\n exports[\"Markdown\"] = Markdown;\n exports[\"OrgMode\"] = OrgMode;\n exports[\"Text\"] = Text;\n exports[\"ReverseGeolocation\"] = ReverseGeolocation;\n exports[\"NoReverseGeolocation\"] = NoReverseGeolocation;\n exports[\"addDateFromBool\"] = addDateFromBool;\n exports[\"defaultOptions\"] = defaultOptions;\n exports[\"formatFromString\"] = formatFromString;\n exports[\"lookupLocationFromBool\"] = lookupLocationFromBool;\n exports[\"noteFileMime\"] = noteFileMime;\n exports[\"noteFileSuffix\"] = noteFileSuffix;\n exports[\"optionsKeyId\"] = optionsKeyId;\n exports[\"yamlHeaderFromBool\"] = yamlHeaderFromBool;\n exports[\"eqOptions\"] = eqOptions;\n exports[\"decodeJsonOptions\"] = decodeJsonOptions;\n exports[\"encodeJsonOptions\"] = encodeJsonOptions;\n exports[\"showOptions\"] = showOptions;\n exports[\"storeKeyIdOptions\"] = storeKeyIdOptions;\n exports[\"eqFormat\"] = eqFormat;\n exports[\"showFormat\"] = showFormat;\n exports[\"eqAddDate\"] = eqAddDate;\n exports[\"eqLookupLocation\"] = eqLookupLocation;\n exports[\"eqAddYamlHeader\"] = eqAddYamlHeader;\n})(PS);\n(function($PS) {\n \n // SPDX-License-Identifier: GPL-3.0-or-later\n // Copyright (C) 2022 Roland Csaszar\n //\n // Project: notoy-pwa\n // File: NoteContent.purs\n // Date: 17.Jan.2022\n //\n // ==============================================================================\n // | Module Data.NoteContent, contains everything to generate a formatted note\n // | from `Note` and `Options` instances.\n \"use strict\";\n $PS[\"Data.NoteContent\"] = $PS[\"Data.NoteContent\"] || {};\n var exports = $PS[\"Data.NoteContent\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Options = $PS[\"Data.Options\"];\n var Data_String_Regex = $PS[\"Data.String.Regex\"];\n var Data_String_Regex_Flags = $PS[\"Data.String.Regex.Flags\"];\n var Data_String_Regex_Unsafe = $PS[\"Data.String.Regex.Unsafe\"];\n var Data_URL = $PS[\"Data.URL\"]; \n\n /**\n * ------------------------------------------------------------------------------\n * | Regex to match consecutive whitespace.\n */ \n var whitespaceToUnderscoreRex = Data_String_Regex_Unsafe.unsafeRegex(\"\\\\s+\")(Data_String_Regex_Flags.unicode);\n\n /**\n * ------------------------------------------------------------------------------\n * | Replace all whitespace in the string with an underscore `_`.\n */ \n var whitespaceToUnderscore = Data_Functor.map(Data_Functor.functorArray)(function (e) {\n return Data_String_Regex.replace(whitespaceToUnderscoreRex)(\"_\")(e);\n });\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the URL of the note as a string, depending on the format of the note.\n */ \n var urlStr = function (v) {\n return function (v1) {\n if (v.url instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n if (v.url instanceof Data_Maybe.Just && v1.format instanceof Data_Options.Markdown) {\n var urlSt = Data_URL.noteUrlToString(v.url.value0);\n var title = (function () {\n if (v.title instanceof Data_Maybe.Nothing) {\n return urlSt;\n };\n if (v.title instanceof Data_Maybe.Just) {\n return v.title.value0;\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 219, column 11 - line 221, column 16): \" + [ v.title.constructor.name ]);\n })();\n return \"[\" + (title + (\"](\" + (urlSt + \")\\x0a\")));\n };\n if (v.url instanceof Data_Maybe.Just && v1.format instanceof Data_Options.OrgMode) {\n var urlSt = Data_URL.noteUrlToString(v.url.value0);\n var title = (function () {\n if (v.title instanceof Data_Maybe.Nothing) {\n return urlSt;\n };\n if (v.title instanceof Data_Maybe.Just) {\n return v.title.value0;\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 234, column 11 - line 236, column 16): \" + [ v.title.constructor.name ]);\n })();\n return \"[[\" + (urlSt + (\"][\" + (title + \"]]\\x0a\")));\n };\n if (v.url instanceof Data_Maybe.Just && v1.format instanceof Data_Options.Text) {\n var urlSt = Data_URL.noteUrlToString(v.url.value0);\n return urlSt + \"\\x0a\";\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 205, column 1 - line 205, column 33): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the title of the note as a string.\n * |\n * | If the title is `Nothing`, \"Title\" is returned.\n */ \n var titleStrFromNote = function (v) {\n return Data_Maybe.fromMaybe(\"Title\")(v.title);\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the short description of the note as a string.\n */ \n var shortDescStr = function (v) {\n if (v.shortDesc instanceof Data_Maybe.Just) {\n return v.shortDesc.value0 + \"\\x0a\";\n };\n if (v.shortDesc instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 197, column 1 - line 197, column 31): \" + [ v.constructor.name ]);\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the detailed description of the note as a string.\n */ \n var longDescStr = function (v) {\n if (v.longDesc instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n if (v.longDesc instanceof Data_Maybe.Just) {\n return v.longDesc.value0 + \"\\x0a\";\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 245, column 1 - line 245, column 30): \" + [ v.constructor.name ]);\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the device's position as a string.\n */ \n var locationStr = function (v) {\n return function (v1) {\n if (v.location instanceof Data_Maybe.Nothing) {\n return \"\\x0a\\x0a\";\n };\n if (v.location instanceof Data_Maybe.Just && v1.format instanceof Data_Options.Markdown) {\n return v.location.value0 + \"\\x0a\\x0a\";\n };\n if (v.location instanceof Data_Maybe.Just && v1.format instanceof Data_Options.OrgMode) {\n return v.location.value0 + \"\\x0a\\x0a\";\n };\n if (v.location instanceof Data_Maybe.Just && v1.format instanceof Data_Options.Text) {\n return v.location.value0 + \"\\x0a\\x0a\";\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 185, column 1 - line 185, column 41): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the keywords as a YAML list, with whitespace replaced by an underscore\n * | `_`.\n */ \n var keywordsToYaml = function (v) {\n return Data_Array.foldr(function (e) {\n return function (acc) {\n return \"\\x0a - \" + (e + acc);\n };\n })(\"\")(whitespaceToUnderscore(v));\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the YAML front matter header as a string.\n */ \n var yamlStrFromNote = function (v) {\n return function (v1) {\n return function (v2) {\n if (v1.addYaml instanceof Data_Options.AddYamlHeader) {\n var keywords = Data_Maybe.fromMaybe([ ])(v.keywords);\n return \"---\\x0atitle: \" + (Data_Maybe.fromMaybe(\"\")(v.title) + (\"\\x0aauthor:\\x0a -\\x0akeywords:\" + (keywordsToYaml(keywords) + (\"\\x0atags:\" + (keywordsToYaml(keywords) + (\"\\x0alang: \" + (v2 + \"\\x0a---\\x0a\\x0a\")))))));\n };\n if (v1.addYaml instanceof Data_Options.NoYamlHeader) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 120, column 1 - line 120, column 55): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the keywords as Org-Mode formatted keywords, that is, as double colon\n * | `:` separated list of keywords, where whitespace has been replaced by an\n * | underscore `_`.\n */ \n var keywordsToOrgMode = function (v) {\n return Data_Array.foldr(function (e) {\n return function (acc) {\n return \":\" + (e + acc);\n };\n })(\":\")(whitespaceToUnderscore(v));\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the keywords as a comma separated list of tags with a hash sign `#` as\n * | prefix of each keyword and all whitespace in the keywords replaced by one\n * | underscore `_`.\n */ \n var keywordsAddHash = function (v) {\n var sanitized = whitespaceToUnderscore(v);\n var rest = Data_Maybe.fromMaybe([ ])(Data_Array.tail(sanitized));\n var frst = Data_Maybe.fromMaybe(\"\")(Data_Array.head(sanitized));\n return \"#\" + (frst + Data_Array.foldr(function (e) {\n return function (acc) {\n return \", #\" + (e + acc);\n };\n })(\"\")(rest));\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the keywords as a comma separated list of tags with a hash sign `#` as\n * | prefix of each keyword and all whitespace in the keywords replaced by one\n * | underscore `_`.\n */ \n var keywordStr = function (v) {\n return function (v1) {\n if (v.keywords instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n if (v.keywords instanceof Data_Maybe.Just && v1.format instanceof Data_Options.Markdown) {\n return \"Keywords: \" + (keywordsAddHash(v.keywords.value0) + \"\\x0a\");\n };\n if (v.keywords instanceof Data_Maybe.Just && v1.format instanceof Data_Options.OrgMode) {\n return \"Keywords: \" + (keywordsAddHash(v.keywords.value0) + \"\\x0a\");\n };\n if (v.keywords instanceof Data_Maybe.Just && v1.format instanceof Data_Options.Text) {\n return \"Keywords: \" + (keywordsAddHash(v.keywords.value0) + \"\\x0a\");\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 149, column 1 - line 149, column 40): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return the date timestamp as a string, suitable for the note format used.\n * |\n * | If the format is `OrgMode`, the date is returned in angle brackets ``.\n */ \n var dateStrFromOptions = function (v) {\n return function (v1) {\n if (v.addDate instanceof Data_Options.AddDate && v.format instanceof Data_Options.OrgMode) {\n return \"<\" + (v1 + \"> \");\n };\n if (v.addDate instanceof Data_Options.AddDate) {\n return v1 + \" \";\n };\n if (v.addDate instanceof Data_Options.NoDate) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 172, column 1 - line 172, column 50): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return a markdown formatted note.\n * |\n * | * `options` - The `Options` to use to format the note.\n * | * `note` - The `Note` to format.\n * | * `timestamp` - The timestamp to add to the note if the option is set.\n * | * `language` - The language this note is written in, used for the YAML front\n * | matter header (if enabled in the options).\n */ \n var noteContentMarkdown = function (options) {\n return function (note) {\n return function (timestamp) {\n return function (language) {\n return yamlStrFromNote(note)(options)(language) + (\"# \" + (titleStrFromNote(note) + (\"\\x0a\\x0a\" + (keywordStr(note)(options) + (dateStrFromOptions(options)(timestamp) + (locationStr(note)(options) + (shortDescStr(note) + (urlStr(note)(options) + longDescStr(note)))))))));\n };\n };\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return an Org-Mode formatted note.\n * |\n * | * `options` - The `Options` to use to format the note.\n * | * `note` - The `Note` to format.\n * | * `timestamp` - The timestamp to add to the note if the option is set.\n * | * `language` - The language this note is written in. Not used, as Org-Mode\n * | has it's own header.\n */ \n var noteContentOrgMode = function (options) {\n return function (note) {\n return function (timestamp) {\n return function (v) {\n var keywords = Data_Maybe.fromMaybe([ ])(note.keywords);\n return \"#+title: \" + (titleStrFromNote(note) + (\"\\x0a#+date: \" + (timestamp + (\"\\x0a#+FILETAGS\" + (\"\\x0a\\x0a\" + (\"* \" + (titleStrFromNote(note) + (\"\\x09\\x09\" + (keywordsToOrgMode(keywords) + (\"\\x0a\\x0a\" + (keywordStr(note)(options) + (dateStrFromOptions(options)(timestamp) + (locationStr(note)(options) + (shortDescStr(note) + (urlStr(note)(options) + longDescStr(note))))))))))))))));\n };\n };\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return a plain text formatted note.\n * |\n * | * `options` - The `Options` to use to format the note.\n * | * `note` - The `Note` to format.\n * | * `timestamp` - The timestamp to add to the note if the option is set.\n * | * `language` - The language this note is written in, used for the YAML front\n * | matter header (if enabled in the options).\n */ \n var noteContentText = function (options) {\n return function (note) {\n return function (timestamp) {\n return function (language) {\n return yamlStrFromNote(note)(options)(language) + (titleStrFromNote(note) + (\"\\x0a\\x0a\" + (keywordStr(note)(options) + (dateStrFromOptions(options)(timestamp) + (locationStr(note)(options) + (shortDescStr(note) + (urlStr(note)(options) + longDescStr(note))))))));\n };\n };\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Return a formatted note depending on the options set in `options`.\n * |\n * | * `options` - The `Options` to use to format the note.\n * | * `note` - The `Note` to format.\n * | * `timestamp` - The timestamp to add to the note if the option is set.\n * | * `language` - The language this note is written in, used for the YAML front\n * | matter header (if enabled in the options).\n */ \n var noteContentString = function (v) {\n if (v.format instanceof Data_Options.Markdown) {\n return noteContentMarkdown(v);\n };\n if (v.format instanceof Data_Options.OrgMode) {\n return noteContentOrgMode(v);\n };\n if (v.format instanceof Data_Options.Text) {\n return noteContentText(v);\n };\n throw new Error(\"Failed pattern match at Data.NoteContent (line 34, column 1 - line 34, column 67): \" + [ v.constructor.name ]);\n };\n exports[\"noteContentString\"] = noteContentString;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.List\"] = $PS[\"Data.List\"] || {};\n var exports = $PS[\"Data.List\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var reverse = (function () {\n var go = function ($copy_acc) {\n return function ($copy_v) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, v) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return acc;\n };\n if (v instanceof Data_List_Types.Cons) {\n $tco_var_acc = new Data_List_Types.Cons(v.value0, acc);\n $copy_v = v.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 372, column 3 - line 372, column 19): \" + [ acc.constructor.name, v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_v);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n })();\n var $$null = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return true;\n };\n return false;\n };\n exports[\"null\"] = $$null;\n exports[\"reverse\"] = reverse;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.CatQueue\"] = $PS[\"Data.CatQueue\"] || {};\n var exports = $PS[\"Data.CatQueue\"];\n var Data_List = $PS[\"Data.List\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var CatQueue = (function () {\n function CatQueue(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CatQueue.create = function (value0) {\n return function (value1) {\n return new CatQueue(value0, value1);\n };\n };\n return CatQueue;\n })();\n var uncons = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value0 instanceof Data_List_Types.Nil && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v.value0 instanceof Data_List_Types.Nil) {\n $copy_v = new CatQueue(Data_List.reverse(v.value1), Data_List_Types.Nil.value);\n return;\n };\n if (v.value0 instanceof Data_List_Types.Cons) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value0.value0, new CatQueue(v.value0.value1, v.value1)));\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 83, column 1 - line 83, column 63): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n var snoc = function (v) {\n return function (a) {\n return new CatQueue(v.value0, new Data_List_Types.Cons(a, v.value1));\n };\n };\n var $$null = function (v) {\n if (v.value0 instanceof Data_List_Types.Nil && v.value1 instanceof Data_List_Types.Nil) {\n return true;\n };\n return false;\n };\n var empty = new CatQueue(Data_List_Types.Nil.value, Data_List_Types.Nil.value);\n exports[\"empty\"] = empty;\n exports[\"null\"] = $$null;\n exports[\"snoc\"] = snoc;\n exports[\"uncons\"] = uncons;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.CatList\"] = $PS[\"Data.CatList\"] || {};\n var exports = $PS[\"Data.CatList\"];\n var Data_CatQueue = $PS[\"Data.CatQueue\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var CatNil = (function () {\n function CatNil() {\n\n };\n CatNil.value = new CatNil();\n return CatNil;\n })();\n var CatCons = (function () {\n function CatCons(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CatCons.create = function (value0) {\n return function (value1) {\n return new CatCons(value0, value1);\n };\n };\n return CatCons;\n })();\n var link = function (v) {\n return function (v1) {\n if (v instanceof CatNil) {\n return v1;\n };\n if (v1 instanceof CatNil) {\n return v;\n };\n if (v instanceof CatCons) {\n return new CatCons(v.value0, Data_CatQueue.snoc(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 109, column 1 - line 109, column 54): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n var foldr = function (k) {\n return function (b) {\n return function (q) {\n var foldl = function ($copy_v) {\n return function ($copy_c) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_var_c = $copy_c;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, c, v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return c;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n $tco_var_v = v;\n $tco_var_c = v(c)(v1.value0);\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 125, column 3 - line 125, column 59): \" + [ v.constructor.name, c.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_c, $copy_v1);\n };\n return $tco_result;\n };\n };\n };\n var go = function ($copy_xs) {\n return function ($copy_ys) {\n var $tco_var_xs = $copy_xs;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(xs, ys) {\n var v = Data_CatQueue.uncons(xs);\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done1 = true;\n return foldl(function (x) {\n return function (i) {\n return i(x);\n };\n })(b)(ys);\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_xs = v.value0.value1;\n $copy_ys = new Data_List_Types.Cons(k(v.value0.value0), ys);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 121, column 14 - line 123, column 67): \" + [ v.constructor.name ]);\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_xs, $copy_ys);\n };\n return $tco_result;\n };\n };\n return go(q)(Data_List_Types.Nil.value);\n };\n };\n };\n var uncons = function (v) {\n if (v instanceof CatNil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof CatCons) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value0, (function () {\n var $45 = Data_CatQueue[\"null\"](v.value1);\n if ($45) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v.value1);\n })()));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 100, column 1 - line 100, column 61): \" + [ v.constructor.name ]);\n };\n var empty = CatNil.value;\n var append = link;\n var semigroupCatList = {\n append: append\n };\n var snoc = function (cat) {\n return function (a) {\n return append(cat)(new CatCons(a, Data_CatQueue.empty));\n };\n };\n exports[\"empty\"] = empty;\n exports[\"snoc\"] = snoc;\n exports[\"uncons\"] = uncons;\n exports[\"semigroupCatList\"] = semigroupCatList;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad.Free\"] = $PS[\"Control.Monad.Free\"] || {};\n var exports = $PS[\"Control.Monad.Free\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Data_CatList = $PS[\"Data.CatList\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Free = (function () {\n function Free(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Free.create = function (value0) {\n return function (value1) {\n return new Free(value0, value1);\n };\n };\n return Free;\n })();\n var Return = (function () {\n function Return(value0) {\n this.value0 = value0;\n };\n Return.create = function (value0) {\n return new Return(value0);\n };\n return Return;\n })();\n var Bind = (function () {\n function Bind(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Bind.create = function (value0) {\n return function (value1) {\n return new Bind(value0, value1);\n };\n };\n return Bind;\n })();\n var toView = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n var runExpF = function (v2) {\n return v2;\n };\n var concatF = function (v2) {\n return function (r) {\n return new Free(v2.value0, Data_Semigroup.append(Data_CatList.semigroupCatList)(v2.value1)(r));\n };\n };\n if (v.value0 instanceof Return) {\n var v2 = Data_CatList.uncons(v.value1);\n if (v2 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return new Return(v.value0.value0);\n };\n if (v2 instanceof Data_Maybe.Just) {\n $copy_v = concatF(runExpF(v2.value0.value0)(v.value0.value0))(v2.value0.value1);\n return;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 227, column 7 - line 231, column 64): \" + [ v2.constructor.name ]);\n };\n if (v.value0 instanceof Bind) {\n $tco_done = true;\n return new Bind(v.value0.value0, function (a) {\n return concatF(v.value0.value1(a))(v.value1);\n });\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 225, column 3 - line 233, column 56): \" + [ v.value0.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n var fromView = function (f) {\n return new Free(f, Data_CatList.empty);\n };\n var freeMonad = {\n Applicative0: function () {\n return freeApplicative;\n },\n Bind1: function () {\n return freeBind;\n }\n };\n var freeFunctor = {\n map: function (k) {\n return function (f) {\n return Control_Bind.bindFlipped(freeBind)((function () {\n var $119 = Control_Applicative.pure(freeApplicative);\n return function ($120) {\n return $119(k($120));\n };\n })())(f);\n };\n }\n };\n var freeBind = {\n bind: function (v) {\n return function (k) {\n return new Free(v.value0, Data_CatList.snoc(v.value1)(k));\n };\n },\n Apply0: function () {\n return freeApply;\n }\n };\n var freeApply = {\n apply: Control_Monad.ap(freeMonad),\n Functor0: function () {\n return freeFunctor;\n }\n };\n var freeApplicative = {\n pure: function ($121) {\n return fromView(Return.create($121));\n },\n Apply0: function () {\n return freeApply;\n }\n };\n var liftF = function (f) {\n return fromView(new Bind(f, (function () {\n var $122 = Control_Applicative.pure(freeApplicative);\n return function ($123) {\n return $122($123);\n };\n })()));\n };\n var foldFree = function (dictMonadRec) {\n return function (k) {\n var go = function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_Rec_Class.Done.create)(Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(v.value0));\n };\n if (v instanceof Bind) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(function ($135) {\n return Control_Monad_Rec_Class.Loop.create(v.value1($135));\n })(k(v.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 158, column 10 - line 160, column 37): \" + [ v.constructor.name ]);\n };\n return Control_Monad_Rec_Class.tailRecM(dictMonadRec)(go);\n };\n };\n exports[\"liftF\"] = liftF;\n exports[\"foldFree\"] = foldFree;\n exports[\"freeFunctor\"] = freeFunctor;\n exports[\"freeBind\"] = freeBind;\n exports[\"freeApplicative\"] = freeApplicative;\n exports[\"freeMonad\"] = freeMonad;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Aff.Class\"] = $PS[\"Effect.Aff.Class\"] || {};\n var exports = $PS[\"Effect.Aff.Class\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Effect_Aff = $PS[\"Effect.Aff\"]; \n var monadAffAff = {\n liftAff: Control_Category.identity(Control_Category.categoryFn),\n MonadEffect0: function () {\n return Effect_Aff.monadEffectAff;\n }\n };\n var liftAff = function (dict) {\n return dict.liftAff;\n };\n exports[\"liftAff\"] = liftAff;\n exports[\"monadAffAff\"] = monadAffAff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Map.Internal\"] = $PS[\"Data.Map.Internal\"] || {};\n var exports = $PS[\"Data.Map.Internal\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Ordering = $PS[\"Data.Ordering\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var Leaf = (function () {\n function Leaf() {\n\n };\n Leaf.value = new Leaf();\n return Leaf;\n })();\n var Two = (function () {\n function Two(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Two.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Two(value0, value1, value2, value3);\n };\n };\n };\n };\n return Two;\n })();\n var Three = (function () {\n function Three(value0, value1, value2, value3, value4, value5, value6) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n this.value6 = value6;\n };\n Three.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return function (value6) {\n return new Three(value0, value1, value2, value3, value4, value5, value6);\n };\n };\n };\n };\n };\n };\n };\n return Three;\n })();\n var TwoLeft = (function () {\n function TwoLeft(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n TwoLeft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new TwoLeft(value0, value1, value2);\n };\n };\n };\n return TwoLeft;\n })();\n var TwoRight = (function () {\n function TwoRight(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n TwoRight.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new TwoRight(value0, value1, value2);\n };\n };\n };\n return TwoRight;\n })();\n var ThreeLeft = (function () {\n function ThreeLeft(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeLeft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeLeft(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeLeft;\n })();\n var ThreeMiddle = (function () {\n function ThreeMiddle(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeMiddle.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeMiddle(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeMiddle;\n })();\n var ThreeRight = (function () {\n function ThreeRight(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeRight.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeRight(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeRight;\n })();\n var KickUp = (function () {\n function KickUp(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n KickUp.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new KickUp(value0, value1, value2, value3);\n };\n };\n };\n };\n return KickUp;\n })();\n var values = function (v) {\n if (v instanceof Leaf) {\n return Data_List_Types.Nil.value;\n };\n if (v instanceof Two) {\n return Data_Semigroup.append(Data_List_Types.semigroupList)(values(v.value0))(Data_Semigroup.append(Data_List_Types.semigroupList)(Control_Applicative.pure(Data_List_Types.applicativeList)(v.value2))(values(v.value3)));\n };\n if (v instanceof Three) {\n return Data_Semigroup.append(Data_List_Types.semigroupList)(values(v.value0))(Data_Semigroup.append(Data_List_Types.semigroupList)(Control_Applicative.pure(Data_List_Types.applicativeList)(v.value2))(Data_Semigroup.append(Data_List_Types.semigroupList)(values(v.value3))(Data_Semigroup.append(Data_List_Types.semigroupList)(Control_Applicative.pure(Data_List_Types.applicativeList)(v.value5))(values(v.value6)))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 626, column 1 - line 626, column 40): \" + [ v.constructor.name ]);\n };\n var lookup = function (dictOrd) {\n return function (k) {\n var comp = Data_Ord.compare(dictOrd);\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Leaf) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Two) {\n var v2 = comp(k)(v.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value2);\n };\n if (v2 instanceof Data_Ordering.LT) {\n $copy_v = v.value0;\n return;\n };\n $copy_v = v.value3;\n return;\n };\n if (v instanceof Three) {\n var v3 = comp(k)(v.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value2);\n };\n var v4 = comp(k)(v.value4);\n if (v4 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value5);\n };\n if (v3 instanceof Data_Ordering.LT) {\n $copy_v = v.value0;\n return;\n };\n if (v4 instanceof Data_Ordering.GT) {\n $copy_v = v.value6;\n return;\n };\n $copy_v = v.value3;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 211, column 5 - line 211, column 22): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go;\n };\n };\n var fromZipper = function ($copy_dictOrd) {\n return function ($copy_v) {\n return function ($copy_tree) {\n var $tco_var_dictOrd = $copy_dictOrd;\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictOrd, v, tree) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return tree;\n };\n if (v instanceof Data_List_Types.Cons) {\n if (v.value0 instanceof TwoLeft) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Two(tree, v.value0.value0, v.value0.value1, v.value0.value2);\n return;\n };\n if (v.value0 instanceof TwoRight) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Two(v.value0.value0, v.value0.value1, v.value0.value2, tree);\n return;\n };\n if (v.value0 instanceof ThreeLeft) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(tree, v.value0.value0, v.value0.value1, v.value0.value2, v.value0.value3, v.value0.value4, v.value0.value5);\n return;\n };\n if (v.value0 instanceof ThreeMiddle) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(v.value0.value0, v.value0.value1, v.value0.value2, tree, v.value0.value3, v.value0.value4, v.value0.value5);\n return;\n };\n if (v.value0 instanceof ThreeRight) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(v.value0.value0, v.value0.value1, v.value0.value2, v.value0.value3, v.value0.value4, v.value0.value5, tree);\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 432, column 3 - line 437, column 88): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 429, column 1 - line 429, column 80): \" + [ v.constructor.name, tree.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictOrd, $tco_var_v, $copy_tree);\n };\n return $tco_result;\n };\n };\n };\n var insert = function (dictOrd) {\n return function (k) {\n return function (v) {\n var up = function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v1, v2) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Two(v2.value0, v2.value1, v2.value2, v2.value3);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n if (v1.value0 instanceof TwoLeft) {\n $tco_done = true;\n return fromZipper(dictOrd)(v1.value1)(new Three(v2.value0, v2.value1, v2.value2, v2.value3, v1.value0.value0, v1.value0.value1, v1.value0.value2));\n };\n if (v1.value0 instanceof TwoRight) {\n $tco_done = true;\n return fromZipper(dictOrd)(v1.value1)(new Three(v1.value0.value0, v1.value0.value1, v1.value0.value2, v2.value0, v2.value1, v2.value2, v2.value3));\n };\n if (v1.value0 instanceof ThreeLeft) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v2.value0, v2.value1, v2.value2, v2.value3), v1.value0.value0, v1.value0.value1, new Two(v1.value0.value2, v1.value0.value3, v1.value0.value4, v1.value0.value5));\n return;\n };\n if (v1.value0 instanceof ThreeMiddle) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v1.value0.value0, v1.value0.value1, v1.value0.value2, v2.value0), v2.value1, v2.value2, new Two(v2.value3, v1.value0.value3, v1.value0.value4, v1.value0.value5));\n return;\n };\n if (v1.value0 instanceof ThreeRight) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v1.value0.value0, v1.value0.value1, v1.value0.value2, v1.value0.value3), v1.value0.value4, v1.value0.value5, new Two(v2.value0, v2.value1, v2.value2, v2.value3));\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 468, column 5 - line 473, column 108): \" + [ v1.value0.constructor.name, v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 465, column 3 - line 465, column 56): \" + [ v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n var comp = Data_Ord.compare(dictOrd);\n var down = function ($copy_ctx) {\n return function ($copy_v1) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(ctx, v1) {\n if (v1 instanceof Leaf) {\n $tco_done1 = true;\n return up(ctx)(new KickUp(Leaf.value, k, v, Leaf.value));\n };\n if (v1 instanceof Two) {\n var v2 = comp(k)(v1.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_done1 = true;\n return fromZipper(dictOrd)(ctx)(new Two(v1.value0, k, v, v1.value3));\n };\n if (v2 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoLeft(v1.value1, v1.value2, v1.value3), ctx);\n $copy_v1 = v1.value0;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(v1.value0, v1.value1, v1.value2), ctx);\n $copy_v1 = v1.value3;\n return;\n };\n if (v1 instanceof Three) {\n var v3 = comp(k)(v1.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n $tco_done1 = true;\n return fromZipper(dictOrd)(ctx)(new Three(v1.value0, k, v, v1.value3, v1.value4, v1.value5, v1.value6));\n };\n var v4 = comp(k)(v1.value4);\n if (v4 instanceof Data_Ordering.EQ) {\n $tco_done1 = true;\n return fromZipper(dictOrd)(ctx)(new Three(v1.value0, v1.value1, v1.value2, v1.value3, k, v, v1.value6));\n };\n if (v3 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeLeft(v1.value1, v1.value2, v1.value3, v1.value4, v1.value5, v1.value6), ctx);\n $copy_v1 = v1.value0;\n return;\n };\n if (v3 instanceof Data_Ordering.GT && v4 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeMiddle(v1.value0, v1.value1, v1.value2, v1.value4, v1.value5, v1.value6), ctx);\n $copy_v1 = v1.value3;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(v1.value0, v1.value1, v1.value2, v1.value3, v1.value4, v1.value5), ctx);\n $copy_v1 = v1.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 448, column 3 - line 448, column 55): \" + [ ctx.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_v1);\n };\n return $tco_result;\n };\n };\n return down(Data_List_Types.Nil.value);\n };\n };\n };\n var pop = function (dictOrd) {\n return function (k) {\n var up = function ($copy_ctxs) {\n return function ($copy_tree) {\n var $tco_var_ctxs = $copy_ctxs;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(ctxs, tree) {\n if (ctxs instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return tree;\n };\n if (ctxs instanceof Data_List_Types.Cons) {\n if (ctxs.value0 instanceof TwoLeft && (ctxs.value0.value2 instanceof Leaf && tree instanceof Leaf)) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(Leaf.value, ctxs.value0.value0, ctxs.value0.value1, Leaf.value));\n };\n if (ctxs.value0 instanceof TwoRight && (ctxs.value0.value0 instanceof Leaf && tree instanceof Leaf)) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value));\n };\n if (ctxs.value0 instanceof TwoLeft && ctxs.value0.value2 instanceof Two) {\n $tco_var_ctxs = ctxs.value1;\n $copy_tree = new Three(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0, ctxs.value0.value2.value1, ctxs.value0.value2.value2, ctxs.value0.value2.value3);\n return;\n };\n if (ctxs.value0 instanceof TwoRight && ctxs.value0.value0 instanceof Two) {\n $tco_var_ctxs = ctxs.value1;\n $copy_tree = new Three(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3, ctxs.value0.value1, ctxs.value0.value2, tree);\n return;\n };\n if (ctxs.value0 instanceof TwoLeft && ctxs.value0.value2 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Two(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0), ctxs.value0.value2.value1, ctxs.value0.value2.value2, new Two(ctxs.value0.value2.value3, ctxs.value0.value2.value4, ctxs.value0.value2.value5, ctxs.value0.value2.value6)));\n };\n if (ctxs.value0 instanceof TwoRight && ctxs.value0.value0 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Two(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3), ctxs.value0.value0.value4, ctxs.value0.value0.value5, new Two(ctxs.value0.value0.value6, ctxs.value0.value1, ctxs.value0.value2, tree)));\n };\n if (ctxs.value0 instanceof ThreeLeft && (ctxs.value0.value2 instanceof Leaf && (ctxs.value0.value5 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value0, ctxs.value0.value1, Leaf.value, ctxs.value0.value3, ctxs.value0.value4, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeMiddle && (ctxs.value0.value0 instanceof Leaf && (ctxs.value0.value5 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value, ctxs.value0.value3, ctxs.value0.value4, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeRight && (ctxs.value0.value0 instanceof Leaf && (ctxs.value0.value3 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value, ctxs.value0.value4, ctxs.value0.value5, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeLeft && ctxs.value0.value2 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Three(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0, ctxs.value0.value2.value1, ctxs.value0.value2.value2, ctxs.value0.value2.value3), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value0 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Three(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3, ctxs.value0.value1, ctxs.value0.value2, tree), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value5 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Three(tree, ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5.value0, ctxs.value0.value5.value1, ctxs.value0.value5.value2, ctxs.value0.value5.value3)));\n };\n if (ctxs.value0 instanceof ThreeRight && ctxs.value0.value3 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Three(ctxs.value0.value3.value0, ctxs.value0.value3.value1, ctxs.value0.value3.value2, ctxs.value0.value3.value3, ctxs.value0.value4, ctxs.value0.value5, tree)));\n };\n if (ctxs.value0 instanceof ThreeLeft && ctxs.value0.value2 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(new Two(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0), ctxs.value0.value2.value1, ctxs.value0.value2.value2, new Two(ctxs.value0.value2.value3, ctxs.value0.value2.value4, ctxs.value0.value2.value5, ctxs.value0.value2.value6), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value0 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(new Two(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3), ctxs.value0.value0.value4, ctxs.value0.value0.value5, new Two(ctxs.value0.value0.value6, ctxs.value0.value1, ctxs.value0.value2, tree), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value5 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Two(tree, ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5.value0), ctxs.value0.value5.value1, ctxs.value0.value5.value2, new Two(ctxs.value0.value5.value3, ctxs.value0.value5.value4, ctxs.value0.value5.value5, ctxs.value0.value5.value6)));\n };\n if (ctxs.value0 instanceof ThreeRight && ctxs.value0.value3 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Two(ctxs.value0.value3.value0, ctxs.value0.value3.value1, ctxs.value0.value3.value2, ctxs.value0.value3.value3), ctxs.value0.value3.value4, ctxs.value0.value3.value5, new Two(ctxs.value0.value3.value6, ctxs.value0.value4, ctxs.value0.value5, tree)));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 525, column 9 - line 542, column 136): \" + [ ctxs.value0.constructor.name, tree.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 522, column 5 - line 542, column 136): \" + [ ctxs.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_ctxs, $copy_tree);\n };\n return $tco_result;\n };\n };\n var removeMaxNode = function ($copy_ctx) {\n return function ($copy_m) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(ctx, m) {\n if (m instanceof Two && (m.value0 instanceof Leaf && m.value3 instanceof Leaf)) {\n $tco_done1 = true;\n return up(ctx)(Leaf.value);\n };\n if (m instanceof Two) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(m.value0, m.value1, m.value2), ctx);\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three && (m.value0 instanceof Leaf && (m.value3 instanceof Leaf && m.value6 instanceof Leaf))) {\n $tco_done1 = true;\n return up(new Data_List_Types.Cons(new TwoRight(Leaf.value, m.value1, m.value2), ctx))(Leaf.value);\n };\n if (m instanceof Three) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(m.value0, m.value1, m.value2, m.value3, m.value4, m.value5), ctx);\n $copy_m = m.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 554, column 5 - line 558, column 107): \" + [ m.constructor.name ]);\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_m);\n };\n return $tco_result;\n };\n };\n var maxNode = function ($copy_m) {\n var $tco_done2 = false;\n var $tco_result;\n function $tco_loop(m) {\n if (m instanceof Two && m.value3 instanceof Leaf) {\n $tco_done2 = true;\n return {\n key: m.value1,\n value: m.value2\n };\n };\n if (m instanceof Two) {\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three && m.value6 instanceof Leaf) {\n $tco_done2 = true;\n return {\n key: m.value4,\n value: m.value5\n };\n };\n if (m instanceof Three) {\n $copy_m = m.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 545, column 33 - line 549, column 45): \" + [ m.constructor.name ]);\n };\n while (!$tco_done2) {\n $tco_result = $tco_loop($copy_m);\n };\n return $tco_result;\n };\n var comp = Data_Ord.compare(dictOrd);\n var down = function ($copy_ctx) {\n return function ($copy_m) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done3 = false;\n var $tco_result;\n function $tco_loop(ctx, m) {\n if (m instanceof Leaf) {\n $tco_done3 = true;\n return Data_Maybe.Nothing.value;\n };\n if (m instanceof Two) {\n var v = comp(k)(m.value1);\n if (m.value3 instanceof Leaf && v instanceof Data_Ordering.EQ) {\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, up(ctx)(Leaf.value)));\n };\n if (v instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value0);\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, removeMaxNode(new Data_List_Types.Cons(new TwoLeft(max.key, max.value, m.value3), ctx))(m.value0)));\n };\n if (v instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoLeft(m.value1, m.value2, m.value3), ctx);\n $copy_m = m.value0;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(m.value0, m.value1, m.value2), ctx);\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three) {\n var leaves = (function () {\n if (m.value0 instanceof Leaf && (m.value3 instanceof Leaf && m.value6 instanceof Leaf)) {\n return true;\n };\n return false;\n })();\n var v = comp(k)(m.value4);\n var v3 = comp(k)(m.value1);\n if (leaves && v3 instanceof Data_Ordering.EQ) {\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, fromZipper(dictOrd)(ctx)(new Two(Leaf.value, m.value4, m.value5, Leaf.value))));\n };\n if (leaves && v instanceof Data_Ordering.EQ) {\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value5, fromZipper(dictOrd)(ctx)(new Two(Leaf.value, m.value1, m.value2, Leaf.value))));\n };\n if (v3 instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value0);\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, removeMaxNode(new Data_List_Types.Cons(new ThreeLeft(max.key, max.value, m.value3, m.value4, m.value5, m.value6), ctx))(m.value0)));\n };\n if (v instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value3);\n $tco_done3 = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value5, removeMaxNode(new Data_List_Types.Cons(new ThreeMiddle(m.value0, m.value1, m.value2, max.key, max.value, m.value6), ctx))(m.value3)));\n };\n if (v3 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeLeft(m.value1, m.value2, m.value3, m.value4, m.value5, m.value6), ctx);\n $copy_m = m.value0;\n return;\n };\n if (v3 instanceof Data_Ordering.GT && v instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeMiddle(m.value0, m.value1, m.value2, m.value4, m.value5, m.value6), ctx);\n $copy_m = m.value3;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(m.value0, m.value1, m.value2, m.value3, m.value4, m.value5), ctx);\n $copy_m = m.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 495, column 34 - line 518, column 80): \" + [ m.constructor.name ]);\n };\n while (!$tco_done3) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_m);\n };\n return $tco_result;\n };\n };\n return down(Data_List_Types.Nil.value);\n };\n };\n var foldableMap = {\n foldl: function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldl(Data_List_Types.foldableList)(f)(z)(values(m));\n };\n };\n },\n foldr: function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldr(Data_List_Types.foldableList)(f)(z)(values(m));\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (m) {\n return Data_Foldable.foldMap(Data_List_Types.foldableList)(dictMonoid)(f)(values(m));\n };\n };\n }\n };\n var empty = Leaf.value;\n var $$delete = function (dictOrd) {\n return function (k) {\n return function (m) {\n return Data_Maybe.maybe(m)(Data_Tuple.snd)(pop(dictOrd)(k)(m));\n };\n };\n };\n var alter = function (dictOrd) {\n return function (f) {\n return function (k) {\n return function (m) {\n var v = f(lookup(dictOrd)(k)(m));\n if (v instanceof Data_Maybe.Nothing) {\n return $$delete(dictOrd)(k)(m);\n };\n if (v instanceof Data_Maybe.Just) {\n return insert(dictOrd)(k)(v.value0)(m);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 563, column 15 - line 565, column 25): \" + [ v.constructor.name ]);\n };\n };\n };\n };\n exports[\"empty\"] = empty;\n exports[\"insert\"] = insert;\n exports[\"lookup\"] = lookup;\n exports[\"delete\"] = $$delete;\n exports[\"pop\"] = pop;\n exports[\"alter\"] = alter;\n exports[\"foldableMap\"] = foldableMap;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Data.OrdBox\"] = $PS[\"Halogen.Data.OrdBox\"] || {};\n var exports = $PS[\"Halogen.Data.OrdBox\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Ord = $PS[\"Data.Ord\"]; \n var OrdBox = (function () {\n function OrdBox(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n OrdBox.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new OrdBox(value0, value1, value2);\n };\n };\n };\n return OrdBox;\n })();\n var mkOrdBox = function (dictOrd) {\n return OrdBox.create(Data_Eq.eq(dictOrd.Eq0()))(Data_Ord.compare(dictOrd));\n };\n var eqOrdBox = {\n eq: function (v) {\n return function (v1) {\n return v.value0(v.value2)(v1.value2);\n };\n }\n };\n var ordOrdBox = {\n compare: function (v) {\n return function (v1) {\n return v.value1(v.value2)(v1.value2);\n };\n },\n Eq0: function () {\n return eqOrdBox;\n }\n };\n exports[\"mkOrdBox\"] = mkOrdBox;\n exports[\"ordOrdBox\"] = ordOrdBox;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Data.Slot\"] = $PS[\"Halogen.Data.Slot\"] || {};\n var exports = $PS[\"Halogen.Data.Slot\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Halogen_Data_OrdBox = $PS[\"Halogen.Data.OrdBox\"];\n var pop = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (v) {\n return Data_Map_Internal.pop(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(v);\n };\n };\n };\n };\n };\n };\n var lookup = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (v) {\n return Data_Map_Internal.lookup(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(v);\n };\n };\n };\n };\n };\n };\n var insert = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (val) {\n return function (v) {\n return Data_Map_Internal.insert(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(val)(v);\n };\n };\n };\n };\n };\n };\n };\n var foreachSlot = function (dictApplicative) {\n return function (v) {\n return function (k) {\n return Data_Foldable.traverse_(dictApplicative)(Data_Map_Internal.foldableMap)(function ($37) {\n return k($37);\n })(v);\n };\n };\n };\n var empty = Data_Map_Internal.empty;\n exports[\"empty\"] = empty;\n exports[\"lookup\"] = lookup;\n exports[\"insert\"] = insert;\n exports[\"pop\"] = pop;\n exports[\"foreachSlot\"] = foreachSlot;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Query.ChildQuery\"] = $PS[\"Halogen.Query.ChildQuery\"] || {};\n var exports = $PS[\"Halogen.Query.ChildQuery\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var ChildQuery = (function () {\n function ChildQuery(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n ChildQuery.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new ChildQuery(value0, value1, value2);\n };\n };\n };\n return ChildQuery;\n })();\n var unChildQueryBox = Unsafe_Coerce.unsafeCoerce;\n var mkChildQueryBox = Unsafe_Coerce.unsafeCoerce;\n exports[\"ChildQuery\"] = ChildQuery;\n exports[\"mkChildQueryBox\"] = mkChildQueryBox;\n exports[\"unChildQueryBox\"] = unChildQueryBox;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Query.HalogenM\"] = $PS[\"Halogen.Query.HalogenM\"] || {};\n var exports = $PS[\"Halogen.Query.HalogenM\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Monad_Free = $PS[\"Control.Monad.Free\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Halogen_Data_Slot = $PS[\"Halogen.Data.Slot\"];\n var Halogen_Query_ChildQuery = $PS[\"Halogen.Query.ChildQuery\"]; \n var SubscriptionId = function (x) {\n return x;\n };\n var ForkId = function (x) {\n return x;\n };\n var State = (function () {\n function State(value0) {\n this.value0 = value0;\n };\n State.create = function (value0) {\n return new State(value0);\n };\n return State;\n })();\n var Subscribe = (function () {\n function Subscribe(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Subscribe.create = function (value0) {\n return function (value1) {\n return new Subscribe(value0, value1);\n };\n };\n return Subscribe;\n })();\n var Unsubscribe = (function () {\n function Unsubscribe(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Unsubscribe.create = function (value0) {\n return function (value1) {\n return new Unsubscribe(value0, value1);\n };\n };\n return Unsubscribe;\n })();\n var Lift = (function () {\n function Lift(value0) {\n this.value0 = value0;\n };\n Lift.create = function (value0) {\n return new Lift(value0);\n };\n return Lift;\n })();\n var ChildQuery = (function () {\n function ChildQuery(value0) {\n this.value0 = value0;\n };\n ChildQuery.create = function (value0) {\n return new ChildQuery(value0);\n };\n return ChildQuery;\n })();\n var Raise = (function () {\n function Raise(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Raise.create = function (value0) {\n return function (value1) {\n return new Raise(value0, value1);\n };\n };\n return Raise;\n })();\n var Par = (function () {\n function Par(value0) {\n this.value0 = value0;\n };\n Par.create = function (value0) {\n return new Par(value0);\n };\n return Par;\n })();\n var Fork = (function () {\n function Fork(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Fork.create = function (value0) {\n return function (value1) {\n return new Fork(value0, value1);\n };\n };\n return Fork;\n })();\n var Kill = (function () {\n function Kill(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Kill.create = function (value0) {\n return function (value1) {\n return new Kill(value0, value1);\n };\n };\n return Kill;\n })();\n var GetRef = (function () {\n function GetRef(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n GetRef.create = function (value0) {\n return function (value1) {\n return new GetRef(value0, value1);\n };\n };\n return GetRef;\n })();\n var HalogenM = function (x) {\n return x;\n };\n var subscribe$prime = function (esc) {\n return HalogenM(Control_Monad_Free.liftF(new Subscribe(esc, Data_Function[\"const\"](Data_Unit.unit))));\n };\n var raise = function (o) {\n return HalogenM(Control_Monad_Free.liftF(new Raise(o, Data_Unit.unit)));\n };\n var query = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (p) {\n return function (q) {\n return HalogenM(Control_Monad_Free.liftF(ChildQuery.create(Halogen_Query_ChildQuery.mkChildQueryBox(new Halogen_Query_ChildQuery.ChildQuery(function (dictApplicative) {\n return function (k) {\n var $132 = Data_Maybe.maybe(Control_Applicative.pure(dictApplicative)(Data_Maybe.Nothing.value))(k);\n var $133 = Halogen_Data_Slot.lookup()(dictIsSymbol)(dictOrd)(label)(p);\n return function ($134) {\n return $132($133($134));\n };\n };\n }, q, Control_Category.identity(Control_Category.categoryFn))))));\n };\n };\n };\n };\n };\n };\n var ordSubscriptionId = Data_Ord.ordInt;\n var ordForkId = Data_Ord.ordInt;\n var monadHalogenM = Control_Monad_Free.freeMonad;\n var monadStateHalogenM = {\n state: function ($136) {\n return HalogenM(Control_Monad_Free.liftF(State.create($136)));\n },\n Monad0: function () {\n return monadHalogenM;\n }\n };\n var monadEffectHalogenM = function (dictMonadEffect) {\n return {\n liftEffect: (function () {\n var $141 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($142) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($141($142))));\n };\n })(),\n Monad0: function () {\n return monadHalogenM;\n }\n };\n };\n var monadAffHalogenM = function (dictMonadAff) {\n return {\n liftAff: (function () {\n var $143 = Effect_Aff_Class.liftAff(dictMonadAff);\n return function ($144) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($143($144))));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectHalogenM(dictMonadAff.MonadEffect0());\n }\n };\n };\n var functorHalogenM = Control_Monad_Free.freeFunctor;\n var bindHalogenM = Control_Monad_Free.freeBind; \n var applicativeHalogenM = Control_Monad_Free.freeApplicative;\n exports[\"State\"] = State;\n exports[\"Subscribe\"] = Subscribe;\n exports[\"Unsubscribe\"] = Unsubscribe;\n exports[\"Lift\"] = Lift;\n exports[\"ChildQuery\"] = ChildQuery;\n exports[\"Raise\"] = Raise;\n exports[\"Par\"] = Par;\n exports[\"Fork\"] = Fork;\n exports[\"Kill\"] = Kill;\n exports[\"GetRef\"] = GetRef;\n exports[\"raise\"] = raise;\n exports[\"query\"] = query;\n exports[\"SubscriptionId\"] = SubscriptionId;\n exports[\"subscribe'\"] = subscribe$prime;\n exports[\"ForkId\"] = ForkId;\n exports[\"functorHalogenM\"] = functorHalogenM;\n exports[\"applicativeHalogenM\"] = applicativeHalogenM;\n exports[\"bindHalogenM\"] = bindHalogenM;\n exports[\"monadEffectHalogenM\"] = monadEffectHalogenM;\n exports[\"monadAffHalogenM\"] = monadAffHalogenM;\n exports[\"monadStateHalogenM\"] = monadStateHalogenM;\n exports[\"ordSubscriptionId\"] = ordSubscriptionId;\n exports[\"ordForkId\"] = ordForkId;\n})(PS);\n(function(exports) {\n \"use strict\"; \n\n exports.blobImpl = function (args) {\n return function (mediaType) {\n return new Blob(args, {type: mediaType});\n };\n };\n})(PS[\"Web.File.Blob\"] = PS[\"Web.File.Blob\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.File.Blob\"] = $PS[\"Web.File.Blob\"] || {};\n var exports = $PS[\"Web.File.Blob\"];\n var $foreign = $PS[\"Web.File.Blob\"];\n var fromString = function (str) {\n return function (ct) {\n return $foreign.blobImpl([ str ])(ct);\n };\n };\n exports[\"fromString\"] = fromString;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"App.State\"] = $PS[\"App.State\"] || {};\n var exports = $PS[\"App.State\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_MediaType = $PS[\"Data.MediaType\"];\n var Data_Note = $PS[\"Data.Note\"];\n var Data_NoteContent = $PS[\"Data.NoteContent\"];\n var Data_Options = $PS[\"Data.Options\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Helpers_General = $PS[\"Helpers.General\"];\n var Web_File_Blob = $PS[\"Web.File.Blob\"]; \n var setOptionsStateGeneric = function (dictMonadAff) {\n return function (f) {\n return function (newOptions) {\n return f(function (state) {\n return {\n options: newOptions,\n note: state.note\n };\n });\n };\n };\n };\n var setOptionsState_ = function (dictMonadAff) {\n return setOptionsStateGeneric(dictMonadAff)(Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM));\n };\n var setOptionsState = function (dictMonadAff) {\n return setOptionsStateGeneric(dictMonadAff)(Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM));\n };\n var setNoteStateGeneric = function (dictMonadAff) {\n return function (f) {\n return function (newNote) {\n return f(function (state) {\n return {\n options: state.options,\n note: newNote\n };\n });\n };\n };\n };\n var setNoteState_ = function (dictMonadAff) {\n return setNoteStateGeneric(dictMonadAff)(Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM));\n };\n var setNoteState = function (dictMonadAff) {\n return setNoteStateGeneric(dictMonadAff)(Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM));\n };\n var makeBlob = function (state) {\n return function (timestamp) {\n return function (language) {\n var mediaType = Data_MediaType.MediaType(Data_Options.noteFileMime(state.options));\n var content = Data_NoteContent.noteContentString(state.options)(state.note)(timestamp)(language);\n return Web_File_Blob.fromString(content)(mediaType);\n };\n };\n };\n var initialState = function (v) {\n return {\n options: Data_Options.defaultOptions,\n note: Data_Note.defaultNote\n };\n };\n var getState = function (dictMonadAff) {\n return Control_Monad_State_Class.get(Halogen_Query_HalogenM.monadStateHalogenM);\n };\n var filenameFromState = function (state) {\n var title = Data_Maybe.fromMaybe(\"note\")(state.note.title);\n return Helpers_General.sanitizeFileName(title) + Data_Options.noteFileSuffix(state.options);\n };\n exports[\"filenameFromState\"] = filenameFromState;\n exports[\"getState\"] = getState;\n exports[\"initialState\"] = initialState;\n exports[\"makeBlob\"] = makeBlob;\n exports[\"setNoteState\"] = setNoteState;\n exports[\"setNoteState_\"] = setNoteState_;\n exports[\"setOptionsState\"] = setOptionsState;\n exports[\"setOptionsState_\"] = setOptionsState_;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.log = function (s) {\n return function () {\n console.log(s);\n };\n };\n\n exports.warn = function (s) {\n return function () {\n console.warn(s);\n };\n };\n})(PS[\"Effect.Console\"] = PS[\"Effect.Console\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Effect.Console\"] = $PS[\"Effect.Console\"] || {};\n var exports = $PS[\"Effect.Console\"];\n var $foreign = $PS[\"Effect.Console\"];\n exports[\"log\"] = $foreign.log;\n exports[\"warn\"] = $foreign.warn;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.StoreKey\"] = $PS[\"Data.StoreKey\"] || {};\n var exports = $PS[\"Data.StoreKey\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var storeKeyIdToString = Data_Newtype.unwrap();\n var key = function (dict) {\n return dict.key;\n };\n var storeKeyIdStringFromObject = function (dictStoreKey) {\n var $7 = key(dictStoreKey);\n return function ($8) {\n return storeKeyIdToString($7($8));\n };\n };\n exports[\"storeKeyIdStringFromObject\"] = storeKeyIdStringFromObject;\n exports[\"storeKeyIdToString\"] = storeKeyIdToString;\n})(PS);\n(function(exports) {\n // SPDX-License-Identifier: GPL-3.0-or-later\n // Copyright (C) 2022 Roland Csaszar\n //\n // Project: notoy-pwa\n // File: DateTime.js\n // Date: 18.Jan.2022\n //\n // ==============================================================================\n /* eslint-disable no-undef */\n\n // eslint-disable-next-line strict\n \"use strict\"\n\n exports.getDateStringJS = getDateStringJS \n\n /**\n * Return the current local date in ISO format, \"YYYY-MM-DD\".\n *\n * @returns The current local date in ISO format, \"YYYY-MM-DD\".\n */ \n function getDateStringJS() {\n return function () {\n const today = new Date()\n\n return (\n today.getFullYear() +\n \"-\" +\n // eslint-disable-next-line no-magic-numbers\n pad0s(today.getMonth() + 1) +\n \"-\" +\n pad0s(today.getDate())\n )\n }\n }\n\n /**\n * Left pad the given number with a zero `0`, if it is lesser than 10.\n *\n * @param {number} n - The number to format\n * @returns The number with a leading zero `0`, if it is lesser than 10, the\n * number else.\n */ \n function pad0s(n) {\n // eslint-disable-next-line no-magic-numbers\n return n < 10 ? \"0\" + n : n.toString()\n }\n})(PS[\"Helpers.DateTime\"] = PS[\"Helpers.DateTime\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Helpers.DateTime\"] = $PS[\"Helpers.DateTime\"] || {};\n var exports = $PS[\"Helpers.DateTime\"];\n var $foreign = $PS[\"Helpers.DateTime\"];\n exports[\"getDateStringJS\"] = $foreign.getDateStringJS;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.setAttribute = function (name) {\n return function (value) {\n return function (element) {\n return function () {\n element.setAttribute(name, value);\n };\n };\n };\n };\n})(PS[\"Web.DOM.Element\"] = PS[\"Web.DOM.Element\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.DOM.Element\"] = $PS[\"Web.DOM.Element\"] || {};\n var exports = $PS[\"Web.DOM.Element\"];\n var $foreign = $PS[\"Web.DOM.Element\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var toNode = Unsafe_Coerce.unsafeCoerce;\n exports[\"toNode\"] = toNode;\n exports[\"setAttribute\"] = $foreign.setAttribute;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._getElementById = function (id) {\n return function (node) {\n return function () {\n return node.getElementById(id);\n };\n };\n };\n})(PS[\"Web.DOM.NonElementParentNode\"] = PS[\"Web.DOM.NonElementParentNode\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.DOM.NonElementParentNode\"] = $PS[\"Web.DOM.NonElementParentNode\"] || {};\n var exports = $PS[\"Web.DOM.NonElementParentNode\"];\n var $foreign = $PS[\"Web.DOM.NonElementParentNode\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Effect = $PS[\"Effect\"]; \n var getElementById = function (eid) {\n var $0 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $1 = $foreign[\"_getElementById\"](eid);\n return function ($2) {\n return $0($1($2));\n };\n };\n exports[\"getElementById\"] = getElementById;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.createObjectURL = function (blob) {\n return function () {\n return URL.createObjectURL(blob);\n };\n };\n})(PS[\"Web.File.Url\"] = PS[\"Web.File.Url\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.File.Url\"] = $PS[\"Web.File.Url\"] || {};\n var exports = $PS[\"Web.File.Url\"];\n var $foreign = $PS[\"Web.File.Url\"];\n exports[\"createObjectURL\"] = $foreign.createObjectURL;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.window = function () {\n return window;\n };\n})(PS[\"Web.HTML\"] = PS[\"Web.HTML\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML\"] = $PS[\"Web.HTML\"] || {};\n var exports = $PS[\"Web.HTML\"];\n var $foreign = $PS[\"Web.HTML\"];\n exports[\"window\"] = $foreign.window;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.setText = function (text) {\n return function (a) {\n return function () {\n a.text = text;\n };\n };\n };\n})(PS[\"Web.HTML.HTMLAnchorElement\"] = PS[\"Web.HTML.HTMLAnchorElement\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports._unsafeReadProtoTagged = function (nothing, just, name, value) {\n if (typeof window !== \"undefined\") {\n var ty = window[name];\n if (ty != null && value instanceof ty) {\n return just(value);\n }\n }\n var obj = value;\n while (obj != null) {\n var proto = Object.getPrototypeOf(obj);\n var constructorName = proto.constructor.name;\n if (constructorName === name) {\n return just(value);\n } else if (constructorName === \"Object\") {\n return nothing;\n }\n obj = proto;\n }\n return nothing;\n };\n})(PS[\"Web.Internal.FFI\"] = PS[\"Web.Internal.FFI\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.Internal.FFI\"] = $PS[\"Web.Internal.FFI\"] || {};\n var exports = $PS[\"Web.Internal.FFI\"];\n var $foreign = $PS[\"Web.Internal.FFI\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var unsafeReadProtoTagged = function (name) {\n return function (value) {\n return $foreign[\"_unsafeReadProtoTagged\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, name, value);\n };\n };\n exports[\"unsafeReadProtoTagged\"] = unsafeReadProtoTagged;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.HTMLAnchorElement\"] = $PS[\"Web.HTML.HTMLAnchorElement\"] || {};\n var exports = $PS[\"Web.HTML.HTMLAnchorElement\"];\n var $foreign = $PS[\"Web.HTML.HTMLAnchorElement\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Web_Internal_FFI = $PS[\"Web.Internal.FFI\"]; \n var toHTMLElement = Unsafe_Coerce.unsafeCoerce;\n var toElement = Unsafe_Coerce.unsafeCoerce; \n var fromElement = Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLAnchorElement\");\n exports[\"fromElement\"] = fromElement;\n exports[\"toHTMLElement\"] = toHTMLElement;\n exports[\"toElement\"] = toElement;\n exports[\"setText\"] = $foreign.setText;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._readyState = function (doc) {\n return function () {\n return doc.readyState;\n };\n };\n})(PS[\"Web.HTML.HTMLDocument\"] = PS[\"Web.HTML.HTMLDocument\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.HTMLDocument.ReadyState\"] = $PS[\"Web.HTML.HTMLDocument.ReadyState\"] || {};\n var exports = $PS[\"Web.HTML.HTMLDocument.ReadyState\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var Loading = (function () {\n function Loading() {\n\n };\n Loading.value = new Loading();\n return Loading;\n })();\n var Interactive = (function () {\n function Interactive() {\n\n };\n Interactive.value = new Interactive();\n return Interactive;\n })();\n var Complete = (function () {\n function Complete() {\n\n };\n Complete.value = new Complete();\n return Complete;\n })();\n var parse = function (v) {\n if (v === \"loading\") {\n return new Data_Maybe.Just(Loading.value);\n };\n if (v === \"interactive\") {\n return new Data_Maybe.Just(Interactive.value);\n };\n if (v === \"complete\") {\n return new Data_Maybe.Just(Complete.value);\n };\n return Data_Maybe.Nothing.value;\n };\n exports[\"Loading\"] = Loading;\n exports[\"parse\"] = parse;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.HTMLDocument\"] = $PS[\"Web.HTML.HTMLDocument\"] || {};\n var exports = $PS[\"Web.HTML.HTMLDocument\"];\n var $foreign = $PS[\"Web.HTML.HTMLDocument\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Effect = $PS[\"Effect\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Web_HTML_HTMLDocument_ReadyState = $PS[\"Web.HTML.HTMLDocument.ReadyState\"];\n var toParentNode = Unsafe_Coerce.unsafeCoerce;\n var toNonElementParentNode = Unsafe_Coerce.unsafeCoerce;\n var toDocument = Unsafe_Coerce.unsafeCoerce;\n var readyState = (function () {\n var $0 = Data_Functor.map(Effect.functorEffect)((function () {\n var $2 = Data_Maybe.fromMaybe(Web_HTML_HTMLDocument_ReadyState.Loading.value);\n return function ($3) {\n return $2(Web_HTML_HTMLDocument_ReadyState.parse($3));\n };\n })());\n return function ($1) {\n return $0($foreign[\"_readyState\"]($1));\n };\n })();\n exports[\"toDocument\"] = toDocument;\n exports[\"toParentNode\"] = toParentNode;\n exports[\"toNonElementParentNode\"] = toNonElementParentNode;\n exports[\"readyState\"] = readyState;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._read = function (nothing, just, value) {\n var tag = Object.prototype.toString.call(value);\n if (tag.indexOf(\"[object HTML\") === 0 && tag.indexOf(\"Element]\") === tag.length - 8) {\n return just(value);\n } else {\n return nothing;\n }\n };\n\n // ----------------------------------------------------------------------------\n\n exports.click = function (elt) {\n return function () {\n return elt.click();\n };\n };\n})(PS[\"Web.HTML.HTMLElement\"] = PS[\"Web.HTML.HTMLElement\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.HTMLElement\"] = $PS[\"Web.HTML.HTMLElement\"] || {};\n var exports = $PS[\"Web.HTML.HTMLElement\"];\n var $foreign = $PS[\"Web.HTML.HTMLElement\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var toNode = Unsafe_Coerce.unsafeCoerce;\n var fromElement = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n };\n exports[\"fromElement\"] = fromElement;\n exports[\"toNode\"] = toNode;\n exports[\"click\"] = $foreign.click;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // ----------------------------------------------------------------------------\n\n exports.href = function (location) {\n return function () {\n return location.href;\n };\n };\n})(PS[\"Web.HTML.Location\"] = PS[\"Web.HTML.Location\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.Location\"] = $PS[\"Web.HTML.Location\"] || {};\n var exports = $PS[\"Web.HTML.Location\"];\n var $foreign = $PS[\"Web.HTML.Location\"];\n exports[\"href\"] = $foreign.href;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.language = function (navigator) {\n return function () {\n return navigator.language;\n };\n };\n})(PS[\"Web.HTML.Navigator\"] = PS[\"Web.HTML.Navigator\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.Navigator\"] = $PS[\"Web.HTML.Navigator\"] || {};\n var exports = $PS[\"Web.HTML.Navigator\"];\n var $foreign = $PS[\"Web.HTML.Navigator\"];\n exports[\"language\"] = $foreign.language;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.document = function (window) {\n return function () {\n return window.document;\n };\n };\n\n exports.navigator = function (window) {\n return function () {\n return window.navigator;\n };\n };\n\n exports.location = function (window) {\n return function () {\n return window.location;\n };\n };\n\n exports.localStorage = function (window) {\n return function () {\n return window.localStorage;\n };\n };\n})(PS[\"Web.HTML.Window\"] = PS[\"Web.HTML.Window\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.Window\"] = $PS[\"Web.HTML.Window\"] || {};\n var exports = $PS[\"Web.HTML.Window\"];\n var $foreign = $PS[\"Web.HTML.Window\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var toEventTarget = Unsafe_Coerce.unsafeCoerce;\n exports[\"toEventTarget\"] = toEventTarget;\n exports[\"document\"] = $foreign.document;\n exports[\"navigator\"] = $foreign.navigator;\n exports[\"location\"] = $foreign.location;\n exports[\"localStorage\"] = $foreign.localStorage;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._getItem = function (key) {\n return function (storage) {\n return function () {\n return storage.getItem(key);\n };\n };\n };\n\n exports.setItem = function (key) {\n return function (value) {\n return function (storage) {\n return function () {\n storage.setItem(key, value);\n };\n };\n };\n };\n})(PS[\"Web.Storage.Storage\"] = PS[\"Web.Storage.Storage\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.Storage.Storage\"] = $PS[\"Web.Storage.Storage\"] || {};\n var exports = $PS[\"Web.Storage.Storage\"];\n var $foreign = $PS[\"Web.Storage.Storage\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Effect = $PS[\"Effect\"];\n var getItem = function (s) {\n var $3 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $4 = $foreign[\"_getItem\"](s);\n return function ($5) {\n return $3($4($5));\n };\n };\n exports[\"getItem\"] = getItem;\n exports[\"setItem\"] = $foreign.setItem;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Helpers.Browser\"] = $PS[\"Helpers.Browser\"] || {};\n var exports = $PS[\"Helpers.Browser\"];\n var Affjax = $PS[\"Affjax\"];\n var Affjax_ResponseFormat = $PS[\"Affjax.ResponseFormat\"];\n var App_Constants = $PS[\"App.Constants\"];\n var App_State = $PS[\"App.State\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_DateTimeFormat = $PS[\"Data.DateTimeFormat\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_HTTP_Method = $PS[\"Data.HTTP.Method\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_StoreKey = $PS[\"Data.StoreKey\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Console = $PS[\"Effect.Console\"];\n var Helpers_DateTime = $PS[\"Helpers.DateTime\"];\n var Helpers_General = $PS[\"Helpers.General\"];\n var Web_DOM_Element = $PS[\"Web.DOM.Element\"];\n var Web_DOM_NonElementParentNode = $PS[\"Web.DOM.NonElementParentNode\"];\n var Web_File_Url = $PS[\"Web.File.Url\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_HTMLAnchorElement = $PS[\"Web.HTML.HTMLAnchorElement\"];\n var Web_HTML_HTMLDocument = $PS[\"Web.HTML.HTMLDocument\"];\n var Web_HTML_HTMLElement = $PS[\"Web.HTML.HTMLElement\"];\n var Web_HTML_Location = $PS[\"Web.HTML.Location\"];\n var Web_HTML_Navigator = $PS[\"Web.HTML.Navigator\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"];\n var Web_Storage_Storage = $PS[\"Web.Storage.Storage\"];\n var Web_URL = $PS[\"Web.URL\"]; \n var saveToLocalStorage = function (dictStoreKey) {\n return function (dictEncodeJson) {\n return function (win) {\n return function (object) {\n return function __do() {\n var s = Web_HTML_Window.localStorage(win)();\n return Web_Storage_Storage.setItem(Data_StoreKey.storeKeyIdStringFromObject(dictStoreKey)(object))(Helpers_General.encodeToJsonString(dictEncodeJson)(object))(s)();\n };\n };\n };\n };\n };\n var loadFromLocalStorage = function (dictDecodeJson) {\n return function (win) {\n return function (key) {\n return function __do() {\n var s = Web_HTML_Window.localStorage(win)();\n var jsonStr = Web_Storage_Storage.getItem(Data_StoreKey.storeKeyIdToString(key))(s)();\n if (jsonStr instanceof Data_Maybe.Nothing) {\n Effect_Console.log(\"Error loading item for key \" + Data_StoreKey.storeKeyIdToString(key))();\n return Data_Maybe.Nothing.value;\n };\n if (jsonStr instanceof Data_Maybe.Just) {\n var v = Helpers_General.decodeJsonFromString(Data_Argonaut_Decode_Class.decodeJsonMaybe(dictDecodeJson))(jsonStr.value0);\n if (v instanceof Data_Either.Left) {\n Effect_Console.log(v.value0)();\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Either.Right) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Helpers.Browser (line 219, column 17 - line 223, column 28): \" + [ v.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Helpers.Browser (line 215, column 3 - line 223, column 28): \" + [ jsonStr.constructor.name ]);\n };\n };\n };\n };\n var getLanguage = function (v) {\n return function __do() {\n var locale = Control_Bind.bind(Effect.bindEffect)(Control_Bind.bind(Effect.bindEffect)(Web_HTML.window)(Web_HTML_Window.navigator))(Web_HTML_Navigator.language)();\n return locale;\n };\n };\n var reverseGeoLocation = function (getURLForGeoloc) {\n return function (geolocJson2String) {\n return function (pos) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(getLanguage(Data_Unit.unit)))(function (locale) {\n var fetchUrl = getURLForGeoloc(locale)(pos);\n return Control_Bind.bind(Effect_Aff.bindAff)(Affjax.request({\n method: new Data_Either.Left(Data_HTTP_Method.GET.value),\n url: fetchUrl,\n headers: Affjax.defaultRequest.headers,\n content: Affjax.defaultRequest.content,\n username: Affjax.defaultRequest.username,\n password: Affjax.defaultRequest.password,\n withCredentials: Affjax.defaultRequest.withCredentials,\n responseFormat: Affjax_ResponseFormat.json,\n timeout: Affjax.defaultRequest.timeout\n }))(function (result) {\n if (result instanceof Data_Either.Left) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Either.Left.create(Affjax.printError(result.value0)));\n };\n if (result instanceof Data_Either.Right) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Either.Right.create(geolocJson2String(result.value0.body)));\n };\n throw new Error(\"Failed pattern match at Helpers.Browser (line 79, column 3 - line 81, column 69): \" + [ result.constructor.name ]);\n });\n });\n };\n };\n };\n var getElementFromId = function (id) {\n return function __do() {\n var doc = Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Window.document)(Web_HTML.window)();\n return Web_DOM_NonElementParentNode.getElementById(id)(Web_HTML_HTMLDocument.toNonElementParentNode(doc))();\n };\n };\n var getCurrentUrlString = function (v) {\n return Control_Bind.bind(Effect.bindEffect)(Control_Bind.bind(Effect.bindEffect)(Web_HTML.window)(Web_HTML_Window.location))(Web_HTML_Location.href);\n };\n var getCurrentUrl = function (v) {\n return function __do() {\n var urlString = getCurrentUrlString(Data_Unit.unit)();\n return Web_URL.fromAbsolute(urlString);\n };\n };\n var downloadFromAnchor = function (filenameFromObj) {\n return function (makeBlobFromObj) {\n return function (anchorEl) {\n return function (obj) {\n var filename = filenameFromObj(obj);\n var element = Web_HTML_HTMLAnchorElement.toElement(anchorEl);\n return function __do() {\n Web_DOM_Element.setAttribute(App_Constants.downloadAttr)(filename)(element)();\n Web_HTML_HTMLAnchorElement.setText(filename)(anchorEl)();\n var timestamp = Helpers_DateTime.getDateStringJS(Data_Unit.unit)();\n var locale = getLanguage(Data_Unit.unit)();\n var blobUrl = Web_File_Url.createObjectURL(makeBlobFromObj(obj)(timestamp)(Data_DateTimeFormat.localeToString(locale)))();\n Web_DOM_Element.setAttribute(App_Constants.hrefAttr)(blobUrl)(element)();\n return Web_HTML_HTMLElement.click(Web_HTML_HTMLAnchorElement.toHTMLElement(anchorEl))();\n };\n };\n };\n };\n };\n var downloadNote = function (aId) {\n return function (state) {\n return function __do() {\n var hiddenA = getElementFromId(aId)();\n if (hiddenA instanceof Data_Maybe.Nothing) {\n return Effect_Console.log(\"Error trying to download: hidden element not found: \" + aId)();\n };\n if (hiddenA instanceof Data_Maybe.Just) {\n var v = Web_HTML_HTMLAnchorElement.fromElement(hiddenA.value0);\n if (v instanceof Data_Maybe.Nothing) {\n return Effect_Console.log(\"Error trying to download: the element with id \" + (aId + \" is not an anchor\"))();\n };\n if (v instanceof Data_Maybe.Just) {\n return downloadFromAnchor(App_State.filenameFromState)(App_State.makeBlob)(v.value0)(state)();\n };\n throw new Error(\"Failed pattern match at Helpers.Browser (line 95, column 16 - line 100, column 84): \" + [ v.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Helpers.Browser (line 93, column 3 - line 100, column 84): \" + [ hiddenA.constructor.name ]);\n };\n };\n };\n exports[\"downloadNote\"] = downloadNote;\n exports[\"getCurrentUrl\"] = getCurrentUrl;\n exports[\"loadFromLocalStorage\"] = loadFromLocalStorage;\n exports[\"reverseGeoLocation\"] = reverseGeoLocation;\n exports[\"saveToLocalStorage\"] = saveToLocalStorage;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.getImpl = function(just) {\n return function(nothing) {\n return function(name) {\n return function(p) {\n var v = p.get(name);\n if (v === null) {\n return nothing;\n } else {\n return just(v);\n }\n }\n }\n }\n };\n})(PS[\"Web.URL.URLSearchParams\"] = PS[\"Web.URL.URLSearchParams\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.URL.URLSearchParams\"] = $PS[\"Web.URL.URLSearchParams\"] || {};\n var exports = $PS[\"Web.URL.URLSearchParams\"];\n var $foreign = $PS[\"Web.URL.URLSearchParams\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var get = $foreign.getImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n exports[\"get\"] = get;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"App.ShareTarget\"] = $PS[\"App.ShareTarget\"] || {};\n var exports = $PS[\"App.ShareTarget\"];\n var $foreign = $PS[\"App.ShareTarget\"];\n var App_State = $PS[\"App.State\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Promise = $PS[\"Control.Promise\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Note = $PS[\"Data.Note\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_URL = $PS[\"Data.URL\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Console = $PS[\"Effect.Console\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Helpers_Browser = $PS[\"Helpers.Browser\"];\n var Web_URL = $PS[\"Web.URL\"];\n var Web_URL_URLSearchParams = $PS[\"Web.URL.URLSearchParams\"]; \n var shareTargetFields = {\n title: \"title\",\n url: \"url\",\n text: \"text\"\n };\n var handleShare = function (dictMonadAff) {\n return function (win) {\n return function (v) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Helpers_Browser.getCurrentUrl(Data_Unit.unit)))(function (url) {\n if (url instanceof Data_Maybe.Just) {\n var toSearch = Web_URL.searchParams(url.value0);\n var sharedUrl = Web_URL_URLSearchParams.get(shareTargetFields.url)(toSearch);\n var sharedTitle = Web_URL_URLSearchParams.get(shareTargetFields.title)(toSearch);\n var sharedText = Web_URL_URLSearchParams.get(shareTargetFields.text)(toSearch);\n var maybeURL = Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Data_URL.noteUrlFromString)(sharedUrl);\n var note = Data_Note.fromShared(sharedTitle)(maybeURL)(sharedText);\n if (note.title instanceof Data_Maybe.Nothing && (note.url instanceof Data_Maybe.Nothing && (note.keywords instanceof Data_Maybe.Nothing && (note.shortDesc instanceof Data_Maybe.Nothing && note.longDesc instanceof Data_Maybe.Nothing)))) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(App_State.setNoteState_(dictMonadAff)(note))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Helpers_Browser.saveToLocalStorage(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)(win)(note)))(function () {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Effect_Console.log(\"Got shared note: \" + Data_Show.show(Data_Note.showNote)(note)));\n });\n });\n };\n if (url instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at App.ShareTarget (line 87, column 3 - line 113, column 25): \" + [ url.constructor.name ]);\n });\n };\n };\n };\n var canShare = $foreign.canShareJS(Data_Unit.unit);\n var shareNote = function (v) {\n var shortDescString = (function () {\n if (v.shortDesc instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n if (v.shortDesc instanceof Data_Maybe.Just) {\n return v.shortDesc.value0 + \"\\x0a\";\n };\n throw new Error(\"Failed pattern match at App.ShareTarget (line 61, column 21 - line 63, column 34): \" + [ v.shortDesc.constructor.name ]);\n })();\n var locationString = (function () {\n if (v.location instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n if (v.location instanceof Data_Maybe.Just) {\n return \"Location: \" + (v.location.value0 + \"\\x0a\\x0a\");\n };\n throw new Error(\"Failed pattern match at App.ShareTarget (line 57, column 20 - line 59, column 56): \" + [ v.location.constructor.name ]);\n })();\n var keywordString = (function () {\n if (v.keywords instanceof Data_Maybe.Nothing) {\n return \"\";\n };\n if (v.keywords instanceof Data_Maybe.Just) {\n return \"Keywords: \" + (Data_Show.show(Data_Note.showKeyWordArray)(v.keywords.value0) + \"\\x0a\\x0a\");\n };\n throw new Error(\"Failed pattern match at App.ShareTarget (line 53, column 19 - line 55, column 65): \" + [ v.keywords.constructor.name ]);\n })();\n var noteRecord = {\n title: Data_Maybe.fromMaybe(\"\")(v.title),\n url: Data_Maybe.fromMaybe(\"\")(Data_Functor.map(Data_Maybe.functorMaybe)(Data_URL.noteUrlToString)(v.url)),\n text: keywordString + (locationString + (shortDescString + Data_Maybe.fromMaybe(\"\")(v.longDesc)))\n };\n if (canShare) {\n return Control_Promise.toAffE($foreign.shareNoteJS(noteRecord));\n };\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Unit.unit);\n };\n exports[\"canShare\"] = canShare;\n exports[\"handleShare\"] = handleShare;\n exports[\"shareNote\"] = shareNote;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"DOM.HTML.Indexed.InputType\"] = $PS[\"DOM.HTML.Indexed.InputType\"] || {};\n var exports = $PS[\"DOM.HTML.Indexed.InputType\"];\n var InputButton = (function () {\n function InputButton() {\n\n };\n InputButton.value = new InputButton();\n return InputButton;\n })();\n var InputCheckbox = (function () {\n function InputCheckbox() {\n\n };\n InputCheckbox.value = new InputCheckbox();\n return InputCheckbox;\n })();\n var InputColor = (function () {\n function InputColor() {\n\n };\n InputColor.value = new InputColor();\n return InputColor;\n })();\n var InputDate = (function () {\n function InputDate() {\n\n };\n InputDate.value = new InputDate();\n return InputDate;\n })();\n var InputDatetimeLocal = (function () {\n function InputDatetimeLocal() {\n\n };\n InputDatetimeLocal.value = new InputDatetimeLocal();\n return InputDatetimeLocal;\n })();\n var InputEmail = (function () {\n function InputEmail() {\n\n };\n InputEmail.value = new InputEmail();\n return InputEmail;\n })();\n var InputFile = (function () {\n function InputFile() {\n\n };\n InputFile.value = new InputFile();\n return InputFile;\n })();\n var InputHidden = (function () {\n function InputHidden() {\n\n };\n InputHidden.value = new InputHidden();\n return InputHidden;\n })();\n var InputImage = (function () {\n function InputImage() {\n\n };\n InputImage.value = new InputImage();\n return InputImage;\n })();\n var InputMonth = (function () {\n function InputMonth() {\n\n };\n InputMonth.value = new InputMonth();\n return InputMonth;\n })();\n var InputNumber = (function () {\n function InputNumber() {\n\n };\n InputNumber.value = new InputNumber();\n return InputNumber;\n })();\n var InputPassword = (function () {\n function InputPassword() {\n\n };\n InputPassword.value = new InputPassword();\n return InputPassword;\n })();\n var InputRadio = (function () {\n function InputRadio() {\n\n };\n InputRadio.value = new InputRadio();\n return InputRadio;\n })();\n var InputRange = (function () {\n function InputRange() {\n\n };\n InputRange.value = new InputRange();\n return InputRange;\n })();\n var InputReset = (function () {\n function InputReset() {\n\n };\n InputReset.value = new InputReset();\n return InputReset;\n })();\n var InputSearch = (function () {\n function InputSearch() {\n\n };\n InputSearch.value = new InputSearch();\n return InputSearch;\n })();\n var InputSubmit = (function () {\n function InputSubmit() {\n\n };\n InputSubmit.value = new InputSubmit();\n return InputSubmit;\n })();\n var InputTel = (function () {\n function InputTel() {\n\n };\n InputTel.value = new InputTel();\n return InputTel;\n })();\n var InputText = (function () {\n function InputText() {\n\n };\n InputText.value = new InputText();\n return InputText;\n })();\n var InputTime = (function () {\n function InputTime() {\n\n };\n InputTime.value = new InputTime();\n return InputTime;\n })();\n var InputUrl = (function () {\n function InputUrl() {\n\n };\n InputUrl.value = new InputUrl();\n return InputUrl;\n })();\n var InputWeek = (function () {\n function InputWeek() {\n\n };\n InputWeek.value = new InputWeek();\n return InputWeek;\n })();\n var renderInputType = function (v) {\n if (v instanceof InputButton) {\n return \"button\";\n };\n if (v instanceof InputCheckbox) {\n return \"checkbox\";\n };\n if (v instanceof InputColor) {\n return \"color\";\n };\n if (v instanceof InputDate) {\n return \"date\";\n };\n if (v instanceof InputDatetimeLocal) {\n return \"datetime-local\";\n };\n if (v instanceof InputEmail) {\n return \"email\";\n };\n if (v instanceof InputFile) {\n return \"file\";\n };\n if (v instanceof InputHidden) {\n return \"hidden\";\n };\n if (v instanceof InputImage) {\n return \"image\";\n };\n if (v instanceof InputMonth) {\n return \"month\";\n };\n if (v instanceof InputNumber) {\n return \"number\";\n };\n if (v instanceof InputPassword) {\n return \"password\";\n };\n if (v instanceof InputRadio) {\n return \"radio\";\n };\n if (v instanceof InputRange) {\n return \"range\";\n };\n if (v instanceof InputReset) {\n return \"reset\";\n };\n if (v instanceof InputSearch) {\n return \"search\";\n };\n if (v instanceof InputSubmit) {\n return \"submit\";\n };\n if (v instanceof InputTel) {\n return \"tel\";\n };\n if (v instanceof InputText) {\n return \"text\";\n };\n if (v instanceof InputTime) {\n return \"time\";\n };\n if (v instanceof InputUrl) {\n return \"url\";\n };\n if (v instanceof InputWeek) {\n return \"week\";\n };\n throw new Error(\"Failed pattern match at DOM.HTML.Indexed.InputType (line 28, column 19 - line 50, column 22): \" + [ v.constructor.name ]);\n };\n exports[\"InputCheckbox\"] = InputCheckbox;\n exports[\"InputRadio\"] = InputRadio;\n exports[\"InputText\"] = InputText;\n exports[\"InputUrl\"] = InputUrl;\n exports[\"renderInputType\"] = renderInputType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Exists\"] = $PS[\"Data.Exists\"] || {};\n var exports = $PS[\"Data.Exists\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var runExists = Unsafe_Coerce.unsafeCoerce;\n var mkExists = Unsafe_Coerce.unsafeCoerce;\n exports[\"mkExists\"] = mkExists;\n exports[\"runExists\"] = runExists;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Data.Coyoneda\"] = $PS[\"Data.Coyoneda\"] || {};\n var exports = $PS[\"Data.Coyoneda\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Exists = $PS[\"Data.Exists\"]; \n var CoyonedaF = (function () {\n function CoyonedaF(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CoyonedaF.create = function (value0) {\n return function (value1) {\n return new CoyonedaF(value0, value1);\n };\n };\n return CoyonedaF;\n })();\n var Coyoneda = function (x) {\n return x;\n };\n var unCoyoneda = function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return f(v1.value0)(v1.value1);\n })(v);\n };\n };\n var coyoneda = function (k) {\n return function (fi) {\n return Coyoneda(Data_Exists.mkExists(new CoyonedaF(k, fi)));\n };\n };\n var functorCoyoneda = {\n map: function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return coyoneda(function ($84) {\n return f(v1.value0($84));\n })(v1.value1);\n })(v);\n };\n }\n };\n var liftCoyoneda = coyoneda(Control_Category.identity(Control_Category.categoryFn));\n exports[\"unCoyoneda\"] = unCoyoneda;\n exports[\"liftCoyoneda\"] = liftCoyoneda;\n exports[\"functorCoyoneda\"] = functorCoyoneda;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Query.HalogenQ\"] = $PS[\"Halogen.Query.HalogenQ\"] || {};\n var exports = $PS[\"Halogen.Query.HalogenQ\"]; \n var Initialize = (function () {\n function Initialize(value0) {\n this.value0 = value0;\n };\n Initialize.create = function (value0) {\n return new Initialize(value0);\n };\n return Initialize;\n })();\n var Finalize = (function () {\n function Finalize(value0) {\n this.value0 = value0;\n };\n Finalize.create = function (value0) {\n return new Finalize(value0);\n };\n return Finalize;\n })();\n var Receive = (function () {\n function Receive(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Receive.create = function (value0) {\n return function (value1) {\n return new Receive(value0, value1);\n };\n };\n return Receive;\n })();\n var Action = (function () {\n function Action(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Action.create = function (value0) {\n return function (value1) {\n return new Action(value0, value1);\n };\n };\n return Action;\n })();\n var Query = (function () {\n function Query(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Query.create = function (value0) {\n return function (value1) {\n return new Query(value0, value1);\n };\n };\n return Query;\n })();\n exports[\"Initialize\"] = Initialize;\n exports[\"Finalize\"] = Finalize;\n exports[\"Receive\"] = Receive;\n exports[\"Action\"] = Action;\n exports[\"Query\"] = Query;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Component\"] = $PS[\"Halogen.Component\"] || {};\n var exports = $PS[\"Halogen.Component\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Coyoneda = $PS[\"Data.Coyoneda\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Halogen_Data_Slot = $PS[\"Halogen.Data.Slot\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Halogen_Query_HalogenQ = $PS[\"Halogen.Query.HalogenQ\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var ComponentSlot = (function () {\n function ComponentSlot(value0) {\n this.value0 = value0;\n };\n ComponentSlot.create = function (value0) {\n return new ComponentSlot(value0);\n };\n return ComponentSlot;\n })();\n var ThunkSlot = (function () {\n function ThunkSlot(value0) {\n this.value0 = value0;\n };\n ThunkSlot.create = function (value0) {\n return new ThunkSlot(value0);\n };\n return ThunkSlot;\n })();\n var unComponentSlot = Unsafe_Coerce.unsafeCoerce;\n var unComponent = Unsafe_Coerce.unsafeCoerce;\n var mkEval = function (args) {\n return function (v) {\n if (v instanceof Halogen_Query_HalogenQ.Initialize) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.initialize))(v.value0);\n };\n if (v instanceof Halogen_Query_HalogenQ.Finalize) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.finalize))(v.value0);\n };\n if (v instanceof Halogen_Query_HalogenQ.Receive) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.receive(v.value0)))(v.value1);\n };\n if (v instanceof Halogen_Query_HalogenQ.Action) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(args.handleAction(v.value0))(v.value1);\n };\n if (v instanceof Halogen_Query_HalogenQ.Query) {\n return Data_Coyoneda.unCoyoneda(function (g) {\n var $25 = Data_Functor.map(Halogen_Query_HalogenM.functorHalogenM)(Data_Maybe.maybe(v.value1(Data_Unit.unit))(g));\n return function ($26) {\n return $25(args.handleQuery($26));\n };\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at Halogen.Component (line 182, column 15 - line 192, column 70): \" + [ v.constructor.name ]);\n };\n };\n var mkComponentSlot = Unsafe_Coerce.unsafeCoerce;\n var mkComponent = Unsafe_Coerce.unsafeCoerce;\n var defaultEval = {\n handleAction: Data_Function[\"const\"](Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit)),\n handleQuery: Data_Function[\"const\"](Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Maybe.Nothing.value)),\n receive: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n initialize: Data_Maybe.Nothing.value,\n finalize: Data_Maybe.Nothing.value\n };\n var componentSlot = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (p) {\n return function (comp) {\n return function (input) {\n return function (output) {\n return mkComponentSlot({\n get: Halogen_Data_Slot.lookup()(dictIsSymbol)(dictOrd)(label)(p),\n pop: Halogen_Data_Slot.pop()(dictIsSymbol)(dictOrd)(label)(p),\n set: Halogen_Data_Slot.insert()(dictIsSymbol)(dictOrd)(label)(p),\n component: comp,\n input: input,\n output: output\n });\n };\n };\n };\n };\n };\n };\n };\n };\n exports[\"mkComponent\"] = mkComponent;\n exports[\"unComponent\"] = unComponent;\n exports[\"mkEval\"] = mkEval;\n exports[\"defaultEval\"] = defaultEval;\n exports[\"ComponentSlot\"] = ComponentSlot;\n exports[\"ThunkSlot\"] = ThunkSlot;\n exports[\"componentSlot\"] = componentSlot;\n exports[\"unComponentSlot\"] = unComponentSlot;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.VDom.Machine\"] = $PS[\"Halogen.VDom.Machine\"] || {};\n var exports = $PS[\"Halogen.VDom.Machine\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var Step = (function () {\n function Step(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Step.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Step(value0, value1, value2, value3);\n };\n };\n };\n };\n return Step;\n })();\n var unStep = Unsafe_Coerce.unsafeCoerce;\n var step = function (v, a) {\n return v.value2(v.value1, a);\n };\n var mkStep = Unsafe_Coerce.unsafeCoerce;\n var halt = function (v) {\n return v.value3(v.value1);\n };\n var extract = unStep(function (v) {\n return v.value0;\n });\n exports[\"Step\"] = Step;\n exports[\"mkStep\"] = mkStep;\n exports[\"unStep\"] = unStep;\n exports[\"extract\"] = extract;\n exports[\"step\"] = step;\n exports[\"halt\"] = halt;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafeGetAny = function (key, obj) {\n return obj[key];\n };\n\n exports.unsafeHasAny = function (key, obj) {\n return obj.hasOwnProperty(key);\n };\n\n exports.unsafeSetAny = function (key, val, obj) {\n obj[key] = val;\n };\n\n exports.forE = function (a, f) {\n var b = [];\n for (var i = 0; i < a.length; i++) {\n b.push(f(i, a[i]));\n }\n return b;\n };\n\n exports.forEachE = function (a, f) {\n for (var i = 0; i < a.length; i++) {\n f(a[i]);\n }\n };\n\n exports.forInE = function (o, f) {\n var ks = Object.keys(o);\n for (var i = 0; i < ks.length; i++) {\n var k = ks[i];\n f(k, o[k]);\n }\n };\n\n exports.diffWithIxE = function (a1, a2, f1, f2, f3) {\n var a3 = [];\n var l1 = a1.length;\n var l2 = a2.length;\n var i = 0;\n while (1) {\n if (i < l1) {\n if (i < l2) {\n a3.push(f1(i, a1[i], a2[i]));\n } else {\n f2(i, a1[i]);\n }\n } else if (i < l2) {\n a3.push(f3(i, a2[i]));\n } else {\n break;\n }\n i++;\n }\n return a3;\n };\n\n exports.strMapWithIxE = function (as, fk, f) {\n var o = {};\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n var k = fk(a);\n o[k] = f(k, i, a);\n }\n return o;\n };\n\n exports.diffWithKeyAndIxE = function (o1, as, fk, f1, f2, f3) {\n var o2 = {};\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n var k = fk(a);\n if (o1.hasOwnProperty(k)) {\n o2[k] = f1(k, i, o1[k], a);\n } else {\n o2[k] = f3(k, i, a);\n }\n }\n for (var k in o1) {\n if (k in o2) {\n continue;\n }\n f2(k, o1[k]);\n }\n return o2;\n };\n\n exports.refEq = function (a, b) {\n return a === b;\n };\n\n exports.createTextNode = function (s, doc) {\n return doc.createTextNode(s);\n };\n\n exports.setTextContent = function (s, n) {\n n.textContent = s;\n };\n\n exports.createElement = function (ns, name, doc) {\n if (ns != null) {\n return doc.createElementNS(ns, name);\n } else {\n return doc.createElement(name)\n }\n };\n\n exports.insertChildIx = function (i, a, b) {\n var n = b.childNodes.item(i) || null;\n if (n !== a) {\n b.insertBefore(a, n);\n }\n };\n\n exports.removeChild = function (a, b) {\n if (b && a.parentNode === b) {\n b.removeChild(a);\n }\n };\n\n exports.parentNode = function (a) {\n return a.parentNode;\n };\n\n exports.setAttribute = function (ns, attr, val, el) {\n if (ns != null) {\n el.setAttributeNS(ns, attr, val);\n } else {\n el.setAttribute(attr, val);\n }\n };\n\n exports.removeAttribute = function (ns, attr, el) {\n if (ns != null) {\n el.removeAttributeNS(ns, attr);\n } else {\n el.removeAttribute(attr);\n }\n };\n\n exports.hasAttribute = function (ns, attr, el) {\n if (ns != null) {\n return el.hasAttributeNS(ns, attr);\n } else {\n return el.hasAttribute(attr);\n }\n };\n\n exports.addEventListener = function (ev, listener, el) {\n el.addEventListener(ev, listener, false);\n };\n\n exports.removeEventListener = function (ev, listener, el) {\n el.removeEventListener(ev, listener, false);\n };\n\n exports.jsUndefined = void 0;\n})(PS[\"Halogen.VDom.Util\"] = PS[\"Halogen.VDom.Util\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.VDom.Util\"] = $PS[\"Halogen.VDom.Util\"] || {};\n var exports = $PS[\"Halogen.VDom.Util\"];\n var $foreign = $PS[\"Halogen.VDom.Util\"];\n var Foreign_Object_ST = $PS[\"Foreign.Object.ST\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var unsafeLookup = $foreign.unsafeGetAny;\n var unsafeFreeze = Unsafe_Coerce.unsafeCoerce;\n var pokeMutMap = $foreign.unsafeSetAny;\n var newMutMap = Foreign_Object_ST[\"new\"];\n exports[\"newMutMap\"] = newMutMap;\n exports[\"pokeMutMap\"] = pokeMutMap;\n exports[\"unsafeFreeze\"] = unsafeFreeze;\n exports[\"unsafeLookup\"] = unsafeLookup;\n exports[\"unsafeGetAny\"] = $foreign.unsafeGetAny;\n exports[\"unsafeHasAny\"] = $foreign.unsafeHasAny;\n exports[\"unsafeSetAny\"] = $foreign.unsafeSetAny;\n exports[\"forE\"] = $foreign.forE;\n exports[\"forEachE\"] = $foreign.forEachE;\n exports[\"forInE\"] = $foreign.forInE;\n exports[\"diffWithIxE\"] = $foreign.diffWithIxE;\n exports[\"diffWithKeyAndIxE\"] = $foreign.diffWithKeyAndIxE;\n exports[\"strMapWithIxE\"] = $foreign.strMapWithIxE;\n exports[\"refEq\"] = $foreign.refEq;\n exports[\"createTextNode\"] = $foreign.createTextNode;\n exports[\"setTextContent\"] = $foreign.setTextContent;\n exports[\"createElement\"] = $foreign.createElement;\n exports[\"insertChildIx\"] = $foreign.insertChildIx;\n exports[\"removeChild\"] = $foreign.removeChild;\n exports[\"parentNode\"] = $foreign.parentNode;\n exports[\"setAttribute\"] = $foreign.setAttribute;\n exports[\"removeAttribute\"] = $foreign.removeAttribute;\n exports[\"hasAttribute\"] = $foreign.hasAttribute;\n exports[\"addEventListener\"] = $foreign.addEventListener;\n exports[\"removeEventListener\"] = $foreign.removeEventListener;\n exports[\"jsUndefined\"] = $foreign.jsUndefined;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.eventListener = function (fn) {\n return function () {\n return function (event) {\n return fn(event)();\n };\n };\n };\n\n exports.addEventListener = function (type) {\n return function (listener) {\n return function (useCapture) {\n return function (target) {\n return function () {\n return target.addEventListener(type, listener, useCapture);\n };\n };\n };\n };\n };\n\n exports.removeEventListener = function (type) {\n return function (listener) {\n return function (useCapture) {\n return function (target) {\n return function () {\n return target.removeEventListener(type, listener, useCapture);\n };\n };\n };\n };\n };\n})(PS[\"Web.Event.EventTarget\"] = PS[\"Web.Event.EventTarget\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.Event.EventTarget\"] = $PS[\"Web.Event.EventTarget\"] || {};\n var exports = $PS[\"Web.Event.EventTarget\"];\n var $foreign = $PS[\"Web.Event.EventTarget\"];\n exports[\"eventListener\"] = $foreign.eventListener;\n exports[\"addEventListener\"] = $foreign.addEventListener;\n exports[\"removeEventListener\"] = $foreign.removeEventListener;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.VDom.DOM.Prop\"] = $PS[\"Halogen.VDom.DOM.Prop\"] || {};\n var exports = $PS[\"Halogen.VDom.DOM.Prop\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Foreign = $PS[\"Foreign\"];\n var Foreign_Object = $PS[\"Foreign.Object\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Util = $PS[\"Halogen.VDom.Util\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Web_Event_EventTarget = $PS[\"Web.Event.EventTarget\"]; \n var Created = (function () {\n function Created(value0) {\n this.value0 = value0;\n };\n Created.create = function (value0) {\n return new Created(value0);\n };\n return Created;\n })();\n var Removed = (function () {\n function Removed(value0) {\n this.value0 = value0;\n };\n Removed.create = function (value0) {\n return new Removed(value0);\n };\n return Removed;\n })();\n var Attribute = (function () {\n function Attribute(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n Attribute.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new Attribute(value0, value1, value2);\n };\n };\n };\n return Attribute;\n })();\n var Property = (function () {\n function Property(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Property.create = function (value0) {\n return function (value1) {\n return new Property(value0, value1);\n };\n };\n return Property;\n })();\n var Handler = (function () {\n function Handler(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Handler.create = function (value0) {\n return function (value1) {\n return new Handler(value0, value1);\n };\n };\n return Handler;\n })();\n var Ref = (function () {\n function Ref(value0) {\n this.value0 = value0;\n };\n Ref.create = function (value0) {\n return new Ref(value0);\n };\n return Ref;\n })();\n var unsafeGetProperty = Halogen_VDom_Util.unsafeGetAny;\n var setProperty = Halogen_VDom_Util.unsafeSetAny;\n var removeProperty = function (key, el) {\n var v = Halogen_VDom_Util.hasAttribute(Data_Nullable[\"null\"], key, el);\n if (v) {\n return Halogen_VDom_Util.removeAttribute(Data_Nullable[\"null\"], key, el);\n };\n var v1 = Foreign.typeOf(Halogen_VDom_Util.unsafeGetAny(key, el));\n if (v1 === \"string\") {\n return Halogen_VDom_Util.unsafeSetAny(key, \"\", el);\n };\n if (key === \"rowSpan\") {\n return Halogen_VDom_Util.unsafeSetAny(key, 1, el);\n };\n if (key === \"colSpan\") {\n return Halogen_VDom_Util.unsafeSetAny(key, 1, el);\n };\n return Halogen_VDom_Util.unsafeSetAny(key, Halogen_VDom_Util.jsUndefined, el);\n };\n var propToStrKey = function (v) {\n if (v instanceof Attribute && v.value0 instanceof Data_Maybe.Just) {\n return \"attr/\" + (v.value0.value0 + (\":\" + v.value1));\n };\n if (v instanceof Attribute) {\n return \"attr/:\" + v.value1;\n };\n if (v instanceof Property) {\n return \"prop/\" + v.value0;\n };\n if (v instanceof Handler) {\n return \"handler/\" + v.value0;\n };\n if (v instanceof Ref) {\n return \"ref\";\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 182, column 16 - line 187, column 16): \" + [ v.constructor.name ]);\n };\n var propFromString = Unsafe_Coerce.unsafeCoerce;\n var propFromNumber = Unsafe_Coerce.unsafeCoerce;\n var propFromInt = Unsafe_Coerce.unsafeCoerce;\n var propFromBoolean = Unsafe_Coerce.unsafeCoerce;\n var buildProp = function (emit) {\n return function (el) {\n var removeProp = function (prevEvents) {\n return function (v, v1) {\n if (v1 instanceof Attribute) {\n return Halogen_VDom_Util.removeAttribute(Data_Nullable.toNullable(v1.value0), v1.value1, el);\n };\n if (v1 instanceof Property) {\n return removeProperty(v1.value0, el);\n };\n if (v1 instanceof Handler) {\n var handler = Halogen_VDom_Util.unsafeLookup(v1.value0, prevEvents);\n return Halogen_VDom_Util.removeEventListener(v1.value0, Data_Tuple.fst(handler), el);\n };\n if (v1 instanceof Ref) {\n return Data_Unit.unit;\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 169, column 5 - line 179, column 18): \" + [ v1.constructor.name ]);\n };\n };\n var mbEmit = function (v) {\n if (v instanceof Data_Maybe.Just) {\n return emit(v.value0)();\n };\n return Data_Unit.unit;\n };\n var haltProp = function (state) {\n var v = Foreign_Object.lookup(\"ref\")(state.props);\n if (v instanceof Data_Maybe.Just && v.value0 instanceof Ref) {\n return mbEmit(v.value0.value0(new Removed(el)));\n };\n return Data_Unit.unit;\n };\n var diffProp = function (prevEvents, events) {\n return function (v, v1, v11, v2) {\n if (v11 instanceof Attribute && v2 instanceof Attribute) {\n var $57 = v11.value2 === v2.value2;\n if ($57) {\n return v2;\n };\n Halogen_VDom_Util.setAttribute(Data_Nullable.toNullable(v2.value0), v2.value1, v2.value2, el);\n return v2;\n };\n if (v11 instanceof Property && v2 instanceof Property) {\n var v4 = Halogen_VDom_Util.refEq(v11.value1, v2.value1);\n if (v4) {\n return v2;\n };\n if (v2.value0 === \"value\") {\n var elVal = unsafeGetProperty(\"value\", el);\n var $66 = Halogen_VDom_Util.refEq(elVal, v2.value1);\n if ($66) {\n return v2;\n };\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n if (v11 instanceof Handler && v2 instanceof Handler) {\n var handler = Halogen_VDom_Util.unsafeLookup(v2.value0, prevEvents);\n Effect_Ref.write(v2.value1)(Data_Tuple.snd(handler))();\n Halogen_VDom_Util.pokeMutMap(v2.value0, handler, events);\n return v2;\n };\n return v2;\n };\n };\n var applyProp = function (events) {\n return function (v, v1, v2) {\n if (v2 instanceof Attribute) {\n Halogen_VDom_Util.setAttribute(Data_Nullable.toNullable(v2.value0), v2.value1, v2.value2, el);\n return v2;\n };\n if (v2 instanceof Property) {\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n if (v2 instanceof Handler) {\n var v3 = Halogen_VDom_Util.unsafeGetAny(v2.value0, events);\n if (Halogen_VDom_Util.unsafeHasAny(v2.value0, events)) {\n Effect_Ref.write(v2.value1)(Data_Tuple.snd(v3))();\n return v2;\n };\n var ref = Effect_Ref[\"new\"](v2.value1)();\n var listener = Web_Event_EventTarget.eventListener(function (ev) {\n return function __do() {\n var f$prime = Effect_Ref.read(ref)();\n return mbEmit(f$prime(ev));\n };\n })();\n Halogen_VDom_Util.pokeMutMap(v2.value0, new Data_Tuple.Tuple(listener, ref), events);\n Halogen_VDom_Util.addEventListener(v2.value0, listener, el);\n return v2;\n };\n if (v2 instanceof Ref) {\n mbEmit(v2.value0(new Created(el)));\n return v2;\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 113, column 5 - line 135, column 15): \" + [ v2.constructor.name ]);\n };\n };\n var patchProp = function (state, ps2) {\n var events = Halogen_VDom_Util.newMutMap();\n var onThis = removeProp(state.events);\n var onThese = diffProp(state.events, events);\n var onThat = applyProp(events);\n var props = Halogen_VDom_Util.diffWithKeyAndIxE(state.props, ps2, propToStrKey, onThese, onThis, onThat);\n var nextState = {\n events: Halogen_VDom_Util.unsafeFreeze(events),\n props: props\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Data_Unit.unit, nextState, patchProp, haltProp));\n };\n var renderProp = function (ps1) {\n var events = Halogen_VDom_Util.newMutMap();\n var ps1$prime = Halogen_VDom_Util.strMapWithIxE(ps1, propToStrKey, applyProp(events));\n var state = {\n events: Halogen_VDom_Util.unsafeFreeze(events),\n props: ps1$prime\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Data_Unit.unit, state, patchProp, haltProp));\n };\n return renderProp;\n };\n };\n exports[\"Property\"] = Property;\n exports[\"Handler\"] = Handler;\n exports[\"propFromString\"] = propFromString;\n exports[\"propFromBoolean\"] = propFromBoolean;\n exports[\"propFromInt\"] = propFromInt;\n exports[\"propFromNumber\"] = propFromNumber;\n exports[\"buildProp\"] = buildProp;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.VDom.Types\"] = $PS[\"Halogen.VDom.Types\"] || {};\n var exports = $PS[\"Halogen.VDom.Types\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Text = (function () {\n function Text(value0) {\n this.value0 = value0;\n };\n Text.create = function (value0) {\n return new Text(value0);\n };\n return Text;\n })();\n var Elem = (function () {\n function Elem(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Elem.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Elem(value0, value1, value2, value3);\n };\n };\n };\n };\n return Elem;\n })();\n var Keyed = (function () {\n function Keyed(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Keyed.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Keyed(value0, value1, value2, value3);\n };\n };\n };\n };\n return Keyed;\n })();\n var Widget = (function () {\n function Widget(value0) {\n this.value0 = value0;\n };\n Widget.create = function (value0) {\n return new Widget(value0);\n };\n return Widget;\n })();\n var Grafted = (function () {\n function Grafted(value0) {\n this.value0 = value0;\n };\n Grafted.create = function (value0) {\n return new Grafted(value0);\n };\n return Grafted;\n })();\n var Graft = (function () {\n function Graft(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n Graft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new Graft(value0, value1, value2);\n };\n };\n };\n return Graft;\n })();\n var unGraft = function (f) {\n return function ($55) {\n return f($55);\n };\n };\n var graft = Unsafe_Coerce.unsafeCoerce;\n var bifunctorGraft = {\n bimap: function (f) {\n return function (g) {\n return unGraft(function (v) {\n return graft(new Graft(function ($57) {\n return f(v.value0($57));\n }, function ($58) {\n return g(v.value1($58));\n }, v.value2));\n });\n };\n }\n };\n var runGraft = unGraft(function (v) {\n var go = function (v2) {\n if (v2 instanceof Text) {\n return new Text(v2.value0);\n };\n if (v2 instanceof Elem) {\n return new Elem(v2.value0, v2.value1, v.value0(v2.value2), Data_Functor.map(Data_Functor.functorArray)(go)(v2.value3));\n };\n if (v2 instanceof Keyed) {\n return new Keyed(v2.value0, v2.value1, v.value0(v2.value2), Data_Functor.map(Data_Functor.functorArray)(Data_Functor.map(Data_Tuple.functorTuple)(go))(v2.value3));\n };\n if (v2 instanceof Widget) {\n return new Widget(v.value1(v2.value0));\n };\n if (v2 instanceof Grafted) {\n return new Grafted(Data_Bifunctor.bimap(bifunctorGraft)(v.value0)(v.value1)(v2.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Types (line 86, column 7 - line 86, column 27): \" + [ v2.constructor.name ]);\n };\n return go(v.value2);\n });\n exports[\"Text\"] = Text;\n exports[\"Elem\"] = Elem;\n exports[\"Keyed\"] = Keyed;\n exports[\"Widget\"] = Widget;\n exports[\"Grafted\"] = Grafted;\n exports[\"runGraft\"] = runGraft;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.HTML.Core\"] = $PS[\"Halogen.HTML.Core\"] || {};\n var exports = $PS[\"Halogen.HTML.Core\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var Halogen_VDom_DOM_Prop = $PS[\"Halogen.VDom.DOM.Prop\"];\n var Halogen_VDom_Types = $PS[\"Halogen.VDom.Types\"]; \n var HTML = function (x) {\n return x;\n };\n var widget = function ($19) {\n return HTML(Halogen_VDom_Types.Widget.create($19));\n };\n var toPropValue = function (dict) {\n return dict.toPropValue;\n };\n var text = function ($20) {\n return HTML(Halogen_VDom_Types.Text.create($20));\n };\n var prop = function (dictIsProp) {\n return function (v) {\n var $22 = Halogen_VDom_DOM_Prop.Property.create(v);\n var $23 = toPropValue(dictIsProp);\n return function ($24) {\n return $22($23($24));\n };\n };\n };\n var isPropString = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromString\n };\n var isPropNumber = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromNumber\n };\n var isPropInt = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromInt\n };\n var isPropInputType = {\n toPropValue: function ($38) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_InputType.renderInputType($38));\n }\n };\n var isPropBoolean = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromBoolean\n };\n var handler = Halogen_VDom_DOM_Prop.Handler.create;\n var element = function (ns) {\n return function (name) {\n return function (props) {\n return function (children) {\n return new Halogen_VDom_Types.Elem(ns, name, props, children);\n };\n };\n };\n };\n exports[\"widget\"] = widget;\n exports[\"text\"] = text;\n exports[\"element\"] = element;\n exports[\"prop\"] = prop;\n exports[\"handler\"] = handler;\n exports[\"isPropString\"] = isPropString;\n exports[\"isPropInt\"] = isPropInt;\n exports[\"isPropNumber\"] = isPropNumber;\n exports[\"isPropBoolean\"] = isPropBoolean;\n exports[\"isPropInputType\"] = isPropInputType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.HTML.Elements\"] = $PS[\"Halogen.HTML.Elements\"] || {};\n var exports = $PS[\"Halogen.HTML.Elements\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var element = Halogen_HTML_Core.element(Data_Maybe.Nothing.value);\n var fieldset = element(\"fieldset\");\n var h2 = element(\"h2\");\n var input = function (props) {\n return element(\"input\")(props)([ ]);\n }; \n var label = element(\"label\");\n var legend = element(\"legend\");\n var span = element(\"span\");\n var span_ = span([ ]);\n var textarea = function (es) {\n return element(\"textarea\")(es)([ ]);\n }; \n var div = element(\"div\");\n var div_ = div([ ]);\n var button = element(\"button\");\n var br = function (props) {\n return element(\"br\")(props)([ ]);\n };\n var br_ = br([ ]); \n var a = element(\"a\");\n exports[\"a\"] = a;\n exports[\"br_\"] = br_;\n exports[\"button\"] = button;\n exports[\"div\"] = div;\n exports[\"div_\"] = div_;\n exports[\"fieldset\"] = fieldset;\n exports[\"h2\"] = h2;\n exports[\"input\"] = input;\n exports[\"label\"] = label;\n exports[\"legend\"] = legend;\n exports[\"span\"] = span;\n exports[\"span_\"] = span_;\n exports[\"textarea\"] = textarea;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafeReadPropImpl = function (f, s, key, value) {\n return value == null ? f : s(value[key]);\n };\n})(PS[\"Foreign.Index\"] = PS[\"Foreign.Index\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Foreign.Index\"] = $PS[\"Foreign.Index\"] || {};\n var exports = $PS[\"Foreign.Index\"];\n var $foreign = $PS[\"Foreign.Index\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Foreign = $PS[\"Foreign\"]; \n var unsafeReadProp = function (dictMonad) {\n return function (k) {\n return function (value) {\n return $foreign.unsafeReadPropImpl(Foreign.fail(dictMonad)(new Foreign.TypeMismatch(\"object\", Foreign.typeOf(value))), Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad)), k, value);\n };\n };\n };\n var readProp = function (dictMonad) {\n return unsafeReadProp(dictMonad);\n };\n exports[\"readProp\"] = readProp;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Query.Input\"] = $PS[\"Halogen.Query.Input\"] || {};\n var exports = $PS[\"Halogen.Query.Input\"];\n var RefUpdate = (function () {\n function RefUpdate(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n RefUpdate.create = function (value0) {\n return function (value1) {\n return new RefUpdate(value0, value1);\n };\n };\n return RefUpdate;\n })();\n var Action = (function () {\n function Action(value0) {\n this.value0 = value0;\n };\n Action.create = function (value0) {\n return new Action(value0);\n };\n return Action;\n })();\n exports[\"RefUpdate\"] = RefUpdate;\n exports[\"Action\"] = Action;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._currentTarget = function (e) {\n return e.currentTarget;\n };\n})(PS[\"Web.Event.Event\"] = PS[\"Web.Event.Event\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.Event.Event\"] = $PS[\"Web.Event.Event\"] || {};\n var exports = $PS[\"Web.Event.Event\"];\n var $foreign = $PS[\"Web.Event.Event\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var currentTarget = function ($5) {\n return Data_Nullable.toMaybe($foreign[\"_currentTarget\"]($5));\n };\n exports[\"currentTarget\"] = currentTarget;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.HTML.Event.EventTypes\"] = $PS[\"Web.HTML.Event.EventTypes\"] || {};\n var exports = $PS[\"Web.HTML.Event.EventTypes\"];\n var input = \"input\";\n var domcontentloaded = \"DOMContentLoaded\";\n var change = \"change\";\n exports[\"change\"] = change;\n exports[\"domcontentloaded\"] = domcontentloaded;\n exports[\"input\"] = input;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.UIEvent.MouseEvent.EventTypes\"] = $PS[\"Web.UIEvent.MouseEvent.EventTypes\"] || {};\n var exports = $PS[\"Web.UIEvent.MouseEvent.EventTypes\"];\n var click = \"click\";\n exports[\"click\"] = click;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.HTML.Events\"] = $PS[\"Halogen.HTML.Events\"] || {};\n var exports = $PS[\"Halogen.HTML.Events\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_Except = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Foreign = $PS[\"Foreign\"];\n var Foreign_Index = $PS[\"Foreign.Index\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_Query_Input = $PS[\"Halogen.Query.Input\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Web_Event_Event = $PS[\"Web.Event.Event\"];\n var Web_HTML_Event_EventTypes = $PS[\"Web.HTML.Event.EventTypes\"];\n var Web_UIEvent_MouseEvent_EventTypes = $PS[\"Web.UIEvent.MouseEvent.EventTypes\"];\n var mouseHandler = Unsafe_Coerce.unsafeCoerce;\n var handler$prime = function (et) {\n return function (f) {\n return Halogen_HTML_Core.handler(et)(function (ev) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(Halogen_Query_Input.Action.create)(f(ev));\n });\n };\n };\n var handler = function (et) {\n return function (f) {\n return Halogen_HTML_Core.handler(et)(function (ev) {\n return new Data_Maybe.Just(new Halogen_Query_Input.Action(f(ev)));\n });\n };\n }; \n var onClick = (function () {\n var $1 = handler(Web_UIEvent_MouseEvent_EventTypes.click);\n return function ($2) {\n return $1(mouseHandler($2));\n };\n })();\n var addForeignPropHandler = function (key) {\n return function (prop) {\n return function (reader) {\n return function (f) {\n var go = function (a) {\n return Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(reader)(Foreign_Index.readProp(Data_Identity.monadIdentity)(prop))(Foreign.unsafeToForeign(a));\n };\n return handler$prime(key)(Control_Bind.composeKleisli(Data_Maybe.bindMaybe)(Web_Event_Event.currentTarget)(function (e) {\n return Data_Either.either(Data_Function[\"const\"](Data_Maybe.Nothing.value))(function ($71) {\n return Data_Maybe.Just.create(f($71));\n })(Control_Monad_Except.runExcept(go(e)));\n }));\n };\n };\n };\n };\n var onChecked = addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"checked\")(Foreign.readBoolean(Data_Identity.monadIdentity)); \n var onValueInput = addForeignPropHandler(Web_HTML_Event_EventTypes.input)(\"value\")(Foreign.readString(Data_Identity.monadIdentity));\n exports[\"onClick\"] = onClick;\n exports[\"onValueInput\"] = onValueInput;\n exports[\"onChecked\"] = onChecked;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.HTML.Properties\"] = $PS[\"Halogen.HTML.Properties\"] || {};\n var exports = $PS[\"Halogen.HTML.Properties\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var prop = function (dictIsProp) {\n return Halogen_HTML_Core.prop(dictIsProp);\n }; \n var rows = prop(Halogen_HTML_Core.isPropInt)(\"rows\"); \n var type_ = function (dictIsProp) {\n return prop(dictIsProp)(\"type\");\n };\n var value = prop(Halogen_HTML_Core.isPropString)(\"value\"); \n var placeholder = prop(Halogen_HTML_Core.isPropString)(\"placeholder\");\n var name = prop(Halogen_HTML_Core.isPropString)(\"name\"); \n var min = prop(Halogen_HTML_Core.isPropNumber)(\"min\"); \n var id = prop(Halogen_HTML_Core.isPropString)(\"id\");\n var $$for = prop(Halogen_HTML_Core.isPropString)(\"htmlFor\"); \n var cols = prop(Halogen_HTML_Core.isPropInt)(\"cols\"); \n var classes = (function () {\n var $12 = prop(Halogen_HTML_Core.isPropString)(\"className\");\n var $13 = Data_String_Common.joinWith(\" \");\n var $14 = Data_Functor.map(Data_Functor.functorArray)(Data_Newtype.unwrap());\n return function ($15) {\n return $12($13($14($15)));\n };\n })();\n var checked = prop(Halogen_HTML_Core.isPropBoolean)(\"checked\");\n exports[\"prop\"] = prop;\n exports[\"classes\"] = classes;\n exports[\"cols\"] = cols;\n exports[\"rows\"] = rows;\n exports[\"for\"] = $$for;\n exports[\"id\"] = id;\n exports[\"name\"] = name;\n exports[\"type_\"] = type_;\n exports[\"value\"] = value;\n exports[\"min\"] = min;\n exports[\"checked\"] = checked;\n exports[\"placeholder\"] = placeholder;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Helpers.Components\"] = $PS[\"Helpers.Components\"] || {};\n var exports = $PS[\"Helpers.Components\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Note = $PS[\"Data.Note\"];\n var Data_Options = $PS[\"Data.Options\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Helpers_Browser = $PS[\"Helpers.Browser\"];\n var Web_HTML = $PS[\"Web.HTML\"]; \n var setState = function (dictMonadAff) {\n return function (state) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return state;\n });\n };\n };\n var modifyStateAndSave = function (dictMonadAff) {\n return function (f) {\n return function (newVal) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(f(newVal))(function (newStat) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Web_HTML.window))(function (win) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Helpers_Browser.saveToLocalStorage(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)(win)(newStat.note)))(function () {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Helpers_Browser.saveToLocalStorage(Data_Options.storeKeyIdOptions)(Data_Options.encodeJsonOptions)(win)(newStat.options));\n });\n });\n });\n };\n };\n };\n var modifyComponentStateAndSave = function (dictMonadAff) {\n return function (dictStoreKey) {\n return function (dictEncodeJson) {\n return function (f) {\n return function (newVal) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(f(newVal))(function (newStat) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Web_HTML.window))(function (win) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Helpers_Browser.saveToLocalStorage(dictStoreKey)(dictEncodeJson)(win)(newStat));\n });\n });\n };\n };\n };\n };\n };\n exports[\"modifyComponentStateAndSave\"] = modifyComponentStateAndSave;\n exports[\"modifyStateAndSave\"] = modifyStateAndSave;\n exports[\"setState\"] = setState;\n})(PS);\n(function($PS) {\n \n // SPDX-License-Identifier: GPL-3.0-or-later\n // Copyright (C) 2022 Roland Csaszar\n //\n // Project: notoy-pwa\n // File: NoteComponent.purs\n // Date: 03.Feb.2022\n //\n // ==============================================================================\n // | Module App.NoteComponent, the Halogen component for the note.\n \"use strict\";\n $PS[\"App.NoteComponent\"] = $PS[\"App.NoteComponent\"] || {};\n var exports = $PS[\"App.NoteComponent\"];\n var App_Constants = $PS[\"App.Constants\"];\n var App_Geolocation = $PS[\"App.Geolocation\"];\n var App_ShareTarget = $PS[\"App.ShareTarget\"];\n var App_State = $PS[\"App.State\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Note = $PS[\"Data.Note\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_String_Regex = $PS[\"Data.String.Regex\"];\n var Data_String_Regex_Flags = $PS[\"Data.String.Regex.Flags\"];\n var Data_String_Regex_Unsafe = $PS[\"Data.String.Regex.Unsafe\"];\n var Data_URL = $PS[\"Data.URL\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Events = $PS[\"Halogen.HTML.Events\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Helpers_Components = $PS[\"Helpers.Components\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n\n /**\n * ------------------------------------------------------------------------------\n * | All actions the note component sends to the parent.\n * |\n * | * Download - Download the current note using the current `Options` state.\n * | * Geolocation - Do a lookup of the current position, maybe using reverse\n * | geolocation (if enabled in the options).\n * | * Share - Share the note with other apps.\n */ \n var Download = (function () {\n function Download(value0) {\n this.value0 = value0;\n };\n Download.create = function (value0) {\n return new Download(value0);\n };\n return Download;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | All actions the note component sends to the parent.\n * |\n * | * Download - Download the current note using the current `Options` state.\n * | * Geolocation - Do a lookup of the current position, maybe using reverse\n * | geolocation (if enabled in the options).\n * | * Share - Share the note with other apps.\n */ \n var Geolocation = (function () {\n function Geolocation(value0) {\n this.value0 = value0;\n };\n Geolocation.create = function (value0) {\n return new Geolocation(value0);\n };\n return Geolocation;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | All actions the note component sends to the parent.\n * |\n * | * Download - Download the current note using the current `Options` state.\n * | * Geolocation - Do a lookup of the current position, maybe using reverse\n * | geolocation (if enabled in the options).\n * | * Share - Share the note with other apps.\n */ \n var Share = (function () {\n function Share(value0) {\n this.value0 = value0;\n };\n Share.create = function (value0) {\n return new Share(value0);\n };\n return Share;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of a note component.\n * |\n * | * Receive - Input from the parent component received.\n * | * TitleChanged - The note's title has changed.\n * | * URLChanged - The note's URL has changed.\n * | * PositionChanged - The note's position has changed.\n * | * KeywordsChanged - The note's keywords has changed.\n * | * ShortDescChanged - The note's short description has changed.\n * | * LongDescChanged - The note's detailed description has changed.\n * | * GetPosition - Get the current position of the device.\n * | * ShareNote - Share the note with another app.\n * | * DownloadNote - Download the note.\n */ \n var Receive = (function () {\n function Receive(value0) {\n this.value0 = value0;\n };\n Receive.create = function (value0) {\n return new Receive(value0);\n };\n return Receive;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of a note component.\n * |\n * | * Receive - Input from the parent component received.\n * | * TitleChanged - The note's title has changed.\n * | * URLChanged - The note's URL has changed.\n * | * PositionChanged - The note's position has changed.\n * | * KeywordsChanged - The note's keywords has changed.\n * | * ShortDescChanged - The note's short description has changed.\n * | * LongDescChanged - The note's detailed description has changed.\n * | * GetPosition - Get the current position of the device.\n * | * ShareNote - Share the note with another app.\n * | * DownloadNote - Download the note.\n */ \n var TitleChanged = (function () {\n function TitleChanged(value0) {\n this.value0 = value0;\n };\n TitleChanged.create = function (value0) {\n return new TitleChanged(value0);\n };\n return TitleChanged;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of a note component.\n * |\n * | * Receive - Input from the parent component received.\n * | * TitleChanged - The note's title has changed.\n * | * URLChanged - The note's URL has changed.\n * | * PositionChanged - The note's position has changed.\n * | * KeywordsChanged - The note's keywords has changed.\n * | * ShortDescChanged - The note's short description has changed.\n * | * LongDescChanged - The note's detailed description has changed.\n * | * GetPosition - Get the current position of the device.\n * | * ShareNote - Share the note with another app.\n * | * DownloadNote - Download the note.\n */ \n var URLChanged = (function () {\n function URLChanged(value0) {\n this.value0 = value0;\n };\n URLChanged.create = function (value0) {\n return new URLChanged(value0);\n };\n return URLChanged;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of a note component.\n * |\n * | * Receive - Input from the parent component received.\n * | * TitleChanged - The note's title has changed.\n * | * URLChanged - The note's URL has changed.\n * | * PositionChanged - The note's position has changed.\n * | * KeywordsChanged - The note's keywords has changed.\n * | * ShortDescChanged - The note's short description has changed.\n * | * LongDescChanged - The note's detailed description has changed.\n * | * GetPosition - Get the current position of the device.\n * | * ShareNote - Share the note with another app.\n * | * DownloadNote - Download the note.\n */ \n var PositionChanged = (function () {\n function PositionChanged(value0) {\n this.value0 = value0;\n };\n PositionChanged.create = function (value0) {\n return new PositionChanged(value0);\n };\n return PositionChanged;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of a note component.\n * |\n * | * Receive - Input from the parent component received.\n * | * TitleChanged - The note's title has changed.\n * | * URLChanged - The note's URL has changed.\n * | * PositionChanged - The note's position has changed.\n * | * KeywordsChanged - The note's keywords has changed.\n * | * ShortDescChanged - The note's short description has changed.\n * | * LongDescChanged - The note's detailed description has changed.\n * | * GetPosition - Get the current position of the device.\n * | * ShareNote - Share the note with another app.\n * | * DownloadNote - Download the note.\n */ \n var KeywordsChanged = (function () {\n function KeywordsChanged(value0) {\n this.value0 = value0;\n };\n KeywordsChanged.create = function (value0) {\n return new KeywordsChanged(value0);\n };\n return KeywordsChanged;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of a note component.\n * |\n * | * Receive - Input from the parent component received.\n * | * TitleChanged - The note's title has changed.\n * | * URLChanged - The note's URL has changed.\n * | * PositionChanged - The note's position has changed.\n * | * KeywordsChanged - The note's keywords has changed.\n * | * ShortDescChanged - The note's short description has changed.\n * | * LongDescChanged - The note's detailed description has changed.\n * | * GetPosition - Get the current position of the device.\n * | * ShareNote - Share the note with another app.\n * | * DownloadNote - Download the note.\n */ \n var ShortDescChanged = (function () {\n function ShortDescChanged(value0) {\n this.value0 = value0;\n };\n ShortDescChanged.create = function (value0) {\n return new ShortDescChanged(value0);\n };\n return ShortDescChanged;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of a note component.\n * |\n * | * Receive - Input from the parent component received.\n * | * TitleChanged - The note's title has changed.\n * | * URLChanged - The note's URL has changed.\n * | * PositionChanged - The note's position has changed.\n * | * KeywordsChanged - The note's keywords has changed.\n * | * ShortDescChanged - The note's short description has changed.\n * | * LongDescChanged - The note's detailed description has changed.\n * | * GetPosition - Get the current position of the device.\n * | * ShareNote - Share the note with another app.\n * | * DownloadNote - Download the note.\n */ \n var LongDescChanged = (function () {\n function LongDescChanged(value0) {\n this.value0 = value0;\n };\n LongDescChanged.create = function (value0) {\n return new LongDescChanged(value0);\n };\n return LongDescChanged;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of a note component.\n * |\n * | * Receive - Input from the parent component received.\n * | * TitleChanged - The note's title has changed.\n * | * URLChanged - The note's URL has changed.\n * | * PositionChanged - The note's position has changed.\n * | * KeywordsChanged - The note's keywords has changed.\n * | * ShortDescChanged - The note's short description has changed.\n * | * LongDescChanged - The note's detailed description has changed.\n * | * GetPosition - Get the current position of the device.\n * | * ShareNote - Share the note with another app.\n * | * DownloadNote - Download the note.\n */ \n var GetPosition = (function () {\n function GetPosition() {\n\n };\n GetPosition.value = new GetPosition();\n return GetPosition;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of a note component.\n * |\n * | * Receive - Input from the parent component received.\n * | * TitleChanged - The note's title has changed.\n * | * URLChanged - The note's URL has changed.\n * | * PositionChanged - The note's position has changed.\n * | * KeywordsChanged - The note's keywords has changed.\n * | * ShortDescChanged - The note's short description has changed.\n * | * LongDescChanged - The note's detailed description has changed.\n * | * GetPosition - Get the current position of the device.\n * | * ShareNote - Share the note with another app.\n * | * DownloadNote - Download the note.\n */ \n var ShareNote = (function () {\n function ShareNote() {\n\n };\n ShareNote.value = new ShareNote();\n return ShareNote;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of a note component.\n * |\n * | * Receive - Input from the parent component received.\n * | * TitleChanged - The note's title has changed.\n * | * URLChanged - The note's URL has changed.\n * | * PositionChanged - The note's position has changed.\n * | * KeywordsChanged - The note's keywords has changed.\n * | * ShortDescChanged - The note's short description has changed.\n * | * LongDescChanged - The note's detailed description has changed.\n * | * GetPosition - Get the current position of the device.\n * | * ShareNote - Share the note with another app.\n * | * DownloadNote - Download the note.\n */ \n var DownloadNote = (function () {\n function DownloadNote() {\n\n };\n DownloadNote.value = new DownloadNote();\n return DownloadNote;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | Helper function: set the URL of the `Note` in the state.\n * |\n * | To be used with `modifyComponentStateAndSave`.\n */ \n var setNoteStateUrl = function (dictMonadAff) {\n return function (newUrl) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n title: v.title,\n url: newUrl,\n keywords: v.keywords,\n location: v.location,\n shortDesc: v.shortDesc,\n longDesc: v.longDesc\n };\n });\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Helper function: set the title string of the `Note` in the state.\n * |\n * | To be used with `modifyComponentStateAndSave`.\n */ \n var setNoteStateTitle = function (dictMonadAff) {\n return function (newTitle) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n title: new Data_Maybe.Just(newTitle),\n url: v.url,\n keywords: v.keywords,\n location: v.location,\n shortDesc: v.shortDesc,\n longDesc: v.longDesc\n };\n });\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Helper function: set the short description string of the `Note` in the state.\n * |\n * | To be used with `modifyComponentStateAndSave`.\n */ \n var setNoteStateShortDesc = function (dictMonadAff) {\n return function (newShortDesc) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n title: v.title,\n url: v.url,\n keywords: v.keywords,\n location: v.location,\n shortDesc: new Data_Maybe.Just(newShortDesc),\n longDesc: v.longDesc\n };\n });\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Helper function: set the detailed description string of the `Note` in the\n * | state.\n * |\n * | To be used with `modifyComponentStateAndSave`.\n */ \n var setNoteStateLongDesc = function (dictMonadAff) {\n return function (newLongDesc) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n title: v.title,\n url: v.url,\n keywords: v.keywords,\n location: v.location,\n shortDesc: v.shortDesc,\n longDesc: new Data_Maybe.Just(newLongDesc)\n };\n });\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Helper function: set the location string of the `Note` in the state.\n * |\n * | To be used with `modifyComponentStateAndSave`.\n */ \n var setNoteStateLocation = function (dictMonadAff) {\n return function (newLocation) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n title: v.title,\n url: v.url,\n keywords: v.keywords,\n location: new Data_Maybe.Just(newLocation),\n shortDesc: v.shortDesc,\n longDesc: v.longDesc\n };\n });\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Helper function: set the keyword array of the `Note` in the state.\n * |\n * | To be used with `modifyComponentStateAndSave`.\n */ \n var setNoteStateKeyWords = function (dictMonadAff) {\n return function (newKeywords) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n title: v.title,\n url: v.url,\n keywords: newKeywords,\n location: v.location,\n shortDesc: v.shortDesc,\n longDesc: v.longDesc\n };\n });\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Halogen's render function of this component.\n */ \n var render = function (dictMonadAff) {\n return function (n) {\n var urlSuffixRegex = Data_String_Regex_Unsafe.unsafeRegex(\"[/]+$\")(Data_String_Regex_Flags.unicode);\n var transFunc = App_Constants.localeToTranslation(\"sk\");\n return Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"note\"), Halogen_HTML_Properties.classes([ \"px-4\", \"max-w-4xl\", \"grow\", \"w-160\", \"space-y-3\" ]) ])([ Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"title\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"titleText\") ])([ Halogen_HTML_Elements.span([ Halogen_HTML_Properties.classes([ ]) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextTitle)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(\"titleText\"), Halogen_HTML_Properties.classes([ \"rounded-md\", \"border-gray-300\", \"shadow-sm\", \"w-full\" ]), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputText.value), Halogen_HTML_Properties.min(50.0), Halogen_HTML_Properties.value(Data_Maybe.fromMaybe(\"\")(n.title)), Halogen_HTML_Events.onValueInput(function (st) {\n return new TitleChanged(st);\n }) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"url\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"pageURL\") ])([ Halogen_HTML_Elements.span_([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextUrl)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(\"pageURL\"), Halogen_HTML_Properties.classes([ \"rounded-md\", \"border-gray-300\", \"shadow-sm\", \"w-full\" ]), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputUrl.value), Halogen_HTML_Properties.min(50.0), Halogen_HTML_Properties.value(Data_String_Regex.replace(urlSuffixRegex)(\"\")(Data_Maybe.fromMaybe(\"\")(Data_Functor.map(Data_Maybe.functorMaybe)(Data_URL.noteUrlToString)(n.url)))), Halogen_HTML_Events.onValueInput(function (st) {\n return new URLChanged(st);\n }) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"keywords\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"keyWords\") ])([ Halogen_HTML_Elements.span_([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextKeywords)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(\"keyWords\"), Halogen_HTML_Properties.classes([ \"rounded-md\", \"border-gray-300\", \"shadow-sm\", \"w-full\" ]), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputText.value), Halogen_HTML_Properties.min(50.0), Halogen_HTML_Properties.placeholder(\"keyword1, key word 2, Keyword 3\"), Halogen_HTML_Properties.value(Data_Maybe.fromMaybe(\"\")(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Show.show(Data_Note.showKeyWordArray))(n.keywords))), Halogen_HTML_Events.onValueInput(function (st) {\n return new KeywordsChanged(st);\n }) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"Geolocation\"), Halogen_HTML_Properties.classes([ \"flex\", \"flex-row\", \"flex-wrap\", \"items-end\", \"ml--4\", \"space-y-2\" ]) ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"currentPosition\"), Halogen_HTML_Properties.classes([ \"inline\", \"grow\", \"ml-4\" ]) ])([ Halogen_HTML_Elements.span_([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextPosition)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(\"currentPosition\"), Halogen_HTML_Properties.classes([ \"rounded-md\", \"border-gray-300\", \"shadow-sm\", \"w-full\" ]), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputText.value), Halogen_HTML_Properties.min(50.0), Halogen_HTML_Properties.placeholder(\"Position\"), Halogen_HTML_Properties.value(Data_Maybe.fromMaybe(\"\")(n.location)), Halogen_HTML_Events.onValueInput(function (st) {\n return new PositionChanged(st);\n }) ]) ]), (function () {\n if (App_Geolocation.supportsGeoLocation) {\n return Halogen_HTML_Elements.button([ Halogen_HTML_Properties.id(\"positionButton\"), Halogen_HTML_Properties.classes([ \"inline\", \"btn\", \"btn-blue\", \"position\", \"ml-4\", \"h-fit-content\" ]), Halogen_HTML_Events.onClick(function (v) {\n return GetPosition.value;\n }) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextGetPosition)) ]);\n };\n return Halogen_HTML_Elements.div_([ ]);\n })() ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"description\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"descriptionText\") ])([ Halogen_HTML_Elements.span_([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextShortDescription)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.textarea([ Halogen_HTML_Properties.id(\"descriptionText\"), Halogen_HTML_Properties.classes([ \"rounded-md\", \"border-gray-300\", \"shadow-sm\", \"resize\", \"w-full\" ]), Halogen_HTML_Properties.rows(5), Halogen_HTML_Properties.cols(40), Halogen_HTML_Properties.value(Data_Maybe.fromMaybe(\"\")(n.shortDesc)), Halogen_HTML_Events.onValueInput(function (st) {\n return new ShortDescChanged(st);\n }) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"detailed_text\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"detailedDescription\") ])([ Halogen_HTML_Elements.span_([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextLongDescription)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.textarea([ Halogen_HTML_Properties.id(\"detailedDescription\"), Halogen_HTML_Properties.classes([ \"rounded-md\", \"border-gray-300\", \"shadow-sm\", \"resize\", \"w-full\" ]), Halogen_HTML_Properties.rows(5), Halogen_HTML_Properties.cols(40), Halogen_HTML_Properties.value(Data_Maybe.fromMaybe(\"\")(n.longDesc)), Halogen_HTML_Events.onValueInput(function (st) {\n return new LongDescChanged(st);\n }) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"buttons\"), Halogen_HTML_Properties.classes([ \"flex\", \"flex-wrap\", \"place-content-between\" ]) ])([ Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"save\"), Halogen_HTML_Properties.classes([ \"inline\", \"px-2\" ]) ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.id(\"saveButton\"), Halogen_HTML_Properties.classes([ \"btn\", \"btn-blue\", \"download\", \"my-1\" ]), Halogen_HTML_Events.onClick(function (v) {\n return DownloadNote.value;\n }) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextSave)) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"share\"), Halogen_HTML_Properties.classes([ \"inline\", \"px-2\" ]) ])((function () {\n if (App_ShareTarget.canShare) {\n return [ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.id(\"shareButton\"), Halogen_HTML_Properties.classes([ \"btn\", \"btn-blue\", \"share\", \"my-1\" ]), Halogen_HTML_Events.onClick(function (v) {\n return ShareNote.value;\n }) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.noteTextShare)) ]) ];\n };\n return [ ];\n })()) ]) ]);\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | The note components `Action` (event) handler.\n * |\n * | Handles the component's events, by dispatching on event type `action`.\n * |\n * | * `action` - The `Action` to process.\n */ \n var handleAction = function (dictMonadAff) {\n return function (action) {\n if (action instanceof Receive) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.getState(dictMonadAff))(function (currState) {\n var v = Data_Eq.eq(Data_Note.eqNote)(currState)(action.value0);\n if (v) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n if (!v) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)(Helpers_Components.setState(dictMonadAff))(action.value0);\n };\n throw new Error(\"Failed pattern match at App.NoteComponent (line 152, column 5 - line 154, column 57): \" + [ v.constructor.name ]);\n });\n };\n if (action instanceof TitleChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)(setNoteStateTitle(dictMonadAff))(action.value0);\n };\n if (action instanceof URLChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)((function () {\n var $147 = setNoteStateUrl(dictMonadAff);\n return function ($148) {\n return $147(Data_URL.noteUrlFromString($148));\n };\n })())(action.value0);\n };\n if (action instanceof PositionChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)(setNoteStateLocation(dictMonadAff))(action.value0);\n };\n if (action instanceof KeywordsChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)((function () {\n var $149 = setNoteStateKeyWords(dictMonadAff);\n return function ($150) {\n return $149(Data_Note.keyWordArrayFromString($150));\n };\n })())(action.value0);\n };\n if (action instanceof ShortDescChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)(setNoteStateShortDesc(dictMonadAff))(action.value0);\n };\n if (action instanceof LongDescChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Note.storeKeyNote)(Data_Note.encodeJSONNote)(setNoteStateLongDesc(dictMonadAff))(action.value0);\n };\n if (action instanceof GetPosition) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.getState(dictMonadAff))(function (note) {\n return Halogen_Query_HalogenM.raise(new Geolocation(note));\n });\n };\n if (action instanceof ShareNote) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.getState(dictMonadAff))(function (note) {\n return Halogen_Query_HalogenM.raise(new Share(note));\n });\n };\n if (action instanceof DownloadNote) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.getState(dictMonadAff))(function (note) {\n return Halogen_Query_HalogenM.raise(new Download(note));\n });\n };\n throw new Error(\"Failed pattern match at App.NoteComponent (line 149, column 23 - line 169, column 28): \" + [ action.constructor.name ]);\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | The `NoteComponent`'s description for use in the parent component.\n */ \n var component = function (dictMonadAff) {\n var initialState = function (note) {\n return note;\n };\n return Halogen_Component.mkComponent({\n initialState: initialState,\n render: render(dictMonadAff),\n \"eval\": Halogen_Component.mkEval({\n handleAction: handleAction(dictMonadAff),\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: function ($151) {\n return Data_Maybe.Just.create(Receive.create($151));\n },\n initialize: Halogen_Component.defaultEval.initialize,\n finalize: Halogen_Component.defaultEval.finalize\n })\n });\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Proxy to use in the slot of the parent component.\n */ \n var _noteComponent = Type_Proxy[\"Proxy\"].value;\n exports[\"Download\"] = Download;\n exports[\"Geolocation\"] = Geolocation;\n exports[\"Share\"] = Share;\n exports[\"_noteComponent\"] = _noteComponent;\n exports[\"component\"] = component;\n})(PS);\n(function($PS) {\n \n // SPDX-License-Identifier: GPL-3.0-or-later\n // Copyright (C) 2022 Roland Csaszar\n //\n // Project: notoy-pwa\n // File: OptionsComponent.purs\n // Date: 03.Feb.2022\n //\n // ==============================================================================\n // | Module App.OptionsComponent, the Halogen component for the options of the\n // | app.\n \"use strict\";\n $PS[\"App.OptionsComponent\"] = $PS[\"App.OptionsComponent\"] || {};\n var exports = $PS[\"App.OptionsComponent\"];\n var App_Constants = $PS[\"App.Constants\"];\n var App_State = $PS[\"App.State\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Options = $PS[\"Data.Options\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Events = $PS[\"Halogen.HTML.Events\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Helpers_Components = $PS[\"Helpers.Components\"];\n var Type_Proxy = $PS[\"Type.Proxy\"]; \n\n /**\n * ------------------------------------------------------------------------------\n * | The type for queries from the parent component.\n * |\n * | * GetOptions - Send the current `Options` state to the parent component.\n */ \n var GetOptions = (function () {\n function GetOptions(value0) {\n this.value0 = value0;\n };\n GetOptions.create = function (value0) {\n return new GetOptions(value0);\n };\n return GetOptions;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of the component.\n * |\n * | * Receive - Input from the parent component received.\n * | * FormatChanged - The format of a note has changed.\n * | * AddDateChanged - Whether to add the date to the note has changed.\n * | * ReverseGeolocChanged - Whether to do reverse geolocation has changed.\n * | * AddYamlHeaderChanged - Whether to add a YAML front matter header has changed.\n */ \n var Receive = (function () {\n function Receive(value0) {\n this.value0 = value0;\n };\n Receive.create = function (value0) {\n return new Receive(value0);\n };\n return Receive;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of the component.\n * |\n * | * Receive - Input from the parent component received.\n * | * FormatChanged - The format of a note has changed.\n * | * AddDateChanged - Whether to add the date to the note has changed.\n * | * ReverseGeolocChanged - Whether to do reverse geolocation has changed.\n * | * AddYamlHeaderChanged - Whether to add a YAML front matter header has changed.\n */ \n var FormatChanged = (function () {\n function FormatChanged(value0) {\n this.value0 = value0;\n };\n FormatChanged.create = function (value0) {\n return new FormatChanged(value0);\n };\n return FormatChanged;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of the component.\n * |\n * | * Receive - Input from the parent component received.\n * | * FormatChanged - The format of a note has changed.\n * | * AddDateChanged - Whether to add the date to the note has changed.\n * | * ReverseGeolocChanged - Whether to do reverse geolocation has changed.\n * | * AddYamlHeaderChanged - Whether to add a YAML front matter header has changed.\n */ \n var AddDateChanged = (function () {\n function AddDateChanged(value0) {\n this.value0 = value0;\n };\n AddDateChanged.create = function (value0) {\n return new AddDateChanged(value0);\n };\n return AddDateChanged;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of the component.\n * |\n * | * Receive - Input from the parent component received.\n * | * FormatChanged - The format of a note has changed.\n * | * AddDateChanged - Whether to add the date to the note has changed.\n * | * ReverseGeolocChanged - Whether to do reverse geolocation has changed.\n * | * AddYamlHeaderChanged - Whether to add a YAML front matter header has changed.\n */ \n var ReverseGeolocChanged = (function () {\n function ReverseGeolocChanged(value0) {\n this.value0 = value0;\n };\n ReverseGeolocChanged.create = function (value0) {\n return new ReverseGeolocChanged(value0);\n };\n return ReverseGeolocChanged;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | The actions (events) of the component.\n * |\n * | * Receive - Input from the parent component received.\n * | * FormatChanged - The format of a note has changed.\n * | * AddDateChanged - Whether to add the date to the note has changed.\n * | * ReverseGeolocChanged - Whether to do reverse geolocation has changed.\n * | * AddYamlHeaderChanged - Whether to add a YAML front matter header has changed.\n */ \n var AddYamlHeaderChanged = (function () {\n function AddYamlHeaderChanged(value0) {\n this.value0 = value0;\n };\n AddYamlHeaderChanged.create = function (value0) {\n return new AddYamlHeaderChanged(value0);\n };\n return AddYamlHeaderChanged;\n })();\n\n /**\n * ------------------------------------------------------------------------------\n * | Helper function: set the `LookupLocation` of the `Options` in the state.\n * |\n * | For use with `modifyComponentStateAndSave`.\n */ \n var setOptionsStateLookupLocation = function (dictMonadAff) {\n return function (newLookup) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n format: v.format,\n addDate: v.addDate,\n lookupLocation: newLookup,\n addYaml: v.addYaml\n };\n });\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Helper function: set the `Format` of the `Options` in the state.\n * |\n * | For use with `modifyComponentStateAndSave`.\n */ \n var setOptionsStateFormat = function (dictMonadAff) {\n return function (newFormat) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n format: newFormat,\n addDate: v.addDate,\n lookupLocation: v.lookupLocation,\n addYaml: v.addYaml\n };\n });\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Helper function: set the `AddYamlHeader` of the `Options` in the state.\n * |\n * | For use with `modifyComponentStateAndSave`.\n */ \n var setOptionsStateAddYamlHeader = function (dictMonadAff) {\n return function (newAddYaml) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n format: v.format,\n addDate: v.addDate,\n lookupLocation: v.lookupLocation,\n addYaml: newAddYaml\n };\n });\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | Helper function: set the `AddDate` of the `Options` in the state.\n * |\n * | For use with `modifyComponentStateAndSave`.\n */ \n var setOptionsStateAddDate = function (dictMonadAff) {\n return function (newAddDate) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (v) {\n return {\n format: v.format,\n addDate: newAddDate,\n lookupLocation: v.lookupLocation,\n addYaml: v.addYaml\n };\n });\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | The Halogen render function of this component.\n */ \n var render = function (dictMonadAff) {\n return function (opts) {\n var transFunc = App_Constants.localeToTranslation(\"sk\");\n return Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"options\"), Halogen_HTML_Properties.classes([ \"px-4\", \"max-w-4xl\", \"grow\", \"space-y-3\", \"mt-4\" ]) ])([ Halogen_HTML_Elements.h2([ Halogen_HTML_Properties.classes([ ]) ])([ Halogen_HTML_Core.text(\"Options\") ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"format\"), Halogen_HTML_Properties.classes([ ]) ])([ Halogen_HTML_Elements.fieldset([ Halogen_HTML_Properties.id(\"formatParent\"), Halogen_HTML_Properties.classes([ \"space-y-2 space-x-4\" ]) ])([ Halogen_HTML_Elements.legend([ ])([ Halogen_HTML_Core.text(transFunc(App_Constants.optionsTextFormat)) ]), Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"markdown\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(\"markdown\"), Halogen_HTML_Properties.name(\"formatRadio\"), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputRadio.value), Halogen_HTML_Properties.value(Data_Show.show(Data_Options.showFormat)(Data_Options.Markdown.value)), Halogen_HTML_Properties.classes([ \"mr-1\" ]), Halogen_HTML_Properties.checked(Data_Eq.eq(Data_Options.eqFormat)(opts.format)(Data_Options.Markdown.value)), Halogen_HTML_Events.onChecked(function (v) {\n return FormatChanged.create(Data_Show.show(Data_Options.showFormat)(Data_Options.Markdown.value));\n }) ]), Halogen_HTML_Elements.span([ Halogen_HTML_Properties.classes([ \"align-middle\" ]) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.optionsTextMarkdown)) ]) ]), Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"orgMode\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(\"orgMode\"), Halogen_HTML_Properties.name(\"formatRadio\"), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputRadio.value), Halogen_HTML_Properties.value(Data_Show.show(Data_Options.showFormat)(Data_Options.OrgMode.value)), Halogen_HTML_Properties.classes([ \"mr-1\" ]), Halogen_HTML_Properties.checked(Data_Eq.eq(Data_Options.eqFormat)(opts.format)(Data_Options.OrgMode.value)), Halogen_HTML_Events.onChecked(function (v) {\n return FormatChanged.create(Data_Show.show(Data_Options.showFormat)(Data_Options.OrgMode.value));\n }) ]), Halogen_HTML_Elements.span([ Halogen_HTML_Properties.classes([ \"align-middle\" ]) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.optionsTextOrgMode)) ]) ]), Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"text\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(\"text\"), Halogen_HTML_Properties.name(\"formatRadio\"), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputRadio.value), Halogen_HTML_Properties.value(Data_Show.show(Data_Options.showFormat)(Data_Options.Text.value)), Halogen_HTML_Properties.classes([ \"mr-1\" ]), Halogen_HTML_Properties.checked(Data_Eq.eq(Data_Options.eqFormat)(opts.format)(Data_Options.Text.value)), Halogen_HTML_Events.onChecked(function (v) {\n return FormatChanged.create(Data_Show.show(Data_Options.showFormat)(Data_Options.Text.value));\n }) ]), Halogen_HTML_Elements.span([ Halogen_HTML_Properties.classes([ \"align-middle\" ]) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.optionsTextText)) ]) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"timestamp\") ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"timestampInput\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.span([ Halogen_HTML_Properties.classes([ \"align-middle\" ]) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.optionsTextTimestamp)) ]), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputCheckbox.value), Halogen_HTML_Properties.id(\"timestampInput\"), Halogen_HTML_Properties.classes([ \"ml-1\" ]), Halogen_HTML_Properties.checked(Data_Eq.eq(Data_Options.eqAddDate)(opts.addDate)(Data_Options.AddDate.value)), Halogen_HTML_Events.onChecked(function (b) {\n return new AddDateChanged(b);\n }) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"reverseGeolocation\") ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"reverseGeolocationInput\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.span([ Halogen_HTML_Properties.classes([ \"align-middle\" ]) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.optionsTextPosLookup)) ]), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputCheckbox.value), Halogen_HTML_Properties.id(\"reverseGeolocationInput\"), Halogen_HTML_Properties.classes([ \"ml-1\" ]), Halogen_HTML_Properties.checked(Data_Eq.eq(Data_Options.eqLookupLocation)(opts.lookupLocation)(Data_Options.ReverseGeolocation.value)), Halogen_HTML_Events.onChecked(function (b) {\n return new ReverseGeolocChanged(b);\n }) ]) ]) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"yaml\") ])([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"yamlFrontMatter\"), Halogen_HTML_Properties.classes([ \"block\" ]) ])([ Halogen_HTML_Elements.span([ Halogen_HTML_Properties.classes([ \"align-middle\" ]) ])([ Halogen_HTML_Core.text(transFunc(App_Constants.optionsTextYAML)) ]), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputCheckbox.value), Halogen_HTML_Properties.id(\"yamlFrontMatter\"), Halogen_HTML_Properties.classes([ \"ml-1\" ]), Halogen_HTML_Properties.checked(Data_Eq.eq(Data_Options.eqAddYamlHeader)(opts.addYaml)(Data_Options.AddYamlHeader.value)), Halogen_HTML_Events.onChecked(function (b) {\n return new AddYamlHeaderChanged(b);\n }) ]) ]) ]) ]);\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | The handler for queries from the parent component.\n * |\n * | * `q` - The `Query` to process.\n */ \n var handleQuery = function (dictMonadAff) {\n return function (q) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.getState(dictMonadAff))(function (options) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Maybe.Just.create(q.value0(options)));\n });\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | The component's `Action` (event) handler.\n * |\n * | Handles the component's events, by dispatching on event type `action`.\n * |\n * | * `action` - The `Action` to process.\n */ \n var handleAction = function (dictMonadAff) {\n return function (action) {\n if (action instanceof Receive) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.getState(dictMonadAff))(function (currState) {\n var v = Data_Eq.eq(Data_Options.eqOptions)(currState)(action.value0);\n if (v) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n if (!v) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Options.storeKeyIdOptions)(Data_Options.encodeJsonOptions)(Helpers_Components.setState(dictMonadAff))(action.value0);\n };\n throw new Error(\"Failed pattern match at App.OptionsComponent (line 124, column 5 - line 126, column 60): \" + [ v.constructor.name ]);\n });\n };\n if (action instanceof FormatChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Options.storeKeyIdOptions)(Data_Options.encodeJsonOptions)((function () {\n var $35 = setOptionsStateFormat(dictMonadAff);\n return function ($36) {\n return $35(Data_Options.formatFromString($36));\n };\n })())(action.value0);\n };\n if (action instanceof AddDateChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Options.storeKeyIdOptions)(Data_Options.encodeJsonOptions)((function () {\n var $37 = setOptionsStateAddDate(dictMonadAff);\n return function ($38) {\n return $37(Data_Options.addDateFromBool($38));\n };\n })())(action.value0);\n };\n if (action instanceof ReverseGeolocChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Options.storeKeyIdOptions)(Data_Options.encodeJsonOptions)((function () {\n var $39 = setOptionsStateLookupLocation(dictMonadAff);\n return function ($40) {\n return $39(Data_Options.lookupLocationFromBool($40));\n };\n })())(action.value0);\n };\n if (action instanceof AddYamlHeaderChanged) {\n return Helpers_Components.modifyComponentStateAndSave(dictMonadAff)(Data_Options.storeKeyIdOptions)(Data_Options.encodeJsonOptions)((function () {\n var $41 = setOptionsStateAddYamlHeader(dictMonadAff);\n return function ($42) {\n return $41(Data_Options.yamlHeaderFromBool($42));\n };\n })())(action.value0);\n };\n throw new Error(\"Failed pattern match at App.OptionsComponent (line 121, column 23 - line 130, column 112): \" + [ action.constructor.name ]);\n };\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | The `OptionsComponent` description for use in the parent component.\n */ \n var component = function (dictMonadAff) {\n var initialState = function (options) {\n return options;\n };\n return Halogen_Component.mkComponent({\n initialState: initialState,\n render: render(dictMonadAff),\n \"eval\": Halogen_Component.mkEval({\n handleAction: handleAction(dictMonadAff),\n handleQuery: handleQuery(dictMonadAff),\n receive: function ($43) {\n return Data_Maybe.Just.create(Receive.create($43));\n },\n initialize: Halogen_Component.defaultEval.initialize,\n finalize: Halogen_Component.defaultEval.finalize\n })\n });\n };\n\n /**\n * ------------------------------------------------------------------------------\n * | The proxy for an `OptionsComponent`, to use in the slot of the parent\n * | component.\n */ \n var _optionsComponent = Type_Proxy[\"Proxy\"].value;\n exports[\"GetOptions\"] = GetOptions;\n exports[\"_optionsComponent\"] = _optionsComponent;\n exports[\"component\"] = component;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Query\"] = $PS[\"Halogen.Query\"] || {};\n var exports = $PS[\"Halogen.Query\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var request = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (slot) {\n return function (label) {\n return function (req) {\n return Halogen_Query_HalogenM.query()(dictIsSymbol)(dictOrd)(slot)(label)(req(Control_Category.identity(Control_Category.categoryFn)));\n };\n };\n };\n };\n };\n };\n exports[\"request\"] = request;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.reallyUnsafeRefEq = function (a) {\n return function (b) {\n return a === b;\n };\n };\n})(PS[\"Unsafe.Reference\"] = PS[\"Unsafe.Reference\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Unsafe.Reference\"] = $PS[\"Unsafe.Reference\"] || {};\n var exports = $PS[\"Unsafe.Reference\"];\n var $foreign = $PS[\"Unsafe.Reference\"];\n var unsafeRefEq = $foreign.reallyUnsafeRefEq;\n exports[\"unsafeRefEq\"] = unsafeRefEq;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Subscription\"] = $PS[\"Halogen.Subscription\"] || {};\n var exports = $PS[\"Halogen.Subscription\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Safe_Coerce = $PS[\"Safe.Coerce\"];\n var Unsafe_Reference = $PS[\"Unsafe.Reference\"];\n var unsubscribe = function (v) {\n return v;\n };\n var subscribe = function (v) {\n return function (k) {\n return v((function () {\n var $55 = Data_Functor[\"void\"](Effect.functorEffect);\n return function ($56) {\n return $55(k($56));\n };\n })());\n };\n }; \n var notify = function (v) {\n return function (a) {\n return v(a);\n };\n }; \n var makeEmitter = Safe_Coerce.coerce();\n var create = function __do() {\n var subscribers = Effect_Ref[\"new\"]([ ])();\n return {\n emitter: function (k) {\n return function __do() {\n Effect_Ref.modify_(function (v) {\n return Data_Semigroup.append(Data_Semigroup.semigroupArray)(v)([ k ]);\n })(subscribers)();\n return Effect_Ref.modify_(Data_Array.deleteBy(Unsafe_Reference.unsafeRefEq)(k))(subscribers);\n };\n },\n listener: function (a) {\n return Control_Bind.bind(Effect.bindEffect)(Effect_Ref.read(subscribers))(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableArray)(function (k) {\n return k(a);\n }));\n }\n };\n };\n exports[\"create\"] = create;\n exports[\"notify\"] = notify;\n exports[\"makeEmitter\"] = makeEmitter;\n exports[\"subscribe\"] = subscribe;\n exports[\"unsubscribe\"] = unsubscribe;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Query.Event\"] = $PS[\"Halogen.Query.Event\"] || {};\n var exports = $PS[\"Halogen.Query.Event\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Effect = $PS[\"Effect\"];\n var Halogen_Subscription = $PS[\"Halogen.Subscription\"];\n var Web_Event_EventTarget = $PS[\"Web.Event.EventTarget\"]; \n var eventListener = function (eventType) {\n return function (target) {\n return function (f) {\n return Halogen_Subscription.makeEmitter(function (push) {\n return function __do() {\n var listener = Web_Event_EventTarget.eventListener(function (ev) {\n return Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(push)(f(ev));\n })();\n Web_Event_EventTarget.addEventListener(eventType)(listener)(false)(target)();\n return Web_Event_EventTarget.removeEventListener(eventType)(listener)(false)(target);\n };\n });\n };\n };\n };\n exports[\"eventListener\"] = eventListener;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"App.Action\"] = $PS[\"App.Action\"] || {};\n var exports = $PS[\"App.Action\"];\n var App_BigDataGeoLoc = $PS[\"App.BigDataGeoLoc\"];\n var App_Constants = $PS[\"App.Constants\"];\n var App_GeoLocOptions = $PS[\"App.GeoLocOptions\"];\n var App_Geolocation = $PS[\"App.Geolocation\"];\n var App_NoteComponent = $PS[\"App.NoteComponent\"];\n var App_OptionsComponent = $PS[\"App.OptionsComponent\"];\n var App_ShareTarget = $PS[\"App.ShareTarget\"];\n var App_State = $PS[\"App.State\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Note = $PS[\"Data.Note\"];\n var Data_Options = $PS[\"Data.Options\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Console = $PS[\"Effect.Console\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Halogen_Query = $PS[\"Halogen.Query\"];\n var Halogen_Query_Event = $PS[\"Halogen.Query.Event\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Helpers_Browser = $PS[\"Helpers.Browser\"];\n var Helpers_Components = $PS[\"Helpers.Components\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_Event_EventTypes = $PS[\"Web.HTML.Event.EventTypes\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"]; \n var Initialize = (function () {\n function Initialize() {\n\n };\n Initialize.value = new Initialize();\n return Initialize;\n })();\n var ShareTargetEvent = (function () {\n function ShareTargetEvent(value0) {\n this.value0 = value0;\n };\n ShareTargetEvent.create = function (value0) {\n return new ShareTargetEvent(value0);\n };\n return ShareTargetEvent;\n })();\n var NoteAction = (function () {\n function NoteAction(value0) {\n this.value0 = value0;\n };\n NoteAction.create = function (value0) {\n return new NoteAction(value0);\n };\n return NoteAction;\n })();\n var updateOptions = function (dictMonadAff) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Halogen_Query.request()({\n reflectSymbol: function () {\n return \"options\";\n }\n })(Data_Ord.ordUnit)(App_OptionsComponent[\"_optionsComponent\"])(Data_Unit.unit)(App_OptionsComponent.GetOptions.create))(function (options) {\n if (options instanceof Data_Maybe.Just) {\n return App_State.setOptionsState_(dictMonadAff)(options.value0);\n };\n if (options instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at App.Action (line 174, column 3 - line 176, column 25): \" + [ options.constructor.name ]);\n });\n };\n var setNoteStateLocation = function (dictMonadAff) {\n return function (newLocation) {\n return Control_Monad_State_Class.modify(Halogen_Query_HalogenM.monadStateHalogenM)(function (state) {\n return {\n note: {\n title: state.note.title,\n url: state.note.url,\n keywords: state.note.keywords,\n location: new Data_Maybe.Just(newLocation),\n shortDesc: state.note.shortDesc,\n longDesc: state.note.longDesc\n },\n options: state.options\n };\n });\n };\n };\n var savePosToState = function (dictMonadAff) {\n return Helpers_Components.modifyStateAndSave(dictMonadAff)(setNoteStateLocation(dictMonadAff));\n };\n var loadObject = function (dictStoreKey) {\n return function (dictDecodeJson) {\n return function (dictShow) {\n return function (dictMonadAff) {\n return function (storeToState) {\n return function (keyId) {\n return function (name) {\n return function (win) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Helpers_Browser.loadFromLocalStorage(dictDecodeJson)(win)(keyId)))(function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Effect_Console.log(\"No \" + (name + \" loaded!\")));\n };\n if (v instanceof Data_Maybe.Just) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(storeToState(v.value0))(function (currState) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Effect_Console.log(\"Loaded \" + (name + (\": \" + Data_Show.show(dictShow)(v.value0))))))(function () {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Effect_Console.log(\"New state is: \" + Data_Show.show(Data_Show.showRecord()(Data_Show.showRecordFieldsCons({\n reflectSymbol: function () {\n return \"note\";\n }\n })(Data_Show.showRecordFieldsCons({\n reflectSymbol: function () {\n return \"options\";\n }\n })(Data_Show.showRecordFieldsNil)(Data_Options.showOptions))(Data_Note.showNote)))(currState)));\n });\n });\n };\n throw new Error(\"Failed pattern match at App.Action (line 224, column 3 - line 229, column 62): \" + [ v.constructor.name ]);\n });\n };\n };\n };\n };\n };\n };\n };\n };\n var loadOptions = function (dictMonadAff) {\n return loadObject(Data_Options.storeKeyIdOptions)(Data_Options.decodeJsonOptions)(Data_Options.showOptions)(dictMonadAff)(App_State.setOptionsState(dictMonadAff))(Data_Options.optionsKeyId)(\"Options\");\n };\n var loadNote = function (dictMonadAff) {\n return loadObject(Data_Note.storeKeyNote)(Data_Note.decodeJSONNote)(Data_Note.showNote)(dictMonadAff)(App_State.setNoteState(dictMonadAff))(Data_Note.noteKeyId)(\"Note\");\n };\n var getCurrPosTimeout = function (timeout) {\n return App_Geolocation.getCurrentPosition(Data_Maybe.fromJust()(App_GeoLocOptions.setTimeout(timeout)(App_GeoLocOptions.defaultGeoLocOptions)));\n };\n var getPosition = function (dictMonadAff) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff))(getCurrPosTimeout(10000.0)))(function (poE) {\n if (poE instanceof Data_Either.Left) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Effect_Console.log(Data_Show.show(Effect_Exception.showError)(poE.value0)));\n };\n if (poE instanceof Data_Either.Right) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.getState(dictMonadAff))(function (state) {\n if (state.options.lookupLocation instanceof Data_Options.NoReverseGeolocation) {\n return savePosToState(dictMonadAff)(App_Geolocation.showLatitudeLongitude(poE.value0));\n };\n if (state.options.lookupLocation instanceof Data_Options.ReverseGeolocation) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff))(Helpers_Browser.reverseGeoLocation(App_BigDataGeoLoc.bigDataGeolocURL)(App_BigDataGeoLoc.bigDataGeolocResponse)(poE.value0)))(function (posString) {\n if (posString instanceof Data_Either.Left) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(savePosToState(dictMonadAff)(App_Geolocation.showLatitudeLongitude(poE.value0)))(function () {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Effect_Console.log(\"Reverse geolocation response failed to decode: \" + posString.value0));\n });\n };\n if (posString instanceof Data_Either.Right) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(savePosToState(dictMonadAff)(posString.value0))(function () {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Effect_Console.log(\"Reverse geolocation response: \" + posString.value0));\n });\n };\n throw new Error(\"Failed pattern match at App.Action (line 144, column 11 - line 150, column 75): \" + [ posString.constructor.name ]);\n });\n };\n throw new Error(\"Failed pattern match at App.Action (line 140, column 7 - line 150, column 75): \" + [ state.options.lookupLocation.constructor.name ]);\n });\n };\n throw new Error(\"Failed pattern match at App.Action (line 134, column 3 - line 150, column 75): \" + [ poE.constructor.name ]);\n });\n };\n var appInit = function (dictMonadAff) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Web_HTML.window))(function (win) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(loadOptions(dictMonadAff)(win))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(loadNote(dictMonadAff)(win))(function () {\n return Halogen_Query_HalogenM[\"subscribe'\"](function (v) {\n return Halogen_Query_Event.eventListener(Web_HTML_Event_EventTypes.domcontentloaded)(Web_HTML_Window.toEventTarget(win))(function (e) {\n return Data_Maybe.Just.create(new ShareTargetEvent(e));\n });\n });\n });\n });\n });\n };\n var handleAction = function (dictMonadAff) {\n return function (action) {\n if (action instanceof Initialize) {\n return appInit(dictMonadAff);\n };\n if (action instanceof ShareTargetEvent) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Web_HTML.window))(function (win) {\n return App_ShareTarget.handleShare(dictMonadAff)(win)(action.value0);\n });\n };\n if (action instanceof NoteAction) {\n if (action.value0 instanceof App_NoteComponent.Geolocation) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(updateOptions(dictMonadAff))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(App_State.setNoteState_(dictMonadAff)(action.value0.value0))(function () {\n return getPosition(dictMonadAff);\n });\n });\n };\n if (action.value0 instanceof App_NoteComponent.Share) {\n return Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(dictMonadAff))(App_ShareTarget.shareNote(action.value0.value0));\n };\n if (action.value0 instanceof App_NoteComponent.Download) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(updateOptions(dictMonadAff))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(App_State.setNoteState(dictMonadAff)(action.value0.value0))(function (state) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(dictMonadAff.MonadEffect0()))(Helpers_Browser.downloadNote(App_Constants.hiddenURLId)(state));\n });\n });\n };\n throw new Error(\"Failed pattern match at App.Action (line 97, column 24 - line 107, column 52): \" + [ action.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at App.Action (line 92, column 23 - line 107, column 52): \" + [ action.constructor.name ]);\n };\n };\n exports[\"Initialize\"] = Initialize;\n exports[\"NoteAction\"] = NoteAction;\n exports[\"handleAction\"] = handleAction;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Applicative.Free\"] = $PS[\"Control.Applicative.Free\"] || {};\n var exports = $PS[\"Control.Applicative.Free\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_List_NonEmpty = $PS[\"Data.List.NonEmpty\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_NonEmpty = $PS[\"Data.NonEmpty\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var Pure = (function () {\n function Pure(value0) {\n this.value0 = value0;\n };\n Pure.create = function (value0) {\n return new Pure(value0);\n };\n return Pure;\n })();\n var Lift = (function () {\n function Lift(value0) {\n this.value0 = value0;\n };\n Lift.create = function (value0) {\n return new Lift(value0);\n };\n return Lift;\n })();\n var Ap = (function () {\n function Ap(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Ap.create = function (value0) {\n return function (value1) {\n return new Ap(value0, value1);\n };\n };\n return Ap;\n })();\n var mkAp = function (fba) {\n return function (fb) {\n return new Ap(fba, fb);\n };\n };\n var liftFreeAp = Lift.create;\n var goLeft = function ($copy_dictApplicative) {\n return function ($copy_fStack) {\n return function ($copy_valStack) {\n return function ($copy_nat) {\n return function ($copy_func) {\n return function ($copy_count) {\n var $tco_var_dictApplicative = $copy_dictApplicative;\n var $tco_var_fStack = $copy_fStack;\n var $tco_var_valStack = $copy_valStack;\n var $tco_var_nat = $copy_nat;\n var $tco_var_func = $copy_func;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictApplicative, fStack, valStack, nat, func, count) {\n if (func instanceof Pure) {\n $tco_done = true;\n return new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: Control_Applicative.pure(dictApplicative)(func.value0),\n count: count\n }, fStack), valStack);\n };\n if (func instanceof Lift) {\n $tco_done = true;\n return new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: nat(func.value0),\n count: count\n }, fStack), valStack);\n };\n if (func instanceof Ap) {\n $tco_var_dictApplicative = dictApplicative;\n $tco_var_fStack = fStack;\n $tco_var_valStack = Data_List_NonEmpty.cons(func.value1)(valStack);\n $tco_var_nat = nat;\n $tco_var_func = func.value0;\n $copy_count = count + 1 | 0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 102, column 41 - line 105, column 81): \" + [ func.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictApplicative, $tco_var_fStack, $tco_var_valStack, $tco_var_nat, $tco_var_func, $copy_count);\n };\n return $tco_result;\n };\n };\n };\n };\n };\n };\n var goApply = function ($copy_dictApplicative) {\n return function ($copy_fStack) {\n return function ($copy_vals) {\n return function ($copy_gVal) {\n var $tco_var_dictApplicative = $copy_dictApplicative;\n var $tco_var_fStack = $copy_fStack;\n var $tco_var_vals = $copy_vals;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictApplicative, fStack, vals, gVal) {\n if (fStack instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gVal);\n };\n if (fStack instanceof Data_List_Types.Cons) {\n var gRes = Control_Apply.apply(dictApplicative.Apply0())(fStack.value0.func)(gVal);\n var $14 = fStack.value0.count === 1;\n if ($14) {\n if (fStack.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gRes);\n };\n $tco_var_dictApplicative = dictApplicative;\n $tco_var_fStack = fStack.value1;\n $tco_var_vals = vals;\n $copy_gVal = gRes;\n return;\n };\n if (vals instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gRes);\n };\n if (vals instanceof Data_List_Types.Cons) {\n $tco_done = true;\n return Data_Either.Right.create(new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: gRes,\n count: fStack.value0.count - 1 | 0\n }, fStack.value1), new Data_NonEmpty.NonEmpty(vals.value0, vals.value1)));\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 83, column 11 - line 88, column 50): \" + [ vals.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 72, column 3 - line 88, column 50): \" + [ fStack.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictApplicative, $tco_var_fStack, $tco_var_vals, $copy_gVal);\n };\n return $tco_result;\n };\n };\n };\n };\n var functorFreeAp = {\n map: function (f) {\n return function (x) {\n return mkAp(new Pure(f))(x);\n };\n }\n };\n var foldFreeAp = function (dictApplicative) {\n return function (nat) {\n return function (z) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value1.value0 instanceof Pure) {\n var v1 = goApply(dictApplicative)(v.value0)(v.value1.value1)(Control_Applicative.pure(dictApplicative)(v.value1.value0.value0));\n if (v1 instanceof Data_Either.Left) {\n $tco_done = true;\n return v1.value0;\n };\n if (v1 instanceof Data_Either.Right) {\n $copy_v = v1.value0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 54, column 17 - line 56, column 24): \" + [ v1.constructor.name ]);\n };\n if (v.value1.value0 instanceof Lift) {\n var v1 = goApply(dictApplicative)(v.value0)(v.value1.value1)(nat(v.value1.value0.value0));\n if (v1 instanceof Data_Either.Left) {\n $tco_done = true;\n return v1.value0;\n };\n if (v1 instanceof Data_Either.Right) {\n $copy_v = v1.value0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 57, column 17 - line 59, column 24): \" + [ v1.constructor.name ]);\n };\n if (v.value1.value0 instanceof Ap) {\n var nextVals = new Data_NonEmpty.NonEmpty(v.value1.value0.value1, v.value1.value1);\n $copy_v = goLeft(dictApplicative)(v.value0)(nextVals)(nat)(v.value1.value0.value0)(1);\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 53, column 5 - line 62, column 47): \" + [ v.value1.value0.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go(new Data_Tuple.Tuple(Data_List_Types.Nil.value, Data_List_NonEmpty.singleton(z)));\n };\n };\n };\n var retractFreeAp = function (dictApplicative) {\n return foldFreeAp(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n };\n var applyFreeAp = {\n apply: function (fba) {\n return function (fb) {\n return mkAp(fba)(fb);\n };\n },\n Functor0: function () {\n return functorFreeAp;\n }\n };\n var applicativeFreeAp = {\n pure: Pure.create,\n Apply0: function () {\n return applyFreeAp;\n }\n };\n var hoistFreeAp = function (f) {\n return foldFreeAp(applicativeFreeAp)(function ($37) {\n return liftFreeAp(f($37));\n });\n };\n exports[\"retractFreeAp\"] = retractFreeAp;\n exports[\"hoistFreeAp\"] = hoistFreeAp;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Control.Monad.Fork.Class\"] = $PS[\"Control.Monad.Fork.Class\"] || {};\n var exports = $PS[\"Control.Monad.Fork.Class\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var monadForkAff = {\n suspend: Effect_Aff.suspendAff,\n fork: Effect_Aff.forkAff,\n join: Effect_Aff.joinFiber,\n Monad0: function () {\n return Effect_Aff.monadAff;\n },\n Functor1: function () {\n return Effect_Aff.functorFiber;\n }\n };\n var fork = function (dict) {\n return dict.fork;\n };\n exports[\"fork\"] = fork;\n exports[\"monadForkAff\"] = monadForkAff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Aff.Driver.State\"] = $PS[\"Halogen.Aff.Driver.State\"] || {};\n var exports = $PS[\"Halogen.Aff.Driver.State\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Data_Slot = $PS[\"Halogen.Data.Slot\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var unRenderStateX = Unsafe_Coerce.unsafeCoerce;\n var unDriverStateX = Unsafe_Coerce.unsafeCoerce;\n var renderStateX_ = function (dictApplicative) {\n return function (f) {\n return unDriverStateX(function (st) {\n return Data_Foldable.traverse_(dictApplicative)(Data_Foldable.foldableMaybe)(f)(st.rendering);\n });\n };\n };\n var mkRenderStateX = Unsafe_Coerce.unsafeCoerce;\n var renderStateX = function (dictFunctor) {\n return function (f) {\n return unDriverStateX(function (st) {\n return mkRenderStateX(f(st.rendering));\n });\n };\n };\n var mkDriverStateXRef = Unsafe_Coerce.unsafeCoerce;\n var mapDriverState = function (f) {\n return function (v) {\n return f(v);\n };\n };\n var initDriverState = function (component) {\n return function (input) {\n return function (handler) {\n return function (lchs) {\n return function __do() {\n var selfRef = Effect_Ref[\"new\"]({})();\n var childrenIn = Effect_Ref[\"new\"](Halogen_Data_Slot.empty)();\n var childrenOut = Effect_Ref[\"new\"](Halogen_Data_Slot.empty)();\n var handlerRef = Effect_Ref[\"new\"](handler)();\n var pendingQueries = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_List_Types.Nil.value))();\n var pendingOuts = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_List_Types.Nil.value))();\n var pendingHandlers = Effect_Ref[\"new\"](Data_Maybe.Nothing.value)();\n var fresh = Effect_Ref[\"new\"](1)();\n var subscriptions = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_Map_Internal.empty))();\n var forks = Effect_Ref[\"new\"](Data_Map_Internal.empty)();\n var ds = {\n component: component,\n state: component.initialState(input),\n refs: Data_Map_Internal.empty,\n children: Halogen_Data_Slot.empty,\n childrenIn: childrenIn,\n childrenOut: childrenOut,\n selfRef: selfRef,\n handlerRef: handlerRef,\n pendingQueries: pendingQueries,\n pendingOuts: pendingOuts,\n pendingHandlers: pendingHandlers,\n rendering: Data_Maybe.Nothing.value,\n fresh: fresh,\n subscriptions: subscriptions,\n forks: forks,\n lifecycleHandlers: lchs\n };\n Effect_Ref.write(ds)(selfRef)();\n return mkDriverStateXRef(selfRef);\n };\n };\n };\n };\n };\n exports[\"mapDriverState\"] = mapDriverState;\n exports[\"unDriverStateX\"] = unDriverStateX;\n exports[\"renderStateX\"] = renderStateX;\n exports[\"renderStateX_\"] = renderStateX_;\n exports[\"unRenderStateX\"] = unRenderStateX;\n exports[\"initDriverState\"] = initDriverState;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Aff.Driver.Eval\"] = $PS[\"Halogen.Aff.Driver.Eval\"] || {};\n var exports = $PS[\"Halogen.Aff.Driver.Eval\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Applicative_Free = $PS[\"Control.Applicative.Free\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Fork_Class = $PS[\"Control.Monad.Fork.Class\"];\n var Control_Monad_Free = $PS[\"Control.Monad.Free\"];\n var Control_Parallel = $PS[\"Control.Parallel\"];\n var Control_Parallel_Class = $PS[\"Control.Parallel.Class\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Coyoneda = $PS[\"Data.Coyoneda\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Aff_Driver_State = $PS[\"Halogen.Aff.Driver.State\"];\n var Halogen_Query_ChildQuery = $PS[\"Halogen.Query.ChildQuery\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Halogen_Query_HalogenQ = $PS[\"Halogen.Query.HalogenQ\"];\n var Halogen_Query_Input = $PS[\"Halogen.Query.Input\"];\n var Halogen_Subscription = $PS[\"Halogen.Subscription\"];\n var Unsafe_Reference = $PS[\"Unsafe.Reference\"]; \n var unsubscribe = function (sid) {\n return function (ref) {\n return function __do() {\n var v = Effect_Ref.read(ref)();\n var subs = Effect_Ref.read(v.subscriptions)();\n return Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(Halogen_Subscription.unsubscribe)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordSubscriptionId)(sid))(subs))();\n };\n };\n };\n var queueOrRun = function (ref) {\n return function (au) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return au;\n };\n if (v instanceof Data_Maybe.Just) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write(new Data_Maybe.Just(new Data_List_Types.Cons(au, v.value0)))(ref));\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 182, column 33 - line 184, column 57): \" + [ v.constructor.name ]);\n });\n };\n };\n var handleLifecycle = function (lchs) {\n return function (f) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write({\n initializers: Data_List_Types.Nil.value,\n finalizers: Data_List_Types.Nil.value\n })(lchs)))(function () {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(f))(function (result) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(lchs)))(function (v) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff))(v.finalizers))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Control_Parallel.parSequence_(Effect_Aff.parallelAff)(Data_List_Types.foldableList)(v.initializers))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(result);\n });\n });\n });\n });\n });\n };\n };\n var handleAff = Effect_Aff.runAff_(Data_Either.either(Effect_Exception.throwException)(Data_Function[\"const\"](Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit))));\n var fresh = function (f) {\n return function (ref) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"modify'\"](function (i) {\n return {\n state: i + 1 | 0,\n value: f(i)\n };\n })(v.fresh));\n });\n };\n };\n var evalQ = function (render) {\n return function (ref) {\n return function (q) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n return evalM(render)(ref)(v[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Query(Data_Functor.map(Data_Coyoneda.functorCoyoneda)(Data_Maybe.Just.create)(Data_Coyoneda.liftCoyoneda(q)), Data_Function[\"const\"](Data_Maybe.Nothing.value))));\n });\n };\n };\n };\n var evalM = function (render) {\n return function (initRef) {\n return function (v) {\n var evalChildQuery = function (ref) {\n return function (cqb) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v1) {\n return Halogen_Query_ChildQuery.unChildQueryBox(function (v2) {\n var evalChild = function (v3) {\n return Control_Parallel_Class.parallel(Effect_Aff.parallelAff)(Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v3)))(function (dsx) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (ds) {\n return evalQ(render)(ds.selfRef)(v2.value1);\n })(dsx);\n }));\n };\n return Data_Functor.map(Effect_Aff.functorAff)(v2.value2)(Control_Parallel_Class.sequential(Effect_Aff.parallelAff)(v2.value0(Effect_Aff.applicativeParAff)(evalChild)(v1.children)));\n })(cqb);\n });\n };\n };\n var go = function (ref) {\n return function (v1) {\n if (v1 instanceof Halogen_Query_HalogenM.State) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n var v3 = v1.value0(v2.state);\n if (Unsafe_Reference.unsafeRefEq(v2.state)(v3.value1)) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v3.value0);\n };\n if (Data_Boolean.otherwise) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write({\n component: v2.component,\n state: v3.value1,\n refs: v2.refs,\n children: v2.children,\n childrenIn: v2.childrenIn,\n childrenOut: v2.childrenOut,\n selfRef: v2.selfRef,\n handlerRef: v2.handlerRef,\n pendingQueries: v2.pendingQueries,\n pendingOuts: v2.pendingOuts,\n pendingHandlers: v2.pendingHandlers,\n rendering: v2.rendering,\n fresh: v2.fresh,\n subscriptions: v2.subscriptions,\n forks: v2.forks,\n lifecycleHandlers: v2.lifecycleHandlers\n })(ref)))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(handleLifecycle(v2.lifecycleHandlers)(render(v2.lifecycleHandlers)(ref)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v3.value0);\n });\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 86, column 7 - line 92, column 21): \" + [ v3.constructor.name ]);\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Subscribe) {\n return Control_Bind.bind(Effect_Aff.bindAff)(fresh(Halogen_Query_HalogenM.SubscriptionId)(ref))(function (sid) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Halogen_Subscription.subscribe(v1.value0(sid))(function (act) {\n return handleAff(evalF(render)(ref)(new Halogen_Query_Input.Action(act)));\n })))(function (finalize) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.modify_(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Map_Internal.insert(Halogen_Query_HalogenM.ordSubscriptionId)(sid)(finalize)))(v2.subscriptions)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(sid));\n });\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Unsubscribe) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(unsubscribe(v1.value0)(ref)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Lift) {\n return v1.value0;\n };\n if (v1 instanceof Halogen_Query_HalogenM.ChildQuery) {\n return evalChildQuery(ref)(v1.value0);\n };\n if (v1 instanceof Halogen_Query_HalogenM.Raise) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v2.handlerRef)))(function (handler) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(queueOrRun(v2.pendingOuts)(handler(v1.value0)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Par) {\n return Control_Parallel_Class.sequential(Effect_Aff.parallelAff)(Control_Applicative_Free.retractFreeAp(Effect_Aff.applicativeParAff)(Control_Applicative_Free.hoistFreeAp((function () {\n var $78 = Control_Parallel_Class.parallel(Effect_Aff.parallelAff);\n var $79 = evalM(render)(ref);\n return function ($80) {\n return $78($79($80));\n };\n })())(v1.value0)));\n };\n if (v1 instanceof Halogen_Query_HalogenM.Fork) {\n return Control_Bind.bind(Effect_Aff.bindAff)(fresh(Halogen_Query_HalogenM.ForkId)(ref))(function (fid) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"new\"](false)))(function (doneRef) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff)(Effect_Aff[\"finally\"](Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(function __do() {\n Effect_Ref.modify_(Data_Map_Internal[\"delete\"](Halogen_Query_HalogenM.ordForkId)(fid))(v2.forks)();\n return Effect_Ref.write(true)(doneRef)();\n }))(evalM(render)(ref)(v1.value0))))(function (fiber) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Control_Monad.unlessM(Effect.monadEffect)(Effect_Ref.read(doneRef))(Effect_Ref.modify_(Data_Map_Internal.insert(Halogen_Query_HalogenM.ordForkId)(fid)(fiber))(v2.forks))))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(fid));\n });\n });\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Kill) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v2.forks)))(function (forkMap) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(Effect_Aff.killFiber(Effect_Exception.error(\"Cancelled\")))(Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordForkId)(v1.value0)(forkMap)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.GetRef) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(Data_Map_Internal.lookup(Data_Ord.ordString)(v1.value0)(v2.refs)));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 83, column 12 - line 133, column 33): \" + [ v1.constructor.name ]);\n };\n };\n return Control_Monad_Free.foldFree(Effect_Aff.monadRecAff)(go(initRef))(v);\n };\n };\n };\n var evalF = function (render) {\n return function (ref) {\n return function (v) {\n if (v instanceof Halogen_Query_Input.RefUpdate) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Data_Function.flip(Effect_Ref.modify_)(ref)(Halogen_Aff_Driver_State.mapDriverState(function (st) {\n return {\n component: st.component,\n state: st.state,\n refs: Data_Map_Internal.alter(Data_Ord.ordString)(Data_Function[\"const\"](v.value1))(v.value0)(st.refs),\n children: st.children,\n childrenIn: st.childrenIn,\n childrenOut: st.childrenOut,\n selfRef: st.selfRef,\n handlerRef: st.handlerRef,\n pendingQueries: st.pendingQueries,\n pendingOuts: st.pendingOuts,\n pendingHandlers: st.pendingHandlers,\n rendering: st.rendering,\n fresh: st.fresh,\n subscriptions: st.subscriptions,\n forks: st.forks,\n lifecycleHandlers: st.lifecycleHandlers\n };\n })));\n };\n if (v instanceof Halogen_Query_Input.Action) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v1) {\n return evalM(render)(ref)(v1[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Action(v.value0, Data_Unit.unit)));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 52, column 20 - line 58, column 62): \" + [ v.constructor.name ]);\n };\n };\n };\n exports[\"evalF\"] = evalF;\n exports[\"evalQ\"] = evalQ;\n exports[\"evalM\"] = evalM;\n exports[\"handleLifecycle\"] = handleLifecycle;\n exports[\"queueOrRun\"] = queueOrRun;\n exports[\"handleAff\"] = handleAff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Aff.Driver\"] = $PS[\"Halogen.Aff.Driver\"] || {};\n var exports = $PS[\"Halogen.Aff.Driver\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Monad_Fork_Class = $PS[\"Control.Monad.Fork.Class\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Parallel = $PS[\"Control.Parallel\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_List = $PS[\"Data.List\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Console = $PS[\"Effect.Console\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Aff_Driver_Eval = $PS[\"Halogen.Aff.Driver.Eval\"];\n var Halogen_Aff_Driver_State = $PS[\"Halogen.Aff.Driver.State\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_Data_Slot = $PS[\"Halogen.Data.Slot\"];\n var Halogen_Query_HalogenQ = $PS[\"Halogen.Query.HalogenQ\"];\n var Halogen_Query_Input = $PS[\"Halogen.Query.Input\"];\n var Halogen_Subscription = $PS[\"Halogen.Subscription\"]; \n var newLifecycleHandlers = Effect_Ref[\"new\"]({\n initializers: Data_List_Types.Nil.value,\n finalizers: Data_List_Types.Nil.value\n });\n var handlePending = function (ref) {\n return function __do() {\n var queue = Effect_Ref.read(ref)();\n Effect_Ref.write(Data_Maybe.Nothing.value)(ref)();\n return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(queue)((function () {\n var $28 = Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff));\n return function ($29) {\n return Halogen_Aff_Driver_Eval.handleAff($28(Data_List.reverse($29)));\n };\n })())();\n };\n };\n var cleanupSubscriptionsAndForks = function (v) {\n return function __do() {\n Control_Bind.bindFlipped(Effect.bindEffect)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Map_Internal.foldableMap)(Halogen_Subscription.unsubscribe)))(Effect_Ref.read(v.subscriptions))();\n Effect_Ref.write(Data_Maybe.Nothing.value)(v.subscriptions)();\n Control_Bind.bindFlipped(Effect.bindEffect)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Map_Internal.foldableMap)((function () {\n var $30 = Effect_Aff.killFiber(Effect_Exception.error(\"finalized\"));\n return function ($31) {\n return Halogen_Aff_Driver_Eval.handleAff($30($31));\n };\n })()))(Effect_Ref.read(v.forks))();\n return Effect_Ref.write(Data_Map_Internal.empty)(v.forks)();\n };\n };\n var runUI = function (renderSpec) {\n return function (component) {\n return function (i) {\n var squashChildInitializers = function (lchs) {\n return function (preInits) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n var parentInitializer = Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Initialize(Data_Unit.unit)));\n return Effect_Ref.modify_(function (handlers) {\n return {\n initializers: new Data_List_Types.Cons(Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Control_Parallel.parSequence_(Effect_Aff.parallelAff)(Data_List_Types.foldableList)(Data_List.reverse(handlers.initializers)))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(parentInitializer)(function () {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(function __do() {\n handlePending(st.pendingQueries)();\n return handlePending(st.pendingOuts)();\n });\n });\n }), preInits),\n finalizers: handlers.finalizers\n };\n })(lchs);\n });\n };\n };\n var runComponent = function (lchs) {\n return function (handler) {\n return function (j) {\n return Halogen_Component.unComponent(function (c) {\n return function __do() {\n var lchs$prime = newLifecycleHandlers();\n var $$var = Halogen_Aff_Driver_State.initDriverState(c)(j)(handler)(lchs$prime)();\n var pre = Effect_Ref.read(lchs)();\n Effect_Ref.write({\n initializers: Data_List_Types.Nil.value,\n finalizers: pre.finalizers\n })(lchs)();\n Control_Bind.bindFlipped(Effect.bindEffect)(Halogen_Aff_Driver_State.unDriverStateX((function () {\n var $32 = render(lchs);\n return function ($33) {\n return $32((function (v) {\n return v.selfRef;\n })($33));\n };\n })()))(Effect_Ref.read($$var))();\n Control_Bind.bindFlipped(Effect.bindEffect)(squashChildInitializers(lchs)(pre.initializers))(Effect_Ref.read($$var))();\n return $$var;\n };\n });\n };\n };\n };\n var renderChild = function (lchs) {\n return function (handler) {\n return function (childrenInRef) {\n return function (childrenOutRef) {\n return Halogen_Component.unComponentSlot(function (slot) {\n return function __do() {\n var childrenIn = Data_Functor.map(Effect.functorEffect)(slot.pop)(Effect_Ref.read(childrenInRef))();\n var $$var = (function () {\n if (childrenIn instanceof Data_Maybe.Just) {\n Effect_Ref.write(childrenIn.value0.value1)(childrenInRef)();\n var dsx = Effect_Ref.read(childrenIn.value0.value0)();\n Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return function __do() {\n Data_Function.flip(Effect_Ref.write)(st.handlerRef)((function () {\n var $34 = Data_Maybe.maybe(Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Unit.unit))(handler);\n return function ($35) {\n return $34(slot.output($35));\n };\n })())();\n return Halogen_Aff_Driver_Eval.handleAff(Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Receive(slot.input, Data_Unit.unit))))();\n };\n })(dsx)();\n return childrenIn.value0.value0;\n };\n if (childrenIn instanceof Data_Maybe.Nothing) {\n return runComponent(lchs)((function () {\n var $36 = Data_Maybe.maybe(Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Unit.unit))(handler);\n return function ($37) {\n return $36(slot.output($37));\n };\n })())(slot.input)(slot.component)();\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver (line 210, column 14 - line 219, column 98): \" + [ childrenIn.constructor.name ]);\n })();\n var isDuplicate = Data_Functor.map(Effect.functorEffect)(function ($38) {\n return Data_Maybe.isJust(slot.get($38));\n })(Effect_Ref.read(childrenOutRef))();\n Control_Applicative.when(Effect.applicativeEffect)(isDuplicate)(Effect_Console.warn(\"Halogen: Duplicate slot address was detected during rendering, unexpected results may occur\"))();\n Effect_Ref.modify_(slot.set($$var))(childrenOutRef)();\n return Control_Bind.bind(Effect.bindEffect)(Effect_Ref.read($$var))(Halogen_Aff_Driver_State.renderStateX(Effect.functorEffect)(function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Effect_Exception[\"throw\"](\"Halogen internal error: child was not initialized in renderChild\");\n };\n if (v instanceof Data_Maybe.Just) {\n return Control_Applicative.pure(Effect.applicativeEffect)(renderSpec.renderChild(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver (line 224, column 37 - line 226, column 50): \" + [ v.constructor.name ]);\n }))();\n };\n });\n };\n };\n };\n };\n var render = function (lchs) {\n return function ($$var) {\n return function __do() {\n var v = Effect_Ref.read($$var)();\n var shouldProcessHandlers = Data_Functor.map(Effect.functorEffect)(Data_Maybe.isNothing)(Effect_Ref.read(v.pendingHandlers))();\n Control_Applicative.when(Effect.applicativeEffect)(shouldProcessHandlers)(Effect_Ref.write(new Data_Maybe.Just(Data_List_Types.Nil.value))(v.pendingHandlers))();\n Effect_Ref.write(Halogen_Data_Slot.empty)(v.childrenOut)();\n Effect_Ref.write(v.children)(v.childrenIn)();\n var selfRef = Control_Category.identity(Control_Category.categoryFn)(v.selfRef);\n var pendingQueries = Control_Category.identity(Control_Category.categoryFn)(v.pendingQueries);\n var pendingHandlers = Control_Category.identity(Control_Category.categoryFn)(v.pendingHandlers);\n var handler = (function () {\n var $39 = Halogen_Aff_Driver_Eval.queueOrRun(pendingHandlers);\n var $40 = Data_Functor[\"void\"](Effect_Aff.functorAff);\n var $41 = Halogen_Aff_Driver_Eval.evalF(render)(selfRef);\n return function ($42) {\n return $39($40($41($42)));\n };\n })();\n var childHandler = (function () {\n var $43 = Halogen_Aff_Driver_Eval.queueOrRun(pendingQueries);\n return function ($44) {\n return $43(handler(Halogen_Query_Input.Action.create($44)));\n };\n })();\n var rendering = renderSpec.render(function ($45) {\n return Halogen_Aff_Driver_Eval.handleAff(handler($45));\n })(renderChild(lchs)(childHandler)(v.childrenIn)(v.childrenOut))(v.component.render(v.state))(v.rendering)();\n var children = Effect_Ref.read(v.childrenOut)();\n var childrenIn = Effect_Ref.read(v.childrenIn)();\n Halogen_Data_Slot.foreachSlot(Effect.applicativeEffect)(childrenIn)(function (v1) {\n return function __do() {\n var childDS = Effect_Ref.read(v1)();\n Halogen_Aff_Driver_State.renderStateX_(Effect.applicativeEffect)(renderSpec.removeChild)(childDS)();\n return finalize(lchs)(childDS)();\n };\n })();\n Data_Function.flip(Effect_Ref.modify_)(v.selfRef)(Halogen_Aff_Driver_State.mapDriverState(function (ds$prime) {\n return {\n component: ds$prime.component,\n state: ds$prime.state,\n refs: ds$prime.refs,\n children: children,\n childrenIn: ds$prime.childrenIn,\n childrenOut: ds$prime.childrenOut,\n selfRef: ds$prime.selfRef,\n handlerRef: ds$prime.handlerRef,\n pendingQueries: ds$prime.pendingQueries,\n pendingOuts: ds$prime.pendingOuts,\n pendingHandlers: ds$prime.pendingHandlers,\n rendering: new Data_Maybe.Just(rendering),\n fresh: ds$prime.fresh,\n subscriptions: ds$prime.subscriptions,\n forks: ds$prime.forks,\n lifecycleHandlers: ds$prime.lifecycleHandlers\n };\n }))();\n return Control_Applicative.when(Effect.applicativeEffect)(shouldProcessHandlers)(Data_Function.flip(Control_Monad_Rec_Class.tailRecM(Control_Monad_Rec_Class.monadRecEffect))(Data_Unit.unit)(function (v1) {\n return function __do() {\n var handlers = Effect_Ref.read(pendingHandlers)();\n Effect_Ref.write(new Data_Maybe.Just(Data_List_Types.Nil.value))(pendingHandlers)();\n Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)((function () {\n var $46 = Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff));\n return function ($47) {\n return Halogen_Aff_Driver_Eval.handleAff($46(Data_List.reverse($47)));\n };\n })())(handlers)();\n var mmore = Effect_Ref.read(pendingHandlers)();\n var $21 = Data_Maybe.maybe(false)(Data_List[\"null\"])(mmore);\n if ($21) {\n return Data_Functor.voidLeft(Effect.functorEffect)(Effect_Ref.write(Data_Maybe.Nothing.value)(pendingHandlers))(new Control_Monad_Rec_Class.Done(Data_Unit.unit))();\n };\n return new Control_Monad_Rec_Class.Loop(Data_Unit.unit);\n };\n }))();\n };\n };\n };\n var finalize = function (lchs) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return function __do() {\n cleanupSubscriptionsAndForks(st)();\n var f = Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Finalize(Data_Unit.unit)));\n Effect_Ref.modify_(function (handlers) {\n return {\n initializers: handlers.initializers,\n finalizers: new Data_List_Types.Cons(f, handlers.finalizers)\n };\n })(lchs)();\n return Halogen_Data_Slot.foreachSlot(Effect.applicativeEffect)(st.children)(function (v) {\n return function __do() {\n var dsx = Effect_Ref.read(v)();\n return finalize(lchs)(dsx)();\n };\n })();\n };\n });\n };\n var evalDriver = function (disposed) {\n return function (ref) {\n return function (q) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(disposed)))(function (v) {\n if (v) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Maybe.Nothing.value);\n };\n return Halogen_Aff_Driver_Eval.evalQ(render)(ref)(q);\n });\n };\n };\n };\n var dispose = function (disposed) {\n return function (lchs) {\n return function (dsx) {\n return Halogen_Aff_Driver_Eval.handleLifecycle(lchs)(function __do() {\n var v = Effect_Ref.read(disposed)();\n if (v) {\n return Data_Unit.unit;\n };\n Effect_Ref.write(true)(disposed)();\n finalize(lchs)(dsx)();\n return Halogen_Aff_Driver_State.unDriverStateX(function (v1) {\n return function __do() {\n var v2 = Effect_Class.liftEffect(Effect_Class.monadEffectEffect)(Effect_Ref.read(v1.selfRef))();\n return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(v2.rendering)(renderSpec.dispose)();\n };\n })(dsx)();\n });\n };\n };\n };\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(newLifecycleHandlers))(function (lchs) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"new\"](false)))(function (disposed) {\n return Halogen_Aff_Driver_Eval.handleLifecycle(lchs)(function __do() {\n var sio = Halogen_Subscription.create();\n var dsx = Control_Bind.bindFlipped(Effect.bindEffect)(Effect_Ref.read)(runComponent(lchs)((function () {\n var $48 = Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\n var $49 = Halogen_Subscription.notify(sio.listener);\n return function ($50) {\n return $48($49($50));\n };\n })())(i)(component))();\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return Control_Applicative.pure(Effect.applicativeEffect)({\n query: evalDriver(disposed)(st.selfRef),\n messages: sio.emitter,\n dispose: dispose(disposed)(lchs)(dsx)\n });\n })(dsx)();\n });\n });\n });\n };\n };\n };\n exports[\"runUI\"] = runUI;\n})(PS);\n(function(exports) {\n \"use strict\"; \n\n exports._querySelector = function (selector) {\n return function (node) {\n return function () {\n return node.querySelector(selector);\n };\n };\n };\n})(PS[\"Web.DOM.ParentNode\"] = PS[\"Web.DOM.ParentNode\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.DOM.ParentNode\"] = $PS[\"Web.DOM.ParentNode\"] || {};\n var exports = $PS[\"Web.DOM.ParentNode\"];\n var $foreign = $PS[\"Web.DOM.ParentNode\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Effect = $PS[\"Effect\"]; \n var QuerySelector = function (x) {\n return x;\n };\n var querySelector = function (qs) {\n var $0 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $1 = $foreign[\"_querySelector\"](qs);\n return function ($2) {\n return $0($1($2));\n };\n };\n exports[\"QuerySelector\"] = QuerySelector;\n exports[\"querySelector\"] = querySelector;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.Aff.Util\"] = $PS[\"Halogen.Aff.Util\"] || {};\n var exports = $PS[\"Halogen.Aff.Util\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Web_DOM_ParentNode = $PS[\"Web.DOM.ParentNode\"];\n var Web_Event_EventTarget = $PS[\"Web.Event.EventTarget\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_Event_EventTypes = $PS[\"Web.HTML.Event.EventTypes\"];\n var Web_HTML_HTMLDocument = $PS[\"Web.HTML.HTMLDocument\"];\n var Web_HTML_HTMLDocument_ReadyState = $PS[\"Web.HTML.HTMLDocument.ReadyState\"];\n var Web_HTML_HTMLElement = $PS[\"Web.HTML.HTMLElement\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"]; \n var selectElement = function (query) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Control_Bind.bindFlipped(Effect.bindEffect)(Control_Bind.composeKleisliFlipped(Effect.bindEffect)((function () {\n var $2 = Web_DOM_ParentNode.querySelector(query);\n return function ($3) {\n return $2(Web_HTML_HTMLDocument.toParentNode($3));\n };\n })())(Web_HTML_Window.document))(Web_HTML.window)))(function (mel) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_HTML_HTMLElement.fromElement)(mel));\n });\n };\n var runHalogenAff = Effect_Aff.runAff_(Data_Either.either(Effect_Exception.throwException)(Data_Function[\"const\"](Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit))));\n var awaitLoad = Effect_Aff.makeAff(function (callback) {\n return function __do() {\n var rs = Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_HTMLDocument.readyState)(Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Window.document)(Web_HTML.window))();\n if (rs instanceof Web_HTML_HTMLDocument_ReadyState.Loading) {\n var et = Data_Functor.map(Effect.functorEffect)(Web_HTML_Window.toEventTarget)(Web_HTML.window)();\n var listener = Web_Event_EventTarget.eventListener(function (v) {\n return callback(new Data_Either.Right(Data_Unit.unit));\n })();\n Web_Event_EventTarget.addEventListener(Web_HTML_Event_EventTypes.domcontentloaded)(listener)(false)(et)();\n return Effect_Aff.effectCanceler(Web_Event_EventTarget.removeEventListener(Web_HTML_Event_EventTypes.domcontentloaded)(listener)(false)(et));\n };\n callback(new Data_Either.Right(Data_Unit.unit))();\n return Effect_Aff.nonCanceler;\n };\n });\n exports[\"awaitLoad\"] = awaitLoad;\n exports[\"selectElement\"] = selectElement;\n exports[\"runHalogenAff\"] = runHalogenAff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.HTML\"] = $PS[\"Halogen.HTML\"] || {};\n var exports = $PS[\"Halogen.HTML\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"]; \n var slot_ = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (p) {\n return function (component) {\n return function (input) {\n return Halogen_HTML_Core.widget(new Halogen_Component.ComponentSlot(Halogen_Component.componentSlot()(dictIsSymbol)(dictOrd)(label)(p)(component)(input)(Data_Function[\"const\"](Data_Maybe.Nothing.value))));\n };\n };\n };\n };\n };\n };\n };\n var slot = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (p) {\n return function (component) {\n return function (input) {\n return function (outputQuery) {\n return Halogen_HTML_Core.widget(new Halogen_Component.ComponentSlot(Halogen_Component.componentSlot()(dictIsSymbol)(dictOrd)(label)(p)(component)(input)(function ($6) {\n return Data_Maybe.Just.create(outputQuery($6));\n })));\n };\n };\n };\n };\n };\n };\n };\n };\n exports[\"slot\"] = slot;\n exports[\"slot_\"] = slot_;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.VDom.DOM\"] = $PS[\"Halogen.VDom.DOM\"] || {};\n var exports = $PS[\"Halogen.VDom.DOM\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Types = $PS[\"Halogen.VDom.Types\"];\n var Halogen_VDom_Util = $PS[\"Halogen.VDom.Util\"];\n var Web_DOM_Element = $PS[\"Web.DOM.Element\"];\n var haltWidget = function (v) {\n return Halogen_VDom_Machine.halt(v.widget);\n };\n var patchWidget = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchWidget(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Widget) {\n var res = Halogen_VDom_Machine.step(state.widget, vdom.value0);\n var res$prime = Halogen_VDom_Machine.unStep(function (v) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(v.value0, {\n build: state.build,\n widget: res\n }, patchWidget, haltWidget));\n })(res);\n return res$prime;\n };\n haltWidget(state);\n return state.build(vdom);\n };\n var haltText = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n return Halogen_VDom_Util.removeChild(v.node, parent);\n };\n var patchText = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchText(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Text) {\n if (state.value === vdom.value0) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, state, patchText, haltText));\n };\n if (Data_Boolean.otherwise) {\n var nextState = {\n build: state.build,\n node: state.node,\n value: vdom.value0\n };\n Halogen_VDom_Util.setTextContent(vdom.value0, state.node);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchText, haltText));\n };\n };\n haltText(state);\n return state.build(vdom);\n };\n var haltKeyed = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n Halogen_VDom_Util.removeChild(v.node, parent);\n Halogen_VDom_Util.forInE(v.children, function (v1, s) {\n return Halogen_VDom_Machine.halt(s);\n });\n return Halogen_VDom_Machine.halt(v.attrs);\n };\n var haltElem = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n Halogen_VDom_Util.removeChild(v.node, parent);\n Halogen_VDom_Util.forEachE(v.children, Halogen_VDom_Machine.halt);\n return Halogen_VDom_Machine.halt(v.attrs);\n };\n var eqElemSpec = function (ns1, v, ns2, v1) {\n var $58 = v === v1;\n if ($58) {\n if (ns1 instanceof Data_Maybe.Just && (ns2 instanceof Data_Maybe.Just && ns1.value0 === ns2.value0)) {\n return true;\n };\n if (ns1 instanceof Data_Maybe.Nothing && ns2 instanceof Data_Maybe.Nothing) {\n return true;\n };\n return false;\n };\n return false;\n };\n var patchElem = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchElem(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Elem && eqElemSpec(state.ns, state.name, vdom.value0, vdom.value1)) {\n var v = Data_Array.length(vdom.value3);\n var v1 = Data_Array.length(state.children);\n if (v1 === 0 && v === 0) {\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: state.children\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchElem, haltElem));\n };\n var onThis = function (v2, s) {\n return Halogen_VDom_Machine.halt(s);\n };\n var onThese = function (ix, s, v2) {\n var res = Halogen_VDom_Machine.step(s, v2);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var onThat = function (ix, v2) {\n var res = state.build(v2);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var children2 = Halogen_VDom_Util.diffWithIxE(state.children, vdom.value3, onThese, onThis, onThat);\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: children2\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchElem, haltElem));\n };\n haltElem(state);\n return state.build(vdom);\n };\n var patchKeyed = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchKeyed(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Keyed && eqElemSpec(state.ns, state.name, vdom.value0, vdom.value1)) {\n var v = Data_Array.length(vdom.value3);\n if (state.length === 0 && v === 0) {\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: state.children,\n length: 0\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchKeyed, haltKeyed));\n };\n var onThis = function (v2, s) {\n return Halogen_VDom_Machine.halt(s);\n };\n var onThese = function (v2, ix$prime, s, v3) {\n var res = Halogen_VDom_Machine.step(s, v3.value1);\n Halogen_VDom_Util.insertChildIx(ix$prime, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var onThat = function (v2, ix, v3) {\n var res = state.build(v3.value1);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var children2 = Halogen_VDom_Util.diffWithKeyAndIxE(state.children, vdom.value3, Data_Tuple.fst, onThese, onThis, onThat);\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: children2,\n length: v\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchKeyed, haltKeyed));\n };\n haltKeyed(state);\n return state.build(vdom);\n };\n var buildWidget = function (v, build, w) {\n var res = v.buildWidget(v)(w);\n var res$prime = Halogen_VDom_Machine.unStep(function (v1) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(v1.value0, {\n build: build,\n widget: res\n }, patchWidget, haltWidget));\n })(res);\n return res$prime;\n };\n var buildText = function (v, build, s) {\n var node = Halogen_VDom_Util.createTextNode(s, v.document);\n var state = {\n build: build,\n node: node,\n value: s\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchText, haltText));\n };\n var buildKeyed = function (v, build, ns1, name1, as1, ch1) {\n var el = Halogen_VDom_Util.createElement(Data_Nullable.toNullable(ns1), name1, v.document);\n var node = Web_DOM_Element.toNode(el);\n var onChild = function (v1, ix, v2) {\n var res = build(v2.value1);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), node);\n return res;\n };\n var children = Halogen_VDom_Util.strMapWithIxE(ch1, Data_Tuple.fst, onChild);\n var attrs = v.buildAttributes(el)(as1);\n var state = {\n build: build,\n node: node,\n attrs: attrs,\n ns: ns1,\n name: name1,\n children: children,\n length: Data_Array.length(ch1)\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchKeyed, haltKeyed));\n };\n var buildElem = function (v, build, ns1, name1, as1, ch1) {\n var el = Halogen_VDom_Util.createElement(Data_Nullable.toNullable(ns1), name1, v.document);\n var node = Web_DOM_Element.toNode(el);\n var onChild = function (ix, child) {\n var res = build(child);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), node);\n return res;\n };\n var children = Halogen_VDom_Util.forE(ch1, onChild);\n var attrs = v.buildAttributes(el)(as1);\n var state = {\n build: build,\n node: node,\n attrs: attrs,\n ns: ns1,\n name: name1,\n children: children\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchElem, haltElem));\n };\n var buildVDom = function (spec) {\n var build = function (v) {\n if (v instanceof Halogen_VDom_Types.Text) {\n return buildText(spec, build, v.value0);\n };\n if (v instanceof Halogen_VDom_Types.Elem) {\n return buildElem(spec, build, v.value0, v.value1, v.value2, v.value3);\n };\n if (v instanceof Halogen_VDom_Types.Keyed) {\n return buildKeyed(spec, build, v.value0, v.value1, v.value2, v.value3);\n };\n if (v instanceof Halogen_VDom_Types.Widget) {\n return buildWidget(spec, build, v.value0);\n };\n if (v instanceof Halogen_VDom_Types.Grafted) {\n return build(Halogen_VDom_Types.runGraft(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM (line 58, column 27 - line 63, column 52): \" + [ v.constructor.name ]);\n };\n return build;\n };\n exports[\"buildVDom\"] = buildVDom;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.VDom.Thunk\"] = $PS[\"Halogen.VDom.Thunk\"] || {};\n var exports = $PS[\"Halogen.VDom.Thunk\"];\n var Halogen_VDom_DOM = $PS[\"Halogen.VDom.DOM\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Util = $PS[\"Halogen.VDom.Util\"]; \n var Thunk = (function () {\n function Thunk(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Thunk.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Thunk(value0, value1, value2, value3);\n };\n };\n };\n };\n return Thunk;\n })(); \n var unsafeEqThunk = function (v, v1) {\n return Halogen_VDom_Util.refEq(v.value0, v1.value0) && (Halogen_VDom_Util.refEq(v.value1, v1.value1) && v.value1(v.value3, v1.value3));\n };\n var thunk = function (tid, eqFn, f, a) {\n return new Thunk(tid, eqFn, f, a);\n };\n var runThunk = function (v) {\n return v.value2(v.value3);\n };\n var buildThunk = function (toVDom) {\n var haltThunk = function (state) {\n return Halogen_VDom_Machine.halt(state.vdom);\n };\n var patchThunk = function (state, t2) {\n var $43 = unsafeEqThunk(state.thunk, t2);\n if ($43) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(state.vdom), state, patchThunk, haltThunk));\n };\n var vdom = Halogen_VDom_Machine.step(state.vdom, toVDom(runThunk(t2)));\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(vdom), {\n vdom: vdom,\n thunk: t2\n }, patchThunk, haltThunk));\n };\n var renderThunk = function (spec) {\n return function (t) {\n var vdom = Halogen_VDom_DOM.buildVDom(spec)(toVDom(runThunk(t)));\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(vdom), {\n thunk: t,\n vdom: vdom\n }, patchThunk, haltThunk));\n };\n };\n return renderThunk;\n };\n exports[\"buildThunk\"] = buildThunk;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n var getEffProp = function (name) {\n return function (node) {\n return function () {\n return node[name];\n };\n };\n }; \n\n exports._parentNode = getEffProp(\"parentNode\"); \n\n exports._nextSibling = getEffProp(\"nextSibling\");\n\n exports.insertBefore = function (node1) {\n return function (node2) {\n return function (parent) {\n return function () {\n parent.insertBefore(node1, node2);\n };\n };\n };\n };\n\n exports.appendChild = function (node) {\n return function (parent) {\n return function () {\n parent.appendChild(node);\n };\n };\n };\n\n exports.removeChild = function (node) {\n return function (parent) {\n return function () {\n parent.removeChild(node);\n };\n };\n };\n})(PS[\"Web.DOM.Node\"] = PS[\"Web.DOM.Node\"] || {});\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Web.DOM.Node\"] = $PS[\"Web.DOM.Node\"] || {};\n var exports = $PS[\"Web.DOM.Node\"];\n var $foreign = $PS[\"Web.DOM.Node\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Effect = $PS[\"Effect\"];\n var parentNode = (function () {\n var $3 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($4) {\n return $3($foreign[\"_parentNode\"]($4));\n };\n })();\n var nextSibling = (function () {\n var $14 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($15) {\n return $14($foreign[\"_nextSibling\"]($15));\n };\n })();\n exports[\"parentNode\"] = parentNode;\n exports[\"nextSibling\"] = nextSibling;\n exports[\"insertBefore\"] = $foreign.insertBefore;\n exports[\"appendChild\"] = $foreign.appendChild;\n exports[\"removeChild\"] = $foreign.removeChild;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Halogen.VDom.Driver\"] = $PS[\"Halogen.VDom.Driver\"] || {};\n var exports = $PS[\"Halogen.VDom.Driver\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_HeytingAlgebra = $PS[\"Data.HeytingAlgebra\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Aff_Driver = $PS[\"Halogen.Aff.Driver\"];\n var Halogen_Aff_Driver_State = $PS[\"Halogen.Aff.Driver.State\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_VDom_DOM = $PS[\"Halogen.VDom.DOM\"];\n var Halogen_VDom_DOM_Prop = $PS[\"Halogen.VDom.DOM.Prop\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Thunk = $PS[\"Halogen.VDom.Thunk\"];\n var Unsafe_Reference = $PS[\"Unsafe.Reference\"];\n var Web_DOM_Node = $PS[\"Web.DOM.Node\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_HTMLDocument = $PS[\"Web.HTML.HTMLDocument\"];\n var Web_HTML_HTMLElement = $PS[\"Web.HTML.HTMLElement\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"];\n var substInParent = function (v) {\n return function (v1) {\n return function (v2) {\n if (v1 instanceof Data_Maybe.Just && v2 instanceof Data_Maybe.Just) {\n return Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.insertBefore(v)(v1.value0)(v2.value0));\n };\n if (v1 instanceof Data_Maybe.Nothing && v2 instanceof Data_Maybe.Just) {\n return Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.appendChild(v)(v2.value0));\n };\n return Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit);\n };\n };\n };\n var removeChild = function (v) {\n return function __do() {\n var npn = Web_DOM_Node.parentNode(v.node)();\n return Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(function (pn) {\n return Web_DOM_Node.removeChild(v.node)(pn);\n })(npn)();\n };\n };\n var mkSpec = function (handler) {\n return function (renderChildRef) {\n return function (document) {\n var getNode = Halogen_Aff_Driver_State.unRenderStateX(function (v) {\n return v.node;\n });\n var done = function (st) {\n if (st instanceof Data_Maybe.Just) {\n return Halogen_VDom_Machine.halt(st.value0);\n };\n return Data_Unit.unit;\n };\n var buildWidget = function (spec) {\n var buildThunk = Halogen_VDom_Thunk.buildThunk(Data_Newtype.unwrap())(spec);\n var renderComponentSlot = function (cs) {\n var renderChild = Effect_Ref.read(renderChildRef)();\n var rsx = renderChild(cs)();\n var node = getNode(rsx);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, Data_Maybe.Nothing.value, patch, done));\n };\n var render = function (slot) {\n if (slot instanceof Halogen_Component.ComponentSlot) {\n return renderComponentSlot(slot.value0);\n };\n if (slot instanceof Halogen_Component.ThunkSlot) {\n var step = buildThunk(slot.value0);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(step), new Data_Maybe.Just(step), patch, done));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 85, column 7 - line 90, column 75): \" + [ slot.constructor.name ]);\n };\n var patch = function (st, slot) {\n if (st instanceof Data_Maybe.Just) {\n if (slot instanceof Halogen_Component.ComponentSlot) {\n Halogen_VDom_Machine.halt(st.value0);\n return renderComponentSlot(slot.value0);\n };\n if (slot instanceof Halogen_Component.ThunkSlot) {\n var step$prime = Halogen_VDom_Machine.step(st.value0, slot.value0);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(step$prime), new Data_Maybe.Just(step$prime), patch, done));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 98, column 22 - line 104, column 79): \" + [ slot.constructor.name ]);\n };\n return render(slot);\n };\n return render;\n };\n var buildAttributes = Halogen_VDom_DOM_Prop.buildProp(handler);\n return {\n buildWidget: buildWidget,\n buildAttributes: buildAttributes,\n document: document\n };\n };\n };\n };\n var renderSpec = function (document) {\n return function (container) {\n var render = function (handler) {\n return function (child) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return function __do() {\n var renderChildRef = Effect_Ref[\"new\"](child)();\n var spec = mkSpec(handler)(renderChildRef)(document);\n var machine = Halogen_VDom_DOM.buildVDom(spec)(v);\n var node = Halogen_VDom_Machine.extract(machine);\n Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.appendChild(node)(Web_HTML_HTMLElement.toNode(container)))();\n return {\n machine: machine,\n node: node,\n renderChildRef: renderChildRef\n };\n };\n };\n if (v1 instanceof Data_Maybe.Just) {\n return function __do() {\n Effect_Ref.write(child)(v1.value0.renderChildRef)();\n var parent = Web_DOM_Node.parentNode(v1.value0.node)();\n var nextSib = Web_DOM_Node.nextSibling(v1.value0.node)();\n var machine$prime = Halogen_VDom_Machine.step(v1.value0.machine, v);\n var newNode = Halogen_VDom_Machine.extract(machine$prime);\n Control_Applicative.when(Effect.applicativeEffect)(Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraBoolean)))(Unsafe_Reference.unsafeRefEq)(v1.value0.node)(newNode))(substInParent(newNode)(nextSib)(parent))();\n return {\n machine: machine$prime,\n node: newNode,\n renderChildRef: v1.value0.renderChildRef\n };\n };\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 159, column 5 - line 175, column 80): \" + [ v1.constructor.name ]);\n };\n };\n };\n };\n return {\n render: render,\n renderChild: Control_Category.identity(Control_Category.categoryFn),\n removeChild: removeChild,\n dispose: removeChild\n };\n };\n };\n var runUI = function (component) {\n return function (i) {\n return function (element) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Data_Functor.map(Effect.functorEffect)(Web_HTML_HTMLDocument.toDocument)(Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Window.document)(Web_HTML.window))))(function (document) {\n return Halogen_Aff_Driver.runUI(renderSpec(document)(element))(component)(i);\n });\n };\n };\n };\n exports[\"runUI\"] = runUI;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.14.5\n \"use strict\";\n $PS[\"Main\"] = $PS[\"Main\"] || {};\n var exports = $PS[\"Main\"];\n var App_Action = $PS[\"App.Action\"];\n var App_Constants = $PS[\"App.Constants\"];\n var App_NoteComponent = $PS[\"App.NoteComponent\"];\n var App_OptionsComponent = $PS[\"App.OptionsComponent\"];\n var App_State = $PS[\"App.State\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Halogen_Aff_Util = $PS[\"Halogen.Aff.Util\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML = $PS[\"Halogen.HTML\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_VDom_Driver = $PS[\"Halogen.VDom.Driver\"];\n var Web_DOM_ParentNode = $PS[\"Web.DOM.ParentNode\"]; \n var hiddenP = Halogen_HTML_Properties.prop(Halogen_HTML_Core.isPropBoolean)(\"hidden\");\n var render = function (dictMonadAff) {\n return function (state) {\n return Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"all\"), Halogen_HTML_Properties.classes([ \"flex\", \"flex-wrap\", \"justify-center\", \"my-4\" ]) ])([ Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"hiddenDiv\") ])([ Halogen_HTML_Elements.a([ Halogen_HTML_Properties.id(App_Constants.hiddenURLId), hiddenP(true) ])([ Halogen_HTML_Core.text(\"download.md\") ]) ]), Halogen_HTML.slot()({\n reflectSymbol: function () {\n return \"note\";\n }\n })(Data_Ord.ordUnit)(App_NoteComponent[\"_noteComponent\"])(Data_Unit.unit)(App_NoteComponent.component(dictMonadAff))(state.note)(App_Action.NoteAction.create), Halogen_HTML.slot_()({\n reflectSymbol: function () {\n return \"options\";\n }\n })(Data_Ord.ordUnit)(App_OptionsComponent[\"_optionsComponent\"])(Data_Unit.unit)(App_OptionsComponent.component(dictMonadAff))(state.options) ]);\n };\n };\n var parentComponent = function (dictMonadAff) {\n return Halogen_Component.mkComponent({\n initialState: App_State.initialState,\n render: render(dictMonadAff),\n \"eval\": Halogen_Component.mkEval({\n handleAction: App_Action.handleAction(dictMonadAff),\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: Halogen_Component.defaultEval.receive,\n initialize: new Data_Maybe.Just(App_Action.Initialize.value),\n finalize: Halogen_Component.defaultEval.finalize\n })\n });\n };\n var main = Halogen_Aff_Util.runHalogenAff(Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Halogen_Aff_Util.awaitLoad)(function () {\n return Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(Web_DOM_ParentNode.QuerySelector(\"#\" + App_Constants.appElementId)))(function (appEl) {\n var app = Data_Maybe.fromJust()(appEl);\n return Halogen_VDom_Driver.runUI(parentComponent(Effect_Aff_Class.monadAffAff))(Data_Unit.unit)(app);\n });\n }));\n exports[\"main\"] = main;\n})(PS);\nPS[\"Main\"].main();"], + "mappings": "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", "names": [] } diff --git a/http/manifest.json b/http/manifest.json index 9dfe462..d41e33f 100644 --- a/http/manifest.json +++ b/http/manifest.json @@ -8,7 +8,7 @@ "display": "standalone", "theme_color": "#bfab91", "background_color": "#bfab91", - "version": "0.9.0", + "version": "0.9.2", "description": "Notoy.", "share_target": { "action": "/Notoy-PWA/http/", diff --git a/http/sw.js b/http/sw.js index a59a2e7..4003ed2 100644 --- a/http/sw.js +++ b/http/sw.js @@ -1 +1 @@ -(()=>{var s=(t,o,n)=>new Promise((h,i)=>{var W=a=>{try{e(n.next(a))}catch(c){i(c)}},l=a=>{try{e(n.throw(a))}catch(c){i(c)}},e=a=>a.done?h(a.value):Promise.resolve(a.value).then(W,l);e((n=n.apply(t,o)).next())});var p="Notoy-PWA-20220213185524",y=["/Notoy-PWA/http/404.html","/Notoy-PWA/http/app.js","/Notoy-PWA/http/app.js.map","/Notoy-PWA/http/apple-touch-icon.png","/Notoy-PWA/http/browserconfig.xml","/Notoy-PWA/http/favicon.ico","/Notoy-PWA/http/favicon.svg","/Notoy-PWA/http/icons/download.svg","/Notoy-PWA/http/icons/icon.svg","/Notoy-PWA/http/icons/maskable_128.png","/Notoy-PWA/http/icons/maskable_144.png","/Notoy-PWA/http/icons/maskable_16.png","/Notoy-PWA/http/icons/maskable_192.png","/Notoy-PWA/http/icons/maskable_256.png","/Notoy-PWA/http/icons/maskable_32.png","/Notoy-PWA/http/icons/maskable_48.png","/Notoy-PWA/http/icons/maskable_512.png","/Notoy-PWA/http/icons/maskable_72.png","/Notoy-PWA/http/icons/maskable_96.png","/Notoy-PWA/http/icons/position.svg","/Notoy-PWA/http/icons/share.svg","/Notoy-PWA/http/icons/transparent_128.png","/Notoy-PWA/http/icons/transparent_144.png","/Notoy-PWA/http/icons/transparent_16.png","/Notoy-PWA/http/icons/transparent_192.png","/Notoy-PWA/http/icons/transparent_256.png","/Notoy-PWA/http/icons/transparent_32.png","/Notoy-PWA/http/icons/transparent_48.png","/Notoy-PWA/http/icons/transparent_512.png","/Notoy-PWA/http/icons/transparent_72.png","/Notoy-PWA/http/icons/transparent_96.png","/Notoy-PWA/http/index.html","/Notoy-PWA/http/manifest.json","/Notoy-PWA/http/mstile-150x150.png","/Notoy-PWA/http/notoy-pwa.css","/Notoy-PWA/http/safari-pinned-tab.svg","/Notoy-PWA/http/sw.js","/Notoy-PWA/http/sw.js.map","/Notoy-PWA/http/"];function A(){return s(this,null,function*(){yield(yield caches.open(p)).addAll(y),console.log(`[Service Worker] installed files to ${p}`)})}addEventListener("install",t=>{t.waitUntil(A())});function P(){return s(this,null,function*(){let t=yield caches.keys();yield Promise.all(t.map(o=>o!==p&&caches.delete(o))),console.log("[Service Worker] activated")})}addEventListener("activate",t=>t.waitUntil(P()));function N(t){return s(this,null,function*(){let o=yield caches.match(t,{ignoreSearch:!0});if(o)return console.log(`[Service Worker] cache hit: ${t.url}`),o;console.log(`[Service Worker] fetching ${t.url}`);let n=yield fetch(t).catch(r);return n.ok?n:(console.log(`[Service Worker] haven't found ${t.url}`),r("URL not found"))})}addEventListener("fetch",t=>t.respondWith(N(t.request)));function r(t){return s(this,null,function*(){return console.log(`[Service Worker] Error: "${t}"`),caches.match("/404.html")})}})(); +(()=>{var s=(t,o,n)=>new Promise((h,i)=>{var W=a=>{try{e(n.next(a))}catch(c){i(c)}},l=a=>{try{e(n.throw(a))}catch(c){i(c)}},e=a=>a.done?h(a.value):Promise.resolve(a.value).then(W,l);e((n=n.apply(t,o)).next())});var p="Notoy-PWA-20220218164900",y=["/Notoy-PWA/http/404.html","/Notoy-PWA/http/app.js","/Notoy-PWA/http/app.js.map","/Notoy-PWA/http/apple-touch-icon.png","/Notoy-PWA/http/browserconfig.xml","/Notoy-PWA/http/favicon.ico","/Notoy-PWA/http/favicon.svg","/Notoy-PWA/http/icons/download.svg","/Notoy-PWA/http/icons/icon.svg","/Notoy-PWA/http/icons/maskable_128.png","/Notoy-PWA/http/icons/maskable_144.png","/Notoy-PWA/http/icons/maskable_16.png","/Notoy-PWA/http/icons/maskable_192.png","/Notoy-PWA/http/icons/maskable_256.png","/Notoy-PWA/http/icons/maskable_32.png","/Notoy-PWA/http/icons/maskable_48.png","/Notoy-PWA/http/icons/maskable_512.png","/Notoy-PWA/http/icons/maskable_72.png","/Notoy-PWA/http/icons/maskable_96.png","/Notoy-PWA/http/icons/position.svg","/Notoy-PWA/http/icons/share.svg","/Notoy-PWA/http/icons/transparent_128.png","/Notoy-PWA/http/icons/transparent_144.png","/Notoy-PWA/http/icons/transparent_16.png","/Notoy-PWA/http/icons/transparent_192.png","/Notoy-PWA/http/icons/transparent_256.png","/Notoy-PWA/http/icons/transparent_32.png","/Notoy-PWA/http/icons/transparent_48.png","/Notoy-PWA/http/icons/transparent_512.png","/Notoy-PWA/http/icons/transparent_72.png","/Notoy-PWA/http/icons/transparent_96.png","/Notoy-PWA/http/index.html","/Notoy-PWA/http/manifest.json","/Notoy-PWA/http/mstile-150x150.png","/Notoy-PWA/http/notoy-pwa.css","/Notoy-PWA/http/safari-pinned-tab.svg","/Notoy-PWA/http/sw.js","/Notoy-PWA/http/sw.js.map","/Notoy-PWA/http/"];function A(){return s(this,null,function*(){yield(yield caches.open(p)).addAll(y),console.log(`[Service Worker] installed files to ${p}`)})}addEventListener("install",t=>{t.waitUntil(A())});function P(){return s(this,null,function*(){let t=yield caches.keys();yield Promise.all(t.map(o=>o!==p&&caches.delete(o))),console.log("[Service Worker] activated")})}addEventListener("activate",t=>t.waitUntil(P()));function N(t){return s(this,null,function*(){let o=yield caches.match(t,{ignoreSearch:!0});if(o)return console.log(`[Service Worker] cache hit: ${t.url}`),o;console.log(`[Service Worker] fetching ${t.url}`);let n=yield fetch(t).catch(r);return n.ok?n:(console.log(`[Service Worker] haven't found ${t.url}`),r("URL not found"))})}addEventListener("fetch",t=>t.respondWith(N(t.request)));function r(t){return s(this,null,function*(){return console.log(`[Service Worker] Error: "${t}"`),caches.match("/404.html")})}})(); diff --git a/http/sw.js.map b/http/sw.js.map index 97d8320..7c67eea 100644 --- a/http/sw.js.map +++ b/http/sw.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["http/sw.js"], - "sourcesContent": ["// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright (C) 2021 Roland Csaszar\n//\n// Project: notoy-pwa\n// File: sw.js\n// Date: 02.Dec.2021\n//\n// ==============================================================================\n/* eslint-disable function-paren-newline */\n/* eslint-disable implicit-arrow-linebreak */\n\n// `version` is the name of the cache, including a timestamp.\n// This is filled by `gulp bundle` when copying `sw.js` to the directory `http`.\n// eslint-disable-next-line no-undef\nconst version = \"Notoy-PWA-20220213185524\"\n// `manifest` is an array holding the paths to all files to cache.\n// This is changed against the real list of files by `gulp bundle` when copying\n//`sw.js` to the directory `http`.\n// eslint-disable-next-line no-undef\nconst manifest = [\n\"/Notoy-PWA/http/404.html\",\"/Notoy-PWA/http/app.js\",\"/Notoy-PWA/http/app.js.map\",\"/Notoy-PWA/http/apple-touch-icon.png\",\"/Notoy-PWA/http/browserconfig.xml\",\"/Notoy-PWA/http/favicon.ico\",\"/Notoy-PWA/http/favicon.svg\",\"/Notoy-PWA/http/icons/download.svg\",\"/Notoy-PWA/http/icons/icon.svg\",\"/Notoy-PWA/http/icons/maskable_128.png\",\"/Notoy-PWA/http/icons/maskable_144.png\",\"/Notoy-PWA/http/icons/maskable_16.png\",\"/Notoy-PWA/http/icons/maskable_192.png\",\"/Notoy-PWA/http/icons/maskable_256.png\",\"/Notoy-PWA/http/icons/maskable_32.png\",\"/Notoy-PWA/http/icons/maskable_48.png\",\"/Notoy-PWA/http/icons/maskable_512.png\",\"/Notoy-PWA/http/icons/maskable_72.png\",\"/Notoy-PWA/http/icons/maskable_96.png\",\"/Notoy-PWA/http/icons/position.svg\",\"/Notoy-PWA/http/icons/share.svg\",\"/Notoy-PWA/http/icons/transparent_128.png\",\"/Notoy-PWA/http/icons/transparent_144.png\",\"/Notoy-PWA/http/icons/transparent_16.png\",\"/Notoy-PWA/http/icons/transparent_192.png\",\"/Notoy-PWA/http/icons/transparent_256.png\",\"/Notoy-PWA/http/icons/transparent_32.png\",\"/Notoy-PWA/http/icons/transparent_48.png\",\"/Notoy-PWA/http/icons/transparent_512.png\",\"/Notoy-PWA/http/icons/transparent_72.png\",\"/Notoy-PWA/http/icons/transparent_96.png\",\"/Notoy-PWA/http/index.html\",\"/Notoy-PWA/http/manifest.json\",\"/Notoy-PWA/http/mstile-150x150.png\",\"/Notoy-PWA/http/notoy-pwa.css\",\"/Notoy-PWA/http/safari-pinned-tab.svg\",\"/Notoy-PWA/http/sw.js\",\"/Notoy-PWA/http/sw.js.map\",\"/Notoy-PWA/http/\"\n]\n\n//==============================================================================\n// Installation\n\n/**\n * Install the service worker.\n * On installation, all files Parcel knows about are added to the cache.\n */\nasync function install() {\n const cache = await caches.open(version)\n await cache.addAll(manifest)\n // eslint-disable-next-line no-console\n console.log(`[Service Worker] installed files to ${version}`)\n}\n\naddEventListener(\"install\", (event) => {\n event.waitUntil(install())\n})\n\n//==============================================================================\n// Activation\n\n/**\n * Activate service worker.\n * On activation all files from older versions of the cache are deleted.\n */\nasync function activate() {\n const keys = await caches.keys()\n await Promise.all(keys.map((key) => key !== version && caches.delete(key)))\n // eslint-disable-next-line no-console\n console.log(`[Service Worker] activated`)\n}\n\naddEventListener(\"activate\", (event) => event.waitUntil(activate()))\n\n//==============================================================================\n// Fetching\n\n/**\n * Fetches the given URL, either from cache or the server.\n *\n * @param {RequestInfo} request The request to fulfill.\n *\n * @returns {Response} The fetched URL as `Response`.\n */\nasync function fetchFromCache(request) {\n const cachedResponse = await caches.match(request, { ignoreSearch: true })\n if (cachedResponse) {\n // eslint-disable-next-line no-console\n console.log(`[Service Worker] cache hit: ${request.url}`)\n return cachedResponse\n }\n // eslint-disable-next-line no-console\n console.log(`[Service Worker] fetching ${request.url}`)\n\n const response = await fetch(request).catch(return404)\n if (response.ok) {\n return response\n }\n // eslint-disable-next-line no-console\n console.log(`[Service Worker] haven't found ${request.url}`)\n return return404(\"URL not found\")\n}\n\naddEventListener(\"fetch\", (event) =>\n event.respondWith(fetchFromCache(event.request))\n)\n\n//==============================================================================\n// Return the 404 error page.\nasync function return404(err) {\n // eslint-disable-next-line no-console\n console.log(`[Service Worker] Error: \"${err}\"`)\n return caches.match(\"/404.html\")\n}\n"], + "sourcesContent": ["// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright (C) 2021 Roland Csaszar\n//\n// Project: notoy-pwa\n// File: sw.js\n// Date: 02.Dec.2021\n//\n// ==============================================================================\n/* eslint-disable function-paren-newline */\n/* eslint-disable implicit-arrow-linebreak */\n\n// `version` is the name of the cache, including a timestamp.\n// This is filled by `gulp bundle` when copying `sw.js` to the directory `http`.\n// eslint-disable-next-line no-undef\nconst version = \"Notoy-PWA-20220218164900\"\n// `manifest` is an array holding the paths to all files to cache.\n// This is changed against the real list of files by `gulp bundle` when copying\n//`sw.js` to the directory `http`.\n// eslint-disable-next-line no-undef\nconst manifest = [\n\"/Notoy-PWA/http/404.html\",\"/Notoy-PWA/http/app.js\",\"/Notoy-PWA/http/app.js.map\",\"/Notoy-PWA/http/apple-touch-icon.png\",\"/Notoy-PWA/http/browserconfig.xml\",\"/Notoy-PWA/http/favicon.ico\",\"/Notoy-PWA/http/favicon.svg\",\"/Notoy-PWA/http/icons/download.svg\",\"/Notoy-PWA/http/icons/icon.svg\",\"/Notoy-PWA/http/icons/maskable_128.png\",\"/Notoy-PWA/http/icons/maskable_144.png\",\"/Notoy-PWA/http/icons/maskable_16.png\",\"/Notoy-PWA/http/icons/maskable_192.png\",\"/Notoy-PWA/http/icons/maskable_256.png\",\"/Notoy-PWA/http/icons/maskable_32.png\",\"/Notoy-PWA/http/icons/maskable_48.png\",\"/Notoy-PWA/http/icons/maskable_512.png\",\"/Notoy-PWA/http/icons/maskable_72.png\",\"/Notoy-PWA/http/icons/maskable_96.png\",\"/Notoy-PWA/http/icons/position.svg\",\"/Notoy-PWA/http/icons/share.svg\",\"/Notoy-PWA/http/icons/transparent_128.png\",\"/Notoy-PWA/http/icons/transparent_144.png\",\"/Notoy-PWA/http/icons/transparent_16.png\",\"/Notoy-PWA/http/icons/transparent_192.png\",\"/Notoy-PWA/http/icons/transparent_256.png\",\"/Notoy-PWA/http/icons/transparent_32.png\",\"/Notoy-PWA/http/icons/transparent_48.png\",\"/Notoy-PWA/http/icons/transparent_512.png\",\"/Notoy-PWA/http/icons/transparent_72.png\",\"/Notoy-PWA/http/icons/transparent_96.png\",\"/Notoy-PWA/http/index.html\",\"/Notoy-PWA/http/manifest.json\",\"/Notoy-PWA/http/mstile-150x150.png\",\"/Notoy-PWA/http/notoy-pwa.css\",\"/Notoy-PWA/http/safari-pinned-tab.svg\",\"/Notoy-PWA/http/sw.js\",\"/Notoy-PWA/http/sw.js.map\",\"/Notoy-PWA/http/\"\n]\n\n//==============================================================================\n// Installation\n\n/**\n * Install the service worker.\n * On installation, all files Parcel knows about are added to the cache.\n */\nasync function install() {\n const cache = await caches.open(version)\n await cache.addAll(manifest)\n // eslint-disable-next-line no-console\n console.log(`[Service Worker] installed files to ${version}`)\n}\n\naddEventListener(\"install\", (event) => {\n event.waitUntil(install())\n})\n\n//==============================================================================\n// Activation\n\n/**\n * Activate service worker.\n * On activation all files from older versions of the cache are deleted.\n */\nasync function activate() {\n const keys = await caches.keys()\n await Promise.all(keys.map((key) => key !== version && caches.delete(key)))\n // eslint-disable-next-line no-console\n console.log(`[Service Worker] activated`)\n}\n\naddEventListener(\"activate\", (event) => event.waitUntil(activate()))\n\n//==============================================================================\n// Fetching\n\n/**\n * Fetches the given URL, either from cache or the server.\n *\n * @param {RequestInfo} request The request to fulfill.\n *\n * @returns {Response} The fetched URL as `Response`.\n */\nasync function fetchFromCache(request) {\n const cachedResponse = await caches.match(request, { ignoreSearch: true })\n if (cachedResponse) {\n // eslint-disable-next-line no-console\n console.log(`[Service Worker] cache hit: ${request.url}`)\n return cachedResponse\n }\n // eslint-disable-next-line no-console\n console.log(`[Service Worker] fetching ${request.url}`)\n\n const response = await fetch(request).catch(return404)\n if (response.ok) {\n return response\n }\n // eslint-disable-next-line no-console\n console.log(`[Service Worker] haven't found ${request.url}`)\n return return404(\"URL not found\")\n}\n\naddEventListener(\"fetch\", (event) =>\n event.respondWith(fetchFromCache(event.request))\n)\n\n//==============================================================================\n// Return the 404 error page.\nasync function return404(err) {\n // eslint-disable-next-line no-console\n console.log(`[Service Worker] Error: \"${err}\"`)\n return caches.match(\"/404.html\")\n}\n"], "mappings": "mNAcA,GAAM,GAAU,2BAKV,EAAW,CACjB,2BAA2B,yBAAyB,6BAA6B,uCAAuC,oCAAoC,8BAA8B,8BAA8B,qCAAqC,iCAAiC,yCAAyC,yCAAyC,wCAAwC,yCAAyC,yCAAyC,wCAAwC,wCAAwC,yCAAyC,wCAAwC,wCAAwC,qCAAqC,kCAAkC,4CAA4C,4CAA4C,2CAA2C,4CAA4C,4CAA4C,2CAA2C,2CAA2C,4CAA4C,2CAA2C,2CAA2C,6BAA6B,gCAAgC,qCAAqC,gCAAgC,wCAAwC,wBAAwB,4BAA4B,oBAU34C,YAAyB,gCAErB,KAAM,AADQ,MAAM,QAAO,KAAK,IACpB,OAAO,GAEnB,QAAQ,IAAI,uCAAuC,OAGvD,iBAAiB,UAAW,AAAC,GAAU,CACnC,EAAM,UAAU,OAUpB,YAA0B,gCACtB,GAAM,GAAO,KAAM,QAAO,OAC1B,KAAM,SAAQ,IAAI,EAAK,IAAI,AAAC,GAAQ,IAAQ,GAAW,OAAO,OAAO,KAErE,QAAQ,IAAI,gCAGhB,iBAAiB,WAAY,AAAC,GAAU,EAAM,UAAU,MAYxD,WAA8B,EAAS,gCACnC,GAAM,GAAiB,KAAM,QAAO,MAAM,EAAS,CAAE,aAAc,KACnE,GAAI,EAEA,eAAQ,IAAI,+BAA+B,EAAQ,OAC5C,EAGX,QAAQ,IAAI,6BAA6B,EAAQ,OAEjD,GAAM,GAAW,KAAM,OAAM,GAAS,MAAM,GAC5C,MAAI,GAAS,GACF,EAGX,SAAQ,IAAI,kCAAkC,EAAQ,OAC/C,EAAU,oBAGrB,iBAAiB,QAAS,AAAC,GACvB,EAAM,YAAY,EAAe,EAAM,WAK3C,WAAyB,EAAK,gCAE1B,eAAQ,IAAI,4BAA4B,MACjC,OAAO,MAAM", "names": [] }