{ "version": 3, "sources": ["../node_modules/moment/moment.js", "../node_modules/dompurify/src/utils.js", "../node_modules/dompurify/src/tags.js", "../node_modules/dompurify/src/attrs.js", "../node_modules/dompurify/src/regexp.js", "../node_modules/dompurify/src/purify.js", "../output/Main/index.js", "../output/Affjax/foreign.js", "../output/Data.Functor/foreign.js", "../output/Control.Semigroupoid/index.js", "../output/Control.Category/index.js", "../output/Data.Boolean/index.js", "../output/Data.Function/index.js", "../output/Type.Proxy/index.js", "../output/Data.Functor/index.js", "../output/Data.Semigroup/foreign.js", "../output/Data.Symbol/index.js", "../output/Data.Void/index.js", "../output/Record.Unsafe/foreign.js", "../output/Data.Semigroup/index.js", "../output/Control.Alt/index.js", "../output/Control.Apply/foreign.js", "../output/Control.Apply/index.js", "../output/Control.Applicative/index.js", "../output/Data.Bounded/foreign.js", "../output/Data.Ord/foreign.js", "../output/Data.Eq/foreign.js", "../output/Data.Eq/index.js", "../output/Data.Ordering/index.js", "../output/Data.Ring/foreign.js", "../output/Data.Semiring/foreign.js", "../output/Data.Semiring/index.js", "../output/Data.Ring/index.js", "../output/Data.Ord/index.js", "../output/Data.Bounded/index.js", "../output/Data.Show/foreign.js", "../output/Data.Show/index.js", "../output/Data.Maybe/index.js", "../output/Data.MediaType.Common/index.js", "../output/Affjax.RequestBody/index.js", "../output/Unsafe.Coerce/foreign.js", "../output/Safe.Coerce/index.js", "../output/Data.Newtype/index.js", "../output/Affjax.RequestHeader/index.js", "../output/Affjax.ResponseFormat/index.js", "../output/Affjax.ResponseHeader/index.js", "../output/Control.Bind/foreign.js", "../output/Control.Bind/index.js", "../output/Data.Either/index.js", "../output/Effect/foreign.js", "../output/Control.Monad/index.js", "../output/Data.EuclideanRing/foreign.js", "../output/Data.CommutativeRing/index.js", "../output/Data.EuclideanRing/index.js", "../output/Data.Monoid/index.js", "../output/Effect/index.js", "../output/Effect.Exception/foreign.js", "../output/Effect.Exception/index.js", "../output/Control.Monad.Error.Class/index.js", "../output/Data.Identity/index.js", "../output/Effect.Ref/foreign.js", "../output/Effect.Ref/index.js", "../output/Control.Monad.Rec.Class/index.js", "../output/Data.HeytingAlgebra/foreign.js", "../output/Data.HeytingAlgebra/index.js", "../output/Data.Tuple/index.js", "../output/Control.Monad.State.Class/index.js", "../output/Effect.Class/index.js", "../output/Control.Monad.Except.Trans/index.js", "../output/Control.Monad.Except/index.js", "../output/Data.Argonaut.Core/foreign.js", "../output/Foreign.Object/foreign.js", "../output/Data.Array/foreign.js", "../output/Data.Array.ST/foreign.js", "../output/Control.Monad.ST.Uncurried/foreign.js", "../output/Data.Array.ST/index.js", "../output/Data.Foldable/foreign.js", "../output/Control.Plus/index.js", "../output/Data.Bifunctor/index.js", "../output/Data.Monoid.Disj/index.js", "../output/Data.Foldable/index.js", "../output/Data.Function.Uncurried/foreign.js", "../output/Data.Traversable/foreign.js", "../output/Data.Traversable/index.js", "../output/Data.Unfoldable/foreign.js", "../output/Data.Unfoldable1/foreign.js", "../output/Data.Unfoldable1/index.js", "../output/Data.Unfoldable/index.js", "../output/Data.Array/index.js", "../output/Foreign.Object.ST/foreign.js", "../output/Foreign.Object/index.js", "../output/Data.Argonaut.Core/index.js", "../output/Data.Argonaut.Parser/foreign.js", "../output/Data.Argonaut.Parser/index.js", "../output/Data.String.Common/foreign.js", "../output/Data.String.Common/index.js", "../output/JSURI/foreign.js", "../output/JSURI/index.js", "../output/Data.FormURLEncoded/index.js", "../output/Data.HTTP.Method/index.js", "../output/Data.NonEmpty/index.js", "../output/Data.List.Types/index.js", "../output/Data.List/index.js", "../output/Partial.Unsafe/foreign.js", "../output/Partial/foreign.js", "../output/Partial/index.js", "../output/Partial.Unsafe/index.js", "../output/Data.List.NonEmpty/index.js", "../output/Data.Nullable/foreign.js", "../output/Data.Nullable/index.js", "../output/Effect.Aff/foreign.js", "../output/Data.Profunctor/index.js", "../output/Control.Parallel.Class/index.js", "../output/Control.Parallel/index.js", "../output/Effect.Unsafe/foreign.js", "../output/Effect.Aff/index.js", "../output/Effect.Aff.Compat/index.js", "../output/Foreign/foreign.js", "../output/Data.Int/foreign.js", "../output/Data.Number/foreign.js", "../output/Data.Int/index.js", "../output/Data.String.CodeUnits/foreign.js", "../output/Data.String.Unsafe/foreign.js", "../output/Data.String.CodeUnits/index.js", "../output/Foreign/index.js", "../output/Affjax/index.js", "../output/Affjax.StatusCode/index.js", "../output/Affjax.Web/foreign.js", "../output/Affjax.Web/index.js", "../output/Globals/foreign.js", "../output/Globals/index.js", "../output/Simple.JSON/foreign.js", "../output/Data.Enum/foreign.js", "../output/Data.Enum/index.js", "../output/Foreign.Index/foreign.js", "../output/Foreign.Index/index.js", "../output/Record/index.js", "../output/Record.Builder/foreign.js", "../output/Record.Builder/index.js", "../output/Simple.JSON/index.js", "../output/Model/index.js", "../output/Web.HTML/foreign.js", "../output/Web.HTML.Common/index.js", "../output/Web.HTML.HTMLDocument/foreign.js", "../output/Web.HTML.HTMLDocument/index.js", "../output/Web.HTML.HTMLElement/foreign.js", "../output/Web.HTML.HTMLElement/index.js", "../output/Web.HTML.Location/foreign.js", "../output/Web.HTML.Window/foreign.js", "../output/App/index.js", "../output/DOM.HTML.Indexed.InputType/index.js", "../output/Data.Lens.Internal.Forget/index.js", "../output/Data.Profunctor.Strong/index.js", "../output/Data.Lens.Getter/index.js", "../output/Data.Lens.Lens/index.js", "../output/Data.Lens.Setter/index.js", "../output/Effect.Aff.Class/index.js", "../output/Data.Exists/index.js", "../output/Data.Coyoneda/index.js", "../output/Data.Map.Internal/index.js", "../output/Halogen.Data.OrdBox/index.js", "../output/Halogen.Data.Slot/index.js", "../output/DOM.HTML.Indexed.AutocompleteType/index.js", "../output/DOM.HTML.Indexed.ButtonType/index.js", "../output/Halogen.Query.Input/index.js", "../output/Halogen.VDom.Machine/index.js", "../output/Halogen.VDom.Types/index.js", "../output/Halogen.VDom.Util/foreign.js", "../output/Halogen.VDom.Util/index.js", "../output/Web.DOM.Element/foreign.js", "../output/Web.DOM.ParentNode/foreign.js", "../output/Web.DOM.ParentNode/index.js", "../output/Web.DOM.Element/index.js", "../output/Halogen.VDom.DOM/index.js", "../output/Web.Event.EventTarget/foreign.js", "../output/Halogen.VDom.DOM.Prop/index.js", "../output/Halogen.HTML.Core/index.js", "../output/Control.Applicative.Free/index.js", "../output/Data.CatQueue/index.js", "../output/Data.CatList/index.js", "../output/Control.Monad.Free/index.js", "../output/Halogen.Query.ChildQuery/index.js", "../output/Unsafe.Reference/foreign.js", "../output/Unsafe.Reference/index.js", "../output/Halogen.Subscription/index.js", "../output/Halogen.Query.HalogenM/index.js", "../output/Halogen.Query.HalogenQ/index.js", "../output/Halogen.VDom.Thunk/index.js", "../output/Halogen.Component/index.js", "../output/Halogen.HTML.Elements/index.js", "../output/Web.Event.Event/foreign.js", "../output/Web.Event.Event/index.js", "../output/Web.HTML.Event.EventTypes/index.js", "../output/Web.UIEvent.MouseEvent.EventTypes/index.js", "../output/Halogen.HTML.Events/index.js", "../output/Halogen.HTML.Properties/index.js", "../output/Data.String.CodePoints/foreign.js", "../output/Data.String.CodePoints/index.js", "../output/Web.DOM.Document/foreign.js", "../output/Util/index.js", "../output/Component.AccountSettings/index.js", "../output/Effect.Console/foreign.js", "../output/Component.Add/index.js", "../output/Component.RawHtml/foreign.js", "../output/Halogen.Query/index.js", "../output/Component.RawHtml/index.js", "../node_modules/marked/src/defaults.ts", "../node_modules/marked/src/helpers.ts", "../node_modules/marked/src/Tokenizer.ts", "../node_modules/marked/src/rules.ts", "../node_modules/marked/src/Lexer.ts", "../node_modules/marked/src/Renderer.ts", "../node_modules/marked/src/TextRenderer.ts", "../node_modules/marked/src/Parser.ts", "../node_modules/marked/src/Hooks.ts", "../node_modules/marked/src/Instance.ts", "../node_modules/marked/src/marked.ts", "../output/Foreign.Marked/foreign.js", "../output/Foreign.Marked/index.js", "../output/Component.Markdown/index.js", "../output/Effect.Class.Console/index.js", "../output/Halogen.HTML/index.js", "../output/Component.BMark/index.js", "../output/Component.BList/index.js", "../output/Component.NList/index.js", "../output/Component.NNote/index.js", "../output/Component.TagCloud/index.js", "../output/Halogen.Aff.Util/index.js", "../output/Control.Monad.Fork.Class/index.js", "../output/Halogen.Aff.Driver.State/index.js", "../output/Halogen.Aff.Driver.Eval/index.js", "../output/Halogen.Aff.Driver/index.js", "../output/Web.DOM.Node/foreign.js", "../output/Web.DOM.Node/index.js", "../output/Halogen.VDom.Driver/index.js"], "sourcesContent": ["//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n", "const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n} = Object;\n\nlet { freeze, seal, create } = Object; // eslint-disable-line import/no-mutable-exports\nlet { apply, construct } = typeof Reflect !== 'undefined' && Reflect;\n\nif (!freeze) {\n freeze = function (x) {\n return x;\n };\n}\n\nif (!seal) {\n seal = function (x) {\n return x;\n };\n}\n\nif (!apply) {\n apply = function (fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\nif (!construct) {\n construct = function (Func, args) {\n return new Func(...args);\n };\n}\n\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayIndexOf = unapply(Array.prototype.indexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySlice = unapply(Array.prototype.slice);\n\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\n\nconst regExpTest = unapply(RegExp.prototype.test);\n\nconst typeErrorCreate = unconstruct(TypeError);\n\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param {Function} func - The function to be wrapped and called.\n * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return (thisArg, ...args) => apply(func, thisArg, args);\n}\n\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param {Function} func - The constructor function to be wrapped and called.\n * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(func) {\n return (...args) => construct(func, args);\n}\n\n/**\n * Add properties to a lookup table\n *\n * @param {Object} set - The set to which elements will be added.\n * @param {Array} array - The array containing elements to be added to the set.\n * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns {Object} The modified set with added elements.\n */\nfunction addToSet(set, array, transformCaseFunc = stringToLowerCase) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/**\n * Clean up an array to harden against CSPP\n *\n * @param {Array} array - The array to be cleaned.\n * @returns {Array} The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n if (getOwnPropertyDescriptor(array, index) === undefined) {\n array[index] = null;\n }\n }\n\n return array;\n}\n\n/**\n * Shallow clone an object\n *\n * @param {Object} object - The object to be cloned.\n * @returns {Object} A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n\n for (const [property, value] of entries(object)) {\n if (getOwnPropertyDescriptor(object, property) !== undefined) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (\n value &&\n typeof value === 'object' &&\n value.constructor === Object\n ) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n\n return newObject;\n}\n\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param {Object} object - The object to look up the getter function in its prototype chain.\n * @param {String} prop - The property name for which to find the getter function.\n * @returns {Function} The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n}\n\nexport {\n // Array\n arrayForEach,\n arrayIndexOf,\n arrayPop,\n arrayPush,\n arraySlice,\n // Object\n entries,\n freeze,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n isFrozen,\n setPrototypeOf,\n seal,\n clone,\n create,\n // RegExp\n regExpTest,\n // String\n stringIndexOf,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringTrim,\n // Errors\n typeErrorCreate,\n // Other\n lookupGetter,\n addToSet,\n // Reflect\n unapply,\n unconstruct,\n};\n", "import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blink',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'content',\n 'data',\n 'datalist',\n 'dd',\n 'decorator',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'element',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meter',\n 'nav',\n 'nobr',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'section',\n 'select',\n 'shadow',\n 'small',\n 'source',\n 'spacer',\n 'span',\n 'strike',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n]);\n\n// SVG\nexport const svg = freeze([\n 'svg',\n 'a',\n 'altglyph',\n 'altglyphdef',\n 'altglyphitem',\n 'animatecolor',\n 'animatemotion',\n 'animatetransform',\n 'circle',\n 'clippath',\n 'defs',\n 'desc',\n 'ellipse',\n 'filter',\n 'font',\n 'g',\n 'glyph',\n 'glyphref',\n 'hkern',\n 'image',\n 'line',\n 'lineargradient',\n 'marker',\n 'mask',\n 'metadata',\n 'mpath',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialgradient',\n 'rect',\n 'stop',\n 'style',\n 'switch',\n 'symbol',\n 'text',\n 'textpath',\n 'title',\n 'tref',\n 'tspan',\n 'view',\n 'vkern',\n]);\n\nexport const svgFilters = freeze([\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n]);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nexport const svgDisallowed = freeze([\n 'animate',\n 'color-profile',\n 'cursor',\n 'discard',\n 'font-face',\n 'font-face-format',\n 'font-face-name',\n 'font-face-src',\n 'font-face-uri',\n 'foreignobject',\n 'hatch',\n 'hatchpath',\n 'mesh',\n 'meshgradient',\n 'meshpatch',\n 'meshrow',\n 'missing-glyph',\n 'script',\n 'set',\n 'solidcolor',\n 'unknown',\n 'use',\n]);\n\nexport const mathMl = freeze([\n 'math',\n 'menclose',\n 'merror',\n 'mfenced',\n 'mfrac',\n 'mglyph',\n 'mi',\n 'mlabeledtr',\n 'mmultiscripts',\n 'mn',\n 'mo',\n 'mover',\n 'mpadded',\n 'mphantom',\n 'mroot',\n 'mrow',\n 'ms',\n 'mspace',\n 'msqrt',\n 'mstyle',\n 'msub',\n 'msup',\n 'msubsup',\n 'mtable',\n 'mtd',\n 'mtext',\n 'mtr',\n 'munder',\n 'munderover',\n 'mprescripts',\n]);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nexport const mathMlDisallowed = freeze([\n 'maction',\n 'maligngroup',\n 'malignmark',\n 'mlongdiv',\n 'mscarries',\n 'mscarry',\n 'msgroup',\n 'mstack',\n 'msline',\n 'msrow',\n 'semantics',\n 'annotation',\n 'annotation-xml',\n 'mprescripts',\n 'none',\n]);\n\nexport const text = freeze(['#text']);\n", "import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'accept',\n 'action',\n 'align',\n 'alt',\n 'autocapitalize',\n 'autocomplete',\n 'autopictureinpicture',\n 'autoplay',\n 'background',\n 'bgcolor',\n 'border',\n 'capture',\n 'cellpadding',\n 'cellspacing',\n 'checked',\n 'cite',\n 'class',\n 'clear',\n 'color',\n 'cols',\n 'colspan',\n 'controls',\n 'controlslist',\n 'coords',\n 'crossorigin',\n 'datetime',\n 'decoding',\n 'default',\n 'dir',\n 'disabled',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'download',\n 'draggable',\n 'enctype',\n 'enterkeyhint',\n 'face',\n 'for',\n 'headers',\n 'height',\n 'hidden',\n 'high',\n 'href',\n 'hreflang',\n 'id',\n 'inputmode',\n 'integrity',\n 'ismap',\n 'kind',\n 'label',\n 'lang',\n 'list',\n 'loading',\n 'loop',\n 'low',\n 'max',\n 'maxlength',\n 'media',\n 'method',\n 'min',\n 'minlength',\n 'multiple',\n 'muted',\n 'name',\n 'nonce',\n 'noshade',\n 'novalidate',\n 'nowrap',\n 'open',\n 'optimum',\n 'pattern',\n 'placeholder',\n 'playsinline',\n 'poster',\n 'preload',\n 'pubdate',\n 'radiogroup',\n 'readonly',\n 'rel',\n 'required',\n 'rev',\n 'reversed',\n 'role',\n 'rows',\n 'rowspan',\n 'spellcheck',\n 'scope',\n 'selected',\n 'shape',\n 'size',\n 'sizes',\n 'span',\n 'srclang',\n 'start',\n 'src',\n 'srcset',\n 'step',\n 'style',\n 'summary',\n 'tabindex',\n 'title',\n 'translate',\n 'type',\n 'usemap',\n 'valign',\n 'value',\n 'width',\n 'xmlns',\n 'slot',\n]);\n\nexport const svg = freeze([\n 'accent-height',\n 'accumulate',\n 'additive',\n 'alignment-baseline',\n 'ascent',\n 'attributename',\n 'attributetype',\n 'azimuth',\n 'basefrequency',\n 'baseline-shift',\n 'begin',\n 'bias',\n 'by',\n 'class',\n 'clip',\n 'clippathunits',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'cx',\n 'cy',\n 'd',\n 'dx',\n 'dy',\n 'diffuseconstant',\n 'direction',\n 'display',\n 'divisor',\n 'dur',\n 'edgemode',\n 'elevation',\n 'end',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'filterunits',\n 'flood-color',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-weight',\n 'fx',\n 'fy',\n 'g1',\n 'g2',\n 'glyph-name',\n 'glyphref',\n 'gradientunits',\n 'gradienttransform',\n 'height',\n 'href',\n 'id',\n 'image-rendering',\n 'in',\n 'in2',\n 'k',\n 'k1',\n 'k2',\n 'k3',\n 'k4',\n 'kerning',\n 'keypoints',\n 'keysplines',\n 'keytimes',\n 'lang',\n 'lengthadjust',\n 'letter-spacing',\n 'kernelmatrix',\n 'kernelunitlength',\n 'lighting-color',\n 'local',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'markerheight',\n 'markerunits',\n 'markerwidth',\n 'maskcontentunits',\n 'maskunits',\n 'max',\n 'mask',\n 'media',\n 'method',\n 'mode',\n 'min',\n 'name',\n 'numoctaves',\n 'offset',\n 'operator',\n 'opacity',\n 'order',\n 'orient',\n 'orientation',\n 'origin',\n 'overflow',\n 'paint-order',\n 'path',\n 'pathlength',\n 'patterncontentunits',\n 'patterntransform',\n 'patternunits',\n 'points',\n 'preservealpha',\n 'preserveaspectratio',\n 'primitiveunits',\n 'r',\n 'rx',\n 'ry',\n 'radius',\n 'refx',\n 'refy',\n 'repeatcount',\n 'repeatdur',\n 'restart',\n 'result',\n 'rotate',\n 'scale',\n 'seed',\n 'shape-rendering',\n 'specularconstant',\n 'specularexponent',\n 'spreadmethod',\n 'startoffset',\n 'stddeviation',\n 'stitchtiles',\n 'stop-color',\n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke',\n 'stroke-width',\n 'style',\n 'surfacescale',\n 'systemlanguage',\n 'tabindex',\n 'targetx',\n 'targety',\n 'transform',\n 'transform-origin',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'textlength',\n 'type',\n 'u1',\n 'u2',\n 'unicode',\n 'values',\n 'viewbox',\n 'visibility',\n 'version',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'width',\n 'word-spacing',\n 'wrap',\n 'writing-mode',\n 'xchannelselector',\n 'ychannelselector',\n 'x',\n 'x1',\n 'x2',\n 'xmlns',\n 'y',\n 'y1',\n 'y2',\n 'z',\n 'zoomandpan',\n]);\n\nexport const mathMl = freeze([\n 'accent',\n 'accentunder',\n 'align',\n 'bevelled',\n 'close',\n 'columnsalign',\n 'columnlines',\n 'columnspan',\n 'denomalign',\n 'depth',\n 'dir',\n 'display',\n 'displaystyle',\n 'encoding',\n 'fence',\n 'frame',\n 'height',\n 'href',\n 'id',\n 'largeop',\n 'length',\n 'linethickness',\n 'lspace',\n 'lquote',\n 'mathbackground',\n 'mathcolor',\n 'mathsize',\n 'mathvariant',\n 'maxsize',\n 'minsize',\n 'movablelimits',\n 'notation',\n 'numalign',\n 'open',\n 'rowalign',\n 'rowlines',\n 'rowspacing',\n 'rowspan',\n 'rspace',\n 'rquote',\n 'scriptlevel',\n 'scriptminsize',\n 'scriptsizemultiplier',\n 'selection',\n 'separator',\n 'separators',\n 'stretchy',\n 'subscriptshift',\n 'supscriptshift',\n 'symmetric',\n 'voffset',\n 'width',\n 'xmlns',\n]);\n\nexport const xml = freeze([\n 'xlink:href',\n 'xml:id',\n 'xlink:title',\n 'xml:space',\n 'xmlns:xlink',\n]);\n", "import { seal } from './utils.js';\n\n// eslint-disable-next-line unicorn/better-regex\nexport const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nexport const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nexport const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nexport const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nexport const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nexport const IS_ALLOWED_URI = seal(\n /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nexport const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nexport const ATTR_WHITESPACE = seal(\n /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nexport const DOCTYPE_NAME = seal(/^html$/i);\n", "import * as TAGS from './tags.js';\nimport * as ATTRS from './attrs.js';\nimport * as EXPRESSIONS from './regexp.js';\nimport {\n addToSet,\n clone,\n entries,\n freeze,\n arrayForEach,\n arrayPop,\n arrayPush,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringIndexOf,\n stringTrim,\n regExpTest,\n typeErrorCreate,\n lookupGetter,\n create,\n} from './utils.js';\n\nconst getGlobal = function () {\n return typeof window === 'undefined' ? null : window;\n};\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function (trustedTypes, purifyHostElement) {\n if (\n typeof trustedTypes !== 'object' ||\n typeof trustedTypes.createPolicy !== 'function'\n ) {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n },\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn(\n 'TrustedTypes policy ' + policyName + ' could not be created.'\n );\n return null;\n }\n};\n\nfunction createDOMPurify(window = getGlobal()) {\n const DOMPurify = (root) => createDOMPurify(root);\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = VERSION;\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n let { document } = window;\n\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes,\n } = window;\n\n const ElementPrototype = Element.prototype;\n\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n let trustedTypesPolicy;\n let emptyHTML = '';\n\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName,\n } = document;\n const { importNode } = originalDocument;\n\n let hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported =\n typeof entries === 'function' &&\n typeof getParentNode === 'function' &&\n implementation &&\n implementation.createHTMLDocument !== undefined;\n\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n } = EXPRESSIONS;\n\n let { IS_ALLOWED_URI } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [\n ...TAGS.html,\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.mathMl,\n ...TAGS.text,\n ]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [\n ...ATTRS.html,\n ...ATTRS.svg,\n ...ATTRS.mathMl,\n ...ATTRS.xml,\n ]);\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(\n create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false,\n },\n })\n );\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, [\n 'annotation-xml',\n 'audio',\n 'colgroup',\n 'desc',\n 'foreignobject',\n 'head',\n 'iframe',\n 'math',\n 'mi',\n 'mn',\n 'mo',\n 'ms',\n 'mtext',\n 'noembed',\n 'noframes',\n 'noscript',\n 'plaintext',\n 'script',\n 'style',\n 'svg',\n 'template',\n 'thead',\n 'title',\n 'video',\n 'xmp',\n ]);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, [\n 'audio',\n 'video',\n 'img',\n 'source',\n 'image',\n 'track',\n ]);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n 'alt',\n 'class',\n 'for',\n 'id',\n 'label',\n 'name',\n 'pattern',\n 'placeholder',\n 'role',\n 'summary',\n 'title',\n 'value',\n 'style',\n 'xmlns',\n ]);\n\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet(\n {},\n [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE],\n stringToString\n );\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n\n const isRegexOrFunction = function (testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function (cfg = {}) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1\n ? DEFAULT_PARSER_MEDIA_TYPE\n : cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc =\n PARSER_MEDIA_TYPE === 'application/xhtml+xml'\n ? stringToString\n : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS =\n 'ALLOWED_TAGS' in cfg\n ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc)\n : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR =\n 'ALLOWED_ATTR' in cfg\n ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc)\n : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES =\n 'ALLOWED_NAMESPACES' in cfg\n ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString)\n : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES =\n 'ADD_URI_SAFE_ATTR' in cfg\n ? addToSet(\n clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS =\n 'ADD_DATA_URI_TAGS' in cfg\n ? addToSet(\n clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS =\n 'FORBID_CONTENTS' in cfg\n ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc)\n : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS =\n 'FORBID_TAGS' in cfg\n ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc)\n : {};\n FORBID_ATTR =\n 'FORBID_ATTR' in cfg\n ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc)\n : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI = cfg.ALLOWED_URI_REGEXP || EXPRESSIONS.IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements ===\n 'boolean'\n ) {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements =\n cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, TAGS.text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, TAGS.html);\n addToSet(ALLOWED_ATTR, ATTRS.html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, TAGS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, TAGS.svgFilters);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, TAGS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.'\n );\n }\n\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.'\n );\n }\n\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(\n trustedTypes,\n currentScript\n );\n }\n\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [\n 'mi',\n 'mo',\n 'mn',\n 'ms',\n 'mtext',\n ]);\n\n const HTML_INTEGRATION_POINTS = addToSet({}, [\n 'foreignobject',\n 'desc',\n 'title',\n 'annotation-xml',\n ]);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n 'title',\n 'style',\n 'font',\n 'a',\n 'script',\n ]);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.svgDisallowed,\n ]);\n const ALL_MATHML_TAGS = addToSet({}, [\n ...TAGS.mathMl,\n ...TAGS.mathMlDisallowed,\n ]);\n\n /**\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function (element) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template',\n };\n }\n\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return (\n tagName === 'svg' &&\n (parentTagName === 'annotation-xml' ||\n MATHML_TEXT_INTEGRATION_POINTS[parentTagName])\n );\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (\n parent.namespaceURI === SVG_NAMESPACE &&\n !HTML_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n if (\n parent.namespaceURI === MATHML_NAMESPACE &&\n !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return (\n !ALL_MATHML_TAGS[tagName] &&\n (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName])\n );\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n ALLOWED_NAMESPACES[element.namespaceURI]\n ) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = function (node) {\n arrayPush(DOMPurify.removed, { element: node });\n\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n node.remove();\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n const _removeAttribute = function (name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node,\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node,\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n const _initDocument = function (dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n NAMESPACE === HTML_NAMESPACE\n ) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty =\n '' +\n dirty +\n '';\n }\n\n const dirtyPayload = trustedTypesPolicy\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT\n ? emptyHTML\n : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n const body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(\n document.createTextNode(leadingWhitespace),\n body.childNodes[0] || null\n );\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(\n doc,\n WHOLE_DOCUMENT ? 'html' : 'body'\n )[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param {Node} root The root element or node to start traversing on.\n * @return {NodeIterator} The created NodeIterator\n */\n const _createNodeIterator = function (root) {\n return createNodeIterator.call(\n root.ownerDocument || root,\n root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT,\n null\n );\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n const _isClobbered = function (elm) {\n return (\n elm instanceof HTMLFormElement &&\n (typeof elm.nodeName !== 'string' ||\n typeof elm.textContent !== 'string' ||\n typeof elm.removeChild !== 'function' ||\n !(elm.attributes instanceof NamedNodeMap) ||\n typeof elm.removeAttribute !== 'function' ||\n typeof elm.setAttribute !== 'function' ||\n typeof elm.namespaceURI !== 'string' ||\n typeof elm.insertBefore !== 'function' ||\n typeof elm.hasChildNodes !== 'function')\n );\n };\n\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param {Node} object object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n const _isNode = function (object) {\n return typeof Node === 'function' && object instanceof Node;\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n const _executeHook = function (entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], (hook) => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n const _sanitizeElements = function (currentNode) {\n let content = null;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS,\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (\n currentNode.hasChildNodes() &&\n !_isNode(currentNode.firstElementChild) &&\n regExpTest(/<[/\\w]/g, currentNode.innerHTML) &&\n regExpTest(/<[/\\w]/g, currentNode.textContent)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)\n ) {\n return false;\n }\n\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)\n ) {\n return false;\n }\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n\n for (let i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore(\n cloneNode(childNodes[i], true),\n getNextSibling(currentNode)\n );\n }\n }\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if (\n (tagName === 'noscript' ||\n tagName === 'noembed' ||\n tagName === 'noframes') &&\n regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n content = stringReplace(content, expr, ' ');\n });\n\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function (lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (\n SANITIZE_DOM &&\n (lcName === 'id' || lcName === 'name') &&\n (value in document || value in formElement)\n ) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (\n ALLOW_DATA_ATTR &&\n !FORBID_ATTR[lcName] &&\n regExpTest(DATA_ATTR, lcName)\n ) {\n // This attribute is safe\n } else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) {\n // This attribute is safe\n /* Otherwise, check the name is permitted */\n } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n (_isBasicCustomElement(lcTag) &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag))) &&\n ((CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName)) ||\n (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)))) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n (lcName === 'is' &&\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))))\n ) {\n // If user has supplied a regexp or function in CUSTOM_ELEMENT_HANDLING.tagNameCheck, we need to also allow derived custom elements using the same tagName test.\n // Additionally, we need to allow attributes passing the CUSTOM_ELEMENT_HANDLING.attributeNameCheck user has configured, as custom elements can define these at their own discretion.\n } else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n // This attribute is safe\n /* Check no script, data or unknown possibly unsafe URI\n unless we know URI values are safe for that attribute */\n } else if (\n regExpTest(IS_ALLOWED_URI, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Keep image data URIs alive if src/xlink:href is allowed */\n /* Further prevent gadget XSS for dynamically built script tags */\n } else if (\n (lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') &&\n lcTag !== 'script' &&\n stringIndexOf(value, 'data:') === 0 &&\n DATA_URI_TAGS[lcTag]\n ) {\n // This attribute is safe\n /* Allow unknown protocols: This provides support for links that\n are handled by protocol handlers which may be unknown ahead of\n time, e.g. fb:, spotify: */\n } else if (\n ALLOW_UNKNOWN_PROTOCOLS &&\n !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Check for binary attributes */\n } else if (value) {\n return false;\n } else {\n // Binary attributes are safe at this point\n /* Anything else, presume unsafe, do not add it back */\n }\n\n return true;\n };\n\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param {string} tagName name of the tag of the node to sanitize\n * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function (tagName) {\n return tagName.indexOf('-') > 0;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n const _sanitizeAttributes = function (currentNode) {\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n const { attributes } = currentNode;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes) {\n return;\n }\n\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n };\n let l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const { name, namespaceURI, value: attrValue } = attr;\n const lcName = transformCaseFunc(name);\n\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n value = stringReplace(value, expr, ' ');\n });\n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Handle attributes that require Trusted Types */\n if (\n trustedTypesPolicy &&\n typeof trustedTypes === 'object' &&\n typeof trustedTypes.getAttributeType === 'function'\n ) {\n if (namespaceURI) {\n /* Namespaces are not yet supported, see https://bugs.chromium.org/p/chromium/issues/detail?id=1305293 */\n } else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML': {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n\n case 'TrustedScriptURL': {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n\n default: {\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function (fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while ((shadowNode = shadowIterator.nextNode())) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} cfg object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg = {}) {\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate(\n 'root node is forbidden and cannot be sanitized in-place'\n );\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (\n !RETURN_DOM &&\n !SAFE_FOR_TEMPLATES &&\n !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1\n ) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while ((currentNode = nodeIterator.nextNode())) {\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n }\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (\n WHOLE_DOCUMENT &&\n ALLOWED_TAGS['!doctype'] &&\n body.ownerDocument &&\n body.ownerDocument.doctype &&\n body.ownerDocument.doctype.name &&\n regExpTest(EXPRESSIONS.DOCTYPE_NAME, body.ownerDocument.doctype.name)\n ) {\n serializedHTML =\n '\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(serializedHTML)\n : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg = {}) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {String} tag Tag name of containing element.\n * @param {String} attr Attribute name.\n * @param {String} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n}\n\nexport default createDOMPurify();\n", "// Generated by purs version 0.15.14\nimport * as App from \"../App/index.js\";\nimport * as Component_AccountSettings from \"../Component.AccountSettings/index.js\";\nimport * as Component_Add from \"../Component.Add/index.js\";\nimport * as Component_BList from \"../Component.BList/index.js\";\nimport * as Component_NList from \"../Component.NList/index.js\";\nimport * as Component_NNote from \"../Component.NNote/index.js\";\nimport * as Component_TagCloud from \"../Component.TagCloud/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Halogen_Aff_Util from \"../Halogen.Aff.Util/index.js\";\nimport * as Halogen_VDom_Driver from \"../Halogen.VDom.Driver/index.js\";\nimport * as Model from \"../Model/index.js\";\nimport * as Web_DOM_Element from \"../Web.DOM.Element/index.js\";\nimport * as Web_Event_Event from \"../Web.Event.Event/index.js\";\nimport * as Web_HTML_HTMLElement from \"../Web.HTML.HTMLElement/index.js\";\nvar bind = /* #__PURE__ */ Control_Bind.bind(Effect_Aff.bindAff);\nvar traverse_ = /* #__PURE__ */ Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe);\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Effect_Aff.functorAff);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Effect.bindEffect);\nvar void1 = /* #__PURE__ */ Data_Functor[\"void\"](Effect.functorEffect);\nvar viewRendered = /* #__PURE__ */ bind(/* #__PURE__ */ Halogen_Aff_Util.selectElement(\"#content\"))(/* #__PURE__ */ traverse_(function (el) {\n return liftEffect(Web_DOM_Element.setAttribute(\"view-rendered\")(\"\")(Web_HTML_HTMLElement.toElement(el)));\n}));\nvar renderTagCloud = function (renderElSelector) {\n return function (tagCloudMode) {\n return Halogen_Aff_Util.runHalogenAff(bind(Halogen_Aff_Util.selectElement(renderElSelector))(traverse_(function (el) {\n return $$void(Halogen_VDom_Driver.runUI(Component_TagCloud.tagcloudcomponent(Model.tagCloudModeToF(tagCloudMode)))(Data_Unit.unit)(el));\n })));\n };\n};\nvar renderNotes = function (renderElSelector) {\n return function (notes) {\n return Halogen_Aff_Util.runHalogenAff(bind(Halogen_Aff_Util.selectElement(renderElSelector))(traverse_(function (el) {\n return discard($$void(Halogen_VDom_Driver.runUI(Component_NList.nlist(notes))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n};\nvar renderNote = function (renderElSelector) {\n return function (note) {\n return Halogen_Aff_Util.runHalogenAff(bind(Halogen_Aff_Util.selectElement(renderElSelector))(traverse_(function (el) {\n return discard($$void(Halogen_VDom_Driver.runUI(Component_NNote.nnote(note))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n};\nvar renderBookmarks = function (renderElSelector) {\n return function (bmarks) {\n return Halogen_Aff_Util.runHalogenAff(bind(Halogen_Aff_Util.selectElement(renderElSelector))(traverse_(function (el) {\n return discard($$void(Halogen_VDom_Driver.runUI(Component_BList.blist(bmarks))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n};\nvar renderAddForm = function (renderElSelector) {\n return function (bmark) {\n return Halogen_Aff_Util.runHalogenAff(bind(Halogen_Aff_Util.selectElement(renderElSelector))(traverse_(function (el) {\n return discard($$void(Halogen_VDom_Driver.runUI(Component_Add.addbmark(bmark))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n};\nvar renderAccountSettings = function (renderElSelector) {\n return function (accountSettings) {\n return Halogen_Aff_Util.runHalogenAff(bind(Halogen_Aff_Util.selectElement(renderElSelector))(traverse_(function (el) {\n return discard($$void(Halogen_VDom_Driver.runUI(Component_AccountSettings.usetting(accountSettings))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n};\nvar logoutE = function (e) {\n return bindFlipped(function ($10) {\n return void1(Effect_Aff.launchAff(App.logout($10)));\n })(Web_Event_Event.preventDefault(e));\n};\nexport {\n logoutE,\n renderBookmarks,\n renderTagCloud,\n renderAddForm,\n renderNotes,\n renderNote,\n renderAccountSettings,\n viewRendered\n};\n", "export function _ajax(platformSpecificDriver, timeoutErrorMessageIdent, requestFailedMessageIdent, mkHeader, options) {\n return function (errback, callback) {\n var xhr = platformSpecificDriver.newXHR();\n var fixedUrl = platformSpecificDriver.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: xhr.response\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", "export const 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", "// Generated by purs version 0.15.14\nvar semigroupoidFn = {\n compose: function (f) {\n return function (g) {\n return function (x) {\n return f(g(x));\n };\n };\n }\n};\nvar compose = function (dict) {\n return dict.compose;\n};\nvar composeFlipped = function (dictSemigroupoid) {\n var compose1 = compose(dictSemigroupoid);\n return function (f) {\n return function (g) {\n return compose1(g)(f);\n };\n };\n};\nexport {\n compose,\n composeFlipped,\n semigroupoidFn\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nvar identity = function (dict) {\n return dict.identity;\n};\nvar categoryFn = {\n identity: function (x) {\n return x;\n },\n Semigroupoid0: function () {\n return Control_Semigroupoid.semigroupoidFn;\n }\n};\nexport {\n identity,\n categoryFn\n};\nexport {\n compose\n} from \"../Control.Semigroupoid/index.js\";\n", "// Generated by purs version 0.15.14\nvar otherwise = true;\nexport {\n otherwise\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nvar 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};\nvar flip = function (f) {\n return function (b) {\n return function (a) {\n return f(a)(b);\n };\n };\n};\nvar $$const = function (a) {\n return function (v) {\n return a;\n };\n};\nvar applyN = function (f) {\n var go = function ($copy_n) {\n return function ($copy_acc) {\n var $tco_var_n = $copy_n;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(n, acc) {\n if (n <= 0) {\n $tco_done = true;\n return acc;\n };\n if (Data_Boolean.otherwise) {\n $tco_var_n = n - 1 | 0;\n $copy_acc = f(acc);\n return;\n };\n throw new Error(\"Failed pattern match at Data.Function (line 107, column 3 - line 109, column 37): \" + [ n.constructor.name, acc.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_n, $copy_acc);\n };\n return $tco_result;\n };\n };\n return go;\n};\nvar applyFlipped = function (x) {\n return function (f) {\n return f(x);\n };\n};\nvar apply = function (f) {\n return function (x) {\n return f(x);\n };\n};\nexport {\n flip,\n $$const as const,\n apply,\n applyFlipped,\n applyN,\n on\n};\nexport {\n compose,\n identity\n} from \"../Control.Category/index.js\";\n", "// Generated by purs version 0.15.14\nvar $$Proxy = /* #__PURE__ */ (function () {\n function $$Proxy() {\n\n };\n $$Proxy.value = new $$Proxy();\n return $$Proxy;\n})();\nexport {\n $$Proxy as Proxy\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar map = function (dict) {\n return dict.map;\n};\nvar mapFlipped = function (dictFunctor) {\n var map1 = map(dictFunctor);\n return function (fa) {\n return function (f) {\n return map1(f)(fa);\n };\n };\n};\nvar $$void = function (dictFunctor) {\n return map(dictFunctor)(Data_Function[\"const\"](Data_Unit.unit));\n};\nvar voidLeft = function (dictFunctor) {\n var map1 = map(dictFunctor);\n return function (f) {\n return function (x) {\n return map1(Data_Function[\"const\"](x))(f);\n };\n };\n};\nvar voidRight = function (dictFunctor) {\n var map1 = map(dictFunctor);\n return function (x) {\n return map1(Data_Function[\"const\"](x));\n };\n};\nvar functorProxy = {\n map: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n }\n};\nvar functorFn = {\n map: /* #__PURE__ */ Control_Semigroupoid.compose(Control_Semigroupoid.semigroupoidFn)\n};\nvar functorArray = {\n map: $foreign.arrayMap\n};\nvar flap = function (dictFunctor) {\n var map1 = map(dictFunctor);\n return function (ff) {\n return function (x) {\n return map1(function (f) {\n return f(x);\n })(ff);\n };\n };\n};\nexport {\n map,\n mapFlipped,\n $$void as void,\n voidRight,\n voidLeft,\n flap,\n functorFn,\n functorArray,\n functorProxy\n};\n", "export const concatString = function (s1) {\n return function (s2) {\n return s1 + s2;\n };\n};\n\nexport const 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", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar reifySymbol = function (s) {\n return function (f) {\n return $foreign.unsafeCoerce(function (dictIsSymbol) {\n return f(dictIsSymbol);\n })({\n reflectSymbol: function (v) {\n return s;\n }\n })(Type_Proxy[\"Proxy\"].value);\n };\n};\nvar reflectSymbol = function (dict) {\n return dict.reflectSymbol;\n};\nexport {\n reflectSymbol,\n reifySymbol\n};\n", "// Generated by purs version 0.15.14\nvar Void = function (x) {\n return x;\n};\nvar absurd = function (a) {\n var spin = function ($copy_v) {\n var $tco_result;\n function $tco_loop(v) {\n $copy_v = v;\n return;\n };\n while (!false) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return spin(a);\n};\nexport {\n absurd\n};\n", "export const unsafeHas = function (label) {\n return function (rec) {\n return {}.hasOwnProperty.call(rec, label);\n };\n};\n\nexport const unsafeGet = function (label) {\n return function (rec) {\n return rec[label];\n };\n};\n\nexport const 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\nexport const unsafeDelete = function (label) {\n return function (rec) {\n var copy = {};\n for (var key in rec) {\n if (key !== label && {}.hasOwnProperty.call(rec, key)) {\n copy[key] = rec[key];\n }\n }\n return copy;\n };\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Data_Void from \"../Data.Void/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar semigroupVoid = {\n append: function (v) {\n return Data_Void.absurd;\n }\n};\nvar semigroupUnit = {\n append: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n }\n};\nvar semigroupString = {\n append: $foreign.concatString\n};\nvar semigroupRecordNil = {\n appendRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n }\n};\nvar semigroupProxy = {\n append: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n }\n};\nvar semigroupArray = {\n append: $foreign.concatArray\n};\nvar appendRecord = function (dict) {\n return dict.appendRecord;\n};\nvar semigroupRecord = function () {\n return function (dictSemigroupRecord) {\n return {\n append: appendRecord(dictSemigroupRecord)(Type_Proxy[\"Proxy\"].value)\n };\n };\n};\nvar append = function (dict) {\n return dict.append;\n};\nvar semigroupFn = function (dictSemigroup) {\n var append1 = append(dictSemigroup);\n return {\n append: function (f) {\n return function (g) {\n return function (x) {\n return append1(f(x))(g(x));\n };\n };\n }\n };\n};\nvar semigroupRecordCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function (dictSemigroupRecord) {\n var appendRecord1 = appendRecord(dictSemigroupRecord);\n return function (dictSemigroup) {\n var append1 = append(dictSemigroup);\n return {\n appendRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = appendRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(append1(get(ra))(get(rb)))(tail);\n };\n };\n }\n };\n };\n };\n };\n};\nexport {\n append,\n appendRecord,\n semigroupString,\n semigroupUnit,\n semigroupVoid,\n semigroupFn,\n semigroupArray,\n semigroupProxy,\n semigroupRecord,\n semigroupRecordNil,\n semigroupRecordCons\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nvar altArray = {\n alt: /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray),\n Functor0: function () {\n return Data_Functor.functorArray;\n }\n};\nvar alt = function (dict) {\n return dict.alt;\n};\nexport {\n alt,\n altArray\n};\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n", "export const arrayApply = function (fs) {\n return function (xs) {\n var l = fs.length;\n var k = xs.length;\n var result = new Array(l*k);\n var n = 0;\n for (var i = 0; i < l; i++) {\n var f = fs[i];\n for (var j = 0; j < k; j++) {\n result[n++] = f(xs[j]);\n }\n }\n return result;\n };\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar applyProxy = {\n apply: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n Functor0: function () {\n return Data_Functor.functorProxy;\n }\n};\nvar applyFn = {\n apply: function (f) {\n return function (g) {\n return function (x) {\n return f(x)(g(x));\n };\n };\n },\n Functor0: function () {\n return Data_Functor.functorFn;\n }\n};\nvar applyArray = {\n apply: $foreign.arrayApply,\n Functor0: function () {\n return Data_Functor.functorArray;\n }\n};\nvar apply = function (dict) {\n return dict.apply;\n};\nvar applyFirst = function (dictApply) {\n var apply1 = apply(dictApply);\n var map = Data_Functor.map(dictApply.Functor0());\n return function (a) {\n return function (b) {\n return apply1(map(Data_Function[\"const\"])(a))(b);\n };\n };\n};\nvar applySecond = function (dictApply) {\n var apply1 = apply(dictApply);\n var map = Data_Functor.map(dictApply.Functor0());\n return function (a) {\n return function (b) {\n return apply1(map(Data_Function[\"const\"](identity))(a))(b);\n };\n };\n};\nvar lift2 = function (dictApply) {\n var apply1 = apply(dictApply);\n var map = Data_Functor.map(dictApply.Functor0());\n return function (f) {\n return function (a) {\n return function (b) {\n return apply1(map(f)(a))(b);\n };\n };\n };\n};\nvar lift3 = function (dictApply) {\n var apply1 = apply(dictApply);\n var map = Data_Functor.map(dictApply.Functor0());\n return function (f) {\n return function (a) {\n return function (b) {\n return function (c) {\n return apply1(apply1(map(f)(a))(b))(c);\n };\n };\n };\n };\n};\nvar lift4 = function (dictApply) {\n var apply1 = apply(dictApply);\n var map = Data_Functor.map(dictApply.Functor0());\n return function (f) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return apply1(apply1(apply1(map(f)(a))(b))(c))(d);\n };\n };\n };\n };\n };\n};\nvar lift5 = function (dictApply) {\n var apply1 = apply(dictApply);\n var map = Data_Functor.map(dictApply.Functor0());\n return function (f) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return apply1(apply1(apply1(apply1(map(f)(a))(b))(c))(d))(e);\n };\n };\n };\n };\n };\n };\n};\nexport {\n apply,\n applyFirst,\n applySecond,\n lift2,\n lift3,\n lift4,\n lift5,\n applyFn,\n applyArray,\n applyProxy\n};\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar pure = function (dict) {\n return dict.pure;\n};\nvar unless = function (dictApplicative) {\n var pure1 = pure(dictApplicative);\n return function (v) {\n return function (v1) {\n if (!v) {\n return v1;\n };\n if (v) {\n return pure1(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Applicative (line 68, column 1 - line 68, column 65): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar when = function (dictApplicative) {\n var pure1 = pure(dictApplicative);\n return function (v) {\n return function (v1) {\n if (v) {\n return v1;\n };\n if (!v) {\n return pure1(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Applicative (line 63, column 1 - line 63, column 63): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar liftA1 = function (dictApplicative) {\n var apply = Control_Apply.apply(dictApplicative.Apply0());\n var pure1 = pure(dictApplicative);\n return function (f) {\n return function (a) {\n return apply(pure1(f))(a);\n };\n };\n};\nvar applicativeProxy = {\n pure: function (v) {\n return Type_Proxy[\"Proxy\"].value;\n },\n Apply0: function () {\n return Control_Apply.applyProxy;\n }\n};\nvar applicativeFn = {\n pure: function (x) {\n return function (v) {\n return x;\n };\n },\n Apply0: function () {\n return Control_Apply.applyFn;\n }\n};\nvar applicativeArray = {\n pure: function (x) {\n return [ x ];\n },\n Apply0: function () {\n return Control_Apply.applyArray;\n }\n};\nexport {\n pure,\n liftA1,\n unless,\n when,\n applicativeFn,\n applicativeArray,\n applicativeProxy\n};\nexport {\n apply\n} from \"../Control.Apply/index.js\";\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n", "export const topInt = 2147483647;\nexport const bottomInt = -2147483648;\n\nexport const topChar = String.fromCharCode(65535);\nexport const bottomChar = String.fromCharCode(0);\n\nexport const topNumber = Number.POSITIVE_INFINITY;\nexport const bottomNumber = Number.NEGATIVE_INFINITY;\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\nexport const ordBooleanImpl = unsafeCompareImpl;\nexport const ordIntImpl = unsafeCompareImpl;\nexport const ordNumberImpl = unsafeCompareImpl;\nexport const ordStringImpl = unsafeCompareImpl;\nexport const ordCharImpl = unsafeCompareImpl;\n\nexport const ordArrayImpl = function (f) {\n return function (xs) {\n return function (ys) {\n var i = 0;\n var xlen = xs.length;\n var ylen = ys.length;\n while (i < xlen && i < ylen) {\n var x = xs[i];\n var y = ys[i];\n var o = f(x)(y);\n if (o !== 0) {\n return o;\n }\n i++;\n }\n if (xlen === ylen) {\n return 0;\n } else if (xlen > ylen) {\n return -1;\n } else {\n return 1;\n }\n };\n };\n};\n", "var refEq = function (r1) {\n return function (r2) {\n return r1 === r2;\n };\n};\n\nexport const eqBooleanImpl = refEq;\nexport const eqIntImpl = refEq;\nexport const eqNumberImpl = refEq;\nexport const eqCharImpl = refEq;\nexport const eqStringImpl = refEq;\n\nexport const 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", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar eqVoid = {\n eq: function (v) {\n return function (v1) {\n return true;\n };\n }\n};\nvar eqUnit = {\n eq: function (v) {\n return function (v1) {\n return true;\n };\n }\n};\nvar eqString = {\n eq: $foreign.eqStringImpl\n};\nvar eqRowNil = {\n eqRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return true;\n };\n };\n }\n};\nvar eqRecord = function (dict) {\n return dict.eqRecord;\n};\nvar eqRec = function () {\n return function (dictEqRecord) {\n return {\n eq: eqRecord(dictEqRecord)(Type_Proxy[\"Proxy\"].value)\n };\n };\n};\nvar eqProxy = {\n eq: function (v) {\n return function (v1) {\n return true;\n };\n }\n};\nvar eqNumber = {\n eq: $foreign.eqNumberImpl\n};\nvar eqInt = {\n eq: $foreign.eqIntImpl\n};\nvar eqChar = {\n eq: $foreign.eqCharImpl\n};\nvar eqBoolean = {\n eq: $foreign.eqBooleanImpl\n};\nvar eq1 = function (dict) {\n return dict.eq1;\n};\nvar eq = function (dict) {\n return dict.eq;\n};\nvar eq2 = /* #__PURE__ */ eq(eqBoolean);\nvar eqArray = function (dictEq) {\n return {\n eq: $foreign.eqArrayImpl(eq(dictEq))\n };\n};\nvar eq1Array = {\n eq1: function (dictEq) {\n return eq(eqArray(dictEq));\n }\n};\nvar eqRowCons = function (dictEqRecord) {\n var eqRecord1 = eqRecord(dictEqRecord);\n return function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictEq) {\n var eq3 = eq(dictEq);\n return {\n eqRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = eqRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var get = Record_Unsafe.unsafeGet(key);\n return eq3(get(ra))(get(rb)) && tail;\n };\n };\n }\n };\n };\n };\n };\n};\nvar notEq = function (dictEq) {\n var eq3 = eq(dictEq);\n return function (x) {\n return function (y) {\n return eq2(eq3(x)(y))(false);\n };\n };\n};\nvar notEq1 = function (dictEq1) {\n var eq11 = eq1(dictEq1);\n return function (dictEq) {\n var eq12 = eq11(dictEq);\n return function (x) {\n return function (y) {\n return eq2(eq12(x)(y))(false);\n };\n };\n };\n};\nexport {\n eq,\n notEq,\n eq1,\n notEq1,\n eqRecord,\n eqBoolean,\n eqInt,\n eqNumber,\n eqChar,\n eqString,\n eqUnit,\n eqVoid,\n eqArray,\n eqRec,\n eqProxy,\n eq1Array,\n eqRowNil,\n eqRowCons\n};\n", "// Generated by purs version 0.15.14\nvar LT = /* #__PURE__ */ (function () {\n function LT() {\n\n };\n LT.value = new LT();\n return LT;\n})();\nvar GT = /* #__PURE__ */ (function () {\n function GT() {\n\n };\n GT.value = new GT();\n return GT;\n})();\nvar EQ = /* #__PURE__ */ (function () {\n function EQ() {\n\n };\n EQ.value = new EQ();\n return EQ;\n})();\nvar showOrdering = {\n show: function (v) {\n if (v instanceof LT) {\n return \"LT\";\n };\n if (v instanceof GT) {\n return \"GT\";\n };\n if (v instanceof EQ) {\n return \"EQ\";\n };\n throw new Error(\"Failed pattern match at Data.Ordering (line 26, column 1 - line 29, column 17): \" + [ v.constructor.name ]);\n }\n};\nvar semigroupOrdering = {\n append: function (v) {\n return function (v1) {\n if (v instanceof LT) {\n return LT.value;\n };\n if (v instanceof GT) {\n return GT.value;\n };\n if (v instanceof EQ) {\n return v1;\n };\n throw new Error(\"Failed pattern match at Data.Ordering (line 21, column 1 - line 24, column 18): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }\n};\nvar invert = function (v) {\n if (v instanceof GT) {\n return LT.value;\n };\n if (v instanceof EQ) {\n return EQ.value;\n };\n if (v instanceof LT) {\n return GT.value;\n };\n throw new Error(\"Failed pattern match at Data.Ordering (line 33, column 1 - line 33, column 31): \" + [ v.constructor.name ]);\n};\nvar 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};\nexport {\n LT,\n GT,\n EQ,\n invert,\n eqOrdering,\n semigroupOrdering,\n showOrdering\n};\n", "export const intSub = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x - y | 0;\n };\n};\n\nexport const numSub = function (n1) {\n return function (n2) {\n return n1 - n2;\n };\n};\n", "export const intAdd = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x + y | 0;\n };\n};\n\nexport const intMul = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x * y | 0;\n };\n};\n\nexport const numAdd = function (n1) {\n return function (n2) {\n return n1 + n2;\n };\n};\n\nexport const numMul = function (n1) {\n return function (n2) {\n return n1 * n2;\n };\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar zeroRecord = function (dict) {\n return dict.zeroRecord;\n};\nvar zero = function (dict) {\n return dict.zero;\n};\nvar semiringUnit = {\n add: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n zero: Data_Unit.unit,\n mul: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n one: Data_Unit.unit\n};\nvar semiringRecordNil = {\n addRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n mulRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n oneRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n zeroRecord: function (v) {\n return function (v1) {\n return {};\n };\n }\n};\nvar semiringProxy = /* #__PURE__ */ (function () {\n return {\n add: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n mul: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n one: Type_Proxy[\"Proxy\"].value,\n zero: Type_Proxy[\"Proxy\"].value\n };\n})();\nvar semiringNumber = {\n add: $foreign.numAdd,\n zero: 0.0,\n mul: $foreign.numMul,\n one: 1.0\n};\nvar semiringInt = {\n add: $foreign.intAdd,\n zero: 0,\n mul: $foreign.intMul,\n one: 1\n};\nvar oneRecord = function (dict) {\n return dict.oneRecord;\n};\nvar one = function (dict) {\n return dict.one;\n};\nvar mulRecord = function (dict) {\n return dict.mulRecord;\n};\nvar mul = function (dict) {\n return dict.mul;\n};\nvar addRecord = function (dict) {\n return dict.addRecord;\n};\nvar semiringRecord = function () {\n return function (dictSemiringRecord) {\n return {\n add: addRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value),\n mul: mulRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value),\n one: oneRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n zero: zeroRecord(dictSemiringRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value)\n };\n };\n};\nvar add = function (dict) {\n return dict.add;\n};\nvar semiringFn = function (dictSemiring) {\n var add1 = add(dictSemiring);\n var zero1 = zero(dictSemiring);\n var mul1 = mul(dictSemiring);\n var one1 = one(dictSemiring);\n return {\n add: function (f) {\n return function (g) {\n return function (x) {\n return add1(f(x))(g(x));\n };\n };\n },\n zero: function (v) {\n return zero1;\n },\n mul: function (f) {\n return function (g) {\n return function (x) {\n return mul1(f(x))(g(x));\n };\n };\n },\n one: function (v) {\n return one1;\n }\n };\n};\nvar semiringRecordCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function (dictSemiringRecord) {\n var addRecord1 = addRecord(dictSemiringRecord);\n var mulRecord1 = mulRecord(dictSemiringRecord);\n var oneRecord1 = oneRecord(dictSemiringRecord);\n var zeroRecord1 = zeroRecord(dictSemiringRecord);\n return function (dictSemiring) {\n var add1 = add(dictSemiring);\n var mul1 = mul(dictSemiring);\n var one1 = one(dictSemiring);\n var zero1 = zero(dictSemiring);\n return {\n addRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = addRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(add1(get(ra))(get(rb)))(tail);\n };\n };\n },\n mulRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = mulRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(mul1(get(ra))(get(rb)))(tail);\n };\n };\n },\n oneRecord: function (v) {\n return function (v1) {\n var tail = oneRecord1(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(one1)(tail);\n };\n },\n zeroRecord: function (v) {\n return function (v1) {\n var tail = zeroRecord1(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(zero1)(tail);\n };\n }\n };\n };\n };\n };\n};\nexport {\n add,\n zero,\n mul,\n one,\n addRecord,\n mulRecord,\n oneRecord,\n zeroRecord,\n semiringInt,\n semiringNumber,\n semiringFn,\n semiringUnit,\n semiringProxy,\n semiringRecord,\n semiringRecordNil,\n semiringRecordCons\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar semiringRecord = /* #__PURE__ */ Data_Semiring.semiringRecord();\nvar subRecord = function (dict) {\n return dict.subRecord;\n};\nvar sub = function (dict) {\n return dict.sub;\n};\nvar ringUnit = {\n sub: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n Semiring0: function () {\n return Data_Semiring.semiringUnit;\n }\n};\nvar ringRecordNil = {\n subRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n SemiringRecord0: function () {\n return Data_Semiring.semiringRecordNil;\n }\n};\nvar ringRecordCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n var semiringRecordCons = Data_Semiring.semiringRecordCons(dictIsSymbol)();\n return function () {\n return function (dictRingRecord) {\n var subRecord1 = subRecord(dictRingRecord);\n var semiringRecordCons1 = semiringRecordCons(dictRingRecord.SemiringRecord0());\n return function (dictRing) {\n var sub1 = sub(dictRing);\n var semiringRecordCons2 = semiringRecordCons1(dictRing.Semiring0());\n return {\n subRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = subRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(sub1(get(ra))(get(rb)))(tail);\n };\n };\n },\n SemiringRecord0: function () {\n return semiringRecordCons2;\n }\n };\n };\n };\n };\n};\nvar ringRecord = function () {\n return function (dictRingRecord) {\n var semiringRecord1 = semiringRecord(dictRingRecord.SemiringRecord0());\n return {\n sub: subRecord(dictRingRecord)(Type_Proxy[\"Proxy\"].value),\n Semiring0: function () {\n return semiringRecord1;\n }\n };\n };\n};\nvar ringProxy = {\n sub: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n Semiring0: function () {\n return Data_Semiring.semiringProxy;\n }\n};\nvar ringNumber = {\n sub: $foreign.numSub,\n Semiring0: function () {\n return Data_Semiring.semiringNumber;\n }\n};\nvar ringInt = {\n sub: $foreign.intSub,\n Semiring0: function () {\n return Data_Semiring.semiringInt;\n }\n};\nvar ringFn = function (dictRing) {\n var sub1 = sub(dictRing);\n var semiringFn = Data_Semiring.semiringFn(dictRing.Semiring0());\n return {\n sub: function (f) {\n return function (g) {\n return function (x) {\n return sub1(f(x))(g(x));\n };\n };\n },\n Semiring0: function () {\n return semiringFn;\n }\n };\n};\nvar negate = function (dictRing) {\n var sub1 = sub(dictRing);\n var zero = Data_Semiring.zero(dictRing.Semiring0());\n return function (a) {\n return sub1(zero)(a);\n };\n};\nexport {\n sub,\n negate,\n subRecord,\n ringInt,\n ringNumber,\n ringUnit,\n ringFn,\n ringProxy,\n ringRecord,\n ringRecordNil,\n ringRecordCons\n};\nexport {\n add,\n mul,\n one,\n zero\n} from \"../Data.Semiring/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar eqRec = /* #__PURE__ */ Data_Eq.eqRec();\nvar notEq = /* #__PURE__ */ Data_Eq.notEq(Data_Ordering.eqOrdering);\nvar ordVoid = {\n compare: function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n },\n Eq0: function () {\n return Data_Eq.eqVoid;\n }\n};\nvar 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};\nvar ordString = /* #__PURE__ */ (function () {\n return {\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})();\nvar ordRecordNil = {\n compareRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return Data_Ordering.EQ.value;\n };\n };\n },\n EqRecord0: function () {\n return Data_Eq.eqRowNil;\n }\n};\nvar ordProxy = {\n compare: function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n },\n Eq0: function () {\n return Data_Eq.eqProxy;\n }\n};\nvar ordOrdering = {\n compare: function (v) {\n return function (v1) {\n if (v instanceof Data_Ordering.LT && v1 instanceof Data_Ordering.LT) {\n return Data_Ordering.EQ.value;\n };\n if (v instanceof Data_Ordering.EQ && v1 instanceof Data_Ordering.EQ) {\n return Data_Ordering.EQ.value;\n };\n if (v instanceof Data_Ordering.GT && v1 instanceof Data_Ordering.GT) {\n return Data_Ordering.EQ.value;\n };\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.EQ && v1 instanceof Data_Ordering.LT) {\n return Data_Ordering.GT.value;\n };\n if (v instanceof Data_Ordering.EQ && v1 instanceof Data_Ordering.GT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n throw new Error(\"Failed pattern match at Data.Ord (line 126, column 1 - line 133, column 20): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Eq0: function () {\n return Data_Ordering.eqOrdering;\n }\n};\nvar ordNumber = /* #__PURE__ */ (function () {\n return {\n compare: $foreign.ordNumberImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqNumber;\n }\n };\n})();\nvar ordInt = /* #__PURE__ */ (function () {\n return {\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})();\nvar ordChar = /* #__PURE__ */ (function () {\n return {\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})();\nvar ordBoolean = /* #__PURE__ */ (function () {\n return {\n compare: $foreign.ordBooleanImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value),\n Eq0: function () {\n return Data_Eq.eqBoolean;\n }\n };\n})();\nvar compareRecord = function (dict) {\n return dict.compareRecord;\n};\nvar ordRecord = function () {\n return function (dictOrdRecord) {\n var eqRec1 = eqRec(dictOrdRecord.EqRecord0());\n return {\n compare: compareRecord(dictOrdRecord)(Type_Proxy[\"Proxy\"].value),\n Eq0: function () {\n return eqRec1;\n }\n };\n };\n};\nvar compare1 = function (dict) {\n return dict.compare1;\n};\nvar compare = function (dict) {\n return dict.compare;\n};\nvar compare2 = /* #__PURE__ */ compare(ordInt);\nvar comparing = function (dictOrd) {\n var compare3 = compare(dictOrd);\n return function (f) {\n return function (x) {\n return function (y) {\n return compare3(f(x))(f(y));\n };\n };\n };\n};\nvar greaterThan = function (dictOrd) {\n var compare3 = compare(dictOrd);\n return function (a1) {\n return function (a2) {\n var v = compare3(a1)(a2);\n if (v instanceof Data_Ordering.GT) {\n return true;\n };\n return false;\n };\n };\n};\nvar greaterThanOrEq = function (dictOrd) {\n var compare3 = compare(dictOrd);\n return function (a1) {\n return function (a2) {\n var v = compare3(a1)(a2);\n if (v instanceof Data_Ordering.LT) {\n return false;\n };\n return true;\n };\n };\n};\nvar lessThan = function (dictOrd) {\n var compare3 = compare(dictOrd);\n return function (a1) {\n return function (a2) {\n var v = compare3(a1)(a2);\n if (v instanceof Data_Ordering.LT) {\n return true;\n };\n return false;\n };\n };\n};\nvar signum = function (dictOrd) {\n var lessThan1 = lessThan(dictOrd);\n var greaterThan1 = greaterThan(dictOrd);\n return function (dictRing) {\n var Semiring0 = dictRing.Semiring0();\n var zero = Data_Semiring.zero(Semiring0);\n var negate1 = Data_Ring.negate(dictRing);\n var one = Data_Semiring.one(Semiring0);\n return function (x) {\n var $89 = lessThan1(x)(zero);\n if ($89) {\n return negate1(one);\n };\n var $90 = greaterThan1(x)(zero);\n if ($90) {\n return one;\n };\n return x;\n };\n };\n};\nvar lessThanOrEq = function (dictOrd) {\n var compare3 = compare(dictOrd);\n return function (a1) {\n return function (a2) {\n var v = compare3(a1)(a2);\n if (v instanceof Data_Ordering.GT) {\n return false;\n };\n return true;\n };\n };\n};\nvar max = function (dictOrd) {\n var compare3 = compare(dictOrd);\n return function (x) {\n return function (y) {\n var v = compare3(x)(y);\n if (v instanceof Data_Ordering.LT) {\n return y;\n };\n if (v instanceof Data_Ordering.EQ) {\n return x;\n };\n if (v instanceof Data_Ordering.GT) {\n return x;\n };\n throw new Error(\"Failed pattern match at Data.Ord (line 181, column 3 - line 184, column 12): \" + [ v.constructor.name ]);\n };\n };\n};\nvar min = function (dictOrd) {\n var compare3 = compare(dictOrd);\n return function (x) {\n return function (y) {\n var v = compare3(x)(y);\n if (v instanceof Data_Ordering.LT) {\n return x;\n };\n if (v instanceof Data_Ordering.EQ) {\n return x;\n };\n if (v instanceof Data_Ordering.GT) {\n return y;\n };\n throw new Error(\"Failed pattern match at Data.Ord (line 172, column 3 - line 175, column 12): \" + [ v.constructor.name ]);\n };\n };\n};\nvar ordArray = function (dictOrd) {\n var compare3 = compare(dictOrd);\n var eqArray = Data_Eq.eqArray(dictOrd.Eq0());\n return {\n compare: (function () {\n var toDelta = function (x) {\n return function (y) {\n var v = compare3(x)(y);\n if (v instanceof Data_Ordering.EQ) {\n return 0;\n };\n if (v instanceof Data_Ordering.LT) {\n return 1;\n };\n if (v instanceof Data_Ordering.GT) {\n return -1 | 0;\n };\n throw new Error(\"Failed pattern match at Data.Ord (line 79, column 7 - line 82, column 17): \" + [ v.constructor.name ]);\n };\n };\n return function (xs) {\n return function (ys) {\n return compare2(0)($foreign.ordArrayImpl(toDelta)(xs)(ys));\n };\n };\n })(),\n Eq0: function () {\n return eqArray;\n }\n };\n};\nvar ord1Array = {\n compare1: function (dictOrd) {\n return compare(ordArray(dictOrd));\n },\n Eq10: function () {\n return Data_Eq.eq1Array;\n }\n};\nvar ordRecordCons = function (dictOrdRecord) {\n var compareRecord1 = compareRecord(dictOrdRecord);\n var eqRowCons = Data_Eq.eqRowCons(dictOrdRecord.EqRecord0())();\n return function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n var eqRowCons1 = eqRowCons(dictIsSymbol);\n return function (dictOrd) {\n var compare3 = compare(dictOrd);\n var eqRowCons2 = eqRowCons1(dictOrd.Eq0());\n return {\n compareRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var left = compare3(Record_Unsafe.unsafeGet(key)(ra))(Record_Unsafe.unsafeGet(key)(rb));\n var $95 = notEq(left)(Data_Ordering.EQ.value);\n if ($95) {\n return left;\n };\n return compareRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n };\n };\n },\n EqRecord0: function () {\n return eqRowCons2;\n }\n };\n };\n };\n };\n};\nvar clamp = function (dictOrd) {\n var min1 = min(dictOrd);\n var max1 = max(dictOrd);\n return function (low) {\n return function (hi) {\n return function (x) {\n return min1(hi)(max1(low)(x));\n };\n };\n };\n};\nvar between = function (dictOrd) {\n var lessThan1 = lessThan(dictOrd);\n var greaterThan1 = greaterThan(dictOrd);\n return function (low) {\n return function (hi) {\n return function (x) {\n if (lessThan1(x)(low)) {\n return false;\n };\n if (greaterThan1(x)(hi)) {\n return false;\n };\n return true;\n };\n };\n };\n};\nvar abs = function (dictOrd) {\n var greaterThanOrEq1 = greaterThanOrEq(dictOrd);\n return function (dictRing) {\n var zero = Data_Semiring.zero(dictRing.Semiring0());\n var negate1 = Data_Ring.negate(dictRing);\n return function (x) {\n var $99 = greaterThanOrEq1(x)(zero);\n if ($99) {\n return x;\n };\n return negate1(x);\n };\n };\n};\nexport {\n compare,\n compare1,\n lessThan,\n lessThanOrEq,\n greaterThan,\n greaterThanOrEq,\n comparing,\n min,\n max,\n clamp,\n between,\n abs,\n signum,\n compareRecord,\n ordBoolean,\n ordInt,\n ordNumber,\n ordString,\n ordChar,\n ordUnit,\n ordVoid,\n ordProxy,\n ordArray,\n ordOrdering,\n ord1Array,\n ordRecordNil,\n ordRecordCons,\n ordRecord\n};\nexport {\n EQ,\n GT,\n LT\n} from \"../Data.Ordering/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar ordRecord = /* #__PURE__ */ Data_Ord.ordRecord();\nvar topRecord = function (dict) {\n return dict.topRecord;\n};\nvar top = function (dict) {\n return dict.top;\n};\nvar boundedUnit = {\n top: Data_Unit.unit,\n bottom: Data_Unit.unit,\n Ord0: function () {\n return Data_Ord.ordUnit;\n }\n};\nvar boundedRecordNil = {\n topRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n bottomRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n OrdRecord0: function () {\n return Data_Ord.ordRecordNil;\n }\n};\nvar boundedProxy = /* #__PURE__ */ (function () {\n return {\n bottom: Type_Proxy[\"Proxy\"].value,\n top: Type_Proxy[\"Proxy\"].value,\n Ord0: function () {\n return Data_Ord.ordProxy;\n }\n };\n})();\nvar boundedOrdering = /* #__PURE__ */ (function () {\n return {\n top: Data_Ordering.GT.value,\n bottom: Data_Ordering.LT.value,\n Ord0: function () {\n return Data_Ord.ordOrdering;\n }\n };\n})();\nvar boundedNumber = {\n top: $foreign.topNumber,\n bottom: $foreign.bottomNumber,\n Ord0: function () {\n return Data_Ord.ordNumber;\n }\n};\nvar boundedInt = {\n top: $foreign.topInt,\n bottom: $foreign.bottomInt,\n Ord0: function () {\n return Data_Ord.ordInt;\n }\n};\nvar boundedChar = {\n top: $foreign.topChar,\n bottom: $foreign.bottomChar,\n Ord0: function () {\n return Data_Ord.ordChar;\n }\n};\nvar boundedBoolean = {\n top: true,\n bottom: false,\n Ord0: function () {\n return Data_Ord.ordBoolean;\n }\n};\nvar bottomRecord = function (dict) {\n return dict.bottomRecord;\n};\nvar boundedRecord = function () {\n return function (dictBoundedRecord) {\n var ordRecord1 = ordRecord(dictBoundedRecord.OrdRecord0());\n return {\n top: topRecord(dictBoundedRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n bottom: bottomRecord(dictBoundedRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n Ord0: function () {\n return ordRecord1;\n }\n };\n };\n};\nvar bottom = function (dict) {\n return dict.bottom;\n};\nvar boundedRecordCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictBounded) {\n var top1 = top(dictBounded);\n var bottom1 = bottom(dictBounded);\n var Ord0 = dictBounded.Ord0();\n return function () {\n return function () {\n return function (dictBoundedRecord) {\n var topRecord1 = topRecord(dictBoundedRecord);\n var bottomRecord1 = bottomRecord(dictBoundedRecord);\n var ordRecordCons = Data_Ord.ordRecordCons(dictBoundedRecord.OrdRecord0())()(dictIsSymbol)(Ord0);\n return {\n topRecord: function (v) {\n return function (rowProxy) {\n var tail = topRecord1(Type_Proxy[\"Proxy\"].value)(rowProxy);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(top1)(tail);\n };\n },\n bottomRecord: function (v) {\n return function (rowProxy) {\n var tail = bottomRecord1(Type_Proxy[\"Proxy\"].value)(rowProxy);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(bottom1)(tail);\n };\n },\n OrdRecord0: function () {\n return ordRecordCons;\n }\n };\n };\n };\n };\n };\n};\nexport {\n bottom,\n top,\n bottomRecord,\n topRecord,\n boundedBoolean,\n boundedInt,\n boundedChar,\n boundedOrdering,\n boundedUnit,\n boundedNumber,\n boundedProxy,\n boundedRecordNil,\n boundedRecordCons,\n boundedRecord\n};\nexport {\n EQ,\n GT,\n LT,\n compare\n} from \"../Data.Ord/index.js\";\n", "export const showIntImpl = function (n) {\n return n.toString();\n};\n\nexport const showNumberImpl = function (n) {\n var str = n.toString();\n return isNaN(str + \".0\") ? str : str + \".0\";\n};\n\nexport const showCharImpl = function (c) {\n var code = c.charCodeAt(0);\n if (code < 0x20 || code === 0x7F) {\n switch (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 return \"'\\\\\" + code.toString(10) + \"'\";\n }\n return c === \"'\" || c === \"\\\\\" ? \"'\\\\\" + c + \"'\" : \"'\" + c + \"'\";\n};\n\nexport const 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\nexport const showArrayImpl = function (f) {\n return function (xs) {\n var ss = [];\n for (var i = 0, l = xs.length; i < l; i++) {\n ss[i] = f(xs[i]);\n }\n return \"[\" + ss.join(\",\") + \"]\";\n };\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Void from \"../Data.Void/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar showVoid = {\n show: Data_Void.absurd\n};\nvar showUnit = {\n show: function (v) {\n return \"unit\";\n }\n};\nvar showString = {\n show: $foreign.showStringImpl\n};\nvar showRecordFieldsNil = {\n showRecordFields: function (v) {\n return function (v1) {\n return \"\";\n };\n }\n};\nvar showRecordFields = function (dict) {\n return dict.showRecordFields;\n};\nvar showRecord = function () {\n return function () {\n return function (dictShowRecordFields) {\n var showRecordFields1 = showRecordFields(dictShowRecordFields);\n return {\n show: function (record) {\n return \"{\" + (showRecordFields1(Type_Proxy[\"Proxy\"].value)(record) + \"}\");\n }\n };\n };\n };\n};\nvar showProxy = {\n show: function (v) {\n return \"Proxy\";\n }\n};\nvar showNumber = {\n show: $foreign.showNumberImpl\n};\nvar showInt = {\n show: $foreign.showIntImpl\n};\nvar showChar = {\n show: $foreign.showCharImpl\n};\nvar showBoolean = {\n show: function (v) {\n if (v) {\n return \"true\";\n };\n if (!v) {\n return \"false\";\n };\n throw new Error(\"Failed pattern match at Data.Show (line 29, column 1 - line 31, column 23): \" + [ v.constructor.name ]);\n }\n};\nvar show = function (dict) {\n return dict.show;\n};\nvar showArray = function (dictShow) {\n return {\n show: $foreign.showArrayImpl(show(dictShow))\n };\n};\nvar showRecordFieldsCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictShowRecordFields) {\n var showRecordFields1 = showRecordFields(dictShowRecordFields);\n return function (dictShow) {\n var show1 = show(dictShow);\n return {\n showRecordFields: function (v) {\n return function (record) {\n var tail = showRecordFields1(Type_Proxy[\"Proxy\"].value)(record);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var focus = Record_Unsafe.unsafeGet(key)(record);\n return \" \" + (key + (\": \" + (show1(focus) + (\",\" + tail))));\n };\n }\n };\n };\n };\n};\nvar showRecordFieldsConsNil = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictShow) {\n var show1 = show(dictShow);\n return {\n showRecordFields: function (v) {\n return function (record) {\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var focus = Record_Unsafe.unsafeGet(key)(record);\n return \" \" + (key + (\": \" + (show1(focus) + \" \")));\n };\n }\n };\n };\n};\nexport {\n show,\n showRecordFields,\n showUnit,\n showBoolean,\n showInt,\n showNumber,\n showChar,\n showString,\n showArray,\n showProxy,\n showVoid,\n showRecord,\n showRecordFieldsNil,\n showRecordFieldsConsNil,\n showRecordFieldsCons\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar Nothing = /* #__PURE__ */ (function () {\n function Nothing() {\n\n };\n Nothing.value = new Nothing();\n return Nothing;\n})();\nvar Just = /* #__PURE__ */ (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})();\nvar showMaybe = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (v) {\n if (v instanceof Just) {\n return \"(Just \" + (show(v.value0) + \")\");\n };\n if (v instanceof Nothing) {\n return \"Nothing\";\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 223, column 1 - line 225, column 28): \" + [ v.constructor.name ]);\n }\n };\n};\nvar semigroupMaybe = function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return {\n append: function (v) {\n return function (v1) {\n if (v instanceof Nothing) {\n return v1;\n };\n if (v1 instanceof Nothing) {\n return v;\n };\n if (v instanceof Just && v1 instanceof Just) {\n return new Just(append1(v.value0)(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 182, column 1 - line 185, column 43): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }\n };\n};\nvar optional = function (dictAlt) {\n var alt = Control_Alt.alt(dictAlt);\n var map1 = Data_Functor.map(dictAlt.Functor0());\n return function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n return function (a) {\n return alt(map1(Just.create)(a))(pure(Nothing.value));\n };\n };\n};\nvar monoidMaybe = function (dictSemigroup) {\n var semigroupMaybe1 = semigroupMaybe(dictSemigroup);\n return {\n mempty: Nothing.value,\n Semigroup0: function () {\n return semigroupMaybe1;\n }\n };\n};\nvar maybe$prime = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Nothing) {\n return v(Data_Unit.unit);\n };\n if (v2 instanceof Just) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 250, column 1 - line 250, column 62): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar 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 237, column 1 - line 237, column 51): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar isNothing = /* #__PURE__ */ maybe(true)(/* #__PURE__ */ Data_Function[\"const\"](false));\nvar isJust = /* #__PURE__ */ maybe(false)(/* #__PURE__ */ Data_Function[\"const\"](true));\nvar genericMaybe = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return Nothing.value;\n };\n if (x instanceof Data_Generic_Rep.Inr) {\n return new Just(x.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 227, column 1 - line 227, column 52): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof Nothing) {\n return new Data_Generic_Rep.Inl(Data_Generic_Rep.NoArguments.value);\n };\n if (x instanceof Just) {\n return new Data_Generic_Rep.Inr(x.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 227, column 1 - line 227, column 52): \" + [ x.constructor.name ]);\n }\n};\nvar 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};\nvar map = /* #__PURE__ */ Data_Functor.map(functorMaybe);\nvar invariantMaybe = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorMaybe)\n};\nvar fromMaybe$prime = function (a) {\n return maybe$prime(a)(identity);\n};\nvar fromMaybe = function (a) {\n return maybe(a)(identity);\n};\nvar fromJust = function () {\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 288, column 1 - line 288, column 46): \" + [ v.constructor.name ]);\n };\n};\nvar extendMaybe = {\n extend: function (v) {\n return function (v1) {\n if (v1 instanceof Nothing) {\n return Nothing.value;\n };\n return new Just(v(v1));\n };\n },\n Functor0: function () {\n return functorMaybe;\n }\n};\nvar eqMaybe = function (dictEq) {\n var eq = Data_Eq.eq(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 eq(x.value0)(y.value0);\n };\n return false;\n };\n }\n };\n};\nvar ordMaybe = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n var eqMaybe1 = eqMaybe(dictOrd.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n if (x instanceof Nothing && y instanceof Nothing) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Nothing) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Nothing) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Just && y instanceof Just) {\n return compare(x.value0)(y.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqMaybe1;\n }\n };\n};\nvar eq1Maybe = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqMaybe(dictEq));\n }\n};\nvar ord1Maybe = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordMaybe(dictOrd));\n },\n Eq10: function () {\n return eq1Maybe;\n }\n};\nvar boundedMaybe = function (dictBounded) {\n var ordMaybe1 = ordMaybe(dictBounded.Ord0());\n return {\n top: new Just(Data_Bounded.top(dictBounded)),\n bottom: Nothing.value,\n Ord0: function () {\n return ordMaybe1;\n }\n };\n};\nvar applyMaybe = {\n apply: function (v) {\n return function (v1) {\n if (v instanceof Just) {\n return map(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 67, column 1 - line 69, column 30): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorMaybe;\n }\n};\nvar apply = /* #__PURE__ */ Control_Apply.apply(applyMaybe);\nvar 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 125, column 1 - line 127, column 28): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Apply0: function () {\n return applyMaybe;\n }\n};\nvar semiringMaybe = function (dictSemiring) {\n var add = Data_Semiring.add(dictSemiring);\n var mul = Data_Semiring.mul(dictSemiring);\n return {\n zero: Nothing.value,\n one: new Just(Data_Semiring.one(dictSemiring)),\n add: function (v) {\n return function (v1) {\n if (v instanceof Nothing) {\n return v1;\n };\n if (v1 instanceof Nothing) {\n return v;\n };\n if (v instanceof Just && v1 instanceof Just) {\n return new Just(add(v.value0)(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 190, column 1 - line 198, column 28): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n mul: function (x) {\n return function (y) {\n return apply(map(mul)(x))(y);\n };\n }\n };\n};\nvar applicativeMaybe = /* #__PURE__ */ (function () {\n return {\n pure: Just.create,\n Apply0: function () {\n return applyMaybe;\n }\n };\n})();\nvar monadMaybe = {\n Applicative0: function () {\n return applicativeMaybe;\n },\n Bind1: function () {\n return bindMaybe;\n }\n};\nvar altMaybe = {\n alt: function (v) {\n return function (v1) {\n if (v instanceof Nothing) {\n return v1;\n };\n return v;\n };\n },\n Functor0: function () {\n return functorMaybe;\n }\n};\nvar plusMaybe = /* #__PURE__ */ (function () {\n return {\n empty: Nothing.value,\n Alt0: function () {\n return altMaybe;\n }\n };\n})();\nvar alternativeMaybe = {\n Applicative0: function () {\n return applicativeMaybe;\n },\n Plus1: function () {\n return plusMaybe;\n }\n};\nexport {\n Nothing,\n Just,\n maybe,\n maybe$prime,\n fromMaybe,\n fromMaybe$prime,\n isJust,\n isNothing,\n fromJust,\n optional,\n functorMaybe,\n applyMaybe,\n applicativeMaybe,\n altMaybe,\n plusMaybe,\n alternativeMaybe,\n bindMaybe,\n monadMaybe,\n extendMaybe,\n invariantMaybe,\n semigroupMaybe,\n monoidMaybe,\n semiringMaybe,\n eqMaybe,\n eq1Maybe,\n ordMaybe,\n ord1Maybe,\n boundedMaybe,\n showMaybe,\n genericMaybe\n};\n", "// Generated by purs version 0.15.14\nvar textXML = \"text/xml\";\nvar textPlain = \"text/plain\";\nvar textHTML = \"text/html\";\nvar textCSV = \"text/csv\";\nvar textCSS = \"text/css\";\nvar multipartFormData = \"multipart/form-data\";\nvar imagePNG = \"image/png\";\nvar imageJPEG = \"image/jpeg\";\nvar imageGIF = \"image/gif\";\nvar applicationXML = \"application/xml\";\nvar applicationOctetStream = \"application/octet-stream\";\nvar applicationJavascript = \"application/javascript\";\nvar applicationJSON = \"application/json\";\nvar applicationFormURLEncoded = \"application/x-www-form-urlencoded\";\nexport {\n applicationFormURLEncoded,\n applicationJSON,\n applicationJavascript,\n applicationOctetStream,\n applicationXML,\n imageGIF,\n imageJPEG,\n imagePNG,\n multipartFormData,\n textCSV,\n textHTML,\n textPlain,\n textXML,\n textCSS\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_MediaType_Common from \"../Data.MediaType.Common/index.js\";\nvar ArrayView = /* #__PURE__ */ (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})();\nvar Blob = /* #__PURE__ */ (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})();\nvar Document = /* #__PURE__ */ (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})();\nvar $$String = /* #__PURE__ */ (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})();\nvar FormData = /* #__PURE__ */ (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})();\nvar FormURLEncoded = /* #__PURE__ */ (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})();\nvar Json = /* #__PURE__ */ (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})();\nvar 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};\nvar string = /* #__PURE__ */ (function () {\n return $$String.create;\n})();\nvar json = /* #__PURE__ */ (function () {\n return Json.create;\n})();\nvar formURLEncoded = /* #__PURE__ */ (function () {\n return FormURLEncoded.create;\n})();\nvar formData = /* #__PURE__ */ (function () {\n return FormData.create;\n})();\nvar document = /* #__PURE__ */ (function () {\n return Document.create;\n})();\nvar blob = /* #__PURE__ */ (function () {\n return Blob.create;\n})();\nvar arrayView = function (av) {\n return new ArrayView(function (f) {\n return f(av);\n });\n};\nexport {\n ArrayView,\n Blob,\n Document,\n $$String as String,\n FormData,\n FormURLEncoded,\n Json,\n arrayView,\n blob,\n document,\n string,\n formData,\n formURLEncoded,\n json,\n toMediaType\n};\n", "// module Unsafe.Coerce\n\nexport const unsafeCoerce = function (x) {\n return x;\n};\n", "// Generated by purs version 0.15.14\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar coerce = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nexport {\n coerce\n};\n", "// Generated by purs version 0.15.14\nimport * as Safe_Coerce from \"../Safe.Coerce/index.js\";\nvar coerce = /* #__PURE__ */ Safe_Coerce.coerce();\nvar wrap = function () {\n return coerce;\n};\nvar wrap1 = /* #__PURE__ */ wrap();\nvar unwrap = function () {\n return coerce;\n};\nvar unwrap1 = /* #__PURE__ */ unwrap();\nvar underF2 = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n };\n };\n};\nvar underF = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n };\n };\n};\nvar under2 = function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n};\nvar under = function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n};\nvar un = function () {\n return function (v) {\n return unwrap1;\n };\n};\nvar traverse = function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n};\nvar overF2 = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n };\n };\n};\nvar overF = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n };\n };\n};\nvar over2 = function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n};\nvar over = function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n};\nvar newtypeMultiplicative = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeLast = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeFirst = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeEndo = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeDual = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeDisj = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeConj = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeAdditive = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar modify = function () {\n return function (fn) {\n return function (t) {\n return wrap1(fn(unwrap1(t)));\n };\n };\n};\nvar collect = function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n};\nvar alaF = function () {\n return function () {\n return function () {\n return function () {\n return function (v) {\n return coerce;\n };\n };\n };\n };\n};\nvar ala = function () {\n return function () {\n return function () {\n return function (v) {\n return function (f) {\n return coerce(f(wrap1));\n };\n };\n };\n };\n};\nexport {\n wrap,\n unwrap,\n un,\n modify,\n ala,\n alaF,\n over,\n overF,\n under,\n underF,\n over2,\n overF2,\n under2,\n underF2,\n traverse,\n collect,\n newtypeAdditive,\n newtypeMultiplicative,\n newtypeConj,\n newtypeDisj,\n newtypeDual,\n newtypeEndo,\n newtypeFirst,\n newtypeLast\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_MediaType from \"../Data.MediaType/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar show = /* #__PURE__ */ Data_Show.show(Data_MediaType.showMediaType);\nvar show1 = /* #__PURE__ */ Data_Show.show(Data_Show.showString);\nvar eq = /* #__PURE__ */ Data_Eq.eq(Data_MediaType.eqMediaType);\nvar compare = /* #__PURE__ */ Data_Ord.compare(Data_MediaType.ordMediaType);\nvar compare1 = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordString);\nvar Accept = /* #__PURE__ */ (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})();\nvar ContentType = /* #__PURE__ */ (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})();\nvar RequestHeader = /* #__PURE__ */ (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})();\nvar value = function (v) {\n if (v instanceof Accept) {\n return unwrap(v.value0);\n };\n if (v instanceof ContentType) {\n return 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};\nvar showRequestHeader = {\n show: function (v) {\n if (v instanceof Accept) {\n return \"(Accept \" + (show(v.value0) + \")\");\n };\n if (v instanceof ContentType) {\n return \"(ContentType \" + (show(v.value0) + \")\");\n };\n if (v instanceof RequestHeader) {\n return \"(RequestHeader \" + (show1(v.value0) + (\" \" + (show1(v.value1) + \")\")));\n };\n throw new Error(\"Failed pattern match at Affjax.RequestHeader (line 16, column 1 - line 19, column 81): \" + [ v.constructor.name ]);\n }\n};\nvar 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};\nvar eqRequestHeader = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Accept && y instanceof Accept) {\n return eq(x.value0)(y.value0);\n };\n if (x instanceof ContentType && y instanceof ContentType) {\n return eq(x.value0)(y.value0);\n };\n if (x instanceof RequestHeader && y instanceof RequestHeader) {\n return x.value0 === y.value0 && x.value1 === y.value1;\n };\n return false;\n };\n }\n};\nvar ordRequestHeader = {\n compare: function (x) {\n return function (y) {\n if (x instanceof Accept && y instanceof Accept) {\n return compare(x.value0)(y.value0);\n };\n if (x instanceof Accept) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Accept) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof ContentType && y instanceof ContentType) {\n return compare(x.value0)(y.value0);\n };\n if (x instanceof ContentType) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof ContentType) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof RequestHeader && y instanceof RequestHeader) {\n var v = compare1(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 compare1(x.value1)(y.value1);\n };\n throw new Error(\"Failed pattern match at Affjax.RequestHeader (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqRequestHeader;\n }\n};\nexport {\n Accept,\n ContentType,\n RequestHeader,\n name,\n value,\n eqRequestHeader,\n ordRequestHeader,\n showRequestHeader\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_MediaType_Common from \"../Data.MediaType.Common/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar $$ArrayBuffer = /* #__PURE__ */ (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})();\nvar Blob = /* #__PURE__ */ (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})();\nvar Document = /* #__PURE__ */ (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})();\nvar Json = /* #__PURE__ */ (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})();\nvar $$String = /* #__PURE__ */ (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})();\nvar Ignore = /* #__PURE__ */ (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})();\nvar 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};\nvar 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};\nvar string = /* #__PURE__ */ (function () {\n return new $$String(identity);\n})();\nvar json = /* #__PURE__ */ (function () {\n return new Json(identity);\n})();\nvar ignore = /* #__PURE__ */ (function () {\n return new Ignore(identity);\n})();\nvar document = /* #__PURE__ */ (function () {\n return new Document(identity);\n})();\nvar blob = /* #__PURE__ */ (function () {\n return new Blob(identity);\n})();\nvar arrayBuffer = /* #__PURE__ */ (function () {\n return new $$ArrayBuffer(identity);\n})();\nexport {\n $$ArrayBuffer as ArrayBuffer,\n Blob,\n Document,\n Json,\n $$String as String,\n Ignore,\n arrayBuffer,\n blob,\n document,\n json,\n string,\n ignore,\n toResponseType,\n toMediaType\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showString);\nvar compare = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordString);\nvar ResponseHeader = /* #__PURE__ */ (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})();\nvar value = function (v) {\n return v.value1;\n};\nvar showResponseHeader = {\n show: function (v) {\n return \"(ResponseHeader \" + (show(v.value0) + (\" \" + (show(v.value1) + \")\")));\n }\n};\nvar name = function (v) {\n return v.value0;\n};\nvar eqResponseHeader = {\n eq: function (x) {\n return function (y) {\n return x.value0 === y.value0 && x.value1 === y.value1;\n };\n }\n};\nvar ordResponseHeader = {\n compare: function (x) {\n return function (y) {\n var v = compare(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 compare(x.value1)(y.value1);\n };\n },\n Eq0: function () {\n return eqResponseHeader;\n }\n};\nexport {\n ResponseHeader,\n name,\n value,\n eqResponseHeader,\n ordResponseHeader,\n showResponseHeader\n};\n", "export const arrayBind = function (arr) {\n return function (f) {\n var result = [];\n for (var i = 0, l = arr.length; i < l; i++) {\n Array.prototype.push.apply(result, f(arr[i]));\n }\n return result;\n };\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar discard = function (dict) {\n return dict.discard;\n};\nvar bindProxy = {\n bind: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n Apply0: function () {\n return Control_Apply.applyProxy;\n }\n};\nvar bindFn = {\n bind: function (m) {\n return function (f) {\n return function (x) {\n return f(m(x))(x);\n };\n };\n },\n Apply0: function () {\n return Control_Apply.applyFn;\n }\n};\nvar bindArray = {\n bind: $foreign.arrayBind,\n Apply0: function () {\n return Control_Apply.applyArray;\n }\n};\nvar bind = function (dict) {\n return dict.bind;\n};\nvar bindFlipped = function (dictBind) {\n return Data_Function.flip(bind(dictBind));\n};\nvar composeKleisliFlipped = function (dictBind) {\n var bindFlipped1 = bindFlipped(dictBind);\n return function (f) {\n return function (g) {\n return function (a) {\n return bindFlipped1(f)(g(a));\n };\n };\n };\n};\nvar composeKleisli = function (dictBind) {\n var bind1 = bind(dictBind);\n return function (f) {\n return function (g) {\n return function (a) {\n return bind1(f(a))(g);\n };\n };\n };\n};\nvar discardProxy = {\n discard: function (dictBind) {\n return bind(dictBind);\n }\n};\nvar discardUnit = {\n discard: function (dictBind) {\n return bind(dictBind);\n }\n};\nvar ifM = function (dictBind) {\n var bind1 = bind(dictBind);\n return function (cond) {\n return function (t) {\n return function (f) {\n return bind1(cond)(function (cond$prime) {\n if (cond$prime) {\n return t;\n };\n return f;\n });\n };\n };\n };\n};\nvar join = function (dictBind) {\n var bind1 = bind(dictBind);\n return function (m) {\n return bind1(m)(identity);\n };\n};\nexport {\n bind,\n bindFlipped,\n discard,\n join,\n composeKleisli,\n composeKleisliFlipped,\n ifM,\n bindFn,\n bindArray,\n bindProxy,\n discardUnit,\n discardProxy\n};\nexport {\n liftA1,\n pure,\n unless,\n when\n} from \"../Control.Applicative/index.js\";\nexport {\n apply\n} from \"../Control.Apply/index.js\";\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar Left = /* #__PURE__ */ (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})();\nvar Right = /* #__PURE__ */ (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})();\nvar showEither = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return function (dictShow1) {\n var show1 = Data_Show.show(dictShow1);\n return {\n show: function (v) {\n if (v instanceof Left) {\n return \"(Left \" + (show(v.value0) + \")\");\n };\n if (v instanceof Right) {\n return \"(Right \" + (show1(v.value0) + \")\");\n };\n throw new Error(\"Failed pattern match at Data.Either (line 173, column 1 - line 175, column 46): \" + [ v.constructor.name ]);\n }\n };\n };\n};\nvar note$prime = function (f) {\n return Data_Maybe[\"maybe$prime\"](function ($138) {\n return Left.create(f($138));\n })(Right.create);\n};\nvar note = function (a) {\n return Data_Maybe.maybe(new Left(a))(Right.create);\n};\nvar genericEither = {\n to: function (x) {\n if (x instanceof Data_Generic_Rep.Inl) {\n return new Left(x.value0);\n };\n if (x instanceof Data_Generic_Rep.Inr) {\n return new Right(x.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 33, column 1 - line 33, column 56): \" + [ x.constructor.name ]);\n },\n from: function (x) {\n if (x instanceof Left) {\n return new Data_Generic_Rep.Inl(x.value0);\n };\n if (x instanceof Right) {\n return new Data_Generic_Rep.Inr(x.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 33, column 1 - line 33, column 56): \" + [ x.constructor.name ]);\n }\n};\nvar 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 0, column 0 - line 0, column 0): \" + [ m.constructor.name ]);\n };\n }\n};\nvar map = /* #__PURE__ */ Data_Functor.map(functorEither);\nvar invariantEither = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorEither)\n};\nvar fromRight$prime = function (v) {\n return function (v1) {\n if (v1 instanceof Right) {\n return v1.value0;\n };\n return v(Data_Unit.unit);\n };\n};\nvar fromRight = function (v) {\n return function (v1) {\n if (v1 instanceof Right) {\n return v1.value0;\n };\n return v;\n };\n};\nvar fromLeft$prime = function (v) {\n return function (v1) {\n if (v1 instanceof Left) {\n return v1.value0;\n };\n return v(Data_Unit.unit);\n };\n};\nvar fromLeft = function (v) {\n return function (v1) {\n if (v1 instanceof Left) {\n return v1.value0;\n };\n return v;\n };\n};\nvar extendEither = {\n extend: function (v) {\n return function (v1) {\n if (v1 instanceof Left) {\n return new Left(v1.value0);\n };\n return new Right(v(v1));\n };\n },\n Functor0: function () {\n return functorEither;\n }\n};\nvar eqEither = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function (dictEq1) {\n var eq1 = Data_Eq.eq(dictEq1);\n return {\n eq: function (x) {\n return function (y) {\n if (x instanceof Left && y instanceof Left) {\n return eq(x.value0)(y.value0);\n };\n if (x instanceof Right && y instanceof Right) {\n return eq1(x.value0)(y.value0);\n };\n return false;\n };\n }\n };\n };\n};\nvar ordEither = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n var eqEither1 = eqEither(dictOrd.Eq0());\n return function (dictOrd1) {\n var compare1 = Data_Ord.compare(dictOrd1);\n var eqEither2 = eqEither1(dictOrd1.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n if (x instanceof Left && y instanceof Left) {\n return compare(x.value0)(y.value0);\n };\n if (x instanceof Left) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Left) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Right && y instanceof Right) {\n return compare1(x.value0)(y.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqEither2;\n }\n };\n };\n};\nvar eq1Either = function (dictEq) {\n var eqEither1 = eqEither(dictEq);\n return {\n eq1: function (dictEq1) {\n return Data_Eq.eq(eqEither1(dictEq1));\n }\n };\n};\nvar ord1Either = function (dictOrd) {\n var ordEither1 = ordEither(dictOrd);\n var eq1Either1 = eq1Either(dictOrd.Eq0());\n return {\n compare1: function (dictOrd1) {\n return Data_Ord.compare(ordEither1(dictOrd1));\n },\n Eq10: function () {\n return eq1Either1;\n }\n };\n};\nvar 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};\nvar hush = /* #__PURE__ */ (function () {\n return either(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nvar isLeft = /* #__PURE__ */ either(/* #__PURE__ */ Data_Function[\"const\"](true))(/* #__PURE__ */ Data_Function[\"const\"](false));\nvar isRight = /* #__PURE__ */ either(/* #__PURE__ */ Data_Function[\"const\"](false))(/* #__PURE__ */ Data_Function[\"const\"](true));\nvar choose = function (dictAlt) {\n var alt = Control_Alt.alt(dictAlt);\n var map1 = Data_Functor.map(dictAlt.Functor0());\n return function (a) {\n return function (b) {\n return alt(map1(Left.create)(a))(map1(Right.create)(b));\n };\n };\n};\nvar boundedEither = function (dictBounded) {\n var bottom = Data_Bounded.bottom(dictBounded);\n var ordEither1 = ordEither(dictBounded.Ord0());\n return function (dictBounded1) {\n var ordEither2 = ordEither1(dictBounded1.Ord0());\n return {\n top: new Right(Data_Bounded.top(dictBounded1)),\n bottom: new Left(bottom),\n Ord0: function () {\n return ordEither2;\n }\n };\n };\n};\nvar blush = /* #__PURE__ */ (function () {\n return either(Data_Maybe.Just.create)(Data_Function[\"const\"](Data_Maybe.Nothing.value));\n})();\nvar 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 map(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};\nvar apply = /* #__PURE__ */ Control_Apply.apply(applyEither);\nvar bindEither = {\n bind: /* #__PURE__ */ 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};\nvar semigroupEither = function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return {\n append: function (x) {\n return function (y) {\n return apply(map(append1)(x))(y);\n };\n }\n };\n};\nvar applicativeEither = /* #__PURE__ */ (function () {\n return {\n pure: Right.create,\n Apply0: function () {\n return applyEither;\n }\n };\n})();\nvar monadEither = {\n Applicative0: function () {\n return applicativeEither;\n },\n Bind1: function () {\n return bindEither;\n }\n};\nvar 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};\nexport {\n Left,\n Right,\n either,\n choose,\n isLeft,\n isRight,\n fromLeft,\n fromLeft$prime,\n fromRight,\n fromRight$prime,\n note,\n note$prime,\n hush,\n blush,\n functorEither,\n genericEither,\n invariantEither,\n applyEither,\n applicativeEither,\n altEither,\n bindEither,\n monadEither,\n extendEither,\n showEither,\n eqEither,\n eq1Either,\n ordEither,\n ord1Either,\n boundedEither,\n semigroupEither\n};\n", "export const pureE = function (a) {\n return function () {\n return a;\n };\n};\n\nexport const bindE = function (a) {\n return function (f) {\n return function () {\n return f(a())();\n };\n };\n};\n\nexport const untilE = function (f) {\n return function () {\n while (!f());\n };\n};\n\nexport const whileE = function (f) {\n return function (a) {\n return function () {\n while (f()) {\n a();\n }\n };\n };\n};\n\nexport const forE = function (lo) {\n return function (hi) {\n return function (f) {\n return function () {\n for (var i = lo; i < hi; i++) {\n f(i)();\n }\n };\n };\n };\n};\n\nexport const foreachE = function (as) {\n return function (f) {\n return function () {\n for (var i = 0, l = as.length; i < l; i++) {\n f(as[i])();\n }\n };\n };\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nvar whenM = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var when = Control_Applicative.when(dictMonad.Applicative0());\n return function (mb) {\n return function (m) {\n return bind(mb)(function (b) {\n return when(b)(m);\n });\n };\n };\n};\nvar unlessM = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var unless = Control_Applicative.unless(dictMonad.Applicative0());\n return function (mb) {\n return function (m) {\n return bind(mb)(function (b) {\n return unless(b)(m);\n });\n };\n };\n};\nvar monadProxy = {\n Applicative0: function () {\n return Control_Applicative.applicativeProxy;\n },\n Bind1: function () {\n return Control_Bind.bindProxy;\n }\n};\nvar monadFn = {\n Applicative0: function () {\n return Control_Applicative.applicativeFn;\n },\n Bind1: function () {\n return Control_Bind.bindFn;\n }\n};\nvar monadArray = {\n Applicative0: function () {\n return Control_Applicative.applicativeArray;\n },\n Bind1: function () {\n return Control_Bind.bindArray;\n }\n};\nvar liftM1 = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return function (f) {\n return function (a) {\n return bind(a)(function (a$prime) {\n return pure(f(a$prime));\n });\n };\n };\n};\nvar ap = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return function (f) {\n return function (a) {\n return bind(f)(function (f$prime) {\n return bind(a)(function (a$prime) {\n return pure(f$prime(a$prime));\n });\n });\n };\n };\n};\nexport {\n liftM1,\n whenM,\n unlessM,\n ap,\n monadFn,\n monadArray,\n monadProxy\n};\nexport {\n liftA1,\n pure,\n unless,\n when\n} from \"../Control.Applicative/index.js\";\nexport {\n apply\n} from \"../Control.Apply/index.js\";\nexport {\n bind,\n ifM,\n join\n} from \"../Control.Bind/index.js\";\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n", "export const 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.\nexport const 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\nexport const 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\nexport const numDiv = function (n1) {\n return function (n2) {\n return n1 / n2;\n };\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nvar ringRecord = /* #__PURE__ */ Data_Ring.ringRecord();\nvar commutativeRingUnit = {\n Ring0: function () {\n return Data_Ring.ringUnit;\n }\n};\nvar commutativeRingRecordNil = {\n RingRecord0: function () {\n return Data_Ring.ringRecordNil;\n }\n};\nvar commutativeRingRecordCons = function (dictIsSymbol) {\n var ringRecordCons = Data_Ring.ringRecordCons(dictIsSymbol)();\n return function () {\n return function (dictCommutativeRingRecord) {\n var ringRecordCons1 = ringRecordCons(dictCommutativeRingRecord.RingRecord0());\n return function (dictCommutativeRing) {\n var ringRecordCons2 = ringRecordCons1(dictCommutativeRing.Ring0());\n return {\n RingRecord0: function () {\n return ringRecordCons2;\n }\n };\n };\n };\n };\n};\nvar commutativeRingRecord = function () {\n return function (dictCommutativeRingRecord) {\n var ringRecord1 = ringRecord(dictCommutativeRingRecord.RingRecord0());\n return {\n Ring0: function () {\n return ringRecord1;\n }\n };\n };\n};\nvar commutativeRingProxy = {\n Ring0: function () {\n return Data_Ring.ringProxy;\n }\n};\nvar commutativeRingNumber = {\n Ring0: function () {\n return Data_Ring.ringNumber;\n }\n};\nvar commutativeRingInt = {\n Ring0: function () {\n return Data_Ring.ringInt;\n }\n};\nvar commutativeRingFn = function (dictCommutativeRing) {\n var ringFn = Data_Ring.ringFn(dictCommutativeRing.Ring0());\n return {\n Ring0: function () {\n return ringFn;\n }\n };\n};\nexport {\n commutativeRingInt,\n commutativeRingNumber,\n commutativeRingUnit,\n commutativeRingFn,\n commutativeRingRecord,\n commutativeRingProxy,\n commutativeRingRecordNil,\n commutativeRingRecordCons\n};\nexport {\n add,\n mul,\n one,\n zero\n} from \"../Data.Semiring/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_CommutativeRing from \"../Data.CommutativeRing/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nvar mod = function (dict) {\n return dict.mod;\n};\nvar gcd = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function (dictEuclideanRing) {\n var zero = Data_Semiring.zero(((dictEuclideanRing.CommutativeRing0()).Ring0()).Semiring0());\n var mod1 = mod(dictEuclideanRing);\n return function (a) {\n return function (b) {\n var $24 = eq(b)(zero);\n if ($24) {\n return a;\n };\n return gcd(dictEq)(dictEuclideanRing)(b)(mod1(a)(b));\n };\n };\n };\n};\nvar euclideanRingNumber = {\n degree: function (v) {\n return 1;\n },\n div: $foreign.numDiv,\n mod: function (v) {\n return function (v1) {\n return 0.0;\n };\n },\n CommutativeRing0: function () {\n return Data_CommutativeRing.commutativeRingNumber;\n }\n};\nvar euclideanRingInt = {\n degree: $foreign.intDegree,\n div: $foreign.intDiv,\n mod: $foreign.intMod,\n CommutativeRing0: function () {\n return Data_CommutativeRing.commutativeRingInt;\n }\n};\nvar div = function (dict) {\n return dict.div;\n};\nvar lcm = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n var gcd1 = gcd(dictEq);\n return function (dictEuclideanRing) {\n var Semiring0 = ((dictEuclideanRing.CommutativeRing0()).Ring0()).Semiring0();\n var zero = Data_Semiring.zero(Semiring0);\n var div1 = div(dictEuclideanRing);\n var mul = Data_Semiring.mul(Semiring0);\n var gcd2 = gcd1(dictEuclideanRing);\n return function (a) {\n return function (b) {\n var $26 = eq(a)(zero) || eq(b)(zero);\n if ($26) {\n return zero;\n };\n return div1(mul(a)(b))(gcd2(a)(b));\n };\n };\n };\n};\nvar degree = function (dict) {\n return dict.degree;\n};\nexport {\n degree,\n div,\n mod,\n gcd,\n lcm,\n euclideanRingInt,\n euclideanRingNumber\n};\nexport {\n sub\n} from \"../Data.Ring/index.js\";\nexport {\n add,\n mul,\n one,\n zero\n} from \"../Data.Semiring/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_EuclideanRing from \"../Data.EuclideanRing/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar semigroupRecord = /* #__PURE__ */ Data_Semigroup.semigroupRecord();\nvar mod = /* #__PURE__ */ Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt);\nvar div = /* #__PURE__ */ Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt);\nvar monoidUnit = {\n mempty: Data_Unit.unit,\n Semigroup0: function () {\n return Data_Semigroup.semigroupUnit;\n }\n};\nvar monoidString = {\n mempty: \"\",\n Semigroup0: function () {\n return Data_Semigroup.semigroupString;\n }\n};\nvar monoidRecordNil = {\n memptyRecord: function (v) {\n return {};\n },\n SemigroupRecord0: function () {\n return Data_Semigroup.semigroupRecordNil;\n }\n};\nvar monoidOrdering = /* #__PURE__ */ (function () {\n return {\n mempty: Data_Ordering.EQ.value,\n Semigroup0: function () {\n return Data_Ordering.semigroupOrdering;\n }\n };\n})();\nvar monoidArray = {\n mempty: [ ],\n Semigroup0: function () {\n return Data_Semigroup.semigroupArray;\n }\n};\nvar memptyRecord = function (dict) {\n return dict.memptyRecord;\n};\nvar monoidRecord = function () {\n return function (dictMonoidRecord) {\n var semigroupRecord1 = semigroupRecord(dictMonoidRecord.SemigroupRecord0());\n return {\n mempty: memptyRecord(dictMonoidRecord)(Type_Proxy[\"Proxy\"].value),\n Semigroup0: function () {\n return semigroupRecord1;\n }\n };\n };\n};\nvar mempty = function (dict) {\n return dict.mempty;\n};\nvar monoidFn = function (dictMonoid) {\n var mempty1 = mempty(dictMonoid);\n var semigroupFn = Data_Semigroup.semigroupFn(dictMonoid.Semigroup0());\n return {\n mempty: function (v) {\n return mempty1;\n },\n Semigroup0: function () {\n return semigroupFn;\n }\n };\n};\nvar monoidRecordCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n var semigroupRecordCons = Data_Semigroup.semigroupRecordCons(dictIsSymbol)();\n return function (dictMonoid) {\n var mempty1 = mempty(dictMonoid);\n var Semigroup0 = dictMonoid.Semigroup0();\n return function () {\n return function (dictMonoidRecord) {\n var memptyRecord1 = memptyRecord(dictMonoidRecord);\n var semigroupRecordCons1 = semigroupRecordCons(dictMonoidRecord.SemigroupRecord0())(Semigroup0);\n return {\n memptyRecord: function (v) {\n var tail = memptyRecord1(Type_Proxy[\"Proxy\"].value);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(mempty1)(tail);\n },\n SemigroupRecord0: function () {\n return semigroupRecordCons1;\n }\n };\n };\n };\n };\n};\nvar power = function (dictMonoid) {\n var mempty1 = mempty(dictMonoid);\n var append = Data_Semigroup.append(dictMonoid.Semigroup0());\n return function (x) {\n var go = function (p) {\n if (p <= 0) {\n return mempty1;\n };\n if (p === 1) {\n return x;\n };\n if (mod(p)(2) === 0) {\n var x$prime = go(div(p)(2));\n return append(x$prime)(x$prime);\n };\n if (Data_Boolean.otherwise) {\n var x$prime = go(div(p)(2));\n return append(x$prime)(append(x$prime)(x));\n };\n throw new Error(\"Failed pattern match at Data.Monoid (line 88, column 3 - line 88, column 17): \" + [ p.constructor.name ]);\n };\n return go;\n };\n};\nvar guard = function (dictMonoid) {\n var mempty1 = mempty(dictMonoid);\n return function (v) {\n return function (v1) {\n if (v) {\n return v1;\n };\n if (!v) {\n return mempty1;\n };\n throw new Error(\"Failed pattern match at Data.Monoid (line 96, column 1 - line 96, column 49): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nexport {\n mempty,\n power,\n guard,\n memptyRecord,\n monoidUnit,\n monoidOrdering,\n monoidFn,\n monoidString,\n monoidArray,\n monoidRecord,\n monoidRecordNil,\n monoidRecordCons\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar monadEffect = {\n Applicative0: function () {\n return applicativeEffect;\n },\n Bind1: function () {\n return bindEffect;\n }\n};\nvar bindEffect = {\n bind: $foreign.bindE,\n Apply0: function () {\n return $lazy_applyEffect(0);\n }\n};\nvar applicativeEffect = {\n pure: $foreign.pureE,\n Apply0: function () {\n return $lazy_applyEffect(0);\n }\n};\nvar $lazy_functorEffect = /* #__PURE__ */ $runtime_lazy(\"functorEffect\", \"Effect\", function () {\n return {\n map: Control_Applicative.liftA1(applicativeEffect)\n };\n});\nvar $lazy_applyEffect = /* #__PURE__ */ $runtime_lazy(\"applyEffect\", \"Effect\", function () {\n return {\n apply: Control_Monad.ap(monadEffect),\n Functor0: function () {\n return $lazy_functorEffect(0);\n }\n };\n});\nvar functorEffect = /* #__PURE__ */ $lazy_functorEffect(20);\nvar applyEffect = /* #__PURE__ */ $lazy_applyEffect(23);\nvar lift2 = /* #__PURE__ */ Control_Apply.lift2(applyEffect);\nvar semigroupEffect = function (dictSemigroup) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monoidEffect = function (dictMonoid) {\n var semigroupEffect1 = semigroupEffect(dictMonoid.Semigroup0());\n return {\n mempty: $foreign.pureE(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupEffect1;\n }\n };\n};\nexport {\n untilE,\n whileE,\n forE,\n foreachE\n} from \"./foreign.js\";\nexport {\n functorEffect,\n applyEffect,\n applicativeEffect,\n bindEffect,\n monadEffect,\n semigroupEffect,\n monoidEffect\n};\n", "export function showErrorImpl(err) {\n return err.stack || err.toString();\n}\n\nexport function error(msg) {\n return new Error(msg);\n}\n\nexport function message(e) {\n return e.message;\n}\n\nexport function name(e) {\n return e.name || \"Error\";\n}\n\nexport function stackImpl(just) {\n return function (nothing) {\n return function (e) {\n return e.stack ? just(e.stack) : nothing;\n };\n };\n}\n\nexport function throwException(e) {\n return function () {\n throw e;\n };\n}\n\nexport function catchException(c) {\n return function (t) {\n return function () {\n try {\n return t();\n } catch (e) {\n if (e instanceof Error || Object.prototype.toString.call(e) === \"[object Error]\") {\n return c(e)();\n } else {\n return c(new Error(e.toString()))();\n }\n }\n };\n };\n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar $$try = function (action) {\n return $foreign.catchException(function ($3) {\n return pure(Data_Either.Left.create($3));\n })(map(Data_Either.Right.create)(action));\n};\nvar $$throw = function ($4) {\n return $foreign.throwException($foreign.error($4));\n};\nvar stack = /* #__PURE__ */ (function () {\n return $foreign.stackImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar showError = {\n show: $foreign.showErrorImpl\n};\nexport {\n error,\n message,\n name,\n throwException,\n catchException\n} from \"./foreign.js\";\nexport {\n stack,\n $$throw as throw,\n $$try as try,\n showError\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar throwError = function (dict) {\n return dict.throwError;\n};\nvar monadThrowMaybe = /* #__PURE__ */ (function () {\n return {\n throwError: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n Monad0: function () {\n return Data_Maybe.monadMaybe;\n }\n };\n})();\nvar monadThrowEither = /* #__PURE__ */ (function () {\n return {\n throwError: Data_Either.Left.create,\n Monad0: function () {\n return Data_Either.monadEither;\n }\n };\n})();\nvar monadThrowEffect = {\n throwError: Effect_Exception.throwException,\n Monad0: function () {\n return Effect.monadEffect;\n }\n};\nvar monadErrorMaybe = {\n catchError: function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing) {\n return v1(Data_Unit.unit);\n };\n if (v instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Error.Class (line 79, column 1 - line 81, column 33): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n MonadThrow0: function () {\n return monadThrowMaybe;\n }\n};\nvar monadErrorEither = {\n catchError: function (v) {\n return function (v1) {\n if (v instanceof Data_Either.Left) {\n return v1(v.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 Control.Monad.Error.Class (line 72, column 1 - line 74, column 35): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n MonadThrow0: function () {\n return monadThrowEither;\n }\n};\nvar monadErrorEffect = {\n catchError: /* #__PURE__ */ Data_Function.flip(Effect_Exception.catchException),\n MonadThrow0: function () {\n return monadThrowEffect;\n }\n};\nvar liftMaybe = function (dictMonadThrow) {\n var throwError1 = throwError(dictMonadThrow);\n var pure = Control_Applicative.pure((dictMonadThrow.Monad0()).Applicative0());\n return function (error) {\n return Data_Maybe.maybe(throwError1(error))(pure);\n };\n};\nvar liftEither = function (dictMonadThrow) {\n return Data_Either.either(throwError(dictMonadThrow))(Control_Applicative.pure((dictMonadThrow.Monad0()).Applicative0()));\n};\nvar catchError = function (dict) {\n return dict.catchError;\n};\nvar catchJust = function (dictMonadError) {\n var throwError1 = throwError(dictMonadError.MonadThrow0());\n var catchError1 = catchError(dictMonadError);\n return function (p) {\n return function (act) {\n return function (handler) {\n var handle = function (e) {\n var v = p(e);\n if (v instanceof Data_Maybe.Nothing) {\n return throwError1(e);\n };\n if (v instanceof Data_Maybe.Just) {\n return handler(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Error.Class (line 57, column 5 - line 59, column 26): \" + [ v.constructor.name ]);\n };\n return catchError1(act)(handle);\n };\n };\n };\n};\nvar $$try = function (dictMonadError) {\n var catchError1 = catchError(dictMonadError);\n var Monad0 = (dictMonadError.MonadThrow0()).Monad0();\n var map = Data_Functor.map(((Monad0.Bind1()).Apply0()).Functor0());\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n return function (a) {\n return catchError1(map(Data_Either.Right.create)(a))(function ($52) {\n return pure(Data_Either.Left.create($52));\n });\n };\n};\nvar withResource = function (dictMonadError) {\n var MonadThrow0 = dictMonadError.MonadThrow0();\n var Monad0 = MonadThrow0.Monad0();\n var Bind1 = Monad0.Bind1();\n var bind = Control_Bind.bind(Bind1);\n var try1 = $$try(dictMonadError);\n var discard1 = discard(Bind1);\n var throwError1 = throwError(MonadThrow0);\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n return function (acquire) {\n return function (release) {\n return function (kleisli) {\n return bind(acquire)(function (resource) {\n return bind(try1(kleisli(resource)))(function (result) {\n return discard1(release(resource))(function () {\n return Data_Either.either(throwError1)(pure)(result);\n });\n });\n });\n };\n };\n };\n};\nexport {\n catchError,\n throwError,\n catchJust,\n $$try as try,\n withResource,\n liftMaybe,\n liftEither,\n monadThrowEither,\n monadErrorEither,\n monadThrowMaybe,\n monadErrorMaybe,\n monadThrowEffect,\n monadErrorEffect\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar Identity = function (x) {\n return x;\n};\nvar showIdentity = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (v) {\n return \"(Identity \" + (show(v) + \")\");\n }\n };\n};\nvar semiringIdentity = function (dictSemiring) {\n return dictSemiring;\n};\nvar semigroupIdentity = function (dictSemigroup) {\n return dictSemigroup;\n};\nvar ringIdentity = function (dictRing) {\n return dictRing;\n};\nvar ordIdentity = function (dictOrd) {\n return dictOrd;\n};\nvar newtypeIdentity = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidIdentity = function (dictMonoid) {\n return dictMonoid;\n};\nvar lazyIdentity = function (dictLazy) {\n return dictLazy;\n};\nvar heytingAlgebraIdentity = function (dictHeytingAlgebra) {\n return dictHeytingAlgebra;\n};\nvar functorIdentity = {\n map: function (f) {\n return function (m) {\n return f(m);\n };\n }\n};\nvar invariantIdentity = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorIdentity)\n};\nvar extendIdentity = {\n extend: function (f) {\n return function (m) {\n return f(m);\n };\n },\n Functor0: function () {\n return functorIdentity;\n }\n};\nvar euclideanRingIdentity = function (dictEuclideanRing) {\n return dictEuclideanRing;\n};\nvar eqIdentity = function (dictEq) {\n return dictEq;\n};\nvar eq1Identity = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqIdentity(dictEq));\n }\n};\nvar ord1Identity = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordIdentity(dictOrd));\n },\n Eq10: function () {\n return eq1Identity;\n }\n};\nvar comonadIdentity = {\n extract: function (v) {\n return v;\n },\n Extend0: function () {\n return extendIdentity;\n }\n};\nvar commutativeRingIdentity = function (dictCommutativeRing) {\n return dictCommutativeRing;\n};\nvar boundedIdentity = function (dictBounded) {\n return dictBounded;\n};\nvar booleanAlgebraIdentity = function (dictBooleanAlgebra) {\n return dictBooleanAlgebra;\n};\nvar applyIdentity = {\n apply: function (v) {\n return function (v1) {\n return v(v1);\n };\n },\n Functor0: function () {\n return functorIdentity;\n }\n};\nvar bindIdentity = {\n bind: function (v) {\n return function (f) {\n return f(v);\n };\n },\n Apply0: function () {\n return applyIdentity;\n }\n};\nvar applicativeIdentity = {\n pure: Identity,\n Apply0: function () {\n return applyIdentity;\n }\n};\nvar monadIdentity = {\n Applicative0: function () {\n return applicativeIdentity;\n },\n Bind1: function () {\n return bindIdentity;\n }\n};\nvar altIdentity = {\n alt: function (x) {\n return function (v) {\n return x;\n };\n },\n Functor0: function () {\n return functorIdentity;\n }\n};\nexport {\n Identity,\n newtypeIdentity,\n eqIdentity,\n ordIdentity,\n boundedIdentity,\n heytingAlgebraIdentity,\n booleanAlgebraIdentity,\n semigroupIdentity,\n monoidIdentity,\n semiringIdentity,\n euclideanRingIdentity,\n ringIdentity,\n commutativeRingIdentity,\n lazyIdentity,\n showIdentity,\n eq1Identity,\n ord1Identity,\n functorIdentity,\n invariantIdentity,\n altIdentity,\n applyIdentity,\n applicativeIdentity,\n bindIdentity,\n monadIdentity,\n extendIdentity,\n comonadIdentity\n};\n", "export const _new = function (val) {\n return function () {\n return { value: val };\n };\n};\n\nexport const newWithSelf = function (f) {\n return function () {\n var ref = { value: null };\n ref.value = f(ref);\n return ref;\n };\n};\n\nexport const read = function (ref) {\n return function () {\n return ref.value;\n };\n};\n\nexport const 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\nexport const write = function (val) {\n return function (ref) {\n return function () {\n ref.value = val;\n };\n };\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Effect.functorEffect);\nvar $$new = $foreign[\"_new\"];\nvar modify$prime = $foreign.modifyImpl;\nvar 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};\nvar modify_ = function (f) {\n return function (s) {\n return $$void(modify(f)(s));\n };\n};\nexport {\n newWithSelf,\n read,\n write\n} from \"./foreign.js\";\nexport {\n $$new as new,\n modify$prime,\n modify,\n modify_\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Effect.bindEffect);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar Loop = /* #__PURE__ */ (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})();\nvar Done = /* #__PURE__ */ (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})();\nvar tailRecM = function (dict) {\n return dict.tailRecM;\n};\nvar tailRecM2 = function (dictMonadRec) {\n var tailRecM1 = tailRecM(dictMonadRec);\n return function (f) {\n return function (a) {\n return function (b) {\n return tailRecM1(function (o) {\n return f(o.a)(o.b);\n })({\n a: a,\n b: b\n });\n };\n };\n };\n};\nvar tailRecM3 = function (dictMonadRec) {\n var tailRecM1 = tailRecM(dictMonadRec);\n return function (f) {\n return function (a) {\n return function (b) {\n return function (c) {\n return tailRecM1(function (o) {\n return f(o.a)(o.b)(o.c);\n })({\n a: a,\n b: b,\n c: c\n });\n };\n };\n };\n };\n};\nvar untilJust = function (dictMonadRec) {\n var tailRecM1 = tailRecM(dictMonadRec);\n var mapFlipped = Data_Functor.mapFlipped((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0());\n return function (m) {\n return tailRecM1(function (v) {\n return mapFlipped(m)(function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return new Loop(Data_Unit.unit);\n };\n if (v1 instanceof Data_Maybe.Just) {\n return new Done(v1.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 179, column 43 - line 181, column 19): \" + [ v1.constructor.name ]);\n });\n })(Data_Unit.unit);\n };\n};\nvar whileJust = function (dictMonoid) {\n var append = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (dictMonadRec) {\n var tailRecM1 = tailRecM(dictMonadRec);\n var mapFlipped = Data_Functor.mapFlipped((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0());\n return function (m) {\n return tailRecM1(function (v) {\n return mapFlipped(m)(function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return new Done(v);\n };\n if (v1 instanceof Data_Maybe.Just) {\n return new Loop(append(v)(v1.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 172, column 45 - line 174, column 26): \" + [ v1.constructor.name ]);\n });\n })(mempty);\n };\n };\n};\nvar tailRec = function (f) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Loop) {\n $copy_v = f(v.value0);\n return;\n };\n if (v instanceof Done) {\n $tco_done = true;\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 103, column 3 - line 103, column 25): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return function ($85) {\n return go(f($85));\n };\n};\nvar tailRec2 = function (f) {\n return function (a) {\n return function (b) {\n return tailRec(function (o) {\n return f(o.a)(o.b);\n })({\n a: a,\n b: b\n });\n };\n };\n};\nvar tailRec3 = function (f) {\n return function (a) {\n return function (b) {\n return function (c) {\n return tailRec(function (o) {\n return f(o.a)(o.b)(o.c);\n })({\n a: a,\n b: b,\n c: c\n });\n };\n };\n };\n};\nvar monadRecMaybe = {\n tailRecM: function (f) {\n return function (a0) {\n var g = function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return new Done(Data_Maybe.Nothing.value);\n };\n if (v instanceof Data_Maybe.Just && v.value0 instanceof Loop) {\n return new Loop(f(v.value0.value0));\n };\n if (v instanceof Data_Maybe.Just && v.value0 instanceof Done) {\n return new Done(new Data_Maybe.Just(v.value0.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 153, column 7 - line 153, column 31): \" + [ v.constructor.name ]);\n };\n return tailRec(g)(f(a0));\n };\n },\n Monad0: function () {\n return Data_Maybe.monadMaybe;\n }\n};\nvar monadRecIdentity = {\n tailRecM: function (f) {\n var runIdentity = function (v) {\n return v;\n };\n var $86 = tailRec(function ($88) {\n return runIdentity(f($88));\n });\n return function ($87) {\n return Data_Identity.Identity($86($87));\n };\n },\n Monad0: function () {\n return Data_Identity.monadIdentity;\n }\n};\nvar monadRecFunction = {\n tailRecM: function (f) {\n return function (a0) {\n return function (e) {\n return tailRec(function (a) {\n return f(a)(e);\n })(a0);\n };\n };\n },\n Monad0: function () {\n return Control_Monad.monadFn;\n }\n};\nvar monadRecEither = {\n tailRecM: function (f) {\n return function (a0) {\n var g = function (v) {\n if (v instanceof Data_Either.Left) {\n return new Done(new Data_Either.Left(v.value0));\n };\n if (v instanceof Data_Either.Right && v.value0 instanceof Loop) {\n return new Loop(f(v.value0.value0));\n };\n if (v instanceof Data_Either.Right && v.value0 instanceof Done) {\n return new Done(new Data_Either.Right(v.value0.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 145, column 7 - line 145, column 33): \" + [ v.constructor.name ]);\n };\n return tailRec(g)(f(a0));\n };\n },\n Monad0: function () {\n return Data_Either.monadEither;\n }\n};\nvar 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 137, column 30 - line 137, column 44): \" + [ v.constructor.name ]);\n };\n return function __do() {\n var r = bindFlipped(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 128, column 22 - line 133, column 28): \" + [ v.constructor.name ]);\n })()) {\n\n };\n return {};\n })();\n return map(fromDone)(Effect_Ref.read(r))();\n };\n };\n },\n Monad0: function () {\n return Effect.monadEffect;\n }\n};\nvar loop3 = function (a) {\n return function (b) {\n return function (c) {\n return new Loop({\n a: a,\n b: b,\n c: c\n });\n };\n };\n};\nvar loop2 = function (a) {\n return function (b) {\n return new Loop({\n a: a,\n b: b\n });\n };\n};\nvar functorStep = {\n map: function (f) {\n return function (m) {\n if (m instanceof Loop) {\n return new Loop(m.value0);\n };\n if (m instanceof Done) {\n return new Done(f(m.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 0, column 0 - line 0, column 0): \" + [ m.constructor.name ]);\n };\n }\n};\nvar forever = function (dictMonadRec) {\n var tailRecM1 = tailRecM(dictMonadRec);\n var voidRight = Data_Functor.voidRight((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0());\n return function (ma) {\n return tailRecM1(function (u) {\n return voidRight(new Loop(u))(ma);\n })(Data_Unit.unit);\n };\n};\nvar bifunctorStep = {\n bimap: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Loop) {\n return new Loop(v(v2.value0));\n };\n if (v2 instanceof Done) {\n return new Done(v1(v2.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 33, column 1 - line 35, column 34): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n }\n};\nexport {\n Loop,\n Done,\n tailRec,\n tailRec2,\n tailRec3,\n tailRecM,\n tailRecM2,\n tailRecM3,\n forever,\n whileJust,\n untilJust,\n loop2,\n loop3,\n functorStep,\n bifunctorStep,\n monadRecIdentity,\n monadRecEffect,\n monadRecFunction,\n monadRecEither,\n monadRecMaybe\n};\n", "export const boolConj = function (b1) {\n return function (b2) {\n return b1 && b2;\n };\n};\n\nexport const boolDisj = function (b1) {\n return function (b2) {\n return b1 || b2;\n };\n};\n\nexport const boolNot = function (b) {\n return !b;\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar ttRecord = function (dict) {\n return dict.ttRecord;\n};\nvar tt = function (dict) {\n return dict.tt;\n};\nvar notRecord = function (dict) {\n return dict.notRecord;\n};\nvar not = function (dict) {\n return dict.not;\n};\nvar impliesRecord = function (dict) {\n return dict.impliesRecord;\n};\nvar implies = function (dict) {\n return dict.implies;\n};\nvar heytingAlgebraUnit = {\n ff: Data_Unit.unit,\n tt: Data_Unit.unit,\n implies: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n conj: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n disj: function (v) {\n return function (v1) {\n return Data_Unit.unit;\n };\n },\n not: function (v) {\n return Data_Unit.unit;\n }\n};\nvar heytingAlgebraRecordNil = {\n conjRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n disjRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n ffRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n impliesRecord: function (v) {\n return function (v1) {\n return function (v2) {\n return {};\n };\n };\n },\n notRecord: function (v) {\n return function (v1) {\n return {};\n };\n },\n ttRecord: function (v) {\n return function (v1) {\n return {};\n };\n }\n};\nvar heytingAlgebraProxy = /* #__PURE__ */ (function () {\n return {\n conj: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n disj: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n implies: function (v) {\n return function (v1) {\n return Type_Proxy[\"Proxy\"].value;\n };\n },\n ff: Type_Proxy[\"Proxy\"].value,\n not: function (v) {\n return Type_Proxy[\"Proxy\"].value;\n },\n tt: Type_Proxy[\"Proxy\"].value\n };\n})();\nvar ffRecord = function (dict) {\n return dict.ffRecord;\n};\nvar ff = function (dict) {\n return dict.ff;\n};\nvar disjRecord = function (dict) {\n return dict.disjRecord;\n};\nvar disj = function (dict) {\n return dict.disj;\n};\nvar 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};\nvar conjRecord = function (dict) {\n return dict.conjRecord;\n};\nvar heytingAlgebraRecord = function () {\n return function (dictHeytingAlgebraRecord) {\n return {\n ff: ffRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n tt: ttRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)(Type_Proxy[\"Proxy\"].value),\n conj: conjRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value),\n disj: disjRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value),\n implies: impliesRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value),\n not: notRecord(dictHeytingAlgebraRecord)(Type_Proxy[\"Proxy\"].value)\n };\n };\n};\nvar conj = function (dict) {\n return dict.conj;\n};\nvar heytingAlgebraFunction = function (dictHeytingAlgebra) {\n var ff1 = ff(dictHeytingAlgebra);\n var tt1 = tt(dictHeytingAlgebra);\n var implies1 = implies(dictHeytingAlgebra);\n var conj1 = conj(dictHeytingAlgebra);\n var disj1 = disj(dictHeytingAlgebra);\n var not1 = not(dictHeytingAlgebra);\n return {\n ff: function (v) {\n return ff1;\n },\n tt: function (v) {\n return tt1;\n },\n implies: function (f) {\n return function (g) {\n return function (a) {\n return implies1(f(a))(g(a));\n };\n };\n },\n conj: function (f) {\n return function (g) {\n return function (a) {\n return conj1(f(a))(g(a));\n };\n };\n },\n disj: function (f) {\n return function (g) {\n return function (a) {\n return disj1(f(a))(g(a));\n };\n };\n },\n not: function (f) {\n return function (a) {\n return not1(f(a));\n };\n }\n };\n};\nvar heytingAlgebraRecordCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function (dictHeytingAlgebraRecord) {\n var conjRecord1 = conjRecord(dictHeytingAlgebraRecord);\n var disjRecord1 = disjRecord(dictHeytingAlgebraRecord);\n var impliesRecord1 = impliesRecord(dictHeytingAlgebraRecord);\n var ffRecord1 = ffRecord(dictHeytingAlgebraRecord);\n var notRecord1 = notRecord(dictHeytingAlgebraRecord);\n var ttRecord1 = ttRecord(dictHeytingAlgebraRecord);\n return function (dictHeytingAlgebra) {\n var conj1 = conj(dictHeytingAlgebra);\n var disj1 = disj(dictHeytingAlgebra);\n var implies1 = implies(dictHeytingAlgebra);\n var ff1 = ff(dictHeytingAlgebra);\n var not1 = not(dictHeytingAlgebra);\n var tt1 = tt(dictHeytingAlgebra);\n return {\n conjRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = conjRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(conj1(get(ra))(get(rb)))(tail);\n };\n };\n },\n disjRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = disjRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(disj1(get(ra))(get(rb)))(tail);\n };\n };\n },\n impliesRecord: function (v) {\n return function (ra) {\n return function (rb) {\n var tail = impliesRecord1(Type_Proxy[\"Proxy\"].value)(ra)(rb);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(implies1(get(ra))(get(rb)))(tail);\n };\n };\n },\n ffRecord: function (v) {\n return function (row) {\n var tail = ffRecord1(Type_Proxy[\"Proxy\"].value)(row);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(ff1)(tail);\n };\n },\n notRecord: function (v) {\n return function (row) {\n var tail = notRecord1(Type_Proxy[\"Proxy\"].value)(row);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n var get = Record_Unsafe.unsafeGet(key);\n return insert(not1(get(row)))(tail);\n };\n },\n ttRecord: function (v) {\n return function (row) {\n var tail = ttRecord1(Type_Proxy[\"Proxy\"].value)(row);\n var key = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var insert = Record_Unsafe.unsafeSet(key);\n return insert(tt1)(tail);\n };\n }\n };\n };\n };\n };\n};\nexport {\n tt,\n ff,\n implies,\n conj,\n disj,\n not,\n ffRecord,\n ttRecord,\n impliesRecord,\n conjRecord,\n disjRecord,\n notRecord,\n heytingAlgebraBoolean,\n heytingAlgebraUnit,\n heytingAlgebraFunction,\n heytingAlgebraProxy,\n heytingAlgebraRecord,\n heytingAlgebraRecordNil,\n heytingAlgebraRecordCons\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Lazy from \"../Control.Lazy/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Generic_Rep from \"../Data.Generic.Rep/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar Tuple = /* #__PURE__ */ (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})();\nvar uncurry = function (f) {\n return function (v) {\n return f(v.value0)(v.value1);\n };\n};\nvar swap = function (v) {\n return new Tuple(v.value1, v.value0);\n};\nvar snd = function (v) {\n return v.value1;\n};\nvar showTuple = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return function (dictShow1) {\n var show1 = Data_Show.show(dictShow1);\n return {\n show: function (v) {\n return \"(Tuple \" + (show(v.value0) + (\" \" + (show1(v.value1) + \")\")));\n }\n };\n };\n};\nvar semiringTuple = function (dictSemiring) {\n var add = Data_Semiring.add(dictSemiring);\n var one = Data_Semiring.one(dictSemiring);\n var mul = Data_Semiring.mul(dictSemiring);\n var zero = Data_Semiring.zero(dictSemiring);\n return function (dictSemiring1) {\n var add1 = Data_Semiring.add(dictSemiring1);\n var mul1 = Data_Semiring.mul(dictSemiring1);\n return {\n add: function (v) {\n return function (v1) {\n return new Tuple(add(v.value0)(v1.value0), add1(v.value1)(v1.value1));\n };\n },\n one: new Tuple(one, Data_Semiring.one(dictSemiring1)),\n mul: function (v) {\n return function (v1) {\n return new Tuple(mul(v.value0)(v1.value0), mul1(v.value1)(v1.value1));\n };\n },\n zero: new Tuple(zero, Data_Semiring.zero(dictSemiring1))\n };\n };\n};\nvar semigroupoidTuple = {\n compose: function (v) {\n return function (v1) {\n return new Tuple(v1.value0, v.value1);\n };\n }\n};\nvar semigroupTuple = function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return function (dictSemigroup1) {\n var append2 = Data_Semigroup.append(dictSemigroup1);\n return {\n append: function (v) {\n return function (v1) {\n return new Tuple(append1(v.value0)(v1.value0), append2(v.value1)(v1.value1));\n };\n }\n };\n };\n};\nvar ringTuple = function (dictRing) {\n var sub = Data_Ring.sub(dictRing);\n var semiringTuple1 = semiringTuple(dictRing.Semiring0());\n return function (dictRing1) {\n var sub1 = Data_Ring.sub(dictRing1);\n var semiringTuple2 = semiringTuple1(dictRing1.Semiring0());\n return {\n sub: function (v) {\n return function (v1) {\n return new Tuple(sub(v.value0)(v1.value0), sub1(v.value1)(v1.value1));\n };\n },\n Semiring0: function () {\n return semiringTuple2;\n }\n };\n };\n};\nvar monoidTuple = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var semigroupTuple1 = semigroupTuple(dictMonoid.Semigroup0());\n return function (dictMonoid1) {\n var semigroupTuple2 = semigroupTuple1(dictMonoid1.Semigroup0());\n return {\n mempty: new Tuple(mempty, Data_Monoid.mempty(dictMonoid1)),\n Semigroup0: function () {\n return semigroupTuple2;\n }\n };\n };\n};\nvar heytingAlgebraTuple = function (dictHeytingAlgebra) {\n var tt = Data_HeytingAlgebra.tt(dictHeytingAlgebra);\n var ff = Data_HeytingAlgebra.ff(dictHeytingAlgebra);\n var implies = Data_HeytingAlgebra.implies(dictHeytingAlgebra);\n var conj1 = Data_HeytingAlgebra.conj(dictHeytingAlgebra);\n var disj = Data_HeytingAlgebra.disj(dictHeytingAlgebra);\n var not = Data_HeytingAlgebra.not(dictHeytingAlgebra);\n return function (dictHeytingAlgebra1) {\n var implies1 = Data_HeytingAlgebra.implies(dictHeytingAlgebra1);\n var conj2 = Data_HeytingAlgebra.conj(dictHeytingAlgebra1);\n var disj1 = Data_HeytingAlgebra.disj(dictHeytingAlgebra1);\n var not1 = Data_HeytingAlgebra.not(dictHeytingAlgebra1);\n return {\n tt: new Tuple(tt, Data_HeytingAlgebra.tt(dictHeytingAlgebra1)),\n ff: new Tuple(ff, Data_HeytingAlgebra.ff(dictHeytingAlgebra1)),\n implies: function (v) {\n return function (v1) {\n return new Tuple(implies(v.value0)(v1.value0), implies1(v.value1)(v1.value1));\n };\n },\n conj: function (v) {\n return function (v1) {\n return new Tuple(conj1(v.value0)(v1.value0), conj2(v.value1)(v1.value1));\n };\n },\n disj: function (v) {\n return function (v1) {\n return new Tuple(disj(v.value0)(v1.value0), disj1(v.value1)(v1.value1));\n };\n },\n not: function (v) {\n return new Tuple(not(v.value0), not1(v.value1));\n }\n };\n };\n};\nvar genericTuple = {\n to: function (x) {\n return new Tuple(x.value0, x.value1);\n },\n from: function (x) {\n return new Data_Generic_Rep.Product(x.value0, x.value1);\n }\n};\nvar functorTuple = {\n map: function (f) {\n return function (m) {\n return new Tuple(m.value0, f(m.value1));\n };\n }\n};\nvar invariantTuple = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorTuple)\n};\nvar fst = function (v) {\n return v.value0;\n};\nvar lazyTuple = function (dictLazy) {\n var defer = Control_Lazy.defer(dictLazy);\n return function (dictLazy1) {\n var defer1 = Control_Lazy.defer(dictLazy1);\n return {\n defer: function (f) {\n return new Tuple(defer(function (v) {\n return fst(f(Data_Unit.unit));\n }), defer1(function (v) {\n return snd(f(Data_Unit.unit));\n }));\n }\n };\n };\n};\nvar extendTuple = {\n extend: function (f) {\n return function (v) {\n return new Tuple(v.value0, f(v));\n };\n },\n Functor0: function () {\n return functorTuple;\n }\n};\nvar eqTuple = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function (dictEq1) {\n var eq1 = Data_Eq.eq(dictEq1);\n return {\n eq: function (x) {\n return function (y) {\n return eq(x.value0)(y.value0) && eq1(x.value1)(y.value1);\n };\n }\n };\n };\n};\nvar ordTuple = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n var eqTuple1 = eqTuple(dictOrd.Eq0());\n return function (dictOrd1) {\n var compare1 = Data_Ord.compare(dictOrd1);\n var eqTuple2 = eqTuple1(dictOrd1.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n var v = compare(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 compare1(x.value1)(y.value1);\n };\n },\n Eq0: function () {\n return eqTuple2;\n }\n };\n };\n};\nvar eq1Tuple = function (dictEq) {\n var eqTuple1 = eqTuple(dictEq);\n return {\n eq1: function (dictEq1) {\n return Data_Eq.eq(eqTuple1(dictEq1));\n }\n };\n};\nvar ord1Tuple = function (dictOrd) {\n var ordTuple1 = ordTuple(dictOrd);\n var eq1Tuple1 = eq1Tuple(dictOrd.Eq0());\n return {\n compare1: function (dictOrd1) {\n return Data_Ord.compare(ordTuple1(dictOrd1));\n },\n Eq10: function () {\n return eq1Tuple1;\n }\n };\n};\nvar curry = function (f) {\n return function (a) {\n return function (b) {\n return f(new Tuple(a, b));\n };\n };\n};\nvar comonadTuple = {\n extract: snd,\n Extend0: function () {\n return extendTuple;\n }\n};\nvar commutativeRingTuple = function (dictCommutativeRing) {\n var ringTuple1 = ringTuple(dictCommutativeRing.Ring0());\n return function (dictCommutativeRing1) {\n var ringTuple2 = ringTuple1(dictCommutativeRing1.Ring0());\n return {\n Ring0: function () {\n return ringTuple2;\n }\n };\n };\n};\nvar boundedTuple = function (dictBounded) {\n var top = Data_Bounded.top(dictBounded);\n var bottom = Data_Bounded.bottom(dictBounded);\n var ordTuple1 = ordTuple(dictBounded.Ord0());\n return function (dictBounded1) {\n var ordTuple2 = ordTuple1(dictBounded1.Ord0());\n return {\n top: new Tuple(top, Data_Bounded.top(dictBounded1)),\n bottom: new Tuple(bottom, Data_Bounded.bottom(dictBounded1)),\n Ord0: function () {\n return ordTuple2;\n }\n };\n };\n};\nvar booleanAlgebraTuple = function (dictBooleanAlgebra) {\n var heytingAlgebraTuple1 = heytingAlgebraTuple(dictBooleanAlgebra.HeytingAlgebra0());\n return function (dictBooleanAlgebra1) {\n var heytingAlgebraTuple2 = heytingAlgebraTuple1(dictBooleanAlgebra1.HeytingAlgebra0());\n return {\n HeytingAlgebra0: function () {\n return heytingAlgebraTuple2;\n }\n };\n };\n};\nvar applyTuple = function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return {\n apply: function (v) {\n return function (v1) {\n return new Tuple(append1(v.value0)(v1.value0), v.value1(v1.value1));\n };\n },\n Functor0: function () {\n return functorTuple;\n }\n };\n};\nvar bindTuple = function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n var applyTuple1 = applyTuple(dictSemigroup);\n return {\n bind: function (v) {\n return function (f) {\n var v1 = f(v.value1);\n return new Tuple(append1(v.value0)(v1.value0), v1.value1);\n };\n },\n Apply0: function () {\n return applyTuple1;\n }\n };\n};\nvar applicativeTuple = function (dictMonoid) {\n var applyTuple1 = applyTuple(dictMonoid.Semigroup0());\n return {\n pure: Tuple.create(Data_Monoid.mempty(dictMonoid)),\n Apply0: function () {\n return applyTuple1;\n }\n };\n};\nvar monadTuple = function (dictMonoid) {\n var applicativeTuple1 = applicativeTuple(dictMonoid);\n var bindTuple1 = bindTuple(dictMonoid.Semigroup0());\n return {\n Applicative0: function () {\n return applicativeTuple1;\n },\n Bind1: function () {\n return bindTuple1;\n }\n };\n};\nexport {\n Tuple,\n fst,\n snd,\n curry,\n uncurry,\n swap,\n showTuple,\n eqTuple,\n eq1Tuple,\n ordTuple,\n ord1Tuple,\n boundedTuple,\n semigroupoidTuple,\n semigroupTuple,\n monoidTuple,\n semiringTuple,\n ringTuple,\n commutativeRingTuple,\n heytingAlgebraTuple,\n booleanAlgebraTuple,\n functorTuple,\n genericTuple,\n invariantTuple,\n applyTuple,\n applicativeTuple,\n bindTuple,\n monadTuple,\n extendTuple,\n comonadTuple,\n lazyTuple\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar state = function (dict) {\n return dict.state;\n};\nvar put = function (dictMonadState) {\n var state1 = state(dictMonadState);\n return function (s) {\n return state1(function (v) {\n return new Data_Tuple.Tuple(Data_Unit.unit, s);\n });\n };\n};\nvar modify_ = function (dictMonadState) {\n var state1 = state(dictMonadState);\n return function (f) {\n return state1(function (s) {\n return new Data_Tuple.Tuple(Data_Unit.unit, f(s));\n });\n };\n};\nvar modify = function (dictMonadState) {\n var state1 = state(dictMonadState);\n return function (f) {\n return state1(function (s) {\n var s$prime = f(s);\n return new Data_Tuple.Tuple(s$prime, s$prime);\n });\n };\n};\nvar gets = function (dictMonadState) {\n var state1 = state(dictMonadState);\n return function (f) {\n return state1(function (s) {\n return new Data_Tuple.Tuple(f(s), s);\n });\n };\n};\nvar get = function (dictMonadState) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(s, s);\n });\n};\nexport {\n state,\n get,\n gets,\n put,\n modify,\n modify_\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nvar monadEffectEffect = {\n liftEffect: /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn),\n Monad0: function () {\n return Effect.monadEffect;\n }\n};\nvar liftEffect = function (dict) {\n return dict.liftEffect;\n};\nexport {\n liftEffect,\n monadEffectEffect\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Cont_Class from \"../Control.Monad.Cont.Class/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Reader_Class from \"../Control.Monad.Reader.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Control_Monad_Writer_Class from \"../Control.Monad.Writer.Class/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Either.functorEither);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar ExceptT = function (x) {\n return x;\n};\nvar withExceptT = function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return function (f) {\n return function (v) {\n var mapLeft = function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Either.Right) {\n return new Data_Either.Right(v2.value0);\n };\n if (v2 instanceof Data_Either.Left) {\n return new Data_Either.Left(v1(v2.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 42, column 3 - line 42, column 32): \" + [ v1.constructor.name, v2.constructor.name ]);\n };\n };\n return map1(mapLeft(f))(v);\n };\n };\n};\nvar runExceptT = function (v) {\n return v;\n};\nvar newtypeExceptT = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monadTransExceptT = {\n lift: function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return function (m) {\n return bind(m)(function (a) {\n return pure(new Data_Either.Right(a));\n });\n };\n }\n};\nvar lift = /* #__PURE__ */ Control_Monad_Trans_Class.lift(monadTransExceptT);\nvar mapExceptT = function (f) {\n return function (v) {\n return f(v);\n };\n};\nvar functorExceptT = function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return {\n map: function (f) {\n return mapExceptT(map1(map(f)));\n }\n };\n};\nvar except = function (dictApplicative) {\n var $185 = Control_Applicative.pure(dictApplicative);\n return function ($186) {\n return ExceptT($185($186));\n };\n};\nvar monadExceptT = function (dictMonad) {\n return {\n Applicative0: function () {\n return applicativeExceptT(dictMonad);\n },\n Bind1: function () {\n return bindExceptT(dictMonad);\n }\n };\n};\nvar bindExceptT = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return {\n bind: function (v) {\n return function (k) {\n return bind(v)(Data_Either.either(function ($187) {\n return pure(Data_Either.Left.create($187));\n })(function (a) {\n var v1 = k(a);\n return v1;\n }));\n };\n },\n Apply0: function () {\n return applyExceptT(dictMonad);\n }\n };\n};\nvar applyExceptT = function (dictMonad) {\n var functorExceptT1 = functorExceptT(((dictMonad.Bind1()).Apply0()).Functor0());\n return {\n apply: Control_Monad.ap(monadExceptT(dictMonad)),\n Functor0: function () {\n return functorExceptT1;\n }\n };\n};\nvar applicativeExceptT = function (dictMonad) {\n return {\n pure: (function () {\n var $188 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($189) {\n return ExceptT($188(Data_Either.Right.create($189)));\n };\n })(),\n Apply0: function () {\n return applyExceptT(dictMonad);\n }\n };\n};\nvar semigroupExceptT = function (dictMonad) {\n var lift2 = Control_Apply.lift2(applyExceptT(dictMonad));\n return function (dictSemigroup) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup))\n };\n };\n};\nvar monadAskExceptT = function (dictMonadAsk) {\n var Monad0 = dictMonadAsk.Monad0();\n var monadExceptT1 = monadExceptT(Monad0);\n return {\n ask: lift(Monad0)(Control_Monad_Reader_Class.ask(dictMonadAsk)),\n Monad0: function () {\n return monadExceptT1;\n }\n };\n};\nvar monadReaderExceptT = function (dictMonadReader) {\n var local = Control_Monad_Reader_Class.local(dictMonadReader);\n var monadAskExceptT1 = monadAskExceptT(dictMonadReader.MonadAsk0());\n return {\n local: function (f) {\n return mapExceptT(local(f));\n },\n MonadAsk0: function () {\n return monadAskExceptT1;\n }\n };\n};\nvar monadContExceptT = function (dictMonadCont) {\n var callCC = Control_Monad_Cont_Class.callCC(dictMonadCont);\n var monadExceptT1 = monadExceptT(dictMonadCont.Monad0());\n return {\n callCC: function (f) {\n return callCC(function (c) {\n var v = f(function (a) {\n return c(new Data_Either.Right(a));\n });\n return v;\n });\n },\n Monad0: function () {\n return monadExceptT1;\n }\n };\n};\nvar monadEffectExceptT = function (dictMonadEffect) {\n var Monad0 = dictMonadEffect.Monad0();\n var monadExceptT1 = monadExceptT(Monad0);\n return {\n liftEffect: (function () {\n var $190 = lift(Monad0);\n var $191 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($192) {\n return $190($191($192));\n };\n })(),\n Monad0: function () {\n return monadExceptT1;\n }\n };\n};\nvar monadRecExceptT = function (dictMonadRec) {\n var tailRecM = Control_Monad_Rec_Class.tailRecM(dictMonadRec);\n var Monad0 = dictMonadRec.Monad0();\n var bind = Control_Bind.bind(Monad0.Bind1());\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n var monadExceptT1 = monadExceptT(Monad0);\n return {\n tailRecM: function (f) {\n var $193 = tailRecM(function (a) {\n var v = f(a);\n return bind(v)(function (m$prime) {\n return pure((function () {\n if (m$prime instanceof Data_Either.Left) {\n return new Control_Monad_Rec_Class.Done(new Data_Either.Left(m$prime.value0));\n };\n if (m$prime instanceof Data_Either.Right && m$prime.value0 instanceof Control_Monad_Rec_Class.Loop) {\n return new Control_Monad_Rec_Class.Loop(m$prime.value0.value0);\n };\n if (m$prime instanceof Data_Either.Right && m$prime.value0 instanceof Control_Monad_Rec_Class.Done) {\n return new Control_Monad_Rec_Class.Done(new Data_Either.Right(m$prime.value0.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 74, column 14 - line 77, column 43): \" + [ m$prime.constructor.name ]);\n })());\n });\n });\n return function ($194) {\n return ExceptT($193($194));\n };\n },\n Monad0: function () {\n return monadExceptT1;\n }\n };\n};\nvar monadStateExceptT = function (dictMonadState) {\n var Monad0 = dictMonadState.Monad0();\n var lift1 = lift(Monad0);\n var state = Control_Monad_State_Class.state(dictMonadState);\n var monadExceptT1 = monadExceptT(Monad0);\n return {\n state: function (f) {\n return lift1(state(f));\n },\n Monad0: function () {\n return monadExceptT1;\n }\n };\n};\nvar monadTellExceptT = function (dictMonadTell) {\n var Monad1 = dictMonadTell.Monad1();\n var Semigroup0 = dictMonadTell.Semigroup0();\n var monadExceptT1 = monadExceptT(Monad1);\n return {\n tell: (function () {\n var $195 = lift(Monad1);\n var $196 = Control_Monad_Writer_Class.tell(dictMonadTell);\n return function ($197) {\n return $195($196($197));\n };\n })(),\n Semigroup0: function () {\n return Semigroup0;\n },\n Monad1: function () {\n return monadExceptT1;\n }\n };\n};\nvar monadWriterExceptT = function (dictMonadWriter) {\n var MonadTell1 = dictMonadWriter.MonadTell1();\n var Monad1 = MonadTell1.Monad1();\n var bind = Control_Bind.bind(Monad1.Bind1());\n var listen = Control_Monad_Writer_Class.listen(dictMonadWriter);\n var pure = Control_Applicative.pure(Monad1.Applicative0());\n var pass = Control_Monad_Writer_Class.pass(dictMonadWriter);\n var Monoid0 = dictMonadWriter.Monoid0();\n var monadTellExceptT1 = monadTellExceptT(MonadTell1);\n return {\n listen: mapExceptT(function (m) {\n return bind(listen(m))(function (v) {\n return pure(map(function (r) {\n return new Data_Tuple.Tuple(r, v.value1);\n })(v.value0));\n });\n }),\n pass: mapExceptT(function (m) {\n return pass(bind(m)(function (a) {\n return pure((function () {\n if (a instanceof Data_Either.Left) {\n return new Data_Tuple.Tuple(new Data_Either.Left(a.value0), identity);\n };\n if (a instanceof Data_Either.Right) {\n return new Data_Tuple.Tuple(new Data_Either.Right(a.value0.value0), a.value0.value1);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 134, column 10 - line 136, column 45): \" + [ a.constructor.name ]);\n })());\n }));\n }),\n Monoid0: function () {\n return Monoid0;\n },\n MonadTell1: function () {\n return monadTellExceptT1;\n }\n };\n};\nvar monadThrowExceptT = function (dictMonad) {\n var monadExceptT1 = monadExceptT(dictMonad);\n return {\n throwError: (function () {\n var $198 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($199) {\n return ExceptT($198(Data_Either.Left.create($199)));\n };\n })(),\n Monad0: function () {\n return monadExceptT1;\n }\n };\n};\nvar monadErrorExceptT = function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n var monadThrowExceptT1 = monadThrowExceptT(dictMonad);\n return {\n catchError: function (v) {\n return function (k) {\n return bind(v)(Data_Either.either(function (a) {\n var v1 = k(a);\n return v1;\n })(function ($200) {\n return pure(Data_Either.Right.create($200));\n }));\n };\n },\n MonadThrow0: function () {\n return monadThrowExceptT1;\n }\n };\n};\nvar monoidExceptT = function (dictMonad) {\n var pure = Control_Applicative.pure(applicativeExceptT(dictMonad));\n var semigroupExceptT1 = semigroupExceptT(dictMonad);\n return function (dictMonoid) {\n var semigroupExceptT2 = semigroupExceptT1(dictMonoid.Semigroup0());\n return {\n mempty: pure(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupExceptT2;\n }\n };\n };\n};\nvar altExceptT = function (dictSemigroup) {\n var append = Data_Semigroup.append(dictSemigroup);\n return function (dictMonad) {\n var Bind1 = dictMonad.Bind1();\n var bind = Control_Bind.bind(Bind1);\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n var functorExceptT1 = functorExceptT((Bind1.Apply0()).Functor0());\n return {\n alt: function (v) {\n return function (v1) {\n return bind(v)(function (rm) {\n if (rm instanceof Data_Either.Right) {\n return pure(new Data_Either.Right(rm.value0));\n };\n if (rm instanceof Data_Either.Left) {\n return bind(v1)(function (rn) {\n if (rn instanceof Data_Either.Right) {\n return pure(new Data_Either.Right(rn.value0));\n };\n if (rn instanceof Data_Either.Left) {\n return pure(new Data_Either.Left(append(rm.value0)(rn.value0)));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 86, column 9 - line 88, column 49): \" + [ rn.constructor.name ]);\n });\n };\n throw new Error(\"Failed pattern match at Control.Monad.Except.Trans (line 82, column 5 - line 88, column 49): \" + [ rm.constructor.name ]);\n });\n };\n },\n Functor0: function () {\n return functorExceptT1;\n }\n };\n };\n};\nvar plusExceptT = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var altExceptT1 = altExceptT(dictMonoid.Semigroup0());\n return function (dictMonad) {\n var altExceptT2 = altExceptT1(dictMonad);\n return {\n empty: Control_Monad_Error_Class.throwError(monadThrowExceptT(dictMonad))(mempty),\n Alt0: function () {\n return altExceptT2;\n }\n };\n };\n};\nvar alternativeExceptT = function (dictMonoid) {\n var plusExceptT1 = plusExceptT(dictMonoid);\n return function (dictMonad) {\n var applicativeExceptT1 = applicativeExceptT(dictMonad);\n var plusExceptT2 = plusExceptT1(dictMonad);\n return {\n Applicative0: function () {\n return applicativeExceptT1;\n },\n Plus1: function () {\n return plusExceptT2;\n }\n };\n };\n};\nvar monadPlusExceptT = function (dictMonoid) {\n var alternativeExceptT1 = alternativeExceptT(dictMonoid);\n return function (dictMonad) {\n var monadExceptT1 = monadExceptT(dictMonad);\n var alternativeExceptT2 = alternativeExceptT1(dictMonad);\n return {\n Monad0: function () {\n return monadExceptT1;\n },\n Alternative1: function () {\n return alternativeExceptT2;\n }\n };\n };\n};\nexport {\n ExceptT,\n runExceptT,\n withExceptT,\n mapExceptT,\n except,\n newtypeExceptT,\n functorExceptT,\n applyExceptT,\n applicativeExceptT,\n bindExceptT,\n monadExceptT,\n monadRecExceptT,\n altExceptT,\n plusExceptT,\n alternativeExceptT,\n monadPlusExceptT,\n monadTransExceptT,\n monadEffectExceptT,\n monadContExceptT,\n monadThrowExceptT,\n monadErrorExceptT,\n monadAskExceptT,\n monadReaderExceptT,\n monadStateExceptT,\n monadTellExceptT,\n monadWriterExceptT,\n semigroupExceptT,\n monoidExceptT\n};\nexport {\n catchError,\n throwError\n} from \"../Control.Monad.Error.Class/index.js\";\nexport {\n lift\n} from \"../Control.Monad.Trans.Class/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar withExcept = /* #__PURE__ */ Control_Monad_Except_Trans.withExceptT(Data_Identity.functorIdentity);\nvar runExcept = function ($3) {\n return unwrap(Control_Monad_Except_Trans.runExceptT($3));\n};\nvar mapExcept = function (f) {\n return Control_Monad_Except_Trans.mapExceptT(function ($4) {\n return Data_Identity.Identity(f(unwrap($4)));\n });\n};\nexport {\n runExcept,\n mapExcept,\n withExcept\n};\nexport {\n catchError,\n catchJust,\n throwError\n} from \"../Control.Monad.Error.Class/index.js\";\nexport {\n ExceptT,\n except,\n lift,\n mapExceptT,\n runExceptT,\n withExceptT\n} from \"../Control.Monad.Except.Trans/index.js\";\n", "/* eslint-disable no-eq-null, eqeqeq */\nfunction id(x) {\n return x;\n}\n\nexport {id as fromBoolean};\nexport {id as fromNumber};\nexport {id as fromString};\nexport {id as fromArray};\nexport {id as fromObject};\nexport const jsonNull = null;\n\nexport function stringify(j) {\n return JSON.stringify(j);\n}\n\nexport function stringifyWithIndent(i) {\n return function (j) {\n return JSON.stringify(j, null, i);\n };\n}\n\nfunction isArray(a) {\n return Object.prototype.toString.call(a) === \"[object Array]\";\n}\n\nexport function _caseJson(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\nexport 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", "export function _copyST(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\nexport const empty = {};\n\nexport function runST(f) {\n return f();\n}\n\nexport function _fmapObject(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\nexport function _mapWithKey(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\nexport function _foldM(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\nexport function _foldSCObject(m, z, f, fromMaybe) {\n var acc = z;\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n var maybeR = f(acc)(k)(m[k]);\n var r = fromMaybe(null)(maybeR);\n if (r === null) return acc;\n else acc = r;\n }\n }\n return acc;\n}\n\nexport function all(f) {\n return function (m) {\n for (var k in m) {\n if (hasOwnProperty.call(m, k) && !f(k)(m[k])) return false;\n }\n return true;\n };\n}\n\nexport function size(m) {\n var s = 0;\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n ++s;\n }\n }\n return s;\n}\n\nexport function _lookup(no, yes, k, m) {\n return k in m ? yes(m[k]) : no;\n}\n\nexport function _lookupST(no, yes, k, m) {\n return function () {\n return k in m ? yes(m[k]) : no;\n };\n}\n\nexport 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\nexport const keys = Object.keys || toArrayWithKey(function (k) {\n return function () { return k; };\n});\n", "//------------------------------------------------------------------------------\n// Array creation --------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const rangeImpl = function (start, end) {\n var step = start > end ? -1 : 1;\n var result = new Array(step * (end - start) + 1);\n var i = start, n = 0;\n while (i !== end) {\n result[n++] = i;\n i += step;\n }\n result[n] = i;\n return result;\n};\n\nvar replicateFill = function (count, value) {\n if (count < 1) {\n return [];\n }\n var result = new Array(count);\n return result.fill(value);\n};\n\nvar replicatePolyfill = function (count, value) {\n var result = [];\n var n = 0;\n for (var i = 0; i < count; i++) {\n result[n++] = value;\n }\n return result;\n};\n\n// In browsers that have Array.prototype.fill we use it, as it's faster.\nexport const replicateImpl = typeof Array.prototype.fill === \"function\" ? replicateFill : replicatePolyfill;\n\nexport const fromFoldableImpl = (function () {\n function Cons(head, tail) {\n this.head = head;\n this.tail = tail;\n }\n var emptyList = {};\n\n function curryCons(head) {\n return function (tail) {\n return new Cons(head, tail);\n };\n }\n\n function listToArray(list) {\n var result = [];\n var count = 0;\n var xs = list;\n while (xs !== emptyList) {\n result[count++] = xs.head;\n xs = xs.tail;\n }\n return result;\n }\n\n return function (foldr, xs) {\n return listToArray(foldr(curryCons)(emptyList)(xs));\n };\n})();\n\n//------------------------------------------------------------------------------\n// Array size ------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const length = function (xs) {\n return xs.length;\n};\n\n//------------------------------------------------------------------------------\n// Non-indexed reads -----------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const unconsImpl = function (empty, next, xs) {\n return xs.length === 0 ? empty({}) : next(xs[0])(xs.slice(1));\n};\n\n//------------------------------------------------------------------------------\n// Indexed operations ----------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const indexImpl = function (just, nothing, xs, i) {\n return i < 0 || i >= xs.length ? nothing : just(xs[i]);\n};\n\nexport const findMapImpl = function (nothing, isJust, f, xs) {\n for (var i = 0; i < xs.length; i++) {\n var result = f(xs[i]);\n if (isJust(result)) return result;\n }\n return nothing;\n};\n\nexport const findIndexImpl = function (just, nothing, f, 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\nexport const findLastIndexImpl = function (just, nothing, f, xs) {\n for (var i = xs.length - 1; i >= 0; i--) {\n if (f(xs[i])) return just(i);\n }\n return nothing;\n};\n\nexport const _insertAt = function (just, nothing, i, a, l) {\n if (i < 0 || i > l.length) return nothing;\n var l1 = l.slice();\n l1.splice(i, 0, a);\n return just(l1);\n};\n\nexport const _deleteAt = function (just, nothing, i, 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\nexport const _updateAt = function (just, nothing, i, a, l) {\n if (i < 0 || i >= l.length) return nothing;\n var l1 = l.slice();\n l1[i] = a;\n return just(l1);\n};\n\n//------------------------------------------------------------------------------\n// Transformations -------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const reverse = function (l) {\n return l.slice().reverse();\n};\n\nexport const concat = function (xss) {\n if (xss.length <= 10000) {\n // This method is faster, but it crashes on big arrays.\n // So we use it when can and fallback to simple variant otherwise.\n return Array.prototype.concat.apply([], xss);\n }\n\n var result = [];\n for (var i = 0, l = xss.length; i < l; i++) {\n var xs = xss[i];\n for (var j = 0, m = xs.length; j < m; j++) {\n result.push(xs[j]);\n }\n }\n return result;\n};\n\nexport const filterImpl = function (f, xs) {\n return xs.filter(f);\n};\n\nexport const partitionImpl = function (f, xs) {\n var yes = [];\n var no = [];\n for (var i = 0; i < xs.length; i++) {\n var x = xs[i];\n if (f(x))\n yes.push(x);\n else\n no.push(x);\n }\n return { yes: yes, no: no };\n};\n\nexport const scanlImpl = function (f, b, xs) {\n var len = xs.length;\n var acc = b;\n var out = new Array(len);\n for (var i = 0; i < len; i++) {\n acc = f(acc)(xs[i]);\n out[i] = acc;\n }\n return out;\n};\n\nexport const scanrImpl = function (f, b, xs) {\n var len = xs.length;\n var acc = b;\n var out = new Array(len);\n for (var i = len - 1; i >= 0; i--) {\n acc = f(xs[i])(acc);\n out[i] = acc;\n }\n return out;\n};\n\n//------------------------------------------------------------------------------\n// Sorting ---------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const sortByImpl = (function () {\n function mergeFromTo(compare, fromOrdering, xs1, xs2, from, to) {\n var mid;\n var i;\n var j;\n var k;\n var x;\n var y;\n var c;\n\n mid = from + ((to - from) >> 1);\n if (mid - from > 1) mergeFromTo(compare, fromOrdering, xs2, xs1, from, mid);\n if (to - mid > 1) mergeFromTo(compare, fromOrdering, xs2, xs1, mid, to);\n\n i = from;\n j = mid;\n k = from;\n while (i < mid && j < to) {\n x = xs2[i];\n y = xs2[j];\n c = fromOrdering(compare(x)(y));\n if (c > 0) {\n xs1[k++] = y;\n ++j;\n }\n else {\n xs1[k++] = x;\n ++i;\n }\n }\n while (i < mid) {\n xs1[k++] = xs2[i++];\n }\n while (j < to) {\n xs1[k++] = xs2[j++];\n }\n }\n\n return function (compare, fromOrdering, xs) {\n var out;\n\n if (xs.length < 2) return xs;\n\n out = xs.slice(0);\n mergeFromTo(compare, fromOrdering, out, xs.slice(0), 0, xs.length);\n\n return out;\n };\n})();\n\n//------------------------------------------------------------------------------\n// Subarrays -------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const sliceImpl = function (s, e, l) {\n return l.slice(s, e);\n};\n\n//------------------------------------------------------------------------------\n// Zipping ---------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const zipWithImpl = function (f, xs, ys) {\n var l = xs.length < ys.length ? xs.length : ys.length;\n var result = new Array(l);\n for (var i = 0; i < l; i++) {\n result[i] = f(xs[i])(ys[i]);\n }\n return result;\n};\n\n//------------------------------------------------------------------------------\n// Folding ---------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const anyImpl = function (p, xs) {\n var len = xs.length;\n for (var i = 0; i < len; i++) {\n if (p(xs[i])) return true;\n }\n return false;\n};\n\nexport const allImpl = function (p, xs) {\n var len = xs.length;\n for (var i = 0; i < len; i++) {\n if (!p(xs[i])) return false;\n }\n return true;\n};\n\n//------------------------------------------------------------------------------\n// Partial ---------------------------------------------------------------------\n//------------------------------------------------------------------------------\n\nexport const unsafeIndexImpl = function (xs, n) {\n return xs[n];\n};\n", "function newSTArray() {\n return [];\n}\nexport { newSTArray as new };\n\nexport const peekImpl = function (just, nothing, i, xs) {\n return i >= 0 && i < xs.length ? just(xs[i]) : nothing;\n};\n\nexport const pokeImpl = function (i, a, xs) {\n var ret = i >= 0 && i < xs.length;\n if (ret) xs[i] = a;\n return ret;\n};\n\nexport const lengthImpl = function (xs) {\n return xs.length;\n};\n\nexport const popImpl = function (just, nothing, xs) {\n return xs.length > 0 ? just(xs.pop()) : nothing;\n};\n\nexport const pushAllImpl = function (as, xs) {\n return xs.push.apply(xs, as);\n};\n\nexport const shiftImpl = function (just, nothing, xs) {\n return xs.length > 0 ? just(xs.shift()) : nothing;\n};\n\nexport const unshiftAllImpl = function (as, xs) {\n return xs.unshift.apply(xs, as);\n};\n\nexport const spliceImpl = function (i, howMany, bs, xs) {\n return xs.splice.apply(xs, [i, howMany].concat(bs));\n};\n\nfunction unsafeFreezeThawImpl(xs) {\n return xs;\n}\n\nexport const unsafeFreezeImpl = unsafeFreezeThawImpl;\n\nexport const unsafeThawImpl = unsafeFreezeThawImpl;\n\nfunction copyImpl(xs) {\n return xs.slice();\n}\n\nexport const freezeImpl = copyImpl;\n\nexport const thawImpl = copyImpl;\n\nexport const cloneImpl = copyImpl;\n\nexport const sortByImpl = (function () {\n function mergeFromTo(compare, fromOrdering, xs1, xs2, from, to) {\n var mid;\n var i;\n var j;\n var k;\n var x;\n var y;\n var c;\n\n mid = from + ((to - from) >> 1);\n if (mid - from > 1) mergeFromTo(compare, fromOrdering, xs2, xs1, from, mid);\n if (to - mid > 1) mergeFromTo(compare, fromOrdering, xs2, xs1, mid, to);\n\n i = from;\n j = mid;\n k = from;\n while (i < mid && j < to) {\n x = xs2[i];\n y = xs2[j];\n c = fromOrdering(compare(x)(y));\n if (c > 0) {\n xs1[k++] = y;\n ++j;\n } else {\n xs1[k++] = x;\n ++i;\n }\n }\n while (i < mid) {\n xs1[k++] = xs2[i++];\n }\n while (j < to) {\n xs1[k++] = xs2[j++];\n }\n }\n\n return function (compare, fromOrdering, xs) {\n if (xs.length < 2) return xs;\n\n mergeFromTo(compare, fromOrdering, xs, xs.slice(0), 0, xs.length);\n\n return xs;\n };\n})();\n\nexport const toAssocArrayImpl = function (xs) {\n var n = xs.length;\n var as = new Array(n);\n for (var i = 0; i < n; i++) as[i] = { value: xs[i], index: i };\n return as;\n};\n\nexport const pushImpl = function (a, xs) {\n return xs.push(a);\n};\n", "export const mkSTFn1 = function mkSTFn1(fn) {\n return function(x) {\n return fn(x)();\n };\n};\n \nexport const mkSTFn2 = function mkSTFn2(fn) {\n return function(a, b) {\n return fn(a)(b)();\n };\n};\n \nexport const mkSTFn3 = function mkSTFn3(fn) {\n return function(a, b, c) {\n return fn(a)(b)(c)();\n };\n};\n \nexport const mkSTFn4 = function mkSTFn4(fn) {\n return function(a, b, c, d) {\n return fn(a)(b)(c)(d)();\n };\n};\n \nexport const mkSTFn5 = function mkSTFn5(fn) {\n return function(a, b, c, d, e) {\n return fn(a)(b)(c)(d)(e)();\n };\n};\n \nexport const mkSTFn6 = function mkSTFn6(fn) {\n return function(a, b, c, d, e, f) {\n return fn(a)(b)(c)(d)(e)(f)();\n };\n};\n \nexport const mkSTFn7 = function mkSTFn7(fn) {\n return function(a, b, c, d, e, f, g) {\n return fn(a)(b)(c)(d)(e)(f)(g)();\n };\n};\n \nexport const mkSTFn8 = function mkSTFn8(fn) {\n return function(a, b, c, d, e, f, g, h) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)();\n };\n};\n \nexport const mkSTFn9 = function mkSTFn9(fn) {\n return function(a, b, c, d, e, f, g, h, i) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)(i)();\n };\n};\n \nexport const mkSTFn10 = function mkSTFn10(fn) {\n return function(a, b, c, d, e, f, g, h, i, j) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)();\n };\n};\n \nexport const runSTFn1 = function runSTFn1(fn) {\n return function(a) {\n return function() {\n return fn(a);\n };\n };\n};\n \nexport const runSTFn2 = function runSTFn2(fn) {\n return function(a) {\n return function(b) {\n return function() {\n return fn(a, b);\n };\n };\n };\n};\n \nexport const runSTFn3 = function runSTFn3(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function() {\n return fn(a, b, c);\n };\n };\n };\n };\n};\n \nexport const runSTFn4 = function runSTFn4(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function() {\n return fn(a, b, c, d);\n };\n };\n };\n };\n };\n};\n \nexport const runSTFn5 = function runSTFn5(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function() {\n return fn(a, b, c, d, e);\n };\n };\n };\n };\n };\n };\n};\n \nexport const runSTFn6 = function runSTFn6(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function() {\n return fn(a, b, c, d, e, f);\n };\n };\n };\n };\n };\n };\n };\n};\n \nexport const runSTFn7 = function runSTFn7(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function(g) {\n return function() {\n return fn(a, b, c, d, e, f, g);\n };\n };\n };\n };\n };\n };\n };\n };\n};\n \nexport const runSTFn8 = function runSTFn8(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function(g) {\n return function(h) {\n return function() {\n return fn(a, b, c, d, e, f, g, h);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};\n \nexport const runSTFn9 = function runSTFn9(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function(g) {\n return function(h) {\n return function(i) {\n return function() {\n return fn(a, b, c, d, e, f, g, h, i);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};\n \nexport const runSTFn10 = function runSTFn10(fn) {\n return function(a) {\n return function(b) {\n return function(c) {\n return function(d) {\n return function(e) {\n return function(f) {\n return function(g) {\n return function(h) {\n return function(i) {\n return function(j) {\n return function() {\n return fn(a, b, c, d, e, f, g, h, i, j);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_ST_Internal from \"../Control.Monad.ST.Internal/index.js\";\nimport * as Control_Monad_ST_Uncurried from \"../Control.Monad.ST.Uncurried/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar bind = /* #__PURE__ */ Control_Bind.bind(Control_Monad_ST_Internal.bindST);\nvar unshiftAll = /* #__PURE__ */ Control_Monad_ST_Uncurried.runSTFn2($foreign.unshiftAllImpl);\nvar unshift = function (a) {\n return Control_Monad_ST_Uncurried.runSTFn2($foreign.unshiftAllImpl)([ a ]);\n};\nvar unsafeThaw = /* #__PURE__ */ Control_Monad_ST_Uncurried.runSTFn1($foreign.unsafeThawImpl);\nvar unsafeFreeze = /* #__PURE__ */ Control_Monad_ST_Uncurried.runSTFn1($foreign.unsafeFreezeImpl);\nvar toAssocArray = /* #__PURE__ */ Control_Monad_ST_Uncurried.runSTFn1($foreign.toAssocArrayImpl);\nvar thaw = /* #__PURE__ */ Control_Monad_ST_Uncurried.runSTFn1($foreign.thawImpl);\nvar withArray = function (f) {\n return function (xs) {\n return function __do() {\n var result = thaw(xs)();\n f(result)();\n return unsafeFreeze(result)();\n };\n };\n};\nvar splice = /* #__PURE__ */ Control_Monad_ST_Uncurried.runSTFn4($foreign.spliceImpl);\nvar sortBy = function (comp) {\n return Control_Monad_ST_Uncurried.runSTFn3($foreign.sortByImpl)(comp)(function (v) {\n if (v instanceof Data_Ordering.GT) {\n return 1;\n };\n if (v instanceof Data_Ordering.EQ) {\n return 0;\n };\n if (v instanceof Data_Ordering.LT) {\n return -1 | 0;\n };\n throw new Error(\"Failed pattern match at Data.Array.ST (line 129, column 40 - line 132, column 11): \" + [ v.constructor.name ]);\n });\n};\nvar sortWith = function (dictOrd) {\n var comparing = Data_Ord.comparing(dictOrd);\n return function (f) {\n return sortBy(comparing(f));\n };\n};\nvar sort = function (dictOrd) {\n return sortBy(Data_Ord.compare(dictOrd));\n};\nvar shift = /* #__PURE__ */ (function () {\n return Control_Monad_ST_Uncurried.runSTFn3($foreign.shiftImpl)(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar run = function (st) {\n return bind(st)(unsafeFreeze)();\n};\nvar pushAll = /* #__PURE__ */ Control_Monad_ST_Uncurried.runSTFn2($foreign.pushAllImpl);\nvar push = /* #__PURE__ */ Control_Monad_ST_Uncurried.runSTFn2($foreign.pushImpl);\nvar pop = /* #__PURE__ */ (function () {\n return Control_Monad_ST_Uncurried.runSTFn3($foreign.popImpl)(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar poke = /* #__PURE__ */ Control_Monad_ST_Uncurried.runSTFn3($foreign.pokeImpl);\nvar peek = /* #__PURE__ */ (function () {\n return Control_Monad_ST_Uncurried.runSTFn4($foreign.peekImpl)(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar modify = function (i) {\n return function (f) {\n return function (xs) {\n return function __do() {\n var entry = peek(i)(xs)();\n if (entry instanceof Data_Maybe.Just) {\n return poke(i)(f(entry.value0))(xs)();\n };\n if (entry instanceof Data_Maybe.Nothing) {\n return false;\n };\n throw new Error(\"Failed pattern match at Data.Array.ST (line 234, column 3 - line 236, column 26): \" + [ entry.constructor.name ]);\n };\n };\n };\n};\nvar length = /* #__PURE__ */ Control_Monad_ST_Uncurried.runSTFn1($foreign.lengthImpl);\nvar freeze = /* #__PURE__ */ Control_Monad_ST_Uncurried.runSTFn1($foreign.freezeImpl);\nvar clone = /* #__PURE__ */ Control_Monad_ST_Uncurried.runSTFn1($foreign.cloneImpl);\nexport {\n new\n} from \"./foreign.js\";\nexport {\n run,\n withArray,\n peek,\n poke,\n modify,\n length,\n pop,\n push,\n pushAll,\n shift,\n unshift,\n unshiftAll,\n splice,\n sort,\n sortBy,\n sortWith,\n freeze,\n thaw,\n clone,\n unsafeFreeze,\n unsafeThaw,\n toAssocArray\n};\n", "export const 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\nexport const 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", "// Generated by purs version 0.15.14\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nvar plusArray = {\n empty: [ ],\n Alt0: function () {\n return Control_Alt.altArray;\n }\n};\nvar empty = function (dict) {\n return dict.empty;\n};\nexport {\n empty,\n plusArray\n};\nexport {\n alt\n} from \"../Control.Alt/index.js\";\nexport {\n map,\n void\n} from \"../Data.Functor/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar bimap = function (dict) {\n return dict.bimap;\n};\nvar lmap = function (dictBifunctor) {\n var bimap1 = bimap(dictBifunctor);\n return function (f) {\n return bimap1(f)(identity);\n };\n};\nvar rmap = function (dictBifunctor) {\n return bimap(dictBifunctor)(identity);\n};\nvar bifunctorTuple = {\n bimap: function (f) {\n return function (g) {\n return function (v) {\n return new Data_Tuple.Tuple(f(v.value0), g(v.value1));\n };\n };\n }\n};\nvar 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};\nvar bifunctorConst = {\n bimap: function (f) {\n return function (v) {\n return function (v1) {\n return f(v1);\n };\n };\n }\n};\nexport {\n bimap,\n lmap,\n rmap,\n bifunctorEither,\n bifunctorTuple,\n bifunctorConst\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar Disj = function (x) {\n return x;\n};\nvar showDisj = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (v) {\n return \"(Disj \" + (show(v) + \")\");\n }\n };\n};\nvar semiringDisj = function (dictHeytingAlgebra) {\n var disj = Data_HeytingAlgebra.disj(dictHeytingAlgebra);\n var conj = Data_HeytingAlgebra.conj(dictHeytingAlgebra);\n return {\n zero: Data_HeytingAlgebra.ff(dictHeytingAlgebra),\n one: Data_HeytingAlgebra.tt(dictHeytingAlgebra),\n add: function (v) {\n return function (v1) {\n return disj(v)(v1);\n };\n },\n mul: function (v) {\n return function (v1) {\n return conj(v)(v1);\n };\n }\n };\n};\nvar semigroupDisj = function (dictHeytingAlgebra) {\n var disj = Data_HeytingAlgebra.disj(dictHeytingAlgebra);\n return {\n append: function (v) {\n return function (v1) {\n return disj(v)(v1);\n };\n }\n };\n};\nvar ordDisj = function (dictOrd) {\n return dictOrd;\n};\nvar monoidDisj = function (dictHeytingAlgebra) {\n var semigroupDisj1 = semigroupDisj(dictHeytingAlgebra);\n return {\n mempty: Data_HeytingAlgebra.ff(dictHeytingAlgebra),\n Semigroup0: function () {\n return semigroupDisj1;\n }\n };\n};\nvar functorDisj = {\n map: function (f) {\n return function (m) {\n return f(m);\n };\n }\n};\nvar eqDisj = function (dictEq) {\n return dictEq;\n};\nvar eq1Disj = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqDisj(dictEq));\n }\n};\nvar ord1Disj = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordDisj(dictOrd));\n },\n Eq10: function () {\n return eq1Disj;\n }\n};\nvar boundedDisj = function (dictBounded) {\n return dictBounded;\n};\nvar applyDisj = {\n apply: function (v) {\n return function (v1) {\n return v(v1);\n };\n },\n Functor0: function () {\n return functorDisj;\n }\n};\nvar bindDisj = {\n bind: function (v) {\n return function (f) {\n return f(v);\n };\n },\n Apply0: function () {\n return applyDisj;\n }\n};\nvar applicativeDisj = {\n pure: Disj,\n Apply0: function () {\n return applyDisj;\n }\n};\nvar monadDisj = {\n Applicative0: function () {\n return applicativeDisj;\n },\n Bind1: function () {\n return bindDisj;\n }\n};\nexport {\n Disj,\n eqDisj,\n eq1Disj,\n ordDisj,\n ord1Disj,\n boundedDisj,\n showDisj,\n functorDisj,\n applyDisj,\n applicativeDisj,\n bindDisj,\n monadDisj,\n semigroupDisj,\n monoidDisj,\n semiringDisj\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor_Coproduct from \"../Data.Functor.Coproduct/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Maybe_First from \"../Data.Maybe.First/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Monoid_Conj from \"../Data.Monoid.Conj/index.js\";\nimport * as Data_Monoid_Disj from \"../Data.Monoid.Disj/index.js\";\nimport * as Data_Monoid_Dual from \"../Data.Monoid.Dual/index.js\";\nimport * as Data_Monoid_Endo from \"../Data.Monoid.Endo/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar eq1 = /* #__PURE__ */ Data_Eq.eq(Data_Ordering.eqOrdering);\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar monoidEndo = /* #__PURE__ */ Data_Monoid_Endo.monoidEndo(Control_Category.categoryFn);\nvar monoidDual = /* #__PURE__ */ Data_Monoid_Dual.monoidDual(monoidEndo);\nvar alaF = /* #__PURE__ */ Data_Newtype.alaF()()()();\nvar foldr = function (dict) {\n return dict.foldr;\n};\nvar indexr = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n return function (idx) {\n var go = function (a) {\n return function (cursor) {\n if (cursor.elem instanceof Data_Maybe.Just) {\n return cursor;\n };\n var $292 = cursor.pos === idx;\n if ($292) {\n return {\n elem: new Data_Maybe.Just(a),\n pos: cursor.pos\n };\n };\n return {\n pos: cursor.pos + 1 | 0,\n elem: cursor.elem\n };\n };\n };\n var $451 = foldr2(go)({\n elem: Data_Maybe.Nothing.value,\n pos: 0\n });\n return function ($452) {\n return (function (v) {\n return v.elem;\n })($451($452));\n };\n };\n};\nvar $$null = function (dictFoldable) {\n return foldr(dictFoldable)(function (v) {\n return function (v1) {\n return false;\n };\n })(true);\n};\nvar oneOf = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n return function (dictPlus) {\n return foldr2(Control_Alt.alt(dictPlus.Alt0()))(Control_Plus.empty(dictPlus));\n };\n};\nvar oneOfMap = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n return function (dictPlus) {\n var alt = Control_Alt.alt(dictPlus.Alt0());\n var empty = Control_Plus.empty(dictPlus);\n return function (f) {\n return foldr2(function ($453) {\n return alt(f($453));\n })(empty);\n };\n };\n};\nvar traverse_ = function (dictApplicative) {\n var applySecond = Control_Apply.applySecond(dictApplicative.Apply0());\n var pure = Control_Applicative.pure(dictApplicative);\n return function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n return function (f) {\n return foldr2(function ($454) {\n return applySecond(f($454));\n })(pure(Data_Unit.unit));\n };\n };\n};\nvar for_ = function (dictApplicative) {\n var traverse_1 = traverse_(dictApplicative);\n return function (dictFoldable) {\n return Data_Function.flip(traverse_1(dictFoldable));\n };\n};\nvar sequence_ = function (dictApplicative) {\n var traverse_1 = traverse_(dictApplicative);\n return function (dictFoldable) {\n return traverse_1(dictFoldable)(identity);\n };\n};\nvar foldl = function (dict) {\n return dict.foldl;\n};\nvar indexl = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (idx) {\n var go = function (cursor) {\n return function (a) {\n if (cursor.elem instanceof Data_Maybe.Just) {\n return cursor;\n };\n var $296 = cursor.pos === idx;\n if ($296) {\n return {\n elem: new Data_Maybe.Just(a),\n pos: cursor.pos\n };\n };\n return {\n pos: cursor.pos + 1 | 0,\n elem: cursor.elem\n };\n };\n };\n var $455 = foldl2(go)({\n elem: Data_Maybe.Nothing.value,\n pos: 0\n });\n return function ($456) {\n return (function (v) {\n return v.elem;\n })($455($456));\n };\n };\n};\nvar intercalate = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (dictMonoid) {\n var append = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (sep) {\n return function (xs) {\n var go = function (v) {\n return function (v1) {\n if (v.init) {\n return {\n init: false,\n acc: v1\n };\n };\n return {\n init: false,\n acc: append(v.acc)(append(sep)(v1))\n };\n };\n };\n return (foldl2(go)({\n init: true,\n acc: mempty\n })(xs)).acc;\n };\n };\n };\n};\nvar length = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (dictSemiring) {\n var add1 = Data_Semiring.add(dictSemiring);\n var one = Data_Semiring.one(dictSemiring);\n return foldl2(function (c) {\n return function (v) {\n return add1(one)(c);\n };\n })(Data_Semiring.zero(dictSemiring));\n };\n};\nvar maximumBy = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (cmp) {\n var max$prime = function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(v1);\n };\n if (v instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just((function () {\n var $303 = eq1(cmp(v.value0)(v1))(Data_Ordering.GT.value);\n if ($303) {\n return v.value0;\n };\n return v1;\n })());\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 441, column 3 - line 441, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n return foldl2(max$prime)(Data_Maybe.Nothing.value);\n };\n};\nvar maximum = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (dictFoldable) {\n return maximumBy(dictFoldable)(compare);\n };\n};\nvar minimumBy = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (cmp) {\n var min$prime = function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(v1);\n };\n if (v instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just((function () {\n var $307 = eq1(cmp(v.value0)(v1))(Data_Ordering.LT.value);\n if ($307) {\n return v.value0;\n };\n return v1;\n })());\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 454, column 3 - line 454, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n return foldl2(min$prime)(Data_Maybe.Nothing.value);\n };\n};\nvar minimum = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (dictFoldable) {\n return minimumBy(dictFoldable)(compare);\n };\n};\nvar product = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (dictSemiring) {\n return foldl2(Data_Semiring.mul(dictSemiring))(Data_Semiring.one(dictSemiring));\n };\n};\nvar sum = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (dictSemiring) {\n return foldl2(Data_Semiring.add(dictSemiring))(Data_Semiring.zero(dictSemiring));\n };\n};\nvar foldableTuple = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v.value1)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v.value1);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v.value1);\n };\n };\n }\n};\nvar foldableMultiplicative = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableMaybe = {\n foldr: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Maybe.Nothing) {\n return v1;\n };\n if (v2 instanceof Data_Maybe.Just) {\n return v(v2.value0)(v1);\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, v2.constructor.name ]);\n };\n };\n },\n foldl: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Maybe.Nothing) {\n return v1;\n };\n if (v2 instanceof Data_Maybe.Just) {\n return v(v1)(v2.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, v2.constructor.name ]);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return mempty;\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};\nvar foldr1 = /* #__PURE__ */ foldr(foldableMaybe);\nvar foldl1 = /* #__PURE__ */ foldl(foldableMaybe);\nvar foldableIdentity = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableEither = {\n foldr: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Either.Left) {\n return v1;\n };\n if (v2 instanceof Data_Either.Right) {\n return v(v2.value0)(v1);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 181, column 1 - line 187, column 28): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n },\n foldl: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_Either.Left) {\n return v1;\n };\n if (v2 instanceof Data_Either.Right) {\n return v(v1)(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 181, column 1 - line 187, column 28): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return mempty;\n };\n if (v1 instanceof Data_Either.Right) {\n return v(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 181, column 1 - line 187, column 28): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n }\n};\nvar foldableDual = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableDisj = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableConst = {\n foldr: function (v) {\n return function (z) {\n return function (v1) {\n return z;\n };\n };\n },\n foldl: function (v) {\n return function (z) {\n return function (v1) {\n return z;\n };\n };\n },\n foldMap: function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (v) {\n return function (v1) {\n return mempty;\n };\n };\n }\n};\nvar foldableConj = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldableAdditive = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return f(v)(z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return f(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n return function (f) {\n return function (v) {\n return f(v);\n };\n };\n }\n};\nvar foldMapDefaultR = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n return function (dictMonoid) {\n var append = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (f) {\n return foldr2(function (x) {\n return function (acc) {\n return append(f(x))(acc);\n };\n })(mempty);\n };\n };\n};\nvar foldableArray = {\n foldr: $foreign.foldrArray,\n foldl: $foreign.foldlArray,\n foldMap: function (dictMonoid) {\n return foldMapDefaultR(foldableArray)(dictMonoid);\n }\n};\nvar foldMapDefaultL = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (dictMonoid) {\n var append = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (f) {\n return foldl2(function (acc) {\n return function (x) {\n return append(acc)(f(x));\n };\n })(mempty);\n };\n };\n};\nvar foldMap = function (dict) {\n return dict.foldMap;\n};\nvar foldMap1 = /* #__PURE__ */ foldMap(foldableMaybe);\nvar foldableApp = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n var foldl2 = foldl(dictFoldable);\n var foldMap2 = foldMap(dictFoldable);\n return {\n foldr: function (f) {\n return function (i) {\n return function (v) {\n return foldr2(f)(i)(v);\n };\n };\n },\n foldl: function (f) {\n return function (i) {\n return function (v) {\n return foldl2(f)(i)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var foldMap3 = foldMap2(dictMonoid);\n return function (f) {\n return function (v) {\n return foldMap3(f)(v);\n };\n };\n }\n };\n};\nvar foldableCompose = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n var foldl2 = foldl(dictFoldable);\n var foldMap2 = foldMap(dictFoldable);\n return function (dictFoldable1) {\n var foldr3 = foldr(dictFoldable1);\n var foldl3 = foldl(dictFoldable1);\n var foldMap3 = foldMap(dictFoldable1);\n return {\n foldr: function (f) {\n return function (i) {\n return function (v) {\n return foldr2(Data_Function.flip(foldr3(f)))(i)(v);\n };\n };\n },\n foldl: function (f) {\n return function (i) {\n return function (v) {\n return foldl2(foldl3(f))(i)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var foldMap4 = foldMap2(dictMonoid);\n var foldMap5 = foldMap3(dictMonoid);\n return function (f) {\n return function (v) {\n return foldMap4(foldMap5(f))(v);\n };\n };\n }\n };\n };\n};\nvar foldableCoproduct = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n var foldl2 = foldl(dictFoldable);\n var foldMap2 = foldMap(dictFoldable);\n return function (dictFoldable1) {\n var foldr3 = foldr(dictFoldable1);\n var foldl3 = foldl(dictFoldable1);\n var foldMap3 = foldMap(dictFoldable1);\n return {\n foldr: function (f) {\n return function (z) {\n return Data_Functor_Coproduct.coproduct(foldr2(f)(z))(foldr3(f)(z));\n };\n },\n foldl: function (f) {\n return function (z) {\n return Data_Functor_Coproduct.coproduct(foldl2(f)(z))(foldl3(f)(z));\n };\n },\n foldMap: function (dictMonoid) {\n var foldMap4 = foldMap2(dictMonoid);\n var foldMap5 = foldMap3(dictMonoid);\n return function (f) {\n return Data_Functor_Coproduct.coproduct(foldMap4(f))(foldMap5(f));\n };\n }\n };\n };\n};\nvar foldableFirst = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return foldr1(f)(z)(v);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return foldl1(f)(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var foldMap2 = foldMap1(dictMonoid);\n return function (f) {\n return function (v) {\n return foldMap2(f)(v);\n };\n };\n }\n};\nvar foldableLast = {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return foldr1(f)(z)(v);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return foldl1(f)(z)(v);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var foldMap2 = foldMap1(dictMonoid);\n return function (f) {\n return function (v) {\n return foldMap2(f)(v);\n };\n };\n }\n};\nvar foldableProduct = function (dictFoldable) {\n var foldr2 = foldr(dictFoldable);\n var foldl2 = foldl(dictFoldable);\n var foldMap2 = foldMap(dictFoldable);\n return function (dictFoldable1) {\n var foldr3 = foldr(dictFoldable1);\n var foldl3 = foldl(dictFoldable1);\n var foldMap3 = foldMap(dictFoldable1);\n return {\n foldr: function (f) {\n return function (z) {\n return function (v) {\n return foldr2(f)(foldr3(f)(z)(v.value1))(v.value0);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n return function (v) {\n return foldl3(f)(foldl2(f)(z)(v.value0))(v.value1);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var append = Data_Semigroup.append(dictMonoid.Semigroup0());\n var foldMap4 = foldMap2(dictMonoid);\n var foldMap5 = foldMap3(dictMonoid);\n return function (f) {\n return function (v) {\n return append(foldMap4(f)(v.value0))(foldMap5(f)(v.value1));\n };\n };\n }\n };\n };\n};\nvar foldlDefault = function (dictFoldable) {\n var foldMap2 = foldMap(dictFoldable)(monoidDual);\n return function (c) {\n return function (u) {\n return function (xs) {\n return unwrap(unwrap(foldMap2((function () {\n var $457 = Data_Function.flip(c);\n return function ($458) {\n return Data_Monoid_Dual.Dual(Data_Monoid_Endo.Endo($457($458)));\n };\n })())(xs)))(u);\n };\n };\n };\n};\nvar foldrDefault = function (dictFoldable) {\n var foldMap2 = foldMap(dictFoldable)(monoidEndo);\n return function (c) {\n return function (u) {\n return function (xs) {\n return unwrap(foldMap2(function ($459) {\n return Data_Monoid_Endo.Endo(c($459));\n })(xs))(u);\n };\n };\n };\n};\nvar lookup = function (dictFoldable) {\n var foldMap2 = foldMap(dictFoldable)(Data_Maybe_First.monoidFirst);\n return function (dictEq) {\n var eq2 = Data_Eq.eq(dictEq);\n return function (a) {\n var $460 = foldMap2(function (v) {\n var $444 = eq2(a)(v.value0);\n if ($444) {\n return new Data_Maybe.Just(v.value1);\n };\n return Data_Maybe.Nothing.value;\n });\n return function ($461) {\n return unwrap($460($461));\n };\n };\n };\n};\nvar surroundMap = function (dictFoldable) {\n var foldMap2 = foldMap(dictFoldable)(monoidEndo);\n return function (dictSemigroup) {\n var append = Data_Semigroup.append(dictSemigroup);\n return function (d) {\n return function (t) {\n return function (f) {\n var joined = function (a) {\n return function (m) {\n return append(d)(append(t(a))(m));\n };\n };\n return unwrap(foldMap2(joined)(f))(d);\n };\n };\n };\n };\n};\nvar surround = function (dictFoldable) {\n var surroundMap1 = surroundMap(dictFoldable);\n return function (dictSemigroup) {\n var surroundMap2 = surroundMap1(dictSemigroup);\n return function (d) {\n return surroundMap2(d)(identity);\n };\n };\n};\nvar foldM = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (dictMonad) {\n var bind = Control_Bind.bind(dictMonad.Bind1());\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n return function (f) {\n return function (b0) {\n return foldl2(function (b) {\n return function (a) {\n return bind(b)(Data_Function.flip(f)(a));\n };\n })(pure(b0));\n };\n };\n };\n};\nvar fold = function (dictFoldable) {\n var foldMap2 = foldMap(dictFoldable);\n return function (dictMonoid) {\n return foldMap2(dictMonoid)(identity);\n };\n};\nvar findMap = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (p) {\n var go = function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing) {\n return p(v1);\n };\n return v;\n };\n };\n return foldl2(go)(Data_Maybe.Nothing.value);\n };\n};\nvar find = function (dictFoldable) {\n var foldl2 = foldl(dictFoldable);\n return function (p) {\n var go = function (v) {\n return function (v1) {\n if (v instanceof Data_Maybe.Nothing && p(v1)) {\n return new Data_Maybe.Just(v1);\n };\n return v;\n };\n };\n return foldl2(go)(Data_Maybe.Nothing.value);\n };\n};\nvar any = function (dictFoldable) {\n var foldMap2 = foldMap(dictFoldable);\n return function (dictHeytingAlgebra) {\n return alaF(Data_Monoid_Disj.Disj)(foldMap2(Data_Monoid_Disj.monoidDisj(dictHeytingAlgebra)));\n };\n};\nvar elem = function (dictFoldable) {\n var any1 = any(dictFoldable)(Data_HeytingAlgebra.heytingAlgebraBoolean);\n return function (dictEq) {\n var $462 = Data_Eq.eq(dictEq);\n return function ($463) {\n return any1($462($463));\n };\n };\n};\nvar notElem = function (dictFoldable) {\n var elem1 = elem(dictFoldable);\n return function (dictEq) {\n var elem2 = elem1(dictEq);\n return function (x) {\n var $464 = elem2(x);\n return function ($465) {\n return !$464($465);\n };\n };\n };\n};\nvar or = function (dictFoldable) {\n var any1 = any(dictFoldable);\n return function (dictHeytingAlgebra) {\n return any1(dictHeytingAlgebra)(identity);\n };\n};\nvar all = function (dictFoldable) {\n var foldMap2 = foldMap(dictFoldable);\n return function (dictHeytingAlgebra) {\n return alaF(Data_Monoid_Conj.Conj)(foldMap2(Data_Monoid_Conj.monoidConj(dictHeytingAlgebra)));\n };\n};\nvar and = function (dictFoldable) {\n var all1 = all(dictFoldable);\n return function (dictHeytingAlgebra) {\n return all1(dictHeytingAlgebra)(identity);\n };\n};\nexport {\n foldr,\n foldl,\n foldMap,\n foldrDefault,\n foldlDefault,\n foldMapDefaultL,\n foldMapDefaultR,\n fold,\n foldM,\n traverse_,\n for_,\n sequence_,\n oneOf,\n oneOfMap,\n intercalate,\n surroundMap,\n surround,\n and,\n or,\n all,\n any,\n sum,\n product,\n elem,\n notElem,\n indexl,\n indexr,\n find,\n findMap,\n maximum,\n maximumBy,\n minimum,\n minimumBy,\n $$null as null,\n length,\n lookup,\n foldableArray,\n foldableMaybe,\n foldableFirst,\n foldableLast,\n foldableAdditive,\n foldableDual,\n foldableDisj,\n foldableConj,\n foldableMultiplicative,\n foldableEither,\n foldableTuple,\n foldableIdentity,\n foldableConst,\n foldableProduct,\n foldableCoproduct,\n foldableCompose,\n foldableApp\n};\n", "// module Data.Function.Uncurried\n\nexport const mkFn0 = function (fn) {\n return function () {\n return fn();\n };\n};\n\nexport const mkFn2 = function (fn) {\n /* jshint maxparams: 2 */\n return function (a, b) {\n return fn(a)(b);\n };\n};\n\nexport const mkFn3 = function (fn) {\n /* jshint maxparams: 3 */\n return function (a, b, c) {\n return fn(a)(b)(c);\n };\n};\n\nexport const mkFn4 = function (fn) {\n /* jshint maxparams: 4 */\n return function (a, b, c, d) {\n return fn(a)(b)(c)(d);\n };\n};\n\nexport const mkFn5 = function (fn) {\n /* jshint maxparams: 5 */\n return function (a, b, c, d, e) {\n return fn(a)(b)(c)(d)(e);\n };\n};\n\nexport const mkFn6 = function (fn) {\n /* jshint maxparams: 6 */\n return function (a, b, c, d, e, f) {\n return fn(a)(b)(c)(d)(e)(f);\n };\n};\n\nexport const mkFn7 = function (fn) {\n /* jshint maxparams: 7 */\n return function (a, b, c, d, e, f, g) {\n return fn(a)(b)(c)(d)(e)(f)(g);\n };\n};\n\nexport const mkFn8 = function (fn) {\n /* jshint maxparams: 8 */\n return function (a, b, c, d, e, f, g, h) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h);\n };\n};\n\nexport const mkFn9 = function (fn) {\n /* jshint maxparams: 9 */\n return function (a, b, c, d, e, f, g, h, i) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)(i);\n };\n};\n\nexport const mkFn10 = function (fn) {\n /* jshint maxparams: 10 */\n return function (a, b, c, d, e, f, g, h, i, j) {\n return fn(a)(b)(c)(d)(e)(f)(g)(h)(i)(j);\n };\n};\n\nexport const runFn0 = function (fn) {\n return fn();\n};\n\nexport const runFn2 = function (fn) {\n return function (a) {\n return function (b) {\n return fn(a, b);\n };\n };\n};\n\nexport const 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\nexport const 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\nexport const runFn5 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return fn(a, b, c, d, e);\n };\n };\n };\n };\n };\n};\n\nexport const runFn6 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return fn(a, b, c, d, e, f);\n };\n };\n };\n };\n };\n };\n};\n\nexport const runFn7 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return fn(a, b, c, d, e, f, g);\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runFn8 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return fn(a, b, c, d, e, f, g, h);\n };\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runFn9 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return function (i) {\n return fn(a, b, c, d, e, f, g, h, i);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};\n\nexport const runFn10 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (g) {\n return function (h) {\n return function (i) {\n return function (j) {\n return fn(a, b, c, d, e, f, g, h, i, j);\n };\n };\n };\n };\n };\n };\n };\n };\n };\n };\n};\n", "// jshint maxparams: 3\n\nexport const 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", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Const from \"../Data.Const/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_App from \"../Data.Functor.App/index.js\";\nimport * as Data_Functor_Compose from \"../Data.Functor.Compose/index.js\";\nimport * as Data_Functor_Coproduct from \"../Data.Functor.Coproduct/index.js\";\nimport * as Data_Functor_Product from \"../Data.Functor.Product/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Maybe_First from \"../Data.Maybe.First/index.js\";\nimport * as Data_Maybe_Last from \"../Data.Maybe.Last/index.js\";\nimport * as Data_Monoid_Additive from \"../Data.Monoid.Additive/index.js\";\nimport * as Data_Monoid_Conj from \"../Data.Monoid.Conj/index.js\";\nimport * as Data_Monoid_Disj from \"../Data.Monoid.Disj/index.js\";\nimport * as Data_Monoid_Dual from \"../Data.Monoid.Dual/index.js\";\nimport * as Data_Monoid_Multiplicative from \"../Data.Monoid.Multiplicative/index.js\";\nimport * as Data_Traversable_Accum from \"../Data.Traversable.Accum/index.js\";\nimport * as Data_Traversable_Accum_Internal from \"../Data.Traversable.Accum.Internal/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar traverse = function (dict) {\n return dict.traverse;\n};\nvar traversableTuple = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (v) {\n return map(Data_Tuple.Tuple.create(v.value0))(f(v.value1));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return map(Data_Tuple.Tuple.create(v.value0))(v.value1);\n };\n },\n Functor0: function () {\n return Data_Tuple.functorTuple;\n },\n Foldable1: function () {\n return Data_Foldable.foldableTuple;\n }\n};\nvar traversableMultiplicative = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (v) {\n return map(Data_Monoid_Multiplicative.Multiplicative)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return map(Data_Monoid_Multiplicative.Multiplicative)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Multiplicative.functorMultiplicative;\n },\n Foldable1: function () {\n return Data_Foldable.foldableMultiplicative;\n }\n};\nvar traversableMaybe = {\n traverse: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return pure(Data_Maybe.Nothing.value);\n };\n if (v1 instanceof Data_Maybe.Just) {\n return map(Data_Maybe.Just.create)(v(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Traversable (line 115, column 1 - line 119, column 33): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n },\n sequence: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return pure(Data_Maybe.Nothing.value);\n };\n if (v instanceof Data_Maybe.Just) {\n return map(Data_Maybe.Just.create)(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Traversable (line 115, column 1 - line 119, column 33): \" + [ v.constructor.name ]);\n };\n },\n Functor0: function () {\n return Data_Maybe.functorMaybe;\n },\n Foldable1: function () {\n return Data_Foldable.foldableMaybe;\n }\n};\nvar traverse1 = /* #__PURE__ */ traverse(traversableMaybe);\nvar traversableIdentity = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (v) {\n return map(Data_Identity.Identity)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return map(Data_Identity.Identity)(v);\n };\n },\n Functor0: function () {\n return Data_Identity.functorIdentity;\n },\n Foldable1: function () {\n return Data_Foldable.foldableIdentity;\n }\n};\nvar traversableEither = {\n traverse: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return pure(new Data_Either.Left(v1.value0));\n };\n if (v1 instanceof Data_Either.Right) {\n return map(Data_Either.Right.create)(v(v1.value0));\n };\n throw new Error(\"Failed pattern match at Data.Traversable (line 149, column 1 - line 153, column 36): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n },\n sequence: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n if (v instanceof Data_Either.Left) {\n return pure(new Data_Either.Left(v.value0));\n };\n if (v instanceof Data_Either.Right) {\n return map(Data_Either.Right.create)(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Traversable (line 149, column 1 - line 153, column 36): \" + [ v.constructor.name ]);\n };\n },\n Functor0: function () {\n return Data_Either.functorEither;\n },\n Foldable1: function () {\n return Data_Foldable.foldableEither;\n }\n};\nvar traversableDual = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (v) {\n return map(Data_Monoid_Dual.Dual)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return map(Data_Monoid_Dual.Dual)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Dual.functorDual;\n },\n Foldable1: function () {\n return Data_Foldable.foldableDual;\n }\n};\nvar traversableDisj = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (v) {\n return map(Data_Monoid_Disj.Disj)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return map(Data_Monoid_Disj.Disj)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Disj.functorDisj;\n },\n Foldable1: function () {\n return Data_Foldable.foldableDisj;\n }\n};\nvar traversableConst = {\n traverse: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n return function (v) {\n return function (v1) {\n return pure(v1);\n };\n };\n },\n sequence: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n return function (v) {\n return pure(v);\n };\n },\n Functor0: function () {\n return Data_Const.functorConst;\n },\n Foldable1: function () {\n return Data_Foldable.foldableConst;\n }\n};\nvar traversableConj = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (v) {\n return map(Data_Monoid_Conj.Conj)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return map(Data_Monoid_Conj.Conj)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Conj.functorConj;\n },\n Foldable1: function () {\n return Data_Foldable.foldableConj;\n }\n};\nvar traversableCompose = function (dictTraversable) {\n var traverse2 = traverse(dictTraversable);\n var functorCompose = Data_Functor_Compose.functorCompose(dictTraversable.Functor0());\n var foldableCompose = Data_Foldable.foldableCompose(dictTraversable.Foldable1());\n return function (dictTraversable1) {\n var traverse3 = traverse(dictTraversable1);\n var functorCompose1 = functorCompose(dictTraversable1.Functor0());\n var foldableCompose1 = foldableCompose(dictTraversable1.Foldable1());\n return {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse4 = traverse2(dictApplicative);\n var traverse5 = traverse3(dictApplicative);\n return function (f) {\n return function (v) {\n return map(Data_Functor_Compose.Compose)(traverse4(traverse5(f))(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n return traverse(traversableCompose(dictTraversable)(dictTraversable1))(dictApplicative)(identity);\n },\n Functor0: function () {\n return functorCompose1;\n },\n Foldable1: function () {\n return foldableCompose1;\n }\n };\n };\n};\nvar traversableAdditive = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (f) {\n return function (v) {\n return map(Data_Monoid_Additive.Additive)(f(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (v) {\n return map(Data_Monoid_Additive.Additive)(v);\n };\n },\n Functor0: function () {\n return Data_Monoid_Additive.functorAdditive;\n },\n Foldable1: function () {\n return Data_Foldable.foldableAdditive;\n }\n};\nvar sequenceDefault = function (dictTraversable) {\n var traverse2 = traverse(dictTraversable);\n return function (dictApplicative) {\n return traverse2(dictApplicative)(identity);\n };\n};\nvar traversableArray = {\n traverse: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n return $foreign.traverseArrayImpl(Control_Apply.apply(Apply0))(Data_Functor.map(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};\nvar sequence = function (dict) {\n return dict.sequence;\n};\nvar sequence1 = /* #__PURE__ */ sequence(traversableMaybe);\nvar traversableApp = function (dictTraversable) {\n var traverse2 = traverse(dictTraversable);\n var sequence2 = sequence(dictTraversable);\n var functorApp = Data_Functor_App.functorApp(dictTraversable.Functor0());\n var foldableApp = Data_Foldable.foldableApp(dictTraversable.Foldable1());\n return {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse3 = traverse2(dictApplicative);\n return function (f) {\n return function (v) {\n return map(Data_Functor_App.App)(traverse3(f)(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var sequence3 = sequence2(dictApplicative);\n return function (v) {\n return map(Data_Functor_App.App)(sequence3(v));\n };\n },\n Functor0: function () {\n return functorApp;\n },\n Foldable1: function () {\n return foldableApp;\n }\n };\n};\nvar traversableCoproduct = function (dictTraversable) {\n var traverse2 = traverse(dictTraversable);\n var sequence2 = sequence(dictTraversable);\n var functorCoproduct = Data_Functor_Coproduct.functorCoproduct(dictTraversable.Functor0());\n var foldableCoproduct = Data_Foldable.foldableCoproduct(dictTraversable.Foldable1());\n return function (dictTraversable1) {\n var traverse3 = traverse(dictTraversable1);\n var sequence3 = sequence(dictTraversable1);\n var functorCoproduct1 = functorCoproduct(dictTraversable1.Functor0());\n var foldableCoproduct1 = foldableCoproduct(dictTraversable1.Foldable1());\n return {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse4 = traverse2(dictApplicative);\n var traverse5 = traverse3(dictApplicative);\n return function (f) {\n return Data_Functor_Coproduct.coproduct((function () {\n var $313 = map(function ($316) {\n return Data_Functor_Coproduct.Coproduct(Data_Either.Left.create($316));\n });\n var $314 = traverse4(f);\n return function ($315) {\n return $313($314($315));\n };\n })())((function () {\n var $317 = map(function ($320) {\n return Data_Functor_Coproduct.Coproduct(Data_Either.Right.create($320));\n });\n var $318 = traverse5(f);\n return function ($319) {\n return $317($318($319));\n };\n })());\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return Data_Functor_Coproduct.coproduct((function () {\n var $321 = map(function ($324) {\n return Data_Functor_Coproduct.Coproduct(Data_Either.Left.create($324));\n });\n var $322 = sequence2(dictApplicative);\n return function ($323) {\n return $321($322($323));\n };\n })())((function () {\n var $325 = map(function ($328) {\n return Data_Functor_Coproduct.Coproduct(Data_Either.Right.create($328));\n });\n var $326 = sequence3(dictApplicative);\n return function ($327) {\n return $325($326($327));\n };\n })());\n },\n Functor0: function () {\n return functorCoproduct1;\n },\n Foldable1: function () {\n return foldableCoproduct1;\n }\n };\n };\n};\nvar traversableFirst = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse2 = traverse1(dictApplicative);\n return function (f) {\n return function (v) {\n return map(Data_Maybe_First.First)(traverse2(f)(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var sequence2 = sequence1(dictApplicative);\n return function (v) {\n return map(Data_Maybe_First.First)(sequence2(v));\n };\n },\n Functor0: function () {\n return Data_Maybe_First.functorFirst;\n },\n Foldable1: function () {\n return Data_Foldable.foldableFirst;\n }\n};\nvar traversableLast = {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse2 = traverse1(dictApplicative);\n return function (f) {\n return function (v) {\n return map(Data_Maybe_Last.Last)(traverse2(f)(v));\n };\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var sequence2 = sequence1(dictApplicative);\n return function (v) {\n return map(Data_Maybe_Last.Last)(sequence2(v));\n };\n },\n Functor0: function () {\n return Data_Maybe_Last.functorLast;\n },\n Foldable1: function () {\n return Data_Foldable.foldableLast;\n }\n};\nvar traversableProduct = function (dictTraversable) {\n var traverse2 = traverse(dictTraversable);\n var sequence2 = sequence(dictTraversable);\n var functorProduct = Data_Functor_Product.functorProduct(dictTraversable.Functor0());\n var foldableProduct = Data_Foldable.foldableProduct(dictTraversable.Foldable1());\n return function (dictTraversable1) {\n var traverse3 = traverse(dictTraversable1);\n var sequence3 = sequence(dictTraversable1);\n var functorProduct1 = functorProduct(dictTraversable1.Functor0());\n var foldableProduct1 = foldableProduct(dictTraversable1.Foldable1());\n return {\n traverse: function (dictApplicative) {\n var lift2 = Control_Apply.lift2(dictApplicative.Apply0());\n var traverse4 = traverse2(dictApplicative);\n var traverse5 = traverse3(dictApplicative);\n return function (f) {\n return function (v) {\n return lift2(Data_Functor_Product.product)(traverse4(f)(v.value0))(traverse5(f)(v.value1));\n };\n };\n },\n sequence: function (dictApplicative) {\n var lift2 = Control_Apply.lift2(dictApplicative.Apply0());\n var sequence4 = sequence2(dictApplicative);\n var sequence5 = sequence3(dictApplicative);\n return function (v) {\n return lift2(Data_Functor_Product.product)(sequence4(v.value0))(sequence5(v.value1));\n };\n },\n Functor0: function () {\n return functorProduct1;\n },\n Foldable1: function () {\n return foldableProduct1;\n }\n };\n };\n};\nvar traverseDefault = function (dictTraversable) {\n var sequence2 = sequence(dictTraversable);\n var map = Data_Functor.map(dictTraversable.Functor0());\n return function (dictApplicative) {\n var sequence3 = sequence2(dictApplicative);\n return function (f) {\n return function (ta) {\n return sequence3(map(f)(ta));\n };\n };\n };\n};\nvar mapAccumR = function (dictTraversable) {\n var traverse2 = traverse(dictTraversable)(Data_Traversable_Accum_Internal.applicativeStateR);\n return function (f) {\n return function (s0) {\n return function (xs) {\n return Data_Traversable_Accum_Internal.stateR(traverse2(function (a) {\n return function (s) {\n return f(s)(a);\n };\n })(xs))(s0);\n };\n };\n };\n};\nvar scanr = function (dictTraversable) {\n var mapAccumR1 = mapAccumR(dictTraversable);\n return function (f) {\n return function (b0) {\n return function (xs) {\n return (mapAccumR1(function (b) {\n return function (a) {\n var b$prime = f(a)(b);\n return {\n accum: b$prime,\n value: b$prime\n };\n };\n })(b0)(xs)).value;\n };\n };\n };\n};\nvar mapAccumL = function (dictTraversable) {\n var traverse2 = traverse(dictTraversable)(Data_Traversable_Accum_Internal.applicativeStateL);\n return function (f) {\n return function (s0) {\n return function (xs) {\n return Data_Traversable_Accum_Internal.stateL(traverse2(function (a) {\n return function (s) {\n return f(s)(a);\n };\n })(xs))(s0);\n };\n };\n };\n};\nvar scanl = function (dictTraversable) {\n var mapAccumL1 = mapAccumL(dictTraversable);\n return function (f) {\n return function (b0) {\n return function (xs) {\n return (mapAccumL1(function (b) {\n return function (a) {\n var b$prime = f(b)(a);\n return {\n accum: b$prime,\n value: b$prime\n };\n };\n })(b0)(xs)).value;\n };\n };\n };\n};\nvar $$for = function (dictApplicative) {\n return function (dictTraversable) {\n var traverse2 = traverse(dictTraversable)(dictApplicative);\n return function (x) {\n return function (f) {\n return traverse2(f)(x);\n };\n };\n };\n};\nexport {\n traverse,\n sequence,\n traverseDefault,\n sequenceDefault,\n $$for as for,\n scanl,\n scanr,\n mapAccumL,\n mapAccumR,\n traversableArray,\n traversableMaybe,\n traversableFirst,\n traversableLast,\n traversableAdditive,\n traversableDual,\n traversableConj,\n traversableDisj,\n traversableMultiplicative,\n traversableEither,\n traversableTuple,\n traversableIdentity,\n traversableConst,\n traversableProduct,\n traversableCoproduct,\n traversableCompose,\n traversableApp\n};\nexport {\n all,\n and,\n any,\n elem,\n find,\n fold,\n foldMap,\n foldMapDefaultL,\n foldMapDefaultR,\n foldl,\n foldlDefault,\n foldr,\n foldrDefault,\n for_,\n intercalate,\n maximum,\n maximumBy,\n minimum,\n minimumBy,\n notElem,\n oneOf,\n or,\n sequence_,\n sum,\n traverse_\n} from \"../Data.Foldable/index.js\";\n", "export const 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", "export const 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", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Semigroup_Traversable from \"../Data.Semigroup.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar unfoldr1 = function (dict) {\n return dict.unfoldr1;\n};\nvar unfoldable1Maybe = {\n unfoldr1: function (f) {\n return function (b) {\n return new Data_Maybe.Just(Data_Tuple.fst(f(b)));\n };\n }\n};\nvar unfoldable1Array = {\n unfoldr1: /* #__PURE__ */ $foreign.unfoldr1ArrayImpl(Data_Maybe.isNothing)(fromJust)(Data_Tuple.fst)(Data_Tuple.snd)\n};\nvar replicate1 = function (dictUnfoldable1) {\n var unfoldr11 = unfoldr1(dictUnfoldable1);\n return function (n) {\n return function (v) {\n var step = function (i) {\n if (i <= 0) {\n return new Data_Tuple.Tuple(v, Data_Maybe.Nothing.value);\n };\n if (Data_Boolean.otherwise) {\n return new Data_Tuple.Tuple(v, new Data_Maybe.Just(i - 1 | 0));\n };\n throw new Error(\"Failed pattern match at Data.Unfoldable1 (line 68, column 5 - line 68, column 39): \" + [ i.constructor.name ]);\n };\n return unfoldr11(step)(n - 1 | 0);\n };\n };\n};\nvar replicate1A = function (dictApply) {\n return function (dictUnfoldable1) {\n var replicate11 = replicate1(dictUnfoldable1);\n return function (dictTraversable1) {\n var sequence1 = Data_Semigroup_Traversable.sequence1(dictTraversable1)(dictApply);\n return function (n) {\n return function (m) {\n return sequence1(replicate11(n)(m));\n };\n };\n };\n };\n};\nvar singleton = function (dictUnfoldable1) {\n return replicate1(dictUnfoldable1)(1);\n};\nvar range = function (dictUnfoldable1) {\n var unfoldr11 = unfoldr1(dictUnfoldable1);\n return function (start) {\n return function (end) {\n var go = function (delta) {\n return function (i) {\n var i$prime = i + delta | 0;\n return new Data_Tuple.Tuple(i, (function () {\n var $25 = i === end;\n if ($25) {\n return Data_Maybe.Nothing.value;\n };\n return new Data_Maybe.Just(i$prime);\n })());\n };\n };\n var delta = (function () {\n var $26 = end >= start;\n if ($26) {\n return 1;\n };\n return -1 | 0;\n })();\n return unfoldr11(go(delta))(start);\n };\n };\n};\nvar iterateN = function (dictUnfoldable1) {\n var unfoldr11 = unfoldr1(dictUnfoldable1);\n return function (n) {\n return function (f) {\n return function (s) {\n var go = function (v) {\n return new Data_Tuple.Tuple(v.value0, (function () {\n var $28 = v.value1 > 0;\n if ($28) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(f(v.value0), v.value1 - 1 | 0));\n };\n return Data_Maybe.Nothing.value;\n })());\n };\n return unfoldr11(go)(new Data_Tuple.Tuple(s, n - 1 | 0));\n };\n };\n };\n};\nexport {\n unfoldr1,\n replicate1,\n replicate1A,\n singleton,\n range,\n iterateN,\n unfoldable1Array,\n unfoldable1Maybe\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable1 from \"../Data.Unfoldable1/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar unfoldr = function (dict) {\n return dict.unfoldr;\n};\nvar unfoldableMaybe = {\n unfoldr: function (f) {\n return function (b) {\n return map(Data_Tuple.fst)(f(b));\n };\n },\n Unfoldable10: function () {\n return Data_Unfoldable1.unfoldable1Maybe;\n }\n};\nvar unfoldableArray = {\n unfoldr: /* #__PURE__ */ $foreign.unfoldrArrayImpl(Data_Maybe.isNothing)(fromJust)(Data_Tuple.fst)(Data_Tuple.snd),\n Unfoldable10: function () {\n return Data_Unfoldable1.unfoldable1Array;\n }\n};\nvar replicate = function (dictUnfoldable) {\n var unfoldr1 = unfoldr(dictUnfoldable);\n return function (n) {\n return function (v) {\n var step = function (i) {\n var $17 = i <= 0;\n if ($17) {\n return Data_Maybe.Nothing.value;\n };\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v, i - 1 | 0));\n };\n return unfoldr1(step)(n);\n };\n };\n};\nvar replicateA = function (dictApplicative) {\n return function (dictUnfoldable) {\n var replicate1 = replicate(dictUnfoldable);\n return function (dictTraversable) {\n var sequence = Data_Traversable.sequence(dictTraversable)(dictApplicative);\n return function (n) {\n return function (m) {\n return sequence(replicate1(n)(m));\n };\n };\n };\n };\n};\nvar none = function (dictUnfoldable) {\n return unfoldr(dictUnfoldable)(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Unit.unit);\n};\nvar fromMaybe = function (dictUnfoldable) {\n return unfoldr(dictUnfoldable)(function (b) {\n return map(Data_Function.flip(Data_Tuple.Tuple.create)(Data_Maybe.Nothing.value))(b);\n });\n};\nexport {\n unfoldr,\n replicate,\n replicateA,\n none,\n fromMaybe,\n unfoldableArray,\n unfoldableMaybe\n};\nexport {\n iterateN,\n range,\n replicate1,\n replicate1A,\n singleton,\n unfoldr1\n} from \"../Data.Unfoldable1/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Lazy from \"../Control.Lazy/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_ST_Internal from \"../Control.Monad.ST.Internal/index.js\";\nimport * as Data_Array_ST from \"../Data.Array.ST/index.js\";\nimport * as Data_Array_ST_Iterator from \"../Data.Array.ST.Iterator/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Function_Uncurried from \"../Data.Function.Uncurried/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_FunctorWithIndex from \"../Data.FunctorWithIndex/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nvar sequence = /* #__PURE__ */ Data_Traversable.sequence(Data_Traversable.traversableArray);\nvar traverse_ = /* #__PURE__ */ Data_Foldable.traverse_(Control_Monad_ST_Internal.applicativeST);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST);\nvar intercalate1 = /* #__PURE__ */ Data_Foldable.intercalate(Data_Foldable.foldableArray);\nvar apply = /* #__PURE__ */ Control_Apply.apply(Data_Maybe.applyMaybe);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar map2 = /* #__PURE__ */ Data_Functor.map(Control_Monad_ST_Internal.functorST);\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar when = /* #__PURE__ */ Control_Applicative.when(Control_Monad_ST_Internal.applicativeST);\nvar notEq = /* #__PURE__ */ Data_Eq.notEq(Data_Ordering.eqOrdering);\nvar eq1 = /* #__PURE__ */ Data_Eq.eq(Data_Ordering.eqOrdering);\nvar foldMap1 = /* #__PURE__ */ Data_Foldable.foldMap(Data_Foldable.foldableArray);\nvar fold1 = /* #__PURE__ */ Data_Foldable.fold(Data_Foldable.foldableArray);\nvar append = /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray);\nvar traverse = /* #__PURE__ */ Data_Traversable.traverse(Data_Traversable.traversableArray);\nvar zipWith = /* #__PURE__ */ Data_Function_Uncurried.runFn3($foreign.zipWithImpl);\nvar zipWithA = function (dictApplicative) {\n var sequence1 = sequence(dictApplicative);\n return function (f) {\n return function (xs) {\n return function (ys) {\n return sequence1(zipWith(f)(xs)(ys));\n };\n };\n };\n};\nvar zip = /* #__PURE__ */ (function () {\n return zipWith(Data_Tuple.Tuple.create);\n})();\nvar updateAtIndices = function (dictFoldable) {\n var traverse_1 = traverse_(dictFoldable);\n return function (us) {\n return function (xs) {\n return Data_Array_ST.withArray(function (res) {\n return traverse_1(function (v) {\n return Data_Array_ST.poke(v.value0)(v.value1)(res);\n })(us);\n })(xs)();\n };\n };\n};\nvar updateAt = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn5($foreign[\"_updateAt\"])(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar unsafeIndex = function () {\n return Data_Function_Uncurried.runFn2($foreign.unsafeIndexImpl);\n};\nvar unsafeIndex1 = /* #__PURE__ */ unsafeIndex();\nvar uncons = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($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})();\nvar toUnfoldable = function (dictUnfoldable) {\n var unfoldr = Data_Unfoldable.unfoldr(dictUnfoldable);\n return function (xs) {\n var len = $foreign.length(xs);\n var f = function (i) {\n if (i < len) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(unsafeIndex1(xs)(i), i + 1 | 0));\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Array (line 163, column 3 - line 165, column 26): \" + [ i.constructor.name ]);\n };\n return unfoldr(f)(0);\n };\n};\nvar tail = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($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})();\nvar sortBy = function (comp) {\n return Data_Function_Uncurried.runFn3($foreign.sortByImpl)(comp)(function (v) {\n if (v instanceof Data_Ordering.GT) {\n return 1;\n };\n if (v instanceof Data_Ordering.EQ) {\n return 0;\n };\n if (v instanceof Data_Ordering.LT) {\n return -1 | 0;\n };\n throw new Error(\"Failed pattern match at Data.Array (line 897, column 38 - line 900, column 11): \" + [ v.constructor.name ]);\n });\n};\nvar sortWith = function (dictOrd) {\n var comparing = Data_Ord.comparing(dictOrd);\n return function (f) {\n return sortBy(comparing(f));\n };\n};\nvar sortWith1 = /* #__PURE__ */ sortWith(Data_Ord.ordInt);\nvar sort = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (xs) {\n return sortBy(compare)(xs);\n };\n};\nvar snoc = function (xs) {\n return function (x) {\n return Data_Array_ST.withArray(Data_Array_ST.push(x))(xs)();\n };\n};\nvar slice = /* #__PURE__ */ Data_Function_Uncurried.runFn3($foreign.sliceImpl);\nvar splitAt = function (v) {\n return function (v1) {\n if (v <= 0) {\n return {\n before: [ ],\n after: v1\n };\n };\n return {\n before: slice(0)(v)(v1),\n after: slice(v)($foreign.length(v1))(v1)\n };\n };\n};\nvar take = function (n) {\n return function (xs) {\n var $152 = n < 1;\n if ($152) {\n return [ ];\n };\n return slice(0)(n)(xs);\n };\n};\nvar singleton = function (a) {\n return [ a ];\n};\nvar scanr = /* #__PURE__ */ Data_Function_Uncurried.runFn3($foreign.scanrImpl);\nvar scanl = /* #__PURE__ */ Data_Function_Uncurried.runFn3($foreign.scanlImpl);\nvar replicate = /* #__PURE__ */ Data_Function_Uncurried.runFn2($foreign.replicateImpl);\nvar range = /* #__PURE__ */ Data_Function_Uncurried.runFn2($foreign.rangeImpl);\nvar partition = /* #__PURE__ */ Data_Function_Uncurried.runFn2($foreign.partitionImpl);\nvar $$null = function (xs) {\n return $foreign.length(xs) === 0;\n};\nvar modifyAtIndices = function (dictFoldable) {\n var traverse_1 = traverse_(dictFoldable);\n return function (is) {\n return function (f) {\n return function (xs) {\n return Data_Array_ST.withArray(function (res) {\n return traverse_1(function (i) {\n return Data_Array_ST.modify(i)(f)(res);\n })(is);\n })(xs)();\n };\n };\n };\n};\nvar mapWithIndex = /* #__PURE__ */ Data_FunctorWithIndex.mapWithIndex(Data_FunctorWithIndex.functorWithIndexArray);\nvar intersperse = function (a) {\n return function (arr) {\n var v = $foreign.length(arr);\n if (v < 2) {\n return arr;\n };\n if (Data_Boolean.otherwise) {\n return Data_Array_ST.run((function () {\n var unsafeGetElem = function (idx) {\n return unsafeIndex1(arr)(idx);\n };\n return function __do() {\n var out = Data_Array_ST[\"new\"]();\n Data_Array_ST.push(unsafeGetElem(0))(out)();\n Control_Monad_ST_Internal[\"for\"](1)(v)(function (idx) {\n return function __do() {\n Data_Array_ST.push(a)(out)();\n return $$void(Data_Array_ST.push(unsafeGetElem(idx))(out))();\n };\n })();\n return out;\n };\n })());\n };\n throw new Error(\"Failed pattern match at Data.Array (line 623, column 21 - line 633, column 17): \" + [ v.constructor.name ]);\n };\n};\nvar intercalate = function (dictMonoid) {\n return intercalate1(dictMonoid);\n};\nvar insertAt = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn5($foreign[\"_insertAt\"])(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar init = function (xs) {\n if ($$null(xs)) {\n return Data_Maybe.Nothing.value;\n };\n if (Data_Boolean.otherwise) {\n return new Data_Maybe.Just(slice(0)($foreign.length(xs) - 1 | 0)(xs));\n };\n throw new Error(\"Failed pattern match at Data.Array (line 351, column 1 - line 351, column 45): \" + [ xs.constructor.name ]);\n};\nvar index = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn4($foreign.indexImpl)(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar last = function (xs) {\n return index(xs)($foreign.length(xs) - 1 | 0);\n};\nvar unsnoc = function (xs) {\n return apply(map(function (v) {\n return function (v1) {\n return {\n init: v,\n last: v1\n };\n };\n })(init(xs)))(last(xs));\n};\nvar modifyAt = function (i) {\n return function (f) {\n return function (xs) {\n var go = function (x) {\n return updateAt(i)(f(x))(xs);\n };\n return Data_Maybe.maybe(Data_Maybe.Nothing.value)(go)(index(xs)(i));\n };\n };\n};\nvar span = function (p) {\n return function (arr) {\n var go = function ($copy_i) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(i) {\n var v = index(arr)(i);\n if (v instanceof Data_Maybe.Just) {\n var $156 = p(v.value0);\n if ($156) {\n $copy_i = i + 1 | 0;\n return;\n };\n $tco_done = true;\n return new Data_Maybe.Just(i);\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Array (line 1035, column 5 - line 1037, column 25): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_i);\n };\n return $tco_result;\n };\n var breakIndex = go(0);\n if (breakIndex instanceof Data_Maybe.Just && breakIndex.value0 === 0) {\n return {\n init: [ ],\n rest: arr\n };\n };\n if (breakIndex instanceof Data_Maybe.Just) {\n return {\n init: slice(0)(breakIndex.value0)(arr),\n rest: slice(breakIndex.value0)($foreign.length(arr))(arr)\n };\n };\n if (breakIndex instanceof Data_Maybe.Nothing) {\n return {\n init: arr,\n rest: [ ]\n };\n };\n throw new Error(\"Failed pattern match at Data.Array (line 1022, column 3 - line 1028, column 30): \" + [ breakIndex.constructor.name ]);\n };\n};\nvar takeWhile = function (p) {\n return function (xs) {\n return (span(p)(xs)).init;\n };\n};\nvar unzip = function (xs) {\n return (function __do() {\n var fsts = Data_Array_ST[\"new\"]();\n var snds = Data_Array_ST[\"new\"]();\n var iter = Data_Array_ST_Iterator.iterator(function (v) {\n return index(xs)(v);\n })();\n Data_Array_ST_Iterator.iterate(iter)(function (v) {\n return function __do() {\n $$void(Data_Array_ST.push(v.value0)(fsts))();\n return $$void(Data_Array_ST.push(v.value1)(snds))();\n };\n })();\n var fsts$prime = Data_Array_ST.unsafeFreeze(fsts)();\n var snds$prime = Data_Array_ST.unsafeFreeze(snds)();\n return new Data_Tuple.Tuple(fsts$prime, snds$prime);\n })();\n};\nvar head = function (xs) {\n return index(xs)(0);\n};\nvar nubBy = function (comp) {\n return function (xs) {\n var indexedAndSorted = sortBy(function (x) {\n return function (y) {\n return comp(Data_Tuple.snd(x))(Data_Tuple.snd(y));\n };\n })(mapWithIndex(Data_Tuple.Tuple.create)(xs));\n var v = head(indexedAndSorted);\n if (v instanceof Data_Maybe.Nothing) {\n return [ ];\n };\n if (v instanceof Data_Maybe.Just) {\n return map1(Data_Tuple.snd)(sortWith1(Data_Tuple.fst)((function __do() {\n var result = Data_Array_ST.unsafeThaw(singleton(v.value0))();\n Control_Monad_ST_Internal.foreach(indexedAndSorted)(function (v1) {\n return function __do() {\n var lst = map2((function () {\n var $183 = function ($185) {\n return fromJust(last($185));\n };\n return function ($184) {\n return Data_Tuple.snd($183($184));\n };\n })())(Data_Array_ST.unsafeFreeze(result))();\n return when(notEq(comp(lst)(v1.value1))(Data_Ordering.EQ.value))($$void(Data_Array_ST.push(v1)(result)))();\n };\n })();\n return Data_Array_ST.unsafeFreeze(result)();\n })()));\n };\n throw new Error(\"Failed pattern match at Data.Array (line 1115, column 17 - line 1123, column 28): \" + [ v.constructor.name ]);\n };\n};\nvar nub = function (dictOrd) {\n return nubBy(Data_Ord.compare(dictOrd));\n};\nvar groupBy = function (op) {\n return function (xs) {\n return (function __do() {\n var result = Data_Array_ST[\"new\"]();\n var iter = Data_Array_ST_Iterator.iterator(function (v) {\n return index(xs)(v);\n })();\n Data_Array_ST_Iterator.iterate(iter)(function (x) {\n return $$void(function __do() {\n var sub1 = Data_Array_ST[\"new\"]();\n Data_Array_ST.push(x)(sub1)();\n Data_Array_ST_Iterator.pushWhile(op(x))(iter)(sub1)();\n var grp = Data_Array_ST.unsafeFreeze(sub1)();\n return Data_Array_ST.push(grp)(result)();\n });\n })();\n return Data_Array_ST.unsafeFreeze(result)();\n })();\n };\n};\nvar groupAllBy = function (cmp) {\n var $186 = groupBy(function (x) {\n return function (y) {\n return eq1(cmp(x)(y))(Data_Ordering.EQ.value);\n };\n });\n var $187 = sortBy(cmp);\n return function ($188) {\n return $186($187($188));\n };\n};\nvar groupAll = function (dictOrd) {\n return groupAllBy(Data_Ord.compare(dictOrd));\n};\nvar group = function (dictEq) {\n var eq2 = Data_Eq.eq(dictEq);\n return function (xs) {\n return groupBy(eq2)(xs);\n };\n};\nvar fromFoldable = function (dictFoldable) {\n return Data_Function_Uncurried.runFn2($foreign.fromFoldableImpl)(Data_Foldable.foldr(dictFoldable));\n};\nvar foldr = /* #__PURE__ */ Data_Foldable.foldr(Data_Foldable.foldableArray);\nvar foldl = /* #__PURE__ */ Data_Foldable.foldl(Data_Foldable.foldableArray);\nvar transpose = function (xs) {\n var buildNext = function (idx) {\n return Data_Function.flip(foldl)(Data_Maybe.Nothing.value)(function (acc) {\n return function (nextArr) {\n return Data_Maybe.maybe(acc)(function (el) {\n return new Data_Maybe.Just(Data_Maybe.maybe([ el ])(Data_Function.flip(snoc)(el))(acc));\n })(index(nextArr)(idx));\n };\n })(xs);\n };\n var go = function ($copy_idx) {\n return function ($copy_allArrays) {\n var $tco_var_idx = $copy_idx;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(idx, allArrays) {\n var v = buildNext(idx);\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return allArrays;\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_idx = idx + 1 | 0;\n $copy_allArrays = snoc(allArrays)(v.value0);\n return;\n };\n throw new Error(\"Failed pattern match at Data.Array (line 837, column 22 - line 839, column 52): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_idx, $copy_allArrays);\n };\n return $tco_result;\n };\n };\n return go(0)([ ]);\n};\nvar foldRecM = function (dictMonadRec) {\n var Monad0 = dictMonadRec.Monad0();\n var pure1 = Control_Applicative.pure(Monad0.Applicative0());\n var bind1 = Control_Bind.bind(Monad0.Bind1());\n var tailRecM2 = Control_Monad_Rec_Class.tailRecM2(dictMonadRec);\n return function (f) {\n return function (b) {\n return function (array) {\n var go = function (res) {\n return function (i) {\n if (i >= $foreign.length(array)) {\n return pure1(new Control_Monad_Rec_Class.Done(res));\n };\n if (Data_Boolean.otherwise) {\n return bind1(f(res)(unsafeIndex1(array)(i)))(function (res$prime) {\n return pure1(new Control_Monad_Rec_Class.Loop({\n a: res$prime,\n b: i + 1 | 0\n }));\n });\n };\n throw new Error(\"Failed pattern match at Data.Array (line 1349, column 3 - line 1353, column 42): \" + [ res.constructor.name, i.constructor.name ]);\n };\n };\n return tailRecM2(go)(b)(0);\n };\n };\n };\n};\nvar foldMap = function (dictMonoid) {\n return foldMap1(dictMonoid);\n};\nvar foldM = function (dictMonad) {\n var pure1 = Control_Applicative.pure(dictMonad.Applicative0());\n var bind1 = Control_Bind.bind(dictMonad.Bind1());\n return function (f) {\n return function (b) {\n return Data_Function_Uncurried.runFn3($foreign.unconsImpl)(function (v) {\n return pure1(b);\n })(function (a) {\n return function (as) {\n return bind1(f(b)(a))(function (b$prime) {\n return foldM(dictMonad)(f)(b$prime)(as);\n });\n };\n });\n };\n };\n};\nvar fold = function (dictMonoid) {\n return fold1(dictMonoid);\n};\nvar findMap = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn4($foreign.findMapImpl)(Data_Maybe.Nothing.value)(Data_Maybe.isJust);\n})();\nvar findLastIndex = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn4($foreign.findLastIndexImpl)(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar insertBy = function (cmp) {\n return function (x) {\n return function (ys) {\n var i = Data_Maybe.maybe(0)(function (v) {\n return v + 1 | 0;\n })(findLastIndex(function (y) {\n return eq1(cmp(x)(y))(Data_Ordering.GT.value);\n })(ys));\n return fromJust(insertAt(i)(x)(ys));\n };\n };\n};\nvar insert = function (dictOrd) {\n return insertBy(Data_Ord.compare(dictOrd));\n};\nvar findIndex = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn4($foreign.findIndexImpl)(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar find = function (f) {\n return function (xs) {\n return map(unsafeIndex1(xs))(findIndex(f)(xs));\n };\n};\nvar filter = /* #__PURE__ */ Data_Function_Uncurried.runFn2($foreign.filterImpl);\nvar intersectBy = function (eq2) {\n return function (xs) {\n return function (ys) {\n return filter(function (x) {\n return Data_Maybe.isJust(findIndex(eq2(x))(ys));\n })(xs);\n };\n };\n};\nvar intersect = function (dictEq) {\n return intersectBy(Data_Eq.eq(dictEq));\n};\nvar elemLastIndex = function (dictEq) {\n var eq2 = Data_Eq.eq(dictEq);\n return function (x) {\n return findLastIndex(function (v) {\n return eq2(v)(x);\n });\n };\n};\nvar elemIndex = function (dictEq) {\n var eq2 = Data_Eq.eq(dictEq);\n return function (x) {\n return findIndex(function (v) {\n return eq2(v)(x);\n });\n };\n};\nvar notElem = function (dictEq) {\n var elemIndex1 = elemIndex(dictEq);\n return function (a) {\n return function (arr) {\n return Data_Maybe.isNothing(elemIndex1(a)(arr));\n };\n };\n};\nvar elem = function (dictEq) {\n var elemIndex1 = elemIndex(dictEq);\n return function (a) {\n return function (arr) {\n return Data_Maybe.isJust(elemIndex1(a)(arr));\n };\n };\n};\nvar dropWhile = function (p) {\n return function (xs) {\n return (span(p)(xs)).rest;\n };\n};\nvar dropEnd = function (n) {\n return function (xs) {\n return take($foreign.length(xs) - n | 0)(xs);\n };\n};\nvar drop = function (n) {\n return function (xs) {\n var $173 = n < 1;\n if ($173) {\n return xs;\n };\n return slice(n)($foreign.length(xs))(xs);\n };\n};\nvar takeEnd = function (n) {\n return function (xs) {\n return drop($foreign.length(xs) - n | 0)(xs);\n };\n};\nvar deleteAt = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn4($foreign[\"_deleteAt\"])(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar 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 fromJust(deleteAt(i)(v2));\n })(findIndex(v(v1))(v2));\n };\n };\n};\nvar $$delete = function (dictEq) {\n return deleteBy(Data_Eq.eq(dictEq));\n};\nvar difference = function (dictEq) {\n return foldr($$delete(dictEq));\n};\nvar cons = function (x) {\n return function (xs) {\n return append([ x ])(xs);\n };\n};\nvar some = function (dictAlternative) {\n var apply1 = Control_Apply.apply((dictAlternative.Applicative0()).Apply0());\n var map3 = Data_Functor.map(((dictAlternative.Plus1()).Alt0()).Functor0());\n return function (dictLazy) {\n var defer = Control_Lazy.defer(dictLazy);\n return function (v) {\n return apply1(map3(cons)(v))(defer(function (v1) {\n return many(dictAlternative)(dictLazy)(v);\n }));\n };\n };\n};\nvar many = function (dictAlternative) {\n var alt = Control_Alt.alt((dictAlternative.Plus1()).Alt0());\n var pure1 = Control_Applicative.pure(dictAlternative.Applicative0());\n return function (dictLazy) {\n return function (v) {\n return alt(some(dictAlternative)(dictLazy)(v))(pure1([ ]));\n };\n };\n};\nvar concatMap = /* #__PURE__ */ Data_Function.flip(/* #__PURE__ */ Control_Bind.bind(Control_Bind.bindArray));\nvar mapMaybe = function (f) {\n return concatMap((function () {\n var $189 = Data_Maybe.maybe([ ])(singleton);\n return function ($190) {\n return $189(f($190));\n };\n })());\n};\nvar filterA = function (dictApplicative) {\n var traverse1 = traverse(dictApplicative);\n var map3 = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n return function (p) {\n var $191 = map3(mapMaybe(function (v) {\n if (v.value1) {\n return new Data_Maybe.Just(v.value0);\n };\n return Data_Maybe.Nothing.value;\n }));\n var $192 = traverse1(function (x) {\n return map3(Data_Tuple.Tuple.create(x))(p(x));\n });\n return function ($193) {\n return $191($192($193));\n };\n };\n};\nvar catMaybes = /* #__PURE__ */ mapMaybe(/* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn));\nvar any = /* #__PURE__ */ Data_Function_Uncurried.runFn2($foreign.anyImpl);\nvar nubByEq = function (eq2) {\n return function (xs) {\n return (function __do() {\n var arr = Data_Array_ST[\"new\"]();\n Control_Monad_ST_Internal.foreach(xs)(function (x) {\n return function __do() {\n var e = map2((function () {\n var $194 = any(function (v) {\n return eq2(v)(x);\n });\n return function ($195) {\n return !$194($195);\n };\n })())(Data_Array_ST.unsafeFreeze(arr))();\n return when(e)($$void(Data_Array_ST.push(x)(arr)))();\n };\n })();\n return Data_Array_ST.unsafeFreeze(arr)();\n })();\n };\n};\nvar nubEq = function (dictEq) {\n return nubByEq(Data_Eq.eq(dictEq));\n};\nvar unionBy = function (eq2) {\n return function (xs) {\n return function (ys) {\n return append(xs)(foldl(Data_Function.flip(deleteBy(eq2)))(nubByEq(eq2)(ys))(xs));\n };\n };\n};\nvar union = function (dictEq) {\n return unionBy(Data_Eq.eq(dictEq));\n};\nvar alterAt = function (i) {\n return function (f) {\n return function (xs) {\n var go = function (x) {\n var v = f(x);\n if (v instanceof Data_Maybe.Nothing) {\n return deleteAt(i)(xs);\n };\n if (v instanceof Data_Maybe.Just) {\n return updateAt(i)(v.value0)(xs);\n };\n throw new Error(\"Failed pattern match at Data.Array (line 601, column 10 - line 603, column 32): \" + [ v.constructor.name ]);\n };\n return Data_Maybe.maybe(Data_Maybe.Nothing.value)(go)(index(xs)(i));\n };\n };\n};\nvar all = /* #__PURE__ */ Data_Function_Uncurried.runFn2($foreign.allImpl);\nexport {\n length,\n reverse,\n concat\n} from \"./foreign.js\";\nexport {\n fromFoldable,\n toUnfoldable,\n singleton,\n range,\n replicate,\n some,\n many,\n $$null as null,\n cons,\n snoc,\n insert,\n insertBy,\n head,\n last,\n tail,\n init,\n uncons,\n unsnoc,\n index,\n elem,\n notElem,\n elemIndex,\n elemLastIndex,\n find,\n findMap,\n findIndex,\n findLastIndex,\n insertAt,\n deleteAt,\n updateAt,\n updateAtIndices,\n modifyAt,\n modifyAtIndices,\n alterAt,\n intersperse,\n concatMap,\n filter,\n partition,\n splitAt,\n filterA,\n mapMaybe,\n catMaybes,\n mapWithIndex,\n foldl,\n foldr,\n foldMap,\n fold,\n intercalate,\n transpose,\n scanl,\n scanr,\n sort,\n sortBy,\n sortWith,\n slice,\n take,\n takeEnd,\n takeWhile,\n drop,\n dropEnd,\n dropWhile,\n span,\n group,\n groupAll,\n groupBy,\n groupAllBy,\n nub,\n nubEq,\n nubBy,\n nubByEq,\n union,\n unionBy,\n $$delete as delete,\n deleteBy,\n difference,\n intersect,\n intersectBy,\n zipWith,\n zipWithA,\n zip,\n unzip,\n any,\n all,\n foldM,\n foldRecM,\n unsafeIndex\n};\n", "const newImpl = function () {\n return {};\n};\nexport { newImpl as new };\n\nexport function peekImpl(just) {\n return function (nothing) {\n return function (k) {\n return function (m) {\n return function () {\n return {}.hasOwnProperty.call(m, k) ? just(m[k]) : nothing;\n };\n };\n };\n };\n}\n\nexport function poke(k) {\n return function (v) {\n return function (m) {\n return function () {\n m[k] = v;\n return m;\n };\n };\n };\n}\n\nconst deleteImpl = function (k) {\n return function (m) {\n return function () {\n delete m[k];\n return m;\n };\n };\n};\nexport { deleteImpl as delete };\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_ST_Internal from \"../Control.Monad.ST.Internal/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Function_Uncurried from \"../Data.Function.Uncurried/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Foreign_Object_ST from \"../Foreign.Object.ST/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar sortWith = /* #__PURE__ */ Data_Array.sortWith(Data_Ord.ordString);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Control_Monad_ST_Internal.bindST);\nvar showTuple = /* #__PURE__ */ Data_Tuple.showTuple(Data_Show.showString);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Control_Monad_ST_Internal.applicativeST);\nvar forWithIndex_ = /* #__PURE__ */ Data_FoldableWithIndex.forWithIndex_(Control_Monad_ST_Internal.applicativeST);\nvar for_ = /* #__PURE__ */ Data_Foldable.for_(Control_Monad_ST_Internal.applicativeST);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Control_Monad_ST_Internal.functorST);\nvar foldr = /* #__PURE__ */ Data_Foldable.foldr(Data_Foldable.foldableArray);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar ordTuple = /* #__PURE__ */ Data_Tuple.ordTuple(Data_Ord.ordString);\nvar mapFlipped = /* #__PURE__ */ Data_Functor.mapFlipped(Data_Maybe.functorMaybe);\nvar values = /* #__PURE__ */ $foreign.toArrayWithKey(function (v) {\n return function (v1) {\n return v1;\n };\n});\nvar toUnfoldable = function (dictUnfoldable) {\n var $89 = Data_Array.toUnfoldable(dictUnfoldable);\n var $90 = $foreign.toArrayWithKey(Data_Tuple.Tuple.create);\n return function ($91) {\n return $89($90($91));\n };\n};\nvar toAscUnfoldable = function (dictUnfoldable) {\n var $92 = Data_Array.toUnfoldable(dictUnfoldable);\n var $93 = sortWith(Data_Tuple.fst);\n var $94 = $foreign.toArrayWithKey(Data_Tuple.Tuple.create);\n return function ($95) {\n return $92($93($94($95)));\n };\n};\nvar toAscArray = /* #__PURE__ */ toAscUnfoldable(Data_Unfoldable.unfoldableArray);\nvar toArray = /* #__PURE__ */ (function () {\n return $foreign.toArrayWithKey(Data_Tuple.Tuple.create);\n})();\nvar thawST = $foreign[\"_copyST\"];\nvar singleton = function (k) {\n return function (v) {\n return $foreign.runST(bindFlipped(Foreign_Object_ST.poke(k)(v))(Foreign_Object_ST[\"new\"]));\n };\n};\nvar showObject = function (dictShow) {\n var show = Data_Show.show(Data_Show.showArray(showTuple(dictShow)));\n return {\n show: function (m) {\n return \"(fromFoldable \" + (show(toArray(m)) + \")\");\n }\n };\n};\nvar 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};\nvar member = /* #__PURE__ */ Data_Function_Uncurried.runFn4($foreign[\"_lookup\"])(false)(/* #__PURE__ */ Data_Function[\"const\"](true));\nvar mapWithKey = function (f) {\n return function (m) {\n return $foreign[\"_mapWithKey\"](m, f);\n };\n};\nvar lookup = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn4($foreign[\"_lookup\"])(Data_Maybe.Nothing.value)(Data_Maybe.Just.create);\n})();\nvar isSubmap = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function (m1) {\n return function (m2) {\n var f = function (k) {\n return function (v) {\n return $foreign[\"_lookup\"](false, eq(v), k, m2);\n };\n };\n return $foreign.all(f)(m1);\n };\n };\n};\nvar isEmpty = /* #__PURE__ */ $foreign.all(function (v) {\n return function (v1) {\n return false;\n };\n});\nvar insert = function (k) {\n return function (v) {\n return mutate(Foreign_Object_ST.poke(k)(v));\n };\n};\nvar functorObject = {\n map: function (f) {\n return function (m) {\n return $foreign[\"_fmapObject\"](m, f);\n };\n }\n};\nvar functorWithIndexObject = {\n mapWithIndex: mapWithKey,\n Functor0: function () {\n return functorObject;\n }\n};\nvar fromHomogeneous = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nvar fromFoldableWithIndex = function (dictFoldableWithIndex) {\n var forWithIndex_1 = forWithIndex_(dictFoldableWithIndex);\n return function (l) {\n return $foreign.runST(function __do() {\n var s = Foreign_Object_ST[\"new\"]();\n forWithIndex_1(l)(function (k) {\n return function (v) {\n return Foreign_Object_ST.poke(k)(v)(s);\n };\n })();\n return s;\n });\n };\n};\nvar fromFoldableWith = function (dictFoldable) {\n var for_1 = for_(dictFoldable);\n return function (f) {\n return function (l) {\n return $foreign.runST(function __do() {\n var s = Foreign_Object_ST[\"new\"]();\n for_1(l)(function (v) {\n return function __do() {\n var v$prime = $foreign[\"_lookupST\"](v.value1, f(v.value1), v.value0, s)();\n return Foreign_Object_ST.poke(v.value0)(v$prime)(s)();\n };\n })();\n return s;\n });\n };\n };\n};\nvar fromFoldable = function (dictFoldable) {\n var fromFoldable1 = Data_Array.fromFoldable(dictFoldable);\n return function (l) {\n return $foreign.runST(function __do() {\n var s = Foreign_Object_ST[\"new\"]();\n Control_Monad_ST_Internal.foreach(fromFoldable1(l))(function (v) {\n return $$void(Foreign_Object_ST.poke(v.value0)(v.value1)(s));\n })();\n return s;\n });\n };\n};\nvar freezeST = $foreign[\"_copyST\"];\nvar foldMaybe = function (f) {\n return function (z) {\n return function (m) {\n return $foreign[\"_foldSCObject\"](m, z, f, Data_Maybe.fromMaybe);\n };\n };\n};\nvar foldM = function (dictMonad) {\n var bind1 = Control_Bind.bind(dictMonad.Bind1());\n var pure1 = Control_Applicative.pure(dictMonad.Applicative0());\n return function (f) {\n return function (z) {\n return $foreign[\"_foldM\"](bind1)(f)(pure1(z));\n };\n };\n};\nvar foldM1 = /* #__PURE__ */ foldM(Control_Monad_ST_Internal.monadST);\nvar union = function (m) {\n return mutate(function (s) {\n return foldM1(function (s$prime) {\n return function (k) {\n return function (v) {\n return Foreign_Object_ST.poke(k)(v)(s$prime);\n };\n };\n })(s)(m);\n });\n};\nvar unions = function (dictFoldable) {\n return Data_Foldable.foldl(dictFoldable)(union)($foreign.empty);\n};\nvar unionWith = function (f) {\n return function (m1) {\n return function (m2) {\n return mutate(function (s1) {\n return foldM1(function (s2) {\n return function (k) {\n return function (v1) {\n return Foreign_Object_ST.poke(k)($foreign[\"_lookup\"](v1, function (v2) {\n return f(v1)(v2);\n }, k, m2))(s2);\n };\n };\n })(s1)(m1);\n })(m2);\n };\n };\n};\nvar semigroupObject = function (dictSemigroup) {\n return {\n append: unionWith(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monoidObject = function (dictSemigroup) {\n var semigroupObject1 = semigroupObject(dictSemigroup);\n return {\n mempty: $foreign.empty,\n Semigroup0: function () {\n return semigroupObject1;\n }\n };\n};\nvar fold = /* #__PURE__ */ $foreign[\"_foldM\"](Data_Function.applyFlipped);\nvar foldMap = function (dictMonoid) {\n var append1 = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (f) {\n return fold(function (acc) {\n return function (k) {\n return function (v) {\n return append1(acc)(f(k)(v));\n };\n };\n })(mempty);\n };\n};\nvar 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 foldr(f)(z)(values(m));\n };\n };\n },\n foldMap: function (dictMonoid) {\n var foldMap1 = foldMap(dictMonoid);\n return function (f) {\n return foldMap1(Data_Function[\"const\"](f));\n };\n }\n};\nvar 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 foldr(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};\nvar traversableWithIndexObject = {\n traverseWithIndex: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map = Data_Functor.map(Apply0.Functor0());\n var pure1 = Control_Applicative.pure(dictApplicative);\n return function (f) {\n return function (ms) {\n return fold(function (acc) {\n return function (k) {\n return function (v) {\n return apply(map(Data_Function.flip(insert(k)))(acc))(f(k)(v));\n };\n };\n })(pure1($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};\nvar traversableObject = {\n traverse: function (dictApplicative) {\n var $96 = Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexObject)(dictApplicative);\n return function ($97) {\n return $96(Data_Function[\"const\"]($97));\n };\n },\n sequence: function (dictApplicative) {\n return Data_Traversable.traverse(traversableObject)(dictApplicative)(identity);\n },\n Functor0: function () {\n return functorObject;\n },\n Foldable1: function () {\n return foldableObject;\n }\n};\nvar filterWithKey = function (predicate) {\n return function (m) {\n var go = (function () {\n var step = function (acc) {\n return function (k) {\n return function (v) {\n var $86 = predicate(k)(v);\n if ($86) {\n return Foreign_Object_ST.poke(k)(v)(acc);\n };\n return pure(acc);\n };\n };\n };\n return function __do() {\n var m$prime = Foreign_Object_ST[\"new\"]();\n return foldM1(step)(m$prime)(m)();\n };\n })();\n return $foreign.runST(go);\n };\n};\nvar filterKeys = function (predicate) {\n return filterWithKey(function ($98) {\n return Data_Function[\"const\"](predicate($98));\n });\n};\nvar filter = function (predicate) {\n return filterWithKey(Data_Function[\"const\"](predicate));\n};\nvar eqObject = function (dictEq) {\n var isSubmap1 = isSubmap(dictEq);\n return {\n eq: function (m1) {\n return function (m2) {\n return isSubmap1(m1)(m2) && isSubmap1(m2)(m1);\n };\n }\n };\n};\nvar ordObject = function (dictOrd) {\n var compare = Data_Ord.compare(Data_Ord.ordArray(ordTuple(dictOrd)));\n var eqObject1 = eqObject(dictOrd.Eq0());\n return {\n compare: function (m1) {\n return function (m2) {\n return compare(toAscArray(m1))(toAscArray(m2));\n };\n },\n Eq0: function () {\n return eqObject1;\n }\n };\n};\nvar eq1Object = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqObject(dictEq));\n }\n};\nvar $$delete = function (k) {\n return mutate(Foreign_Object_ST[\"delete\"](k));\n};\nvar pop = function (k) {\n return function (m) {\n return mapFlipped(lookup(k)(m))(function (a) {\n return new Data_Tuple.Tuple(a, $$delete(k)(m));\n });\n };\n};\nvar alter = function (f) {\n return function (k) {\n return function (m) {\n var v = f(lookup(k)(m));\n if (v instanceof Data_Maybe.Nothing) {\n return $$delete(k)(m);\n };\n if (v instanceof Data_Maybe.Just) {\n return insert(k)(v.value0)(m);\n };\n throw new Error(\"Failed pattern match at Foreign.Object (line 210, column 15 - line 212, column 25): \" + [ v.constructor.name ]);\n };\n };\n};\nvar update = function (f) {\n return function (k) {\n return function (m) {\n return alter(Data_Maybe.maybe(Data_Maybe.Nothing.value)(f))(k)(m);\n };\n };\n};\nexport {\n empty,\n size,\n keys,\n all,\n runST,\n toArrayWithKey\n} from \"./foreign.js\";\nexport {\n isEmpty,\n singleton,\n insert,\n lookup,\n toUnfoldable,\n toAscUnfoldable,\n fromFoldable,\n fromFoldableWith,\n fromFoldableWithIndex,\n fromHomogeneous,\n $$delete as delete,\n pop,\n member,\n alter,\n update,\n mapWithKey,\n filterWithKey,\n filterKeys,\n filter,\n values,\n union,\n unionWith,\n unions,\n isSubmap,\n fold,\n foldMap,\n foldM,\n foldMaybe,\n thawST,\n freezeST,\n functorObject,\n functorWithIndexObject,\n foldableObject,\n foldableWithIndexObject,\n traversableObject,\n traversableWithIndexObject,\n eqObject,\n eq1Object,\n ordObject,\n showObject,\n semigroupObject,\n monoidObject\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Foreign_Object from \"../Foreign.Object/index.js\";\nvar eq = /* #__PURE__ */ Data_Eq.eq(Data_Ordering.eqOrdering);\nvar verbJsonType = function (def) {\n return function (f) {\n return function (g) {\n return g(def)(f);\n };\n };\n};\nvar toJsonType = /* #__PURE__ */ (function () {\n return verbJsonType(Data_Maybe.Nothing.value)(Data_Maybe.Just.create);\n})();\nvar jsonZero = /* #__PURE__ */ $foreign.fromNumber(0.0);\nvar jsonTrue = /* #__PURE__ */ $foreign.fromBoolean(true);\nvar jsonSingletonObject = function (key) {\n return function (val) {\n return $foreign.fromObject(Foreign_Object.singleton(key)(val));\n };\n};\nvar jsonSingletonArray = function (j) {\n return $foreign.fromArray([ j ]);\n};\nvar jsonFalse = /* #__PURE__ */ $foreign.fromBoolean(false);\nvar jsonEmptyString = /* #__PURE__ */ $foreign.fromString(\"\");\nvar jsonEmptyObject = /* #__PURE__ */ $foreign.fromObject(Foreign_Object.empty);\nvar jsonEmptyArray = /* #__PURE__ */ $foreign.fromArray([ ]);\nvar isJsonType = /* #__PURE__ */ verbJsonType(false)(/* #__PURE__ */ Data_Function[\"const\"](true));\nvar 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};\nvar eqJson = {\n eq: function (j1) {\n return function (j2) {\n return eq(Data_Ord.compare(ordJson)(j1)(j2))(Data_Ordering.EQ.value);\n };\n }\n};\nvar eqJNull = {\n eq: function (v) {\n return function (v1) {\n return true;\n };\n }\n};\nvar ordJNull = {\n compare: function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n },\n Eq0: function () {\n return eqJNull;\n }\n};\nvar 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};\nvar isString = /* #__PURE__ */ isJsonType(caseJsonString);\nvar toString = /* #__PURE__ */ toJsonType(caseJsonString);\nvar 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};\nvar isObject = /* #__PURE__ */ isJsonType(caseJsonObject);\nvar toObject = /* #__PURE__ */ toJsonType(caseJsonObject);\nvar 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};\nvar isNumber = /* #__PURE__ */ isJsonType(caseJsonNumber);\nvar toNumber = /* #__PURE__ */ toJsonType(caseJsonNumber);\nvar 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};\nvar isNull = /* #__PURE__ */ isJsonType(caseJsonNull);\nvar toNull = /* #__PURE__ */ toJsonType(caseJsonNull);\nvar caseJsonBoolean = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n};\nvar isBoolean = /* #__PURE__ */ isJsonType(caseJsonBoolean);\nvar toBoolean = /* #__PURE__ */ toJsonType(caseJsonBoolean);\nvar 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};\nvar isArray = /* #__PURE__ */ isJsonType(caseJsonArray);\nvar toArray = /* #__PURE__ */ toJsonType(caseJsonArray);\nvar caseJson = function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return function (f) {\n return function (json) {\n return $foreign[\"_caseJson\"](a, b, c, d, e, f, json);\n };\n };\n };\n };\n };\n };\n};\nexport {\n fromBoolean,\n fromNumber,\n fromString,\n fromArray,\n fromObject,\n jsonNull,\n stringify,\n stringifyWithIndent\n} from \"./foreign.js\";\nexport {\n caseJson,\n caseJsonNull,\n caseJsonBoolean,\n caseJsonNumber,\n caseJsonString,\n caseJsonArray,\n caseJsonObject,\n isNull,\n isBoolean,\n isNumber,\n isString,\n isArray,\n isObject,\n toNull,\n toBoolean,\n toNumber,\n toString,\n toArray,\n toObject,\n jsonTrue,\n jsonFalse,\n jsonZero,\n jsonEmptyString,\n jsonEmptyArray,\n jsonSingletonArray,\n jsonEmptyObject,\n jsonSingletonObject,\n eqJson,\n ordJson\n};\n", "export function _jsonParser(fail, succ, s) {\n try {\n return succ(JSON.parse(s));\n }\n catch (e) {\n return fail(e.message);\n }\n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nvar jsonParser = function (j) {\n return $foreign[\"_jsonParser\"](Data_Either.Left.create, Data_Either.Right.create, j);\n};\nexport {\n jsonParser\n};\n", "export const _localeCompare = function (lt) {\n return function (eq) {\n return function (gt) {\n return function (s1) {\n return function (s2) {\n var result = s1.localeCompare(s2);\n return result < 0 ? lt : result > 0 ? gt : eq;\n };\n };\n };\n };\n};\n\nexport const replace = function (s1) {\n return function (s2) {\n return function (s3) {\n return s3.replace(s1, s2);\n };\n };\n};\n\nexport const replaceAll = function (s1) {\n return function (s2) {\n return function (s3) {\n return s3.replace(new RegExp(s1.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\"), \"g\"), s2); // eslint-disable-line no-useless-escape\n };\n };\n};\n\nexport const split = function (sep) {\n return function (s) {\n return s.split(sep);\n };\n};\n\nexport const toLower = function (s) {\n return s.toLowerCase();\n};\n\nexport const toUpper = function (s) {\n return s.toUpperCase();\n};\n\nexport const trim = function (s) {\n return s.trim();\n};\n\nexport const joinWith = function (s) {\n return function (xs) {\n return xs.join(s);\n };\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar $$null = function (s) {\n return s === \"\";\n};\nvar localeCompare = /* #__PURE__ */ (function () {\n return $foreign[\"_localeCompare\"](Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value);\n})();\nexport {\n replace,\n replaceAll,\n split,\n toLower,\n toUpper,\n trim,\n joinWith\n} from \"./foreign.js\";\nexport {\n $$null as null,\n localeCompare\n};\n", "// A helper which transforms the result of encodeURIComponent to be compliant\n// with RFC3986, 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\nfunction encodeURIComponent_to_RFC3986(input) {\n return input.replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16);\n });\n}\n\n// A helper which transforms the result of encodeURI to be compliant\n// with RFC3986, as described in the MDN documentation here:\n//\n// https://web.archive.org/web/20210117175449/https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI#encoding_for_ipv6\nfunction encodeURI_to_RFC3986(input) {\n return input.replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n}\n\nexport function _encodeURIComponent(fail, succeed, input) {\n try {\n return succeed(encodeURIComponent_to_RFC3986(encodeURIComponent(input)));\n } catch (err) {\n return fail(err);\n }\n}\n\nexport function _encodeFormURLComponent(fail, succeed, input) {\n try {\n return succeed(encodeURIComponent_to_RFC3986(encodeURIComponent(input)).replace(/%20/g, \"+\"));\n } catch (err) {\n return fail(err);\n }\n}\n\nexport function _decodeURIComponent(fail, succeed, input) {\n try {\n return succeed(decodeURIComponent(input));\n } catch (err) {\n return fail(err);\n }\n}\n\nexport function _decodeFormURLComponent(fail, succeed, input) {\n return _decodeURIComponent(fail, succeed, input.replace(/\\+/g, \" \"));\n}\n\nexport function _encodeURI(fail, succeed, input) {\n try {\n return succeed(encodeURI_to_RFC3986(encodeURI(input)));\n } catch (err) {\n return fail(err);\n }\n}\n\nexport function _decodeURI(fail, succeed, input) {\n try {\n return succeed(decodeURI(input));\n } catch (err) {\n return fail(err);\n }\n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Function_Uncurried from \"../Data.Function.Uncurried/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nvar $$encodeURIComponent = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($foreign[\"_encodeURIComponent\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nvar $$encodeURI = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($foreign[\"_encodeURI\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nvar encodeFormURLComponent = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($foreign[\"_encodeFormURLComponent\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nvar $$decodeURIComponent = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($foreign[\"_decodeURIComponent\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nvar $$decodeURI = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($foreign[\"_decodeURI\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nvar decodeFormURLComponent = /* #__PURE__ */ (function () {\n return Data_Function_Uncurried.runFn3($foreign[\"_decodeFormURLComponent\"])(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n})();\nexport {\n $$encodeURIComponent as encodeURIComponent,\n encodeFormURLComponent,\n $$encodeURI as encodeURI,\n $$decodeURIComponent as decodeURIComponent,\n decodeFormURLComponent,\n $$decodeURI as decodeURI\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as JSURI from \"../JSURI/index.js\";\nvar show = /* #__PURE__ */ Data_Show.show(/* #__PURE__ */ Data_Show.showArray(/* #__PURE__ */ Data_Tuple.showTuple(Data_Show.showString)(/* #__PURE__ */ Data_Maybe.showMaybe(Data_Show.showString))));\nvar apply = /* #__PURE__ */ Control_Apply.apply(Data_Maybe.applyMaybe);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar traverse = /* #__PURE__ */ Data_Traversable.traverse(Data_Traversable.traversableArray)(Data_Maybe.applicativeMaybe);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Data_Maybe.applicativeMaybe);\nvar FormURLEncoded = function (x) {\n return x;\n};\nvar toArray = function (v) {\n return v;\n};\nvar showFormUrlEncoded = {\n show: function (v) {\n return \"(FormURLEncoded \" + (show(v) + \")\");\n }\n};\nvar semigroupFormUrlEncoded = Data_Semigroup.semigroupArray;\nvar ordFormUrlEncoded = /* #__PURE__ */ Data_Ord.ordArray(/* #__PURE__ */ Data_Tuple.ordTuple(Data_Ord.ordString)(/* #__PURE__ */ Data_Maybe.ordMaybe(Data_Ord.ordString)));\nvar newtypeFormUrlEncoded = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidFormUrlEncoded = Data_Monoid.monoidArray;\nvar fromArray = FormURLEncoded;\nvar eqFormUrlEncoded = /* #__PURE__ */ Data_Eq.eqArray(/* #__PURE__ */ Data_Tuple.eqTuple(Data_Eq.eqString)(/* #__PURE__ */ Data_Maybe.eqMaybe(Data_Eq.eqString)));\nvar encode = /* #__PURE__ */ (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 apply(map(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 16 - line 39, column 114): \" + [ v.constructor.name ]);\n };\n var $37 = map(Data_String_Common.joinWith(\"&\"));\n var $38 = traverse(encodePart);\n return function ($39) {\n return $37($38(toArray($39)));\n };\n})();\nvar decode = /* #__PURE__ */ (function () {\n var decodePart = (function () {\n var $40 = Data_String_Common.split(\"=\");\n return function ($41) {\n return (function (v) {\n if (v.length === 2) {\n return apply(map(function (key) {\n return function (val) {\n return new Data_Tuple.Tuple(key, new Data_Maybe.Just(val));\n };\n })(JSURI.decodeFormURLComponent(v[0])))(JSURI.decodeFormURLComponent(v[1]));\n };\n if (v.length === 1) {\n return apply(map(Data_Tuple.Tuple.create)(JSURI.decodeFormURLComponent(v[0])))(pure(Data_Maybe.Nothing.value));\n };\n return Data_Maybe.Nothing.value;\n })($40($41));\n };\n })();\n var $42 = map(FormURLEncoded);\n var $43 = traverse(decodePart);\n var $44 = Data_String_Common.split(\"&\");\n return function ($45) {\n return $42($43($44($45)));\n };\n})();\nexport {\n FormURLEncoded,\n fromArray,\n toArray,\n encode,\n decode,\n newtypeFormUrlEncoded,\n eqFormUrlEncoded,\n ordFormUrlEncoded,\n semigroupFormUrlEncoded,\n monoidFormUrlEncoded,\n showFormUrlEncoded\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showString);\nvar compare = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordString);\nvar OPTIONS = /* #__PURE__ */ (function () {\n function OPTIONS() {\n\n };\n OPTIONS.value = new OPTIONS();\n return OPTIONS;\n})();\nvar GET = /* #__PURE__ */ (function () {\n function GET() {\n\n };\n GET.value = new GET();\n return GET;\n})();\nvar HEAD = /* #__PURE__ */ (function () {\n function HEAD() {\n\n };\n HEAD.value = new HEAD();\n return HEAD;\n})();\nvar POST = /* #__PURE__ */ (function () {\n function POST() {\n\n };\n POST.value = new POST();\n return POST;\n})();\nvar PUT = /* #__PURE__ */ (function () {\n function PUT() {\n\n };\n PUT.value = new PUT();\n return PUT;\n})();\nvar DELETE = /* #__PURE__ */ (function () {\n function DELETE() {\n\n };\n DELETE.value = new DELETE();\n return DELETE;\n})();\nvar TRACE = /* #__PURE__ */ (function () {\n function TRACE() {\n\n };\n TRACE.value = new TRACE();\n return TRACE;\n})();\nvar CONNECT = /* #__PURE__ */ (function () {\n function CONNECT() {\n\n };\n CONNECT.value = new CONNECT();\n return CONNECT;\n})();\nvar PROPFIND = /* #__PURE__ */ (function () {\n function PROPFIND() {\n\n };\n PROPFIND.value = new PROPFIND();\n return PROPFIND;\n})();\nvar PROPPATCH = /* #__PURE__ */ (function () {\n function PROPPATCH() {\n\n };\n PROPPATCH.value = new PROPPATCH();\n return PROPPATCH;\n})();\nvar MKCOL = /* #__PURE__ */ (function () {\n function MKCOL() {\n\n };\n MKCOL.value = new MKCOL();\n return MKCOL;\n})();\nvar COPY = /* #__PURE__ */ (function () {\n function COPY() {\n\n };\n COPY.value = new COPY();\n return COPY;\n})();\nvar MOVE = /* #__PURE__ */ (function () {\n function MOVE() {\n\n };\n MOVE.value = new MOVE();\n return MOVE;\n})();\nvar LOCK = /* #__PURE__ */ (function () {\n function LOCK() {\n\n };\n LOCK.value = new LOCK();\n return LOCK;\n})();\nvar UNLOCK = /* #__PURE__ */ (function () {\n function UNLOCK() {\n\n };\n UNLOCK.value = new UNLOCK();\n return UNLOCK;\n})();\nvar PATCH = /* #__PURE__ */ (function () {\n function PATCH() {\n\n };\n PATCH.value = new PATCH();\n return PATCH;\n})();\nvar CustomMethod = function (x) {\n return x;\n};\nvar unCustomMethod = function (v) {\n return v;\n};\nvar 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};\nvar showCustomMethod = {\n show: function (v) {\n return \"(CustomMethod \" + (show(v) + \")\");\n }\n};\nvar print = /* #__PURE__ */ Data_Either.either(/* #__PURE__ */ Data_Show.show(showMethod))(unCustomMethod);\nvar parse = function (handleMethod) {\n return function (handleUnknown) {\n return function (s) {\n var v = Data_String_Common.toUpper(s);\n if (v === \"OPTIONS\") {\n return handleMethod(OPTIONS.value);\n };\n if (v === \"GET\") {\n return handleMethod(GET.value);\n };\n if (v === \"HEAD\") {\n return handleMethod(HEAD.value);\n };\n if (v === \"POST\") {\n return handleMethod(POST.value);\n };\n if (v === \"PUT\") {\n return handleMethod(PUT.value);\n };\n if (v === \"DELETE\") {\n return handleMethod(DELETE.value);\n };\n if (v === \"TRACE\") {\n return handleMethod(TRACE.value);\n };\n if (v === \"CONNECT\") {\n return handleMethod(CONNECT.value);\n };\n if (v === \"PROPFIND\") {\n return handleMethod(PROPFIND.value);\n };\n if (v === \"PROPPATCH\") {\n return handleMethod(PROPPATCH.value);\n };\n if (v === \"MKCOL\") {\n return handleMethod(MKCOL.value);\n };\n if (v === \"COPY\") {\n return handleMethod(COPY.value);\n };\n if (v === \"MOVE\") {\n return handleMethod(MOVE.value);\n };\n if (v === \"LOCK\") {\n return handleMethod(LOCK.value);\n };\n if (v === \"UNLOCK\") {\n return handleMethod(UNLOCK.value);\n };\n if (v === \"PATCH\") {\n return handleMethod(PATCH.value);\n };\n return handleUnknown(v);\n };\n };\n};\nvar fromString = /* #__PURE__ */ (function () {\n return parse(Data_Either.Left.create)(function ($34) {\n return Data_Either.Right.create(CustomMethod($34));\n });\n})();\nvar eqMethod = {\n eq: function (x) {\n return function (y) {\n if (x instanceof OPTIONS && y instanceof OPTIONS) {\n return true;\n };\n if (x instanceof GET && y instanceof GET) {\n return true;\n };\n if (x instanceof HEAD && y instanceof HEAD) {\n return true;\n };\n if (x instanceof POST && y instanceof POST) {\n return true;\n };\n if (x instanceof PUT && y instanceof PUT) {\n return true;\n };\n if (x instanceof DELETE && y instanceof DELETE) {\n return true;\n };\n if (x instanceof TRACE && y instanceof TRACE) {\n return true;\n };\n if (x instanceof CONNECT && y instanceof CONNECT) {\n return true;\n };\n if (x instanceof PROPFIND && y instanceof PROPFIND) {\n return true;\n };\n if (x instanceof PROPPATCH && y instanceof PROPPATCH) {\n return true;\n };\n if (x instanceof MKCOL && y instanceof MKCOL) {\n return true;\n };\n if (x instanceof COPY && y instanceof COPY) {\n return true;\n };\n if (x instanceof MOVE && y instanceof MOVE) {\n return true;\n };\n if (x instanceof LOCK && y instanceof LOCK) {\n return true;\n };\n if (x instanceof UNLOCK && y instanceof UNLOCK) {\n return true;\n };\n if (x instanceof PATCH && y instanceof PATCH) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordMethod = {\n compare: function (x) {\n return function (y) {\n if (x instanceof OPTIONS && y instanceof OPTIONS) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof OPTIONS) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof OPTIONS) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof GET && y instanceof GET) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof GET) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof GET) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof HEAD && y instanceof HEAD) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof HEAD) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof HEAD) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof POST && y instanceof POST) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof POST) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof POST) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof PUT && y instanceof PUT) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof PUT) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof PUT) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof DELETE && y instanceof DELETE) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof DELETE) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof DELETE) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof TRACE && y instanceof TRACE) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof TRACE) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof TRACE) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof CONNECT && y instanceof CONNECT) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof CONNECT) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof CONNECT) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof PROPFIND && y instanceof PROPFIND) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof PROPFIND) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof PROPFIND) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof PROPPATCH && y instanceof PROPPATCH) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof PROPPATCH) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof PROPPATCH) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof MKCOL && y instanceof MKCOL) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof MKCOL) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof MKCOL) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof COPY && y instanceof COPY) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof COPY) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof COPY) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof MOVE && y instanceof MOVE) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof MOVE) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof MOVE) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof LOCK && y instanceof LOCK) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof LOCK) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof LOCK) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof UNLOCK && y instanceof UNLOCK) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof UNLOCK) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof UNLOCK) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof PATCH && y instanceof PATCH) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Data.HTTP.Method (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqMethod;\n }\n};\nvar eqCustomMethod = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordCustomMethod = {\n compare: function (x) {\n return function (y) {\n return compare(x)(y);\n };\n },\n Eq0: function () {\n return eqCustomMethod;\n }\n};\nexport {\n OPTIONS,\n GET,\n HEAD,\n POST,\n PUT,\n DELETE,\n TRACE,\n CONNECT,\n PROPFIND,\n PROPPATCH,\n MKCOL,\n COPY,\n MOVE,\n LOCK,\n UNLOCK,\n PATCH,\n unCustomMethod,\n fromString,\n print,\n eqMethod,\n ordMethod,\n showMethod,\n eqCustomMethod,\n ordCustomMethod,\n showCustomMethod\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_FunctorWithIndex from \"../Data.FunctorWithIndex/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semigroup_Foldable from \"../Data.Semigroup.Foldable/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Tuple.functorTuple);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar NonEmpty = /* #__PURE__ */ (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})();\nvar unfoldable1NonEmpty = function (dictUnfoldable) {\n var unfoldr = Data_Unfoldable.unfoldr(dictUnfoldable);\n return {\n unfoldr1: function (f) {\n return function (b) {\n return Data_Tuple.uncurry(NonEmpty.create)(map(unfoldr(map1(f)))(f(b)));\n };\n }\n };\n};\nvar tail = function (v) {\n return v.value1;\n};\nvar singleton = function (dictPlus) {\n var empty = Control_Plus.empty(dictPlus);\n return function (a) {\n return new NonEmpty(a, empty);\n };\n};\nvar showNonEmpty = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return function (dictShow1) {\n var show1 = Data_Show.show(dictShow1);\n return {\n show: function (v) {\n return \"(NonEmpty \" + (show(v.value0) + (\" \" + (show1(v.value1) + \")\")));\n }\n };\n };\n};\nvar semigroupNonEmpty = function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n return function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return {\n append: function (v) {\n return function (v1) {\n return new NonEmpty(v.value0, append1(v.value1)(append1(pure(v1.value0))(v1.value1)));\n };\n }\n };\n };\n};\nvar oneOf = function (dictAlternative) {\n var alt = Control_Alt.alt((dictAlternative.Plus1()).Alt0());\n var pure = Control_Applicative.pure(dictAlternative.Applicative0());\n return function (v) {\n return alt(pure(v.value0))(v.value1);\n };\n};\nvar head = function (v) {\n return v.value0;\n};\nvar functorNonEmpty = function (dictFunctor) {\n var map2 = Data_Functor.map(dictFunctor);\n return {\n map: function (f) {\n return function (m) {\n return new NonEmpty(f(m.value0), map2(f)(m.value1));\n };\n }\n };\n};\nvar functorWithIndex = function (dictFunctorWithIndex) {\n var mapWithIndex = Data_FunctorWithIndex.mapWithIndex(dictFunctorWithIndex);\n var functorNonEmpty1 = functorNonEmpty(dictFunctorWithIndex.Functor0());\n return {\n mapWithIndex: function (f) {\n return function (v) {\n return new NonEmpty(f(Data_Maybe.Nothing.value)(v.value0), mapWithIndex(function ($245) {\n return f(Data_Maybe.Just.create($245));\n })(v.value1));\n };\n },\n Functor0: function () {\n return functorNonEmpty1;\n }\n };\n};\nvar fromNonEmpty = function (f) {\n return function (v) {\n return f(v.value0)(v.value1);\n };\n};\nvar foldableNonEmpty = function (dictFoldable) {\n var foldMap = Data_Foldable.foldMap(dictFoldable);\n var foldl = Data_Foldable.foldl(dictFoldable);\n var foldr = Data_Foldable.foldr(dictFoldable);\n return {\n foldMap: function (dictMonoid) {\n var append1 = Data_Semigroup.append(dictMonoid.Semigroup0());\n var foldMap1 = foldMap(dictMonoid);\n return function (f) {\n return function (v) {\n return append1(f(v.value0))(foldMap1(f)(v.value1));\n };\n };\n },\n foldl: function (f) {\n return function (b) {\n return function (v) {\n return foldl(f)(f(b)(v.value0))(v.value1);\n };\n };\n },\n foldr: function (f) {\n return function (b) {\n return function (v) {\n return f(v.value0)(foldr(f)(b)(v.value1));\n };\n };\n }\n };\n};\nvar foldableWithIndexNonEmpty = function (dictFoldableWithIndex) {\n var foldMapWithIndex = Data_FoldableWithIndex.foldMapWithIndex(dictFoldableWithIndex);\n var foldlWithIndex = Data_FoldableWithIndex.foldlWithIndex(dictFoldableWithIndex);\n var foldrWithIndex = Data_FoldableWithIndex.foldrWithIndex(dictFoldableWithIndex);\n var foldableNonEmpty1 = foldableNonEmpty(dictFoldableWithIndex.Foldable0());\n return {\n foldMapWithIndex: function (dictMonoid) {\n var append1 = Data_Semigroup.append(dictMonoid.Semigroup0());\n var foldMapWithIndex1 = foldMapWithIndex(dictMonoid);\n return function (f) {\n return function (v) {\n return append1(f(Data_Maybe.Nothing.value)(v.value0))(foldMapWithIndex1(function ($246) {\n return f(Data_Maybe.Just.create($246));\n })(v.value1));\n };\n };\n },\n foldlWithIndex: function (f) {\n return function (b) {\n return function (v) {\n return foldlWithIndex(function ($247) {\n return f(Data_Maybe.Just.create($247));\n })(f(Data_Maybe.Nothing.value)(b)(v.value0))(v.value1);\n };\n };\n },\n foldrWithIndex: function (f) {\n return function (b) {\n return function (v) {\n return f(Data_Maybe.Nothing.value)(v.value0)(foldrWithIndex(function ($248) {\n return f(Data_Maybe.Just.create($248));\n })(b)(v.value1));\n };\n };\n },\n Foldable0: function () {\n return foldableNonEmpty1;\n }\n };\n};\nvar traversableNonEmpty = function (dictTraversable) {\n var sequence = Data_Traversable.sequence(dictTraversable);\n var traverse = Data_Traversable.traverse(dictTraversable);\n var functorNonEmpty1 = functorNonEmpty(dictTraversable.Functor0());\n var foldableNonEmpty1 = foldableNonEmpty(dictTraversable.Foldable1());\n return {\n sequence: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map2 = Data_Functor.map(Apply0.Functor0());\n var sequence1 = sequence(dictApplicative);\n return function (v) {\n return apply(map2(NonEmpty.create)(v.value0))(sequence1(v.value1));\n };\n },\n traverse: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map2 = Data_Functor.map(Apply0.Functor0());\n var traverse1 = traverse(dictApplicative);\n return function (f) {\n return function (v) {\n return apply(map2(NonEmpty.create)(f(v.value0)))(traverse1(f)(v.value1));\n };\n };\n },\n Functor0: function () {\n return functorNonEmpty1;\n },\n Foldable1: function () {\n return foldableNonEmpty1;\n }\n };\n};\nvar traversableWithIndexNonEmpty = function (dictTraversableWithIndex) {\n var traverseWithIndex = Data_TraversableWithIndex.traverseWithIndex(dictTraversableWithIndex);\n var functorWithIndex1 = functorWithIndex(dictTraversableWithIndex.FunctorWithIndex0());\n var foldableWithIndexNonEmpty1 = foldableWithIndexNonEmpty(dictTraversableWithIndex.FoldableWithIndex1());\n var traversableNonEmpty1 = traversableNonEmpty(dictTraversableWithIndex.Traversable2());\n return {\n traverseWithIndex: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map2 = Data_Functor.map(Apply0.Functor0());\n var traverseWithIndex1 = traverseWithIndex(dictApplicative);\n return function (f) {\n return function (v) {\n return apply(map2(NonEmpty.create)(f(Data_Maybe.Nothing.value)(v.value0)))(traverseWithIndex1(function ($249) {\n return f(Data_Maybe.Just.create($249));\n })(v.value1));\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndex1;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexNonEmpty1;\n },\n Traversable2: function () {\n return traversableNonEmpty1;\n }\n };\n};\nvar foldable1NonEmpty = function (dictFoldable) {\n var foldl = Data_Foldable.foldl(dictFoldable);\n var foldr = Data_Foldable.foldr(dictFoldable);\n var foldableNonEmpty1 = foldableNonEmpty(dictFoldable);\n return {\n foldMap1: function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return function (f) {\n return function (v) {\n return foldl(function (s) {\n return function (a1) {\n return append1(s)(f(a1));\n };\n })(f(v.value0))(v.value1);\n };\n };\n },\n foldr1: function (f) {\n return function (v) {\n return Data_Maybe.maybe(v.value0)(f(v.value0))(foldr(function (a1) {\n var $250 = Data_Maybe.maybe(a1)(f(a1));\n return function ($251) {\n return Data_Maybe.Just.create($250($251));\n };\n })(Data_Maybe.Nothing.value)(v.value1));\n };\n },\n foldl1: function (f) {\n return function (v) {\n return foldl(f)(v.value0)(v.value1);\n };\n },\n Foldable0: function () {\n return foldableNonEmpty1;\n }\n };\n};\nvar foldl1 = function (dictFoldable) {\n return Data_Semigroup_Foldable.foldl1(foldable1NonEmpty(dictFoldable));\n};\nvar eqNonEmpty = function (dictEq1) {\n var eq1 = Data_Eq.eq1(dictEq1);\n return function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n var eq11 = eq1(dictEq);\n return {\n eq: function (x) {\n return function (y) {\n return eq(x.value0)(y.value0) && eq11(x.value1)(y.value1);\n };\n }\n };\n };\n};\nvar ordNonEmpty = function (dictOrd1) {\n var compare1 = Data_Ord.compare1(dictOrd1);\n var eqNonEmpty1 = eqNonEmpty(dictOrd1.Eq10());\n return function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n var compare11 = compare1(dictOrd);\n var eqNonEmpty2 = eqNonEmpty1(dictOrd.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n var v = compare(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 compare11(x.value1)(y.value1);\n };\n },\n Eq0: function () {\n return eqNonEmpty2;\n }\n };\n };\n};\nvar eq1NonEmpty = function (dictEq1) {\n var eqNonEmpty1 = eqNonEmpty(dictEq1);\n return {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqNonEmpty1(dictEq));\n }\n };\n};\nvar ord1NonEmpty = function (dictOrd1) {\n var ordNonEmpty1 = ordNonEmpty(dictOrd1);\n var eq1NonEmpty1 = eq1NonEmpty(dictOrd1.Eq10());\n return {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordNonEmpty1(dictOrd));\n },\n Eq10: function () {\n return eq1NonEmpty1;\n }\n };\n};\nexport {\n NonEmpty,\n singleton,\n foldl1,\n fromNonEmpty,\n oneOf,\n head,\n tail,\n showNonEmpty,\n eqNonEmpty,\n eq1NonEmpty,\n ordNonEmpty,\n ord1NonEmpty,\n functorNonEmpty,\n functorWithIndex,\n foldableNonEmpty,\n foldableWithIndexNonEmpty,\n traversableNonEmpty,\n traversableWithIndexNonEmpty,\n foldable1NonEmpty,\n unfoldable1NonEmpty,\n semigroupNonEmpty\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_FunctorWithIndex from \"../Data.FunctorWithIndex/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semigroup_Traversable from \"../Data.Semigroup.Traversable/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar add = /* #__PURE__ */ Data_Semiring.add(Data_Semiring.semiringInt);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar Nil = /* #__PURE__ */ (function () {\n function Nil() {\n\n };\n Nil.value = new Nil();\n return Nil;\n})();\nvar Cons = /* #__PURE__ */ (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})();\nvar NonEmptyList = function (x) {\n return x;\n};\nvar toList = function (v) {\n return new Cons(v.value0, v.value1);\n};\nvar newtypeNonEmptyList = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar nelCons = function (a) {\n return function (v) {\n return new Data_NonEmpty.NonEmpty(a, new Cons(v.value0, v.value1));\n };\n};\nvar listMap = function (f) {\n var chunkedRevMap = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Cons && (v1.value1 instanceof Cons && v1.value1.value1 instanceof Cons)) {\n $tco_var_v = new Cons(v1, v);\n $copy_v1 = v1.value1.value1.value1;\n return;\n };\n var unrolledMap = function (v2) {\n if (v2 instanceof Cons && (v2.value1 instanceof Cons && v2.value1.value1 instanceof Nil)) {\n return new Cons(f(v2.value0), new Cons(f(v2.value1.value0), Nil.value));\n };\n if (v2 instanceof Cons && v2.value1 instanceof Nil) {\n return new Cons(f(v2.value0), Nil.value);\n };\n return Nil.value;\n };\n var reverseUnrolledMap = function ($copy_v2) {\n return function ($copy_v3) {\n var $tco_var_v2 = $copy_v2;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(v2, v3) {\n if (v2 instanceof Cons && (v2.value0 instanceof Cons && (v2.value0.value1 instanceof Cons && v2.value0.value1.value1 instanceof Cons))) {\n $tco_var_v2 = v2.value1;\n $copy_v3 = new Cons(f(v2.value0.value0), new Cons(f(v2.value0.value1.value0), new Cons(f(v2.value0.value1.value1.value0), v3)));\n return;\n };\n $tco_done1 = true;\n return v3;\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_v2, $copy_v3);\n };\n return $tco_result;\n };\n };\n $tco_done = true;\n return reverseUnrolledMap(v)(unrolledMap(v1));\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return chunkedRevMap(Nil.value);\n};\nvar functorList = {\n map: listMap\n};\nvar map = /* #__PURE__ */ Data_Functor.map(functorList);\nvar functorNonEmptyList = /* #__PURE__ */ Data_NonEmpty.functorNonEmpty(functorList);\nvar foldableList = {\n foldr: function (f) {\n return function (b) {\n var rev = (function () {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Nil) {\n $tco_done = true;\n return v;\n };\n if (v1 instanceof Cons) {\n $tco_var_v = new Cons(v1.value0, v);\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 107, column 7 - line 107, column 23): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(Nil.value);\n })();\n var $284 = Data_Foldable.foldl(foldableList)(Data_Function.flip(f))(b);\n return function ($285) {\n return $284(rev($285));\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 111, column 12 - line 113, 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 var append2 = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (f) {\n return Data_Foldable.foldl(foldableList)(function (acc) {\n var $286 = append2(acc);\n return function ($287) {\n return $286(f($287));\n };\n })(mempty);\n };\n }\n};\nvar foldl = /* #__PURE__ */ Data_Foldable.foldl(foldableList);\nvar foldr = /* #__PURE__ */ Data_Foldable.foldr(foldableList);\nvar intercalate = /* #__PURE__ */ Data_Foldable.intercalate(foldableList)(Data_Monoid.monoidString);\nvar foldableNonEmptyList = /* #__PURE__ */ Data_NonEmpty.foldableNonEmpty(foldableList);\nvar foldableWithIndexList = {\n foldrWithIndex: function (f) {\n return function (b) {\n return function (xs) {\n var v = (function () {\n var rev = foldl(function (v1) {\n return function (a) {\n return new Data_Tuple.Tuple(v1.value0 + 1 | 0, new Cons(a, v1.value1));\n };\n });\n return rev(new Data_Tuple.Tuple(0, Nil.value))(xs);\n })();\n return Data_Tuple.snd(foldl(function (v1) {\n return function (a) {\n return new Data_Tuple.Tuple(v1.value0 - 1 | 0, f(v1.value0 - 1 | 0)(a)(v1.value1));\n };\n })(new Data_Tuple.Tuple(v.value0, b))(v.value1));\n };\n };\n },\n foldlWithIndex: function (f) {\n return function (acc) {\n var $288 = foldl(function (v) {\n return function (a) {\n return new Data_Tuple.Tuple(v.value0 + 1 | 0, f(v.value0)(v.value1)(a));\n };\n })(new Data_Tuple.Tuple(0, acc));\n return function ($289) {\n return Data_Tuple.snd($288($289));\n };\n };\n },\n foldMapWithIndex: function (dictMonoid) {\n var append2 = Data_Semigroup.append(dictMonoid.Semigroup0());\n var mempty = Data_Monoid.mempty(dictMonoid);\n return function (f) {\n return Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexList)(function (i) {\n return function (acc) {\n var $290 = append2(acc);\n var $291 = f(i);\n return function ($292) {\n return $290($291($292));\n };\n };\n })(mempty);\n };\n },\n Foldable0: function () {\n return foldableList;\n }\n};\nvar foldableWithIndexNonEmpty = /* #__PURE__ */ Data_NonEmpty.foldableWithIndexNonEmpty(foldableWithIndexList);\nvar foldMapWithIndex = /* #__PURE__ */ Data_FoldableWithIndex.foldMapWithIndex(foldableWithIndexNonEmpty);\nvar foldlWithIndex = /* #__PURE__ */ Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexNonEmpty);\nvar foldrWithIndex = /* #__PURE__ */ Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexNonEmpty);\nvar foldrWithIndex1 = /* #__PURE__ */ Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexList);\nvar foldlWithIndex1 = /* #__PURE__ */ Data_FoldableWithIndex.foldlWithIndex(foldableWithIndexList);\nvar foldableWithIndexNonEmptyList = {\n foldMapWithIndex: function (dictMonoid) {\n var foldMapWithIndex1 = foldMapWithIndex(dictMonoid);\n return function (f) {\n return function (v) {\n return foldMapWithIndex1((function () {\n var $293 = Data_Maybe.maybe(0)(add(1));\n return function ($294) {\n return f($293($294));\n };\n })())(v);\n };\n };\n },\n foldlWithIndex: function (f) {\n return function (b) {\n return function (v) {\n return foldlWithIndex((function () {\n var $295 = Data_Maybe.maybe(0)(add(1));\n return function ($296) {\n return f($295($296));\n };\n })())(b)(v);\n };\n };\n },\n foldrWithIndex: function (f) {\n return function (b) {\n return function (v) {\n return foldrWithIndex((function () {\n var $297 = Data_Maybe.maybe(0)(add(1));\n return function ($298) {\n return f($297($298));\n };\n })())(b)(v);\n };\n };\n },\n Foldable0: function () {\n return foldableNonEmptyList;\n }\n};\nvar functorWithIndexList = {\n mapWithIndex: function (f) {\n return foldrWithIndex1(function (i) {\n return function (x) {\n return function (acc) {\n return new Cons(f(i)(x), acc);\n };\n };\n })(Nil.value);\n },\n Functor0: function () {\n return functorList;\n }\n};\nvar mapWithIndex = /* #__PURE__ */ Data_FunctorWithIndex.mapWithIndex(/* #__PURE__ */ Data_NonEmpty.functorWithIndex(functorWithIndexList));\nvar functorWithIndexNonEmptyList = {\n mapWithIndex: function (fn) {\n return function (v) {\n return mapWithIndex((function () {\n var $299 = Data_Maybe.maybe(0)(add(1));\n return function ($300) {\n return fn($299($300));\n };\n })())(v);\n };\n },\n Functor0: function () {\n return functorNonEmptyList;\n }\n};\nvar semigroupList = {\n append: function (xs) {\n return function (ys) {\n return foldr(Cons.create)(ys)(xs);\n };\n }\n};\nvar append1 = /* #__PURE__ */ Data_Semigroup.append(semigroupList);\nvar monoidList = /* #__PURE__ */ (function () {\n return {\n mempty: Nil.value,\n Semigroup0: function () {\n return semigroupList;\n }\n };\n})();\nvar semigroupNonEmptyList = {\n append: function (v) {\n return function (as$prime) {\n return new Data_NonEmpty.NonEmpty(v.value0, append1(v.value1)(toList(as$prime)));\n };\n }\n};\nvar showList = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (v) {\n if (v instanceof Nil) {\n return \"Nil\";\n };\n return \"(\" + (intercalate(\" : \")(map(show)(v)) + \" : Nil)\");\n }\n };\n};\nvar showNonEmptyList = function (dictShow) {\n var show = Data_Show.show(Data_NonEmpty.showNonEmpty(dictShow)(showList(dictShow)));\n return {\n show: function (v) {\n return \"(NonEmptyList \" + (show(v) + \")\");\n }\n };\n};\nvar traversableList = {\n traverse: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var map1 = Data_Functor.map(Apply0.Functor0());\n var lift2 = Control_Apply.lift2(Apply0);\n var pure1 = Control_Applicative.pure(dictApplicative);\n return function (f) {\n var $301 = map1(foldl(Data_Function.flip(Cons.create))(Nil.value));\n var $302 = foldl(function (acc) {\n var $304 = lift2(Data_Function.flip(Cons.create))(acc);\n return function ($305) {\n return $304(f($305));\n };\n })(pure1(Nil.value));\n return function ($303) {\n return $301($302($303));\n };\n };\n },\n sequence: function (dictApplicative) {\n return Data_Traversable.traverse(traversableList)(dictApplicative)(identity);\n },\n Functor0: function () {\n return functorList;\n },\n Foldable1: function () {\n return foldableList;\n }\n};\nvar traversableNonEmptyList = /* #__PURE__ */ Data_NonEmpty.traversableNonEmpty(traversableList);\nvar traversableWithIndexList = {\n traverseWithIndex: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var map1 = Data_Functor.map(Apply0.Functor0());\n var lift2 = Control_Apply.lift2(Apply0);\n var pure1 = Control_Applicative.pure(dictApplicative);\n return function (f) {\n var rev = foldl(Data_Function.flip(Cons.create))(Nil.value);\n var $306 = map1(rev);\n var $307 = foldlWithIndex1(function (i) {\n return function (acc) {\n var $309 = lift2(Data_Function.flip(Cons.create))(acc);\n var $310 = f(i);\n return function ($311) {\n return $309($310($311));\n };\n };\n })(pure1(Nil.value));\n return function ($308) {\n return $306($307($308));\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexList;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexList;\n },\n Traversable2: function () {\n return traversableList;\n }\n};\nvar traverseWithIndex = /* #__PURE__ */ Data_TraversableWithIndex.traverseWithIndex(/* #__PURE__ */ Data_NonEmpty.traversableWithIndexNonEmpty(traversableWithIndexList));\nvar traversableWithIndexNonEmptyList = {\n traverseWithIndex: function (dictApplicative) {\n var map1 = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverseWithIndex1 = traverseWithIndex(dictApplicative);\n return function (f) {\n return function (v) {\n return map1(NonEmptyList)(traverseWithIndex1((function () {\n var $312 = Data_Maybe.maybe(0)(add(1));\n return function ($313) {\n return f($312($313));\n };\n })())(v));\n };\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexNonEmptyList;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexNonEmptyList;\n },\n Traversable2: function () {\n return traversableNonEmptyList;\n }\n};\nvar unfoldable1List = {\n unfoldr1: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v.value1 instanceof Data_Maybe.Just) {\n $tco_var_source = v.value1.value0;\n $copy_memo = new Cons(v.value0, memo);\n return;\n };\n if (v.value1 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return foldl(Data_Function.flip(Cons.create))(Nil.value)(new Cons(v.value0, memo));\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 135, column 22 - line 137, column 61): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(Nil.value);\n };\n }\n};\nvar unfoldableList = {\n unfoldr: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return foldl(Data_Function.flip(Cons.create))(Nil.value)(memo);\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_source = v.value0.value1;\n $copy_memo = new Cons(v.value0.value0, memo);\n return;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 142, column 22 - line 144, column 52): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(Nil.value);\n };\n },\n Unfoldable10: function () {\n return unfoldable1List;\n }\n};\nvar unfoldable1NonEmptyList = /* #__PURE__ */ Data_NonEmpty.unfoldable1NonEmpty(unfoldableList);\nvar foldable1NonEmptyList = /* #__PURE__ */ Data_NonEmpty.foldable1NonEmpty(foldableList);\nvar extendNonEmptyList = {\n extend: function (f) {\n return function (v) {\n var go = function (a) {\n return function (v1) {\n return {\n val: new Cons(f(new Data_NonEmpty.NonEmpty(a, v1.acc)), v1.val),\n acc: new Cons(a, v1.acc)\n };\n };\n };\n return new Data_NonEmpty.NonEmpty(f(v), (foldr(go)({\n val: Nil.value,\n acc: Nil.value\n })(v.value1)).val);\n };\n },\n Functor0: function () {\n return functorNonEmptyList;\n }\n};\nvar extendList = {\n extend: function (v) {\n return function (v1) {\n if (v1 instanceof Nil) {\n return Nil.value;\n };\n if (v1 instanceof Cons) {\n var go = function (a$prime) {\n return function (v2) {\n var acc$prime = new Cons(a$prime, v2.acc);\n return {\n val: new Cons(v(acc$prime), v2.val),\n acc: acc$prime\n };\n };\n };\n return new Cons(v(v1), (foldr(go)({\n val: Nil.value,\n acc: Nil.value\n })(v1.value1)).val);\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 180, column 1 - line 187, column 42): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorList;\n }\n};\nvar eq1List = {\n eq1: function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function (xs) {\n return function (ys) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (!v2) {\n $tco_done = true;\n return false;\n };\n if (v instanceof Nil && v1 instanceof Nil) {\n $tco_done = true;\n return v2;\n };\n if (v instanceof Cons && v1 instanceof Cons) {\n $tco_var_v = v.value1;\n $tco_var_v1 = v1.value1;\n $copy_v2 = v2 && eq(v1.value0)(v.value0);\n return;\n };\n $tco_done = true;\n return false;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n return go(xs)(ys)(true);\n };\n };\n }\n};\nvar eq1 = /* #__PURE__ */ Data_Eq.eq1(eq1List);\nvar eqNonEmpty = /* #__PURE__ */ Data_NonEmpty.eqNonEmpty(eq1List);\nvar eq1NonEmptyList = /* #__PURE__ */ Data_NonEmpty.eq1NonEmpty(eq1List);\nvar eqList = function (dictEq) {\n return {\n eq: eq1(dictEq)\n };\n};\nvar eqNonEmptyList = function (dictEq) {\n return eqNonEmpty(dictEq);\n};\nvar ord1List = {\n compare1: function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (xs) {\n return function (ys) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v instanceof Nil && v1 instanceof Nil) {\n $tco_done = true;\n return Data_Ordering.EQ.value;\n };\n if (v instanceof Nil) {\n $tco_done = true;\n return Data_Ordering.LT.value;\n };\n if (v1 instanceof Nil) {\n $tco_done = true;\n return Data_Ordering.GT.value;\n };\n if (v instanceof Cons && v1 instanceof Cons) {\n var v2 = compare(v.value0)(v1.value0);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_var_v = v.value1;\n $copy_v1 = v1.value1;\n return;\n };\n $tco_done = true;\n return v2;\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 60, column 5 - line 60, column 20): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(xs)(ys);\n };\n };\n },\n Eq10: function () {\n return eq1List;\n }\n};\nvar compare1 = /* #__PURE__ */ Data_Ord.compare1(ord1List);\nvar ordNonEmpty = /* #__PURE__ */ Data_NonEmpty.ordNonEmpty(ord1List);\nvar ord1NonEmptyList = /* #__PURE__ */ Data_NonEmpty.ord1NonEmpty(ord1List);\nvar ordList = function (dictOrd) {\n var eqList1 = eqList(dictOrd.Eq0());\n return {\n compare: compare1(dictOrd),\n Eq0: function () {\n return eqList1;\n }\n };\n};\nvar ordNonEmptyList = function (dictOrd) {\n return ordNonEmpty(dictOrd);\n};\nvar comonadNonEmptyList = {\n extract: function (v) {\n return v.value0;\n },\n Extend0: function () {\n return extendNonEmptyList;\n }\n};\nvar 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 append1(map(v.value0)(v1))(Control_Apply.apply(applyList)(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 157, column 1 - line 159, column 48): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorList;\n }\n};\nvar apply = /* #__PURE__ */ Control_Apply.apply(applyList);\nvar applyNonEmptyList = {\n apply: function (v) {\n return function (v1) {\n return new Data_NonEmpty.NonEmpty(v.value0(v1.value0), append1(apply(v.value1)(new Cons(v1.value0, Nil.value)))(apply(new Cons(v.value0, v.value1))(v1.value1)));\n };\n },\n Functor0: function () {\n return functorNonEmptyList;\n }\n};\nvar bindList = {\n bind: function (v) {\n return function (v1) {\n if (v instanceof Nil) {\n return Nil.value;\n };\n if (v instanceof Cons) {\n return append1(v1(v.value0))(Control_Bind.bind(bindList)(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 164, column 1 - line 166, column 37): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n },\n Apply0: function () {\n return applyList;\n }\n};\nvar bind = /* #__PURE__ */ Control_Bind.bind(bindList);\nvar bindNonEmptyList = {\n bind: function (v) {\n return function (f) {\n var v1 = f(v.value0);\n return new Data_NonEmpty.NonEmpty(v1.value0, append1(v1.value1)(bind(v.value1)(function ($314) {\n return toList(f($314));\n })));\n };\n },\n Apply0: function () {\n return applyNonEmptyList;\n }\n};\nvar applicativeList = {\n pure: function (a) {\n return new Cons(a, Nil.value);\n },\n Apply0: function () {\n return applyList;\n }\n};\nvar monadList = {\n Applicative0: function () {\n return applicativeList;\n },\n Bind1: function () {\n return bindList;\n }\n};\nvar altNonEmptyList = {\n alt: /* #__PURE__ */ Data_Semigroup.append(semigroupNonEmptyList),\n Functor0: function () {\n return functorNonEmptyList;\n }\n};\nvar altList = {\n alt: append1,\n Functor0: function () {\n return functorList;\n }\n};\nvar plusList = /* #__PURE__ */ (function () {\n return {\n empty: Nil.value,\n Alt0: function () {\n return altList;\n }\n };\n})();\nvar alternativeList = {\n Applicative0: function () {\n return applicativeList;\n },\n Plus1: function () {\n return plusList;\n }\n};\nvar monadPlusList = {\n Monad0: function () {\n return monadList;\n },\n Alternative1: function () {\n return alternativeList;\n }\n};\nvar applicativeNonEmptyList = {\n pure: /* #__PURE__ */ (function () {\n var $315 = Data_NonEmpty.singleton(plusList);\n return function ($316) {\n return NonEmptyList($315($316));\n };\n })(),\n Apply0: function () {\n return applyNonEmptyList;\n }\n};\nvar pure = /* #__PURE__ */ Control_Applicative.pure(applicativeNonEmptyList);\nvar monadNonEmptyList = {\n Applicative0: function () {\n return applicativeNonEmptyList;\n },\n Bind1: function () {\n return bindNonEmptyList;\n }\n};\nvar traversable1NonEmptyList = {\n traverse1: function (dictApply) {\n var Functor0 = dictApply.Functor0();\n var mapFlipped = Data_Functor.mapFlipped(Functor0);\n var lift2 = Control_Apply.lift2(dictApply);\n var map1 = Data_Functor.map(Functor0);\n return function (f) {\n return function (v) {\n return mapFlipped(foldl(function (acc) {\n var $317 = lift2(Data_Function.flip(nelCons))(acc);\n return function ($318) {\n return $317(f($318));\n };\n })(map1(pure)(f(v.value0)))(v.value1))(function (v1) {\n return foldl(Data_Function.flip(nelCons))(pure(v1.value0))(v1.value1);\n });\n };\n };\n },\n sequence1: function (dictApply) {\n return Data_Semigroup_Traversable.traverse1(traversable1NonEmptyList)(dictApply)(identity);\n },\n Foldable10: function () {\n return foldable1NonEmptyList;\n },\n Traversable1: function () {\n return traversableNonEmptyList;\n }\n};\nexport {\n Nil,\n Cons,\n NonEmptyList,\n toList,\n nelCons,\n showList,\n eqList,\n eq1List,\n ordList,\n ord1List,\n semigroupList,\n monoidList,\n functorList,\n functorWithIndexList,\n foldableList,\n foldableWithIndexList,\n unfoldable1List,\n unfoldableList,\n traversableList,\n traversableWithIndexList,\n applyList,\n applicativeList,\n bindList,\n monadList,\n altList,\n plusList,\n alternativeList,\n monadPlusList,\n extendList,\n newtypeNonEmptyList,\n eqNonEmptyList,\n ordNonEmptyList,\n eq1NonEmptyList,\n ord1NonEmptyList,\n showNonEmptyList,\n functorNonEmptyList,\n applyNonEmptyList,\n applicativeNonEmptyList,\n bindNonEmptyList,\n monadNonEmptyList,\n altNonEmptyList,\n extendNonEmptyList,\n comonadNonEmptyList,\n semigroupNonEmptyList,\n foldableNonEmptyList,\n traversableNonEmptyList,\n foldable1NonEmptyList,\n unfoldable1NonEmptyList,\n functorWithIndexNonEmptyList,\n foldableWithIndexNonEmptyList,\n traversableWithIndexNonEmptyList,\n traversable1NonEmptyList\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Lazy from \"../Control.Lazy/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_List_Internal from \"../Data.List.Internal/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar foldr = /* #__PURE__ */ Data_Foldable.foldr(Data_List_Types.foldableList);\nvar tailRecM2 = /* #__PURE__ */ Control_Monad_Rec_Class.tailRecM2(Control_Monad_Rec_Class.monadRecMaybe);\nvar eq = /* #__PURE__ */ Data_Eq.eq(Data_Ordering.eqOrdering);\nvar notEq = /* #__PURE__ */ Data_Eq.notEq(Data_Ordering.eqOrdering);\nvar sequence = /* #__PURE__ */ Data_Traversable.sequence(Data_List_Types.traversableList);\nvar bimap = /* #__PURE__ */ Data_Bifunctor.bimap(Control_Monad_Rec_Class.bifunctorStep);\nvar foldl = /* #__PURE__ */ Data_Foldable.foldl(Data_List_Types.foldableList);\nvar any = /* #__PURE__ */ Data_Foldable.any(Data_List_Types.foldableList)(Data_HeytingAlgebra.heytingAlgebraBoolean);\nvar append1 = /* #__PURE__ */ Data_Semigroup.append(Data_List_Types.semigroupList);\nvar bind = /* #__PURE__ */ Control_Bind.bind(Data_List_Types.bindList);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar Pattern = function (x) {\n return x;\n};\nvar updateAt = function (v) {\n return function (v1) {\n return function (v2) {\n if (v === 0 && v2 instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(new Data_List_Types.Cons(v1, v2.value1));\n };\n if (v2 instanceof Data_List_Types.Cons) {\n return map(function (v3) {\n return new Data_List_Types.Cons(v2.value0, v3);\n })(updateAt(v - 1 | 0)(v1)(v2.value1));\n };\n return Data_Maybe.Nothing.value;\n };\n };\n};\nvar unzip = /* #__PURE__ */ (function () {\n return foldr(function (v) {\n return function (v1) {\n return new Data_Tuple.Tuple(new Data_List_Types.Cons(v.value0, v1.value0), new Data_List_Types.Cons(v.value1, v1.value1));\n };\n })(new Data_Tuple.Tuple(Data_List_Types.Nil.value, Data_List_Types.Nil.value));\n})();\nvar uncons = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just({\n head: v.value0,\n tail: v.value1\n });\n };\n throw new Error(\"Failed pattern match at Data.List (line 259, column 1 - line 259, column 66): \" + [ v.constructor.name ]);\n};\nvar toUnfoldable = function (dictUnfoldable) {\n return Data_Unfoldable.unfoldr(dictUnfoldable)(function (xs) {\n return map(function (rec) {\n return new Data_Tuple.Tuple(rec.head, rec.tail);\n })(uncons(xs));\n });\n};\nvar tail = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(v.value1);\n };\n throw new Error(\"Failed pattern match at Data.List (line 245, column 1 - line 245, column 43): \" + [ v.constructor.name ]);\n};\nvar stripPrefix = function (dictEq) {\n var eq2 = Data_Eq.eq(dictEq);\n return function (v) {\n return function (s) {\n var go = function (prefix) {\n return function (input) {\n if (prefix instanceof Data_List_Types.Cons && (input instanceof Data_List_Types.Cons && eq2(prefix.value0)(input.value0))) {\n return new Data_Maybe.Just(new Control_Monad_Rec_Class.Loop({\n a: prefix.value1,\n b: input.value1\n }));\n };\n if (prefix instanceof Data_List_Types.Nil) {\n return new Data_Maybe.Just(new Control_Monad_Rec_Class.Done(input));\n };\n return Data_Maybe.Nothing.value;\n };\n };\n return tailRecM2(go)(v)(s);\n };\n };\n};\nvar span = function (v) {\n return function (v1) {\n if (v1 instanceof Data_List_Types.Cons && v(v1.value0)) {\n var v2 = span(v)(v1.value1);\n return {\n init: new Data_List_Types.Cons(v1.value0, v2.init),\n rest: v2.rest\n };\n };\n return {\n init: Data_List_Types.Nil.value,\n rest: v1\n };\n };\n};\nvar snoc = function (xs) {\n return function (x) {\n return foldr(Data_List_Types.Cons.create)(new Data_List_Types.Cons(x, Data_List_Types.Nil.value))(xs);\n };\n};\nvar singleton = function (a) {\n return new Data_List_Types.Cons(a, Data_List_Types.Nil.value);\n};\nvar sortBy = function (cmp) {\n var merge = function (v) {\n return function (v1) {\n if (v instanceof Data_List_Types.Cons && v1 instanceof Data_List_Types.Cons) {\n if (eq(cmp(v.value0)(v1.value0))(Data_Ordering.GT.value)) {\n return new Data_List_Types.Cons(v1.value0, merge(v)(v1.value1));\n };\n if (Data_Boolean.otherwise) {\n return new Data_List_Types.Cons(v.value0, merge(v.value1)(v1));\n };\n };\n if (v instanceof Data_List_Types.Nil) {\n return v1;\n };\n if (v1 instanceof Data_List_Types.Nil) {\n return v;\n };\n throw new Error(\"Failed pattern match at Data.List (line 466, column 3 - line 466, column 38): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n var mergePairs = function (v) {\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(merge(v.value0)(v.value1.value0), mergePairs(v.value1.value1));\n };\n return v;\n };\n var mergeAll = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v.value0;\n };\n $copy_v = mergePairs(v);\n return;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n var sequences = function (v) {\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Cons) {\n if (eq(cmp(v.value0)(v.value1.value0))(Data_Ordering.GT.value)) {\n return descending(v.value1.value0)(singleton(v.value0))(v.value1.value1);\n };\n if (Data_Boolean.otherwise) {\n return ascending(v.value1.value0)(function (v1) {\n return new Data_List_Types.Cons(v.value0, v1);\n })(v.value1.value1);\n };\n };\n return singleton(v);\n };\n var descending = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done1 = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (v2 instanceof Data_List_Types.Cons && eq(cmp(v)(v2.value0))(Data_Ordering.GT.value)) {\n $tco_var_v = v2.value0;\n $tco_var_v1 = new Data_List_Types.Cons(v, v1);\n $copy_v2 = v2.value1;\n return;\n };\n $tco_done1 = true;\n return new Data_List_Types.Cons(new Data_List_Types.Cons(v, v1), sequences(v2));\n };\n while (!$tco_done1) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n var ascending = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done2 = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (v2 instanceof Data_List_Types.Cons && notEq(cmp(v)(v2.value0))(Data_Ordering.GT.value)) {\n $tco_var_v = v2.value0;\n $tco_var_v1 = function (ys) {\n return v1(new Data_List_Types.Cons(v, ys));\n };\n $copy_v2 = v2.value1;\n return;\n };\n $tco_done2 = true;\n return new Data_List_Types.Cons(v1(singleton(v)), sequences(v2));\n };\n while (!$tco_done2) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n return function ($444) {\n return mergeAll(sequences($444));\n };\n};\nvar sort = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (xs) {\n return sortBy(compare)(xs);\n };\n};\nvar tails = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return singleton(Data_List_Types.Nil.value);\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(v, tails(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List (line 641, column 1 - line 641, column 43): \" + [ v.constructor.name ]);\n};\nvar showPattern = function (dictShow) {\n var show = Data_Show.show(Data_List_Types.showList(dictShow));\n return {\n show: function (v) {\n return \"(Pattern \" + (show(v) + \")\");\n }\n };\n};\nvar reverse = /* #__PURE__ */ (function () {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n $tco_var_v = new Data_List_Types.Cons(v1.value0, v);\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 368, column 3 - line 368, column 19): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n})();\nvar take = /* #__PURE__ */ (function () {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (v1 < 1) {\n $tco_done = true;\n return reverse(v);\n };\n if (v2 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return reverse(v);\n };\n if (v2 instanceof Data_List_Types.Cons) {\n $tco_var_v = new Data_List_Types.Cons(v2.value0, v);\n $tco_var_v1 = v1 - 1 | 0;\n $copy_v2 = v2.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 513, column 3 - line 513, column 35): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n return go(Data_List_Types.Nil.value);\n})();\nvar takeWhile = function (p) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Data_List_Types.Cons && p(v1.value0)) {\n $tco_var_v = new Data_List_Types.Cons(v1.value0, v);\n $copy_v1 = v1.value1;\n return;\n };\n $tco_done = true;\n return reverse(v);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n};\nvar unsnoc = function (lst) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Maybe.Just({\n revInit: v1,\n last: v.value0\n });\n };\n if (v instanceof Data_List_Types.Cons) {\n $tco_var_v = v.value1;\n $copy_v1 = new Data_List_Types.Cons(v.value0, v1);\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 270, column 3 - line 270, column 21): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return map(function (h) {\n return {\n init: reverse(h.revInit),\n last: h.last\n };\n })(go(lst)(Data_List_Types.Nil.value));\n};\nvar zipWith = function (f) {\n return function (xs) {\n return function (ys) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v2;\n };\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v2;\n };\n if (v instanceof Data_List_Types.Cons && v1 instanceof Data_List_Types.Cons) {\n $tco_var_v = v.value1;\n $tco_var_v1 = v1.value1;\n $copy_v2 = new Data_List_Types.Cons(f(v.value0)(v1.value0), v2);\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 779, column 3 - line 779, column 21): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n return reverse(go(xs)(ys)(Data_List_Types.Nil.value));\n };\n };\n};\nvar zip = /* #__PURE__ */ (function () {\n return zipWith(Data_Tuple.Tuple.create);\n})();\nvar zipWithA = function (dictApplicative) {\n var sequence1 = sequence(dictApplicative);\n return function (f) {\n return function (xs) {\n return function (ys) {\n return sequence1(zipWith(f)(xs)(ys));\n };\n };\n };\n};\nvar range = function (start) {\n return function (end) {\n if (start === end) {\n return singleton(start);\n };\n if (Data_Boolean.otherwise) {\n var go = function ($copy_s) {\n return function ($copy_e) {\n return function ($copy_step) {\n return function ($copy_rest) {\n var $tco_var_s = $copy_s;\n var $tco_var_e = $copy_e;\n var $tco_var_step = $copy_step;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(s, e, step, rest) {\n if (s === e) {\n $tco_done = true;\n return new Data_List_Types.Cons(s, rest);\n };\n if (Data_Boolean.otherwise) {\n $tco_var_s = s + step | 0;\n $tco_var_e = e;\n $tco_var_step = step;\n $copy_rest = new Data_List_Types.Cons(s, rest);\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 148, column 3 - line 149, column 65): \" + [ s.constructor.name, e.constructor.name, step.constructor.name, rest.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_s, $tco_var_e, $tco_var_step, $copy_rest);\n };\n return $tco_result;\n };\n };\n };\n };\n return go(end)(start)((function () {\n var $325 = start > end;\n if ($325) {\n return 1;\n };\n return -1 | 0;\n })())(Data_List_Types.Nil.value);\n };\n throw new Error(\"Failed pattern match at Data.List (line 144, column 1 - line 144, column 32): \" + [ start.constructor.name, end.constructor.name ]);\n };\n};\nvar partition = function (p) {\n return function (xs) {\n var select = function (x) {\n return function (v) {\n var $328 = p(x);\n if ($328) {\n return {\n no: v.no,\n yes: new Data_List_Types.Cons(x, v.yes)\n };\n };\n return {\n no: new Data_List_Types.Cons(x, v.no),\n yes: v.yes\n };\n };\n };\n return foldr(select)({\n no: Data_List_Types.Nil.value,\n yes: Data_List_Types.Nil.value\n })(xs);\n };\n};\nvar $$null = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return true;\n };\n return false;\n};\nvar nubBy = function (p) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (v2 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v1;\n };\n if (v2 instanceof Data_List_Types.Cons) {\n var v3 = Data_List_Internal.insertAndLookupBy(p)(v2.value0)(v);\n if (v3.found) {\n $tco_var_v = v3.result;\n $tco_var_v1 = v1;\n $copy_v2 = v2.value1;\n return;\n };\n $tco_var_v = v3.result;\n $tco_var_v1 = new Data_List_Types.Cons(v2.value0, v1);\n $copy_v2 = v2.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 673, column 5 - line 673, column 23): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n };\n var $445 = go(Data_List_Internal.emptySet)(Data_List_Types.Nil.value);\n return function ($446) {\n return reverse($445($446));\n };\n};\nvar nub = function (dictOrd) {\n return nubBy(Data_Ord.compare(dictOrd));\n};\nvar newtypePattern = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar mapMaybe = function (f) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return reverse(v);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n var v2 = f(v1.value0);\n if (v2 instanceof Data_Maybe.Nothing) {\n $tco_var_v = v;\n $copy_v1 = v1.value1;\n return;\n };\n if (v2 instanceof Data_Maybe.Just) {\n $tco_var_v = new Data_List_Types.Cons(v2.value0, v);\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 419, column 5 - line 421, column 32): \" + [ v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.List (line 417, column 3 - line 417, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n};\nvar manyRec = function (dictMonadRec) {\n var bind1 = Control_Bind.bind((dictMonadRec.Monad0()).Bind1());\n var tailRecM = Control_Monad_Rec_Class.tailRecM(dictMonadRec);\n return function (dictAlternative) {\n var Alt0 = (dictAlternative.Plus1()).Alt0();\n var alt = Control_Alt.alt(Alt0);\n var map1 = Data_Functor.map(Alt0.Functor0());\n var pure = Control_Applicative.pure(dictAlternative.Applicative0());\n return function (p) {\n var go = function (acc) {\n return bind1(alt(map1(Control_Monad_Rec_Class.Loop.create)(p))(pure(new Control_Monad_Rec_Class.Done(Data_Unit.unit))))(function (aa) {\n return pure(bimap(function (v) {\n return new Data_List_Types.Cons(v, acc);\n })(function (v) {\n return reverse(acc);\n })(aa));\n });\n };\n return tailRecM(go)(Data_List_Types.Nil.value);\n };\n };\n};\nvar someRec = function (dictMonadRec) {\n var manyRec1 = manyRec(dictMonadRec);\n return function (dictAlternative) {\n var apply = Control_Apply.apply((dictAlternative.Applicative0()).Apply0());\n var map1 = Data_Functor.map(((dictAlternative.Plus1()).Alt0()).Functor0());\n var manyRec2 = manyRec1(dictAlternative);\n return function (v) {\n return apply(map1(Data_List_Types.Cons.create)(v))(manyRec2(v));\n };\n };\n};\nvar some = function (dictAlternative) {\n var apply = Control_Apply.apply((dictAlternative.Applicative0()).Apply0());\n var map1 = Data_Functor.map(((dictAlternative.Plus1()).Alt0()).Functor0());\n return function (dictLazy) {\n var defer = Control_Lazy.defer(dictLazy);\n return function (v) {\n return apply(map1(Data_List_Types.Cons.create)(v))(defer(function (v1) {\n return many(dictAlternative)(dictLazy)(v);\n }));\n };\n };\n};\nvar many = function (dictAlternative) {\n var alt = Control_Alt.alt((dictAlternative.Plus1()).Alt0());\n var pure = Control_Applicative.pure(dictAlternative.Applicative0());\n return function (dictLazy) {\n return function (v) {\n return alt(some(dictAlternative)(dictLazy)(v))(pure(Data_List_Types.Nil.value));\n };\n };\n};\nvar length = /* #__PURE__ */ foldl(function (acc) {\n return function (v) {\n return acc + 1 | 0;\n };\n})(0);\nvar last = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Data_List_Types.Cons && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value0);\n };\n if (v instanceof Data_List_Types.Cons) {\n $copy_v = v.value1;\n return;\n };\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n};\nvar insertBy = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_List_Types.Nil) {\n return singleton(v1);\n };\n if (v2 instanceof Data_List_Types.Cons) {\n var v3 = v(v1)(v2.value0);\n if (v3 instanceof Data_Ordering.GT) {\n return new Data_List_Types.Cons(v2.value0, insertBy(v)(v1)(v2.value1));\n };\n return new Data_List_Types.Cons(v1, v2);\n };\n throw new Error(\"Failed pattern match at Data.List (line 216, column 1 - line 216, column 68): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar insertAt = function (v) {\n return function (v1) {\n return function (v2) {\n if (v === 0) {\n return new Data_Maybe.Just(new Data_List_Types.Cons(v1, v2));\n };\n if (v2 instanceof Data_List_Types.Cons) {\n return map(function (v3) {\n return new Data_List_Types.Cons(v2.value0, v3);\n })(insertAt(v - 1 | 0)(v1)(v2.value1));\n };\n return Data_Maybe.Nothing.value;\n };\n };\n};\nvar insert = function (dictOrd) {\n return insertBy(Data_Ord.compare(dictOrd));\n};\nvar init = function (lst) {\n return map(function (v) {\n return v.init;\n })(unsnoc(lst));\n};\nvar index = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons && v1 === 0) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value0);\n };\n if (v instanceof Data_List_Types.Cons) {\n $tco_var_v = v.value1;\n $copy_v1 = v1 - 1 | 0;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 281, column 1 - line 281, column 44): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n};\nvar head = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.List (line 230, column 1 - line 230, column 22): \" + [ v.constructor.name ]);\n};\nvar transpose = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v instanceof Data_List_Types.Cons && v.value0 instanceof Data_List_Types.Nil) {\n return transpose(v.value1);\n };\n if (v instanceof Data_List_Types.Cons && v.value0 instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(new Data_List_Types.Cons(v.value0.value0, mapMaybe(head)(v.value1)), transpose(new Data_List_Types.Cons(v.value0.value1, mapMaybe(tail)(v.value1))));\n };\n throw new Error(\"Failed pattern match at Data.List (line 813, column 1 - line 813, column 54): \" + [ v.constructor.name ]);\n};\nvar groupBy = function (v) {\n return function (v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n var v2 = span(v(v1.value0))(v1.value1);\n return new Data_List_Types.Cons(new Data_NonEmpty.NonEmpty(v1.value0, v2.init), groupBy(v)(v2.rest));\n };\n throw new Error(\"Failed pattern match at Data.List (line 609, column 1 - line 609, column 80): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n};\nvar groupAllBy = function (p) {\n var $447 = groupBy(function (x) {\n return function (y) {\n return eq(p(x)(y))(Data_Ordering.EQ.value);\n };\n });\n var $448 = sortBy(p);\n return function ($449) {\n return $447($448($449));\n };\n};\nvar group = function (dictEq) {\n return groupBy(Data_Eq.eq(dictEq));\n};\nvar groupAll = function (dictOrd) {\n var $450 = group(dictOrd.Eq0());\n var $451 = sort(dictOrd);\n return function ($452) {\n return $450($451($452));\n };\n};\nvar fromFoldable = function (dictFoldable) {\n return Data_Foldable.foldr(dictFoldable)(Data_List_Types.Cons.create)(Data_List_Types.Nil.value);\n};\nvar foldM = function (dictMonad) {\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n var bind1 = Control_Bind.bind(dictMonad.Bind1());\n return function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_List_Types.Nil) {\n return pure(v1);\n };\n if (v2 instanceof Data_List_Types.Cons) {\n return bind1(v(v1)(v2.value0))(function (b$prime) {\n return foldM(dictMonad)(v)(b$prime)(v2.value1);\n });\n };\n throw new Error(\"Failed pattern match at Data.List (line 824, column 1 - line 824, column 72): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n };\n};\nvar findIndex = function (fn) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Data_List_Types.Cons) {\n if (fn(v1.value0)) {\n $tco_done = true;\n return new Data_Maybe.Just(v);\n };\n if (Data_Boolean.otherwise) {\n $tco_var_v = v + 1 | 0;\n $copy_v1 = v1.value1;\n return;\n };\n };\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.List (line 301, column 3 - line 301, column 35): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(0);\n};\nvar findLastIndex = function (fn) {\n return function (xs) {\n return map(function (v) {\n return (length(xs) - 1 | 0) - v | 0;\n })(findIndex(fn)(reverse(xs)));\n };\n};\nvar filterM = function (dictMonad) {\n var pure = Control_Applicative.pure(dictMonad.Applicative0());\n var bind1 = Control_Bind.bind(dictMonad.Bind1());\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n return pure(Data_List_Types.Nil.value);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n return bind1(v(v1.value0))(function (b) {\n return bind1(filterM(dictMonad)(v)(v1.value1))(function (xs$prime) {\n return pure((function () {\n if (b) {\n return new Data_List_Types.Cons(v1.value0, xs$prime);\n };\n return xs$prime;\n })());\n });\n });\n };\n throw new Error(\"Failed pattern match at Data.List (line 403, column 1 - line 403, column 75): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar filter = function (p) {\n var go = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return reverse(v);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n if (p(v1.value0)) {\n $tco_var_v = new Data_List_Types.Cons(v1.value0, v);\n $copy_v1 = v1.value1;\n return;\n };\n if (Data_Boolean.otherwise) {\n $tco_var_v = v;\n $copy_v1 = v1.value1;\n return;\n };\n };\n throw new Error(\"Failed pattern match at Data.List (line 390, column 3 - line 390, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n};\nvar intersectBy = function (v) {\n return function (v1) {\n return function (v2) {\n if (v1 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v2 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n return filter(function (x) {\n return any(v(x))(v2);\n })(v1);\n };\n };\n};\nvar intersect = function (dictEq) {\n return intersectBy(Data_Eq.eq(dictEq));\n};\nvar nubByEq = function (v) {\n return function (v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(v1.value0, nubByEq(v)(filter(function (y) {\n return !v(v1.value0)(y);\n })(v1.value1)));\n };\n throw new Error(\"Failed pattern match at Data.List (line 705, column 1 - line 705, column 61): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n};\nvar nubEq = function (dictEq) {\n return nubByEq(Data_Eq.eq(dictEq));\n};\nvar eqPattern = function (dictEq) {\n var eq2 = Data_Eq.eq(Data_List_Types.eqList(dictEq));\n return {\n eq: function (x) {\n return function (y) {\n return eq2(x)(y);\n };\n }\n };\n};\nvar ordPattern = function (dictOrd) {\n var compare = Data_Ord.compare(Data_List_Types.ordList(dictOrd));\n var eqPattern1 = eqPattern(dictOrd.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n return compare(x)(y);\n };\n },\n Eq0: function () {\n return eqPattern1;\n }\n };\n};\nvar elemLastIndex = function (dictEq) {\n var eq2 = Data_Eq.eq(dictEq);\n return function (x) {\n return findLastIndex(function (v) {\n return eq2(v)(x);\n });\n };\n};\nvar elemIndex = function (dictEq) {\n var eq2 = Data_Eq.eq(dictEq);\n return function (x) {\n return findIndex(function (v) {\n return eq2(v)(x);\n });\n };\n};\nvar dropWhile = function (p) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Data_List_Types.Cons && p(v.value0)) {\n $copy_v = v.value1;\n return;\n };\n $tco_done = true;\n return v;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go;\n};\nvar dropEnd = function (n) {\n return function (xs) {\n return take(length(xs) - n | 0)(xs);\n };\n};\nvar drop = function ($copy_v) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1) {\n if (v < 1) {\n $tco_done = true;\n return v1;\n };\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_List_Types.Nil.value;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n $tco_var_v = v - 1 | 0;\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 536, column 1 - line 536, column 42): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $copy_v1);\n };\n return $tco_result;\n };\n};\nvar slice = function (start) {\n return function (end) {\n return function (xs) {\n return take(end - start | 0)(drop(start)(xs));\n };\n };\n};\nvar takeEnd = function (n) {\n return function (xs) {\n return drop(length(xs) - n | 0)(xs);\n };\n};\nvar deleteBy = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Data_List_Types.Nil) {\n return Data_List_Types.Nil.value;\n };\n if (v2 instanceof Data_List_Types.Cons && v(v1)(v2.value0)) {\n return v2.value1;\n };\n if (v2 instanceof Data_List_Types.Cons) {\n return new Data_List_Types.Cons(v2.value0, deleteBy(v)(v1)(v2.value1));\n };\n throw new Error(\"Failed pattern match at Data.List (line 732, column 1 - line 732, column 67): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n};\nvar unionBy = function (eq2) {\n return function (xs) {\n return function (ys) {\n return append1(xs)(foldl(Data_Function.flip(deleteBy(eq2)))(nubByEq(eq2)(ys))(xs));\n };\n };\n};\nvar union = function (dictEq) {\n return unionBy(Data_Eq.eq(dictEq));\n};\nvar deleteAt = function (v) {\n return function (v1) {\n if (v === 0 && v1 instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(v1.value1);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n return map(function (v2) {\n return new Data_List_Types.Cons(v1.value0, v2);\n })(deleteAt(v - 1 | 0)(v1.value1));\n };\n return Data_Maybe.Nothing.value;\n };\n};\nvar $$delete = function (dictEq) {\n return deleteBy(Data_Eq.eq(dictEq));\n};\nvar difference = function (dictEq) {\n return foldl(Data_Function.flip($$delete(dictEq)));\n};\nvar concatMap = /* #__PURE__ */ Data_Function.flip(bind);\nvar concat = function (v) {\n return bind(v)(identity);\n};\nvar catMaybes = /* #__PURE__ */ mapMaybe(identity);\nvar alterAt = function (v) {\n return function (v1) {\n return function (v2) {\n if (v === 0 && v2 instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just((function () {\n var v3 = v1(v2.value0);\n if (v3 instanceof Data_Maybe.Nothing) {\n return v2.value1;\n };\n if (v3 instanceof Data_Maybe.Just) {\n return new Data_List_Types.Cons(v3.value0, v2.value1);\n };\n throw new Error(\"Failed pattern match at Data.List (line 352, column 3 - line 354, column 23): \" + [ v3.constructor.name ]);\n })());\n };\n if (v2 instanceof Data_List_Types.Cons) {\n return map(function (v3) {\n return new Data_List_Types.Cons(v2.value0, v3);\n })(alterAt(v - 1 | 0)(v1)(v2.value1));\n };\n return Data_Maybe.Nothing.value;\n };\n };\n};\nvar modifyAt = function (n) {\n return function (f) {\n return alterAt(n)(function ($453) {\n return Data_Maybe.Just.create(f($453));\n });\n };\n};\nexport {\n toUnfoldable,\n fromFoldable,\n singleton,\n range,\n some,\n someRec,\n many,\n manyRec,\n $$null as null,\n length,\n snoc,\n insert,\n insertBy,\n head,\n last,\n tail,\n init,\n uncons,\n unsnoc,\n index,\n elemIndex,\n elemLastIndex,\n findIndex,\n findLastIndex,\n insertAt,\n deleteAt,\n updateAt,\n modifyAt,\n alterAt,\n reverse,\n concat,\n concatMap,\n filter,\n filterM,\n mapMaybe,\n catMaybes,\n sort,\n sortBy,\n Pattern,\n stripPrefix,\n slice,\n take,\n takeEnd,\n takeWhile,\n drop,\n dropEnd,\n dropWhile,\n span,\n group,\n groupAll,\n groupBy,\n groupAllBy,\n partition,\n nub,\n nubBy,\n nubEq,\n nubByEq,\n union,\n unionBy,\n $$delete as delete,\n deleteBy,\n difference,\n intersect,\n intersectBy,\n zipWith,\n zipWithA,\n zip,\n unzip,\n transpose,\n foldM,\n eqPattern,\n ordPattern,\n newtypePattern,\n showPattern\n};\nexport {\n all,\n any,\n elem,\n find,\n findMap,\n fold,\n foldMap,\n foldl,\n foldr,\n intercalate,\n notElem\n} from \"../Data.Foldable/index.js\";\nexport {\n Cons,\n Nil\n} from \"../Data.List.Types/index.js\";\nexport {\n scanl,\n scanr\n} from \"../Data.Traversable/index.js\";\n", "// module Partial.Unsafe\n\nexport const _unsafePartial = function (f) {\n return f();\n};\n", "// module Partial\n\nexport const _crashWith = function (msg) {\n throw new Error(msg);\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nvar crashWith = function () {\n return $foreign[\"_crashWith\"];\n};\nvar crashWith1 = /* #__PURE__ */ crashWith();\nvar crash = function () {\n return crashWith1(\"Partial.crash: partial function\");\n};\nexport {\n crash,\n crashWith\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Partial from \"../Partial/index.js\";\nvar crashWith = /* #__PURE__ */ Partial.crashWith();\nvar unsafePartial = $foreign[\"_unsafePartial\"];\nvar unsafeCrashWith = function (msg) {\n return unsafePartial(function () {\n return crashWith(msg);\n });\n};\nexport {\n unsafePartial,\n unsafeCrashWith\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semigroup_Foldable from \"../Data.Semigroup.Foldable/index.js\";\nimport * as Data_Semigroup_Traversable from \"../Data.Semigroup.Traversable/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Partial_Unsafe from \"../Partial.Unsafe/index.js\";\nvar sequence1 = /* #__PURE__ */ Data_Semigroup_Traversable.sequence1(Data_List_Types.traversable1NonEmptyList);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_List_Types.functorNonEmptyList);\nvar bind = /* #__PURE__ */ Control_Bind.bind(Data_List_Types.bindNonEmptyList);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar append1 = /* #__PURE__ */ Data_Semigroup.append(Data_List_Types.semigroupList);\nvar zipWith = function (f) {\n return function (v) {\n return function (v1) {\n return new Data_NonEmpty.NonEmpty(f(v.value0)(v1.value0), Data_List.zipWith(f)(v.value1)(v1.value1));\n };\n };\n};\nvar zipWithA = function (dictApplicative) {\n var sequence11 = sequence1(dictApplicative.Apply0());\n return function (f) {\n return function (xs) {\n return function (ys) {\n return sequence11(zipWith(f)(xs)(ys));\n };\n };\n };\n};\nvar zip = /* #__PURE__ */ (function () {\n return zipWith(Data_Tuple.Tuple.create);\n})();\nvar wrappedOperation2 = function (name) {\n return function (f) {\n return function (v) {\n return function (v1) {\n var v2 = f(new Data_List_Types.Cons(v.value0, v.value1))(new Data_List_Types.Cons(v1.value0, v1.value1));\n if (v2 instanceof Data_List_Types.Cons) {\n return new Data_NonEmpty.NonEmpty(v2.value0, v2.value1);\n };\n if (v2 instanceof Data_List_Types.Nil) {\n return Partial_Unsafe.unsafeCrashWith(\"Impossible: empty list in NonEmptyList \" + name);\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 105, column 3 - line 107, column 81): \" + [ v2.constructor.name ]);\n };\n };\n };\n};\nvar wrappedOperation = function (name) {\n return function (f) {\n return function (v) {\n var v1 = f(new Data_List_Types.Cons(v.value0, v.value1));\n if (v1 instanceof Data_List_Types.Cons) {\n return new Data_NonEmpty.NonEmpty(v1.value0, v1.value1);\n };\n if (v1 instanceof Data_List_Types.Nil) {\n return Partial_Unsafe.unsafeCrashWith(\"Impossible: empty list in NonEmptyList \" + name);\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 92, column 3 - line 94, column 81): \" + [ v1.constructor.name ]);\n };\n };\n};\nvar updateAt = function (i) {\n return function (a) {\n return function (v) {\n if (i === 0) {\n return new Data_Maybe.Just(new Data_NonEmpty.NonEmpty(a, v.value1));\n };\n if (Data_Boolean.otherwise) {\n return map(function ($193) {\n return Data_List_Types.NonEmptyList((function (v1) {\n return new Data_NonEmpty.NonEmpty(v.value0, v1);\n })($193));\n })(Data_List.updateAt(i - 1 | 0)(a)(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 198, column 1 - line 198, column 75): \" + [ i.constructor.name, a.constructor.name, v.constructor.name ]);\n };\n };\n};\nvar unzip = function (ts) {\n return new Data_Tuple.Tuple(map1(Data_Tuple.fst)(ts), map1(Data_Tuple.snd)(ts));\n};\nvar unsnoc = function (v) {\n var v1 = Data_List.unsnoc(v.value1);\n if (v1 instanceof Data_Maybe.Nothing) {\n return {\n init: Data_List_Types.Nil.value,\n last: v.value0\n };\n };\n if (v1 instanceof Data_Maybe.Just) {\n return {\n init: new Data_List_Types.Cons(v.value0, v1.value0.init),\n last: v1.value0.last\n };\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 160, column 35 - line 162, column 50): \" + [ v1.constructor.name ]);\n};\nvar unionBy = /* #__PURE__ */ (function () {\n var $194 = wrappedOperation2(\"unionBy\");\n return function ($195) {\n return $194(Data_List.unionBy($195));\n };\n})();\nvar union = function (dictEq) {\n return wrappedOperation2(\"union\")(Data_List.union(dictEq));\n};\nvar uncons = function (v) {\n return {\n head: v.value0,\n tail: v.value1\n };\n};\nvar toList = function (v) {\n return new Data_List_Types.Cons(v.value0, v.value1);\n};\nvar toUnfoldable = function (dictUnfoldable) {\n var $196 = Data_Unfoldable.unfoldr(dictUnfoldable)(function (xs) {\n return map(function (rec) {\n return new Data_Tuple.Tuple(rec.head, rec.tail);\n })(Data_List.uncons(xs));\n });\n return function ($197) {\n return $196(toList($197));\n };\n};\nvar tail = function (v) {\n return v.value1;\n};\nvar sortBy = /* #__PURE__ */ (function () {\n var $198 = wrappedOperation(\"sortBy\");\n return function ($199) {\n return $198(Data_List.sortBy($199));\n };\n})();\nvar sort = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (xs) {\n return sortBy(compare)(xs);\n };\n};\nvar snoc = function (v) {\n return function (y) {\n return new Data_NonEmpty.NonEmpty(v.value0, Data_List.snoc(v.value1)(y));\n };\n};\nvar singleton = /* #__PURE__ */ (function () {\n var $200 = Data_NonEmpty.singleton(Data_List_Types.plusList);\n return function ($201) {\n return Data_List_Types.NonEmptyList($200($201));\n };\n})();\nvar snoc$prime = function (v) {\n return function (v1) {\n if (v instanceof Data_List_Types.Cons) {\n return new Data_NonEmpty.NonEmpty(v.value0, Data_List.snoc(v.value1)(v1));\n };\n if (v instanceof Data_List_Types.Nil) {\n return singleton(v1);\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 140, column 1 - line 140, column 51): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n};\nvar reverse = /* #__PURE__ */ wrappedOperation(\"reverse\")(Data_List.reverse);\nvar nubEq = function (dictEq) {\n return wrappedOperation(\"nubEq\")(Data_List.nubEq(dictEq));\n};\nvar nubByEq = /* #__PURE__ */ (function () {\n var $202 = wrappedOperation(\"nubByEq\");\n return function ($203) {\n return $202(Data_List.nubByEq($203));\n };\n})();\nvar nubBy = /* #__PURE__ */ (function () {\n var $204 = wrappedOperation(\"nubBy\");\n return function ($205) {\n return $204(Data_List.nubBy($205));\n };\n})();\nvar nub = function (dictOrd) {\n return wrappedOperation(\"nub\")(Data_List.nub(dictOrd));\n};\nvar modifyAt = function (i) {\n return function (f) {\n return function (v) {\n if (i === 0) {\n return new Data_Maybe.Just(new Data_NonEmpty.NonEmpty(f(v.value0), v.value1));\n };\n if (Data_Boolean.otherwise) {\n return map(function ($206) {\n return Data_List_Types.NonEmptyList((function (v1) {\n return new Data_NonEmpty.NonEmpty(v.value0, v1);\n })($206));\n })(Data_List.modifyAt(i - 1 | 0)(f)(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 203, column 1 - line 203, column 82): \" + [ i.constructor.name, f.constructor.name, v.constructor.name ]);\n };\n };\n};\nvar lift = function (f) {\n return function (v) {\n return f(new Data_List_Types.Cons(v.value0, v.value1));\n };\n};\nvar mapMaybe = function ($207) {\n return lift(Data_List.mapMaybe($207));\n};\nvar partition = function ($208) {\n return lift(Data_List.partition($208));\n};\nvar span = function ($209) {\n return lift(Data_List.span($209));\n};\nvar take = function ($210) {\n return lift(Data_List.take($210));\n};\nvar takeWhile = function ($211) {\n return lift(Data_List.takeWhile($211));\n};\nvar length = function (v) {\n return 1 + Data_List.length(v.value1) | 0;\n};\nvar last = function (v) {\n return Data_Maybe.fromMaybe(v.value0)(Data_List.last(v.value1));\n};\nvar intersectBy = /* #__PURE__ */ (function () {\n var $212 = wrappedOperation2(\"intersectBy\");\n return function ($213) {\n return $212(Data_List.intersectBy($213));\n };\n})();\nvar intersect = function (dictEq) {\n return wrappedOperation2(\"intersect\")(Data_List.intersect(dictEq));\n};\nvar insertAt = function (i) {\n return function (a) {\n return function (v) {\n if (i === 0) {\n return new Data_Maybe.Just(new Data_NonEmpty.NonEmpty(a, new Data_List_Types.Cons(v.value0, v.value1)));\n };\n if (Data_Boolean.otherwise) {\n return map(function ($214) {\n return Data_List_Types.NonEmptyList((function (v1) {\n return new Data_NonEmpty.NonEmpty(v.value0, v1);\n })($214));\n })(Data_List.insertAt(i - 1 | 0)(a)(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 193, column 1 - line 193, column 75): \" + [ i.constructor.name, a.constructor.name, v.constructor.name ]);\n };\n };\n};\nvar init = function (v) {\n return Data_Maybe.maybe(Data_List_Types.Nil.value)(function (v1) {\n return new Data_List_Types.Cons(v.value0, v1);\n })(Data_List.init(v.value1));\n};\nvar index = function (v) {\n return function (i) {\n if (i === 0) {\n return new Data_Maybe.Just(v.value0);\n };\n if (Data_Boolean.otherwise) {\n return Data_List.index(v.value1)(i - 1 | 0);\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 167, column 1 - line 167, column 52): \" + [ v.constructor.name, i.constructor.name ]);\n };\n};\nvar head = function (v) {\n return v.value0;\n};\nvar groupBy = /* #__PURE__ */ (function () {\n var $215 = wrappedOperation(\"groupBy\");\n return function ($216) {\n return $215(Data_List.groupBy($216));\n };\n})();\nvar groupAllBy = /* #__PURE__ */ (function () {\n var $217 = wrappedOperation(\"groupAllBy\");\n return function ($218) {\n return $217(Data_List.groupAllBy($218));\n };\n})();\nvar groupAll = function (dictOrd) {\n return wrappedOperation(\"groupAll\")(Data_List.groupAll(dictOrd));\n};\nvar group = function (dictEq) {\n return wrappedOperation(\"group\")(Data_List.group(dictEq));\n};\nvar fromList = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_List_Types.Cons) {\n return new Data_Maybe.Just(new Data_NonEmpty.NonEmpty(v.value0, v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 121, column 1 - line 121, column 57): \" + [ v.constructor.name ]);\n};\nvar fromFoldable = function (dictFoldable) {\n var $219 = Data_List.fromFoldable(dictFoldable);\n return function ($220) {\n return fromList($219($220));\n };\n};\nvar foldM = function (dictMonad) {\n var bind1 = Control_Bind.bind(dictMonad.Bind1());\n var foldM1 = Data_List.foldM(dictMonad);\n return function (f) {\n return function (b) {\n return function (v) {\n return bind1(f(b)(v.value0))(function (b$prime) {\n return foldM1(f)(b$prime)(v.value1);\n });\n };\n };\n };\n};\nvar findLastIndex = function (f) {\n return function (v) {\n var v1 = Data_List.findLastIndex(f)(v.value1);\n if (v1 instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(v1.value0 + 1 | 0);\n };\n if (v1 instanceof Data_Maybe.Nothing) {\n if (f(v.value0)) {\n return new Data_Maybe.Just(0);\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 187, column 3 - line 191, column 29): \" + [ v1.constructor.name ]);\n };\n};\nvar findIndex = function (f) {\n return function (v) {\n if (f(v.value0)) {\n return new Data_Maybe.Just(0);\n };\n if (Data_Boolean.otherwise) {\n return map(function (v1) {\n return v1 + 1 | 0;\n })(Data_List.findIndex(f)(v.value1));\n };\n throw new Error(\"Failed pattern match at Data.List.NonEmpty (line 180, column 1 - line 180, column 69): \" + [ f.constructor.name, v.constructor.name ]);\n };\n};\nvar filterM = function (dictMonad) {\n var $221 = Data_List.filterM(dictMonad);\n return function ($222) {\n return lift($221($222));\n };\n};\nvar filter = function ($223) {\n return lift(Data_List.filter($223));\n};\nvar elemLastIndex = function (dictEq) {\n var eq1 = Data_Eq.eq(dictEq);\n return function (x) {\n return findLastIndex(function (v) {\n return eq1(v)(x);\n });\n };\n};\nvar elemIndex = function (dictEq) {\n var eq1 = Data_Eq.eq(dictEq);\n return function (x) {\n return findIndex(function (v) {\n return eq1(v)(x);\n });\n };\n};\nvar dropWhile = function ($224) {\n return lift(Data_List.dropWhile($224));\n};\nvar drop = function ($225) {\n return lift(Data_List.drop($225));\n};\nvar cons$prime = function (x) {\n return function (xs) {\n return new Data_NonEmpty.NonEmpty(x, xs);\n };\n};\nvar 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};\nvar concatMap = /* #__PURE__ */ Data_Function.flip(bind);\nvar concat = function (v) {\n return bind(v)(identity);\n};\nvar catMaybes = /* #__PURE__ */ lift(Data_List.catMaybes);\nvar appendFoldable = function (dictFoldable) {\n var fromFoldable1 = Data_List.fromFoldable(dictFoldable);\n return function (v) {\n return function (ys) {\n return new Data_NonEmpty.NonEmpty(v.value0, append1(v.value1)(fromFoldable1(ys)));\n };\n };\n};\nexport {\n toUnfoldable,\n fromFoldable,\n fromList,\n toList,\n singleton,\n length,\n cons,\n cons$prime,\n snoc,\n snoc$prime,\n head,\n last,\n tail,\n init,\n uncons,\n unsnoc,\n index,\n elemIndex,\n elemLastIndex,\n findIndex,\n findLastIndex,\n insertAt,\n updateAt,\n modifyAt,\n reverse,\n concat,\n concatMap,\n filter,\n filterM,\n mapMaybe,\n catMaybes,\n appendFoldable,\n sort,\n sortBy,\n take,\n takeWhile,\n drop,\n dropWhile,\n span,\n group,\n groupAll,\n groupBy,\n groupAllBy,\n partition,\n nub,\n nubBy,\n nubEq,\n nubByEq,\n union,\n unionBy,\n intersect,\n intersectBy,\n zipWith,\n zipWithA,\n zip,\n unzip,\n foldM\n};\nexport {\n all,\n any,\n elem,\n find,\n findMap,\n fold,\n foldMap,\n foldl,\n foldr,\n intercalate,\n notElem\n} from \"../Data.Foldable/index.js\";\nexport {\n NonEmptyList\n} from \"../Data.List.Types/index.js\";\nexport {\n fold1,\n foldMap1,\n for1_,\n sequence1_,\n traverse1_\n} from \"../Data.Semigroup.Foldable/index.js\";\nexport {\n sequence1,\n traverse1,\n traverse1Default\n} from \"../Data.Semigroup.Traversable/index.js\";\nexport {\n scanl,\n scanr\n} from \"../Data.Traversable/index.js\";\n", "/* eslint-disable no-eq-null, eqeqeq */\n\nconst nullImpl = null;\nexport { nullImpl as null };\n\nexport function nullable(a, r, f) {\n return a == null ? r : f(a);\n}\n\nexport function notNull(x) {\n return x;\n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar toNullable = /* #__PURE__ */ Data_Maybe.maybe($foreign[\"null\"])($foreign.notNull);\nvar toMaybe = function (n) {\n return $foreign.nullable(n, Data_Maybe.Nothing.value, Data_Maybe.Just.create);\n};\nvar showNullable = function (dictShow) {\n return {\n show: (function () {\n var $17 = Data_Maybe.maybe(\"null\")(Data_Show.show(dictShow));\n return function ($18) {\n return $17(toMaybe($18));\n };\n })()\n };\n};\nvar eqNullable = function (dictEq) {\n return {\n eq: Data_Function.on(Data_Eq.eq(Data_Maybe.eqMaybe(dictEq)))(toMaybe)\n };\n};\nvar ordNullable = function (dictOrd) {\n var eqNullable1 = eqNullable(dictOrd.Eq0());\n return {\n compare: Data_Function.on(Data_Ord.compare(Data_Maybe.ordMaybe(dictOrd)))(toMaybe),\n Eq0: function () {\n return eqNullable1;\n }\n };\n};\nvar eq1Nullable = {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqNullable(dictEq));\n }\n};\nvar ord1Nullable = {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordNullable(dictOrd));\n },\n Eq10: function () {\n return eq1Nullable;\n }\n};\nexport {\n null,\n notNull\n} from \"./foreign.js\";\nexport {\n toMaybe,\n toNullable,\n showNullable,\n eqNullable,\n eq1Nullable,\n ordNullable,\n ord1Nullable\n};\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 */\nvar 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\nexport const _pure = Aff.Pure;\nexport const _throwError = Aff.Throw;\n\nexport function _catchError(aff) {\n return function (k) {\n return Aff.Catch(aff, k);\n };\n}\n\nexport function _map(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\nexport function _bind(aff) {\n return function (k) {\n return Aff.Bind(aff, k);\n };\n}\n\nexport function _fork(immediate) {\n return function (aff) {\n return Aff.Fork(immediate, aff);\n };\n}\n\nexport const _liftEffect = Aff.Sync;\n\nexport function _parAffMap(f) {\n return function (aff) {\n return Aff.ParMap(f, aff);\n };\n}\n\nexport function _parAffApply(aff1) {\n return function (aff2) {\n return Aff.ParApply(aff1, aff2);\n };\n}\n\nexport function _parAffAlt(aff1) {\n return function (aff2) {\n return Aff.ParAlt(aff1, aff2);\n };\n}\n\nexport const makeAff = Aff.Async;\n\nexport function generalBracket(acquire) {\n return function (options) {\n return function (k) {\n return Aff.Bracket(acquire, options, k);\n };\n };\n}\n\nexport function _makeFiber(util, aff) {\n return function () {\n return Aff.Fiber(util, null, aff);\n };\n}\n\nexport function _makeSupervisedFiber(util, aff) {\n return function () {\n var supervisor = Aff.Supervisor(util);\n return {\n fiber: Aff.Fiber(util, supervisor, aff),\n supervisor: supervisor\n };\n };\n}\n\nexport function _killAll(error, supervisor, cb) {\n return supervisor.killAll(error, cb);\n}\n\nexport const _delay = function () {\n function setDelay(n, k) {\n if (n === 0 && typeof setImmediate !== \"undefined\") {\n return setImmediate(k);\n } else {\n return setTimeout(k, n);\n }\n }\n\n function clearDelay(n, t) {\n if (n === 0 && typeof clearImmediate !== \"undefined\") {\n return clearImmediate(t);\n } else {\n return clearTimeout(t);\n }\n }\n\n return function (right, ms) {\n return Aff.Async(function (cb) {\n return function () {\n var timer = setDelay(ms, cb(right()));\n return function () {\n return Aff.Sync(function () {\n return right(clearDelay(ms, timer));\n });\n };\n };\n });\n };\n}();\n\nexport const _sequential = Aff.Seq;\n", "// Generated by purs version 0.15.14\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar wrap = /* #__PURE__ */ Data_Newtype.wrap();\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar profunctorFn = {\n dimap: function (a2b) {\n return function (c2d) {\n return function (b2c) {\n return function ($18) {\n return c2d(b2c(a2b($18)));\n };\n };\n };\n }\n};\nvar dimap = function (dict) {\n return dict.dimap;\n};\nvar lcmap = function (dictProfunctor) {\n var dimap1 = dimap(dictProfunctor);\n return function (a2b) {\n return dimap1(a2b)(identity);\n };\n};\nvar rmap = function (dictProfunctor) {\n var dimap1 = dimap(dictProfunctor);\n return function (b2c) {\n return dimap1(identity)(b2c);\n };\n};\nvar unwrapIso = function (dictProfunctor) {\n var dimap1 = dimap(dictProfunctor);\n return function () {\n return dimap1(wrap)(unwrap);\n };\n};\nvar wrapIso = function (dictProfunctor) {\n var dimap1 = dimap(dictProfunctor);\n return function () {\n return function (v) {\n return dimap1(unwrap)(wrap);\n };\n };\n};\nvar arr = function (dictCategory) {\n var identity1 = Control_Category.identity(dictCategory);\n return function (dictProfunctor) {\n var rmap1 = rmap(dictProfunctor);\n return function (f) {\n return rmap1(f)(identity1);\n };\n };\n};\nexport {\n dimap,\n lcmap,\n rmap,\n arr,\n unwrapIso,\n wrapIso,\n profunctorFn\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Cont_Trans from \"../Control.Monad.Cont.Trans/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as Control_Monad_Reader_Trans from \"../Control.Monad.Reader.Trans/index.js\";\nimport * as Control_Monad_Writer_Trans from \"../Control.Monad.Writer.Trans/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_Compose from \"../Data.Functor.Compose/index.js\";\nimport * as Data_Functor_Costar from \"../Data.Functor.Costar/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Profunctor_Star from \"../Data.Profunctor.Star/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar ParCont = function (x) {\n return x;\n};\nvar sequential = function (dict) {\n return dict.sequential;\n};\nvar parallel = function (dict) {\n return dict.parallel;\n};\nvar newtypeParCont = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monadParWriterT = function (dictMonoid) {\n var applyWriterT = Control_Monad_Writer_Trans.applyWriterT(dictMonoid.Semigroup0());\n return function (dictParallel) {\n var applyWriterT1 = applyWriterT(dictParallel.Apply0());\n var applyWriterT2 = applyWriterT(dictParallel.Apply1());\n return {\n parallel: Control_Monad_Writer_Trans.mapWriterT(parallel(dictParallel)),\n sequential: Control_Monad_Writer_Trans.mapWriterT(sequential(dictParallel)),\n Apply0: function () {\n return applyWriterT1;\n },\n Apply1: function () {\n return applyWriterT2;\n }\n };\n };\n};\nvar monadParStar = function (dictParallel) {\n var parallel1 = parallel(dictParallel);\n var sequential1 = sequential(dictParallel);\n var applyStar = Data_Profunctor_Star.applyStar(dictParallel.Apply0());\n var applyStar1 = Data_Profunctor_Star.applyStar(dictParallel.Apply1());\n return {\n parallel: function (v) {\n return function ($124) {\n return parallel1(v($124));\n };\n },\n sequential: function (v) {\n return function ($125) {\n return sequential1(v($125));\n };\n },\n Apply0: function () {\n return applyStar;\n },\n Apply1: function () {\n return applyStar1;\n }\n };\n};\nvar monadParReaderT = function (dictParallel) {\n var applyReaderT = Control_Monad_Reader_Trans.applyReaderT(dictParallel.Apply0());\n var applyReaderT1 = Control_Monad_Reader_Trans.applyReaderT(dictParallel.Apply1());\n return {\n parallel: Control_Monad_Reader_Trans.mapReaderT(parallel(dictParallel)),\n sequential: Control_Monad_Reader_Trans.mapReaderT(sequential(dictParallel)),\n Apply0: function () {\n return applyReaderT;\n },\n Apply1: function () {\n return applyReaderT1;\n }\n };\n};\nvar monadParMaybeT = function (dictParallel) {\n var parallel1 = parallel(dictParallel);\n var sequential1 = sequential(dictParallel);\n var applyCompose = Data_Functor_Compose.applyCompose(dictParallel.Apply1())(Data_Maybe.applyMaybe);\n return function (dictMonad) {\n var applyMaybeT = Control_Monad_Maybe_Trans.applyMaybeT(dictMonad);\n return {\n parallel: function (v) {\n return parallel1(v);\n },\n sequential: function (v) {\n return sequential1(v);\n },\n Apply0: function () {\n return applyMaybeT;\n },\n Apply1: function () {\n return applyCompose;\n }\n };\n };\n};\nvar monadParExceptT = function (dictParallel) {\n var parallel1 = parallel(dictParallel);\n var sequential1 = sequential(dictParallel);\n var applyCompose = Data_Functor_Compose.applyCompose(dictParallel.Apply1())(Data_Either.applyEither);\n return function (dictMonad) {\n var applyExceptT = Control_Monad_Except_Trans.applyExceptT(dictMonad);\n return {\n parallel: function (v) {\n return parallel1(v);\n },\n sequential: function (v) {\n return sequential1(v);\n },\n Apply0: function () {\n return applyExceptT;\n },\n Apply1: function () {\n return applyCompose;\n }\n };\n };\n};\nvar monadParCostar = function (dictParallel) {\n var sequential1 = sequential(dictParallel);\n var parallel1 = parallel(dictParallel);\n return {\n parallel: function (v) {\n return function ($126) {\n return v(sequential1($126));\n };\n },\n sequential: function (v) {\n return function ($127) {\n return v(parallel1($127));\n };\n },\n Apply0: function () {\n return Data_Functor_Costar.applyCostar;\n },\n Apply1: function () {\n return Data_Functor_Costar.applyCostar;\n }\n };\n};\nvar monadParParCont = function (dictMonadEffect) {\n var applyContT = Control_Monad_Cont_Trans.applyContT(((dictMonadEffect.Monad0()).Bind1()).Apply0());\n return {\n parallel: ParCont,\n sequential: function (v) {\n return v;\n },\n Apply0: function () {\n return applyContT;\n },\n Apply1: function () {\n return applyParCont(dictMonadEffect);\n }\n };\n};\nvar functorParCont = function (dictMonadEffect) {\n var map = Data_Functor.map(Control_Monad_Cont_Trans.functorContT((((dictMonadEffect.Monad0()).Bind1()).Apply0()).Functor0()));\n return {\n map: function (f) {\n var $128 = parallel(monadParParCont(dictMonadEffect));\n var $129 = map(f);\n var $130 = sequential(monadParParCont(dictMonadEffect));\n return function ($131) {\n return $128($129($130($131)));\n };\n }\n };\n};\nvar applyParCont = function (dictMonadEffect) {\n var Bind1 = (dictMonadEffect.Monad0()).Bind1();\n var bind = Control_Bind.bind(Bind1);\n var liftEffect = Effect_Class.liftEffect(dictMonadEffect);\n var discard1 = discard(Bind1);\n return {\n apply: function (v) {\n return function (v1) {\n return function (k) {\n return bind(liftEffect(Effect_Ref[\"new\"](Data_Maybe.Nothing.value)))(function (ra) {\n return bind(liftEffect(Effect_Ref[\"new\"](Data_Maybe.Nothing.value)))(function (rb) {\n return discard1(Control_Monad_Cont_Trans.runContT(v)(function (a) {\n return bind(liftEffect(Effect_Ref.read(rb)))(function (mb) {\n if (mb instanceof Data_Maybe.Nothing) {\n return liftEffect(Effect_Ref.write(new Data_Maybe.Just(a))(ra));\n };\n if (mb instanceof Data_Maybe.Just) {\n return k(a(mb.value0));\n };\n throw new Error(\"Failed pattern match at Control.Parallel.Class (line 83, column 7 - line 85, column 26): \" + [ mb.constructor.name ]);\n });\n }))(function () {\n return Control_Monad_Cont_Trans.runContT(v1)(function (b) {\n return bind(liftEffect(Effect_Ref.read(ra)))(function (ma) {\n if (ma instanceof Data_Maybe.Nothing) {\n return liftEffect(Effect_Ref.write(new Data_Maybe.Just(b))(rb));\n };\n if (ma instanceof Data_Maybe.Just) {\n return k(ma.value0(b));\n };\n throw new Error(\"Failed pattern match at Control.Parallel.Class (line 89, column 7 - line 91, column 26): \" + [ ma.constructor.name ]);\n });\n });\n });\n });\n });\n };\n };\n },\n Functor0: function () {\n return functorParCont(dictMonadEffect);\n }\n };\n};\nvar applicativeParCont = function (dictMonadEffect) {\n var applyParCont1 = applyParCont(dictMonadEffect);\n return {\n pure: (function () {\n var $132 = parallel(monadParParCont(dictMonadEffect));\n var $133 = Control_Applicative.pure(Control_Monad_Cont_Trans.applicativeContT((dictMonadEffect.Monad0()).Applicative0()));\n return function ($134) {\n return $132($133($134));\n };\n })(),\n Apply0: function () {\n return applyParCont1;\n }\n };\n};\nvar altParCont = function (dictMonadEffect) {\n var Monad0 = dictMonadEffect.Monad0();\n var Bind1 = Monad0.Bind1();\n var bind = Control_Bind.bind(Bind1);\n var liftEffect = Effect_Class.liftEffect(dictMonadEffect);\n var discard1 = discard(Bind1);\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n var functorParCont1 = functorParCont(dictMonadEffect);\n return {\n alt: function (v) {\n return function (v1) {\n return function (k) {\n return bind(liftEffect(Effect_Ref[\"new\"](false)))(function (done) {\n return discard1(Control_Monad_Cont_Trans.runContT(v)(function (a) {\n return bind(liftEffect(Effect_Ref.read(done)))(function (b) {\n if (b) {\n return pure(Data_Unit.unit);\n };\n return discard1(liftEffect(Effect_Ref.write(true)(done)))(function () {\n return k(a);\n });\n });\n }))(function () {\n return Control_Monad_Cont_Trans.runContT(v1)(function (a) {\n return bind(liftEffect(Effect_Ref.read(done)))(function (b) {\n if (b) {\n return pure(Data_Unit.unit);\n };\n return discard1(liftEffect(Effect_Ref.write(true)(done)))(function () {\n return k(a);\n });\n });\n });\n });\n });\n };\n };\n },\n Functor0: function () {\n return functorParCont1;\n }\n };\n};\nvar plusParCont = function (dictMonadEffect) {\n var pure = Control_Applicative.pure((dictMonadEffect.Monad0()).Applicative0());\n var altParCont1 = altParCont(dictMonadEffect);\n return {\n empty: function (v) {\n return pure(Data_Unit.unit);\n },\n Alt0: function () {\n return altParCont1;\n }\n };\n};\nvar alternativeParCont = function (dictMonadEffect) {\n var applicativeParCont1 = applicativeParCont(dictMonadEffect);\n var plusParCont1 = plusParCont(dictMonadEffect);\n return {\n Applicative0: function () {\n return applicativeParCont1;\n },\n Plus1: function () {\n return plusParCont1;\n }\n };\n};\nexport {\n parallel,\n sequential,\n ParCont,\n monadParExceptT,\n monadParReaderT,\n monadParWriterT,\n monadParMaybeT,\n monadParStar,\n monadParCostar,\n newtypeParCont,\n functorParCont,\n applyParCont,\n applicativeParCont,\n altParCont,\n plusParCont,\n alternativeParCont,\n monadParParCont\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Parallel_Class from \"../Control.Parallel.Class/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar parTraverse_ = function (dictParallel) {\n var sequential = Control_Parallel_Class.sequential(dictParallel);\n var parallel = Control_Parallel_Class.parallel(dictParallel);\n return function (dictApplicative) {\n var traverse_ = Data_Foldable.traverse_(dictApplicative);\n return function (dictFoldable) {\n var traverse_1 = traverse_(dictFoldable);\n return function (f) {\n var $51 = traverse_1(function ($53) {\n return parallel(f($53));\n });\n return function ($52) {\n return sequential($51($52));\n };\n };\n };\n };\n};\nvar parTraverse = function (dictParallel) {\n var sequential = Control_Parallel_Class.sequential(dictParallel);\n var parallel = Control_Parallel_Class.parallel(dictParallel);\n return function (dictApplicative) {\n return function (dictTraversable) {\n var traverse = Data_Traversable.traverse(dictTraversable)(dictApplicative);\n return function (f) {\n var $54 = traverse(function ($56) {\n return parallel(f($56));\n });\n return function ($55) {\n return sequential($54($55));\n };\n };\n };\n };\n};\nvar parSequence_ = function (dictParallel) {\n var parTraverse_1 = parTraverse_(dictParallel);\n return function (dictApplicative) {\n var parTraverse_2 = parTraverse_1(dictApplicative);\n return function (dictFoldable) {\n return parTraverse_2(dictFoldable)(identity);\n };\n };\n};\nvar parSequence = function (dictParallel) {\n var parTraverse1 = parTraverse(dictParallel);\n return function (dictApplicative) {\n var parTraverse2 = parTraverse1(dictApplicative);\n return function (dictTraversable) {\n return parTraverse2(dictTraversable)(identity);\n };\n };\n};\nvar parOneOfMap = function (dictParallel) {\n var sequential = Control_Parallel_Class.sequential(dictParallel);\n var parallel = Control_Parallel_Class.parallel(dictParallel);\n return function (dictAlternative) {\n var Plus1 = dictAlternative.Plus1();\n return function (dictFoldable) {\n var oneOfMap = Data_Foldable.oneOfMap(dictFoldable)(Plus1);\n return function (dictFunctor) {\n return function (f) {\n var $57 = oneOfMap(function ($59) {\n return parallel(f($59));\n });\n return function ($58) {\n return sequential($57($58));\n };\n };\n };\n };\n };\n};\nvar parOneOf = function (dictParallel) {\n var sequential = Control_Parallel_Class.sequential(dictParallel);\n var parallel = Control_Parallel_Class.parallel(dictParallel);\n return function (dictAlternative) {\n var Plus1 = dictAlternative.Plus1();\n return function (dictFoldable) {\n var oneOfMap = Data_Foldable.oneOfMap(dictFoldable)(Plus1);\n return function (dictFunctor) {\n var $60 = oneOfMap(parallel);\n return function ($61) {\n return sequential($60($61));\n };\n };\n };\n };\n};\nvar parApply = function (dictParallel) {\n var sequential = Control_Parallel_Class.sequential(dictParallel);\n var apply = Control_Apply.apply(dictParallel.Apply1());\n var parallel = Control_Parallel_Class.parallel(dictParallel);\n return function (mf) {\n return function (ma) {\n return sequential(apply(parallel(mf))(parallel(ma)));\n };\n };\n};\nexport {\n parApply,\n parTraverse,\n parTraverse_,\n parSequence,\n parSequence_,\n parOneOf,\n parOneOfMap\n};\nexport {\n ParCont,\n parallel,\n sequential\n} from \"../Control.Parallel.Class/index.js\";\n", "export const unsafePerformEffect = function (f) {\n return f();\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_ST_Class from \"../Control.Monad.ST.Class/index.js\";\nimport * as Control_Parallel from \"../Control.Parallel/index.js\";\nimport * as Control_Parallel_Class from \"../Control.Parallel.Class/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Time_Duration from \"../Data.Time.Duration/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Effect_Unsafe from \"../Effect.Unsafe/index.js\";\nimport * as Partial_Unsafe from \"../Partial.Unsafe/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Effect.functorEffect);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(Data_Either.applicativeEither);\nvar Fiber = function (x) {\n return x;\n};\nvar FFIUtil = function (x) {\n return x;\n};\nvar Canceler = function (x) {\n return x;\n};\nvar suspendAff = /* #__PURE__ */ $foreign[\"_fork\"](false);\nvar newtypeCanceler = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar functorParAff = {\n map: $foreign[\"_parAffMap\"]\n};\nvar functorAff = {\n map: $foreign[\"_map\"]\n};\nvar map1 = /* #__PURE__ */ Data_Functor.map(functorAff);\nvar forkAff = /* #__PURE__ */ $foreign[\"_fork\"](true);\nvar ffiUtil = /* #__PURE__ */ (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 412, column 21 - line 414, 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 407, column 20 - line 409, column 55): \" + [ 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 402, column 12 - line 404, column 21): \" + [ 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})();\nvar makeFiber = function (aff) {\n return $foreign[\"_makeFiber\"](ffiUtil, aff);\n};\nvar launchAff = function (aff) {\n return function __do() {\n var fiber = makeFiber(aff)();\n fiber.run();\n return fiber;\n };\n};\nvar launchAff_ = function ($75) {\n return $$void(launchAff($75));\n};\nvar launchSuspendedAff = makeFiber;\nvar delay = function (v) {\n return $foreign[\"_delay\"](Data_Either.Right.create, v);\n};\nvar 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};\nvar applyParAff = {\n apply: $foreign[\"_parAffApply\"],\n Functor0: function () {\n return functorParAff;\n }\n};\nvar lift2 = /* #__PURE__ */ Control_Apply.lift2(applyParAff);\nvar semigroupParAff = function (dictSemigroup) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monadAff = {\n Applicative0: function () {\n return applicativeAff;\n },\n Bind1: function () {\n return bindAff;\n }\n};\nvar bindAff = {\n bind: $foreign[\"_bind\"],\n Apply0: function () {\n return $lazy_applyAff(0);\n }\n};\nvar applicativeAff = {\n pure: $foreign[\"_pure\"],\n Apply0: function () {\n return $lazy_applyAff(0);\n }\n};\nvar $lazy_applyAff = /* #__PURE__ */ $runtime_lazy(\"applyAff\", \"Effect.Aff\", function () {\n return {\n apply: Control_Monad.ap(monadAff),\n Functor0: function () {\n return functorAff;\n }\n };\n});\nvar applyAff = /* #__PURE__ */ $lazy_applyAff(73);\nvar pure2 = /* #__PURE__ */ Control_Applicative.pure(applicativeAff);\nvar bind1 = /* #__PURE__ */ Control_Bind.bind(bindAff);\nvar lift21 = /* #__PURE__ */ Control_Apply.lift2(applyAff);\nvar apply = /* #__PURE__ */ Control_Apply.apply(applyAff);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(bindAff);\nvar cancelWith = function (aff) {\n return function (v) {\n return $foreign.generalBracket(pure2(Data_Unit.unit))({\n killed: function (e) {\n return function (v1) {\n return v(e);\n };\n },\n failed: Data_Function[\"const\"](pure2),\n completed: Data_Function[\"const\"](pure2)\n })(Data_Function[\"const\"](aff));\n };\n};\nvar $$finally = function (fin) {\n return function (a) {\n return bracket(pure2(Data_Unit.unit))(Data_Function[\"const\"](fin))(Data_Function[\"const\"](a));\n };\n};\nvar invincible = function (a) {\n return bracket(a)(Data_Function[\"const\"](pure2(Data_Unit.unit)))(pure2);\n};\nvar lazyAff = {\n defer: function (f) {\n return bind1(pure2(Data_Unit.unit))(f);\n }\n};\nvar parallelAff = {\n parallel: Unsafe_Coerce.unsafeCoerce,\n sequential: $foreign[\"_sequential\"],\n Apply0: function () {\n return applyAff;\n },\n Apply1: function () {\n return applyParAff;\n }\n};\nvar parallel = /* #__PURE__ */ Control_Parallel_Class.parallel(parallelAff);\nvar applicativeParAff = {\n pure: function ($76) {\n return parallel(pure2($76));\n },\n Apply0: function () {\n return applyParAff;\n }\n};\nvar pure3 = /* #__PURE__ */ Control_Applicative.pure(applicativeParAff);\nvar parSequence_ = /* #__PURE__ */ Control_Parallel.parSequence_(parallelAff)(applicativeParAff)(Data_Foldable.foldableArray);\nvar monoidParAff = function (dictMonoid) {\n var semigroupParAff1 = semigroupParAff(dictMonoid.Semigroup0());\n return {\n mempty: pure3(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupParAff1;\n }\n };\n};\nvar semigroupCanceler = {\n append: function (v) {\n return function (v1) {\n return function (err) {\n return parSequence_([ v(err), v1(err) ]);\n };\n };\n }\n};\nvar semigroupAff = function (dictSemigroup) {\n return {\n append: lift21(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monadEffectAff = {\n liftEffect: $foreign[\"_liftEffect\"],\n Monad0: function () {\n return monadAff;\n }\n};\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(monadEffectAff);\nvar effectCanceler = function ($77) {\n return Canceler(Data_Function[\"const\"](liftEffect($77)));\n};\nvar joinFiber = function (v) {\n return $foreign.makeAff(function (k) {\n return map(effectCanceler)(v.join(k));\n });\n};\nvar functorFiber = {\n map: function (f) {\n return function (t) {\n return Effect_Unsafe.unsafePerformEffect(makeFiber(map1(f)(joinFiber(t))));\n };\n }\n};\nvar applyFiber = {\n apply: function (t1) {\n return function (t2) {\n return Effect_Unsafe.unsafePerformEffect(makeFiber(apply(joinFiber(t1))(joinFiber(t2))));\n };\n },\n Functor0: function () {\n return functorFiber;\n }\n};\nvar applicativeFiber = {\n pure: function (a) {\n return Effect_Unsafe.unsafePerformEffect(makeFiber(pure2(a)));\n },\n Apply0: function () {\n return applyFiber;\n }\n};\nvar killFiber = function (e) {\n return function (v) {\n return bind1(liftEffect(v.isSuspended))(function (suspended) {\n if (suspended) {\n return liftEffect($$void(v.kill(e, Data_Function[\"const\"](pure(Data_Unit.unit)))));\n };\n return $foreign.makeAff(function (k) {\n return map(effectCanceler)(v.kill(e, k));\n });\n });\n };\n};\nvar fiberCanceler = /* #__PURE__ */ (function () {\n var $78 = Data_Function.flip(killFiber);\n return function ($79) {\n return Canceler($78($79));\n };\n})();\nvar supervise = function (aff) {\n var killError = Effect_Exception.error(\"[Aff] Child fiber outlived parent\");\n var killAll = function (err) {\n return function (sup) {\n return $foreign.makeAff(function (k) {\n return $foreign[\"_killAll\"](err, sup.supervisor, k(pure1(Data_Unit.unit)));\n });\n };\n };\n var acquire = function __do() {\n var sup = $foreign[\"_makeSupervisedFiber\"](ffiUtil, aff)();\n sup.fiber.run();\n return sup;\n };\n return $foreign.generalBracket(liftEffect(acquire))({\n killed: function (err) {\n return function (sup) {\n return parSequence_([ killFiber(err)(sup.fiber), killAll(err)(sup) ]);\n };\n },\n failed: Data_Function[\"const\"](killAll(killError)),\n completed: Data_Function[\"const\"](killAll(killError))\n })(function ($80) {\n return joinFiber((function (v) {\n return v.fiber;\n })($80));\n });\n};\nvar monadSTAff = {\n liftST: /* #__PURE__ */ (function () {\n var $81 = Control_Monad_ST_Class.liftST(Control_Monad_ST_Class.monadSTEffect);\n return function ($82) {\n return liftEffect($81($82));\n };\n })(),\n Monad0: function () {\n return monadAff;\n }\n};\nvar monadThrowAff = {\n throwError: $foreign[\"_throwError\"],\n Monad0: function () {\n return monadAff;\n }\n};\nvar monadErrorAff = {\n catchError: $foreign[\"_catchError\"],\n MonadThrow0: function () {\n return monadThrowAff;\n }\n};\nvar $$try = /* #__PURE__ */ Control_Monad_Error_Class[\"try\"](monadErrorAff);\nvar catchError = /* #__PURE__ */ Control_Monad_Error_Class.catchError(monadErrorAff);\nvar attempt = $$try;\nvar runAff = function (k) {\n return function (aff) {\n return launchAff(bindFlipped(function ($83) {\n return liftEffect(k($83));\n })($$try(aff)));\n };\n};\nvar runAff_ = function (k) {\n return function (aff) {\n return $$void(runAff(k)(aff));\n };\n};\nvar runSuspendedAff = function (k) {\n return function (aff) {\n return launchSuspendedAff(bindFlipped(function ($84) {\n return liftEffect(k($84));\n })($$try(aff)));\n };\n};\nvar monadRecAff = {\n tailRecM: function (k) {\n var go = function (a) {\n return bind1(k(a))(function (res) {\n if (res instanceof Control_Monad_Rec_Class.Done) {\n return pure2(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 104, column 7 - line 106, column 23): \" + [ res.constructor.name ]);\n });\n };\n return go;\n },\n Monad0: function () {\n return monadAff;\n }\n};\nvar monoidAff = function (dictMonoid) {\n var semigroupAff1 = semigroupAff(dictMonoid.Semigroup0());\n return {\n mempty: pure2(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupAff1;\n }\n };\n};\nvar nonCanceler = /* #__PURE__ */ Data_Function[\"const\"](/* #__PURE__ */ pure2(Data_Unit.unit));\nvar monoidCanceler = {\n mempty: nonCanceler,\n Semigroup0: function () {\n return semigroupCanceler;\n }\n};\nvar mempty = /* #__PURE__ */ Data_Monoid.mempty(monoidCanceler);\nvar never = /* #__PURE__ */ $foreign.makeAff(function (v) {\n return pure(mempty);\n});\nvar apathize = /* #__PURE__ */ (function () {\n var $85 = map1(Data_Function[\"const\"](Data_Unit.unit));\n return function ($86) {\n return $85(attempt($86));\n };\n})();\nvar altParAff = {\n alt: $foreign[\"_parAffAlt\"],\n Functor0: function () {\n return functorParAff;\n }\n};\nvar altAff = {\n alt: function (a1) {\n return function (a2) {\n return catchError(a1)(Data_Function[\"const\"](a2));\n };\n },\n Functor0: function () {\n return functorAff;\n }\n};\nvar plusAff = {\n empty: /* #__PURE__ */ Control_Monad_Error_Class.throwError(monadThrowAff)(/* #__PURE__ */ Effect_Exception.error(\"Always fails\")),\n Alt0: function () {\n return altAff;\n }\n};\nvar plusParAff = {\n empty: /* #__PURE__ */ parallel(/* #__PURE__ */ Control_Plus.empty(plusAff)),\n Alt0: function () {\n return altParAff;\n }\n};\nvar alternativeParAff = {\n Applicative0: function () {\n return applicativeParAff;\n },\n Plus1: function () {\n return plusParAff;\n }\n};\nexport {\n makeAff,\n generalBracket\n} from \"./foreign.js\";\nexport {\n Canceler,\n launchAff,\n launchAff_,\n launchSuspendedAff,\n runAff,\n runAff_,\n runSuspendedAff,\n forkAff,\n suspendAff,\n supervise,\n attempt,\n apathize,\n delay,\n never,\n $$finally as finally,\n invincible,\n killFiber,\n joinFiber,\n cancelWith,\n bracket,\n nonCanceler,\n effectCanceler,\n fiberCanceler,\n functorAff,\n applyAff,\n applicativeAff,\n bindAff,\n monadAff,\n semigroupAff,\n monoidAff,\n altAff,\n plusAff,\n monadRecAff,\n monadThrowAff,\n monadErrorAff,\n monadEffectAff,\n lazyAff,\n monadSTAff,\n functorParAff,\n applyParAff,\n applicativeParAff,\n semigroupParAff,\n monoidParAff,\n altParAff,\n plusParAff,\n alternativeParAff,\n parallelAff,\n functorFiber,\n applyFiber,\n applicativeFiber,\n newtypeCanceler,\n semigroupCanceler,\n monoidCanceler\n};\nexport {\n catchError,\n throwError,\n try\n} from \"../Control.Monad.Error.Class/index.js\";\nexport {\n parallel,\n sequential\n} from \"../Control.Parallel.Class/index.js\";\nexport {\n Milliseconds\n} from \"../Data.Time.Duration/index.js\";\nexport {\n error,\n message\n} from \"../Effect.Exception/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Uncurried from \"../Effect.Uncurried/index.js\";\nvar EffectFnCanceler = function (x) {\n return x;\n};\nvar EffectFnAff = function (x) {\n return x;\n};\nvar fromEffectFnAff = function (v) {\n return Effect_Aff.makeAff(function (k) {\n return function __do() {\n var v1 = v(function ($9) {\n return k(Data_Either.Left.create($9))();\n }, function ($10) {\n return k(Data_Either.Right.create($10))();\n });\n return function (e) {\n return Effect_Aff.makeAff(function (k2) {\n return function __do() {\n v1(e, function ($11) {\n return k2(Data_Either.Left.create($11))();\n }, function ($12) {\n return k2(Data_Either.Right.create($12))();\n });\n return Effect_Aff.nonCanceler;\n };\n });\n };\n };\n });\n};\nexport {\n EffectFnAff,\n EffectFnCanceler,\n fromEffectFnAff\n};\nexport {\n mkEffectFn1,\n mkEffectFn2,\n mkEffectFn3,\n runEffectFn1,\n runEffectFn2,\n runEffectFn3\n} from \"../Effect.Uncurried/index.js\";\n", "export function typeOf(value) {\n return typeof value;\n}\n\nexport function tagOf(value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n}\n\nexport function isNull(value) {\n return value === null;\n}\n\nexport function isUndefined(value) {\n return value === undefined;\n}\n\nexport const isArray = Array.isArray || function (value) {\n return Object.prototype.toString.call(value) === \"[object Array]\";\n};\n", "export const fromNumberImpl = function (just) {\n return function (nothing) {\n return function (n) {\n /* jshint bitwise: false */\n return (n | 0) === n ? just(n) : nothing;\n };\n };\n};\n\nexport const toNumber = function (n) {\n return n;\n};\n\nexport const fromStringAsImpl = function (just) {\n return function (nothing) {\n return function (radix) {\n var digits;\n if (radix < 11) {\n digits = \"[0-\" + (radix - 1).toString() + \"]\";\n } else if (radix === 11) {\n digits = \"[0-9a]\";\n } else {\n digits = \"[0-9a-\" + String.fromCharCode(86 + radix) + \"]\";\n }\n var pattern = new RegExp(\"^[\\\\+\\\\-]?\" + digits + \"+$\", \"i\");\n\n return function (s) {\n /* jshint bitwise: false */\n if (pattern.test(s)) {\n var i = parseInt(s, radix);\n return (i | 0) === i ? just(i) : nothing;\n } else {\n return nothing;\n }\n };\n };\n };\n};\n\nexport const toStringAs = function (radix) {\n return function (i) {\n return i.toString(radix);\n };\n};\n\n\nexport const quot = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x / y | 0;\n };\n};\n\nexport const rem = function (x) {\n return function (y) {\n return x % y;\n };\n};\n\nexport const pow = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return Math.pow(x,y) | 0;\n };\n};\n", "/* globals exports */\nexport const nan = NaN;\nconst isNaNImpl = isNaN;\nexport { isNaNImpl as isNaN };\nexport const infinity = Infinity;\nconst isFiniteImpl = isFinite;\nexport { isFiniteImpl as isFinite };\n\nexport function fromStringImpl(str, isFinite, just, nothing) {\n var num = parseFloat(str);\n if (isFinite(num)) {\n return just(num);\n } else {\n return nothing;\n }\n}\n\nexport const abs = Math.abs;\n\nexport const acos = Math.acos;\n\nexport const asin = Math.asin;\n\nexport const atan = Math.atan;\n\nexport const atan2 = function (y) {\n return function (x) {\n return Math.atan2(y, x);\n };\n};\n\nexport const ceil = Math.ceil;\n\nexport const cos = Math.cos;\n\nexport const exp = Math.exp;\n\nexport const floor = Math.floor;\n\nexport const log = Math.log;\n\nexport const max = function (n1) {\n return function (n2) {\n return Math.max(n1, n2);\n };\n};\n\nexport const min = function (n1) {\n return function (n2) {\n return Math.min(n1, n2);\n };\n};\n\nexport const pow = function (n) {\n return function (p) {\n return Math.pow(n, p);\n };\n};\n\nexport const remainder = function (n) {\n return function (m) {\n return n % m;\n };\n};\n\nexport const round = Math.round;\n\nexport const sign = Math.sign ? Math.sign : function(x) {\n return x === 0 || x !== x ? x : (x < 0 ? -1 : 1);\n};\n\nexport const sin = Math.sin;\n\nexport const sqrt = Math.sqrt;\n\nexport const tan = Math.tan;\n\nexport const trunc = Math.trunc ? Math.trunc : function(x) {\n return x < 0 ? Math.ceil(x) : Math.floor(x);\n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Number from \"../Data.Number/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nvar top = /* #__PURE__ */ Data_Bounded.top(Data_Bounded.boundedInt);\nvar bottom = /* #__PURE__ */ Data_Bounded.bottom(Data_Bounded.boundedInt);\nvar Radix = function (x) {\n return x;\n};\nvar Even = /* #__PURE__ */ (function () {\n function Even() {\n\n };\n Even.value = new Even();\n return Even;\n})();\nvar Odd = /* #__PURE__ */ (function () {\n function Odd() {\n\n };\n Odd.value = new Odd();\n return Odd;\n})();\nvar showParity = {\n show: function (v) {\n if (v instanceof Even) {\n return \"Even\";\n };\n if (v instanceof Odd) {\n return \"Odd\";\n };\n throw new Error(\"Failed pattern match at Data.Int (line 117, column 1 - line 119, column 19): \" + [ v.constructor.name ]);\n }\n};\nvar radix = function (n) {\n if (n >= 2 && n <= 36) {\n return new Data_Maybe.Just(n);\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Int (line 198, column 1 - line 198, column 28): \" + [ n.constructor.name ]);\n};\nvar odd = function (x) {\n return (x & 1) !== 0;\n};\nvar octal = 8;\nvar hexadecimal = 16;\nvar fromStringAs = /* #__PURE__ */ (function () {\n return $foreign.fromStringAsImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar fromString = /* #__PURE__ */ fromStringAs(10);\nvar fromNumber = /* #__PURE__ */ (function () {\n return $foreign.fromNumberImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar unsafeClamp = function (x) {\n if (!Data_Number[\"isFinite\"](x)) {\n return 0;\n };\n if (x >= $foreign.toNumber(top)) {\n return top;\n };\n if (x <= $foreign.toNumber(bottom)) {\n return bottom;\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.fromMaybe(0)(fromNumber(x));\n };\n throw new Error(\"Failed pattern match at Data.Int (line 72, column 1 - line 72, column 29): \" + [ x.constructor.name ]);\n};\nvar round = function ($37) {\n return unsafeClamp(Data_Number.round($37));\n};\nvar trunc = function ($38) {\n return unsafeClamp(Data_Number.trunc($38));\n};\nvar floor = function ($39) {\n return unsafeClamp(Data_Number.floor($39));\n};\nvar even = function (x) {\n return (x & 1) === 0;\n};\nvar parity = function (n) {\n var $28 = even(n);\n if ($28) {\n return Even.value;\n };\n return Odd.value;\n};\nvar eqParity = {\n eq: function (x) {\n return function (y) {\n if (x instanceof Even && y instanceof Even) {\n return true;\n };\n if (x instanceof Odd && y instanceof Odd) {\n return true;\n };\n return false;\n };\n }\n};\nvar eq1 = /* #__PURE__ */ Data_Eq.eq(eqParity);\nvar ordParity = {\n compare: function (x) {\n return function (y) {\n if (x instanceof Even && y instanceof Even) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof Even) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof Even) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof Odd && y instanceof Odd) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Data.Int (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqParity;\n }\n};\nvar semiringParity = /* #__PURE__ */ (function () {\n return {\n zero: Even.value,\n add: function (x) {\n return function (y) {\n var $33 = eq1(x)(y);\n if ($33) {\n return Even.value;\n };\n return Odd.value;\n };\n },\n one: Odd.value,\n mul: function (v) {\n return function (v1) {\n if (v instanceof Odd && v1 instanceof Odd) {\n return Odd.value;\n };\n return Even.value;\n };\n }\n };\n})();\nvar ringParity = {\n sub: /* #__PURE__ */ Data_Semiring.add(semiringParity),\n Semiring0: function () {\n return semiringParity;\n }\n};\nvar divisionRingParity = {\n recip: /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn),\n Ring0: function () {\n return ringParity;\n }\n};\nvar decimal = 10;\nvar commutativeRingParity = {\n Ring0: function () {\n return ringParity;\n }\n};\nvar euclideanRingParity = {\n degree: function (v) {\n if (v instanceof Even) {\n return 0;\n };\n if (v instanceof Odd) {\n return 1;\n };\n throw new Error(\"Failed pattern match at Data.Int (line 137, column 1 - line 141, column 17): \" + [ v.constructor.name ]);\n },\n div: function (x) {\n return function (v) {\n return x;\n };\n },\n mod: function (v) {\n return function (v1) {\n return Even.value;\n };\n },\n CommutativeRing0: function () {\n return commutativeRingParity;\n }\n};\nvar ceil = function ($40) {\n return unsafeClamp(Data_Number.ceil($40));\n};\nvar boundedParity = /* #__PURE__ */ (function () {\n return {\n bottom: Even.value,\n top: Odd.value,\n Ord0: function () {\n return ordParity;\n }\n };\n})();\nvar binary = 2;\nvar base36 = 36;\nexport {\n toNumber,\n toStringAs,\n quot,\n rem,\n pow\n} from \"./foreign.js\";\nexport {\n fromNumber,\n ceil,\n floor,\n trunc,\n round,\n fromString,\n radix,\n binary,\n octal,\n decimal,\n hexadecimal,\n base36,\n fromStringAs,\n Even,\n Odd,\n parity,\n even,\n odd,\n eqParity,\n ordParity,\n showParity,\n boundedParity,\n semiringParity,\n ringParity,\n commutativeRingParity,\n euclideanRingParity,\n divisionRingParity\n};\n", "export const fromCharArray = function (a) {\n return a.join(\"\");\n};\n\nexport const toCharArray = function (s) {\n return s.split(\"\");\n};\n\nexport const singleton = function (c) {\n return c;\n};\n\nexport const _charAt = function (just) {\n return function (nothing) {\n return function (i) {\n return function (s) {\n return i >= 0 && i < s.length ? just(s.charAt(i)) : nothing;\n };\n };\n };\n};\n\nexport const _toChar = function (just) {\n return function (nothing) {\n return function (s) {\n return s.length === 1 ? just(s) : nothing;\n };\n };\n};\n\nexport const length = function (s) {\n return s.length;\n};\n\nexport const countPrefix = function (p) {\n return function (s) {\n var i = 0;\n while (i < s.length && p(s.charAt(i))) i++;\n return i;\n };\n};\n\nexport const _indexOf = function (just) {\n return function (nothing) {\n return function (x) {\n return function (s) {\n var i = s.indexOf(x);\n return i === -1 ? nothing : just(i);\n };\n };\n };\n};\n\nexport const _indexOfStartingAt = function (just) {\n return function (nothing) {\n return function (x) {\n return function (startAt) {\n return function (s) {\n if (startAt < 0 || startAt > s.length) return nothing;\n var i = s.indexOf(x, startAt);\n return i === -1 ? nothing : just(i);\n };\n };\n };\n };\n};\n\nexport const _lastIndexOf = function (just) {\n return function (nothing) {\n return function (x) {\n return function (s) {\n var i = s.lastIndexOf(x);\n return i === -1 ? nothing : just(i);\n };\n };\n };\n};\n\nexport const _lastIndexOfStartingAt = function (just) {\n return function (nothing) {\n return function (x) {\n return function (startAt) {\n return function (s) {\n var i = s.lastIndexOf(x, startAt);\n return i === -1 ? nothing : just(i);\n };\n };\n };\n };\n};\n\nexport const take = function (n) {\n return function (s) {\n return s.substr(0, n);\n };\n};\n\nexport const drop = function (n) {\n return function (s) {\n return s.substring(n);\n };\n};\n\nexport const slice = function (b) {\n return function (e) {\n return function (s) {\n return s.slice(b,e);\n };\n };\n};\n\nexport const splitAt = function (i) {\n return function (s) {\n return { before: s.substring(0, i), after: s.substring(i) };\n };\n};\n", "export const 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\nexport const char = function (s) {\n if (s.length === 1) return s.charAt(0);\n throw new Error(\"Data.String.Unsafe.char: Expected string of length 1.\");\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_String_Unsafe from \"../Data.String.Unsafe/index.js\";\nvar uncons = function (v) {\n if (v === \"\") {\n return Data_Maybe.Nothing.value;\n };\n return new Data_Maybe.Just({\n head: Data_String_Unsafe.charAt(0)(v),\n tail: $foreign.drop(1)(v)\n });\n};\nvar toChar = /* #__PURE__ */ (function () {\n return $foreign[\"_toChar\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar takeWhile = function (p) {\n return function (s) {\n return $foreign.take($foreign.countPrefix(p)(s))(s);\n };\n};\nvar takeRight = function (i) {\n return function (s) {\n return $foreign.drop($foreign.length(s) - i | 0)(s);\n };\n};\nvar stripSuffix = function (v) {\n return function (str) {\n var v1 = $foreign.splitAt($foreign.length(str) - $foreign.length(v) | 0)(str);\n var $14 = v1.after === v;\n if ($14) {\n return new Data_Maybe.Just(v1.before);\n };\n return Data_Maybe.Nothing.value;\n };\n};\nvar stripPrefix = function (v) {\n return function (str) {\n var v1 = $foreign.splitAt($foreign.length(v))(str);\n var $20 = v1.before === v;\n if ($20) {\n return new Data_Maybe.Just(v1.after);\n };\n return Data_Maybe.Nothing.value;\n };\n};\nvar lastIndexOf$prime = /* #__PURE__ */ (function () {\n return $foreign[\"_lastIndexOfStartingAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar lastIndexOf = /* #__PURE__ */ (function () {\n return $foreign[\"_lastIndexOf\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar indexOf$prime = /* #__PURE__ */ (function () {\n return $foreign[\"_indexOfStartingAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar indexOf = /* #__PURE__ */ (function () {\n return $foreign[\"_indexOf\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nvar dropWhile = function (p) {\n return function (s) {\n return $foreign.drop($foreign.countPrefix(p)(s))(s);\n };\n};\nvar dropRight = function (i) {\n return function (s) {\n return $foreign.take($foreign.length(s) - i | 0)(s);\n };\n};\nvar contains = function (pat) {\n var $23 = indexOf(pat);\n return function ($24) {\n return Data_Maybe.isJust($23($24));\n };\n};\nvar charAt = /* #__PURE__ */ (function () {\n return $foreign[\"_charAt\"](Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n})();\nexport {\n singleton,\n fromCharArray,\n toCharArray,\n length,\n countPrefix,\n take,\n drop,\n slice,\n splitAt\n} from \"./foreign.js\";\nexport {\n stripPrefix,\n stripSuffix,\n contains,\n charAt,\n toChar,\n uncons,\n indexOf,\n indexOf$prime,\n lastIndexOf,\n lastIndexOf$prime,\n takeRight,\n takeWhile,\n dropRight,\n dropWhile\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Int from \"../Data.Int/index.js\";\nimport * as Data_List_NonEmpty from \"../Data.List.NonEmpty/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showString);\nvar show1 = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Data_Either.applicativeEither);\nvar compare = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordString);\nvar compare1 = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordInt);\nvar ForeignError = /* #__PURE__ */ (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})();\nvar TypeMismatch = /* #__PURE__ */ (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})();\nvar ErrorAtIndex = /* #__PURE__ */ (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})();\nvar ErrorAtProperty = /* #__PURE__ */ (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})();\nvar unsafeToForeign = Unsafe_Coerce.unsafeCoerce;\nvar unsafeFromForeign = Unsafe_Coerce.unsafeCoerce;\nvar showForeignError = {\n show: function (v) {\n if (v instanceof ForeignError) {\n return \"(ForeignError \" + (show(v.value0) + \")\");\n };\n if (v instanceof ErrorAtIndex) {\n return \"(ErrorAtIndex \" + (show1(v.value0) + (\" \" + (Data_Show.show(showForeignError)(v.value1) + \")\")));\n };\n if (v instanceof ErrorAtProperty) {\n return \"(ErrorAtProperty \" + (show(v.value0) + (\" \" + (Data_Show.show(showForeignError)(v.value1) + \")\")));\n };\n if (v instanceof TypeMismatch) {\n return \"(TypeMismatch \" + (show(v.value0) + (\" \" + (show(v.value1) + \")\")));\n };\n throw new Error(\"Failed pattern match at Foreign (line 69, column 1 - line 73, column 89): \" + [ v.constructor.name ]);\n }\n};\nvar renderForeignError = function (v) {\n if (v instanceof ForeignError) {\n return v.value0;\n };\n if (v instanceof ErrorAtIndex) {\n return \"Error at array index \" + (show1(v.value0) + (\": \" + renderForeignError(v.value1)));\n };\n if (v instanceof ErrorAtProperty) {\n return \"Error at property \" + (show(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 78, column 1 - line 78, column 45): \" + [ v.constructor.name ]);\n};\nvar readUndefined = function (dictMonad) {\n var pure1 = Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad));\n return function (value) {\n if ($foreign.isUndefined(value)) {\n return pure1(Data_Maybe.Nothing.value);\n };\n if (Data_Boolean.otherwise) {\n return pure1(new Data_Maybe.Just(value));\n };\n throw new Error(\"Failed pattern match at Foreign (line 174, column 1 - line 174, column 103): \" + [ value.constructor.name ]);\n };\n};\nvar readNullOrUndefined = function (dictMonad) {\n var pure1 = Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad));\n return function (value) {\n if ($foreign.isNull(value) || $foreign.isUndefined(value)) {\n return pure1(Data_Maybe.Nothing.value);\n };\n if (Data_Boolean.otherwise) {\n return pure1(new Data_Maybe.Just(value));\n };\n throw new Error(\"Failed pattern match at Foreign (line 179, column 1 - line 179, column 109): \" + [ value.constructor.name ]);\n };\n};\nvar readNull = function (dictMonad) {\n var pure1 = Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad));\n return function (value) {\n if ($foreign.isNull(value)) {\n return pure1(Data_Maybe.Nothing.value);\n };\n if (Data_Boolean.otherwise) {\n return pure1(new Data_Maybe.Just(value));\n };\n throw new Error(\"Failed pattern match at Foreign (line 169, column 1 - line 169, column 98): \" + [ value.constructor.name ]);\n };\n};\nvar fail = function (dictMonad) {\n var $153 = Control_Monad_Error_Class.throwError(Control_Monad_Except_Trans.monadThrowExceptT(dictMonad));\n return function ($154) {\n return $153(Data_List_NonEmpty.singleton($154));\n };\n};\nvar readArray = function (dictMonad) {\n var pure1 = Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad));\n var fail1 = fail(dictMonad);\n return function (value) {\n if ($foreign.isArray(value)) {\n return pure1(unsafeFromForeign(value));\n };\n if (Data_Boolean.otherwise) {\n return fail1(new TypeMismatch(\"array\", $foreign.tagOf(value)));\n };\n throw new Error(\"Failed pattern match at Foreign (line 164, column 1 - line 164, column 99): \" + [ value.constructor.name ]);\n };\n};\nvar unsafeReadTagged = function (dictMonad) {\n var pure1 = Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad));\n var fail1 = fail(dictMonad);\n return function (tag) {\n return function (value) {\n if ($foreign.tagOf(value) === tag) {\n return pure1(unsafeFromForeign(value));\n };\n if (Data_Boolean.otherwise) {\n return fail1(new TypeMismatch(tag, $foreign.tagOf(value)));\n };\n throw new Error(\"Failed pattern match at Foreign (line 123, column 1 - line 123, column 104): \" + [ tag.constructor.name, value.constructor.name ]);\n };\n };\n};\nvar readBoolean = function (dictMonad) {\n return unsafeReadTagged(dictMonad)(\"Boolean\");\n};\nvar readNumber = function (dictMonad) {\n return unsafeReadTagged(dictMonad)(\"Number\");\n};\nvar readInt = function (dictMonad) {\n var map = Data_Functor.map(((dictMonad.Bind1()).Apply0()).Functor0());\n var readNumber1 = readNumber(dictMonad);\n return function (value) {\n var error = new Data_Either.Left(Data_List_NonEmpty.singleton(new TypeMismatch(\"Int\", $foreign.tagOf(value))));\n var fromNumber = (function () {\n var $155 = Data_Maybe.maybe(error)(pure);\n return function ($156) {\n return $155(Data_Int.fromNumber($156));\n };\n })();\n return Control_Monad_Except_Trans.mapExceptT(map(Data_Either.either(Data_Function[\"const\"](error))(fromNumber)))(readNumber1(value));\n };\n};\nvar readString = function (dictMonad) {\n return unsafeReadTagged(dictMonad)(\"String\");\n};\nvar readChar = function (dictMonad) {\n var map = Data_Functor.map(((dictMonad.Bind1()).Apply0()).Functor0());\n var readString1 = readString(dictMonad);\n return function (value) {\n var error = new Data_Either.Left(Data_List_NonEmpty.singleton(new TypeMismatch(\"Char\", $foreign.tagOf(value))));\n var fromString = (function () {\n var $157 = Data_Maybe.maybe(error)(pure);\n return function ($158) {\n return $157(Data_String_CodeUnits.toChar($158));\n };\n })();\n return Control_Monad_Except_Trans.mapExceptT(map(Data_Either.either(Data_Function[\"const\"](error))(fromString)))(readString1(value));\n };\n};\nvar eqForeignError = {\n eq: function (x) {\n return function (y) {\n if (x instanceof ForeignError && y instanceof ForeignError) {\n return x.value0 === y.value0;\n };\n if (x instanceof TypeMismatch && y instanceof TypeMismatch) {\n return x.value0 === y.value0 && x.value1 === y.value1;\n };\n if (x instanceof ErrorAtIndex && y instanceof ErrorAtIndex) {\n return x.value0 === y.value0 && Data_Eq.eq(eqForeignError)(x.value1)(y.value1);\n };\n if (x instanceof ErrorAtProperty && y instanceof ErrorAtProperty) {\n return x.value0 === y.value0 && Data_Eq.eq(eqForeignError)(x.value1)(y.value1);\n };\n return false;\n };\n }\n};\nvar ordForeignError = {\n compare: function (x) {\n return function (y) {\n if (x instanceof ForeignError && y instanceof ForeignError) {\n return compare(x.value0)(y.value0);\n };\n if (x instanceof ForeignError) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof ForeignError) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof TypeMismatch && y instanceof TypeMismatch) {\n var v = compare(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 compare(x.value1)(y.value1);\n };\n if (x instanceof TypeMismatch) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof TypeMismatch) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof ErrorAtIndex && y instanceof ErrorAtIndex) {\n var v = compare1(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(ordForeignError)(x.value1)(y.value1);\n };\n if (x instanceof ErrorAtIndex) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof ErrorAtIndex) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof ErrorAtProperty && y instanceof ErrorAtProperty) {\n var v = compare(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(ordForeignError)(x.value1)(y.value1);\n };\n throw new Error(\"Failed pattern match at Foreign (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqForeignError;\n }\n};\nexport {\n typeOf,\n tagOf,\n isNull,\n isUndefined,\n isArray\n} from \"./foreign.js\";\nexport {\n ForeignError,\n TypeMismatch,\n ErrorAtIndex,\n ErrorAtProperty,\n renderForeignError,\n unsafeToForeign,\n unsafeFromForeign,\n unsafeReadTagged,\n readString,\n readChar,\n readBoolean,\n readNumber,\n readInt,\n readArray,\n readNull,\n readUndefined,\n readNullOrUndefined,\n fail,\n eqForeignError,\n ordForeignError,\n showForeignError\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Affjax_RequestBody from \"../Affjax.RequestBody/index.js\";\nimport * as Affjax_RequestHeader from \"../Affjax.RequestHeader/index.js\";\nimport * as Affjax_ResponseFormat from \"../Affjax.ResponseFormat/index.js\";\nimport * as Affjax_ResponseHeader from \"../Affjax.ResponseHeader/index.js\";\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Except from \"../Control.Monad.Except/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Argonaut_Core from \"../Data.Argonaut.Core/index.js\";\nimport * as Data_Argonaut_Parser from \"../Data.Argonaut.Parser/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FormURLEncoded from \"../Data.FormURLEncoded/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HTTP_Method from \"../Data.HTTP.Method/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_List_NonEmpty from \"../Data.List.NonEmpty/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Aff_Compat from \"../Effect.Aff.Compat/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nvar pure = /* #__PURE__ */ Control_Applicative.pure(/* #__PURE__ */ Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity));\nvar fail = /* #__PURE__ */ Foreign.fail(Data_Identity.monadIdentity);\nvar unsafeReadTagged = /* #__PURE__ */ Foreign.unsafeReadTagged(Data_Identity.monadIdentity);\nvar alt = /* #__PURE__ */ Control_Alt.alt(/* #__PURE__ */ Control_Monad_Except_Trans.altExceptT(Data_List_Types.semigroupNonEmptyList)(Data_Identity.monadIdentity));\nvar composeKleisliFlipped = /* #__PURE__ */ Control_Bind.composeKleisliFlipped(/* #__PURE__ */ Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity));\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar any = /* #__PURE__ */ Data_Foldable.any(Data_Foldable.foldableArray)(Data_HeytingAlgebra.heytingAlgebraBoolean);\nvar eq = /* #__PURE__ */ Data_Eq.eq(Data_Eq.eqString);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Data_Maybe.bindMaybe);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar mapFlipped = /* #__PURE__ */ Data_Functor.mapFlipped(Effect_Aff.functorAff);\nvar $$try = /* #__PURE__ */ Control_Monad_Error_Class[\"try\"](Effect_Aff.monadErrorAff);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(Effect_Aff.applicativeAff);\nvar map2 = /* #__PURE__ */ Data_Functor.map(Effect_Aff.functorAff);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Data_Either.functorEither);\nvar RequestContentError = /* #__PURE__ */ (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})();\nvar ResponseBodyError = /* #__PURE__ */ (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})();\nvar TimeoutError = /* #__PURE__ */ (function () {\n function TimeoutError() {\n\n };\n TimeoutError.value = new TimeoutError();\n return TimeoutError;\n})();\nvar RequestFailedError = /* #__PURE__ */ (function () {\n function RequestFailedError() {\n\n };\n RequestFailedError.value = new RequestFailedError();\n return RequestFailedError;\n})();\nvar XHROtherError = /* #__PURE__ */ (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})();\nvar request = function (driver) {\n return function (req) {\n var parseJSON = function (v) {\n if (v === \"\") {\n return pure(Data_Argonaut_Core.jsonEmptyObject);\n };\n return Data_Either.either(function ($74) {\n return fail(Foreign.ForeignError.create($74));\n })(pure)(Data_Argonaut_Parser.jsonParser(v));\n };\n var fromResponse = (function () {\n if (req.responseFormat instanceof Affjax_ResponseFormat[\"ArrayBuffer\"]) {\n return unsafeReadTagged(\"ArrayBuffer\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Blob) {\n return unsafeReadTagged(\"Blob\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Document) {\n return function (x) {\n return alt(unsafeReadTagged(\"Document\")(x))(alt(unsafeReadTagged(\"XMLDocument\")(x))(unsafeReadTagged(\"HTMLDocument\")(x)));\n };\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Json) {\n return composeKleisliFlipped(function ($75) {\n return req.responseFormat.value0(parseJSON($75));\n })(unsafeReadTagged(\"String\"));\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat[\"String\"]) {\n return unsafeReadTagged(\"String\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Ignore) {\n return Data_Function[\"const\"](req.responseFormat.value0(pure(Data_Unit.unit)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 274, column 18 - line 283, column 57): \" + [ req.responseFormat.constructor.name ]);\n })();\n var extractContent = function (v) {\n if (v instanceof Affjax_RequestBody.ArrayView) {\n return new Data_Either.Right(v.value0(Foreign.unsafeToForeign));\n };\n if (v instanceof Affjax_RequestBody.Blob) {\n return new Data_Either.Right(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.Document) {\n return new Data_Either.Right(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody[\"String\"]) {\n return new Data_Either.Right(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.FormData) {\n return new Data_Either.Right(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\")(map(Foreign.unsafeToForeign)(Data_FormURLEncoded.encode(v.value0)));\n };\n if (v instanceof Affjax_RequestBody.Json) {\n return new Data_Either.Right(Foreign.unsafeToForeign(Data_Argonaut_Core.stringify(v.value0)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 235, column 20 - line 250, column 69): \" + [ v.constructor.name ]);\n };\n var addHeader = function (mh) {\n return function (hs) {\n if (mh instanceof Data_Maybe.Just && !any(Data_Function.on(eq)(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(map(Affjax_RequestHeader.ContentType.create)(bindFlipped(Affjax_RequestBody.toMediaType)(reqContent)))(addHeader(map(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: map1(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)(map(function (v1) {\n return v1;\n })(req.timeout))\n };\n };\n var send = function (content) {\n return mapFlipped($$try(Effect_Aff_Compat.fromEffectFnAff($foreign[\"_ajax\"](driver, \"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 headers: v.value0.headers,\n status: v.value0.status,\n statusText: v.value0.statusText,\n body: v1.value0\n });\n };\n throw new Error(\"Failed pattern match at Affjax (line 209, column 9 - line 211, column 52): \" + [ v1.constructor.name ]);\n };\n if (v instanceof Data_Either.Left) {\n return new Data_Either.Left((function () {\n var message = Effect_Exception.message(v.value0);\n var $61 = message === \"AffjaxTimeoutErrorMessageIdent\";\n if ($61) {\n return TimeoutError.value;\n };\n var $62 = message === \"AffjaxRequestFailedMessageIdent\";\n if ($62) {\n return RequestFailedError.value;\n };\n return new XHROtherError(v.value0);\n })());\n };\n throw new Error(\"Failed pattern match at Affjax (line 207, column 144 - line 219, column 28): \" + [ 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 pure1(new Data_Either.Left(new RequestContentError(v.value0)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 199, column 7 - line 203, column 48): \" + [ v.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Affjax (line 195, column 3 - line 203, column 48): \" + [ req.content.constructor.name ]);\n };\n};\nvar 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 113, column 14 - line 123, column 66): \" + [ v.constructor.name ]);\n};\nvar defaultRequest = /* #__PURE__ */ (function () {\n return {\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})();\nvar $$delete = function (driver) {\n return function (rf) {\n return function (u) {\n return request(driver)({\n headers: defaultRequest.headers,\n content: defaultRequest.content,\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n timeout: defaultRequest.timeout,\n method: new Data_Either.Left(Data_HTTP_Method.DELETE.value),\n url: u,\n responseFormat: rf\n });\n };\n };\n};\nvar delete_ = function (driver) {\n var $76 = map2($$void);\n var $77 = $$delete(driver)(Affjax_ResponseFormat.ignore);\n return function ($78) {\n return $76($77($78));\n };\n};\nvar get = function (driver) {\n return function (rf) {\n return function (u) {\n return request(driver)({\n method: defaultRequest.method,\n headers: defaultRequest.headers,\n content: defaultRequest.content,\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n timeout: defaultRequest.timeout,\n url: u,\n responseFormat: rf\n });\n };\n };\n};\nvar patch = function (driver) {\n return function (rf) {\n return function (u) {\n return function (c) {\n return request(driver)({\n headers: defaultRequest.headers,\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n timeout: defaultRequest.timeout,\n method: new Data_Either.Left(Data_HTTP_Method.PATCH.value),\n url: u,\n content: new Data_Maybe.Just(c),\n responseFormat: rf\n });\n };\n };\n };\n};\nvar patch_ = function (driver) {\n return function (url) {\n var $79 = map2($$void);\n var $80 = patch(driver)(Affjax_ResponseFormat.ignore)(url);\n return function ($81) {\n return $79($80($81));\n };\n };\n};\nvar post = function (driver) {\n return function (rf) {\n return function (u) {\n return function (c) {\n return request(driver)({\n headers: defaultRequest.headers,\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n timeout: defaultRequest.timeout,\n method: new Data_Either.Left(Data_HTTP_Method.POST.value),\n url: u,\n content: c,\n responseFormat: rf\n });\n };\n };\n };\n};\nvar post_ = function (driver) {\n return function (url) {\n var $82 = map2($$void);\n var $83 = post(driver)(Affjax_ResponseFormat.ignore)(url);\n return function ($84) {\n return $82($83($84));\n };\n };\n};\nvar put = function (driver) {\n return function (rf) {\n return function (u) {\n return function (c) {\n return request(driver)({\n headers: defaultRequest.headers,\n username: defaultRequest.username,\n password: defaultRequest.password,\n withCredentials: defaultRequest.withCredentials,\n timeout: defaultRequest.timeout,\n method: new Data_Either.Left(Data_HTTP_Method.PUT.value),\n url: u,\n content: c,\n responseFormat: rf\n });\n };\n };\n };\n};\nvar put_ = function (driver) {\n return function (url) {\n var $85 = map2($$void);\n var $86 = put(driver)(Affjax_ResponseFormat.ignore)(url);\n return function ($87) {\n return $85($86($87));\n };\n };\n};\nexport {\n defaultRequest,\n RequestContentError,\n ResponseBodyError,\n TimeoutError,\n RequestFailedError,\n XHROtherError,\n printError,\n request,\n get,\n post,\n post_,\n put,\n put_,\n $$delete as delete,\n delete_,\n patch,\n patch_\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar compare = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordInt);\nvar StatusCode = function (x) {\n return x;\n};\nvar showStatusCode = {\n show: function (v) {\n return \"(StatusCode \" + (show(v) + \")\");\n }\n};\nvar newtypeStatusCode = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar eqStatusCode = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordStatusCode = {\n compare: function (x) {\n return function (y) {\n return compare(x)(y);\n };\n },\n Eq0: function () {\n return eqStatusCode;\n }\n};\nexport {\n StatusCode,\n eqStatusCode,\n ordStatusCode,\n newtypeStatusCode,\n showStatusCode\n};\n", "export const driver = {\n newXHR: function () {\n return new XMLHttpRequest();\n },\n fixupUrl: function (url) {\n return url || \"/\";\n }\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Affjax from \"../Affjax/index.js\";\nvar request = /* #__PURE__ */ Affjax.request($foreign.driver);\nvar put_ = /* #__PURE__ */ Affjax.put_($foreign.driver);\nvar put = /* #__PURE__ */ Affjax.put($foreign.driver);\nvar post_ = /* #__PURE__ */ Affjax.post_($foreign.driver);\nvar post = /* #__PURE__ */ Affjax.post($foreign.driver);\nvar patch_ = /* #__PURE__ */ Affjax.patch_($foreign.driver);\nvar patch = /* #__PURE__ */ Affjax.patch($foreign.driver);\nvar get = /* #__PURE__ */ Affjax.get($foreign.driver);\nvar delete_ = /* #__PURE__ */ Affjax.delete_($foreign.driver);\nvar $$delete = /* #__PURE__ */ Affjax[\"delete\"]($foreign.driver);\nexport {\n driver\n} from \"./foreign.js\";\nexport {\n request,\n get,\n post,\n post_,\n put,\n put_,\n $$delete as delete,\n delete_,\n patch,\n patch_\n};\nexport {\n RequestContentError,\n RequestFailedError,\n ResponseBodyError,\n TimeoutError,\n XHROtherError,\n defaultRequest,\n printError\n} from \"../Affjax/index.js\";\n", "\"use strict\";\n\nimport moment from 'moment'\n\nexport const _app = function() {\n return app;\n}\n\nexport const _closest = function(just, nothing, selector, el) {\n var node = el.closest(selector);\n if(node) {\n return just(node);\n } else {\n return nothing;\n }\n}\n\nexport const _createFormData = function(formElement) {\n return new FormData(formElement);\n}\n\nexport const _createFormString = function(formElement) {\n return new URLSearchParams(new FormData(formElement)).toString()\n}\n\nexport const _createFormArray = function(formElement) {\n return Array.from(new FormData(formElement));\n}\n\nexport const _moment8601 = function(tuple, s) {\n var m = moment(s, moment.ISO_8601);\n var s1 = m.fromNow();\n var s2 = m.format('MMMM D YYYY, h:mm a') + \" (\" + m.format() + \") \";\n return tuple(s1)(s2);\n}\n\nexport const _mmoment8601 = function(just, nothing, tuple, s) {\n try {\n var m = moment(s, moment.ISO_8601);\n var s1 = m.fromNow();\n var s2 = m.format('MMMM D YYYY, h:mm a') + \" (\" + m.format() + \") \";\n return just(tuple(s1)(s2));\n } catch (error) {\n return nothing\n }\n}\n\nexport const _closeWindow = function (window) {\n window.close();\n};\n\nexport const _setFocus = function(elemId) {\n document.getElementById(elemId).focus();\n};\n\n\nexport const _toLocaleDateString = function(dateString) {\n return new Date(dateString).toLocaleDateString(undefined, {dateStyle: 'medium'}) \n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar RawHTML = function (x) {\n return x;\n};\nvar toLocaleDateString = function (s) {\n return $foreign[\"_toLocaleDateString\"](s);\n};\nvar setFocus = function (s) {\n return function () {\n return $foreign[\"_setFocus\"](s);\n };\n};\nvar newtypeRawHTML = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar moment8601 = function (s) {\n return function () {\n return $foreign[\"_moment8601\"](Data_Tuple.Tuple.create, s);\n };\n};\nvar mmoment8601 = function (s) {\n return $foreign[\"_mmoment8601\"](Data_Maybe.Just.create, Data_Maybe.Nothing.value, Data_Tuple.Tuple.create, s);\n};\nvar createFormString = function (f) {\n return $foreign[\"_createFormString\"](f);\n};\nvar createFormData = function (f) {\n return $foreign[\"_createFormData\"](f);\n};\nvar createFormArray = function (f) {\n return $foreign[\"_createFormArray\"](f);\n};\nvar closest = function (selector) {\n return function (node) {\n return function () {\n return $foreign[\"_closest\"](Data_Maybe.Just.create, Data_Maybe.Nothing.value, selector, node);\n };\n };\n};\nvar closeWindow = function (win) {\n return function () {\n return $foreign[\"_closeWindow\"](win);\n };\n};\nvar app$prime = function (v) {\n return $foreign[\"_app\"]();\n};\nexport {\n _app,\n _closest,\n _moment8601,\n _mmoment8601,\n _createFormData,\n _createFormString,\n _createFormArray,\n _closeWindow,\n _setFocus,\n _toLocaleDateString\n} from \"./foreign.js\";\nexport {\n app$prime,\n closest,\n moment8601,\n mmoment8601,\n createFormData,\n createFormString,\n createFormArray,\n closeWindow,\n RawHTML,\n setFocus,\n toLocaleDateString,\n newtypeRawHTML\n};\n", "export const _parseJSON = JSON.parse;\n\nexport const _undefined = undefined;\n\nexport const _unsafeStringify = JSON.stringify;\n", "export function toCharCode(c) {\n return c.charCodeAt(0);\n}\n\nexport function fromCharCode(c) {\n return String.fromCharCode(c);\n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Alternative from \"../Control.Alternative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Data_Unfoldable1 from \"../Data.Unfoldable1/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar apply = /* #__PURE__ */ Control_Apply.apply(Control_Apply.applyFn);\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar top = /* #__PURE__ */ Data_Bounded.top(Data_Bounded.boundedInt);\nvar bottom = /* #__PURE__ */ Data_Bounded.bottom(Data_Bounded.boundedInt);\nvar bind = /* #__PURE__ */ Control_Bind.bind(Data_Maybe.bindMaybe);\nvar voidLeft = /* #__PURE__ */ Data_Functor.voidLeft(Data_Maybe.functorMaybe);\nvar guard = /* #__PURE__ */ Control_Alternative.guard(Data_Maybe.alternativeMaybe);\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar bottom1 = /* #__PURE__ */ Data_Bounded.bottom(Data_Bounded.boundedChar);\nvar top1 = /* #__PURE__ */ Data_Bounded.top(Data_Bounded.boundedChar);\nvar Cardinality = function (x) {\n return x;\n};\nvar toEnum = function (dict) {\n return dict.toEnum;\n};\nvar succ = function (dict) {\n return dict.succ;\n};\nvar upFromIncluding = function (dictEnum) {\n var succ1 = succ(dictEnum);\n return function (dictUnfoldable1) {\n return Data_Unfoldable1.unfoldr1(dictUnfoldable1)(apply(Data_Tuple.Tuple.create)(succ1));\n };\n};\nvar showCardinality = {\n show: function (v) {\n return \"(Cardinality \" + (show(v) + \")\");\n }\n};\nvar pred = function (dict) {\n return dict.pred;\n};\nvar ordCardinality = Data_Ord.ordInt;\nvar newtypeCardinality = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar fromEnum = function (dict) {\n return dict.fromEnum;\n};\nvar toEnumWithDefaults = function (dictBoundedEnum) {\n var toEnum1 = toEnum(dictBoundedEnum);\n var fromEnum1 = fromEnum(dictBoundedEnum);\n var bottom2 = Data_Bounded.bottom(dictBoundedEnum.Bounded0());\n return function (low) {\n return function (high) {\n return function (x) {\n var v = toEnum1(x);\n if (v instanceof Data_Maybe.Just) {\n return v.value0;\n };\n if (v instanceof Data_Maybe.Nothing) {\n var $140 = x < fromEnum1(bottom2);\n if ($140) {\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};\nvar eqCardinality = Data_Eq.eqInt;\nvar enumUnit = /* #__PURE__ */ (function () {\n return {\n succ: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n pred: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n Ord0: function () {\n return Data_Ord.ordUnit;\n }\n };\n})();\nvar enumTuple = function (dictEnum) {\n var succ1 = succ(dictEnum);\n var pred1 = pred(dictEnum);\n var ordTuple = Data_Tuple.ordTuple(dictEnum.Ord0());\n return function (dictBoundedEnum) {\n var Bounded0 = dictBoundedEnum.Bounded0();\n var bottom2 = Data_Bounded.bottom(Bounded0);\n var Enum1 = dictBoundedEnum.Enum1();\n var succ2 = succ(Enum1);\n var top2 = Data_Bounded.top(Bounded0);\n var pred2 = pred(Enum1);\n var ordTuple1 = ordTuple(Enum1.Ord0());\n return {\n succ: function (v) {\n return Data_Maybe.maybe(map(Data_Function.flip(Data_Tuple.Tuple.create)(bottom2))(succ1(v.value0)))((function () {\n var $183 = Data_Tuple.Tuple.create(v.value0);\n return function ($184) {\n return Data_Maybe.Just.create($183($184));\n };\n })())(succ2(v.value1));\n },\n pred: function (v) {\n return Data_Maybe.maybe(map(Data_Function.flip(Data_Tuple.Tuple.create)(top2))(pred1(v.value0)))((function () {\n var $185 = Data_Tuple.Tuple.create(v.value0);\n return function ($186) {\n return Data_Maybe.Just.create($185($186));\n };\n })())(pred2(v.value1));\n },\n Ord0: function () {\n return ordTuple1;\n }\n };\n };\n};\nvar enumOrdering = {\n succ: function (v) {\n if (v instanceof Data_Ordering.LT) {\n return new Data_Maybe.Just(Data_Ordering.EQ.value);\n };\n if (v instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just(Data_Ordering.GT.value);\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 72, column 1 - line 78, column 20): \" + [ v.constructor.name ]);\n },\n pred: function (v) {\n if (v instanceof Data_Ordering.LT) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just(Data_Ordering.LT.value);\n };\n if (v instanceof Data_Ordering.GT) {\n return new Data_Maybe.Just(Data_Ordering.EQ.value);\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 72, column 1 - line 78, column 20): \" + [ v.constructor.name ]);\n },\n Ord0: function () {\n return Data_Ord.ordOrdering;\n }\n};\nvar enumMaybe = function (dictBoundedEnum) {\n var bottom2 = Data_Bounded.bottom(dictBoundedEnum.Bounded0());\n var Enum1 = dictBoundedEnum.Enum1();\n var succ1 = succ(Enum1);\n var pred1 = pred(Enum1);\n var ordMaybe = Data_Maybe.ordMaybe(Enum1.Ord0());\n return {\n succ: function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just(new Data_Maybe.Just(bottom2));\n };\n if (v instanceof Data_Maybe.Just) {\n return map(Data_Maybe.Just.create)(succ1(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 80, column 1 - line 84, column 32): \" + [ v.constructor.name ]);\n },\n pred: function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Data_Maybe.Just) {\n return new Data_Maybe.Just(pred1(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 80, column 1 - line 84, column 32): \" + [ v.constructor.name ]);\n },\n Ord0: function () {\n return ordMaybe;\n }\n };\n};\nvar enumInt = {\n succ: function (n) {\n var $153 = n < top;\n if ($153) {\n return new Data_Maybe.Just(n + 1 | 0);\n };\n return Data_Maybe.Nothing.value;\n },\n pred: function (n) {\n var $154 = n > bottom;\n if ($154) {\n return new Data_Maybe.Just(n - 1 | 0);\n };\n return Data_Maybe.Nothing.value;\n },\n Ord0: function () {\n return Data_Ord.ordInt;\n }\n};\nvar enumFromTo = function (dictEnum) {\n var Ord0 = dictEnum.Ord0();\n var eq1 = Data_Eq.eq(Ord0.Eq0());\n var lessThan1 = Data_Ord.lessThan(Ord0);\n var succ1 = succ(dictEnum);\n var lessThanOrEq1 = Data_Ord.lessThanOrEq(Ord0);\n var pred1 = pred(dictEnum);\n var greaterThanOrEq1 = Data_Ord.greaterThanOrEq(Ord0);\n return function (dictUnfoldable1) {\n var singleton = Data_Unfoldable1.singleton(dictUnfoldable1);\n var unfoldr1 = Data_Unfoldable1.unfoldr1(dictUnfoldable1);\n var go = function (step) {\n return function (op) {\n return function (to) {\n return function (a) {\n return new Data_Tuple.Tuple(a, bind(step(a))(function (a$prime) {\n return voidLeft(guard(op(a$prime)(to)))(a$prime);\n }));\n };\n };\n };\n };\n return function (v) {\n return function (v1) {\n if (eq1(v)(v1)) {\n return singleton(v);\n };\n if (lessThan1(v)(v1)) {\n return unfoldr1(go(succ1)(lessThanOrEq1)(v1))(v);\n };\n if (Data_Boolean.otherwise) {\n return unfoldr1(go(pred1)(greaterThanOrEq1)(v1))(v);\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 186, column 14 - line 190, column 51): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n };\n};\nvar enumFromThenTo = function (dictUnfoldable) {\n var unfoldr = Data_Unfoldable.unfoldr(dictUnfoldable);\n return function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return function (dictBoundedEnum) {\n var fromEnum1 = fromEnum(dictBoundedEnum);\n var toEnum1 = toEnum(dictBoundedEnum);\n var go = function (step) {\n return function (to) {\n return function (e) {\n if (e <= to) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(e, e + step | 0));\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 217, column 5 - line 219, column 28): \" + [ step.constructor.name, to.constructor.name, e.constructor.name ]);\n };\n };\n };\n return function (a) {\n return function (b) {\n return function (c) {\n var c$prime = fromEnum1(c);\n var b$prime = fromEnum1(b);\n var a$prime = fromEnum1(a);\n return map1(function ($187) {\n return fromJust(toEnum1($187));\n })(unfoldr(go(b$prime - a$prime | 0)(c$prime))(a$prime));\n };\n };\n };\n };\n };\n};\nvar enumEither = function (dictBoundedEnum) {\n var Enum1 = dictBoundedEnum.Enum1();\n var succ1 = succ(Enum1);\n var pred1 = pred(Enum1);\n var top2 = Data_Bounded.top(dictBoundedEnum.Bounded0());\n var ordEither = Data_Either.ordEither(Enum1.Ord0());\n return function (dictBoundedEnum1) {\n var bottom2 = Data_Bounded.bottom(dictBoundedEnum1.Bounded0());\n var Enum11 = dictBoundedEnum1.Enum1();\n var succ2 = succ(Enum11);\n var pred2 = pred(Enum11);\n var ordEither1 = ordEither(Enum11.Ord0());\n return {\n succ: function (v) {\n if (v instanceof Data_Either.Left) {\n return Data_Maybe.maybe(new Data_Maybe.Just(new Data_Either.Right(bottom2)))(function ($188) {\n return Data_Maybe.Just.create(Data_Either.Left.create($188));\n })(succ1(v.value0));\n };\n if (v instanceof Data_Either.Right) {\n return Data_Maybe.maybe(Data_Maybe.Nothing.value)(function ($189) {\n return Data_Maybe.Just.create(Data_Either.Right.create($189));\n })(succ2(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 86, column 1 - line 90, column 69): \" + [ v.constructor.name ]);\n },\n pred: function (v) {\n if (v instanceof Data_Either.Left) {\n return Data_Maybe.maybe(Data_Maybe.Nothing.value)(function ($190) {\n return Data_Maybe.Just.create(Data_Either.Left.create($190));\n })(pred1(v.value0));\n };\n if (v instanceof Data_Either.Right) {\n return Data_Maybe.maybe(new Data_Maybe.Just(new Data_Either.Left(top2)))(function ($191) {\n return Data_Maybe.Just.create(Data_Either.Right.create($191));\n })(pred2(v.value0));\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 86, column 1 - line 90, column 69): \" + [ v.constructor.name ]);\n },\n Ord0: function () {\n return ordEither1;\n }\n };\n };\n};\nvar enumBoolean = {\n succ: function (v) {\n if (!v) {\n return new Data_Maybe.Just(true);\n };\n return Data_Maybe.Nothing.value;\n },\n pred: function (v) {\n if (v) {\n return new Data_Maybe.Just(false);\n };\n return Data_Maybe.Nothing.value;\n },\n Ord0: function () {\n return Data_Ord.ordBoolean;\n }\n};\nvar downFromIncluding = function (dictEnum) {\n var pred1 = pred(dictEnum);\n return function (dictUnfoldable1) {\n return Data_Unfoldable1.unfoldr1(dictUnfoldable1)(apply(Data_Tuple.Tuple.create)(pred1));\n };\n};\nvar diag = function (a) {\n return new Data_Tuple.Tuple(a, a);\n};\nvar downFrom = function (dictEnum) {\n var pred1 = pred(dictEnum);\n return function (dictUnfoldable) {\n return Data_Unfoldable.unfoldr(dictUnfoldable)((function () {\n var $192 = map(diag);\n return function ($193) {\n return $192(pred1($193));\n };\n })());\n };\n};\nvar upFrom = function (dictEnum) {\n var succ1 = succ(dictEnum);\n return function (dictUnfoldable) {\n return Data_Unfoldable.unfoldr(dictUnfoldable)((function () {\n var $194 = map(diag);\n return function ($195) {\n return $194(succ1($195));\n };\n })());\n };\n};\nvar defaultToEnum = function (dictBounded) {\n var bottom2 = Data_Bounded.bottom(dictBounded);\n return function (dictEnum) {\n var succ1 = succ(dictEnum);\n return function (i$prime) {\n var go = function ($copy_i) {\n return function ($copy_x) {\n var $tco_var_i = $copy_i;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(i, x) {\n var $168 = i === 0;\n if ($168) {\n $tco_done = true;\n return new Data_Maybe.Just(x);\n };\n var v = succ1(x);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_i = i - 1 | 0;\n $copy_x = v.value0;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 296, column 12 - line 298, column 33): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_i, $copy_x);\n };\n return $tco_result;\n };\n };\n var $171 = i$prime < 0;\n if ($171) {\n return Data_Maybe.Nothing.value;\n };\n return go(i$prime)(bottom2);\n };\n };\n};\nvar 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};\nvar 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};\nvar defaultFromEnum = function (dictEnum) {\n var pred1 = pred(dictEnum);\n var go = function ($copy_i) {\n return function ($copy_x) {\n var $tco_var_i = $copy_i;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(i, x) {\n var v = pred1(x);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_i = i + 1 | 0;\n $copy_x = v.value0;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return i;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 309, column 5 - line 311, column 19): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_i, $copy_x);\n };\n return $tco_result;\n };\n };\n return go(0);\n};\nvar defaultCardinality = function (dictBounded) {\n var bottom2 = Data_Bounded.bottom(dictBounded);\n return function (dictEnum) {\n var succ1 = succ(dictEnum);\n var go = function ($copy_i) {\n return function ($copy_x) {\n var $tco_var_i = $copy_i;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(i, x) {\n var v = succ1(x);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_i = i + 1 | 0;\n $copy_x = v.value0;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return i;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 276, column 5 - line 278, column 19): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_i, $copy_x);\n };\n return $tco_result;\n };\n };\n return go(1)(bottom2);\n };\n};\nvar charToEnum = function (v) {\n if (v >= $foreign.toCharCode(bottom1) && v <= $foreign.toCharCode(top1)) {\n return new Data_Maybe.Just($foreign.fromCharCode(v));\n };\n return Data_Maybe.Nothing.value;\n};\nvar enumChar = {\n succ: /* #__PURE__ */ defaultSucc(charToEnum)($foreign.toCharCode),\n pred: /* #__PURE__ */ defaultPred(charToEnum)($foreign.toCharCode),\n Ord0: function () {\n return Data_Ord.ordChar;\n }\n};\nvar cardinality = function (dict) {\n return dict.cardinality;\n};\nvar boundedEnumUnit = {\n cardinality: 1,\n toEnum: function (v) {\n if (v === 0) {\n return new Data_Maybe.Just(Data_Unit.unit);\n };\n return Data_Maybe.Nothing.value;\n },\n fromEnum: /* #__PURE__ */ Data_Function[\"const\"](0),\n Bounded0: function () {\n return Data_Bounded.boundedUnit;\n },\n Enum1: function () {\n return enumUnit;\n }\n};\nvar boundedEnumOrdering = {\n cardinality: 3,\n toEnum: function (v) {\n if (v === 0) {\n return new Data_Maybe.Just(Data_Ordering.LT.value);\n };\n if (v === 1) {\n return new Data_Maybe.Just(Data_Ordering.EQ.value);\n };\n if (v === 2) {\n return new Data_Maybe.Just(Data_Ordering.GT.value);\n };\n return Data_Maybe.Nothing.value;\n },\n fromEnum: function (v) {\n if (v instanceof Data_Ordering.LT) {\n return 0;\n };\n if (v instanceof Data_Ordering.EQ) {\n return 1;\n };\n if (v instanceof Data_Ordering.GT) {\n return 2;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 137, column 1 - line 145, column 18): \" + [ v.constructor.name ]);\n },\n Bounded0: function () {\n return Data_Bounded.boundedOrdering;\n },\n Enum1: function () {\n return enumOrdering;\n }\n};\nvar boundedEnumChar = /* #__PURE__ */ (function () {\n return {\n cardinality: $foreign.toCharCode(top1) - $foreign.toCharCode(bottom1) | 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})();\nvar boundedEnumBoolean = {\n cardinality: 2,\n toEnum: function (v) {\n if (v === 0) {\n return new Data_Maybe.Just(false);\n };\n if (v === 1) {\n return new Data_Maybe.Just(true);\n };\n return Data_Maybe.Nothing.value;\n },\n fromEnum: function (v) {\n if (!v) {\n return 0;\n };\n if (v) {\n return 1;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 118, column 1 - line 124, column 20): \" + [ v.constructor.name ]);\n },\n Bounded0: function () {\n return Data_Bounded.boundedBoolean;\n },\n Enum1: function () {\n return enumBoolean;\n }\n};\nexport {\n succ,\n pred,\n cardinality,\n toEnum,\n fromEnum,\n toEnumWithDefaults,\n Cardinality,\n enumFromTo,\n enumFromThenTo,\n upFrom,\n upFromIncluding,\n downFrom,\n downFromIncluding,\n defaultSucc,\n defaultPred,\n defaultCardinality,\n defaultToEnum,\n defaultFromEnum,\n enumBoolean,\n enumInt,\n enumChar,\n enumUnit,\n enumOrdering,\n enumMaybe,\n enumEither,\n enumTuple,\n boundedEnumBoolean,\n boundedEnumChar,\n boundedEnumUnit,\n boundedEnumOrdering,\n newtypeCardinality,\n eqCardinality,\n ordCardinality,\n showCardinality\n};\n", "export function unsafeReadPropImpl(f, s, key, value) {\n return value == null ? f : s(value[key]);\n}\n\nexport function unsafeHasOwnProperty(prop, value) {\n return Object.prototype.hasOwnProperty.call(value, prop);\n}\n\nexport function unsafeHasProperty(prop, value) {\n return prop in value;\n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nvar unsafeReadProp = function (dictMonad) {\n var fail = Foreign.fail(dictMonad);\n var pure = Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonad));\n return function (k) {\n return function (value) {\n return $foreign.unsafeReadPropImpl(fail(new Foreign.TypeMismatch(\"object\", Foreign.typeOf(value))), pure, k, value);\n };\n };\n};\nvar readProp = function (dictMonad) {\n return unsafeReadProp(dictMonad);\n};\nvar readIndex = function (dictMonad) {\n return unsafeReadProp(dictMonad);\n};\nvar ix = function (dict) {\n return dict.ix;\n};\nvar index = function (dict) {\n return dict.index;\n};\nvar indexableExceptT = function (dictMonad) {\n var bindFlipped = Control_Bind.bindFlipped(Control_Monad_Except_Trans.bindExceptT(dictMonad));\n return {\n ix: function (dictIndex) {\n var index1 = index(dictIndex);\n return function (f) {\n return function (i) {\n return bindFlipped(Data_Function.flip(index1)(i))(f);\n };\n };\n }\n };\n};\nvar indexableForeign = function (dictMonad) {\n return {\n ix: function (dictIndex) {\n return index(dictIndex);\n }\n };\n};\nvar hasPropertyImpl = function (v) {\n return function (v1) {\n if (Foreign.isNull(v1)) {\n return false;\n };\n if (Foreign.isUndefined(v1)) {\n return false;\n };\n if (Foreign.typeOf(v1) === \"object\" || Foreign.typeOf(v1) === \"function\") {\n return $foreign.unsafeHasProperty(v, v1);\n };\n return false;\n };\n};\nvar hasProperty = function (dict) {\n return dict.hasProperty;\n};\nvar hasOwnPropertyImpl = function (v) {\n return function (v1) {\n if (Foreign.isNull(v1)) {\n return false;\n };\n if (Foreign.isUndefined(v1)) {\n return false;\n };\n if (Foreign.typeOf(v1) === \"object\" || Foreign.typeOf(v1) === \"function\") {\n return $foreign.unsafeHasOwnProperty(v, v1);\n };\n return false;\n };\n};\nvar indexInt = function (dictMonad) {\n return {\n index: Data_Function.flip(readIndex(dictMonad)),\n hasProperty: hasPropertyImpl,\n hasOwnProperty: hasOwnPropertyImpl,\n errorAt: Foreign.ErrorAtIndex.create\n };\n};\nvar indexString = function (dictMonad) {\n return {\n index: Data_Function.flip(readProp(dictMonad)),\n hasProperty: hasPropertyImpl,\n hasOwnProperty: hasOwnPropertyImpl,\n errorAt: Foreign.ErrorAtProperty.create\n };\n};\nvar hasOwnProperty = function (dict) {\n return dict.hasOwnProperty;\n};\nvar errorAt = function (dict) {\n return dict.errorAt;\n};\nexport {\n readProp,\n readIndex,\n ix,\n index,\n hasProperty,\n hasOwnProperty,\n errorAt,\n indexString,\n indexInt,\n indexableForeign,\n indexableExceptT\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Record_Unsafe from \"../Record.Unsafe/index.js\";\nimport * as Record_Unsafe_Union from \"../Record.Unsafe.Union/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar union = function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe_Union.unsafeUnionFn(l, r);\n };\n };\n};\nvar set = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function () {\n return function (l) {\n return function (b) {\n return function (r) {\n return Record_Unsafe.unsafeSet(reflectSymbol(l))(b)(r);\n };\n };\n };\n };\n };\n};\nvar nub = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nvar merge = function () {\n return function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe_Union.unsafeUnionFn(l, r);\n };\n };\n };\n};\nvar insert = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function () {\n return function (l) {\n return function (a) {\n return function (r) {\n return Record_Unsafe.unsafeSet(reflectSymbol(l))(a)(r);\n };\n };\n };\n };\n };\n};\nvar get = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe.unsafeGet(reflectSymbol(l))(r);\n };\n };\n };\n};\nvar modify = function (dictIsSymbol) {\n var set1 = set(dictIsSymbol)()();\n var get1 = get(dictIsSymbol)();\n return function () {\n return function () {\n return function (l) {\n return function (f) {\n return function (r) {\n return set1(l)(f(get1(l)(r)))(r);\n };\n };\n };\n };\n };\n};\nvar equalFieldsNil = {\n equalFields: function (v) {\n return function (v1) {\n return function (v2) {\n return true;\n };\n };\n }\n};\nvar equalFields = function (dict) {\n return dict.equalFields;\n};\nvar equalFieldsCons = function (dictIsSymbol) {\n var get1 = get(dictIsSymbol)();\n return function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return function () {\n return function (dictEqualFields) {\n var equalFields1 = equalFields(dictEqualFields);\n return {\n equalFields: function (v) {\n return function (a) {\n return function (b) {\n var get$prime = get1(Type_Proxy[\"Proxy\"].value);\n var equalRest = equalFields1(Type_Proxy[\"Proxy\"].value);\n return eq(get$prime(a))(get$prime(b)) && equalRest(a)(b);\n };\n };\n }\n };\n };\n };\n };\n};\nvar equal = function () {\n return function (dictEqualFields) {\n var equalFields1 = equalFields(dictEqualFields);\n return function (a) {\n return function (b) {\n return equalFields1(Type_Proxy[\"Proxy\"].value)(a)(b);\n };\n };\n };\n};\nvar disjointUnion = function () {\n return function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe_Union.unsafeUnionFn(l, r);\n };\n };\n };\n};\nvar $$delete = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function () {\n return function (l) {\n return function (r) {\n return Record_Unsafe.unsafeDelete(reflectSymbol(l))(r);\n };\n };\n };\n };\n};\nvar rename = function (dictIsSymbol) {\n var get1 = get(dictIsSymbol)();\n var delete1 = $$delete(dictIsSymbol)()();\n return function (dictIsSymbol1) {\n var insert1 = insert(dictIsSymbol1)()();\n return function () {\n return function () {\n return function () {\n return function () {\n return function (prev) {\n return function (next) {\n return function (record) {\n return insert1(next)(get1(prev)(record))(delete1(prev)(record));\n };\n };\n };\n };\n };\n };\n };\n };\n};\nexport {\n get,\n set,\n modify,\n insert,\n $$delete as delete,\n rename,\n equal,\n merge,\n union,\n disjointUnion,\n nub,\n equalFields,\n equalFieldsCons,\n equalFieldsNil\n};\n", "export function copyRecord(rec) {\n var copy = {};\n for (var key in rec) {\n if ({}.hasOwnProperty.call(rec, key)) {\n copy[key] = rec[key];\n }\n }\n return copy;\n}\n\nexport function unsafeInsert(l) {\n return function(a) {\n return function(rec) {\n rec[l] = a;\n return rec;\n };\n };\n}\n\nexport function unsafeModify(l) {\n return function (f) {\n return function(rec) {\n rec[l] = f(rec[l]);\n return rec;\n };\n };\n}\n\nexport function unsafeDelete(l) {\n return function(rec) {\n delete rec[l];\n return rec;\n };\n}\n\nexport function unsafeRename(l1) {\n return function (l2) {\n return function (rec) {\n rec[l2] = rec[l1];\n delete rec[l1];\n return rec;\n };\n };\n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Record_Unsafe_Union from \"../Record.Unsafe.Union/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar Builder = function (x) {\n return x;\n};\nvar union = function () {\n return function (r1) {\n return function (r2) {\n return Record_Unsafe_Union.unsafeUnionFn(r1, r2);\n };\n };\n};\nvar semigroupoidBuilder = Control_Semigroupoid.semigroupoidFn;\nvar rename = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictIsSymbol1) {\n var reflectSymbol1 = Data_Symbol.reflectSymbol(dictIsSymbol1);\n return function () {\n return function () {\n return function () {\n return function () {\n return function (l1) {\n return function (l2) {\n return function (r1) {\n return $foreign.unsafeRename(reflectSymbol(l1))(reflectSymbol1(l2))(r1);\n };\n };\n };\n };\n };\n };\n };\n };\n};\nvar nub = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nvar modify = function () {\n return function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (l) {\n return function (f) {\n return function (r1) {\n return $foreign.unsafeModify(reflectSymbol(l))(f)(r1);\n };\n };\n };\n };\n };\n};\nvar merge = function () {\n return function () {\n return function (r1) {\n return function (r2) {\n return Record_Unsafe_Union.unsafeUnionFn(r1, r2);\n };\n };\n };\n};\nvar insert = function () {\n return function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (l) {\n return function (a) {\n return function (r1) {\n return $foreign.unsafeInsert(reflectSymbol(l))(a)(r1);\n };\n };\n };\n };\n };\n};\nvar disjointUnion = function () {\n return function () {\n return function (r1) {\n return function (r2) {\n return Record_Unsafe_Union.unsafeUnionFn(r1, r2);\n };\n };\n };\n};\nvar $$delete = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function () {\n return function () {\n return function (l) {\n return function (r2) {\n return $foreign.unsafeDelete(reflectSymbol(l))(r2);\n };\n };\n };\n };\n};\nvar categoryBuilder = Control_Category.categoryFn;\nvar build = function (v) {\n return function (r1) {\n return v($foreign.copyRecord(r1));\n };\n};\nvar buildFromScratch = /* #__PURE__ */ Data_Function.flip(build)({});\nvar flip = function (f) {\n return function (b) {\n return function (a) {\n return build(f(a))(b);\n };\n };\n};\nexport {\n build,\n buildFromScratch,\n flip,\n insert,\n modify,\n $$delete as delete,\n rename,\n merge,\n union,\n disjointUnion,\n nub,\n semigroupoidBuilder,\n categoryBuilder\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_Except from \"../Control.Monad.Except/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Array_NonEmpty from \"../Data.Array.NonEmpty/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_List_NonEmpty from \"../Data.List.NonEmpty/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_TraversableWithIndex from \"../Data.TraversableWithIndex/index.js\";\nimport * as Data_Variant from \"../Data.Variant/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Effect_Uncurried from \"../Effect.Uncurried/index.js\";\nimport * as Effect_Unsafe from \"../Effect.Unsafe/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nimport * as Foreign_Index from \"../Foreign.Index/index.js\";\nimport * as Foreign_Object from \"../Foreign.Object/index.js\";\nimport * as Partial_Unsafe from \"../Partial.Unsafe/index.js\";\nimport * as Record from \"../Record/index.js\";\nimport * as Record_Builder from \"../Record.Builder/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar fail = /* #__PURE__ */ Foreign.fail(Data_Identity.monadIdentity);\nvar applicativeExceptT = /* #__PURE__ */ Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(applicativeExceptT);\nvar map1 = /* #__PURE__ */ Data_Functor.map(/* #__PURE__ */ Control_Monad_Except_Trans.functorExceptT(Data_Identity.functorIdentity));\nvar map2 = /* #__PURE__ */ Data_Functor.map(Data_List_Types.functorNonEmptyList);\nvar bindExceptT = /* #__PURE__ */ Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(bindExceptT);\nvar map3 = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorFn);\nvar traverse = /* #__PURE__ */ Data_Traversable.traverse(Data_Traversable.traversableMaybe)(applicativeExceptT);\nvar readNull = /* #__PURE__ */ Foreign.readNull(Data_Identity.monadIdentity);\nvar composeKleisliFlipped = /* #__PURE__ */ Control_Bind.composeKleisliFlipped(bindExceptT);\nvar sequence = /* #__PURE__ */ Data_Traversable.sequence(Foreign_Object.traversableObject)(applicativeExceptT);\nvar identity = /* #__PURE__ */ Control_Category.identity(Record_Builder.categoryBuilder);\nvar traverseWithIndex = /* #__PURE__ */ Data_TraversableWithIndex.traverseWithIndex(Data_TraversableWithIndex.traversableWithIndexArray)(applicativeExceptT);\nvar readArray1 = /* #__PURE__ */ Foreign.readArray(Data_Identity.monadIdentity);\nvar bind = /* #__PURE__ */ Control_Bind.bind(bindExceptT);\nvar except = /* #__PURE__ */ Control_Monad_Except_Trans.except(Data_Identity.applicativeIdentity);\nvar on = /* #__PURE__ */ Data_Variant.on();\nvar compose1 = /* #__PURE__ */ Control_Semigroupoid.compose(Record_Builder.semigroupoidBuilder);\nvar insert = /* #__PURE__ */ Record_Builder.insert()();\nvar readProp = /* #__PURE__ */ Foreign_Index.readProp(Data_Identity.monadIdentity);\nvar alt = /* #__PURE__ */ Control_Alt.alt(/* #__PURE__ */ Control_Monad_Except_Trans.altExceptT(Data_List_Types.semigroupNonEmptyList)(Data_Identity.monadIdentity));\nvar inj = /* #__PURE__ */ Data_Variant.inj();\nvar writeVariantImpl = function (dict) {\n return dict.writeVariantImpl;\n};\nvar writeImplFields = function (dict) {\n return dict.writeImplFields;\n};\nvar writeImpl = function (dict) {\n return dict.writeImpl;\n};\nvar writeJSON = function (dictWriteForeign) {\n var $191 = writeImpl(dictWriteForeign);\n return function ($192) {\n return $foreign[\"_unsafeStringify\"]($191($192));\n };\n};\nvar writeForeignVariant = function () {\n return function (dictWriteForeignVariant) {\n var writeVariantImpl1 = writeVariantImpl(dictWriteForeignVariant);\n return {\n writeImpl: function (variant) {\n return writeVariantImpl1(Type_Proxy[\"Proxy\"].value)(variant);\n }\n };\n };\n};\nvar writeForeignString = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignObject = function (dictWriteForeign) {\n return {\n writeImpl: (function () {\n var $193 = Foreign_Object.mapWithKey(Data_Function[\"const\"](writeImpl(dictWriteForeign)));\n return function ($194) {\n return Foreign.unsafeToForeign($193($194));\n };\n })()\n };\n};\nvar writeForeignNumber = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignNullable = function (dictWriteForeign) {\n return {\n writeImpl: (function () {\n var $195 = Data_Maybe.maybe(Foreign.unsafeToForeign(Data_Nullable.toNullable(Data_Maybe.Nothing.value)))(writeImpl(dictWriteForeign));\n return function ($196) {\n return $195(Data_Nullable.toMaybe($196));\n };\n })()\n };\n};\nvar writeForeignInt = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignForeign = {\n writeImpl: /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn)\n};\nvar writeForeignChar = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignBoolean = {\n writeImpl: Foreign.unsafeToForeign\n};\nvar writeForeignArray = function (dictWriteForeign) {\n var writeImpl1 = writeImpl(dictWriteForeign);\n return {\n writeImpl: function (xs) {\n return Foreign.unsafeToForeign(map(writeImpl1)(xs));\n }\n };\n};\nvar writeForeignNEArray = function (dictWriteForeign) {\n var writeImpl1 = writeImpl(writeForeignArray(dictWriteForeign));\n return {\n writeImpl: function (a) {\n return writeImpl1(Data_Array_NonEmpty.toArray(a));\n }\n };\n};\nvar write = function (dictWriteForeign) {\n return writeImpl(dictWriteForeign);\n};\nvar unsafeStringify = $foreign[\"_unsafeStringify\"];\nvar $$undefined = $foreign[\"_undefined\"];\nvar writeForeignMaybe = function (dictWriteForeign) {\n return {\n writeImpl: Data_Maybe.maybe($$undefined)(writeImpl(dictWriteForeign))\n };\n};\nvar recordWriteForeign = function () {\n return function (dictWriteForeignFields) {\n var writeImplFields1 = writeImplFields(dictWriteForeignFields);\n return {\n writeImpl: function (rec) {\n var steps = writeImplFields1(Type_Proxy[\"Proxy\"].value)(rec);\n return Foreign.unsafeToForeign(Record_Builder.build(steps)({}));\n }\n };\n };\n};\nvar readVariantNil = {\n readVariantImpl: function (v) {\n return function (v1) {\n return fail(new Foreign.ForeignError(\"Unable to match any variant member.\"));\n };\n }\n};\nvar readVariantImpl = function (dict) {\n return dict.readVariantImpl;\n};\nvar readString = {\n readImpl: /* #__PURE__ */ Foreign.readString(Data_Identity.monadIdentity)\n};\nvar readNumber = {\n readImpl: /* #__PURE__ */ Foreign.readNumber(Data_Identity.monadIdentity)\n};\nvar readInt = {\n readImpl: /* #__PURE__ */ Foreign.readInt(Data_Identity.monadIdentity)\n};\nvar readImpl = function (dict) {\n return dict.readImpl;\n};\nvar readMaybe = function (dictReadForeign) {\n return {\n readImpl: (function () {\n var readNullOrUndefined = function (v) {\n return function (v1) {\n if (Foreign.isNull(v1) || Foreign.isUndefined(v1)) {\n return pure(Data_Maybe.Nothing.value);\n };\n return map1(Data_Maybe.Just.create)(v(v1));\n };\n };\n return readNullOrUndefined(readImpl(dictReadForeign));\n })()\n };\n};\nvar readNullable = function (dictReadForeign) {\n var readImpl2 = readImpl(dictReadForeign);\n return {\n readImpl: function (o) {\n var reformat = function (error) {\n if (error instanceof Foreign.TypeMismatch) {\n return new Foreign.TypeMismatch(\"Nullable \" + error.value0, error.value1);\n };\n return error;\n };\n return Control_Monad_Except.withExcept(map2(reformat))(bindFlipped(map3(map1(Data_Nullable.toNullable))(traverse(readImpl2)))(readNull(o)));\n }\n };\n};\nvar readObject = function (dictReadForeign) {\n return {\n readImpl: (function () {\n var readObject$prime = function (value) {\n if (Foreign.tagOf(value) === \"Object\") {\n return pure(Foreign.unsafeFromForeign(value));\n };\n if (Data_Boolean.otherwise) {\n return fail(new Foreign.TypeMismatch(\"Object\", Foreign.tagOf(value)));\n };\n throw new Error(\"Failed pattern match at Simple.JSON (line 197, column 7 - line 197, column 51): \" + [ value.constructor.name ]);\n };\n return composeKleisliFlipped((function () {\n var $197 = Foreign_Object.mapWithKey(Data_Function[\"const\"](readImpl(dictReadForeign)));\n return function ($198) {\n return sequence($197($198));\n };\n })())(readObject$prime);\n })()\n };\n};\nvar readForeignVariant = function () {\n return function (dictReadForeignVariant) {\n var readVariantImpl1 = readVariantImpl(dictReadForeignVariant);\n return {\n readImpl: function (o) {\n return readVariantImpl1(Type_Proxy[\"Proxy\"].value)(o);\n }\n };\n };\n};\nvar readForeign = {\n readImpl: pure\n};\nvar readFieldsNil = {\n getFields: function (v) {\n return function (v1) {\n return pure(identity);\n };\n }\n};\nvar readChar = {\n readImpl: /* #__PURE__ */ Foreign.readChar(Data_Identity.monadIdentity)\n};\nvar readBoolean = {\n readImpl: /* #__PURE__ */ Foreign.readBoolean(Data_Identity.monadIdentity)\n};\nvar readArray = function (dictReadForeign) {\n var readImpl2 = readImpl(dictReadForeign);\n return {\n readImpl: (function () {\n var readAtIdx = function (i) {\n return function (f) {\n return Control_Monad_Except.withExcept(map2(Foreign.ErrorAtIndex.create(i)))(readImpl2(f));\n };\n };\n return composeKleisliFlipped(traverseWithIndex(readAtIdx))(readArray1);\n })()\n };\n};\nvar readForeignNEArray = function (dictReadForeign) {\n var readImpl2 = readImpl(readArray(dictReadForeign));\n return {\n readImpl: function (f) {\n return bind(readImpl2(f))(function (v) {\n return except(Data_Either.note(Data_List_NonEmpty.singleton(new Foreign.ForeignError(\"Nonempty array expected, got empty array\")))(Data_Array_NonEmpty.fromArray(v)));\n });\n }\n };\n};\nvar read$prime = function (dictReadForeign) {\n return readImpl(dictReadForeign);\n};\nvar read = function (dictReadForeign) {\n var $199 = readImpl(dictReadForeign);\n return function ($200) {\n return Control_Monad_Except.runExcept($199($200));\n };\n};\nvar readAsForeign = function (dictReadForeign) {\n var $201 = read(dictReadForeign);\n return function ($202) {\n return $201(Foreign.unsafeToForeign($202));\n };\n};\nvar read_ = function (dictReadForeign) {\n var $203 = read(dictReadForeign);\n return function ($204) {\n return Data_Either.hush($203($204));\n };\n};\nvar parseJSON = /* #__PURE__ */ (function () {\n var $205 = Data_Bifunctor.lmap(Data_Bifunctor.bifunctorEither)((function () {\n var $208 = Control_Applicative.pure(Data_List_Types.applicativeNonEmptyList);\n return function ($209) {\n return $208(Foreign.ForeignError.create(Effect_Exception.message($209)));\n };\n })());\n var $206 = Effect_Uncurried.runEffectFn1($foreign[\"_parseJSON\"]);\n return function ($207) {\n return Control_Monad_Except_Trans.ExceptT(Data_Identity.Identity($205(Effect_Unsafe.unsafePerformEffect(Effect_Exception[\"try\"]($206($207))))));\n };\n})();\nvar readJSON = function (dictReadForeign) {\n var $210 = composeKleisliFlipped(readImpl(dictReadForeign))(parseJSON);\n return function ($211) {\n return Control_Monad_Except.runExcept($210($211));\n };\n};\nvar readJSON_ = function (dictReadForeign) {\n var $212 = readJSON(dictReadForeign);\n return function ($213) {\n return Data_Either.hush($212($213));\n };\n};\nvar readJSON$prime = function (dictReadForeign) {\n return composeKleisliFlipped(readImpl(dictReadForeign))(parseJSON);\n};\nvar nilWriteForeignVariant = {\n writeVariantImpl: function (v) {\n return function (v1) {\n return Partial_Unsafe.unsafeCrashWith(\"Variant was not able to be writen row WriteForeign.\");\n };\n }\n};\nvar nilWriteForeignFields = {\n writeImplFields: function (v) {\n return function (v1) {\n return identity;\n };\n }\n};\nvar getFields = function (dict) {\n return dict.getFields;\n};\nvar readRecord = function () {\n return function (dictReadForeignFields) {\n var getFields1 = getFields(dictReadForeignFields);\n return {\n readImpl: function (o) {\n return map1(Data_Function.flip(Record_Builder.build)({}))(getFields1(Type_Proxy[\"Proxy\"].value)(o));\n }\n };\n };\n};\nvar consWriteForeignVariant = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n var on1 = on(dictIsSymbol);\n return function (dictWriteForeign) {\n var writeImpl1 = writeImpl(dictWriteForeign);\n return function () {\n return function (dictWriteForeignVariant) {\n var writeVariantImpl1 = writeVariantImpl(dictWriteForeignVariant);\n return {\n writeVariantImpl: function (v) {\n return function (variant) {\n var writeVariant = function (value) {\n return Foreign.unsafeToForeign({\n type: reflectSymbol(Type_Proxy[\"Proxy\"].value),\n value: writeImpl1(value)\n });\n };\n return on1(Type_Proxy[\"Proxy\"].value)(writeVariant)(writeVariantImpl1(Type_Proxy[\"Proxy\"].value))(variant);\n };\n }\n };\n };\n };\n };\n};\nvar consWriteForeignFields = function (dictIsSymbol) {\n var get = Record.get(dictIsSymbol)();\n var insert1 = insert(dictIsSymbol);\n return function (dictWriteForeign) {\n var writeImpl1 = writeImpl(dictWriteForeign);\n return function (dictWriteForeignFields) {\n var writeImplFields1 = writeImplFields(dictWriteForeignFields);\n return function () {\n return function () {\n return function () {\n return {\n writeImplFields: function (v) {\n return function (rec) {\n var rest = writeImplFields1(Type_Proxy[\"Proxy\"].value)(rec);\n var value = writeImpl1(get(Type_Proxy[\"Proxy\"].value)(rec));\n var result = compose1(insert1(Type_Proxy[\"Proxy\"].value)(value))(rest);\n return result;\n };\n }\n };\n };\n };\n };\n };\n };\n};\nvar applyEither = function (dictSemigroup) {\n var append1 = Data_Semigroup.append(dictSemigroup);\n return function (v) {\n return function (v1) {\n if (v instanceof Data_Either.Left && v1 instanceof Data_Either.Right) {\n return new Data_Either.Left(v.value0);\n };\n if (v instanceof Data_Either.Left && v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(append1(v.value0)(v1.value0));\n };\n if (v instanceof Data_Either.Right && v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(v1.value0);\n };\n if (v instanceof Data_Either.Right && v1 instanceof Data_Either.Right) {\n return new Data_Either.Right(v.value0(v1.value0));\n };\n throw new Error(\"Failed pattern match at Simple.JSON (line 241, column 1 - line 241, column 90): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar exceptTApply = function (dictSemigroup) {\n var applyEither1 = applyEither(dictSemigroup);\n return function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map4 = Data_Functor.map(Apply0.Functor0());\n return function (fun) {\n return function (a) {\n return apply(map4(applyEither1)(Control_Monad_Except_Trans.runExceptT(fun)))(Control_Monad_Except_Trans.runExceptT(a));\n };\n };\n };\n};\nvar exceptTApply1 = /* #__PURE__ */ exceptTApply(Data_List_Types.semigroupNonEmptyList)(Data_Identity.applicativeIdentity);\nvar readFieldsCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n var insert1 = insert(dictIsSymbol);\n return function (dictReadForeign) {\n var readImpl2 = readImpl(dictReadForeign);\n return function (dictReadForeignFields) {\n var getFields1 = getFields(dictReadForeignFields);\n return function () {\n return function () {\n return {\n getFields: function (v) {\n return function (obj) {\n var rest = getFields1(Type_Proxy[\"Proxy\"].value)(obj);\n var name = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n var withExcept$prime = Control_Monad_Except.withExcept(map2(Foreign.ErrorAtProperty.create(name)));\n var first = bind(withExcept$prime(bindFlipped(readImpl2)(readProp(name)(obj))))(function (value) {\n return pure(insert1(Type_Proxy[\"Proxy\"].value)(value));\n });\n return exceptTApply1(map1(compose1)(first))(rest);\n };\n }\n };\n };\n };\n };\n };\n};\nvar readImpl1 = /* #__PURE__ */ readImpl(/* #__PURE__ */ readRecord()(/* #__PURE__ */ readFieldsCons({\n reflectSymbol: function () {\n return \"type\";\n }\n})(readString)(/* #__PURE__ */ readFieldsCons({\n reflectSymbol: function () {\n return \"value\";\n }\n})(readForeign)(readFieldsNil)()())()()));\nvar readVariantCons = function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n var inj1 = inj(dictIsSymbol);\n return function (dictReadForeign) {\n var readImpl2 = readImpl(dictReadForeign);\n return function () {\n return function (dictReadForeignVariant) {\n var readVariantImpl1 = readVariantImpl(dictReadForeignVariant);\n return {\n readVariantImpl: function (v) {\n return function (o) {\n var name = reflectSymbol(Type_Proxy[\"Proxy\"].value);\n return alt(bind(readImpl1(o))(function (v1) {\n var $189 = v1.type === name;\n if ($189) {\n return bind(readImpl2(v1.value))(function (v2) {\n return pure(inj1(Type_Proxy[\"Proxy\"].value)(v2));\n });\n };\n return fail(Foreign.ForeignError.create(\"Did not match variant tag \" + name));\n }))(readVariantImpl1(Type_Proxy[\"Proxy\"].value)(o));\n };\n }\n };\n };\n };\n };\n};\nexport {\n readJSON,\n readJSON$prime,\n readJSON_,\n writeJSON,\n write,\n read,\n read$prime,\n read_,\n readAsForeign,\n parseJSON,\n $$undefined as undefined,\n unsafeStringify,\n readImpl,\n getFields,\n readVariantImpl,\n writeImpl,\n writeImplFields,\n writeVariantImpl,\n readForeign,\n readChar,\n readNumber,\n readInt,\n readString,\n readBoolean,\n readArray,\n readMaybe,\n readNullable,\n readObject,\n readRecord,\n readFieldsCons,\n readFieldsNil,\n readForeignVariant,\n readVariantNil,\n readVariantCons,\n writeForeignForeign,\n writeForeignString,\n writeForeignInt,\n writeForeignChar,\n writeForeignNumber,\n writeForeignBoolean,\n writeForeignArray,\n writeForeignMaybe,\n writeForeignNullable,\n writeForeignObject,\n recordWriteForeign,\n consWriteForeignFields,\n nilWriteForeignFields,\n writeForeignVariant,\n nilWriteForeignVariant,\n consWriteForeignVariant,\n readForeignNEArray,\n writeForeignNEArray\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Monad_Except from \"../Control.Monad.Except/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nimport * as Simple_JSON from \"../Simple.JSON/index.js\";\nvar recordWriteForeign = /* #__PURE__ */ Simple_JSON.recordWriteForeign();\nvar expandedIsSymbol = {\n reflectSymbol: function () {\n return \"expanded\";\n }\n};\nvar modeIsSymbol = {\n reflectSymbol: function () {\n return \"mode\";\n }\n};\nvar valueIsSymbol = {\n reflectSymbol: function () {\n return \"value\";\n }\n};\nvar createdIsSymbol = {\n reflectSymbol: function () {\n return \"created\";\n }\n};\nvar idIsSymbol = {\n reflectSymbol: function () {\n return \"id\";\n }\n};\nvar isMarkdownIsSymbol = {\n reflectSymbol: function () {\n return \"isMarkdown\";\n }\n};\nvar lengthIsSymbol = {\n reflectSymbol: function () {\n return \"length\";\n }\n};\nvar sharedIsSymbol = {\n reflectSymbol: function () {\n return \"shared\";\n }\n};\nvar slugIsSymbol = {\n reflectSymbol: function () {\n return \"slug\";\n }\n};\nvar consWriteForeignFields = /* #__PURE__ */ Simple_JSON.consWriteForeignFields(slugIsSymbol)(Simple_JSON.writeForeignString);\nvar textIsSymbol = {\n reflectSymbol: function () {\n return \"text\";\n }\n};\nvar titleIsSymbol = {\n reflectSymbol: function () {\n return \"title\";\n }\n};\nvar consWriteForeignFields1 = /* #__PURE__ */ Simple_JSON.consWriteForeignFields(titleIsSymbol)(Simple_JSON.writeForeignString);\nvar updatedIsSymbol = {\n reflectSymbol: function () {\n return \"updated\";\n }\n};\nvar archiveUrlIsSymbol = {\n reflectSymbol: function () {\n return \"archiveUrl\";\n }\n};\nvar bidIsSymbol = {\n reflectSymbol: function () {\n return \"bid\";\n }\n};\nvar descriptionIsSymbol = {\n reflectSymbol: function () {\n return \"description\";\n }\n};\nvar privateIsSymbol = {\n reflectSymbol: function () {\n return \"private\";\n }\n};\nvar selectedIsSymbol = {\n reflectSymbol: function () {\n return \"selected\";\n }\n};\nvar tagsIsSymbol = {\n reflectSymbol: function () {\n return \"tags\";\n }\n};\nvar timeIsSymbol = {\n reflectSymbol: function () {\n return \"time\";\n }\n};\nvar toreadIsSymbol = {\n reflectSymbol: function () {\n return \"toread\";\n }\n};\nvar urlIsSymbol = {\n reflectSymbol: function () {\n return \"url\";\n }\n};\nvar archiveDefaultIsSymbol = {\n reflectSymbol: function () {\n return \"archiveDefault\";\n }\n};\nvar privacyLockIsSymbol = {\n reflectSymbol: function () {\n return \"privacyLock\";\n }\n};\nvar privateDefaultIsSymbol = {\n reflectSymbol: function () {\n return \"privateDefault\";\n }\n};\nvar readRecord = /* #__PURE__ */ Simple_JSON.readRecord();\nvar readFieldsCons = /* #__PURE__ */ Simple_JSON.readFieldsCons(slugIsSymbol)(Simple_JSON.readString);\nvar readFieldsCons1 = /* #__PURE__ */ Simple_JSON.readFieldsCons(titleIsSymbol)(Simple_JSON.readString);\nvar eq2 = /* #__PURE__ */ Data_Eq.eq(/* #__PURE__ */ Data_Eq.eqArray(Data_Eq.eqString));\nvar map = /* #__PURE__ */ Data_Functor.map(/* #__PURE__ */ Control_Monad_Except_Trans.functorExceptT(Data_Identity.functorIdentity));\nvar readInt = /* #__PURE__ */ Foreign.readInt(Data_Identity.monadIdentity);\nvar readString = /* #__PURE__ */ Foreign.readString(Data_Identity.monadIdentity);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(/* #__PURE__ */ Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity));\nvar intercalate = /* #__PURE__ */ Data_Array.intercalate(Data_Monoid.monoidString);\nvar TagCloudModeTop = /* #__PURE__ */ (function () {\n function TagCloudModeTop(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n TagCloudModeTop.create = function (value0) {\n return function (value1) {\n return new TagCloudModeTop(value0, value1);\n };\n };\n return TagCloudModeTop;\n})();\nvar TagCloudModeLowerBound = /* #__PURE__ */ (function () {\n function TagCloudModeLowerBound(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n TagCloudModeLowerBound.create = function (value0) {\n return function (value1) {\n return new TagCloudModeLowerBound(value0, value1);\n };\n };\n return TagCloudModeLowerBound;\n})();\nvar TagCloudModeRelated = /* #__PURE__ */ (function () {\n function TagCloudModeRelated(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n TagCloudModeRelated.create = function (value0) {\n return function (value1) {\n return new TagCloudModeRelated(value0, value1);\n };\n };\n return TagCloudModeRelated;\n})();\nvar TagCloudModeNone = /* #__PURE__ */ (function () {\n function TagCloudModeNone() {\n\n };\n TagCloudModeNone.value = new TagCloudModeNone();\n return TagCloudModeNone;\n})();\nvar TagCloudMode$prime = function (x) {\n return x;\n};\nvar Note$prime = function (x) {\n return x;\n};\nvar Bookmark$prime = function (x) {\n return x;\n};\nvar AccountSettings$prime = function (x) {\n return x;\n};\nvar writeForeignTagCloudMode$prime = /* #__PURE__ */ recordWriteForeign(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(expandedIsSymbol)(Simple_JSON.writeForeignBoolean)(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(modeIsSymbol)(Simple_JSON.writeForeignString)(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(valueIsSymbol)(Simple_JSON.writeForeignForeign)(Simple_JSON.nilWriteForeignFields)()()())()()())()()());\nvar writeForeignNote$prime = /* #__PURE__ */ recordWriteForeign(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(createdIsSymbol)(Simple_JSON.writeForeignString)(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(idIsSymbol)(Simple_JSON.writeForeignInt)(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(isMarkdownIsSymbol)(Simple_JSON.writeForeignBoolean)(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(lengthIsSymbol)(Simple_JSON.writeForeignInt)(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(sharedIsSymbol)(Simple_JSON.writeForeignBoolean)(/* #__PURE__ */ consWriteForeignFields(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(textIsSymbol)(Simple_JSON.writeForeignString)(/* #__PURE__ */ consWriteForeignFields1(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(updatedIsSymbol)(Simple_JSON.writeForeignString)(Simple_JSON.nilWriteForeignFields)()()())()()())()()())()()())()()())()()())()()())()()())()()());\nvar writeForeignBookmark$prime = /* #__PURE__ */ recordWriteForeign(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(archiveUrlIsSymbol)(/* #__PURE__ */ Simple_JSON.writeForeignNullable(Simple_JSON.writeForeignString))(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(bidIsSymbol)(Simple_JSON.writeForeignInt)(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(descriptionIsSymbol)(Simple_JSON.writeForeignString)(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(privateIsSymbol)(Simple_JSON.writeForeignBoolean)(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(selectedIsSymbol)(Simple_JSON.writeForeignBoolean)(/* #__PURE__ */ consWriteForeignFields(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(tagsIsSymbol)(Simple_JSON.writeForeignString)(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(timeIsSymbol)(Simple_JSON.writeForeignString)(/* #__PURE__ */ consWriteForeignFields1(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(toreadIsSymbol)(Simple_JSON.writeForeignBoolean)(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(urlIsSymbol)(Simple_JSON.writeForeignString)(Simple_JSON.nilWriteForeignFields)()()())()()())()()())()()())()()())()()())()()())()()())()()())()()())()()());\nvar writeForeignAccountSettin = /* #__PURE__ */ recordWriteForeign(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(archiveDefaultIsSymbol)(Simple_JSON.writeForeignBoolean)(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(privacyLockIsSymbol)(Simple_JSON.writeForeignBoolean)(/* #__PURE__ */ Simple_JSON.consWriteForeignFields(privateDefaultIsSymbol)(Simple_JSON.writeForeignBoolean)(Simple_JSON.nilWriteForeignFields)()()())()()())()()());\nvar readForeignTagCloudMode$prime = /* #__PURE__ */ readRecord(/* #__PURE__ */ Simple_JSON.readFieldsCons(expandedIsSymbol)(Simple_JSON.readBoolean)(/* #__PURE__ */ Simple_JSON.readFieldsCons(modeIsSymbol)(Simple_JSON.readString)(/* #__PURE__ */ Simple_JSON.readFieldsCons(valueIsSymbol)(Simple_JSON.readForeign)(Simple_JSON.readFieldsNil)()())()())()());\nvar readForeignNote$prime = /* #__PURE__ */ readRecord(/* #__PURE__ */ Simple_JSON.readFieldsCons(createdIsSymbol)(Simple_JSON.readString)(/* #__PURE__ */ Simple_JSON.readFieldsCons(idIsSymbol)(Simple_JSON.readInt)(/* #__PURE__ */ Simple_JSON.readFieldsCons(isMarkdownIsSymbol)(Simple_JSON.readBoolean)(/* #__PURE__ */ Simple_JSON.readFieldsCons(lengthIsSymbol)(Simple_JSON.readInt)(/* #__PURE__ */ Simple_JSON.readFieldsCons(sharedIsSymbol)(Simple_JSON.readBoolean)(/* #__PURE__ */ readFieldsCons(/* #__PURE__ */ Simple_JSON.readFieldsCons(textIsSymbol)(Simple_JSON.readString)(/* #__PURE__ */ readFieldsCons1(/* #__PURE__ */ Simple_JSON.readFieldsCons(updatedIsSymbol)(Simple_JSON.readString)(Simple_JSON.readFieldsNil)()())()())()())()())()())()())()())()())()());\nvar readForeignBookmark$prime = /* #__PURE__ */ readRecord(/* #__PURE__ */ Simple_JSON.readFieldsCons(archiveUrlIsSymbol)(/* #__PURE__ */ Simple_JSON.readNullable(Simple_JSON.readString))(/* #__PURE__ */ Simple_JSON.readFieldsCons(bidIsSymbol)(Simple_JSON.readInt)(/* #__PURE__ */ Simple_JSON.readFieldsCons(descriptionIsSymbol)(Simple_JSON.readString)(/* #__PURE__ */ Simple_JSON.readFieldsCons(privateIsSymbol)(Simple_JSON.readBoolean)(/* #__PURE__ */ Simple_JSON.readFieldsCons(selectedIsSymbol)(Simple_JSON.readBoolean)(/* #__PURE__ */ readFieldsCons(/* #__PURE__ */ Simple_JSON.readFieldsCons(tagsIsSymbol)(Simple_JSON.readString)(/* #__PURE__ */ Simple_JSON.readFieldsCons(timeIsSymbol)(Simple_JSON.readString)(/* #__PURE__ */ readFieldsCons1(/* #__PURE__ */ Simple_JSON.readFieldsCons(toreadIsSymbol)(Simple_JSON.readBoolean)(/* #__PURE__ */ Simple_JSON.readFieldsCons(urlIsSymbol)(Simple_JSON.readString)(Simple_JSON.readFieldsNil)()())()())()())()())()())()())()())()())()())()())()());\nvar readForeignAccountSetting = /* #__PURE__ */ readRecord(/* #__PURE__ */ Simple_JSON.readFieldsCons(archiveDefaultIsSymbol)(Simple_JSON.readBoolean)(/* #__PURE__ */ Simple_JSON.readFieldsCons(privacyLockIsSymbol)(Simple_JSON.readBoolean)(/* #__PURE__ */ Simple_JSON.readFieldsCons(privateDefaultIsSymbol)(Simple_JSON.readBoolean)(Simple_JSON.readFieldsNil)()())()())()());\nvar eqTagCloudModeF = {\n eq: function (x) {\n return function (y) {\n if (x instanceof TagCloudModeTop && y instanceof TagCloudModeTop) {\n return x.value0 === y.value0 && x.value1 === y.value1;\n };\n if (x instanceof TagCloudModeLowerBound && y instanceof TagCloudModeLowerBound) {\n return x.value0 === y.value0 && x.value1 === y.value1;\n };\n if (x instanceof TagCloudModeRelated && y instanceof TagCloudModeRelated) {\n return x.value0 === y.value0 && eq2(x.value1)(y.value1);\n };\n if (x instanceof TagCloudModeNone && y instanceof TagCloudModeNone) {\n return true;\n };\n return false;\n };\n }\n};\nvar tagCloudModeToF = function (tagCloudMode) {\n return Data_Maybe.fromMaybe(TagCloudModeNone.value)(Data_Either.hush(Control_Monad_Except.runExcept((function () {\n if (tagCloudMode.mode === \"top\") {\n return map(TagCloudModeTop.create(tagCloudMode.expanded))(readInt(tagCloudMode.value));\n };\n if (tagCloudMode.mode === \"lowerBound\") {\n return map(TagCloudModeLowerBound.create(tagCloudMode.expanded))(readInt(tagCloudMode.value));\n };\n if (tagCloudMode.mode === \"related\") {\n return map(function (s) {\n return new TagCloudModeRelated(tagCloudMode.expanded, Data_String_Common.split(\" \")(s));\n })(readString(tagCloudMode.value));\n };\n return pure(TagCloudModeNone.value);\n })())));\n};\nvar tagCloudModeFromF = function (v) {\n if (v instanceof TagCloudModeTop) {\n return {\n mode: \"top\",\n value: Foreign.unsafeToForeign(v.value1),\n expanded: v.value0\n };\n };\n if (v instanceof TagCloudModeLowerBound) {\n return {\n mode: \"lowerBound\",\n value: Foreign.unsafeToForeign(v.value1),\n expanded: v.value0\n };\n };\n if (v instanceof TagCloudModeRelated) {\n return {\n mode: \"related\",\n value: Foreign.unsafeToForeign(intercalate(\" \")(v.value1)),\n expanded: v.value0\n };\n };\n if (v instanceof TagCloudModeNone) {\n return {\n mode: \"none\",\n value: Foreign.unsafeToForeign(\"\"),\n expanded: false\n };\n };\n throw new Error(\"Failed pattern match at Model (line 92, column 1 - line 92, column 51): \" + [ v.constructor.name ]);\n};\nvar showMode = function (v) {\n if (v instanceof TagCloudModeTop) {\n return \"top\";\n };\n if (v instanceof TagCloudModeLowerBound) {\n return \"lowerBound\";\n };\n if (v instanceof TagCloudModeRelated) {\n return \"related\";\n };\n if (v instanceof TagCloudModeNone) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Model (line 118, column 1 - line 118, column 36): \" + [ v.constructor.name ]);\n};\nvar setExpanded = function (v) {\n return function (v1) {\n if (v instanceof TagCloudModeTop) {\n return new TagCloudModeTop(v1, v.value1);\n };\n if (v instanceof TagCloudModeLowerBound) {\n return new TagCloudModeLowerBound(v1, v.value1);\n };\n if (v instanceof TagCloudModeRelated) {\n return new TagCloudModeRelated(v1, v.value1);\n };\n if (v instanceof TagCloudModeNone) {\n return TagCloudModeNone.value;\n };\n throw new Error(\"Failed pattern match at Model (line 112, column 1 - line 112, column 57): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n};\nvar isRelated = function (v) {\n if (v instanceof TagCloudModeRelated) {\n return true;\n };\n return false;\n};\nvar isExpanded = function (v) {\n if (v instanceof TagCloudModeTop) {\n return v.value0;\n };\n if (v instanceof TagCloudModeLowerBound) {\n return v.value0;\n };\n if (v instanceof TagCloudModeRelated) {\n return v.value0;\n };\n if (v instanceof TagCloudModeNone) {\n return false;\n };\n throw new Error(\"Failed pattern match at Model (line 102, column 1 - line 102, column 39): \" + [ v.constructor.name ]);\n};\nexport {\n Bookmark$prime,\n Note$prime,\n AccountSettings$prime,\n TagCloudMode$prime,\n TagCloudModeTop,\n TagCloudModeLowerBound,\n TagCloudModeRelated,\n TagCloudModeNone,\n tagCloudModeToF,\n tagCloudModeFromF,\n isExpanded,\n isRelated,\n setExpanded,\n showMode,\n readForeignBookmark$prime,\n writeForeignBookmark$prime,\n readForeignNote$prime,\n writeForeignNote$prime,\n readForeignAccountSetting,\n writeForeignAccountSettin,\n readForeignTagCloudMode$prime,\n writeForeignTagCloudMode$prime,\n eqTagCloudModeF\n};\n", "const windowImpl = function () {\n return window;\n};\nexport { windowImpl as window };\n", "// Generated by purs version 0.15.14\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nvar PropName = function (x) {\n return x;\n};\nvar ClassName = function (x) {\n return x;\n};\nvar AttrName = function (x) {\n return x;\n};\nvar ordPropName = Data_Ord.ordString;\nvar ordClassName = Data_Ord.ordString;\nvar ordAttrName = Data_Ord.ordString;\nvar newtypePropName = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeClassName = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeAttrName = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar eqPropName = Data_Eq.eqString;\nvar eqClassName = Data_Eq.eqString;\nvar eqAttrName = Data_Eq.eqString;\nexport {\n PropName,\n AttrName,\n ClassName,\n newtypePropName,\n eqPropName,\n ordPropName,\n newtypeAttrName,\n eqAttrName,\n ordAttrName,\n newtypeClassName,\n eqClassName,\n ordClassName\n};\n", "export function _documentElement(doc) {\n return doc.documentElement;\n}\n\nexport function _head(doc) {\n return doc.head;\n}\n\nexport function _body(doc) {\n return doc.body;\n}\n\nexport function _readyState(doc) {\n return doc.readyState;\n}\n\nexport function _visibilityState(doc) {\n return doc.readyState;\n}\n\nexport function _activeElement(doc) {\n return doc.activeElement;\n}\n\nexport function _currentScript(doc) {\n return doc.currentScript;\n}\n\nexport function _referrer(doc) {\n return doc.referrer;\n}\n\nexport function _title(doc) {\n return doc.title;\n}\n\nexport function _setTitle(title, doc) {\n doc.title = title;\n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_HTML_HTMLDocument_ReadyState from \"../Web.HTML.HTMLDocument.ReadyState/index.js\";\nimport * as Web_HTML_HTMLDocument_VisibilityState from \"../Web.HTML.HTMLDocument.VisibilityState/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar visibilityState = function (doc) {\n return map((function () {\n var $2 = Data_Maybe.fromMaybe(Web_HTML_HTMLDocument_VisibilityState.Visible.value);\n return function ($3) {\n return $2(Web_HTML_HTMLDocument_VisibilityState.parse($3));\n };\n })())(function () {\n return $foreign[\"_visibilityState\"](doc);\n });\n};\nvar toParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNonElementParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar toDocument = Unsafe_Coerce.unsafeCoerce;\nvar title = function (doc) {\n return function () {\n return $foreign[\"_title\"](doc);\n };\n};\nvar setTitle = function (newTitle) {\n return function (doc) {\n return function () {\n return $foreign[\"_setTitle\"](newTitle, doc);\n };\n };\n};\nvar referrer = function (doc) {\n return function () {\n return $foreign[\"_referrer\"](doc);\n };\n};\nvar readyState = function (doc) {\n return map((function () {\n var $4 = Data_Maybe.fromMaybe(Web_HTML_HTMLDocument_ReadyState.Loading.value);\n return function ($5) {\n return $4(Web_HTML_HTMLDocument_ReadyState.parse($5));\n };\n })())(function () {\n return $foreign[\"_readyState\"](doc);\n });\n};\nvar head = function (doc) {\n return map(Data_Nullable.toMaybe)(function () {\n return $foreign[\"_head\"](doc);\n });\n};\nvar fromParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar fromNonElementParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar fromNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar fromDocument = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"HTMLDocument\");\nvar documentElement = function (doc) {\n return map(Data_Nullable.toMaybe)(function () {\n return $foreign[\"_documentElement\"](doc);\n });\n};\nvar currentScript = function (doc) {\n return map(Data_Nullable.toMaybe)(function () {\n return $foreign[\"_currentScript\"](doc);\n });\n};\nvar body = function (doc) {\n return map(Data_Nullable.toMaybe)(function () {\n return $foreign[\"_body\"](doc);\n });\n};\nvar activeElement = function (doc) {\n return map(Data_Nullable.toMaybe)(function () {\n return $foreign[\"_activeElement\"](doc);\n });\n};\nexport {\n fromDocument,\n fromNode,\n fromParentNode,\n fromNonElementParentNode,\n fromEventTarget,\n toDocument,\n toNode,\n toParentNode,\n toNonElementParentNode,\n toEventTarget,\n documentElement,\n head,\n body,\n readyState,\n visibilityState,\n activeElement,\n currentScript,\n referrer,\n title,\n setTitle\n};\n", "export function _read(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\nexport function title(elt) {\n return function () {\n return elt.title;\n };\n}\n\nexport function setTitle(title) {\n return function (elt) {\n return function () {\n elt.title = title;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function lang(elt) {\n return function () {\n return elt.lang;\n };\n}\n\nexport function setLang(lang) {\n return function (elt) {\n return function () {\n elt.lang = lang;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function dir(elt) {\n return function () {\n return elt.dir;\n };\n}\n\nexport function setDir(dir) {\n return function (elt) {\n return function () {\n elt.dir = dir;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function hidden(elt) {\n return function () {\n return elt.hidden;\n };\n}\n\nexport function setHidden(hidden) {\n return function (elt) {\n return function () {\n elt.hidden = hidden;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function tabIndex(elt) {\n return function () {\n return elt.tabIndex;\n };\n}\n\nexport function setTabIndex(tabIndex) {\n return function (elt) {\n return function () {\n elt.tabIndex = tabIndex;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function draggable(elt) {\n return function () {\n return elt.draggable;\n };\n}\n\nexport function setDraggable(draggable) {\n return function (elt) {\n return function () {\n elt.draggable = draggable;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function contentEditable(elt) {\n return function () {\n return elt.contentEditable;\n };\n}\n\nexport function setContentEditable(contentEditable) {\n return function (elt) {\n return function () {\n elt.contentEditable = contentEditable;\n };\n };\n}\n\nexport function isContentEditable(elt) {\n return function () {\n return elt.isContentEditable;\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function spellcheck(elt) {\n return function () {\n return elt.spellcheck;\n };\n}\n\nexport function setSpellcheck(spellcheck) {\n return function (elt) {\n return function () {\n elt.spellcheck = spellcheck;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function click(elt) {\n return function () {\n return elt.click();\n };\n}\n\nexport function focus(elt) {\n return function () {\n return elt.focus();\n };\n}\n\nexport function blur(elt) {\n return function () {\n return elt.blur();\n };\n}\n\n// - CSSOM ---------------------------------------------------------------------\n\nexport function _offsetParent(el) {\n return function () {\n return el.offsetParent;\n };\n}\n\nexport function offsetTop(el) {\n return function () {\n return el.offsetTop;\n };\n}\n\nexport function offsetLeft(el) {\n return function () {\n return el.offsetLeft;\n };\n}\n\nexport function offsetWidth(el) {\n return function () {\n return el.offsetWidth;\n };\n}\n\nexport function offsetHeight(el) {\n return function () {\n return el.offsetHeight;\n };\n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar toParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNonDocumentTypeChildNode = Unsafe_Coerce.unsafeCoerce;\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar toElement = Unsafe_Coerce.unsafeCoerce;\nvar toChildNode = Unsafe_Coerce.unsafeCoerce;\nvar offsetParent = /* #__PURE__ */ (function () {\n var $2 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($3) {\n return $2($foreign[\"_offsetParent\"]($3));\n };\n})();\nvar fromParentNode = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromNonDocumentTypeChildNode = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromNode = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromEventTarget = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromElement = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nvar fromChildNode = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n};\nexport {\n title,\n setTitle,\n lang,\n setLang,\n dir,\n setDir,\n hidden,\n setHidden,\n tabIndex,\n setTabIndex,\n draggable,\n setDraggable,\n contentEditable,\n setContentEditable,\n isContentEditable,\n spellcheck,\n setSpellcheck,\n click,\n focus,\n blur,\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n} from \"./foreign.js\";\nexport {\n fromElement,\n fromNode,\n fromChildNode,\n fromNonDocumentTypeChildNode,\n fromParentNode,\n fromEventTarget,\n toElement,\n toNode,\n toChildNode,\n toNonDocumentTypeChildNode,\n toParentNode,\n toEventTarget,\n offsetParent\n};\n", "export function hash(location) {\n return function () {\n return location.hash;\n };\n}\n\nexport function setHash(hash) {\n return function (location) {\n return function () {\n location.hash = hash;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function host(location) {\n return function () {\n return location.host;\n };\n}\n\nexport function setHost(host) {\n return function (location) {\n return function () {\n location.host = host;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function hostname(location) {\n return function () {\n return location.hostname;\n };\n}\n\nexport function setHostname(hostname) {\n return function (location) {\n return function () {\n location.hostname = hostname;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function href(location) {\n return function () {\n return location.href;\n };\n}\n\nexport function setHref(href) {\n return function (location) {\n return function () {\n location.href = href;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function origin(location) {\n return function () {\n return location.origin;\n };\n}\n\nexport function setOrigin(origin) {\n return function (location) {\n return function () {\n location.origin = origin;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function pathname(location) {\n return function () {\n return location.pathname;\n };\n}\n\nexport function setPathname(pathname) {\n return function (location) {\n return function () {\n location.pathname = pathname;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function port(location) {\n return function () {\n return location.port;\n };\n}\n\nexport function setPort(port) {\n return function (location) {\n return function () {\n location.port = port;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function protocol(location) {\n return function () {\n return location.protocol;\n };\n}\n\nexport function setProtocol(protocol) {\n return function (location) {\n return function () {\n location.protocol = protocol;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function search(location) {\n return function () {\n return location.search;\n };\n}\n\nexport function setSearch(search) {\n return function (location) {\n return function () {\n location.search = search;\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function assign(url) {\n return function (location) {\n return function () {\n location.assign(url);\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function replace(url) {\n return function (location) {\n return function () {\n location.replace(url);\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n\nexport function reload(location) {\n return function () {\n location.reload();\n };\n}\n", "export function document(window) {\n return function () {\n return window.document;\n };\n}\n\nexport function navigator(window) {\n return function () {\n return window.navigator;\n };\n}\n\nexport function location(window) {\n return function () {\n return window.location;\n };\n}\n\nexport function history(window) {\n return function() {\n return window.history;\n };\n}\n\nexport function innerWidth(window) {\n return function () {\n return window.innerWidth;\n };\n}\n\nexport function innerHeight(window) {\n return function () {\n return window.innerHeight;\n };\n}\n\nexport function alert(str) {\n return function (window) {\n return function () {\n window.alert(str);\n };\n };\n}\n\nexport function confirm(str) {\n return function (window) {\n return function () {\n return window.confirm(str);\n };\n };\n}\n\nexport function moveBy(xDelta) {\n return function (yDelta) {\n return function (window) {\n return function () {\n window.moveBy(xDelta, yDelta);\n };\n };\n };\n}\n\nexport function moveTo(width) {\n return function (height) {\n return function (window) {\n return function () {\n window.moveTo(width, height);\n };\n };\n };\n}\n\nexport function _open(url) {\n return function (name) {\n return function (features) {\n return function (window) {\n return function () {\n return window.open(url, name, features);\n };\n };\n };\n };\n}\n\nexport function close(window) {\n return function () {\n return window.close();\n };\n}\n\nexport function outerHeight(window) {\n return function () {\n return window.outerHeight;\n };\n}\n\nexport function outerWidth(window) {\n return function () {\n return window.outerWidth;\n };\n}\n\nexport function print(window) {\n return function () {\n window.print();\n };\n}\n\nexport function _prompt(str) {\n return function (defaultText) {\n return function (window) {\n return function () {\n return window.prompt(str, defaultText);\n };\n };\n };\n}\n\nexport function resizeBy(xDelta) {\n return function (yDelta) {\n return function (window) {\n return function () {\n window.resizeBy(xDelta, yDelta);\n };\n };\n };\n}\n\nexport function resizeTo(width) {\n return function (height) {\n return function (window) {\n return function () {\n window.resizeTo(width, height);\n };\n };\n };\n}\n\nexport function screenX(window) {\n return function () {\n return window.screenX;\n };\n}\n\nexport function screenY(window) {\n return function () {\n return window.screenY;\n };\n}\n\nexport function scroll(xCoord) {\n return function (yCoord) {\n return function (window) {\n return function () {\n window.scroll(xCoord, yCoord);\n };\n };\n };\n}\n\nexport function scrollBy(xCoord) {\n return function (yCoord) {\n return function (window) {\n return function () {\n window.scrollBy(xCoord, yCoord);\n };\n };\n };\n}\n\nexport function scrollX(window) {\n return function () {\n return window.scrollX;\n };\n}\n\nexport function scrollY(window) {\n return function () {\n return window.scrollY;\n };\n}\n\nexport function localStorage(window) {\n return function () {\n return window.localStorage;\n };\n}\n\nexport function sessionStorage(window) {\n return function () {\n return window.sessionStorage;\n };\n}\n\nexport function requestAnimationFrame(fn) {\n return function(window) {\n return function() {\n return window.requestAnimationFrame(fn);\n };\n };\n}\n\nexport function cancelAnimationFrame(id) {\n return function(window) {\n return function() {\n return window.cancelAnimationFrame(id);\n };\n };\n}\n\nexport function requestIdleCallback(opts) {\n return function(fn) {\n return function(window) {\n return function() {\n return window.requestIdleCallback(fn, opts);\n };\n };\n };\n}\n\nexport function cancelIdleCallback(id) {\n return function(window) {\n return function() {\n return window.cancelIdleCallback(id);\n };\n };\n}\n\nexport function parent(window) {\n return function() {\n return window.parent;\n };\n}\n\nexport function _opener(window) {\n return function() {\n return window.opener;\n };\n}\n", "// Generated by purs version 0.15.14\nimport * as Affjax from \"../Affjax/index.js\";\nimport * as Affjax_RequestBody from \"../Affjax.RequestBody/index.js\";\nimport * as Affjax_RequestHeader from \"../Affjax.RequestHeader/index.js\";\nimport * as Affjax_ResponseFormat from \"../Affjax.ResponseFormat/index.js\";\nimport * as Affjax_StatusCode from \"../Affjax.StatusCode/index.js\";\nimport * as Affjax_Web from \"../Affjax.Web/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HTTP_Method from \"../Data.HTTP.Method/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_MediaType_Common from \"../Data.MediaType.Common/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Globals from \"../Globals/index.js\";\nimport * as Model from \"../Model/index.js\";\nimport * as Simple_JSON from \"../Simple.JSON/index.js\";\nimport * as Web_HTML from \"../Web.HTML/index.js\";\nimport * as Web_HTML_Location from \"../Web.HTML.Location/index.js\";\nimport * as Web_HTML_Window from \"../Web.HTML.Window/index.js\";\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Effect_Aff.functorAff);\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\nvar bind = /* #__PURE__ */ Control_Bind.bind(Effect.bindEffect);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar bind1 = /* #__PURE__ */ Control_Bind.bind(Effect_Aff.bindAff);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect_Aff.applicativeAff);\nvar bind2 = /* #__PURE__ */ Control_Bind.bind(Data_Maybe.bindMaybe);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(Data_Maybe.applicativeMaybe);\nvar eq = /* #__PURE__ */ Data_Eq.eq(Affjax_StatusCode.eqStatusCode);\nvar Star = /* #__PURE__ */ (function () {\n function Star() {\n\n };\n Star.value = new Star();\n return Star;\n})();\nvar UnStar = /* #__PURE__ */ (function () {\n function UnStar() {\n\n };\n UnStar.value = new UnStar();\n return UnStar;\n})();\nvar showStar = {\n show: function (v) {\n if (v instanceof Star) {\n return \"star\";\n };\n if (v instanceof UnStar) {\n return \"unstar\";\n };\n throw new Error(\"Failed pattern match at App (line 29, column 1 - line 31, column 25): \" + [ v.constructor.name ]);\n }\n};\nvar show1 = /* #__PURE__ */ Data_Show.show(showStar);\nvar fetchUrl = function (method) {\n return function (url) {\n return function (headers) {\n return function (content) {\n return function (rt) {\n var app = Globals[\"app$prime\"](Data_Unit.unit);\n return Affjax_Web.request({\n username: Affjax.defaultRequest.username,\n password: Affjax.defaultRequest.password,\n withCredentials: Affjax.defaultRequest.withCredentials,\n timeout: Affjax.defaultRequest.timeout,\n url: url,\n method: new Data_Either.Left(method),\n headers: Data_Array.cons(new Affjax_RequestHeader.RequestHeader(app.csrfHeaderName, app.csrfToken))(headers),\n content: content,\n responseFormat: rt\n });\n };\n };\n };\n };\n};\nvar logout = function (u) {\n var app = Globals[\"app$prime\"](u);\n return discard($$void(fetchUrl(Data_HTTP_Method.POST.value)(app.authRlogoutR)([ ])(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore)))(function () {\n return liftEffect(bind(bind(Web_HTML.window)(Web_HTML_Window.location))(Web_HTML_Location.reload));\n });\n};\nvar fetchPath = function (method) {\n return function (path) {\n return function (headers) {\n return function (content) {\n return function (rt) {\n return fetchUrl(method)((Globals[\"app$prime\"](Data_Unit.unit)).homeR + path)(headers)(content)(rt);\n };\n };\n };\n };\n};\nvar fetchUrlEnc = function (method) {\n return function (path) {\n return function (content) {\n return function (rt) {\n return fetchPath(method)(path)([ new Affjax_RequestHeader.ContentType(Data_MediaType_Common.applicationFormURLEncoded) ])(map(Affjax_RequestBody.FormURLEncoded.create)(content))(rt);\n };\n };\n };\n};\nvar markRead = function (bid) {\n var path = \"bm/\" + (show(bid) + \"/read\");\n return fetchUrlEnc(Data_HTTP_Method.POST.value)(path)(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore);\n};\nvar toggleStar = function (bid) {\n return function (action) {\n var path = \"bm/\" + (show(bid) + (\"/\" + show1(action)));\n return $$void(fetchUrlEnc(Data_HTTP_Method.POST.value)(path)(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore));\n };\n};\nvar fetchJson = function (dictWriteForeign) {\n var writeJSON = Simple_JSON.writeJSON(dictWriteForeign);\n return function (method) {\n return function (path) {\n return function (content) {\n return function (rt) {\n return fetchPath(method)(path)([ new Affjax_RequestHeader.ContentType(Data_MediaType_Common.applicationJSON) ])(map(function ($25) {\n return Affjax_RequestBody.string(writeJSON($25));\n })(content))(rt);\n };\n };\n };\n };\n};\nvar fetchJson1 = /* #__PURE__ */ fetchJson(Model[\"writeForeignTagCloudMode$prime\"]);\nvar fetchJson2 = /* #__PURE__ */ fetchJson(Model[\"writeForeignBookmark$prime\"]);\nvar fetchJson3 = /* #__PURE__ */ fetchJson(Model[\"writeForeignNote$prime\"]);\nvar fetchJson4 = /* #__PURE__ */ fetchJson(Model.writeForeignAccountSettin);\nvar getTagCloud = function (mode) {\n return bind1(fetchJson1(Data_HTTP_Method.POST.value)(\"api/tagcloud\")(new Data_Maybe.Just(mode))(Affjax_ResponseFormat.json))(function (eres) {\n return pure(bind2(Data_Either.hush(eres))(function (res) {\n return pure1(res.body);\n }));\n });\n};\nvar lookupTitle = function (bm) {\n return bind1(fetchJson2(Data_HTTP_Method.POST.value)(\"api/lookuptitle\")(new Data_Maybe.Just(bm))(Affjax_ResponseFormat.string))(function (eres) {\n return pure(bind2(Data_Either.hush(eres))(function (res) {\n var $24 = eq(res.status)(200);\n if ($24) {\n return new Data_Maybe.Just(res.body);\n };\n return Data_Maybe.Nothing.value;\n }));\n });\n};\nvar updateTagCloudMode = function (mode) {\n return fetchJson1(Data_HTTP_Method.POST.value)(\"api/tagcloudmode\")(new Data_Maybe.Just(mode))(Affjax_ResponseFormat.ignore);\n};\nvar editNote = function (bm) {\n return fetchJson3(Data_HTTP_Method.POST.value)(\"api/note/add\")(new Data_Maybe.Just(bm))(Affjax_ResponseFormat.string);\n};\nvar editBookmark = function (bm) {\n return fetchJson2(Data_HTTP_Method.POST.value)(\"api/add\")(new Data_Maybe.Just(bm))(Affjax_ResponseFormat.string);\n};\nvar editAccountSettings = function (us) {\n return fetchJson4(Data_HTTP_Method.POST.value)(\"api/accountSettings\")(new Data_Maybe.Just(us))(Affjax_ResponseFormat.ignore);\n};\nvar destroyNote = function (nid) {\n return fetchUrlEnc(Data_HTTP_Method.DELETE.value)(\"api/note/\" + show(nid))(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore);\n};\nvar destroy = function (bid) {\n return fetchUrlEnc(Data_HTTP_Method.DELETE.value)(\"bm/\" + show(bid))(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore);\n};\nexport {\n Star,\n UnStar,\n toggleStar,\n destroy,\n markRead,\n editBookmark,\n editNote,\n lookupTitle,\n getTagCloud,\n updateTagCloudMode,\n destroyNote,\n editAccountSettings,\n logout,\n fetchJson,\n fetchUrlEnc,\n fetchPath,\n fetchUrl,\n showStar\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar InputButton = /* #__PURE__ */ (function () {\n function InputButton() {\n\n };\n InputButton.value = new InputButton();\n return InputButton;\n})();\nvar InputCheckbox = /* #__PURE__ */ (function () {\n function InputCheckbox() {\n\n };\n InputCheckbox.value = new InputCheckbox();\n return InputCheckbox;\n})();\nvar InputColor = /* #__PURE__ */ (function () {\n function InputColor() {\n\n };\n InputColor.value = new InputColor();\n return InputColor;\n})();\nvar InputDate = /* #__PURE__ */ (function () {\n function InputDate() {\n\n };\n InputDate.value = new InputDate();\n return InputDate;\n})();\nvar InputDatetimeLocal = /* #__PURE__ */ (function () {\n function InputDatetimeLocal() {\n\n };\n InputDatetimeLocal.value = new InputDatetimeLocal();\n return InputDatetimeLocal;\n})();\nvar InputEmail = /* #__PURE__ */ (function () {\n function InputEmail() {\n\n };\n InputEmail.value = new InputEmail();\n return InputEmail;\n})();\nvar InputFile = /* #__PURE__ */ (function () {\n function InputFile() {\n\n };\n InputFile.value = new InputFile();\n return InputFile;\n})();\nvar InputHidden = /* #__PURE__ */ (function () {\n function InputHidden() {\n\n };\n InputHidden.value = new InputHidden();\n return InputHidden;\n})();\nvar InputImage = /* #__PURE__ */ (function () {\n function InputImage() {\n\n };\n InputImage.value = new InputImage();\n return InputImage;\n})();\nvar InputMonth = /* #__PURE__ */ (function () {\n function InputMonth() {\n\n };\n InputMonth.value = new InputMonth();\n return InputMonth;\n})();\nvar InputNumber = /* #__PURE__ */ (function () {\n function InputNumber() {\n\n };\n InputNumber.value = new InputNumber();\n return InputNumber;\n})();\nvar InputPassword = /* #__PURE__ */ (function () {\n function InputPassword() {\n\n };\n InputPassword.value = new InputPassword();\n return InputPassword;\n})();\nvar InputRadio = /* #__PURE__ */ (function () {\n function InputRadio() {\n\n };\n InputRadio.value = new InputRadio();\n return InputRadio;\n})();\nvar InputRange = /* #__PURE__ */ (function () {\n function InputRange() {\n\n };\n InputRange.value = new InputRange();\n return InputRange;\n})();\nvar InputReset = /* #__PURE__ */ (function () {\n function InputReset() {\n\n };\n InputReset.value = new InputReset();\n return InputReset;\n})();\nvar InputSearch = /* #__PURE__ */ (function () {\n function InputSearch() {\n\n };\n InputSearch.value = new InputSearch();\n return InputSearch;\n})();\nvar InputSubmit = /* #__PURE__ */ (function () {\n function InputSubmit() {\n\n };\n InputSubmit.value = new InputSubmit();\n return InputSubmit;\n})();\nvar InputTel = /* #__PURE__ */ (function () {\n function InputTel() {\n\n };\n InputTel.value = new InputTel();\n return InputTel;\n})();\nvar InputText = /* #__PURE__ */ (function () {\n function InputText() {\n\n };\n InputText.value = new InputText();\n return InputText;\n})();\nvar InputTime = /* #__PURE__ */ (function () {\n function InputTime() {\n\n };\n InputTime.value = new InputTime();\n return InputTime;\n})();\nvar InputUrl = /* #__PURE__ */ (function () {\n function InputUrl() {\n\n };\n InputUrl.value = new InputUrl();\n return InputUrl;\n})();\nvar InputWeek = /* #__PURE__ */ (function () {\n function InputWeek() {\n\n };\n InputWeek.value = new InputWeek();\n return InputWeek;\n})();\nvar 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 33, column 19 - line 55, column 22): \" + [ v.constructor.name ]);\n};\nvar eqInputType = {\n eq: function (x) {\n return function (y) {\n if (x instanceof InputButton && y instanceof InputButton) {\n return true;\n };\n if (x instanceof InputCheckbox && y instanceof InputCheckbox) {\n return true;\n };\n if (x instanceof InputColor && y instanceof InputColor) {\n return true;\n };\n if (x instanceof InputDate && y instanceof InputDate) {\n return true;\n };\n if (x instanceof InputDatetimeLocal && y instanceof InputDatetimeLocal) {\n return true;\n };\n if (x instanceof InputEmail && y instanceof InputEmail) {\n return true;\n };\n if (x instanceof InputFile && y instanceof InputFile) {\n return true;\n };\n if (x instanceof InputHidden && y instanceof InputHidden) {\n return true;\n };\n if (x instanceof InputImage && y instanceof InputImage) {\n return true;\n };\n if (x instanceof InputMonth && y instanceof InputMonth) {\n return true;\n };\n if (x instanceof InputNumber && y instanceof InputNumber) {\n return true;\n };\n if (x instanceof InputPassword && y instanceof InputPassword) {\n return true;\n };\n if (x instanceof InputRadio && y instanceof InputRadio) {\n return true;\n };\n if (x instanceof InputRange && y instanceof InputRange) {\n return true;\n };\n if (x instanceof InputReset && y instanceof InputReset) {\n return true;\n };\n if (x instanceof InputSearch && y instanceof InputSearch) {\n return true;\n };\n if (x instanceof InputSubmit && y instanceof InputSubmit) {\n return true;\n };\n if (x instanceof InputTel && y instanceof InputTel) {\n return true;\n };\n if (x instanceof InputText && y instanceof InputText) {\n return true;\n };\n if (x instanceof InputTime && y instanceof InputTime) {\n return true;\n };\n if (x instanceof InputUrl && y instanceof InputUrl) {\n return true;\n };\n if (x instanceof InputWeek && y instanceof InputWeek) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordInputType = {\n compare: function (x) {\n return function (y) {\n if (x instanceof InputButton && y instanceof InputButton) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputButton) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputButton) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputCheckbox && y instanceof InputCheckbox) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputCheckbox) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputCheckbox) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputColor && y instanceof InputColor) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputColor) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputColor) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputDate && y instanceof InputDate) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputDate) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputDate) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputDatetimeLocal && y instanceof InputDatetimeLocal) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputDatetimeLocal) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputDatetimeLocal) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputEmail && y instanceof InputEmail) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputEmail) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputEmail) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputFile && y instanceof InputFile) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputFile) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputFile) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputHidden && y instanceof InputHidden) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputHidden) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputHidden) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputImage && y instanceof InputImage) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputImage) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputImage) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputMonth && y instanceof InputMonth) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputMonth) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputMonth) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputNumber && y instanceof InputNumber) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputNumber) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputNumber) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputPassword && y instanceof InputPassword) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputPassword) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputPassword) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputRadio && y instanceof InputRadio) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputRadio) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputRadio) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputRange && y instanceof InputRange) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputRange) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputRange) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputReset && y instanceof InputReset) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputReset) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputReset) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputSearch && y instanceof InputSearch) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputSearch) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputSearch) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputSubmit && y instanceof InputSubmit) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputSubmit) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputSubmit) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputTel && y instanceof InputTel) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputTel) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputTel) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputText && y instanceof InputText) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputText) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputText) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputTime && y instanceof InputTime) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputTime) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputTime) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputUrl && y instanceof InputUrl) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof InputUrl) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof InputUrl) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof InputWeek && y instanceof InputWeek) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at DOM.HTML.Indexed.InputType (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqInputType;\n }\n};\nexport {\n InputButton,\n InputCheckbox,\n InputColor,\n InputDate,\n InputDatetimeLocal,\n InputEmail,\n InputFile,\n InputHidden,\n InputImage,\n InputMonth,\n InputNumber,\n InputPassword,\n InputRadio,\n InputRange,\n InputReset,\n InputSearch,\n InputSubmit,\n InputTel,\n InputText,\n InputTime,\n InputUrl,\n InputWeek,\n renderInputType,\n eqInputType,\n ordInputType\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Const from \"../Data.Const/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar alaF = /* #__PURE__ */ Data_Newtype.alaF()()()();\nvar Forget = function (x) {\n return x;\n};\nvar semigroupForget = function (dictSemigroup) {\n return Data_Semigroup.semigroupFn(dictSemigroup);\n};\nvar profunctorForget = {\n dimap: function (f) {\n return function (v) {\n return function (v1) {\n return function ($36) {\n return v1(f($36));\n };\n };\n };\n }\n};\nvar strongForget = {\n first: function (v) {\n return function ($37) {\n return v(Data_Tuple.fst($37));\n };\n },\n second: function (v) {\n return function ($38) {\n return v(Data_Tuple.snd($38));\n };\n },\n Profunctor0: function () {\n return profunctorForget;\n }\n};\nvar newtypeForget = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidForget = function (dictMonoid) {\n return Data_Monoid.monoidFn(dictMonoid);\n};\nvar cochoiceForget = {\n unleft: function (v) {\n return function ($39) {\n return v(Data_Either.Left.create($39));\n };\n },\n unright: function (v) {\n return function ($40) {\n return v(Data_Either.Right.create($40));\n };\n },\n Profunctor0: function () {\n return profunctorForget;\n }\n};\nvar choiceForget = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(Data_Monoid.monoidFn(dictMonoid));\n return {\n left: function (v) {\n return Data_Either.either(v)(mempty);\n },\n right: function (v) {\n return Data_Either.either(mempty)(v);\n },\n Profunctor0: function () {\n return profunctorForget;\n }\n };\n};\nvar wanderForget = function (dictMonoid) {\n var applicativeConst = Data_Const.applicativeConst(dictMonoid);\n var choiceForget1 = choiceForget(dictMonoid);\n return {\n wander: function (f) {\n return function (v) {\n return alaF(Data_Const.Const)(f(applicativeConst))(v);\n };\n },\n Strong0: function () {\n return strongForget;\n },\n Choice1: function () {\n return choiceForget1;\n }\n };\n};\nexport {\n Forget,\n newtypeForget,\n semigroupForget,\n monoidForget,\n profunctorForget,\n choiceForget,\n strongForget,\n cochoiceForget,\n wanderForget\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Semigroupoid from \"../Control.Semigroupoid/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Profunctor from \"../Data.Profunctor/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar strongFn = {\n first: function (a2b) {\n return function (v) {\n return new Data_Tuple.Tuple(a2b(v.value0), v.value1);\n };\n },\n second: /* #__PURE__ */ Data_Functor.map(Data_Tuple.functorTuple),\n Profunctor0: function () {\n return Data_Profunctor.profunctorFn;\n }\n};\nvar second = function (dict) {\n return dict.second;\n};\nvar first = function (dict) {\n return dict.first;\n};\nvar splitStrong = function (dictCategory) {\n var composeFlipped = Control_Semigroupoid.composeFlipped(dictCategory.Semigroupoid0());\n return function (dictStrong) {\n var first1 = first(dictStrong);\n var second1 = second(dictStrong);\n return function (l) {\n return function (r) {\n return composeFlipped(first1(l))(second1(r));\n };\n };\n };\n};\nvar fanout = function (dictCategory) {\n var identity1 = Control_Category.identity(dictCategory);\n var composeFlipped = Control_Semigroupoid.composeFlipped(dictCategory.Semigroupoid0());\n var splitStrong1 = splitStrong(dictCategory);\n return function (dictStrong) {\n var dimap = Data_Profunctor.dimap(dictStrong.Profunctor0());\n var splitStrong2 = splitStrong1(dictStrong);\n return function (l) {\n return function (r) {\n var split = dimap(identity)(function (a) {\n return new Data_Tuple.Tuple(a, a);\n })(identity1);\n return composeFlipped(split)(splitStrong2(l)(r));\n };\n };\n };\n};\nexport {\n first,\n second,\n splitStrong,\n fanout,\n strongFn\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar fanout = /* #__PURE__ */ Data_Profunctor_Strong.fanout(Control_Category.categoryFn)(Data_Profunctor_Strong.strongFn);\nvar view = function (l) {\n return unwrap(l(identity));\n};\nvar viewOn = function (s) {\n return function (l) {\n return view(l)(s);\n };\n};\nvar use = function (dictMonadState) {\n var gets = Control_Monad_State_Class.gets(dictMonadState);\n return function (p) {\n return gets(function (v) {\n return viewOn(v)(p);\n });\n };\n};\nvar to = function (f) {\n return function (p) {\n var $10 = unwrap(p);\n return function ($11) {\n return $10(f($11));\n };\n };\n};\nvar takeBoth = function (l) {\n return function (r) {\n return to(fanout(view(l))(view(r)));\n };\n};\nvar iview = function (l) {\n return unwrap(l(identity));\n};\nvar iuse = function (dictMonadState) {\n var gets = Control_Monad_State_Class.gets(dictMonadState);\n return function (p) {\n return gets(iview(p));\n };\n};\nvar cloneGetter = function (g) {\n return to(view(g));\n};\nexport {\n viewOn,\n view,\n to,\n takeBoth,\n use,\n iview,\n iuse,\n cloneGetter\n};\nexport {\n Indexed\n} from \"../Data.Lens.Types/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Lens_Internal_Indexed from \"../Data.Lens.Internal.Indexed/index.js\";\nimport * as Data_Lens_Internal_Shop from \"../Data.Lens.Internal.Shop/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Profunctor from \"../Data.Profunctor/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar lift2 = /* #__PURE__ */ Control_Apply.lift2(Control_Apply.applyFn);\nvar un = /* #__PURE__ */ Data_Newtype.un();\nvar withLens = function (l) {\n return function (f) {\n var v = l(new Data_Lens_Internal_Shop.Shop(identity, function (v1) {\n return function (b) {\n return b;\n };\n }));\n return f(v.value0)(v.value1);\n };\n};\nvar withIndexedLens = function (l) {\n return function (f) {\n var v = l(new Data_Lens_Internal_Shop.Shop(identity, function (v1) {\n return function (b) {\n return b;\n };\n }));\n return f(v.value0)(v.value1);\n };\n};\nvar lensStore = function (l) {\n return withLens(l)(lift2(Data_Tuple.Tuple.create));\n};\nvar lens$prime = function (to) {\n return function (dictStrong) {\n var dimap = Data_Profunctor.dimap(dictStrong.Profunctor0());\n var first = Data_Profunctor_Strong.first(dictStrong);\n return function (pab) {\n return dimap(to)(function (v) {\n return v.value1(v.value0);\n })(first(pab));\n };\n };\n};\nvar lens = function (get) {\n return function (set) {\n return function (dictStrong) {\n return lens$prime(function (s) {\n return new Data_Tuple.Tuple(get(s), function (b) {\n return set(s)(b);\n });\n })(dictStrong);\n };\n };\n};\nvar ilens$prime = function (to) {\n return function (dictStrong) {\n var dimap = Data_Profunctor.dimap(dictStrong.Profunctor0());\n var first = Data_Profunctor_Strong.first(dictStrong);\n return function (pab) {\n return dimap(to)(function (v) {\n return v.value1(v.value0);\n })(first(un(Data_Lens_Internal_Indexed.Indexed)(pab)));\n };\n };\n};\nvar ilens = function (get) {\n return function (set) {\n return function (dictStrong) {\n return ilens$prime(function (s) {\n return new Data_Tuple.Tuple(get(s), function (b) {\n return set(s)(b);\n });\n })(dictStrong);\n };\n };\n};\nvar cloneLens = function (l) {\n return function (dictStrong) {\n return withLens(l)(function (x) {\n return function (y) {\n return function (p) {\n return lens(x)(y)(dictStrong)(p);\n };\n };\n });\n };\n};\nvar cloneIndexedLens = function (l) {\n return function (dictStrong) {\n return withIndexedLens(l)(function (x) {\n return function (y) {\n return function (p) {\n return ilens(x)(y)(dictStrong)(p);\n };\n };\n });\n };\n};\nexport {\n lens,\n lens$prime,\n withLens,\n cloneLens,\n ilens,\n ilens$prime,\n withIndexedLens,\n cloneIndexedLens,\n lensStore\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Data_EuclideanRing from \"../Data.EuclideanRing/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Lens_Types from \"../Data.Lens.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar over = function (l) {\n return l;\n};\nvar set = function (l) {\n return function (b) {\n return over(l)(Data_Function[\"const\"](b));\n };\n};\nvar setJust = function (p) {\n var $59 = set(p);\n return function ($60) {\n return $59(Data_Maybe.Just.create($60));\n };\n};\nvar subOver = function (dictRing) {\n var sub = Data_Ring.sub(dictRing);\n return function (p) {\n var $61 = over(p);\n var $62 = Data_Function.flip(sub);\n return function ($63) {\n return $61($62($63));\n };\n };\n};\nvar mulOver = function (dictSemiring) {\n var mul = Data_Semiring.mul(dictSemiring);\n return function (p) {\n var $64 = over(p);\n var $65 = Data_Function.flip(mul);\n return function ($66) {\n return $64($65($66));\n };\n };\n};\nvar modifying = function (dictMonadState) {\n var $$void = Data_Functor[\"void\"]((((dictMonadState.Monad0()).Bind1()).Apply0()).Functor0());\n var modify = Control_Monad_State_Class.modify(dictMonadState);\n return function (p) {\n return function (f) {\n return $$void(modify(over(p)(f)));\n };\n };\n};\nvar mulModifying = function (dictMonadState) {\n var modifying1 = modifying(dictMonadState);\n return function (dictSemiring) {\n var mul = Data_Semiring.mul(dictSemiring);\n return function (p) {\n var $67 = modifying1(p);\n var $68 = Data_Function.flip(mul);\n return function ($69) {\n return $67($68($69));\n };\n };\n };\n};\nvar subModifying = function (dictMonadState) {\n var modifying1 = modifying(dictMonadState);\n return function (dictRing) {\n var sub = Data_Ring.sub(dictRing);\n return function (p) {\n var $70 = modifying1(p);\n var $71 = Data_Function.flip(sub);\n return function ($72) {\n return $70($71($72));\n };\n };\n };\n};\nvar iover = function (l) {\n return function (f) {\n return l(Data_Tuple.uncurry(f));\n };\n};\nvar divOver = function (dictEuclideanRing) {\n var div = Data_EuclideanRing.div(dictEuclideanRing);\n return function (p) {\n var $73 = over(p);\n var $74 = Data_Function.flip(div);\n return function ($75) {\n return $73($74($75));\n };\n };\n};\nvar divModifying = function (dictMonadState) {\n var modifying1 = modifying(dictMonadState);\n return function (dictEuclideanRing) {\n var div = Data_EuclideanRing.div(dictEuclideanRing);\n return function (p) {\n var $76 = modifying1(p);\n var $77 = Data_Function.flip(div);\n return function ($78) {\n return $76($77($78));\n };\n };\n };\n};\nvar disjOver = function (dictHeytingAlgebra) {\n var disj = Data_HeytingAlgebra.disj(dictHeytingAlgebra);\n return function (p) {\n var $79 = over(p);\n var $80 = Data_Function.flip(disj);\n return function ($81) {\n return $79($80($81));\n };\n };\n};\nvar disjModifying = function (dictMonadState) {\n var modifying1 = modifying(dictMonadState);\n return function (dictHeytingAlgebra) {\n var disj = Data_HeytingAlgebra.disj(dictHeytingAlgebra);\n return function (p) {\n var $82 = modifying1(p);\n var $83 = Data_Function.flip(disj);\n return function ($84) {\n return $82($83($84));\n };\n };\n };\n};\nvar conjOver = function (dictHeytingAlgebra) {\n var conj = Data_HeytingAlgebra.conj(dictHeytingAlgebra);\n return function (p) {\n var $85 = over(p);\n var $86 = Data_Function.flip(conj);\n return function ($87) {\n return $85($86($87));\n };\n };\n};\nvar conjModifying = function (dictMonadState) {\n var modifying1 = modifying(dictMonadState);\n return function (dictHeytingAlgebra) {\n var conj = Data_HeytingAlgebra.conj(dictHeytingAlgebra);\n return function (p) {\n var $88 = modifying1(p);\n var $89 = Data_Function.flip(conj);\n return function ($90) {\n return $88($89($90));\n };\n };\n };\n};\nvar assign = function (dictMonadState) {\n var $$void = Data_Functor[\"void\"]((((dictMonadState.Monad0()).Bind1()).Apply0()).Functor0());\n var modify = Control_Monad_State_Class.modify(dictMonadState);\n return function (p) {\n return function (b) {\n return $$void(modify(set(p)(b)));\n };\n };\n};\nvar assignJust = function (dictMonadState) {\n var assign1 = assign(dictMonadState);\n return function (p) {\n var $91 = assign1(p);\n return function ($92) {\n return $91(Data_Maybe.Just.create($92));\n };\n };\n};\nvar appendOver = function (dictSemigroup) {\n var append = Data_Semigroup.append(dictSemigroup);\n return function (p) {\n var $93 = over(p);\n var $94 = Data_Function.flip(append);\n return function ($95) {\n return $93($94($95));\n };\n };\n};\nvar appendModifying = function (dictMonadState) {\n var modifying1 = modifying(dictMonadState);\n return function (dictSemigroup) {\n var append = Data_Semigroup.append(dictSemigroup);\n return function (p) {\n var $96 = modifying1(p);\n var $97 = Data_Function.flip(append);\n return function ($98) {\n return $96($97($98));\n };\n };\n };\n};\nvar addOver = function (dictSemiring) {\n var add = Data_Semiring.add(dictSemiring);\n return function (p) {\n var $99 = over(p);\n return function ($100) {\n return $99(add($100));\n };\n };\n};\nvar addModifying = function (dictMonadState) {\n var modifying1 = modifying(dictMonadState);\n return function (dictSemiring) {\n var add = Data_Semiring.add(dictSemiring);\n return function (p) {\n var $101 = modifying1(p);\n return function ($102) {\n return $101(add($102));\n };\n };\n };\n};\nexport {\n over,\n iover,\n set,\n addOver,\n subOver,\n mulOver,\n divOver,\n disjOver,\n conjOver,\n appendOver,\n setJust,\n assign,\n modifying,\n addModifying,\n mulModifying,\n subModifying,\n divModifying,\n disjModifying,\n conjModifying,\n appendModifying,\n assignJust\n};\nexport {\n Indexed\n} from \"../Data.Lens.Types/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_Cont_Trans from \"../Control.Monad.Cont.Trans/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Control_Monad_List_Trans from \"../Control.Monad.List.Trans/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as Control_Monad_RWS_Trans from \"../Control.Monad.RWS.Trans/index.js\";\nimport * as Control_Monad_Reader_Trans from \"../Control.Monad.Reader.Trans/index.js\";\nimport * as Control_Monad_State_Trans from \"../Control.Monad.State.Trans/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Control_Monad_Writer_Trans from \"../Control.Monad.Writer.Trans/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nvar lift = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_Cont_Trans.monadTransContT);\nvar lift1 = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_Except_Trans.monadTransExceptT);\nvar lift2 = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_List_Trans.monadTransListT);\nvar lift3 = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_Maybe_Trans.monadTransMaybeT);\nvar lift4 = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_Reader_Trans.monadTransReaderT);\nvar lift5 = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_State_Trans.monadTransStateT);\nvar monadAffAff = {\n liftAff: /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn),\n MonadEffect0: function () {\n return Effect_Aff.monadEffectAff;\n }\n};\nvar liftAff = function (dict) {\n return dict.liftAff;\n};\nvar monadAffContT = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var monadEffectContT = Control_Monad_Cont_Trans.monadEffectContT(MonadEffect0);\n return {\n liftAff: (function () {\n var $65 = lift(MonadEffect0.Monad0());\n var $66 = liftAff(dictMonadAff);\n return function ($67) {\n return $65($66($67));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectContT;\n }\n };\n};\nvar monadAffExceptT = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var monadEffectExceptT = Control_Monad_Except_Trans.monadEffectExceptT(MonadEffect0);\n return {\n liftAff: (function () {\n var $68 = lift1(MonadEffect0.Monad0());\n var $69 = liftAff(dictMonadAff);\n return function ($70) {\n return $68($69($70));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectExceptT;\n }\n };\n};\nvar monadAffListT = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var monadEffectListT = Control_Monad_List_Trans.monadEffectListT(MonadEffect0);\n return {\n liftAff: (function () {\n var $71 = lift2(MonadEffect0.Monad0());\n var $72 = liftAff(dictMonadAff);\n return function ($73) {\n return $71($72($73));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectListT;\n }\n };\n};\nvar monadAffMaybe = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var monadEffectMaybe = Control_Monad_Maybe_Trans.monadEffectMaybe(MonadEffect0);\n return {\n liftAff: (function () {\n var $74 = lift3(MonadEffect0.Monad0());\n var $75 = liftAff(dictMonadAff);\n return function ($76) {\n return $74($75($76));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectMaybe;\n }\n };\n};\nvar monadAffRWS = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var Monad0 = MonadEffect0.Monad0();\n var liftAff1 = liftAff(dictMonadAff);\n return function (dictMonoid) {\n var monadEffectRWS = Control_Monad_RWS_Trans.monadEffectRWS(dictMonoid)(MonadEffect0);\n return {\n liftAff: (function () {\n var $77 = Control_Monad_Trans_Class.lift(Control_Monad_RWS_Trans.monadTransRWST(dictMonoid))(Monad0);\n return function ($78) {\n return $77(liftAff1($78));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectRWS;\n }\n };\n };\n};\nvar monadAffReader = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var monadEffectReader = Control_Monad_Reader_Trans.monadEffectReader(MonadEffect0);\n return {\n liftAff: (function () {\n var $79 = lift4(MonadEffect0.Monad0());\n var $80 = liftAff(dictMonadAff);\n return function ($81) {\n return $79($80($81));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectReader;\n }\n };\n};\nvar monadAffState = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var monadEffectState = Control_Monad_State_Trans.monadEffectState(MonadEffect0);\n return {\n liftAff: (function () {\n var $82 = lift5(MonadEffect0.Monad0());\n var $83 = liftAff(dictMonadAff);\n return function ($84) {\n return $82($83($84));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectState;\n }\n };\n};\nvar monadAffWriter = function (dictMonadAff) {\n var MonadEffect0 = dictMonadAff.MonadEffect0();\n var Monad0 = MonadEffect0.Monad0();\n var liftAff1 = liftAff(dictMonadAff);\n return function (dictMonoid) {\n var monadEffectWriter = Control_Monad_Writer_Trans.monadEffectWriter(dictMonoid)(MonadEffect0);\n return {\n liftAff: (function () {\n var $85 = Control_Monad_Trans_Class.lift(Control_Monad_Writer_Trans.monadTransWriterT(dictMonoid))(Monad0);\n return function ($86) {\n return $85(liftAff1($86));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectWriter;\n }\n };\n };\n};\nexport {\n liftAff,\n monadAffAff,\n monadAffContT,\n monadAffExceptT,\n monadAffListT,\n monadAffMaybe,\n monadAffReader,\n monadAffRWS,\n monadAffState,\n monadAffWriter\n};\n", "// Generated by purs version 0.15.14\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar runExists = Unsafe_Coerce.unsafeCoerce;\nvar mkExists = Unsafe_Coerce.unsafeCoerce;\nexport {\n mkExists,\n runExists\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Alt from \"../Control.Alt/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Comonad from \"../Control.Comonad/index.js\";\nimport * as Control_Extend from \"../Control.Extend/index.js\";\nimport * as Control_Plus from \"../Control.Plus/index.js\";\nimport * as Data_Distributive from \"../Data.Distributive/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Exists from \"../Data.Exists/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Functor_Invariant from \"../Data.Functor.Invariant/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup_Foldable from \"../Data.Semigroup.Foldable/index.js\";\nimport * as Data_Semigroup_Traversable from \"../Data.Semigroup.Traversable/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nvar CoyonedaF = /* #__PURE__ */ (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})();\nvar Coyoneda = function (x) {\n return x;\n};\nvar 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};\nvar lowerCoyoneda = function (dictFunctor) {\n return unCoyoneda(Data_Functor.map(dictFunctor));\n};\nvar foldableCoyoneda = function (dictFoldable) {\n var foldr = Data_Foldable.foldr(dictFoldable);\n var foldl = Data_Foldable.foldl(dictFoldable);\n var foldMap = Data_Foldable.foldMap(dictFoldable);\n return {\n foldr: function (f) {\n return function (z) {\n return unCoyoneda(function (k) {\n return foldr(function ($175) {\n return f(k($175));\n })(z);\n });\n };\n },\n foldl: function (f) {\n return function (z) {\n return unCoyoneda(function (k) {\n return foldl(function (x) {\n var $176 = f(x);\n return function ($177) {\n return $176(k($177));\n };\n })(z);\n });\n };\n },\n foldMap: function (dictMonoid) {\n var foldMap1 = foldMap(dictMonoid);\n return function (f) {\n return unCoyoneda(function (k) {\n return foldMap1(function ($178) {\n return f(k($178));\n });\n });\n };\n }\n };\n};\nvar foldable1Coyoneda = function (dictFoldable1) {\n var foldMap1 = Data_Semigroup_Foldable.foldMap1(dictFoldable1);\n var foldableCoyoneda1 = foldableCoyoneda(dictFoldable1.Foldable0());\n return {\n foldMap1: function (dictSemigroup) {\n var foldMap11 = foldMap1(dictSemigroup);\n return function (f) {\n return unCoyoneda(function (k) {\n return foldMap11(function ($179) {\n return f(k($179));\n });\n });\n };\n },\n foldr1: Data_Semigroup_Foldable.foldr1Default(foldable1Coyoneda(dictFoldable1)),\n foldl1: Data_Semigroup_Foldable.foldl1Default(foldable1Coyoneda(dictFoldable1)),\n Foldable0: function () {\n return foldableCoyoneda1;\n }\n };\n};\nvar eqCoyoneda = function (dictFunctor) {\n var lowerCoyoneda1 = lowerCoyoneda(dictFunctor);\n return function (dictEq1) {\n var eq1 = Data_Eq.eq1(dictEq1);\n return function (dictEq) {\n var eq11 = eq1(dictEq);\n return {\n eq: function (x) {\n return function (y) {\n return eq11(lowerCoyoneda1(x))(lowerCoyoneda1(y));\n };\n }\n };\n };\n };\n};\nvar ordCoyoneda = function (dictFunctor) {\n var lowerCoyoneda1 = lowerCoyoneda(dictFunctor);\n var eqCoyoneda1 = eqCoyoneda(dictFunctor);\n return function (dictOrd1) {\n var compare1 = Data_Ord.compare1(dictOrd1);\n var eqCoyoneda2 = eqCoyoneda1(dictOrd1.Eq10());\n return function (dictOrd) {\n var compare11 = compare1(dictOrd);\n var eqCoyoneda3 = eqCoyoneda2(dictOrd.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n return compare11(lowerCoyoneda1(x))(lowerCoyoneda1(y));\n };\n },\n Eq0: function () {\n return eqCoyoneda3;\n }\n };\n };\n };\n};\nvar eq1Coyoneda = function (dictFunctor) {\n var eqCoyoneda1 = eqCoyoneda(dictFunctor);\n return function (dictEq1) {\n var eqCoyoneda2 = eqCoyoneda1(dictEq1);\n return {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqCoyoneda2(dictEq));\n }\n };\n };\n};\nvar ord1Coyoneda = function (dictFunctor) {\n var ordCoyoneda1 = ordCoyoneda(dictFunctor);\n var eq1Coyoneda1 = eq1Coyoneda(dictFunctor);\n return function (dictOrd1) {\n var ordCoyoneda2 = ordCoyoneda1(dictOrd1);\n var eq1Coyoneda2 = eq1Coyoneda1(dictOrd1.Eq10());\n return {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordCoyoneda2(dictOrd));\n },\n Eq10: function () {\n return eq1Coyoneda2;\n }\n };\n };\n};\nvar coyoneda = function (k) {\n return function (fi) {\n return Data_Exists.mkExists(new CoyonedaF(k, fi));\n };\n};\nvar functorCoyoneda = {\n map: function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return coyoneda(function ($180) {\n return f(v1.value0($180));\n })(v1.value1);\n })(v);\n };\n }\n};\nvar invatiantCoyoneda = {\n imap: /* #__PURE__ */ Data_Functor_Invariant.imapF(functorCoyoneda)\n};\nvar hoistCoyoneda = function (nat) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return coyoneda(v1.value0)(nat(v1.value1));\n })(v);\n };\n};\nvar liftCoyoneda = /* #__PURE__ */ coyoneda(/* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn));\nvar distributiveCoyoneda = function (dictDistributive) {\n var collect = Data_Distributive.collect(dictDistributive);\n var lowerCoyoneda1 = lowerCoyoneda(dictDistributive.Functor0());\n return {\n collect: function (dictFunctor) {\n var collect1 = collect(dictFunctor);\n return function (f) {\n var $181 = collect1(function ($183) {\n return lowerCoyoneda1(f($183));\n });\n return function ($182) {\n return liftCoyoneda($181($182));\n };\n };\n },\n distribute: function (dictFunctor) {\n var $184 = collect(dictFunctor)(lowerCoyoneda1);\n return function ($185) {\n return liftCoyoneda($184($185));\n };\n },\n Functor0: function () {\n return functorCoyoneda;\n }\n };\n};\nvar extendCoyoneda = function (dictExtend) {\n var extend = Control_Extend.extend(dictExtend);\n return {\n extend: function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return liftCoyoneda(extend((function () {\n var $186 = coyoneda(v1.value0);\n return function ($187) {\n return f($186($187));\n };\n })())(v1.value1));\n })(v);\n };\n },\n Functor0: function () {\n return functorCoyoneda;\n }\n };\n};\nvar monadTransCoyoneda = {\n lift: function (dictMonad) {\n return liftCoyoneda;\n }\n};\nvar traversableCoyoneda = function (dictTraversable) {\n var traverse = Data_Traversable.traverse(dictTraversable);\n var foldableCoyoneda1 = foldableCoyoneda(dictTraversable.Foldable1());\n return {\n traverse: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse1 = traverse(dictApplicative);\n return function (f) {\n return unCoyoneda(function (k) {\n var $188 = map(liftCoyoneda);\n var $189 = traverse1(function ($191) {\n return f(k($191));\n });\n return function ($190) {\n return $188($189($190));\n };\n });\n };\n },\n sequence: function (dictApplicative) {\n var map = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse1 = traverse(dictApplicative);\n return unCoyoneda(function (k) {\n var $192 = map(liftCoyoneda);\n var $193 = traverse1(k);\n return function ($194) {\n return $192($193($194));\n };\n });\n },\n Functor0: function () {\n return functorCoyoneda;\n },\n Foldable1: function () {\n return foldableCoyoneda1;\n }\n };\n};\nvar traversable1Coyoneda = function (dictTraversable1) {\n var traverse1 = Data_Semigroup_Traversable.traverse1(dictTraversable1);\n var sequence1 = Data_Semigroup_Traversable.sequence1(dictTraversable1);\n var Traversable1 = dictTraversable1.Traversable1();\n var map = Data_Functor.map(Traversable1.Functor0());\n var foldable1Coyoneda1 = foldable1Coyoneda(dictTraversable1.Foldable10());\n var traversableCoyoneda1 = traversableCoyoneda(Traversable1);\n return {\n traverse1: function (dictApply) {\n var map1 = Data_Functor.map(dictApply.Functor0());\n var traverse11 = traverse1(dictApply);\n return function (f) {\n return unCoyoneda(function (k) {\n var $195 = map1(liftCoyoneda);\n var $196 = traverse11(function ($198) {\n return f(k($198));\n });\n return function ($197) {\n return $195($196($197));\n };\n });\n };\n },\n sequence1: function (dictApply) {\n var map1 = Data_Functor.map(dictApply.Functor0());\n var sequence11 = sequence1(dictApply);\n return unCoyoneda(function (k) {\n var $199 = map1(liftCoyoneda);\n var $200 = map(k);\n return function ($201) {\n return $199(sequence11($200($201)));\n };\n });\n },\n Foldable10: function () {\n return foldable1Coyoneda1;\n },\n Traversable1: function () {\n return traversableCoyoneda1;\n }\n };\n};\nvar comonadCoyoneda = function (dictComonad) {\n var extract = Control_Comonad.extract(dictComonad);\n var extendCoyoneda1 = extendCoyoneda(dictComonad.Extend0());\n return {\n extract: function (v) {\n return Data_Exists.runExists(function (v1) {\n return v1.value0(extract(v1.value1));\n })(v);\n },\n Extend0: function () {\n return extendCoyoneda1;\n }\n };\n};\nvar applyCoyoneda = function (dictApply) {\n var apply = Control_Apply.apply(dictApply);\n var lowerCoyoneda1 = lowerCoyoneda(dictApply.Functor0());\n return {\n apply: function (f) {\n return function (g) {\n return liftCoyoneda(apply(lowerCoyoneda1(f))(lowerCoyoneda1(g)));\n };\n },\n Functor0: function () {\n return functorCoyoneda;\n }\n };\n};\nvar bindCoyoneda = function (dictBind) {\n var bindFlipped = Control_Bind.bindFlipped(dictBind);\n var Apply0 = dictBind.Apply0();\n var lowerCoyoneda1 = lowerCoyoneda(Apply0.Functor0());\n var applyCoyoneda1 = applyCoyoneda(Apply0);\n return {\n bind: function (v) {\n return function (f) {\n return liftCoyoneda(Data_Exists.runExists(function (v1) {\n return bindFlipped(function ($202) {\n return lowerCoyoneda1(f(v1.value0($202)));\n })(v1.value1);\n })(v));\n };\n },\n Apply0: function () {\n return applyCoyoneda1;\n }\n };\n};\nvar applicativeCoyoneda = function (dictApplicative) {\n var applyCoyoneda1 = applyCoyoneda(dictApplicative.Apply0());\n return {\n pure: (function () {\n var $203 = Control_Applicative.pure(dictApplicative);\n return function ($204) {\n return liftCoyoneda($203($204));\n };\n })(),\n Apply0: function () {\n return applyCoyoneda1;\n }\n };\n};\nvar monadCoyoneda = function (dictMonad) {\n var applicativeCoyoneda1 = applicativeCoyoneda(dictMonad.Applicative0());\n var bindCoyoneda1 = bindCoyoneda(dictMonad.Bind1());\n return {\n Applicative0: function () {\n return applicativeCoyoneda1;\n },\n Bind1: function () {\n return bindCoyoneda1;\n }\n };\n};\nvar altCoyoneda = function (dictAlt) {\n var alt = Control_Alt.alt(dictAlt);\n var lowerCoyoneda1 = lowerCoyoneda(dictAlt.Functor0());\n return {\n alt: function (x) {\n return function (y) {\n return liftCoyoneda(alt(lowerCoyoneda1(x))(lowerCoyoneda1(y)));\n };\n },\n Functor0: function () {\n return functorCoyoneda;\n }\n };\n};\nvar plusCoyoneda = function (dictPlus) {\n var altCoyoneda1 = altCoyoneda(dictPlus.Alt0());\n return {\n empty: liftCoyoneda(Control_Plus.empty(dictPlus)),\n Alt0: function () {\n return altCoyoneda1;\n }\n };\n};\nvar alternativeCoyoneda = function (dictAlternative) {\n var applicativeCoyoneda1 = applicativeCoyoneda(dictAlternative.Applicative0());\n var plusCoyoneda1 = plusCoyoneda(dictAlternative.Plus1());\n return {\n Applicative0: function () {\n return applicativeCoyoneda1;\n },\n Plus1: function () {\n return plusCoyoneda1;\n }\n };\n};\nvar monadPlusCoyoneda = function (dictMonadPlus) {\n var monadCoyoneda1 = monadCoyoneda(dictMonadPlus.Monad0());\n var alternativeCoyoneda1 = alternativeCoyoneda(dictMonadPlus.Alternative1());\n return {\n Monad0: function () {\n return monadCoyoneda1;\n },\n Alternative1: function () {\n return alternativeCoyoneda1;\n }\n };\n};\nexport {\n Coyoneda,\n coyoneda,\n unCoyoneda,\n liftCoyoneda,\n lowerCoyoneda,\n hoistCoyoneda,\n eqCoyoneda,\n eq1Coyoneda,\n ordCoyoneda,\n ord1Coyoneda,\n functorCoyoneda,\n invatiantCoyoneda,\n applyCoyoneda,\n applicativeCoyoneda,\n altCoyoneda,\n plusCoyoneda,\n alternativeCoyoneda,\n bindCoyoneda,\n monadCoyoneda,\n monadTransCoyoneda,\n monadPlusCoyoneda,\n extendCoyoneda,\n comonadCoyoneda,\n foldableCoyoneda,\n traversableCoyoneda,\n foldable1Coyoneda,\n traversable1Coyoneda,\n distributiveCoyoneda\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Ring from \"../Data.Ring/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar abs = /* #__PURE__ */ Data_Ord.abs(Data_Ord.ordInt)(Data_Ring.ringInt);\nvar Leaf = /* #__PURE__ */ (function () {\n function Leaf() {\n\n };\n Leaf.value = new Leaf();\n return Leaf;\n})();\nvar Node = /* #__PURE__ */ (function () {\n function Node(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 Node.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 Node(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return Node;\n})();\nvar IterLeaf = /* #__PURE__ */ (function () {\n function IterLeaf() {\n\n };\n IterLeaf.value = new IterLeaf();\n return IterLeaf;\n})();\nvar IterEmit = /* #__PURE__ */ (function () {\n function IterEmit(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n IterEmit.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new IterEmit(value0, value1, value2);\n };\n };\n };\n return IterEmit;\n})();\nvar IterNode = /* #__PURE__ */ (function () {\n function IterNode(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n IterNode.create = function (value0) {\n return function (value1) {\n return new IterNode(value0, value1);\n };\n };\n return IterNode;\n})();\nvar IterDone = /* #__PURE__ */ (function () {\n function IterDone() {\n\n };\n IterDone.value = new IterDone();\n return IterDone;\n})();\nvar IterNext = /* #__PURE__ */ (function () {\n function IterNext(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n IterNext.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new IterNext(value0, value1, value2);\n };\n };\n };\n return IterNext;\n})();\nvar Split = /* #__PURE__ */ (function () {\n function Split(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n Split.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new Split(value0, value1, value2);\n };\n };\n };\n return Split;\n})();\nvar SplitLast = /* #__PURE__ */ (function () {\n function SplitLast(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n SplitLast.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new SplitLast(value0, value1, value2);\n };\n };\n };\n return SplitLast;\n})();\nvar unsafeNode = function (k, v, l, r) {\n if (l instanceof Leaf) {\n if (r instanceof Leaf) {\n return new Node(1, 1, k, v, l, r);\n };\n if (r instanceof Node) {\n return new Node(1 + r.value0 | 0, 1 + r.value1 | 0, k, v, l, r);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 680, column 5 - line 684, column 39): \" + [ r.constructor.name ]);\n };\n if (l instanceof Node) {\n if (r instanceof Leaf) {\n return new Node(1 + l.value0 | 0, 1 + l.value1 | 0, k, v, l, r);\n };\n if (r instanceof Node) {\n return new Node(1 + (function () {\n var $277 = l.value0 > r.value0;\n if ($277) {\n return l.value0;\n };\n return r.value0;\n })() | 0, (1 + l.value1 | 0) + r.value1 | 0, k, v, l, r);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 686, column 5 - line 690, column 68): \" + [ r.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 678, column 32 - line 690, column 68): \" + [ l.constructor.name ]);\n};\nvar toMapIter = /* #__PURE__ */ (function () {\n return Data_Function.flip(IterNode.create)(IterLeaf.value);\n})();\nvar stepWith = function (f) {\n return function (next) {\n return function (done) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof IterLeaf) {\n $tco_done = true;\n return done(Data_Unit.unit);\n };\n if (v instanceof IterEmit) {\n $tco_done = true;\n return next(v.value0, v.value1, v.value2);\n };\n if (v instanceof IterNode) {\n $copy_v = f(v.value1)(v.value0);\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 918, column 8 - line 924, column 20): \" + [ 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};\nvar size = function (v) {\n if (v instanceof Leaf) {\n return 0;\n };\n if (v instanceof Node) {\n return v.value1;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 616, column 8 - line 618, column 24): \" + [ v.constructor.name ]);\n};\nvar singleton = function (k) {\n return function (v) {\n return new Node(1, 1, k, v, Leaf.value, Leaf.value);\n };\n};\nvar unsafeBalancedNode = /* #__PURE__ */ (function () {\n var height = function (v) {\n if (v instanceof Leaf) {\n return 0;\n };\n if (v instanceof Node) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 735, column 12 - line 737, column 26): \" + [ v.constructor.name ]);\n };\n var rotateLeft = function (k, v, l, rk, rv, rl, rr) {\n if (rl instanceof Node && rl.value0 > height(rr)) {\n return unsafeNode(rl.value2, rl.value3, unsafeNode(k, v, l, rl.value4), unsafeNode(rk, rv, rl.value5, rr));\n };\n return unsafeNode(rk, rv, unsafeNode(k, v, l, rl), rr);\n };\n var rotateRight = function (k, v, lk, lv, ll, lr, r) {\n if (lr instanceof Node && height(ll) <= lr.value0) {\n return unsafeNode(lr.value2, lr.value3, unsafeNode(lk, lv, ll, lr.value4), unsafeNode(k, v, lr.value5, r));\n };\n return unsafeNode(lk, lv, ll, unsafeNode(k, v, lr, r));\n };\n return function (k, v, l, r) {\n if (l instanceof Leaf) {\n if (r instanceof Leaf) {\n return singleton(k)(v);\n };\n if (r instanceof Node && r.value0 > 1) {\n return rotateLeft(k, v, l, r.value2, r.value3, r.value4, r.value5);\n };\n return unsafeNode(k, v, l, r);\n };\n if (l instanceof Node) {\n if (r instanceof Node) {\n if (r.value0 > (l.value0 + 1 | 0)) {\n return rotateLeft(k, v, l, r.value2, r.value3, r.value4, r.value5);\n };\n if (l.value0 > (r.value0 + 1 | 0)) {\n return rotateRight(k, v, l.value2, l.value3, l.value4, l.value5, r);\n };\n };\n if (r instanceof Leaf && l.value0 > 1) {\n return rotateRight(k, v, l.value2, l.value3, l.value4, l.value5, r);\n };\n return unsafeNode(k, v, l, r);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 695, column 40 - line 716, column 34): \" + [ l.constructor.name ]);\n };\n})();\nvar $lazy_unsafeSplit = /* #__PURE__ */ $runtime_lazy(\"unsafeSplit\", \"Data.Map.Internal\", function () {\n return function (comp, k, m) {\n if (m instanceof Leaf) {\n return new Split(Data_Maybe.Nothing.value, Leaf.value, Leaf.value);\n };\n if (m instanceof Node) {\n var v = comp(k)(m.value2);\n if (v instanceof Data_Ordering.LT) {\n var v1 = $lazy_unsafeSplit(771)(comp, k, m.value4);\n return new Split(v1.value0, v1.value1, unsafeBalancedNode(m.value2, m.value3, v1.value2, m.value5));\n };\n if (v instanceof Data_Ordering.GT) {\n var v1 = $lazy_unsafeSplit(774)(comp, k, m.value5);\n return new Split(v1.value0, unsafeBalancedNode(m.value2, m.value3, m.value4, v1.value1), v1.value2);\n };\n if (v instanceof Data_Ordering.EQ) {\n return new Split(new Data_Maybe.Just(m.value3), m.value4, m.value5);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 769, column 5 - line 777, column 30): \" + [ v.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 765, column 34 - line 777, column 30): \" + [ m.constructor.name ]);\n };\n});\nvar unsafeSplit = /* #__PURE__ */ $lazy_unsafeSplit(764);\nvar $lazy_unsafeSplitLast = /* #__PURE__ */ $runtime_lazy(\"unsafeSplitLast\", \"Data.Map.Internal\", function () {\n return function (k, v, l, r) {\n if (r instanceof Leaf) {\n return new SplitLast(k, v, l);\n };\n if (r instanceof Node) {\n var v1 = $lazy_unsafeSplitLast(757)(r.value2, r.value3, r.value4, r.value5);\n return new SplitLast(v1.value0, v1.value1, unsafeBalancedNode(k, v, l, v1.value2));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 754, column 37 - line 758, column 57): \" + [ r.constructor.name ]);\n };\n});\nvar unsafeSplitLast = /* #__PURE__ */ $lazy_unsafeSplitLast(753);\nvar unsafeJoinNodes = function (v, v1) {\n if (v instanceof Leaf) {\n return v1;\n };\n if (v instanceof Node) {\n var v2 = unsafeSplitLast(v.value2, v.value3, v.value4, v.value5);\n return unsafeBalancedNode(v2.value0, v2.value1, v2.value2, v1);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 742, column 25 - line 746, column 38): \" + [ v.constructor.name, v1.constructor.name ]);\n};\nvar $lazy_unsafeDifference = /* #__PURE__ */ $runtime_lazy(\"unsafeDifference\", \"Data.Map.Internal\", function () {\n return function (comp, l, r) {\n if (l instanceof Leaf) {\n return Leaf.value;\n };\n if (r instanceof Leaf) {\n return l;\n };\n if (r instanceof Node) {\n var v = unsafeSplit(comp, r.value2, l);\n var l$prime = $lazy_unsafeDifference(819)(comp, v.value1, r.value4);\n var r$prime = $lazy_unsafeDifference(820)(comp, v.value2, r.value5);\n return unsafeJoinNodes(l$prime, r$prime);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 814, column 39 - line 821, column 33): \" + [ l.constructor.name, r.constructor.name ]);\n };\n});\nvar unsafeDifference = /* #__PURE__ */ $lazy_unsafeDifference(813);\nvar $lazy_unsafeIntersectionWith = /* #__PURE__ */ $runtime_lazy(\"unsafeIntersectionWith\", \"Data.Map.Internal\", function () {\n return function (comp, app, l, r) {\n if (l instanceof Leaf) {\n return Leaf.value;\n };\n if (r instanceof Leaf) {\n return Leaf.value;\n };\n if (r instanceof Node) {\n var v = unsafeSplit(comp, r.value2, l);\n var l$prime = $lazy_unsafeIntersectionWith(803)(comp, app, v.value1, r.value4);\n var r$prime = $lazy_unsafeIntersectionWith(804)(comp, app, v.value2, r.value5);\n if (v.value0 instanceof Data_Maybe.Just) {\n return unsafeBalancedNode(r.value2, app(v.value0.value0)(r.value3), l$prime, r$prime);\n };\n if (v.value0 instanceof Data_Maybe.Nothing) {\n return unsafeJoinNodes(l$prime, r$prime);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 805, column 5 - line 809, column 37): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 798, column 49 - line 809, column 37): \" + [ l.constructor.name, r.constructor.name ]);\n };\n});\nvar unsafeIntersectionWith = /* #__PURE__ */ $lazy_unsafeIntersectionWith(797);\nvar $lazy_unsafeUnionWith = /* #__PURE__ */ $runtime_lazy(\"unsafeUnionWith\", \"Data.Map.Internal\", function () {\n return function (comp, app, l, r) {\n if (l instanceof Leaf) {\n return r;\n };\n if (r instanceof Leaf) {\n return l;\n };\n if (r instanceof Node) {\n var v = unsafeSplit(comp, r.value2, l);\n var l$prime = $lazy_unsafeUnionWith(787)(comp, app, v.value1, r.value4);\n var r$prime = $lazy_unsafeUnionWith(788)(comp, app, v.value2, r.value5);\n if (v.value0 instanceof Data_Maybe.Just) {\n return unsafeBalancedNode(r.value2, app(v.value0.value0)(r.value3), l$prime, r$prime);\n };\n if (v.value0 instanceof Data_Maybe.Nothing) {\n return unsafeBalancedNode(r.value2, r.value3, l$prime, r$prime);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 789, column 5 - line 793, column 46): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 782, column 42 - line 793, column 46): \" + [ l.constructor.name, r.constructor.name ]);\n };\n});\nvar unsafeUnionWith = /* #__PURE__ */ $lazy_unsafeUnionWith(781);\nvar unionWith = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (app) {\n return function (m1) {\n return function (m2) {\n return unsafeUnionWith(compare, app, m1, m2);\n };\n };\n };\n};\nvar union = function (dictOrd) {\n return unionWith(dictOrd)(Data_Function[\"const\"]);\n};\nvar update = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (f) {\n return function (k) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Leaf.value;\n };\n if (v instanceof Node) {\n var v1 = compare(k)(v.value2);\n if (v1 instanceof Data_Ordering.LT) {\n return unsafeBalancedNode(v.value2, v.value3, go(v.value4), v.value5);\n };\n if (v1 instanceof Data_Ordering.GT) {\n return unsafeBalancedNode(v.value2, v.value3, v.value4, go(v.value5));\n };\n if (v1 instanceof Data_Ordering.EQ) {\n var v2 = f(v.value3);\n if (v2 instanceof Data_Maybe.Nothing) {\n return unsafeJoinNodes(v.value4, v.value5);\n };\n if (v2 instanceof Data_Maybe.Just) {\n return new Node(v.value0, v.value1, v.value2, v2.value0, v.value4, v.value5);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 529, column 11 - line 533, column 38): \" + [ v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 525, column 7 - line 533, column 38): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 522, column 8 - line 533, column 38): \" + [ v.constructor.name ]);\n };\n return go;\n };\n };\n};\nvar showTree = function (dictShow) {\n var show1 = Data_Show.show(dictShow);\n return function (dictShow1) {\n var show2 = Data_Show.show(dictShow1);\n var go = function (ind) {\n return function (v) {\n if (v instanceof Leaf) {\n return ind + \"Leaf\";\n };\n if (v instanceof Node) {\n return ind + (\"[\" + (show(v.value0) + (\"] \" + (show1(v.value2) + (\" => \" + (show2(v.value3) + \"\\x0a\")))))) + (go(ind + \" \")(v.value4) + \"\\x0a\" + go(ind + \" \")(v.value5));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 231, column 12 - line 236, column 34): \" + [ v.constructor.name ]);\n };\n };\n return go(\"\");\n };\n};\nvar semigroupMap = function () {\n return function (dictOrd) {\n var unionWith1 = unionWith(dictOrd);\n return function (dictSemigroup) {\n return {\n append: unionWith1(Data_Semigroup.append(dictSemigroup))\n };\n };\n };\n};\nvar semigroupMap1 = /* #__PURE__ */ semigroupMap();\nvar pop = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\n return function (m) {\n var v = unsafeSplit(compare, k, m);\n return map(function (a) {\n return new Data_Tuple.Tuple(a, unsafeJoinNodes(v.value1, v.value2));\n })(v.value0);\n };\n };\n};\nvar member = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\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 false;\n };\n if (v instanceof Node) {\n var v1 = compare(k)(v.value2);\n if (v1 instanceof Data_Ordering.LT) {\n $copy_v = v.value4;\n return;\n };\n if (v1 instanceof Data_Ordering.GT) {\n $copy_v = v.value5;\n return;\n };\n if (v1 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return true;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 457, column 7 - line 460, column 19): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 454, column 8 - line 460, column 19): \" + [ 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};\nvar mapMaybeWithKey = function (dictOrd) {\n return function (f) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Leaf.value;\n };\n if (v instanceof Node) {\n var v2 = f(v.value2)(v.value3);\n if (v2 instanceof Data_Maybe.Just) {\n return unsafeBalancedNode(v.value2, v2.value0, go(v.value4), go(v.value5));\n };\n if (v2 instanceof Data_Maybe.Nothing) {\n return unsafeJoinNodes(go(v.value4), go(v.value5));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 659, column 7 - line 663, column 47): \" + [ v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 656, column 8 - line 663, column 47): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar mapMaybe = function (dictOrd) {\n var $763 = mapMaybeWithKey(dictOrd);\n return function ($764) {\n return $763(Data_Function[\"const\"]($764));\n };\n};\nvar lookupLE = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Node) {\n var v1 = compare(k)(v.value2);\n if (v1 instanceof Data_Ordering.LT) {\n return go(v.value4);\n };\n if (v1 instanceof Data_Ordering.GT) {\n var v2 = go(v.value5);\n if (v2 instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just({\n key: v.value2,\n value: v.value3\n });\n };\n return v2;\n };\n if (v1 instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just({\n key: v.value2,\n value: v.value3\n });\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 293, column 7 - line 300, column 38): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 290, column 8 - line 300, column 38): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar lookupGE = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Node) {\n var v1 = compare(k)(v.value2);\n if (v1 instanceof Data_Ordering.LT) {\n var v2 = go(v.value4);\n if (v2 instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just({\n key: v.value2,\n value: v.value3\n });\n };\n return v2;\n };\n if (v1 instanceof Data_Ordering.GT) {\n return go(v.value5);\n };\n if (v1 instanceof Data_Ordering.EQ) {\n return new Data_Maybe.Just({\n key: v.value2,\n value: v.value3\n });\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 325, column 7 - line 331, column 42): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 322, column 8 - line 331, column 42): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar lookup = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\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 Node) {\n var v1 = compare(k)(v.value2);\n if (v1 instanceof Data_Ordering.LT) {\n $copy_v = v.value4;\n return;\n };\n if (v1 instanceof Data_Ordering.GT) {\n $copy_v = v.value5;\n return;\n };\n if (v1 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value3);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 281, column 7 - line 284, column 22): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 278, column 8 - line 284, 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};\nvar iterMapU = function (iter) {\n return function (v) {\n if (v instanceof Leaf) {\n return iter;\n };\n if (v instanceof Node) {\n if (v.value4 instanceof Leaf) {\n if (v.value5 instanceof Leaf) {\n return new IterEmit(v.value2, v.value3, iter);\n };\n return new IterEmit(v.value2, v.value3, new IterNode(v.value5, iter));\n };\n if (v.value5 instanceof Leaf) {\n return new IterEmit(v.value2, v.value3, new IterNode(v.value4, iter));\n };\n return new IterEmit(v.value2, v.value3, new IterNode(v.value4, new IterNode(v.value5, iter)));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 951, column 17 - line 966, column 56): \" + [ v.constructor.name ]);\n };\n};\nvar stepUnorderedCps = /* #__PURE__ */ stepWith(iterMapU);\nvar stepUnfoldrUnordered = /* #__PURE__ */ (function () {\n var step = function (k, v, next) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(new Data_Tuple.Tuple(k, v), next));\n };\n return stepUnorderedCps(step)(function (v) {\n return Data_Maybe.Nothing.value;\n });\n})();\nvar toUnfoldableUnordered = function (dictUnfoldable) {\n var $765 = Data_Unfoldable.unfoldr(dictUnfoldable)(stepUnfoldrUnordered);\n return function ($766) {\n return $765(toMapIter($766));\n };\n};\nvar stepUnordered = /* #__PURE__ */ (function () {\n return stepUnorderedCps(function (k, v, next) {\n return new IterNext(k, v, next);\n })(Data_Function[\"const\"](IterDone.value));\n})();\nvar iterMapR = /* #__PURE__ */ (function () {\n var go = function ($copy_iter) {\n return function ($copy_v) {\n var $tco_var_iter = $copy_iter;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(iter, v) {\n if (v instanceof Leaf) {\n $tco_done = true;\n return iter;\n };\n if (v instanceof Node) {\n if (v.value5 instanceof Leaf) {\n $tco_var_iter = new IterEmit(v.value2, v.value3, iter);\n $copy_v = v.value4;\n return;\n };\n $tco_var_iter = new IterEmit(v.value2, v.value3, new IterNode(v.value4, iter));\n $copy_v = v.value5;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 941, column 13 - line 948, column 48): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_iter, $copy_v);\n };\n return $tco_result;\n };\n };\n return go;\n})();\nvar stepDescCps = /* #__PURE__ */ stepWith(iterMapR);\nvar stepDesc = /* #__PURE__ */ (function () {\n return stepDescCps(function (k, v, next) {\n return new IterNext(k, v, next);\n })(Data_Function[\"const\"](IterDone.value));\n})();\nvar iterMapL = /* #__PURE__ */ (function () {\n var go = function ($copy_iter) {\n return function ($copy_v) {\n var $tco_var_iter = $copy_iter;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(iter, v) {\n if (v instanceof Leaf) {\n $tco_done = true;\n return iter;\n };\n if (v instanceof Node) {\n if (v.value5 instanceof Leaf) {\n $tco_var_iter = new IterEmit(v.value2, v.value3, iter);\n $copy_v = v.value4;\n return;\n };\n $tco_var_iter = new IterEmit(v.value2, v.value3, new IterNode(v.value5, iter));\n $copy_v = v.value4;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 929, column 13 - line 936, column 48): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_iter, $copy_v);\n };\n return $tco_result;\n };\n };\n return go;\n})();\nvar stepAscCps = /* #__PURE__ */ stepWith(iterMapL);\nvar stepAsc = /* #__PURE__ */ (function () {\n return stepAscCps(function (k, v, next) {\n return new IterNext(k, v, next);\n })(Data_Function[\"const\"](IterDone.value));\n})();\nvar eqMapIter = function (dictEq) {\n var eq1 = Data_Eq.eq(dictEq);\n return function (dictEq1) {\n var eq2 = Data_Eq.eq(dictEq1);\n return {\n eq: (function () {\n var go = function ($copy_a) {\n return function ($copy_b) {\n var $tco_var_a = $copy_a;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(a, b) {\n var v = stepAsc(a);\n if (v instanceof IterNext) {\n var v2 = stepAsc(b);\n if (v2 instanceof IterNext && (eq1(v.value0)(v2.value0) && eq2(v.value1)(v2.value1))) {\n $tco_var_a = v.value2;\n $copy_b = v2.value2;\n return;\n };\n $tco_done = true;\n return false;\n };\n if (v instanceof IterDone) {\n $tco_done = true;\n return true;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 837, column 14 - line 846, column 13): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_a, $copy_b);\n };\n return $tco_result;\n };\n };\n return go;\n })()\n };\n };\n};\nvar ordMapIter = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n var eqMapIter1 = eqMapIter(dictOrd.Eq0());\n return function (dictOrd1) {\n var compare1 = Data_Ord.compare(dictOrd1);\n var eqMapIter2 = eqMapIter1(dictOrd1.Eq0());\n return {\n compare: (function () {\n var go = function ($copy_a) {\n return function ($copy_b) {\n var $tco_var_a = $copy_a;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(a, b) {\n var v = stepAsc(b);\n var v1 = stepAsc(a);\n if (v1 instanceof IterNext && v instanceof IterNext) {\n var v3 = compare(v1.value0)(v.value0);\n if (v3 instanceof Data_Ordering.EQ) {\n var v4 = compare1(v1.value1)(v.value1);\n if (v4 instanceof Data_Ordering.EQ) {\n $tco_var_a = v1.value2;\n $copy_b = v.value2;\n return;\n };\n $tco_done = true;\n return v4;\n };\n $tco_done = true;\n return v3;\n };\n if (v1 instanceof IterDone) {\n if (v instanceof IterDone) {\n $tco_done = true;\n return Data_Ordering.EQ.value;\n };\n $tco_done = true;\n return Data_Ordering.LT.value;\n };\n if (v instanceof IterDone) {\n $tco_done = true;\n return Data_Ordering.GT.value;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 851, column 14 - line 869, column 11): \" + [ v1.constructor.name, v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_a, $copy_b);\n };\n return $tco_result;\n };\n };\n return go;\n })(),\n Eq0: function () {\n return eqMapIter2;\n }\n };\n };\n};\nvar stepUnfoldr = /* #__PURE__ */ (function () {\n var step = function (k, v, next) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(new Data_Tuple.Tuple(k, v), next));\n };\n return stepAscCps(step)(function (v) {\n return Data_Maybe.Nothing.value;\n });\n})();\nvar toUnfoldable = function (dictUnfoldable) {\n var $767 = Data_Unfoldable.unfoldr(dictUnfoldable)(stepUnfoldr);\n return function ($768) {\n return $767(toMapIter($768));\n };\n};\nvar toUnfoldable1 = /* #__PURE__ */ toUnfoldable(Data_Unfoldable.unfoldableArray);\nvar showMap = function (dictShow) {\n var showTuple = Data_Tuple.showTuple(dictShow);\n return function (dictShow1) {\n var show1 = Data_Show.show(Data_Show.showArray(showTuple(dictShow1)));\n return {\n show: function (as) {\n return \"(fromFoldable \" + (show1(toUnfoldable1(as)) + \")\");\n }\n };\n };\n};\nvar isSubmap = function (dictOrd) {\n var lookup1 = lookup(dictOrd);\n return function (dictEq) {\n var eq1 = Data_Eq.eq(dictEq);\n var go = function (m1) {\n return function (m2) {\n if (m1 instanceof Leaf) {\n return true;\n };\n if (m1 instanceof Node) {\n var v1 = lookup1(m1.value2)(m2);\n if (v1 instanceof Data_Maybe.Nothing) {\n return false;\n };\n if (v1 instanceof Data_Maybe.Just) {\n return eq1(m1.value3)(v1.value0) && (go(m1.value4)(m2) && go(m1.value5)(m2));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 609, column 7 - line 612, column 40): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 606, column 14 - line 612, column 40): \" + [ m1.constructor.name ]);\n };\n };\n return go;\n };\n};\nvar isEmpty = function (v) {\n if (v instanceof Leaf) {\n return true;\n };\n return false;\n};\nvar intersectionWith = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (app) {\n return function (m1) {\n return function (m2) {\n return unsafeIntersectionWith(compare, app, m1, m2);\n };\n };\n };\n};\nvar intersection = function (dictOrd) {\n return intersectionWith(dictOrd)(Data_Function[\"const\"]);\n};\nvar insertWith = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (app) {\n return function (k) {\n return function (v) {\n var go = function (v1) {\n if (v1 instanceof Leaf) {\n return singleton(k)(v);\n };\n if (v1 instanceof Node) {\n var v2 = compare(k)(v1.value2);\n if (v2 instanceof Data_Ordering.LT) {\n return unsafeBalancedNode(v1.value2, v1.value3, go(v1.value4), v1.value5);\n };\n if (v2 instanceof Data_Ordering.GT) {\n return unsafeBalancedNode(v1.value2, v1.value3, v1.value4, go(v1.value5));\n };\n if (v2 instanceof Data_Ordering.EQ) {\n return new Node(v1.value0, v1.value1, k, app(v1.value3)(v), v1.value4, v1.value5);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 484, column 7 - line 487, column 44): \" + [ v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 481, column 8 - line 487, column 44): \" + [ v1.constructor.name ]);\n };\n return go;\n };\n };\n };\n};\nvar insert = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\n return function (v) {\n var go = function (v1) {\n if (v1 instanceof Leaf) {\n return singleton(k)(v);\n };\n if (v1 instanceof Node) {\n var v2 = compare(k)(v1.value2);\n if (v2 instanceof Data_Ordering.LT) {\n return unsafeBalancedNode(v1.value2, v1.value3, go(v1.value4), v1.value5);\n };\n if (v2 instanceof Data_Ordering.GT) {\n return unsafeBalancedNode(v1.value2, v1.value3, v1.value4, go(v1.value5));\n };\n if (v2 instanceof Data_Ordering.EQ) {\n return new Node(v1.value0, v1.value1, k, v, v1.value4, v1.value5);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 469, column 7 - line 472, column 35): \" + [ v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 466, column 8 - line 472, column 35): \" + [ v1.constructor.name ]);\n };\n return go;\n };\n };\n};\nvar functorMap = {\n map: function (f) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Leaf.value;\n };\n if (v instanceof Node) {\n return new Node(v.value0, v.value1, v.value2, f(v.value3), go(v.value4), go(v.value5));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 145, column 10 - line 148, column 39): \" + [ v.constructor.name ]);\n };\n return go;\n }\n};\nvar functorWithIndexMap = {\n mapWithIndex: function (f) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Leaf.value;\n };\n if (v instanceof Node) {\n return new Node(v.value0, v.value1, v.value2, f(v.value2)(v.value3), go(v.value4), go(v.value5));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 153, column 10 - line 156, column 41): \" + [ v.constructor.name ]);\n };\n return go;\n },\n Functor0: function () {\n return functorMap;\n }\n};\nvar foldableMap = {\n foldr: function (f) {\n return function (z) {\n var $lazy_go = $runtime_lazy(\"go\", \"Data.Map.Internal\", function () {\n return function (m$prime, z$prime) {\n if (m$prime instanceof Leaf) {\n return z$prime;\n };\n if (m$prime instanceof Node) {\n return $lazy_go(170)(m$prime.value4, f(m$prime.value3)($lazy_go(170)(m$prime.value5, z$prime)));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 167, column 26 - line 170, column 43): \" + [ m$prime.constructor.name ]);\n };\n });\n var go = $lazy_go(167);\n return function (m) {\n return go(m, z);\n };\n };\n },\n foldl: function (f) {\n return function (z) {\n var $lazy_go = $runtime_lazy(\"go\", \"Data.Map.Internal\", function () {\n return function (z$prime, m$prime) {\n if (m$prime instanceof Leaf) {\n return z$prime;\n };\n if (m$prime instanceof Node) {\n return $lazy_go(176)(f($lazy_go(176)(z$prime, m$prime.value4))(m$prime.value3), m$prime.value5);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 173, column 26 - line 176, column 43): \" + [ m$prime.constructor.name ]);\n };\n });\n var go = $lazy_go(173);\n return function (m) {\n return go(z, m);\n };\n };\n },\n foldMap: function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var append1 = Data_Semigroup.append(dictMonoid.Semigroup0());\n return function (f) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return mempty;\n };\n if (v instanceof Node) {\n return append1(go(v.value4))(append1(f(v.value3))(go(v.value5)));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 179, column 10 - line 182, column 28): \" + [ v.constructor.name ]);\n };\n return go;\n };\n }\n};\nvar foldableWithIndexMap = {\n foldrWithIndex: function (f) {\n return function (z) {\n var $lazy_go = $runtime_lazy(\"go\", \"Data.Map.Internal\", function () {\n return function (m$prime, z$prime) {\n if (m$prime instanceof Leaf) {\n return z$prime;\n };\n if (m$prime instanceof Node) {\n return $lazy_go(190)(m$prime.value4, f(m$prime.value2)(m$prime.value3)($lazy_go(190)(m$prime.value5, z$prime)));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 187, column 26 - line 190, column 45): \" + [ m$prime.constructor.name ]);\n };\n });\n var go = $lazy_go(187);\n return function (m) {\n return go(m, z);\n };\n };\n },\n foldlWithIndex: function (f) {\n return function (z) {\n var $lazy_go = $runtime_lazy(\"go\", \"Data.Map.Internal\", function () {\n return function (z$prime, m$prime) {\n if (m$prime instanceof Leaf) {\n return z$prime;\n };\n if (m$prime instanceof Node) {\n return $lazy_go(196)(f(m$prime.value2)($lazy_go(196)(z$prime, m$prime.value4))(m$prime.value3), m$prime.value5);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 193, column 26 - line 196, column 45): \" + [ m$prime.constructor.name ]);\n };\n });\n var go = $lazy_go(193);\n return function (m) {\n return go(z, m);\n };\n };\n },\n foldMapWithIndex: function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var append1 = Data_Semigroup.append(dictMonoid.Semigroup0());\n return function (f) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return mempty;\n };\n if (v instanceof Node) {\n return append1(go(v.value4))(append1(f(v.value2)(v.value3))(go(v.value5)));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 199, column 10 - line 202, column 30): \" + [ v.constructor.name ]);\n };\n return go;\n };\n },\n Foldable0: function () {\n return foldableMap;\n }\n};\nvar keys = /* #__PURE__ */ (function () {\n return Data_FoldableWithIndex.foldrWithIndex(foldableWithIndexMap)(function (k) {\n return function (v) {\n return function (acc) {\n return new Data_List_Types.Cons(k, acc);\n };\n };\n })(Data_List_Types.Nil.value);\n})();\nvar traversableMap = {\n traverse: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map1 = Data_Functor.map(Apply0.Functor0());\n return function (f) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return pure(Leaf.value);\n };\n if (v instanceof Node) {\n return apply(apply(map1(function (l$prime) {\n return function (v$prime) {\n return function (r$prime) {\n return new Node(v.value0, v.value1, v.value2, v$prime, l$prime, r$prime);\n };\n };\n })(go(v.value4)))(f(v.value3)))(go(v.value5));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 207, column 10 - line 213, column 19): \" + [ v.constructor.name ]);\n };\n return go;\n };\n },\n sequence: function (dictApplicative) {\n return Data_Traversable.traverse(traversableMap)(dictApplicative)(identity);\n },\n Functor0: function () {\n return functorMap;\n },\n Foldable1: function () {\n return foldableMap;\n }\n};\nvar traversableWithIndexMap = {\n traverseWithIndex: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map1 = Data_Functor.map(Apply0.Functor0());\n return function (f) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return pure(Leaf.value);\n };\n if (v instanceof Node) {\n return apply(apply(map1(function (l$prime) {\n return function (v$prime) {\n return function (r$prime) {\n return new Node(v.value0, v.value1, v.value2, v$prime, l$prime, r$prime);\n };\n };\n })(go(v.value4)))(f(v.value2)(v.value3)))(go(v.value5));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 219, column 10 - line 225, column 19): \" + [ v.constructor.name ]);\n };\n return go;\n };\n },\n FunctorWithIndex0: function () {\n return functorWithIndexMap;\n },\n FoldableWithIndex1: function () {\n return foldableWithIndexMap;\n },\n Traversable2: function () {\n return traversableMap;\n }\n};\nvar values = /* #__PURE__ */ (function () {\n return Data_Foldable.foldr(foldableMap)(Data_List_Types.Cons.create)(Data_List_Types.Nil.value);\n})();\nvar foldSubmapBy = function (dictOrd) {\n var lessThan1 = Data_Ord.lessThan(dictOrd);\n var greaterThan1 = Data_Ord.greaterThan(dictOrd);\n var lessThanOrEq1 = Data_Ord.lessThanOrEq(dictOrd);\n return function (appendFn) {\n return function (memptyValue) {\n return function (kmin) {\n return function (kmax) {\n return function (f) {\n var tooSmall = (function () {\n if (kmin instanceof Data_Maybe.Just) {\n return function (k) {\n return lessThan1(k)(kmin.value0);\n };\n };\n if (kmin instanceof Data_Maybe.Nothing) {\n return Data_Function[\"const\"](false);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 387, column 7 - line 391, column 22): \" + [ kmin.constructor.name ]);\n })();\n var tooLarge = (function () {\n if (kmax instanceof Data_Maybe.Just) {\n return function (k) {\n return greaterThan1(k)(kmax.value0);\n };\n };\n if (kmax instanceof Data_Maybe.Nothing) {\n return Data_Function[\"const\"](false);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 394, column 7 - line 398, column 22): \" + [ kmax.constructor.name ]);\n })();\n var inBounds = (function () {\n if (kmin instanceof Data_Maybe.Just && kmax instanceof Data_Maybe.Just) {\n return function (k) {\n return lessThanOrEq1(kmin.value0)(k) && lessThanOrEq1(k)(kmax.value0);\n };\n };\n if (kmin instanceof Data_Maybe.Just && kmax instanceof Data_Maybe.Nothing) {\n return function (k) {\n return lessThanOrEq1(kmin.value0)(k);\n };\n };\n if (kmin instanceof Data_Maybe.Nothing && kmax instanceof Data_Maybe.Just) {\n return function (k) {\n return lessThanOrEq1(k)(kmax.value0);\n };\n };\n if (kmin instanceof Data_Maybe.Nothing && kmax instanceof Data_Maybe.Nothing) {\n return Data_Function[\"const\"](true);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 401, column 7 - line 409, column 21): \" + [ kmin.constructor.name, kmax.constructor.name ]);\n })();\n var go = function (v) {\n if (v instanceof Leaf) {\n return memptyValue;\n };\n if (v instanceof Node) {\n return appendFn(appendFn((function () {\n var $640 = tooSmall(v.value2);\n if ($640) {\n return memptyValue;\n };\n return go(v.value4);\n })())((function () {\n var $641 = inBounds(v.value2);\n if ($641) {\n return f(v.value2)(v.value3);\n };\n return memptyValue;\n })()))((function () {\n var $642 = tooLarge(v.value2);\n if ($642) {\n return memptyValue;\n };\n return go(v.value5);\n })());\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 411, column 10 - line 417, column 66): \" + [ v.constructor.name ]);\n };\n return go;\n };\n };\n };\n };\n };\n};\nvar foldSubmap = function (dictOrd) {\n var foldSubmapBy1 = foldSubmapBy(dictOrd);\n return function (dictMonoid) {\n return foldSubmapBy1(Data_Semigroup.append(dictMonoid.Semigroup0()))(Data_Monoid.mempty(dictMonoid));\n };\n};\nvar findMin = 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 Node) {\n if (v.value4 instanceof Leaf) {\n $tco_done = true;\n return new Data_Maybe.Just({\n key: v.value2,\n value: v.value3\n });\n };\n $copy_v = v.value4;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 359, column 11 - line 364, column 21): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n};\nvar lookupGT = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Node) {\n var v1 = compare(k)(v.value2);\n if (v1 instanceof Data_Ordering.LT) {\n var v2 = go(v.value4);\n if (v2 instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just({\n key: v.value2,\n value: v.value3\n });\n };\n return v2;\n };\n if (v1 instanceof Data_Ordering.GT) {\n return go(v.value5);\n };\n if (v1 instanceof Data_Ordering.EQ) {\n return findMin(v.value5);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 340, column 7 - line 346, column 25): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 337, column 8 - line 346, column 25): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar findMax = 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 Node) {\n if (v.value5 instanceof Leaf) {\n $tco_done = true;\n return new Data_Maybe.Just({\n key: v.value2,\n value: v.value3\n });\n };\n $copy_v = v.value5;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 350, column 11 - line 355, column 21): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n};\nvar lookupLT = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Node) {\n var v1 = compare(k)(v.value2);\n if (v1 instanceof Data_Ordering.LT) {\n return go(v.value4);\n };\n if (v1 instanceof Data_Ordering.GT) {\n var v2 = go(v.value5);\n if (v2 instanceof Data_Maybe.Nothing) {\n return new Data_Maybe.Just({\n key: v.value2,\n value: v.value3\n });\n };\n return v2;\n };\n if (v1 instanceof Data_Ordering.EQ) {\n return findMax(v.value4);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 309, column 7 - line 316, column 21): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 306, column 8 - line 316, column 21): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar filterWithKey = function (dictOrd) {\n return function (f) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Leaf.value;\n };\n if (v instanceof Node) {\n if (f(v.value2)(v.value3)) {\n return unsafeBalancedNode(v.value2, v.value3, go(v.value4), go(v.value5));\n };\n if (Data_Boolean.otherwise) {\n return unsafeJoinNodes(go(v.value4), go(v.value5));\n };\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 625, column 8 - line 631, column 47): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar filterKeys = function (dictOrd) {\n return function (f) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Leaf.value;\n };\n if (v instanceof Node) {\n if (f(v.value2)) {\n return unsafeBalancedNode(v.value2, v.value3, go(v.value4), go(v.value5));\n };\n if (Data_Boolean.otherwise) {\n return unsafeJoinNodes(go(v.value4), go(v.value5));\n };\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 638, column 8 - line 644, column 47): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar filter = function (dictOrd) {\n var $769 = filterWithKey(dictOrd);\n return function ($770) {\n return $769(Data_Function[\"const\"]($770));\n };\n};\nvar eqMap = function (dictEq) {\n var eqMapIter1 = eqMapIter(dictEq);\n return function (dictEq1) {\n var eq1 = Data_Eq.eq(eqMapIter1(dictEq1));\n return {\n eq: function (xs) {\n return function (ys) {\n if (xs instanceof Leaf) {\n if (ys instanceof Leaf) {\n return true;\n };\n return false;\n };\n if (xs instanceof Node) {\n if (ys instanceof Node && xs.value1 === ys.value1) {\n return eq1(toMapIter(xs))(toMapIter(ys));\n };\n return false;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 92, column 14 - line 103, column 16): \" + [ xs.constructor.name ]);\n };\n }\n };\n };\n};\nvar ordMap = function (dictOrd) {\n var ordMapIter1 = ordMapIter(dictOrd);\n var eqMap1 = eqMap(dictOrd.Eq0());\n return function (dictOrd1) {\n var compare = Data_Ord.compare(ordMapIter1(dictOrd1));\n var eqMap2 = eqMap1(dictOrd1.Eq0());\n return {\n compare: function (xs) {\n return function (ys) {\n if (xs instanceof Leaf) {\n if (ys instanceof Leaf) {\n return Data_Ordering.EQ.value;\n };\n return Data_Ordering.LT.value;\n };\n if (ys instanceof Leaf) {\n return Data_Ordering.GT.value;\n };\n return compare(toMapIter(xs))(toMapIter(ys));\n };\n },\n Eq0: function () {\n return eqMap2;\n }\n };\n };\n};\nvar eq1Map = function (dictEq) {\n var eqMap1 = eqMap(dictEq);\n return {\n eq1: function (dictEq1) {\n return Data_Eq.eq(eqMap1(dictEq1));\n }\n };\n};\nvar ord1Map = function (dictOrd) {\n var ordMap1 = ordMap(dictOrd);\n var eq1Map1 = eq1Map(dictOrd.Eq0());\n return {\n compare1: function (dictOrd1) {\n return Data_Ord.compare(ordMap1(dictOrd1));\n },\n Eq10: function () {\n return eq1Map1;\n }\n };\n};\nvar empty = /* #__PURE__ */ (function () {\n return Leaf.value;\n})();\nvar fromFoldable = function (dictOrd) {\n var insert1 = insert(dictOrd);\n return function (dictFoldable) {\n return Data_Foldable.foldl(dictFoldable)(function (m) {\n return function (v) {\n return insert1(v.value0)(v.value1)(m);\n };\n })(empty);\n };\n};\nvar fromFoldableWith = function (dictOrd) {\n var insertWith1 = insertWith(dictOrd);\n return function (dictFoldable) {\n var foldl = Data_Foldable.foldl(dictFoldable);\n return function (f) {\n var f$prime = insertWith1(Data_Function.flip(f));\n return foldl(function (m) {\n return function (v) {\n return f$prime(v.value0)(v.value1)(m);\n };\n })(empty);\n };\n };\n};\nvar fromFoldableWithIndex = function (dictOrd) {\n var insert1 = insert(dictOrd);\n return function (dictFoldableWithIndex) {\n return Data_FoldableWithIndex.foldlWithIndex(dictFoldableWithIndex)(function (k) {\n return function (m) {\n return function (v) {\n return insert1(k)(v)(m);\n };\n };\n })(empty);\n };\n};\nvar monoidSemigroupMap = function () {\n return function (dictOrd) {\n var semigroupMap2 = semigroupMap1(dictOrd);\n return function (dictSemigroup) {\n var semigroupMap3 = semigroupMap2(dictSemigroup);\n return {\n mempty: empty,\n Semigroup0: function () {\n return semigroupMap3;\n }\n };\n };\n };\n};\nvar submap = function (dictOrd) {\n var foldSubmapBy1 = foldSubmapBy(dictOrd);\n var union1 = union(dictOrd);\n return function (kmin) {\n return function (kmax) {\n return foldSubmapBy1(union1)(empty)(kmin)(kmax)(singleton);\n };\n };\n};\nvar unions = function (dictOrd) {\n var union1 = union(dictOrd);\n return function (dictFoldable) {\n return Data_Foldable.foldl(dictFoldable)(union1)(empty);\n };\n};\nvar difference = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (m1) {\n return function (m2) {\n return unsafeDifference(compare, m1, m2);\n };\n };\n};\nvar $$delete = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (k) {\n var go = function (v) {\n if (v instanceof Leaf) {\n return Leaf.value;\n };\n if (v instanceof Node) {\n var v1 = compare(k)(v.value2);\n if (v1 instanceof Data_Ordering.LT) {\n return unsafeBalancedNode(v.value2, v.value3, go(v.value4), v.value5);\n };\n if (v1 instanceof Data_Ordering.GT) {\n return unsafeBalancedNode(v.value2, v.value3, v.value4, go(v.value5));\n };\n if (v1 instanceof Data_Ordering.EQ) {\n return unsafeJoinNodes(v.value4, v.value5);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 496, column 7 - line 499, column 43): \" + [ v1.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 493, column 8 - line 499, column 43): \" + [ v.constructor.name ]);\n };\n return go;\n };\n};\nvar checkValid = function (dictOrd) {\n var greaterThan1 = Data_Ord.greaterThan(dictOrd);\n var lessThan1 = Data_Ord.lessThan(dictOrd);\n var go = function (v) {\n if (v instanceof Leaf) {\n return true;\n };\n if (v instanceof Node) {\n if (v.value4 instanceof Leaf) {\n if (v.value5 instanceof Leaf) {\n return true;\n };\n if (v.value5 instanceof Node) {\n return v.value0 === 2 && (v.value5.value0 === 1 && (v.value1 > v.value5.value1 && (greaterThan1(v.value5.value2)(v.value2) && go(v.value5))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 262, column 11 - line 266, column 60): \" + [ v.value5.constructor.name ]);\n };\n if (v.value4 instanceof Node) {\n if (v.value5 instanceof Leaf) {\n return v.value0 === 2 && (v.value4.value0 === 1 && (v.value1 > v.value4.value1 && (lessThan1(v.value4.value2)(v.value2) && go(v.value4))));\n };\n if (v.value5 instanceof Node) {\n return v.value0 > v.value5.value0 && (greaterThan1(v.value5.value2)(v.value2) && (v.value0 > v.value4.value0 && (lessThan1(v.value4.value2)(v.value2) && (abs(v.value5.value0 - v.value4.value0 | 0) < 2 && (((v.value5.value1 + v.value4.value1 | 0) + 1 | 0) === v.value1 && (go(v.value4) && go(v.value5)))))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 268, column 11 - line 272, column 108): \" + [ v.value5.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 260, column 7 - line 272, column 108): \" + [ v.value4.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 257, column 8 - line 272, column 108): \" + [ v.constructor.name ]);\n };\n return go;\n};\nvar catMaybes = function (dictOrd) {\n return mapMaybe(dictOrd)(identity);\n};\nvar applyMap = function (dictOrd) {\n return {\n apply: intersectionWith(dictOrd)(identity),\n Functor0: function () {\n return functorMap;\n }\n };\n};\nvar bindMap = function (dictOrd) {\n var mapMaybeWithKey1 = mapMaybeWithKey(dictOrd);\n var lookup1 = lookup(dictOrd);\n var applyMap1 = applyMap(dictOrd);\n return {\n bind: function (m) {\n return function (f) {\n return mapMaybeWithKey1(function (k) {\n var $771 = lookup1(k);\n return function ($772) {\n return $771(f($772));\n };\n })(m);\n };\n },\n Apply0: function () {\n return applyMap1;\n }\n };\n};\nvar alter = function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n return function (f) {\n return function (k) {\n return function (m) {\n var v = unsafeSplit(compare, k, m);\n var v2 = f(v.value0);\n if (v2 instanceof Data_Maybe.Nothing) {\n return unsafeJoinNodes(v.value1, v.value2);\n };\n if (v2 instanceof Data_Maybe.Just) {\n return unsafeBalancedNode(k, v2.value0, v.value1, v.value2);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 512, column 3 - line 516, column 41): \" + [ v2.constructor.name ]);\n };\n };\n };\n};\nvar altMap = function (dictOrd) {\n return {\n alt: union(dictOrd),\n Functor0: function () {\n return functorMap;\n }\n };\n};\nvar plusMap = function (dictOrd) {\n var altMap1 = altMap(dictOrd);\n return {\n empty: empty,\n Alt0: function () {\n return altMap1;\n }\n };\n};\nexport {\n Leaf,\n Node,\n showTree,\n empty,\n isEmpty,\n singleton,\n checkValid,\n insert,\n insertWith,\n lookup,\n lookupLE,\n lookupLT,\n lookupGE,\n lookupGT,\n findMin,\n findMax,\n foldSubmap,\n submap,\n fromFoldable,\n fromFoldableWith,\n fromFoldableWithIndex,\n toUnfoldable,\n toUnfoldableUnordered,\n $$delete as delete,\n pop,\n member,\n alter,\n update,\n keys,\n values,\n union,\n unionWith,\n unions,\n intersection,\n intersectionWith,\n difference,\n isSubmap,\n size,\n filterWithKey,\n filterKeys,\n filter,\n mapMaybeWithKey,\n mapMaybe,\n catMaybes,\n IterDone,\n IterNext,\n toMapIter,\n stepAsc,\n stepAscCps,\n stepDesc,\n stepDescCps,\n stepUnordered,\n stepUnorderedCps,\n unsafeNode,\n unsafeBalancedNode,\n unsafeJoinNodes,\n unsafeSplit,\n Split,\n eq1Map,\n eqMap,\n ord1Map,\n ordMap,\n showMap,\n semigroupMap,\n monoidSemigroupMap,\n altMap,\n plusMap,\n functorMap,\n functorWithIndexMap,\n applyMap,\n bindMap,\n foldableMap,\n foldableWithIndexMap,\n traversableMap,\n traversableWithIndexMap,\n eqMapIter,\n ordMapIter\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nvar OrdBox = /* #__PURE__ */ (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})();\nvar unOrdBox = function (v) {\n return v.value2;\n};\nvar mkOrdBox = function (dictOrd) {\n return OrdBox.create(Data_Eq.eq(dictOrd.Eq0()))(Data_Ord.compare(dictOrd));\n};\nvar eqOrdBox = {\n eq: function (v) {\n return function (v1) {\n return v.value0(v.value2)(v1.value2);\n };\n }\n};\nvar 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};\nexport {\n mkOrdBox,\n unOrdBox,\n eqOrdBox,\n ordOrdBox\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid_Alternate from \"../Data.Monoid.Alternate/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Symbol from \"../Data.Symbol/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Halogen_Data_OrdBox from \"../Halogen.Data.OrdBox/index.js\";\nvar un = /* #__PURE__ */ Data_Newtype.un();\nvar ordTuple = /* #__PURE__ */ Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox);\nvar foldSubmap = /* #__PURE__ */ Data_Map_Internal.foldSubmap(ordTuple);\nvar pop1 = /* #__PURE__ */ Data_Map_Internal.pop(ordTuple);\nvar lookup1 = /* #__PURE__ */ Data_Map_Internal.lookup(ordTuple);\nvar insert1 = /* #__PURE__ */ Data_Map_Internal.insert(ordTuple);\nvar SlotStorage = function (x) {\n return x;\n};\nvar slots = function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictOrd) {\n var foldSubmap1 = foldSubmap(Data_Monoid_Alternate.monoidAlternate(Data_Map_Internal.plusMap(dictOrd)));\n return function (sym) {\n return function (v) {\n var key = reflectSymbol(sym);\n var go = function (v1) {\n return function (val) {\n if (key === v1.value0) {\n return Data_Map_Internal.singleton(Halogen_Data_OrdBox.unOrdBox(v1.value1))(val);\n };\n if (Data_Boolean.otherwise) {\n return Data_Map_Internal.empty;\n };\n throw new Error(\"Failed pattern match at Halogen.Data.Slot (line 121, column 3 - line 123, column 38): \" + [ v1.constructor.name, val.constructor.name ]);\n };\n };\n return un(Data_Monoid_Alternate.Alternate)(foldSubmap1(Data_Maybe.Nothing.value)(Data_Maybe.Nothing.value)(go)(v));\n };\n };\n };\n };\n};\nvar pop = function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictOrd) {\n var mkOrdBox = Halogen_Data_OrdBox.mkOrdBox(dictOrd);\n return function (sym) {\n return function (key) {\n return function (v) {\n return pop1(new Data_Tuple.Tuple(reflectSymbol(sym), mkOrdBox(key)))(v);\n };\n };\n };\n };\n };\n};\nvar lookup = function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictOrd) {\n var mkOrdBox = Halogen_Data_OrdBox.mkOrdBox(dictOrd);\n return function (sym) {\n return function (key) {\n return function (v) {\n return lookup1(new Data_Tuple.Tuple(reflectSymbol(sym), mkOrdBox(key)))(v);\n };\n };\n };\n };\n };\n};\nvar insert = function () {\n return function (dictIsSymbol) {\n var reflectSymbol = Data_Symbol.reflectSymbol(dictIsSymbol);\n return function (dictOrd) {\n var mkOrdBox = Halogen_Data_OrdBox.mkOrdBox(dictOrd);\n return function (sym) {\n return function (key) {\n return function (val) {\n return function (v) {\n return insert1(new Data_Tuple.Tuple(reflectSymbol(sym), mkOrdBox(key)))(val)(v);\n };\n };\n };\n };\n };\n };\n};\nvar foreachSlot = function (dictApplicative) {\n var traverse_ = Data_Foldable.traverse_(dictApplicative)(Data_Map_Internal.foldableMap);\n return function (v) {\n return function (k) {\n return traverse_(function ($54) {\n return k($54);\n })(v);\n };\n };\n};\nvar empty = Data_Map_Internal.empty;\nexport {\n empty,\n lookup,\n insert,\n pop,\n slots,\n foreachSlot\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar AutocompleteOff = /* #__PURE__ */ (function () {\n function AutocompleteOff() {\n\n };\n AutocompleteOff.value = new AutocompleteOff();\n return AutocompleteOff;\n})();\nvar AutocompleteOn = /* #__PURE__ */ (function () {\n function AutocompleteOn() {\n\n };\n AutocompleteOn.value = new AutocompleteOn();\n return AutocompleteOn;\n})();\nvar AutocompleteName = /* #__PURE__ */ (function () {\n function AutocompleteName() {\n\n };\n AutocompleteName.value = new AutocompleteName();\n return AutocompleteName;\n})();\nvar AutocompleteHonorificPrefix = /* #__PURE__ */ (function () {\n function AutocompleteHonorificPrefix() {\n\n };\n AutocompleteHonorificPrefix.value = new AutocompleteHonorificPrefix();\n return AutocompleteHonorificPrefix;\n})();\nvar AutocompleteGivenName = /* #__PURE__ */ (function () {\n function AutocompleteGivenName() {\n\n };\n AutocompleteGivenName.value = new AutocompleteGivenName();\n return AutocompleteGivenName;\n})();\nvar AutocompleteAdditionalName = /* #__PURE__ */ (function () {\n function AutocompleteAdditionalName() {\n\n };\n AutocompleteAdditionalName.value = new AutocompleteAdditionalName();\n return AutocompleteAdditionalName;\n})();\nvar AutocompleteFamilyName = /* #__PURE__ */ (function () {\n function AutocompleteFamilyName() {\n\n };\n AutocompleteFamilyName.value = new AutocompleteFamilyName();\n return AutocompleteFamilyName;\n})();\nvar AutocompleteHonorificSuffix = /* #__PURE__ */ (function () {\n function AutocompleteHonorificSuffix() {\n\n };\n AutocompleteHonorificSuffix.value = new AutocompleteHonorificSuffix();\n return AutocompleteHonorificSuffix;\n})();\nvar AutocompleteNickname = /* #__PURE__ */ (function () {\n function AutocompleteNickname() {\n\n };\n AutocompleteNickname.value = new AutocompleteNickname();\n return AutocompleteNickname;\n})();\nvar AutocompleteEmail = /* #__PURE__ */ (function () {\n function AutocompleteEmail() {\n\n };\n AutocompleteEmail.value = new AutocompleteEmail();\n return AutocompleteEmail;\n})();\nvar AutocompleteUsername = /* #__PURE__ */ (function () {\n function AutocompleteUsername() {\n\n };\n AutocompleteUsername.value = new AutocompleteUsername();\n return AutocompleteUsername;\n})();\nvar AutocompleteNewPassword = /* #__PURE__ */ (function () {\n function AutocompleteNewPassword() {\n\n };\n AutocompleteNewPassword.value = new AutocompleteNewPassword();\n return AutocompleteNewPassword;\n})();\nvar AutocompleteCurrentPassword = /* #__PURE__ */ (function () {\n function AutocompleteCurrentPassword() {\n\n };\n AutocompleteCurrentPassword.value = new AutocompleteCurrentPassword();\n return AutocompleteCurrentPassword;\n})();\nvar AutocompleteOneTimeCode = /* #__PURE__ */ (function () {\n function AutocompleteOneTimeCode() {\n\n };\n AutocompleteOneTimeCode.value = new AutocompleteOneTimeCode();\n return AutocompleteOneTimeCode;\n})();\nvar AutocompleteOrganizationTitle = /* #__PURE__ */ (function () {\n function AutocompleteOrganizationTitle() {\n\n };\n AutocompleteOrganizationTitle.value = new AutocompleteOrganizationTitle();\n return AutocompleteOrganizationTitle;\n})();\nvar AutocompleteOrganization = /* #__PURE__ */ (function () {\n function AutocompleteOrganization() {\n\n };\n AutocompleteOrganization.value = new AutocompleteOrganization();\n return AutocompleteOrganization;\n})();\nvar AutocompleteStreetAddress = /* #__PURE__ */ (function () {\n function AutocompleteStreetAddress() {\n\n };\n AutocompleteStreetAddress.value = new AutocompleteStreetAddress();\n return AutocompleteStreetAddress;\n})();\nvar AutocompleteAddressLine1 = /* #__PURE__ */ (function () {\n function AutocompleteAddressLine1() {\n\n };\n AutocompleteAddressLine1.value = new AutocompleteAddressLine1();\n return AutocompleteAddressLine1;\n})();\nvar AutocompleteAddressLine2 = /* #__PURE__ */ (function () {\n function AutocompleteAddressLine2() {\n\n };\n AutocompleteAddressLine2.value = new AutocompleteAddressLine2();\n return AutocompleteAddressLine2;\n})();\nvar AutocompleteAddressLine3 = /* #__PURE__ */ (function () {\n function AutocompleteAddressLine3() {\n\n };\n AutocompleteAddressLine3.value = new AutocompleteAddressLine3();\n return AutocompleteAddressLine3;\n})();\nvar AutocompleteAddressLevel1 = /* #__PURE__ */ (function () {\n function AutocompleteAddressLevel1() {\n\n };\n AutocompleteAddressLevel1.value = new AutocompleteAddressLevel1();\n return AutocompleteAddressLevel1;\n})();\nvar AutocompleteAddressLevel2 = /* #__PURE__ */ (function () {\n function AutocompleteAddressLevel2() {\n\n };\n AutocompleteAddressLevel2.value = new AutocompleteAddressLevel2();\n return AutocompleteAddressLevel2;\n})();\nvar AutocompleteAddressLevel3 = /* #__PURE__ */ (function () {\n function AutocompleteAddressLevel3() {\n\n };\n AutocompleteAddressLevel3.value = new AutocompleteAddressLevel3();\n return AutocompleteAddressLevel3;\n})();\nvar AutocompleteAddressLevel4 = /* #__PURE__ */ (function () {\n function AutocompleteAddressLevel4() {\n\n };\n AutocompleteAddressLevel4.value = new AutocompleteAddressLevel4();\n return AutocompleteAddressLevel4;\n})();\nvar AutocompleteCountry = /* #__PURE__ */ (function () {\n function AutocompleteCountry() {\n\n };\n AutocompleteCountry.value = new AutocompleteCountry();\n return AutocompleteCountry;\n})();\nvar AutocompleteCountryName = /* #__PURE__ */ (function () {\n function AutocompleteCountryName() {\n\n };\n AutocompleteCountryName.value = new AutocompleteCountryName();\n return AutocompleteCountryName;\n})();\nvar AutocompletePostalCode = /* #__PURE__ */ (function () {\n function AutocompletePostalCode() {\n\n };\n AutocompletePostalCode.value = new AutocompletePostalCode();\n return AutocompletePostalCode;\n})();\nvar AutocompleteCreditCardName = /* #__PURE__ */ (function () {\n function AutocompleteCreditCardName() {\n\n };\n AutocompleteCreditCardName.value = new AutocompleteCreditCardName();\n return AutocompleteCreditCardName;\n})();\nvar AutocompleteCreditCardGivenName = /* #__PURE__ */ (function () {\n function AutocompleteCreditCardGivenName() {\n\n };\n AutocompleteCreditCardGivenName.value = new AutocompleteCreditCardGivenName();\n return AutocompleteCreditCardGivenName;\n})();\nvar AutocompleteCreditCardAdditionalName = /* #__PURE__ */ (function () {\n function AutocompleteCreditCardAdditionalName() {\n\n };\n AutocompleteCreditCardAdditionalName.value = new AutocompleteCreditCardAdditionalName();\n return AutocompleteCreditCardAdditionalName;\n})();\nvar AutocompleteCreditCardFamilyName = /* #__PURE__ */ (function () {\n function AutocompleteCreditCardFamilyName() {\n\n };\n AutocompleteCreditCardFamilyName.value = new AutocompleteCreditCardFamilyName();\n return AutocompleteCreditCardFamilyName;\n})();\nvar AutocompleteCreditCardNumber = /* #__PURE__ */ (function () {\n function AutocompleteCreditCardNumber() {\n\n };\n AutocompleteCreditCardNumber.value = new AutocompleteCreditCardNumber();\n return AutocompleteCreditCardNumber;\n})();\nvar AutocompleteCreditCardExpiration = /* #__PURE__ */ (function () {\n function AutocompleteCreditCardExpiration() {\n\n };\n AutocompleteCreditCardExpiration.value = new AutocompleteCreditCardExpiration();\n return AutocompleteCreditCardExpiration;\n})();\nvar AutocompleteCreditCardExpirationMonth = /* #__PURE__ */ (function () {\n function AutocompleteCreditCardExpirationMonth() {\n\n };\n AutocompleteCreditCardExpirationMonth.value = new AutocompleteCreditCardExpirationMonth();\n return AutocompleteCreditCardExpirationMonth;\n})();\nvar AutocompleteCreditCardExpirationYear = /* #__PURE__ */ (function () {\n function AutocompleteCreditCardExpirationYear() {\n\n };\n AutocompleteCreditCardExpirationYear.value = new AutocompleteCreditCardExpirationYear();\n return AutocompleteCreditCardExpirationYear;\n})();\nvar AutocompleteCreditCardSecurityCode = /* #__PURE__ */ (function () {\n function AutocompleteCreditCardSecurityCode() {\n\n };\n AutocompleteCreditCardSecurityCode.value = new AutocompleteCreditCardSecurityCode();\n return AutocompleteCreditCardSecurityCode;\n})();\nvar AutocompleteCreditCardType = /* #__PURE__ */ (function () {\n function AutocompleteCreditCardType() {\n\n };\n AutocompleteCreditCardType.value = new AutocompleteCreditCardType();\n return AutocompleteCreditCardType;\n})();\nvar AutocompleteTransactionCurrency = /* #__PURE__ */ (function () {\n function AutocompleteTransactionCurrency() {\n\n };\n AutocompleteTransactionCurrency.value = new AutocompleteTransactionCurrency();\n return AutocompleteTransactionCurrency;\n})();\nvar AutocompleteTransactionAmount = /* #__PURE__ */ (function () {\n function AutocompleteTransactionAmount() {\n\n };\n AutocompleteTransactionAmount.value = new AutocompleteTransactionAmount();\n return AutocompleteTransactionAmount;\n})();\nvar AutocompleteLanguage = /* #__PURE__ */ (function () {\n function AutocompleteLanguage() {\n\n };\n AutocompleteLanguage.value = new AutocompleteLanguage();\n return AutocompleteLanguage;\n})();\nvar AutocompleteBirthday = /* #__PURE__ */ (function () {\n function AutocompleteBirthday() {\n\n };\n AutocompleteBirthday.value = new AutocompleteBirthday();\n return AutocompleteBirthday;\n})();\nvar AutocompleteBirthdayDay = /* #__PURE__ */ (function () {\n function AutocompleteBirthdayDay() {\n\n };\n AutocompleteBirthdayDay.value = new AutocompleteBirthdayDay();\n return AutocompleteBirthdayDay;\n})();\nvar AutocompleteBirthdayMonth = /* #__PURE__ */ (function () {\n function AutocompleteBirthdayMonth() {\n\n };\n AutocompleteBirthdayMonth.value = new AutocompleteBirthdayMonth();\n return AutocompleteBirthdayMonth;\n})();\nvar AutocompleteBirthdayYear = /* #__PURE__ */ (function () {\n function AutocompleteBirthdayYear() {\n\n };\n AutocompleteBirthdayYear.value = new AutocompleteBirthdayYear();\n return AutocompleteBirthdayYear;\n})();\nvar AutocompleteSex = /* #__PURE__ */ (function () {\n function AutocompleteSex() {\n\n };\n AutocompleteSex.value = new AutocompleteSex();\n return AutocompleteSex;\n})();\nvar AutocompleteTelephone = /* #__PURE__ */ (function () {\n function AutocompleteTelephone() {\n\n };\n AutocompleteTelephone.value = new AutocompleteTelephone();\n return AutocompleteTelephone;\n})();\nvar AutocompleteTelephoneCountryCode = /* #__PURE__ */ (function () {\n function AutocompleteTelephoneCountryCode() {\n\n };\n AutocompleteTelephoneCountryCode.value = new AutocompleteTelephoneCountryCode();\n return AutocompleteTelephoneCountryCode;\n})();\nvar AutocompleteTelephoneNational = /* #__PURE__ */ (function () {\n function AutocompleteTelephoneNational() {\n\n };\n AutocompleteTelephoneNational.value = new AutocompleteTelephoneNational();\n return AutocompleteTelephoneNational;\n})();\nvar AutocompleteTelephoneAreaCode = /* #__PURE__ */ (function () {\n function AutocompleteTelephoneAreaCode() {\n\n };\n AutocompleteTelephoneAreaCode.value = new AutocompleteTelephoneAreaCode();\n return AutocompleteTelephoneAreaCode;\n})();\nvar AutocompleteTelephoneLocal = /* #__PURE__ */ (function () {\n function AutocompleteTelephoneLocal() {\n\n };\n AutocompleteTelephoneLocal.value = new AutocompleteTelephoneLocal();\n return AutocompleteTelephoneLocal;\n})();\nvar AutocompleteTelephoneLocalPrefix = /* #__PURE__ */ (function () {\n function AutocompleteTelephoneLocalPrefix() {\n\n };\n AutocompleteTelephoneLocalPrefix.value = new AutocompleteTelephoneLocalPrefix();\n return AutocompleteTelephoneLocalPrefix;\n})();\nvar AutocompleteTelephoneLocalSuffix = /* #__PURE__ */ (function () {\n function AutocompleteTelephoneLocalSuffix() {\n\n };\n AutocompleteTelephoneLocalSuffix.value = new AutocompleteTelephoneLocalSuffix();\n return AutocompleteTelephoneLocalSuffix;\n})();\nvar AutocompleteTelephoneExtension = /* #__PURE__ */ (function () {\n function AutocompleteTelephoneExtension() {\n\n };\n AutocompleteTelephoneExtension.value = new AutocompleteTelephoneExtension();\n return AutocompleteTelephoneExtension;\n})();\nvar AutocompleteIMPP = /* #__PURE__ */ (function () {\n function AutocompleteIMPP() {\n\n };\n AutocompleteIMPP.value = new AutocompleteIMPP();\n return AutocompleteIMPP;\n})();\nvar AutocompleteURL = /* #__PURE__ */ (function () {\n function AutocompleteURL() {\n\n };\n AutocompleteURL.value = new AutocompleteURL();\n return AutocompleteURL;\n})();\nvar AutocompletePhoto = /* #__PURE__ */ (function () {\n function AutocompletePhoto() {\n\n };\n AutocompletePhoto.value = new AutocompletePhoto();\n return AutocompletePhoto;\n})();\nvar renderAutocompleteType = function (v) {\n if (v instanceof AutocompleteOff) {\n return \"off\";\n };\n if (v instanceof AutocompleteOn) {\n return \"on\";\n };\n if (v instanceof AutocompleteName) {\n return \"name\";\n };\n if (v instanceof AutocompleteHonorificPrefix) {\n return \"honorific-prefix\";\n };\n if (v instanceof AutocompleteGivenName) {\n return \"given-name\";\n };\n if (v instanceof AutocompleteAdditionalName) {\n return \"additional-name\";\n };\n if (v instanceof AutocompleteFamilyName) {\n return \"family-name\";\n };\n if (v instanceof AutocompleteHonorificSuffix) {\n return \"honorific-suffix\";\n };\n if (v instanceof AutocompleteNickname) {\n return \"nickname\";\n };\n if (v instanceof AutocompleteEmail) {\n return \"email\";\n };\n if (v instanceof AutocompleteUsername) {\n return \"username\";\n };\n if (v instanceof AutocompleteNewPassword) {\n return \"new-password\";\n };\n if (v instanceof AutocompleteCurrentPassword) {\n return \"current-password\";\n };\n if (v instanceof AutocompleteOneTimeCode) {\n return \"one-time-code\";\n };\n if (v instanceof AutocompleteOrganizationTitle) {\n return \"organization-title\";\n };\n if (v instanceof AutocompleteOrganization) {\n return \"organization\";\n };\n if (v instanceof AutocompleteStreetAddress) {\n return \"street-address\";\n };\n if (v instanceof AutocompleteAddressLine1) {\n return \"address-line1\";\n };\n if (v instanceof AutocompleteAddressLine2) {\n return \"address-line2\";\n };\n if (v instanceof AutocompleteAddressLine3) {\n return \"address-line3\";\n };\n if (v instanceof AutocompleteAddressLevel1) {\n return \"address-level1\";\n };\n if (v instanceof AutocompleteAddressLevel2) {\n return \"address-level2\";\n };\n if (v instanceof AutocompleteAddressLevel3) {\n return \"address-level3\";\n };\n if (v instanceof AutocompleteAddressLevel4) {\n return \"address-level4\";\n };\n if (v instanceof AutocompleteCountry) {\n return \"country\";\n };\n if (v instanceof AutocompleteCountryName) {\n return \"country-name\";\n };\n if (v instanceof AutocompletePostalCode) {\n return \"postal-code\";\n };\n if (v instanceof AutocompleteCreditCardName) {\n return \"cc-name\";\n };\n if (v instanceof AutocompleteCreditCardGivenName) {\n return \"cc-given-name\";\n };\n if (v instanceof AutocompleteCreditCardAdditionalName) {\n return \"cc-additional-name\";\n };\n if (v instanceof AutocompleteCreditCardFamilyName) {\n return \"cc-family-name\";\n };\n if (v instanceof AutocompleteCreditCardNumber) {\n return \"cc-number\";\n };\n if (v instanceof AutocompleteCreditCardExpiration) {\n return \"cc-exp\";\n };\n if (v instanceof AutocompleteCreditCardExpirationMonth) {\n return \"cc-exp-month\";\n };\n if (v instanceof AutocompleteCreditCardExpirationYear) {\n return \"cc-exp-year\";\n };\n if (v instanceof AutocompleteCreditCardSecurityCode) {\n return \"cc-csc\";\n };\n if (v instanceof AutocompleteCreditCardType) {\n return \"cc-type\";\n };\n if (v instanceof AutocompleteTransactionCurrency) {\n return \"transaction-currency\";\n };\n if (v instanceof AutocompleteTransactionAmount) {\n return \"transaction-amount\";\n };\n if (v instanceof AutocompleteLanguage) {\n return \"language\";\n };\n if (v instanceof AutocompleteBirthday) {\n return \"bday\";\n };\n if (v instanceof AutocompleteBirthdayDay) {\n return \"bday-day\";\n };\n if (v instanceof AutocompleteBirthdayMonth) {\n return \"bday-month\";\n };\n if (v instanceof AutocompleteBirthdayYear) {\n return \"bday-year\";\n };\n if (v instanceof AutocompleteSex) {\n return \"sex\";\n };\n if (v instanceof AutocompleteTelephone) {\n return \"tel\";\n };\n if (v instanceof AutocompleteTelephoneCountryCode) {\n return \"tel-country-code\";\n };\n if (v instanceof AutocompleteTelephoneNational) {\n return \"tel-national\";\n };\n if (v instanceof AutocompleteTelephoneAreaCode) {\n return \"telarea-code\";\n };\n if (v instanceof AutocompleteTelephoneLocal) {\n return \"tel-local\";\n };\n if (v instanceof AutocompleteTelephoneLocalPrefix) {\n return \"tel-local-prefix\";\n };\n if (v instanceof AutocompleteTelephoneLocalSuffix) {\n return \"tel-local-suffix\";\n };\n if (v instanceof AutocompleteTelephoneExtension) {\n return \"tel-extension\";\n };\n if (v instanceof AutocompleteIMPP) {\n return \"impp\";\n };\n if (v instanceof AutocompleteURL) {\n return \"url\";\n };\n if (v instanceof AutocompletePhoto) {\n return \"photo\";\n };\n throw new Error(\"Failed pattern match at DOM.HTML.Indexed.AutocompleteType (line 67, column 26 - line 123, column 31): \" + [ v.constructor.name ]);\n};\nvar eqAutocompleteType = {\n eq: function (x) {\n return function (y) {\n if (x instanceof AutocompleteOff && y instanceof AutocompleteOff) {\n return true;\n };\n if (x instanceof AutocompleteOn && y instanceof AutocompleteOn) {\n return true;\n };\n if (x instanceof AutocompleteName && y instanceof AutocompleteName) {\n return true;\n };\n if (x instanceof AutocompleteHonorificPrefix && y instanceof AutocompleteHonorificPrefix) {\n return true;\n };\n if (x instanceof AutocompleteGivenName && y instanceof AutocompleteGivenName) {\n return true;\n };\n if (x instanceof AutocompleteAdditionalName && y instanceof AutocompleteAdditionalName) {\n return true;\n };\n if (x instanceof AutocompleteFamilyName && y instanceof AutocompleteFamilyName) {\n return true;\n };\n if (x instanceof AutocompleteHonorificSuffix && y instanceof AutocompleteHonorificSuffix) {\n return true;\n };\n if (x instanceof AutocompleteNickname && y instanceof AutocompleteNickname) {\n return true;\n };\n if (x instanceof AutocompleteEmail && y instanceof AutocompleteEmail) {\n return true;\n };\n if (x instanceof AutocompleteUsername && y instanceof AutocompleteUsername) {\n return true;\n };\n if (x instanceof AutocompleteNewPassword && y instanceof AutocompleteNewPassword) {\n return true;\n };\n if (x instanceof AutocompleteCurrentPassword && y instanceof AutocompleteCurrentPassword) {\n return true;\n };\n if (x instanceof AutocompleteOneTimeCode && y instanceof AutocompleteOneTimeCode) {\n return true;\n };\n if (x instanceof AutocompleteOrganizationTitle && y instanceof AutocompleteOrganizationTitle) {\n return true;\n };\n if (x instanceof AutocompleteOrganization && y instanceof AutocompleteOrganization) {\n return true;\n };\n if (x instanceof AutocompleteStreetAddress && y instanceof AutocompleteStreetAddress) {\n return true;\n };\n if (x instanceof AutocompleteAddressLine1 && y instanceof AutocompleteAddressLine1) {\n return true;\n };\n if (x instanceof AutocompleteAddressLine2 && y instanceof AutocompleteAddressLine2) {\n return true;\n };\n if (x instanceof AutocompleteAddressLine3 && y instanceof AutocompleteAddressLine3) {\n return true;\n };\n if (x instanceof AutocompleteAddressLevel1 && y instanceof AutocompleteAddressLevel1) {\n return true;\n };\n if (x instanceof AutocompleteAddressLevel2 && y instanceof AutocompleteAddressLevel2) {\n return true;\n };\n if (x instanceof AutocompleteAddressLevel3 && y instanceof AutocompleteAddressLevel3) {\n return true;\n };\n if (x instanceof AutocompleteAddressLevel4 && y instanceof AutocompleteAddressLevel4) {\n return true;\n };\n if (x instanceof AutocompleteCountry && y instanceof AutocompleteCountry) {\n return true;\n };\n if (x instanceof AutocompleteCountryName && y instanceof AutocompleteCountryName) {\n return true;\n };\n if (x instanceof AutocompletePostalCode && y instanceof AutocompletePostalCode) {\n return true;\n };\n if (x instanceof AutocompleteCreditCardName && y instanceof AutocompleteCreditCardName) {\n return true;\n };\n if (x instanceof AutocompleteCreditCardGivenName && y instanceof AutocompleteCreditCardGivenName) {\n return true;\n };\n if (x instanceof AutocompleteCreditCardAdditionalName && y instanceof AutocompleteCreditCardAdditionalName) {\n return true;\n };\n if (x instanceof AutocompleteCreditCardFamilyName && y instanceof AutocompleteCreditCardFamilyName) {\n return true;\n };\n if (x instanceof AutocompleteCreditCardNumber && y instanceof AutocompleteCreditCardNumber) {\n return true;\n };\n if (x instanceof AutocompleteCreditCardExpiration && y instanceof AutocompleteCreditCardExpiration) {\n return true;\n };\n if (x instanceof AutocompleteCreditCardExpirationMonth && y instanceof AutocompleteCreditCardExpirationMonth) {\n return true;\n };\n if (x instanceof AutocompleteCreditCardExpirationYear && y instanceof AutocompleteCreditCardExpirationYear) {\n return true;\n };\n if (x instanceof AutocompleteCreditCardSecurityCode && y instanceof AutocompleteCreditCardSecurityCode) {\n return true;\n };\n if (x instanceof AutocompleteCreditCardType && y instanceof AutocompleteCreditCardType) {\n return true;\n };\n if (x instanceof AutocompleteTransactionCurrency && y instanceof AutocompleteTransactionCurrency) {\n return true;\n };\n if (x instanceof AutocompleteTransactionAmount && y instanceof AutocompleteTransactionAmount) {\n return true;\n };\n if (x instanceof AutocompleteLanguage && y instanceof AutocompleteLanguage) {\n return true;\n };\n if (x instanceof AutocompleteBirthday && y instanceof AutocompleteBirthday) {\n return true;\n };\n if (x instanceof AutocompleteBirthdayDay && y instanceof AutocompleteBirthdayDay) {\n return true;\n };\n if (x instanceof AutocompleteBirthdayMonth && y instanceof AutocompleteBirthdayMonth) {\n return true;\n };\n if (x instanceof AutocompleteBirthdayYear && y instanceof AutocompleteBirthdayYear) {\n return true;\n };\n if (x instanceof AutocompleteSex && y instanceof AutocompleteSex) {\n return true;\n };\n if (x instanceof AutocompleteTelephone && y instanceof AutocompleteTelephone) {\n return true;\n };\n if (x instanceof AutocompleteTelephoneCountryCode && y instanceof AutocompleteTelephoneCountryCode) {\n return true;\n };\n if (x instanceof AutocompleteTelephoneNational && y instanceof AutocompleteTelephoneNational) {\n return true;\n };\n if (x instanceof AutocompleteTelephoneAreaCode && y instanceof AutocompleteTelephoneAreaCode) {\n return true;\n };\n if (x instanceof AutocompleteTelephoneLocal && y instanceof AutocompleteTelephoneLocal) {\n return true;\n };\n if (x instanceof AutocompleteTelephoneLocalPrefix && y instanceof AutocompleteTelephoneLocalPrefix) {\n return true;\n };\n if (x instanceof AutocompleteTelephoneLocalSuffix && y instanceof AutocompleteTelephoneLocalSuffix) {\n return true;\n };\n if (x instanceof AutocompleteTelephoneExtension && y instanceof AutocompleteTelephoneExtension) {\n return true;\n };\n if (x instanceof AutocompleteIMPP && y instanceof AutocompleteIMPP) {\n return true;\n };\n if (x instanceof AutocompleteURL && y instanceof AutocompleteURL) {\n return true;\n };\n if (x instanceof AutocompletePhoto && y instanceof AutocompletePhoto) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordAutocompleteType = {\n compare: function (x) {\n return function (y) {\n if (x instanceof AutocompleteOff && y instanceof AutocompleteOff) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteOff) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteOff) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteOn && y instanceof AutocompleteOn) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteOn) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteOn) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteName && y instanceof AutocompleteName) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteName) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteName) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteHonorificPrefix && y instanceof AutocompleteHonorificPrefix) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteHonorificPrefix) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteHonorificPrefix) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteGivenName && y instanceof AutocompleteGivenName) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteGivenName) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteGivenName) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteAdditionalName && y instanceof AutocompleteAdditionalName) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteAdditionalName) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteAdditionalName) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteFamilyName && y instanceof AutocompleteFamilyName) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteFamilyName) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteFamilyName) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteHonorificSuffix && y instanceof AutocompleteHonorificSuffix) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteHonorificSuffix) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteHonorificSuffix) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteNickname && y instanceof AutocompleteNickname) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteNickname) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteNickname) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteEmail && y instanceof AutocompleteEmail) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteEmail) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteEmail) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteUsername && y instanceof AutocompleteUsername) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteUsername) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteUsername) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteNewPassword && y instanceof AutocompleteNewPassword) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteNewPassword) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteNewPassword) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteCurrentPassword && y instanceof AutocompleteCurrentPassword) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteCurrentPassword) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteCurrentPassword) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteOneTimeCode && y instanceof AutocompleteOneTimeCode) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteOneTimeCode) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteOneTimeCode) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteOrganizationTitle && y instanceof AutocompleteOrganizationTitle) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteOrganizationTitle) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteOrganizationTitle) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteOrganization && y instanceof AutocompleteOrganization) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteOrganization) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteOrganization) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteStreetAddress && y instanceof AutocompleteStreetAddress) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteStreetAddress) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteStreetAddress) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteAddressLine1 && y instanceof AutocompleteAddressLine1) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteAddressLine1) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteAddressLine1) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteAddressLine2 && y instanceof AutocompleteAddressLine2) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteAddressLine2) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteAddressLine2) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteAddressLine3 && y instanceof AutocompleteAddressLine3) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteAddressLine3) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteAddressLine3) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteAddressLevel1 && y instanceof AutocompleteAddressLevel1) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteAddressLevel1) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteAddressLevel1) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteAddressLevel2 && y instanceof AutocompleteAddressLevel2) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteAddressLevel2) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteAddressLevel2) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteAddressLevel3 && y instanceof AutocompleteAddressLevel3) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteAddressLevel3) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteAddressLevel3) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteAddressLevel4 && y instanceof AutocompleteAddressLevel4) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteAddressLevel4) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteAddressLevel4) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteCountry && y instanceof AutocompleteCountry) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteCountry) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteCountry) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteCountryName && y instanceof AutocompleteCountryName) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteCountryName) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteCountryName) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompletePostalCode && y instanceof AutocompletePostalCode) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompletePostalCode) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompletePostalCode) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteCreditCardName && y instanceof AutocompleteCreditCardName) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteCreditCardName) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteCreditCardName) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteCreditCardGivenName && y instanceof AutocompleteCreditCardGivenName) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteCreditCardGivenName) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteCreditCardGivenName) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteCreditCardAdditionalName && y instanceof AutocompleteCreditCardAdditionalName) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteCreditCardAdditionalName) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteCreditCardAdditionalName) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteCreditCardFamilyName && y instanceof AutocompleteCreditCardFamilyName) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteCreditCardFamilyName) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteCreditCardFamilyName) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteCreditCardNumber && y instanceof AutocompleteCreditCardNumber) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteCreditCardNumber) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteCreditCardNumber) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteCreditCardExpiration && y instanceof AutocompleteCreditCardExpiration) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteCreditCardExpiration) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteCreditCardExpiration) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteCreditCardExpirationMonth && y instanceof AutocompleteCreditCardExpirationMonth) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteCreditCardExpirationMonth) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteCreditCardExpirationMonth) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteCreditCardExpirationYear && y instanceof AutocompleteCreditCardExpirationYear) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteCreditCardExpirationYear) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteCreditCardExpirationYear) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteCreditCardSecurityCode && y instanceof AutocompleteCreditCardSecurityCode) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteCreditCardSecurityCode) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteCreditCardSecurityCode) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteCreditCardType && y instanceof AutocompleteCreditCardType) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteCreditCardType) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteCreditCardType) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteTransactionCurrency && y instanceof AutocompleteTransactionCurrency) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteTransactionCurrency) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteTransactionCurrency) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteTransactionAmount && y instanceof AutocompleteTransactionAmount) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteTransactionAmount) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteTransactionAmount) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteLanguage && y instanceof AutocompleteLanguage) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteLanguage) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteLanguage) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteBirthday && y instanceof AutocompleteBirthday) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteBirthday) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteBirthday) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteBirthdayDay && y instanceof AutocompleteBirthdayDay) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteBirthdayDay) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteBirthdayDay) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteBirthdayMonth && y instanceof AutocompleteBirthdayMonth) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteBirthdayMonth) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteBirthdayMonth) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteBirthdayYear && y instanceof AutocompleteBirthdayYear) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteBirthdayYear) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteBirthdayYear) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteSex && y instanceof AutocompleteSex) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteSex) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteSex) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteTelephone && y instanceof AutocompleteTelephone) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteTelephone) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteTelephone) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteTelephoneCountryCode && y instanceof AutocompleteTelephoneCountryCode) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteTelephoneCountryCode) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteTelephoneCountryCode) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteTelephoneNational && y instanceof AutocompleteTelephoneNational) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteTelephoneNational) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteTelephoneNational) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteTelephoneAreaCode && y instanceof AutocompleteTelephoneAreaCode) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteTelephoneAreaCode) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteTelephoneAreaCode) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteTelephoneLocal && y instanceof AutocompleteTelephoneLocal) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteTelephoneLocal) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteTelephoneLocal) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteTelephoneLocalPrefix && y instanceof AutocompleteTelephoneLocalPrefix) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteTelephoneLocalPrefix) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteTelephoneLocalPrefix) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteTelephoneLocalSuffix && y instanceof AutocompleteTelephoneLocalSuffix) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteTelephoneLocalSuffix) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteTelephoneLocalSuffix) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteTelephoneExtension && y instanceof AutocompleteTelephoneExtension) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteTelephoneExtension) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteTelephoneExtension) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteIMPP && y instanceof AutocompleteIMPP) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteIMPP) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteIMPP) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompleteURL && y instanceof AutocompleteURL) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof AutocompleteURL) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof AutocompleteURL) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof AutocompletePhoto && y instanceof AutocompletePhoto) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at DOM.HTML.Indexed.AutocompleteType (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqAutocompleteType;\n }\n};\nexport {\n AutocompleteOff,\n AutocompleteOn,\n AutocompleteName,\n AutocompleteHonorificPrefix,\n AutocompleteGivenName,\n AutocompleteAdditionalName,\n AutocompleteFamilyName,\n AutocompleteHonorificSuffix,\n AutocompleteNickname,\n AutocompleteEmail,\n AutocompleteUsername,\n AutocompleteNewPassword,\n AutocompleteCurrentPassword,\n AutocompleteOneTimeCode,\n AutocompleteOrganizationTitle,\n AutocompleteOrganization,\n AutocompleteStreetAddress,\n AutocompleteAddressLine1,\n AutocompleteAddressLine2,\n AutocompleteAddressLine3,\n AutocompleteAddressLevel1,\n AutocompleteAddressLevel2,\n AutocompleteAddressLevel3,\n AutocompleteAddressLevel4,\n AutocompleteCountry,\n AutocompleteCountryName,\n AutocompletePostalCode,\n AutocompleteCreditCardName,\n AutocompleteCreditCardGivenName,\n AutocompleteCreditCardAdditionalName,\n AutocompleteCreditCardFamilyName,\n AutocompleteCreditCardNumber,\n AutocompleteCreditCardExpiration,\n AutocompleteCreditCardExpirationMonth,\n AutocompleteCreditCardExpirationYear,\n AutocompleteCreditCardSecurityCode,\n AutocompleteCreditCardType,\n AutocompleteTransactionCurrency,\n AutocompleteTransactionAmount,\n AutocompleteLanguage,\n AutocompleteBirthday,\n AutocompleteBirthdayDay,\n AutocompleteBirthdayMonth,\n AutocompleteBirthdayYear,\n AutocompleteSex,\n AutocompleteTelephone,\n AutocompleteTelephoneCountryCode,\n AutocompleteTelephoneNational,\n AutocompleteTelephoneAreaCode,\n AutocompleteTelephoneLocal,\n AutocompleteTelephoneLocalPrefix,\n AutocompleteTelephoneLocalSuffix,\n AutocompleteTelephoneExtension,\n AutocompleteIMPP,\n AutocompleteURL,\n AutocompletePhoto,\n renderAutocompleteType,\n eqAutocompleteType,\n ordAutocompleteType\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nvar ButtonButton = /* #__PURE__ */ (function () {\n function ButtonButton() {\n\n };\n ButtonButton.value = new ButtonButton();\n return ButtonButton;\n})();\nvar ButtonSubmit = /* #__PURE__ */ (function () {\n function ButtonSubmit() {\n\n };\n ButtonSubmit.value = new ButtonSubmit();\n return ButtonSubmit;\n})();\nvar ButtonReset = /* #__PURE__ */ (function () {\n function ButtonReset() {\n\n };\n ButtonReset.value = new ButtonReset();\n return ButtonReset;\n})();\nvar renderButtonType = function (v) {\n if (v instanceof ButtonButton) {\n return \"button\";\n };\n if (v instanceof ButtonSubmit) {\n return \"submit\";\n };\n if (v instanceof ButtonReset) {\n return \"reset\";\n };\n throw new Error(\"Failed pattern match at DOM.HTML.Indexed.ButtonType (line 14, column 20 - line 17, column 25): \" + [ v.constructor.name ]);\n};\nvar eqButtonType = {\n eq: function (x) {\n return function (y) {\n if (x instanceof ButtonButton && y instanceof ButtonButton) {\n return true;\n };\n if (x instanceof ButtonSubmit && y instanceof ButtonSubmit) {\n return true;\n };\n if (x instanceof ButtonReset && y instanceof ButtonReset) {\n return true;\n };\n return false;\n };\n }\n};\nvar ordButtonType = {\n compare: function (x) {\n return function (y) {\n if (x instanceof ButtonButton && y instanceof ButtonButton) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof ButtonButton) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof ButtonButton) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof ButtonSubmit && y instanceof ButtonSubmit) {\n return Data_Ordering.EQ.value;\n };\n if (x instanceof ButtonSubmit) {\n return Data_Ordering.LT.value;\n };\n if (y instanceof ButtonSubmit) {\n return Data_Ordering.GT.value;\n };\n if (x instanceof ButtonReset && y instanceof ButtonReset) {\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at DOM.HTML.Indexed.ButtonType (line 0, column 0 - line 0, column 0): \" + [ x.constructor.name, y.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqButtonType;\n }\n};\nexport {\n ButtonButton,\n ButtonSubmit,\n ButtonReset,\n renderButtonType,\n eqButtonType,\n ordButtonType\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nvar RefLabel = function (x) {\n return x;\n};\nvar RefUpdate = /* #__PURE__ */ (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})();\nvar Action = /* #__PURE__ */ (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})();\nvar ordRefLabel = Data_Ord.ordString;\nvar newtypeRefLabel = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar functorInput = {\n map: function (f) {\n return function (m) {\n if (m instanceof RefUpdate) {\n return new RefUpdate(m.value0, m.value1);\n };\n if (m instanceof Action) {\n return new Action(f(m.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Query.Input (line 0, column 0 - line 0, column 0): \" + [ m.constructor.name ]);\n };\n }\n};\nvar eqRefLabel = Data_Eq.eqString;\nexport {\n RefLabel,\n RefUpdate,\n Action,\n newtypeRefLabel,\n eqRefLabel,\n ordRefLabel,\n functorInput\n};\n", "// Generated by purs version 0.15.14\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar Step = /* #__PURE__ */ (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})();\nvar unStep = Unsafe_Coerce.unsafeCoerce;\nvar step = function (v, a) {\n return v.value2(v.value1, a);\n};\nvar mkStep = Unsafe_Coerce.unsafeCoerce;\nvar halt = function (v) {\n return v.value3(v.value1);\n};\nvar extract = /* #__PURE__ */ unStep(function (v) {\n return v.value0;\n});\nexport {\n Step,\n mkStep,\n unStep,\n extract,\n step,\n halt\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Tuple.functorTuple);\nvar Namespace = function (x) {\n return x;\n};\nvar ElemName = function (x) {\n return x;\n};\nvar Text = /* #__PURE__ */ (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})();\nvar Elem = /* #__PURE__ */ (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})();\nvar Keyed = /* #__PURE__ */ (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})();\nvar Widget = /* #__PURE__ */ (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})();\nvar Grafted = /* #__PURE__ */ (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})();\nvar Graft = /* #__PURE__ */ (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})();\nvar unGraft = function (f) {\n return function ($61) {\n return f($61);\n };\n};\nvar ordNamespace = Data_Ord.ordString;\nvar ordElemName = Data_Ord.ordString;\nvar newtypeNamespace = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar newtypeElemName = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar graft = Unsafe_Coerce.unsafeCoerce;\nvar functorGraft = {\n map: function (g) {\n return unGraft(function (v) {\n return graft(new Graft(v.value0, function ($62) {\n return g(v.value1($62));\n }, v.value2));\n });\n }\n};\nvar map2 = /* #__PURE__ */ Data_Functor.map(functorGraft);\nvar functorVDom = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof Text) {\n return new Text(v1.value0);\n };\n if (v1 instanceof Grafted) {\n return new Grafted(map2(v)(v1.value0));\n };\n return new Grafted(graft(new Graft(identity, v, v1)));\n };\n }\n};\nvar eqNamespace = Data_Eq.eqString;\nvar eqElemName = Data_Eq.eqString;\nvar bifunctorGraft = {\n bimap: function (f) {\n return function (g) {\n return unGraft(function (v) {\n return graft(new Graft(function ($63) {\n return f(v.value0($63));\n }, function ($64) {\n return g(v.value1($64));\n }, v.value2));\n });\n };\n }\n};\nvar bimap = /* #__PURE__ */ Data_Bifunctor.bimap(bifunctorGraft);\nvar bifunctorVDom = {\n bimap: function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Text) {\n return new Text(v2.value0);\n };\n if (v2 instanceof Grafted) {\n return new Grafted(bimap(v)(v1)(v2.value0));\n };\n return new Grafted(graft(new Graft(v, v1, v2)));\n };\n };\n }\n};\nvar runGraft = /* #__PURE__ */ 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), map(go)(v2.value3));\n };\n if (v2 instanceof Keyed) {\n return new Keyed(v2.value0, v2.value1, v.value0(v2.value2), map(map1(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(bimap(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});\nvar renderWidget = function (f) {\n return function (g) {\n return function (v) {\n if (v instanceof Text) {\n return new Text(v.value0);\n };\n if (v instanceof Elem) {\n return new Elem(v.value0, v.value1, f(v.value2), map(renderWidget(f)(g))(v.value3));\n };\n if (v instanceof Keyed) {\n return new Keyed(v.value0, v.value1, f(v.value2), map(map1(renderWidget(f)(g)))(v.value3));\n };\n if (v instanceof Widget) {\n return g(v.value0);\n };\n if (v instanceof Grafted) {\n return renderWidget(f)(g)(runGraft(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Types (line 48, column 20 - line 53, column 48): \" + [ v.constructor.name ]);\n };\n };\n};\nexport {\n Text,\n Elem,\n Keyed,\n Widget,\n Grafted,\n renderWidget,\n Graft,\n graft,\n unGraft,\n runGraft,\n ElemName,\n Namespace,\n functorVDom,\n bifunctorVDom,\n functorGraft,\n bifunctorGraft,\n newtypeElemName,\n eqElemName,\n ordElemName,\n newtypeNamespace,\n eqNamespace,\n ordNamespace\n};\n", "\"use strict\";\n\nexport function unsafeGetAny(key, obj) {\n return obj[key];\n}\n\nexport function unsafeHasAny(key, obj) {\n return obj.hasOwnProperty(key);\n}\n\nexport function unsafeSetAny(key, val, obj) {\n obj[key] = val;\n}\n\nexport function unsafeDeleteAny(key, obj) {\n delete obj[key];\n}\n\nexport function forE(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\nexport function forEachE(a, f) {\n for (var i = 0; i < a.length; i++) {\n f(a[i]);\n }\n}\n\nexport function forInE(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\nexport function replicateE(n, f) {\n for (var i = 0; i < n; i++) {\n f();\n }\n}\n\nexport function diffWithIxE(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\nexport function strMapWithIxE(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\nexport function diffWithKeyAndIxE(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\nexport function refEq(a, b) {\n return a === b;\n}\n\nexport function createTextNode(s, doc) {\n return doc.createTextNode(s);\n}\n\nexport function setTextContent(s, n) {\n n.textContent = s;\n}\n\nexport function createElement(ns, name, doc) {\n if (ns != null) {\n return doc.createElementNS(ns, name);\n } else {\n return doc.createElement(name)\n }\n}\n\nexport function insertChildIx(i, a, b) {\n var n = b.childNodes.item(i) || null;\n if (n !== a) {\n b.insertBefore(a, n);\n }\n}\n\nexport function removeChild(a, b) {\n if (b && a.parentNode === b) {\n b.removeChild(a);\n }\n}\n\nexport function parentNode(a) {\n return a.parentNode;\n}\n\nexport function setAttribute(ns, attr, val, el) {\n if (ns != null) {\n el.setAttributeNS(ns, attr, val);\n } else {\n el.setAttribute(attr, val);\n }\n}\n\nexport function removeAttribute(ns, attr, el) {\n if (ns != null) {\n el.removeAttributeNS(ns, attr);\n } else {\n el.removeAttribute(attr);\n }\n}\n\nexport function hasAttribute(ns, attr, el) {\n if (ns != null) {\n return el.hasAttributeNS(ns, attr);\n } else {\n return el.hasAttribute(attr);\n }\n}\n\nexport function addEventListener(ev, listener, el) {\n el.addEventListener(ev, listener, false);\n}\n\nexport function removeEventListener(ev, listener, el) {\n el.removeEventListener(ev, listener, false);\n}\n\nexport var jsUndefined = void 0;\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Foreign_Object_ST from \"../Foreign.Object.ST/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar unsafeLookup = $foreign.unsafeGetAny;\nvar unsafeFreeze = Unsafe_Coerce.unsafeCoerce;\nvar pokeMutMap = $foreign.unsafeSetAny;\nvar newMutMap = Foreign_Object_ST[\"new\"];\nvar deleteMutMap = $foreign.unsafeDeleteAny;\nexport {\n unsafeGetAny,\n unsafeHasAny,\n unsafeSetAny,\n unsafeDeleteAny,\n forE,\n forEachE,\n forInE,\n replicateE,\n diffWithIxE,\n diffWithKeyAndIxE,\n strMapWithIxE,\n refEq,\n createTextNode,\n setTextContent,\n createElement,\n insertChildIx,\n removeChild,\n parentNode,\n setAttribute,\n removeAttribute,\n hasAttribute,\n addEventListener,\n removeEventListener,\n jsUndefined\n} from \"./foreign.js\";\nexport {\n newMutMap,\n pokeMutMap,\n deleteMutMap,\n unsafeFreeze,\n unsafeLookup\n};\n", "var getProp = function (name) {\n return function (doctype) {\n return doctype[name];\n };\n};\n\nexport const _namespaceURI = getProp(\"namespaceURI\");\nexport const _prefix = getProp(\"prefix\");\nexport const localName = getProp(\"localName\");\nexport const tagName = getProp(\"tagName\");\n\nexport function id(node) {\n return function () {\n return node.id;\n };\n}\n\nexport function setId(id) {\n return function (node) {\n return function () {\n node.id = id;\n };\n };\n}\n\nexport function className(node) {\n return function () {\n return node.className;\n };\n}\n\nexport function classList(element) {\n return function () {\n return element.classList;\n };\n}\n\nexport function setClassName(className) {\n return function (node) {\n return function () {\n node.className = className;\n };\n };\n}\n\nexport function getElementsByTagName(localName) {\n return function (doc) {\n return function () {\n return doc.getElementsByTagName(localName);\n };\n };\n}\n\nexport function _getElementsByTagNameNS(ns) {\n return function (localName) {\n return function (doc) {\n return function () {\n return doc.getElementsByTagNameNS(ns, localName);\n };\n };\n };\n}\n\nexport function getElementsByClassName(classNames) {\n return function (doc) {\n return function () {\n return doc.getElementsByClassName(classNames);\n };\n };\n}\n\nexport function setAttribute(name) {\n return function (value) {\n return function (element) {\n return function () {\n element.setAttribute(name, value);\n };\n };\n };\n}\n\nexport function _getAttribute(name) {\n return function (element) {\n return function () {\n return element.getAttribute(name);\n };\n };\n}\n\nexport function hasAttribute(name) {\n return function (element) {\n return function () {\n return element.hasAttribute(name);\n };\n };\n}\n\nexport function removeAttribute(name) {\n return function (element) {\n return function () {\n element.removeAttribute(name);\n };\n };\n}\n\nexport function matches(selector) {\n return function(element) {\n return function () {\n return element.matches(selector);\n };\n };\n}\n\nexport function _closest(selector) {\n return function(element) {\n return function () {\n return element.closest(selector);\n };\n };\n}\n\n// - CSSOM ---------------------------------------------------------------------\n\nexport function scrollTop(node) {\n return function () {\n return node.scrollTop;\n };\n}\n\nexport function setScrollTop(scrollTop) {\n return function (node) {\n return function () {\n node.scrollTop = scrollTop;\n };\n };\n}\n\nexport function scrollLeft(node) {\n return function () {\n return node.scrollLeft;\n };\n}\n\nexport function setScrollLeft(scrollLeft) {\n return function (node) {\n return function () {\n node.scrollLeft = scrollLeft;\n };\n };\n}\n\nexport function scrollWidth(el) {\n return function () {\n return el.scrollWidth;\n };\n}\n\nexport function scrollHeight(el) {\n return function () {\n return el.scrollHeight;\n };\n}\n\nexport function clientTop(el) {\n return function () {\n return el.clientTop;\n };\n}\n\nexport function clientLeft(el) {\n return function () {\n return el.clientLeft;\n };\n}\n\nexport function clientWidth(el) {\n return function () {\n return el.clientWidth;\n };\n}\n\nexport function clientHeight(el) {\n return function () {\n return el.clientHeight;\n };\n}\n\nexport function getBoundingClientRect(el) {\n return function () {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.width,\n height: rect.height,\n x: rect.x,\n y: rect.y\n };\n };\n}\n\nexport function _attachShadow(props) {\n return function (el) {\n return function() {\n return el.attachShadow(props);\n };\n };\n}\n", "var getEffProp = function (name) {\n return function (node) {\n return function () {\n return node[name];\n };\n };\n};\n\nexport const children = getEffProp(\"children\");\nexport const _firstElementChild = getEffProp(\"firstElementChild\");\nexport const _lastElementChild = getEffProp(\"lastElementChild\");\nexport const childElementCount = getEffProp(\"childElementCount\");\n\nexport function _querySelector(selector) {\n return function (node) {\n return function () {\n return node.querySelector(selector);\n };\n };\n}\n\nexport function querySelectorAll(selector) {\n return function (node) {\n return function () {\n return node.querySelectorAll(selector);\n };\n };\n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar QuerySelector = function (x) {\n return x;\n};\nvar querySelector = function (qs) {\n var $2 = map(Data_Nullable.toMaybe);\n var $3 = $foreign[\"_querySelector\"](qs);\n return function ($4) {\n return $2($3($4));\n };\n};\nvar ordQuerySelector = Data_Ord.ordString;\nvar newtypeQuerySelector = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar lastElementChild = /* #__PURE__ */ (function () {\n var $5 = map(Data_Nullable.toMaybe);\n return function ($6) {\n return $5($foreign[\"_lastElementChild\"]($6));\n };\n})();\nvar firstElementChild = /* #__PURE__ */ (function () {\n var $7 = map(Data_Nullable.toMaybe);\n return function ($8) {\n return $7($foreign[\"_firstElementChild\"]($8));\n };\n})();\nvar eqQuerySelector = Data_Eq.eqString;\nexport {\n children,\n childElementCount,\n querySelectorAll\n} from \"./foreign.js\";\nexport {\n firstElementChild,\n lastElementChild,\n QuerySelector,\n querySelector,\n eqQuerySelector,\n ordQuerySelector,\n newtypeQuerySelector\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_DOM_Internal_Types from \"../Web.DOM.Internal.Types/index.js\";\nimport * as Web_DOM_ParentNode from \"../Web.DOM.ParentNode/index.js\";\nimport * as Web_DOM_ShadowRoot from \"../Web.DOM.ShadowRoot/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar show = /* #__PURE__ */ Data_Show.show(Web_DOM_ShadowRoot.showShadowRootMode);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar toParentNode = Unsafe_Coerce.unsafeCoerce;\nvar toNonDocumentTypeChildNode = Unsafe_Coerce.unsafeCoerce;\nvar toNode = Unsafe_Coerce.unsafeCoerce;\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar toChildNode = Unsafe_Coerce.unsafeCoerce;\nvar prefix = function ($3) {\n return Data_Nullable.toMaybe($foreign[\"_prefix\"]($3));\n};\nvar namespaceURI = function ($4) {\n return Data_Nullable.toMaybe($foreign[\"_namespaceURI\"]($4));\n};\nvar initToProps = function (init) {\n return {\n mode: show(init.mode),\n delegatesFocus: init.delegatesFocus\n };\n};\nvar getElementsByTagNameNS = function ($5) {\n return $foreign[\"_getElementsByTagNameNS\"](Data_Nullable.toNullable($5));\n};\nvar getAttribute = function (attr) {\n var $6 = map(Data_Nullable.toMaybe);\n var $7 = $foreign[\"_getAttribute\"](attr);\n return function ($8) {\n return $6($7($8));\n };\n};\nvar fromParentNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar fromNonDocumentTypeChildNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar fromNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar fromChildNode = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Element\");\nvar closest = function (qs) {\n var $9 = map(Data_Nullable.toMaybe);\n var $10 = $foreign[\"_closest\"](qs);\n return function ($11) {\n return $9($10($11));\n };\n};\nvar attachShadow = function ($12) {\n return $foreign[\"_attachShadow\"](initToProps($12));\n};\nexport {\n localName,\n tagName,\n id,\n setId,\n className,\n classList,\n setClassName,\n getElementsByTagName,\n getElementsByClassName,\n setAttribute,\n hasAttribute,\n removeAttribute,\n matches,\n scrollTop,\n setScrollTop,\n scrollLeft,\n setScrollLeft,\n scrollWidth,\n scrollHeight,\n clientTop,\n clientLeft,\n clientWidth,\n clientHeight,\n getBoundingClientRect\n} from \"./foreign.js\";\nexport {\n fromNode,\n fromChildNode,\n fromNonDocumentTypeChildNode,\n fromParentNode,\n fromEventTarget,\n toNode,\n toChildNode,\n toNonDocumentTypeChildNode,\n toParentNode,\n toEventTarget,\n namespaceURI,\n prefix,\n getElementsByTagNameNS,\n getAttribute,\n closest,\n attachShadow\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Halogen_VDom_Machine from \"../Halogen.VDom.Machine/index.js\";\nimport * as Halogen_VDom_Types from \"../Halogen.VDom.Types/index.js\";\nimport * as Halogen_VDom_Util from \"../Halogen.VDom.Util/index.js\";\nimport * as Web_DOM_Element from \"../Web.DOM.Element/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar VDomSpec = function (x) {\n return x;\n};\nvar haltWidget = function (v) {\n return Halogen_VDom_Machine.halt(v.widget);\n};\nvar $lazy_patchWidget = /* #__PURE__ */ $runtime_lazy(\"patchWidget\", \"Halogen.VDom.DOM\", function () {\n return function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_patchWidget(291)(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 }, $lazy_patchWidget(296), haltWidget));\n })(res);\n return res$prime;\n };\n haltWidget(state);\n return state.build(vdom);\n };\n});\nvar patchWidget = /* #__PURE__ */ $lazy_patchWidget(286);\nvar haltText = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n return Halogen_VDom_Util.removeChild(v.node, parent);\n};\nvar $lazy_patchText = /* #__PURE__ */ $runtime_lazy(\"patchText\", \"Halogen.VDom.DOM\", function () {\n return function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_patchText(82)(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, $lazy_patchText(85), 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, $lazy_patchText(89), haltText));\n };\n };\n haltText(state);\n return state.build(vdom);\n };\n});\nvar patchText = /* #__PURE__ */ $lazy_patchText(77);\nvar 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};\nvar 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};\nvar eqElemSpec = function (ns1, v, ns2, v1) {\n var $63 = v === v1;\n if ($63) {\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};\nvar $lazy_patchElem = /* #__PURE__ */ $runtime_lazy(\"patchElem\", \"Halogen.VDom.DOM\", function () {\n return function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_patchElem(135)(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, $lazy_patchElem(149), 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, $lazy_patchElem(172), haltElem));\n };\n haltElem(state);\n return state.build(vdom);\n };\n});\nvar patchElem = /* #__PURE__ */ $lazy_patchElem(130);\nvar $lazy_patchKeyed = /* #__PURE__ */ $runtime_lazy(\"patchKeyed\", \"Halogen.VDom.DOM\", function () {\n return function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_patchKeyed(222)(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, $lazy_patchKeyed(237), 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, $lazy_patchKeyed(261), haltKeyed));\n };\n haltKeyed(state);\n return state.build(vdom);\n };\n});\nvar patchKeyed = /* #__PURE__ */ $lazy_patchKeyed(217);\nvar 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};\nvar 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};\nvar 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};\nvar 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};\nvar buildVDom = function (spec) {\n var $lazy_build = $runtime_lazy(\"build\", \"Halogen.VDom.DOM\", function () {\n return function (v) {\n if (v instanceof Halogen_VDom_Types.Text) {\n return buildText(spec, $lazy_build(59), v.value0);\n };\n if (v instanceof Halogen_VDom_Types.Elem) {\n return buildElem(spec, $lazy_build(60), v.value0, v.value1, v.value2, v.value3);\n };\n if (v instanceof Halogen_VDom_Types.Keyed) {\n return buildKeyed(spec, $lazy_build(61), v.value0, v.value1, v.value2, v.value3);\n };\n if (v instanceof Halogen_VDom_Types.Widget) {\n return buildWidget(spec, $lazy_build(62), v.value0);\n };\n if (v instanceof Halogen_VDom_Types.Grafted) {\n return $lazy_build(63)(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 });\n var build = $lazy_build(58);\n return build;\n};\nexport {\n VDomSpec,\n buildVDom,\n buildText,\n buildElem,\n buildKeyed,\n buildWidget\n};\n", "export function eventListener(fn) {\n return function () {\n return function (event) {\n return fn(event)();\n };\n };\n}\n\nexport function addEventListenerWithOptions(type) {\n return function (listener) {\n return function (options) {\n return function (target) {\n return function () {\n return target.addEventListener(type, listener, options);\n };\n };\n };\n };\n}\n\nexport function addEventListener(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\nexport function removeEventListener(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\nexport function dispatchEvent(event) {\n return function (target) {\n return function () {\n return target.dispatchEvent(event);\n };\n };\n}\n", "// Generated by purs version 0.15.14\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nimport * as Foreign_Object from \"../Foreign.Object/index.js\";\nimport * as Halogen_VDom_Machine from \"../Halogen.VDom.Machine/index.js\";\nimport * as Halogen_VDom_Util from \"../Halogen.VDom.Util/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_Event_EventTarget from \"../Web.Event.EventTarget/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorFn);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar Created = /* #__PURE__ */ (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})();\nvar Removed = /* #__PURE__ */ (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})();\nvar Attribute = /* #__PURE__ */ (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})();\nvar Property = /* #__PURE__ */ (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})();\nvar Handler = /* #__PURE__ */ (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})();\nvar Ref = /* #__PURE__ */ (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})();\nvar unsafeGetProperty = Halogen_VDom_Util.unsafeGetAny;\nvar setProperty = Halogen_VDom_Util.unsafeSetAny;\nvar 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};\nvar 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};\nvar propFromString = Unsafe_Coerce.unsafeCoerce;\nvar propFromNumber = Unsafe_Coerce.unsafeCoerce;\nvar propFromInt = Unsafe_Coerce.unsafeCoerce;\nvar propFromBoolean = Unsafe_Coerce.unsafeCoerce;\nvar functorProp = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof Handler) {\n return new Handler(v1.value0, map(map1(v))(v1.value1));\n };\n if (v1 instanceof Ref) {\n return new Ref(map(map1(v))(v1.value0));\n };\n return v1;\n };\n }\n};\nvar functorElemRef = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof Created) {\n return new Created(v(v1.value0));\n };\n if (v1 instanceof Removed) {\n return new Removed(v(v1.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 49, column 1 - line 51, column 36): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }\n};\nvar 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 $66 = v11.value2 === v2.value2;\n if ($66) {\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 $75 = Halogen_VDom_Util.refEq(elVal, v2.value1);\n if ($75) {\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 $lazy_patchProp = $runtime_lazy(\"patchProp\", \"Halogen.VDom.DOM.Prop\", function () {\n return 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, $lazy_patchProp(100), haltProp));\n };\n });\n var patchProp = $lazy_patchProp(87);\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};\nexport {\n Attribute,\n Property,\n Handler,\n Ref,\n Created,\n Removed,\n propFromString,\n propFromBoolean,\n propFromInt,\n propFromNumber,\n buildProp,\n functorProp,\n functorElemRef\n};\n", "// Generated by purs version 0.15.14\nimport * as DOM_HTML_Indexed_AutocompleteType from \"../DOM.HTML.Indexed.AutocompleteType/index.js\";\nimport * as DOM_HTML_Indexed_ButtonType from \"../DOM.HTML.Indexed.ButtonType/index.js\";\nimport * as DOM_HTML_Indexed_CrossOriginValue from \"../DOM.HTML.Indexed.CrossOriginValue/index.js\";\nimport * as DOM_HTML_Indexed_DirValue from \"../DOM.HTML.Indexed.DirValue/index.js\";\nimport * as DOM_HTML_Indexed_FormMethod from \"../DOM.HTML.Indexed.FormMethod/index.js\";\nimport * as DOM_HTML_Indexed_InputAcceptType from \"../DOM.HTML.Indexed.InputAcceptType/index.js\";\nimport * as DOM_HTML_Indexed_InputType from \"../DOM.HTML.Indexed.InputType/index.js\";\nimport * as DOM_HTML_Indexed_KindValue from \"../DOM.HTML.Indexed.KindValue/index.js\";\nimport * as DOM_HTML_Indexed_MenuType from \"../DOM.HTML.Indexed.MenuType/index.js\";\nimport * as DOM_HTML_Indexed_MenuitemType from \"../DOM.HTML.Indexed.MenuitemType/index.js\";\nimport * as DOM_HTML_Indexed_OrderedListType from \"../DOM.HTML.Indexed.OrderedListType/index.js\";\nimport * as DOM_HTML_Indexed_PreloadValue from \"../DOM.HTML.Indexed.PreloadValue/index.js\";\nimport * as DOM_HTML_Indexed_ScopeValue from \"../DOM.HTML.Indexed.ScopeValue/index.js\";\nimport * as DOM_HTML_Indexed_StepValue from \"../DOM.HTML.Indexed.StepValue/index.js\";\nimport * as DOM_HTML_Indexed_WrapValue from \"../DOM.HTML.Indexed.WrapValue/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Halogen_VDom from \"../Halogen.VDom/index.js\";\nimport * as Halogen_VDom_DOM_Prop from \"../Halogen.VDom.DOM.Prop/index.js\";\nimport * as Halogen_VDom_Types from \"../Halogen.VDom.Types/index.js\";\nimport * as Web_HTML_Common from \"../Web.HTML.Common/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Halogen_VDom_DOM_Prop.functorProp);\nvar map2 = /* #__PURE__ */ Data_Functor.map(Halogen_Query_Input.functorInput);\nvar un = /* #__PURE__ */ Data_Newtype.un();\nvar bimap = /* #__PURE__ */ Data_Bifunctor.bimap(Halogen_VDom_Types.bifunctorVDom);\nvar HTML = function (x) {\n return x;\n};\nvar widget = function ($28) {\n return HTML(Halogen_VDom_Types.Widget.create($28));\n};\nvar toPropValue = function (dict) {\n return dict.toPropValue;\n};\nvar text = function ($29) {\n return HTML(Halogen_VDom_Types.Text.create($29));\n};\nvar ref = function (f) {\n return new Halogen_VDom_DOM_Prop.Ref(function ($30) {\n return f((function (v) {\n if (v instanceof Halogen_VDom_DOM_Prop.Created) {\n return new Data_Maybe.Just(v.value0);\n };\n if (v instanceof Halogen_VDom_DOM_Prop.Removed) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Halogen.HTML.Core (line 109, column 21 - line 111, column 23): \" + [ v.constructor.name ]);\n })($30));\n });\n};\nvar prop = function (dictIsProp) {\n var toPropValue1 = toPropValue(dictIsProp);\n return function (v) {\n var $31 = Halogen_VDom_DOM_Prop.Property.create(v);\n return function ($32) {\n return $31(toPropValue1($32));\n };\n };\n};\nvar newtypeHTML = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar renderWidget = function (f) {\n return function (g) {\n return function (v) {\n return Halogen_VDom_Types.renderWidget(map(map1(map2(f))))((function () {\n var $33 = un(HTML);\n return function ($34) {\n return $33(g($34));\n };\n })())(v);\n };\n };\n};\nvar keyed = function (ns) {\n return function (name) {\n return function (props) {\n return function (children) {\n return new Halogen_VDom_Types.Keyed(ns, name, props, children);\n };\n };\n };\n};\nvar isPropWrapValue = {\n toPropValue: function ($35) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_WrapValue.renderWrapValue($35));\n }\n};\nvar isPropString = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromString\n};\nvar isPropStepValue = {\n toPropValue: function ($36) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_StepValue.renderStepValue($36));\n }\n};\nvar isPropScopeValue = {\n toPropValue: function ($37) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_ScopeValue.renderScopeValue($37));\n }\n};\nvar isPropPreloadValue = {\n toPropValue: function ($38) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_PreloadValue.renderPreloadValue($38));\n }\n};\nvar isPropOrderedListType = {\n toPropValue: function ($39) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_OrderedListType.renderOrderedListType($39));\n }\n};\nvar isPropNumber = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromNumber\n};\nvar isPropMenuitemType = {\n toPropValue: function ($40) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_MenuitemType.renderMenuitemType($40));\n }\n};\nvar isPropMenuType = {\n toPropValue: function ($41) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_MenuType.renderMenuType($41));\n }\n};\nvar isPropMediaType = {\n toPropValue: /* #__PURE__ */ (function () {\n var $42 = Data_Newtype.unwrap();\n return function ($43) {\n return Halogen_VDom_DOM_Prop.propFromString($42($43));\n };\n })()\n};\nvar isPropKindValue = {\n toPropValue: function ($44) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_KindValue.renderKindValue($44));\n }\n};\nvar isPropInt = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromInt\n};\nvar isPropInputType = {\n toPropValue: function ($45) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_InputType.renderInputType($45));\n }\n};\nvar isPropInputAcceptType = {\n toPropValue: function ($46) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_InputAcceptType.renderInputAcceptType($46));\n }\n};\nvar isPropFormMethod = {\n toPropValue: function ($47) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_FormMethod.renderFormMethod($47));\n }\n};\nvar isPropDirValue = {\n toPropValue: function ($48) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_DirValue.renderDirValue($48));\n }\n};\nvar isPropCrossOriginValue = {\n toPropValue: function ($49) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_CrossOriginValue.renderCrossOriginValue($49));\n }\n};\nvar isPropButtonType = {\n toPropValue: function ($50) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_ButtonType.renderButtonType($50));\n }\n};\nvar isPropBoolean = {\n toPropValue: Halogen_VDom_DOM_Prop.propFromBoolean\n};\nvar isPropAutocompleteType = {\n toPropValue: function ($51) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_AutocompleteType.renderAutocompleteType($51));\n }\n};\nvar handler = /* #__PURE__ */ (function () {\n return Halogen_VDom_DOM_Prop.Handler.create;\n})();\nvar 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};\nvar bifunctorHTML = {\n bimap: function (f) {\n return function (g) {\n return function (v) {\n return bimap(map(map1(map2(g))))(f)(v);\n };\n };\n }\n};\nvar functorHTML = {\n map: /* #__PURE__ */ Data_Bifunctor.rmap(bifunctorHTML)\n};\nvar attr = function (ns) {\n return function (v) {\n return Halogen_VDom_DOM_Prop.Attribute.create(ns)(v);\n };\n};\nexport {\n HTML,\n renderWidget,\n widget,\n text,\n element,\n keyed,\n prop,\n attr,\n handler,\n ref,\n toPropValue,\n newtypeHTML,\n bifunctorHTML,\n functorHTML,\n isPropString,\n isPropInt,\n isPropNumber,\n isPropBoolean,\n isPropMediaType,\n isPropButtonType,\n isPropCrossOriginValue,\n isPropDirValue,\n isPropFormMethod,\n isPropInputType,\n isPropKindValue,\n isPropMenuitemType,\n isPropMenuType,\n isPropAutocompleteType,\n isPropOrderedListType,\n isPropPreloadValue,\n isPropScopeValue,\n isPropStepValue,\n isPropWrapValue,\n isPropInputAcceptType\n};\nexport {\n ElemName,\n Namespace\n} from \"../Halogen.VDom/index.js\";\nexport {\n Attribute,\n Handler,\n Property,\n Ref\n} from \"../Halogen.VDom.DOM.Prop/index.js\";\nexport {\n AttrName,\n ClassName,\n PropName\n} from \"../Web.HTML.Common/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Const from \"../Data.Const/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_List_NonEmpty from \"../Data.List.NonEmpty/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_NonEmpty from \"../Data.NonEmpty/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar Pure = /* #__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})();\nvar Lift = /* #__PURE__ */ (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})();\nvar Ap = /* #__PURE__ */ (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})();\nvar mkAp = function (fba) {\n return function (fb) {\n return new Ap(fba, fb);\n };\n};\nvar liftFreeAp = /* #__PURE__ */ (function () {\n return Lift.create;\n})();\nvar goLeft = function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n return function (fStack) {\n return function (valStack) {\n return function (nat) {\n return function (func) {\n return function (count) {\n if (func instanceof Pure) {\n return new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: pure(func.value0),\n count: count\n }, fStack), valStack);\n };\n if (func instanceof Lift) {\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 return goLeft(dictApplicative)(fStack)(Data_List_NonEmpty.cons(func.value1)(valStack))(nat)(func.value0)(count + 1 | 0);\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 };\n };\n };\n };\n};\nvar goApply = function (dictApplicative) {\n var apply = Control_Apply.apply(dictApplicative.Apply0());\n return function (fStack) {\n return function (vals) {\n return function (gVal) {\n if (fStack instanceof Data_List_Types.Nil) {\n return new Data_Either.Left(gVal);\n };\n if (fStack instanceof Data_List_Types.Cons) {\n var gRes = apply(fStack.value0.func)(gVal);\n var $31 = fStack.value0.count === 1;\n if ($31) {\n if (fStack.value1 instanceof Data_List_Types.Nil) {\n return new Data_Either.Left(gRes);\n };\n return goApply(dictApplicative)(fStack.value1)(vals)(gRes);\n };\n if (vals instanceof Data_List_Types.Nil) {\n return new Data_Either.Left(gRes);\n };\n if (vals instanceof Data_List_Types.Cons) {\n return new Data_Either.Right(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 };\n };\n};\nvar functorFreeAp = {\n map: function (f) {\n return function (x) {\n return mkAp(new Pure(f))(x);\n };\n }\n};\nvar foldFreeAp = function (dictApplicative) {\n var goApply1 = goApply(dictApplicative);\n var pure = Control_Applicative.pure(dictApplicative);\n var goLeft1 = goLeft(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 = goApply1(v.value0)(v.value1.value1)(pure(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 = goApply1(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 = goLeft1(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};\nvar retractFreeAp = function (dictApplicative) {\n return foldFreeAp(dictApplicative)(identity);\n};\nvar applyFreeAp = {\n apply: function (fba) {\n return function (fb) {\n return mkAp(fba)(fb);\n };\n },\n Functor0: function () {\n return functorFreeAp;\n }\n};\nvar applicativeFreeAp = /* #__PURE__ */ (function () {\n return {\n pure: Pure.create,\n Apply0: function () {\n return applyFreeAp;\n }\n };\n})();\nvar foldFreeAp1 = /* #__PURE__ */ foldFreeAp(applicativeFreeAp);\nvar hoistFreeAp = function (f) {\n return foldFreeAp1(function ($54) {\n return liftFreeAp(f($54));\n });\n};\nvar analyzeFreeAp = function (dictMonoid) {\n var foldFreeAp2 = foldFreeAp(Data_Const.applicativeConst(dictMonoid));\n return function (k) {\n var $55 = foldFreeAp2(function ($57) {\n return Data_Const.Const(k($57));\n });\n return function ($56) {\n return unwrap($55($56));\n };\n };\n};\nexport {\n liftFreeAp,\n retractFreeAp,\n foldFreeAp,\n hoistFreeAp,\n analyzeFreeAp,\n functorFreeAp,\n applyFreeAp,\n applicativeFreeAp\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar map = /* #__PURE__ */ Data_Functor.map(Data_List_Types.functorList);\nvar CatQueue = /* #__PURE__ */ (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})();\nvar unsnoc = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value1 instanceof Data_List_Types.Cons) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value1.value0, new CatQueue(v.value0, v.value1.value1)));\n };\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.value1 instanceof Data_List_Types.Nil) {\n $copy_v = new CatQueue(Data_List_Types.Nil.value, Data_List.reverse(v.value0));\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 92, column 1 - line 92, column 63): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n};\nvar 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 82, column 1 - line 82, column 63): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n};\nvar snoc = function (v) {\n return function (a) {\n return new CatQueue(v.value0, new Data_List_Types.Cons(a, v.value1));\n };\n};\nvar showCatQueue = function (dictShow) {\n var show = Data_Show.show(Data_List_Types.showList(dictShow));\n return {\n show: function (v) {\n return \"(CatQueue \" + (show(v.value0) + (\" \" + (show(v.value1) + \")\")));\n }\n };\n};\nvar $$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};\nvar length = function (v) {\n return Data_List.length(v.value0) + Data_List.length(v.value1) | 0;\n};\nvar functorCatQueue = {\n map: function (f) {\n return function (v) {\n return new CatQueue(map(f)(v.value0), map(f)(v.value1));\n };\n }\n};\nvar foldableCatQueue = {\n foldMap: function (dictMonoid) {\n return Data_Foldable.foldMapDefaultL(foldableCatQueue)(dictMonoid);\n },\n foldr: function (f) {\n return Data_Foldable.foldrDefault(foldableCatQueue)(f);\n },\n foldl: function (f) {\n var go = function ($copy_acc) {\n return function ($copy_q) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, q) {\n var v = uncons(q);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_acc = f(acc)(v.value0.value0);\n $copy_q = v.value0.value1;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return acc;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 147, column 16 - line 149, column 22): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_q);\n };\n return $tco_result;\n };\n };\n return go;\n }\n};\nvar foldl = /* #__PURE__ */ Data_Foldable.foldl(foldableCatQueue);\nvar semigroupCatQueue = {\n append: /* #__PURE__ */ foldl(snoc)\n};\nvar empty = /* #__PURE__ */ (function () {\n return new CatQueue(Data_List_Types.Nil.value, Data_List_Types.Nil.value);\n})();\nvar monoidCatQueue = {\n mempty: empty,\n Semigroup0: function () {\n return semigroupCatQueue;\n }\n};\nvar singleton = /* #__PURE__ */ snoc(empty);\nvar fromFoldable = function (dictFoldable) {\n var foldMap = Data_Foldable.foldMap(dictFoldable)(monoidCatQueue);\n return function (f) {\n return foldMap(singleton)(f);\n };\n};\nvar traversableCatQueue = {\n traverse: function (dictApplicative) {\n var Apply0 = dictApplicative.Apply0();\n var map1 = Data_Functor.map(Apply0.Functor0());\n var lift2 = Control_Apply.lift2(Apply0);\n var pure = Control_Applicative.pure(dictApplicative);\n return function (f) {\n var $123 = map1(foldl(snoc)(empty));\n var $124 = foldl(function (acc) {\n var $126 = lift2(snoc)(acc);\n return function ($127) {\n return $126(f($127));\n };\n })(pure(empty));\n return function ($125) {\n return $123($124($125));\n };\n };\n },\n sequence: function (dictApplicative) {\n return Data_Traversable.sequenceDefault(traversableCatQueue)(dictApplicative);\n },\n Functor0: function () {\n return functorCatQueue;\n },\n Foldable1: function () {\n return foldableCatQueue;\n }\n};\nvar unfoldable1CatQueue = {\n unfoldr1: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v.value1 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return snoc(memo)(v.value0);\n };\n if (v.value1 instanceof Data_Maybe.Just) {\n $tco_var_source = v.value1.value0;\n $copy_memo = snoc(memo)(v.value0);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 154, column 24 - line 156, column 57): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(empty);\n };\n }\n};\nvar unfoldableCatQueue = {\n unfoldr: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return memo;\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_source = v.value0.value1;\n $copy_memo = snoc(memo)(v.value0.value0);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 161, column 24 - line 163, column 57): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(empty);\n };\n },\n Unfoldable10: function () {\n return unfoldable1CatQueue;\n }\n};\nvar cqEq = function (dictEq) {\n var elemEq = Data_Eq.eq(dictEq);\n var go = function ($copy_xs) {\n return function ($copy_ys) {\n var $tco_var_xs = $copy_xs;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(xs, ys) {\n var v = uncons(ys);\n var v1 = uncons(xs);\n if (v1 instanceof Data_Maybe.Just && (v instanceof Data_Maybe.Just && elemEq(v1.value0.value0)(v.value0.value0))) {\n $tco_var_xs = v1.value0.value1;\n $copy_ys = v.value0.value1;\n return;\n };\n if (v1 instanceof Data_Maybe.Nothing && v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return true;\n };\n $tco_done = true;\n return false;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_xs, $copy_ys);\n };\n return $tco_result;\n };\n };\n return go;\n};\nvar eqCatQueue = function (dictEq) {\n return {\n eq: cqEq(dictEq)\n };\n};\nvar cqCompare = function (dictOrd) {\n var elemCompare = Data_Ord.compare(dictOrd);\n var go = function ($copy_xs) {\n return function ($copy_ys) {\n var $tco_var_xs = $copy_xs;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(xs, ys) {\n var v = uncons(ys);\n var v1 = uncons(xs);\n if (v1 instanceof Data_Maybe.Just && v instanceof Data_Maybe.Just) {\n var v2 = elemCompare(v1.value0.value0)(v.value0.value0);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_var_xs = v1.value0.value1;\n $copy_ys = v.value0.value1;\n return;\n };\n $tco_done = true;\n return v2;\n };\n if (v1 instanceof Data_Maybe.Just && v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return Data_Ordering.GT.value;\n };\n if (v1 instanceof Data_Maybe.Nothing && v instanceof Data_Maybe.Just) {\n $tco_done = true;\n return Data_Ordering.LT.value;\n };\n if (v1 instanceof Data_Maybe.Nothing && v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return Data_Ordering.EQ.value;\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 117, column 16 - line 124, column 30): \" + [ v1.constructor.name, v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_xs, $copy_ys);\n };\n return $tco_result;\n };\n };\n return go;\n};\nvar ordCatQueue = function (dictOrd) {\n var eqCatQueue1 = eqCatQueue(dictOrd.Eq0());\n return {\n compare: cqCompare(dictOrd),\n Eq0: function () {\n return eqCatQueue1;\n }\n };\n};\nvar cons = function (a) {\n return function (v) {\n return new CatQueue(new Data_List_Types.Cons(a, v.value0), v.value1);\n };\n};\nvar monadCatQueue = {\n Applicative0: function () {\n return applicativeCatQueue;\n },\n Bind1: function () {\n return bindCatQueue;\n }\n};\nvar bindCatQueue = {\n bind: /* #__PURE__ */ Data_Function.flip(/* #__PURE__ */ Data_Foldable.foldMap(foldableCatQueue)(monoidCatQueue)),\n Apply0: function () {\n return $lazy_applyCatQueue(0);\n }\n};\nvar applicativeCatQueue = {\n pure: singleton,\n Apply0: function () {\n return $lazy_applyCatQueue(0);\n }\n};\nvar $lazy_applyCatQueue = /* #__PURE__ */ $runtime_lazy(\"applyCatQueue\", \"Data.CatQueue\", function () {\n return {\n apply: Control_Monad.ap(monadCatQueue),\n Functor0: function () {\n return functorCatQueue;\n }\n };\n});\nvar applyCatQueue = /* #__PURE__ */ $lazy_applyCatQueue(174);\nvar altCatQueue = {\n alt: /* #__PURE__ */ Data_Semigroup.append(semigroupCatQueue),\n Functor0: function () {\n return functorCatQueue;\n }\n};\nvar plusCatQueue = {\n empty: empty,\n Alt0: function () {\n return altCatQueue;\n }\n};\nvar alternativeCatQueue = {\n Applicative0: function () {\n return applicativeCatQueue;\n },\n Plus1: function () {\n return plusCatQueue;\n }\n};\nvar monadPlusCatQueue = {\n Monad0: function () {\n return monadCatQueue;\n },\n Alternative1: function () {\n return alternativeCatQueue;\n }\n};\nexport {\n CatQueue,\n empty,\n $$null as null,\n singleton,\n length,\n cons,\n snoc,\n uncons,\n unsnoc,\n fromFoldable,\n eqCatQueue,\n ordCatQueue,\n semigroupCatQueue,\n monoidCatQueue,\n showCatQueue,\n foldableCatQueue,\n unfoldable1CatQueue,\n unfoldableCatQueue,\n traversableCatQueue,\n functorCatQueue,\n applyCatQueue,\n applicativeCatQueue,\n bindCatQueue,\n monadCatQueue,\n altCatQueue,\n plusCatQueue,\n alternativeCatQueue,\n monadPlusCatQueue\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Data_CatQueue from \"../Data.CatQueue/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Semiring from \"../Data.Semiring/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar CatNil = /* #__PURE__ */ (function () {\n function CatNil() {\n\n };\n CatNil.value = new CatNil();\n return CatNil;\n})();\nvar CatCons = /* #__PURE__ */ (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})();\nvar showCatList = function (dictShow) {\n var show = Data_Show.show(dictShow);\n return {\n show: function (v) {\n if (v instanceof CatNil) {\n return \"CatNil\";\n };\n if (v instanceof CatCons) {\n return \"(CatList \" + (show(v.value0) + (\" \" + (Data_Show.show(Data_CatQueue.showCatQueue(showCatList(dictShow)))(v.value1) + \")\")));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 147, column 1 - line 149, column 71): \" + [ v.constructor.name ]);\n }\n };\n};\nvar $$null = function (v) {\n if (v instanceof CatNil) {\n return true;\n };\n return false;\n};\nvar 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 108, column 1 - line 108, column 54): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n};\nvar foldr = function (k) {\n return function (b) {\n return function (q) {\n var foldl = function ($copy_v) {\n return function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v = $copy_v;\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, v1, v2) {\n if (v2 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return v1;\n };\n if (v2 instanceof Data_List_Types.Cons) {\n $tco_var_v = v;\n $tco_var_v1 = v(v1)(v2.value0);\n $copy_v2 = v2.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 124, column 3 - line 124, column 59): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_v1, $copy_v2);\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 120, column 14 - line 122, 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};\nvar 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 $66 = Data_CatQueue[\"null\"](v.value1);\n if ($66) {\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 99, column 1 - line 99, column 61): \" + [ v.constructor.name ]);\n};\nvar foldableCatList = {\n foldMap: function (dictMonoid) {\n return Data_Foldable.foldMapDefaultL(foldableCatList)(dictMonoid);\n },\n foldr: function (f) {\n return function (s) {\n return function (l) {\n return Data_Foldable.foldrDefault(foldableCatList)(f)(s)(l);\n };\n };\n },\n foldl: function (f) {\n var go = function ($copy_acc) {\n return function ($copy_q) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, q) {\n var v = uncons(q);\n if (v instanceof Data_Maybe.Just) {\n $tco_var_acc = f(acc)(v.value0.value0);\n $copy_q = v.value0.value1;\n return;\n };\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return acc;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 156, column 16 - line 158, column 22): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_q);\n };\n return $tco_result;\n };\n };\n return go;\n }\n};\nvar length = /* #__PURE__ */ Data_Foldable.length(foldableCatList)(Data_Semiring.semiringInt);\nvar foldMap = function (dictMonoid) {\n var mempty = Data_Monoid.mempty(dictMonoid);\n var append2 = Data_Semigroup.append(dictMonoid.Semigroup0());\n return function (v) {\n return function (v1) {\n if (v1 instanceof CatNil) {\n return mempty;\n };\n if (v1 instanceof CatCons) {\n var d = (function () {\n var $75 = Data_CatQueue[\"null\"](v1.value1);\n if ($75) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v1.value1);\n })();\n return append2(v(v1.value0))(foldMap(dictMonoid)(v)(d));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 134, column 1 - line 134, column 62): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n};\nvar empty = /* #__PURE__ */ (function () {\n return CatNil.value;\n})();\nvar append = link;\nvar cons = function (a) {\n return function (cat) {\n return append(new CatCons(a, Data_CatQueue.empty))(cat);\n };\n};\nvar functorCatList = {\n map: function (v) {\n return function (v1) {\n if (v1 instanceof CatNil) {\n return CatNil.value;\n };\n if (v1 instanceof CatCons) {\n var d = (function () {\n var $80 = Data_CatQueue[\"null\"](v1.value1);\n if ($80) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v1.value1);\n })();\n return cons(v(v1.value0))(Data_Functor.map(functorCatList)(v)(d));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 184, column 1 - line 188, column 26): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n }\n};\nvar singleton = function (a) {\n return cons(a)(CatNil.value);\n};\nvar traversableCatList = {\n traverse: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map = Data_Functor.map(Apply0.Functor0());\n return function (v) {\n return function (v1) {\n if (v1 instanceof CatNil) {\n return pure(CatNil.value);\n };\n if (v1 instanceof CatCons) {\n var d = (function () {\n var $85 = Data_CatQueue[\"null\"](v1.value1);\n if ($85) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v1.value1);\n })();\n return apply(map(cons)(v(v1.value0)))(Data_Traversable.traverse(traversableCatList)(dictApplicative)(v)(d));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 174, column 1 - line 182, column 33): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n },\n sequence: function (dictApplicative) {\n var pure = Control_Applicative.pure(dictApplicative);\n var Apply0 = dictApplicative.Apply0();\n var apply = Control_Apply.apply(Apply0);\n var map = Data_Functor.map(Apply0.Functor0());\n return function (v) {\n if (v instanceof CatNil) {\n return pure(CatNil.value);\n };\n if (v instanceof CatCons) {\n var d = (function () {\n var $89 = Data_CatQueue[\"null\"](v.value1);\n if ($89) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v.value1);\n })();\n return apply(map(cons)(v.value0))(Data_Traversable.sequence(traversableCatList)(dictApplicative)(d));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 174, column 1 - line 182, column 33): \" + [ v.constructor.name ]);\n };\n },\n Functor0: function () {\n return functorCatList;\n },\n Foldable1: function () {\n return foldableCatList;\n }\n};\nvar semigroupCatList = {\n append: append\n};\nvar monoidCatList = /* #__PURE__ */ (function () {\n return {\n mempty: CatNil.value,\n Semigroup0: function () {\n return semigroupCatList;\n }\n };\n})();\nvar monadCatList = {\n Applicative0: function () {\n return applicativeCatList;\n },\n Bind1: function () {\n return bindCatList;\n }\n};\nvar bindCatList = {\n bind: /* #__PURE__ */ Data_Function.flip(/* #__PURE__ */ foldMap(monoidCatList)),\n Apply0: function () {\n return $lazy_applyCatList(0);\n }\n};\nvar applicativeCatList = {\n pure: singleton,\n Apply0: function () {\n return $lazy_applyCatList(0);\n }\n};\nvar $lazy_applyCatList = /* #__PURE__ */ $runtime_lazy(\"applyCatList\", \"Data.CatList\", function () {\n return {\n apply: Control_Monad.ap(monadCatList),\n Functor0: function () {\n return functorCatList;\n }\n };\n});\nvar applyCatList = /* #__PURE__ */ $lazy_applyCatList(190);\nvar fromFoldable = function (dictFoldable) {\n var foldMap1 = Data_Foldable.foldMap(dictFoldable)(monoidCatList);\n return function (f) {\n return foldMap1(singleton)(f);\n };\n};\nvar snoc = function (cat) {\n return function (a) {\n return append(cat)(new CatCons(a, Data_CatQueue.empty));\n };\n};\nvar unfoldable1CatList = {\n unfoldr1: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v.value1 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return snoc(memo)(v.value0);\n };\n if (v.value1 instanceof Data_Maybe.Just) {\n $tco_var_source = v.value1.value0;\n $copy_memo = snoc(memo)(v.value0);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 170, column 24 - line 172, column 57): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(CatNil.value);\n };\n }\n};\nvar unfoldableCatList = {\n unfoldr: function (f) {\n return function (b) {\n var go = function ($copy_source) {\n return function ($copy_memo) {\n var $tco_var_source = $copy_source;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(source, memo) {\n var v = f(source);\n if (v instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return memo;\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_source = v.value0.value1;\n $copy_memo = snoc(memo)(v.value0.value0);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 163, column 24 - line 165, column 57): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_source, $copy_memo);\n };\n return $tco_result;\n };\n };\n return go(b)(CatNil.value);\n };\n },\n Unfoldable10: function () {\n return unfoldable1CatList;\n }\n};\nvar altCatList = {\n alt: append,\n Functor0: function () {\n return functorCatList;\n }\n};\nvar plusCatList = {\n empty: empty,\n Alt0: function () {\n return altCatList;\n }\n};\nvar alternativeCatList = {\n Applicative0: function () {\n return applicativeCatList;\n },\n Plus1: function () {\n return plusCatList;\n }\n};\nvar monadPlusCatList = {\n Monad0: function () {\n return monadCatList;\n },\n Alternative1: function () {\n return alternativeCatList;\n }\n};\nexport {\n CatNil,\n CatCons,\n empty,\n $$null as null,\n singleton,\n length,\n append,\n cons,\n snoc,\n uncons,\n fromFoldable,\n semigroupCatList,\n monoidCatList,\n showCatList,\n foldableCatList,\n unfoldableCatList,\n unfoldable1CatList,\n traversableCatList,\n functorCatList,\n applyCatList,\n applicativeCatList,\n bindCatList,\n monadCatList,\n altCatList,\n plusCatList,\n alternativeCatList,\n monadPlusCatList\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Data_CatList from \"../Data.CatList/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Ordering from \"../Data.Ordering/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar append = /* #__PURE__ */ Data_Semigroup.append(Data_CatList.semigroupCatList);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorFn);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar ExpF = function (x) {\n return x;\n};\nvar Free = /* #__PURE__ */ (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})();\nvar Return = /* #__PURE__ */ (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})();\nvar Bind = /* #__PURE__ */ (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})();\nvar 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, append(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};\nvar runFreeM = function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return function (dictMonadRec) {\n var Monad0 = dictMonadRec.Monad0();\n var map2 = Data_Functor.map(((Monad0.Bind1()).Apply0()).Functor0());\n var pure1 = Control_Applicative.pure(Monad0.Applicative0());\n var tailRecM = Control_Monad_Rec_Class.tailRecM(dictMonadRec);\n return function (k) {\n var go = function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return map2(Control_Monad_Rec_Class.Done.create)(pure1(v.value0));\n };\n if (v instanceof Bind) {\n return map2(Control_Monad_Rec_Class.Loop.create)(k(map1(v.value1)(v.value0)));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 194, column 10 - line 196, column 37): \" + [ v.constructor.name ]);\n };\n return tailRecM(go);\n };\n };\n};\nvar runFree = function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return function (k) {\n var go = function ($copy_f) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(f) {\n var v = toView(f);\n if (v instanceof Return) {\n $tco_done = true;\n return v.value0;\n };\n if (v instanceof Bind) {\n $copy_f = k(map1(v.value1)(v.value0));\n return;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 178, column 10 - line 180, column 33): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_f);\n };\n return $tco_result;\n };\n return go;\n };\n};\nvar resume$prime = function (k) {\n return function (j) {\n return function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return j(v.value0);\n };\n if (v instanceof Bind) {\n return k(v.value0)(v.value1);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 213, column 17 - line 215, column 20): \" + [ v.constructor.name ]);\n };\n };\n};\nvar resume = function (dictFunctor) {\n var map1 = Data_Functor.map(dictFunctor);\n return resume$prime(function (g) {\n return function (i) {\n return new Data_Either.Left(map1(i)(g));\n };\n })(Data_Either.Right.create);\n};\nvar fromView = function (f) {\n return new Free(f, Data_CatList.empty);\n};\nvar wrap = function (f) {\n return fromView(new Bind(f, Unsafe_Coerce.unsafeCoerce));\n};\nvar suspendF = function (dictApplicative) {\n var pure1 = Control_Applicative.pure(dictApplicative);\n return function (f) {\n return wrap(pure1(f));\n };\n};\nvar freeMonad = {\n Applicative0: function () {\n return freeApplicative;\n },\n Bind1: function () {\n return freeBind;\n }\n};\nvar freeFunctor = {\n map: function (k) {\n return function (f) {\n return Control_Bind.bindFlipped(freeBind)((function () {\n var $189 = Control_Applicative.pure(freeApplicative);\n return function ($190) {\n return $189(k($190));\n };\n })())(f);\n };\n }\n};\nvar 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 $lazy_freeApply(0);\n }\n};\nvar freeApplicative = {\n pure: function ($191) {\n return fromView(Return.create($191));\n },\n Apply0: function () {\n return $lazy_freeApply(0);\n }\n};\nvar $lazy_freeApply = /* #__PURE__ */ $runtime_lazy(\"freeApply\", \"Control.Monad.Free\", function () {\n return {\n apply: Control_Monad.ap(freeMonad),\n Functor0: function () {\n return freeFunctor;\n }\n };\n});\nvar freeApply = /* #__PURE__ */ $lazy_freeApply(77);\nvar lift2 = /* #__PURE__ */ Control_Apply.lift2(freeApply);\nvar bind = /* #__PURE__ */ Control_Bind.bind(freeBind);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(freeApplicative);\nvar join = /* #__PURE__ */ Control_Bind.join(freeBind);\nvar semigroupFree = function (dictSemigroup) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar freeMonadRec = {\n tailRecM: function (k) {\n return function (a) {\n return bind(k(a))(function (v) {\n if (v instanceof Control_Monad_Rec_Class.Loop) {\n return Control_Monad_Rec_Class.tailRecM(freeMonadRec)(k)(v.value0);\n };\n if (v instanceof Control_Monad_Rec_Class.Done) {\n return pure(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 86, column 26 - line 88, column 21): \" + [ v.constructor.name ]);\n });\n };\n },\n Monad0: function () {\n return freeMonad;\n }\n};\nvar liftF = function (f) {\n return fromView(new Bind(f, function ($192) {\n return pure($192);\n }));\n};\nvar freeMonadTrans = {\n lift: function (dictMonad) {\n return liftF;\n }\n};\nvar monoidFree = function (dictMonoid) {\n var semigroupFree1 = semigroupFree(dictMonoid.Semigroup0());\n return {\n mempty: pure(Data_Monoid.mempty(dictMonoid)),\n Semigroup0: function () {\n return semigroupFree1;\n }\n };\n};\nvar substFree = function (k) {\n var go = function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return pure(v.value0);\n };\n if (v instanceof Bind) {\n return bind(k(v.value0))(map(go)(v.value1));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 168, column 10 - line 170, column 33): \" + [ v.constructor.name ]);\n };\n return go;\n};\nvar hoistFree = function (k) {\n return substFree(function ($193) {\n return liftF(k($193));\n });\n};\nvar foldableFree = function (dictFunctor) {\n var resume1 = resume(dictFunctor);\n return function (dictFoldable) {\n var foldMap = Data_Foldable.foldMap(dictFoldable);\n var foldl = Data_Foldable.foldl(dictFoldable);\n var foldr = Data_Foldable.foldr(dictFoldable);\n return {\n foldMap: function (dictMonoid) {\n var foldMap1 = foldMap(dictMonoid);\n return function (f) {\n var $lazy_go = $runtime_lazy(\"go\", \"Control.Monad.Free\", function () {\n return function ($194) {\n return (function (v) {\n if (v instanceof Data_Either.Left) {\n return foldMap1($lazy_go(94))(v.value0);\n };\n if (v instanceof Data_Either.Right) {\n return f(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 93, column 21 - line 95, column 21): \" + [ v.constructor.name ]);\n })(resume1($194));\n };\n });\n var go = $lazy_go(93);\n return go;\n };\n },\n foldl: function (f) {\n var go = function (r) {\n return function ($195) {\n return (function (v) {\n if (v instanceof Data_Either.Left) {\n return foldl(go)(r)(v.value0);\n };\n if (v instanceof Data_Either.Right) {\n return f(r)(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 98, column 23 - line 100, column 23): \" + [ v.constructor.name ]);\n })(resume1($195));\n };\n };\n return go;\n },\n foldr: function (f) {\n var go = function (r) {\n return function ($196) {\n return (function (v) {\n if (v instanceof Data_Either.Left) {\n return foldr(Data_Function.flip(go))(r)(v.value0);\n };\n if (v instanceof Data_Either.Right) {\n return f(v.value0)(r);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 103, column 23 - line 105, column 23): \" + [ v.constructor.name ]);\n })(resume1($196));\n };\n };\n return go;\n }\n };\n };\n};\nvar traversableFree = function (dictTraversable) {\n var Functor0 = dictTraversable.Functor0();\n var resume1 = resume(Functor0);\n var traverse = Data_Traversable.traverse(dictTraversable);\n var foldableFree1 = foldableFree(Functor0)(dictTraversable.Foldable1());\n return {\n traverse: function (dictApplicative) {\n var map1 = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse1 = traverse(dictApplicative);\n return function (f) {\n var $lazy_go = $runtime_lazy(\"go\", \"Control.Monad.Free\", function () {\n return function ($197) {\n return (function (v) {\n if (v instanceof Data_Either.Left) {\n return map1(function ($198) {\n return join(liftF($198));\n })(traverse1($lazy_go(111))(v.value0));\n };\n if (v instanceof Data_Either.Right) {\n return map1(pure)(f(v.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 110, column 21 - line 112, column 30): \" + [ v.constructor.name ]);\n })(resume1($197));\n };\n });\n var go = $lazy_go(110);\n return go;\n };\n },\n sequence: function (dictApplicative) {\n return function (tma) {\n return Data_Traversable.traverse(traversableFree(dictTraversable))(dictApplicative)(identity)(tma);\n };\n },\n Functor0: function () {\n return freeFunctor;\n },\n Foldable1: function () {\n return foldableFree1;\n }\n };\n};\nvar foldFree = function (dictMonadRec) {\n var Monad0 = dictMonadRec.Monad0();\n var map1 = Data_Functor.map(((Monad0.Bind1()).Apply0()).Functor0());\n var pure1 = Control_Applicative.pure(Monad0.Applicative0());\n var tailRecM = Control_Monad_Rec_Class.tailRecM(dictMonadRec);\n return function (k) {\n var go = function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return map1(Control_Monad_Rec_Class.Done.create)(pure1(v.value0));\n };\n if (v instanceof Bind) {\n return map1(function ($199) {\n return Control_Monad_Rec_Class.Loop.create(v.value1($199));\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 tailRecM(go);\n };\n};\nvar eqFree = function (dictFunctor) {\n var resume1 = resume(dictFunctor);\n return function (dictEq1) {\n var eq1 = Data_Eq.eq1(dictEq1);\n return function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return {\n eq: function (x) {\n return function (y) {\n var v = resume1(y);\n var v1 = resume1(x);\n if (v1 instanceof Data_Either.Left && v instanceof Data_Either.Left) {\n return eq1(eqFree(dictFunctor)(dictEq1)(dictEq))(v1.value0)(v.value0);\n };\n if (v1 instanceof Data_Either.Right && v instanceof Data_Either.Right) {\n return eq(v1.value0)(v.value0);\n };\n return false;\n };\n }\n };\n };\n };\n};\nvar ordFree = function (dictFunctor) {\n var resume1 = resume(dictFunctor);\n var eqFree1 = eqFree(dictFunctor);\n return function (dictOrd1) {\n var compare1 = Data_Ord.compare1(dictOrd1);\n var eqFree2 = eqFree1(dictOrd1.Eq10());\n return function (dictOrd) {\n var compare = Data_Ord.compare(dictOrd);\n var eqFree3 = eqFree2(dictOrd.Eq0());\n return {\n compare: function (x) {\n return function (y) {\n var v = resume1(y);\n var v1 = resume1(x);\n if (v1 instanceof Data_Either.Left && v instanceof Data_Either.Left) {\n return compare1(ordFree(dictFunctor)(dictOrd1)(dictOrd))(v1.value0)(v.value0);\n };\n if (v1 instanceof Data_Either.Left) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Either.Left) {\n return Data_Ordering.GT.value;\n };\n if (v1 instanceof Data_Either.Right && v instanceof Data_Either.Right) {\n return compare(v1.value0)(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 56, column 17 - line 60, column 36): \" + [ v1.constructor.name, v.constructor.name ]);\n };\n },\n Eq0: function () {\n return eqFree3;\n }\n };\n };\n };\n};\nvar eq1Free = function (dictFunctor) {\n var eqFree1 = eqFree(dictFunctor);\n return function (dictEq1) {\n var eqFree2 = eqFree1(dictEq1);\n return {\n eq1: function (dictEq) {\n return Data_Eq.eq(eqFree2(dictEq));\n }\n };\n };\n};\nvar ord1Free = function (dictFunctor) {\n var ordFree1 = ordFree(dictFunctor);\n var eq1Free1 = eq1Free(dictFunctor);\n return function (dictOrd1) {\n var ordFree2 = ordFree1(dictOrd1);\n var eq1Free2 = eq1Free1(dictOrd1.Eq10());\n return {\n compare1: function (dictOrd) {\n return Data_Ord.compare(ordFree2(dictOrd));\n },\n Eq10: function () {\n return eq1Free2;\n }\n };\n };\n};\nexport {\n suspendF,\n wrap,\n liftF,\n hoistFree,\n foldFree,\n substFree,\n runFree,\n runFreeM,\n resume,\n resume$prime,\n eqFree,\n eq1Free,\n ordFree,\n ord1Free,\n freeFunctor,\n freeBind,\n freeApplicative,\n freeApply,\n freeMonad,\n freeMonadTrans,\n freeMonadRec,\n foldableFree,\n traversableFree,\n semigroupFree,\n monoidFree\n};\n", "// Generated by purs version 0.15.14\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar ChildQuery = /* #__PURE__ */ (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})();\nvar unChildQueryBox = Unsafe_Coerce.unsafeCoerce;\nvar mkChildQueryBox = Unsafe_Coerce.unsafeCoerce;\nvar functorChildQuery = {\n map: function (f) {\n return unChildQueryBox(function (v) {\n return mkChildQueryBox(new ChildQuery(function (dictApplicative) {\n return v.value0(dictApplicative);\n }, v.value1, function ($8) {\n return f(v.value2($8));\n }));\n });\n }\n};\nexport {\n ChildQuery,\n mkChildQueryBox,\n unChildQueryBox,\n functorChildQuery\n};\n", "export function reallyUnsafeRefEq(a) {\n return function (b) {\n return a === b;\n };\n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nvar UnsafeRefEqFallback = function (x) {\n return x;\n};\nvar UnsafeRefEq = function (x) {\n return x;\n};\nvar unsafeRefEq = $foreign.reallyUnsafeRefEq;\nvar eqUnsafeRefEqFallback = function (dictEq) {\n var eq = Data_Eq.eq(dictEq);\n return {\n eq: function (v) {\n return function (v1) {\n return unsafeRefEq(v)(v1) || eq(v)(v1);\n };\n }\n };\n};\nvar eqUnsafeRefEq = {\n eq: function (v) {\n return function (v1) {\n return unsafeRefEq(v)(v1);\n };\n }\n};\nexport {\n reallyUnsafeRefEq\n} from \"./foreign.js\";\nexport {\n unsafeRefEq,\n UnsafeRefEq,\n UnsafeRefEqFallback,\n eqUnsafeRefEq,\n eqUnsafeRefEqFallback\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Apply from \"../Control.Apply/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Effect_Unsafe from \"../Effect.Unsafe/index.js\";\nimport * as Safe_Coerce from \"../Safe.Coerce/index.js\";\nimport * as Unsafe_Reference from \"../Unsafe.Reference/index.js\";\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Effect.functorEffect);\nvar coerce = /* #__PURE__ */ Safe_Coerce.coerce();\nvar bind = /* #__PURE__ */ Control_Bind.bind(Effect.bindEffect);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar append = /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray);\nvar traverse_ = /* #__PURE__ */ Data_Foldable.traverse_(Effect.applicativeEffect);\nvar traverse_1 = /* #__PURE__ */ traverse_(Data_Foldable.foldableArray);\nvar applySecond = /* #__PURE__ */ Control_Apply.applySecond(Effect.applyEffect);\nvar traverse_2 = /* #__PURE__ */ traverse_(Data_Foldable.foldableMaybe);\nvar Subscription = function (x) {\n return x;\n};\nvar Listener = function (x) {\n return x;\n};\nvar Emitter = function (x) {\n return x;\n};\nvar unsubscribe = function (v) {\n return v;\n};\nvar subscribe = function (v) {\n return function (k) {\n return v(function ($76) {\n return $$void(k($76));\n });\n };\n};\nvar semigroupSubscription = /* #__PURE__ */ Effect.semigroupEffect(Data_Semigroup.semigroupUnit);\nvar notify = function (v) {\n return function (a) {\n return v(a);\n };\n};\nvar monoidSubscription = /* #__PURE__ */ Effect.monoidEffect(Data_Monoid.monoidUnit);\nvar mempty = /* #__PURE__ */ Data_Monoid.mempty(/* #__PURE__ */ Data_Monoid.monoidFn(/* #__PURE__ */ Effect.monoidEffect(monoidSubscription)));\nvar makeEmitter = coerce;\nvar functorEmitter = {\n map: function (f) {\n return function (v) {\n return function (k) {\n return v(function ($77) {\n return k(f($77));\n });\n };\n };\n }\n};\nvar fold = function (f) {\n return function (v) {\n return function (b) {\n return function (k) {\n return function __do() {\n var result = Effect_Ref[\"new\"](b)();\n return v(function (a) {\n return bind(Effect_Ref.modify(f(a))(result))(k);\n })();\n };\n };\n };\n };\n};\nvar filter = function (p) {\n return function (v) {\n return function (k) {\n return v(function (a) {\n var $57 = p(a);\n if ($57) {\n return k(a);\n };\n return pure(Data_Unit.unit);\n });\n };\n };\n};\nvar 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 append(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 bind(Effect_Ref.read(subscribers))(traverse_1(function (k) {\n return k(a);\n }));\n }\n };\n};\nvar fix = function (f) {\n var v = Effect_Unsafe.unsafePerformEffect(create);\n var v1 = f(v.emitter);\n return function (k) {\n return function __do() {\n var v2 = subscribe(v1.input)(notify(v.listener))();\n var v3 = subscribe(v1.output)(k)();\n return applySecond(v2)(v3);\n };\n };\n};\nvar contravariantListener = {\n cmap: function (f) {\n return function (v) {\n return coerce(function ($78) {\n return v(f($78));\n });\n };\n }\n};\nvar applyEmitter = {\n apply: function (v) {\n return function (v1) {\n return function (k) {\n return function __do() {\n var latestA = Effect_Ref[\"new\"](Data_Maybe.Nothing.value)();\n var latestB = Effect_Ref[\"new\"](Data_Maybe.Nothing.value)();\n var v2 = v(function (a) {\n return function __do() {\n Effect_Ref.write(new Data_Maybe.Just(a))(latestA)();\n return bind(Effect_Ref.read(latestB))(traverse_2(function ($79) {\n return k(a($79));\n }))();\n };\n })();\n var v3 = v1(function (b) {\n return function __do() {\n Effect_Ref.write(new Data_Maybe.Just(b))(latestB)();\n return bind(Effect_Ref.read(latestA))(traverse_2(function ($80) {\n return k((function (v3) {\n return v3(b);\n })($80));\n }))();\n };\n })();\n return applySecond(v2)(v3);\n };\n };\n };\n },\n Functor0: function () {\n return functorEmitter;\n }\n};\nvar lift2 = /* #__PURE__ */ Control_Apply.lift2(applyEmitter);\nvar semigroupEmitter = function (dictSemigroup) {\n return {\n append: lift2(Data_Semigroup.append(dictSemigroup))\n };\n};\nvar monoidEmitter = function (dictMonoid) {\n var semigroupEmitter1 = semigroupEmitter(dictMonoid.Semigroup0());\n return {\n mempty: mempty,\n Semigroup0: function () {\n return semigroupEmitter1;\n }\n };\n};\nvar applicativeEmitter = {\n pure: function (a) {\n return function (k) {\n return function __do() {\n k(a)();\n return pure(Data_Unit.unit);\n };\n };\n },\n Apply0: function () {\n return applyEmitter;\n }\n};\nvar altEmitter = {\n alt: function (v) {\n return function (v1) {\n return function (k) {\n return function __do() {\n var v2 = v(k)();\n var v3 = v1(k)();\n return applySecond(v2)(v3);\n };\n };\n };\n },\n Functor0: function () {\n return functorEmitter;\n }\n};\nvar plusEmitter = {\n empty: function (v) {\n return pure(pure(Data_Unit.unit));\n },\n Alt0: function () {\n return altEmitter;\n }\n};\nvar alternativeEmitter = {\n Applicative0: function () {\n return applicativeEmitter;\n },\n Plus1: function () {\n return plusEmitter;\n }\n};\nexport {\n create,\n notify,\n makeEmitter,\n subscribe,\n unsubscribe,\n fold,\n filter,\n fix,\n functorEmitter,\n applyEmitter,\n applicativeEmitter,\n altEmitter,\n plusEmitter,\n alternativeEmitter,\n semigroupEmitter,\n monoidEmitter,\n contravariantListener,\n semigroupSubscription,\n monoidSubscription\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Applicative_Free from \"../Control.Applicative.Free/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Control_Monad_Free from \"../Control.Monad.Free/index.js\";\nimport * as Control_Monad_Reader_Class from \"../Control.Monad.Reader.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Monad_Writer_Class from \"../Control.Monad.Writer.Class/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_FoldableWithIndex from \"../Data.FoldableWithIndex/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Traversable from \"../Data.Traversable/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Halogen_Data_Slot from \"../Halogen.Data.Slot/index.js\";\nimport * as Halogen_Query_ChildQuery from \"../Halogen.Query.ChildQuery/index.js\";\nimport * as Halogen_Subscription from \"../Halogen.Subscription/index.js\";\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar foldrWithIndex = /* #__PURE__ */ Data_FoldableWithIndex.foldrWithIndex(Data_Map_Internal.foldableWithIndexMap);\nvar traverse = /* #__PURE__ */ Data_Traversable.traverse(Data_Map_Internal.traversableMap);\nvar slots = /* #__PURE__ */ Halogen_Data_Slot.slots();\nvar lookup = /* #__PURE__ */ Halogen_Data_Slot.lookup();\nvar over = /* #__PURE__ */ Data_Newtype.over()();\nvar map = /* #__PURE__ */ Data_Functor.map(Halogen_Subscription.functorEmitter);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Tuple.functorTuple);\nvar lmap = /* #__PURE__ */ Data_Bifunctor.lmap(Data_Bifunctor.bifunctorTuple);\nvar map2 = /* #__PURE__ */ Data_Functor.map(Halogen_Query_ChildQuery.functorChildQuery);\nvar SubscriptionId = function (x) {\n return x;\n};\nvar ForkId = function (x) {\n return x;\n};\nvar State = /* #__PURE__ */ (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})();\nvar Subscribe = /* #__PURE__ */ (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})();\nvar Unsubscribe = /* #__PURE__ */ (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})();\nvar Lift = /* #__PURE__ */ (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})();\nvar ChildQuery = /* #__PURE__ */ (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})();\nvar Raise = /* #__PURE__ */ (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})();\nvar Par = /* #__PURE__ */ (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})();\nvar Fork = /* #__PURE__ */ (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})();\nvar Join = /* #__PURE__ */ (function () {\n function Join(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Join.create = function (value0) {\n return function (value1) {\n return new Join(value0, value1);\n };\n };\n return Join;\n})();\nvar Kill = /* #__PURE__ */ (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})();\nvar GetRef = /* #__PURE__ */ (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})();\nvar HalogenAp = function (x) {\n return x;\n};\nvar HalogenM = function (x) {\n return x;\n};\nvar unsubscribe = function (sid) {\n return Control_Monad_Free.liftF(new Unsubscribe(sid, Data_Unit.unit));\n};\nvar subscribe$prime = function (esc) {\n return Control_Monad_Free.liftF(new Subscribe(esc, Data_Function[\"const\"](Data_Unit.unit)));\n};\nvar subscribe = function (es) {\n return Control_Monad_Free.liftF(new Subscribe(function (v) {\n return es;\n }, identity));\n};\nvar semigroupHalogenM = function (dictSemigroup) {\n return Control_Monad_Free.semigroupFree(dictSemigroup);\n};\nvar raise = function (o) {\n return Control_Monad_Free.liftF(new Raise(o, Data_Unit.unit));\n};\nvar queryAll = function () {\n return function (dictIsSymbol) {\n var slots1 = slots(dictIsSymbol);\n return function (dictOrd) {\n var slots2 = slots1(dictOrd);\n return function (label) {\n return function (q) {\n var catMapMaybes = function (dictOrd1) {\n var insert = Data_Map_Internal.insert(dictOrd1);\n return foldrWithIndex(function (k) {\n return function (v) {\n return function (acc) {\n return Data_Maybe.maybe(acc)(Data_Function.flip(insert(k))(acc))(v);\n };\n };\n })(Data_Map_Internal.empty);\n };\n var catMapMaybes1 = catMapMaybes(dictOrd);\n return Control_Monad_Free.liftF(new ChildQuery(Halogen_Query_ChildQuery.mkChildQueryBox(new Halogen_Query_ChildQuery.ChildQuery(function (dictApplicative) {\n var map4 = Data_Functor.map((dictApplicative.Apply0()).Functor0());\n var traverse1 = traverse(dictApplicative);\n return function (k) {\n var $173 = map4(catMapMaybes1);\n var $174 = traverse1(k);\n var $175 = slots2(label);\n return function ($176) {\n return $173($174($175($176)));\n };\n };\n }, q, identity))));\n };\n };\n };\n };\n};\nvar query = function () {\n return function (dictIsSymbol) {\n var lookup1 = lookup(dictIsSymbol);\n return function (dictOrd) {\n var lookup2 = lookup1(dictOrd);\n return function (label) {\n return function (p) {\n return function (q) {\n return Control_Monad_Free.liftF(new ChildQuery(Halogen_Query_ChildQuery.mkChildQueryBox(new Halogen_Query_ChildQuery.ChildQuery(function (dictApplicative) {\n var pure1 = Control_Applicative.pure(dictApplicative);\n return function (k) {\n var $177 = Data_Maybe.maybe(pure1(Data_Maybe.Nothing.value))(k);\n var $178 = lookup2(label)(p);\n return function ($179) {\n return $177($178($179));\n };\n };\n }, q, identity))));\n };\n };\n };\n };\n };\n};\nvar ordSubscriptionId = Data_Ord.ordInt;\nvar ordForkId = Data_Ord.ordInt;\nvar newtypeHalogenAp = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar monoidHalogenM = function (dictMonoid) {\n return Control_Monad_Free.monoidFree(dictMonoid);\n};\nvar monadTransHalogenM = {\n lift: function (dictMonad) {\n return function ($180) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($180)));\n };\n }\n};\nvar monadHalogenM = Control_Monad_Free.freeMonad;\nvar monadStateHalogenM = {\n state: function ($181) {\n return HalogenM(Control_Monad_Free.liftF(State.create($181)));\n },\n Monad0: function () {\n return monadHalogenM;\n }\n};\nvar monadTellHalogenM = function (dictMonadTell) {\n var Semigroup0 = dictMonadTell.Semigroup0();\n return {\n tell: (function () {\n var $182 = Control_Monad_Writer_Class.tell(dictMonadTell);\n return function ($183) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($182($183))));\n };\n })(),\n Semigroup0: function () {\n return Semigroup0;\n },\n Monad1: function () {\n return monadHalogenM;\n }\n };\n};\nvar monadThrowHalogenM = function (dictMonadThrow) {\n return {\n throwError: (function () {\n var $184 = Control_Monad_Error_Class.throwError(dictMonadThrow);\n return function ($185) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($184($185))));\n };\n })(),\n Monad0: function () {\n return monadHalogenM;\n }\n };\n};\nvar monadEffectHalogenM = function (dictMonadEffect) {\n return {\n liftEffect: (function () {\n var $186 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($187) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($186($187))));\n };\n })(),\n Monad0: function () {\n return monadHalogenM;\n }\n };\n};\nvar monadAskHalogenM = function (dictMonadAsk) {\n return {\n ask: Control_Monad_Free.liftF(new Lift(Control_Monad_Reader_Class.ask(dictMonadAsk))),\n Monad0: function () {\n return monadHalogenM;\n }\n };\n};\nvar monadAffHalogenM = function (dictMonadAff) {\n var monadEffectHalogenM1 = monadEffectHalogenM(dictMonadAff.MonadEffect0());\n return {\n liftAff: (function () {\n var $188 = Effect_Aff_Class.liftAff(dictMonadAff);\n return function ($189) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($188($189))));\n };\n })(),\n MonadEffect0: function () {\n return monadEffectHalogenM1;\n }\n };\n};\nvar mapOutput = function (f) {\n return function (v) {\n var go = function (v1) {\n if (v1 instanceof State) {\n return new State(v1.value0);\n };\n if (v1 instanceof Subscribe) {\n return new Subscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Unsubscribe) {\n return new Unsubscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Lift) {\n return new Lift(v1.value0);\n };\n if (v1 instanceof ChildQuery) {\n return new ChildQuery(v1.value0);\n };\n if (v1 instanceof Raise) {\n return new Raise(f(v1.value0), v1.value1);\n };\n if (v1 instanceof Par) {\n return new Par(over(HalogenAp)(Control_Applicative_Free.hoistFreeAp(mapOutput(f)))(v1.value0));\n };\n if (v1 instanceof Fork) {\n return new Fork(mapOutput(f)(v1.value0), v1.value1);\n };\n if (v1 instanceof Join) {\n return new Join(v1.value0, v1.value1);\n };\n if (v1 instanceof Kill) {\n return new Kill(v1.value0, v1.value1);\n };\n if (v1 instanceof GetRef) {\n return new GetRef(v1.value0, v1.value1);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 290, column 8 - line 301, column 29): \" + [ v1.constructor.name ]);\n };\n return Control_Monad_Free.hoistFree(go)(v);\n };\n};\nvar mapAction = function (dictFunctor) {\n return function (f) {\n return function (v) {\n var go = function (v1) {\n if (v1 instanceof State) {\n return new State(v1.value0);\n };\n if (v1 instanceof Subscribe) {\n return new Subscribe((function () {\n var $190 = map(f);\n return function ($191) {\n return $190(v1.value0($191));\n };\n })(), v1.value1);\n };\n if (v1 instanceof Unsubscribe) {\n return new Unsubscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Lift) {\n return new Lift(v1.value0);\n };\n if (v1 instanceof ChildQuery) {\n return new ChildQuery(v1.value0);\n };\n if (v1 instanceof Raise) {\n return new Raise(v1.value0, v1.value1);\n };\n if (v1 instanceof Par) {\n return new Par(over(HalogenAp)(Control_Applicative_Free.hoistFreeAp(mapAction(dictFunctor)(f)))(v1.value0));\n };\n if (v1 instanceof Fork) {\n return new Fork(mapAction(dictFunctor)(f)(v1.value0), v1.value1);\n };\n if (v1 instanceof Join) {\n return new Join(v1.value0, v1.value1);\n };\n if (v1 instanceof Kill) {\n return new Kill(v1.value0, v1.value1);\n };\n if (v1 instanceof GetRef) {\n return new GetRef(v1.value0, v1.value1);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 269, column 8 - line 280, column 29): \" + [ v1.constructor.name ]);\n };\n return Control_Monad_Free.hoistFree(go)(v);\n };\n };\n};\nvar kill = function (fid) {\n return Control_Monad_Free.liftF(new Kill(fid, Data_Unit.unit));\n};\nvar join = function (fid) {\n return Control_Monad_Free.liftF(new Join(fid, Data_Unit.unit));\n};\nvar imapState = function (f) {\n return function (f$prime) {\n return function (v) {\n var go = function (v1) {\n if (v1 instanceof State) {\n return new State((function () {\n var $192 = map1(f);\n return function ($193) {\n return $192(v1.value0(f$prime($193)));\n };\n })());\n };\n if (v1 instanceof Subscribe) {\n return new Subscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Unsubscribe) {\n return new Unsubscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Lift) {\n return new Lift(v1.value0);\n };\n if (v1 instanceof ChildQuery) {\n return new ChildQuery(v1.value0);\n };\n if (v1 instanceof Raise) {\n return new Raise(v1.value0, v1.value1);\n };\n if (v1 instanceof Par) {\n return new Par(over(HalogenAp)(Control_Applicative_Free.hoistFreeAp(imapState(f)(f$prime)))(v1.value0));\n };\n if (v1 instanceof Fork) {\n return new Fork(imapState(f)(f$prime)(v1.value0), v1.value1);\n };\n if (v1 instanceof Join) {\n return new Join(v1.value0, v1.value1);\n };\n if (v1 instanceof Kill) {\n return new Kill(v1.value0, v1.value1);\n };\n if (v1 instanceof GetRef) {\n return new GetRef(v1.value0, v1.value1);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 247, column 8 - line 258, column 29): \" + [ v1.constructor.name ]);\n };\n return Control_Monad_Free.hoistFree(go)(v);\n };\n };\n};\nvar hoist = function (dictFunctor) {\n return function (nat) {\n return function (v) {\n var go = function (v1) {\n if (v1 instanceof State) {\n return new State(v1.value0);\n };\n if (v1 instanceof Subscribe) {\n return new Subscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Unsubscribe) {\n return new Unsubscribe(v1.value0, v1.value1);\n };\n if (v1 instanceof Lift) {\n return new Lift(nat(v1.value0));\n };\n if (v1 instanceof ChildQuery) {\n return new ChildQuery(v1.value0);\n };\n if (v1 instanceof Raise) {\n return new Raise(v1.value0, v1.value1);\n };\n if (v1 instanceof Par) {\n return new Par(over(HalogenAp)(Control_Applicative_Free.hoistFreeAp(hoist(dictFunctor)(nat)))(v1.value0));\n };\n if (v1 instanceof Fork) {\n return new Fork(hoist(dictFunctor)(nat)(v1.value0), v1.value1);\n };\n if (v1 instanceof Join) {\n return new Join(v1.value0, v1.value1);\n };\n if (v1 instanceof Kill) {\n return new Kill(v1.value0, v1.value1);\n };\n if (v1 instanceof GetRef) {\n return new GetRef(v1.value0, v1.value1);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 312, column 8 - line 323, column 29): \" + [ v1.constructor.name ]);\n };\n return Control_Monad_Free.hoistFree(go)(v);\n };\n };\n};\nvar getRef = function (p) {\n return Control_Monad_Free.liftF(new GetRef(p, identity));\n};\nvar functorHalogenM = Control_Monad_Free.freeFunctor;\nvar functorHalogenAp = Control_Applicative_Free.functorFreeAp;\nvar map3 = /* #__PURE__ */ Data_Functor.map(functorHalogenAp);\nvar functorHalogenF = function (dictFunctor) {\n var map4 = Data_Functor.map(dictFunctor);\n return {\n map: function (f) {\n return function (v) {\n if (v instanceof State) {\n return new State((function () {\n var $194 = lmap(f);\n return function ($195) {\n return $194(v.value0($195));\n };\n })());\n };\n if (v instanceof Subscribe) {\n return new Subscribe(v.value0, function ($196) {\n return f(v.value1($196));\n });\n };\n if (v instanceof Unsubscribe) {\n return new Unsubscribe(v.value0, f(v.value1));\n };\n if (v instanceof Lift) {\n return new Lift(map4(f)(v.value0));\n };\n if (v instanceof ChildQuery) {\n return new ChildQuery(map2(f)(v.value0));\n };\n if (v instanceof Raise) {\n return new Raise(v.value0, f(v.value1));\n };\n if (v instanceof Par) {\n return new Par(map3(f)(v.value0));\n };\n if (v instanceof Fork) {\n return new Fork(v.value0, function ($197) {\n return f(v.value1($197));\n });\n };\n if (v instanceof Join) {\n return new Join(v.value0, f(v.value1));\n };\n if (v instanceof Kill) {\n return new Kill(v.value0, f(v.value1));\n };\n if (v instanceof GetRef) {\n return new GetRef(v.value0, function ($198) {\n return f(v.value1($198));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 57, column 11 - line 68, column 37): \" + [ v.constructor.name ]);\n };\n }\n };\n};\nvar fork = function (hmu) {\n return Control_Monad_Free.liftF(new Fork(hmu, identity));\n};\nvar eqSubscriptionId = Data_Eq.eqInt;\nvar eqForkId = Data_Eq.eqInt;\nvar bindHalogenM = Control_Monad_Free.freeBind;\nvar bind = /* #__PURE__ */ Control_Bind.bind(bindHalogenM);\nvar applyHalogenM = Control_Monad_Free.freeApply;\nvar applyHalogenAp = Control_Applicative_Free.applyFreeAp;\nvar parallelHalogenM = {\n parallel: function ($199) {\n return HalogenAp(Control_Applicative_Free.liftFreeAp($199));\n },\n sequential: function ($200) {\n return HalogenM(Control_Monad_Free.liftF(Par.create($200)));\n },\n Apply0: function () {\n return applyHalogenM;\n },\n Apply1: function () {\n return applyHalogenAp;\n }\n};\nvar applicativeHalogenM = Control_Monad_Free.freeApplicative;\nvar pure = /* #__PURE__ */ Control_Applicative.pure(applicativeHalogenM);\nvar monadRecHalogenM = {\n tailRecM: function (k) {\n return function (a) {\n return bind(k(a))(function (v) {\n if (v instanceof Control_Monad_Rec_Class.Loop) {\n return Control_Monad_Rec_Class.tailRecM(monadRecHalogenM)(k)(v.value0);\n };\n if (v instanceof Control_Monad_Rec_Class.Done) {\n return pure(v.value0);\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenM (line 105, column 26 - line 107, column 21): \" + [ v.constructor.name ]);\n });\n };\n },\n Monad0: function () {\n return monadHalogenM;\n }\n};\nvar applicativeHalogenAp = Control_Applicative_Free.applicativeFreeAp;\nexport {\n State,\n Subscribe,\n Unsubscribe,\n Lift,\n ChildQuery,\n Raise,\n Par,\n Fork,\n Join,\n Kill,\n GetRef,\n HalogenM,\n HalogenAp,\n raise,\n query,\n queryAll,\n SubscriptionId,\n subscribe,\n subscribe$prime,\n unsubscribe,\n ForkId,\n fork,\n join,\n kill,\n getRef,\n imapState,\n mapAction,\n mapOutput,\n hoist,\n functorHalogenF,\n functorHalogenM,\n applyHalogenM,\n applicativeHalogenM,\n bindHalogenM,\n monadHalogenM,\n semigroupHalogenM,\n monoidHalogenM,\n monadEffectHalogenM,\n monadAffHalogenM,\n parallelHalogenM,\n monadTransHalogenM,\n monadRecHalogenM,\n monadStateHalogenM,\n monadAskHalogenM,\n monadTellHalogenM,\n monadThrowHalogenM,\n newtypeHalogenAp,\n functorHalogenAp,\n applyHalogenAp,\n applicativeHalogenAp,\n eqSubscriptionId,\n ordSubscriptionId,\n eqForkId,\n ordForkId\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Coyoneda from \"../Data.Coyoneda/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Coyoneda.functorCoyoneda);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorFn);\nvar Initialize = /* #__PURE__ */ (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})();\nvar Finalize = /* #__PURE__ */ (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})();\nvar Receive = /* #__PURE__ */ (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})();\nvar Action = /* #__PURE__ */ (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})();\nvar Query = /* #__PURE__ */ (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})();\nvar functorHalogenQ = {\n map: function (f) {\n return function (m) {\n if (m instanceof Initialize) {\n return new Initialize(f(m.value0));\n };\n if (m instanceof Finalize) {\n return new Finalize(f(m.value0));\n };\n if (m instanceof Receive) {\n return new Receive(m.value0, f(m.value1));\n };\n if (m instanceof Action) {\n return new Action(m.value0, f(m.value1));\n };\n if (m instanceof Query) {\n return new Query(map(f)(m.value0), map1(f)(m.value1));\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenQ (line 0, column 0 - line 0, column 0): \" + [ m.constructor.name ]);\n };\n }\n};\nvar bifunctorHalogenQ = {\n bimap: function (f) {\n return function (g) {\n return function (v) {\n if (v instanceof Initialize) {\n return new Initialize(g(v.value0));\n };\n if (v instanceof Finalize) {\n return new Finalize(g(v.value0));\n };\n if (v instanceof Receive) {\n return new Receive(f(v.value0), g(v.value1));\n };\n if (v instanceof Action) {\n return new Action(v.value0, g(v.value1));\n };\n if (v instanceof Query) {\n return new Query(map(g)(v.value0), map1(g)(v.value1));\n };\n throw new Error(\"Failed pattern match at Halogen.Query.HalogenQ (line 16, column 15 - line 21, column 45): \" + [ v.constructor.name ]);\n };\n };\n }\n};\nexport {\n Initialize,\n Finalize,\n Receive,\n Action,\n Query,\n bifunctorHalogenQ,\n functorHalogenQ\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Function_Uncurried from \"../Data.Function.Uncurried/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Halogen_VDom_DOM from \"../Halogen.VDom.DOM/index.js\";\nimport * as Halogen_VDom_Machine from \"../Halogen.VDom.Machine/index.js\";\nimport * as Halogen_VDom_Util from \"../Halogen.VDom.Util/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar Thunk = /* #__PURE__ */ (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})();\nvar unsafeThunkId = Unsafe_Coerce.unsafeCoerce;\nvar 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};\nvar thunk = function (tid, eqFn, f, a) {\n return new Thunk(tid, eqFn, f, a);\n};\nvar thunk1 = function (f, a) {\n return thunk(unsafeThunkId(f), Halogen_VDom_Util.refEq, f, a);\n};\nvar thunk2 = /* #__PURE__ */ (function () {\n var eqFn = function (a, b) {\n return Halogen_VDom_Util.refEq(a[\"_1\"], b[\"_1\"]) && Halogen_VDom_Util.refEq(a[\"_2\"], b[\"_2\"]);\n };\n return function (f, a, b) {\n return thunk(unsafeThunkId(f), eqFn, function (v) {\n return f(v[\"_1\"])(v[\"_2\"]);\n }, {\n \"_1\": a,\n \"_2\": b\n });\n };\n})();\nvar thunk3 = /* #__PURE__ */ (function () {\n var eqFn = function (a, b) {\n return Halogen_VDom_Util.refEq(a[\"_1\"], b[\"_1\"]) && (Halogen_VDom_Util.refEq(a[\"_2\"], b[\"_2\"]) && Halogen_VDom_Util.refEq(a[\"_3\"], b[\"_3\"]));\n };\n return function (f, a, b, c) {\n return thunk(unsafeThunkId(f), eqFn, function (v) {\n return f(v[\"_1\"])(v[\"_2\"])(v[\"_3\"]);\n }, {\n \"_1\": a,\n \"_2\": b,\n \"_3\": c\n });\n };\n})();\nvar thunked = function (eqFn) {\n return function (f) {\n var tid = unsafeThunkId({\n f: f\n });\n var eqFn$prime = Data_Function_Uncurried.mkFn2(eqFn);\n return function (a) {\n return thunk(tid, eqFn$prime, f, a);\n };\n };\n};\nvar runThunk = function (v) {\n return v.value2(v.value3);\n};\nvar mapThunk = function (k) {\n return function (v) {\n return new Thunk(v.value0, v.value1, function ($51) {\n return k(v.value2($51));\n }, v.value3);\n };\n};\nvar hoist = mapThunk;\nvar functorThunk = function (dictFunctor) {\n var map = Data_Functor.map(dictFunctor);\n return {\n map: function (f) {\n return function (v) {\n return new Thunk(v.value0, v.value1, (function () {\n var $52 = map(f);\n return function ($53) {\n return $52(v.value2($53));\n };\n })(), v.value3);\n };\n }\n };\n};\nvar buildThunk = function (toVDom) {\n var haltThunk = function (state) {\n return Halogen_VDom_Machine.halt(state.vdom);\n };\n var $lazy_patchThunk = $runtime_lazy(\"patchThunk\", \"Halogen.VDom.Thunk\", function () {\n return function (state, t2) {\n var $48 = unsafeEqThunk(state.thunk, t2);\n if ($48) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(state.vdom), state, $lazy_patchThunk(112), 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 }, $lazy_patchThunk(115), haltThunk));\n };\n });\n var patchThunk = $lazy_patchThunk(108);\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};\nexport {\n buildThunk,\n runThunk,\n hoist,\n mapThunk,\n thunked,\n thunk1,\n thunk2,\n thunk3,\n functorThunk\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Data_Bifunctor from \"../Data.Bifunctor/index.js\";\nimport * as Data_Coyoneda from \"../Data.Coyoneda/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Halogen_Data_Slot from \"../Halogen.Data.Slot/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Halogen_Query_HalogenQ from \"../Halogen.Query.HalogenQ/index.js\";\nimport * as Halogen_VDom_Thunk from \"../Halogen.VDom.Thunk/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar voidLeft = /* #__PURE__ */ Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM);\nvar traverse_ = /* #__PURE__ */ Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe);\nvar map = /* #__PURE__ */ Data_Functor.map(Halogen_Query_HalogenM.functorHalogenM);\nvar lmap = /* #__PURE__ */ Data_Bifunctor.lmap(Halogen_HTML_Core.bifunctorHTML);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorFn);\nvar map2 = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar bimap = /* #__PURE__ */ Data_Bifunctor.bimap(Halogen_HTML_Core.bifunctorHTML);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM);\nvar lookup = /* #__PURE__ */ Halogen_Data_Slot.lookup();\nvar pop = /* #__PURE__ */ Halogen_Data_Slot.pop();\nvar insert = /* #__PURE__ */ Halogen_Data_Slot.insert();\nvar ComponentSlot = /* #__PURE__ */ (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})();\nvar ThunkSlot = /* #__PURE__ */ (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})();\nvar unComponentSlot = Unsafe_Coerce.unsafeCoerce;\nvar unComponent = Unsafe_Coerce.unsafeCoerce;\nvar mkEval = function (args) {\n return function (v) {\n if (v instanceof Halogen_Query_HalogenQ.Initialize) {\n return voidLeft(traverse_(args.handleAction)(args.initialize))(v.value0);\n };\n if (v instanceof Halogen_Query_HalogenQ.Finalize) {\n return voidLeft(traverse_(args.handleAction)(args.finalize))(v.value0);\n };\n if (v instanceof Halogen_Query_HalogenQ.Receive) {\n return voidLeft(traverse_(args.handleAction)(args.receive(v.value0)))(v.value1);\n };\n if (v instanceof Halogen_Query_HalogenQ.Action) {\n return voidLeft(args.handleAction(v.value0))(v.value1);\n };\n if (v instanceof Halogen_Query_HalogenQ.Query) {\n return Data_Coyoneda.unCoyoneda(function (g) {\n var $45 = map(Data_Maybe.maybe(v.value1(Data_Unit.unit))(g));\n return function ($46) {\n return $45(args.handleQuery($46));\n };\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at Halogen.Component (line 182, column 15 - line 192, column 71): \" + [ v.constructor.name ]);\n };\n};\nvar mkComponentSlot = Unsafe_Coerce.unsafeCoerce;\nvar mkComponent = Unsafe_Coerce.unsafeCoerce;\nvar hoistSlot = function (dictFunctor) {\n return function (nat) {\n return function (v) {\n if (v instanceof ComponentSlot) {\n return unComponentSlot(function (slot) {\n return new ComponentSlot(mkComponentSlot({\n get: slot.get,\n pop: slot.pop,\n set: slot.set,\n input: slot.input,\n output: slot.output,\n component: hoist(dictFunctor)(nat)(slot.component)\n }));\n })(v.value0);\n };\n if (v instanceof ThunkSlot) {\n return new ThunkSlot(Halogen_VDom_Thunk.hoist(lmap(hoistSlot(dictFunctor)(nat)))(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Component (line 279, column 17 - line 284, column 53): \" + [ v.constructor.name ]);\n };\n };\n};\nvar hoist = function (dictFunctor) {\n var hoist1 = Halogen_Query_HalogenM.hoist(dictFunctor);\n return function (nat) {\n return unComponent(function (c) {\n return mkComponent({\n initialState: c.initialState,\n render: (function () {\n var $47 = lmap(hoistSlot(dictFunctor)(nat));\n return function ($48) {\n return $47(c.render($48));\n };\n })(),\n \"eval\": (function () {\n var $49 = hoist1(nat);\n return function ($50) {\n return $49(c[\"eval\"]($50));\n };\n })()\n });\n });\n };\n};\nvar functorComponentSlotBox = {\n map: function (f) {\n return unComponentSlot(function (slot) {\n return mkComponentSlot({\n get: slot.get,\n pop: slot.pop,\n set: slot.set,\n component: slot.component,\n input: slot.input,\n output: map1(map2(f))(slot.output)\n });\n });\n }\n};\nvar map3 = /* #__PURE__ */ Data_Functor.map(functorComponentSlotBox);\nvar functorComponentSlot = {\n map: function (f) {\n return function (v) {\n if (v instanceof ComponentSlot) {\n return new ComponentSlot(map3(f)(v.value0));\n };\n if (v instanceof ThunkSlot) {\n return new ThunkSlot(Halogen_VDom_Thunk.mapThunk(bimap(Data_Functor.map(functorComponentSlot)(f))(f))(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Component (line 209, column 11 - line 211, column 74): \" + [ v.constructor.name ]);\n };\n }\n};\nvar defaultEval = /* #__PURE__ */ (function () {\n return {\n handleAction: Data_Function[\"const\"](pure(Data_Unit.unit)),\n handleQuery: Data_Function[\"const\"](pure(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})();\nvar componentSlot = function () {\n return function (dictIsSymbol) {\n var lookup1 = lookup(dictIsSymbol);\n var pop1 = pop(dictIsSymbol);\n var insert1 = insert(dictIsSymbol);\n return function (dictOrd) {\n var lookup2 = lookup1(dictOrd);\n var pop2 = pop1(dictOrd);\n var insert2 = insert1(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: lookup2(label)(p),\n pop: pop2(label)(p),\n set: insert2(label)(p),\n component: comp,\n input: input,\n output: output\n });\n };\n };\n };\n };\n };\n };\n };\n};\nexport {\n mkComponent,\n unComponent,\n hoist,\n mkEval,\n defaultEval,\n ComponentSlot,\n ThunkSlot,\n componentSlot,\n mkComponentSlot,\n unComponentSlot,\n hoistSlot,\n functorComponentSlotBox,\n functorComponentSlot\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_VDom_Types from \"../Halogen.VDom.Types/index.js\";\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Data_Maybe.applicativeMaybe);\nvar withKeys_ = function (ctor) {\n return function (children) {\n var v = ctor([ ]);\n if (v instanceof Halogen_VDom_Types.Elem) {\n return new Halogen_VDom_Types.Keyed(v.value0, v.value1, v.value2, children);\n };\n return v;\n };\n};\nvar withKeys = function (ctor) {\n return function (props) {\n return function (children) {\n var v = ctor(props)([ ]);\n if (v instanceof Halogen_VDom_Types.Elem) {\n return new Halogen_VDom_Types.Keyed(v.value0, v.value1, v.value2, children);\n };\n return v;\n };\n };\n};\nvar keyedNS = function ($14) {\n return Halogen_HTML_Core.keyed(pure($14));\n};\nvar keyed = /* #__PURE__ */ (function () {\n return Halogen_HTML_Core.keyed(Data_Maybe.Nothing.value);\n})();\nvar elementNS = function ($15) {\n return Halogen_HTML_Core.element(pure($15));\n};\nvar element = /* #__PURE__ */ (function () {\n return Halogen_HTML_Core.element(Data_Maybe.Nothing.value);\n})();\nvar em = /* #__PURE__ */ element(\"em\");\nvar em_ = /* #__PURE__ */ em([ ]);\nvar embed = /* #__PURE__ */ element(\"embed\");\nvar embed_ = /* #__PURE__ */ embed([ ]);\nvar fieldset = /* #__PURE__ */ element(\"fieldset\");\nvar fieldset_ = /* #__PURE__ */ fieldset([ ]);\nvar figcaption = /* #__PURE__ */ element(\"figcaption\");\nvar figcaption_ = /* #__PURE__ */ figcaption([ ]);\nvar figure = /* #__PURE__ */ element(\"figure\");\nvar figure_ = /* #__PURE__ */ figure([ ]);\nvar footer = /* #__PURE__ */ element(\"footer\");\nvar footer_ = /* #__PURE__ */ footer([ ]);\nvar form = /* #__PURE__ */ element(\"form\");\nvar form_ = /* #__PURE__ */ form([ ]);\nvar h1 = /* #__PURE__ */ element(\"h1\");\nvar h1_ = /* #__PURE__ */ h1([ ]);\nvar h2 = /* #__PURE__ */ element(\"h2\");\nvar h2_ = /* #__PURE__ */ h2([ ]);\nvar h3 = /* #__PURE__ */ element(\"h3\");\nvar h3_ = /* #__PURE__ */ h3([ ]);\nvar h4 = /* #__PURE__ */ element(\"h4\");\nvar h4_ = /* #__PURE__ */ h4([ ]);\nvar h5 = /* #__PURE__ */ element(\"h5\");\nvar h5_ = /* #__PURE__ */ h5([ ]);\nvar h6 = /* #__PURE__ */ element(\"h6\");\nvar h6_ = /* #__PURE__ */ h6([ ]);\nvar head = /* #__PURE__ */ element(\"head\");\nvar head_ = /* #__PURE__ */ head([ ]);\nvar header = /* #__PURE__ */ element(\"header\");\nvar header_ = /* #__PURE__ */ header([ ]);\nvar hr = function (props) {\n return element(\"hr\")(props)([ ]);\n};\nvar hr_ = /* #__PURE__ */ hr([ ]);\nvar html = /* #__PURE__ */ element(\"html\");\nvar html_ = /* #__PURE__ */ html([ ]);\nvar i = /* #__PURE__ */ element(\"i\");\nvar i_ = /* #__PURE__ */ i([ ]);\nvar iframe = function (props) {\n return element(\"iframe\")(props)([ ]);\n};\nvar img = function (props) {\n return element(\"img\")(props)([ ]);\n};\nvar input = function (props) {\n return element(\"input\")(props)([ ]);\n};\nvar ins = /* #__PURE__ */ element(\"ins\");\nvar ins_ = /* #__PURE__ */ ins([ ]);\nvar kbd = /* #__PURE__ */ element(\"kbd\");\nvar kbd_ = /* #__PURE__ */ kbd([ ]);\nvar label = /* #__PURE__ */ element(\"label\");\nvar label_ = /* #__PURE__ */ label([ ]);\nvar legend = /* #__PURE__ */ element(\"legend\");\nvar legend_ = /* #__PURE__ */ legend([ ]);\nvar li = /* #__PURE__ */ element(\"li\");\nvar li_ = /* #__PURE__ */ li([ ]);\nvar link = function (props) {\n return element(\"link\")(props)([ ]);\n};\nvar main = /* #__PURE__ */ element(\"main\");\nvar main_ = /* #__PURE__ */ main([ ]);\nvar map = /* #__PURE__ */ element(\"map\");\nvar map_ = /* #__PURE__ */ map([ ]);\nvar mark = /* #__PURE__ */ element(\"mark\");\nvar mark_ = /* #__PURE__ */ mark([ ]);\nvar menu = /* #__PURE__ */ element(\"menu\");\nvar menu_ = /* #__PURE__ */ menu([ ]);\nvar menuitem = /* #__PURE__ */ element(\"menuitem\");\nvar menuitem_ = /* #__PURE__ */ menuitem([ ]);\nvar meta = function (props) {\n return element(\"meta\")(props)([ ]);\n};\nvar meter = /* #__PURE__ */ element(\"meter\");\nvar meter_ = /* #__PURE__ */ meter([ ]);\nvar nav = /* #__PURE__ */ element(\"nav\");\nvar nav_ = /* #__PURE__ */ nav([ ]);\nvar noscript = /* #__PURE__ */ element(\"noscript\");\nvar noscript_ = /* #__PURE__ */ noscript([ ]);\nvar object = /* #__PURE__ */ element(\"object\");\nvar object_ = /* #__PURE__ */ object([ ]);\nvar ol = /* #__PURE__ */ element(\"ol\");\nvar ol_ = /* #__PURE__ */ ol([ ]);\nvar optgroup = /* #__PURE__ */ element(\"optgroup\");\nvar optgroup_ = /* #__PURE__ */ optgroup([ ]);\nvar option = /* #__PURE__ */ element(\"option\");\nvar option_ = /* #__PURE__ */ option([ ]);\nvar output = /* #__PURE__ */ element(\"output\");\nvar output_ = /* #__PURE__ */ output([ ]);\nvar p = /* #__PURE__ */ element(\"p\");\nvar p_ = /* #__PURE__ */ p([ ]);\nvar param = function (props) {\n return element(\"param\")(props)([ ]);\n};\nvar pre = /* #__PURE__ */ element(\"pre\");\nvar pre_ = /* #__PURE__ */ pre([ ]);\nvar progress = /* #__PURE__ */ element(\"progress\");\nvar progress_ = /* #__PURE__ */ progress([ ]);\nvar q = /* #__PURE__ */ element(\"q\");\nvar q_ = /* #__PURE__ */ q([ ]);\nvar rp = /* #__PURE__ */ element(\"rp\");\nvar rp_ = /* #__PURE__ */ rp([ ]);\nvar rt = /* #__PURE__ */ element(\"rt\");\nvar rt_ = /* #__PURE__ */ rt([ ]);\nvar ruby = /* #__PURE__ */ element(\"ruby\");\nvar ruby_ = /* #__PURE__ */ ruby([ ]);\nvar samp = /* #__PURE__ */ element(\"samp\");\nvar samp_ = /* #__PURE__ */ samp([ ]);\nvar script = /* #__PURE__ */ element(\"script\");\nvar script_ = /* #__PURE__ */ script([ ]);\nvar section = /* #__PURE__ */ element(\"section\");\nvar section_ = /* #__PURE__ */ section([ ]);\nvar select = /* #__PURE__ */ element(\"select\");\nvar select_ = /* #__PURE__ */ select([ ]);\nvar small = /* #__PURE__ */ element(\"small\");\nvar small_ = /* #__PURE__ */ small([ ]);\nvar source = function (props) {\n return element(\"source\")(props)([ ]);\n};\nvar span = /* #__PURE__ */ element(\"span\");\nvar span_ = /* #__PURE__ */ span([ ]);\nvar strong = /* #__PURE__ */ element(\"strong\");\nvar strong_ = /* #__PURE__ */ strong([ ]);\nvar style = /* #__PURE__ */ element(\"style\");\nvar style_ = /* #__PURE__ */ style([ ]);\nvar sub = /* #__PURE__ */ element(\"sub\");\nvar sub_ = /* #__PURE__ */ sub([ ]);\nvar summary = /* #__PURE__ */ element(\"summary\");\nvar summary_ = /* #__PURE__ */ summary([ ]);\nvar sup = /* #__PURE__ */ element(\"sup\");\nvar sup_ = /* #__PURE__ */ sup([ ]);\nvar table = /* #__PURE__ */ element(\"table\");\nvar table_ = /* #__PURE__ */ table([ ]);\nvar tbody = /* #__PURE__ */ element(\"tbody\");\nvar tbody_ = /* #__PURE__ */ tbody([ ]);\nvar td = /* #__PURE__ */ element(\"td\");\nvar td_ = /* #__PURE__ */ td([ ]);\nvar textarea = function (es) {\n return element(\"textarea\")(es)([ ]);\n};\nvar tfoot = /* #__PURE__ */ element(\"tfoot\");\nvar tfoot_ = /* #__PURE__ */ tfoot([ ]);\nvar th = /* #__PURE__ */ element(\"th\");\nvar th_ = /* #__PURE__ */ th([ ]);\nvar thead = /* #__PURE__ */ element(\"thead\");\nvar thead_ = /* #__PURE__ */ thead([ ]);\nvar time = /* #__PURE__ */ element(\"time\");\nvar time_ = /* #__PURE__ */ time([ ]);\nvar title = /* #__PURE__ */ element(\"title\");\nvar title_ = /* #__PURE__ */ title([ ]);\nvar tr = /* #__PURE__ */ element(\"tr\");\nvar tr_ = /* #__PURE__ */ tr([ ]);\nvar track = function (props) {\n return element(\"track\")(props)([ ]);\n};\nvar u = /* #__PURE__ */ element(\"u\");\nvar u_ = /* #__PURE__ */ u([ ]);\nvar ul = /* #__PURE__ */ element(\"ul\");\nvar ul_ = /* #__PURE__ */ ul([ ]);\nvar $$var = /* #__PURE__ */ element(\"var\");\nvar var_ = /* #__PURE__ */ $$var([ ]);\nvar video = /* #__PURE__ */ element(\"video\");\nvar video_ = /* #__PURE__ */ video([ ]);\nvar wbr = function (props) {\n return element(\"wbr\")(props)([ ]);\n};\nvar dt = /* #__PURE__ */ element(\"dt\");\nvar dt_ = /* #__PURE__ */ dt([ ]);\nvar dl = /* #__PURE__ */ element(\"dl\");\nvar dl_ = /* #__PURE__ */ dl([ ]);\nvar div = /* #__PURE__ */ element(\"div\");\nvar div_ = /* #__PURE__ */ div([ ]);\nvar dialog = /* #__PURE__ */ element(\"dialog\");\nvar dialog_ = /* #__PURE__ */ dialog([ ]);\nvar dfn = /* #__PURE__ */ element(\"dfn\");\nvar dfn_ = /* #__PURE__ */ dfn([ ]);\nvar details = /* #__PURE__ */ element(\"details\");\nvar details_ = /* #__PURE__ */ details([ ]);\nvar del = /* #__PURE__ */ element(\"del\");\nvar del_ = /* #__PURE__ */ del([ ]);\nvar dd = /* #__PURE__ */ element(\"dd\");\nvar dd_ = /* #__PURE__ */ dd([ ]);\nvar datalist = /* #__PURE__ */ element(\"datalist\");\nvar datalist_ = /* #__PURE__ */ datalist([ ]);\nvar command = function (props) {\n return element(\"command\")(props)([ ]);\n};\nvar colgroup = /* #__PURE__ */ element(\"colgroup\");\nvar colgroup_ = /* #__PURE__ */ colgroup([ ]);\nvar col = function (props) {\n return element(\"col\")(props)([ ]);\n};\nvar code = /* #__PURE__ */ element(\"code\");\nvar code_ = /* #__PURE__ */ code([ ]);\nvar cite = /* #__PURE__ */ element(\"cite\");\nvar cite_ = /* #__PURE__ */ cite([ ]);\nvar caption = /* #__PURE__ */ element(\"caption\");\nvar caption_ = /* #__PURE__ */ caption([ ]);\nvar canvas = function (props) {\n return element(\"canvas\")(props)([ ]);\n};\nvar button = /* #__PURE__ */ element(\"button\");\nvar button_ = /* #__PURE__ */ button([ ]);\nvar br = function (props) {\n return element(\"br\")(props)([ ]);\n};\nvar br_ = /* #__PURE__ */ br([ ]);\nvar body = /* #__PURE__ */ element(\"body\");\nvar body_ = /* #__PURE__ */ body([ ]);\nvar blockquote = /* #__PURE__ */ element(\"blockquote\");\nvar blockquote_ = /* #__PURE__ */ blockquote([ ]);\nvar bdo = /* #__PURE__ */ element(\"bdo\");\nvar bdo_ = /* #__PURE__ */ bdo([ ]);\nvar bdi = /* #__PURE__ */ element(\"bdi\");\nvar bdi_ = /* #__PURE__ */ bdi([ ]);\nvar base = function (props) {\n return element(\"base\")(props)([ ]);\n};\nvar b = /* #__PURE__ */ element(\"b\");\nvar b_ = /* #__PURE__ */ b([ ]);\nvar audio = /* #__PURE__ */ element(\"audio\");\nvar audio_ = /* #__PURE__ */ audio([ ]);\nvar aside = /* #__PURE__ */ element(\"aside\");\nvar aside_ = /* #__PURE__ */ aside([ ]);\nvar article = /* #__PURE__ */ element(\"article\");\nvar article_ = /* #__PURE__ */ article([ ]);\nvar area = function (props) {\n return element(\"area\")(props)([ ]);\n};\nvar address = /* #__PURE__ */ element(\"address\");\nvar address_ = /* #__PURE__ */ address([ ]);\nvar abbr = /* #__PURE__ */ element(\"abbr\");\nvar abbr_ = /* #__PURE__ */ abbr([ ]);\nvar a = /* #__PURE__ */ element(\"a\");\nvar a_ = /* #__PURE__ */ a([ ]);\nexport {\n element,\n elementNS,\n keyed,\n keyedNS,\n withKeys,\n withKeys_,\n a,\n a_,\n abbr,\n abbr_,\n address,\n address_,\n area,\n article,\n article_,\n aside,\n aside_,\n audio,\n audio_,\n b,\n b_,\n base,\n bdi,\n bdi_,\n bdo,\n bdo_,\n blockquote,\n blockquote_,\n body,\n body_,\n br,\n br_,\n button,\n button_,\n canvas,\n caption,\n caption_,\n cite,\n cite_,\n code,\n code_,\n col,\n colgroup,\n colgroup_,\n command,\n datalist,\n datalist_,\n dd,\n dd_,\n del,\n del_,\n details,\n details_,\n dfn,\n dfn_,\n dialog,\n dialog_,\n div,\n div_,\n dl,\n dl_,\n dt,\n dt_,\n em,\n em_,\n embed,\n embed_,\n fieldset,\n fieldset_,\n figcaption,\n figcaption_,\n figure,\n figure_,\n footer,\n footer_,\n form,\n form_,\n h1,\n h1_,\n h2,\n h2_,\n h3,\n h3_,\n h4,\n h4_,\n h5,\n h5_,\n h6,\n h6_,\n head,\n head_,\n header,\n header_,\n hr,\n hr_,\n html,\n html_,\n i,\n i_,\n iframe,\n img,\n input,\n ins,\n ins_,\n kbd,\n kbd_,\n label,\n label_,\n legend,\n legend_,\n li,\n li_,\n link,\n main,\n main_,\n map,\n map_,\n mark,\n mark_,\n menu,\n menu_,\n menuitem,\n menuitem_,\n meta,\n meter,\n meter_,\n nav,\n nav_,\n noscript,\n noscript_,\n object,\n object_,\n ol,\n ol_,\n optgroup,\n optgroup_,\n option,\n option_,\n output,\n output_,\n p,\n p_,\n param,\n pre,\n pre_,\n progress,\n progress_,\n q,\n q_,\n rp,\n rp_,\n rt,\n rt_,\n ruby,\n ruby_,\n samp,\n samp_,\n script,\n script_,\n section,\n section_,\n select,\n select_,\n small,\n small_,\n source,\n span,\n span_,\n strong,\n strong_,\n style,\n style_,\n sub,\n sub_,\n summary,\n summary_,\n sup,\n sup_,\n table,\n table_,\n tbody,\n tbody_,\n td,\n td_,\n textarea,\n tfoot,\n tfoot_,\n th,\n th_,\n thead,\n thead_,\n time,\n time_,\n title,\n title_,\n tr,\n tr_,\n track,\n u,\n u_,\n ul,\n ul_,\n $$var as var,\n var_,\n video,\n video_,\n wbr\n};\n", "export function bubbles(e) {\n return e.bubbles;\n}\n\nexport function cancelable(e) {\n return e.cancelable;\n}\n\nexport function _currentTarget(e) {\n return e.currentTarget;\n}\n\nexport function defaultPrevented(e) {\n return function() {\n return e.defaultPrevented;\n };\n}\n\nexport function eventPhaseIndex(e) {\n return e.eventPhase;\n}\n\nexport function _target(e) {\n return e.target;\n}\n\nexport function timeStamp(e) {\n return e.timeStamp;\n}\n\nexport function type_(e) {\n return e.type;\n}\n\nexport function preventDefault(e) {\n return function () {\n return e.preventDefault();\n };\n}\n\nexport function stopImmediatePropagation(e) {\n return function () {\n return e.stopImmediatePropagation();\n };\n}\n\nexport function stopPropagation(e) {\n return function () {\n return e.stopPropagation();\n };\n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Web_Event_EventPhase from \"../Web.Event.EventPhase/index.js\";\nimport * as Web_Event_Internal_Types from \"../Web.Event.Internal.Types/index.js\";\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar toEnum = /* #__PURE__ */ Data_Enum.toEnum(Web_Event_EventPhase.boundedEnumEventPhase);\nvar EventType = function (x) {\n return x;\n};\nvar target = function ($3) {\n return Data_Nullable.toMaybe($foreign[\"_target\"]($3));\n};\nvar ordEventType = Data_Ord.ordString;\nvar newtypeEventType = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar eventPhase = function () {\n return function ($4) {\n return fromJust(toEnum($foreign.eventPhaseIndex($4)));\n };\n};\nvar eqEventType = Data_Eq.eqString;\nvar currentTarget = function ($5) {\n return Data_Nullable.toMaybe($foreign[\"_currentTarget\"]($5));\n};\nexport {\n type_,\n stopPropagation,\n stopImmediatePropagation,\n bubbles,\n cancelable,\n preventDefault,\n defaultPrevented,\n timeStamp\n} from \"./foreign.js\";\nexport {\n EventType,\n target,\n currentTarget,\n eventPhase,\n newtypeEventType,\n eqEventType,\n ordEventType\n};\n", "// Generated by purs version 0.15.14\nvar unload = \"unload\";\nvar toggle = \"toggle\";\nvar submit = \"submit\";\nvar storage = \"storage\";\nvar select = \"select\";\nvar reset = \"reset\";\nvar readystatechange = \"readystatechange\";\nvar progress = \"progress\";\nvar paste = \"paste\";\nvar online = \"online\";\nvar offline = \"offline\";\nvar message = \"message\";\nvar loadstart = \"loadstart\";\nvar loadend = \"loadend\";\nvar load = \"load\";\nvar languagechange = \"languagechange\";\nvar invalid = \"invalid\";\nvar input = \"input\";\nvar focus = \"focus\";\nvar error = \"error\";\nvar domcontentloaded = \"DOMContentLoaded\";\nvar cut = \"cut\";\nvar copy = \"copy\";\nvar close = \"close\";\nvar click = \"click\";\nvar change = \"change\";\nvar cancel = \"cancel\";\nvar blur = \"blur\";\nvar beforescriptexecute = \"beforescriptexecute\";\nvar beforeprint = \"beforeprint\";\nvar afterscriptexecute = \"afterscriptexecute\";\nvar afterprint = \"afterprint\";\nvar abort = \"abort\";\nexport {\n abort,\n afterprint,\n afterscriptexecute,\n beforeprint,\n beforescriptexecute,\n blur,\n cancel,\n change,\n click,\n close,\n copy,\n cut,\n domcontentloaded,\n error,\n focus,\n input,\n invalid,\n languagechange,\n load,\n loadend,\n loadstart,\n message,\n offline,\n online,\n paste,\n progress,\n readystatechange,\n reset,\n select,\n storage,\n submit,\n toggle,\n unload\n};\n", "// Generated by purs version 0.15.14\nvar mouseup = \"mouseup\";\nvar mouseover = \"mouseover\";\nvar mouseout = \"mouseout\";\nvar mousemove = \"mousemove\";\nvar mouseleave = \"mouseleave\";\nvar mouseenter = \"mouseenter\";\nvar mousedown = \"mousedown\";\nvar dblclick = \"dblclick\";\nvar click = \"click\";\nvar auxclick = \"auxclick\";\nexport {\n auxclick,\n click,\n dblclick,\n mousedown,\n mouseenter,\n mouseleave,\n mousemove,\n mouseout,\n mouseover,\n mouseup\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Except from \"../Control.Monad.Except/index.js\";\nimport * as Control_Monad_Except_Trans from \"../Control.Monad.Except.Trans/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Identity from \"../Data.Identity/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Effect_Unsafe from \"../Effect.Unsafe/index.js\";\nimport * as Foreign from \"../Foreign/index.js\";\nimport * as Foreign_Index from \"../Foreign.Index/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_Clipboard_ClipboardEvent_EventTypes from \"../Web.Clipboard.ClipboardEvent.EventTypes/index.js\";\nimport * as Web_Event_Event from \"../Web.Event.Event/index.js\";\nimport * as Web_File_FileList from \"../Web.File.FileList/index.js\";\nimport * as Web_HTML_Event_DragEvent_EventTypes from \"../Web.HTML.Event.DragEvent.EventTypes/index.js\";\nimport * as Web_HTML_Event_EventTypes from \"../Web.HTML.Event.EventTypes/index.js\";\nimport * as Web_HTML_HTMLInputElement from \"../Web.HTML.HTMLInputElement/index.js\";\nimport * as Web_UIEvent_FocusEvent_EventTypes from \"../Web.UIEvent.FocusEvent.EventTypes/index.js\";\nimport * as Web_UIEvent_KeyboardEvent_EventTypes from \"../Web.UIEvent.KeyboardEvent.EventTypes/index.js\";\nimport * as Web_UIEvent_MouseEvent_EventTypes from \"../Web.UIEvent.MouseEvent.EventTypes/index.js\";\nimport * as Web_UIEvent_WheelEvent_EventTypes from \"../Web.UIEvent.WheelEvent.EventTypes/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar composeKleisli = /* #__PURE__ */ Control_Bind.composeKleisli(Data_Maybe.bindMaybe);\nvar composeKleisliFlipped = /* #__PURE__ */ Control_Bind.composeKleisliFlipped(/* #__PURE__ */ Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity));\nvar readProp = /* #__PURE__ */ Foreign_Index.readProp(Data_Identity.monadIdentity);\nvar readString = /* #__PURE__ */ Foreign.readString(Data_Identity.monadIdentity);\nvar wheelHandler = Unsafe_Coerce.unsafeCoerce;\nvar touchHandler = Unsafe_Coerce.unsafeCoerce;\nvar mouseHandler = Unsafe_Coerce.unsafeCoerce;\nvar keyHandler = Unsafe_Coerce.unsafeCoerce;\nvar handler$prime = function (et) {\n return function (f) {\n return Halogen_HTML_Core.handler(et)(function (ev) {\n return map(Halogen_Query_Input.Action.create)(f(ev));\n });\n };\n};\nvar 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};\nvar onAbort = /* #__PURE__ */ handler(\"abort\");\nvar onAuxClick = /* #__PURE__ */ (function () {\n var $13 = handler(Web_UIEvent_MouseEvent_EventTypes.auxclick);\n return function ($14) {\n return $13(mouseHandler($14));\n };\n})();\nvar onChange = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.change);\nvar onClick = /* #__PURE__ */ (function () {\n var $15 = handler(Web_UIEvent_MouseEvent_EventTypes.click);\n return function ($16) {\n return $15(mouseHandler($16));\n };\n})();\nvar onDoubleClick = /* #__PURE__ */ (function () {\n var $17 = handler(Web_UIEvent_MouseEvent_EventTypes.dblclick);\n return function ($18) {\n return $17(mouseHandler($18));\n };\n})();\nvar onError = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.error);\nvar onFileUpload = function (dictUnfoldable) {\n var none = Data_Unfoldable.none(dictUnfoldable);\n var items = Web_File_FileList.items(dictUnfoldable);\n return function (f) {\n return handler(Web_HTML_Event_EventTypes.change)((function () {\n var $19 = Data_Maybe.maybe(none)(items);\n var $20 = composeKleisli(Web_Event_Event.target)(composeKleisli(Web_HTML_HTMLInputElement.fromEventTarget)(function ($22) {\n return Effect_Unsafe.unsafePerformEffect(Web_HTML_HTMLInputElement.files($22));\n }));\n return function ($21) {\n return f($19($20($21)));\n };\n })());\n };\n};\nvar onInput = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.input);\nvar onInvalid = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.invalid);\nvar onKeyDown = /* #__PURE__ */ (function () {\n var $23 = handler(Web_UIEvent_KeyboardEvent_EventTypes.keydown);\n return function ($24) {\n return $23(keyHandler($24));\n };\n})();\nvar onKeyUp = /* #__PURE__ */ (function () {\n var $25 = handler(Web_UIEvent_KeyboardEvent_EventTypes.keyup);\n return function ($26) {\n return $25(keyHandler($26));\n };\n})();\nvar onLoad = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.load);\nvar onMouseDown = /* #__PURE__ */ (function () {\n var $27 = handler(Web_UIEvent_MouseEvent_EventTypes.mousedown);\n return function ($28) {\n return $27(mouseHandler($28));\n };\n})();\nvar onMouseEnter = /* #__PURE__ */ (function () {\n var $29 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseenter);\n return function ($30) {\n return $29(mouseHandler($30));\n };\n})();\nvar onMouseLeave = /* #__PURE__ */ (function () {\n var $31 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseleave);\n return function ($32) {\n return $31(mouseHandler($32));\n };\n})();\nvar onMouseMove = /* #__PURE__ */ (function () {\n var $33 = handler(Web_UIEvent_MouseEvent_EventTypes.mousemove);\n return function ($34) {\n return $33(mouseHandler($34));\n };\n})();\nvar onMouseOut = /* #__PURE__ */ (function () {\n var $35 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseout);\n return function ($36) {\n return $35(mouseHandler($36));\n };\n})();\nvar onMouseOver = /* #__PURE__ */ (function () {\n var $37 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseover);\n return function ($38) {\n return $37(mouseHandler($38));\n };\n})();\nvar onMouseUp = /* #__PURE__ */ (function () {\n var $39 = handler(Web_UIEvent_MouseEvent_EventTypes.mouseup);\n return function ($40) {\n return $39(mouseHandler($40));\n };\n})();\nvar onReset = /* #__PURE__ */ handler(\"reset\");\nvar onResize = /* #__PURE__ */ handler(\"resize\");\nvar onScroll = /* #__PURE__ */ handler(\"scroll\");\nvar onSelect = /* #__PURE__ */ handler(Web_HTML_Event_EventTypes.select);\nvar onSubmit = /* #__PURE__ */ handler(\"submit\");\nvar onTouchCancel = /* #__PURE__ */ (function () {\n var $41 = handler(\"touchcancel\");\n return function ($42) {\n return $41(touchHandler($42));\n };\n})();\nvar onTouchEnd = /* #__PURE__ */ (function () {\n var $43 = handler(\"touchend\");\n return function ($44) {\n return $43(touchHandler($44));\n };\n})();\nvar onTouchEnter = /* #__PURE__ */ (function () {\n var $45 = handler(\"touchenter\");\n return function ($46) {\n return $45(touchHandler($46));\n };\n})();\nvar onTouchLeave = /* #__PURE__ */ (function () {\n var $47 = handler(\"touchleave\");\n return function ($48) {\n return $47(touchHandler($48));\n };\n})();\nvar onTouchMove = /* #__PURE__ */ (function () {\n var $49 = handler(\"touchmove\");\n return function ($50) {\n return $49(touchHandler($50));\n };\n})();\nvar onTouchStart = /* #__PURE__ */ (function () {\n var $51 = handler(\"touchstart\");\n return function ($52) {\n return $51(touchHandler($52));\n };\n})();\nvar onTransitionEnd = /* #__PURE__ */ handler(\"transitionend\");\nvar onWheel = /* #__PURE__ */ (function () {\n var $53 = handler(Web_UIEvent_WheelEvent_EventTypes.wheel);\n return function ($54) {\n return $53(wheelHandler($54));\n };\n})();\nvar focusHandler = Unsafe_Coerce.unsafeCoerce;\nvar onBlur = /* #__PURE__ */ (function () {\n var $55 = handler(Web_HTML_Event_EventTypes.blur);\n return function ($56) {\n return $55(focusHandler($56));\n };\n})();\nvar onFocus = /* #__PURE__ */ (function () {\n var $57 = handler(Web_UIEvent_FocusEvent_EventTypes.focus);\n return function ($58) {\n return $57(focusHandler($58));\n };\n})();\nvar onFocusIn = /* #__PURE__ */ (function () {\n var $59 = handler(Web_UIEvent_FocusEvent_EventTypes.focusin);\n return function ($60) {\n return $59(focusHandler($60));\n };\n})();\nvar onFocusOut = /* #__PURE__ */ (function () {\n var $61 = handler(Web_UIEvent_FocusEvent_EventTypes.focusout);\n return function ($62) {\n return $61(focusHandler($62));\n };\n})();\nvar dragHandler = Unsafe_Coerce.unsafeCoerce;\nvar onDrag = /* #__PURE__ */ (function () {\n var $63 = handler(Web_HTML_Event_DragEvent_EventTypes.drag);\n return function ($64) {\n return $63(dragHandler($64));\n };\n})();\nvar onDragEnd = /* #__PURE__ */ (function () {\n var $65 = handler(Web_HTML_Event_DragEvent_EventTypes.dragend);\n return function ($66) {\n return $65(dragHandler($66));\n };\n})();\nvar onDragEnter = /* #__PURE__ */ (function () {\n var $67 = handler(Web_HTML_Event_DragEvent_EventTypes.dragenter);\n return function ($68) {\n return $67(dragHandler($68));\n };\n})();\nvar onDragExit = /* #__PURE__ */ (function () {\n var $69 = handler(Web_HTML_Event_DragEvent_EventTypes.dragexit);\n return function ($70) {\n return $69(dragHandler($70));\n };\n})();\nvar onDragLeave = /* #__PURE__ */ (function () {\n var $71 = handler(Web_HTML_Event_DragEvent_EventTypes.dragleave);\n return function ($72) {\n return $71(dragHandler($72));\n };\n})();\nvar onDragOver = /* #__PURE__ */ (function () {\n var $73 = handler(Web_HTML_Event_DragEvent_EventTypes.dragover);\n return function ($74) {\n return $73(dragHandler($74));\n };\n})();\nvar onDragStart = /* #__PURE__ */ (function () {\n var $75 = handler(Web_HTML_Event_DragEvent_EventTypes.dragstart);\n return function ($76) {\n return $75(dragHandler($76));\n };\n})();\nvar onDrop = /* #__PURE__ */ (function () {\n var $77 = handler(Web_HTML_Event_DragEvent_EventTypes.drop);\n return function ($78) {\n return $77(dragHandler($78));\n };\n})();\nvar clipboardHandler = Unsafe_Coerce.unsafeCoerce;\nvar onCopy = /* #__PURE__ */ (function () {\n var $79 = handler(Web_Clipboard_ClipboardEvent_EventTypes.copy);\n return function ($80) {\n return $79(clipboardHandler($80));\n };\n})();\nvar onCut = /* #__PURE__ */ (function () {\n var $81 = handler(Web_Clipboard_ClipboardEvent_EventTypes.cut);\n return function ($82) {\n return $81(clipboardHandler($82));\n };\n})();\nvar onPaste = /* #__PURE__ */ (function () {\n var $83 = handler(Web_Clipboard_ClipboardEvent_EventTypes.paste);\n return function ($84) {\n return $83(clipboardHandler($84));\n };\n})();\nvar addForeignPropHandler = function (key) {\n return function (prop) {\n return function (reader) {\n return function (f) {\n var go = function (a) {\n return composeKleisliFlipped(reader)(readProp(prop))(Foreign.unsafeToForeign(a));\n };\n return handler$prime(key)(composeKleisli(Web_Event_Event.currentTarget)(function (e) {\n return Data_Either.either(Data_Function[\"const\"](Data_Maybe.Nothing.value))(function ($85) {\n return Data_Maybe.Just.create(f($85));\n })(Control_Monad_Except.runExcept(go(e)));\n }));\n };\n };\n };\n};\nvar onChecked = /* #__PURE__ */ addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"checked\")(/* #__PURE__ */ Foreign.readBoolean(Data_Identity.monadIdentity));\nvar onSelectedIndexChange = /* #__PURE__ */ addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"selectedIndex\")(/* #__PURE__ */ Foreign.readInt(Data_Identity.monadIdentity));\nvar onValueChange = /* #__PURE__ */ addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"value\")(readString);\nvar onValueInput = /* #__PURE__ */ addForeignPropHandler(Web_HTML_Event_EventTypes.input)(\"value\")(readString);\nexport {\n handler,\n handler$prime,\n onAbort,\n onError,\n onLoad,\n onScroll,\n onChange,\n onFileUpload,\n onInput,\n onInvalid,\n onReset,\n onSelect,\n onSubmit,\n onTransitionEnd,\n onCopy,\n onPaste,\n onCut,\n onAuxClick,\n onClick,\n onDoubleClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOver,\n onMouseOut,\n onMouseUp,\n onWheel,\n onKeyDown,\n onKeyUp,\n onBlur,\n onFocus,\n onFocusIn,\n onFocusOut,\n onDrag,\n onDragEnd,\n onDragExit,\n onDragEnter,\n onDragLeave,\n onDragOver,\n onDragStart,\n onDrop,\n onTouchCancel,\n onTouchEnd,\n onTouchEnter,\n onTouchLeave,\n onTouchMove,\n onTouchStart,\n onResize,\n onValueChange,\n onValueInput,\n onSelectedIndexChange,\n onChecked\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as DOM_HTML_Indexed from \"../DOM.HTML.Indexed/index.js\";\nimport * as DOM_HTML_Indexed_AutocompleteType from \"../DOM.HTML.Indexed.AutocompleteType/index.js\";\nimport * as DOM_HTML_Indexed_ButtonType from \"../DOM.HTML.Indexed.ButtonType/index.js\";\nimport * as DOM_HTML_Indexed_FormMethod from \"../DOM.HTML.Indexed.FormMethod/index.js\";\nimport * as DOM_HTML_Indexed_InputAcceptType from \"../DOM.HTML.Indexed.InputAcceptType/index.js\";\nimport * as DOM_HTML_Indexed_InputType from \"../DOM.HTML.Indexed.InputType/index.js\";\nimport * as DOM_HTML_Indexed_MenuType from \"../DOM.HTML.Indexed.MenuType/index.js\";\nimport * as DOM_HTML_Indexed_MenuitemType from \"../DOM.HTML.Indexed.MenuitemType/index.js\";\nimport * as DOM_HTML_Indexed_OrderedListType from \"../DOM.HTML.Indexed.OrderedListType/index.js\";\nimport * as DOM_HTML_Indexed_PreloadValue from \"../DOM.HTML.Indexed.PreloadValue/index.js\";\nimport * as DOM_HTML_Indexed_ScopeValue from \"../DOM.HTML.Indexed.ScopeValue/index.js\";\nimport * as DOM_HTML_Indexed_StepValue from \"../DOM.HTML.Indexed.StepValue/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Halogen_VDom_DOM_Prop from \"../Halogen.VDom.DOM.Prop/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Halogen_VDom_DOM_Prop.functorProp);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Halogen_Query_Input.functorInput);\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar IProp = function (x) {\n return x;\n};\nvar ref = /* #__PURE__ */ (function () {\n var go = function (p) {\n return function (mel) {\n return new Data_Maybe.Just(new Halogen_Query_Input.RefUpdate(p, mel));\n };\n };\n return function ($29) {\n return Halogen_HTML_Core.ref(go($29));\n };\n})();\nvar prop = function (dictIsProp) {\n return Halogen_HTML_Core.prop(dictIsProp);\n};\nvar prop1 = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropBoolean);\nvar prop2 = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropString);\nvar prop3 = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropInt);\nvar prop4 = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropNumber);\nvar readOnly = /* #__PURE__ */ prop1(\"readOnly\");\nvar rel = /* #__PURE__ */ prop2(\"rel\");\nvar required = /* #__PURE__ */ prop1(\"required\");\nvar rowSpan = /* #__PURE__ */ prop3(\"rowSpan\");\nvar rows = /* #__PURE__ */ prop3(\"rows\");\nvar scope = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropScopeValue)(\"scope\");\nvar selected = /* #__PURE__ */ prop1(\"selected\");\nvar selectedIndex = /* #__PURE__ */ prop3(\"selectedIndex\");\nvar spellcheck = /* #__PURE__ */ prop1(\"spellcheck\");\nvar src = /* #__PURE__ */ prop2(\"src\");\nvar srcDoc = /* #__PURE__ */ prop2(\"srcdoc\");\nvar step = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropStepValue)(\"step\");\nvar tabIndex = /* #__PURE__ */ prop3(\"tabIndex\");\nvar target = /* #__PURE__ */ prop2(\"target\");\nvar title = /* #__PURE__ */ prop2(\"title\");\nvar type_ = function (dictIsProp) {\n return prop(dictIsProp)(\"type\");\n};\nvar value = function (dictIsProp) {\n return prop(dictIsProp)(\"value\");\n};\nvar width = /* #__PURE__ */ prop3(\"width\");\nvar preload = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropPreloadValue)(\"preload\");\nvar poster = /* #__PURE__ */ prop2(\"poster\");\nvar placeholder = /* #__PURE__ */ prop2(\"placeholder\");\nvar pattern = /* #__PURE__ */ prop2(\"pattern\");\nvar noValidate = /* #__PURE__ */ prop1(\"noValidate\");\nvar newtypeIProp = {\n Coercible0: function () {\n return undefined;\n }\n};\nvar name = /* #__PURE__ */ prop2(\"name\");\nvar muted = /* #__PURE__ */ prop1(\"muted\");\nvar multiple = /* #__PURE__ */ prop1(\"multiple\");\nvar min = /* #__PURE__ */ prop4(\"min\");\nvar method = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropFormMethod)(\"method\");\nvar max = /* #__PURE__ */ prop4(\"max\");\nvar loop = /* #__PURE__ */ prop1(\"loop\");\nvar id = /* #__PURE__ */ prop2(\"id\");\nvar href = /* #__PURE__ */ prop2(\"href\");\nvar height = /* #__PURE__ */ prop3(\"height\");\nvar functorIProp = {\n map: function (f) {\n return function (m) {\n return map(map1(f))(m);\n };\n }\n};\nvar $$for = /* #__PURE__ */ prop2(\"htmlFor\");\nvar expand = function () {\n return Unsafe_Coerce.unsafeCoerce;\n};\nvar enctype = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropMediaType)(\"enctype\");\nvar draggable = /* #__PURE__ */ prop1(\"draggable\");\nvar download = /* #__PURE__ */ prop2(\"download\");\nvar disabled = /* #__PURE__ */ prop1(\"disabled\");\nvar enabled = /* #__PURE__ */ (function () {\n var $30 = Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraBoolean);\n return function ($31) {\n return disabled($30($31));\n };\n})();\nvar controls = /* #__PURE__ */ prop1(\"controls\");\nvar cols = /* #__PURE__ */ prop3(\"cols\");\nvar colSpan = /* #__PURE__ */ prop3(\"colSpan\");\nvar classes = /* #__PURE__ */ (function () {\n var $32 = prop2(\"className\");\n var $33 = Data_String_Common.joinWith(\" \");\n var $34 = Data_Functor.map(Data_Functor.functorArray)(unwrap);\n return function ($35) {\n return $32($33($34($35)));\n };\n})();\nvar class_ = /* #__PURE__ */ (function () {\n var $36 = prop2(\"className\");\n return function ($37) {\n return $36(unwrap($37));\n };\n})();\nvar checked = /* #__PURE__ */ prop1(\"checked\");\nvar charset = /* #__PURE__ */ prop2(\"charset\");\nvar autoplay = /* #__PURE__ */ prop1(\"autoplay\");\nvar autofocus = /* #__PURE__ */ prop1(\"autofocus\");\nvar autocomplete = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropAutocompleteType)(\"autocomplete\");\nvar attrNS = /* #__PURE__ */ (function () {\n var $38 = Control_Applicative.pure(Data_Maybe.applicativeMaybe);\n return function ($39) {\n return Halogen_HTML_Core.attr($38($39));\n };\n})();\nvar attr = /* #__PURE__ */ (function () {\n return Halogen_HTML_Core.attr(Data_Maybe.Nothing.value);\n})();\nvar list = /* #__PURE__ */ attr(\"list\");\nvar style = /* #__PURE__ */ attr(\"style\");\nvar alt = /* #__PURE__ */ prop2(\"alt\");\nvar action = /* #__PURE__ */ prop2(\"action\");\nvar accept = /* #__PURE__ */ prop(Halogen_HTML_Core.isPropInputAcceptType)(\"accept\");\nexport {\n IProp,\n prop,\n attr,\n attrNS,\n ref,\n expand,\n alt,\n charset,\n class_,\n classes,\n cols,\n rows,\n colSpan,\n rowSpan,\n $$for as for,\n height,\n width,\n href,\n id,\n name,\n rel,\n src,\n srcDoc,\n style,\n scope,\n target,\n title,\n download,\n method,\n action,\n enctype,\n noValidate,\n type_,\n value,\n min,\n max,\n step,\n disabled,\n enabled,\n required,\n readOnly,\n spellcheck,\n checked,\n selected,\n selectedIndex,\n placeholder,\n autocomplete,\n list,\n autofocus,\n multiple,\n pattern,\n accept,\n autoplay,\n controls,\n loop,\n muted,\n poster,\n preload,\n draggable,\n tabIndex,\n newtypeIProp,\n functorIProp\n};\nexport {\n AutocompleteAdditionalName,\n AutocompleteAddressLevel1,\n AutocompleteAddressLevel2,\n AutocompleteAddressLevel3,\n AutocompleteAddressLevel4,\n AutocompleteAddressLine1,\n AutocompleteAddressLine2,\n AutocompleteAddressLine3,\n AutocompleteBirthday,\n AutocompleteBirthdayDay,\n AutocompleteBirthdayMonth,\n AutocompleteBirthdayYear,\n AutocompleteCountry,\n AutocompleteCountryName,\n AutocompleteCreditCardAdditionalName,\n AutocompleteCreditCardExpiration,\n AutocompleteCreditCardExpirationMonth,\n AutocompleteCreditCardExpirationYear,\n AutocompleteCreditCardFamilyName,\n AutocompleteCreditCardGivenName,\n AutocompleteCreditCardName,\n AutocompleteCreditCardNumber,\n AutocompleteCreditCardSecurityCode,\n AutocompleteCreditCardType,\n AutocompleteCurrentPassword,\n AutocompleteEmail,\n AutocompleteFamilyName,\n AutocompleteGivenName,\n AutocompleteHonorificPrefix,\n AutocompleteHonorificSuffix,\n AutocompleteIMPP,\n AutocompleteLanguage,\n AutocompleteName,\n AutocompleteNewPassword,\n AutocompleteNickname,\n AutocompleteOff,\n AutocompleteOn,\n AutocompleteOneTimeCode,\n AutocompleteOrganization,\n AutocompleteOrganizationTitle,\n AutocompletePhoto,\n AutocompletePostalCode,\n AutocompleteSex,\n AutocompleteStreetAddress,\n AutocompleteTelephone,\n AutocompleteTelephoneAreaCode,\n AutocompleteTelephoneCountryCode,\n AutocompleteTelephoneExtension,\n AutocompleteTelephoneLocal,\n AutocompleteTelephoneLocalPrefix,\n AutocompleteTelephoneLocalSuffix,\n AutocompleteTelephoneNational,\n AutocompleteTransactionAmount,\n AutocompleteTransactionCurrency,\n AutocompleteURL,\n AutocompleteUsername\n} from \"../DOM.HTML.Indexed.AutocompleteType/index.js\";\nexport {\n ButtonButton,\n ButtonReset,\n ButtonSubmit\n} from \"../DOM.HTML.Indexed.ButtonType/index.js\";\nexport {\n GET,\n POST\n} from \"../DOM.HTML.Indexed.FormMethod/index.js\";\nexport {\n InputAcceptType\n} from \"../DOM.HTML.Indexed.InputAcceptType/index.js\";\nexport {\n InputButton,\n InputCheckbox,\n InputColor,\n InputDate,\n InputDatetimeLocal,\n InputEmail,\n InputFile,\n InputHidden,\n InputImage,\n InputMonth,\n InputNumber,\n InputPassword,\n InputRadio,\n InputRange,\n InputReset,\n InputSearch,\n InputSubmit,\n InputTel,\n InputText,\n InputTime,\n InputUrl,\n InputWeek\n} from \"../DOM.HTML.Indexed.InputType/index.js\";\nexport {\n MenuContext,\n MenuList,\n MenuToolbar\n} from \"../DOM.HTML.Indexed.MenuType/index.js\";\nexport {\n MenuitemCheckbox,\n MenuitemCommand,\n MenuitemRadio\n} from \"../DOM.HTML.Indexed.MenuitemType/index.js\";\nexport {\n OrderedListAlphabetic,\n OrderedListNumeric\n} from \"../DOM.HTML.Indexed.OrderedListType/index.js\";\nexport {\n PreloadAuto,\n PreloadMetadata,\n PreloadNone\n} from \"../DOM.HTML.Indexed.PreloadValue/index.js\";\nexport {\n ScopeAuto,\n ScopeCol,\n ScopeColGroup,\n ScopeRow,\n ScopeRowGroup\n} from \"../DOM.HTML.Indexed.ScopeValue/index.js\";\nexport {\n Any,\n Step\n} from \"../DOM.HTML.Indexed.StepValue/index.js\";\n", "/* global Symbol */\n\nvar hasArrayFrom = typeof Array.from === \"function\";\nvar hasStringIterator =\n typeof Symbol !== \"undefined\" &&\n Symbol != null &&\n typeof Symbol.iterator !== \"undefined\" &&\n typeof String.prototype[Symbol.iterator] === \"function\";\nvar hasFromCodePoint = typeof String.prototype.fromCodePoint === \"function\";\nvar hasCodePointAt = typeof String.prototype.codePointAt === \"function\";\n\nexport const _unsafeCodePointAt0 = function (fallback) {\n return hasCodePointAt\n ? function (str) { return str.codePointAt(0); }\n : fallback;\n};\n\nexport const _codePointAt = function (fallback) {\n return function (Just) {\n return function (Nothing) {\n return function (unsafeCodePointAt0) {\n return function (index) {\n return function (str) {\n var length = str.length;\n if (index < 0 || index >= length) return Nothing;\n if (hasStringIterator) {\n var iter = str[Symbol.iterator]();\n for (var i = index;; --i) {\n var o = iter.next();\n if (o.done) return Nothing;\n if (i === 0) return Just(unsafeCodePointAt0(o.value));\n }\n }\n return fallback(index)(str);\n };\n };\n };\n };\n };\n};\n\nexport const _countPrefix = function (fallback) {\n return function (unsafeCodePointAt0) {\n if (hasStringIterator) {\n return function (pred) {\n return function (str) {\n var iter = str[Symbol.iterator]();\n for (var cpCount = 0; ; ++cpCount) {\n var o = iter.next();\n if (o.done) return cpCount;\n var cp = unsafeCodePointAt0(o.value);\n if (!pred(cp)) return cpCount;\n }\n };\n };\n }\n return fallback;\n };\n};\n\nexport const _fromCodePointArray = function (singleton) {\n return hasFromCodePoint\n ? function (cps) {\n // Function.prototype.apply will fail for very large second parameters,\n // so we don't use it for arrays with 10,000 or more entries.\n if (cps.length < 10e3) {\n return String.fromCodePoint.apply(String, cps);\n }\n return cps.map(singleton).join(\"\");\n }\n : function (cps) {\n return cps.map(singleton).join(\"\");\n };\n};\n\nexport const _singleton = function (fallback) {\n return hasFromCodePoint ? String.fromCodePoint : fallback;\n};\n\nexport const _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\nexport const _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", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Bounded from \"../Data.Bounded/index.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_EuclideanRing from \"../Data.EuclideanRing/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Int from \"../Data.Int/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_String_Unsafe from \"../Data.String.Unsafe/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar fromEnum = /* #__PURE__ */ Data_Enum.fromEnum(Data_Enum.boundedEnumChar);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar unfoldr = /* #__PURE__ */ Data_Unfoldable.unfoldr(Data_Unfoldable.unfoldableArray);\nvar div = /* #__PURE__ */ Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt);\nvar mod = /* #__PURE__ */ Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt);\nvar compare = /* #__PURE__ */ Data_Ord.compare(Data_Ord.ordInt);\nvar CodePoint = function (x) {\n return x;\n};\nvar unsurrogate = function (lead) {\n return function (trail) {\n return (((lead - 55296 | 0) * 1024 | 0) + (trail - 56320 | 0) | 0) + 65536 | 0;\n };\n};\nvar showCodePoint = {\n show: function (v) {\n return \"(CodePoint 0x\" + (Data_String_Common.toUpper(Data_Int.toStringAs(Data_Int.hexadecimal)(v)) + \")\");\n }\n};\nvar isTrail = function (cu) {\n return 56320 <= cu && cu <= 57343;\n};\nvar isLead = function (cu) {\n return 55296 <= cu && cu <= 56319;\n};\nvar 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: fromEnum(Data_String_Unsafe.charAt(0)(s)),\n tail: \"\"\n });\n };\n var cu1 = fromEnum(Data_String_Unsafe.charAt(1)(s));\n var cu0 = fromEnum(Data_String_Unsafe.charAt(0)(s));\n var $43 = isLead(cu0) && isTrail(cu1);\n if ($43) {\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};\nvar unconsButWithTuple = function (s) {\n return map(function (v) {\n return new Data_Tuple.Tuple(v.head, v.tail);\n })(uncons(s));\n};\nvar toCodePointArrayFallback = function (s) {\n return unfoldr(unconsButWithTuple)(s);\n};\nvar unsafeCodePointAt0Fallback = function (s) {\n var cu0 = fromEnum(Data_String_Unsafe.charAt(0)(s));\n var $47 = isLead(cu0) && Data_String_CodeUnits.length(s) > 1;\n if ($47) {\n var cu1 = fromEnum(Data_String_Unsafe.charAt(1)(s));\n var $48 = isTrail(cu1);\n if ($48) {\n return unsurrogate(cu0)(cu1);\n };\n return cu0;\n };\n return cu0;\n};\nvar unsafeCodePointAt0 = /* #__PURE__ */ $foreign[\"_unsafeCodePointAt0\"](unsafeCodePointAt0Fallback);\nvar toCodePointArray = /* #__PURE__ */ $foreign[\"_toCodePointArray\"](toCodePointArrayFallback)(unsafeCodePointAt0);\nvar length = function ($74) {\n return Data_Array.length(toCodePointArray($74));\n};\nvar lastIndexOf = function (p) {\n return function (s) {\n return map(function (i) {\n return length(Data_String_CodeUnits.take(i)(s));\n })(Data_String_CodeUnits.lastIndexOf(p)(s));\n };\n};\nvar indexOf = function (p) {\n return function (s) {\n return map(function (i) {\n return length(Data_String_CodeUnits.take(i)(s));\n })(Data_String_CodeUnits.indexOf(p)(s));\n };\n};\nvar fromCharCode = /* #__PURE__ */ (function () {\n var $75 = Data_Enum.toEnumWithDefaults(Data_Enum.boundedEnumChar)(Data_Bounded.bottom(Data_Bounded.boundedChar))(Data_Bounded.top(Data_Bounded.boundedChar));\n return function ($76) {\n return Data_String_CodeUnits.singleton($75($76));\n };\n})();\nvar singletonFallback = function (v) {\n if (v <= 65535) {\n return fromCharCode(v);\n };\n var lead = div(v - 65536 | 0)(1024) + 55296 | 0;\n var trail = mod(v - 65536 | 0)(1024) + 56320 | 0;\n return fromCharCode(lead) + fromCharCode(trail);\n};\nvar fromCodePointArray = /* #__PURE__ */ $foreign[\"_fromCodePointArray\"](singletonFallback);\nvar singleton = /* #__PURE__ */ $foreign[\"_singleton\"](singletonFallback);\nvar takeFallback = function (v) {\n return function (v1) {\n if (v < 1) {\n return \"\";\n };\n var v2 = uncons(v1);\n if (v2 instanceof Data_Maybe.Just) {\n return singleton(v2.value0.head) + takeFallback(v - 1 | 0)(v2.value0.tail);\n };\n return v1;\n };\n};\nvar take = /* #__PURE__ */ $foreign[\"_take\"](takeFallback);\nvar lastIndexOf$prime = function (p) {\n return function (i) {\n return function (s) {\n var i$prime = Data_String_CodeUnits.length(take(i)(s));\n return map(function (k) {\n return length(Data_String_CodeUnits.take(k)(s));\n })(Data_String_CodeUnits[\"lastIndexOf$prime\"](p)(i$prime)(s));\n };\n };\n};\nvar splitAt = function (i) {\n return function (s) {\n var before = take(i)(s);\n return {\n before: before,\n after: Data_String_CodeUnits.drop(Data_String_CodeUnits.length(before))(s)\n };\n };\n};\nvar eqCodePoint = {\n eq: function (x) {\n return function (y) {\n return x === y;\n };\n }\n};\nvar ordCodePoint = {\n compare: function (x) {\n return function (y) {\n return compare(x)(y);\n };\n },\n Eq0: function () {\n return eqCodePoint;\n }\n};\nvar drop = function (n) {\n return function (s) {\n return Data_String_CodeUnits.drop(Data_String_CodeUnits.length(take(n)(s)))(s);\n };\n};\nvar indexOf$prime = function (p) {\n return function (i) {\n return function (s) {\n var s$prime = drop(i)(s);\n return map(function (k) {\n return i + length(Data_String_CodeUnits.take(k)(s$prime)) | 0;\n })(Data_String_CodeUnits.indexOf(p)(s$prime));\n };\n };\n};\nvar countTail = function ($copy_p) {\n return function ($copy_s) {\n return function ($copy_accum) {\n var $tco_var_p = $copy_p;\n var $tco_var_s = $copy_s;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(p, s, accum) {\n var v = uncons(s);\n if (v instanceof Data_Maybe.Just) {\n var $61 = p(v.value0.head);\n if ($61) {\n $tco_var_p = p;\n $tco_var_s = v.value0.tail;\n $copy_accum = accum + 1 | 0;\n return;\n };\n $tco_done = true;\n return accum;\n };\n $tco_done = true;\n return accum;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_p, $tco_var_s, $copy_accum);\n };\n return $tco_result;\n };\n };\n};\nvar countFallback = function (p) {\n return function (s) {\n return countTail(p)(s)(0);\n };\n};\nvar countPrefix = /* #__PURE__ */ $foreign[\"_countPrefix\"](countFallback)(unsafeCodePointAt0);\nvar dropWhile = function (p) {\n return function (s) {\n return drop(countPrefix(p)(s))(s);\n };\n};\nvar takeWhile = function (p) {\n return function (s) {\n return take(countPrefix(p)(s))(s);\n };\n};\nvar codePointFromChar = function ($77) {\n return CodePoint(fromEnum($77));\n};\nvar codePointAtFallback = function ($copy_n) {\n return function ($copy_s) {\n var $tco_var_n = $copy_n;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(n, s) {\n var v = uncons(s);\n if (v instanceof Data_Maybe.Just) {\n var $66 = n === 0;\n if ($66) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value0.head);\n };\n $tco_var_n = n - 1 | 0;\n $copy_s = v.value0.tail;\n return;\n };\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_n, $copy_s);\n };\n return $tco_result;\n };\n};\nvar codePointAt = function (v) {\n return function (v1) {\n if (v < 0) {\n return Data_Maybe.Nothing.value;\n };\n if (v === 0 && v1 === \"\") {\n return Data_Maybe.Nothing.value;\n };\n if (v === 0) {\n return new Data_Maybe.Just(unsafeCodePointAt0(v1));\n };\n return $foreign[\"_codePointAt\"](codePointAtFallback)(Data_Maybe.Just.create)(Data_Maybe.Nothing.value)(unsafeCodePointAt0)(v)(v1);\n };\n};\nvar boundedCodePoint = {\n bottom: 0,\n top: 1114111,\n Ord0: function () {\n return ordCodePoint;\n }\n};\nvar boundedEnumCodePoint = /* #__PURE__ */ (function () {\n return {\n cardinality: 1114111 + 1 | 0,\n fromEnum: function (v) {\n return v;\n },\n toEnum: function (n) {\n if (n >= 0 && n <= 1114111) {\n return new Data_Maybe.Just(n);\n };\n if (Data_Boolean.otherwise) {\n return Data_Maybe.Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.String.CodePoints (line 63, column 1 - line 68, column 26): \" + [ n.constructor.name ]);\n },\n Bounded0: function () {\n return boundedCodePoint;\n },\n Enum1: function () {\n return $lazy_enumCodePoint(0);\n }\n };\n})();\nvar $lazy_enumCodePoint = /* #__PURE__ */ $runtime_lazy(\"enumCodePoint\", \"Data.String.CodePoints\", function () {\n return {\n succ: Data_Enum.defaultSucc(Data_Enum.toEnum(boundedEnumCodePoint))(Data_Enum.fromEnum(boundedEnumCodePoint)),\n pred: Data_Enum.defaultPred(Data_Enum.toEnum(boundedEnumCodePoint))(Data_Enum.fromEnum(boundedEnumCodePoint)),\n Ord0: function () {\n return ordCodePoint;\n }\n };\n});\nvar enumCodePoint = /* #__PURE__ */ $lazy_enumCodePoint(59);\nexport {\n codePointFromChar,\n singleton,\n fromCodePointArray,\n toCodePointArray,\n codePointAt,\n uncons,\n length,\n countPrefix,\n indexOf,\n indexOf$prime,\n lastIndexOf,\n lastIndexOf$prime,\n take,\n takeWhile,\n drop,\n dropWhile,\n splitAt,\n eqCodePoint,\n ordCodePoint,\n showCodePoint,\n boundedCodePoint,\n enumCodePoint,\n boundedEnumCodePoint\n};\nexport {\n contains,\n stripPrefix,\n stripSuffix\n} from \"../Data.String.CodeUnits/index.js\";\n", "var getEffProp = function (name) {\n return function (doc) {\n return function () {\n return doc[name];\n };\n };\n};\n\nexport const url = getEffProp(\"URL\");\nexport const documentURI = getEffProp(\"documentURI\");\nexport const origin = getEffProp(\"origin\");\nexport const compatMode = getEffProp(\"compatMode\");\nexport const characterSet = getEffProp(\"characterSet\");\nexport const contentType = getEffProp(\"contentType\");\nexport function _doctype(doc) {\n return doc[\"doctype\"];\n}\nexport const _documentElement = getEffProp(\"documentElement\");\n\nexport function getElementsByTagName(localName) {\n return function (doc) {\n return function () {\n return doc.getElementsByTagName(localName);\n };\n };\n}\n\nexport function _getElementsByTagNameNS(ns) {\n return function (localName) {\n return function (doc) {\n return function () {\n return doc.getElementsByTagNameNS(ns, localName);\n };\n };\n };\n}\n\nexport function getElementsByClassName(classNames) {\n return function (doc) {\n return function () {\n return doc.getElementsByClassName(classNames);\n };\n };\n}\n\nexport function createElement(localName) {\n return function (doc) {\n return function () {\n return doc.createElement(localName);\n };\n };\n}\n\nexport function _createElementNS(ns) {\n return function (qualifiedName) {\n return function (doc) {\n return function () {\n return doc.createElementNS(ns, qualifiedName);\n };\n };\n };\n}\n\nexport function createDocumentFragment(doc) {\n return function () {\n return doc.createDocumentFragment();\n };\n}\n\nexport function createTextNode(data) {\n return function (doc) {\n return function () {\n return doc.createTextNode(data);\n };\n };\n}\n\nexport function createComment(data) {\n return function (doc) {\n return function () {\n return doc.createComment(data);\n };\n };\n}\n\nexport function createProcessingInstruction(target) {\n return function (data) {\n return function (doc) {\n return function () {\n return doc.createProcessingInstruction(target, data);\n };\n };\n };\n}\n\nexport function importNode(node) {\n return function (deep) {\n return function (doc) {\n return function () {\n return doc.importNode(node, deep);\n };\n };\n };\n}\n\nexport function adoptNode(node) {\n return function (doc) {\n return function () {\n return doc.adoptNode(node);\n };\n };\n}\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Maybe_Trans from \"../Control.Monad.Maybe.Trans/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_String_CodePoints from \"../Data.String.CodePoints/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_HTML_Properties from \"../Halogen.HTML.Properties/index.js\";\nimport * as JSURI from \"../JSURI/index.js\";\nimport * as Web_DOM_Document from \"../Web.DOM.Document/index.js\";\nimport * as Web_DOM_Element from \"../Web.DOM.Element/index.js\";\nimport * as Web_DOM_NodeList from \"../Web.DOM.NodeList/index.js\";\nimport * as Web_DOM_NonElementParentNode from \"../Web.DOM.NonElementParentNode/index.js\";\nimport * as Web_DOM_ParentNode from \"../Web.DOM.ParentNode/index.js\";\nimport * as Web_HTML from \"../Web.HTML/index.js\";\nimport * as Web_HTML_Common from \"../Web.HTML.Common/index.js\";\nimport * as Web_HTML_HTMLDocument from \"../Web.HTML.HTMLDocument/index.js\";\nimport * as Web_HTML_HTMLElement from \"../Web.HTML.HTMLElement/index.js\";\nimport * as Web_HTML_Location from \"../Web.HTML.Location/index.js\";\nimport * as Web_HTML_Window from \"../Web.HTML.Window/index.js\";\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Effect.bindEffect);\nvar for_ = /* #__PURE__ */ Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar join = /* #__PURE__ */ Control_Bind.join(Data_Maybe.bindMaybe);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar whenH = function (b) {\n return function (k) {\n if (b) {\n return k(Data_Unit.unit);\n };\n return Halogen_HTML_Core.text(\"\");\n };\n};\nvar whenC = function (b) {\n return function (c) {\n if (b) {\n return c;\n };\n return \"\";\n };\n};\nvar whenA = function (b) {\n return function (k) {\n if (b) {\n return k(Data_Unit.unit);\n };\n return [ ];\n };\n};\nvar unsafeDecode = function (str) {\n return fromJust(JSURI[\"decodeURIComponent\"](str));\n};\nvar monthNames = [ \"january\", \"february\", \"march\", \"april\", \"may\", \"june\", \"july\", \"august\", \"september\", \"october\", \"november\", \"december\" ];\nvar maybeH = function (m) {\n return function (k) {\n return Data_Maybe.maybe(Halogen_HTML_Core.text(\"\"))(k)(m);\n };\n};\nvar ifElseH = function (b) {\n return function (f) {\n return function (k) {\n if (b) {\n return f(Data_Unit.unit);\n };\n return k(Data_Unit.unit);\n };\n };\n};\nvar ifElseA = function (b) {\n return function (f) {\n return function (k) {\n if (b) {\n return f(Data_Unit.unit);\n };\n return k(Data_Unit.unit);\n };\n };\n};\nvar fromNullableStr = /* #__PURE__ */ (function () {\n var $53 = Data_Maybe.fromMaybe(\"\");\n return function ($54) {\n return $53(Data_Nullable.toMaybe($54));\n };\n})();\nvar encodeTag = /* #__PURE__ */ (function () {\n var $55 = Data_Maybe.fromMaybe(\"\");\n var $56 = Data_String_Common.replaceAll(\"+\")(\"%2B\");\n return function ($57) {\n return $55(JSURI[\"encodeURIComponent\"]($56($57)));\n };\n})();\nvar dummyAttr = /* #__PURE__ */ Halogen_HTML_Properties.attr(\"data-dummy\")(\"\");\nvar maybeP = function (m) {\n return function (p) {\n return Data_Maybe.maybe(dummyAttr)(p)(m);\n };\n};\nvar whenP = function (b) {\n return function (p) {\n if (b) {\n return p;\n };\n return dummyAttr;\n };\n};\nvar class_ = function ($58) {\n return Halogen_HTML_Properties.class_(Web_HTML_Common.ClassName($58));\n};\nvar attr = function (a) {\n return Halogen_HTML_Properties.attr(a);\n};\nvar _querySelectorAll = function (s) {\n return function (n) {\n return bindFlipped(Web_DOM_NodeList.toArray)(Web_DOM_ParentNode.querySelectorAll(s)(Web_DOM_Element.toParentNode(n)));\n };\n};\nvar _querySelector = function (s) {\n return function (n) {\n return Web_DOM_ParentNode.querySelector(s)(Web_DOM_Element.toParentNode(n));\n };\n};\nvar _queryBoth$prime$prime = function (v) {\n return function (v1) {\n return function (f) {\n return function __do() {\n var as = _querySelectorAll(v.value0)(v.value1)();\n var bs = _querySelectorAll(v1.value0)(v1.value1)();\n return f(as)(bs)();\n };\n };\n };\n};\nvar _queryBoth$prime = function (v) {\n return function (v1) {\n return function (f) {\n return function __do() {\n var ma = _querySelector(v.value0)(v.value1)();\n var bs = _querySelectorAll(v1.value0)(v1.value1)();\n return for_(ma)(function (a) {\n return f(a)(bs);\n })();\n };\n };\n };\n};\nvar _queryBoth = function (v) {\n return function (v1) {\n return function (f) {\n return function __do() {\n var ma = _querySelector(v.value0)(v.value1)();\n var mb = _querySelector(v1.value0)(v1.value1)();\n return for_(ma)(function (a) {\n return for_(mb)(function (b) {\n return f(a)(b);\n });\n })();\n };\n };\n };\n};\nvar _parseQueryString = function (srh) {\n var decode = (function () {\n var $59 = Data_String_Common.replaceAll(\"+\")(\" \");\n return function ($60) {\n return unsafeDecode($59($60));\n };\n })();\n var go = function (kv) {\n var v = Data_String_Common.split(\"=\")(kv);\n if (v.length === 1) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(decode(v[0]), Data_Maybe.Nothing.value));\n };\n if (v.length === 2) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(decode(v[0]), new Data_Maybe.Just(decode(v[1]))));\n };\n return Data_Maybe.Nothing.value;\n };\n var qs = (function () {\n var srh$prime = Data_String_CodePoints.take(1)(srh);\n var $52 = srh$prime === \"#\" || srh$prime === \"?\";\n if ($52) {\n return Data_String_CodePoints.drop(1)(srh);\n };\n return srh;\n })();\n return Data_Array.mapMaybe(go)(Data_Array.filter(function (v) {\n return v !== \"\";\n })(Data_String_Common.split(\"&\")(qs)));\n};\nvar _mt_pure = function ($61) {\n return Control_Monad_Maybe_Trans.MaybeT(pure($61));\n};\nvar _mt = Control_Monad_Maybe_Trans.MaybeT;\nvar _lookupQueryStringValue = function (qs) {\n return function (k) {\n return join(map(Data_Tuple.snd)(Data_Array.find(function ($62) {\n return (function (v) {\n return v === k;\n })(Data_Tuple.fst($62));\n })(qs)));\n };\n};\nvar _loc = /* #__PURE__ */ bindFlipped(Web_HTML_Window.location)(Web_HTML.window);\nvar _getElementById = function (s) {\n var $63 = Web_DOM_NonElementParentNode.getElementById(s);\n return function ($64) {\n return $63(Web_DOM_Document.toNonElementParentNode(Web_HTML_HTMLDocument.toDocument($64)));\n };\n};\nvar _fromNode = function (e) {\n return fromJust(Web_DOM_Element.fromNode(e));\n};\nvar _fromElement = function (e) {\n return fromJust(Web_HTML_HTMLElement.fromElement(e));\n};\nvar _doc = /* #__PURE__ */ bindFlipped(Web_HTML_Window.document)(Web_HTML.window);\nvar _curQuerystring = function __do() {\n var loc = _loc();\n var srh = Web_HTML_Location.search(loc)();\n return _parseQueryString(srh);\n};\nvar _body = /* #__PURE__ */ bindFlipped(function ($65) {\n return pure(fromJust($65));\n})(/* #__PURE__ */ bindFlipped(Web_HTML_HTMLDocument.body)(_doc));\nexport {\n unsafeDecode,\n class_,\n attr,\n _queryBoth,\n _queryBoth$prime,\n _queryBoth$prime$prime,\n _querySelector,\n _querySelectorAll,\n _fromNode,\n _fromElement,\n _getElementById,\n _doc,\n _loc,\n _curQuerystring,\n _parseQueryString,\n _lookupQueryStringValue,\n _body,\n _mt,\n _mt_pure,\n encodeTag,\n dummyAttr,\n whenP,\n maybeP,\n whenC,\n whenH,\n whenA,\n ifElseH,\n ifElseA,\n maybeH,\n fromNullableStr,\n monthNames\n};\n", "// Generated by purs version 0.15.14\nimport * as App from \"../App/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as DOM_HTML_Indexed_InputType from \"../DOM.HTML.Indexed.InputType/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Lens_Getter from \"../Data.Lens.Getter/index.js\";\nimport * as Data_Lens_Internal_Forget from \"../Data.Lens.Internal.Forget/index.js\";\nimport * as Data_Lens_Lens from \"../Data.Lens.Lens/index.js\";\nimport * as Data_Lens_Setter from \"../Data.Lens.Setter/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as Halogen_HTML_Events from \"../Halogen.HTML.Events/index.js\";\nimport * as Halogen_HTML_Properties from \"../Halogen.HTML.Properties/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Util from \"../Util/index.js\";\nvar type_ = /* #__PURE__ */ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM);\nvar modifying = /* #__PURE__ */ Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM);\nvar bind = /* #__PURE__ */ Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM);\nvar use = /* #__PURE__ */ Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM);\nvar liftAff = /* #__PURE__ */ Effect_Aff_Class.liftAff(/* #__PURE__ */ Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff));\nvar EarchiveDefault = /* #__PURE__ */ (function () {\n function EarchiveDefault(value0) {\n this.value0 = value0;\n };\n EarchiveDefault.create = function (value0) {\n return new EarchiveDefault(value0);\n };\n return EarchiveDefault;\n})();\nvar EprivateDefault = /* #__PURE__ */ (function () {\n function EprivateDefault(value0) {\n this.value0 = value0;\n };\n EprivateDefault.create = function (value0) {\n return new EprivateDefault(value0);\n };\n return EprivateDefault;\n})();\nvar EprivacyLock = /* #__PURE__ */ (function () {\n function EprivacyLock(value0) {\n this.value0 = value0;\n };\n EprivacyLock.create = function (value0) {\n return new EprivacyLock(value0);\n };\n return EprivacyLock;\n})();\nvar UEditField = /* #__PURE__ */ (function () {\n function UEditField(value0) {\n this.value0 = value0;\n };\n UEditField.create = function (value0) {\n return new UEditField(value0);\n };\n return UEditField;\n})();\nvar USubmit = /* #__PURE__ */ (function () {\n function USubmit(value0) {\n this.value0 = value0;\n };\n USubmit.create = function (value0) {\n return new USubmit(value0);\n };\n return USubmit;\n})();\nvar _us = function (dictStrong) {\n return Data_Lens_Lens.lens(function (v) {\n return v.us;\n })(function (v) {\n return function (v1) {\n return {\n us: v1\n };\n };\n })(dictStrong);\n};\nvar _us1 = /* #__PURE__ */ _us(Data_Profunctor_Strong.strongFn);\nvar _us2 = /* #__PURE__ */ _us(Data_Lens_Internal_Forget.strongForget);\nvar usetting = function (u$prime) {\n var render = function (v) {\n var editField = function (f) {\n return function ($31) {\n return UEditField.create(f($31));\n };\n };\n return Halogen_HTML_Elements.div([ Util.class_(\"settings-form\") ])([ Halogen_HTML_Elements.div([ Util.class_(\"fw7 mb2\") ])([ Halogen_HTML_Core.text(\"Account Settings\") ]), Halogen_HTML_Elements.div([ Util.class_(\"flex items-center mb2\") ])([ Halogen_HTML_Elements.input([ type_(DOM_HTML_Indexed_InputType.InputCheckbox.value), Util.class_(\"pointer mr2\"), Halogen_HTML_Properties.id(\"archiveDefault\"), Halogen_HTML_Properties.name(\"archiveDefault\"), Halogen_HTML_Properties.checked(v.us.archiveDefault), Halogen_HTML_Events.onChecked(editField(EarchiveDefault.create)) ]), Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"archiveDefault\"), Util.class_(\"lh-copy\") ])([ Halogen_HTML_Core.text(\"Archive Non-Private Bookmarks (archive.li)\") ]) ]), Halogen_HTML_Elements.div([ Util.class_(\"flex items-center mb2\") ])([ Halogen_HTML_Elements.input([ type_(DOM_HTML_Indexed_InputType.InputCheckbox.value), Util.class_(\"pointer mr2\"), Halogen_HTML_Properties.id(\"privateDefault\"), Halogen_HTML_Properties.name(\"privateDefault\"), Halogen_HTML_Properties.checked(v.us.privateDefault), Halogen_HTML_Events.onChecked(editField(EprivateDefault.create)) ]), Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"privateDefault\"), Util.class_(\"lh-copy\") ])([ Halogen_HTML_Core.text(\"Default new bookmarks to Private\") ]) ]), Halogen_HTML_Elements.div([ Util.class_(\"flex items-center mb2\") ])([ Halogen_HTML_Elements.input([ type_(DOM_HTML_Indexed_InputType.InputCheckbox.value), Util.class_(\"pointer mr2\"), Halogen_HTML_Properties.id(\"privacyLock\"), Halogen_HTML_Properties.name(\"privacyLock\"), Halogen_HTML_Properties.checked(v.us.privacyLock), Halogen_HTML_Events.onChecked(editField(EprivacyLock.create)) ]), Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"privacyLock\"), Util.class_(\"lh-copy\") ])([ Halogen_HTML_Core.text(\"Privacy Lock (Private Account)\") ]) ]) ]);\n };\n var mkState = function (u) {\n return {\n us: u\n };\n };\n var handleAction = function (v) {\n if (v instanceof UEditField) {\n return discard(modifying(_us1)((function () {\n if (v.value0 instanceof EarchiveDefault) {\n return function (v1) {\n return {\n privateDefault: v1.privateDefault,\n privacyLock: v1.privacyLock,\n archiveDefault: v.value0.value0\n };\n };\n };\n if (v.value0 instanceof EprivateDefault) {\n return function (v1) {\n return {\n archiveDefault: v1.archiveDefault,\n privacyLock: v1.privacyLock,\n privateDefault: v.value0.value0\n };\n };\n };\n if (v.value0 instanceof EprivacyLock) {\n return function (v1) {\n return {\n archiveDefault: v1.archiveDefault,\n privateDefault: v1.privateDefault,\n privacyLock: v.value0.value0\n };\n };\n };\n throw new Error(\"Failed pattern match at Component.AccountSettings (line 77, column 12 - line 80, column 46): \" + [ v.value0.constructor.name ]);\n })()))(function () {\n return bind(use(_us2))(function (us) {\n return $$void(liftAff(App.editAccountSettings(us)));\n });\n });\n };\n if (v instanceof USubmit) {\n return bind(use(_us2))(function (us) {\n return $$void(liftAff(App.editAccountSettings(us)));\n });\n };\n throw new Error(\"Failed pattern match at Component.AccountSettings (line 75, column 3 - line 75, column 69): \" + [ v.constructor.name ]);\n };\n return Halogen_Component.mkComponent({\n initialState: Data_Function[\"const\"](mkState(u$prime)),\n render: render,\n \"eval\": Halogen_Component.mkEval({\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: Halogen_Component.defaultEval.receive,\n initialize: Halogen_Component.defaultEval.initialize,\n finalize: Halogen_Component.defaultEval.finalize,\n handleAction: handleAction\n })\n });\n};\nexport {\n _us,\n UEditField,\n USubmit,\n EarchiveDefault,\n EprivateDefault,\n EprivacyLock,\n usetting\n};\n", "export const log = function (s) {\n return function () {\n console.log(s);\n };\n};\n\nexport const warn = function (s) {\n return function () {\n console.warn(s);\n };\n};\n\nexport const error = function (s) {\n return function () {\n console.error(s);\n };\n};\n\nexport const info = function (s) {\n return function () {\n console.info(s);\n };\n};\n\nexport const debug = function (s) {\n return function () {\n console.debug(s);\n };\n};\n\nexport const time = function (s) {\n return function () {\n console.time(s);\n };\n};\n\nexport const timeLog = function (s) {\n return function () {\n console.timeLog(s);\n };\n};\n\nexport const timeEnd = function (s) {\n return function () {\n console.timeEnd(s);\n };\n};\n\nexport const clear = function () {\n console.clear();\n};\n\nexport const group = function (s) {\n return function () {\n console.group(s);\n };\n};\n\nexport const groupCollapsed = function (s) {\n return function () {\n console.groupCollapsed(s);\n };\n};\n\nexport const groupEnd = function () {\n console.groupEnd();\n};\n", "// Generated by purs version 0.15.14\nimport * as Affjax from \"../Affjax/index.js\";\nimport * as App from \"../App/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as DOM_HTML_Indexed_AutocompleteType from \"../DOM.HTML.Indexed.AutocompleteType/index.js\";\nimport * as DOM_HTML_Indexed_ButtonType from \"../DOM.HTML.Indexed.ButtonType/index.js\";\nimport * as DOM_HTML_Indexed_InputType from \"../DOM.HTML.Indexed.InputType/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Lens_Getter from \"../Data.Lens.Getter/index.js\";\nimport * as Data_Lens_Internal_Forget from \"../Data.Lens.Internal.Forget/index.js\";\nimport * as Data_Lens_Lens from \"../Data.Lens.Lens/index.js\";\nimport * as Data_Lens_Setter from \"../Data.Lens.Setter/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as Globals from \"../Globals/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as Halogen_HTML_Events from \"../Halogen.HTML.Events/index.js\";\nimport * as Halogen_HTML_Properties from \"../Halogen.HTML.Properties/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Util from \"../Util/index.js\";\nimport * as Web_Event_Event from \"../Web.Event.Event/index.js\";\nimport * as Web_HTML from \"../Web.HTML/index.js\";\nimport * as Web_HTML_HTMLDocument from \"../Web.HTML.HTMLDocument/index.js\";\nimport * as Web_HTML_Location from \"../Web.HTML.Location/index.js\";\nvar append = /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray);\nvar type_ = /* #__PURE__ */ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType);\nvar guard = /* #__PURE__ */ Data_Monoid.guard(Data_Monoid.monoidArray);\nvar type_1 = /* #__PURE__ */ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType);\nvar value = /* #__PURE__ */ Halogen_HTML_Properties.value(Halogen_HTML_Core.isPropString);\nvar guard1 = /* #__PURE__ */ Data_Monoid.guard(Data_Monoid.monoidString);\nvar modify_ = /* #__PURE__ */ Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM);\nvar bind = /* #__PURE__ */ Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM);\nvar gets = /* #__PURE__ */ Control_Monad_State_Class.gets(Halogen_Query_HalogenM.monadStateHalogenM);\nvar liftAff = /* #__PURE__ */ Effect_Aff_Class.liftAff(/* #__PURE__ */ Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff));\nvar modifying = /* #__PURE__ */ Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM);\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(/* #__PURE__ */ Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff));\nvar use = /* #__PURE__ */ Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM);\nvar assign = /* #__PURE__ */ Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Effect.bindEffect);\nvar Eurl = /* #__PURE__ */ (function () {\n function Eurl(value0) {\n this.value0 = value0;\n };\n Eurl.create = function (value0) {\n return new Eurl(value0);\n };\n return Eurl;\n})();\nvar Etitle = /* #__PURE__ */ (function () {\n function Etitle(value0) {\n this.value0 = value0;\n };\n Etitle.create = function (value0) {\n return new Etitle(value0);\n };\n return Etitle;\n})();\nvar Edescription = /* #__PURE__ */ (function () {\n function Edescription(value0) {\n this.value0 = value0;\n };\n Edescription.create = function (value0) {\n return new Edescription(value0);\n };\n return Edescription;\n})();\nvar Etags = /* #__PURE__ */ (function () {\n function Etags(value0) {\n this.value0 = value0;\n };\n Etags.create = function (value0) {\n return new Etags(value0);\n };\n return Etags;\n})();\nvar Eprivate = /* #__PURE__ */ (function () {\n function Eprivate(value0) {\n this.value0 = value0;\n };\n Eprivate.create = function (value0) {\n return new Eprivate(value0);\n };\n return Eprivate;\n})();\nvar Etoread = /* #__PURE__ */ (function () {\n function Etoread(value0) {\n this.value0 = value0;\n };\n Etoread.create = function (value0) {\n return new Etoread(value0);\n };\n return Etoread;\n})();\nvar BEditField = /* #__PURE__ */ (function () {\n function BEditField(value0) {\n this.value0 = value0;\n };\n BEditField.create = function (value0) {\n return new BEditField(value0);\n };\n return BEditField;\n})();\nvar BEditSubmit = /* #__PURE__ */ (function () {\n function BEditSubmit(value0) {\n this.value0 = value0;\n };\n BEditSubmit.create = function (value0) {\n return new BEditSubmit(value0);\n };\n return BEditSubmit;\n})();\nvar BDeleteAsk = /* #__PURE__ */ (function () {\n function BDeleteAsk(value0) {\n this.value0 = value0;\n };\n BDeleteAsk.create = function (value0) {\n return new BDeleteAsk(value0);\n };\n return BDeleteAsk;\n})();\nvar BLookupTitle = /* #__PURE__ */ (function () {\n function BLookupTitle() {\n\n };\n BLookupTitle.value = new BLookupTitle();\n return BLookupTitle;\n})();\nvar BDestroy = /* #__PURE__ */ (function () {\n function BDestroy() {\n\n };\n BDestroy.value = new BDestroy();\n return BDestroy;\n})();\nvar _edit_bm = function (dictStrong) {\n return Data_Lens_Lens.lens(function (v) {\n return v.edit_bm;\n })(function (v) {\n return function (v1) {\n return {\n apiError: v.apiError,\n bm: v.bm,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n loading: v.loading,\n edit_bm: v1\n };\n };\n })(dictStrong);\n};\nvar _edit_bm1 = /* #__PURE__ */ _edit_bm(Data_Profunctor_Strong.strongFn);\nvar _edit_bm2 = /* #__PURE__ */ _edit_bm(Data_Lens_Internal_Forget.strongForget);\nvar _bm = function (dictStrong) {\n return Data_Lens_Lens.lens(function (v) {\n return v.bm;\n })(function (v) {\n return function (v1) {\n return {\n apiError: v.apiError,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n edit_bm: v.edit_bm,\n loading: v.loading,\n bm: v1\n };\n };\n })(dictStrong);\n};\nvar _bm1 = /* #__PURE__ */ _bm(Data_Profunctor_Strong.strongFn);\nvar _apiError = function (dictStrong) {\n return Data_Lens_Lens.lens(function (v) {\n return v.apiError;\n })(function (v) {\n return function (v1) {\n return {\n bm: v.bm,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n edit_bm: v.edit_bm,\n loading: v.loading,\n apiError: v1\n };\n };\n })(dictStrong);\n};\nvar _apiError1 = /* #__PURE__ */ _apiError(Data_Profunctor_Strong.strongFn);\nvar addbmark = function (b$prime) {\n var render = function (v) {\n var mmoment = Globals.mmoment8601(v.bm.time);\n var editField = function (f) {\n return function ($111) {\n return BEditField.create(f($111));\n };\n };\n var display_exists = function (v1) {\n return Halogen_HTML_Elements.div([ Util.class_(\"alert\") ])([ Halogen_HTML_Core.text(\"previously saved\\xa0\"), Halogen_HTML_Elements.span([ Util.class_(\"link f7 dib gray pr3\"), Halogen_HTML_Properties.title(Data_Maybe.maybe(v.bm.time)(Data_Tuple.snd)(mmoment)) ])([ Halogen_HTML_Core.text(Data_Maybe.maybe(\"\\xa0\")(Data_Tuple.fst)(mmoment)) ]), Halogen_HTML_Elements.div([ Util.class_(\"edit_links dib ml1\") ])([ Halogen_HTML_Elements.div([ Util.class_(\"delete_link di\") ])([ Halogen_HTML_Elements.button(append([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return new BDeleteAsk(true);\n }), Util.class_(\"delete\") ])(guard(v.deleteAsk)([ Util.attr(\"hidden\")(\"hidden\") ])))([ Halogen_HTML_Core.text(\"delete\") ]), Halogen_HTML_Elements.span(append([ Util.class_(\"confirm red\") ])(guard(!v.deleteAsk)([ Util.attr(\"hidden\")(\"hidden\") ])))([ Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return new BDeleteAsk(false);\n }) ])([ Halogen_HTML_Core.text(\"cancel\\xa0/\\xa0\") ]), Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return BDestroy.value;\n }), Util.class_(\"red\") ])([ Halogen_HTML_Core.text(\"destroy\") ]) ]) ]) ]) ]);\n };\n var display_destroyed = function (v1) {\n return Halogen_HTML_Elements.p([ Util.class_(\"red\") ])([ Halogen_HTML_Core.text(\"you killed this bookmark\") ]);\n };\n var alert_notification = function (alert_text) {\n return function (v1) {\n return Halogen_HTML_Elements.div([ Util.class_(\"alert alert-err\") ])([ Halogen_HTML_Core.text(alert_text) ]);\n };\n };\n var display_edit = function (v1) {\n return Halogen_HTML_Elements.form([ Halogen_HTML_Events.onSubmit(BEditSubmit.create) ])([ Halogen_HTML_Elements.table([ Util.class_(\"w-100\") ])([ Halogen_HTML_Elements.tbody_([ Halogen_HTML_Elements.tr_([ Halogen_HTML_Elements.td([ Util.class_(\"w1\") ])([ ]), Halogen_HTML_Elements.td_([ Util.whenH(v.bm.bid > 0)(display_exists), Util.whenH(Data_Maybe.isJust(v.apiError))(alert_notification(Data_Maybe.fromMaybe(\"\")(v.apiError))) ]) ]), Halogen_HTML_Elements.tr_([ Halogen_HTML_Elements.td_([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"url\") ])([ Halogen_HTML_Core.text(\"URL\") ]) ]), Halogen_HTML_Elements.td_([ Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputUrl.value), Halogen_HTML_Properties.id(\"url\"), Util.class_(\"w-100 mv1\"), Halogen_HTML_Properties.required(true), Halogen_HTML_Properties.name(\"url\"), Halogen_HTML_Properties.autofocus(Data_String_Common[\"null\"](v.bm.url)), value(v.edit_bm.url), Halogen_HTML_Events.onValueChange(editField(Eurl.create)) ]) ]) ]), Halogen_HTML_Elements.tr_([ Halogen_HTML_Elements.td_([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"title\") ])([ Halogen_HTML_Core.text(\"title\") ]) ]), Halogen_HTML_Elements.td([ Util.class_(\"flex\") ])([ Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputText.value), Halogen_HTML_Properties.id(\"title\"), Util.class_(\"w-100 mv1 flex-auto\"), Halogen_HTML_Properties.name(\"title\"), value(v.edit_bm.title), Halogen_HTML_Events.onValueChange(editField(Etitle.create)) ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.disabled(v.loading), type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return BLookupTitle.value;\n }), Util.class_(\"ml2 input-reset ba b--navy pointer f6 di dim pa1 ma1 mr0 \" + guard1(v.loading)(\"bg-light-silver\")) ])([ Halogen_HTML_Core.text(\"fetch\") ]) ]) ]), Halogen_HTML_Elements.tr_([ Halogen_HTML_Elements.td_([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"description\") ])([ Halogen_HTML_Core.text(\"description\") ]) ]), Halogen_HTML_Elements.td_([ Halogen_HTML_Elements.textarea([ Util.class_(\"w-100 mt1 mid-gray\"), Halogen_HTML_Properties.id(\"description\"), Halogen_HTML_Properties.name(\"description\"), Halogen_HTML_Properties.rows(4), value(v.edit_bm.description), Halogen_HTML_Events.onValueChange(editField(Edescription.create)) ]) ]) ]), Halogen_HTML_Elements.tr_([ Halogen_HTML_Elements.td_([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"tags\") ])([ Halogen_HTML_Core.text(\"tags\") ]) ]), Halogen_HTML_Elements.td_([ Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputText.value), Halogen_HTML_Properties.id(\"tags\"), Util.class_(\"w-100 mv1\"), Halogen_HTML_Properties.name(\"tags\"), Halogen_HTML_Properties.autocomplete(DOM_HTML_Indexed_AutocompleteType.AutocompleteOff.value), Util.attr(\"autocapitalize\")(\"off\"), Halogen_HTML_Properties.autofocus(!Data_String_Common[\"null\"](v.bm.url)), value(v.edit_bm.tags), Halogen_HTML_Events.onValueChange(editField(Etags.create)) ]) ]) ]), Halogen_HTML_Elements.tr_([ Halogen_HTML_Elements.td_([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"private\") ])([ Halogen_HTML_Core.text(\"private\") ]) ]), Halogen_HTML_Elements.td_([ Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputCheckbox.value), Halogen_HTML_Properties.id(\"private\"), Util.class_(\"private pointer\"), Halogen_HTML_Properties.name(\"private\"), Halogen_HTML_Properties.checked(v[\"edit_bm\"][\"private\"]), Halogen_HTML_Events.onChecked(editField(Eprivate.create)) ]) ]) ]), Halogen_HTML_Elements.tr_([ Halogen_HTML_Elements.td_([ Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"toread\") ])([ Halogen_HTML_Core.text(\"read later\") ]) ]), Halogen_HTML_Elements.td_([ Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputCheckbox.value), Halogen_HTML_Properties.id(\"toread\"), Util.class_(\"toread pointer\"), Halogen_HTML_Properties.name(\"toread\"), Halogen_HTML_Properties.checked(v.edit_bm.toread), Halogen_HTML_Events.onChecked(editField(Etoread.create)) ]) ]) ]), Halogen_HTML_Elements.tr_([ Halogen_HTML_Elements.td_([ ]), Halogen_HTML_Elements.td_([ Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputSubmit.value), Util.class_(\"ph3 pv2 input-reset ba b--navy bg-transparent pointer f6 dib mt1 dim\"), value((function () {\n var $72 = v.bm.bid > 0;\n if ($72) {\n return \"update bookmark\";\n };\n return \"add bookmark\";\n })()) ]) ]) ]) ]) ]) ]);\n };\n return Util.ifElseH(!v.destroyed)(display_edit)(display_destroyed);\n };\n var mkState = function (b) {\n return {\n bm: b,\n edit_bm: b,\n deleteAsk: false,\n destroyed: false,\n loading: false,\n apiError: Data_Maybe.Nothing.value\n };\n };\n var handleAction = function (v) {\n if (v instanceof BDeleteAsk) {\n return modify_(function (v1) {\n var $77 = {};\n for (var $78 in v1) {\n if ({}.hasOwnProperty.call(v1, $78)) {\n $77[$78] = v1[$78];\n };\n };\n $77.deleteAsk = v.value0;\n return $77;\n });\n };\n if (v instanceof BLookupTitle) {\n return discard(modify_(function (v1) {\n var $81 = {};\n for (var $82 in v1) {\n if ({}.hasOwnProperty.call(v1, $82)) {\n $81[$82] = v1[$82];\n };\n };\n $81.loading = true;\n return $81;\n }))(function () {\n return bind(gets(function (v1) {\n return v1.edit_bm;\n }))(function (edit_bm) {\n return bind(liftAff(App.lookupTitle(edit_bm)))(function (mtitle) {\n return discard((function () {\n if (mtitle instanceof Data_Maybe.Just) {\n return modifying(_edit_bm1)(function (v1) {\n return {\n url: v1.url,\n description: v1.description,\n tags: v1.tags,\n \"private\": v1[\"private\"],\n toread: v1.toread,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n title: mtitle.value0\n };\n });\n };\n if (mtitle instanceof Data_Maybe.Nothing) {\n return pure(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Component.Add (line 177, column 5 - line 179, column 29): \" + [ mtitle.constructor.name ]);\n })())(function () {\n return modify_(function (v1) {\n var $86 = {};\n for (var $87 in v1) {\n if ({}.hasOwnProperty.call(v1, $87)) {\n $86[$87] = v1[$87];\n };\n };\n $86.loading = false;\n return $86;\n });\n });\n });\n });\n });\n };\n if (v instanceof BDestroy) {\n return bind(gets(function (v1) {\n return v1.bm.bid;\n }))(function (bid) {\n return discard($$void(liftAff(App.destroy(bid))))(function () {\n return modify_(function (v1) {\n var $89 = {};\n for (var $90 in v1) {\n if ({}.hasOwnProperty.call(v1, $90)) {\n $89[$90] = v1[$90];\n };\n };\n $89.destroyed = true;\n return $89;\n });\n });\n });\n };\n if (v instanceof BEditField) {\n return modifying(_edit_bm1)((function () {\n if (v.value0 instanceof Eurl) {\n return function (v1) {\n return {\n title: v1.title,\n description: v1.description,\n tags: v1.tags,\n \"private\": v1[\"private\"],\n toread: v1.toread,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n url: v.value0.value0\n };\n };\n };\n if (v.value0 instanceof Etitle) {\n return function (v1) {\n return {\n url: v1.url,\n description: v1.description,\n tags: v1.tags,\n \"private\": v1[\"private\"],\n toread: v1.toread,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n title: v.value0.value0\n };\n };\n };\n if (v.value0 instanceof Edescription) {\n return function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n tags: v1.tags,\n \"private\": v1[\"private\"],\n toread: v1.toread,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n description: v.value0.value0\n };\n };\n };\n if (v.value0 instanceof Etags) {\n return function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n description: v1.description,\n \"private\": v1[\"private\"],\n toread: v1.toread,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n tags: v.value0.value0\n };\n };\n };\n if (v.value0 instanceof Eprivate) {\n return function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n description: v1.description,\n tags: v1.tags,\n toread: v1.toread,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n \"private\": v.value0.value0\n };\n };\n };\n if (v.value0 instanceof Etoread) {\n return function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n description: v1.description,\n tags: v1.tags,\n \"private\": v1[\"private\"],\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n toread: v.value0.value0\n };\n };\n };\n throw new Error(\"Failed pattern match at Component.Add (line 188, column 17 - line 194, column 36): \" + [ v.value0.constructor.name ]);\n })());\n };\n if (v instanceof BEditSubmit) {\n return discard(liftEffect(Web_Event_Event.preventDefault(v.value0)))(function () {\n return bind(use(_edit_bm2))(function (edit_bm) {\n return discard(assign(_apiError1)(Data_Maybe.Nothing.value))(function () {\n return bind(liftAff(App.editBookmark(edit_bm)))(function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return discard(assign(_apiError1)(new Data_Maybe.Just(Affjax.printError(v1.value0))))(function () {\n return liftEffect(Effect_Console.log(Affjax.printError(v1.value0)));\n });\n };\n if (v1 instanceof Data_Either.Right && (v1.value0.status >= 200 && v1.value0.status < 300)) {\n return discard(assign(_bm1)(edit_bm))(function () {\n return bind(liftEffect(Util[\"_curQuerystring\"]))(function (qs) {\n return bind(liftEffect(Util[\"_doc\"]))(function (doc) {\n return bind(liftEffect(Web_HTML_HTMLDocument.referrer(doc)))(function (ref) {\n return bind(liftEffect(Util[\"_loc\"]))(function (loc) {\n return bind(liftEffect(Web_HTML_Location.origin(loc)))(function (org) {\n var v2 = Util[\"_lookupQueryStringValue\"](qs)(\"next\");\n if (v2 instanceof Data_Maybe.Just && v2.value0 === \"closeWindow\") {\n return liftEffect(bindFlipped(Globals.closeWindow)(Web_HTML.window));\n };\n if (v2 instanceof Data_Maybe.Just && v2.value0 === \"back\") {\n return liftEffect((function () {\n var v3 = Data_String_CodeUnits.stripPrefix(org)(ref);\n if (v3 instanceof Data_Maybe.Just) {\n return Web_HTML_Location.setHref(ref)(loc);\n };\n if (v3 instanceof Data_Maybe.Nothing) {\n return Web_HTML_Location.setHref(org)(loc);\n };\n throw new Error(\"Failed pattern match at Component.Add (line 214, column 13 - line 216, column 41): \" + [ v3.constructor.name ]);\n })());\n };\n return liftEffect(bindFlipped(Globals.closeWindow)(Web_HTML.window));\n });\n });\n });\n });\n });\n });\n };\n if (v1 instanceof Data_Either.Right) {\n return discard(assign(_apiError1)(new Data_Maybe.Just(v1.value0.body)))(function () {\n return liftEffect(Effect_Console.log(v1.value0.body));\n });\n };\n throw new Error(\"Failed pattern match at Component.Add (line 200, column 42 - line 220, column 36): \" + [ v1.constructor.name ]);\n });\n });\n });\n });\n };\n throw new Error(\"Failed pattern match at Component.Add (line 169, column 3 - line 169, column 69): \" + [ v.constructor.name ]);\n };\n return Halogen_Component.mkComponent({\n initialState: Data_Function[\"const\"](mkState(b$prime)),\n render: render,\n \"eval\": Halogen_Component.mkEval({\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: Halogen_Component.defaultEval.receive,\n initialize: Halogen_Component.defaultEval.initialize,\n finalize: Halogen_Component.defaultEval.finalize,\n handleAction: handleAction\n })\n });\n};\nexport {\n BEditField,\n BEditSubmit,\n BDeleteAsk,\n BLookupTitle,\n BDestroy,\n Eurl,\n Etitle,\n Edescription,\n Etags,\n Eprivate,\n Etoread,\n _bm,\n _edit_bm,\n _apiError,\n addbmark\n};\n", "// use at your own risk!\nexport const unsafeSetInnerHTML = function(element) {\n return function(html) {\n return function() {\n element.innerHTML = html;\n };\n };\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Halogen_Query_HalogenQ from \"../Halogen.Query.HalogenQ/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Web_HTML_HTMLElement from \"../Web.HTML.HTMLElement/index.js\";\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM);\nvar queryAll = /* #__PURE__ */ Halogen_Query_HalogenM.queryAll();\nvar query = /* #__PURE__ */ Halogen_Query_HalogenM.query();\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Data_Maybe.bindMaybe);\nvar tellAll = function () {\n return function (dictIsSymbol) {\n var queryAll1 = queryAll(dictIsSymbol);\n return function (dictOrd) {\n var queryAll2 = queryAll1(dictOrd);\n return function (label) {\n return function (req) {\n return $$void(queryAll2(label)(req(Data_Unit.unit)));\n };\n };\n };\n };\n};\nvar tell = function () {\n return function (dictIsSymbol) {\n var query1 = query(dictIsSymbol);\n return function (dictOrd) {\n var query2 = query1(dictOrd);\n return function (slot) {\n return function (label) {\n return function (req) {\n return $$void(query2(slot)(label)(req(Data_Unit.unit)));\n };\n };\n };\n };\n };\n};\nvar requestAll = function () {\n return function (dictIsSymbol) {\n var queryAll1 = queryAll(dictIsSymbol);\n return function (dictOrd) {\n var queryAll2 = queryAll1(dictOrd);\n return function (label) {\n return function (req) {\n return queryAll2(label)(req(identity));\n };\n };\n };\n };\n};\nvar request = function () {\n return function (dictIsSymbol) {\n var query1 = query(dictIsSymbol);\n return function (dictOrd) {\n var query2 = query1(dictOrd);\n return function (slot) {\n return function (label) {\n return function (req) {\n return query2(slot)(label)(req(identity));\n };\n };\n };\n };\n };\n};\nvar mkTell = function (act) {\n return act(Data_Unit.unit);\n};\nvar mkRequest = function (req) {\n return req(identity);\n};\nvar getHTMLElementRef = /* #__PURE__ */ (function () {\n var $24 = Data_Functor.map(Halogen_Query_HalogenM.functorHalogenM)(function (v) {\n return bindFlipped(Web_HTML_HTMLElement.fromElement)(v);\n });\n return function ($25) {\n return $24(Halogen_Query_HalogenM.getRef($25));\n };\n})();\nexport {\n mkTell,\n tell,\n tellAll,\n mkRequest,\n request,\n requestAll,\n getHTMLElementRef\n};\nexport {\n get,\n gets,\n modify,\n modify_,\n put\n} from \"../Control.Monad.State.Class/index.js\";\nexport {\n lift\n} from \"../Control.Monad.Trans.Class/index.js\";\nexport {\n liftAff\n} from \"../Effect.Aff.Class/index.js\";\nexport {\n liftEffect\n} from \"../Effect.Class/index.js\";\nexport {\n ChildQuery,\n Fork,\n GetRef,\n Join,\n Kill,\n Lift,\n Par,\n Raise,\n State,\n Subscribe,\n Unsubscribe,\n HalogenM,\n fork,\n getRef,\n join,\n kill,\n query,\n queryAll,\n raise,\n subscribe,\n subscribe$prime,\n unsubscribe\n} from \"../Halogen.Query.HalogenM/index.js\";\nexport {\n Action,\n Finalize,\n Initialize,\n Query,\n Receive\n} from \"../Halogen.Query.HalogenQ/index.js\";\nexport {\n RefLabel\n} from \"../Halogen.Query.Input/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Globals from \"../Globals/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as Halogen_HTML_Properties from \"../Halogen.HTML.Properties/index.js\";\nimport * as Halogen_Query from \"../Halogen.Query/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nvar bind = /* #__PURE__ */ Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM);\nvar get = /* #__PURE__ */ Control_Monad_State_Class.get(Halogen_Query_HalogenM.monadStateHalogenM);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar discard1 = /* #__PURE__ */ discard(Halogen_Query_HalogenM.bindHalogenM);\nvar for_ = /* #__PURE__ */ Data_Foldable.for_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe);\nvar liftAff = /* #__PURE__ */ Effect_Aff_Class.liftAff(/* #__PURE__ */ Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff));\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(Effect_Class.monadEffectEffect);\nvar mempty = /* #__PURE__ */ Data_Monoid.mempty(/* #__PURE__ */ Effect.monoidEffect(Effect_Aff.monoidCanceler));\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM);\nvar modify_ = /* #__PURE__ */ Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM);\nvar SetInnerHTML = /* #__PURE__ */ (function () {\n function SetInnerHTML() {\n\n };\n SetInnerHTML.value = new SetInnerHTML();\n return SetInnerHTML;\n})();\nvar Receive = /* #__PURE__ */ (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})();\nvar mkComponent = function (toRawHTML) {\n var render = function (state) {\n return Halogen_HTML_Elements.div([ Halogen_HTML_Properties.ref(state.elRef) ])([ ]);\n };\n var handleAction = function (v) {\n if (v instanceof SetInnerHTML) {\n return bind(get)(function (v1) {\n return bind(Halogen_Query.getHTMLElementRef(v1.elRef))(function (mel) {\n return discard1(for_(mel)(function (el) {\n return bind(get)(function (v2) {\n return liftAff(Effect_Aff.forkAff(Effect_Aff.makeAff(function (v3) {\n return function __do() {\n liftEffect($foreign.unsafeSetInnerHTML(el)(toRawHTML(v2.inputval)))();\n return mempty();\n };\n })));\n });\n }))(function () {\n return pure(Data_Unit.unit);\n });\n });\n });\n };\n if (v instanceof Receive) {\n return discard1(modify_(function (v1) {\n var $26 = {};\n for (var $27 in v1) {\n if ({}.hasOwnProperty.call(v1, $27)) {\n $26[$27] = v1[$27];\n };\n };\n $26.inputval = v.value0;\n return $26;\n }))(function () {\n return handleAction(SetInnerHTML.value);\n });\n };\n throw new Error(\"Failed pattern match at Component.RawHtml (line 51, column 18 - line 64, column 34): \" + [ v.constructor.name ]);\n };\n return Halogen_Component.mkComponent({\n initialState: function (inputval) {\n return {\n elRef: \"inputval\",\n inputval: inputval\n };\n },\n render: render,\n \"eval\": Halogen_Component.mkEval({\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n finalize: Halogen_Component.defaultEval.finalize,\n handleAction: handleAction,\n initialize: new Data_Maybe.Just(SetInnerHTML.value),\n receive: function ($30) {\n return Data_Maybe.Just.create(Receive.create($30));\n }\n })\n });\n};\nvar component = /* #__PURE__ */ mkComponent(Globals.RawHTML);\nexport {\n unsafeSetInnerHTML\n} from \"./foreign.js\";\nexport {\n SetInnerHTML,\n Receive,\n component,\n mkComponent\n};\n", "/**\n * Gets the original marked default options.\n */\nexport function _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null\n };\n}\nexport let _defaults = _getDefaults();\nexport function changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n", "/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = new RegExp(escapeTest.source, 'g');\nconst escapeTestNoEncode = /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/;\nconst escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, 'g');\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nexport function escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n }\n else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html;\n}\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\nexport function unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon')\n return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\nconst caret = /(^|[^\\[])\\^/g;\nexport function edit(regex, opt) {\n let source = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === 'string' ? val : val.source;\n valSource = valSource.replace(caret, '$1');\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n }\n };\n return obj;\n}\nexport function cleanUrl(href) {\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n }\n catch (e) {\n return null;\n }\n return href;\n}\nexport const noopTest = { exec: () => null };\nexport function splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\')\n escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n }\n else {\n // add space before unescaped |\n return ' |';\n }\n }), cells = row.split(/ \\|/);\n let i = 0;\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n }\n else {\n while (cells.length < count)\n cells.push('');\n }\n }\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nexport function rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n }\n else if (currChar !== c && invert) {\n suffLen++;\n }\n else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nexport function findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n }\n else if (str[i] === b[0]) {\n level++;\n }\n else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n", "import { _defaults } from './defaults.ts';\nimport { rtrim, splitCells, escape, findClosingBracket } from './helpers.ts';\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text)\n };\n lexer.state.inLink = false;\n return token;\n }\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape(text)\n };\n}\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n })\n .join('\\n');\n}\n/**\n * Tokenizer\n */\nexport class _Tokenizer {\n options;\n rules; // set by the lexer\n lexer; // set by the lexer\n constructor(options) {\n this.options = options || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],\n text\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n }\n else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n const text = rtrim(cap[0].replace(/^ *>[ \\t]?/gm, ''), '\\n');\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n const tokens = this.lexer.blockTokens(text);\n this.lexer.state.top = top;\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens,\n text\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`);\n let raw = '';\n let itemContents = '';\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split('\\n', 1)[0].replace(/^\\t+/, (t) => ' '.repeat(3 * t.length));\n let nextLine = src.split('\\n', 1)[0];\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n }\n else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n let blankLine = false;\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`);\n const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`);\n const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`);\n const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n nextLine = rawLine;\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n // Horizontal rule found\n if (hrRegex.test(src)) {\n break;\n }\n if (nextLine.search(/[^ ]/) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLine.slice(indent);\n }\n else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n // paragraph continuation unless last line was a different block level element\n if (line.search(/[^ ]/) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += '\\n' + nextLine;\n }\n if (!blankLine && !nextLine.trim()) { // Check if current line is blank\n blankLine = true;\n }\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLine.slice(indent);\n }\n }\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n }\n else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n list.items.push({\n type: 'list_item',\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: []\n });\n list.raw += raw;\n }\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimEnd();\n (list.items[list.items.length - 1]).text = itemContents.trimEnd();\n list.raw = list.raw.trimEnd();\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (let i = 0; i < list.items.length; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (!list.loose) {\n // Check if list should be loose\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => /\\n.*\\n/.test(t.raw));\n list.loose = hasMultipleLineBreaks;\n }\n }\n // Set all items to loose if list is loose\n if (list.loose) {\n for (let i = 0; i < list.items.length; i++) {\n list.items[i].loose = true;\n }\n }\n return list;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n block: true,\n raw: cap[0],\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: cap[0]\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n const href = cap[2] ? cap[2].replace(/^<(.*)>$/, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href,\n title\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!/[:|]/.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(/^\\||\\| *$/g, '').split('|');\n const rows = cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : [];\n const item = {\n type: 'table',\n raw: cap[0],\n header: [],\n align: [],\n rows: []\n };\n if (headers.length !== aligns.length) {\n // header and align columns must be equal, rows can be different.\n return;\n }\n for (const align of aligns) {\n if (/^ *-+: *$/.test(align)) {\n item.align.push('right');\n }\n else if (/^ *:-+: *$/.test(align)) {\n item.align.push('center');\n }\n else if (/^ *:-+ *$/.test(align)) {\n item.align.push('left');\n }\n else {\n item.align.push(null);\n }\n }\n for (const header of headers) {\n item.header.push({\n text: header,\n tokens: this.lexer.inline(header)\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map(cell => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell)\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape(cap[1])\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n }\n else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0]\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^$/.test(trimmedUrl))) {\n return;\n }\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n }\n else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n if (link) {\n href = link[1];\n title = link[3];\n }\n }\n else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim();\n if (/^$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n }\n else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n const link = links[linkString.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match)\n return;\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u))\n return;\n const nextChar = match[1] || match[2] || '';\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim)\n continue; // skip single * in __abc*abc__\n rLength = [...rDelim].length;\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0)\n continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(cap[1]);\n href = 'mailto:' + text;\n }\n else {\n text = escape(cap[1]);\n href = text;\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(cap[0]);\n href = 'mailto:' + text;\n }\n else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n }\n else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = cap[0];\n }\n else {\n text = escape(cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n", "import { edit, noopTest } from './helpers.ts';\n/**\n * Block-Level Grammar\n */\nconst newline = /^(?: *(?:\\n|$))+/;\nconst blockCode = /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/;\nconst fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nconst hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nconst heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nconst bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nconst lheading = edit(/^(?!bull )((?:.|\\n(?!\\s*?\\n|bull ))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/)\n .replace(/bull/g, bullet) // lists can interrupt\n .getRegex();\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nconst blockText = /^[^\\n]+/;\nconst _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nconst def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n *)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/)\n .replace('label', _blockLabel)\n .replace('title', /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/)\n .getRegex();\nconst list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/)\n .replace(/bull/g, bullet)\n .getRegex();\nconst _tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nconst _comment = /|$)/;\nconst html = edit('^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|\\\\n*|$)' // (4)\n + '|\\\\n*|$)' // (5)\n + '|)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')', 'i')\n .replace('comment', _comment)\n .replace('tag', _tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst paragraph = edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\nconst blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/)\n .replace('paragraph', paragraph)\n .getRegex();\n/**\n * Normal Block Grammar\n */\nconst blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText\n};\n/**\n * GFM Block Grammar\n */\nconst gfmTable = edit('^ *([^\\\\n ].*)\\\\n' // Header\n + ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)') // Cells\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\nconst blockGfm = {\n ...blockNormal,\n table: gfmTable,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', gfmTable) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex()\n};\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\nconst blockPedantic = {\n ...blockNormal,\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', _comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', lheading)\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .replace('|tag', '')\n .getRegex()\n};\n/**\n * Inline-Level Grammar\n */\nconst escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nconst inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nconst br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nconst inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\`^|~';\nconst punctuation = edit(/^((?![*_])[\\spunctuation])/, 'u')\n .replace(/punctuation/g, _punctuation).getRegex();\n// sequences em should skip over [title](link), `code`, \nconst blockSkip = /\\[[^[\\]]*?\\]\\([^\\(\\)]*?\\)|`[^`]*?`|<[^<>]*?>/g;\nconst emStrongLDelim = edit(/^(?:\\*+(?:((?!\\*)[punct])|[^\\s*]))|^_+(?:((?!_)[punct])|([^\\s_]))/, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst emStrongRDelimAst = edit('^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n + '|[^*]+(?=[^*])' // Consume to delim\n + '|(?!\\\\*)[punct](\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?!\\\\*)(?=[punct\\\\s]|$)' // (2) a***#, a*** can only be a Right Delimiter\n + '|(?!\\\\*)[punct\\\\s](\\\\*+)(?=[^punct\\\\s])' // (3) #***a, ***a can only be Left Delimiter\n + '|[\\\\s](\\\\*+)(?!\\\\*)(?=[punct])' // (4) ***# can only be Left Delimiter\n + '|(?!\\\\*)[punct](\\\\*+)(?!\\\\*)(?=[punct])' // (5) #***# can be either Left or Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?=[^punct\\\\s])', 'gu') // (6) a***a can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\n// (6) Not allowed for _\nconst emStrongRDelimUnd = edit('^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n + '|[^_]+(?=[^_])' // Consume to delim\n + '|(?!_)[punct](_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n + '|[^punct\\\\s](_+)(?!_)(?=[punct\\\\s]|$)' // (2) a___#, a___ can only be a Right Delimiter\n + '|(?!_)[punct\\\\s](_+)(?=[^punct\\\\s])' // (3) #___a, ___a can only be Left Delimiter\n + '|[\\\\s](_+)(?!_)(?=[punct])' // (4) ___# can only be Left Delimiter\n + '|(?!_)[punct](_+)(?!_)(?=[punct])', 'gu') // (5) #___# can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst anyPunctuation = edit(/\\\\([punct])/, 'gu')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/)\n .replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/)\n .replace('email', /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/)\n .getRegex();\nconst _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();\nconst tag = edit('^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^') // CDATA section\n .replace('comment', _inlineComment)\n .replace('attribute', /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nconst link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/)\n .replace('label', _inlineLabel)\n .replace('href', /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/)\n .replace('title', /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/)\n .getRegex();\nconst reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/)\n .replace('label', _inlineLabel)\n .replace('ref', _blockLabel)\n .getRegex();\nconst nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/)\n .replace('ref', _blockLabel)\n .getRegex();\nconst reflinkSearch = edit('reflink|nolink(?!\\\\()', 'g')\n .replace('reflink', reflink)\n .replace('nolink', nolink)\n .getRegex();\n/**\n * Normal Inline Grammar\n */\nconst inlineNormal = {\n _backpedal: noopTest, // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest\n};\n/**\n * Pedantic Inline Grammar\n */\nconst inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', _inlineLabel)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', _inlineLabel)\n .getRegex()\n};\n/**\n * GFM Inline Grammar\n */\nconst inlineGfm = {\n ...inlineNormal,\n escape: edit(escape).replace('])', '~|])').getRegex(),\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, 'i')\n .replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/)\n .getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ {\n return leading + ' '.repeat(tabs.length);\n });\n }\n let token;\n let lastToken;\n let cutSrc;\n let lastParagraphClipped;\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unnecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n}\n", "import { _defaults } from './defaults.ts';\nimport { cleanUrl, escape } from './helpers.ts';\n/**\n * Renderer\n */\nexport class _Renderer {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/^\\S*/)?.[0];\n code = code.replace(/\\n$/, '') + '\\n';\n if (!lang) {\n return '
'\n                + (escaped ? code : escape(code, true))\n                + '
\\n';\n }\n return '
'\n            + (escaped ? code : escape(code, true))\n            + '
\\n';\n }\n blockquote(quote) {\n return `
\\n${quote}
\\n`;\n }\n html(html, block) {\n return html;\n }\n heading(text, level, raw) {\n // ignore IDs\n return `${text}\\n`;\n }\n hr() {\n return '
\\n';\n }\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul';\n const startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n }\n listitem(text, task, checked) {\n return `
  • ${text}
  • \\n`;\n }\n checkbox(checked) {\n return '';\n }\n paragraph(text) {\n return `

    ${text}

    \\n`;\n }\n table(header, body) {\n if (body)\n body = `${body}`;\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n }\n tablerow(content) {\n return `\\n${content}\\n`;\n }\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? `<${type} align=\"${flags.align}\">`\n : `<${type}>`;\n return tag + content + `\\n`;\n }\n /**\n * span level renderer\n */\n strong(text) {\n return `${text}`;\n }\n em(text) {\n return `${text}`;\n }\n codespan(text) {\n return `${text}`;\n }\n br() {\n return '
    ';\n }\n del(text) {\n return `${text}`;\n }\n link(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '
    ';\n return out;\n }\n image(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = `\"${text}\"`;\n 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n }\n else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox + ' '\n });\n }\n }\n else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, !!checked);\n }\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n const htmlToken = token;\n out += this.renderer.html(htmlToken.text, htmlToken.block);\n continue;\n }\n case 'paragraph': {\n const paragraphToken = token;\n out += this.renderer.paragraph(this.parseInline(paragraphToken.tokens));\n continue;\n }\n case 'text': {\n let textToken = token;\n let body = textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text;\n while (i + 1 < tokens.length && tokens[i + 1].type === 'text') {\n textToken = tokens[++i];\n body += '\\n' + (textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n const ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n switch (token.type) {\n case 'escape': {\n const escapeToken = token;\n out += renderer.text(escapeToken.text);\n break;\n }\n case 'html': {\n const tagToken = token;\n out += renderer.html(tagToken.text);\n break;\n }\n case 'link': {\n const linkToken = token;\n out += renderer.link(linkToken.href, linkToken.title, this.parseInline(linkToken.tokens, renderer));\n break;\n }\n case 'image': {\n const imageToken = token;\n out += renderer.image(imageToken.href, imageToken.title, imageToken.text);\n break;\n }\n case 'strong': {\n const strongToken = token;\n out += renderer.strong(this.parseInline(strongToken.tokens, renderer));\n break;\n }\n case 'em': {\n const emToken = token;\n out += renderer.em(this.parseInline(emToken.tokens, renderer));\n break;\n }\n case 'codespan': {\n const codespanToken = token;\n out += renderer.codespan(codespanToken.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n const delToken = token;\n out += renderer.del(this.parseInline(delToken.tokens, renderer));\n break;\n }\n case 'text': {\n const textToken = token;\n out += renderer.text(textToken.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n", "import { _defaults } from './defaults.ts';\nexport class _Hooks {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n static passThroughHooks = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens'\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html) {\n return html;\n }\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens) {\n return tokens;\n }\n}\n", "import { _getDefaults } from './defaults.ts';\nimport { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport { _Hooks } from './Hooks.ts';\nimport { _Renderer } from './Renderer.ts';\nimport { _Tokenizer } from './Tokenizer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { escape } from './helpers.ts';\nexport class Marked {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.#parseMarkdown(_Lexer.lex, _Parser.parse);\n parseInline = this.#parseMarkdown(_Lexer.lexInline, _Parser.parseInline);\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table': {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list': {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n values = values.concat(this.walkTokens(genericToken[childTokens], callback));\n });\n }\n else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack };\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function (...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n }\n else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n }\n else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n }\n else {\n extensions.startBlock = [ext.start];\n }\n }\n else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n }\n else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if (prop === 'options') {\n // ignore options property\n continue;\n }\n const rendererProp = prop;\n const rendererFunc = pack.renderer[rendererProp];\n const prevRenderer = renderer[rendererProp];\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererProp] = (...args) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret || '';\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if (['options', 'rules', 'lexer'].includes(prop)) {\n // ignore options, rules, and lexer properties\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n // Replace tokenizer with func to run extension, but fall back if false\n // @ts-expect-error cannot type tokenizer function dynamically\n tokenizer[tokenizerProp] = (...args) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if (prop === 'options') {\n // ignore options property\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then(ret => {\n return prevHook.call(hooks, ret);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n }\n else {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (...args) => {\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function (token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n parser(tokens, options) {\n return _Parser.parse(tokens, options ?? this.defaults);\n }\n #parseMarkdown(lexer, parser) {\n return (src, options) => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n // Show warning if an extension set async to true but the parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n if (!opt.silent) {\n console.warn('marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.');\n }\n opt.async = true;\n }\n const throwError = this.#onError(!!opt.silent, !!opt.async);\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n }\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src)\n .then(src => lexer(src, opt))\n .then(tokens => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens)\n .then(tokens => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens)\n .then(tokens => parser(tokens, opt))\n .then(html => opt.hooks ? opt.hooks.postprocess(html) : html)\n .catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n }\n catch (e) {\n return throwError(e);\n }\n };\n }\n #onError(silent, async) {\n return (e) => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (silent) {\n const msg = '

    An error occurred:

    '\n                    + escape(e.message + '', true)\n                    + '
    ';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n", "import { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport { _Tokenizer } from './Tokenizer.ts';\nimport { _Renderer } from './Renderer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { _Hooks } from './Hooks.ts';\nimport { Marked } from './Instance.ts';\nimport { _getDefaults, changeDefaults, _defaults } from './defaults.ts';\nconst markedInstance = new Marked();\nexport function marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function (options) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\n/**\n * Use Extension\n */\nmarked.use = function (...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n/**\n * Run callback for every token\n */\nmarked.walkTokens = function (tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nexport const options = marked.options;\nexport const setOptions = marked.setOptions;\nexport const use = marked.use;\nexport const walkTokens = marked.walkTokens;\nexport const parseInline = marked.parseInline;\nexport const parse = marked;\nexport const parser = _Parser.parse;\nexport const lexer = _Lexer.lex;\nexport { _defaults as defaults, _getDefaults as getDefaults } from './defaults.ts';\nexport { _Lexer as Lexer } from './Lexer.ts';\nexport { _Parser as Parser } from './Parser.ts';\nexport { _Tokenizer as Tokenizer } from './Tokenizer.ts';\nexport { _Renderer as Renderer } from './Renderer.ts';\nexport { _TextRenderer as TextRenderer } from './TextRenderer.ts';\nexport { _Hooks as Hooks } from './Hooks.ts';\nexport { Marked } from './Instance.ts';\n", "import { marked } from 'marked';\nimport DOMPurify from \"dompurify\"\n\nmarked.setOptions({\n pedantic: false,\n gfm: true\n});\n\nexport const markedImpl = function(str) {\n if (!str) return \"\";\n return DOMPurify.sanitize(marked.parse(str));\n};\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Globals from \"../Globals/index.js\";\nvar marked = function ($1) {\n return Globals.RawHTML($foreign.markedImpl($1));\n};\nexport {\n markedImpl\n} from \"./foreign.js\";\nexport {\n marked\n};\n", "// Generated by purs version 0.15.14\nimport * as Component_RawHtml from \"../Component.RawHtml/index.js\";\nimport * as Foreign_Marked from \"../Foreign.Marked/index.js\";\nvar component = /* #__PURE__ */ Component_RawHtml.mkComponent(Foreign_Marked.marked);\nexport {\n component\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar warnShow = function (dictMonadEffect) {\n var liftEffect = Effect_Class.liftEffect(dictMonadEffect);\n return function (dictShow) {\n var $55 = Effect_Console.warnShow(dictShow);\n return function ($56) {\n return liftEffect($55($56));\n };\n };\n};\nvar warn = function (dictMonadEffect) {\n var $57 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($58) {\n return $57(Effect_Console.warn($58));\n };\n};\nvar timeLog = function (dictMonadEffect) {\n var $59 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($60) {\n return $59(Effect_Console.timeLog($60));\n };\n};\nvar timeEnd = function (dictMonadEffect) {\n var $61 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($62) {\n return $61(Effect_Console.timeEnd($62));\n };\n};\nvar time = function (dictMonadEffect) {\n var $63 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($64) {\n return $63(Effect_Console.time($64));\n };\n};\nvar logShow = function (dictMonadEffect) {\n var liftEffect = Effect_Class.liftEffect(dictMonadEffect);\n return function (dictShow) {\n var $65 = Effect_Console.logShow(dictShow);\n return function ($66) {\n return liftEffect($65($66));\n };\n };\n};\nvar log = function (dictMonadEffect) {\n var $67 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($68) {\n return $67(Effect_Console.log($68));\n };\n};\nvar infoShow = function (dictMonadEffect) {\n var liftEffect = Effect_Class.liftEffect(dictMonadEffect);\n return function (dictShow) {\n var $69 = Effect_Console.infoShow(dictShow);\n return function ($70) {\n return liftEffect($69($70));\n };\n };\n};\nvar info = function (dictMonadEffect) {\n var $71 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($72) {\n return $71(Effect_Console.info($72));\n };\n};\nvar groupEnd = function (dictMonadEffect) {\n return Effect_Class.liftEffect(dictMonadEffect)(Effect_Console.groupEnd);\n};\nvar groupCollapsed = function (dictMonadEffect) {\n var $73 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($74) {\n return $73(Effect_Console.groupCollapsed($74));\n };\n};\nvar group = function (dictMonadEffect) {\n var $75 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($76) {\n return $75(Effect_Console.group($76));\n };\n};\nvar grouped = function (dictMonadEffect) {\n var Monad0 = dictMonadEffect.Monad0();\n var Bind1 = Monad0.Bind1();\n var discard1 = discard(Bind1);\n var group1 = group(dictMonadEffect);\n var bind = Control_Bind.bind(Bind1);\n var groupEnd1 = groupEnd(dictMonadEffect);\n var pure = Control_Applicative.pure(Monad0.Applicative0());\n return function (name) {\n return function (inner) {\n return discard1(group1(name))(function () {\n return bind(inner)(function (result) {\n return discard1(groupEnd1)(function () {\n return pure(result);\n });\n });\n });\n };\n };\n};\nvar errorShow = function (dictMonadEffect) {\n var liftEffect = Effect_Class.liftEffect(dictMonadEffect);\n return function (dictShow) {\n var $77 = Effect_Console.errorShow(dictShow);\n return function ($78) {\n return liftEffect($77($78));\n };\n };\n};\nvar error = function (dictMonadEffect) {\n var $79 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($80) {\n return $79(Effect_Console.error($80));\n };\n};\nvar debugShow = function (dictMonadEffect) {\n var liftEffect = Effect_Class.liftEffect(dictMonadEffect);\n return function (dictShow) {\n var $81 = Effect_Console.debugShow(dictShow);\n return function ($82) {\n return liftEffect($81($82));\n };\n };\n};\nvar debug = function (dictMonadEffect) {\n var $83 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($84) {\n return $83(Effect_Console.debug($84));\n };\n};\nvar clear = function (dictMonadEffect) {\n return Effect_Class.liftEffect(dictMonadEffect)(Effect_Console.clear);\n};\nexport {\n log,\n logShow,\n warn,\n warnShow,\n error,\n errorShow,\n info,\n infoShow,\n debug,\n debugShow,\n time,\n timeLog,\n timeEnd,\n clear,\n group,\n groupCollapsed,\n groupEnd,\n grouped\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as Halogen_HTML_Properties from \"../Halogen.HTML.Properties/index.js\";\nimport * as Halogen_VDom_Thunk from \"../Halogen.VDom.Thunk/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar componentSlot = /* #__PURE__ */ Halogen_Component.componentSlot();\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorFn);\nvar slot_ = function () {\n return function (dictIsSymbol) {\n var componentSlot1 = componentSlot(dictIsSymbol);\n return function (dictOrd) {\n var componentSlot2 = componentSlot1(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(componentSlot2(label)(p)(component)(input)(Data_Function[\"const\"](Data_Maybe.Nothing.value))));\n };\n };\n };\n };\n };\n };\n};\nvar slot = function () {\n return function (dictIsSymbol) {\n var componentSlot1 = componentSlot(dictIsSymbol);\n return function (dictOrd) {\n var componentSlot2 = componentSlot1(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(componentSlot2(label)(p)(component)(input)(function ($11) {\n return Data_Maybe.Just.create(outputQuery($11));\n })));\n };\n };\n };\n };\n };\n };\n };\n};\nvar memoized = function (eqFn) {\n return function (f) {\n return map(function ($12) {\n return Halogen_HTML_Core.widget(Halogen_Component.ThunkSlot.create($12));\n })(Halogen_VDom_Thunk.thunked(eqFn)(f));\n };\n};\nvar lazy3 = function (f) {\n return function (a) {\n return function (b) {\n return function (c) {\n return Halogen_HTML_Core.widget(new Halogen_Component.ThunkSlot(Halogen_VDom_Thunk.thunk3(f, a, b, c)));\n };\n };\n };\n};\nvar lazy2 = function (f) {\n return function (a) {\n return function (b) {\n return Halogen_HTML_Core.widget(new Halogen_Component.ThunkSlot(Halogen_VDom_Thunk.thunk2(f, a, b)));\n };\n };\n};\nvar lazy = function (f) {\n return function (a) {\n return Halogen_HTML_Core.widget(new Halogen_Component.ThunkSlot(Halogen_VDom_Thunk.thunk1(f, a)));\n };\n};\nvar fromPlainHTML = Unsafe_Coerce.unsafeCoerce;\nexport {\n fromPlainHTML,\n slot,\n slot_,\n memoized,\n lazy,\n lazy2,\n lazy3\n};\nexport {\n AttrName,\n ClassName,\n ElemName,\n HTML,\n Namespace,\n PropName,\n handler,\n text\n} from \"../Halogen.HTML.Core/index.js\";\nexport {\n a,\n a_,\n abbr,\n abbr_,\n address,\n address_,\n area,\n article,\n article_,\n aside,\n aside_,\n audio,\n audio_,\n b,\n b_,\n base,\n bdi,\n bdi_,\n bdo,\n bdo_,\n blockquote,\n blockquote_,\n body,\n body_,\n br,\n br_,\n button,\n button_,\n canvas,\n caption,\n caption_,\n cite,\n cite_,\n code,\n code_,\n col,\n colgroup,\n colgroup_,\n command,\n datalist,\n datalist_,\n dd,\n dd_,\n del,\n del_,\n details,\n details_,\n dfn,\n dfn_,\n dialog,\n dialog_,\n div,\n div_,\n dl,\n dl_,\n dt,\n dt_,\n element,\n elementNS,\n em,\n em_,\n embed,\n embed_,\n fieldset,\n fieldset_,\n figcaption,\n figcaption_,\n figure,\n figure_,\n footer,\n footer_,\n form,\n form_,\n h1,\n h1_,\n h2,\n h2_,\n h3,\n h3_,\n h4,\n h4_,\n h5,\n h5_,\n h6,\n h6_,\n head,\n head_,\n header,\n header_,\n hr,\n hr_,\n html,\n html_,\n i,\n i_,\n iframe,\n img,\n input,\n ins,\n ins_,\n kbd,\n kbd_,\n keyed,\n keyedNS,\n label,\n label_,\n legend,\n legend_,\n li,\n li_,\n link,\n main,\n main_,\n map,\n map_,\n mark,\n mark_,\n menu,\n menu_,\n menuitem,\n menuitem_,\n meta,\n meter,\n meter_,\n nav,\n nav_,\n noscript,\n noscript_,\n object,\n object_,\n ol,\n ol_,\n optgroup,\n optgroup_,\n option,\n option_,\n output,\n output_,\n p,\n p_,\n param,\n pre,\n pre_,\n progress,\n progress_,\n q,\n q_,\n rp,\n rp_,\n rt,\n rt_,\n ruby,\n ruby_,\n samp,\n samp_,\n script,\n script_,\n section,\n section_,\n select,\n select_,\n small,\n small_,\n source,\n span,\n span_,\n strong,\n strong_,\n style,\n style_,\n sub,\n sub_,\n summary,\n summary_,\n sup,\n sup_,\n table,\n table_,\n tbody,\n tbody_,\n td,\n td_,\n textarea,\n tfoot,\n tfoot_,\n th,\n th_,\n thead,\n thead_,\n time,\n time_,\n title,\n title_,\n tr,\n tr_,\n track,\n u,\n u_,\n ul,\n ul_,\n var,\n var_,\n video,\n video_,\n wbr,\n withKeys,\n withKeys_\n} from \"../Halogen.HTML.Elements/index.js\";\nexport {\n attr,\n attrNS,\n prop\n} from \"../Halogen.HTML.Properties/index.js\";\n", "// Generated by purs version 0.15.14\nimport * as Affjax from \"../Affjax/index.js\";\nimport * as App from \"../App/index.js\";\nimport * as Component_Markdown from \"../Component.Markdown/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as DOM_HTML_Indexed_AutocompleteType from \"../DOM.HTML.Indexed.AutocompleteType/index.js\";\nimport * as DOM_HTML_Indexed_ButtonType from \"../DOM.HTML.Indexed.ButtonType/index.js\";\nimport * as DOM_HTML_Indexed_InputType from \"../DOM.HTML.Indexed.InputType/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Lens_Getter from \"../Data.Lens.Getter/index.js\";\nimport * as Data_Lens_Internal_Forget from \"../Data.Lens.Internal.Forget/index.js\";\nimport * as Data_Lens_Lens from \"../Data.Lens.Lens/index.js\";\nimport * as Data_Lens_Setter from \"../Data.Lens.Setter/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_CodePoints from \"../Data.String.CodePoints/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Data_Void from \"../Data.Void/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Class_Console from \"../Effect.Class.Console/index.js\";\nimport * as Globals from \"../Globals/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_HTML from \"../Halogen.HTML/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as Halogen_HTML_Events from \"../Halogen.HTML.Events/index.js\";\nimport * as Halogen_HTML_Properties from \"../Halogen.HTML.Properties/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nimport * as Util from \"../Util/index.js\";\nimport * as Web_Event_Event from \"../Web.Event.Event/index.js\";\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar bind = /* #__PURE__ */ Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM);\nvar use = /* #__PURE__ */ Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM);\nvar liftAff = /* #__PURE__ */ Effect_Aff_Class.liftAff(/* #__PURE__ */ Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff));\nvar modifying = /* #__PURE__ */ Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM);\nvar modify_ = /* #__PURE__ */ Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM);\nvar assign = /* #__PURE__ */ Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM);\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(/* #__PURE__ */ Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff));\nvar when = /* #__PURE__ */ Control_Applicative.when(Effect.applicativeEffect);\nvar gets = /* #__PURE__ */ Control_Monad_State_Class.gets(Halogen_Query_HalogenM.monadStateHalogenM);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM);\nvar log = /* #__PURE__ */ Effect_Class_Console.log(Effect_Class.monadEffectEffect);\nvar guard = /* #__PURE__ */ Data_Monoid.guard(Data_Monoid.monoidString);\nvar slot = /* #__PURE__ */ Halogen_HTML.slot()({\n reflectSymbol: function () {\n return \"markdown\";\n }\n})(Data_Ord.ordUnit);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar type_ = /* #__PURE__ */ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType);\nvar guard1 = /* #__PURE__ */ Data_Monoid.guard(Data_Monoid.monoidArray);\nvar type_1 = /* #__PURE__ */ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType);\nvar value = /* #__PURE__ */ Halogen_HTML_Properties.value(Halogen_HTML_Core.isPropString);\nvar Eurl = /* #__PURE__ */ (function () {\n function Eurl(value0) {\n this.value0 = value0;\n };\n Eurl.create = function (value0) {\n return new Eurl(value0);\n };\n return Eurl;\n})();\nvar Etitle = /* #__PURE__ */ (function () {\n function Etitle(value0) {\n this.value0 = value0;\n };\n Etitle.create = function (value0) {\n return new Etitle(value0);\n };\n return Etitle;\n})();\nvar Edescription = /* #__PURE__ */ (function () {\n function Edescription(value0) {\n this.value0 = value0;\n };\n Edescription.create = function (value0) {\n return new Edescription(value0);\n };\n return Edescription;\n})();\nvar Etags = /* #__PURE__ */ (function () {\n function Etags(value0) {\n this.value0 = value0;\n };\n Etags.create = function (value0) {\n return new Etags(value0);\n };\n return Etags;\n})();\nvar Eprivate = /* #__PURE__ */ (function () {\n function Eprivate(value0) {\n this.value0 = value0;\n };\n Eprivate.create = function (value0) {\n return new Eprivate(value0);\n };\n return Eprivate;\n})();\nvar Etoread = /* #__PURE__ */ (function () {\n function Etoread(value0) {\n this.value0 = value0;\n };\n Etoread.create = function (value0) {\n return new Etoread(value0);\n };\n return Etoread;\n})();\nvar BNotifyRemove = /* #__PURE__ */ (function () {\n function BNotifyRemove() {\n\n };\n BNotifyRemove.value = new BNotifyRemove();\n return BNotifyRemove;\n})();\nvar BStar = /* #__PURE__ */ (function () {\n function BStar(value0) {\n this.value0 = value0;\n };\n BStar.create = function (value0) {\n return new BStar(value0);\n };\n return BStar;\n})();\nvar BDeleteAsk = /* #__PURE__ */ (function () {\n function BDeleteAsk(value0) {\n this.value0 = value0;\n };\n BDeleteAsk.create = function (value0) {\n return new BDeleteAsk(value0);\n };\n return BDeleteAsk;\n})();\nvar BLookupTitle = /* #__PURE__ */ (function () {\n function BLookupTitle() {\n\n };\n BLookupTitle.value = new BLookupTitle();\n return BLookupTitle;\n})();\nvar BDestroy = /* #__PURE__ */ (function () {\n function BDestroy() {\n\n };\n BDestroy.value = new BDestroy();\n return BDestroy;\n})();\nvar BEdit = /* #__PURE__ */ (function () {\n function BEdit(value0) {\n this.value0 = value0;\n };\n BEdit.create = function (value0) {\n return new BEdit(value0);\n };\n return BEdit;\n})();\nvar BEditField = /* #__PURE__ */ (function () {\n function BEditField(value0) {\n this.value0 = value0;\n };\n BEditField.create = function (value0) {\n return new BEditField(value0);\n };\n return BEditField;\n})();\nvar BEditSubmit = /* #__PURE__ */ (function () {\n function BEditSubmit(value0) {\n this.value0 = value0;\n };\n BEditSubmit.create = function (value0) {\n return new BEditSubmit(value0);\n };\n return BEditSubmit;\n})();\nvar BMarkRead = /* #__PURE__ */ (function () {\n function BMarkRead() {\n\n };\n BMarkRead.value = new BMarkRead();\n return BMarkRead;\n})();\nvar _markdown = /* #__PURE__ */ (function () {\n return Type_Proxy[\"Proxy\"].value;\n})();\nvar _edit_bm = function (dictStrong) {\n return Data_Lens_Lens.lens(function (v) {\n return v.edit_bm;\n })(function (v) {\n return function (v1) {\n return {\n apiError: v.apiError,\n bm: v.bm,\n deleteAsk: v.deleteAsk,\n edit: v.edit,\n loading: v.loading,\n edit_bm: v1\n };\n };\n })(dictStrong);\n};\nvar _edit_bm1 = /* #__PURE__ */ _edit_bm(Data_Profunctor_Strong.strongFn);\nvar _edit_bm2 = /* #__PURE__ */ _edit_bm(Data_Lens_Internal_Forget.strongForget);\nvar _edit = function (dictStrong) {\n return Data_Lens_Lens.lens(function (v) {\n return v.edit;\n })(function (v) {\n return function (v1) {\n return {\n apiError: v.apiError,\n bm: v.bm,\n deleteAsk: v.deleteAsk,\n edit_bm: v.edit_bm,\n loading: v.loading,\n edit: v1\n };\n };\n })(dictStrong);\n};\nvar _edit1 = /* #__PURE__ */ _edit(Data_Profunctor_Strong.strongFn);\nvar _bm = function (dictStrong) {\n return Data_Lens_Lens.lens(function (v) {\n return v.bm;\n })(function (v) {\n return function (v1) {\n return {\n apiError: v.apiError,\n deleteAsk: v.deleteAsk,\n edit: v.edit,\n edit_bm: v.edit_bm,\n loading: v.loading,\n bm: v1\n };\n };\n })(dictStrong);\n};\nvar _bm1 = /* #__PURE__ */ _bm(Data_Lens_Internal_Forget.strongForget);\nvar _bm2 = /* #__PURE__ */ _bm(Data_Profunctor_Strong.strongFn);\nvar _apiError = function (dictStrong) {\n return Data_Lens_Lens.lens(function (v) {\n return v.apiError;\n })(function (v) {\n return function (v1) {\n return {\n bm: v.bm,\n deleteAsk: v.deleteAsk,\n edit: v.edit,\n edit_bm: v.edit_bm,\n loading: v.loading,\n apiError: v1\n };\n };\n })(dictStrong);\n};\nvar _apiError1 = /* #__PURE__ */ _apiError(Data_Profunctor_Strong.strongFn);\nvar bmark = function (b$prime) {\n var tagid = function (bm) {\n return show(bm.bid) + \"_tags\";\n };\n var mkState = function (b) {\n return {\n bm: b,\n edit_bm: b,\n deleteAsk: false,\n edit: false,\n loading: false,\n apiError: Data_Maybe.Nothing.value\n };\n };\n var handleAction = function (v) {\n if (v instanceof BStar) {\n return bind(use(_bm1))(function (bm) {\n return discard(liftAff(App.toggleStar(bm.bid)((function () {\n if (v.value0) {\n return App.Star.value;\n };\n return App.UnStar.value;\n })())))(function () {\n return discard(modifying(_bm2)(function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n description: v1.description,\n tags: v1.tags,\n \"private\": v1[\"private\"],\n toread: v1.toread,\n bid: v1.bid,\n slug: v1.slug,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n selected: v.value0\n };\n }))(function () {\n return modifying(_edit_bm1)(function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n description: v1.description,\n tags: v1.tags,\n \"private\": v1[\"private\"],\n toread: v1.toread,\n bid: v1.bid,\n slug: v1.slug,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n selected: v.value0\n };\n });\n });\n });\n });\n };\n if (v instanceof BDeleteAsk) {\n return modify_(function (v1) {\n var $93 = {};\n for (var $94 in v1) {\n if ({}.hasOwnProperty.call(v1, $94)) {\n $93[$94] = v1[$94];\n };\n };\n $93.deleteAsk = v.value0;\n return $93;\n });\n };\n if (v instanceof BDestroy) {\n return bind(use(_bm1))(function (bm) {\n return discard($$void(liftAff(App.destroy(bm.bid))))(function () {\n return Halogen_Query_HalogenM.raise(BNotifyRemove.value);\n });\n });\n };\n if (v instanceof BMarkRead) {\n return bind(use(_bm1))(function (bm) {\n return discard($$void(liftAff(App.markRead(bm.bid))))(function () {\n return modifying(_bm2)(function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n description: v1.description,\n tags: v1.tags,\n \"private\": v1[\"private\"],\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n toread: false\n };\n });\n });\n });\n };\n if (v instanceof BEdit) {\n return bind(use(_bm1))(function (bm) {\n return discard(assign(_edit_bm1)(bm))(function () {\n return discard(assign(_edit1)(v.value0))(function () {\n return discard(assign(_apiError1)(Data_Maybe.Nothing.value))(function () {\n return liftEffect(when(v.value0)(Globals.setFocus(tagid(bm))));\n });\n });\n });\n });\n };\n if (v instanceof BEditField) {\n return modifying(_edit_bm1)((function () {\n if (v.value0 instanceof Eurl) {\n return function (v1) {\n return {\n title: v1.title,\n description: v1.description,\n tags: v1.tags,\n \"private\": v1[\"private\"],\n toread: v1.toread,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n url: v.value0.value0\n };\n };\n };\n if (v.value0 instanceof Etitle) {\n return function (v1) {\n return {\n url: v1.url,\n description: v1.description,\n tags: v1.tags,\n \"private\": v1[\"private\"],\n toread: v1.toread,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n title: v.value0.value0\n };\n };\n };\n if (v.value0 instanceof Edescription) {\n return function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n tags: v1.tags,\n \"private\": v1[\"private\"],\n toread: v1.toread,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n description: v.value0.value0\n };\n };\n };\n if (v.value0 instanceof Etags) {\n return function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n description: v1.description,\n \"private\": v1[\"private\"],\n toread: v1.toread,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n tags: v.value0.value0\n };\n };\n };\n if (v.value0 instanceof Eprivate) {\n return function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n description: v1.description,\n tags: v1.tags,\n toread: v1.toread,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n \"private\": v.value0.value0\n };\n };\n };\n if (v.value0 instanceof Etoread) {\n return function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n description: v1.description,\n tags: v1.tags,\n \"private\": v1[\"private\"],\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n toread: v.value0.value0\n };\n };\n };\n throw new Error(\"Failed pattern match at Component.BMark (line 253, column 17 - line 259, column 36): \" + [ v.value0.constructor.name ]);\n })());\n };\n if (v instanceof BLookupTitle) {\n return discard(modify_(function (v1) {\n var $106 = {};\n for (var $107 in v1) {\n if ({}.hasOwnProperty.call(v1, $107)) {\n $106[$107] = v1[$107];\n };\n };\n $106.loading = true;\n return $106;\n }))(function () {\n return bind(gets(function (v1) {\n return v1.edit_bm;\n }))(function (edit_bm) {\n return bind(liftAff(App.lookupTitle(edit_bm)))(function (mtitle) {\n return discard((function () {\n if (mtitle instanceof Data_Maybe.Just) {\n return modifying(_edit_bm1)(function (v1) {\n return {\n url: v1.url,\n description: v1.description,\n tags: v1.tags,\n \"private\": v1[\"private\"],\n toread: v1.toread,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl,\n title: mtitle.value0\n };\n });\n };\n if (mtitle instanceof Data_Maybe.Nothing) {\n return pure(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Component.BMark (line 266, column 5 - line 268, column 29): \" + [ mtitle.constructor.name ]);\n })())(function () {\n return modify_(function (v1) {\n var $111 = {};\n for (var $112 in v1) {\n if ({}.hasOwnProperty.call(v1, $112)) {\n $111[$112] = v1[$112];\n };\n };\n $111.loading = false;\n return $111;\n });\n });\n });\n });\n });\n };\n if (v instanceof BEditSubmit) {\n return discard(liftEffect(Web_Event_Event.preventDefault(v.value0)))(function () {\n return bind(use(_edit_bm2))(function (edit_bm) {\n return discard(assign(_apiError1)(Data_Maybe.Nothing.value))(function () {\n var edit_bm$prime = {\n archiveUrl: edit_bm.archiveUrl,\n bid: edit_bm.bid,\n description: edit_bm.description,\n \"private\": edit_bm[\"private\"],\n selected: edit_bm.selected,\n slug: edit_bm.slug,\n time: edit_bm.time,\n title: edit_bm.title,\n toread: edit_bm.toread,\n url: edit_bm.url,\n tags: Data_String_Common.replaceAll(\",\")(\" \")(edit_bm.tags)\n };\n return bind(liftAff(App.editBookmark(edit_bm$prime)))(function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return discard(assign(_apiError1)(new Data_Maybe.Just(Affjax.printError(v1.value0))))(function () {\n return liftEffect(log(Affjax.printError(v1.value0)));\n });\n };\n if (v1 instanceof Data_Either.Right && (v1.value0.status >= 200 && v1.value0.status < 300)) {\n return discard(assign(_bm2)(edit_bm$prime))(function () {\n return assign(_edit1)(false);\n });\n };\n if (v1 instanceof Data_Either.Right) {\n return discard(assign(_apiError1)(new Data_Maybe.Just(v1.value0.body)))(function () {\n return liftEffect(log(v1.value0.body));\n });\n };\n throw new Error(\"Failed pattern match at Component.BMark (line 277, column 43 - line 286, column 36): \" + [ v1.constructor.name ]);\n });\n });\n });\n });\n };\n throw new Error(\"Failed pattern match at Component.BMark (line 216, column 3 - line 216, column 84): \" + [ v.constructor.name ]);\n };\n var app = Globals[\"app$prime\"](Data_Unit.unit);\n var render = function (v) {\n var star = function (v1) {\n return Halogen_HTML_Elements.div([ Util.class_(\"star fl pointer\" + guard(v.bm.selected)(\" selected\")) ])([ Halogen_HTML_Elements.button([ Util.class_(\"moon-gray\"), Halogen_HTML_Events.onClick(function (v2) {\n return new BStar(!v.bm.selected);\n }) ])([ Halogen_HTML_Core.text(\"\\u272d\") ]) ]);\n };\n var shdatetime = Data_String_CodePoints.take(16)(v.bm.time) + \"Z\";\n var shdate = Globals.toLocaleDateString(v.bm.time);\n var linkToFilterTag = function (tag) {\n return Util.fromNullableStr(app.userR) + (\"/t:\" + Util.encodeTag(tag));\n };\n var linkToFilterSingle = function (slug) {\n return Util.fromNullableStr(app.userR) + (\"/b:\" + slug);\n };\n var editField = function (f) {\n return function ($126) {\n return BEditField.create(f($126));\n };\n };\n var display = function (v1) {\n return Halogen_HTML_Elements.div([ Util.class_(\"display\") ])([ Halogen_HTML_Elements.a([ Halogen_HTML_Properties.href(v.bm.url), Halogen_HTML_Properties.target(\"_blank\"), Util.class_(\"link f5 lh-title\" + guard(v.bm.toread)(\" unread\")) ])([ Halogen_HTML_Core.text((function () {\n var $121 = Data_String_Common[\"null\"](v.bm.title);\n if ($121) {\n return \"[no title]\";\n };\n return v.bm.title;\n })()) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.a([ Halogen_HTML_Properties.href(v.bm.url), Util.class_(\"link f7 gray hover-blue\") ])([ Halogen_HTML_Core.text(v.bm.url) ]), Halogen_HTML_Elements.a([ Halogen_HTML_Properties.href(Data_Maybe.fromMaybe(\"http://archive.is/\" + v.bm.url)(Data_Nullable.toMaybe(v.bm.archiveUrl))), Util.class_(\"link f7 gray hover-blue ml2\" + guard(Data_Maybe.isJust(Data_Nullable.toMaybe(v.bm.archiveUrl)))(\" green\")), Halogen_HTML_Properties.target(\"_blank\"), Halogen_HTML_Properties.title(\"archive link\") ])([ (function () {\n var $122 = Data_Maybe.isJust(Data_Nullable.toMaybe(v.bm.archiveUrl));\n if ($122) {\n return Halogen_HTML_Core.text(\"\\u2611\");\n };\n return Halogen_HTML_Core.text(\"\\u2610\");\n })() ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.div([ Util.class_(\"description mt1 mid-gray\") ])([ slot(_markdown)(Data_Unit.unit)(Component_Markdown.component)(v.bm.description)(Data_Void.absurd) ]), Halogen_HTML_Elements.div([ Util.class_(\"tags\") ])(Util.whenA(!Data_String_Common[\"null\"](v.bm.tags))(function (v2) {\n return map(function (tag) {\n return Halogen_HTML_Elements.a([ Util.class_(\"link tag mr1\" + guard(Data_String_CodePoints.take(1)(tag) === \".\")(\" private\")), Halogen_HTML_Properties.href(linkToFilterTag(tag)) ])([ Halogen_HTML_Core.text(tag) ]);\n })(Data_String_Common.split(\" \")(v.bm.tags));\n })), Halogen_HTML_Elements.a([ Util.class_(\"link f7 dib gray w4\"), Halogen_HTML_Properties.href(linkToFilterSingle(v.bm.slug)), Halogen_HTML_Properties.title(shdatetime) ])([ Halogen_HTML_Core.text(shdate) ]), Util.whenH(app.dat.isowner)(function (v2) {\n return Halogen_HTML_Elements.div([ Util.class_(\"edit_links di\") ])([ Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new BEdit(true);\n }), Util.class_(\"edit light-silver hover-blue\") ])([ Halogen_HTML_Core.text(\"edit\\xa0\\xa0\") ]), Halogen_HTML_Elements.div([ Util.class_(\"delete_link di\") ])([ Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new BDeleteAsk(true);\n }), Util.class_(\"delete light-silver hover-blue\" + guard(v.deleteAsk)(\" dn\")) ])([ Halogen_HTML_Core.text(\"delete\") ]), Halogen_HTML_Elements.span([ Util.class_(\"confirm red\" + guard(!v.deleteAsk)(\" dn\")) ])([ Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new BDeleteAsk(false);\n }) ])([ Halogen_HTML_Core.text(\"cancel\\xa0/\\xa0\") ]), Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return BDestroy.value;\n }), Util.class_(\"red\") ])([ Halogen_HTML_Core.text(\"destroy\") ]) ]) ]) ]);\n }), Util.whenH(app.dat.isowner)(function (v2) {\n return Halogen_HTML_Elements.div([ Util.class_(\"read di\") ])(guard1(v.bm.toread)([ Halogen_HTML_Core.text(\"\\xa0\\xa0\"), Halogen_HTML_Elements.button([ Halogen_HTML_Events.onClick(function (v3) {\n return BMarkRead.value;\n }), Util.class_(\"mark_read\") ])([ Halogen_HTML_Core.text(\"mark as read\") ]) ]));\n }) ]);\n };\n var alert_notification = function (alert_text) {\n return function (v1) {\n return Halogen_HTML_Elements.div([ Util.class_(\"alert alert-err\") ])([ Halogen_HTML_Core.text(alert_text) ]);\n };\n };\n var display_edit = function (v1) {\n return Halogen_HTML_Elements.div([ Util.class_(\"edit_bookmark_form pa2 pt0 bg-white\") ])([ Util.whenH(Data_Maybe.isJust(v.apiError))(alert_notification(Data_Maybe.fromMaybe(\"\")(v.apiError))), Halogen_HTML_Elements.form([ Halogen_HTML_Events.onSubmit(BEditSubmit.create) ])([ Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"url\") ]), Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputUrl.value), Util.class_(\"url w-100 mb2 pt1 edit_form_input\"), Halogen_HTML_Properties.required(true), Halogen_HTML_Properties.name(\"url\"), value(v.edit_bm.url), Halogen_HTML_Events.onValueChange(editField(Eurl.create)) ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"title\") ]), Halogen_HTML_Elements.div([ Util.class_(\"flex\") ])([ Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputText.value), Util.class_(\"title w-100 mb2 pt1 edit_form_input\"), Halogen_HTML_Properties.name(\"title\"), value(v.edit_bm.title), Halogen_HTML_Events.onValueChange(editField(Etitle.create)) ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.disabled(v.loading), type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return BLookupTitle.value;\n }), Util.class_(\"ml1 pa1 mb2 dark-gray ba b--moon-gray bg-near-white pointer rdim f7 \" + guard(v.loading)(\"bg-light-silver\")) ])([ Halogen_HTML_Core.text(\"fetch\") ]) ]), Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"description\") ]), Halogen_HTML_Elements.textarea([ Util.class_(\"description w-100 mb1 pt1 edit_form_input\"), Halogen_HTML_Properties.name(\"description\"), Halogen_HTML_Properties.rows(5), value(v.edit_bm.description), Halogen_HTML_Events.onValueChange(editField(Edescription.create)) ]), Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(\"tags_input_box\") ])([ Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"tags\") ]), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.id(tagid(v.edit_bm)), type_1(DOM_HTML_Indexed_InputType.InputText.value), Util.class_(\"tags w-100 mb1 pt1 edit_form_input\"), Halogen_HTML_Properties.name(\"tags\"), Halogen_HTML_Properties.autocomplete(DOM_HTML_Indexed_AutocompleteType.AutocompleteOff.value), Util.attr(\"autocapitalize\")(\"off\"), value(v.edit_bm.tags), Halogen_HTML_Events.onValueChange(editField(Etags.create)) ]) ]), Halogen_HTML_Elements.div([ Util.class_(\"edit_form_checkboxes mv3\") ])([ Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputCheckbox.value), Util.class_(\"private pointer\"), Halogen_HTML_Properties.id(\"edit_private\"), Halogen_HTML_Properties.name(\"private\"), Halogen_HTML_Properties.checked(v[\"edit_bm\"][\"private\"]), Halogen_HTML_Events.onChecked(editField(Eprivate.create)) ]), Halogen_HTML_Core.text(\" \"), Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"edit_private\"), Util.class_(\"mr2\") ])([ Halogen_HTML_Core.text(\"private\") ]), Halogen_HTML_Core.text(\" \"), Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputCheckbox.value), Util.class_(\"toread pointer\"), Halogen_HTML_Properties.id(\"edit_toread\"), Halogen_HTML_Properties.name(\"toread\"), Halogen_HTML_Properties.checked(v.edit_bm.toread), Halogen_HTML_Events.onChecked(editField(Etoread.create)) ]), Halogen_HTML_Core.text(\" \"), Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"edit_toread\") ])([ Halogen_HTML_Core.text(\"to-read\") ]) ]), Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputSubmit.value), Util.class_(\"mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"), value(\"save\") ]), Halogen_HTML_Core.text(\" \"), Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputReset.value), Util.class_(\"pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"), value(\"cancel\"), Halogen_HTML_Events.onClick(function (v2) {\n return new BEdit(false);\n }) ]) ]) ]);\n };\n return Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(show(v.bm.bid)), Util.class_(\"bookmark w-100 mw7 pa1 mb3\" + guard(v[\"bm\"][\"private\"])(\" private\")) ])([ Util.whenH(app.dat.isowner)(star), Util.ifElseH(v.edit)(display_edit)(display) ]);\n };\n return Halogen_Component.mkComponent({\n initialState: Data_Function[\"const\"](mkState(b$prime)),\n render: render,\n \"eval\": Halogen_Component.mkEval({\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: Halogen_Component.defaultEval.receive,\n initialize: Halogen_Component.defaultEval.initialize,\n finalize: Halogen_Component.defaultEval.finalize,\n handleAction: handleAction\n })\n });\n};\nexport {\n BStar,\n BDeleteAsk,\n BLookupTitle,\n BDestroy,\n BEdit,\n BEditField,\n BEditSubmit,\n BMarkRead,\n Eurl,\n Etitle,\n Edescription,\n Etags,\n Eprivate,\n Etoread,\n BNotifyRemove,\n _bm,\n _edit_bm,\n _edit,\n _apiError,\n _markdown,\n bmark\n};\n", "// Generated by purs version 0.15.14\nimport * as Component_BMark from \"../Component.BMark/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_HTML from \"../Halogen.HTML/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar slot = /* #__PURE__ */ Halogen_HTML.slot()({\n reflectSymbol: function () {\n return \"bookmark\";\n }\n})(Data_Ord.ordInt);\nvar modify_ = /* #__PURE__ */ Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM);\nvar HandleBMessage = /* #__PURE__ */ (function () {\n function HandleBMessage(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n HandleBMessage.create = function (value0) {\n return function (value1) {\n return new HandleBMessage(value0, value1);\n };\n };\n return HandleBMessage;\n})();\nvar _bookmark = /* #__PURE__ */ (function () {\n return Type_Proxy[\"Proxy\"].value;\n})();\nvar blist = function (st) {\n var render = function (bms) {\n return Halogen_HTML_Elements.div_(map(function (b) {\n return slot(_bookmark)(b.bid)(Component_BMark.bmark(b))(Data_Unit.unit)(HandleBMessage.create(b.bid));\n })(bms));\n };\n var handleAction = function (v) {\n return modify_(Data_Array.filter(function (b) {\n return b.bid !== v.value0;\n }));\n };\n return Halogen_Component.mkComponent({\n initialState: Data_Function[\"const\"](st),\n render: render,\n \"eval\": Halogen_Component.mkEval({\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: Halogen_Component.defaultEval.receive,\n initialize: Halogen_Component.defaultEval.initialize,\n finalize: Halogen_Component.defaultEval.finalize,\n handleAction: handleAction\n })\n });\n};\nexport {\n HandleBMessage,\n _bookmark,\n blist\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_CodePoints from \"../Data.String.CodePoints/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Globals from \"../Globals/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as Halogen_HTML_Properties from \"../Halogen.HTML.Properties/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Util from \"../Util/index.js\";\nvar foldMap = /* #__PURE__ */ Data_Array.foldMap(Data_Monoid.monoidArray);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM);\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar NLNop = /* #__PURE__ */ (function () {\n function NLNop() {\n\n };\n NLNop.value = new NLNop();\n return NLNop;\n})();\nvar nlist = function (st$prime) {\n var toTextarea = function (input) {\n return Data_Array.drop(1)(foldMap(function (x) {\n return [ Halogen_HTML_Elements.br_, Halogen_HTML_Core.text(x) ];\n })(Data_String_Common.split(\"\\x0a\")(input)));\n };\n var mmoment = function (note) {\n return Globals.mmoment8601(note.created);\n };\n var mkState = function (notes$prime) {\n return {\n notes: notes$prime,\n cur: Data_Maybe.Nothing.value,\n deleteAsk: false,\n edit: false\n };\n };\n var handleAction = function (v) {\n return pure(Data_Unit.unit);\n };\n var app = Globals[\"app$prime\"](Data_Unit.unit);\n var linkToFilterSingle = function (slug) {\n return Util.fromNullableStr(app.userR) + (\"/notes/\" + slug);\n };\n var render = function (v) {\n var renderNote = function (note) {\n return Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(show(note.id)), Util.class_(\"note w-100 mw7 pa1 mb2\" + (function () {\n if (note.shared) {\n return \"\";\n };\n return \" private\";\n })()) ])([ Halogen_HTML_Elements.div([ Util.class_(\"display\") ])([ Halogen_HTML_Elements.a([ Halogen_HTML_Properties.href(linkToFilterSingle(note.slug)), Util.class_(\"link f5 lh-title\") ])([ Halogen_HTML_Core.text((function () {\n var $11 = Data_String_Common[\"null\"](note.title);\n if ($11) {\n return \"[no title]\";\n };\n return note.title;\n })()) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.div([ Util.class_(\"description mt1 mid-gray\") ])(toTextarea(Data_String_CodePoints.take(200)(note.text))), Halogen_HTML_Elements.a([ Util.class_(\"link f7 dib gray w4\"), Halogen_HTML_Properties.title(Data_Maybe.maybe(note.created)(Data_Tuple.snd)(mmoment(note))), Halogen_HTML_Properties.href(linkToFilterSingle(note.slug)) ])([ Halogen_HTML_Core.text(Data_Maybe.maybe(\"\\xa0\")(Data_Tuple.fst)(mmoment(note))) ]) ]) ]);\n };\n return Halogen_HTML_Elements.div_(map(renderNote)(v.notes));\n };\n return Halogen_Component.mkComponent({\n initialState: Data_Function[\"const\"](mkState(st$prime)),\n render: render,\n \"eval\": Halogen_Component.mkEval({\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: Halogen_Component.defaultEval.receive,\n initialize: Halogen_Component.defaultEval.initialize,\n finalize: Halogen_Component.defaultEval.finalize,\n handleAction: handleAction\n })\n });\n};\nexport {\n NLNop,\n nlist\n};\n", "// Generated by purs version 0.15.14\nimport * as Affjax from \"../Affjax/index.js\";\nimport * as App from \"../App/index.js\";\nimport * as Component_Markdown from \"../Component.Markdown/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as DOM_HTML_Indexed_ButtonType from \"../DOM.HTML.Indexed.ButtonType/index.js\";\nimport * as DOM_HTML_Indexed_InputType from \"../DOM.HTML.Indexed.InputType/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Lens_Getter from \"../Data.Lens.Getter/index.js\";\nimport * as Data_Lens_Internal_Forget from \"../Data.Lens.Internal.Forget/index.js\";\nimport * as Data_Lens_Lens from \"../Data.Lens.Lens/index.js\";\nimport * as Data_Lens_Setter from \"../Data.Lens.Setter/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Profunctor_Strong from \"../Data.Profunctor.Strong/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_CodeUnits from \"../Data.String.CodeUnits/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Data_Void from \"../Data.Void/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as Globals from \"../Globals/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_HTML from \"../Halogen.HTML/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as Halogen_HTML_Events from \"../Halogen.HTML.Events/index.js\";\nimport * as Halogen_HTML_Properties from \"../Halogen.HTML.Properties/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Type_Proxy from \"../Type.Proxy/index.js\";\nimport * as Util from \"../Util/index.js\";\nimport * as Web_Event_Event from \"../Web.Event.Event/index.js\";\nimport * as Web_HTML from \"../Web.HTML/index.js\";\nimport * as Web_HTML_HTMLDocument from \"../Web.HTML.HTMLDocument/index.js\";\nimport * as Web_HTML_Location from \"../Web.HTML.Location/index.js\";\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showInt);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM);\nvar modifying = /* #__PURE__ */ Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM);\nvar modify_ = /* #__PURE__ */ Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM);\nvar bind = /* #__PURE__ */ Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM);\nvar use = /* #__PURE__ */ Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM);\nvar liftAff = /* #__PURE__ */ Effect_Aff_Class.liftAff(/* #__PURE__ */ Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff));\nvar assign = /* #__PURE__ */ Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM);\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(/* #__PURE__ */ Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff));\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Effect.bindEffect);\nvar whenM = /* #__PURE__ */ Control_Monad.whenM(Effect.monadEffect);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar foldMap = /* #__PURE__ */ Data_Array.foldMap(Data_Monoid.monoidArray);\nvar slot = /* #__PURE__ */ Halogen_HTML.slot()({\n reflectSymbol: function () {\n return \"markdown\";\n }\n})(Data_Ord.ordUnit);\nvar type_ = /* #__PURE__ */ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType);\nvar guard = /* #__PURE__ */ Data_Monoid.guard(Data_Monoid.monoidString);\nvar type_1 = /* #__PURE__ */ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType);\nvar value = /* #__PURE__ */ Halogen_HTML_Properties.value(Halogen_HTML_Core.isPropString);\nvar Etitle = /* #__PURE__ */ (function () {\n function Etitle(value0) {\n this.value0 = value0;\n };\n Etitle.create = function (value0) {\n return new Etitle(value0);\n };\n return Etitle;\n})();\nvar Etext = /* #__PURE__ */ (function () {\n function Etext(value0) {\n this.value0 = value0;\n };\n Etext.create = function (value0) {\n return new Etext(value0);\n };\n return Etext;\n})();\nvar EisMarkdown = /* #__PURE__ */ (function () {\n function EisMarkdown(value0) {\n this.value0 = value0;\n };\n EisMarkdown.create = function (value0) {\n return new EisMarkdown(value0);\n };\n return EisMarkdown;\n})();\nvar Eshared = /* #__PURE__ */ (function () {\n function Eshared(value0) {\n this.value0 = value0;\n };\n Eshared.create = function (value0) {\n return new Eshared(value0);\n };\n return Eshared;\n})();\nvar NNop = /* #__PURE__ */ (function () {\n function NNop() {\n\n };\n NNop.value = new NNop();\n return NNop;\n})();\nvar NEditField = /* #__PURE__ */ (function () {\n function NEditField(value0) {\n this.value0 = value0;\n };\n NEditField.create = function (value0) {\n return new NEditField(value0);\n };\n return NEditField;\n})();\nvar NEditSubmit = /* #__PURE__ */ (function () {\n function NEditSubmit(value0) {\n this.value0 = value0;\n };\n NEditSubmit.create = function (value0) {\n return new NEditSubmit(value0);\n };\n return NEditSubmit;\n})();\nvar NEdit = /* #__PURE__ */ (function () {\n function NEdit(value0) {\n this.value0 = value0;\n };\n NEdit.create = function (value0) {\n return new NEdit(value0);\n };\n return NEdit;\n})();\nvar NDeleteAsk = /* #__PURE__ */ (function () {\n function NDeleteAsk(value0) {\n this.value0 = value0;\n };\n NDeleteAsk.create = function (value0) {\n return new NDeleteAsk(value0);\n };\n return NDeleteAsk;\n})();\nvar NDestroy = /* #__PURE__ */ (function () {\n function NDestroy() {\n\n };\n NDestroy.value = new NDestroy();\n return NDestroy;\n})();\nvar _note = function (dictStrong) {\n return Data_Lens_Lens.lens(function (v) {\n return v.note;\n })(function (v) {\n return function (v1) {\n return {\n apiError: v.apiError,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n edit: v.edit,\n edit_note: v.edit_note,\n note: v1\n };\n };\n })(dictStrong);\n};\nvar _note1 = /* #__PURE__ */ _note(Data_Lens_Internal_Forget.strongForget);\nvar _note2 = /* #__PURE__ */ _note(Data_Profunctor_Strong.strongFn);\nvar _markdown = /* #__PURE__ */ (function () {\n return Type_Proxy[\"Proxy\"].value;\n})();\nvar _edit_note = function (dictStrong) {\n return Data_Lens_Lens.lens(function (v) {\n return v.edit_note;\n })(function (v) {\n return function (v1) {\n return {\n apiError: v.apiError,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n edit: v.edit,\n note: v.note,\n edit_note: v1\n };\n };\n })(dictStrong);\n};\nvar _edit_note1 = /* #__PURE__ */ _edit_note(Data_Profunctor_Strong.strongFn);\nvar _edit_note2 = /* #__PURE__ */ _edit_note(Data_Lens_Internal_Forget.strongForget);\nvar _edit = function (dictStrong) {\n return Data_Lens_Lens.lens(function (v) {\n return v.edit;\n })(function (v) {\n return function (v1) {\n return {\n apiError: v.apiError,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n edit_note: v.edit_note,\n note: v.note,\n edit: v1\n };\n };\n })(dictStrong);\n};\nvar _edit1 = /* #__PURE__ */ _edit(Data_Profunctor_Strong.strongFn);\nvar _apiError = function (dictStrong) {\n return Data_Lens_Lens.lens(function (v) {\n return v.apiError;\n })(function (v) {\n return function (v1) {\n return {\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n edit: v.edit,\n edit_note: v.edit_note,\n note: v.note,\n apiError: v1\n };\n };\n })(dictStrong);\n};\nvar _apiError1 = /* #__PURE__ */ _apiError(Data_Profunctor_Strong.strongFn);\nvar nnote = function (st$prime) {\n var notetextid = function (note) {\n return show(note.id) + \"_text\";\n };\n var mkState = function (note$prime) {\n return {\n note: note$prime,\n edit_note: note$prime,\n deleteAsk: false,\n edit: note$prime.id <= 0,\n destroyed: false,\n apiError: Data_Maybe.Nothing.value\n };\n };\n var app = Globals[\"app$prime\"](Data_Unit.unit);\n var handleAction = function (v) {\n if (v instanceof NNop) {\n return pure(Data_Unit.unit);\n };\n if (v instanceof NEditField) {\n return modifying(_edit_note1)((function () {\n if (v.value0 instanceof Etitle) {\n return function (v1) {\n return {\n id: v1.id,\n slug: v1.slug,\n text: v1.text,\n length: v1.length,\n isMarkdown: v1.isMarkdown,\n shared: v1.shared,\n created: v1.created,\n updated: v1.updated,\n title: v.value0.value0\n };\n };\n };\n if (v.value0 instanceof Etext) {\n return function (v1) {\n return {\n id: v1.id,\n slug: v1.slug,\n title: v1.title,\n length: v1.length,\n isMarkdown: v1.isMarkdown,\n shared: v1.shared,\n created: v1.created,\n updated: v1.updated,\n text: v.value0.value0\n };\n };\n };\n if (v.value0 instanceof EisMarkdown) {\n return function (v1) {\n return {\n id: v1.id,\n slug: v1.slug,\n title: v1.title,\n text: v1.text,\n length: v1.length,\n shared: v1.shared,\n created: v1.created,\n updated: v1.updated,\n isMarkdown: v.value0.value0\n };\n };\n };\n if (v.value0 instanceof Eshared) {\n return function (v1) {\n return {\n id: v1.id,\n slug: v1.slug,\n title: v1.title,\n text: v1.text,\n length: v1.length,\n isMarkdown: v1.isMarkdown,\n created: v1.created,\n updated: v1.updated,\n shared: v.value0.value0\n };\n };\n };\n throw new Error(\"Failed pattern match at Component.NNote (line 194, column 19 - line 198, column 36): \" + [ v.value0.constructor.name ]);\n })());\n };\n if (v instanceof NDeleteAsk) {\n return modify_(function (v1) {\n var $84 = {};\n for (var $85 in v1) {\n if ({}.hasOwnProperty.call(v1, $85)) {\n $84[$85] = v1[$85];\n };\n };\n $84.deleteAsk = v.value0;\n return $84;\n });\n };\n if (v instanceof NDestroy) {\n return bind(use(_note1))(function (note) {\n return discard($$void(liftAff(App.destroyNote(note.id))))(function () {\n return modify_(function (v1) {\n var $88 = {};\n for (var $89 in v1) {\n if ({}.hasOwnProperty.call(v1, $89)) {\n $88[$89] = v1[$89];\n };\n };\n $88.destroyed = true;\n return $88;\n });\n });\n });\n };\n if (v instanceof NEdit) {\n return bind(use(_note1))(function (note) {\n return discard(assign(_edit_note1)(note))(function () {\n return discard(assign(_edit1)(v.value0))(function () {\n return bind(liftEffect(Util[\"_curQuerystring\"]))(function (qs) {\n var $91 = {\n e: v.value0,\n q: Util[\"_lookupQueryStringValue\"](qs)(\"next\")\n };\n if (!$91.e && ($91.q instanceof Data_Maybe.Just && $91.q.value0 === \"closeWindow\")) {\n return liftEffect(bindFlipped(Globals.closeWindow)(Web_HTML.window));\n };\n return liftEffect(whenM(pure1(v.value0))(Globals.setFocus(notetextid(note))));\n });\n });\n });\n });\n };\n if (v instanceof NEditSubmit) {\n return discard(liftEffect(Web_Event_Event.preventDefault(v.value0)))(function () {\n return bind(use(_edit_note2))(function (edit_note) {\n return discard(assign(_apiError1)(Data_Maybe.Nothing.value))(function () {\n return bind(liftAff(App.editNote(edit_note)))(function (v1) {\n if (v1 instanceof Data_Either.Left) {\n return discard(assign(_apiError1)(new Data_Maybe.Just(Affjax.printError(v1.value0))))(function () {\n return liftEffect(Effect_Console.log(Affjax.printError(v1.value0)));\n });\n };\n if (v1 instanceof Data_Either.Right && (v1.value0.status >= 200 && v1.value0.status < 300)) {\n return bind(liftEffect(Util[\"_curQuerystring\"]))(function (qs) {\n return bind(liftEffect(Util[\"_doc\"]))(function (doc) {\n return bind(liftEffect(Web_HTML_HTMLDocument.referrer(doc)))(function (ref) {\n return bind(liftEffect(Util[\"_loc\"]))(function (loc) {\n return bind(liftEffect(Web_HTML_Location.origin(loc)))(function (org) {\n var v2 = Util[\"_lookupQueryStringValue\"](qs)(\"next\");\n if (v2 instanceof Data_Maybe.Just && v2.value0 === \"closeWindow\") {\n return liftEffect(bindFlipped(Globals.closeWindow)(Web_HTML.window));\n };\n if (v2 instanceof Data_Maybe.Just && v2.value0 === \"back\") {\n return liftEffect((function () {\n var $100 = Data_Maybe.isJust(Data_String_CodeUnits.stripPrefix(org)(ref));\n if ($100) {\n return Web_HTML_Location.setHref(ref)(loc);\n };\n return Web_HTML_Location.setHref(org)(loc);\n })());\n };\n var $102 = edit_note.id === 0;\n if ($102) {\n return liftEffect(bindFlipped(Web_HTML_Location.setHref(Util.fromNullableStr(app.noteR)))(Util[\"_loc\"]));\n };\n return discard(assign(_note2)(edit_note))(function () {\n return assign(_edit1)(false);\n });\n });\n });\n });\n });\n });\n };\n if (v1 instanceof Data_Either.Right) {\n return discard(assign(_apiError1)(new Data_Maybe.Just(v1.value0.body)))(function () {\n return liftEffect(Effect_Console.log(v1.value0.body));\n });\n };\n throw new Error(\"Failed pattern match at Component.NNote (line 226, column 40 - line 249, column 36): \" + [ v1.constructor.name ]);\n });\n });\n });\n });\n };\n throw new Error(\"Failed pattern match at Component.NNote (line 189, column 3 - line 189, column 77): \" + [ v.constructor.name ]);\n };\n var render = function (v) {\n var toTextarea = function (input) {\n return Data_Array.drop(1)(foldMap(function (x) {\n return [ Halogen_HTML_Elements.br_, Halogen_HTML_Core.text(x) ];\n })(Data_String_Common.split(\"\\x0a\")(input)));\n };\n var mmoment = function (n) {\n return Globals.mmoment8601(n.created);\n };\n var renderNote = function (v1) {\n return Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id(show(v.note.id)), Util.class_(\"note w-100 mw7 pa1 mb2\") ])([ Halogen_HTML_Elements.div([ Util.class_(\"display\") ])([ Halogen_HTML_Elements.div([ Util.class_(\"link f5 lh-title\") ])([ Halogen_HTML_Core.text((function () {\n var $108 = Data_String_Common[\"null\"](v.note.title);\n if ($108) {\n return \"[no title]\";\n };\n return v.note.title;\n })()) ]), Halogen_HTML_Elements.br_, (function () {\n if (v.note.isMarkdown) {\n return Halogen_HTML_Elements.div([ Util.class_(\"description mt1\") ])([ slot(_markdown)(Data_Unit.unit)(Component_Markdown.component)(v.note.text)(Data_Void.absurd) ]);\n };\n return Halogen_HTML_Elements.div([ Util.class_(\"description mt1 mid-gray\") ])(toTextarea(v.note.text));\n })(), Halogen_HTML_Elements.div([ Util.class_(\"link f7 dib gray w4\") ])([ Halogen_HTML_Elements.span([ Halogen_HTML_Properties.title(Data_Maybe.maybe(v.note.created)(Data_Tuple.snd)(mmoment(v.note))) ])([ Halogen_HTML_Core.text(Data_Maybe.maybe(\"\\xa0\")(Data_Tuple.fst)(mmoment(v.note))) ]), Halogen_HTML_Core.text(\" - \"), Halogen_HTML_Elements.span([ Util.class_(\"gray\") ])([ Halogen_HTML_Core.text((function () {\n if (v.note.shared) {\n return \"public\";\n };\n return \"private\";\n })()) ]) ]) ]), Util.whenH(app.dat.isowner)(function (v2) {\n return Halogen_HTML_Elements.div([ Util.class_(\"edit_links db mt3\") ])([ Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new NEdit(true);\n }), Util.class_(\"edit light-silver hover-blue\") ])([ Halogen_HTML_Core.text(\"edit\\xa0\\xa0\") ]), Halogen_HTML_Elements.div([ Util.class_(\"delete_link di\") ])([ Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new NDeleteAsk(true);\n }), Util.class_(\"delete light-silver hover-blue\" + guard(v.deleteAsk)(\" dn\")) ])([ Halogen_HTML_Core.text(\"delete\") ]), Halogen_HTML_Elements.span([ Util.class_(\"confirm red\" + guard(!v.deleteAsk)(\" dn\")) ])([ Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new NDeleteAsk(false);\n }) ])([ Halogen_HTML_Core.text(\"cancel\\xa0/\\xa0\") ]), Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return NDestroy.value;\n }), Util.class_(\"red\") ])([ Halogen_HTML_Core.text(\"destroy\") ]) ]) ]) ]);\n }) ]);\n };\n var editField = function (f) {\n return function ($114) {\n return NEditField.create(f($114));\n };\n };\n var display_destroyed = function (v1) {\n return Halogen_HTML_Elements.p([ Util.class_(\"red\") ])([ Halogen_HTML_Core.text(\"you killed this note\") ]);\n };\n var alert_notification = function (alert_text) {\n return function (v1) {\n return Halogen_HTML_Elements.div([ Util.class_(\"alert alert-err\") ])([ Halogen_HTML_Core.text(alert_text) ]);\n };\n };\n var renderNote_edit = function (v1) {\n return Halogen_HTML_Elements.form([ Halogen_HTML_Events.onSubmit(NEditSubmit.create) ])([ Util.whenH(Data_Maybe.isJust(v.apiError))(alert_notification(Data_Maybe.fromMaybe(\"\")(v.apiError))), Halogen_HTML_Elements.p([ Util.class_(\"mt2 mb1\") ])([ Halogen_HTML_Core.text(\"title:\") ]), Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputText.value), Util.class_(\"title w-100 mb1 pt1 edit_form_input\"), Halogen_HTML_Properties.name(\"title\"), value(v.edit_note.title), Halogen_HTML_Events.onValueChange(editField(Etitle.create)), Halogen_HTML_Properties.autofocus(Data_String_Common[\"null\"](v.edit_note.title)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.p([ Util.class_(\"mt2 mb1\") ])([ Halogen_HTML_Core.text(\"description:\") ]), Halogen_HTML_Elements.textarea([ Halogen_HTML_Properties.id(notetextid(v.edit_note)), Util.class_(\"description w-100 mb1 pt1 edit_form_input\"), Halogen_HTML_Properties.name(\"text\"), Halogen_HTML_Properties.rows(25), value(v.edit_note.text), Halogen_HTML_Events.onValueChange(editField(Etext.create)) ]), Halogen_HTML_Elements.div([ Util.class_(\"edit_form_checkboxes mb3\") ])([ Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputCheckbox.value), Util.class_(\"is-markdown pointer\"), Halogen_HTML_Properties.id(\"edit_ismarkdown\"), Halogen_HTML_Properties.name(\"ismarkdown\"), Halogen_HTML_Properties.checked(v.edit_note.isMarkdown), Halogen_HTML_Events.onChecked(editField(EisMarkdown.create)) ]), Halogen_HTML_Core.text(\" \"), Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"edit_ismarkdown\"), Util.class_(\"mr2\") ])([ Halogen_HTML_Core.text(\"use markdown?\") ]), Halogen_HTML_Elements.br_ ]), Halogen_HTML_Elements.div([ Util.class_(\"edit_form_checkboxes mb3\") ])([ Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputCheckbox.value), Util.class_(\"is-markdown pointer\"), Halogen_HTML_Properties.id(\"edit_shared\"), Halogen_HTML_Properties.name(\"shared\"), Halogen_HTML_Properties.checked(v.edit_note.shared), Halogen_HTML_Events.onChecked(editField(Eshared.create)) ]), Halogen_HTML_Core.text(\" \"), Halogen_HTML_Elements.label([ Halogen_HTML_Properties[\"for\"](\"edit_shared\"), Util.class_(\"mr2\") ])([ Halogen_HTML_Core.text(\"public?\") ]), Halogen_HTML_Elements.br_ ]), Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputSubmit.value), Util.class_(\"mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"), value(\"save\") ]), Halogen_HTML_Core.text(\" \"), Halogen_HTML_Elements.input([ type_1(DOM_HTML_Indexed_InputType.InputReset.value), Util.class_(\"pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"), value(\"cancel\"), Halogen_HTML_Events.onClick(function (v2) {\n return new NEdit(false);\n }) ]) ]);\n };\n return Util.ifElseH(v.destroyed)(display_destroyed)(Data_Function[\"const\"](Util.ifElseH(v.edit)(renderNote_edit)(renderNote)));\n };\n return Halogen_Component.mkComponent({\n initialState: Data_Function[\"const\"](mkState(st$prime)),\n render: render,\n \"eval\": Halogen_Component.mkEval({\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: Halogen_Component.defaultEval.receive,\n initialize: Halogen_Component.defaultEval.initialize,\n finalize: Halogen_Component.defaultEval.finalize,\n handleAction: handleAction\n })\n });\n};\nexport {\n NNop,\n NEditField,\n NEditSubmit,\n NEdit,\n NDeleteAsk,\n NDestroy,\n _note,\n _edit_note,\n _edit,\n _apiError,\n Etitle,\n Etext,\n EisMarkdown,\n Eshared,\n _markdown,\n nnote\n};\n", "// Generated by purs version 0.15.14\nimport * as App from \"../App/index.js\";\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Control_Monad_State_Class from \"../Control.Monad.State.Class/index.js\";\nimport * as DOM_HTML_Indexed_ButtonType from \"../DOM.HTML.Indexed.ButtonType/index.js\";\nimport * as Data_Array from \"../Data.Array/index.js\";\nimport * as Data_Eq from \"../Data.Eq/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Int from \"../Data.Int/index.js\";\nimport * as Data_Lens_Lens from \"../Data.Lens.Lens/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Monoid from \"../Data.Monoid/index.js\";\nimport * as Data_Number from \"../Data.Number/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Semigroup from \"../Data.Semigroup/index.js\";\nimport * as Data_Show from \"../Data.Show/index.js\";\nimport * as Data_String_Common from \"../Data.String.Common/index.js\";\nimport * as Data_Tuple from \"../Data.Tuple/index.js\";\nimport * as Data_Unfoldable from \"../Data.Unfoldable/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect_Aff_Class from \"../Effect.Aff.Class/index.js\";\nimport * as Foreign_Object from \"../Foreign.Object/index.js\";\nimport * as Globals from \"../Globals/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_HTML_Core from \"../Halogen.HTML.Core/index.js\";\nimport * as Halogen_HTML_Elements from \"../Halogen.HTML.Elements/index.js\";\nimport * as Halogen_HTML_Events from \"../Halogen.HTML.Events/index.js\";\nimport * as Halogen_HTML_Properties from \"../Halogen.HTML.Properties/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Model from \"../Model/index.js\";\nimport * as Util from \"../Util/index.js\";\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM);\nvar bind = /* #__PURE__ */ Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM);\nvar liftAff = /* #__PURE__ */ Effect_Aff_Class.liftAff(/* #__PURE__ */ Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff));\nvar modify_ = /* #__PURE__ */ Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM);\nvar gets = /* #__PURE__ */ Control_Monad_State_Class.gets(Halogen_Query_HalogenM.monadStateHalogenM);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM);\nvar eq = /* #__PURE__ */ Data_Eq.eq(Model.eqTagCloudModeF);\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar show = /* #__PURE__ */ Data_Show.show(Data_Show.showNumber);\nvar notElem = /* #__PURE__ */ Data_Array.notElem(Data_Eq.eqString);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Functor.functorArray);\nvar $$delete = /* #__PURE__ */ Data_Array[\"delete\"](Data_Eq.eqString);\nvar comparing = /* #__PURE__ */ Data_Ord.comparing(Data_Ord.ordString);\nvar toUnfoldable = /* #__PURE__ */ Foreign_Object.toUnfoldable(Data_Unfoldable.unfoldableArray);\nvar append1 = /* #__PURE__ */ Data_Semigroup.append(Data_Semigroup.semigroupArray);\nvar type_ = /* #__PURE__ */ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType);\nvar guard = /* #__PURE__ */ Data_Monoid.guard(Data_Monoid.monoidString);\nvar minimum = /* #__PURE__ */ Data_Foldable.minimum(Data_Ord.ordInt)(Data_Foldable.foldableArray);\nvar maximum = /* #__PURE__ */ Data_Foldable.maximum(Data_Ord.ordInt)(Data_Foldable.foldableArray);\nvar TInitialize = /* #__PURE__ */ (function () {\n function TInitialize() {\n\n };\n TInitialize.value = new TInitialize();\n return TInitialize;\n})();\nvar TExpanded = /* #__PURE__ */ (function () {\n function TExpanded(value0) {\n this.value0 = value0;\n };\n TExpanded.create = function (value0) {\n return new TExpanded(value0);\n };\n return TExpanded;\n})();\nvar TChangeMode = /* #__PURE__ */ (function () {\n function TChangeMode(value0) {\n this.value0 = value0;\n };\n TChangeMode.create = function (value0) {\n return new TChangeMode(value0);\n };\n return TChangeMode;\n})();\nvar tagcloudcomponent = function (m$prime) {\n var rescale = function (f) {\n return function (v) {\n return function (n) {\n return function (m) {\n return function (l) {\n return function (h) {\n return (function () {\n var $57 = m - n < 1.0e-2;\n if ($57) {\n return 1.0;\n };\n return f(v - n) / f(m - n);\n })() * (h - l) + l;\n };\n };\n };\n };\n };\n };\n var mkState = function (m) {\n return {\n mode: m,\n tagcloud: Foreign_Object.empty\n };\n };\n var fetchTagCloud = function (mode$prime) {\n if (mode$prime instanceof Model.TagCloudModeNone) {\n return pure(Data_Unit.unit);\n };\n return bind(liftAff(App.getTagCloud(Model.tagCloudModeFromF(mode$prime))))(function (tagcloud) {\n return modify_(function (s) {\n var $59 = {};\n for (var $60 in s) {\n if ({}.hasOwnProperty.call(s, $60)) {\n $59[$60] = s[$60];\n };\n };\n $59.mode = mode$prime;\n $59.tagcloud = Data_Maybe.fromMaybe(Foreign_Object.empty)(tagcloud);\n return $59;\n });\n });\n };\n var handleAction = function (v) {\n if (v instanceof TInitialize) {\n return bind(gets(function (v1) {\n return v1.mode;\n }))(function (mode) {\n return fetchTagCloud(mode);\n });\n };\n if (v instanceof TExpanded) {\n return discard(modify_(function (s) {\n var $63 = {};\n for (var $64 in s) {\n if ({}.hasOwnProperty.call(s, $64)) {\n $63[$64] = s[$64];\n };\n };\n $63.mode = Model.setExpanded(s.mode)(v.value0);\n return $63;\n }))(function () {\n return bind(gets(function (v1) {\n return v1.mode;\n }))(function (mode) {\n return $$void(liftAff(App.updateTagCloudMode(Model.tagCloudModeFromF(mode))));\n });\n });\n };\n if (v instanceof TChangeMode) {\n return bind(gets(function (v1) {\n return v1.mode;\n }))(function (mode) {\n var $67 = eq(mode)(v.value0);\n if ($67) {\n return handleAction(new TExpanded(!Model.isExpanded(mode)));\n };\n return fetchTagCloud(Model.setExpanded(v.value0)(true));\n });\n };\n throw new Error(\"Failed pattern match at Component.TagCloud (line 161, column 3 - line 161, column 69): \" + [ v.constructor.name ]);\n };\n var app = Globals[\"app$prime\"](Data_Unit.unit);\n var linkToFilterTag = function (rest) {\n return Util.fromNullableStr(app.userR) + (function () {\n var $69 = Data_String_Common[\"null\"](rest);\n if ($69) {\n return \"\";\n };\n return \"/t:\" + rest;\n })();\n };\n var toSizedTag = function (curtags) {\n return function (n) {\n return function (m) {\n return function (k) {\n return function (v) {\n var opacity = rescale(function ($79) {\n return Data_Number.log((function (v1) {\n return 1.0 + v1;\n })($79));\n })(Data_Int.toNumber(v))(Data_Int.toNumber(n))(Data_Int.toNumber(m))(0.6)(1.0);\n var k_lower = Data_String_Common.toLower(k);\n var fontsize = rescale(identity)(Data_Int.toNumber(v))(Data_Int.toNumber(n))(Data_Int.toNumber(m))(100.0)(150.0);\n var style = Halogen_HTML_Properties.attr(\"style\")(\"font-size:\" + (show(fontsize) + (\"%\" + (\";opacity:\" + show(opacity)))));\n return [ Halogen_HTML_Elements.a([ Halogen_HTML_Properties.href(linkToFilterTag(Util.encodeTag(k))), Util.class_(\"link tag mr1\"), style ])([ Halogen_HTML_Core.text(k) ]), Util.whenH(!Data_Array[\"null\"](curtags))(function (v1) {\n var $70 = notElem(k_lower)(curtags);\n if ($70) {\n return Halogen_HTML_Elements.a([ Halogen_HTML_Properties.href(linkToFilterTag(Data_String_Common.joinWith(\"+\")(map(Util.encodeTag)(Data_Array.cons(k_lower)(curtags))))), Util.class_(\"link mr2 tag-include\") ])([ Halogen_HTML_Core.text(\"\\u2295\") ]);\n };\n return Halogen_HTML_Elements.a([ Halogen_HTML_Properties.href(linkToFilterTag(Data_String_Common.joinWith(\"+\")(map(Util.encodeTag)($$delete(k_lower)(curtags))))), Util.class_(\"link mr2 tag-exclude\") ])([ Halogen_HTML_Core.text(\"\\u2296\") ]);\n }) ];\n };\n };\n };\n };\n };\n var toArray = function (curtags) {\n return function (n) {\n return function (m) {\n var $80 = map(Data_Tuple.uncurry(toSizedTag(map(Data_String_Common.toLower)(curtags))(n)(m)));\n var $81 = Data_Array.sortBy(comparing(function ($83) {\n return Data_String_Common.toLower(Data_Tuple.fst($83));\n }));\n return function ($82) {\n return Data_Array.concat($80($81(toUnfoldable($82))));\n };\n };\n };\n };\n var render = function (v) {\n if (v.mode instanceof Model.TagCloudModeNone) {\n return Halogen_HTML_Elements.div([ Util.class_(\"tag_cloud\") ])([ ]);\n };\n var modetop = new Model.TagCloudModeTop(Model.isExpanded(v.mode), 200);\n var modelb5 = new Model.TagCloudModeLowerBound(Model.isExpanded(v.mode), 5);\n var modelb20 = new Model.TagCloudModeLowerBound(Model.isExpanded(v.mode), 20);\n var modelb2 = new Model.TagCloudModeLowerBound(Model.isExpanded(v.mode), 2);\n var modelb10 = new Model.TagCloudModeLowerBound(Model.isExpanded(v.mode), 10);\n var modelb1 = new Model.TagCloudModeLowerBound(Model.isExpanded(v.mode), 1);\n return Halogen_HTML_Elements.div([ Util.class_(\"tag_cloud mv3\") ])([ Halogen_HTML_Elements.div([ Util.class_(\"tag_cloud_header mb2\") ])(append1(Util.ifElseA(Model.isRelated(v.mode))(function (v1) {\n return [ Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Util.class_(\"pa1 f7 link hover-blue mr1 b\"), Halogen_HTML_Events.onClick(function (v2) {\n return new TExpanded(!Model.isExpanded(v.mode));\n }) ])([ Halogen_HTML_Core.text(\"Related Tags\") ]) ];\n })(function (v1) {\n return [ Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Util.class_(\"pa1 f7 link hover-blue mr1\" + guard(eq(v.mode)(modetop))(\" b\")), Halogen_HTML_Properties.title(\"show a cloud of your most-used tags\"), Halogen_HTML_Events.onClick(function (v2) {\n return new TChangeMode(modetop);\n }) ])([ Halogen_HTML_Core.text(\"Top Tags\") ]), Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Util.class_(\"pa1 f7 link hover-blue ml2 \" + guard(eq(v.mode)(modelb1))(\" b\")), Halogen_HTML_Properties.title(\"show all tags\"), Halogen_HTML_Events.onClick(function (v2) {\n return new TChangeMode(modelb1);\n }) ])([ Halogen_HTML_Core.text(\"all\") ]), Halogen_HTML_Core.text(\"\\u2027\"), Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Util.class_(\"pa1 f7 link hover-blue\" + guard(eq(v.mode)(modelb2))(\" b\")), Halogen_HTML_Properties.title(\"show tags with at least 2 bookmarks\"), Halogen_HTML_Events.onClick(function (v2) {\n return new TChangeMode(modelb2);\n }) ])([ Halogen_HTML_Core.text(\"2\") ]), Halogen_HTML_Core.text(\"\\u2027\"), Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Util.class_(\"pa1 f7 link hover-blue\" + guard(eq(v.mode)(modelb5))(\" b\")), Halogen_HTML_Properties.title(\"show tags with at least 5 bookmarks\"), Halogen_HTML_Events.onClick(function (v2) {\n return new TChangeMode(modelb5);\n }) ])([ Halogen_HTML_Core.text(\"5\") ]), Halogen_HTML_Core.text(\"\\u2027\"), Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Util.class_(\"pa1 f7 link hover-blue\" + guard(eq(v.mode)(modelb10))(\" b\")), Halogen_HTML_Properties.title(\"show tags with at least 10 bookmarks\"), Halogen_HTML_Events.onClick(function (v2) {\n return new TChangeMode(modelb10);\n }) ])([ Halogen_HTML_Core.text(\"10\") ]), Halogen_HTML_Core.text(\"\\u2027\"), Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Util.class_(\"pa1 f7 link hover-blue\" + guard(eq(v.mode)(modelb20))(\" b\")), Halogen_HTML_Properties.title(\"show tags with at least 20 bookmarks\"), Halogen_HTML_Events.onClick(function (v2) {\n return new TChangeMode(modelb20);\n }) ])([ Halogen_HTML_Core.text(\"20\") ]) ];\n }))([ Halogen_HTML_Elements.button([ type_(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Util.class_(\"pa1 ml2 f7 link silver hover-blue \"), Halogen_HTML_Events.onClick(function (v1) {\n return new TExpanded(!Model.isExpanded(v.mode));\n }) ])([ Halogen_HTML_Core.text((function () {\n var $73 = Model.isExpanded(v.mode);\n if ($73) {\n return \"hide\";\n };\n return \"show\";\n })()) ]) ])), Util.whenH(Model.isExpanded(v.mode))(function (v1) {\n var n = Data_Maybe.fromMaybe(1)(minimum(Foreign_Object.values(v.tagcloud)));\n var m = Data_Maybe.fromMaybe(1)(maximum(Foreign_Object.values(v.tagcloud)));\n return Halogen_HTML_Elements.div([ Util.class_(\"tag_cloud_body\") ])((function () {\n if (v.mode instanceof Model.TagCloudModeNone) {\n return [ ];\n };\n if (v.mode instanceof Model.TagCloudModeRelated) {\n return toArray(v.mode.value1)(n)(m)(v.tagcloud);\n };\n return toArray([ ])(n)(m)(v.tagcloud);\n })());\n }) ]);\n };\n return Halogen_Component.mkComponent({\n initialState: Data_Function[\"const\"](mkState(m$prime)),\n render: render,\n \"eval\": Halogen_Component.mkEval({\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: Halogen_Component.defaultEval.receive,\n finalize: Halogen_Component.defaultEval.finalize,\n handleAction: handleAction,\n initialize: new Data_Maybe.Just(TInitialize.value)\n })\n });\n};\nvar _mode = function (dictStrong) {\n return Data_Lens_Lens.lens(function (v) {\n return v.mode;\n })(function (v) {\n return function (v1) {\n return {\n tagcloud: v.tagcloud,\n mode: v1\n };\n };\n })(dictStrong);\n};\nexport {\n TInitialize,\n TExpanded,\n TChangeMode,\n _mode,\n tagcloudcomponent\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Error_Class from \"../Control.Monad.Error.Class/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Web_DOM_ParentNode from \"../Web.DOM.ParentNode/index.js\";\nimport * as Web_Event_EventTarget from \"../Web.Event.EventTarget/index.js\";\nimport * as Web_HTML from \"../Web.HTML/index.js\";\nimport * as Web_HTML_Event_EventTypes from \"../Web.HTML.Event.EventTypes/index.js\";\nimport * as Web_HTML_HTMLDocument from \"../Web.HTML.HTMLDocument/index.js\";\nimport * as Web_HTML_HTMLDocument_ReadyState from \"../Web.HTML.HTMLDocument.ReadyState/index.js\";\nimport * as Web_HTML_HTMLElement from \"../Web.HTML.HTMLElement/index.js\";\nimport * as Web_HTML_Window from \"../Web.HTML.Window/index.js\";\nvar bind = /* #__PURE__ */ Control_Bind.bind(Effect_Aff.bindAff);\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Effect.bindEffect);\nvar composeKleisliFlipped = /* #__PURE__ */ Control_Bind.composeKleisliFlipped(Effect.bindEffect);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect_Aff.applicativeAff);\nvar bindFlipped1 = /* #__PURE__ */ Control_Bind.bindFlipped(Data_Maybe.bindMaybe);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar throwError = /* #__PURE__ */ Control_Monad_Error_Class.throwError(Effect_Aff.monadThrowAff);\nvar selectElement = function (query) {\n return bind(liftEffect(bindFlipped(composeKleisliFlipped((function () {\n var $16 = Web_DOM_ParentNode.querySelector(query);\n return function ($17) {\n return $16(Web_HTML_HTMLDocument.toParentNode($17));\n };\n })())(Web_HTML_Window.document))(Web_HTML.window)))(function (mel) {\n return pure(bindFlipped1(Web_HTML_HTMLElement.fromElement)(mel));\n });\n};\nvar runHalogenAff = /* #__PURE__ */ Effect_Aff.runAff_(/* #__PURE__ */ Data_Either.either(Effect_Exception.throwException)(/* #__PURE__ */ Data_Function[\"const\"](/* #__PURE__ */ pure1(Data_Unit.unit))));\nvar awaitLoad = /* #__PURE__ */ Effect_Aff.makeAff(function (callback) {\n return function __do() {\n var rs = bindFlipped(Web_HTML_HTMLDocument.readyState)(bindFlipped(Web_HTML_Window.document)(Web_HTML.window))();\n if (rs instanceof Web_HTML_HTMLDocument_ReadyState.Loading) {\n var et = map(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});\nvar awaitBody = /* #__PURE__ */ discard(Effect_Aff.bindAff)(awaitLoad)(function () {\n return bind(selectElement(\"body\"))(function (body) {\n return Data_Maybe.maybe(throwError(Effect_Exception.error(\"Could not find body\")))(pure)(body);\n });\n});\nexport {\n awaitLoad,\n awaitBody,\n selectElement,\n runHalogenAff\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Monad_Reader_Trans from \"../Control.Monad.Reader.Trans/index.js\";\nimport * as Control_Monad_Trans_Class from \"../Control.Monad.Trans.Class/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nvar lift = /* #__PURE__ */ Control_Monad_Trans_Class.lift(Control_Monad_Reader_Trans.monadTransReaderT);\nvar Completed = /* #__PURE__ */ (function () {\n function Completed(value0) {\n this.value0 = value0;\n };\n Completed.create = function (value0) {\n return new Completed(value0);\n };\n return Completed;\n})();\nvar Failed = /* #__PURE__ */ (function () {\n function Failed(value0) {\n this.value0 = value0;\n };\n Failed.create = function (value0) {\n return new Failed(value0);\n };\n return Failed;\n})();\nvar Killed = /* #__PURE__ */ (function () {\n function Killed(value0) {\n this.value0 = value0;\n };\n Killed.create = function (value0) {\n return new Killed(value0);\n };\n return Killed;\n})();\nvar uninterruptible = function (dict) {\n return dict.uninterruptible;\n};\nvar suspend = function (dict) {\n return dict.suspend;\n};\nvar never = function (dict) {\n return dict.never;\n};\nvar 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};\nvar monadKillAff = {\n kill: Effect_Aff.killFiber,\n MonadFork0: function () {\n return monadForkAff;\n },\n MonadThrow1: function () {\n return Effect_Aff.monadThrowAff;\n }\n};\nvar monadBracketAff = {\n bracket: function (acquire) {\n return function (release) {\n return function (run) {\n return Effect_Aff.generalBracket(acquire)({\n completed: function ($44) {\n return release(Completed.create($44));\n },\n failed: function ($45) {\n return release(Failed.create($45));\n },\n killed: function ($46) {\n return release(Killed.create($46));\n }\n })(run);\n };\n };\n },\n uninterruptible: Effect_Aff.invincible,\n never: Effect_Aff.never,\n MonadKill0: function () {\n return monadKillAff;\n },\n MonadError1: function () {\n return Effect_Aff.monadErrorAff;\n }\n};\nvar kill = function (dict) {\n return dict.kill;\n};\nvar join = function (dict) {\n return dict.join;\n};\nvar fork = function (dict) {\n return dict.fork;\n};\nvar monadForkReaderT = function (dictMonadFork) {\n var suspend1 = suspend(dictMonadFork);\n var fork1 = fork(dictMonadFork);\n var Monad0 = dictMonadFork.Monad0();\n var monadReaderT = Control_Monad_Reader_Trans.monadReaderT(Monad0);\n var Functor1 = dictMonadFork.Functor1();\n return {\n suspend: function (v) {\n return function ($47) {\n return suspend1(v($47));\n };\n },\n fork: function (v) {\n return function ($48) {\n return fork1(v($48));\n };\n },\n join: (function () {\n var $49 = lift(Monad0);\n var $50 = join(dictMonadFork);\n return function ($51) {\n return $49($50($51));\n };\n })(),\n Monad0: function () {\n return monadReaderT;\n },\n Functor1: function () {\n return Functor1;\n }\n };\n};\nvar monadKillReaderT = function (dictMonadKill) {\n var MonadThrow1 = dictMonadKill.MonadThrow1();\n var lift1 = lift(MonadThrow1.Monad0());\n var kill1 = kill(dictMonadKill);\n var monadForkReaderT1 = monadForkReaderT(dictMonadKill.MonadFork0());\n var monadThrowReaderT = Control_Monad_Reader_Trans.monadThrowReaderT(MonadThrow1);\n return {\n kill: function (e) {\n var $52 = kill1(e);\n return function ($53) {\n return lift1($52($53));\n };\n },\n MonadFork0: function () {\n return monadForkReaderT1;\n },\n MonadThrow1: function () {\n return monadThrowReaderT;\n }\n };\n};\nvar bracket = function (dict) {\n return dict.bracket;\n};\nvar monadBracketReaderT = function (dictMonadBracket) {\n var bracket1 = bracket(dictMonadBracket);\n var uninterruptible1 = uninterruptible(dictMonadBracket);\n var MonadError1 = dictMonadBracket.MonadError1();\n var monadKillReaderT1 = monadKillReaderT(dictMonadBracket.MonadKill0());\n var monadErrorReaderT = Control_Monad_Reader_Trans.monadErrorReaderT(MonadError1);\n return {\n bracket: function (v) {\n return function (release) {\n return function (run) {\n return function (r) {\n return bracket1(v(r))(function (c) {\n return function (a) {\n return Control_Monad_Reader_Trans.runReaderT(release(c)(a))(r);\n };\n })(function (a) {\n return Control_Monad_Reader_Trans.runReaderT(run(a))(r);\n });\n };\n };\n };\n },\n uninterruptible: function (k) {\n return function (r) {\n return uninterruptible1(Control_Monad_Reader_Trans.runReaderT(k)(r));\n };\n },\n never: lift((MonadError1.MonadThrow0()).Monad0())(never(dictMonadBracket)),\n MonadKill0: function () {\n return monadKillReaderT1;\n },\n MonadError1: function () {\n return monadErrorReaderT;\n }\n };\n};\nexport {\n bracket,\n fork,\n join,\n kill,\n never,\n suspend,\n uninterruptible,\n Completed,\n Failed,\n Killed,\n monadForkAff,\n monadForkReaderT,\n monadKillAff,\n monadKillReaderT,\n monadBracketAff,\n monadBracketReaderT\n};\n", "// Generated by purs version 0.15.14\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Halogen_Data_Slot from \"../Halogen.Data.Slot/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nvar DriverStateRef = function (x) {\n return x;\n};\nvar DriverState = function (x) {\n return x;\n};\nvar unRenderStateX = Unsafe_Coerce.unsafeCoerce;\nvar unDriverStateX = Unsafe_Coerce.unsafeCoerce;\nvar renderStateX_ = function (dictApplicative) {\n var traverse_ = Data_Foldable.traverse_(dictApplicative)(Data_Foldable.foldableMaybe);\n return function (f) {\n return unDriverStateX(function (st) {\n return traverse_(f)(st.rendering);\n });\n };\n};\nvar mkRenderStateX = Unsafe_Coerce.unsafeCoerce;\nvar renderStateX = function (dictFunctor) {\n return function (f) {\n return unDriverStateX(function (st) {\n return mkRenderStateX(f(st.rendering));\n });\n };\n};\nvar mkDriverStateXRef = Unsafe_Coerce.unsafeCoerce;\nvar mapDriverState = function (f) {\n return function (v) {\n return f(v);\n };\n};\nvar 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};\nexport {\n DriverState,\n mapDriverState,\n DriverStateRef,\n unDriverStateX,\n mkDriverStateXRef,\n renderStateX,\n renderStateX_,\n unRenderStateX,\n initDriverState\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Applicative_Free from \"../Control.Applicative.Free/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad from \"../Control.Monad/index.js\";\nimport * as Control_Monad_Fork_Class from \"../Control.Monad.Fork.Class/index.js\";\nimport * as Control_Monad_Free from \"../Control.Monad.Free/index.js\";\nimport * as Control_Parallel from \"../Control.Parallel/index.js\";\nimport * as Control_Parallel_Class from \"../Control.Parallel.Class/index.js\";\nimport * as Data_Boolean from \"../Data.Boolean/index.js\";\nimport * as Data_Coyoneda from \"../Data.Coyoneda/index.js\";\nimport * as Data_Either from \"../Data.Either/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Ord from \"../Data.Ord/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Halogen_Aff_Driver_State from \"../Halogen.Aff.Driver.State/index.js\";\nimport * as Halogen_Query_ChildQuery from \"../Halogen.Query.ChildQuery/index.js\";\nimport * as Halogen_Query_HalogenM from \"../Halogen.Query.HalogenM/index.js\";\nimport * as Halogen_Query_HalogenQ from \"../Halogen.Query.HalogenQ/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Halogen_Subscription from \"../Halogen.Subscription/index.js\";\nimport * as Unsafe_Reference from \"../Unsafe.Reference/index.js\";\nvar traverse_ = /* #__PURE__ */ Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Data_Maybe.bindMaybe);\nvar lookup = /* #__PURE__ */ Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordSubscriptionId);\nvar bind1 = /* #__PURE__ */ Control_Bind.bind(Effect_Aff.bindAff);\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar discard1 = /* #__PURE__ */ discard(Effect_Aff.bindAff);\nvar traverse_1 = /* #__PURE__ */ Data_Foldable.traverse_(Effect_Aff.applicativeAff);\nvar traverse_2 = /* #__PURE__ */ traverse_1(Data_List_Types.foldableList);\nvar fork = /* #__PURE__ */ Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff);\nvar parSequence_ = /* #__PURE__ */ Control_Parallel.parSequence_(Effect_Aff.parallelAff)(Effect_Aff.applicativeParAff)(Data_List_Types.foldableList);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect_Aff.applicativeAff);\nvar map = /* #__PURE__ */ Data_Functor.map(Data_Coyoneda.functorCoyoneda);\nvar parallel = /* #__PURE__ */ Control_Parallel_Class.parallel(Effect_Aff.parallelAff);\nvar map1 = /* #__PURE__ */ Data_Functor.map(Effect_Aff.functorAff);\nvar sequential = /* #__PURE__ */ Control_Parallel_Class.sequential(Effect_Aff.parallelAff);\nvar map2 = /* #__PURE__ */ Data_Functor.map(Data_Maybe.functorMaybe);\nvar insert = /* #__PURE__ */ Data_Map_Internal.insert(Halogen_Query_HalogenM.ordSubscriptionId);\nvar retractFreeAp = /* #__PURE__ */ Control_Applicative_Free.retractFreeAp(Effect_Aff.applicativeParAff);\nvar $$delete = /* #__PURE__ */ Data_Map_Internal[\"delete\"](Halogen_Query_HalogenM.ordForkId);\nvar unlessM = /* #__PURE__ */ Control_Monad.unlessM(Effect.monadEffect);\nvar insert1 = /* #__PURE__ */ Data_Map_Internal.insert(Halogen_Query_HalogenM.ordForkId);\nvar traverse_3 = /* #__PURE__ */ traverse_1(Data_Foldable.foldableMaybe);\nvar lookup1 = /* #__PURE__ */ Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordForkId);\nvar lookup2 = /* #__PURE__ */ Data_Map_Internal.lookup(Data_Ord.ordString);\nvar foldFree = /* #__PURE__ */ Control_Monad_Free.foldFree(Effect_Aff.monadRecAff);\nvar alter = /* #__PURE__ */ Data_Map_Internal.alter(Data_Ord.ordString);\nvar 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 traverse_(Halogen_Subscription.unsubscribe)(bindFlipped(lookup(sid))(subs))();\n };\n };\n};\nvar queueOrRun = function (ref) {\n return function (au) {\n return bind1(liftEffect(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 liftEffect(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 188, column 33 - line 190, column 57): \" + [ v.constructor.name ]);\n });\n };\n};\nvar handleLifecycle = function (lchs) {\n return function (f) {\n return discard1(liftEffect(Effect_Ref.write({\n initializers: Data_List_Types.Nil.value,\n finalizers: Data_List_Types.Nil.value\n })(lchs)))(function () {\n return bind1(liftEffect(f))(function (result) {\n return bind1(liftEffect(Effect_Ref.read(lchs)))(function (v) {\n return discard1(traverse_2(fork)(v.finalizers))(function () {\n return discard1(parSequence_(v.initializers))(function () {\n return pure(result);\n });\n });\n });\n });\n });\n };\n};\nvar handleAff = /* #__PURE__ */ Effect_Aff.runAff_(/* #__PURE__ */ Data_Either.either(Effect_Exception.throwException)(/* #__PURE__ */ Data_Function[\"const\"](/* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit))));\nvar fresh = function (f) {\n return function (ref) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v) {\n return liftEffect(Effect_Ref[\"modify$prime\"](function (i) {\n return {\n state: i + 1 | 0,\n value: f(i)\n };\n })(v.fresh));\n });\n };\n};\nvar evalQ = function (render) {\n return function (ref) {\n return function (q) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v) {\n return evalM(render)(ref)(v[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Query(map(Data_Maybe.Just.create)(Data_Coyoneda.liftCoyoneda(q)), Data_Function[\"const\"](Data_Maybe.Nothing.value))));\n });\n };\n };\n};\nvar evalM = function (render) {\n return function (initRef) {\n return function (v) {\n var evalChildQuery = function (ref) {\n return function (cqb) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v1) {\n return Halogen_Query_ChildQuery.unChildQueryBox(function (v2) {\n var evalChild = function (v3) {\n return parallel(bind1(liftEffect(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 map1(v2.value2)(sequential(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 bind1(liftEffect(Effect_Ref.read(ref)))(function (v2) {\n var v3 = v1.value0(v2.state);\n if (Unsafe_Reference.unsafeRefEq(v2.state)(v3.value1)) {\n return pure(v3.value0);\n };\n if (Data_Boolean.otherwise) {\n return discard1(liftEffect(Effect_Ref.write({\n component: v2.component,\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 state: v3.value1\n })(ref)))(function () {\n return discard1(handleLifecycle(v2.lifecycleHandlers)(render(v2.lifecycleHandlers)(ref)))(function () {\n return pure(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 bind1(fresh(Halogen_Query_HalogenM.SubscriptionId)(ref))(function (sid) {\n return bind1(liftEffect(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 bind1(liftEffect(Effect_Ref.read(ref)))(function (v2) {\n return discard1(liftEffect(Effect_Ref.modify_(map2(insert(sid)(finalize)))(v2.subscriptions)))(function () {\n return pure(v1.value1(sid));\n });\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Unsubscribe) {\n return discard1(liftEffect(unsubscribe(v1.value0)(ref)))(function () {\n return pure(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 bind1(liftEffect(Effect_Ref.read(ref)))(function (v2) {\n return bind1(liftEffect(Effect_Ref.read(v2.handlerRef)))(function (handler) {\n return discard1(queueOrRun(v2.pendingOuts)(handler(v1.value0)))(function () {\n return pure(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Par) {\n return sequential(retractFreeAp(Control_Applicative_Free.hoistFreeAp((function () {\n var $119 = evalM(render)(ref);\n return function ($120) {\n return parallel($119($120));\n };\n })())(v1.value0)));\n };\n if (v1 instanceof Halogen_Query_HalogenM.Fork) {\n return bind1(fresh(Halogen_Query_HalogenM.ForkId)(ref))(function (fid) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v2) {\n return bind1(liftEffect(Effect_Ref[\"new\"](false)))(function (doneRef) {\n return bind1(fork(Effect_Aff[\"finally\"](liftEffect(function __do() {\n Effect_Ref.modify_($$delete(fid))(v2.forks)();\n return Effect_Ref.write(true)(doneRef)();\n }))(evalM(render)(ref)(v1.value0))))(function (fiber) {\n return discard1(liftEffect(unlessM(Effect_Ref.read(doneRef))(Effect_Ref.modify_(insert1(fid)(fiber))(v2.forks))))(function () {\n return pure(v1.value1(fid));\n });\n });\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Join) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v2) {\n return bind1(liftEffect(Effect_Ref.read(v2.forks)))(function (forkMap) {\n return discard1(traverse_3(Effect_Aff.joinFiber)(lookup1(v1.value0)(forkMap)))(function () {\n return pure(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Kill) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v2) {\n return bind1(liftEffect(Effect_Ref.read(v2.forks)))(function (forkMap) {\n return discard1(traverse_3(Effect_Aff.killFiber(Effect_Exception.error(\"Cancelled\")))(lookup1(v1.value0)(forkMap)))(function () {\n return pure(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.GetRef) {\n return bind1(liftEffect(Effect_Ref.read(ref)))(function (v2) {\n return pure(v1.value1(lookup2(v1.value0)(v2.refs)));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 83, column 12 - line 139, column 33): \" + [ v1.constructor.name ]);\n };\n };\n return foldFree(go(initRef))(v);\n };\n };\n};\nvar evalF = function (render) {\n return function (ref) {\n return function (v) {\n if (v instanceof Halogen_Query_Input.RefUpdate) {\n return liftEffect(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 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 refs: alter(Data_Function[\"const\"](v.value1))(v.value0)(st.refs)\n };\n })));\n };\n if (v instanceof Halogen_Query_Input.Action) {\n return bind1(liftEffect(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};\nexport {\n evalF,\n evalQ,\n evalM,\n handleLifecycle,\n queueOrRun,\n handleAff\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Monad_Fork_Class from \"../Control.Monad.Fork.Class/index.js\";\nimport * as Control_Monad_Rec_Class from \"../Control.Monad.Rec.Class/index.js\";\nimport * as Control_Parallel from \"../Control.Parallel/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Function from \"../Data.Function/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_List from \"../Data.List/index.js\";\nimport * as Data_List_Types from \"../Data.List.Types/index.js\";\nimport * as Data_Map_Internal from \"../Data.Map.Internal/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Console from \"../Effect.Console/index.js\";\nimport * as Effect_Exception from \"../Effect.Exception/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Halogen from \"../Halogen/index.js\";\nimport * as Halogen_Aff_Driver_Eval from \"../Halogen.Aff.Driver.Eval/index.js\";\nimport * as Halogen_Aff_Driver_State from \"../Halogen.Aff.Driver.State/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_Data_Slot from \"../Halogen.Data.Slot/index.js\";\nimport * as Halogen_Query_HalogenQ from \"../Halogen.Query.HalogenQ/index.js\";\nimport * as Halogen_Query_Input from \"../Halogen.Query.Input/index.js\";\nimport * as Halogen_Subscription from \"../Halogen.Subscription/index.js\";\nvar bind = /* #__PURE__ */ Control_Bind.bind(Effect.bindEffect);\nvar discard = /* #__PURE__ */ Control_Bind.discard(Control_Bind.discardUnit);\nvar for_ = /* #__PURE__ */ Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe);\nvar traverse_ = /* #__PURE__ */ Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList);\nvar fork = /* #__PURE__ */ Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Effect.bindEffect);\nvar traverse_1 = /* #__PURE__ */ Data_Foldable.traverse_(Effect.applicativeEffect);\nvar traverse_2 = /* #__PURE__ */ traverse_1(Data_Foldable.foldableMaybe);\nvar traverse_3 = /* #__PURE__ */ traverse_1(Data_Map_Internal.foldableMap);\nvar discard2 = /* #__PURE__ */ discard(Effect_Aff.bindAff);\nvar parSequence_ = /* #__PURE__ */ Control_Parallel.parSequence_(Effect_Aff.parallelAff)(Effect_Aff.applicativeParAff)(Data_List_Types.foldableList);\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar pure1 = /* #__PURE__ */ Control_Applicative.pure(Effect_Aff.applicativeAff);\nvar when = /* #__PURE__ */ Control_Applicative.when(Effect.applicativeEffect);\nvar renderStateX = /* #__PURE__ */ Halogen_Aff_Driver_State.renderStateX(Effect.functorEffect);\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Effect_Aff.functorAff);\nvar foreachSlot = /* #__PURE__ */ Halogen_Data_Slot.foreachSlot(Effect.applicativeEffect);\nvar renderStateX_ = /* #__PURE__ */ Halogen_Aff_Driver_State.renderStateX_(Effect.applicativeEffect);\nvar tailRecM = /* #__PURE__ */ Control_Monad_Rec_Class.tailRecM(Control_Monad_Rec_Class.monadRecEffect);\nvar voidLeft = /* #__PURE__ */ Data_Functor.voidLeft(Effect.functorEffect);\nvar bind1 = /* #__PURE__ */ Control_Bind.bind(Effect_Aff.bindAff);\nvar liftEffect1 = /* #__PURE__ */ Effect_Class.liftEffect(Effect_Class.monadEffectEffect);\nvar newLifecycleHandlers = /* #__PURE__ */ (function () {\n return Effect_Ref[\"new\"]({\n initializers: Data_List_Types.Nil.value,\n finalizers: Data_List_Types.Nil.value\n });\n})();\nvar 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 for_(queue)((function () {\n var $59 = traverse_(fork);\n return function ($60) {\n return Halogen_Aff_Driver_Eval.handleAff($59(Data_List.reverse($60)));\n };\n })())();\n };\n};\nvar cleanupSubscriptionsAndForks = function (v) {\n return function __do() {\n bindFlipped(traverse_2(traverse_3(Halogen_Subscription.unsubscribe)))(Effect_Ref.read(v.subscriptions))();\n Effect_Ref.write(Data_Maybe.Nothing.value)(v.subscriptions)();\n bindFlipped(traverse_3((function () {\n var $61 = Effect_Aff.killFiber(Effect_Exception.error(\"finalized\"));\n return function ($62) {\n return Halogen_Aff_Driver_Eval.handleAff($61($62));\n };\n })()))(Effect_Ref.read(v.forks))();\n return Effect_Ref.write(Data_Map_Internal.empty)(v.forks)();\n };\n};\nvar 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(discard2(parSequence_(Data_List.reverse(handlers.initializers)))(function () {\n return discard2(parentInitializer)(function () {\n return liftEffect(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 bindFlipped(Halogen_Aff_Driver_State.unDriverStateX((function () {\n var $63 = render(lchs);\n return function ($64) {\n return $63((function (v) {\n return v.selfRef;\n })($64));\n };\n })()))(Effect_Ref.read($$var))();\n bindFlipped(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 = map(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 $65 = Data_Maybe.maybe(pure1(Data_Unit.unit))(handler);\n return function ($66) {\n return $65(slot.output($66));\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 $67 = Data_Maybe.maybe(pure1(Data_Unit.unit))(handler);\n return function ($68) {\n return $67(slot.output($68));\n };\n })())(slot.input)(slot.component)();\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver (line 213, column 14 - line 222, column 98): \" + [ childrenIn.constructor.name ]);\n })();\n var isDuplicate = map(function ($69) {\n return Data_Maybe.isJust(slot.get($69));\n })(Effect_Ref.read(childrenOutRef))();\n when(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 bind(Effect_Ref.read($$var))(renderStateX(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 pure(renderSpec.renderChild(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver (line 227, column 37 - line 229, 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 = map(Data_Maybe.isNothing)(Effect_Ref.read(v.pendingHandlers))();\n when(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 handler = (function () {\n var $70 = Halogen_Aff_Driver_Eval.queueOrRun(v.pendingHandlers);\n var $71 = Halogen_Aff_Driver_Eval.evalF(render)(v.selfRef);\n return function ($72) {\n return $70($$void($71($72)));\n };\n })();\n var childHandler = (function () {\n var $73 = Halogen_Aff_Driver_Eval.queueOrRun(v.pendingQueries);\n return function ($74) {\n return $73(handler(Halogen_Query_Input.Action.create($74)));\n };\n })();\n var rendering = renderSpec.render(function ($75) {\n return Halogen_Aff_Driver_Eval.handleAff(handler($75));\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 foreachSlot(childrenIn)(function (v1) {\n return function __do() {\n var childDS = Effect_Ref.read(v1)();\n renderStateX_(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 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 fresh: ds$prime.fresh,\n subscriptions: ds$prime.subscriptions,\n forks: ds$prime.forks,\n lifecycleHandlers: ds$prime.lifecycleHandlers,\n rendering: new Data_Maybe.Just(rendering),\n children: children\n };\n }))();\n return when(shouldProcessHandlers)(Data_Function.flip(tailRecM)(Data_Unit.unit)(function (v1) {\n return function __do() {\n var handlers = Effect_Ref.read(v.pendingHandlers)();\n Effect_Ref.write(new Data_Maybe.Just(Data_List_Types.Nil.value))(v.pendingHandlers)();\n traverse_2((function () {\n var $76 = traverse_(fork);\n return function ($77) {\n return Halogen_Aff_Driver_Eval.handleAff($76(Data_List.reverse($77)));\n };\n })())(handlers)();\n var mmore = Effect_Ref.read(v.pendingHandlers)();\n var $52 = Data_Maybe.maybe(false)(Data_List[\"null\"])(mmore);\n if ($52) {\n return voidLeft(Effect_Ref.write(Data_Maybe.Nothing.value)(v.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 foreachSlot(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 bind1(liftEffect(Effect_Ref.read(disposed)))(function (v) {\n if (v) {\n return pure1(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 = liftEffect1(Effect_Ref.read(v1.selfRef))();\n return for_(v2.rendering)(renderSpec.dispose)();\n };\n })(dsx)();\n });\n };\n };\n };\n return bind1(liftEffect(newLifecycleHandlers))(function (lchs) {\n return bind1(liftEffect(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 = bindFlipped(Effect_Ref.read)(runComponent(lchs)((function () {\n var $78 = Halogen_Subscription.notify(sio.listener);\n return function ($79) {\n return liftEffect($78($79));\n };\n })())(i)(component))();\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return pure({\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};\nexport {\n runUI\n};\n", "var getEffProp = function (name) {\n return function (node) {\n return function () {\n return node[name];\n };\n };\n};\n\nexport function nodeTypeIndex(node) {\n return node.nodeType;\n}\n\nexport function nodeName(node) {\n return node.nodeName;\n}\n\nexport const baseURI = getEffProp(\"baseURI\");\nexport const _ownerDocument = getEffProp(\"ownerDocument\");\nexport const _parentNode = getEffProp(\"parentNode\");\nexport const _parentElement = getEffProp(\"parentElement\");\n\nexport function hasChildNodes(node) {\n return function () {\n return node.hasChildNodes();\n };\n}\n\nexport const childNodes = getEffProp(\"childNodes\");\nexport const _firstChild = getEffProp(\"firstChild\");\nexport const _lastChild = getEffProp(\"lastChild\");\nexport const _previousSibling = getEffProp(\"previousSibling\");\nexport const _nextSibling = getEffProp(\"nextSibling\");\nexport const _nodeValue = getEffProp(\"nodeValue\");\n\nexport function setNodeValue(value) {\n return function (node) {\n return function () {\n node.nodeValue = value;\n };\n };\n}\n\nexport const textContent = getEffProp(\"textContent\");\n\nexport function setTextContent(value) {\n return function (node) {\n return function () {\n node.textContent = value;\n };\n };\n}\n\nexport function normalize(node) {\n return function () {\n node.normalize();\n };\n}\n\nexport function clone(node) {\n return function () {\n return node.cloneNode(false);\n };\n}\n\nexport function deepClone(node) {\n return function () {\n return node.cloneNode(true);\n };\n}\n\nexport function isEqualNode(node1) {\n return function (node2) {\n return function () {\n return node1.isEqualNode(node2);\n };\n };\n}\n\nexport function compareDocumentPositionBits(node1) {\n return function (node2) {\n return function () {\n return node1.compareDocumentPosition(node2);\n };\n };\n}\n\nexport function contains(node1) {\n return function (node2) {\n return function () {\n return node1.contains(node2);\n };\n };\n}\n\nexport function _lookupPrefix(prefix) {\n return function (node) {\n return function () {\n return node.lookupPrefix(prefix);\n };\n };\n}\n\nexport function _lookupNamespaceURI(ns) {\n return function (node) {\n return function () {\n return node.lookupNamespaceURI(ns);\n };\n };\n}\n\nexport function isDefaultNamespace(ns) {\n return function (node) {\n return function () {\n return node.isDefaultNamespace(ns);\n };\n };\n}\n\nexport function insertBefore(node1) {\n return function (node2) {\n return function (parent) {\n return function () {\n parent.insertBefore(node1, node2);\n };\n };\n };\n}\n\nexport function appendChild(node) {\n return function (parent) {\n return function () {\n parent.appendChild(node);\n };\n };\n}\n\nexport function replaceChild(newChild) {\n return function (oldChild) {\n return function (parent) {\n return function () {\n parent.replaceChild(newChild, oldChild);\n };\n };\n };\n}\n\nexport function removeChild(node) {\n return function (parent) {\n return function () {\n parent.removeChild(node);\n };\n };\n}\n", "// Generated by purs version 0.15.14\nimport * as $foreign from \"./foreign.js\";\nimport * as Data_Enum from \"../Data.Enum/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Nullable from \"../Data.Nullable/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Unsafe_Coerce from \"../Unsafe.Coerce/index.js\";\nimport * as Web_DOM_Internal_Types from \"../Web.DOM.Internal.Types/index.js\";\nimport * as Web_DOM_NodeType from \"../Web.DOM.NodeType/index.js\";\nimport * as Web_Internal_FFI from \"../Web.Internal.FFI/index.js\";\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar fromJust = /* #__PURE__ */ Data_Maybe.fromJust();\nvar toEnum = /* #__PURE__ */ Data_Enum.toEnum(Web_DOM_NodeType.boundedEnumNodeType);\nvar toEventTarget = Unsafe_Coerce.unsafeCoerce;\nvar previousSibling = /* #__PURE__ */ (function () {\n var $4 = map(Data_Nullable.toMaybe);\n return function ($5) {\n return $4($foreign[\"_previousSibling\"]($5));\n };\n})();\nvar parentNode = /* #__PURE__ */ (function () {\n var $6 = map(Data_Nullable.toMaybe);\n return function ($7) {\n return $6($foreign[\"_parentNode\"]($7));\n };\n})();\nvar parentElement = /* #__PURE__ */ (function () {\n var $8 = map(Data_Nullable.toMaybe);\n return function ($9) {\n return $8($foreign[\"_parentElement\"]($9));\n };\n})();\nvar ownerDocument = /* #__PURE__ */ (function () {\n var $10 = map(Data_Nullable.toMaybe);\n return function ($11) {\n return $10($foreign[\"_ownerDocument\"]($11));\n };\n})();\nvar nodeValue = /* #__PURE__ */ (function () {\n var $12 = map(Data_Nullable.toMaybe);\n return function ($13) {\n return $12($foreign[\"_nodeValue\"]($13));\n };\n})();\nvar nodeType = function () {\n return function ($14) {\n return fromJust(toEnum($foreign.nodeTypeIndex($14)));\n };\n};\nvar nextSibling = /* #__PURE__ */ (function () {\n var $15 = map(Data_Nullable.toMaybe);\n return function ($16) {\n return $15($foreign[\"_nextSibling\"]($16));\n };\n})();\nvar lookupPrefix = function (p) {\n var $17 = map(Data_Nullable.toMaybe);\n var $18 = $foreign[\"_lookupPrefix\"](p);\n return function ($19) {\n return $17($18($19));\n };\n};\nvar lookupNamespaceURI = function (ns) {\n var $20 = map(Data_Nullable.toMaybe);\n var $21 = $foreign[\"_lookupNamespaceURI\"](ns);\n return function ($22) {\n return $20($21($22));\n };\n};\nvar lastChild = /* #__PURE__ */ (function () {\n var $23 = map(Data_Nullable.toMaybe);\n return function ($24) {\n return $23($foreign[\"_lastChild\"]($24));\n };\n})();\nvar fromEventTarget = /* #__PURE__ */ Web_Internal_FFI.unsafeReadProtoTagged(\"Node\");\nvar firstChild = /* #__PURE__ */ (function () {\n var $25 = map(Data_Nullable.toMaybe);\n return function ($26) {\n return $25($foreign[\"_firstChild\"]($26));\n };\n})();\nexport {\n nodeTypeIndex,\n nodeName,\n baseURI,\n hasChildNodes,\n childNodes,\n setNodeValue,\n textContent,\n setTextContent,\n normalize,\n clone,\n deepClone,\n isEqualNode,\n compareDocumentPositionBits,\n contains,\n isDefaultNamespace,\n insertBefore,\n appendChild,\n replaceChild,\n removeChild\n} from \"./foreign.js\";\nexport {\n fromEventTarget,\n toEventTarget,\n nodeType,\n ownerDocument,\n parentNode,\n parentElement,\n firstChild,\n lastChild,\n previousSibling,\n nextSibling,\n nodeValue,\n lookupPrefix,\n lookupNamespaceURI\n};\n", "// Generated by purs version 0.15.14\nimport * as Control_Applicative from \"../Control.Applicative/index.js\";\nimport * as Control_Bind from \"../Control.Bind/index.js\";\nimport * as Control_Category from \"../Control.Category/index.js\";\nimport * as Data_Foldable from \"../Data.Foldable/index.js\";\nimport * as Data_Functor from \"../Data.Functor/index.js\";\nimport * as Data_HeytingAlgebra from \"../Data.HeytingAlgebra/index.js\";\nimport * as Data_Maybe from \"../Data.Maybe/index.js\";\nimport * as Data_Newtype from \"../Data.Newtype/index.js\";\nimport * as Data_Unit from \"../Data.Unit/index.js\";\nimport * as Effect from \"../Effect/index.js\";\nimport * as Effect_Aff from \"../Effect.Aff/index.js\";\nimport * as Effect_Class from \"../Effect.Class/index.js\";\nimport * as Effect_Ref from \"../Effect.Ref/index.js\";\nimport * as Halogen_Aff_Driver from \"../Halogen.Aff.Driver/index.js\";\nimport * as Halogen_Aff_Driver_State from \"../Halogen.Aff.Driver.State/index.js\";\nimport * as Halogen_Component from \"../Halogen.Component/index.js\";\nimport * as Halogen_VDom_DOM from \"../Halogen.VDom.DOM/index.js\";\nimport * as Halogen_VDom_DOM_Prop from \"../Halogen.VDom.DOM.Prop/index.js\";\nimport * as Halogen_VDom_Machine from \"../Halogen.VDom.Machine/index.js\";\nimport * as Halogen_VDom_Thunk from \"../Halogen.VDom.Thunk/index.js\";\nimport * as Unsafe_Reference from \"../Unsafe.Reference/index.js\";\nimport * as Web_DOM_Node from \"../Web.DOM.Node/index.js\";\nimport * as Web_HTML from \"../Web.HTML/index.js\";\nimport * as Web_HTML_HTMLDocument from \"../Web.HTML.HTMLDocument/index.js\";\nimport * as Web_HTML_HTMLElement from \"../Web.HTML.HTMLElement/index.js\";\nimport * as Web_HTML_Window from \"../Web.HTML.Window/index.js\";\nvar $runtime_lazy = function (name, moduleName, init) {\n var state = 0;\n var val;\n return function (lineNumber) {\n if (state === 2) return val;\n if (state === 1) throw new ReferenceError(name + \" was needed before it finished initializing (module \" + moduleName + \", line \" + lineNumber + \")\", moduleName, lineNumber);\n state = 1;\n val = init();\n state = 2;\n return val;\n };\n};\nvar $$void = /* #__PURE__ */ Data_Functor[\"void\"](Effect.functorEffect);\nvar pure = /* #__PURE__ */ Control_Applicative.pure(Effect.applicativeEffect);\nvar traverse_ = /* #__PURE__ */ Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe);\nvar unwrap = /* #__PURE__ */ Data_Newtype.unwrap();\nvar when = /* #__PURE__ */ Control_Applicative.when(Effect.applicativeEffect);\nvar not = /* #__PURE__ */ Data_HeytingAlgebra.not(/* #__PURE__ */ Data_HeytingAlgebra.heytingAlgebraFunction(/* #__PURE__ */ Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraBoolean)));\nvar identity = /* #__PURE__ */ Control_Category.identity(Control_Category.categoryFn);\nvar bind1 = /* #__PURE__ */ Control_Bind.bind(Effect_Aff.bindAff);\nvar liftEffect = /* #__PURE__ */ Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\nvar map = /* #__PURE__ */ Data_Functor.map(Effect.functorEffect);\nvar bindFlipped = /* #__PURE__ */ Control_Bind.bindFlipped(Effect.bindEffect);\nvar RenderState = function (x) {\n return x;\n};\nvar 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 $$void(Web_DOM_Node.insertBefore(v)(v1.value0)(v2.value0));\n };\n if (v1 instanceof Data_Maybe.Nothing && v2 instanceof Data_Maybe.Just) {\n return $$void(Web_DOM_Node.appendChild(v)(v2.value0));\n };\n return pure(Data_Unit.unit);\n };\n };\n};\nvar removeChild = function (v) {\n return function __do() {\n var npn = Web_DOM_Node.parentNode(v.node)();\n return traverse_(function (pn) {\n return Web_DOM_Node.removeChild(v.node)(pn);\n })(npn)();\n };\n};\nvar 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(unwrap)(spec);\n var $lazy_patch = $runtime_lazy(\"patch\", \"Halogen.VDom.Driver\", function () {\n return 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 $lazy_renderComponentSlot(100)(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), $lazy_patch(103), done));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 97, column 22 - line 103, column 79): \" + [ slot.constructor.name ]);\n };\n return $lazy_render(104)(slot);\n };\n });\n var $lazy_render = $runtime_lazy(\"render\", \"Halogen.VDom.Driver\", function () {\n return function (slot) {\n if (slot instanceof Halogen_Component.ComponentSlot) {\n return $lazy_renderComponentSlot(86)(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), $lazy_patch(89), done));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 84, column 7 - line 89, column 75): \" + [ slot.constructor.name ]);\n };\n });\n var $lazy_renderComponentSlot = $runtime_lazy(\"renderComponentSlot\", \"Halogen.VDom.Driver\", function () {\n return 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, $lazy_patch(117), done));\n };\n });\n var patch = $lazy_patch(91);\n var render = $lazy_render(82);\n var renderComponentSlot = $lazy_renderComponentSlot(109);\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};\nvar 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 $$void(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 when(not(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 157, column 5 - line 173, column 80): \" + [ v1.constructor.name ]);\n };\n };\n };\n };\n return {\n render: render,\n renderChild: identity,\n removeChild: removeChild,\n dispose: removeChild\n };\n };\n};\nvar runUI = function (component) {\n return function (i) {\n return function (element) {\n return bind1(liftEffect(map(Web_HTML_HTMLDocument.toDocument)(bindFlipped(Web_HTML_Window.document)(Web_HTML.window))))(function (document) {\n return Halogen_Aff_Driver.runUI(renderSpec(document)(element))(component)(i);\n });\n };\n };\n};\nexport {\n runUI\n};\n"], "mappings": "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AO,IAAI,EAE7B,OAAW,CAAC0D,GAAUC,CAAK,IAAKnE,EAAQgE,EAAM,EACxC5D,EAAyB4D,GAAQE,EAAQ,IAAMT,SAC7CtC,MAAMiD,QAAQD,CAAK,EACrBF,EAAUC,EAAQ,EAAIL,GAAWM,CAAK,EAEtCA,GACA,OAAOA,GAAU,UACjBA,EAAME,cAAgBhE,OAEtB4D,EAAUC,EAAQ,EAAIH,GAAMI,CAAK,EAEjCF,EAAUC,EAAQ,EAAIC,GAK5B,OAAOF,CACT,CASA,SAASK,GAAaN,GAAQO,EAAM,CAClC,KAAOP,KAAW,MAAM,CACtB,IAAMQ,EAAOpE,EAAyB4D,GAAQO,CAAI,EAElD,GAAIC,EAAM,CACR,GAAIA,EAAKC,IACP,OAAOvD,EAAQsD,EAAKC,GAAG,EAGzB,GAAI,OAAOD,EAAKL,OAAU,WACxB,OAAOjD,EAAQsD,EAAKL,KAAK,CAE7B,CAEAH,GAAS7D,EAAe6D,EAAM,CAChC,CAEA,SAASU,GAAcf,EAAS,CAC9BgB,eAAQC,KAAK,qBAAsBjB,CAAO,EACnC,IACT,CAEA,OAAOe,EACT,CCrLO,IAAMG,GAAOvE,EAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,UACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,KAAK,CACN,EAGYwE,GAAMxE,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,OAAO,CACR,EAEYyE,GAAazE,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,cAAc,CACf,EAMY0E,GAAgB1E,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,KAAK,CACN,EAEY2E,GAAS3E,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,aAAa,CACd,EAIY4E,GAAmB5E,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,MAAM,CACP,EAEY6E,GAAO7E,EAAO,CAAC,OAAO,CAAC,ECrRvBuE,GAAOvE,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,UACA,cACA,cACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,QACA,MAAM,CACP,EAEYwE,GAAMxE,EAAO,CACxB,gBACA,aACA,WACA,qBACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,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", "names": ["require_moment", "__commonJSMin", "exports", "module", "global", "factory", "hookCallback", "hooks", "setHookCallback", "callback", "isArray", "input", "isObject", "hasOwnProp", "a", "b", "isObjectEmpty", "obj", "k", "isUndefined", "isNumber", "isDate", "map", "arr", "fn", "res", "i", "arrLen", "extend", "createUTC", "format", "locale", "strict", "createLocalOrUTC", "defaultParsingFlags", "getParsingFlags", "m", "some", "fun", "t", "len", "isValid", "flags", "parsedParts", "isNowValid", "createInvalid", "momentProperties", "updateInProgress", "copyConfig", "to", "from", "prop", "val", "momentPropertiesLen", "Moment", "config", "isMoment", "warn", "msg", "deprecate", "firstTime", "args", "arg", "key", "argLen", "deprecations", "deprecateSimple", "name", "isFunction", "set", "mergeConfigs", "parentConfig", "childConfig", "Locale", "keys", "defaultCalendar", "calendar", "mom", "now", "output", "zeroFill", "number", "targetLength", "forceSign", "absNumber", "zerosToFill", "sign", "formattingTokens", "localFormattingTokens", "formatFunctions", "formatTokenFunctions", "addFormatToken", "token", "padded", "ordinal", "func", "removeFormattingTokens", "makeFormatFunction", "array", "length", "formatMoment", "expandFormat", "replaceLongDateFormatTokens", "defaultLongDateFormat", "longDateFormat", "formatUpper", "tok", "defaultInvalidDate", "invalidDate", "defaultOrdinal", "defaultDayOfMonthOrdinalParse", "defaultRelativeTime", "relativeTime", "withoutSuffix", "string", "isFuture", "pastFuture", "diff", "aliases", "normalizeUnits", "units", "normalizeObjectUnits", "inputObject", "normalizedInput", "normalizedProp", "priorities", "getPrioritizedUnits", "unitsObj", "u", "match1", "match2", "match3", "match4", "match6", "match1to2", "match3to4", "match5to6", "match1to3", "match1to4", "match1to6", "matchUnsigned", "matchSigned", "matchOffset", "matchShortOffset", "matchTimestamp", "matchWord", "match1to2NoLeadingZero", "match1to2HasZero", "regexes", "addRegexToken", "regex", "strictRegex", "isStrict", "localeData", "getParseRegexForToken", "unescapeFormat", "s", "regexEscape", "matched", "p1", "p2", "p3", "p4", "absFloor", "toInt", "argumentForCoercion", "coercedNumber", "value", "tokens", "addParseToken", "tokenLen", "addWeekParseToken", "addTimeToArrayFromToken", "isLeapYear", "year", "YEAR", "MONTH", "DATE", "HOUR", "MINUTE", "SECOND", "MILLISECOND", "WEEK", "WEEKDAY", "y", "daysInYear", "getSetYear", "makeGetSet", "getIsLeapYear", "unit", "keepTime", "set$1", "get", "d", "isUTC", "month", "date", "stringGet", "stringSet", "prioritized", "prioritizedLen", "mod", "n", "x", "indexOf", "o", "daysInMonth", "modMonth", "defaultLocaleMonths", "defaultLocaleMonthsShort", "MONTHS_IN_FORMAT", "defaultMonthsShortRegex", "defaultMonthsRegex", "localeMonths", "localeMonthsShort", "handleStrictParse", "monthName", "ii", "llc", "localeMonthsParse", "setMonth", "getSetMonth", "getDaysInMonth", "monthsShortRegex", "computeMonthsParse", "monthsRegex", "cmpLenRev", "shortPieces", "longPieces", "mixedPieces", "shortP", "longP", "createDate", "h", "M", "ms", "createUTCDate", "firstWeekOffset", "dow", "doy", "fwd", "fwdlw", "dayOfYearFromWeeks", "week", "weekday", "localWeekday", "weekOffset", "dayOfYear", "resYear", "resDayOfYear", "weekOfYear", "resWeek", "weeksInYear", "weekOffsetNext", "localeWeek", "defaultLocaleWeek", "localeFirstDayOfWeek", "localeFirstDayOfYear", "getSetWeek", "getSetISOWeek", "parseWeekday", "parseIsoWeekday", "shiftWeekdays", "ws", "defaultLocaleWeekdays", "defaultLocaleWeekdaysShort", "defaultLocaleWeekdaysMin", "defaultWeekdaysRegex", "defaultWeekdaysShortRegex", "defaultWeekdaysMinRegex", "localeWeekdays", "weekdays", "localeWeekdaysShort", "localeWeekdaysMin", "handleStrictParse$1", "weekdayName", "localeWeekdaysParse", "getSetDayOfWeek", "day", "getSetLocaleDayOfWeek", "getSetISODayOfWeek", "weekdaysRegex", "computeWeekdaysParse", "weekdaysShortRegex", "weekdaysMinRegex", "minPieces", "minp", "shortp", "longp", "hFormat", "kFormat", "meridiem", "lowercase", "matchMeridiem", "kInput", "pos", "pos1", "pos2", "localeIsPM", "defaultLocaleMeridiemParse", "getSetHour", "localeMeridiem", "hours", "minutes", "isLower", "baseConfig", "locales", "localeFamilies", "globalLocale", "commonPrefix", "arr1", "arr2", "minl", "normalizeLocale", "chooseLocale", "names", "j", "next", "split", "loadLocale", "isLocaleNameSane", "oldLocale", "aliasedRequire", "__require", "getSetGlobalLocale", "e", "values", "data", "getLocale", "defineLocale", "updateLocale", "tmpLocale", "listLocales", "checkOverflow", "overflow", "extendedIsoRegex", "basicIsoRegex", "tzRegex", "isoDates", "isoTimes", "aspNetJsonRegex", "rfc2822", "obsOffsets", "configFromISO", "l", "match", "allowTime", "dateFormat", "timeFormat", "tzFormat", "isoDatesLen", "isoTimesLen", "configFromStringAndFormat", "extractFromRFC2822Strings", "yearStr", "monthStr", "dayStr", "hourStr", "minuteStr", "secondStr", "result", "untruncateYear", "preprocessRFC2822", "checkWeekday", "weekdayStr", "parsedInput", "weekdayProvided", "weekdayActual", "calculateOffset", "obsOffset", "militaryOffset", "numOffset", "hm", "configFromRFC2822", "parsedArray", "configFromString", "defaults", "currentDateArray", "nowValue", "configFromArray", "currentDate", "expectedWeekday", "yearToUse", "dayOfYearFromWeekInfo", "w", "weekYear", "temp", "weekdayOverflow", "curWeek", "createLocal", "skipped", "stringLength", "totalParsedInputLength", "era", "meridiemFixWrap", "hour", "isPm", "configFromStringAndArray", "tempConfig", "bestMoment", "scoreToBeat", "currentScore", "validFormatFound", "bestFormatIsValid", "configfLen", "configFromObject", "dayOrDate", "createFromConfig", "prepareConfig", "configFromInput", "c", "prototypeMin", "other", "prototypeMax", "pickBy", "moments", "min", "max", "ordering", "isDurationValid", "unitHasDecimal", "orderLen", "isValid$1", "createInvalid$1", "createDuration", "Duration", "duration", "years", "quarters", "months", "weeks", "days", "seconds", "milliseconds", "isDuration", "absRound", "compareArrays", "array1", "array2", "dontConvert", "lengthDiff", "diffs", "offset", "separator", "offsetFromString", "chunkOffset", "matcher", "matches", "chunk", "parts", "cloneWithOffset", "model", "getDateOffset", "getSetOffset", "keepLocalTime", "keepMinutes", "localAdjust", "addSubtract", "getSetZone", "setOffsetToUTC", "setOffsetToLocal", "setOffsetToParsedOffset", "tZone", "hasAlignedHourOffset", "isDaylightSavingTime", "isDaylightSavingTimeShifted", "isLocal", "isUtcOffset", "isUtc", "aspNetRegex", "isoRegex", "ret", "diffRes", "parseIso", "momentsDifference", "inp", "positiveMomentsDifference", "base", "createAdder", "direction", "period", "dur", "tmp", "isAdding", "updateOffset", "add", "subtract", "isString", "isMomentInput", "isNumberOrStringArray", "isMomentInputObject", "objectTest", "propertyTest", "properties", "property", "propertyLen", "arrayTest", "dataTypeTest", "item", "isCalendarSpec", "getCalendarFormat", "myMoment", "calendar$1", "time", "formats", "sod", "clone", "isAfter", "localInput", "isBefore", "isBetween", "inclusivity", "localFrom", "localTo", "isSame", "inputMs", "isSameOrAfter", "isSameOrBefore", "asFloat", "that", "zoneDelta", "monthDiff", "wholeMonthDiff", "anchor", "anchor2", "adjust", "toString", "toISOString", "keepOffset", "utc", "inspect", "zone", "prefix", "datetime", "suffix", "inputString", "fromNow", "toNow", "newLocaleData", "lang", "MS_PER_SECOND", "MS_PER_MINUTE", "MS_PER_HOUR", "MS_PER_400_YEARS", "mod$1", "dividend", "divisor", "localStartOfDate", "utcStartOfDate", "startOf", "startOfDate", "endOf", "valueOf", "unix", "toDate", "toArray", "toObject", "toJSON", "isValid$2", "parsingFlags", "invalidAt", "creationData", "matchEraAbbr", "matchEraName", "matchEraNarrow", "matchEraYearOrdinal", "localeEras", "eras", "localeErasParse", "eraName", "abbr", "narrow", "localeErasConvertYear", "dir", "getEraName", "getEraNarrow", "getEraAbbr", "getEraYear", "erasNameRegex", "computeErasParse", "erasAbbrRegex", "erasNarrowRegex", "abbrPieces", "namePieces", "narrowPieces", "erasName", "erasAbbr", "erasNarrow", "addWeekYearFormatToken", "getter", "getSetWeekYear", "getSetWeekYearHelper", "getSetISOWeekYear", "getISOWeeksInYear", "getISOWeeksInISOWeekYear", "getWeeksInYear", "weekInfo", "getWeeksInWeekYear", "weeksTarget", "setWeekAll", "dayOfYearData", "getSetQuarter", "getSetDayOfMonth", "getSetDayOfYear", "getSetMinute", "getSetSecond", "getSetMillisecond", "parseMs", "getZoneAbbr", "getZoneName", "proto", "createUnix", "createInZone", "preParsePostFormat", "proto$1", "get$1", "index", "field", "setter", "listMonthsImpl", "out", "listWeekdaysImpl", "localeSorted", "shift", "listMonths", "listMonthsShort", "listWeekdays", "listWeekdaysShort", "listWeekdaysMin", "mathAbs", "abs", "addSubtract$1", "add$1", "subtract$1", "absCeil", "bubble", "monthsFromDays", "monthsToDays", "daysToMonths", "as", "makeAs", "alias", "asMilliseconds", "asSeconds", "asMinutes", "asHours", "asDays", "asWeeks", "asMonths", "asQuarters", "asYears", "valueOf$1", "clone$1", "get$2", "makeGetter", "round", "thresholds", "substituteTimeAgo", "relativeTime$1", "posNegDuration", "getSetRelativeTimeRounding", "roundingFunction", "getSetRelativeTimeThreshold", "threshold", "limit", "humanize", "argWithSuffix", "argThresholds", "withSuffix", "th", "abs$1", "toISOString$1", "total", "totalSign", "ymSign", "daysSign", "hmsSign", "proto$2", "entries", "setPrototypeOf", "isFrozen", "getPrototypeOf", "getOwnPropertyDescriptor", "Object", "freeze", "seal", "create", "apply", "construct", "Reflect", "x", "fun", "thisValue", "args", "Func", "arrayForEach", "unapply", "Array", "prototype", "forEach", "arrayPop", "pop", "arrayPush", "push", "stringToLowerCase", "String", "toLowerCase", "stringToString", "toString", "stringMatch", "match", "stringReplace", "replace", "stringIndexOf", "indexOf", "stringTrim", "trim", "regExpTest", "RegExp", "test", "typeErrorCreate", "unconstruct", "TypeError", "func", "thisArg", "_len", "arguments", "length", "_key", "_len2", "_key2", "addToSet", "set", "array", "transformCaseFunc", "undefined", "l", "element", "lcElement", "cleanArray", "index", "clone", "object", "newObject", "property", "value", "isArray", "constructor", "lookupGetter", "prop", "desc", "get", "fallbackValue", "console", "warn", "html", "svg", "svgFilters", "svgDisallowed", "mathMl", "mathMlDisallowed", "text", "xml", "MUSTACHE_EXPR", "ERB_EXPR", "TMPLIT_EXPR", "DATA_ATTR", "ARIA_ATTR", "IS_ALLOWED_URI", "IS_SCRIPT_OR_DATA", "ATTR_WHITESPACE", "DOCTYPE_NAME", "getGlobal", "window", "_createTrustedTypesPolicy", "trustedTypes", "purifyHostElement", "createPolicy", "suffix", "ATTR_NAME", "hasAttribute", "getAttribute", "policyName", "createHTML", "createScriptURL", "scriptUrl", "_", "createDOMPurify", "DOMPurify", "root", "version", "VERSION", "removed", "document", "nodeType", "isSupported", "originalDocument", "currentScript", "DocumentFragment", "HTMLTemplateElement", "Node", "Element", "NodeFilter", "NamedNodeMap", "MozNamedAttrMap", "HTMLFormElement", "DOMParser", "ElementPrototype", "cloneNode", "getNextSibling", "getChildNodes", "getParentNode", "template", "createElement", "content", "ownerDocument", "trustedTypesPolicy", "emptyHTML", "implementation", "createNodeIterator", "createDocumentFragment", "getElementsByTagName", "importNode", "hooks", "createHTMLDocument", "EXPRESSIONS", "ALLOWED_TAGS", "DEFAULT_ALLOWED_TAGS", "TAGS", "ALLOWED_ATTR", "DEFAULT_ALLOWED_ATTR", "ATTRS", "CUSTOM_ELEMENT_HANDLING", "tagNameCheck", "writable", "configurable", "enumerable", "attributeNameCheck", "allowCustomizedBuiltInElements", "FORBID_TAGS", "FORBID_ATTR", "ALLOW_ARIA_ATTR", "ALLOW_DATA_ATTR", "ALLOW_UNKNOWN_PROTOCOLS", "ALLOW_SELF_CLOSE_IN_ATTR", "SAFE_FOR_TEMPLATES", "WHOLE_DOCUMENT", "SET_CONFIG", "FORCE_BODY", "RETURN_DOM", "RETURN_DOM_FRAGMENT", "RETURN_TRUSTED_TYPE", "SANITIZE_DOM", "SANITIZE_NAMED_PROPS", "SANITIZE_NAMED_PROPS_PREFIX", "KEEP_CONTENT", "IN_PLACE", "USE_PROFILES", "FORBID_CONTENTS", "DEFAULT_FORBID_CONTENTS", "DATA_URI_TAGS", "DEFAULT_DATA_URI_TAGS", "URI_SAFE_ATTRIBUTES", "DEFAULT_URI_SAFE_ATTRIBUTES", "MATHML_NAMESPACE", "SVG_NAMESPACE", "HTML_NAMESPACE", "NAMESPACE", "IS_EMPTY_INPUT", "ALLOWED_NAMESPACES", "DEFAULT_ALLOWED_NAMESPACES", "PARSER_MEDIA_TYPE", "SUPPORTED_PARSER_MEDIA_TYPES", "DEFAULT_PARSER_MEDIA_TYPE", "CONFIG", "formElement", "isRegexOrFunction", "testValue", "Function", "_parseConfig", "cfg", "ADD_URI_SAFE_ATTR", "ADD_DATA_URI_TAGS", "ALLOWED_URI_REGEXP", "ADD_TAGS", "ADD_ATTR", "table", "tbody", "TRUSTED_TYPES_POLICY", "MATHML_TEXT_INTEGRATION_POINTS", "HTML_INTEGRATION_POINTS", "COMMON_SVG_AND_HTML_ELEMENTS", "ALL_SVG_TAGS", "ALL_MATHML_TAGS", "_checkValidNamespace", "parent", "tagName", "namespaceURI", "parentTagName", "Boolean", "_forceRemove", "node", "parentNode", "removeChild", "remove", "_removeAttribute", "name", "attribute", "getAttributeNode", "from", "removeAttribute", "setAttribute", "_initDocument", "dirty", "doc", "leadingWhitespace", "matches", "dirtyPayload", "parseFromString", "documentElement", "createDocument", "innerHTML", "body", "insertBefore", "createTextNode", "childNodes", "call", "_createNodeIterator", "SHOW_ELEMENT", "SHOW_COMMENT", "SHOW_TEXT", "_isClobbered", "elm", "nodeName", "textContent", "attributes", "hasChildNodes", "_isNode", "_executeHook", "entryPoint", "currentNode", "data", "hook", "_sanitizeElements", "allowedTags", "firstElementChild", "_isBasicCustomElement", "childCount", "i", "expr", "_isValidAttribute", "lcTag", "lcName", "_sanitizeAttributes", "hookEvent", "attrName", "attrValue", "keepAttr", "allowedAttributes", "attr", "forceKeepAttr", "getAttributeType", "setAttributeNS", "_sanitizeShadowDOM", "fragment", "shadowNode", "shadowIterator", "nextNode", "sanitize", "importedNode", "returnNode", "appendChild", "firstChild", "nodeIterator", "shadowroot", "shadowrootmode", "serializedHTML", "outerHTML", "doctype", "setConfig", "clearConfig", "isValidAttribute", "tag", "addHook", "hookFunction", "removeHook", "removeHooks", "removeAllHooks", "purify", "Main_exports", "__export", "logoutE", "renderAccountSettings", "renderAddForm", "renderBookmarks", "renderNote", "renderNotes", "renderTagCloud", "viewRendered", "_ajax", "platformSpecificDriver", "timeoutErrorMessageIdent", "requestFailedMessageIdent", "mkHeader", "options", "errback", "callback", "xhr", "fixedUrl", "i", "header", "e", "onerror", "msgIdent", "error", "cancelErrback", "cancelCallback", "arrayMap", "f", "arr", "l", "result", "i", "semigroupoidFn", "f", "g", "x", "compose", "dict", "identity", "dict", "categoryFn", "x", "semigroupoidFn", "otherwise", "on", "f", "g", "x", "y", "flip", "b", "a", "$$const", "v", "$$Proxy", "map", "dict", "mapFlipped", "dictFunctor", "map1", "fa", "f", "$$void", "$$const", "voidLeft", "x", "functorArray", "arrayMap", "concatString", "s1", "s2", "concatArray", "xs", "ys", "reflectSymbol", "dict", "absurd", "a", "spin", "$copy_v", "$tco_result", "$tco_loop", "v", "unsafeGet", "label", "rec", "semigroupString", "concatString", "semigroupArray", "concatArray", "append", "dict", "alt", "dict", "arrayApply", "fs", "xs", "l", "k", "result", "n", "i", "f", "j", "identity", "categoryFn", "applyArray", "arrayApply", "functorArray", "apply", "dict", "applySecond", "dictApply", "apply1", "apply", "map", "b", "$$const", "identity", "lift2", "f", "a", "pure", "dict", "unless", "dictApplicative", "pure1", "v", "v1", "when", "liftA1", "apply", "f", "a", "topChar", "bottomChar", "topNumber", "bottomNumber", "unsafeCompareImpl", "lt", "eq", "gt", "x", "y", "ordIntImpl", "unsafeCompareImpl", "ordStringImpl", "unsafeCompareImpl", "ordCharImpl", "refEq", "r1", "r2", "eqIntImpl", "refEq", "eqCharImpl", "refEq", "eqStringImpl", "eqArrayImpl", "f", "xs", "ys", "i", "eqUnit", "v", "v1", "eqString", "eqStringImpl", "eqInt", "eqIntImpl", "eqChar", "eqCharImpl", "eq", "dict", "eqArray", "dictEq", "eqArrayImpl", "eq", "LT", "GT", "EQ", "eqOrdering", "v", "v1", "LT", "GT", "EQ", "intSub", "x", "y", "intAdd", "x", "y", "intMul", "semiringInt", "intAdd", "intMul", "ringInt", "intSub", "semiringInt", "ordUnit", "v", "v1", "EQ", "eqUnit", "ordString", "ordStringImpl", "LT", "GT", "eqString", "ordInt", "ordIntImpl", "LT", "EQ", "GT", "eqInt", "ordChar", "ordCharImpl", "eqChar", "compare", "dict", "comparing", "dictOrd", "compare3", "compare", "f", "x", "y", "top", "dict", "boundedChar", "topChar", "bottomChar", "ordChar", "bottom", "dict", "showIntImpl", "showNumberImpl", "str", "showStringImpl", "s", "l", "c", "i", "k", "empty", "showString", "showStringImpl", "showNumber", "showNumberImpl", "showInt", "showIntImpl", "show", "dict", "identity", "categoryFn", "Nothing", "Just", "value0", "maybe", "v", "v1", "v2", "Nothing", "Just", "isNothing", "$$const", "isJust", "functorMaybe", "v", "v1", "Just", "Nothing", "map", "fromMaybe", "a", "maybe", "identity", "fromJust", "v", "Just", "applyMaybe", "v", "v1", "Just", "map", "Nothing", "functorMaybe", "bindMaybe", "v", "v1", "Just", "Nothing", "applyMaybe", "applicativeMaybe", "Just", "applyMaybe", "applicationJSON", "applicationFormURLEncoded", "ArrayView", "value0", "Blob", "Document", "$$String", "FormData", "FormURLEncoded", "Json", "toMediaType", "v", "Just", "applicationFormURLEncoded", "applicationJSON", "Nothing", "string", "unsafeCoerce", "x", "coerce", "unsafeCoerce", "coerce", "unwrap", "coerce", "alaF", "v", "coerce", "unwrap", "Accept", "value0", "ContentType", "RequestHeader", "value1", "value", "v", "unwrap", "name", "v", "Accept", "ContentType", "RequestHeader", "identity", "categoryFn", "$$ArrayBuffer", "value0", "Blob", "Document", "Json", "$$String", "Ignore", "toResponseType", "v", "toMediaType", "Just", "applicationJSON", "Nothing", "string", "json", "ignore", "ResponseHeader", "value0", "value1", "arrayBind", "arr", "f", "result", "i", "l", "identity", "categoryFn", "discard", "dict", "bindArray", "arrayBind", "applyArray", "bind", "dict", "bindFlipped", "dictBind", "flip", "composeKleisliFlipped", "bindFlipped1", "f", "g", "a", "composeKleisli", "bind1", "discardUnit", "dictBind", "bind", "join", "dictBind", "bind1", "bind", "m", "identity", "Left", "value0", "Right", "note", "a", "maybe", "Left", "Right", "functorEither", "f", "m", "Left", "Right", "map", "either", "v", "v1", "v2", "Left", "Right", "hush", "$$const", "Nothing", "Just", "applyEither", "v", "v1", "Left", "Right", "map", "functorEither", "applicativeEither", "Right", "applyEither", "pureE", "a", "bindE", "f", "whenM", "dictMonad", "bind", "when", "mb", "m", "b", "unlessM", "unless", "ap", "dictMonad", "bind", "pure", "f", "a", "f$prime", "a$prime", "intDegree", "x", "intDiv", "y", "intMod", "yy", "commutativeRingInt", "ringInt", "mod", "dict", "euclideanRingInt", "intDegree", "intDiv", "intMod", "commutativeRingInt", "div", "dict", "monoidString", "semigroupString", "monoidArray", "semigroupArray", "mempty", "dict", "guard", "dictMonoid", "mempty1", "mempty", "v", "v1", "$runtime_lazy", "name", "moduleName", "init", "state", "val", "lineNumber", "monadEffect", "applicativeEffect", "bindEffect", "bindE", "$lazy_applyEffect", "pureE", "$lazy_functorEffect", "liftA1", "ap", "functorEffect", "applyEffect", "lift2", "semigroupEffect", "dictSemigroup", "append", "monoidEffect", "dictMonoid", "semigroupEffect1", "mempty", "error", "msg", "message", "e", "throwException", "e", "$$throw", "$4", "throwException", "error", "throwError", "dict", "catchError", "dict", "$$try", "dictMonadError", "catchError1", "catchError", "Monad0", "map", "pure", "a", "Right", "$52", "Left", "Identity", "x", "functorIdentity", "f", "m", "applyIdentity", "v", "v1", "functorIdentity", "bindIdentity", "f", "applicativeIdentity", "Identity", "monadIdentity", "_new", "val", "read", "ref", "modifyImpl", "f", "write", "val", "$$void", "functorEffect", "$$new", "_new", "modify$prime", "modifyImpl", "modify", "f", "s", "s$prime", "modify_", "bindFlipped", "bindEffect", "map", "functorEffect", "Loop", "value0", "Done", "tailRecM", "dict", "monadRecEffect", "f", "a", "fromDone", "v", "Done", "r", "bindFlipped", "$$new", "read", "Loop", "e", "write", "map", "monadEffect", "boolConj", "b1", "b2", "boolDisj", "boolNot", "b", "tt", "dict", "not", "dict", "implies", "dict", "ff", "dict", "disj", "dict", "heytingAlgebraBoolean", "a", "b", "not", "boolConj", "boolDisj", "boolNot", "conj", "dict", "heytingAlgebraFunction", "dictHeytingAlgebra", "ff1", "ff", "tt1", "tt", "implies1", "implies", "conj1", "disj1", "disj", "not1", "not", "v", "f", "g", "a", "Tuple", "value0", "value1", "uncurry", "f", "v", "snd", "v", "functorTuple", "f", "m", "Tuple", "fst", "v", "eqTuple", "dictEq", "eq", "dictEq1", "eq1", "x", "y", "ordTuple", "dictOrd", "compare", "eqTuple1", "dictOrd1", "compare1", "eqTuple2", "v", "LT", "GT", "state", "dict", "modify_", "dictMonadState", "state1", "state", "f", "s", "Tuple", "modify", "s$prime", "gets", "get", "monadEffectEffect", "identity", "categoryFn", "monadEffect", "liftEffect", "dict", "map", "functorEither", "ExceptT", "x", "runExceptT", "v", "mapExceptT", "f", "v", "functorExceptT", "dictFunctor", "map1", "map", "monadExceptT", "dictMonad", "applicativeExceptT", "bindExceptT", "bind", "pure", "v", "k", "either", "$187", "Left", "a", "v1", "applyExceptT", "functorExceptT1", "functorExceptT", "ap", "$188", "$189", "ExceptT", "Right", "monadThrowExceptT", "dictMonad", "monadExceptT1", "monadExceptT", "$198", "pure", "$199", "ExceptT", "Left", "altExceptT", "dictSemigroup", "append", "dictMonad", "Bind1", "bind", "pure", "functorExceptT1", "functorExceptT", "v", "v1", "rm", "Right", "Left", "rn", "unwrap", "runExcept", "$3", "unwrap", "runExceptT", "stringify", "j", "empty", "_lookup", "no", "yes", "k", "m", "toArrayWithKey", "f", "m", "r", "k", "keys", "replicateFill", "count", "value", "result", "replicatePolyfill", "n", "i", "replicateImpl", "length", "xs", "findIndexImpl", "just", "nothing", "f", "xs", "i", "l", "_deleteAt", "just", "nothing", "i", "l", "l1", "concat", "xss", "result", "i", "l", "xs", "j", "m", "filterImpl", "f", "sortByImpl", "mergeFromTo", "compare", "fromOrdering", "xs1", "xs2", "from", "to", "mid", "i", "j", "k", "x", "y", "c", "xs", "out", "sliceImpl", "s", "l", "unsafeIndexImpl", "xs", "n", "unsafeFreezeThawImpl", "xs", "unsafeFreezeImpl", "copyImpl", "xs", "thawImpl", "copyImpl", "pushImpl", "a", "xs", "runSTFn1", "fn", "a", "runSTFn2", "b", "unsafeFreeze", "runSTFn1", "unsafeFreezeImpl", "thaw", "runSTFn1", "thawImpl", "withArray", "f", "xs", "result", "unsafeFreeze", "push", "runSTFn2", "pushImpl", "foldrArray", "f", "init", "xs", "acc", "len", "foldlArray", "empty", "dict", "bimap", "dict", "Disj", "x", "semigroupDisj", "dictHeytingAlgebra", "disj", "v", "v1", "monoidDisj", "dictHeytingAlgebra", "semigroupDisj1", "semigroupDisj", "ff", "eq1", "eq", "eqOrdering", "alaF", "foldr", "dict", "traverse_", "dictApplicative", "applySecond", "pure", "dictFoldable", "foldr2", "foldr", "f", "$454", "for_", "traverse_1", "flip", "foldl", "dict", "intercalate", "dictFoldable", "foldl2", "foldl", "dictMonoid", "append", "mempty", "sep", "xs", "go", "v", "v1", "maximumBy", "dictFoldable", "foldl2", "foldl", "cmp", "max$prime", "v", "v1", "Nothing", "Just", "$303", "eq1", "GT", "maximum", "dictOrd", "compare", "minimumBy", "min$prime", "$307", "LT", "minimum", "foldableMaybe", "v", "v1", "v2", "Nothing", "Just", "dictMonoid", "mempty", "foldMapDefaultR", "dictFoldable", "foldr2", "foldr", "dictMonoid", "append", "mempty", "f", "x", "acc", "foldableArray", "foldrArray", "foldlArray", "foldMap", "dict", "any", "dictFoldable", "foldMap2", "foldMap", "dictHeytingAlgebra", "alaF", "Disj", "monoidDisj", "runFn2", "fn", "a", "b", "runFn3", "c", "runFn4", "d", "traverseArrayImpl", "array1", "a", "array2", "b", "array3", "c", "concat2", "xs", "ys", "apply", "map", "pure", "f", "array", "go", "bot", "top", "pivot", "identity", "categoryFn", "traverse", "dict", "sequenceDefault", "dictTraversable", "traverse2", "traverse", "dictApplicative", "identity", "traversableArray", "Apply0", "traverseArrayImpl", "apply", "map", "pure", "functorArray", "foldableArray", "unfoldrArrayImpl", "isNothing", "fromJust", "fst", "snd", "f", "b", "result", "value", "maybe", "tuple", "unfoldr1ArrayImpl", "isNothing", "fromJust", "fst", "snd", "f", "b", "result", "value", "tuple", "maybe", "fromJust", "unfoldable1Array", "unfoldr1ArrayImpl", "isNothing", "fromJust", "fst", "snd", "fromJust", "unfoldr", "dict", "unfoldableArray", "unfoldrArrayImpl", "isNothing", "fromJust", "fst", "snd", "unfoldable1Array", "intercalate1", "intercalate", "foldableArray", "map", "functorMaybe", "fromJust", "foldMap1", "foldMap", "foldableArray", "append", "semigroupArray", "unsafeIndex", "runFn2", "unsafeIndexImpl", "unsafeIndex1", "toUnfoldable", "dictUnfoldable", "unfoldr", "xs", "len", "length", "f", "Just", "Tuple", "unsafeIndex1", "otherwise", "Nothing", "sortBy", "comp", "runFn3", "sortByImpl", "v", "GT", "EQ", "LT", "snoc", "xs", "x", "withArray", "push", "slice", "runFn3", "sliceImpl", "singleton", "a", "$$null", "xs", "length", "intercalate", "dictMonoid", "intercalate1", "foldMap", "dictMonoid", "foldMap1", "findIndex", "runFn4", "findIndexImpl", "Just", "Nothing", "find", "f", "xs", "map", "unsafeIndex1", "filter", "runFn2", "filterImpl", "elemIndex", "dictEq", "eq2", "eq", "x", "findIndex", "v", "notElem", "elemIndex1", "a", "arr", "isNothing", "drop", "xs", "$173", "slice", "length", "deleteAt", "runFn4", "_deleteAt", "Just", "Nothing", "deleteBy", "v", "v1", "v2", "maybe", "i", "fromJust", "findIndex", "$$delete", "dictEq", "eq", "cons", "x", "xs", "append", "concatMap", "flip", "bind", "bindArray", "mapMaybe", "f", "$189", "maybe", "singleton", "$190", "newImpl", "values", "toArrayWithKey", "v", "v1", "toUnfoldable", "dictUnfoldable", "$89", "$90", "Tuple", "$91", "lookup", "runFn4", "_lookup", "Nothing", "Just", "jsonEmptyObject", "empty", "_jsonParser", "fail", "succ", "s", "e", "jsonParser", "j", "_jsonParser", "Left", "Right", "replaceAll", "s1", "s2", "s3", "split", "sep", "s", "toLower", "joinWith", "s", "xs", "$$null", "s", "encodeURIComponent_to_RFC3986", "input", "c", "_encodeURIComponent", "fail", "succeed", "input", "encodeURIComponent_to_RFC3986", "err", "_encodeFormURLComponent", "_decodeURIComponent", "$$encodeURIComponent", "runFn3", "_encodeURIComponent", "$$const", "Nothing", "Just", "encodeFormURLComponent", "runFn3", "_encodeFormURLComponent", "$$const", "Nothing", "Just", "$$decodeURIComponent", "_decodeURIComponent", "apply", "applyMaybe", "map", "functorMaybe", "traverse", "traversableArray", "applicativeMaybe", "toArray", "v", "encode", "encodePart", "v", "Nothing", "encodeFormURLComponent", "Just", "apply", "map", "key", "val", "$37", "joinWith", "$38", "traverse", "$39", "toArray", "OPTIONS", "GET", "HEAD", "POST", "PUT", "DELETE", "TRACE", "CONNECT", "PROPFIND", "PROPPATCH", "MKCOL", "COPY", "MOVE", "LOCK", "UNLOCK", "PATCH", "unCustomMethod", "v", "showMethod", "OPTIONS", "GET", "HEAD", "POST", "PUT", "DELETE", "TRACE", "CONNECT", "PROPFIND", "PROPPATCH", "MKCOL", "COPY", "MOVE", "LOCK", "UNLOCK", "PATCH", "print", "either", "show", "showMethod", "unCustomMethod", "NonEmpty", "value0", "value1", "singleton", "dictPlus", "empty", "a", "NonEmpty", "Nil", "Cons", "value0", "value1", "NonEmptyList", "x", "toList", "v", "listMap", "f", "chunkedRevMap", "$copy_v", "$copy_v1", "$tco_var_v", "$tco_done", "$tco_result", "$tco_loop", "v", "v1", "Cons", "unrolledMap", "v2", "Nil", "reverseUnrolledMap", "$copy_v2", "$copy_v3", "$tco_var_v2", "$tco_done1", "v3", "functorList", "foldableList", "f", "b", "rev", "go", "$copy_v", "$copy_v1", "$tco_var_v", "$tco_done", "$tco_result", "$tco_loop", "v1", "Nil", "Cons", "$284", "foldl", "flip", "$285", "$copy_b", "$tco_var_b", "$tco_done1", "v", "dictMonoid", "append2", "append", "mempty", "acc", "$286", "$287", "foldr", "foldableList", "semigroupList", "xs", "ys", "foldr", "Cons", "append1", "append", "semigroupNonEmptyList", "v", "as$prime", "NonEmpty", "append1", "toList", "altList", "append1", "functorList", "plusList", "Nil", "reverse", "go", "$copy_v", "$copy_v1", "$tco_var_v", "$tco_done", "$tco_result", "$tco_loop", "v", "v1", "Nil", "Cons", "$$null", "v", "Nil", "_unsafePartial", "f", "_crashWith", "msg", "crashWith", "_crashWith", "crashWith", "unsafePartial", "_unsafePartial", "unsafeCrashWith", "msg", "singleton", "$200", "plusList", "$201", "NonEmptyList", "head", "v", "cons", "y", "v", "NonEmpty", "Cons", "nullable", "a", "r", "f", "notNull", "x", "toNullable", "maybe", "notNull", "toMaybe", "nullable", "Nothing", "Just", "Aff", "EMPTY", "PURE", "THROW", "CATCH", "SYNC", "ASYNC", "BIND", "BRACKET", "FORK", "SEQ", "MAP", "APPLY", "ALT", "CONS", "RESUME", "RELEASE", "FINALIZER", "FINALIZED", "FORKED", "FIBER", "THUNK", "tag", "_1", "_2", "_3", "AffCtr", "fn", "nonCanceler", "error", "runEff", "eff", "runSync", "left", "right", "runAsync", "k", "Scheduler", "limit", "size", "ix", "queue", "draining", "drain", "thunk", "cb", "i", "tmp", "Supervisor", "util", "fibers", "fiberId", "count", "fiber", "fid", "result", "killError", "killCount", "kills", "kill", "SUSPENDED", "CONTINUE", "STEP_BIND", "STEP_RESULT", "PENDING", "RETURN", "COMPLETED", "Fiber", "supervisor", "aff", "runTick", "status", "step", "fail", "interrupt", "bhead", "btail", "attempts", "bracketCount", "joinId", "joins", "rethrow", "run", "localRunTick", "attempt", "e", "sequential", "onComplete", "join", "jid", "canceler", "runPar", "par", "killId", "early", "root", "head", "tail", "kid", "loop", "lhs", "rhs", "resolve", "cancel", "innerKills", "newKills", "killCb", "_pure", "_throwError", "_catchError", "_map", "f", "value", "_bind", "_fork", "immediate", "_liftEffect", "_parAffMap", "_parAffApply", "aff1", "aff2", "makeAff", "Aff", "generalBracket", "acquire", "options", "k", "_makeFiber", "util", "aff", "_sequential", "Aff", "profunctorFn", "a2b", "c2d", "b2c", "$18", "dimap", "dict", "sequential", "dict", "parallel", "identity", "categoryFn", "parTraverse_", "dictParallel", "sequential", "parallel", "dictApplicative", "traverse_", "dictFoldable", "traverse_1", "f", "$51", "$53", "$52", "parSequence_", "dictParallel", "parTraverse_1", "parTraverse_", "dictApplicative", "parTraverse_2", "dictFoldable", "identity", "unsafePerformEffect", "f", "$runtime_lazy", "name", "moduleName", "init", "state", "val", "lineNumber", "pure", "applicativeEffect", "$$void", "functorEffect", "map", "Canceler", "x", "suspendAff", "_fork", "functorParAff", "_parAffMap", "functorAff", "_map", "map1", "map", "forkAff", "_fork", "ffiUtil", "unsafeFromRight", "v", "Right", "Left", "unsafeCrashWith", "unsafeFromLeft", "isLeft", "makeFiber", "aff", "_makeFiber", "launchAff", "fiber", "bracket", "acquire", "completed", "generalBracket", "$$const", "applyParAff", "_parAffApply", "functorParAff", "monadAff", "applicativeAff", "bindAff", "_bind", "$lazy_applyAff", "_pure", "$runtime_lazy", "ap", "functorAff", "applyAff", "pure2", "pure", "bind1", "bind", "bindFlipped", "bindAff", "$$finally", "fin", "a", "bracket", "pure2", "$$const", "parallelAff", "unsafeCoerce", "_sequential", "applyAff", "applyParAff", "parallel", "applicativeParAff", "$76", "pure2", "parSequence_", "parallelAff", "applicativeParAff", "foldableArray", "semigroupCanceler", "v", "v1", "err", "parSequence_", "monadEffectAff", "_liftEffect", "monadAff", "liftEffect", "effectCanceler", "$77", "Canceler", "$$const", "joinFiber", "v", "makeAff", "k", "map", "functorFiber", "f", "t", "unsafePerformEffect", "makeFiber", "map1", "killFiber", "e", "v", "bind1", "liftEffect", "suspended", "$$void", "$$const", "pure", "makeAff", "k", "map", "effectCanceler", "monadThrowAff", "_throwError", "monadAff", "monadErrorAff", "_catchError", "$$try", "runAff", "k", "aff", "launchAff", "bindFlipped", "$83", "liftEffect", "$$try", "runAff_", "$$void", "monadRecAff", "k", "go", "a", "bind1", "res", "Done", "pure2", "Loop", "monadAff", "nonCanceler", "$$const", "pure2", "monoidCanceler", "semigroupCanceler", "fromEffectFnAff", "v", "makeAff", "k", "v1", "$9", "Left", "$10", "Right", "e", "k2", "$11", "$12", "nonCanceler", "typeOf", "value", "tagOf", "isArray", "value", "fromNumberImpl", "just", "nothing", "n", "toNumber", "log", "fromNumber", "fromNumberImpl", "Just", "Nothing", "singleton", "c", "length", "s", "drop", "s", "splitAt", "i", "s", "charAt", "i", "s", "stripPrefix", "v", "str", "v1", "splitAt", "length", "$20", "Just", "Nothing", "show", "showString", "show1", "showInt", "pure", "applicativeEither", "ForeignError", "value0", "TypeMismatch", "value1", "ErrorAtIndex", "ErrorAtProperty", "unsafeToForeign", "unsafeCoerce", "unsafeFromForeign", "renderForeignError", "v", "ForeignError", "ErrorAtIndex", "show1", "ErrorAtProperty", "show", "TypeMismatch", "fail", "dictMonad", "$153", "throwError", "monadThrowExceptT", "$154", "singleton", "unsafeReadTagged", "dictMonad", "pure1", "pure", "applicativeExceptT", "fail1", "fail", "tag", "value", "tagOf", "unsafeFromForeign", "otherwise", "TypeMismatch", "readBoolean", "readNumber", "readInt", "map", "readNumber1", "error", "Left", "singleton", "fromNumber", "$155", "maybe", "$156", "mapExceptT", "either", "$$const", "readString", "pure", "applicativeExceptT", "monadIdentity", "fail", "unsafeReadTagged", "alt", "altExceptT", "semigroupNonEmptyList", "composeKleisliFlipped", "bindExceptT", "map", "functorMaybe", "any", "foldableArray", "heytingAlgebraBoolean", "eq", "eqString", "bindFlipped", "bindMaybe", "map1", "functorArray", "mapFlipped", "functorAff", "$$try", "monadErrorAff", "pure1", "applicativeAff", "RequestContentError", "value0", "ResponseBodyError", "value1", "TimeoutError", "RequestFailedError", "XHROtherError", "request", "driver", "req", "parseJSON", "v", "pure", "jsonEmptyObject", "either", "$74", "fail", "ForeignError", "jsonParser", "fromResponse", "$$ArrayBuffer", "unsafeReadTagged", "Blob", "Document", "x", "alt", "Json", "composeKleisliFlipped", "$75", "$$String", "Ignore", "$$const", "extractContent", "ArrayView", "Right", "unsafeToForeign", "FormData", "FormURLEncoded", "note", "map", "encode", "stringify", "addHeader", "mh", "hs", "Just", "any", "on", "eq", "name", "snoc", "headers", "reqContent", "ContentType", "bindFlipped", "toMediaType", "Accept", "ajaxRequest", "print", "map1", "h", "value", "toResponseType", "toNullable", "fromMaybe", "v1", "send", "content", "mapFlipped", "$$try", "fromEffectFnAff", "_ajax", "ResponseHeader", "runExcept", "Left", "head", "message", "$61", "$62", "Nothing", "pure1", "printError", "renderForeignError", "defaultRequest", "GET", "ignore", "eqStatusCode", "x", "y", "driver", "url", "request", "driver", "import_moment", "_app", "_mmoment8601", "just", "nothing", "tuple", "s", "m", "moment", "s1", "s2", "error", "_closeWindow", "window", "_setFocus", "elemId", "_toLocaleDateString", "dateString", "RawHTML", "x", "toLocaleDateString", "s", "_toLocaleDateString", "setFocus", "_setFocus", "mmoment8601", "s", "_mmoment8601", "Just", "Nothing", "Tuple", "closeWindow", "win", "_closeWindow", "app$prime", "v", "_app", "_unsafeStringify", "toCharCode", "c", "fromCharCode", "bottom1", "bottom", "boundedChar", "top1", "top", "toEnum", "dict", "fromEnum", "dict", "toEnumWithDefaults", "dictBoundedEnum", "toEnum1", "toEnum", "fromEnum1", "bottom2", "bottom", "low", "high", "x", "v", "Just", "Nothing", "$140", "defaultSucc", "toEnum$prime", "fromEnum$prime", "a", "defaultPred", "charToEnum", "v", "toCharCode", "bottom1", "top1", "Just", "fromCharCode", "Nothing", "enumChar", "defaultSucc", "defaultPred", "ordChar", "boundedEnumChar", "toCharCode", "top1", "bottom1", "charToEnum", "boundedChar", "enumChar", "unsafeReadPropImpl", "f", "s", "key", "value", "unsafeReadProp", "dictMonad", "fail", "pure", "applicativeExceptT", "k", "value", "unsafeReadPropImpl", "TypeMismatch", "typeOf", "readProp", "get", "dictIsSymbol", "reflectSymbol", "l", "r", "unsafeGet", "copyRecord", "rec", "copy", "key", "unsafeInsert", "l", "a", "semigroupoidBuilder", "semigroupoidFn", "insert", "dictIsSymbol", "reflectSymbol", "l", "r1", "unsafeInsert", "categoryBuilder", "categoryFn", "build", "v", "r1", "copyRecord", "identity", "categoryBuilder", "compose1", "compose", "semigroupoidBuilder", "insert", "writeImplFields", "dict", "writeImpl", "writeJSON", "dictWriteForeign", "$191", "$192", "_unsafeStringify", "writeForeignString", "unsafeToForeign", "writeForeignNullable", "dictWriteForeign", "$195", "maybe", "unsafeToForeign", "toNullable", "Nothing", "writeImpl", "$196", "toMaybe", "writeForeignInt", "writeForeignForeign", "identity", "categoryFn", "writeForeignBoolean", "unsafeToForeign", "recordWriteForeign", "dictWriteForeignFields", "writeImplFields1", "writeImplFields", "rec", "steps", "$$Proxy", "unsafeToForeign", "build", "nilWriteForeignFields", "v", "v1", "identity", "consWriteForeignFields", "dictIsSymbol", "get", "insert1", "insert", "dictWriteForeign", "writeImpl1", "writeImpl", "dictWriteForeignFields", "writeImplFields1", "writeImplFields", "v", "rec", "rest", "$$Proxy", "value", "result", "compose1", "recordWriteForeign", "expandedIsSymbol", "modeIsSymbol", "valueIsSymbol", "createdIsSymbol", "idIsSymbol", "isMarkdownIsSymbol", "lengthIsSymbol", "sharedIsSymbol", "slugIsSymbol", "consWriteForeignFields", "writeForeignString", "textIsSymbol", "titleIsSymbol", "consWriteForeignFields1", "updatedIsSymbol", "archiveUrlIsSymbol", "bidIsSymbol", "descriptionIsSymbol", "privateIsSymbol", "selectedIsSymbol", "tagsIsSymbol", "timeIsSymbol", "toreadIsSymbol", "urlIsSymbol", "archiveDefaultIsSymbol", "privacyLockIsSymbol", "privateDefaultIsSymbol", "eq2", "eq", "eqArray", "eqString", "map", "functorExceptT", "functorIdentity", "readInt", "monadIdentity", "readString", "pure", "applicativeExceptT", "intercalate", "monoidString", "TagCloudModeTop", "value0", "value1", "TagCloudModeLowerBound", "TagCloudModeRelated", "TagCloudModeNone", "writeForeignTagCloudMode$prime", "recordWriteForeign", "consWriteForeignFields", "expandedIsSymbol", "writeForeignBoolean", "modeIsSymbol", "writeForeignString", "valueIsSymbol", "writeForeignForeign", "nilWriteForeignFields", "writeForeignNote$prime", "createdIsSymbol", "idIsSymbol", "writeForeignInt", "isMarkdownIsSymbol", "lengthIsSymbol", "sharedIsSymbol", "textIsSymbol", "consWriteForeignFields1", "updatedIsSymbol", "writeForeignBookmark$prime", "archiveUrlIsSymbol", "writeForeignNullable", "bidIsSymbol", "descriptionIsSymbol", "privateIsSymbol", "selectedIsSymbol", "tagsIsSymbol", "timeIsSymbol", "toreadIsSymbol", "urlIsSymbol", "writeForeignAccountSettin", "archiveDefaultIsSymbol", "privacyLockIsSymbol", "privateDefaultIsSymbol", "eqTagCloudModeF", "x", "y", "TagCloudModeTop", "TagCloudModeLowerBound", "TagCloudModeRelated", "eq2", "TagCloudModeNone", "tagCloudModeToF", "tagCloudMode", "fromMaybe", "hush", "runExcept", "map", "readInt", "s", "split", "readString", "pure", "tagCloudModeFromF", "v", "unsafeToForeign", "intercalate", "setExpanded", "v", "v1", "TagCloudModeTop", "TagCloudModeLowerBound", "TagCloudModeRelated", "TagCloudModeNone", "isRelated", "isExpanded", "windowImpl", "ClassName", "x", "_referrer", "doc", "toParentNode", "unsafeCoerce", "toDocument", "unsafeCoerce", "referrer", "doc", "_referrer", "_read", "nothing", "just", "value", "tag", "toNode", "unsafeCoerce", "toElement", "unsafeCoerce", "fromElement", "x", "_read", "Nothing", "Just", "setHref", "href", "location", "origin", "search", "location", "reload", "location", "document", "window", "location", "window", "discard", "discardUnit", "bindAff", "$$void", "functorAff", "liftEffect", "monadEffectAff", "bind", "bindEffect", "map", "functorMaybe", "show", "showInt", "bind1", "pure", "applicativeAff", "bind2", "bindMaybe", "pure1", "applicativeMaybe", "eq", "eqStatusCode", "Star", "UnStar", "showStar", "v", "show1", "fetchUrl", "method", "url", "headers", "content", "rt", "app", "app$prime", "request", "defaultRequest", "Left", "cons", "RequestHeader", "logout", "u", "POST", "Nothing", "ignore", "windowImpl", "location", "reload", "fetchPath", "path", "fetchUrlEnc", "ContentType", "applicationFormURLEncoded", "FormURLEncoded", "markRead", "bid", "toggleStar", "action", "fetchJson", "dictWriteForeign", "writeJSON", "applicationJSON", "$25", "string", "fetchJson1", "writeForeignTagCloudMode$prime", "fetchJson2", "writeForeignBookmark$prime", "fetchJson3", "writeForeignNote$prime", "fetchJson4", "writeForeignAccountSettin", "getTagCloud", "mode", "Just", "json", "eres", "hush", "res", "lookupTitle", "bm", "$24", "updateTagCloudMode", "editNote", "editBookmark", "editAccountSettings", "us", "destroyNote", "nid", "DELETE", "destroy", "InputButton", "InputCheckbox", "InputColor", "InputDate", "InputDatetimeLocal", "InputEmail", "InputFile", "InputHidden", "InputImage", "InputMonth", "InputNumber", "InputPassword", "InputRadio", "InputRange", "InputReset", "InputSearch", "InputSubmit", "InputTel", "InputText", "InputTime", "InputUrl", "InputWeek", "renderInputType", "v", "profunctorForget", "f", "v", "v1", "$36", "strongForget", "$37", "fst", "$38", "snd", "strongFn", "a2b", "v", "Tuple", "map", "functorTuple", "profunctorFn", "first", "dict", "unwrap", "identity", "categoryFn", "view", "l", "unwrap", "identity", "viewOn", "s", "use", "dictMonadState", "gets", "p", "v", "lens$prime", "to", "dictStrong", "dimap", "first", "pab", "v", "lens", "get", "set", "s", "Tuple", "b", "over", "l", "set", "b", "$$const", "modifying", "dictMonadState", "$$void", "modify", "p", "f", "over", "assign", "dictMonadState", "$$void", "modify", "p", "b", "set", "monadAffAff", "identity", "categoryFn", "monadEffectAff", "liftAff", "dict", "runExists", "unsafeCoerce", "mkExists", "CoyonedaF", "value0", "value1", "unCoyoneda", "f", "v", "runExists", "v1", "coyoneda", "k", "fi", "mkExists", "CoyonedaF", "functorCoyoneda", "f", "v", "runExists", "v1", "$180", "liftCoyoneda", "coyoneda", "identity", "categoryFn", "$runtime_lazy", "name", "moduleName", "init", "state", "val", "lineNumber", "map", "functorMaybe", "Leaf", "Node", "value0", "value1", "value2", "value3", "value4", "value5", "Split", "value0", "value1", "value2", "SplitLast", "unsafeNode", "k", "v", "l", "r", "Leaf", "Node", "$277", "singleton", "k", "v", "Node", "Leaf", "unsafeBalancedNode", "height", "rotateLeft", "l", "rk", "rv", "rl", "rr", "unsafeNode", "rotateRight", "lk", "lv", "ll", "lr", "r", "$lazy_unsafeSplit", "$runtime_lazy", "comp", "m", "Split", "Nothing", "LT", "v1", "GT", "EQ", "Just", "unsafeSplit", "$lazy_unsafeSplitLast", "SplitLast", "unsafeSplitLast", "unsafeJoinNodes", "v2", "pop", "dictOrd", "compare", "k", "m", "v", "unsafeSplit", "map", "a", "Tuple", "unsafeJoinNodes", "lookup", "dictOrd", "compare", "k", "go", "$copy_v", "$tco_done", "$tco_result", "$tco_loop", "v", "Leaf", "Nothing", "Node", "v1", "LT", "GT", "EQ", "Just", "insert", "dictOrd", "compare", "k", "v", "go", "v1", "Leaf", "singleton", "Node", "v2", "LT", "unsafeBalancedNode", "GT", "EQ", "foldableMap", "f", "z", "$lazy_go", "$runtime_lazy", "m$prime", "z$prime", "Leaf", "Node", "go", "m", "dictMonoid", "mempty", "append1", "append", "v", "empty", "Leaf", "$$delete", "dictOrd", "compare", "k", "go", "v", "Leaf", "Node", "v1", "LT", "unsafeBalancedNode", "GT", "EQ", "unsafeJoinNodes", "alter", "dictOrd", "compare", "f", "k", "m", "v", "unsafeSplit", "v2", "Nothing", "unsafeJoinNodes", "Just", "unsafeBalancedNode", "OrdBox", "value0", "value1", "value2", "mkOrdBox", "dictOrd", "OrdBox", "eq", "compare", "eqOrdBox", "v", "v1", "ordOrdBox", "ordTuple", "ordString", "ordOrdBox", "pop1", "pop", "ordTuple", "lookup1", "lookup", "insert1", "insert", "pop", "dictIsSymbol", "reflectSymbol", "dictOrd", "mkOrdBox", "sym", "key", "v", "pop1", "Tuple", "lookup", "lookup1", "insert", "val", "insert1", "foreachSlot", "dictApplicative", "traverse_", "foldableMap", "k", "$54", "empty", "AutocompleteOff", "AutocompleteOn", "AutocompleteName", "AutocompleteHonorificPrefix", "AutocompleteGivenName", "AutocompleteAdditionalName", "AutocompleteFamilyName", "AutocompleteHonorificSuffix", "AutocompleteNickname", "AutocompleteEmail", "AutocompleteUsername", "AutocompleteNewPassword", "AutocompleteCurrentPassword", "AutocompleteOneTimeCode", "AutocompleteOrganizationTitle", "AutocompleteOrganization", "AutocompleteStreetAddress", "AutocompleteAddressLine1", "AutocompleteAddressLine2", "AutocompleteAddressLine3", "AutocompleteAddressLevel1", "AutocompleteAddressLevel2", "AutocompleteAddressLevel3", "AutocompleteAddressLevel4", "AutocompleteCountry", "AutocompleteCountryName", "AutocompletePostalCode", "AutocompleteCreditCardName", "AutocompleteCreditCardGivenName", "AutocompleteCreditCardAdditionalName", "AutocompleteCreditCardFamilyName", "AutocompleteCreditCardNumber", "AutocompleteCreditCardExpiration", "AutocompleteCreditCardExpirationMonth", "AutocompleteCreditCardExpirationYear", "AutocompleteCreditCardSecurityCode", "AutocompleteCreditCardType", "AutocompleteTransactionCurrency", "AutocompleteTransactionAmount", "AutocompleteLanguage", "AutocompleteBirthday", "AutocompleteBirthdayDay", "AutocompleteBirthdayMonth", "AutocompleteBirthdayYear", "AutocompleteSex", "AutocompleteTelephone", "AutocompleteTelephoneCountryCode", "AutocompleteTelephoneNational", "AutocompleteTelephoneAreaCode", "AutocompleteTelephoneLocal", "AutocompleteTelephoneLocalPrefix", "AutocompleteTelephoneLocalSuffix", "AutocompleteTelephoneExtension", "AutocompleteIMPP", "AutocompleteURL", "AutocompletePhoto", "renderAutocompleteType", "v", "ButtonButton", "ButtonSubmit", "ButtonReset", "renderButtonType", "v", "RefUpdate", "value0", "value1", "Action", "Step", "value0", "value1", "value2", "value3", "unStep", "unsafeCoerce", "step", "v", "a", "mkStep", "halt", "extract", "map", "functorArray", "map1", "functorTuple", "Text", "value0", "Elem", "value1", "value2", "value3", "Keyed", "Widget", "Grafted", "Graft", "unGraft", "f", "$61", "graft", "unsafeCoerce", "bifunctorGraft", "f", "g", "unGraft", "v", "graft", "Graft", "$63", "$64", "bimap", "runGraft", "unGraft", "v", "go", "v2", "Text", "Elem", "map", "Keyed", "map1", "Widget", "Grafted", "bimap", "unsafeGetAny", "key", "obj", "unsafeHasAny", "unsafeSetAny", "val", "forE", "a", "f", "b", "i", "forEachE", "forInE", "o", "ks", "k", "diffWithIxE", "a1", "a2", "f1", "f2", "f3", "a3", "l1", "l2", "i", "strMapWithIxE", "as", "fk", "f", "o", "a", "k", "diffWithKeyAndIxE", "o1", "o2", "refEq", "b", "createTextNode", "s", "doc", "setTextContent", "n", "createElement", "ns", "name", "insertChildIx", "removeChild", "parentNode", "setAttribute", "attr", "val", "el", "removeAttribute", "hasAttribute", "addEventListener", "ev", "listener", "removeEventListener", "jsUndefined", "unsafeLookup", "unsafeGetAny", "unsafeFreeze", "unsafeCoerce", "pokeMutMap", "unsafeSetAny", "newMutMap", "newImpl", "getProp", "name", "doctype", "_namespaceURI", "_prefix", "localName", "tagName", "setAttribute", "name", "value", "element", "getEffProp", "name", "node", "children", "_firstElementChild", "_lastElementChild", "childElementCount", "_querySelector", "selector", "map", "functorEffect", "querySelector", "qs", "$2", "map", "toMaybe", "$3", "_querySelector", "$4", "toNode", "unsafeCoerce", "$runtime_lazy", "name", "moduleName", "init", "state", "val", "lineNumber", "haltWidget", "v", "halt", "$lazy_patchWidget", "$runtime_lazy", "state", "vdom", "Grafted", "runGraft", "Widget", "res", "step", "res$prime", "unStep", "mkStep", "Step", "patchWidget", "haltText", "parent", "parentNode", "removeChild", "$lazy_patchText", "Text", "otherwise", "nextState", "setTextContent", "patchText", "haltKeyed", "forInE", "v1", "s", "haltElem", "forEachE", "eqElemSpec", "ns1", "ns2", "$63", "Just", "Nothing", "$lazy_patchElem", "Elem", "length", "attrs2", "onThis", "v2", "onThese", "ix", "insertChildIx", "extract", "onThat", "children2", "diffWithIxE", "patchElem", "$lazy_patchKeyed", "Keyed", "ix$prime", "v3", "diffWithKeyAndIxE", "fst", "patchKeyed", "buildWidget", "build", "w", "buildText", "node", "createTextNode", "buildKeyed", "name1", "as1", "ch1", "el", "createElement", "toNullable", "toNode", "onChild", "children", "strMapWithIxE", "attrs", "buildElem", "child", "forE", "buildVDom", "spec", "$lazy_build", "eventListener", "fn", "event", "$runtime_lazy", "name", "moduleName", "init", "state", "val", "lineNumber", "Created", "value0", "Removed", "Attribute", "value1", "value2", "Property", "Handler", "Ref", "unsafeGetProperty", "unsafeGetAny", "setProperty", "unsafeSetAny", "removeProperty", "key", "el", "v", "hasAttribute", "removeAttribute", "v1", "typeOf", "jsUndefined", "propToStrKey", "Just", "propFromString", "unsafeCoerce", "propFromInt", "unsafeCoerce", "propFromBoolean", "buildProp", "emit", "el", "removeProp", "prevEvents", "v1", "Attribute", "removeAttribute", "toNullable", "Property", "removeProperty", "Handler", "handler", "unsafeLookup", "removeEventListener", "fst", "Ref", "mbEmit", "v", "Just", "haltProp", "state", "lookup", "Removed", "diffProp", "events", "v11", "v2", "$66", "setAttribute", "v4", "refEq", "elVal", "unsafeGetProperty", "$75", "setProperty", "write", "snd", "pokeMutMap", "applyProp", "v3", "unsafeGetAny", "unsafeHasAny", "ref", "$$new", "listener", "eventListener", "ev", "f$prime", "read", "Tuple", "addEventListener", "Created", "$lazy_patchProp", "$runtime_lazy", "ps2", "newMutMap", "onThis", "onThese", "onThat", "props", "diffWithKeyAndIxE", "propToStrKey", "nextState", "unsafeFreeze", "mkStep", "Step", "patchProp", "renderProp", "ps1", "ps1$prime", "strMapWithIxE", "HTML", "x", "widget", "$28", "Widget", "toPropValue", "dict", "text", "$29", "Text", "ref", "f", "Ref", "$30", "v", "Created", "Just", "Removed", "Nothing", "prop", "dictIsProp", "toPropValue1", "$31", "Property", "$32", "isPropString", "propFromString", "isPropInt", "propFromInt", "isPropInputType", "$45", "propFromString", "renderInputType", "isPropButtonType", "$50", "propFromString", "renderButtonType", "isPropBoolean", "propFromBoolean", "isPropAutocompleteType", "$51", "renderAutocompleteType", "handler", "Handler", "element", "ns", "name", "props", "children", "Elem", "attr", "ns", "v", "Attribute", "identity", "categoryFn", "Pure", "value0", "Lift", "Ap", "value1", "mkAp", "fba", "fb", "liftFreeAp", "goLeft", "dictApplicative", "pure", "fStack", "valStack", "nat", "func", "count", "Tuple", "Cons", "cons", "goApply", "apply", "vals", "gVal", "Nil", "Left", "gRes", "$31", "Right", "NonEmpty", "functorFreeAp", "f", "x", "foldFreeAp", "goApply1", "goLeft1", "z", "go", "$copy_v", "$tco_done", "$tco_result", "$tco_loop", "v1", "nextVals", "singleton", "retractFreeAp", "identity", "applyFreeAp", "applicativeFreeAp", "foldFreeAp1", "hoistFreeAp", "$54", "CatQueue", "value0", "value1", "uncons", "$copy_v", "$tco_done", "$tco_result", "$tco_loop", "v", "Nil", "Nothing", "CatQueue", "reverse", "Cons", "Just", "Tuple", "snoc", "a", "$$null", "v", "Nil", "empty", "CatQueue", "Nil", "CatNil", "CatCons", "value0", "value1", "link", "v", "v1", "CatNil", "CatCons", "snoc", "foldr", "k", "b", "q", "foldl", "$copy_v", "$copy_v1", "$copy_v2", "$tco_var_v", "$tco_var_v1", "$tco_done", "$tco_result", "$tco_loop", "v2", "Nil", "Cons", "go", "$copy_xs", "$copy_ys", "$tco_var_xs", "$tco_done1", "xs", "ys", "uncons", "Nothing", "x", "i", "Just", "Tuple", "$66", "$$null", "empty", "CatNil", "append", "link", "semigroupCatList", "append", "snoc", "cat", "a", "append", "CatCons", "empty", "$runtime_lazy", "name", "moduleName", "init", "state", "val", "lineNumber", "append", "semigroupCatList", "Free", "value0", "value1", "Return", "Bind", "toView", "$copy_v", "$tco_done", "$tco_result", "$tco_loop", "v", "runExpF", "v2", "concatF", "r", "append", "uncons", "Nothing", "Just", "a", "fromView", "f", "Free", "empty", "freeMonad", "freeApplicative", "freeBind", "freeFunctor", "k", "f", "bindFlipped", "$189", "pure", "$190", "v", "Free", "snoc", "$lazy_freeApply", "$191", "fromView", "Return", "$runtime_lazy", "ap", "pure", "freeApplicative", "liftF", "f", "fromView", "Bind", "$192", "pure", "foldFree", "dictMonadRec", "Monad0", "map1", "map", "pure1", "pure", "tailRecM", "k", "go", "f", "v", "toView", "Return", "Done", "Bind", "$199", "Loop", "unChildQueryBox", "unsafeCoerce", "reallyUnsafeRefEq", "a", "b", "unsafeRefEq", "reallyUnsafeRefEq", "$$void", "functorEffect", "bind", "bindEffect", "append", "semigroupArray", "traverse_", "applicativeEffect", "traverse_1", "foldableArray", "unsubscribe", "v", "subscribe", "k", "$76", "$$void", "notify", "v", "a", "create", "subscribers", "$$new", "k", "modify_", "v", "append", "deleteBy", "unsafeRefEq", "a", "bind", "read", "traverse_1", "identity", "categoryFn", "SubscriptionId", "x", "ForkId", "State", "value0", "Subscribe", "value1", "Unsubscribe", "Lift", "ChildQuery", "Raise", "Par", "Fork", "Join", "Kill", "GetRef", "HalogenM", "x", "raise", "o", "liftF", "Raise", "ordSubscriptionId", "ordInt", "ordForkId", "monadHalogenM", "freeMonad", "monadStateHalogenM", "$181", "HalogenM", "liftF", "State", "monadEffectHalogenM", "dictMonadEffect", "$186", "liftEffect", "$187", "HalogenM", "liftF", "Lift", "monadHalogenM", "monadAffHalogenM", "dictMonadAff", "monadEffectHalogenM1", "monadEffectHalogenM", "$188", "liftAff", "$189", "HalogenM", "liftF", "Lift", "getRef", "p", "liftF", "GetRef", "identity", "functorHalogenM", "freeFunctor", "bindHalogenM", "freeBind", "applicativeHalogenM", "freeApplicative", "Initialize", "value0", "Finalize", "Receive", "value1", "Action", "Query", "$runtime_lazy", "name", "moduleName", "init", "state", "val", "lineNumber", "unsafeEqThunk", "v", "v1", "refEq", "runThunk", "v", "buildThunk", "toVDom", "haltThunk", "state", "halt", "$lazy_patchThunk", "$runtime_lazy", "t2", "$48", "unsafeEqThunk", "mkStep", "Step", "extract", "vdom", "step", "runThunk", "patchThunk", "renderThunk", "spec", "t", "buildVDom", "voidLeft", "functorHalogenM", "traverse_", "applicativeHalogenM", "foldableMaybe", "map", "pure", "applicativeHalogenM", "lookup", "pop", "insert", "ComponentSlot", "value0", "ThunkSlot", "unComponentSlot", "unsafeCoerce", "unComponent", "mkEval", "args", "v", "Initialize", "voidLeft", "traverse_", "Finalize", "Receive", "Action", "Query", "unCoyoneda", "g", "$45", "map", "maybe", "$46", "mkComponentSlot", "mkComponent", "defaultEval", "$$const", "pure", "Nothing", "componentSlot", "dictIsSymbol", "lookup1", "lookup", "pop1", "pop", "insert1", "insert", "dictOrd", "lookup2", "pop2", "insert2", "label", "p", "comp", "input", "output", "mkComponentSlot", "element", "Nothing", "form", "element", "input", "props", "element", "label", "element", "p", "element", "span", "element", "table", "element", "tbody", "element", "tbody_", "td", "td_", "textarea", "es", "tr", "element", "tr_", "div", "element", "div_", "button", "element", "br", "props", "element", "br_", "a", "element", "_currentTarget", "e", "preventDefault", "e", "currentTarget", "$5", "toMaybe", "_currentTarget", "change", "click", "map", "functorMaybe", "composeKleisli", "bindMaybe", "composeKleisliFlipped", "bindExceptT", "monadIdentity", "readProp", "readString", "mouseHandler", "unsafeCoerce", "handler$prime", "et", "f", "handler", "ev", "map", "Action", "Just", "onClick", "$15", "handler", "click", "$16", "mouseHandler", "onSubmit", "handler", "addForeignPropHandler", "key", "prop", "reader", "f", "go", "a", "composeKleisliFlipped", "readProp", "unsafeToForeign", "handler$prime", "composeKleisli", "currentTarget", "e", "either", "$$const", "Nothing", "$85", "Just", "runExcept", "onChecked", "change", "readBoolean", "monadIdentity", "onValueChange", "addForeignPropHandler", "change", "readString", "unwrap", "ref", "go", "p", "mel", "Just", "RefUpdate", "$29", "prop", "dictIsProp", "prop1", "isPropBoolean", "prop2", "isPropString", "prop3", "isPropInt", "required", "prop1", "rows", "prop3", "target", "prop2", "title", "type_", "dictIsProp", "prop", "value", "name", "prop2", "id", "prop2", "href", "$$for", "prop2", "disabled", "prop1", "class_", "$36", "prop2", "$37", "unwrap", "checked", "prop1", "autofocus", "prop1", "autocomplete", "prop", "isPropAutocompleteType", "attr", "Nothing", "hasArrayFrom", "hasStringIterator", "hasFromCodePoint", "hasCodePointAt", "_singleton", "fallback", "hasFromCodePoint", "_take", "n", "hasStringIterator", "str", "accum", "iter", "o", "fromEnum", "boundedEnumChar", "div", "euclideanRingInt", "mod", "unsurrogate", "lead", "trail", "isTrail", "cu", "isLead", "uncons", "s", "v", "length", "Nothing", "Just", "fromEnum", "charAt", "cu1", "cu0", "$43", "unsurrogate", "drop", "fromCharCode", "$75", "toEnumWithDefaults", "boundedEnumChar", "bottom", "boundedChar", "top", "$76", "singleton", "singletonFallback", "v", "lead", "div", "trail", "mod", "singleton", "_singleton", "singletonFallback", "takeFallback", "v", "v1", "v2", "uncons", "Just", "take", "_take", "drop", "s", "length", "take", "getEffProp", "name", "doc", "url", "documentURI", "origin", "compatMode", "characterSet", "contentType", "_documentElement", "getEffProp", "fromJust", "bindFlipped", "bindEffect", "join", "bindMaybe", "map", "functorMaybe", "whenH", "b", "k", "text", "whenA", "b", "k", "unsafeDecode", "str", "fromJust", "$$decodeURIComponent", "ifElseH", "b", "f", "k", "ifElseA", "fromNullableStr", "$53", "fromMaybe", "$54", "toMaybe", "encodeTag", "$55", "$56", "replaceAll", "$57", "$$encodeURIComponent", "class_", "$58", "ClassName", "attr", "a", "_parseQueryString", "srh", "decode", "$59", "replaceAll", "$60", "unsafeDecode", "go", "kv", "v", "split", "Just", "Tuple", "Nothing", "qs", "srh$prime", "take", "$52", "drop", "mapMaybe", "filter", "_lookupQueryStringValue", "qs", "k", "join", "map", "snd", "find", "$62", "v", "fst", "_loc", "bindFlipped", "location", "windowImpl", "_doc", "bindFlipped", "document", "windowImpl", "_curQuerystring", "loc", "_loc", "srh", "search", "_parseQueryString", "type_", "isPropInputType", "discard", "discardUnit", "bindHalogenM", "modifying", "monadStateHalogenM", "bind", "use", "$$void", "functorHalogenM", "liftAff", "monadAffHalogenM", "monadAffAff", "EarchiveDefault", "value0", "EprivateDefault", "EprivacyLock", "UEditField", "USubmit", "_us", "dictStrong", "lens", "v", "v1", "_us1", "strongFn", "_us2", "strongForget", "usetting", "u$prime", "render", "editField", "$31", "div", "class_", "text", "input", "InputCheckbox", "id", "name", "checked", "onChecked", "label", "$$for", "mkState", "handleAction", "us", "editAccountSettings", "mkComponent", "$$const", "mkEval", "defaultEval", "log", "s", "warn", "append", "semigroupArray", "type_", "isPropButtonType", "guard", "monoidArray", "type_1", "isPropInputType", "value", "isPropString", "guard1", "monoidString", "modify_", "monadStateHalogenM", "discard", "discardUnit", "bindHalogenM", "bind", "gets", "liftAff", "monadAffHalogenM", "monadAffAff", "modifying", "pure", "applicativeHalogenM", "$$void", "functorHalogenM", "liftEffect", "monadEffectHalogenM", "monadEffectAff", "use", "assign", "bindFlipped", "bindEffect", "Eurl", "value0", "Etitle", "Edescription", "Etags", "Eprivate", "Etoread", "BEditField", "BEditSubmit", "BDeleteAsk", "BLookupTitle", "BDestroy", "_edit_bm", "dictStrong", "lens", "v", "v1", "_edit_bm1", "strongFn", "_edit_bm2", "strongForget", "_bm", "_bm1", "_apiError", "_apiError1", "addbmark", "b$prime", "render", "mmoment", "mmoment8601", "editField", "f", "$111", "display_exists", "div", "class_", "text", "span", "title", "maybe", "snd", "fst", "button", "ButtonButton", "onClick", "v2", "attr", "display_destroyed", "p", "alert_notification", "alert_text", "display_edit", "form", "onSubmit", "table", "tbody_", "tr_", "td", "td_", "whenH", "isJust", "fromMaybe", "label", "$$for", "input", "InputUrl", "id", "required", "name", "autofocus", "$$null", "onValueChange", "InputText", "disabled", "textarea", "rows", "autocomplete", "AutocompleteOff", "InputCheckbox", "checked", "onChecked", "InputSubmit", "$72", "ifElseH", "mkState", "b", "Nothing", "handleAction", "$77", "$78", "$81", "$82", "edit_bm", "lookupTitle", "mtitle", "Just", "$86", "$87", "bid", "destroy", "$89", "$90", "preventDefault", "editBookmark", "Left", "printError", "log", "Right", "_curQuerystring", "qs", "_doc", "doc", "referrer", "ref", "_loc", "loc", "origin", "org", "_lookupQueryStringValue", "closeWindow", "windowImpl", "v3", "stripPrefix", "setHref", "mkComponent", "$$const", "mkEval", "defaultEval", "unsafeSetInnerHTML", "element", "html", "bindFlipped", "bindMaybe", "getHTMLElementRef", "$24", "map", "functorHalogenM", "v", "bindFlipped", "fromElement", "$25", "getRef", "bind", "bindHalogenM", "get", "monadStateHalogenM", "discard", "discardUnit", "discard1", "for_", "applicativeHalogenM", "foldableMaybe", "liftAff", "monadAffHalogenM", "monadAffAff", "liftEffect", "monadEffectEffect", "mempty", "monoidEffect", "monoidCanceler", "pure", "modify_", "SetInnerHTML", "Receive", "value0", "mkComponent", "toRawHTML", "render", "state", "div", "ref", "handleAction", "v", "v1", "getHTMLElementRef", "mel", "el", "v2", "forkAff", "makeAff", "v3", "unsafeSetInnerHTML", "$26", "$27", "inputval", "mkEval", "defaultEval", "Just", "$30", "_getDefaults", "_defaults", "changeDefaults", "newDefaults", "escapeTest", "escapeReplace", "escapeTestNoEncode", "escapeReplaceNoEncode", "escapeReplacements", "getEscapeReplacement", "ch", "escape", "html", "encode", "unescapeTest", "unescape", "_", "n", "caret", "edit", "regex", "opt", "source", "obj", "name", "val", "valSource", "cleanUrl", "href", "noopTest", "splitCells", "tableRow", "count", "row", "match", "offset", "str", "escaped", "curr", "cells", "i", "rtrim", "c", "invert", "l", "suffLen", "currChar", "findClosingBracket", "b", "level", "outputLink", "cap", "link", "raw", "lexer", "title", "text", "token", "indentCodeCompensation", "matchIndentToCode", "indentToCode", "node", "matchIndentInNode", "indentInNode", "_Tokenizer", "options", "__publicField", "src", "trimmed", "top", "tokens", "bull", "isordered", "list", "itemRegex", "itemContents", "endsWithBlankLine", "endEarly", "line", "t", "nextLine", "indent", "blankLine", "nextBulletRegex", "hrRegex", "fencesBeginRegex", "headingBeginRegex", "rawLine", "istask", "ischecked", "spacers", "hasMultipleLineBreaks", "tag", "headers", "aligns", "rows", "item", "align", "header", "cell", "trimmedUrl", "rtrimSlash", "lastParenIndex", "linkLen", "links", "linkString", "maskedSrc", "prevChar", "lLength", "rDelim", "rLength", "delimTotal", "midDelimTotal", "endReg", "lastCharLength", "hasNonSpaceChars", "hasSpaceCharsOnBothEnds", "prevCapZero", "_b", "_a", "newline", "blockCode", "fences", "hr", "heading", "bullet", "lheading", "_paragraph", "blockText", "_blockLabel", "def", "_tag", "_comment", "paragraph", "blockquote", "blockNormal", "gfmTable", "blockGfm", "__spreadProps", "__spreadValues", "blockPedantic", "inlineCode", "br", "inlineText", "_punctuation", "punctuation", "blockSkip", "emStrongLDelim", "emStrongRDelimAst", "emStrongRDelimUnd", "anyPunctuation", "autolink", "_inlineComment", "_inlineLabel", "reflink", "nolink", "reflinkSearch", "inlineNormal", "inlinePedantic", "inlineGfm", "inlineBreaks", "block", "inline", "_Lexer", "__Lexer", "rules", "next", "leading", "tabs", "lastToken", "cutSrc", "lastParagraphClipped", "extTokenizer", "startIndex", "tempSrc", "tempStart", "getStartIndex", "errMsg", "keepPrevChar", "_Renderer", "code", "infostring", "lang", "quote", "body", "ordered", "start", "type", "startatt", "task", "checked", "content", "flags", "cleanHref", "out", "_TextRenderer", "_Parser", "__Parser", "genericToken", "ret", "headingToken", "codeToken", "tableToken", "j", "k", "blockquoteToken", "listToken", "loose", "itemBody", "checkbox", "htmlToken", "paragraphToken", "textToken", "renderer", "escapeToken", "tagToken", "linkToken", "imageToken", "strongToken", "emToken", "codespanToken", "delToken", "_Hooks", "markdown", "Marked", "args", "__privateAdd", "_parseMarkdown", "_onError", "__privateMethod", "parseMarkdown_fn", "callback", "values", "childTokens", "extensions", "pack", "opts", "ext", "prevRenderer", "extLevel", "prop", "rendererProp", "rendererFunc", "tokenizer", "tokenizerProp", "tokenizerFunc", "prevTokenizer", "hooks", "hooksProp", "hooksFunc", "prevHook", "arg", "walkTokens", "packWalktokens", "parser", "origOpt", "throwError", "onError_fn", "e", "silent", "async", "msg", "markedInstance", "marked", "setOptions", "use", "parseInline", "parser", "_Parser", "lexer", "_Lexer", "import_dompurify", "marked", "markedImpl", "str", "DOMPurify", "marked", "$1", "RawHTML", "markedImpl", "component", "mkComponent", "marked", "log", "dictMonadEffect", "$67", "liftEffect", "$68", "componentSlot", "slot", "dictIsSymbol", "componentSlot1", "componentSlot", "dictOrd", "componentSlot2", "label", "p", "component", "input", "outputQuery", "widget", "ComponentSlot", "$11", "Just", "show", "showInt", "bind", "bindHalogenM", "use", "monadStateHalogenM", "discard", "discardUnit", "liftAff", "monadAffHalogenM", "monadAffAff", "modifying", "modify_", "$$void", "functorHalogenM", "assign", "liftEffect", "monadEffectHalogenM", "monadEffectAff", "when", "applicativeEffect", "gets", "pure", "applicativeHalogenM", "log", "monadEffectEffect", "guard", "monoidString", "slot", "ordUnit", "map", "functorArray", "type_", "isPropButtonType", "guard1", "monoidArray", "type_1", "isPropInputType", "value", "isPropString", "Eurl", "value0", "Etitle", "Edescription", "Etags", "Eprivate", "Etoread", "BNotifyRemove", "BStar", "BDeleteAsk", "BLookupTitle", "BDestroy", "BEdit", "BEditField", "BEditSubmit", "BMarkRead", "_markdown", "$$Proxy", "_edit_bm", "dictStrong", "lens", "v", "v1", "_edit_bm1", "strongFn", "_edit_bm2", "strongForget", "_edit", "_edit1", "_bm", "_bm1", "_bm2", "_apiError", "_apiError1", "bmark", "b$prime", "tagid", "bm", "mkState", "b", "Nothing", "handleAction", "toggleStar", "Star", "UnStar", "$93", "$94", "destroy", "raise", "markRead", "setFocus", "$106", "$107", "edit_bm", "lookupTitle", "mtitle", "Just", "$111", "$112", "preventDefault", "edit_bm$prime", "replaceAll", "editBookmark", "Left", "printError", "Right", "app", "app$prime", "render", "star", "div", "class_", "button", "onClick", "v2", "text", "shdatetime", "take", "shdate", "toLocaleDateString", "linkToFilterTag", "tag", "fromNullableStr", "encodeTag", "linkToFilterSingle", "slug", "editField", "f", "$126", "display", "a", "href", "target", "$121", "$$null", "br_", "fromMaybe", "toMaybe", "isJust", "title", "$122", "component", "absurd", "whenA", "split", "whenH", "ButtonButton", "v3", "span", "alert_notification", "alert_text", "display_edit", "form", "onSubmit", "div_", "input", "InputUrl", "required", "name", "onValueChange", "InputText", "disabled", "textarea", "rows", "id", "autocomplete", "AutocompleteOff", "attr", "InputCheckbox", "checked", "onChecked", "label", "$$for", "InputSubmit", "InputReset", "ifElseH", "mkComponent", "$$const", "mkEval", "defaultEval", "map", "functorArray", "slot", "ordInt", "modify_", "monadStateHalogenM", "HandleBMessage", "value0", "value1", "_bookmark", "$$Proxy", "blist", "st", "render", "bms", "div_", "b", "bmark", "handleAction", "v", "filter", "mkComponent", "$$const", "mkEval", "defaultEval", "foldMap", "monoidArray", "pure", "applicativeHalogenM", "show", "showInt", "map", "functorArray", "nlist", "st$prime", "toTextarea", "input", "drop", "foldMap", "x", "br_", "text", "split", "mmoment", "note", "mmoment8601", "mkState", "notes$prime", "Nothing", "handleAction", "v", "pure", "app", "app$prime", "linkToFilterSingle", "slug", "fromNullableStr", "render", "renderNote", "div", "id", "show", "class_", "a", "href", "$11", "$$null", "take", "title", "maybe", "snd", "fst", "div_", "map", "mkComponent", "$$const", "mkEval", "defaultEval", "show", "showInt", "pure", "applicativeHalogenM", "modifying", "monadStateHalogenM", "modify_", "bind", "bindHalogenM", "use", "discard", "discardUnit", "$$void", "functorHalogenM", "liftAff", "monadAffHalogenM", "monadAffAff", "assign", "liftEffect", "monadEffectHalogenM", "monadEffectAff", "bindFlipped", "bindEffect", "whenM", "monadEffect", "pure1", "applicativeEffect", "foldMap", "monoidArray", "slot", "ordUnit", "type_", "isPropButtonType", "guard", "monoidString", "type_1", "isPropInputType", "value", "isPropString", "Etitle", "value0", "Etext", "EisMarkdown", "Eshared", "NNop", "NEditField", "NEditSubmit", "NEdit", "NDeleteAsk", "NDestroy", "_note", "dictStrong", "lens", "v", "v1", "_note1", "strongForget", "_note2", "strongFn", "_markdown", "$$Proxy", "_edit_note", "_edit_note1", "_edit_note2", "_edit", "_edit1", "_apiError", "_apiError1", "nnote", "st$prime", "notetextid", "note", "mkState", "note$prime", "Nothing", "app", "app$prime", "handleAction", "$84", "$85", "destroyNote", "$88", "$89", "_curQuerystring", "qs", "$91", "_lookupQueryStringValue", "Just", "closeWindow", "windowImpl", "setFocus", "preventDefault", "edit_note", "editNote", "Left", "printError", "log", "Right", "_doc", "doc", "referrer", "ref", "_loc", "loc", "origin", "org", "v2", "$100", "isJust", "stripPrefix", "setHref", "$102", "fromNullableStr", "render", "toTextarea", "input", "drop", "x", "br_", "text", "split", "mmoment", "n", "mmoment8601", "renderNote", "div", "id", "class_", "$108", "$$null", "component", "absurd", "span", "title", "maybe", "snd", "fst", "whenH", "button", "ButtonButton", "onClick", "v3", "editField", "f", "$114", "display_destroyed", "p", "alert_notification", "alert_text", "renderNote_edit", "form", "onSubmit", "fromMaybe", "InputText", "name", "onValueChange", "autofocus", "textarea", "rows", "InputCheckbox", "checked", "onChecked", "label", "$$for", "InputSubmit", "InputReset", "ifElseH", "$$const", "mkComponent", "mkEval", "defaultEval", "pure", "applicativeHalogenM", "bind", "bindHalogenM", "liftAff", "monadAffHalogenM", "monadAffAff", "modify_", "monadStateHalogenM", "gets", "discard", "discardUnit", "$$void", "functorHalogenM", "eq", "eqTagCloudModeF", "identity", "categoryFn", "show", "showNumber", "notElem", "eqString", "map", "functorArray", "$$delete", "comparing", "ordString", "toUnfoldable", "unfoldableArray", "append1", "append", "semigroupArray", "type_", "isPropButtonType", "guard", "monoidString", "minimum", "ordInt", "foldableArray", "maximum", "TInitialize", "TExpanded", "value0", "TChangeMode", "tagcloudcomponent", "m$prime", "rescale", "f", "n", "m", "l", "h", "$57", "mkState", "empty", "fetchTagCloud", "mode$prime", "TagCloudModeNone", "getTagCloud", "tagCloudModeFromF", "tagcloud", "s", "$59", "$60", "fromMaybe", "handleAction", "v", "v1", "mode", "$63", "$64", "setExpanded", "updateTagCloudMode", "$67", "isExpanded", "app", "app$prime", "linkToFilterTag", "rest", "fromNullableStr", "$69", "$$null", "toSizedTag", "curtags", "k", "opacity", "$79", "log", "toNumber", "k_lower", "toLower", "fontsize", "style", "attr", "a", "href", "encodeTag", "class_", "text", "whenH", "$70", "joinWith", "cons", "toArray", "$80", "uncurry", "$81", "sortBy", "$83", "fst", "$82", "concat", "render", "div", "modetop", "TagCloudModeTop", "modelb5", "TagCloudModeLowerBound", "modelb20", "modelb2", "modelb10", "modelb1", "ifElseA", "isRelated", "button", "ButtonButton", "onClick", "v2", "title", "$73", "values", "TagCloudModeRelated", "mkComponent", "$$const", "mkEval", "defaultEval", "Just", "bind", "bindAff", "liftEffect", "monadEffectAff", "bindFlipped", "bindEffect", "composeKleisliFlipped", "pure", "applicativeAff", "bindFlipped1", "bindMaybe", "pure1", "applicativeEffect", "selectElement", "query", "bind", "liftEffect", "bindFlipped", "composeKleisliFlipped", "$16", "querySelector", "$17", "toParentNode", "document", "windowImpl", "mel", "pure", "bindFlipped1", "fromElement", "runHalogenAff", "runAff_", "either", "throwException", "$$const", "pure1", "monadForkAff", "suspendAff", "forkAff", "joinFiber", "monadAff", "functorFiber", "fork", "dict", "unRenderStateX", "unsafeCoerce", "unDriverStateX", "renderStateX_", "dictApplicative", "traverse_", "foldableMaybe", "f", "st", "mkRenderStateX", "renderStateX", "dictFunctor", "mkDriverStateXRef", "mapDriverState", "v", "initDriverState", "component", "input", "handler", "lchs", "selfRef", "$$new", "childrenIn", "empty", "childrenOut", "handlerRef", "pendingQueries", "Just", "Nil", "pendingOuts", "pendingHandlers", "Nothing", "fresh", "subscriptions", "forks", "ds", "write", "traverse_", "applicativeEffect", "foldableMaybe", "bindFlipped", "bindMaybe", "lookup", "ordSubscriptionId", "bind1", "bind", "bindAff", "liftEffect", "monadEffectAff", "discard", "discardUnit", "discard1", "traverse_1", "applicativeAff", "traverse_2", "foldableList", "fork", "monadForkAff", "parSequence_", "parallelAff", "applicativeParAff", "pure", "map", "functorCoyoneda", "parallel", "map1", "functorAff", "sequential", "map2", "functorMaybe", "insert", "retractFreeAp", "$$delete", "ordForkId", "unlessM", "monadEffect", "insert1", "traverse_3", "lookup1", "lookup2", "ordString", "foldFree", "monadRecAff", "alter", "unsubscribe", "sid", "ref", "v", "read", "subs", "queueOrRun", "au", "Nothing", "Just", "write", "Cons", "handleLifecycle", "lchs", "f", "Nil", "result", "handleAff", "runAff_", "either", "throwException", "$$const", "fresh", "modify$prime", "i", "evalQ", "render", "q", "evalM", "Query", "liftCoyoneda", "initRef", "evalChildQuery", "cqb", "v1", "unChildQueryBox", "v2", "evalChild", "v3", "dsx", "unDriverStateX", "ds", "go", "State", "unsafeRefEq", "otherwise", "Subscribe", "SubscriptionId", "subscribe", "act", "evalF", "Action", "finalize", "modify_", "Unsubscribe", "Lift", "ChildQuery", "Raise", "handler", "Par", "hoistFreeAp", "$119", "$120", "Fork", "ForkId", "fid", "$$new", "doneRef", "$$finally", "fiber", "Join", "forkMap", "joinFiber", "Kill", "killFiber", "error", "GetRef", "RefUpdate", "flip", "mapDriverState", "st", "bind", "bindEffect", "discard", "discardUnit", "for_", "applicativeEffect", "foldableMaybe", "traverse_", "applicativeAff", "foldableList", "fork", "monadForkAff", "bindFlipped", "traverse_1", "traverse_2", "traverse_3", "foldableMap", "discard2", "bindAff", "parSequence_", "parallelAff", "applicativeParAff", "liftEffect", "monadEffectAff", "pure", "map", "functorEffect", "pure1", "when", "renderStateX", "$$void", "functorAff", "foreachSlot", "renderStateX_", "tailRecM", "monadRecEffect", "voidLeft", "bind1", "liftEffect1", "monadEffectEffect", "newLifecycleHandlers", "$$new", "Nil", "handlePending", "ref", "queue", "read", "write", "Nothing", "$59", "$60", "handleAff", "reverse", "cleanupSubscriptionsAndForks", "v", "unsubscribe", "$61", "killFiber", "error", "$62", "empty", "runUI", "renderSpec", "component", "i", "squashChildInitializers", "lchs", "preInits", "unDriverStateX", "st", "parentInitializer", "evalM", "render", "Initialize", "modify_", "handlers", "Cons", "runComponent", "handler", "j", "unComponent", "c", "lchs$prime", "$$var", "initDriverState", "pre", "$63", "$64", "renderChild", "childrenInRef", "childrenOutRef", "unComponentSlot", "slot", "childrenIn", "Just", "dsx", "flip", "$65", "maybe", "$66", "Receive", "$67", "$68", "isDuplicate", "$69", "isJust", "warn", "$$throw", "shouldProcessHandlers", "isNothing", "$70", "queueOrRun", "$71", "evalF", "$72", "childHandler", "$73", "$74", "Action", "rendering", "$75", "children", "v1", "childDS", "finalize", "mapDriverState", "ds$prime", "$76", "$77", "mmore", "$52", "$$null", "Done", "Loop", "f", "Finalize", "evalDriver", "disposed", "q", "evalQ", "dispose", "handleLifecycle", "v2", "sio", "create", "$78", "notify", "$79", "getEffProp", "name", "node", "baseURI", "getEffProp", "_ownerDocument", "_parentNode", "_parentElement", "childNodes", "getEffProp", "_firstChild", "_lastChild", "_previousSibling", "_nextSibling", "_nodeValue", "textContent", "getEffProp", "insertBefore", "node1", "node2", "parent", "appendChild", "node", "removeChild", "node", "parent", "map", "functorEffect", "parentNode", "$6", "map", "toMaybe", "$7", "_parentNode", "nextSibling", "$15", "map", "toMaybe", "$16", "_nextSibling", "$runtime_lazy", "name", "moduleName", "init", "state", "val", "lineNumber", "$$void", "functorEffect", "pure", "applicativeEffect", "traverse_", "foldableMaybe", "unwrap", "when", "not", "heytingAlgebraFunction", "heytingAlgebraBoolean", "identity", "categoryFn", "bind1", "bind", "bindAff", "liftEffect", "monadEffectAff", "map", "bindFlipped", "bindEffect", "substInParent", "v", "v1", "v2", "Just", "$$void", "insertBefore", "Nothing", "appendChild", "pure", "removeChild", "npn", "parentNode", "traverse_", "pn", "mkSpec", "handler", "renderChildRef", "document", "getNode", "unRenderStateX", "done", "st", "halt", "buildWidget", "spec", "buildThunk", "unwrap", "$lazy_patch", "$runtime_lazy", "slot", "ComponentSlot", "$lazy_renderComponentSlot", "ThunkSlot", "step$prime", "step", "mkStep", "Step", "extract", "$lazy_render", "cs", "renderChild", "read", "rsx", "node", "patch", "render", "renderComponentSlot", "buildAttributes", "buildProp", "renderSpec", "container", "child", "$$new", "machine", "buildVDom", "toNode", "write", "parent", "nextSib", "nextSibling", "machine$prime", "newNode", "when", "not", "unsafeRefEq", "identity", "runUI", "component", "i", "element", "bind1", "liftEffect", "map", "toDocument", "bindFlipped", "windowImpl", "bind", "bindAff", "traverse_", "applicativeAff", "foldableMaybe", "liftEffect", "monadEffectAff", "$$void", "functorAff", "discard", "discardUnit", "bindFlipped", "bindEffect", "void1", "functorEffect", "viewRendered", "selectElement", "el", "setAttribute", "toElement", "renderTagCloud", "renderElSelector", "tagCloudMode", "runHalogenAff", "runUI", "tagcloudcomponent", "tagCloudModeToF", "renderNotes", "notes", "nlist", "renderNote", "note", "nnote", "renderBookmarks", "bmarks", "blist", "renderAddForm", "bmark", "addbmark", "renderAccountSettings", "accountSettings", "usetting", "logoutE", "e", "$10", "launchAff", "logout", "preventDefault"] }