From 4e182c5afe669179d5fc74e8eff8b681bb7e2334 Mon Sep 17 00:00:00 2001 From: Jon Schoning Date: Fri, 24 Jan 2020 19:29:21 -0600 Subject: [PATCH] implement tag cloud: resolves #9 TODO: Related Tags, All Tags --- config/routes | 4 + espial.cabal | 3 +- purs/package-lock.json | 579 +++++++++++++++++++++++++++++++ purs/src/App.purs | 14 +- purs/src/Component/TagCloud.purs | 154 ++++++++ purs/src/Main.purs | 11 +- purs/src/Model.purs | 180 +++++++--- src/Handler/Common.hs | 45 ++- src/Handler/User.hs | 35 +- src/Model.hs | 68 ++++ static/css/main.css | 1 + static/js/app.min.js | 2 +- static/js/app.min.js.gz | Bin 72184 -> 76076 bytes static/js/app.min.js.map | 2 +- static/js/app.min.js.map.gz | Bin 233416 -> 247241 bytes templates/user.hamlet | 2 + 16 files changed, 1032 insertions(+), 68 deletions(-) create mode 100644 purs/src/Component/TagCloud.purs diff --git a/config/routes b/config/routes index 43316b5..94ae365 100644 --- a/config/routes +++ b/config/routes @@ -31,7 +31,11 @@ api/accountSettings EditAccountSettingsR POST -- add /add AddViewR GET api/add AddR POST + +-- api api/lookuptitle LookupTitleR POST +api/tagcloud UserTagCloudR POST +api/tagcloudmode UserTagCloudModeR POST -- edit /bm/#Int64 DeleteR DELETE diff --git a/espial.cabal b/espial.cabal index aa9486e..8ca4f7a 100644 --- a/espial.cabal +++ b/espial.cabal @@ -4,7 +4,7 @@ cabal-version: 1.12 -- -- see: https://github.com/sol/hpack -- --- hash: 9ee2c0431ff44c217101ae145895fa4c4df6141ac59c65d5d35f586938ce6657 +-- hash: 853ba5e7d0435fcec73b493932da0f2748f4674bbfc62ebbd54df707166f999b name: espial version: 0.0.8 @@ -79,6 +79,7 @@ extra-source-files: purs/src/Component/NNote.purs purs/src/Component/RawHtml.js purs/src/Component/RawHtml.purs + purs/src/Component/TagCloud.purs purs/test/Main.purs source-repository head diff --git a/purs/package-lock.json b/purs/package-lock.json index 0242b3e..8dcaa8f 100644 --- a/purs/package-lock.json +++ b/purs/package-lock.json @@ -1080,6 +1080,12 @@ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", "dev": true }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", @@ -1125,6 +1131,18 @@ } } }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "arch": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", + "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", + "dev": true + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -1408,6 +1426,12 @@ "file-uri-to-path": "1.0.0" } }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", @@ -1608,6 +1632,34 @@ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, + "byline": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", + "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", + "dev": true + }, + "cacache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -1716,6 +1768,12 @@ "upath": "^1.1.1" } }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "dev": true + }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", @@ -1920,6 +1978,20 @@ "safe-buffer": "~5.1.1" } }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -2335,6 +2407,12 @@ "cssom": "0.3.x" } }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -2592,6 +2670,18 @@ "readable-stream": "^2.0.2" } }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -2641,12 +2731,27 @@ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, "entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, + "env-paths": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", + "dev": true + }, "envinfo": { "version": "7.5.0", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.5.0.tgz", @@ -2765,6 +2870,81 @@ "safe-buffer": "^5.1.1" } }, + "execa": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", + "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^3.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -2971,6 +3151,12 @@ "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", "dev": true }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -3015,6 +3201,36 @@ "locate-path": "^3.0.0" } }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.10.0.tgz", + "integrity": "sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ==", + "dev": true, + "requires": { + "debug": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -3059,6 +3275,37 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3647,6 +3894,15 @@ "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", "dev": true }, + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -3987,6 +4243,12 @@ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, "import-fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", @@ -3997,6 +4259,12 @@ "resolve-from": "^3.0.0" } }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", @@ -4208,6 +4476,12 @@ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -4232,6 +4506,12 @@ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", "dev": true }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, "is-svg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", @@ -4529,6 +4809,17 @@ "chalk": "^2.0.1" } }, + "log-update": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-3.3.0.tgz", + "integrity": "sha512-YSKm5n+YjZoGZT5lfmOqasVH1fIH9xQA9A81Y48nZ99PxAP62vdCCtua+Gcu6oTn0nqtZd/LwRV+Vflo53ZDWA==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "cli-cursor": "^2.1.0", + "wrap-ansi": "^5.0.0" + } + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -4538,6 +4829,15 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, "magic-string": { "version": "0.22.5", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", @@ -4602,6 +4902,12 @@ } } }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, "merge2": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", @@ -4693,6 +4999,43 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -4737,6 +5080,20 @@ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", "dev": true }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -4861,6 +5218,23 @@ "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", "dev": true }, + "npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + }, + "dependencies": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + } + } + }, "nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", @@ -5053,6 +5427,12 @@ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + }, "p-limit": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", @@ -5083,6 +5463,17 @@ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", "dev": true }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, "parcel-bundler": { "version": "1.12.4", "resolved": "https://registry.npmjs.org/parcel-bundler/-/parcel-bundler-1.12.4.tgz", @@ -5793,6 +6184,12 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, "psl": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", @@ -5813,12 +6210,99 @@ "safe-buffer": "^5.1.2" } }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "purescript": { + "version": "0.13.6", + "resolved": "https://registry.npmjs.org/purescript/-/purescript-0.13.6.tgz", + "integrity": "sha512-PC93xqr0zDs5l5xnfTlptKzv5jBWbML+dwtpDCZkOOH7h9wgLusQfU4PNfHvdwrSmsBntalGm+Cbd6VrokN7Sg==", + "dev": true, + "requires": { + "purescript-installer": "^0.2.0" + } + }, + "purescript-installer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/purescript-installer/-/purescript-installer-0.2.5.tgz", + "integrity": "sha512-fQAWWP5a7scuchXecjpU4r4KEgSPuS6bBnaP01k9f71qqD28HaJ2m4PXHFkhkR4oATAxTPIGCtmTwtVoiBOHog==", + "dev": true, + "requires": { + "arch": "^2.1.1", + "byline": "^5.0.0", + "cacache": "^11.3.2", + "chalk": "^2.4.2", + "env-paths": "^2.2.0", + "execa": "^2.0.3", + "filesize": "^4.1.2", + "is-plain-obj": "^2.0.0", + "log-symbols": "^3.0.0", + "log-update": "^3.2.0", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "ms": "^2.1.2", + "once": "^1.4.0", + "pump": "^3.0.0", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "tar": "^4.4.6", + "which": "^1.3.1", + "zen-observable": "^0.8.14" + }, + "dependencies": { + "filesize": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-4.2.1.tgz", + "integrity": "sha512-bP82Hi8VRZX/TUBKfE24iiUGsB/sfm2WUrwTQyAzQrhO3V9IhcBBNBXMyzLY5orACxRyYJ3d2HeRVX+eFv4lmA==", + "dev": true + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + } + } + } + }, "purgecss": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-1.4.2.tgz", @@ -6177,6 +6661,15 @@ "inherits": "^2.0.1" } }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -6541,6 +7034,16 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, + "spago": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/spago/-/spago-0.10.0.tgz", + "integrity": "sha512-hcyAVObO+ZgXZaqy0EMCZgw8+Yr+PAGpYfV77C1EuL5gcSaly4snCY6dFBIdcUq0/vYhkCuUpBUGi6Dx+rnxiw==", + "dev": true, + "requires": { + "follow-redirects": "^1.7.0", + "tar": "^4.4.8" + } + }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -6573,6 +7076,15 @@ "tweetnacl": "~0.14.0" } }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, "stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", @@ -6674,6 +7186,16 @@ "readable-stream": "^2.0.2" } }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, "stream-http": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", @@ -6687,6 +7209,12 @@ "xtend": "^4.0.0" } }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -6753,6 +7281,12 @@ "ansi-regex": "^3.0.0" } }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, "stylehacks": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", @@ -6813,6 +7347,21 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, "terser": { "version": "4.6.3", "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", @@ -7074,6 +7623,24 @@ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", "dev": true }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, "unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", @@ -7390,6 +7957,12 @@ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "yargs": { "version": "14.2.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.2.tgz", @@ -7418,6 +7991,12 @@ "camelcase": "^5.0.0", "decamelize": "^1.2.0" } + }, + "zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==", + "dev": true } } } diff --git a/purs/src/App.purs b/purs/src/App.purs index 91d83cd..aef4420 100644 --- a/purs/src/App.purs +++ b/purs/src/App.purs @@ -9,7 +9,7 @@ import Affjax.RequestBody as AXReq import Affjax.RequestHeader (RequestHeader(..)) import Affjax.ResponseFormat as AXRes import Affjax.StatusCode (StatusCode(..)) -import Data.Argonaut (Json) +import Data.Argonaut (Json, decodeJson) import Data.Array ((:)) import Data.Either (Either(..), hush) import Data.FormURLEncoded (FormURLEncoded) @@ -19,7 +19,7 @@ import Data.MediaType.Common (applicationFormURLEncoded, applicationJSON) import Effect.Aff (Aff) import Effect.Class (liftEffect) import Globals (app') -import Model (Bookmark, Bookmark'(..), Note, Note'(..), AccountSettings, AccountSettings'(..)) +import Model (Bookmark, Bookmark'(..), Note, Note'(..), AccountSettings, AccountSettings'(..), TagCloudMode, TagCloudMode'(..), TagCloud) import Simple.JSON as J import Web.HTML (window) import Web.HTML.Location (reload) @@ -60,6 +60,16 @@ lookupTitle bm = do then Just res.body else Nothing +getTagCloud :: TagCloudMode -> Aff (Maybe TagCloud) +getTagCloud mode = do + eres <- fetchJson POST "api/tagcloud" (Just (TagCloudMode' mode)) AXRes.json + pure $ hush eres >>= \res -> + hush (decodeJson res.body) + +updateTagCloudMode :: TagCloudMode -> Aff (Either Error (Response Unit)) +updateTagCloudMode mode = do + fetchJson POST "api/tagcloudmode" (Just (TagCloudMode' mode)) AXRes.ignore + destroyNote :: Int -> Aff (Either Error (Response Unit)) destroyNote nid = do fetchUrlEnc DELETE ("api/note/" <> show nid) Nothing AXRes.ignore diff --git a/purs/src/Component/TagCloud.purs b/purs/src/Component/TagCloud.purs new file mode 100644 index 0000000..ef2f6ae --- /dev/null +++ b/purs/src/Component/TagCloud.purs @@ -0,0 +1,154 @@ +module Component.TagCloud where + +import Prelude hiding (div) + +import App (getTagCloud, updateTagCloudMode) +import Data.Array (sortBy, drop, foldMap, fromFoldable) +import Data.Foldable (for_, maximum, minimum) +import Data.Int (toNumber) +import Data.Lens (Lens', lens, use, (%=), (.=)) +import Data.Maybe (Maybe(..), fromMaybe, maybe) +import Data.Monoid (guard) +import Data.Ord (comparing) +import Data.String (toLower, null, split) as S +import Data.String.Pattern (Pattern(..)) +import Data.Symbol (SProxy(..)) +import Data.Tuple (fst, snd, uncurry) +import Effect.Aff (Aff) +import Effect.Class (liftEffect) +import Foreign.Object (toUnfoldable, toArrayWithKey, empty, values) as F +import Globals (app') +import Halogen (AttrName(..)) +import Halogen as H +import Halogen.HTML (HTML, a, attr, br_, button, div, form, input, label, p, span, text, textarea) +import Halogen.HTML as HH +import Halogen.HTML.Events (onChecked, onClick, onSubmit, onValueChange) +import Halogen.HTML.Properties (ButtonType(..), InputType(..), checked, for, href, id_, name, rows, title, type_, value) +import Math (log, pow, sqrt) +import Model (TagCloud, TagCloudMode, TagCloudModeF(..), tagCloudModeFromF, isExpanded, setExpanded, isSameMode, showMode) +import Util (_loc, class_, fromNullableStr, ifElseH, whenH) +import Web.Event.Event (Event, preventDefault) + +data TAction + = TInitialize + | TExpanded Boolean + | TChangeMode TagCloudModeF + +type TState = + { mode :: TagCloudModeF + , tagcloud :: TagCloud + } + +_mode :: Lens' TState TagCloudModeF +_mode = lens _.mode (_ { mode = _ }) + +tagcloudcomponent :: forall q i o. TagCloudModeF -> H.Component HTML q i o Aff +tagcloudcomponent m' = + H.mkComponent + { initialState: const (mkState m') + , render + , eval: H.mkEval $ H.defaultEval { handleAction = handleAction + , initialize = Just TInitialize + } + } + where + app = app' unit + mkState m = + { mode: m + , tagcloud: F.empty + } + + render :: TState -> H.ComponentHTML TAction () Aff + render s@{ mode:TagCloudModeNone } = + div [class_ "tag_cloud" ] [] + render s@{ mode, tagcloud } = + div [class_ "tag_cloud mv3" ] + [ div [class_ "tag_cloud_header mb2"] + [ button [ type_ ButtonButton, class_ ("pa1 f7 link hover-blue mr1" <> guard (mode == modetop) " b") + , title "show a cloud of your most-used tags" + , onClick \_ -> Just (TChangeMode modetop) + ] [text "Top Tags"] + , button [ type_ ButtonButton, class_ ("pa1 f7 link hover-blue ml2 " <> guard (mode == modelb2) " b") + , title "show tags with at least 2 bookmarks" + , onClick \_ -> Just (TChangeMode modelb2) + ] [text "2"] + , text "‧" + , button [ type_ ButtonButton, class_ ("pa1 f7 link hover-blue" <> guard (mode == modelb5) " b") + , title "show tags with at least 5 bookmarks" + , onClick \_ -> Just (TChangeMode modelb5) + ] [text "5"] + , text "‧" + , button [ type_ ButtonButton, class_ ("pa1 f7 link hover-blue" <> guard (mode == modelb10) " b") + , title "show tags with at least 10 bookmarks" + , onClick \_ -> Just (TChangeMode modelb10) + ] [text "10"] + , text "‧" + , button [ type_ ButtonButton, class_ ("pa1 f7 link hover-blue" <> guard (mode == modelb20) " b") + , title "show tags with at least 20 bookmarks" + , onClick \_ -> Just (TChangeMode modelb20) + ] [text "20"] + , button [ type_ ButtonButton, class_ "pa1 ml2 f7 link silver hover-blue " + , onClick \_ -> Just (TExpanded (not (isExpanded mode)))] + [ text (if isExpanded mode then "hide" else "show") ] + ] + , whenH (isExpanded mode) $ \_ -> do + let n = fromMaybe 1 (minimum (F.values tagcloud)) + m = fromMaybe 1 (maximum (F.values tagcloud)) + div [class_ "tag_cloud_body"] $ case mode of + TagCloudModeNone -> [] + _ -> toArray n m tagcloud + + ] + where + modetop = TagCloudModeTop (isExpanded mode) 200 + modelb2 = TagCloudModeLowerBound (isExpanded mode) 2 + modelb5 = TagCloudModeLowerBound (isExpanded mode) 5 + modelb10 = TagCloudModeLowerBound (isExpanded mode) 10 + modelb20 = TagCloudModeLowerBound (isExpanded mode) 20 + + + toArray :: Int -> Int -> _ + toArray n m = + map (uncurry (toSizedTag n m)) + <<< sortBy (comparing (S.toLower <<< fst)) + <<< F.toUnfoldable + + linkToFilterTag tag = fromNullableStr app.userR <> "/t:" <> tag + toSizedTag :: Int -> Int -> String -> Int -> _ + toSizedTag n m k v = + a [ href (linkToFilterTag k) + , class_ "link tag mr1" + , attr (AttrName "style") ("font-size:" <> show fontsize <> "%" <> + ";opacity:" <> show opacity) + ] [text k] + where + fontsize = rescale identity (toNumber v) (toNumber n) (toNumber m) 100.0 150.0 + opacity = rescale (log <<< (1.0 + _)) (toNumber v) (toNumber n) (toNumber m) 0.6 1.0 + + rescale :: (Number -> Number) -> Number -> Number -> Number -> Number -> Number -> Number + rescale f v n m l h = (f (v - n) / f (m - n)) * (h - l) + l + + fetchTagCloud :: TagCloudModeF -> H.HalogenM TState TAction () o Aff Unit + fetchTagCloud mode' = do + case mode' of + TagCloudModeNone -> pure unit + _ -> do + tagcloud <- H.liftAff $ getTagCloud (tagCloudModeFromF mode') + H.modify_ (\s -> s { + mode = mode', + tagcloud = fromMaybe F.empty tagcloud + }) + + handleAction :: TAction -> H.HalogenM TState TAction () o Aff Unit + handleAction TInitialize = do + mode <- H.gets _.mode + fetchTagCloud mode + handleAction (TExpanded expanded) = do + H.modify_ (\s -> s { mode = setExpanded s.mode expanded }) + mode <- H.gets _.mode + void $ H.liftAff $ updateTagCloudMode (tagCloudModeFromF mode) + handleAction (TChangeMode mode') = do + mode <- H.gets _.mode + if mode == mode' + then handleAction (TExpanded (not (isExpanded mode))) + else fetchTagCloud (setExpanded mode' true) diff --git a/purs/src/Main.purs b/purs/src/Main.purs index 617dc64..df14626 100644 --- a/purs/src/Main.purs +++ b/purs/src/Main.purs @@ -3,18 +3,19 @@ module Main where import Prelude import App (logout) +import Component.AccountSettings (usetting) import Component.Add (addbmark) import Component.BList (blist) import Component.NList (nlist) import Component.NNote (nnote) -import Component.AccountSettings (usetting) +import Component.TagCloud (tagcloudcomponent) import Data.Foldable (traverse_) import Effect (Effect) import Effect.Aff (Aff, launchAff) import Effect.Class (liftEffect) import Halogen.Aff as HA import Halogen.VDom.Driver (runUI) -import Model (Bookmark, Note, AccountSettings) +import Model (AccountSettings, Bookmark, Note, TagCloudMode, tagCloudModeToF) import Web.DOM.Element (setAttribute) import Web.DOM.ParentNode (QuerySelector(..)) import Web.Event.Event (Event, preventDefault) @@ -35,6 +36,12 @@ renderBookmarks renderElSelector bmarks = do void $ runUI (blist bmarks) unit el viewRendered +renderTagCloud :: String -> TagCloudMode -> Effect Unit +renderTagCloud renderElSelector tagCloudMode = do + HA.runHalogenAff do + HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do + void $ runUI (tagcloudcomponent (tagCloudModeToF tagCloudMode)) unit el + renderAddForm :: String -> Bookmark -> Effect Unit renderAddForm renderElSelector bmark = do HA.runHalogenAff do diff --git a/purs/src/Model.purs b/purs/src/Model.purs index 5ba8536..3f818ed 100644 --- a/purs/src/Model.purs +++ b/purs/src/Model.purs @@ -1,54 +1,126 @@ -module Model where - -import Data.Nullable (Nullable) -import Simple.JSON as J - -type BookmarkId = Int -type TagId = Int - -type Bookmark = - { url :: String - , title :: String - , description :: String - , tags :: String - , private :: Boolean - , toread :: Boolean - , bid :: BookmarkId - , slug :: String - , selected :: Boolean - , time :: String - , archiveUrl :: Nullable String - } - -newtype Bookmark' = Bookmark' Bookmark -derive newtype instance bookmark_rfI :: J.ReadForeign Bookmark' -derive newtype instance bookmark_wfI :: J.WriteForeign Bookmark' - -type NoteId = Int -type NoteSlug = String - -type Note = - { id :: NoteId - , slug :: NoteSlug - , title :: String - , text :: String - , length :: Int - , isMarkdown :: Boolean - , shared :: Boolean - , created :: String - , updated :: String - } - -newtype Note' = Note' Note -derive newtype instance note_rfI :: J.ReadForeign Note' -derive newtype instance note_wfI :: J.WriteForeign Note' - -type AccountSettings = - { archiveDefault :: Boolean - , privateDefault :: Boolean - , privacyLock :: Boolean - } - -newtype AccountSettings' = AccountSettings' AccountSettings -derive newtype instance usersettings_rfI :: J.ReadForeign AccountSettings' -derive newtype instance usersettings_wfI :: J.WriteForeign AccountSettings' +module Model where + +import Control.Monad +import Foreign +import Prelude + +import Control.Monad.Except (runExcept) +import Data.Array (intercalate, singleton) +import Data.Either (Either, hush) +import Data.Maybe (Maybe, fromMaybe) +import Data.Nullable (Nullable) +import Foreign.Object (Object) +import Simple.JSON as J + +type BookmarkId = Int +type TagId = Int + +type Bookmark = + { url :: String + , title :: String + , description :: String + , tags :: String + , private :: Boolean + , toread :: Boolean + , bid :: BookmarkId + , slug :: String + , selected :: Boolean + , time :: String + , archiveUrl :: Nullable String + } + +newtype Bookmark' = Bookmark' Bookmark +derive newtype instance bookmark_rfI :: J.ReadForeign Bookmark' +derive newtype instance bookmark_wfI :: J.WriteForeign Bookmark' + +type NoteId = Int +type NoteSlug = String + +type Note = + { id :: NoteId + , slug :: NoteSlug + , title :: String + , text :: String + , length :: Int + , isMarkdown :: Boolean + , shared :: Boolean + , created :: String + , updated :: String + } + +newtype Note' = Note' Note +derive newtype instance note_rfI :: J.ReadForeign Note' +derive newtype instance note_wfI :: J.WriteForeign Note' + +type AccountSettings = + { archiveDefault :: Boolean + , privateDefault :: Boolean + , privacyLock :: Boolean + } + +newtype AccountSettings' = AccountSettings' AccountSettings +derive newtype instance usersettings_rfI :: J.ReadForeign AccountSettings' +derive newtype instance usersettings_wfI :: J.WriteForeign AccountSettings' + +type TagCloudMode = + { mode :: String + , value :: Foreign + , expanded :: Boolean + } +newtype TagCloudMode' = TagCloudMode' TagCloudMode +derive newtype instance tagcloudmode_rfi :: J.ReadForeign TagCloudMode' +derive newtype instance tagcloudmode_wfI :: J.WriteForeign TagCloudMode' + +type TagCloud = Object Int + +data TagCloudModeF + = TagCloudModeTop Boolean Int + | TagCloudModeLowerBound Boolean Int + | TagCloudModeRelated Boolean (Array String) + | TagCloudModeNone + +derive instance eqTagCloudModeF :: Eq TagCloudModeF + +tagCloudModeToF :: TagCloudMode -> TagCloudModeF +tagCloudModeToF tagCloudMode = + fromMaybe TagCloudModeNone $ hush $ runExcept $ + case tagCloudMode.mode of + "top" -> TagCloudModeTop tagCloudMode.expanded <$> readInt tagCloudMode.value + "lowerBound" -> TagCloudModeLowerBound tagCloudMode.expanded <$> readInt tagCloudMode.value + "related" -> (\s -> TagCloudModeRelated tagCloudMode.expanded (singleton s)) <$> readString tagCloudMode.value + _ -> pure TagCloudModeNone + +tagCloudModeFromF :: TagCloudModeF -> TagCloudMode +tagCloudModeFromF (TagCloudModeTop e i) = + { mode: "top" , value: unsafeToForeign i, expanded: e } +tagCloudModeFromF (TagCloudModeLowerBound e i) = + { mode: "lowerBound" , value: unsafeToForeign i, expanded: e } +tagCloudModeFromF (TagCloudModeRelated e tags) = + { mode: "related" , value: unsafeToForeign (intercalate " " tags), expanded: e } +tagCloudModeFromF TagCloudModeNone = + { mode: "related" , value: unsafeToForeign "", expanded: false } + +isExpanded :: TagCloudModeF -> Boolean +isExpanded (TagCloudModeTop e _) = e +isExpanded (TagCloudModeLowerBound e _) = e +isExpanded (TagCloudModeRelated e _) = e +isExpanded TagCloudModeNone = false + +setExpanded :: TagCloudModeF -> Boolean -> TagCloudModeF +setExpanded (TagCloudModeTop e i) e' = TagCloudModeTop e' i +setExpanded (TagCloudModeLowerBound e i) e' = TagCloudModeLowerBound e' i +setExpanded (TagCloudModeRelated e i) e' = TagCloudModeRelated e' i +setExpanded TagCloudModeNone _ = TagCloudModeNone + +isSameMode :: TagCloudModeF -> TagCloudModeF -> Boolean +isSameMode (TagCloudModeTop _ _) (TagCloudModeTop _ _) = true +isSameMode (TagCloudModeLowerBound _ _) (TagCloudModeLowerBound _ _) = true +isSameMode (TagCloudModeRelated _ _) (TagCloudModeRelated _ _) = true +isSameMode TagCloudModeNone TagCloudModeNone = true +isSameMode _ _ = false + +showMode :: TagCloudModeF -> String +showMode (TagCloudModeTop _ _) = "top" +showMode (TagCloudModeLowerBound _ _) = "lowerBound" +showMode (TagCloudModeRelated _ _) = "related" +showMode TagCloudModeNone = "" diff --git a/src/Handler/Common.hs b/src/Handler/Common.hs index 0697981..e76c915 100644 --- a/src/Handler/Common.hs +++ b/src/Handler/Common.hs @@ -5,6 +5,7 @@ import Import import Data.FileEmbed (embedFile) import Text.Read +import Data.Aeson as A -- These handlers embed files in the executable at compile time to avoid a -- runtime dependency, and for efficiency. @@ -21,11 +22,43 @@ getRobotsR = return $ TypedContent typePlain lookupPagingParams :: Handler (Maybe Int64, Maybe Int64) -lookupPagingParams = do - cq <- fmap parseMaybe (lookupGetParam "count") - cs <- fmap parseMaybe (lookupSession "count") - for_ cq (setSession "count" . (pack . show)) - pq <- fmap parseMaybe (lookupGetParam "page") - pure (cq <|> cs, pq) +lookupPagingParams = + (,) + <$> getUrlSessionParam "count" + <*> getUrlParam "page" + +getUrlParam :: (Read a) => Text -> Handler (Maybe a) +getUrlParam name = do + p <- fmap parseMaybe (lookupGetParam name) + pure p where parseMaybe x = readMaybe . unpack =<< x + +getUrlSessionParam :: forall a. + (Show a, Read a) + => Text + -> Handler (Maybe a) +getUrlSessionParam name = do + p <- fmap parseMaybe (lookupGetParam name) + s <- fmap parseMaybe (lookupSession name) + for_ p (setSession name . (pack . show)) + pure (p <|> s) + where + parseMaybe :: Maybe Text -> Maybe a + parseMaybe x = readMaybe . unpack =<< x + +lookupTagCloudMode :: MonadHandler m => m (Maybe TagCloudMode) +lookupTagCloudMode = do + (A.decode . fromStrict =<<) <$> lookupSessionBS "tagCloudMode" + +setTagCloudMode :: MonadHandler m => TagCloudMode -> m () +setTagCloudMode = setSessionBS "tagCloudMode" . toStrict . A.encode + +getTagCloudMode :: MonadHandler m => Bool -> [Tag] -> m TagCloudMode +getTagCloudMode isowner tags = do + ms <- lookupTagCloudMode + pure $ + if not isowner then TagCloudModeNone else + if not (null tags) + then fromMaybe (TagCloudModeTop False 200) ms --TagCloudModeRelated False tags + else fromMaybe (TagCloudModeTop False 200) ms diff --git a/src/Handler/User.hs b/src/Handler/User.hs index d6f882b..47dd345 100644 --- a/src/Handler/User.hs +++ b/src/Handler/User.hs @@ -2,12 +2,13 @@ module Handler.User where import qualified Data.Text as T -import Handler.Common (lookupPagingParams) +import Handler.Common import Import import Text.Blaze.Html (toHtml) import qualified Text.Blaze.Html5 as H import Yesod.RssFeed import qualified Database.Esqueleto as E +import qualified Data.Map as Map getUserR :: UserNameP -> Handler Html getUserR uname@(UserNameP name) = do @@ -50,22 +51,54 @@ _getUser unamep@(UserNameP uname) sharedp' filterp' (TagsP pathtags) = do pure (cnt, bm, tg) when (bcount == 0) (case filterp of FilterSingle _ -> notFound; _ -> pure ()) mroute <- getCurrentRoute + tagCloudMode <- getTagCloudMode isowner pathtags req <- getRequest defaultLayout $ do let pager = $(widgetFile "pager") search = $(widgetFile "search") renderEl = "bookmarks" :: Text + tagCloudRenderEl = "tagCloud" :: Text rssLink (UserFeedR unamep) "feed" $(widgetFile "user") toWidgetBody [julius| app.dat.bmarks = #{ toJSON $ toBookmarkFormList bmarks alltags } || []; app.dat.isowner = #{ isowner }; app.userR = "@{UserR unamep}"; + app.tagCloudMode = #{ toJSON $ tagCloudMode } || {}; |] toWidget [julius| + PS['Main'].renderTagCloud('##{rawJS tagCloudRenderEl}')(app.tagCloudMode)(); PS['Main'].renderBookmarks('##{rawJS renderEl}')(app.dat.bmarks)(); |] +-- Form + +postUserTagCloudR :: Handler () +postUserTagCloudR = do + userId <- requireAuthId + mode <- requireCheckJsonBody + _updateTagCloudMode mode + tc <- runDB $ case mode of + TagCloudModeTop _ n -> tagCountTop userId n + TagCloudModeLowerBound _ n -> tagCountLowerBound userId n + TagCloudModeRelated _ _ -> notFound + TagCloudModeNone -> notFound + sendStatusJSON ok200 (Map.fromList tc :: Map.Map Text Int) + +postUserTagCloudModeR :: Handler () +postUserTagCloudModeR = do + userId <- requireAuthId + mode <- requireCheckJsonBody + _updateTagCloudMode mode + +_updateTagCloudMode :: TagCloudMode -> Handler () +_updateTagCloudMode mode = + case mode of + TagCloudModeTop _ _ -> setTagCloudMode mode + TagCloudModeLowerBound _ _ -> setTagCloudMode mode + TagCloudModeRelated _ _ -> notFound + TagCloudModeNone -> notFound + bookmarkToRssEntry :: (Entity Bookmark,[Text]) -> FeedEntry Text bookmarkToRssEntry ((Entity entryId entry), tags) = FeedEntry { feedEntryLink = (bookmarkHref entry) diff --git a/src/Model.hs b/src/Model.hs index ba8dc37..60f959c 100644 --- a/src/Model.hs +++ b/src/Model.hs @@ -405,8 +405,76 @@ allUserBookmarks user = do let tags = sqlite_group_concat (t ^. BookmarkTagTag) (E.val " ") pure (t ^. BookmarkTagBookmarkId, tags)) + +data TagCloudMode + = TagCloudModeTop Bool Int -- { mode: "top", value: 200 } + | TagCloudModeLowerBound Bool Int -- { mode: "lowerBound", value: 20 } + | TagCloudModeRelated Bool [Tag] + | TagCloudModeNone + deriving (Show, Eq, Read, Generic) + +instance FromJSON TagCloudMode where + parseJSON (Object o) = + case lookup "mode" o of + Just (String "top") -> TagCloudModeTop <$> o .: "expanded" <*> o .: "value" + Just (String "lowerBound") -> TagCloudModeLowerBound <$> o .: "expanded" <*> o .: "value" + Just (String "related") -> TagCloudModeRelated <$> o .: "expanded" <*> (fmap words (o .: "value")) + Just (String "none") -> pure TagCloudModeNone + _ -> fail "bad parse" + parseJSON _ = fail "bad parse" + +instance ToJSON TagCloudMode where + toJSON (TagCloudModeTop e i) = + object [ "mode" .= String "top" + , "value" .= toJSON i + , "expanded" .= Bool e + ] + toJSON (TagCloudModeLowerBound e i) = + object [ "mode" .= String "lowerBound" + , "value" .= toJSON i + , "expanded" .= Bool e + ] + toJSON (TagCloudModeRelated e tags) = + object [ "mode" .= String "related" + , "value" .= String (unwords tags) + , "expanded" .= Bool e + ] + toJSON TagCloudModeNone = + object [ "mode" .= String "none" + , "value" .= Null + , "expanded" .= Bool False + ] + + type Tag = Text +tagCountTop :: Key User -> Int -> DB [(Text, Int)] +tagCountTop user top = + sortOn (toLower . fst) . + fmap (\(tname, tcount) -> (E.unValue tname, E.unValue tcount)) <$> + ( select $ + from $ \t -> do + where_ (t ^. BookmarkTagUserId E.==. val user) + E.groupBy (E.lower_ $ t ^. BookmarkTagTag) + let countRows' = E.countRows + E.orderBy [E.desc countRows'] + E.limit ((fromIntegral . toInteger) top) + pure $ (t ^. BookmarkTagTag, countRows') + ) + +tagCountLowerBound :: Key User -> Int -> DB [(Text, Int)] +tagCountLowerBound user lowerBound = + fmap (\(tname, tcount) -> (E.unValue tname, E.unValue tcount)) <$> + ( select $ + from $ \t -> do + where_ (t ^. BookmarkTagUserId E.==. val user) + E.groupBy (E.lower_ $ t ^. BookmarkTagTag) + let countRows' = E.countRows + E.orderBy [E.asc (t ^. BookmarkTagTag)] + E.having (countRows' E.>=. E.val lowerBound) + pure $ (t ^. BookmarkTagTag, countRows') + ) + -- Notes fileNoteToNote :: UserId -> FileNote -> IO Note diff --git a/static/css/main.css b/static/css/main.css index 535b8a1..be83d50 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -101,6 +101,7 @@ label { .tag { color:#a51; line-height:190%; + display: inline-block; } .private { background:#ddd;border:1px solid #d1d1d1; } diff --git a/static/js/app.min.js b/static/js/app.min.js index 97fb3cf..6909b9a 100644 --- a/static/js/app.min.js +++ b/static/js/app.min.js @@ -11,6 +11,6 @@ var e,t=arguments[3];!function(t){"use strict";var n={newline:/^\n+/,code:/^( {4 var t,e,n=module.exports={};function r(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function i(e){if(t===setTimeout)return setTimeout(e,0);if((t===r||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}function u(t){if(e===clearTimeout)return clearTimeout(t);if((e===o||!e)&&clearTimeout)return e=clearTimeout,clearTimeout(t);try{return e(t)}catch(n){try{return e.call(null,t)}catch(n){return e.call(this,t)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:r}catch(n){t=r}try{e="function"==typeof clearTimeout?clearTimeout:o}catch(n){e=o}}();var c,s=[],l=!1,a=-1;function f(){l&&c&&(l=!1,c.length?s=c.concat(s):a=-1,s.length&&h())}function h(){if(!l){var t=i(f);l=!0;for(var e=s.length;e;){for(c=s,s=[];++a1)for(var n=1;n0}).map(function(e){var t=e.indexOf(":");return n(e.substring(0,t))(e.substring(t+2))}),body:r.getResponse(a)})},a.responseType=e.responseType,a.withCredentials=e.withCredentials,a.send(e.content),function(n,e,t){try{a.abort()}catch(l){return e(l)}return t()}}})}(),function(n){"use strict";(t["Control.Apply"]=t["Control.Apply"]||{}).arrayApply=function(n){return function(e){for(var t=n.length,r=e.length,u=new Array(t*r),a=0,o=0;o=0;u--)r=n(t[u])(r);return r}}},n.foldlArray=function(n){return function(e){return function(t){for(var r=e,u=t.length,a=0;a0)&&(w=H,y=Q._3(j)));break;case m:P=new b(v,new b(h,y,E),P,I),w=H,y=I&&I!==O&&0===B?Q._1.killed(n.fromLeft(I))(Q._2):E?Q._1.failed(n.fromLeft(E))(Q._2):Q._1.completed(n.fromRight(y))(Q._2),E=null,B++;break;case g:B++,P=new b(v,new b(h,y,E),P,I),w=H,y=Q._1;break;case h:B--,w=k,y=Q._1,E=Q._2}break;case L:for(var V in W)W.hasOwnProperty(V)&&(q=q&&W[V].rethrow,D(W[V].handler(y)));return W=null,void(I&&E?setTimeout(function(){throw n.fromLeft(E)},0):n.isLeft(y)&&q&&setTimeout(function(){if(q)throw n.fromLeft(y)},0));case F:w=H;break;case _:return}}function j(n){return function(){if(w===L)return q=q&&n.rethrow,n.handler(y)(),function(){};var e=O++;return(W=W||{})[e]=n,function(){null!==W&&delete W[e]}}}return{kill:function(e,t){return function(){if(w===L)return t(n.right(void 0))(),function(){};var r=j({rethrow:!1,handler:function(){return t(n.right(void 0))}})();switch(w){case F:I=n.left(e),w=L,y=I,J(d);break;case _:null===I&&(I=n.left(e)),0===B&&(w===_&&(P=new b(v,new b(g,y(e)),P,I)),w=k,y=null,E=null,J(++d));break;default:null===I&&(I=n.left(e)),0===B&&(w=k,y=null,E=null)}return r}},join:function(n){return function(){var e=j({rethrow:!1,handler:n})();return w===F&&J(d),e}},onComplete:j,isSuspended:function(){return w===F},run:function(){w===F&&(M.isDraining()?J(d):M.enqueue(function(){J(d)}))}}}function I(e,t,r,u){var o=0,i={},c=0,f={},p=new Error("[ParAff] Early exit"),m=null,g=n;function h(t,r,u){var a,o,c=r,f=null,p=null,m=0,g={};n:for(;;)switch(a=null,c.tag){case w:if(c._3===n&&(a=i[c._1],g[m++]=a.kill(t,function(n){return function(){0===--m&&u(n)()}})),null===f)break n;c=f._2,null===p?f=null:(f=p._1,p=p._2);break;case l:c=c._2;break;case s:case d:f&&(p=new b(v,f,p)),f=c,c=c._1}if(0===m)u(e.right(void 0))();else for(o=0,a=m;o=u.bottom(u.boundedInt)&&n<=u.top(u.boundedInt)?new a.Just(r.fromCharCode(n)):a.Nothing.value},f=new function(n,e,t){this.Ord0=n,this.pred=e,this.succ=t}(function(){return o.ordChar},(e=c,function(n){return function(t){return e(n(t)-1|0)}})(r.toCharCode),function(n){return function(e){return function(t){return n(e(t)+1|0)}}}(c)(r.toCharCode)),l=new function(n,e,t,r,u){this.Bounded0=n,this.Enum1=e,this.cardinality=t,this.fromEnum=r,this.toEnum=u}(function(){return u.boundedChar},function(){return f},r.toCharCode(u.top(u.boundedChar))-r.toCharCode(u.bottom(u.boundedChar))|0,r.toCharCode,c);t.fromEnum=i,t.toEnumWithDefaults=function(n){return function(e){return function(t){return function(r){var o=n.toEnum(r);if(o instanceof a.Just)return o.value0;if(o instanceof a.Nothing)return r0?Math.floor(n/e):-Math.floor(n/-e)}},n.intMod=function(n){return function(e){if(0===e)return 0;var t=Math.abs(e);return(n%t+t)%t}}}(t["Data.EuclideanRing"]=t["Data.EuclideanRing"]||{}),function(n){"use strict";(t["Data.Ring"]=t["Data.Ring"]||{}).intSub=function(n){return function(e){return n-e|0}}}(),function(n){"use strict";n.intAdd=function(n){return function(e){return n+e|0}},n.intMul=function(n){return function(e){return n*e|0}}}(t["Data.Semiring"]=t["Data.Semiring"]||{}),function(n){"use strict";n["Data.Semiring"]=n["Data.Semiring"]||{};var e=n["Data.Semiring"],t=n["Data.Semiring"],r=new function(n,e,t,r){this.add=n,this.mul=e,this.one=t,this.zero=r}(t.intAdd,t.intMul,1,0);e.semiringInt=r}(t),function(n){"use strict";n["Data.Ring"]=n["Data.Ring"]||{};var e=n["Data.Ring"],t=n["Data.Ring"],r=n["Data.Semiring"],u=new function(n,e){this.Semiring0=n,this.sub=e}(function(){return r.semiringInt},t.intSub);e.ringInt=u}(t),function(n){"use strict";n["Data.CommutativeRing"]=n["Data.CommutativeRing"]||{};var e=n["Data.CommutativeRing"],t=n["Data.Ring"],r=new function(n){this.Ring0=n}(function(){return t.ringInt});e.commutativeRingInt=r}(t),function(n){"use strict";n["Data.EuclideanRing"]=n["Data.EuclideanRing"]||{};var e=n["Data.EuclideanRing"],t=n["Data.EuclideanRing"],r=n["Data.CommutativeRing"],u=new function(n,e,t,r){this.CommutativeRing0=n,this.degree=e,this.div=t,this.mod=r}(function(){return r.commutativeRingInt},t.intDegree,t.intDiv,t.intMod);e.div=function(n){return n.div},e.mod=function(n){return n.mod},e.euclideanRingInt=u}(t),function(n){"use strict";n.singleton=function(n){return n},n.length=function(n){return n.length},n.drop=function(n){return function(e){return e.substring(n)}}}(t["Data.String.CodeUnits"]=t["Data.String.CodeUnits"]||{}),function(n){"use strict";n["Data.String.CodeUnits"]=n["Data.String.CodeUnits"]||{};var e=n["Data.String.CodeUnits"],t=n["Data.String.CodeUnits"];e.singleton=t.singleton,e.length=t.length,e.drop=t.drop}(t),function(n){"use strict";(t["Data.String.Unsafe"]=t["Data.String.Unsafe"]||{}).charAt=function(n){return function(e){if(n>=0&&n1){var t=a.fromEnum(a.boundedEnumChar)(l.charAt(1)(n));return p(t)?v(e)(t):e}return e}),b=(r._toCodePointArray(function(n){return d.unfoldr(d.unfoldableArray)(h)(n)})(w),e=a.toEnumWithDefaults(a.boundedEnumChar)(u.bottom(u.boundedChar))(u.top(u.boundedChar)),function(n){return f.singleton(e(n))}),y=r._singleton(function(n){if(n<=65535)return b(n);var e=o.div(o.euclideanRingInt)(n-65536|0)(1024)+55296|0,t=o.mod(o.euclideanRingInt)(n-65536|0)(1024)+56320|0;return b(e)+b(t)}),E=r._take(function n(e){return function(t){if(e<1)return"";var r=g(t);return r instanceof c.Just?y(r.value0.head)+n(e-1|0)(r.value0.tail):t}});t.take=E,t.drop=function(n){return function(e){return f.drop(f.length(E(n)(e)))(e)}}}(t),function(n){"use strict";n.Util=n.Util||{};var e,t=n.Util,r=n["Control.Bind"],u=n["Data.Array"],a=n["Data.Foldable"],o=n["Data.Functor"],i=n["Data.Maybe"],c=n["Data.Nullable"],f=n["Data.String.CodePoints"],l=n["Data.String.Common"],s=n["Data.Tuple"],d=n["Data.Unit"],v=n.Effect,p=n["Global.Unsafe"],m=n["Halogen.HTML.Core"],g=n["Halogen.HTML.Properties"],h=n["Web.HTML"],w=n["Web.HTML.Location"],b=n["Web.HTML.Window"],y=(e=i.fromMaybe(""),function(n){return e(c.toMaybe(n))}),E=r.bindFlipped(v.bindEffect)(b.location)(h.window);t.class_=function(n){return g.class_(m.ClassName(n))},t.attr=function(n){return g.attr(n)},t._loc=E,t._curQuerystring=function(){var n=E();return function(n){var e,t,r=(e=l.replaceAll("+")(" "),function(n){return p.unsafeDecodeURIComponent(e(n))}),a="#"===(t=f.take(1)(n))||"?"===t?f.drop(1)(n):n;return u.mapMaybe(function(n){var e=l.split("=")(n);return 1===e.length?new i.Just(new s.Tuple(r(e[0]),i.Nothing.value)):2===e.length?new i.Just(new s.Tuple(r(e[0]),new i.Just(r(e[1])))):i.Nothing.value})(u.filter(function(n){return""!==n})(l.split("&")(a)))}(w.search(n)())},t._lookupQueryStringValue=function(n){return function(e){return r.join(i.bindMaybe)(o.map(i.functorMaybe)(s.snd)(a.find(a.foldableArray)(function(n){return s.fst(n)===e})(n)))}},t.whenH=function(n){return function(e){return n?e(d.unit):m.text("")}},t.whenA=function(n){return function(e){return n?e(d.unit):[]}},t.ifElseH=function(n){return function(e){return function(t){return n?e(d.unit):t(d.unit)}}},t.fromNullableStr=y}(t),function(n){"use strict";n["Component.AccountSettings"]=n["Component.AccountSettings"]||{};var e=n["Component.AccountSettings"],t=n.App,r=n["Control.Bind"],u=n["DOM.HTML.Indexed.InputType"],a=n["Data.Function"],o=n["Data.Functor"],i=n["Data.Lens.Getter"],c=n["Data.Lens.Internal.Forget"],f=n["Data.Lens.Lens"],l=n["Data.Lens.Setter"],s=n["Data.Maybe"],d=n["Data.Profunctor.Strong"],v=n["Data.Unit"],p=n["Effect.Aff.Class"],m=n.Globals,g=n["Halogen.Component"],h=n["Halogen.HTML.Core"],w=n["Halogen.HTML.Elements"],b=n["Halogen.HTML.Events"],y=n["Halogen.HTML.Properties"],E=n["Halogen.Query.HalogenM"],D=n.Util,A=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),C=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),M=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),F=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),H=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),T=function(n){return f.lens(function(n){return n.us})(function(n){return function(n){return{us:n}}})(n)};e.usetting=function(n){var e;m["app'"](v.unit);return g.mkComponent({initialState:a.const((e=n,{us:e})),render:function(n){var e=function(n){return function(e){return s.Just.create(F.create(n(e)))}};return w.div([D.class_("settings-form")])([w.div([D.class_("fw7 mb2")])([h.text("Account Settings")]),w.div([D.class_("flex items-center mb2")])([w.input([y.type_(h.isPropInputType)(u.InputCheckbox.value),D.class_("pointer mr2"),y.id_("archiveDefault"),y.name("archiveDefault"),y.checked(n.us.archiveDefault),b.onChecked(e(A.create))]),w.label([y.for("archiveDefault"),D.class_("lh-copy")])([h.text("Archive Non-Private Bookmarks (archive.li)")])]),w.div([D.class_("flex items-center mb2")])([w.input([y.type_(h.isPropInputType)(u.InputCheckbox.value),D.class_("pointer mr2"),y.id_("privateDefault"),y.name("privateDefault"),y.checked(n.us.privateDefault),b.onChecked(e(C.create))]),w.label([y.for("privateDefault"),D.class_("lh-copy")])([h.text("Default new bookmarks to Private")])]),w.div([D.class_("flex items-center mb2")])([w.input([y.type_(h.isPropInputType)(u.InputCheckbox.value),D.class_("pointer mr2"),y.id_("privacyLock"),y.name("privacyLock"),y.checked(n.us.privacyLock),b.onChecked(e(M.create))]),w.label([y.for("privacyLock"),D.class_("lh-copy")])([h.text("Privacy Lock (Private Account)")])])])},eval:g.mkEval({handleAction:function(n){if(n instanceof F)return r.discard(r.discardUnit)(E.bindHalogenM)(l.modifying(E.monadStateHalogenM)(T(d.strongFn))(function(){if(n.value0 instanceof A)return function(e){return{archiveDefault:n.value0.value0,privateDefault:e.privateDefault,privacyLock:e.privacyLock}};if(n.value0 instanceof C)return function(e){return{archiveDefault:e.archiveDefault,privateDefault:n.value0.value0,privacyLock:e.privacyLock}};if(n.value0 instanceof M)return function(e){return{archiveDefault:e.archiveDefault,privateDefault:e.privateDefault,privacyLock:n.value0.value0}};throw new Error("Failed pattern match at Component.AccountSettings (line 80, column 12 - line 83, column 46): "+[n.value0.constructor.name])}()))(function(){return r.bind(E.bindHalogenM)(i.use(E.monadStateHalogenM)(T(c.strongForget)))(function(n){return o.void(E.functorHalogenM)(p.liftAff(E.monadAffHalogenM(p.monadAffAff))(t.editAccountSettings(n)))})});if(n instanceof H)return r.bind(E.bindHalogenM)(i.use(E.monadStateHalogenM)(T(c.strongForget)))(function(n){return o.void(E.functorHalogenM)(p.liftAff(E.monadAffHalogenM(p.monadAffAff))(t.editAccountSettings(n)))});throw new Error("Failed pattern match at Component.AccountSettings (line 78, column 3 - line 78, column 69): "+[n.constructor.name])},handleQuery:g.defaultEval.handleQuery,receive:g.defaultEval.receive,initialize:g.defaultEval.initialize,finalize:g.defaultEval.finalize})})}}(t),function(n){"use strict";n["Component.Add"]=n["Component.Add"]||{};var e=n["Component.Add"],t=n.App,r=n["Control.Applicative"],u=n["Control.Bind"],a=n["Control.Monad.State.Class"],o=n["DOM.HTML.Indexed.ButtonType"],i=n["DOM.HTML.Indexed.InputType"],c=n["Data.Array"],f=n["Data.Foldable"],l=n["Data.Function"],s=n["Data.Functor"],d=n["Data.Lens.Getter"],v=n["Data.Lens.Internal.Forget"],p=n["Data.Lens.Lens"],m=n["Data.Lens.Setter"],g=n["Data.Maybe"],h=n["Data.Monoid"],w=n["Data.Profunctor.Strong"],b=n["Data.Semigroup"],y=n["Data.String.Common"],E=n["Data.Tuple"],D=n["Data.Unit"],A=n["Effect.Aff"],C=n["Effect.Aff.Class"],M=n["Effect.Class"],F=n.Globals,H=n["Halogen.Component"],T=n["Halogen.HTML.Core"],S=n["Halogen.HTML.Elements"],_=n["Halogen.HTML.Events"],k=n["Halogen.HTML.Properties"],L=n["Halogen.Query.HalogenM"],x=n.Util,I=n["Web.Event.Event"],R=n["Web.HTML"],U=n["Web.HTML.Location"],N=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),P=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),B=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),O=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),W=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),q=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),J=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),j=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Q=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),V=function(){function n(){}return n.value=new n,n}(),z=function(){function n(){}return n.value=new n,n}(),G=function(n){return p.lens(function(n){return n.edit_bm})(function(n){return function(e){return{edit_bm:e,bm:n.bm,deleteAsk:n.deleteAsk,destroyed:n.destroyed,loading:n.loading}}})(n)};e.addbmark=function(n){var e;F["app'"](D.unit);return H.mkComponent({initialState:l.const((e=n,{bm:e,edit_bm:e,deleteAsk:!1,destroyed:!1,loading:!1})),render:function(n){c.drop(1),f.foldMap(f.foldableArray)(h.monoidArray)(function(n){return[S.br_,T.text(n)]}),y.split("\n");var e=F.mmoment8601(n.bm.time),t=function(n){return function(e){return g.Just.create(J.create(n(e)))}},r=function(t){return S.div([x.class_("alert")])([T.text("previously saved "),S.span([x.class_("link f7 dib gray pr3"),k.title(g.maybe(n.bm.time)(E.snd)(e))])([T.text(g.maybe(" ")(E.fst)(e))]),S.div([x.class_("edit_links dib ml1")])([S.div([x.class_("delete_link di")])([S.button(b.append(b.semigroupArray)([k.type_(T.isPropButtonType)(o.ButtonButton.value),_.onClick(function(n){return new g.Just(new Q(!0))}),x.class_("delete")])(h.guard(h.monoidArray)(n.deleteAsk)([x.attr("hidden")("hidden")])))([T.text("delete")]),S.span(b.append(b.semigroupArray)([x.class_("confirm red")])(h.guard(h.monoidArray)(!n.deleteAsk)([x.attr("hidden")("hidden")])))([S.button([k.type_(T.isPropButtonType)(o.ButtonButton.value),_.onClick(function(n){return new g.Just(new Q(!1))})])([T.text("cancel / ")]),S.button([k.type_(T.isPropButtonType)(o.ButtonButton.value),_.onClick(function(n){return new g.Just(z.value)}),x.class_("red")])([T.text("destroy")])])])])])};return x.ifElseH(!n.destroyed)(function(e){return S.form([_.onSubmit(function(n){return g.Just.create(j.create(n))})])([S.table([x.class_("w-100")])([S.tbody_([S.tr_([S.td([x.class_("w1")])([]),S.td_([x.whenH(n.bm.bid>0)(r)])]),S.tr_([S.td_([S.label([k.for("url")])([T.text("URL")])]),S.td_([S.input([k.type_(T.isPropInputType)(i.InputUrl.value),k.id_("url"),x.class_("w-100 mv1"),k.required(!0),k.name("url"),k.autofocus(y.null(n.bm.url)),k.value(n.edit_bm.url),_.onValueChange(t(N.create))])])]),S.tr_([S.td_([S.label([k.for("title")])([T.text("title")])]),S.td([x.class_("flex")])([S.input([k.type_(T.isPropInputType)(i.InputText.value),k.id_("title"),x.class_("w-100 mv1 flex-auto"),k.name("title"),k.value(n.edit_bm.title),_.onValueChange(t(P.create))]),S.button([k.disabled(n.loading),k.type_(T.isPropButtonType)(o.ButtonButton.value),_.onClick(function(n){return new g.Just(V.value)}),x.class_("ml2 input-reset ba b--navy pointer f6 di dim pa1 ma1 mr0 "+h.guard(h.monoidString)(n.loading)("bg-light-silver"))])([T.text("fetch")])])]),S.tr_([S.td_([S.label([k.for("description")])([T.text("description")])]),S.td_([S.textarea([x.class_("w-100 mt1 mid-gray"),k.id_("description"),k.name("description"),k.rows(4),k.value(n.edit_bm.description),_.onValueChange(t(B.create))])])]),S.tr_([S.td_([S.label([k.for("tags")])([T.text("tags")])]),S.td_([S.input([k.type_(T.isPropInputType)(i.InputText.value),k.id_("tags"),x.class_("w-100 mv1"),k.name("tags"),k.autocomplete(!1),x.attr("autocapitalize")("off"),k.autofocus(!y.null(n.bm.url)),k.value(n.edit_bm.tags),_.onValueChange(t(O.create))])])]),S.tr_([S.td_([S.label([k.for("private")])([T.text("private")])]),S.td_([S.input([k.type_(T.isPropInputType)(i.InputCheckbox.value),k.id_("private"),x.class_("private pointer"),k.name("private"),k.checked(n.edit_bm.private),_.onChecked(t(W.create))])])]),S.tr_([S.td_([S.label([k.for("toread")])([T.text("read later")])]),S.td_([S.input([k.type_(T.isPropInputType)(i.InputCheckbox.value),k.id_("toread"),x.class_("toread pointer"),k.name("toread"),k.checked(n.edit_bm.toread),_.onChecked(t(q.create))])])]),S.tr_([S.td_([]),S.td_([S.input([k.type_(T.isPropInputType)(i.InputSubmit.value),x.class_("ph3 pv2 input-reset ba b--navy bg-transparent pointer f6 dib mt1 dim"),k.value(n.bm.bid>0?"update bookmark":"add bookmark")])])])])])])})(function(n){return S.p([x.class_("red")])([T.text("you killed this bookmark")])})},eval:H.mkEval({handleAction:function(n){if(n instanceof Q)return a.modify_(L.monadStateHalogenM)(function(e){var t={};for(var r in e)({}).hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.deleteAsk=n.value0,t});if(n instanceof V)return u.discard(u.discardUnit)(L.bindHalogenM)(a.modify_(L.monadStateHalogenM)(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e.loading=!0,e}))(function(){return u.bind(L.bindHalogenM)(a.gets(L.monadStateHalogenM)(function(n){return n.edit_bm}))(function(n){return u.bind(L.bindHalogenM)(C.liftAff(L.monadAffHalogenM(C.monadAffAff))(t.lookupTitle(n)))(function(n){return u.discard(u.discardUnit)(L.bindHalogenM)(function(){if(n instanceof g.Just)return m.modifying(L.monadStateHalogenM)(G(w.strongFn))(function(e){return{url:e.url,title:n.value0,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}});if(n instanceof g.Nothing)return r.pure(L.applicativeHalogenM)(D.unit);throw new Error("Failed pattern match at Component.Add (line 165, column 5 - line 167, column 29): "+[n.constructor.name])}())(function(){return a.modify_(L.monadStateHalogenM)(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e.loading=!1,e})})})})});if(n instanceof z)return u.bind(L.bindHalogenM)(a.gets(L.monadStateHalogenM)(function(n){return n.bm.bid}))(function(n){return u.discard(u.discardUnit)(L.bindHalogenM)(s.void(L.functorHalogenM)(C.liftAff(L.monadAffHalogenM(C.monadAffAff))(t.destroy(n))))(function(){return a.modify_(L.monadStateHalogenM)(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e.destroyed=!0,e})})});if(n instanceof J)return m.modifying(L.monadStateHalogenM)(G(w.strongFn))(function(){if(n.value0 instanceof N)return function(e){return{url:n.value0.value0,title:e.title,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof P)return function(e){return{url:e.url,title:n.value0.value0,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof B)return function(e){return{url:e.url,title:e.title,description:n.value0.value0,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof O)return function(e){return{url:e.url,title:e.title,description:e.description,tags:n.value0.value0,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof W)return function(e){return{url:e.url,title:e.title,description:e.description,tags:e.tags,private:n.value0.value0,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof q)return function(e){return{url:e.url,title:e.title,description:e.description,tags:e.tags,private:e.private,toread:n.value0.value0,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};throw new Error("Failed pattern match at Component.Add (line 174, column 17 - line 180, column 36): "+[n.value0.constructor.name])}());if(n instanceof j)return u.discard(u.discardUnit)(L.bindHalogenM)(M.liftEffect(L.monadEffectHalogenM(A.monadEffectAff))(I.preventDefault(n.value0)))(function(){return u.bind(L.bindHalogenM)(d.use(L.monadStateHalogenM)(G(v.strongForget)))(function(n){return u.discard(u.discardUnit)(L.bindHalogenM)(s.void(L.functorHalogenM)(C.liftAff(L.monadAffHalogenM(C.monadAffAff))(t.editBookmark(n))))(function(){return u.discard(u.discardUnit)(L.bindHalogenM)(m.assign(L.monadStateHalogenM)((e=w.strongFn,p.lens(function(n){return n.bm})(function(n){return function(e){return{bm:e,deleteAsk:n.deleteAsk,destroyed:n.destroyed,edit_bm:n.edit_bm,loading:n.loading}}})(e)))(n))(function(){return u.bind(L.bindHalogenM)(M.liftEffect(L.monadEffectHalogenM(A.monadEffectAff))(x._loc))(function(n){return u.bind(L.bindHalogenM)(M.liftEffect(L.monadEffectHalogenM(A.monadEffectAff))(R.window))(function(e){return u.bind(L.bindHalogenM)(M.liftEffect(L.monadEffectHalogenM(A.monadEffectAff))(x._curQuerystring))(function(t){var r=x._lookupQueryStringValue(t)("next");return r instanceof g.Just?M.liftEffect(L.monadEffectHalogenM(A.monadEffectAff))(U.setHref(r.value0)(n)):M.liftEffect(L.monadEffectHalogenM(A.monadEffectAff))(F.closeWindow(e))})})})});var e})})});throw new Error("Failed pattern match at Component.Add (line 158, column 3 - line 158, column 69): "+[n.constructor.name])},handleQuery:H.defaultEval.handleQuery,receive:H.defaultEval.receive,initialize:H.defaultEval.initialize,finalize:H.defaultEval.finalize})})}}(t),(t["Component.RawHtml"]=t["Component.RawHtml"]||{}).unsafeSetInnerHTML=function(n){return function(e){return function(){n.innerHTML=e}}},function(n){"use strict";(t["Web.HTML.HTMLElement"]=t["Web.HTML.HTMLElement"]||{})._read=function(n,e,t){var r=Object.prototype.toString.call(t);return 0===r.indexOf("[object HTML")&&r.indexOf("Element]")===r.length-8?e(t):n}}(),function(n){"use strict";n["Web.HTML.HTMLElement"]=n["Web.HTML.HTMLElement"]||{};var e=n["Web.HTML.HTMLElement"],t=n["Web.HTML.HTMLElement"],r=n["Data.Maybe"],u=n["Unsafe.Coerce"],a=u.unsafeCoerce,o=u.unsafeCoerce;e.fromElement=function(n){return t._read(r.Nothing.value,r.Just.create,n)},e.toElement=o,e.toNode=a}(t),function(n){"use strict";n["Halogen.Query"]=n["Halogen.Query"]||{};var e,t=n["Halogen.Query"],r=n["Control.Bind"],u=n["Data.Functor"],a=n["Data.Maybe"],o=n["Halogen.Query.HalogenM"],i=n["Web.HTML.HTMLElement"],c=(e=u.map(o.functorHalogenM)(function(n){return r.bindFlipped(a.bindMaybe)(i.fromElement)(n)}),function(n){return e(o.getRef(n))});t.getHTMLElementRef=c}(t),function(n){"use strict";n["Component.RawHtml"]=n["Component.RawHtml"]||{};var e=n["Component.RawHtml"],t=n["Component.RawHtml"],r=n["Control.Applicative"],u=n["Control.Bind"],a=n["Control.Monad.State.Class"],o=n["Data.Foldable"],i=n["Data.Maybe"],c=n["Data.Monoid"],f=n["Data.Unit"],l=n.Effect,s=n["Effect.Aff"],d=n["Effect.Aff.Class"],v=n["Effect.Class"],p=n["Halogen.Component"],m=n["Halogen.HTML.Elements"],g=n["Halogen.HTML.Properties"],h=n["Halogen.Query"],w=n["Halogen.Query.HalogenM"],b=function(){function n(){}return n.value=new n,n}(),y=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}();e.mkComponent=function(n){return p.mkComponent({initialState:function(n){return{elRef:"inputval",inputval:n}},render:function(n){return m.div([g.ref(n.elRef)])([])},eval:p.mkEval({handleAction:function e(i){if(i instanceof b)return u.bind(w.bindHalogenM)(a.get(w.monadStateHalogenM))(function(e){return u.bind(w.bindHalogenM)(h.getHTMLElementRef(e.elRef))(function(e){return u.discard(u.discardUnit)(w.bindHalogenM)(o.for_(w.applicativeHalogenM)(o.foldableMaybe)(e)(function(e){return u.bind(w.bindHalogenM)(a.get(w.monadStateHalogenM))(function(r){return d.liftAff(w.monadAffHalogenM(d.monadAffAff))(s.forkAff(s.makeAff(function(u){return function(){return v.liftEffect(v.monadEffectEffect)(t.unsafeSetInnerHTML(e)(n(r.inputval)))(),c.mempty(l.monoidEffect(s.monoidCanceler))()}})))})}))(function(){return r.pure(w.applicativeHalogenM)(f.unit)})})});if(i instanceof y)return u.discard(u.discardUnit)(w.bindHalogenM)(a.modify_(w.monadStateHalogenM)(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e.inputval=i.value0,e}))(function(){return e(b.value)});throw new Error("Failed pattern match at Component.RawHtml (line 50, column 18 - line 63, column 34): "+[i.constructor.name])},handleQuery:p.defaultEval.handleQuery,receive:function(n){return i.Just.create(y.create(n))},initialize:new i.Just(b.value),finalize:p.defaultEval.finalize})})}}(t),function(n){var e=require("marked");e.setOptions({pedantic:!1,gfm:!0}),n.markedImpl=function(n){return n?e(n):""}}(t["Foreign.Marked"]=t["Foreign.Marked"]||{}),function(n){"use strict";n["Foreign.Marked"]=n["Foreign.Marked"]||{};var e=n["Foreign.Marked"],t=n["Foreign.Marked"],r=n.Globals;e.marked=function(n){return r.RawHTML(t.markedImpl(n))}}(t),function(n){"use strict";n["Component.Markdown"]=n["Component.Markdown"]||{};var e=n["Component.Markdown"],t=n["Component.RawHtml"],r=n["Foreign.Marked"],u=t.mkComponent(r.marked);e.component=u}(t),function(n){"use strict";n["Data.Void"]=n["Data.Void"]||{};n["Data.Void"].absurd=function(n){return function(n){for(var e;;)e=void(n=n);return e}(n)}}(t),function(n){"use strict";n["Halogen.HTML"]=n["Halogen.HTML"]||{};var e=n["Halogen.HTML"],t=n["Halogen.Component"],r=n["Halogen.HTML.Core"];e.slot=function(n){return function(n){return function(e){return function(u){return function(a){return function(o){return function(i){return function(c){return r.widget(new t.ComponentSlot(t.componentSlot()(n)(e)(u)(a)(o)(i)(c)))}}}}}}}}}(t),function(n){"use strict";n["Component.BMark"]=n["Component.BMark"]||{};var e=n["Component.BMark"],t=n.App,r=n["Component.Markdown"],u=n["Control.Applicative"],a=n["Control.Bind"],o=n["Control.Monad"],i=n["Control.Monad.State.Class"],c=n["DOM.HTML.Indexed.ButtonType"],f=n["DOM.HTML.Indexed.InputType"],l=n["Data.Function"],s=n["Data.Functor"],d=n["Data.Lens.Getter"],v=n["Data.Lens.Internal.Forget"],p=n["Data.Lens.Lens"],m=n["Data.Lens.Setter"],g=n["Data.Maybe"],h=n["Data.Monoid"],w=n["Data.Nullable"],b=n["Data.Ord"],y=n["Data.Profunctor.Strong"],E=n["Data.Show"],D=n["Data.String.CodePoints"],A=n["Data.String.Common"],C=n["Data.Symbol"],M=n["Data.Unit"],F=n["Data.Void"],H=n.Effect,T=n["Effect.Aff"],S=n["Effect.Aff.Class"],_=n["Effect.Class"],k=n.Globals,L=n["Halogen.Component"],x=n["Halogen.HTML"],I=n["Halogen.HTML.Core"],R=n["Halogen.HTML.Elements"],U=n["Halogen.HTML.Events"],N=n["Halogen.HTML.Properties"],P=n["Halogen.Query.HalogenM"],B=n.Util,O=n["Web.Event.Event"],W=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),q=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),J=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),j=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Q=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),V=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),z=function(){function n(){}return n.value=new n,n}(),G=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),K=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),X=function(){function n(){}return n.value=new n,n}(),Y=function(){function n(){}return n.value=new n,n}(),$=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Z=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),nn=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),en=function(){function n(){}return n.value=new n,n}(),tn=C.SProxy.value,rn=function(n){return p.lens(function(n){return n.edit_bm})(function(n){return function(e){return{edit_bm:e,bm:n.bm,deleteAsk:n.deleteAsk,edit:n.edit,loading:n.loading}}})(n)},un=function(n){return p.lens(function(n){return n.edit})(function(n){return function(e){return{edit:e,bm:n.bm,deleteAsk:n.deleteAsk,edit_bm:n.edit_bm,loading:n.loading}}})(n)},an=function(n){return p.lens(function(n){return n.bm})(function(n){return function(e){return{bm:e,deleteAsk:n.deleteAsk,edit:n.edit,edit_bm:n.edit_bm,loading:n.loading}}})(n)};e.bmark=function(n){var e,p=function(n){return E.show(E.showInt)(n.bid)+"_tags"},on=k["app'"](M.unit);return L.mkComponent({initialState:l.const((e=n,{bm:e,edit_bm:e,deleteAsk:!1,edit:!1,loading:!1})),render:function(n){var e=D.take(16)(n.bm.time)+"Z",t=function(n){return B.fromNullableStr(on.userR)+"/t:"+n},u=function(n){return function(e){return g.Just.create(Z.create(n(e)))}};return R.div([N.id_(E.show(E.showInt)(n.bm.bid)),B.class_("bookmark w-100 mw7 pa1 mb3"+h.guard(h.monoidString)(n.bm.private)(" private"))])([B.whenH(on.dat.isowner)(function(e){return R.div([B.class_("star fl pointer"+h.guard(h.monoidString)(n.bm.selected)(" selected"))])([R.button([B.class_("moon-gray"),U.onClick(function(e){return new g.Just(new G(!n.bm.selected))})])([I.text("✭")])])}),B.ifElseH(n.edit)(function(e){return R.div([B.class_("edit_bookmark_form pa2 pt0 bg-white")])([R.form([U.onSubmit(function(n){return g.Just.create(nn.create(n))})])([R.div_([I.text("url")]),R.input([N.type_(I.isPropInputType)(f.InputUrl.value),B.class_("url w-100 mb2 pt1 f7 edit_form_input"),N.required(!0),N.name("url"),N.value(n.edit_bm.url),U.onValueChange(u(W.create))]),R.div_([I.text("title")]),R.div([B.class_("flex")])([R.input([N.type_(I.isPropInputType)(f.InputText.value),B.class_("title w-100 mb2 pt1 f7 edit_form_input"),N.name("title"),N.value(n.edit_bm.title),U.onValueChange(u(q.create))]),R.button([N.disabled(n.loading),N.type_(I.isPropButtonType)(c.ButtonButton.value),U.onClick(function(n){return new g.Just(X.value)}),B.class_("ml1 pa1 mb2 dark-gray ba b--moon-gray bg-near-white pointer rdim f7 "+h.guard(h.monoidString)(n.loading)("bg-light-silver"))])([I.text("fetch")])]),R.div_([I.text("description")]),R.textarea([B.class_("description w-100 mb1 pt1 f7 edit_form_input"),N.name("description"),N.rows(5),N.value(n.edit_bm.description),U.onValueChange(u(J.create))]),R.div([N.id_("tags_input_box")])([R.div_([I.text("tags")]),R.input([N.id_(p(n.edit_bm)),N.type_(I.isPropInputType)(f.InputText.value),B.class_("tags w-100 mb1 pt1 f7 edit_form_input"),N.name("tags"),N.autocomplete(!1),B.attr("autocapitalize")("off"),N.value(n.edit_bm.tags),U.onValueChange(u(j.create))])]),R.div([B.class_("edit_form_checkboxes mv3")])([R.input([N.type_(I.isPropInputType)(f.InputCheckbox.value),B.class_("private pointer"),N.id_("edit_private"),N.name("private"),N.checked(n.edit_bm.private),U.onChecked(u(Q.create))]),I.text(" "),R.label([N.for("edit_private"),B.class_("mr2")])([I.text("private")]),I.text(" "),R.input([N.type_(I.isPropInputType)(f.InputCheckbox.value),B.class_("toread pointer"),N.id_("edit_toread"),N.name("toread"),N.checked(n.edit_bm.toread),U.onChecked(u(V.create))]),I.text(" "),R.label([N.for("edit_toread")])([I.text("to-read")])]),R.input([N.type_(I.isPropInputType)(f.InputSubmit.value),B.class_("mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"),N.value("save")]),I.text(" "),R.input([N.type_(I.isPropInputType)(f.InputReset.value),B.class_("pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"),N.value("cancel"),U.onClick(function(n){return new g.Just(new $(!1))})])])])})(function(u){return R.div([B.class_("display")])([R.a([N.href(n.bm.url),N.target("_blank"),B.class_("link f5 lh-title"+h.guard(h.monoidString)(n.bm.toread)(" unread"))])([I.text(A.null(n.bm.title)?"[no title]":n.bm.title)]),R.br_,R.a([N.href(n.bm.url),B.class_("link f7 gray hover-blue")])([I.text(n.bm.url)]),R.a([N.href(g.fromMaybe("http://archive.is/"+n.bm.url)(w.toMaybe(n.bm.archiveUrl))),B.class_("link f7 gray hover-blue ml2"+h.guard(h.monoidString)(g.isJust(w.toMaybe(n.bm.archiveUrl)))(" green")),N.target("_blank"),N.title("archive link")])([g.isJust(w.toMaybe(n.bm.archiveUrl))?I.text("☑"):I.text("☐")]),R.br_,R.div([B.class_("description mt1 mid-gray")])([x.slot()(new C.IsSymbol(function(){return"markdown"}))(b.ordUnit)(tn)(M.unit)(r.component)(n.bm.description)(F.absurd)]),R.div([B.class_("tags")])(B.whenA(!A.null(n.bm.tags))(function(e){return s.map(s.functorArray)(function(n){return R.a([B.class_("link tag mr1"+h.guard(h.monoidString)("."===D.take(1)(n))(" private")),N.href(t(n))])([I.text(n)])})(A.split(" ")(n.bm.tags))})),R.a([B.class_("link f7 dib gray w4"),N.href((a=n.bm.slug,B.fromNullableStr(on.userR)+"/b:"+a))])([I.text(e)]),B.whenH(on.dat.isowner)(function(e){return R.div([B.class_("edit_links di")])([R.button([N.type_(I.isPropButtonType)(c.ButtonButton.value),U.onClick(function(n){return new g.Just(new $(!0))}),B.class_("edit light-silver hover-blue")])([I.text("edit  ")]),R.div([B.class_("delete_link di")])([R.button([N.type_(I.isPropButtonType)(c.ButtonButton.value),U.onClick(function(n){return new g.Just(new K(!0))}),B.class_("delete light-silver hover-blue"+h.guard(h.monoidString)(n.deleteAsk)(" dn"))])([I.text("delete")]),R.span([B.class_("confirm red"+h.guard(h.monoidString)(!n.deleteAsk)(" dn"))])([R.button([N.type_(I.isPropButtonType)(c.ButtonButton.value),U.onClick(function(n){return new g.Just(new K(!1))})])([I.text("cancel / ")]),R.button([N.type_(I.isPropButtonType)(c.ButtonButton.value),U.onClick(function(n){return new g.Just(Y.value)}),B.class_("red")])([I.text("destroy")])])])])}),B.whenH(on.dat.isowner)(function(e){return R.div([B.class_("read di")])(h.guard(h.monoidArray)(n.bm.toread)([I.text("  "),R.button([U.onClick(function(n){return new g.Just(en.value)}),B.class_("mark_read")])([I.text("mark as read")])]))})]);var a})])},eval:L.mkEval({handleAction:function(n){if(n instanceof G)return a.bind(P.bindHalogenM)(d.use(P.monadStateHalogenM)(an(v.strongForget)))(function(e){return a.discard(a.discardUnit)(P.bindHalogenM)(S.liftAff(P.monadAffHalogenM(S.monadAffAff))(t.toggleStar(e.bid)(n.value0?t.Star.value:t.UnStar.value)))(function(){return a.discard(a.discardUnit)(P.bindHalogenM)(m.modifying(P.monadStateHalogenM)(an(y.strongFn))(function(e){return{url:e.url,title:e.title,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:n.value0,time:e.time,archiveUrl:e.archiveUrl}}))(function(){return m.modifying(P.monadStateHalogenM)(rn(y.strongFn))(function(e){return{url:e.url,title:e.title,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:n.value0,time:e.time,archiveUrl:e.archiveUrl}})})})});if(n instanceof K)return i.modify_(P.monadStateHalogenM)(function(e){var t={};for(var r in e)({}).hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.deleteAsk=n.value0,t});if(n instanceof Y)return a.bind(P.bindHalogenM)(d.use(P.monadStateHalogenM)(an(v.strongForget)))(function(n){return a.discard(a.discardUnit)(P.bindHalogenM)(s.void(P.functorHalogenM)(S.liftAff(P.monadAffHalogenM(S.monadAffAff))(t.destroy(n.bid))))(function(){return P.raise(z.value)})});if(n instanceof en)return a.bind(P.bindHalogenM)(d.use(P.monadStateHalogenM)(an(v.strongForget)))(function(n){return a.discard(a.discardUnit)(P.bindHalogenM)(s.void(P.functorHalogenM)(S.liftAff(P.monadAffHalogenM(S.monadAffAff))(t.markRead(n.bid))))(function(){return m.modifying(P.monadStateHalogenM)(an(y.strongFn))(function(n){return{url:n.url,title:n.title,description:n.description,tags:n.tags,private:n.private,toread:!1,bid:n.bid,slug:n.slug,selected:n.selected,time:n.time,archiveUrl:n.archiveUrl}})})});if(n instanceof $)return a.bind(P.bindHalogenM)(d.use(P.monadStateHalogenM)(an(v.strongForget)))(function(e){return a.discard(a.discardUnit)(P.bindHalogenM)(m.assign(P.monadStateHalogenM)(rn(y.strongFn))(e))(function(){return a.discard(a.discardUnit)(P.bindHalogenM)(m.assign(P.monadStateHalogenM)(un(y.strongFn))(n.value0))(function(){return _.liftEffect(P.monadEffectHalogenM(T.monadEffectAff))(o.whenM(H.monadEffect)(u.pure(H.applicativeEffect)(n.value0))(k.setFocus(p(e))))})})});if(n instanceof Z)return m.modifying(P.monadStateHalogenM)(rn(y.strongFn))(function(){if(n.value0 instanceof W)return function(e){return{url:n.value0.value0,title:e.title,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof q)return function(e){return{url:e.url,title:n.value0.value0,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof J)return function(e){return{url:e.url,title:e.title,description:n.value0.value0,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof j)return function(e){return{url:e.url,title:e.title,description:e.description,tags:n.value0.value0,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof Q)return function(e){return{url:e.url,title:e.title,description:e.description,tags:e.tags,private:n.value0.value0,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof V)return function(e){return{url:e.url,title:e.title,description:e.description,tags:e.tags,private:e.private,toread:n.value0.value0,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};throw new Error("Failed pattern match at Component.BMark (line 234, column 17 - line 240, column 36): "+[n.value0.constructor.name])}());if(n instanceof X)return a.discard(a.discardUnit)(P.bindHalogenM)(i.modify_(P.monadStateHalogenM)(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e.loading=!0,e}))(function(){return a.bind(P.bindHalogenM)(i.gets(P.monadStateHalogenM)(function(n){return n.edit_bm}))(function(n){return a.bind(P.bindHalogenM)(S.liftAff(P.monadAffHalogenM(S.monadAffAff))(t.lookupTitle(n)))(function(n){return a.discard(a.discardUnit)(P.bindHalogenM)(function(){if(n instanceof g.Just)return m.modifying(P.monadStateHalogenM)(rn(y.strongFn))(function(e){return{url:e.url,title:n.value0,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}});if(n instanceof g.Nothing)return u.pure(P.applicativeHalogenM)(M.unit);throw new Error("Failed pattern match at Component.BMark (line 247, column 5 - line 249, column 29): "+[n.constructor.name])}())(function(){return i.modify_(P.monadStateHalogenM)(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e.loading=!1,e})})})})});if(n instanceof nn)return a.discard(a.discardUnit)(P.bindHalogenM)(_.liftEffect(P.monadEffectHalogenM(T.monadEffectAff))(O.preventDefault(n.value0)))(function(){return a.bind(P.bindHalogenM)(d.use(P.monadStateHalogenM)(rn(v.strongForget)))(function(n){return a.discard(a.discardUnit)(P.bindHalogenM)(s.void(P.functorHalogenM)(S.liftAff(P.monadAffHalogenM(S.monadAffAff))(t.editBookmark(n))))(function(){return a.discard(a.discardUnit)(P.bindHalogenM)(m.assign(P.monadStateHalogenM)(an(y.strongFn))(n))(function(){return m.assign(P.monadStateHalogenM)(un(y.strongFn))(!1)})})})});throw new Error("Failed pattern match at Component.BMark (line 200, column 3 - line 200, column 84): "+[n.constructor.name])},handleQuery:L.defaultEval.handleQuery,receive:L.defaultEval.receive,initialize:L.defaultEval.initialize,finalize:L.defaultEval.finalize})})}}(t),function(n){"use strict";n["Component.BList"]=n["Component.BList"]||{};var e=n["Component.BList"],t=n["Component.BMark"],r=n["Control.Monad.State.Class"],u=n["Data.Array"],a=n["Data.Function"],o=n["Data.Functor"],i=n["Data.Maybe"],c=n["Data.Ord"],f=n["Data.Symbol"],l=n["Data.Unit"],s=n["Halogen.Component"],d=n["Halogen.HTML"],v=n["Halogen.HTML.Elements"],p=n["Halogen.Query.HalogenM"],m=function(){function n(n,e){this.value0=n,this.value1=e}return n.create=function(e){return function(t){return new n(e,t)}},n}(),g=f.SProxy.value;e.blist=function(n){return s.mkComponent({initialState:a.const(n),render:function(n){return v.div_(o.map(o.functorArray)(function(n){return d.slot()(new f.IsSymbol(function(){return"bookmark"}))(c.ordInt)(g)(n.bid)(t.bmark(n))(l.unit)((e=m.create(n.bid),function(n){return i.Just.create(e(n))}));var e})(n))},eval:s.mkEval({handleAction:function(n){return r.modify_(p.monadStateHalogenM)(u.filter(function(e){return e.bid!==n.value0}))},handleQuery:s.defaultEval.handleQuery,receive:s.defaultEval.receive,initialize:s.defaultEval.initialize,finalize:s.defaultEval.finalize})})}}(t),function(n){"use strict";n["Component.NList"]=n["Component.NList"]||{};var e=n["Component.NList"],t=n["Control.Applicative"],r=n["Data.Array"],u=n["Data.Foldable"],a=n["Data.Function"],o=n["Data.Functor"],i=n["Data.Maybe"],c=n["Data.Monoid"],f=n["Data.Show"],l=n["Data.String.CodePoints"],s=n["Data.String.Common"],d=n["Data.Tuple"],v=n["Data.Unit"],p=n.Globals,m=n["Halogen.Component"],g=n["Halogen.HTML.Core"],h=n["Halogen.HTML.Elements"],w=n["Halogen.HTML.Properties"],b=n["Halogen.Query.HalogenM"],y=n.Util;e.nlist=function(n){var e,E=function(n){return p.mmoment8601(n.created)},D=p["app'"](v.unit),A=function(n){return y.fromNullableStr(D.userR)+"/notes/"+n};return m.mkComponent({initialState:a.const((e=n,{notes:e,cur:i.Nothing.value,deleteAsk:!1,edit:!1})),render:function(n){return h.div_(o.map(o.functorArray)(function(n){return h.div([w.id_(f.show(f.showInt)(n.id)),y.class_("note w-100 mw7 pa1 mb2"+(n.shared?"":" private"))])([h.div([y.class_("display")])([h.a([w.href(A(n.slug)),y.class_("link f5 lh-title")])([g.text(s.null(n.title)?"[no title]":n.title)]),h.br_,h.div([y.class_("description mt1 mid-gray")])((e=l.take(200)(n.text),r.drop(1)(u.foldMap(u.foldableArray)(c.monoidArray)(function(n){return[h.br_,g.text(n)]})(s.split("\n")(e))))),h.a([y.class_("link f7 dib gray w4"),w.title(i.maybe(n.created)(d.snd)(E(n))),w.href(A(n.slug))])([g.text(i.maybe(" ")(d.fst)(E(n)))])])]);var e})(n.notes))},eval:m.mkEval({handleAction:function(n){return t.pure(b.applicativeHalogenM)(v.unit)},handleQuery:m.defaultEval.handleQuery,receive:m.defaultEval.receive,initialize:m.defaultEval.initialize,finalize:m.defaultEval.finalize})})}}(t),function(n){"use strict";n["Component.NNote"]=n["Component.NNote"]||{};var e=n["Component.NNote"],t=n.App,r=n["Component.Markdown"],u=n["Control.Applicative"],a=n["Control.Bind"],o=n["Control.Monad.State.Class"],i=n["DOM.HTML.Indexed.ButtonType"],c=n["DOM.HTML.Indexed.InputType"],f=n["Data.Array"],l=n["Data.Either"],s=n["Data.Foldable"],d=n["Data.Function"],v=n["Data.Functor"],p=n["Data.Lens.Getter"],m=n["Data.Lens.Internal.Forget"],g=n["Data.Lens.Lens"],h=n["Data.Lens.Setter"],w=n["Data.Maybe"],b=n["Data.Monoid"],y=n["Data.Ord"],E=n["Data.Profunctor.Strong"],D=n["Data.Show"],A=n["Data.String.Common"],C=n["Data.Symbol"],M=n["Data.Tuple"],F=n["Data.Unit"],H=n["Data.Void"],T=n.Effect,S=n["Effect.Aff"],_=n["Effect.Aff.Class"],k=n["Effect.Class"],L=n.Globals,x=n["Halogen.Component"],I=n["Halogen.HTML"],R=n["Halogen.HTML.Core"],U=n["Halogen.HTML.Elements"],N=n["Halogen.HTML.Events"],P=n["Halogen.HTML.Properties"],B=n["Halogen.Query.HalogenM"],O=n.Util,W=n["Web.Event.Event"],q=n["Web.HTML.Location"],J=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),j=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Q=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),V=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),z=function(){function n(){}return n.value=new n,n}(),G=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),K=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),X=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Y=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),$=function(){function n(){}return n.value=new n,n}(),Z=function(n){return g.lens(function(n){return n.note})(function(n){return function(e){return{note:e,deleteAsk:n.deleteAsk,destroyed:n.destroyed,edit:n.edit,edit_note:n.edit_note}}})(n)},nn=C.SProxy.value,en=function(n){return g.lens(function(n){return n.edit_note})(function(n){return function(e){return{edit_note:e,deleteAsk:n.deleteAsk,destroyed:n.destroyed,edit:n.edit,note:n.note}}})(n)},tn=function(n){return g.lens(function(n){return n.edit})(function(n){return function(e){return{edit:e,deleteAsk:n.deleteAsk,destroyed:n.destroyed,edit_note:n.edit_note,note:n.note}}})(n)};e.nnote=function(n){var e,g=L["app'"](F.unit);return x.mkComponent({initialState:d.const((e=n,{note:e,edit_note:e,deleteAsk:!1,edit:e.id<=0,destroyed:!1})),render:function(n){var e=function(n){return L.mmoment8601(n.created)},t=function(n){return function(e){return w.Just.create(G.create(n(e)))}};return O.ifElseH(n.destroyed)(function(n){return U.p([O.class_("red")])([R.text("you killed this note")])})(d.const(O.ifElseH(n.edit)(function(e){return U.form([N.onSubmit(function(n){return w.Just.create(K.create(n))})])([U.p([O.class_("mt2 mb1")])([R.text("title:")]),U.input([P.type_(R.isPropInputType)(c.InputText.value),O.class_("title w-100 mb1 pt1 f7 edit_form_input"),P.name("title"),P.value(n.edit_note.title),N.onValueChange(t(J.create))]),U.br_,U.p([O.class_("mt2 mb1")])([R.text("description:")]),U.textarea([O.class_("description w-100 mb1 pt1 f7 edit_form_input"),P.name("text"),P.rows(30),P.value(n.edit_note.text),N.onValueChange(t(j.create))]),U.div([O.class_("edit_form_checkboxes mb3")])([U.input([P.type_(R.isPropInputType)(c.InputCheckbox.value),O.class_("is-markdown pointer"),P.id_("edit_ismarkdown"),P.name("ismarkdown"),P.checked(n.edit_note.isMarkdown),N.onChecked(t(Q.create))]),R.text(" "),U.label([P.for("edit_ismarkdown"),O.class_("mr2")])([R.text("use markdown?")]),U.br_]),U.div([O.class_("edit_form_checkboxes mb3")])([U.input([P.type_(R.isPropInputType)(c.InputCheckbox.value),O.class_("is-markdown pointer"),P.id_("edit_shared"),P.name("shared"),P.checked(n.edit_note.shared),N.onChecked(t(V.create))]),R.text(" "),U.label([P.for("edit_shared"),O.class_("mr2")])([R.text("public?")]),U.br_]),U.input([P.type_(R.isPropInputType)(c.InputSubmit.value),O.class_("mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"),P.value("save")]),R.text(" "),U.input([P.type_(R.isPropInputType)(c.InputReset.value),O.class_("pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"),P.value("cancel"),N.onClick(function(n){return new w.Just(new X(!1))})])])})(function(t){return U.div([P.id_(D.show(D.showInt)(n.note.id)),O.class_("note w-100 mw7 pa1 mb2")])([U.div([O.class_("display")])([U.div([O.class_("link f5 lh-title")])([R.text(A.null(n.note.title)?"[no title]":n.note.title)]),U.br_,n.note.isMarkdown?U.div([O.class_("description mt1")])([I.slot()(new C.IsSymbol(function(){return"markdown"}))(y.ordUnit)(nn)(F.unit)(r.component)(n.note.text)(H.absurd)]):U.div([O.class_("description mt1 mid-gray")])((u=n.note.text,f.drop(1)(s.foldMap(s.foldableArray)(b.monoidArray)(function(n){return[U.br_,R.text(n)]})(A.split("\n")(u))))),U.div([O.class_("link f7 dib gray w4")])([U.span([P.title(w.maybe(n.note.created)(M.snd)(e(n.note)))])([R.text(w.maybe(" ")(M.fst)(e(n.note)))]),R.text(" - "),U.span([O.class_("gray")])([R.text(n.note.shared?"public":"private")])])]),O.whenH(g.dat.isowner)(function(e){return U.div([O.class_("edit_links db mt3")])([U.button([P.type_(R.isPropButtonType)(i.ButtonButton.value),N.onClick(function(n){return new w.Just(new X(!0))}),O.class_("edit light-silver hover-blue")])([R.text("edit  ")]),U.div([O.class_("delete_link di")])([U.button([P.type_(R.isPropButtonType)(i.ButtonButton.value),N.onClick(function(n){return new w.Just(new Y(!0))}),O.class_("delete light-silver hover-blue"+b.guard(b.monoidString)(n.deleteAsk)(" dn"))])([R.text("delete")]),U.span([O.class_("confirm red"+b.guard(b.monoidString)(!n.deleteAsk)(" dn"))])([U.button([P.type_(R.isPropButtonType)(i.ButtonButton.value),N.onClick(function(n){return new w.Just(new Y(!1))})])([R.text("cancel / ")]),U.button([P.type_(R.isPropButtonType)(i.ButtonButton.value),N.onClick(function(n){return new w.Just($.value)}),O.class_("red")])([R.text("destroy")])])])])})]);var u})))},eval:x.mkEval({handleAction:function(n){if(n instanceof z)return u.pure(B.applicativeHalogenM)(F.unit);if(n instanceof G)return h.modifying(B.monadStateHalogenM)(en(E.strongFn))(function(){if(n.value0 instanceof J)return function(e){return{id:e.id,slug:e.slug,title:n.value0.value0,text:e.text,length:e.length,isMarkdown:e.isMarkdown,shared:e.shared,created:e.created,updated:e.updated}};if(n.value0 instanceof j)return function(e){return{id:e.id,slug:e.slug,title:e.title,text:n.value0.value0,length:e.length,isMarkdown:e.isMarkdown,shared:e.shared,created:e.created,updated:e.updated}};if(n.value0 instanceof Q)return function(e){return{id:e.id,slug:e.slug,title:e.title,text:e.text,length:e.length,isMarkdown:n.value0.value0,shared:e.shared,created:e.created,updated:e.updated}};if(n.value0 instanceof V)return function(e){return{id:e.id,slug:e.slug,title:e.title,text:e.text,length:e.length,isMarkdown:e.isMarkdown,shared:n.value0.value0,created:e.created,updated:e.updated}};throw new Error("Failed pattern match at Component.NNote (line 177, column 19 - line 181, column 36): "+[n.value0.constructor.name])}());if(n instanceof Y)return o.modify_(B.monadStateHalogenM)(function(e){var t={};for(var r in e)({}).hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.deleteAsk=n.value0,t});if(n instanceof $)return a.bind(B.bindHalogenM)(p.use(B.monadStateHalogenM)(Z(m.strongForget)))(function(n){return a.discard(a.discardUnit)(B.bindHalogenM)(v.void(B.functorHalogenM)(_.liftAff(B.monadAffHalogenM(_.monadAffAff))(t.destroyNote(n.id))))(function(){return o.modify_(B.monadStateHalogenM)(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e.destroyed=!0,e})})});if(n instanceof X)return a.bind(B.bindHalogenM)(p.use(B.monadStateHalogenM)(Z(m.strongForget)))(function(e){return a.discard(a.discardUnit)(B.bindHalogenM)(h.assign(B.monadStateHalogenM)(en(E.strongFn))(e))(function(){return h.assign(B.monadStateHalogenM)(tn(E.strongFn))(n.value0)})});if(n instanceof K)return a.discard(a.discardUnit)(B.bindHalogenM)(k.liftEffect(B.monadEffectHalogenM(S.monadEffectAff))(W.preventDefault(n.value0)))(function(){return a.bind(B.bindHalogenM)(p.use(B.monadStateHalogenM)(en(m.strongForget)))(function(n){return a.bind(B.bindHalogenM)(_.liftAff(B.monadAffHalogenM(_.monadAffAff))(t.editNote(n)))(function(e){return s.for_(B.applicativeHalogenM)(l.foldableEither)(e)(function(e){return 0===n.id?k.liftEffect(B.monadEffectHalogenM(S.monadEffectAff))(a.bindFlipped(T.bindEffect)(q.setHref(O.fromNullableStr(g.noteR)))(O._loc)):a.discard(a.discardUnit)(B.bindHalogenM)(h.assign(B.monadStateHalogenM)(Z(E.strongFn))(n))(function(){return h.assign(B.monadStateHalogenM)(tn(E.strongFn))(!1)})})})})});throw new Error("Failed pattern match at Component.NNote (line 172, column 3 - line 172, column 77): "+[n.constructor.name])},handleQuery:x.defaultEval.handleQuery,receive:x.defaultEval.receive,initialize:x.defaultEval.initialize,finalize:x.defaultEval.finalize})})}}(t),function(n){"use strict";n["Control.Applicative.Free"]=n["Control.Applicative.Free"]||{};var e=n["Control.Applicative.Free"],t=n["Control.Applicative"],r=n["Control.Apply"],u=n["Control.Category"],a=n["Data.Either"],o=n["Data.Functor"],i=n["Data.List.NonEmpty"],c=n["Data.List.Types"],f=n["Data.NonEmpty"],l=n["Data.Tuple"],s=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),d=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),v=function(){function n(n,e){this.value0=n,this.value1=e}return n.create=function(e){return function(t){return new n(e,t)}},n}(),p=function(n){return function(e){return new v(n,e)}},m=d.create,g=function(n){return function(e){return function(r){return function(u){return function(a){return function(o){var f,p=n,m=e,g=r,h=u,w=a,b=!1;function y(n,e,r,u,a,f){if(a instanceof s)return b=!0,new l.Tuple(new c.Cons({func:t.pure(n)(a.value0),count:f},e),r);if(a instanceof d)return b=!0,new l.Tuple(new c.Cons({func:u(a.value0),count:f},e),r);if(a instanceof v)return p=n,m=e,g=i.cons(a.value1)(r),h=u,w=a.value0,void(o=f+1|0);throw new Error("Failed pattern match at Control.Applicative.Free (line 102, column 41 - line 105, column 81): "+[a.constructor.name])}for(;!b;)f=y(p,m,g,h,w,o);return f}}}}}},h=function(n){return function(e){return function(t){return function(u){var o,i=n,s=e,d=t,v=!1;function p(n,e,t,o){if(e instanceof c.Nil)return v=!0,new a.Left(o);if(e instanceof c.Cons){var p=r.apply(n.Apply0())(e.value0.func)(o);if(1===e.value0.count)return e.value1 instanceof c.Nil?(v=!0,new a.Left(p)):(i=n,s=e.value1,d=t,void(u=p));if(t instanceof c.Nil)return v=!0,new a.Left(p);if(t instanceof c.Cons)return v=!0,a.Right.create(new l.Tuple(new c.Cons({func:p,count:e.value0.count-1|0},e.value1),new f.NonEmpty(t.value0,t.value1)));throw new Error("Failed pattern match at Control.Applicative.Free (line 83, column 11 - line 88, column 50): "+[t.constructor.name])}throw new Error("Failed pattern match at Control.Applicative.Free (line 72, column 3 - line 88, column 50): "+[e.constructor.name])}for(;!v;)o=p(i,s,d,u);return o}}}},w=new o.Functor(function(n){return function(e){return p(new s(n))(e)}}),b=function(n){return function(e){return function(r){return function(r){var u,o=!1;function i(u){if(u.value1.value0 instanceof s){if((i=h(n)(u.value0)(u.value1.value1)(t.pure(n)(u.value1.value0.value0)))instanceof a.Left)return o=!0,i.value0;if(i instanceof a.Right)return void(r=i.value0);throw new Error("Failed pattern match at Control.Applicative.Free (line 54, column 17 - line 56, column 24): "+[i.constructor.name])}if(u.value1.value0 instanceof d){var i;if((i=h(n)(u.value0)(u.value1.value1)(e(u.value1.value0.value0)))instanceof a.Left)return o=!0,i.value0;if(i instanceof a.Right)return void(r=i.value0);throw new Error("Failed pattern match at Control.Applicative.Free (line 57, column 17 - line 59, column 24): "+[i.constructor.name])}if(!(u.value1.value0 instanceof v))throw new Error("Failed pattern match at Control.Applicative.Free (line 53, column 5 - line 62, column 47): "+[u.value1.value0.constructor.name]);var c=new f.NonEmpty(u.value1.value0.value1,u.value1.value1);r=g(n)(u.value0)(c)(e)(u.value1.value0.value0)(1)}for(;!o;)u=i(r);return u}(new l.Tuple(c.Nil.value,i.singleton(r)))}}},y=new r.Apply(function(){return w},function(n){return function(e){return p(n)(e)}}),E=new t.Applicative(function(){return y},s.create);e.retractFreeAp=function(n){return b(n)(u.identity(u.categoryFn))},e.hoistFreeAp=function(n){return b(E)(function(e){return m(n(e))})}}(t),function(n){"use strict";n["Control.Monad.Trans.Class"]=n["Control.Monad.Trans.Class"]||{};var e=n["Control.Monad.Trans.Class"];e.lift=function(n){return n.lift},e.MonadTrans=function(n){this.lift=n}}(t),function(n){"use strict";n["Control.Monad.Free.Trans"]=n["Control.Monad.Free.Trans"]||{};var e=n["Control.Monad.Free.Trans"],t=n["Control.Applicative"],r=n["Control.Apply"],u=n["Control.Bind"],a=n["Control.Monad"],o=n["Control.Monad.Rec.Class"],i=n["Control.Monad.Trans.Class"],c=n["Data.Bifunctor"],f=n["Data.Either"],l=n["Data.Exists"],s=n["Data.Functor"],d=n["Data.Unit"],v=function(){function n(n,e){this.value0=n,this.value1=e}return n.create=function(e){return function(t){return new n(e,t)}},n}(),p=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),m=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),g=p.create,h=function(n){return function(e){return new m(l.mkExists(new v(n,e)))}},w=function n(e){return function(t){return new s.Functor(function(r){return function(u){if(u instanceof p)return new p(function(a){return s.map(t)(c.bimap(f.bifunctorEither)(r)(s.map(e)(s.map(n(e)(t))(r))))(u.value0(d.unit))});if(u instanceof m)return l.runExists(function(u){return h(u.value0)((a=s.map(n(e)(t))(r),function(n){return a(u.value1(n))}));var a})(u.value0);throw new Error("Failed pattern match at Control.Monad.Free.Trans (line 59, column 1 - line 61, column 71): "+[r.constructor.name,u.constructor.name])}})}},b=function(n){return function(e){return new a.Monad(function(){return D(n)(e)},function(){return y(n)(e)})}},y=function(n){return function(e){return new u.Bind(function(){return E(n)(e)},function(n){return function(e){return n instanceof m?l.runExists(function(n){return h(n.value0)(function(t){return h(function(e){return n.value1(t)})(e)})})(n.value0):h(function(e){return n})(e)}})}},E=function(n){return function(e){return new r.Apply(function(){return w(n)(e.Bind1().Apply0().Functor0())},a.ap(b(n)(e)))}},D=function(n){return function(e){return new t.Applicative(function(){return E(n)(e)},function(n){return new p(function(r){return t.pure(e.Applicative0())(new f.Left(n))})})}},A=function(n){return function(e){return o.tailRecM(e)(function(r){if(r instanceof p)return s.map(e.Monad0().Bind1().Apply0().Functor0())(o.Done.create)(r.value0(d.unit));if(r instanceof m)return l.runExists(function(r){var a=r.value0(d.unit);if(a instanceof p)return u.bind(e.Monad0().Bind1())(a.value0(d.unit))(function(a){if(a instanceof f.Left)return t.pure(e.Monad0().Applicative0())(new o.Loop(r.value1(a.value0)));if(a instanceof f.Right)return t.pure(e.Monad0().Applicative0())(new o.Done(new f.Right(s.map(n)(function(t){return u.bind(y(n)(e.Monad0()))(t)(r.value1)})(a.value0))));throw new Error("Failed pattern match at Control.Monad.Free.Trans (line 54, column 20 - line 56, column 67): "+[a.constructor.name])});if(a instanceof m)return l.runExists(function(a){return t.pure(e.Monad0().Applicative0())(new o.Loop(u.bind(y(n)(e.Monad0()))(a.value0(d.unit))(function(t){return u.bind(y(n)(e.Monad0()))(a.value1(t))(r.value1)})))})(a.value0);throw new Error("Failed pattern match at Control.Monad.Free.Trans (line 52, column 5 - line 57, column 98): "+[a.constructor.name])})(r.value0);throw new Error("Failed pattern match at Control.Monad.Free.Trans (line 49, column 3 - line 49, column 75): "+[r.constructor.name])})}};e.freeT=g,e.liftFreeT=function(n){return function(e){return function(r){return new p(function(u){return t.pure(e.Applicative0())(new f.Right(s.map(n)(t.pure(D(n)(e)))(r)))})}}},e.resume=A,e.runFreeT=function(n){return function(e){return function(r){return o.tailRecM(e)(u.composeKleisliFlipped(e.Monad0().Bind1())(function(n){if(n instanceof f.Left)return t.pure(e.Monad0().Applicative0())(new o.Done(n.value0));if(n instanceof f.Right)return s.map(e.Monad0().Bind1().Apply0().Functor0())(o.Loop.create)(r(n.value0));throw new Error("Failed pattern match at Control.Monad.Free.Trans (line 141, column 3 - line 141, column 63): "+[n.constructor.name])})(A(n)(e)))}}},e.functorFreeT=w,e.applicativeFreeT=D,e.bindFreeT=y,e.monadTransFreeT=function(n){return new i.MonadTrans(function(n){return function(e){return new p(function(t){return s.map(n.Bind1().Apply0().Functor0())(f.Left.create)(e)})}})},e.monadRecFreeT=function(n){return function(e){return new o.MonadRec(function(){return b(n)(e)},function(r){return function a(i){return u.bind(y(n)(e))(r(i))(function(r){if(r instanceof o.Loop)return a(r.value0);if(r instanceof o.Done)return t.pure(D(n)(e))(r.value0);throw new Error("Failed pattern match at Control.Monad.Free.Trans (line 82, column 15 - line 84, column 25): "+[r.constructor.name])})}})}}}(t),function(n){"use strict";n["Control.Coroutine"]=n["Control.Coroutine"]||{};var e=n["Control.Coroutine"],t=n["Control.Applicative"],r=n["Control.Apply"],u=n["Control.Bind"],a=n["Control.Category"],o=n["Control.Monad.Except.Trans"],i=n["Control.Monad.Free.Trans"],c=n["Control.Monad.Rec.Class"],f=n["Control.Monad.Trans.Class"],l=n["Control.Parallel.Class"],s=n["Data.Bifunctor"],d=n["Data.Either"],v=n["Data.Functor"],p=n["Data.Identity"],m=n["Data.Maybe"],g=n["Data.Newtype"],h=n["Data.Profunctor"],w=n["Data.Tuple"],b=n["Data.Unit"],y=function(){function n(n,e){this.value0=n,this.value1=e}return n.create=function(e){return function(t){return new n(e,t)}},n}(),E=new h.Profunctor(function(n){return function(e){return function(t){return h.dimap(h.profunctorFn)(n)(e)(t)}}}),D=function(n){return function(e){return function(r){return function(a){return function(c){return function(f){return function(l){return i.freeT(function(s){return function f(l){return o.runExceptT(u.bind(o.bindExceptT(a.Monad0()))(o.ExceptT(i.resume(n)(a)(l.value0)))(function(n){return u.bind(o.bindExceptT(a.Monad0()))(o.ExceptT(i.resume(e)(a)(l.value1)))(function(e){return t.pure(o.applicativeExceptT(a.Monad0()))(v.map(r)(function(n){return i.freeT(function(e){return f(n)})})(c(w.Tuple.create)(n)(e)))})}))}(new w.Tuple(f,l))})}}}}}}},A=function(n){return function(e){return function(a){return function(o){return function(c){return function(f){return function(s){return function(p){return i.freeT(function(m){return function s(p){return u.bind(o.Monad0().Bind1())(l.sequential(c)(r.apply(c.Applicative1().Apply0())(v.map(c.Applicative1().Apply0().Functor0())(r.lift2(d.applyEither)(f(w.Tuple.create)))(l.parallel(c)(i.resume(n)(o)(p.value0))))(l.parallel(c)(i.resume(e)(o)(p.value1)))))(function(n){if(n instanceof d.Left)return t.pure(o.Monad0().Applicative0())(new d.Left(n.value0));if(n instanceof d.Right)return t.pure(o.Monad0().Applicative0())(new d.Right(v.map(a)(function(n){return i.freeT(function(e){return s(n)})})(n.value0)));throw new Error("Failed pattern match at Control.Coroutine (line 79, column 5 - line 81, column 63): "+[n.constructor.name])})}(new w.Tuple(s,p))})}}}}}}}},C=new v.Functor(h.rmap(E)),M=new s.Bifunctor(function(n){return function(e){return function(t){return new y(n(t.value0),e(t.value1))}}}),F=new v.Functor(s.rmap(M));e.runProcess=function(n){return i.runFreeT(p.functorIdentity)(n)((e=t.pure(n.Monad0().Applicative0()),r=g.unwrap(p.newtypeIdentity),function(n){return e(r(n))}));var e,r},e.producer=function(n){return function(e){return(r=F,function(n){return function(e){return c.tailRecM(i.monadRecFreeT(r)(n))(function(t){return v.map(i.functorFreeT(r)(n.Bind1().Apply0().Functor0()))(m.maybe(new c.Loop(b.unit))(c.Done.create))(e)})(b.unit)}})(n)(u.bind(i.bindFreeT(F)(n))(f.lift(i.monadTransFreeT(F))(n)(e))(function(e){if(e instanceof d.Left)return v.voidLeft(i.functorFreeT(F)(n.Bind1().Apply0().Functor0()))(function(n){return function(e){return i.liftFreeT(F)(n)(new y(e,b.unit))}}(n)(e.value0))(m.Nothing.value);if(e instanceof d.Right)return t.pure(i.applicativeFreeT(F)(n))(new m.Just(e.value0));throw new Error("Failed pattern match at Control.Coroutine (line 125, column 3 - line 127, column 29): "+[e.constructor.name])}));var r}},e.await=function(n){return i.liftFreeT(C)(n)(a.identity(a.categoryFn))},e.connect=function(n){return function(e){return A(F)(C)(p.functorIdentity)(n)(e)(function(n){return function(e){return function(t){return n(e.value1)(t(e.value0))}}})}},e.pullFrom=function(n){return D(C)(F)(p.functorIdentity)(n)(function(n){return function(e){return function(r){return t.pure(p.applicativeIdentity)(n(e(r.value0))(r.value1))}}})},e.functorAwait=C}(t),function(n){"use strict";n["Control.Monad.Fork.Class"]=n["Control.Monad.Fork.Class"]||{};var e=n["Control.Monad.Fork.Class"],t=n["Effect.Aff"],r=new function(n,e,t,r,u){this.Functor1=n,this.Monad0=e,this.fork=t,this.join=r,this.suspend=u}(function(){return t.functorFiber},function(){return t.monadAff},t.forkAff,t.joinFiber,t.suspendAff);e.fork=function(n){return n.fork},e.monadForkAff=r}(t),function(n){"use strict";var e=function(){function n(){this.head=null,this.last=null,this.size=0}function e(n,e){this.queue=n,this.value=e,this.next=null,this.prev=null}function t(e){this.draining=!1,this.error=null,this.value=e,this.takes=new n,this.reads=new n,this.puts=new n}var r={};function u(n){try{n()}catch(e){setTimeout(function(){throw e},0)}}function a(n){var e;switch(n.size){case 0:return null;case 1:e=n.head,n.head=null;break;case 2:e=n.last,n.head.next=null,n.last=null;break;default:e=n.last,n.last=e.prev,n.last.next=null}return e.prev=null,e.queue=null,n.size--,e.value}function o(n){var e;switch(n.size){case 0:return null;case 1:e=n.head,n.head=null;break;case 2:e=n.head,n.last.prev=null,n.head=n.last,n.last=null;break;default:e=n.head,n.head=e.next,n.head.prev=null}return e.next=null,e.queue=null,n.size--,e.value}return t.EMPTY=r,t.putLast=function(n,t){var r=new e(n,t);switch(n.size){case 0:n.head=r;break;case 1:r.prev=n.head,n.head.next=r,n.last=r;break;default:r.prev=n.last,n.last.next=r,n.last=r}return n.size++,r},t.takeLast=a,t.takeHead=o,t.deleteCell=function(n){null!==n.queue&&(n.queue.last!==n?n.queue.head!==n?(n.prev&&(n.prev.next=n.next),n.next&&(n.next.prev=n.prev),n.queue.size--,n.queue=null,n.value=null,n.next=null,n.prev=null):o(n.queue):a(n.queue))},t.drainVar=function(n,e){if(!e.draining){var t,a,i,c,f,l=e.puts,s=e.takes,d=e.reads;for(e.draining=!0;;){if(t=null,a=null,i=null,c=e.value,f=d.size,null!==e.error){for(c=n.left(e.error);t=o(l);)u(t.cb(c));for(;a=o(d);)u(a(c));for(;i=o(s);)u(i(c));break}if(c===r&&(t=o(l))&&(e.value=c=t.value),c!==r){for(i=o(s);f--&&(a=o(d));)u(a(n.right(c)));null!==i&&(e.value=r,u(i(n.right(c))))}if(null!==t&&u(t.cb(n.right(void 0))),e.value===r&&0===l.size||e.value!==r&&0===s.size)break}e.draining=!1}},t}();n.empty=function(){return new e(e.EMPTY)},n._killVar=function(n,t,r){return function(){null===r.error&&(r.error=t,r.value=e.EMPTY,e.drainVar(n,r))}},n._putVar=function(n,t,r,u){return function(){var a=e.putLast(r.puts,{cb:u,value:t});return e.drainVar(n,r),function(){e.deleteCell(a)}}},n._takeVar=function(n,t,r){return function(){var u=e.putLast(t.takes,r);return e.drainVar(n,t),function(){e.deleteCell(u)}}}}(t["Effect.AVar"]=t["Effect.AVar"]||{}),function(n){"use strict";n["Effect.AVar"]=n["Effect.AVar"]||{};var e=n["Effect.AVar"],t=n["Effect.AVar"],r=n["Data.Either"],u=n["Data.Maybe"],a=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),o=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),i=function(){function n(){}return n.value=new n,n}(),c={left:r.Left.create,right:r.Right.create,nothing:u.Nothing.value,just:u.Just.create,killed:a.create,filled:o.create,empty:i.value};e.take=function(n){return function(e){return t._takeVar(c,n,e)}},e.put=function(n){return function(e){return function(r){return t._putVar(c,n,e,r)}}},e.kill=function(n){return function(e){return t._killVar(c,n,e)}},e.empty=t.empty}(t),function(n){"use strict";n["Effect.Aff.AVar"]=n["Effect.Aff.AVar"]||{};var e=n["Effect.Aff.AVar"],t=n["Effect.AVar"],r=n["Effect.Aff"],u=n["Effect.Class"],a=u.liftEffect(r.monadEffectAff)(t.empty);e.empty=a,e.take=function(n){return r.makeAff(function(e){return function(){var u=t.take(n)(e)();return r.effectCanceler(u)}})},e.put=function(n){return function(e){return r.makeAff(function(u){return function(){var a=t.put(n)(e)(u)();return r.effectCanceler(a)}})}},e.kill=function(n){var e=u.liftEffect(r.monadEffectAff),a=t.kill(n);return function(n){return e(a(n))}}}(t),function(n){"use strict";(t["Effect.Console"]=t["Effect.Console"]||{}).warn=function(n){return function(){return console.warn(n),{}}}}(),function(n){"use strict";n["Effect.Console"]=n["Effect.Console"]||{};var e=n["Effect.Console"],t=n["Effect.Console"];e.warn=t.warn}(t),function(n){"use strict";n.error=function(n){return new Error(n)},n.throwException=function(n){return function(){throw n}}}(t["Effect.Exception"]=t["Effect.Exception"]||{}),function(n){"use strict";n["Effect.Exception"]=n["Effect.Exception"]||{};var e=n["Effect.Exception"],t=n["Effect.Exception"];e.throw=function(n){return t.throwException(t.error(n))},e.error=t.error,e.throwException=t.throwException}(t),function(n){"use strict";n["Halogen.Aff.Driver.State"]=n["Halogen.Aff.Driver.State"]||{};var e=n["Halogen.Aff.Driver.State"],t=n["Data.Foldable"],r=n["Data.List.Types"],u=n["Data.Map.Internal"],a=n["Data.Maybe"],o=n["Effect.Ref"],i=n["Halogen.Data.Slot"],c=n["Unsafe.Coerce"],f=c.unsafeCoerce,l=c.unsafeCoerce,s=c.unsafeCoerce,d=c.unsafeCoerce;e.mapDriverState=function(n){return function(e){return n(e)}},e.unDriverStateX=l,e.renderStateX=function(n){return function(n){return l(function(e){return s(n(e.rendering))})}},e.renderStateX_=function(n){return function(e){return l(function(r){return t.traverse_(n)(t.foldableMaybe)(e)(r.rendering)})}},e.unRenderStateX=f,e.initDriverState=function(n){return function(e){return function(t){return function(c){return function(){var f=o.new({})(),l=o.new(i.empty)(),s=o.new(i.empty)(),v=o.new(t)(),p=o.new(new a.Just(r.Nil.value))(),m=o.new(new a.Just(r.Nil.value))(),g=o.new(a.Nothing.value)(),h=o.new(1)(),w=o.new(new a.Just(u.empty))(),b=o.new(u.empty)(),y={component:n,state:n.initialState(e),refs:u.empty,children:i.empty,childrenIn:l,childrenOut:s,selfRef:f,handlerRef:v,pendingQueries:p,pendingOuts:m,pendingHandlers:g,rendering:a.Nothing.value,fresh:h,subscriptions:w,forks:b,lifecycleHandlers:c};return o.write(y)(f)(),d(f)}}}}}}(t),function(n){"use strict";n["Halogen.Query.ChildQuery"]=n["Halogen.Query.ChildQuery"]||{};var e=n["Halogen.Query.ChildQuery"],t=n["Unsafe.Coerce"].unsafeCoerce;e.unChildQueryBox=t}(t),function(n){"use strict";n["Halogen.Query.EventSource"]=n["Halogen.Query.EventSource"]||{};n["Halogen.Query.EventSource"].finalize=function(n){return n}}(t),function(n){"use strict";(t["Unsafe.Reference"]=t["Unsafe.Reference"]||{}).reallyUnsafeRefEq=function(n){return function(e){return n===e}}}(),function(n){"use strict";n["Unsafe.Reference"]=n["Unsafe.Reference"]||{};var e=n["Unsafe.Reference"],t=n["Unsafe.Reference"].reallyUnsafeRefEq;e.unsafeRefEq=t}(t),function(n){"use strict";n["Halogen.Aff.Driver.Eval"]=n["Halogen.Aff.Driver.Eval"]||{};var e=n["Halogen.Aff.Driver.Eval"],t=n["Control.Applicative"],r=n["Control.Applicative.Free"],u=n["Control.Bind"],a=n["Control.Coroutine"],o=n["Control.Monad"],i=n["Control.Monad.Fork.Class"],c=n["Control.Monad.Free"],f=n["Control.Monad.Free.Trans"],l=n["Control.Monad.Trans.Class"],s=n["Control.Parallel"],d=n["Control.Parallel.Class"],v=n["Data.Boolean"],p=n["Data.Coyoneda"],m=n["Data.Eq"],g=n["Data.Foldable"],h=n["Data.Function"],w=n["Data.Functor"],b=n["Data.List.Types"],y=n["Data.Map.Internal"],E=n["Data.Maybe"],D=n["Data.Ord"],A=n["Data.Unit"],C=n.Effect,M=n["Effect.Aff"],F=n["Effect.Class"],H=n["Effect.Exception"],T=n["Effect.Ref"],S=n["Halogen.Aff.Driver.State"],_=n["Halogen.Query.ChildQuery"],k=n["Halogen.Query.EventSource"],L=n["Halogen.Query.HalogenM"],x=n["Halogen.Query.HalogenQ"],I=n["Halogen.Query.Input"],R=n["Unsafe.Reference"],U=function(n){return function(e){return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(n)))(function(t){if(t instanceof E.Nothing)return e;if(t instanceof E.Just)return F.liftEffect(M.monadEffectAff)(T.write(new E.Just(new b.Cons(e,t.value0)))(n));throw new Error("Failed pattern match at Halogen.Aff.Driver.Eval (line 195, column 33 - line 197, column 57): "+[t.constructor.name])})}},N=function(n){return function(e){return u.discard(u.discardUnit)(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.write({initializers:b.Nil.value,finalizers:b.Nil.value})(n)))(function(){return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(e))(function(e){return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(n)))(function(n){return u.discard(u.discardUnit)(M.bindAff)(g.traverse_(M.applicativeAff)(b.foldableList)(i.fork(i.monadForkAff))(n.finalizers))(function(){return u.discard(u.discardUnit)(M.bindAff)(s.parSequence_(M.parallelAff)(b.foldableList)(n.initializers))(function(){return t.pure(M.applicativeAff)(e)})})})})})}},P=function(n){return function(e){return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(e)))(function(e){return F.liftEffect(M.monadEffectAff)(T["modify'"](function(e){return{state:e+1|0,value:n(e)}})(e.fresh))})}},B=function(n){return function(e){return function(t){return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(e)))(function(r){return O(n)(e)(r.component.eval(new x.Query(w.map(p.functorCoyoneda)(E.Just.create)(p.liftCoyoneda(t)),h.const(E.Nothing.value))))})}}},O=function n(e){return function(s){return function(p){var h;return c.foldFree(M.monadRecAff)((h=s,function(c){if(c instanceof L.State)return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(h)))(function(n){var r=c.value0(n.state);if(R.unsafeRefEq(n.state)(r.value1))return t.pure(M.applicativeAff)(r.value0);if(v.otherwise)return u.discard(u.discardUnit)(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.write({component:n.component,state:r.value1,refs:n.refs,children:n.children,childrenIn:n.childrenIn,childrenOut:n.childrenOut,selfRef:n.selfRef,handlerRef:n.handlerRef,pendingQueries:n.pendingQueries,pendingOuts:n.pendingOuts,pendingHandlers:n.pendingHandlers,rendering:n.rendering,fresh:n.fresh,subscriptions:n.subscriptions,forks:n.forks,lifecycleHandlers:n.lifecycleHandlers})(h)))(function(){return u.discard(u.discardUnit)(M.bindAff)(N(n.lifecycleHandlers)(e(n.lifecycleHandlers)(h)))(function(){return t.pure(M.applicativeAff)(r.value0)})});throw new Error("Failed pattern match at Halogen.Aff.Driver.Eval (line 85, column 7 - line 91, column 21): "+[r.constructor.name])});if(c instanceof L.Subscribe)return u.bind(M.bindAff)(P(L.SubscriptionId)(h))(function(n){var r=c.value0(n);return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(h)))(function(o){return u.bind(M.bindAff)(i.fork(i.monadForkAff)(u.bind(M.bindAff)(r)(function(r){var c=u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(o.subscriptions)))(function(e){return u.discard(u.discardUnit)(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.modify_(w.map(E.functorMaybe)(y.delete(L.ordSubscriptionId)(n)))(o.subscriptions)))(function(){return t.when(M.applicativeAff)(E.maybe(!1)(y.member(L.ordSubscriptionId)(n))(e))(k.finalize(r.finalizer))})}),s=u.bind(f.bindFreeT(a.functorAwait)(M.monadAff))(a.await(M.monadAff))(function(r){return u.bind(f.bindFreeT(a.functorAwait)(M.monadAff))(l.lift(f.monadTransFreeT(a.functorAwait))(M.monadAff)(F.liftEffect(M.monadEffectAff)(T.read(o.subscriptions))))(function(o){return t.when(f.applicativeFreeT(a.functorAwait)(M.monadAff))(m.eq(E.eqMaybe(m.eqBoolean))(w.map(E.functorMaybe)(y.member(L.ordSubscriptionId)(n))(o))(new E.Just(!0)))(u.bind(f.bindFreeT(a.functorAwait)(M.monadAff))(l.lift(f.monadTransFreeT(a.functorAwait))(M.monadAff)(i.fork(i.monadForkAff)(W(e)(h)(new I.Action(r)))))(function(){return s}))})});return u.discard(u.discardUnit)(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.modify_(w.map(E.functorMaybe)(y.insert(L.ordSubscriptionId)(n)(c)))(o.subscriptions)))(function(){return u.discard(u.discardUnit)(M.bindAff)(a.runProcess(M.monadRecAff)(a.pullFrom(M.monadRecAff)(s)(r.producer)))(function(){return k.finalize(c)})})})))(function(){return t.pure(M.applicativeAff)(c.value1(n))})})});if(c instanceof L.Unsubscribe)return u.discard(u.discardUnit)(M.bindAff)((s=c.value0,function(n){return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(n)))(function(n){return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(n.subscriptions)))(function(n){return g.traverse_(M.applicativeAff)(g.foldableMaybe)(k.finalize)(u.bindFlipped(E.bindMaybe)(y.lookup(L.ordSubscriptionId)(s))(n))})})})(h))(function(){return t.pure(M.applicativeAff)(c.value1)});var s,p,b;if(c instanceof L.Lift)return c.value0;if(c instanceof L.ChildQuery)return function(n){return function(t){return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(n)))(function(n){return _.unChildQueryBox(function(t){return w.map(M.functorAff)(t.value2)(d.sequential(M.parallelAff)(t.value0(M.applicativeParAff)(function(n){return d.parallel(M.parallelAff)(u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(n)))(function(n){return S.unDriverStateX(function(n){return B(e)(n.selfRef)(t.value1)})(n)}))})(n.children)))})(t)})}}(h)(c.value0);if(c instanceof L.Raise)return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(h)))(function(n){return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(n.handlerRef)))(function(e){return u.discard(u.discardUnit)(M.bindAff)(U(n.pendingOuts)(e(c.value0)))(function(){return t.pure(M.applicativeAff)(c.value1)})})});if(c instanceof L.Par)return d.sequential(M.parallelAff)(r.retractFreeAp(M.applicativeParAff)(r.hoistFreeAp((p=d.parallel(M.parallelAff),b=n(e)(h),function(n){return p(b(n))}))(c.value0)));if(c instanceof L.Fork)return u.bind(M.bindAff)(P(L.ForkId)(h))(function(r){return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(h)))(function(a){return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.new(!1)))(function(f){return u.bind(M.bindAff)(i.fork(i.monadForkAff)(M.finally(F.liftEffect(M.monadEffectAff)(function(){return T.modify_(y.delete(L.ordForkId)(r))(a.forks)(),T.write(!0)(f)()}))(n(e)(h)(c.value0))))(function(n){return u.discard(u.discardUnit)(M.bindAff)(F.liftEffect(M.monadEffectAff)(o.unlessM(C.monadEffect)(T.read(f))(T.modify_(y.insert(L.ordForkId)(r)(n))(a.forks))))(function(){return t.pure(M.applicativeAff)(c.value1(r))})})})})});if(c instanceof L.Kill)return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(h)))(function(n){return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(n.forks)))(function(n){return u.discard(u.discardUnit)(M.bindAff)(g.traverse_(M.applicativeAff)(g.foldableMaybe)(M.killFiber(H.error("Cancelled")))(y.lookup(L.ordForkId)(c.value0)(n)))(function(){return t.pure(M.applicativeAff)(c.value1)})})});if(c instanceof L.GetRef)return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(h)))(function(n){return t.pure(M.applicativeAff)(c.value1(y.lookup(D.ordString)(c.value0)(n.refs)))});throw new Error("Failed pattern match at Halogen.Aff.Driver.Eval (line 82, column 12 - line 146, column 33): "+[c.constructor.name])}))(p)}}},W=function(n){return function(e){return function(t){if(t instanceof I.RefUpdate)return F.liftEffect(M.monadEffectAff)(h.flip(T.modify_)(e)(S.mapDriverState(function(n){return{component:n.component,state:n.state,refs:y.alter(D.ordString)(h.const(t.value1))(t.value0)(n.refs),children:n.children,childrenIn:n.childrenIn,childrenOut:n.childrenOut,selfRef:n.selfRef,handlerRef:n.handlerRef,pendingQueries:n.pendingQueries,pendingOuts:n.pendingOuts,pendingHandlers:n.pendingHandlers,rendering:n.rendering,fresh:n.fresh,subscriptions:n.subscriptions,forks:n.forks,lifecycleHandlers:n.lifecycleHandlers}})));if(t instanceof I.Action)return u.bind(M.bindAff)(F.liftEffect(M.monadEffectAff)(T.read(e)))(function(r){return O(n)(e)(r.component.eval(new x.Action(t.value0,A.unit)))});throw new Error("Failed pattern match at Halogen.Aff.Driver.Eval (line 51, column 20 - line 57, column 62): "+[t.constructor.name])}}};e.evalF=W,e.evalQ=B,e.evalM=O,e.handleLifecycle=N,e.queueOrRun=U}(t),function(n){"use strict";n["Halogen.Aff.Driver"]=n["Halogen.Aff.Driver"]||{};var e=n["Halogen.Aff.Driver"],t=n["Control.Applicative"],r=n["Control.Bind"],u=n["Control.Category"],a=n["Control.Coroutine"],o=n["Control.Monad.Error.Class"],i=n["Control.Monad.Fork.Class"],c=n["Control.Monad.Rec.Class"],f=n["Control.Parallel"],l=n["Data.Either"],s=n["Data.Foldable"],d=n["Data.Function"],v=n["Data.Functor"],p=n["Data.List"],m=n["Data.List.Types"],g=n["Data.Map.Internal"],h=n["Data.Maybe"],w=n["Data.Ord"],b=n["Data.Unit"],y=n.Effect,E=n["Effect.Aff"],D=n["Effect.Aff.AVar"],A=n["Effect.Class"],C=n["Effect.Console"],M=n["Effect.Exception"],F=n["Effect.Ref"],H=n["Halogen.Aff.Driver.Eval"],T=n["Halogen.Aff.Driver.State"],S=n["Halogen.Component"],_=n["Halogen.Data.Slot"],k=n["Halogen.Query.EventSource"],L=n["Halogen.Query.HalogenQ"],x=n["Halogen.Query.Input"],I=F.new({initializers:m.Nil.value,finalizers:m.Nil.value}),R=E.runAff_(l.either(M.throwException)(d.const(t.pure(y.applicativeEffect)(b.unit)))),U=function(n){return function(){var e,t=F.read(n)();return F.write(h.Nothing.value)(n)(),s.for_(y.applicativeEffect)(s.foldableMaybe)(t)((e=s.traverse_(E.applicativeAff)(m.foldableList)(i.fork(i.monadForkAff)),function(n){return R(e(p.reverse(n)))}))()}};e.runUI=function(n){return function(e){return function(N){var P=function(n){return function(e){return function(t){return r.bind(E.bindAff)(D.empty)(function(u){return r.bind(E.bindAff)(A.liftEffect(E.monadEffectAff)(function(){var t=F.read(n)();return F.modify_(function(n){return n+1|0})(n)(),F.modify_(g.insert(w.ordInt)(t)(u))(e)(),t}))(function(n){var c=a.producer(E.monadAff)(v.map(E.functorAff)(l.either(d.const(new l.Right(b.unit)))(l.Left.create))(o.try(E.monadErrorAff)(D.take(u))));return v.void(E.functorAff)(i.fork(i.monadForkAff)(r.discard(r.discardUnit)(E.bindAff)(a.runProcess(E.monadRecAff)(a.connect(E.monadRecAff)(E.parallelAff)(c)(t)))(function(){return r.discard(r.discardUnit)(E.bindAff)(A.liftEffect(E.monadEffectAff)(F.modify_(g.delete(w.ordInt)(n))(e)))(function(){return D.kill(M.error("ended"))(u)})})))})})}}},B=function(n){return function(e){return function(t){return S.unComponent(function(u){return function(){var a,o=I(),i=T.initDriverState(u)(t)(e)(o)(),c=F.read(n)();return F.write({initializers:m.Nil.value,finalizers:c.finalizers})(n)(),r.bindFlipped(y.bindEffect)(T.unDriverStateX((a=W(n),function(n){return a(n.selfRef)})))(F.read(i))(),r.bindFlipped(y.bindEffect)(function(n){return function(e){return T.unDriverStateX(function(t){var u=H.evalM(W)(t.selfRef)(t.component.eval(new L.Initialize(b.unit)));return F.modify_(function(n){return{initializers:new m.Cons(r.discard(r.discardUnit)(E.bindAff)(f.parSequence_(E.parallelAff)(m.foldableList)(p.reverse(n.initializers)))(function(){return r.discard(r.discardUnit)(E.bindAff)(u)(function(){return A.liftEffect(E.monadEffectAff)(function(){return U(t.pendingQueries)(),U(t.pendingOuts)()})})}),e),finalizers:n.finalizers}})(n)})}}(n)(c.initializers))(F.read(i))(),i}})}}},O=function(e){return function(u){return function(a){return function(o){return S.unComponentSlot(function(i){return function(){var c=v.map(y.functorEffect)(i.pop)(F.read(a))(),f=function(){if(c instanceof h.Just){F.write(c.value0.value1)(a)();var n=F.read(c.value0.value0)();return T.unDriverStateX(function(n){return function(){var e;return d.flip(F.write)(n.handlerRef)((e=h.maybe(t.pure(E.applicativeAff)(b.unit))(u),function(n){return e(i.output(n))}))(),R(H.evalM(W)(n.selfRef)(n.component.eval(i.input)))()}})(n)(),c.value0.value0}if(c instanceof h.Nothing)return i.input instanceof L.Receive?B(e)((r=h.maybe(t.pure(E.applicativeAff)(b.unit))(u),function(n){return r(i.output(n))}))(i.input.value0)(i.component)():M.throw("Halogen internal error: slot input was not a Receive query")();var r;throw new Error("Failed pattern match at Halogen.Aff.Driver (line 236, column 14 - line 249, column 81): "+[c.constructor.name])}(),l=v.map(y.functorEffect)(function(n){return h.isJust(i.get(n))})(F.read(o))();return t.when(y.applicativeEffect)(l)(C.warn("Halogen: Duplicate slot address was detected during rendering, unexpected results may occur"))(),F.modify_(i.set(f))(o)(),r.bind(y.bindEffect)(F.read(f))(T.renderStateX(y.functorEffect)(function(e){if(e instanceof h.Nothing)return M.throw("Halogen internal error: child was not initialized in renderChild");if(e instanceof h.Just)return t.pure(y.applicativeEffect)(n.renderChild(e.value0));throw new Error("Failed pattern match at Halogen.Aff.Driver (line 254, column 37 - line 256, column 50): "+[e.constructor.name])}))()}})}}}},W=function e(r){return function(a){return function(){var o=F.read(a)(),f=v.map(y.functorEffect)(h.isNothing)(F.read(o.pendingHandlers))();t.when(y.applicativeEffect)(f)(F.write(new h.Just(m.Nil.value))(o.pendingHandlers))(),F.write(_.empty)(o.childrenOut)(),F.write(o.children)(o.childrenIn)();var l,g,w,D,A=u.identity(u.categoryFn)(o.selfRef),C=u.identity(u.categoryFn)(o.pendingQueries),M=u.identity(u.categoryFn)(o.pendingHandlers),S=(l=H.queueOrRun(M),g=v.void(E.functorAff),w=H.evalF(e)(A),function(n){return l(g(w(n)))}),k=(D=H.queueOrRun(C),function(n){return D(S(x.Action.create(n)))}),L=n.render(function(n){return R(S(n))})(O(r)(k)(o.childrenIn)(o.childrenOut))(o.component.render(o.state))(o.rendering)(),I=F.read(o.childrenOut)(),U=F.read(o.childrenIn)();return _.foreachSlot(y.applicativeEffect)(U)(function(e){return function(){var t=F.read(e)();return T.renderStateX_(y.applicativeEffect)(n.removeChild)(t)(),q(r)(t)()}})(),d.flip(F.modify_)(o.selfRef)(T.mapDriverState(function(n){return{component:n.component,state:n.state,refs:n.refs,children:I,childrenIn:n.childrenIn,childrenOut:n.childrenOut,selfRef:n.selfRef,handlerRef:n.handlerRef,pendingQueries:n.pendingQueries,pendingOuts:n.pendingOuts,pendingHandlers:n.pendingHandlers,rendering:new h.Just(L),fresh:n.fresh,subscriptions:n.subscriptions,forks:n.forks,lifecycleHandlers:n.lifecycleHandlers}}))(),t.when(y.applicativeEffect)(f)(d.flip(c.tailRecM(c.monadRecEffect))(b.unit)(function(n){return function(){var n,e=F.read(M)();F.write(new h.Just(m.Nil.value))(M)(),s.traverse_(y.applicativeEffect)(s.foldableMaybe)((n=s.traverse_(E.applicativeAff)(m.foldableList)(i.fork(i.monadForkAff)),function(e){return R(n(p.reverse(e)))}))(e)();var t=F.read(M)();return h.maybe(!1)(p.null)(t)?v.voidLeft(y.functorEffect)(F.write(h.Nothing.value)(M))(new c.Done(b.unit))():new c.Loop(b.unit)}}))()}}},q=function n(e){return T.unDriverStateX(function(t){return function(){var u;(u=t,function(){var n,e,t;return r.bindFlipped(y.bindEffect)(s.traverse_(y.applicativeEffect)(s.foldableMaybe)((e=s.traverse_(E.applicativeAff)(g.foldableMap)((n=i.fork(i.monadForkAff),function(e){return n(k.finalize(e))})),function(n){return R(e(n))})))(F.read(u.subscriptions))(),F.write(h.Nothing.value)(u.subscriptions)(),r.bindFlipped(y.bindEffect)(s.traverse_(y.applicativeEffect)(g.foldableMap)((t=E.killFiber(M.error("finalized")),function(n){return R(t(n))})))(F.read(u.forks))(),F.write(g.empty)(u.forks)()})();var a=H.evalM(W)(t.selfRef)(t.component.eval(new L.Finalize(b.unit)));return F.modify_(function(n){return{initializers:n.initializers,finalizers:new m.Cons(a,n.finalizers)}})(e)(),_.foreachSlot(y.applicativeEffect)(t.children)(function(t){return function(){var r=F.read(t)();return n(e)(r)()}})()}})},J=function(n){return function(e){return function(u){return r.bind(E.bindAff)(A.liftEffect(E.monadEffectAff)(F.read(n)))(function(n){return n?t.pure(E.applicativeAff)(h.Nothing.value):H.evalQ(W)(e)(u)})}}},j=function(e){return function(t){return function(u){return function(a){return H.handleLifecycle(t)(function(){var o,i;return F.read(e)()?b.unit:(F.write(!0)(e)(),r.bindFlipped(y.bindEffect)(s.traverse_(y.applicativeEffect)(g.foldableMap)((o=D.kill(M.error("disposed")),function(n){return E.launchAff_(o(n))})))(F.read(a))(),q(t)(u)(),T.unDriverStateX((i=s.traverse_(y.applicativeEffect)(s.foldableMaybe)(n.dispose),function(n){return i(n.rendering)}))(u)())})}}}};return r.bind(E.bindAff)(A.liftEffect(E.monadEffectAff)(I))(function(n){return r.bind(E.bindAff)(A.liftEffect(E.monadEffectAff)(F.new(0)))(function(u){return r.bind(E.bindAff)(A.liftEffect(E.monadEffectAff)(F.new(!1)))(function(a){return H.handleLifecycle(n)(function(){var o,c=F.new(g.empty)(),f=r.bindFlipped(y.bindEffect)(F.read)(B(n)((o=c,function(n){return r.bind(E.bindAff)(A.liftEffect(E.monadEffectAff)(F.read(o)))(function(e){return s.traverse_(E.applicativeAff)(g.foldableMap)(i.fork(i.monadForkAff))(v.map(g.functorMap)(D.put(n))(e))})}))(N)(e))();return T.unDriverStateX(function(e){return t.pure(y.applicativeEffect)({query:J(a)(e.selfRef),subscribe:P(u)(c),dispose:j(a)(n)(f)(c)})})(f)()})})})})}}}}(t),function(n){"use strict";(t["Web.DOM.ParentNode"]=t["Web.DOM.ParentNode"]||{})._querySelector=function(n){return function(e){return function(){return e.querySelector(n)}}}}(),function(n){"use strict";n["Web.DOM.ParentNode"]=n["Web.DOM.ParentNode"]||{};var e=n["Web.DOM.ParentNode"],t=n["Web.DOM.ParentNode"],r=n["Data.Functor"],u=n["Data.Nullable"],a=n.Effect;e.querySelector=function(n){var e=r.map(a.functorEffect)(u.toMaybe),o=t._querySelector(n);return function(n){return e(o(n))}}}(t),function(n){"use strict";n["Web.HTML.HTMLDocument"]=n["Web.HTML.HTMLDocument"]||{};var e=n["Web.HTML.HTMLDocument"],t=n["Unsafe.Coerce"],r=t.unsafeCoerce,u=t.unsafeCoerce;e.toDocument=u,e.toParentNode=r}(t),function(n){"use strict";n["Halogen.Aff.Util"]=n["Halogen.Aff.Util"]||{};var e=n["Halogen.Aff.Util"],t=n["Control.Applicative"],r=n["Control.Bind"],u=n["Data.Either"],a=n["Data.Function"],o=n["Data.Maybe"],i=n["Data.Unit"],c=n.Effect,f=n["Effect.Aff"],l=n["Effect.Class"],s=n["Effect.Exception"],d=n["Web.DOM.ParentNode"],v=n["Web.HTML"],p=n["Web.HTML.HTMLDocument"],m=n["Web.HTML.HTMLElement"],g=n["Web.HTML.Window"],h=f.runAff_(u.either(s.throwException)(a.const(t.pure(c.applicativeEffect)(i.unit))));e.selectElement=function(n){return r.bind(f.bindAff)(l.liftEffect(f.monadEffectAff)(r.bindFlipped(c.bindEffect)(r.composeKleisliFlipped(c.bindEffect)((e=d.querySelector(n),function(n){return e(p.toParentNode(n))}))(g.document))(v.window)))(function(n){return t.pure(f.applicativeAff)(r.bindFlipped(o.bindMaybe)(m.fromElement)(n))});var e},e.runHalogenAff=h}(t),function(n){"use strict";(t["Web.DOM.Element"]=t["Web.DOM.Element"]||{}).setAttribute=function(n){return function(e){return function(t){return function(){return t.setAttribute(n,e),{}}}}}}(),function(n){"use strict";n["Web.DOM.Element"]=n["Web.DOM.Element"]||{};var e=n["Web.DOM.Element"],t=n["Web.DOM.Element"],r=n["Unsafe.Coerce"].unsafeCoerce;e.toNode=r,e.setAttribute=t.setAttribute}(t),function(n){"use strict";n["Halogen.VDom.DOM"]=n["Halogen.VDom.DOM"]||{};var e=n["Halogen.VDom.DOM"],t=n["Data.Array"],r=n["Data.Boolean"],u=n["Data.Maybe"],a=n["Data.Nullable"],o=n["Data.Tuple"],i=n["Halogen.VDom.Machine"],c=n["Halogen.VDom.Types"],f=n["Halogen.VDom.Util"],l=n["Web.DOM.Element"],s=function(n){return i.halt(n.widget)},d=function n(e,t){if(t instanceof c.Grafted)return n(e,c.runGraft(t.value0));if(t instanceof c.Widget){var r=i.step(e.widget,t.value0);return i.unStep(function(t){return i.mkStep(new i.Step(t.value0,{build:e.build,widget:r},n,s))})(r)}return s(e),e.build(t)},v=function(n){var e=f.parentNode(n.node);return f.removeChild(n.node,e)},p=function n(e,t){if(t instanceof c.Grafted)return n(e,c.runGraft(t.value0));if(t instanceof c.Text){if(e.value===t.value0)return i.mkStep(new i.Step(e.node,e,n,v));if(r.otherwise){var u={build:e.build,node:e.node,value:t.value0};return f.setTextContent(t.value0,e.node),i.mkStep(new i.Step(e.node,u,n,v))}}return v(e),e.build(t)},m=function(n){var e=f.parentNode(n.node);return f.removeChild(n.node,e),f.forInE(n.children,function(n,e){return i.halt(e)}),i.halt(n.attrs)},g=function(n){var e=f.parentNode(n.node);return f.removeChild(n.node,e),f.forEachE(n.children,i.halt),i.halt(n.attrs)},h=function(n,e,t,r){return!(e!==r)&&(n instanceof u.Just&&t instanceof u.Just&&n.value0===t.value0||n instanceof u.Nothing&&t instanceof u.Nothing)},w=function n(e,r){if(r instanceof c.Grafted)return n(e,c.runGraft(r.value0));if(r instanceof c.Elem&&h(e.ns,e.name,r.value0,r.value1)){var u=t.length(r.value3);if(0===t.length(e.children)&&0===u){var a=i.step(e.attrs,r.value2),o={build:e.build,node:e.node,attrs:a,ns:r.value0,name:r.value1,children:e.children};return i.mkStep(new i.Step(e.node,o,n,g))}var l=f.diffWithIxE(e.children,r.value3,function(n,t,r){var u=i.step(t,r);return f.insertChildIx(n,i.extract(u),e.node),u},function(n,e){return i.halt(e)},function(n,t){var r=e.build(t);return f.insertChildIx(n,i.extract(r),e.node),r});a=i.step(e.attrs,r.value2),o={build:e.build,node:e.node,attrs:a,ns:r.value0,name:r.value1,children:l};return i.mkStep(new i.Step(e.node,o,n,g))}return g(e),e.build(r)},b=function n(e,r){if(r instanceof c.Grafted)return n(e,c.runGraft(r.value0));if(r instanceof c.Keyed&&h(e.ns,e.name,r.value0,r.value1)){var u=t.length(r.value3);if(0===e.length&&0===u){var a=i.step(e.attrs,r.value2),l={build:e.build,node:e.node,attrs:a,ns:r.value0,name:r.value1,children:e.children,length:0};return i.mkStep(new i.Step(e.node,l,n,m))}var s=f.diffWithKeyAndIxE(e.children,r.value3,o.fst,function(n,t,r,u){var a=i.step(r,u.value1);return f.insertChildIx(t,i.extract(a),e.node),a},function(n,e){return i.halt(e)},function(n,t,r){var u=e.build(r.value1);return f.insertChildIx(t,i.extract(u),e.node),u});a=i.step(e.attrs,r.value2),l={build:e.build,node:e.node,attrs:a,ns:r.value0,name:r.value1,children:s,length:u};return i.mkStep(new i.Step(e.node,l,n,m))}return m(e),e.build(r)};e.buildVDom=function(n){return function e(r){if(r instanceof c.Text)return function(n,e,t){var r=f.createTextNode(t,n.document),u={build:e,node:r,value:t};return i.mkStep(new i.Step(r,u,p,v))}(n,e,r.value0);if(r instanceof c.Elem)return function(n,e,t,r,u,o){var c=f.createElement(a.toNullable(t),r,n.document),s=l.toNode(c),d=f.forE(o,function(n,t){var r=e(t);return f.insertChildIx(n,i.extract(r),s),r}),v=n.buildAttributes(c)(u),p={build:e,node:s,attrs:v,ns:t,name:r,children:d};return i.mkStep(new i.Step(s,p,w,g))}(n,e,r.value0,r.value1,r.value2,r.value3);if(r instanceof c.Keyed)return function(n,e,r,u,c,s){var d=f.createElement(a.toNullable(r),u,n.document),v=l.toNode(d),p=f.strMapWithIxE(s,o.fst,function(n,t,r){var u=e(r.value1);return f.insertChildIx(t,i.extract(u),v),u}),g=n.buildAttributes(d)(c),h={build:e,node:v,attrs:g,ns:r,name:u,children:p,length:t.length(s)};return i.mkStep(new i.Step(v,h,b,m))}(n,e,r.value0,r.value1,r.value2,r.value3);if(r instanceof c.Widget)return function(n,e,t){var r=n.buildWidget(n)(t);return i.unStep(function(n){return i.mkStep(new i.Step(n.value0,{build:e,widget:r},d,s))})(r)}(n,e,r.value0);if(r instanceof c.Grafted)return e(c.runGraft(r.value0));throw new Error("Failed pattern match at Halogen.VDom.DOM (line 58, column 27 - line 63, column 52): "+[r.constructor.name])}}}(t),function(n){"use strict";n["Halogen.VDom.Thunk"]=n["Halogen.VDom.Thunk"]||{};var e=n["Halogen.VDom.Thunk"],t=n["Halogen.VDom.DOM"],r=n["Halogen.VDom.Machine"],u=n["Halogen.VDom.Util"],a=(function(){function n(n,e,t,r){this.value0=n,this.value1=e,this.value2=t,this.value3=r}n.create=function(e){return function(t){return function(r){return function(u){return new n(e,t,r,u)}}}}}(),function(n){return n.value2(n.value3)});e.buildThunk=function(n){var e=function(n){return r.halt(n.vdom)},o=function t(o,i){var c,f;if(c=o.thunk,f=i,u.refEq(c.value0,f.value0)&&u.refEq(c.value1,f.value1)&&u.refEq(c.value3,f.value3))return r.mkStep(new r.Step(r.extract(o.vdom),o,t,e));var l=r.step(o.vdom,n(a(i)));return r.mkStep(new r.Step(r.extract(l),{vdom:l,thunk:i},t,e))};return function(u){return function(i){var c=t.buildVDom(u)(n(a(i)));return r.mkStep(new r.Step(r.extract(c),{thunk:i,vdom:c},o,e))}}}}(t),function(n){"use strict";var e=function(n){return function(e){return function(){return e[n]}}};n._parentNode=e("parentNode"),n._nextSibling=e("nextSibling"),n.insertBefore=function(n){return function(e){return function(t){return function(){return t.insertBefore(n,e)}}}},n.appendChild=function(n){return function(e){return function(){return e.appendChild(n)}}},n.removeChild=function(n){return function(e){return function(){return e.removeChild(n)}}}}(t["Web.DOM.Node"]=t["Web.DOM.Node"]||{}),function(n){"use strict";n["Web.DOM.Node"]=n["Web.DOM.Node"]||{};var e,t,r=n["Web.DOM.Node"],u=n["Web.DOM.Node"],a=n["Data.Functor"],o=n["Data.Nullable"],i=n.Effect,c=(e=a.map(i.functorEffect)(o.toMaybe),function(n){return e(u._parentNode(n))}),f=(t=a.map(i.functorEffect)(o.toMaybe),function(n){return t(u._nextSibling(n))});r.parentNode=c,r.nextSibling=f,r.insertBefore=u.insertBefore,r.appendChild=u.appendChild,r.removeChild=u.removeChild}(t),function(n){"use strict";n["Halogen.VDom.Driver"]=n["Halogen.VDom.Driver"]||{};var e=n["Halogen.VDom.Driver"],t=n["Control.Applicative"],r=n["Control.Bind"],u=n["Control.Category"],a=n["Data.Foldable"],o=n["Data.Functor"],i=n["Data.HeytingAlgebra"],c=n["Data.Maybe"],f=n["Data.Newtype"],l=n["Data.Unit"],s=n.Effect,d=n["Effect.Aff"],v=n["Effect.Class"],p=n["Effect.Ref"],m=n["Halogen.Aff.Driver"],g=n["Halogen.Aff.Driver.State"],h=n["Halogen.Component"],w=n["Halogen.HTML.Core"],b=n["Halogen.VDom.DOM"],y=n["Halogen.VDom.DOM.Prop"],E=n["Halogen.VDom.Machine"],D=n["Halogen.VDom.Thunk"],A=n["Unsafe.Reference"],C=n["Web.DOM.Node"],M=n["Web.HTML"],F=n["Web.HTML.HTMLDocument"],H=n["Web.HTML.HTMLElement"],T=n["Web.HTML.Window"],S=function(n){return function(){var e=C.parentNode(n.node)();return a.traverse_(s.applicativeEffect)(a.foldableMaybe)(function(e){return C.removeChild(n.node)(e)})(e)()}},_=function(n){return function(e){return{render:function(r){return function(u){return function(a){return function(d){if(d instanceof c.Nothing)return function(){var t=p.new(u)(),i=function(n){return function(e){return function(t){var r=g.unRenderStateX(function(n){return n.node}),u=function(n){return n instanceof c.Just?E.halt(n.value0):l.unit};return{buildWidget:function(n){var t=D.buildThunk(f.unwrap(w.newtypeHTML))(n),a=function(n){var t=p.read(e)()(n)(),a=r(t);return E.mkStep(new E.Step(a,c.Nothing.value,i,u))},o=function(n){if(n instanceof h.ComponentSlot)return a(n.value0);if(n instanceof h.ThunkSlot){var e=t(n.value0);return E.mkStep(new E.Step(E.extract(e),new c.Just(e),i,u))}throw new Error("Failed pattern match at Halogen.VDom.Driver (line 85, column 7 - line 90, column 75): "+[n.constructor.name])},i=function n(e,t){if(e instanceof c.Just){if(t instanceof h.ComponentSlot)return E.halt(e.value0),a(t.value0);if(t instanceof h.ThunkSlot){var r=E.step(e.value0,t.value0);return E.mkStep(new E.Step(E.extract(r),new c.Just(r),n,u))}throw new Error("Failed pattern match at Halogen.VDom.Driver (line 98, column 22 - line 104, column 79): "+[t.constructor.name])}return o(t)};return o},buildAttributes:y.buildProp(n),document:t}}}}(r)(t)(n),d=b.buildVDom(i)(a),v=E.extract(d);return o.void(s.functorEffect)(C.appendChild(v)(H.toNode(e)))(),{machine:d,node:v,renderChildRef:t}};if(d instanceof c.Just)return function(){p.write(u)(d.value0.renderChildRef)();var n=C.parentNode(d.value0.node)(),e=C.nextSibling(d.value0.node)(),r=E.step(d.value0.machine,a),f=E.extract(r);return t.when(s.applicativeEffect)(i.not(i.heytingAlgebraFunction(i.heytingAlgebraFunction(i.heytingAlgebraBoolean)))(A.unsafeRefEq)(d.value0.node)(f))(function(n){return function(e){return function(r){return e instanceof c.Just&&r instanceof c.Just?o.void(s.functorEffect)(C.insertBefore(n)(e.value0)(r.value0)):e instanceof c.Nothing&&r instanceof c.Just?o.void(s.functorEffect)(C.appendChild(n)(r.value0)):t.pure(s.applicativeEffect)(l.unit)}}}(f)(e)(n))(),{machine:r,node:f,renderChildRef:d.value0.renderChildRef}};throw new Error("Failed pattern match at Halogen.VDom.Driver (line 159, column 5 - line 175, column 80): "+[d.constructor.name])}}}},renderChild:u.identity(u.categoryFn),removeChild:S,dispose:S}}};e.runUI=function(n){return function(e){return function(t){return r.bind(d.bindAff)(v.liftEffect(d.monadEffectAff)(o.map(s.functorEffect)(F.toDocument)(r.bindFlipped(s.bindEffect)(T.document)(M.window))))(function(r){return m.runUI(_(r)(t))(n)(e)})}}}}(t),function(n){"use strict";(t["Main"]=t["Main"]||{})._mainImpl=function(){return window.PS=t}}(),function(n){"use strict";n.Main=n.Main||{};var e=n.Main,t=n.Main,r=n.App,u=n["Component.AccountSettings"],a=n["Component.Add"],o=n["Component.BList"],i=n["Component.NList"],c=n["Component.NNote"],f=n["Control.Bind"],l=n["Data.Foldable"],s=n["Data.Functor"],d=n["Data.Unit"],v=n.Effect,p=n["Effect.Aff"],m=n["Effect.Class"],g=n["Halogen.Aff.Util"],h=n["Halogen.VDom.Driver"],w=n["Web.DOM.Element"],b=n["Web.Event.Event"],y=n["Web.HTML.HTMLElement"],E=f.bind(p.bindAff)(g.selectElement("#content"))(l.traverse_(p.applicativeAff)(l.foldableMaybe)(function(n){return m.liftEffect(p.monadEffectAff)(w.setAttribute("view-rendered")("")(y.toElement(n)))})),D=t._mainImpl;e.main=D,e.logoutE=function(n){return f.bindFlipped(v.bindEffect)((e=s.void(v.functorEffect),function(n){return e(p.launchAff(r.logout(n)))}))(b.preventDefault(n));var e},e.renderBookmarks=function(n){return function(e){return g.runHalogenAff(f.bind(p.bindAff)(g.selectElement(n))(l.traverse_(p.applicativeAff)(l.foldableMaybe)(function(n){return f.discard(f.discardUnit)(p.bindAff)(s.void(p.functorAff)(h.runUI(o.blist(e))(d.unit)(n)))(function(){return E})})))}},e.renderAddForm=function(n){return function(e){return g.runHalogenAff(f.bind(p.bindAff)(g.selectElement(n))(l.traverse_(p.applicativeAff)(l.foldableMaybe)(function(n){return f.discard(f.discardUnit)(p.bindAff)(s.void(p.functorAff)(h.runUI(a.addbmark(e))(d.unit)(n)))(function(){return E})})))}},e.renderNotes=function(n){return function(e){return g.runHalogenAff(f.bind(p.bindAff)(g.selectElement(n))(l.traverse_(p.applicativeAff)(l.foldableMaybe)(function(n){return f.discard(f.discardUnit)(p.bindAff)(s.void(p.functorAff)(h.runUI(i.nlist(e))(d.unit)(n)))(function(){return E})})))}},e.renderNote=function(n){return function(e){return g.runHalogenAff(f.bind(p.bindAff)(g.selectElement(n))(l.traverse_(p.applicativeAff)(l.foldableMaybe)(function(n){return f.discard(f.discardUnit)(p.bindAff)(s.void(p.functorAff)(h.runUI(c.nnote(e))(d.unit)(n)))(function(){return E})})))}},e.renderAccountSettings=function(n){return function(e){return g.runHalogenAff(f.bind(p.bindAff)(g.selectElement(n))(l.traverse_(p.applicativeAff)(l.foldableMaybe)(function(n){return f.discard(f.discardUnit)(p.bindAff)(s.void(p.functorAff)(h.runUI(u.usetting(e))(d.unit)(n)))(function(){return E})})))}},e.viewRendered=E,e._mainImpl=t._mainImpl}(t),t.Main.main(); +var n=require("process");function e(n){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}var t={};!function(e){"use strict";var r;(t["Affjax"]=t["Affjax"]||{})._ajax=(r={},"undefined"==typeof module||!module.require||void 0!==n&&n.versions.electron?(r.newXHR=function(){return new XMLHttpRequest},r.fixupUrl=function(n){return n||"/"},r.getResponse=function(n){return n.response}):(r.newXHR=function(){return new(module.require("xhr2"))},r.fixupUrl=function(n,e){if(null===e.nodejsBaseUrl){var t=module.require("url"),r=t.parse(n);return r.protocol=r.protocol||"http:",r.hostname=r.hostname||"localhost",t.format(r)}return n||"/"},r.getResponse=function(n){return n.response}),function(n,e){return function(t,u){var a=r.newXHR(),o=r.fixupUrl(e.url,a);if(a.open(e.method||"GET",o,!0,e.username,e.password),e.headers)try{for(var i,c=0;null!=(i=e.headers[c]);c++)a.setRequestHeader(i.field,i.value)}catch(l){t(l)}var f=function(n){return function(){t(new Error(n+": "+e.method+" "+e.url))}};return a.onerror=f("AJAX request failed"),a.ontimeout=f("AJAX request timed out"),a.onload=function(){u({status:a.status,statusText:a.statusText,headers:a.getAllResponseHeaders().split("\r\n").filter(function(n){return n.length>0}).map(function(e){var t=e.indexOf(":");return n(e.substring(0,t))(e.substring(t+2))}),body:r.getResponse(a)})},a.responseType=e.responseType,a.withCredentials=e.withCredentials,a.send(e.content),function(n,e,t){try{a.abort()}catch(l){return e(l)}return t()}}})}(),function(n){"use strict";(t["Control.Apply"]=t["Control.Apply"]||{}).arrayApply=function(n){return function(e){for(var t=n.length,r=e.length,u=new Array(t*r),a=0,o=0;o=0;u--)r=n(t[u])(r);return r}}},n.foldlArray=function(n){return function(e){return function(t){for(var r=e,u=t.length,a=0;a0)&&(w=T,y=Q._3(j)));break;case m:P=new b(v,new b(h,y,D),P,L),w=T,y=L&&L!==O&&0===B?Q._1.killed(n.fromLeft(L))(Q._2):D?Q._1.failed(n.fromLeft(D))(Q._2):Q._1.completed(n.fromRight(y))(Q._2),D=null,B++;break;case g:B++,P=new b(v,new b(h,y,D),P,L),w=T,y=Q._1;break;case h:B--,w=k,y=Q._1,D=Q._2}break;case x:for(var V in W)W.hasOwnProperty(V)&&(q=q&&W[V].rethrow,E(W[V].handler(y)));return W=null,void(L&&D?setTimeout(function(){throw n.fromLeft(D)},0):n.isLeft(y)&&q&&setTimeout(function(){if(q)throw n.fromLeft(y)},0));case F:w=T;break;case _:return}}function j(n){return function(){if(w===x)return q=q&&n.rethrow,n.handler(y)(),function(){};var e=O++;return(W=W||{})[e]=n,function(){null!==W&&delete W[e]}}}return{kill:function(e,t){return function(){if(w===x)return t(n.right(void 0))(),function(){};var r=j({rethrow:!1,handler:function(){return t(n.right(void 0))}})();switch(w){case F:L=n.left(e),w=x,y=L,J(d);break;case _:null===L&&(L=n.left(e)),0===B&&(w===_&&(P=new b(v,new b(g,y(e)),P,L)),w=k,y=null,D=null,J(++d));break;default:null===L&&(L=n.left(e)),0===B&&(w=k,y=null,D=null)}return r}},join:function(n){return function(){var e=j({rethrow:!1,handler:n})();return w===F&&J(d),e}},onComplete:j,isSuspended:function(){return w===F},run:function(){w===F&&(C.isDraining()?J(d):C.enqueue(function(){J(d)}))}}}function L(e,t,r,u){var o=0,i={},c=0,f={},p=new Error("[ParAff] Early exit"),m=null,g=n;function h(t,r,u){var a,o,c=r,f=null,p=null,m=0,g={};n:for(;;)switch(a=null,c.tag){case w:if(c._3===n&&(a=i[c._1],g[m++]=a.kill(t,function(n){return function(){0===--m&&u(n)()}})),null===f)break n;c=f._2,null===p?f=null:(f=p._1,p=p._2);break;case l:c=c._2;break;case s:case d:f&&(p=new b(v,f,p)),f=c,c=c._1}if(0===m)u(e.right(void 0))();else for(o=0,a=m;o=u.bottom(u.boundedInt)&&n<=u.top(u.boundedInt)?new a.Just(r.fromCharCode(n)):a.Nothing.value},f=new function(n,e,t){this.Ord0=n,this.pred=e,this.succ=t}(function(){return o.ordChar},(e=c,function(n){return function(t){return e(n(t)-1|0)}})(r.toCharCode),function(n){return function(e){return function(t){return n(e(t)+1|0)}}}(c)(r.toCharCode)),l=new function(n,e,t,r,u){this.Bounded0=n,this.Enum1=e,this.cardinality=t,this.fromEnum=r,this.toEnum=u}(function(){return u.boundedChar},function(){return f},r.toCharCode(u.top(u.boundedChar))-r.toCharCode(u.bottom(u.boundedChar))|0,r.toCharCode,c);t.fromEnum=i,t.toEnumWithDefaults=function(n){return function(e){return function(t){return function(r){var o=n.toEnum(r);if(o instanceof a.Just)return o.value0;if(o instanceof a.Nothing)return r0?Math.floor(n/e):-Math.floor(n/-e)}},n.intMod=function(n){return function(e){if(0===e)return 0;var t=Math.abs(e);return(n%t+t)%t}}}(t["Data.EuclideanRing"]=t["Data.EuclideanRing"]||{}),function(n){"use strict";(t["Data.Ring"]=t["Data.Ring"]||{}).intSub=function(n){return function(e){return n-e|0}}}(),function(n){"use strict";n.intAdd=function(n){return function(e){return n+e|0}},n.intMul=function(n){return function(e){return n*e|0}}}(t["Data.Semiring"]=t["Data.Semiring"]||{}),function(n){"use strict";n["Data.Semiring"]=n["Data.Semiring"]||{};var e=n["Data.Semiring"],t=n["Data.Semiring"],r=new function(n,e,t,r){this.add=n,this.mul=e,this.one=t,this.zero=r}(t.intAdd,t.intMul,1,0);e.semiringInt=r}(t),function(n){"use strict";n["Data.Ring"]=n["Data.Ring"]||{};var e=n["Data.Ring"],t=n["Data.Ring"],r=n["Data.Semiring"],u=new function(n,e){this.Semiring0=n,this.sub=e}(function(){return r.semiringInt},t.intSub);e.ringInt=u}(t),function(n){"use strict";n["Data.CommutativeRing"]=n["Data.CommutativeRing"]||{};var e=n["Data.CommutativeRing"],t=n["Data.Ring"],r=new function(n){this.Ring0=n}(function(){return t.ringInt});e.commutativeRingInt=r}(t),function(n){"use strict";n["Data.EuclideanRing"]=n["Data.EuclideanRing"]||{};var e=n["Data.EuclideanRing"],t=n["Data.EuclideanRing"],r=n["Data.CommutativeRing"],u=new function(n,e,t,r){this.CommutativeRing0=n,this.degree=e,this.div=t,this.mod=r}(function(){return r.commutativeRingInt},t.intDegree,t.intDiv,t.intMod);e.div=function(n){return n.div},e.mod=function(n){return n.mod},e.euclideanRingInt=u}(t),function(n){"use strict";n.singleton=function(n){return n},n.length=function(n){return n.length},n.drop=function(n){return function(e){return e.substring(n)}}}(t["Data.String.CodeUnits"]=t["Data.String.CodeUnits"]||{}),function(n){"use strict";n["Data.String.CodeUnits"]=n["Data.String.CodeUnits"]||{};var e=n["Data.String.CodeUnits"],t=n["Data.String.CodeUnits"];e.singleton=t.singleton,e.length=t.length,e.drop=t.drop}(t),function(n){"use strict";(t["Data.String.Unsafe"]=t["Data.String.Unsafe"]||{}).charAt=function(n){return function(e){if(n>=0&&n1){var t=a.fromEnum(a.boundedEnumChar)(l.charAt(1)(n));return p(t)?v(e)(t):e}return e}),b=(r._toCodePointArray(function(n){return d.unfoldr(d.unfoldableArray)(h)(n)})(w),e=a.toEnumWithDefaults(a.boundedEnumChar)(u.bottom(u.boundedChar))(u.top(u.boundedChar)),function(n){return f.singleton(e(n))}),y=r._singleton(function(n){if(n<=65535)return b(n);var e=o.div(o.euclideanRingInt)(n-65536|0)(1024)+55296|0,t=o.mod(o.euclideanRingInt)(n-65536|0)(1024)+56320|0;return b(e)+b(t)}),D=r._take(function n(e){return function(t){if(e<1)return"";var r=g(t);return r instanceof c.Just?y(r.value0.head)+n(e-1|0)(r.value0.tail):t}});t.take=D,t.drop=function(n){return function(e){return f.drop(f.length(D(n)(e)))(e)}}}(t),function(n){"use strict";n.Util=n.Util||{};var e,t=n.Util,r=n["Control.Bind"],u=n["Data.Array"],a=n["Data.Foldable"],o=n["Data.Functor"],i=n["Data.Maybe"],c=n["Data.Nullable"],f=n["Data.String.CodePoints"],l=n["Data.String.Common"],s=n["Data.Tuple"],d=n["Data.Unit"],v=n.Effect,p=n["Global.Unsafe"],m=n["Halogen.HTML.Core"],g=n["Halogen.HTML.Properties"],h=n["Web.HTML"],w=n["Web.HTML.Location"],b=n["Web.HTML.Window"],y=(e=i.fromMaybe(""),function(n){return e(c.toMaybe(n))}),D=r.bindFlipped(v.bindEffect)(b.location)(h.window);t.class_=function(n){return g.class_(m.ClassName(n))},t.attr=function(n){return g.attr(n)},t._loc=D,t._curQuerystring=function(){var n=D();return function(n){var e,t,r=(e=l.replaceAll("+")(" "),function(n){return p.unsafeDecodeURIComponent(e(n))}),a="#"===(t=f.take(1)(n))||"?"===t?f.drop(1)(n):n;return u.mapMaybe(function(n){var e=l.split("=")(n);return 1===e.length?new i.Just(new s.Tuple(r(e[0]),i.Nothing.value)):2===e.length?new i.Just(new s.Tuple(r(e[0]),new i.Just(r(e[1])))):i.Nothing.value})(u.filter(function(n){return""!==n})(l.split("&")(a)))}(w.search(n)())},t._lookupQueryStringValue=function(n){return function(e){return r.join(i.bindMaybe)(o.map(i.functorMaybe)(s.snd)(a.find(a.foldableArray)(function(n){return s.fst(n)===e})(n)))}},t.whenH=function(n){return function(e){return n?e(d.unit):m.text("")}},t.whenA=function(n){return function(e){return n?e(d.unit):[]}},t.ifElseH=function(n){return function(e){return function(t){return n?e(d.unit):t(d.unit)}}},t.fromNullableStr=y}(t),function(n){"use strict";n["Component.AccountSettings"]=n["Component.AccountSettings"]||{};var e=n["Component.AccountSettings"],t=n.App,r=n["Control.Bind"],u=n["DOM.HTML.Indexed.InputType"],a=n["Data.Function"],o=n["Data.Functor"],i=n["Data.Lens.Getter"],c=n["Data.Lens.Internal.Forget"],f=n["Data.Lens.Lens"],l=n["Data.Lens.Setter"],s=n["Data.Maybe"],d=n["Data.Profunctor.Strong"],v=n["Data.Unit"],p=n["Effect.Aff.Class"],m=n.Globals,g=n["Halogen.Component"],h=n["Halogen.HTML.Core"],w=n["Halogen.HTML.Elements"],b=n["Halogen.HTML.Events"],y=n["Halogen.HTML.Properties"],D=n["Halogen.Query.HalogenM"],E=n.Util,A=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),M=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),C=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),F=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),T=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),H=function(n){return f.lens(function(n){return n.us})(function(n){return function(n){return{us:n}}})(n)};e.usetting=function(n){var e;m["app'"](v.unit);return g.mkComponent({initialState:a.const((e=n,{us:e})),render:function(n){var e=function(n){return function(e){return s.Just.create(F.create(n(e)))}};return w.div([E.class_("settings-form")])([w.div([E.class_("fw7 mb2")])([h.text("Account Settings")]),w.div([E.class_("flex items-center mb2")])([w.input([y.type_(h.isPropInputType)(u.InputCheckbox.value),E.class_("pointer mr2"),y.id_("archiveDefault"),y.name("archiveDefault"),y.checked(n.us.archiveDefault),b.onChecked(e(A.create))]),w.label([y.for("archiveDefault"),E.class_("lh-copy")])([h.text("Archive Non-Private Bookmarks (archive.li)")])]),w.div([E.class_("flex items-center mb2")])([w.input([y.type_(h.isPropInputType)(u.InputCheckbox.value),E.class_("pointer mr2"),y.id_("privateDefault"),y.name("privateDefault"),y.checked(n.us.privateDefault),b.onChecked(e(M.create))]),w.label([y.for("privateDefault"),E.class_("lh-copy")])([h.text("Default new bookmarks to Private")])]),w.div([E.class_("flex items-center mb2")])([w.input([y.type_(h.isPropInputType)(u.InputCheckbox.value),E.class_("pointer mr2"),y.id_("privacyLock"),y.name("privacyLock"),y.checked(n.us.privacyLock),b.onChecked(e(C.create))]),w.label([y.for("privacyLock"),E.class_("lh-copy")])([h.text("Privacy Lock (Private Account)")])])])},eval:g.mkEval({handleAction:function(n){if(n instanceof F)return r.discard(r.discardUnit)(D.bindHalogenM)(l.modifying(D.monadStateHalogenM)(H(d.strongFn))(function(){if(n.value0 instanceof A)return function(e){return{archiveDefault:n.value0.value0,privateDefault:e.privateDefault,privacyLock:e.privacyLock}};if(n.value0 instanceof M)return function(e){return{archiveDefault:e.archiveDefault,privateDefault:n.value0.value0,privacyLock:e.privacyLock}};if(n.value0 instanceof C)return function(e){return{archiveDefault:e.archiveDefault,privateDefault:e.privateDefault,privacyLock:n.value0.value0}};throw new Error("Failed pattern match at Component.AccountSettings (line 80, column 12 - line 83, column 46): "+[n.value0.constructor.name])}()))(function(){return r.bind(D.bindHalogenM)(i.use(D.monadStateHalogenM)(H(c.strongForget)))(function(n){return o.void(D.functorHalogenM)(p.liftAff(D.monadAffHalogenM(p.monadAffAff))(t.editAccountSettings(n)))})});if(n instanceof T)return r.bind(D.bindHalogenM)(i.use(D.monadStateHalogenM)(H(c.strongForget)))(function(n){return o.void(D.functorHalogenM)(p.liftAff(D.monadAffHalogenM(p.monadAffAff))(t.editAccountSettings(n)))});throw new Error("Failed pattern match at Component.AccountSettings (line 78, column 3 - line 78, column 69): "+[n.constructor.name])},handleQuery:g.defaultEval.handleQuery,receive:g.defaultEval.receive,initialize:g.defaultEval.initialize,finalize:g.defaultEval.finalize})})}}(t),function(n){"use strict";n["Component.Add"]=n["Component.Add"]||{};var e=n["Component.Add"],t=n.App,r=n["Control.Applicative"],u=n["Control.Bind"],a=n["Control.Monad.State.Class"],o=n["DOM.HTML.Indexed.ButtonType"],i=n["DOM.HTML.Indexed.InputType"],c=n["Data.Array"],f=n["Data.Foldable"],l=n["Data.Function"],s=n["Data.Functor"],d=n["Data.Lens.Getter"],v=n["Data.Lens.Internal.Forget"],p=n["Data.Lens.Lens"],m=n["Data.Lens.Setter"],g=n["Data.Maybe"],h=n["Data.Monoid"],w=n["Data.Profunctor.Strong"],b=n["Data.Semigroup"],y=n["Data.String.Common"],D=n["Data.Tuple"],E=n["Data.Unit"],A=n["Effect.Aff"],M=n["Effect.Aff.Class"],C=n["Effect.Class"],F=n.Globals,T=n["Halogen.Component"],H=n["Halogen.HTML.Core"],S=n["Halogen.HTML.Elements"],_=n["Halogen.HTML.Events"],k=n["Halogen.HTML.Properties"],x=n["Halogen.Query.HalogenM"],I=n.Util,L=n["Web.Event.Event"],R=n["Web.HTML"],N=n["Web.HTML.Location"],U=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),P=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),B=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),O=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),W=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),q=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),J=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),j=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Q=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),V=function(){function n(){}return n.value=new n,n}(),z=function(){function n(){}return n.value=new n,n}(),G=function(n){return p.lens(function(n){return n.edit_bm})(function(n){return function(e){return{edit_bm:e,bm:n.bm,deleteAsk:n.deleteAsk,destroyed:n.destroyed,loading:n.loading}}})(n)};e.addbmark=function(n){var e;F["app'"](E.unit);return T.mkComponent({initialState:l.const((e=n,{bm:e,edit_bm:e,deleteAsk:!1,destroyed:!1,loading:!1})),render:function(n){c.drop(1),f.foldMap(f.foldableArray)(h.monoidArray)(function(n){return[S.br_,H.text(n)]}),y.split("\n");var e=F.mmoment8601(n.bm.time),t=function(n){return function(e){return g.Just.create(J.create(n(e)))}},r=function(t){return S.div([I.class_("alert")])([H.text("previously saved "),S.span([I.class_("link f7 dib gray pr3"),k.title(g.maybe(n.bm.time)(D.snd)(e))])([H.text(g.maybe(" ")(D.fst)(e))]),S.div([I.class_("edit_links dib ml1")])([S.div([I.class_("delete_link di")])([S.button(b.append(b.semigroupArray)([k.type_(H.isPropButtonType)(o.ButtonButton.value),_.onClick(function(n){return new g.Just(new Q(!0))}),I.class_("delete")])(h.guard(h.monoidArray)(n.deleteAsk)([I.attr("hidden")("hidden")])))([H.text("delete")]),S.span(b.append(b.semigroupArray)([I.class_("confirm red")])(h.guard(h.monoidArray)(!n.deleteAsk)([I.attr("hidden")("hidden")])))([S.button([k.type_(H.isPropButtonType)(o.ButtonButton.value),_.onClick(function(n){return new g.Just(new Q(!1))})])([H.text("cancel / ")]),S.button([k.type_(H.isPropButtonType)(o.ButtonButton.value),_.onClick(function(n){return new g.Just(z.value)}),I.class_("red")])([H.text("destroy")])])])])])};return I.ifElseH(!n.destroyed)(function(e){return S.form([_.onSubmit(function(n){return g.Just.create(j.create(n))})])([S.table([I.class_("w-100")])([S.tbody_([S.tr_([S.td([I.class_("w1")])([]),S.td_([I.whenH(n.bm.bid>0)(r)])]),S.tr_([S.td_([S.label([k.for("url")])([H.text("URL")])]),S.td_([S.input([k.type_(H.isPropInputType)(i.InputUrl.value),k.id_("url"),I.class_("w-100 mv1"),k.required(!0),k.name("url"),k.autofocus(y.null(n.bm.url)),k.value(n.edit_bm.url),_.onValueChange(t(U.create))])])]),S.tr_([S.td_([S.label([k.for("title")])([H.text("title")])]),S.td([I.class_("flex")])([S.input([k.type_(H.isPropInputType)(i.InputText.value),k.id_("title"),I.class_("w-100 mv1 flex-auto"),k.name("title"),k.value(n.edit_bm.title),_.onValueChange(t(P.create))]),S.button([k.disabled(n.loading),k.type_(H.isPropButtonType)(o.ButtonButton.value),_.onClick(function(n){return new g.Just(V.value)}),I.class_("ml2 input-reset ba b--navy pointer f6 di dim pa1 ma1 mr0 "+h.guard(h.monoidString)(n.loading)("bg-light-silver"))])([H.text("fetch")])])]),S.tr_([S.td_([S.label([k.for("description")])([H.text("description")])]),S.td_([S.textarea([I.class_("w-100 mt1 mid-gray"),k.id_("description"),k.name("description"),k.rows(4),k.value(n.edit_bm.description),_.onValueChange(t(B.create))])])]),S.tr_([S.td_([S.label([k.for("tags")])([H.text("tags")])]),S.td_([S.input([k.type_(H.isPropInputType)(i.InputText.value),k.id_("tags"),I.class_("w-100 mv1"),k.name("tags"),k.autocomplete(!1),I.attr("autocapitalize")("off"),k.autofocus(!y.null(n.bm.url)),k.value(n.edit_bm.tags),_.onValueChange(t(O.create))])])]),S.tr_([S.td_([S.label([k.for("private")])([H.text("private")])]),S.td_([S.input([k.type_(H.isPropInputType)(i.InputCheckbox.value),k.id_("private"),I.class_("private pointer"),k.name("private"),k.checked(n.edit_bm.private),_.onChecked(t(W.create))])])]),S.tr_([S.td_([S.label([k.for("toread")])([H.text("read later")])]),S.td_([S.input([k.type_(H.isPropInputType)(i.InputCheckbox.value),k.id_("toread"),I.class_("toread pointer"),k.name("toread"),k.checked(n.edit_bm.toread),_.onChecked(t(q.create))])])]),S.tr_([S.td_([]),S.td_([S.input([k.type_(H.isPropInputType)(i.InputSubmit.value),I.class_("ph3 pv2 input-reset ba b--navy bg-transparent pointer f6 dib mt1 dim"),k.value(n.bm.bid>0?"update bookmark":"add bookmark")])])])])])])})(function(n){return S.p([I.class_("red")])([H.text("you killed this bookmark")])})},eval:T.mkEval({handleAction:function(n){if(n instanceof Q)return a.modify_(x.monadStateHalogenM)(function(e){var t={};for(var r in e)({}).hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.deleteAsk=n.value0,t});if(n instanceof V)return u.discard(u.discardUnit)(x.bindHalogenM)(a.modify_(x.monadStateHalogenM)(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e.loading=!0,e}))(function(){return u.bind(x.bindHalogenM)(a.gets(x.monadStateHalogenM)(function(n){return n.edit_bm}))(function(n){return u.bind(x.bindHalogenM)(M.liftAff(x.monadAffHalogenM(M.monadAffAff))(t.lookupTitle(n)))(function(n){return u.discard(u.discardUnit)(x.bindHalogenM)(function(){if(n instanceof g.Just)return m.modifying(x.monadStateHalogenM)(G(w.strongFn))(function(e){return{url:e.url,title:n.value0,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}});if(n instanceof g.Nothing)return r.pure(x.applicativeHalogenM)(E.unit);throw new Error("Failed pattern match at Component.Add (line 165, column 5 - line 167, column 29): "+[n.constructor.name])}())(function(){return a.modify_(x.monadStateHalogenM)(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e.loading=!1,e})})})})});if(n instanceof z)return u.bind(x.bindHalogenM)(a.gets(x.monadStateHalogenM)(function(n){return n.bm.bid}))(function(n){return u.discard(u.discardUnit)(x.bindHalogenM)(s.void(x.functorHalogenM)(M.liftAff(x.monadAffHalogenM(M.monadAffAff))(t.destroy(n))))(function(){return a.modify_(x.monadStateHalogenM)(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e.destroyed=!0,e})})});if(n instanceof J)return m.modifying(x.monadStateHalogenM)(G(w.strongFn))(function(){if(n.value0 instanceof U)return function(e){return{url:n.value0.value0,title:e.title,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof P)return function(e){return{url:e.url,title:n.value0.value0,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof B)return function(e){return{url:e.url,title:e.title,description:n.value0.value0,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof O)return function(e){return{url:e.url,title:e.title,description:e.description,tags:n.value0.value0,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof W)return function(e){return{url:e.url,title:e.title,description:e.description,tags:e.tags,private:n.value0.value0,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof q)return function(e){return{url:e.url,title:e.title,description:e.description,tags:e.tags,private:e.private,toread:n.value0.value0,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};throw new Error("Failed pattern match at Component.Add (line 174, column 17 - line 180, column 36): "+[n.value0.constructor.name])}());if(n instanceof j)return u.discard(u.discardUnit)(x.bindHalogenM)(C.liftEffect(x.monadEffectHalogenM(A.monadEffectAff))(L.preventDefault(n.value0)))(function(){return u.bind(x.bindHalogenM)(d.use(x.monadStateHalogenM)(G(v.strongForget)))(function(n){return u.discard(u.discardUnit)(x.bindHalogenM)(s.void(x.functorHalogenM)(M.liftAff(x.monadAffHalogenM(M.monadAffAff))(t.editBookmark(n))))(function(){return u.discard(u.discardUnit)(x.bindHalogenM)(m.assign(x.monadStateHalogenM)((e=w.strongFn,p.lens(function(n){return n.bm})(function(n){return function(e){return{bm:e,deleteAsk:n.deleteAsk,destroyed:n.destroyed,edit_bm:n.edit_bm,loading:n.loading}}})(e)))(n))(function(){return u.bind(x.bindHalogenM)(C.liftEffect(x.monadEffectHalogenM(A.monadEffectAff))(I._loc))(function(n){return u.bind(x.bindHalogenM)(C.liftEffect(x.monadEffectHalogenM(A.monadEffectAff))(R.window))(function(e){return u.bind(x.bindHalogenM)(C.liftEffect(x.monadEffectHalogenM(A.monadEffectAff))(I._curQuerystring))(function(t){var r=I._lookupQueryStringValue(t)("next");return r instanceof g.Just?C.liftEffect(x.monadEffectHalogenM(A.monadEffectAff))(N.setHref(r.value0)(n)):C.liftEffect(x.monadEffectHalogenM(A.monadEffectAff))(F.closeWindow(e))})})})});var e})})});throw new Error("Failed pattern match at Component.Add (line 158, column 3 - line 158, column 69): "+[n.constructor.name])},handleQuery:T.defaultEval.handleQuery,receive:T.defaultEval.receive,initialize:T.defaultEval.initialize,finalize:T.defaultEval.finalize})})}}(t),(t["Component.RawHtml"]=t["Component.RawHtml"]||{}).unsafeSetInnerHTML=function(n){return function(e){return function(){n.innerHTML=e}}},function(n){"use strict";(t["Web.HTML.HTMLElement"]=t["Web.HTML.HTMLElement"]||{})._read=function(n,e,t){var r=Object.prototype.toString.call(t);return 0===r.indexOf("[object HTML")&&r.indexOf("Element]")===r.length-8?e(t):n}}(),function(n){"use strict";n["Web.HTML.HTMLElement"]=n["Web.HTML.HTMLElement"]||{};var e=n["Web.HTML.HTMLElement"],t=n["Web.HTML.HTMLElement"],r=n["Data.Maybe"],u=n["Unsafe.Coerce"],a=u.unsafeCoerce,o=u.unsafeCoerce;e.fromElement=function(n){return t._read(r.Nothing.value,r.Just.create,n)},e.toElement=o,e.toNode=a}(t),function(n){"use strict";n["Halogen.Query"]=n["Halogen.Query"]||{};var e,t=n["Halogen.Query"],r=n["Control.Bind"],u=n["Data.Functor"],a=n["Data.Maybe"],o=n["Halogen.Query.HalogenM"],i=n["Web.HTML.HTMLElement"],c=(e=u.map(o.functorHalogenM)(function(n){return r.bindFlipped(a.bindMaybe)(i.fromElement)(n)}),function(n){return e(o.getRef(n))});t.getHTMLElementRef=c}(t),function(n){"use strict";n["Component.RawHtml"]=n["Component.RawHtml"]||{};var e=n["Component.RawHtml"],t=n["Component.RawHtml"],r=n["Control.Applicative"],u=n["Control.Bind"],a=n["Control.Monad.State.Class"],o=n["Data.Foldable"],i=n["Data.Maybe"],c=n["Data.Monoid"],f=n["Data.Unit"],l=n.Effect,s=n["Effect.Aff"],d=n["Effect.Aff.Class"],v=n["Effect.Class"],p=n["Halogen.Component"],m=n["Halogen.HTML.Elements"],g=n["Halogen.HTML.Properties"],h=n["Halogen.Query"],w=n["Halogen.Query.HalogenM"],b=function(){function n(){}return n.value=new n,n}(),y=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}();e.mkComponent=function(n){return p.mkComponent({initialState:function(n){return{elRef:"inputval",inputval:n}},render:function(n){return m.div([g.ref(n.elRef)])([])},eval:p.mkEval({handleAction:function e(i){if(i instanceof b)return u.bind(w.bindHalogenM)(a.get(w.monadStateHalogenM))(function(e){return u.bind(w.bindHalogenM)(h.getHTMLElementRef(e.elRef))(function(e){return u.discard(u.discardUnit)(w.bindHalogenM)(o.for_(w.applicativeHalogenM)(o.foldableMaybe)(e)(function(e){return u.bind(w.bindHalogenM)(a.get(w.monadStateHalogenM))(function(r){return d.liftAff(w.monadAffHalogenM(d.monadAffAff))(s.forkAff(s.makeAff(function(u){return function(){return v.liftEffect(v.monadEffectEffect)(t.unsafeSetInnerHTML(e)(n(r.inputval)))(),c.mempty(l.monoidEffect(s.monoidCanceler))()}})))})}))(function(){return r.pure(w.applicativeHalogenM)(f.unit)})})});if(i instanceof y)return u.discard(u.discardUnit)(w.bindHalogenM)(a.modify_(w.monadStateHalogenM)(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e.inputval=i.value0,e}))(function(){return e(b.value)});throw new Error("Failed pattern match at Component.RawHtml (line 50, column 18 - line 63, column 34): "+[i.constructor.name])},handleQuery:p.defaultEval.handleQuery,receive:function(n){return i.Just.create(y.create(n))},initialize:new i.Just(b.value),finalize:p.defaultEval.finalize})})}}(t),function(n){var e=require("marked");e.setOptions({pedantic:!1,gfm:!0}),n.markedImpl=function(n){return n?e(n):""}}(t["Foreign.Marked"]=t["Foreign.Marked"]||{}),function(n){"use strict";n["Foreign.Marked"]=n["Foreign.Marked"]||{};var e=n["Foreign.Marked"],t=n["Foreign.Marked"],r=n.Globals;e.marked=function(n){return r.RawHTML(t.markedImpl(n))}}(t),function(n){"use strict";n["Component.Markdown"]=n["Component.Markdown"]||{};var e=n["Component.Markdown"],t=n["Component.RawHtml"],r=n["Foreign.Marked"],u=t.mkComponent(r.marked);e.component=u}(t),function(n){"use strict";n["Data.Void"]=n["Data.Void"]||{};n["Data.Void"].absurd=function(n){return function(n){for(var e;;)e=void(n=n);return e}(n)}}(t),function(n){"use strict";n["Halogen.HTML"]=n["Halogen.HTML"]||{};var e=n["Halogen.HTML"],t=n["Halogen.Component"],r=n["Halogen.HTML.Core"];e.slot=function(n){return function(n){return function(e){return function(u){return function(a){return function(o){return function(i){return function(c){return r.widget(new t.ComponentSlot(t.componentSlot()(n)(e)(u)(a)(o)(i)(c)))}}}}}}}}}(t),function(n){"use strict";n["Component.BMark"]=n["Component.BMark"]||{};var e=n["Component.BMark"],t=n.App,r=n["Component.Markdown"],u=n["Control.Applicative"],a=n["Control.Bind"],o=n["Control.Monad"],i=n["Control.Monad.State.Class"],c=n["DOM.HTML.Indexed.ButtonType"],f=n["DOM.HTML.Indexed.InputType"],l=n["Data.Function"],s=n["Data.Functor"],d=n["Data.Lens.Getter"],v=n["Data.Lens.Internal.Forget"],p=n["Data.Lens.Lens"],m=n["Data.Lens.Setter"],g=n["Data.Maybe"],h=n["Data.Monoid"],w=n["Data.Nullable"],b=n["Data.Ord"],y=n["Data.Profunctor.Strong"],D=n["Data.Show"],E=n["Data.String.CodePoints"],A=n["Data.String.Common"],M=n["Data.Symbol"],C=n["Data.Unit"],F=n["Data.Void"],T=n.Effect,H=n["Effect.Aff"],S=n["Effect.Aff.Class"],_=n["Effect.Class"],k=n.Globals,x=n["Halogen.Component"],I=n["Halogen.HTML"],L=n["Halogen.HTML.Core"],R=n["Halogen.HTML.Elements"],N=n["Halogen.HTML.Events"],U=n["Halogen.HTML.Properties"],P=n["Halogen.Query.HalogenM"],B=n.Util,O=n["Web.Event.Event"],W=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),q=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),J=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),j=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Q=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),V=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),z=function(){function n(){}return n.value=new n,n}(),G=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),K=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),X=function(){function n(){}return n.value=new n,n}(),Y=function(){function n(){}return n.value=new n,n}(),$=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Z=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),nn=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),en=function(){function n(){}return n.value=new n,n}(),tn=M.SProxy.value,rn=function(n){return p.lens(function(n){return n.edit_bm})(function(n){return function(e){return{edit_bm:e,bm:n.bm,deleteAsk:n.deleteAsk,edit:n.edit,loading:n.loading}}})(n)},un=function(n){return p.lens(function(n){return n.edit})(function(n){return function(e){return{edit:e,bm:n.bm,deleteAsk:n.deleteAsk,edit_bm:n.edit_bm,loading:n.loading}}})(n)},an=function(n){return p.lens(function(n){return n.bm})(function(n){return function(e){return{bm:e,deleteAsk:n.deleteAsk,edit:n.edit,edit_bm:n.edit_bm,loading:n.loading}}})(n)};e.bmark=function(n){var e,p=function(n){return D.show(D.showInt)(n.bid)+"_tags"},on=k["app'"](C.unit);return x.mkComponent({initialState:l.const((e=n,{bm:e,edit_bm:e,deleteAsk:!1,edit:!1,loading:!1})),render:function(n){var e=E.take(16)(n.bm.time)+"Z",t=function(n){return B.fromNullableStr(on.userR)+"/t:"+n},u=function(n){return function(e){return g.Just.create(Z.create(n(e)))}};return R.div([U.id_(D.show(D.showInt)(n.bm.bid)),B.class_("bookmark w-100 mw7 pa1 mb3"+h.guard(h.monoidString)(n.bm.private)(" private"))])([B.whenH(on.dat.isowner)(function(e){return R.div([B.class_("star fl pointer"+h.guard(h.monoidString)(n.bm.selected)(" selected"))])([R.button([B.class_("moon-gray"),N.onClick(function(e){return new g.Just(new G(!n.bm.selected))})])([L.text("✭")])])}),B.ifElseH(n.edit)(function(e){return R.div([B.class_("edit_bookmark_form pa2 pt0 bg-white")])([R.form([N.onSubmit(function(n){return g.Just.create(nn.create(n))})])([R.div_([L.text("url")]),R.input([U.type_(L.isPropInputType)(f.InputUrl.value),B.class_("url w-100 mb2 pt1 f7 edit_form_input"),U.required(!0),U.name("url"),U.value(n.edit_bm.url),N.onValueChange(u(W.create))]),R.div_([L.text("title")]),R.div([B.class_("flex")])([R.input([U.type_(L.isPropInputType)(f.InputText.value),B.class_("title w-100 mb2 pt1 f7 edit_form_input"),U.name("title"),U.value(n.edit_bm.title),N.onValueChange(u(q.create))]),R.button([U.disabled(n.loading),U.type_(L.isPropButtonType)(c.ButtonButton.value),N.onClick(function(n){return new g.Just(X.value)}),B.class_("ml1 pa1 mb2 dark-gray ba b--moon-gray bg-near-white pointer rdim f7 "+h.guard(h.monoidString)(n.loading)("bg-light-silver"))])([L.text("fetch")])]),R.div_([L.text("description")]),R.textarea([B.class_("description w-100 mb1 pt1 f7 edit_form_input"),U.name("description"),U.rows(5),U.value(n.edit_bm.description),N.onValueChange(u(J.create))]),R.div([U.id_("tags_input_box")])([R.div_([L.text("tags")]),R.input([U.id_(p(n.edit_bm)),U.type_(L.isPropInputType)(f.InputText.value),B.class_("tags w-100 mb1 pt1 f7 edit_form_input"),U.name("tags"),U.autocomplete(!1),B.attr("autocapitalize")("off"),U.value(n.edit_bm.tags),N.onValueChange(u(j.create))])]),R.div([B.class_("edit_form_checkboxes mv3")])([R.input([U.type_(L.isPropInputType)(f.InputCheckbox.value),B.class_("private pointer"),U.id_("edit_private"),U.name("private"),U.checked(n.edit_bm.private),N.onChecked(u(Q.create))]),L.text(" "),R.label([U.for("edit_private"),B.class_("mr2")])([L.text("private")]),L.text(" "),R.input([U.type_(L.isPropInputType)(f.InputCheckbox.value),B.class_("toread pointer"),U.id_("edit_toread"),U.name("toread"),U.checked(n.edit_bm.toread),N.onChecked(u(V.create))]),L.text(" "),R.label([U.for("edit_toread")])([L.text("to-read")])]),R.input([U.type_(L.isPropInputType)(f.InputSubmit.value),B.class_("mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"),U.value("save")]),L.text(" "),R.input([U.type_(L.isPropInputType)(f.InputReset.value),B.class_("pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"),U.value("cancel"),N.onClick(function(n){return new g.Just(new $(!1))})])])])})(function(u){return R.div([B.class_("display")])([R.a([U.href(n.bm.url),U.target("_blank"),B.class_("link f5 lh-title"+h.guard(h.monoidString)(n.bm.toread)(" unread"))])([L.text(A.null(n.bm.title)?"[no title]":n.bm.title)]),R.br_,R.a([U.href(n.bm.url),B.class_("link f7 gray hover-blue")])([L.text(n.bm.url)]),R.a([U.href(g.fromMaybe("http://archive.is/"+n.bm.url)(w.toMaybe(n.bm.archiveUrl))),B.class_("link f7 gray hover-blue ml2"+h.guard(h.monoidString)(g.isJust(w.toMaybe(n.bm.archiveUrl)))(" green")),U.target("_blank"),U.title("archive link")])([g.isJust(w.toMaybe(n.bm.archiveUrl))?L.text("☑"):L.text("☐")]),R.br_,R.div([B.class_("description mt1 mid-gray")])([I.slot()(new M.IsSymbol(function(){return"markdown"}))(b.ordUnit)(tn)(C.unit)(r.component)(n.bm.description)(F.absurd)]),R.div([B.class_("tags")])(B.whenA(!A.null(n.bm.tags))(function(e){return s.map(s.functorArray)(function(n){return R.a([B.class_("link tag mr1"+h.guard(h.monoidString)("."===E.take(1)(n))(" private")),U.href(t(n))])([L.text(n)])})(A.split(" ")(n.bm.tags))})),R.a([B.class_("link f7 dib gray w4"),U.href((a=n.bm.slug,B.fromNullableStr(on.userR)+"/b:"+a))])([L.text(e)]),B.whenH(on.dat.isowner)(function(e){return R.div([B.class_("edit_links di")])([R.button([U.type_(L.isPropButtonType)(c.ButtonButton.value),N.onClick(function(n){return new g.Just(new $(!0))}),B.class_("edit light-silver hover-blue")])([L.text("edit  ")]),R.div([B.class_("delete_link di")])([R.button([U.type_(L.isPropButtonType)(c.ButtonButton.value),N.onClick(function(n){return new g.Just(new K(!0))}),B.class_("delete light-silver hover-blue"+h.guard(h.monoidString)(n.deleteAsk)(" dn"))])([L.text("delete")]),R.span([B.class_("confirm red"+h.guard(h.monoidString)(!n.deleteAsk)(" dn"))])([R.button([U.type_(L.isPropButtonType)(c.ButtonButton.value),N.onClick(function(n){return new g.Just(new K(!1))})])([L.text("cancel / ")]),R.button([U.type_(L.isPropButtonType)(c.ButtonButton.value),N.onClick(function(n){return new g.Just(Y.value)}),B.class_("red")])([L.text("destroy")])])])])}),B.whenH(on.dat.isowner)(function(e){return R.div([B.class_("read di")])(h.guard(h.monoidArray)(n.bm.toread)([L.text("  "),R.button([N.onClick(function(n){return new g.Just(en.value)}),B.class_("mark_read")])([L.text("mark as read")])]))})]);var a})])},eval:x.mkEval({handleAction:function(n){if(n instanceof G)return a.bind(P.bindHalogenM)(d.use(P.monadStateHalogenM)(an(v.strongForget)))(function(e){return a.discard(a.discardUnit)(P.bindHalogenM)(S.liftAff(P.monadAffHalogenM(S.monadAffAff))(t.toggleStar(e.bid)(n.value0?t.Star.value:t.UnStar.value)))(function(){return a.discard(a.discardUnit)(P.bindHalogenM)(m.modifying(P.monadStateHalogenM)(an(y.strongFn))(function(e){return{url:e.url,title:e.title,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:n.value0,time:e.time,archiveUrl:e.archiveUrl}}))(function(){return m.modifying(P.monadStateHalogenM)(rn(y.strongFn))(function(e){return{url:e.url,title:e.title,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:n.value0,time:e.time,archiveUrl:e.archiveUrl}})})})});if(n instanceof K)return i.modify_(P.monadStateHalogenM)(function(e){var t={};for(var r in e)({}).hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.deleteAsk=n.value0,t});if(n instanceof Y)return a.bind(P.bindHalogenM)(d.use(P.monadStateHalogenM)(an(v.strongForget)))(function(n){return a.discard(a.discardUnit)(P.bindHalogenM)(s.void(P.functorHalogenM)(S.liftAff(P.monadAffHalogenM(S.monadAffAff))(t.destroy(n.bid))))(function(){return P.raise(z.value)})});if(n instanceof en)return a.bind(P.bindHalogenM)(d.use(P.monadStateHalogenM)(an(v.strongForget)))(function(n){return a.discard(a.discardUnit)(P.bindHalogenM)(s.void(P.functorHalogenM)(S.liftAff(P.monadAffHalogenM(S.monadAffAff))(t.markRead(n.bid))))(function(){return m.modifying(P.monadStateHalogenM)(an(y.strongFn))(function(n){return{url:n.url,title:n.title,description:n.description,tags:n.tags,private:n.private,toread:!1,bid:n.bid,slug:n.slug,selected:n.selected,time:n.time,archiveUrl:n.archiveUrl}})})});if(n instanceof $)return a.bind(P.bindHalogenM)(d.use(P.monadStateHalogenM)(an(v.strongForget)))(function(e){return a.discard(a.discardUnit)(P.bindHalogenM)(m.assign(P.monadStateHalogenM)(rn(y.strongFn))(e))(function(){return a.discard(a.discardUnit)(P.bindHalogenM)(m.assign(P.monadStateHalogenM)(un(y.strongFn))(n.value0))(function(){return _.liftEffect(P.monadEffectHalogenM(H.monadEffectAff))(o.whenM(T.monadEffect)(u.pure(T.applicativeEffect)(n.value0))(k.setFocus(p(e))))})})});if(n instanceof Z)return m.modifying(P.monadStateHalogenM)(rn(y.strongFn))(function(){if(n.value0 instanceof W)return function(e){return{url:n.value0.value0,title:e.title,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof q)return function(e){return{url:e.url,title:n.value0.value0,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof J)return function(e){return{url:e.url,title:e.title,description:n.value0.value0,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof j)return function(e){return{url:e.url,title:e.title,description:e.description,tags:n.value0.value0,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof Q)return function(e){return{url:e.url,title:e.title,description:e.description,tags:e.tags,private:n.value0.value0,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};if(n.value0 instanceof V)return function(e){return{url:e.url,title:e.title,description:e.description,tags:e.tags,private:e.private,toread:n.value0.value0,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}};throw new Error("Failed pattern match at Component.BMark (line 234, column 17 - line 240, column 36): "+[n.value0.constructor.name])}());if(n instanceof X)return a.discard(a.discardUnit)(P.bindHalogenM)(i.modify_(P.monadStateHalogenM)(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e.loading=!0,e}))(function(){return a.bind(P.bindHalogenM)(i.gets(P.monadStateHalogenM)(function(n){return n.edit_bm}))(function(n){return a.bind(P.bindHalogenM)(S.liftAff(P.monadAffHalogenM(S.monadAffAff))(t.lookupTitle(n)))(function(n){return a.discard(a.discardUnit)(P.bindHalogenM)(function(){if(n instanceof g.Just)return m.modifying(P.monadStateHalogenM)(rn(y.strongFn))(function(e){return{url:e.url,title:n.value0,description:e.description,tags:e.tags,private:e.private,toread:e.toread,bid:e.bid,slug:e.slug,selected:e.selected,time:e.time,archiveUrl:e.archiveUrl}});if(n instanceof g.Nothing)return u.pure(P.applicativeHalogenM)(C.unit);throw new Error("Failed pattern match at Component.BMark (line 247, column 5 - line 249, column 29): "+[n.constructor.name])}())(function(){return i.modify_(P.monadStateHalogenM)(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e.loading=!1,e})})})})});if(n instanceof nn)return a.discard(a.discardUnit)(P.bindHalogenM)(_.liftEffect(P.monadEffectHalogenM(H.monadEffectAff))(O.preventDefault(n.value0)))(function(){return a.bind(P.bindHalogenM)(d.use(P.monadStateHalogenM)(rn(v.strongForget)))(function(n){return a.discard(a.discardUnit)(P.bindHalogenM)(s.void(P.functorHalogenM)(S.liftAff(P.monadAffHalogenM(S.monadAffAff))(t.editBookmark(n))))(function(){return a.discard(a.discardUnit)(P.bindHalogenM)(m.assign(P.monadStateHalogenM)(an(y.strongFn))(n))(function(){return m.assign(P.monadStateHalogenM)(un(y.strongFn))(!1)})})})});throw new Error("Failed pattern match at Component.BMark (line 200, column 3 - line 200, column 84): "+[n.constructor.name])},handleQuery:x.defaultEval.handleQuery,receive:x.defaultEval.receive,initialize:x.defaultEval.initialize,finalize:x.defaultEval.finalize})})}}(t),function(n){"use strict";n["Component.BList"]=n["Component.BList"]||{};var e=n["Component.BList"],t=n["Component.BMark"],r=n["Control.Monad.State.Class"],u=n["Data.Array"],a=n["Data.Function"],o=n["Data.Functor"],i=n["Data.Maybe"],c=n["Data.Ord"],f=n["Data.Symbol"],l=n["Data.Unit"],s=n["Halogen.Component"],d=n["Halogen.HTML"],v=n["Halogen.HTML.Elements"],p=n["Halogen.Query.HalogenM"],m=function(){function n(n,e){this.value0=n,this.value1=e}return n.create=function(e){return function(t){return new n(e,t)}},n}(),g=f.SProxy.value;e.blist=function(n){return s.mkComponent({initialState:a.const(n),render:function(n){return v.div_(o.map(o.functorArray)(function(n){return d.slot()(new f.IsSymbol(function(){return"bookmark"}))(c.ordInt)(g)(n.bid)(t.bmark(n))(l.unit)((e=m.create(n.bid),function(n){return i.Just.create(e(n))}));var e})(n))},eval:s.mkEval({handleAction:function(n){return r.modify_(p.monadStateHalogenM)(u.filter(function(e){return e.bid!==n.value0}))},handleQuery:s.defaultEval.handleQuery,receive:s.defaultEval.receive,initialize:s.defaultEval.initialize,finalize:s.defaultEval.finalize})})}}(t),function(n){"use strict";n["Component.NList"]=n["Component.NList"]||{};var e=n["Component.NList"],t=n["Control.Applicative"],r=n["Data.Array"],u=n["Data.Foldable"],a=n["Data.Function"],o=n["Data.Functor"],i=n["Data.Maybe"],c=n["Data.Monoid"],f=n["Data.Show"],l=n["Data.String.CodePoints"],s=n["Data.String.Common"],d=n["Data.Tuple"],v=n["Data.Unit"],p=n.Globals,m=n["Halogen.Component"],g=n["Halogen.HTML.Core"],h=n["Halogen.HTML.Elements"],w=n["Halogen.HTML.Properties"],b=n["Halogen.Query.HalogenM"],y=n.Util;e.nlist=function(n){var e,D=function(n){return p.mmoment8601(n.created)},E=p["app'"](v.unit),A=function(n){return y.fromNullableStr(E.userR)+"/notes/"+n};return m.mkComponent({initialState:a.const((e=n,{notes:e,cur:i.Nothing.value,deleteAsk:!1,edit:!1})),render:function(n){return h.div_(o.map(o.functorArray)(function(n){return h.div([w.id_(f.show(f.showInt)(n.id)),y.class_("note w-100 mw7 pa1 mb2"+(n.shared?"":" private"))])([h.div([y.class_("display")])([h.a([w.href(A(n.slug)),y.class_("link f5 lh-title")])([g.text(s.null(n.title)?"[no title]":n.title)]),h.br_,h.div([y.class_("description mt1 mid-gray")])((e=l.take(200)(n.text),r.drop(1)(u.foldMap(u.foldableArray)(c.monoidArray)(function(n){return[h.br_,g.text(n)]})(s.split("\n")(e))))),h.a([y.class_("link f7 dib gray w4"),w.title(i.maybe(n.created)(d.snd)(D(n))),w.href(A(n.slug))])([g.text(i.maybe(" ")(d.fst)(D(n)))])])]);var e})(n.notes))},eval:m.mkEval({handleAction:function(n){return t.pure(b.applicativeHalogenM)(v.unit)},handleQuery:m.defaultEval.handleQuery,receive:m.defaultEval.receive,initialize:m.defaultEval.initialize,finalize:m.defaultEval.finalize})})}}(t),function(n){"use strict";n["Component.NNote"]=n["Component.NNote"]||{};var e=n["Component.NNote"],t=n.App,r=n["Component.Markdown"],u=n["Control.Applicative"],a=n["Control.Bind"],o=n["Control.Monad.State.Class"],i=n["DOM.HTML.Indexed.ButtonType"],c=n["DOM.HTML.Indexed.InputType"],f=n["Data.Array"],l=n["Data.Either"],s=n["Data.Foldable"],d=n["Data.Function"],v=n["Data.Functor"],p=n["Data.Lens.Getter"],m=n["Data.Lens.Internal.Forget"],g=n["Data.Lens.Lens"],h=n["Data.Lens.Setter"],w=n["Data.Maybe"],b=n["Data.Monoid"],y=n["Data.Ord"],D=n["Data.Profunctor.Strong"],E=n["Data.Show"],A=n["Data.String.Common"],M=n["Data.Symbol"],C=n["Data.Tuple"],F=n["Data.Unit"],T=n["Data.Void"],H=n.Effect,S=n["Effect.Aff"],_=n["Effect.Aff.Class"],k=n["Effect.Class"],x=n.Globals,I=n["Halogen.Component"],L=n["Halogen.HTML"],R=n["Halogen.HTML.Core"],N=n["Halogen.HTML.Elements"],U=n["Halogen.HTML.Events"],P=n["Halogen.HTML.Properties"],B=n["Halogen.Query.HalogenM"],O=n.Util,W=n["Web.Event.Event"],q=n["Web.HTML.Location"],J=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),j=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Q=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),V=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),z=function(){function n(){}return n.value=new n,n}(),G=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),K=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),X=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),Y=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),$=function(){function n(){}return n.value=new n,n}(),Z=function(n){return g.lens(function(n){return n.note})(function(n){return function(e){return{note:e,deleteAsk:n.deleteAsk,destroyed:n.destroyed,edit:n.edit,edit_note:n.edit_note}}})(n)},nn=M.SProxy.value,en=function(n){return g.lens(function(n){return n.edit_note})(function(n){return function(e){return{edit_note:e,deleteAsk:n.deleteAsk,destroyed:n.destroyed,edit:n.edit,note:n.note}}})(n)},tn=function(n){return g.lens(function(n){return n.edit})(function(n){return function(e){return{edit:e,deleteAsk:n.deleteAsk,destroyed:n.destroyed,edit_note:n.edit_note,note:n.note}}})(n)};e.nnote=function(n){var e,g=x["app'"](F.unit);return I.mkComponent({initialState:d.const((e=n,{note:e,edit_note:e,deleteAsk:!1,edit:e.id<=0,destroyed:!1})),render:function(n){var e=function(n){return x.mmoment8601(n.created)},t=function(n){return function(e){return w.Just.create(G.create(n(e)))}};return O.ifElseH(n.destroyed)(function(n){return N.p([O.class_("red")])([R.text("you killed this note")])})(d.const(O.ifElseH(n.edit)(function(e){return N.form([U.onSubmit(function(n){return w.Just.create(K.create(n))})])([N.p([O.class_("mt2 mb1")])([R.text("title:")]),N.input([P.type_(R.isPropInputType)(c.InputText.value),O.class_("title w-100 mb1 pt1 f7 edit_form_input"),P.name("title"),P.value(n.edit_note.title),U.onValueChange(t(J.create))]),N.br_,N.p([O.class_("mt2 mb1")])([R.text("description:")]),N.textarea([O.class_("description w-100 mb1 pt1 f7 edit_form_input"),P.name("text"),P.rows(30),P.value(n.edit_note.text),U.onValueChange(t(j.create))]),N.div([O.class_("edit_form_checkboxes mb3")])([N.input([P.type_(R.isPropInputType)(c.InputCheckbox.value),O.class_("is-markdown pointer"),P.id_("edit_ismarkdown"),P.name("ismarkdown"),P.checked(n.edit_note.isMarkdown),U.onChecked(t(Q.create))]),R.text(" "),N.label([P.for("edit_ismarkdown"),O.class_("mr2")])([R.text("use markdown?")]),N.br_]),N.div([O.class_("edit_form_checkboxes mb3")])([N.input([P.type_(R.isPropInputType)(c.InputCheckbox.value),O.class_("is-markdown pointer"),P.id_("edit_shared"),P.name("shared"),P.checked(n.edit_note.shared),U.onChecked(t(V.create))]),R.text(" "),N.label([P.for("edit_shared"),O.class_("mr2")])([R.text("public?")]),N.br_]),N.input([P.type_(R.isPropInputType)(c.InputSubmit.value),O.class_("mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"),P.value("save")]),R.text(" "),N.input([P.type_(R.isPropInputType)(c.InputReset.value),O.class_("pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"),P.value("cancel"),U.onClick(function(n){return new w.Just(new X(!1))})])])})(function(t){return N.div([P.id_(E.show(E.showInt)(n.note.id)),O.class_("note w-100 mw7 pa1 mb2")])([N.div([O.class_("display")])([N.div([O.class_("link f5 lh-title")])([R.text(A.null(n.note.title)?"[no title]":n.note.title)]),N.br_,n.note.isMarkdown?N.div([O.class_("description mt1")])([L.slot()(new M.IsSymbol(function(){return"markdown"}))(y.ordUnit)(nn)(F.unit)(r.component)(n.note.text)(T.absurd)]):N.div([O.class_("description mt1 mid-gray")])((u=n.note.text,f.drop(1)(s.foldMap(s.foldableArray)(b.monoidArray)(function(n){return[N.br_,R.text(n)]})(A.split("\n")(u))))),N.div([O.class_("link f7 dib gray w4")])([N.span([P.title(w.maybe(n.note.created)(C.snd)(e(n.note)))])([R.text(w.maybe(" ")(C.fst)(e(n.note)))]),R.text(" - "),N.span([O.class_("gray")])([R.text(n.note.shared?"public":"private")])])]),O.whenH(g.dat.isowner)(function(e){return N.div([O.class_("edit_links db mt3")])([N.button([P.type_(R.isPropButtonType)(i.ButtonButton.value),U.onClick(function(n){return new w.Just(new X(!0))}),O.class_("edit light-silver hover-blue")])([R.text("edit  ")]),N.div([O.class_("delete_link di")])([N.button([P.type_(R.isPropButtonType)(i.ButtonButton.value),U.onClick(function(n){return new w.Just(new Y(!0))}),O.class_("delete light-silver hover-blue"+b.guard(b.monoidString)(n.deleteAsk)(" dn"))])([R.text("delete")]),N.span([O.class_("confirm red"+b.guard(b.monoidString)(!n.deleteAsk)(" dn"))])([N.button([P.type_(R.isPropButtonType)(i.ButtonButton.value),U.onClick(function(n){return new w.Just(new Y(!1))})])([R.text("cancel / ")]),N.button([P.type_(R.isPropButtonType)(i.ButtonButton.value),U.onClick(function(n){return new w.Just($.value)}),O.class_("red")])([R.text("destroy")])])])])})]);var u})))},eval:I.mkEval({handleAction:function(n){if(n instanceof z)return u.pure(B.applicativeHalogenM)(F.unit);if(n instanceof G)return h.modifying(B.monadStateHalogenM)(en(D.strongFn))(function(){if(n.value0 instanceof J)return function(e){return{id:e.id,slug:e.slug,title:n.value0.value0,text:e.text,length:e.length,isMarkdown:e.isMarkdown,shared:e.shared,created:e.created,updated:e.updated}};if(n.value0 instanceof j)return function(e){return{id:e.id,slug:e.slug,title:e.title,text:n.value0.value0,length:e.length,isMarkdown:e.isMarkdown,shared:e.shared,created:e.created,updated:e.updated}};if(n.value0 instanceof Q)return function(e){return{id:e.id,slug:e.slug,title:e.title,text:e.text,length:e.length,isMarkdown:n.value0.value0,shared:e.shared,created:e.created,updated:e.updated}};if(n.value0 instanceof V)return function(e){return{id:e.id,slug:e.slug,title:e.title,text:e.text,length:e.length,isMarkdown:e.isMarkdown,shared:n.value0.value0,created:e.created,updated:e.updated}};throw new Error("Failed pattern match at Component.NNote (line 177, column 19 - line 181, column 36): "+[n.value0.constructor.name])}());if(n instanceof Y)return o.modify_(B.monadStateHalogenM)(function(e){var t={};for(var r in e)({}).hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.deleteAsk=n.value0,t});if(n instanceof $)return a.bind(B.bindHalogenM)(p.use(B.monadStateHalogenM)(Z(m.strongForget)))(function(n){return a.discard(a.discardUnit)(B.bindHalogenM)(v.void(B.functorHalogenM)(_.liftAff(B.monadAffHalogenM(_.monadAffAff))(t.destroyNote(n.id))))(function(){return o.modify_(B.monadStateHalogenM)(function(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e.destroyed=!0,e})})});if(n instanceof X)return a.bind(B.bindHalogenM)(p.use(B.monadStateHalogenM)(Z(m.strongForget)))(function(e){return a.discard(a.discardUnit)(B.bindHalogenM)(h.assign(B.monadStateHalogenM)(en(D.strongFn))(e))(function(){return h.assign(B.monadStateHalogenM)(tn(D.strongFn))(n.value0)})});if(n instanceof K)return a.discard(a.discardUnit)(B.bindHalogenM)(k.liftEffect(B.monadEffectHalogenM(S.monadEffectAff))(W.preventDefault(n.value0)))(function(){return a.bind(B.bindHalogenM)(p.use(B.monadStateHalogenM)(en(m.strongForget)))(function(n){return a.bind(B.bindHalogenM)(_.liftAff(B.monadAffHalogenM(_.monadAffAff))(t.editNote(n)))(function(e){return s.for_(B.applicativeHalogenM)(l.foldableEither)(e)(function(e){return 0===n.id?k.liftEffect(B.monadEffectHalogenM(S.monadEffectAff))(a.bindFlipped(H.bindEffect)(q.setHref(O.fromNullableStr(g.noteR)))(O._loc)):a.discard(a.discardUnit)(B.bindHalogenM)(h.assign(B.monadStateHalogenM)(Z(D.strongFn))(n))(function(){return h.assign(B.monadStateHalogenM)(tn(D.strongFn))(!1)})})})})});throw new Error("Failed pattern match at Component.NNote (line 172, column 3 - line 172, column 77): "+[n.constructor.name])},handleQuery:I.defaultEval.handleQuery,receive:I.defaultEval.receive,initialize:I.defaultEval.initialize,finalize:I.defaultEval.finalize})})}}(t),function(n){"use strict";(t["Math"]=t["Math"]||{}).log=Math.log}(),function(n){"use strict";n.Math=n.Math||{};var e=n.Math,t=n.Math;e.log=t.log}(t),function(n){"use strict";n["Component.TagCloud"]=n["Component.TagCloud"]||{};var e=n["Component.TagCloud"],t=n.App,r=n["Control.Applicative"],u=n["Control.Bind"],a=n["Control.Category"],o=n["Control.Monad.State.Class"],i=n["DOM.HTML.Indexed.ButtonType"],c=n["Data.Array"],f=n["Data.Eq"],l=n["Data.Foldable"],s=n["Data.Function"],d=n["Data.Functor"],v=n["Data.Int"],p=n["Data.Maybe"],m=n["Data.Monoid"],g=n["Data.Ord"],h=n["Data.Show"],w=n["Data.String.Common"],b=n["Data.Tuple"],y=n["Data.Unfoldable"],D=n["Data.Unit"],E=n["Effect.Aff.Class"],A=n["Foreign.Object"],M=n.Globals,C=n["Halogen.Component"],F=n["Halogen.HTML.Core"],T=n["Halogen.HTML.Elements"],H=n["Halogen.HTML.Events"],S=n["Halogen.HTML.Properties"],_=n["Halogen.Query.HalogenM"],k=n.Math,x=n.Model,I=n.Util,L=function(){function n(){}return n.value=new n,n}(),R=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),N=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}();e.tagcloudcomponent=function(n){var e,U=function(n){return function(e){return function(t){return function(r){return function(u){return function(a){return n(e-t)/n(r-t)*(a-u)+u}}}}}},P=function(n){return n instanceof x.TagCloudModeNone?r.pure(_.applicativeHalogenM)(D.unit):u.bind(_.bindHalogenM)(E.liftAff(_.monadAffHalogenM(E.monadAffAff))(t.getTagCloud(x.tagCloudModeFromF(n))))(function(e){return o.modify_(_.monadStateHalogenM)(function(t){var r={};for(var u in t)({}).hasOwnProperty.call(t,u)&&(r[u]=t[u]);return r.mode=n,r.tagcloud=p.fromMaybe(A.empty)(e),r})})},B=M["app'"](D.unit),O=function(n){return function(e){var t=d.map(d.functorArray)(b.uncurry(function(n){return function(e){return function(t){return function(r){var u,o=U(function(n){return k.log(1+n)})(v.toNumber(r))(v.toNumber(n))(v.toNumber(e))(.6)(1),i=U(a.identity(a.categoryFn))(v.toNumber(r))(v.toNumber(n))(v.toNumber(e))(100)(150);return T.a([S.href((u=t,I.fromNullableStr(B.userR)+"/t:"+u)),I.class_("link tag mr1"),S.attr("style")("font-size:"+h.show(h.showNumber)(i)+"%;opacity:"+h.show(h.showNumber)(o))])([F.text(t)])}}}}(n)(e))),r=c.sortBy(g.comparing(g.ordString)(function(n){return w.toLower(b.fst(n))})),u=A.toUnfoldable(y.unfoldableArray);return function(n){return t(r(u(n)))}}};return C.mkComponent({initialState:s.const((e=n,{mode:e,tagcloud:A.empty})),render:function(n){if(n.mode instanceof x.TagCloudModeNone)return T.div([I.class_("tag_cloud")])([]);var e=new x.TagCloudModeTop(x.isExpanded(n.mode),200),t=new x.TagCloudModeLowerBound(x.isExpanded(n.mode),5),r=new x.TagCloudModeLowerBound(x.isExpanded(n.mode),20),u=new x.TagCloudModeLowerBound(x.isExpanded(n.mode),2),a=new x.TagCloudModeLowerBound(x.isExpanded(n.mode),10);return T.div([I.class_("tag_cloud mv3")])([T.div([I.class_("tag_cloud_header mb2")])([T.button([S.type_(F.isPropButtonType)(i.ButtonButton.value),I.class_("pa1 f7 link hover-blue mr1"+m.guard(m.monoidString)(f.eq(x.eqTagCloudModeF)(n.mode)(e))(" b")),S.title("show a cloud of your most-used tags"),H.onClick(function(n){return new p.Just(new N(e))})])([F.text("Top Tags")]),T.button([S.type_(F.isPropButtonType)(i.ButtonButton.value),I.class_("pa1 f7 link hover-blue ml2 "+m.guard(m.monoidString)(f.eq(x.eqTagCloudModeF)(n.mode)(u))(" b")),S.title("show tags with at least 2 bookmarks"),H.onClick(function(n){return new p.Just(new N(u))})])([F.text("2")]),F.text("‧"),T.button([S.type_(F.isPropButtonType)(i.ButtonButton.value),I.class_("pa1 f7 link hover-blue"+m.guard(m.monoidString)(f.eq(x.eqTagCloudModeF)(n.mode)(t))(" b")),S.title("show tags with at least 5 bookmarks"),H.onClick(function(n){return new p.Just(new N(t))})])([F.text("5")]),F.text("‧"),T.button([S.type_(F.isPropButtonType)(i.ButtonButton.value),I.class_("pa1 f7 link hover-blue"+m.guard(m.monoidString)(f.eq(x.eqTagCloudModeF)(n.mode)(a))(" b")),S.title("show tags with at least 10 bookmarks"),H.onClick(function(n){return new p.Just(new N(a))})])([F.text("10")]),F.text("‧"),T.button([S.type_(F.isPropButtonType)(i.ButtonButton.value),I.class_("pa1 f7 link hover-blue"+m.guard(m.monoidString)(f.eq(x.eqTagCloudModeF)(n.mode)(r))(" b")),S.title("show tags with at least 20 bookmarks"),H.onClick(function(n){return new p.Just(new N(r))})])([F.text("20")]),T.button([S.type_(F.isPropButtonType)(i.ButtonButton.value),I.class_("pa1 ml2 f7 link silver hover-blue "),H.onClick(function(e){return new p.Just(new R(!x.isExpanded(n.mode)))})])([F.text(x.isExpanded(n.mode)?"hide":"show")])]),I.whenH(x.isExpanded(n.mode))(function(e){var t=p.fromMaybe(1)(l.minimum(g.ordInt)(l.foldableArray)(A.values(n.tagcloud))),r=p.fromMaybe(1)(l.maximum(g.ordInt)(l.foldableArray)(A.values(n.tagcloud)));return T.div([I.class_("tag_cloud_body")])(n.mode instanceof x.TagCloudModeNone?[]:O(t)(r)(n.tagcloud))})])},eval:C.mkEval({handleAction:function n(e){if(e instanceof L)return u.bind(_.bindHalogenM)(o.gets(_.monadStateHalogenM)(function(n){return n.mode}))(function(n){return P(n)});if(e instanceof R)return u.discard(u.discardUnit)(_.bindHalogenM)(o.modify_(_.monadStateHalogenM)(function(n){var t={};for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r]);return t.mode=x.setExpanded(n.mode)(e.value0),t}))(function(){return u.bind(_.bindHalogenM)(o.gets(_.monadStateHalogenM)(function(n){return n.mode}))(function(n){return d.void(_.functorHalogenM)(E.liftAff(_.monadAffHalogenM(E.monadAffAff))(t.updateTagCloudMode(x.tagCloudModeFromF(n))))})});if(e instanceof N)return u.bind(_.bindHalogenM)(o.gets(_.monadStateHalogenM)(function(n){return n.mode}))(function(t){return f.eq(x.eqTagCloudModeF)(t)(e.value0)?n(new R(!x.isExpanded(t))):P(x.setExpanded(e.value0)(!0))});throw new Error("Failed pattern match at Component.TagCloud (line 142, column 3 - line 142, column 69): "+[e.constructor.name])},handleQuery:C.defaultEval.handleQuery,receive:C.defaultEval.receive,initialize:new p.Just(L.value),finalize:C.defaultEval.finalize})})}}(t),function(n){"use strict";n["Control.Applicative.Free"]=n["Control.Applicative.Free"]||{};var e=n["Control.Applicative.Free"],t=n["Control.Applicative"],r=n["Control.Apply"],u=n["Control.Category"],a=n["Data.Either"],o=n["Data.Functor"],i=n["Data.List.NonEmpty"],c=n["Data.List.Types"],f=n["Data.NonEmpty"],l=n["Data.Tuple"],s=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),d=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),v=function(){function n(n,e){this.value0=n,this.value1=e}return n.create=function(e){return function(t){return new n(e,t)}},n}(),p=function(n){return function(e){return new v(n,e)}},m=d.create,g=function(n){return function(e){return function(r){return function(u){return function(a){return function(o){var f,p=n,m=e,g=r,h=u,w=a,b=!1;function y(n,e,r,u,a,f){if(a instanceof s)return b=!0,new l.Tuple(new c.Cons({func:t.pure(n)(a.value0),count:f},e),r);if(a instanceof d)return b=!0,new l.Tuple(new c.Cons({func:u(a.value0),count:f},e),r);if(a instanceof v)return p=n,m=e,g=i.cons(a.value1)(r),h=u,w=a.value0,void(o=f+1|0);throw new Error("Failed pattern match at Control.Applicative.Free (line 102, column 41 - line 105, column 81): "+[a.constructor.name])}for(;!b;)f=y(p,m,g,h,w,o);return f}}}}}},h=function(n){return function(e){return function(t){return function(u){var o,i=n,s=e,d=t,v=!1;function p(n,e,t,o){if(e instanceof c.Nil)return v=!0,new a.Left(o);if(e instanceof c.Cons){var p=r.apply(n.Apply0())(e.value0.func)(o);if(1===e.value0.count)return e.value1 instanceof c.Nil?(v=!0,new a.Left(p)):(i=n,s=e.value1,d=t,void(u=p));if(t instanceof c.Nil)return v=!0,new a.Left(p);if(t instanceof c.Cons)return v=!0,a.Right.create(new l.Tuple(new c.Cons({func:p,count:e.value0.count-1|0},e.value1),new f.NonEmpty(t.value0,t.value1)));throw new Error("Failed pattern match at Control.Applicative.Free (line 83, column 11 - line 88, column 50): "+[t.constructor.name])}throw new Error("Failed pattern match at Control.Applicative.Free (line 72, column 3 - line 88, column 50): "+[e.constructor.name])}for(;!v;)o=p(i,s,d,u);return o}}}},w=new o.Functor(function(n){return function(e){return p(new s(n))(e)}}),b=function(n){return function(e){return function(r){return function(r){var u,o=!1;function i(u){if(u.value1.value0 instanceof s){if((i=h(n)(u.value0)(u.value1.value1)(t.pure(n)(u.value1.value0.value0)))instanceof a.Left)return o=!0,i.value0;if(i instanceof a.Right)return void(r=i.value0);throw new Error("Failed pattern match at Control.Applicative.Free (line 54, column 17 - line 56, column 24): "+[i.constructor.name])}if(u.value1.value0 instanceof d){var i;if((i=h(n)(u.value0)(u.value1.value1)(e(u.value1.value0.value0)))instanceof a.Left)return o=!0,i.value0;if(i instanceof a.Right)return void(r=i.value0);throw new Error("Failed pattern match at Control.Applicative.Free (line 57, column 17 - line 59, column 24): "+[i.constructor.name])}if(!(u.value1.value0 instanceof v))throw new Error("Failed pattern match at Control.Applicative.Free (line 53, column 5 - line 62, column 47): "+[u.value1.value0.constructor.name]);var c=new f.NonEmpty(u.value1.value0.value1,u.value1.value1);r=g(n)(u.value0)(c)(e)(u.value1.value0.value0)(1)}for(;!o;)u=i(r);return u}(new l.Tuple(c.Nil.value,i.singleton(r)))}}},y=new r.Apply(function(){return w},function(n){return function(e){return p(n)(e)}}),D=new t.Applicative(function(){return y},s.create);e.retractFreeAp=function(n){return b(n)(u.identity(u.categoryFn))},e.hoistFreeAp=function(n){return b(D)(function(e){return m(n(e))})}}(t),function(n){"use strict";n["Control.Monad.Trans.Class"]=n["Control.Monad.Trans.Class"]||{};var e=n["Control.Monad.Trans.Class"];e.lift=function(n){return n.lift},e.MonadTrans=function(n){this.lift=n}}(t),function(n){"use strict";n["Control.Monad.Free.Trans"]=n["Control.Monad.Free.Trans"]||{};var e=n["Control.Monad.Free.Trans"],t=n["Control.Applicative"],r=n["Control.Apply"],u=n["Control.Bind"],a=n["Control.Monad"],o=n["Control.Monad.Rec.Class"],i=n["Control.Monad.Trans.Class"],c=n["Data.Bifunctor"],f=n["Data.Either"],l=n["Data.Exists"],s=n["Data.Functor"],d=n["Data.Unit"],v=function(){function n(n,e){this.value0=n,this.value1=e}return n.create=function(e){return function(t){return new n(e,t)}},n}(),p=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),m=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),g=p.create,h=function(n){return function(e){return new m(l.mkExists(new v(n,e)))}},w=function n(e){return function(t){return new s.Functor(function(r){return function(u){if(u instanceof p)return new p(function(a){return s.map(t)(c.bimap(f.bifunctorEither)(r)(s.map(e)(s.map(n(e)(t))(r))))(u.value0(d.unit))});if(u instanceof m)return l.runExists(function(u){return h(u.value0)((a=s.map(n(e)(t))(r),function(n){return a(u.value1(n))}));var a})(u.value0);throw new Error("Failed pattern match at Control.Monad.Free.Trans (line 59, column 1 - line 61, column 71): "+[r.constructor.name,u.constructor.name])}})}},b=function(n){return function(e){return new a.Monad(function(){return E(n)(e)},function(){return y(n)(e)})}},y=function(n){return function(e){return new u.Bind(function(){return D(n)(e)},function(n){return function(e){return n instanceof m?l.runExists(function(n){return h(n.value0)(function(t){return h(function(e){return n.value1(t)})(e)})})(n.value0):h(function(e){return n})(e)}})}},D=function(n){return function(e){return new r.Apply(function(){return w(n)(e.Bind1().Apply0().Functor0())},a.ap(b(n)(e)))}},E=function(n){return function(e){return new t.Applicative(function(){return D(n)(e)},function(n){return new p(function(r){return t.pure(e.Applicative0())(new f.Left(n))})})}},A=function(n){return function(e){return o.tailRecM(e)(function(r){if(r instanceof p)return s.map(e.Monad0().Bind1().Apply0().Functor0())(o.Done.create)(r.value0(d.unit));if(r instanceof m)return l.runExists(function(r){var a=r.value0(d.unit);if(a instanceof p)return u.bind(e.Monad0().Bind1())(a.value0(d.unit))(function(a){if(a instanceof f.Left)return t.pure(e.Monad0().Applicative0())(new o.Loop(r.value1(a.value0)));if(a instanceof f.Right)return t.pure(e.Monad0().Applicative0())(new o.Done(new f.Right(s.map(n)(function(t){return u.bind(y(n)(e.Monad0()))(t)(r.value1)})(a.value0))));throw new Error("Failed pattern match at Control.Monad.Free.Trans (line 54, column 20 - line 56, column 67): "+[a.constructor.name])});if(a instanceof m)return l.runExists(function(a){return t.pure(e.Monad0().Applicative0())(new o.Loop(u.bind(y(n)(e.Monad0()))(a.value0(d.unit))(function(t){return u.bind(y(n)(e.Monad0()))(a.value1(t))(r.value1)})))})(a.value0);throw new Error("Failed pattern match at Control.Monad.Free.Trans (line 52, column 5 - line 57, column 98): "+[a.constructor.name])})(r.value0);throw new Error("Failed pattern match at Control.Monad.Free.Trans (line 49, column 3 - line 49, column 75): "+[r.constructor.name])})}};e.freeT=g,e.liftFreeT=function(n){return function(e){return function(r){return new p(function(u){return t.pure(e.Applicative0())(new f.Right(s.map(n)(t.pure(E(n)(e)))(r)))})}}},e.resume=A,e.runFreeT=function(n){return function(e){return function(r){return o.tailRecM(e)(u.composeKleisliFlipped(e.Monad0().Bind1())(function(n){if(n instanceof f.Left)return t.pure(e.Monad0().Applicative0())(new o.Done(n.value0));if(n instanceof f.Right)return s.map(e.Monad0().Bind1().Apply0().Functor0())(o.Loop.create)(r(n.value0));throw new Error("Failed pattern match at Control.Monad.Free.Trans (line 141, column 3 - line 141, column 63): "+[n.constructor.name])})(A(n)(e)))}}},e.functorFreeT=w,e.applicativeFreeT=E,e.bindFreeT=y,e.monadTransFreeT=function(n){return new i.MonadTrans(function(n){return function(e){return new p(function(t){return s.map(n.Bind1().Apply0().Functor0())(f.Left.create)(e)})}})},e.monadRecFreeT=function(n){return function(e){return new o.MonadRec(function(){return b(n)(e)},function(r){return function a(i){return u.bind(y(n)(e))(r(i))(function(r){if(r instanceof o.Loop)return a(r.value0);if(r instanceof o.Done)return t.pure(E(n)(e))(r.value0);throw new Error("Failed pattern match at Control.Monad.Free.Trans (line 82, column 15 - line 84, column 25): "+[r.constructor.name])})}})}}}(t),function(n){"use strict";n["Control.Coroutine"]=n["Control.Coroutine"]||{};var e=n["Control.Coroutine"],t=n["Control.Applicative"],r=n["Control.Apply"],u=n["Control.Bind"],a=n["Control.Category"],o=n["Control.Monad.Except.Trans"],i=n["Control.Monad.Free.Trans"],c=n["Control.Monad.Rec.Class"],f=n["Control.Monad.Trans.Class"],l=n["Control.Parallel.Class"],s=n["Data.Bifunctor"],d=n["Data.Either"],v=n["Data.Functor"],p=n["Data.Identity"],m=n["Data.Maybe"],g=n["Data.Newtype"],h=n["Data.Profunctor"],w=n["Data.Tuple"],b=n["Data.Unit"],y=function(){function n(n,e){this.value0=n,this.value1=e}return n.create=function(e){return function(t){return new n(e,t)}},n}(),D=new h.Profunctor(function(n){return function(e){return function(t){return h.dimap(h.profunctorFn)(n)(e)(t)}}}),E=function(n){return function(e){return function(r){return function(a){return function(c){return function(f){return function(l){return i.freeT(function(s){return function f(l){return o.runExceptT(u.bind(o.bindExceptT(a.Monad0()))(o.ExceptT(i.resume(n)(a)(l.value0)))(function(n){return u.bind(o.bindExceptT(a.Monad0()))(o.ExceptT(i.resume(e)(a)(l.value1)))(function(e){return t.pure(o.applicativeExceptT(a.Monad0()))(v.map(r)(function(n){return i.freeT(function(e){return f(n)})})(c(w.Tuple.create)(n)(e)))})}))}(new w.Tuple(f,l))})}}}}}}},A=function(n){return function(e){return function(a){return function(o){return function(c){return function(f){return function(s){return function(p){return i.freeT(function(m){return function s(p){return u.bind(o.Monad0().Bind1())(l.sequential(c)(r.apply(c.Applicative1().Apply0())(v.map(c.Applicative1().Apply0().Functor0())(r.lift2(d.applyEither)(f(w.Tuple.create)))(l.parallel(c)(i.resume(n)(o)(p.value0))))(l.parallel(c)(i.resume(e)(o)(p.value1)))))(function(n){if(n instanceof d.Left)return t.pure(o.Monad0().Applicative0())(new d.Left(n.value0));if(n instanceof d.Right)return t.pure(o.Monad0().Applicative0())(new d.Right(v.map(a)(function(n){return i.freeT(function(e){return s(n)})})(n.value0)));throw new Error("Failed pattern match at Control.Coroutine (line 79, column 5 - line 81, column 63): "+[n.constructor.name])})}(new w.Tuple(s,p))})}}}}}}}},M=new v.Functor(h.rmap(D)),C=new s.Bifunctor(function(n){return function(e){return function(t){return new y(n(t.value0),e(t.value1))}}}),F=new v.Functor(s.rmap(C));e.runProcess=function(n){return i.runFreeT(p.functorIdentity)(n)((e=t.pure(n.Monad0().Applicative0()),r=g.unwrap(p.newtypeIdentity),function(n){return e(r(n))}));var e,r},e.producer=function(n){return function(e){return(r=F,function(n){return function(e){return c.tailRecM(i.monadRecFreeT(r)(n))(function(t){return v.map(i.functorFreeT(r)(n.Bind1().Apply0().Functor0()))(m.maybe(new c.Loop(b.unit))(c.Done.create))(e)})(b.unit)}})(n)(u.bind(i.bindFreeT(F)(n))(f.lift(i.monadTransFreeT(F))(n)(e))(function(e){if(e instanceof d.Left)return v.voidLeft(i.functorFreeT(F)(n.Bind1().Apply0().Functor0()))(function(n){return function(e){return i.liftFreeT(F)(n)(new y(e,b.unit))}}(n)(e.value0))(m.Nothing.value);if(e instanceof d.Right)return t.pure(i.applicativeFreeT(F)(n))(new m.Just(e.value0));throw new Error("Failed pattern match at Control.Coroutine (line 125, column 3 - line 127, column 29): "+[e.constructor.name])}));var r}},e.await=function(n){return i.liftFreeT(M)(n)(a.identity(a.categoryFn))},e.connect=function(n){return function(e){return A(F)(M)(p.functorIdentity)(n)(e)(function(n){return function(e){return function(t){return n(e.value1)(t(e.value0))}}})}},e.pullFrom=function(n){return E(M)(F)(p.functorIdentity)(n)(function(n){return function(e){return function(r){return t.pure(p.applicativeIdentity)(n(e(r.value0))(r.value1))}}})},e.functorAwait=M}(t),function(n){"use strict";n["Control.Monad.Fork.Class"]=n["Control.Monad.Fork.Class"]||{};var e=n["Control.Monad.Fork.Class"],t=n["Effect.Aff"],r=new function(n,e,t,r,u){this.Functor1=n,this.Monad0=e,this.fork=t,this.join=r,this.suspend=u}(function(){return t.functorFiber},function(){return t.monadAff},t.forkAff,t.joinFiber,t.suspendAff);e.fork=function(n){return n.fork},e.monadForkAff=r}(t),function(n){"use strict";var e=function(){function n(){this.head=null,this.last=null,this.size=0}function e(n,e){this.queue=n,this.value=e,this.next=null,this.prev=null}function t(e){this.draining=!1,this.error=null,this.value=e,this.takes=new n,this.reads=new n,this.puts=new n}var r={};function u(n){try{n()}catch(e){setTimeout(function(){throw e},0)}}function a(n){var e;switch(n.size){case 0:return null;case 1:e=n.head,n.head=null;break;case 2:e=n.last,n.head.next=null,n.last=null;break;default:e=n.last,n.last=e.prev,n.last.next=null}return e.prev=null,e.queue=null,n.size--,e.value}function o(n){var e;switch(n.size){case 0:return null;case 1:e=n.head,n.head=null;break;case 2:e=n.head,n.last.prev=null,n.head=n.last,n.last=null;break;default:e=n.head,n.head=e.next,n.head.prev=null}return e.next=null,e.queue=null,n.size--,e.value}return t.EMPTY=r,t.putLast=function(n,t){var r=new e(n,t);switch(n.size){case 0:n.head=r;break;case 1:r.prev=n.head,n.head.next=r,n.last=r;break;default:r.prev=n.last,n.last.next=r,n.last=r}return n.size++,r},t.takeLast=a,t.takeHead=o,t.deleteCell=function(n){null!==n.queue&&(n.queue.last!==n?n.queue.head!==n?(n.prev&&(n.prev.next=n.next),n.next&&(n.next.prev=n.prev),n.queue.size--,n.queue=null,n.value=null,n.next=null,n.prev=null):o(n.queue):a(n.queue))},t.drainVar=function(n,e){if(!e.draining){var t,a,i,c,f,l=e.puts,s=e.takes,d=e.reads;for(e.draining=!0;;){if(t=null,a=null,i=null,c=e.value,f=d.size,null!==e.error){for(c=n.left(e.error);t=o(l);)u(t.cb(c));for(;a=o(d);)u(a(c));for(;i=o(s);)u(i(c));break}if(c===r&&(t=o(l))&&(e.value=c=t.value),c!==r){for(i=o(s);f--&&(a=o(d));)u(a(n.right(c)));null!==i&&(e.value=r,u(i(n.right(c))))}if(null!==t&&u(t.cb(n.right(void 0))),e.value===r&&0===l.size||e.value!==r&&0===s.size)break}e.draining=!1}},t}();n.empty=function(){return new e(e.EMPTY)},n._killVar=function(n,t,r){return function(){null===r.error&&(r.error=t,r.value=e.EMPTY,e.drainVar(n,r))}},n._putVar=function(n,t,r,u){return function(){var a=e.putLast(r.puts,{cb:u,value:t});return e.drainVar(n,r),function(){e.deleteCell(a)}}},n._takeVar=function(n,t,r){return function(){var u=e.putLast(t.takes,r);return e.drainVar(n,t),function(){e.deleteCell(u)}}}}(t["Effect.AVar"]=t["Effect.AVar"]||{}),function(n){"use strict";n["Effect.AVar"]=n["Effect.AVar"]||{};var e=n["Effect.AVar"],t=n["Effect.AVar"],r=n["Data.Either"],u=n["Data.Maybe"],a=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),o=function(){function n(n){this.value0=n}return n.create=function(e){return new n(e)},n}(),i=function(){function n(){}return n.value=new n,n}(),c={left:r.Left.create,right:r.Right.create,nothing:u.Nothing.value,just:u.Just.create,killed:a.create,filled:o.create,empty:i.value};e.take=function(n){return function(e){return t._takeVar(c,n,e)}},e.put=function(n){return function(e){return function(r){return t._putVar(c,n,e,r)}}},e.kill=function(n){return function(e){return t._killVar(c,n,e)}},e.empty=t.empty}(t),function(n){"use strict";n["Effect.Aff.AVar"]=n["Effect.Aff.AVar"]||{};var e=n["Effect.Aff.AVar"],t=n["Effect.AVar"],r=n["Effect.Aff"],u=n["Effect.Class"],a=u.liftEffect(r.monadEffectAff)(t.empty);e.empty=a,e.take=function(n){return r.makeAff(function(e){return function(){var u=t.take(n)(e)();return r.effectCanceler(u)}})},e.put=function(n){return function(e){return r.makeAff(function(u){return function(){var a=t.put(n)(e)(u)();return r.effectCanceler(a)}})}},e.kill=function(n){var e=u.liftEffect(r.monadEffectAff),a=t.kill(n);return function(n){return e(a(n))}}}(t),function(n){"use strict";(t["Effect.Console"]=t["Effect.Console"]||{}).warn=function(n){return function(){return console.warn(n),{}}}}(),function(n){"use strict";n["Effect.Console"]=n["Effect.Console"]||{};var e=n["Effect.Console"],t=n["Effect.Console"];e.warn=t.warn}(t),function(n){"use strict";n.error=function(n){return new Error(n)},n.throwException=function(n){return function(){throw n}}}(t["Effect.Exception"]=t["Effect.Exception"]||{}),function(n){"use strict";n["Effect.Exception"]=n["Effect.Exception"]||{};var e=n["Effect.Exception"],t=n["Effect.Exception"];e.throw=function(n){return t.throwException(t.error(n))},e.error=t.error,e.throwException=t.throwException}(t),function(n){"use strict";n["Halogen.Aff.Driver.State"]=n["Halogen.Aff.Driver.State"]||{};var e=n["Halogen.Aff.Driver.State"],t=n["Data.Foldable"],r=n["Data.List.Types"],u=n["Data.Map.Internal"],a=n["Data.Maybe"],o=n["Effect.Ref"],i=n["Halogen.Data.Slot"],c=n["Unsafe.Coerce"],f=c.unsafeCoerce,l=c.unsafeCoerce,s=c.unsafeCoerce,d=c.unsafeCoerce;e.mapDriverState=function(n){return function(e){return n(e)}},e.unDriverStateX=l,e.renderStateX=function(n){return function(n){return l(function(e){return s(n(e.rendering))})}},e.renderStateX_=function(n){return function(e){return l(function(r){return t.traverse_(n)(t.foldableMaybe)(e)(r.rendering)})}},e.unRenderStateX=f,e.initDriverState=function(n){return function(e){return function(t){return function(c){return function(){var f=o.new({})(),l=o.new(i.empty)(),s=o.new(i.empty)(),v=o.new(t)(),p=o.new(new a.Just(r.Nil.value))(),m=o.new(new a.Just(r.Nil.value))(),g=o.new(a.Nothing.value)(),h=o.new(1)(),w=o.new(new a.Just(u.empty))(),b=o.new(u.empty)(),y={component:n,state:n.initialState(e),refs:u.empty,children:i.empty,childrenIn:l,childrenOut:s,selfRef:f,handlerRef:v,pendingQueries:p,pendingOuts:m,pendingHandlers:g,rendering:a.Nothing.value,fresh:h,subscriptions:w,forks:b,lifecycleHandlers:c};return o.write(y)(f)(),d(f)}}}}}}(t),function(n){"use strict";n["Halogen.Query.ChildQuery"]=n["Halogen.Query.ChildQuery"]||{};var e=n["Halogen.Query.ChildQuery"],t=n["Unsafe.Coerce"].unsafeCoerce;e.unChildQueryBox=t}(t),function(n){"use strict";n["Halogen.Query.EventSource"]=n["Halogen.Query.EventSource"]||{};n["Halogen.Query.EventSource"].finalize=function(n){return n}}(t),function(n){"use strict";(t["Unsafe.Reference"]=t["Unsafe.Reference"]||{}).reallyUnsafeRefEq=function(n){return function(e){return n===e}}}(),function(n){"use strict";n["Unsafe.Reference"]=n["Unsafe.Reference"]||{};var e=n["Unsafe.Reference"],t=n["Unsafe.Reference"].reallyUnsafeRefEq;e.unsafeRefEq=t}(t),function(n){"use strict";n["Halogen.Aff.Driver.Eval"]=n["Halogen.Aff.Driver.Eval"]||{};var e=n["Halogen.Aff.Driver.Eval"],t=n["Control.Applicative"],r=n["Control.Applicative.Free"],u=n["Control.Bind"],a=n["Control.Coroutine"],o=n["Control.Monad"],i=n["Control.Monad.Fork.Class"],c=n["Control.Monad.Free"],f=n["Control.Monad.Free.Trans"],l=n["Control.Monad.Trans.Class"],s=n["Control.Parallel"],d=n["Control.Parallel.Class"],v=n["Data.Boolean"],p=n["Data.Coyoneda"],m=n["Data.Eq"],g=n["Data.Foldable"],h=n["Data.Function"],w=n["Data.Functor"],b=n["Data.List.Types"],y=n["Data.Map.Internal"],D=n["Data.Maybe"],E=n["Data.Ord"],A=n["Data.Unit"],M=n.Effect,C=n["Effect.Aff"],F=n["Effect.Class"],T=n["Effect.Exception"],H=n["Effect.Ref"],S=n["Halogen.Aff.Driver.State"],_=n["Halogen.Query.ChildQuery"],k=n["Halogen.Query.EventSource"],x=n["Halogen.Query.HalogenM"],I=n["Halogen.Query.HalogenQ"],L=n["Halogen.Query.Input"],R=n["Unsafe.Reference"],N=function(n){return function(e){return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(n)))(function(t){if(t instanceof D.Nothing)return e;if(t instanceof D.Just)return F.liftEffect(C.monadEffectAff)(H.write(new D.Just(new b.Cons(e,t.value0)))(n));throw new Error("Failed pattern match at Halogen.Aff.Driver.Eval (line 195, column 33 - line 197, column 57): "+[t.constructor.name])})}},U=function(n){return function(e){return u.discard(u.discardUnit)(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.write({initializers:b.Nil.value,finalizers:b.Nil.value})(n)))(function(){return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(e))(function(e){return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(n)))(function(n){return u.discard(u.discardUnit)(C.bindAff)(g.traverse_(C.applicativeAff)(b.foldableList)(i.fork(i.monadForkAff))(n.finalizers))(function(){return u.discard(u.discardUnit)(C.bindAff)(s.parSequence_(C.parallelAff)(b.foldableList)(n.initializers))(function(){return t.pure(C.applicativeAff)(e)})})})})})}},P=function(n){return function(e){return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(e)))(function(e){return F.liftEffect(C.monadEffectAff)(H["modify'"](function(e){return{state:e+1|0,value:n(e)}})(e.fresh))})}},B=function(n){return function(e){return function(t){return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(e)))(function(r){return O(n)(e)(r.component.eval(new I.Query(w.map(p.functorCoyoneda)(D.Just.create)(p.liftCoyoneda(t)),h.const(D.Nothing.value))))})}}},O=function n(e){return function(s){return function(p){var h;return c.foldFree(C.monadRecAff)((h=s,function(c){if(c instanceof x.State)return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(h)))(function(n){var r=c.value0(n.state);if(R.unsafeRefEq(n.state)(r.value1))return t.pure(C.applicativeAff)(r.value0);if(v.otherwise)return u.discard(u.discardUnit)(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.write({component:n.component,state:r.value1,refs:n.refs,children:n.children,childrenIn:n.childrenIn,childrenOut:n.childrenOut,selfRef:n.selfRef,handlerRef:n.handlerRef,pendingQueries:n.pendingQueries,pendingOuts:n.pendingOuts,pendingHandlers:n.pendingHandlers,rendering:n.rendering,fresh:n.fresh,subscriptions:n.subscriptions,forks:n.forks,lifecycleHandlers:n.lifecycleHandlers})(h)))(function(){return u.discard(u.discardUnit)(C.bindAff)(U(n.lifecycleHandlers)(e(n.lifecycleHandlers)(h)))(function(){return t.pure(C.applicativeAff)(r.value0)})});throw new Error("Failed pattern match at Halogen.Aff.Driver.Eval (line 85, column 7 - line 91, column 21): "+[r.constructor.name])});if(c instanceof x.Subscribe)return u.bind(C.bindAff)(P(x.SubscriptionId)(h))(function(n){var r=c.value0(n);return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(h)))(function(o){return u.bind(C.bindAff)(i.fork(i.monadForkAff)(u.bind(C.bindAff)(r)(function(r){var c=u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(o.subscriptions)))(function(e){return u.discard(u.discardUnit)(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.modify_(w.map(D.functorMaybe)(y.delete(x.ordSubscriptionId)(n)))(o.subscriptions)))(function(){return t.when(C.applicativeAff)(D.maybe(!1)(y.member(x.ordSubscriptionId)(n))(e))(k.finalize(r.finalizer))})}),s=u.bind(f.bindFreeT(a.functorAwait)(C.monadAff))(a.await(C.monadAff))(function(r){return u.bind(f.bindFreeT(a.functorAwait)(C.monadAff))(l.lift(f.monadTransFreeT(a.functorAwait))(C.monadAff)(F.liftEffect(C.monadEffectAff)(H.read(o.subscriptions))))(function(o){return t.when(f.applicativeFreeT(a.functorAwait)(C.monadAff))(m.eq(D.eqMaybe(m.eqBoolean))(w.map(D.functorMaybe)(y.member(x.ordSubscriptionId)(n))(o))(new D.Just(!0)))(u.bind(f.bindFreeT(a.functorAwait)(C.monadAff))(l.lift(f.monadTransFreeT(a.functorAwait))(C.monadAff)(i.fork(i.monadForkAff)(W(e)(h)(new L.Action(r)))))(function(){return s}))})});return u.discard(u.discardUnit)(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.modify_(w.map(D.functorMaybe)(y.insert(x.ordSubscriptionId)(n)(c)))(o.subscriptions)))(function(){return u.discard(u.discardUnit)(C.bindAff)(a.runProcess(C.monadRecAff)(a.pullFrom(C.monadRecAff)(s)(r.producer)))(function(){return k.finalize(c)})})})))(function(){return t.pure(C.applicativeAff)(c.value1(n))})})});if(c instanceof x.Unsubscribe)return u.discard(u.discardUnit)(C.bindAff)((s=c.value0,function(n){return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(n)))(function(n){return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(n.subscriptions)))(function(n){return g.traverse_(C.applicativeAff)(g.foldableMaybe)(k.finalize)(u.bindFlipped(D.bindMaybe)(y.lookup(x.ordSubscriptionId)(s))(n))})})})(h))(function(){return t.pure(C.applicativeAff)(c.value1)});var s,p,b;if(c instanceof x.Lift)return c.value0;if(c instanceof x.ChildQuery)return function(n){return function(t){return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(n)))(function(n){return _.unChildQueryBox(function(t){return w.map(C.functorAff)(t.value2)(d.sequential(C.parallelAff)(t.value0(C.applicativeParAff)(function(n){return d.parallel(C.parallelAff)(u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(n)))(function(n){return S.unDriverStateX(function(n){return B(e)(n.selfRef)(t.value1)})(n)}))})(n.children)))})(t)})}}(h)(c.value0);if(c instanceof x.Raise)return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(h)))(function(n){return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(n.handlerRef)))(function(e){return u.discard(u.discardUnit)(C.bindAff)(N(n.pendingOuts)(e(c.value0)))(function(){return t.pure(C.applicativeAff)(c.value1)})})});if(c instanceof x.Par)return d.sequential(C.parallelAff)(r.retractFreeAp(C.applicativeParAff)(r.hoistFreeAp((p=d.parallel(C.parallelAff),b=n(e)(h),function(n){return p(b(n))}))(c.value0)));if(c instanceof x.Fork)return u.bind(C.bindAff)(P(x.ForkId)(h))(function(r){return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(h)))(function(a){return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.new(!1)))(function(f){return u.bind(C.bindAff)(i.fork(i.monadForkAff)(C.finally(F.liftEffect(C.monadEffectAff)(function(){return H.modify_(y.delete(x.ordForkId)(r))(a.forks)(),H.write(!0)(f)()}))(n(e)(h)(c.value0))))(function(n){return u.discard(u.discardUnit)(C.bindAff)(F.liftEffect(C.monadEffectAff)(o.unlessM(M.monadEffect)(H.read(f))(H.modify_(y.insert(x.ordForkId)(r)(n))(a.forks))))(function(){return t.pure(C.applicativeAff)(c.value1(r))})})})})});if(c instanceof x.Kill)return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(h)))(function(n){return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(n.forks)))(function(n){return u.discard(u.discardUnit)(C.bindAff)(g.traverse_(C.applicativeAff)(g.foldableMaybe)(C.killFiber(T.error("Cancelled")))(y.lookup(x.ordForkId)(c.value0)(n)))(function(){return t.pure(C.applicativeAff)(c.value1)})})});if(c instanceof x.GetRef)return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(h)))(function(n){return t.pure(C.applicativeAff)(c.value1(y.lookup(E.ordString)(c.value0)(n.refs)))});throw new Error("Failed pattern match at Halogen.Aff.Driver.Eval (line 82, column 12 - line 146, column 33): "+[c.constructor.name])}))(p)}}},W=function(n){return function(e){return function(t){if(t instanceof L.RefUpdate)return F.liftEffect(C.monadEffectAff)(h.flip(H.modify_)(e)(S.mapDriverState(function(n){return{component:n.component,state:n.state,refs:y.alter(E.ordString)(h.const(t.value1))(t.value0)(n.refs),children:n.children,childrenIn:n.childrenIn,childrenOut:n.childrenOut,selfRef:n.selfRef,handlerRef:n.handlerRef,pendingQueries:n.pendingQueries,pendingOuts:n.pendingOuts,pendingHandlers:n.pendingHandlers,rendering:n.rendering,fresh:n.fresh,subscriptions:n.subscriptions,forks:n.forks,lifecycleHandlers:n.lifecycleHandlers}})));if(t instanceof L.Action)return u.bind(C.bindAff)(F.liftEffect(C.monadEffectAff)(H.read(e)))(function(r){return O(n)(e)(r.component.eval(new I.Action(t.value0,A.unit)))});throw new Error("Failed pattern match at Halogen.Aff.Driver.Eval (line 51, column 20 - line 57, column 62): "+[t.constructor.name])}}};e.evalF=W,e.evalQ=B,e.evalM=O,e.handleLifecycle=U,e.queueOrRun=N}(t),function(n){"use strict";n["Halogen.Aff.Driver"]=n["Halogen.Aff.Driver"]||{};var e=n["Halogen.Aff.Driver"],t=n["Control.Applicative"],r=n["Control.Bind"],u=n["Control.Category"],a=n["Control.Coroutine"],o=n["Control.Monad.Error.Class"],i=n["Control.Monad.Fork.Class"],c=n["Control.Monad.Rec.Class"],f=n["Control.Parallel"],l=n["Data.Either"],s=n["Data.Foldable"],d=n["Data.Function"],v=n["Data.Functor"],p=n["Data.List"],m=n["Data.List.Types"],g=n["Data.Map.Internal"],h=n["Data.Maybe"],w=n["Data.Ord"],b=n["Data.Unit"],y=n.Effect,D=n["Effect.Aff"],E=n["Effect.Aff.AVar"],A=n["Effect.Class"],M=n["Effect.Console"],C=n["Effect.Exception"],F=n["Effect.Ref"],T=n["Halogen.Aff.Driver.Eval"],H=n["Halogen.Aff.Driver.State"],S=n["Halogen.Component"],_=n["Halogen.Data.Slot"],k=n["Halogen.Query.EventSource"],x=n["Halogen.Query.HalogenQ"],I=n["Halogen.Query.Input"],L=F.new({initializers:m.Nil.value,finalizers:m.Nil.value}),R=D.runAff_(l.either(C.throwException)(d.const(t.pure(y.applicativeEffect)(b.unit)))),N=function(n){return function(){var e,t=F.read(n)();return F.write(h.Nothing.value)(n)(),s.for_(y.applicativeEffect)(s.foldableMaybe)(t)((e=s.traverse_(D.applicativeAff)(m.foldableList)(i.fork(i.monadForkAff)),function(n){return R(e(p.reverse(n)))}))()}};e.runUI=function(n){return function(e){return function(U){var P=function(n){return function(e){return function(t){return r.bind(D.bindAff)(E.empty)(function(u){return r.bind(D.bindAff)(A.liftEffect(D.monadEffectAff)(function(){var t=F.read(n)();return F.modify_(function(n){return n+1|0})(n)(),F.modify_(g.insert(w.ordInt)(t)(u))(e)(),t}))(function(n){var c=a.producer(D.monadAff)(v.map(D.functorAff)(l.either(d.const(new l.Right(b.unit)))(l.Left.create))(o.try(D.monadErrorAff)(E.take(u))));return v.void(D.functorAff)(i.fork(i.monadForkAff)(r.discard(r.discardUnit)(D.bindAff)(a.runProcess(D.monadRecAff)(a.connect(D.monadRecAff)(D.parallelAff)(c)(t)))(function(){return r.discard(r.discardUnit)(D.bindAff)(A.liftEffect(D.monadEffectAff)(F.modify_(g.delete(w.ordInt)(n))(e)))(function(){return E.kill(C.error("ended"))(u)})})))})})}}},B=function(n){return function(e){return function(t){return S.unComponent(function(u){return function(){var a,o=L(),i=H.initDriverState(u)(t)(e)(o)(),c=F.read(n)();return F.write({initializers:m.Nil.value,finalizers:c.finalizers})(n)(),r.bindFlipped(y.bindEffect)(H.unDriverStateX((a=W(n),function(n){return a(n.selfRef)})))(F.read(i))(),r.bindFlipped(y.bindEffect)(function(n){return function(e){return H.unDriverStateX(function(t){var u=T.evalM(W)(t.selfRef)(t.component.eval(new x.Initialize(b.unit)));return F.modify_(function(n){return{initializers:new m.Cons(r.discard(r.discardUnit)(D.bindAff)(f.parSequence_(D.parallelAff)(m.foldableList)(p.reverse(n.initializers)))(function(){return r.discard(r.discardUnit)(D.bindAff)(u)(function(){return A.liftEffect(D.monadEffectAff)(function(){return N(t.pendingQueries)(),N(t.pendingOuts)()})})}),e),finalizers:n.finalizers}})(n)})}}(n)(c.initializers))(F.read(i))(),i}})}}},O=function(e){return function(u){return function(a){return function(o){return S.unComponentSlot(function(i){return function(){var c=v.map(y.functorEffect)(i.pop)(F.read(a))(),f=function(){if(c instanceof h.Just){F.write(c.value0.value1)(a)();var n=F.read(c.value0.value0)();return H.unDriverStateX(function(n){return function(){var e;return d.flip(F.write)(n.handlerRef)((e=h.maybe(t.pure(D.applicativeAff)(b.unit))(u),function(n){return e(i.output(n))}))(),R(T.evalM(W)(n.selfRef)(n.component.eval(i.input)))()}})(n)(),c.value0.value0}if(c instanceof h.Nothing)return i.input instanceof x.Receive?B(e)((r=h.maybe(t.pure(D.applicativeAff)(b.unit))(u),function(n){return r(i.output(n))}))(i.input.value0)(i.component)():C.throw("Halogen internal error: slot input was not a Receive query")();var r;throw new Error("Failed pattern match at Halogen.Aff.Driver (line 236, column 14 - line 249, column 81): "+[c.constructor.name])}(),l=v.map(y.functorEffect)(function(n){return h.isJust(i.get(n))})(F.read(o))();return t.when(y.applicativeEffect)(l)(M.warn("Halogen: Duplicate slot address was detected during rendering, unexpected results may occur"))(),F.modify_(i.set(f))(o)(),r.bind(y.bindEffect)(F.read(f))(H.renderStateX(y.functorEffect)(function(e){if(e instanceof h.Nothing)return C.throw("Halogen internal error: child was not initialized in renderChild");if(e instanceof h.Just)return t.pure(y.applicativeEffect)(n.renderChild(e.value0));throw new Error("Failed pattern match at Halogen.Aff.Driver (line 254, column 37 - line 256, column 50): "+[e.constructor.name])}))()}})}}}},W=function e(r){return function(a){return function(){var o=F.read(a)(),f=v.map(y.functorEffect)(h.isNothing)(F.read(o.pendingHandlers))();t.when(y.applicativeEffect)(f)(F.write(new h.Just(m.Nil.value))(o.pendingHandlers))(),F.write(_.empty)(o.childrenOut)(),F.write(o.children)(o.childrenIn)();var l,g,w,E,A=u.identity(u.categoryFn)(o.selfRef),M=u.identity(u.categoryFn)(o.pendingQueries),C=u.identity(u.categoryFn)(o.pendingHandlers),S=(l=T.queueOrRun(C),g=v.void(D.functorAff),w=T.evalF(e)(A),function(n){return l(g(w(n)))}),k=(E=T.queueOrRun(M),function(n){return E(S(I.Action.create(n)))}),x=n.render(function(n){return R(S(n))})(O(r)(k)(o.childrenIn)(o.childrenOut))(o.component.render(o.state))(o.rendering)(),L=F.read(o.childrenOut)(),N=F.read(o.childrenIn)();return _.foreachSlot(y.applicativeEffect)(N)(function(e){return function(){var t=F.read(e)();return H.renderStateX_(y.applicativeEffect)(n.removeChild)(t)(),q(r)(t)()}})(),d.flip(F.modify_)(o.selfRef)(H.mapDriverState(function(n){return{component:n.component,state:n.state,refs:n.refs,children:L,childrenIn:n.childrenIn,childrenOut:n.childrenOut,selfRef:n.selfRef,handlerRef:n.handlerRef,pendingQueries:n.pendingQueries,pendingOuts:n.pendingOuts,pendingHandlers:n.pendingHandlers,rendering:new h.Just(x),fresh:n.fresh,subscriptions:n.subscriptions,forks:n.forks,lifecycleHandlers:n.lifecycleHandlers}}))(),t.when(y.applicativeEffect)(f)(d.flip(c.tailRecM(c.monadRecEffect))(b.unit)(function(n){return function(){var n,e=F.read(C)();F.write(new h.Just(m.Nil.value))(C)(),s.traverse_(y.applicativeEffect)(s.foldableMaybe)((n=s.traverse_(D.applicativeAff)(m.foldableList)(i.fork(i.monadForkAff)),function(e){return R(n(p.reverse(e)))}))(e)();var t=F.read(C)();return h.maybe(!1)(p.null)(t)?v.voidLeft(y.functorEffect)(F.write(h.Nothing.value)(C))(new c.Done(b.unit))():new c.Loop(b.unit)}}))()}}},q=function n(e){return H.unDriverStateX(function(t){return function(){var u;(u=t,function(){var n,e,t;return r.bindFlipped(y.bindEffect)(s.traverse_(y.applicativeEffect)(s.foldableMaybe)((e=s.traverse_(D.applicativeAff)(g.foldableMap)((n=i.fork(i.monadForkAff),function(e){return n(k.finalize(e))})),function(n){return R(e(n))})))(F.read(u.subscriptions))(),F.write(h.Nothing.value)(u.subscriptions)(),r.bindFlipped(y.bindEffect)(s.traverse_(y.applicativeEffect)(g.foldableMap)((t=D.killFiber(C.error("finalized")),function(n){return R(t(n))})))(F.read(u.forks))(),F.write(g.empty)(u.forks)()})();var a=T.evalM(W)(t.selfRef)(t.component.eval(new x.Finalize(b.unit)));return F.modify_(function(n){return{initializers:n.initializers,finalizers:new m.Cons(a,n.finalizers)}})(e)(),_.foreachSlot(y.applicativeEffect)(t.children)(function(t){return function(){var r=F.read(t)();return n(e)(r)()}})()}})},J=function(n){return function(e){return function(u){return r.bind(D.bindAff)(A.liftEffect(D.monadEffectAff)(F.read(n)))(function(n){return n?t.pure(D.applicativeAff)(h.Nothing.value):T.evalQ(W)(e)(u)})}}},j=function(e){return function(t){return function(u){return function(a){return T.handleLifecycle(t)(function(){var o,i;return F.read(e)()?b.unit:(F.write(!0)(e)(),r.bindFlipped(y.bindEffect)(s.traverse_(y.applicativeEffect)(g.foldableMap)((o=E.kill(C.error("disposed")),function(n){return D.launchAff_(o(n))})))(F.read(a))(),q(t)(u)(),H.unDriverStateX((i=s.traverse_(y.applicativeEffect)(s.foldableMaybe)(n.dispose),function(n){return i(n.rendering)}))(u)())})}}}};return r.bind(D.bindAff)(A.liftEffect(D.monadEffectAff)(L))(function(n){return r.bind(D.bindAff)(A.liftEffect(D.monadEffectAff)(F.new(0)))(function(u){return r.bind(D.bindAff)(A.liftEffect(D.monadEffectAff)(F.new(!1)))(function(a){return T.handleLifecycle(n)(function(){var o,c=F.new(g.empty)(),f=r.bindFlipped(y.bindEffect)(F.read)(B(n)((o=c,function(n){return r.bind(D.bindAff)(A.liftEffect(D.monadEffectAff)(F.read(o)))(function(e){return s.traverse_(D.applicativeAff)(g.foldableMap)(i.fork(i.monadForkAff))(v.map(g.functorMap)(E.put(n))(e))})}))(U)(e))();return H.unDriverStateX(function(e){return t.pure(y.applicativeEffect)({query:J(a)(e.selfRef),subscribe:P(u)(c),dispose:j(a)(n)(f)(c)})})(f)()})})})})}}}}(t),function(n){"use strict";(t["Web.DOM.ParentNode"]=t["Web.DOM.ParentNode"]||{})._querySelector=function(n){return function(e){return function(){return e.querySelector(n)}}}}(),function(n){"use strict";n["Web.DOM.ParentNode"]=n["Web.DOM.ParentNode"]||{};var e=n["Web.DOM.ParentNode"],t=n["Web.DOM.ParentNode"],r=n["Data.Functor"],u=n["Data.Nullable"],a=n.Effect;e.querySelector=function(n){var e=r.map(a.functorEffect)(u.toMaybe),o=t._querySelector(n);return function(n){return e(o(n))}}}(t),function(n){"use strict";n["Web.HTML.HTMLDocument"]=n["Web.HTML.HTMLDocument"]||{};var e=n["Web.HTML.HTMLDocument"],t=n["Unsafe.Coerce"],r=t.unsafeCoerce,u=t.unsafeCoerce;e.toDocument=u,e.toParentNode=r}(t),function(n){"use strict";n["Halogen.Aff.Util"]=n["Halogen.Aff.Util"]||{};var e=n["Halogen.Aff.Util"],t=n["Control.Applicative"],r=n["Control.Bind"],u=n["Data.Either"],a=n["Data.Function"],o=n["Data.Maybe"],i=n["Data.Unit"],c=n.Effect,f=n["Effect.Aff"],l=n["Effect.Class"],s=n["Effect.Exception"],d=n["Web.DOM.ParentNode"],v=n["Web.HTML"],p=n["Web.HTML.HTMLDocument"],m=n["Web.HTML.HTMLElement"],g=n["Web.HTML.Window"],h=f.runAff_(u.either(s.throwException)(a.const(t.pure(c.applicativeEffect)(i.unit))));e.selectElement=function(n){return r.bind(f.bindAff)(l.liftEffect(f.monadEffectAff)(r.bindFlipped(c.bindEffect)(r.composeKleisliFlipped(c.bindEffect)((e=d.querySelector(n),function(n){return e(p.toParentNode(n))}))(g.document))(v.window)))(function(n){return t.pure(f.applicativeAff)(r.bindFlipped(o.bindMaybe)(m.fromElement)(n))});var e},e.runHalogenAff=h}(t),function(n){"use strict";(t["Web.DOM.Element"]=t["Web.DOM.Element"]||{}).setAttribute=function(n){return function(e){return function(t){return function(){return t.setAttribute(n,e),{}}}}}}(),function(n){"use strict";n["Web.DOM.Element"]=n["Web.DOM.Element"]||{};var e=n["Web.DOM.Element"],t=n["Web.DOM.Element"],r=n["Unsafe.Coerce"].unsafeCoerce;e.toNode=r,e.setAttribute=t.setAttribute}(t),function(n){"use strict";n["Halogen.VDom.DOM"]=n["Halogen.VDom.DOM"]||{};var e=n["Halogen.VDom.DOM"],t=n["Data.Array"],r=n["Data.Boolean"],u=n["Data.Maybe"],a=n["Data.Nullable"],o=n["Data.Tuple"],i=n["Halogen.VDom.Machine"],c=n["Halogen.VDom.Types"],f=n["Halogen.VDom.Util"],l=n["Web.DOM.Element"],s=function(n){return i.halt(n.widget)},d=function n(e,t){if(t instanceof c.Grafted)return n(e,c.runGraft(t.value0));if(t instanceof c.Widget){var r=i.step(e.widget,t.value0);return i.unStep(function(t){return i.mkStep(new i.Step(t.value0,{build:e.build,widget:r},n,s))})(r)}return s(e),e.build(t)},v=function(n){var e=f.parentNode(n.node);return f.removeChild(n.node,e)},p=function n(e,t){if(t instanceof c.Grafted)return n(e,c.runGraft(t.value0));if(t instanceof c.Text){if(e.value===t.value0)return i.mkStep(new i.Step(e.node,e,n,v));if(r.otherwise){var u={build:e.build,node:e.node,value:t.value0};return f.setTextContent(t.value0,e.node),i.mkStep(new i.Step(e.node,u,n,v))}}return v(e),e.build(t)},m=function(n){var e=f.parentNode(n.node);return f.removeChild(n.node,e),f.forInE(n.children,function(n,e){return i.halt(e)}),i.halt(n.attrs)},g=function(n){var e=f.parentNode(n.node);return f.removeChild(n.node,e),f.forEachE(n.children,i.halt),i.halt(n.attrs)},h=function(n,e,t,r){return!(e!==r)&&(n instanceof u.Just&&t instanceof u.Just&&n.value0===t.value0||n instanceof u.Nothing&&t instanceof u.Nothing)},w=function n(e,r){if(r instanceof c.Grafted)return n(e,c.runGraft(r.value0));if(r instanceof c.Elem&&h(e.ns,e.name,r.value0,r.value1)){var u=t.length(r.value3);if(0===t.length(e.children)&&0===u){var a=i.step(e.attrs,r.value2),o={build:e.build,node:e.node,attrs:a,ns:r.value0,name:r.value1,children:e.children};return i.mkStep(new i.Step(e.node,o,n,g))}var l=f.diffWithIxE(e.children,r.value3,function(n,t,r){var u=i.step(t,r);return f.insertChildIx(n,i.extract(u),e.node),u},function(n,e){return i.halt(e)},function(n,t){var r=e.build(t);return f.insertChildIx(n,i.extract(r),e.node),r});a=i.step(e.attrs,r.value2),o={build:e.build,node:e.node,attrs:a,ns:r.value0,name:r.value1,children:l};return i.mkStep(new i.Step(e.node,o,n,g))}return g(e),e.build(r)},b=function n(e,r){if(r instanceof c.Grafted)return n(e,c.runGraft(r.value0));if(r instanceof c.Keyed&&h(e.ns,e.name,r.value0,r.value1)){var u=t.length(r.value3);if(0===e.length&&0===u){var a=i.step(e.attrs,r.value2),l={build:e.build,node:e.node,attrs:a,ns:r.value0,name:r.value1,children:e.children,length:0};return i.mkStep(new i.Step(e.node,l,n,m))}var s=f.diffWithKeyAndIxE(e.children,r.value3,o.fst,function(n,t,r,u){var a=i.step(r,u.value1);return f.insertChildIx(t,i.extract(a),e.node),a},function(n,e){return i.halt(e)},function(n,t,r){var u=e.build(r.value1);return f.insertChildIx(t,i.extract(u),e.node),u});a=i.step(e.attrs,r.value2),l={build:e.build,node:e.node,attrs:a,ns:r.value0,name:r.value1,children:s,length:u};return i.mkStep(new i.Step(e.node,l,n,m))}return m(e),e.build(r)};e.buildVDom=function(n){return function e(r){if(r instanceof c.Text)return function(n,e,t){var r=f.createTextNode(t,n.document),u={build:e,node:r,value:t};return i.mkStep(new i.Step(r,u,p,v))}(n,e,r.value0);if(r instanceof c.Elem)return function(n,e,t,r,u,o){var c=f.createElement(a.toNullable(t),r,n.document),s=l.toNode(c),d=f.forE(o,function(n,t){var r=e(t);return f.insertChildIx(n,i.extract(r),s),r}),v=n.buildAttributes(c)(u),p={build:e,node:s,attrs:v,ns:t,name:r,children:d};return i.mkStep(new i.Step(s,p,w,g))}(n,e,r.value0,r.value1,r.value2,r.value3);if(r instanceof c.Keyed)return function(n,e,r,u,c,s){var d=f.createElement(a.toNullable(r),u,n.document),v=l.toNode(d),p=f.strMapWithIxE(s,o.fst,function(n,t,r){var u=e(r.value1);return f.insertChildIx(t,i.extract(u),v),u}),g=n.buildAttributes(d)(c),h={build:e,node:v,attrs:g,ns:r,name:u,children:p,length:t.length(s)};return i.mkStep(new i.Step(v,h,b,m))}(n,e,r.value0,r.value1,r.value2,r.value3);if(r instanceof c.Widget)return function(n,e,t){var r=n.buildWidget(n)(t);return i.unStep(function(n){return i.mkStep(new i.Step(n.value0,{build:e,widget:r},d,s))})(r)}(n,e,r.value0);if(r instanceof c.Grafted)return e(c.runGraft(r.value0));throw new Error("Failed pattern match at Halogen.VDom.DOM (line 58, column 27 - line 63, column 52): "+[r.constructor.name])}}}(t),function(n){"use strict";n["Halogen.VDom.Thunk"]=n["Halogen.VDom.Thunk"]||{};var e=n["Halogen.VDom.Thunk"],t=n["Halogen.VDom.DOM"],r=n["Halogen.VDom.Machine"],u=n["Halogen.VDom.Util"],a=(function(){function n(n,e,t,r){this.value0=n,this.value1=e,this.value2=t,this.value3=r}n.create=function(e){return function(t){return function(r){return function(u){return new n(e,t,r,u)}}}}}(),function(n){return n.value2(n.value3)});e.buildThunk=function(n){var e=function(n){return r.halt(n.vdom)},o=function t(o,i){var c,f;if(c=o.thunk,f=i,u.refEq(c.value0,f.value0)&&u.refEq(c.value1,f.value1)&&u.refEq(c.value3,f.value3))return r.mkStep(new r.Step(r.extract(o.vdom),o,t,e));var l=r.step(o.vdom,n(a(i)));return r.mkStep(new r.Step(r.extract(l),{vdom:l,thunk:i},t,e))};return function(u){return function(i){var c=t.buildVDom(u)(n(a(i)));return r.mkStep(new r.Step(r.extract(c),{thunk:i,vdom:c},o,e))}}}}(t),function(n){"use strict";var e=function(n){return function(e){return function(){return e[n]}}};n._parentNode=e("parentNode"),n._nextSibling=e("nextSibling"),n.insertBefore=function(n){return function(e){return function(t){return function(){return t.insertBefore(n,e)}}}},n.appendChild=function(n){return function(e){return function(){return e.appendChild(n)}}},n.removeChild=function(n){return function(e){return function(){return e.removeChild(n)}}}}(t["Web.DOM.Node"]=t["Web.DOM.Node"]||{}),function(n){"use strict";n["Web.DOM.Node"]=n["Web.DOM.Node"]||{};var e,t,r=n["Web.DOM.Node"],u=n["Web.DOM.Node"],a=n["Data.Functor"],o=n["Data.Nullable"],i=n.Effect,c=(e=a.map(i.functorEffect)(o.toMaybe),function(n){return e(u._parentNode(n))}),f=(t=a.map(i.functorEffect)(o.toMaybe),function(n){return t(u._nextSibling(n))});r.parentNode=c,r.nextSibling=f,r.insertBefore=u.insertBefore,r.appendChild=u.appendChild,r.removeChild=u.removeChild}(t),function(n){"use strict";n["Halogen.VDom.Driver"]=n["Halogen.VDom.Driver"]||{};var e=n["Halogen.VDom.Driver"],t=n["Control.Applicative"],r=n["Control.Bind"],u=n["Control.Category"],a=n["Data.Foldable"],o=n["Data.Functor"],i=n["Data.HeytingAlgebra"],c=n["Data.Maybe"],f=n["Data.Newtype"],l=n["Data.Unit"],s=n.Effect,d=n["Effect.Aff"],v=n["Effect.Class"],p=n["Effect.Ref"],m=n["Halogen.Aff.Driver"],g=n["Halogen.Aff.Driver.State"],h=n["Halogen.Component"],w=n["Halogen.HTML.Core"],b=n["Halogen.VDom.DOM"],y=n["Halogen.VDom.DOM.Prop"],D=n["Halogen.VDom.Machine"],E=n["Halogen.VDom.Thunk"],A=n["Unsafe.Reference"],M=n["Web.DOM.Node"],C=n["Web.HTML"],F=n["Web.HTML.HTMLDocument"],T=n["Web.HTML.HTMLElement"],H=n["Web.HTML.Window"],S=function(n){return function(){var e=M.parentNode(n.node)();return a.traverse_(s.applicativeEffect)(a.foldableMaybe)(function(e){return M.removeChild(n.node)(e)})(e)()}},_=function(n){return function(e){return{render:function(r){return function(u){return function(a){return function(d){if(d instanceof c.Nothing)return function(){var t=p.new(u)(),i=function(n){return function(e){return function(t){var r=g.unRenderStateX(function(n){return n.node}),u=function(n){return n instanceof c.Just?D.halt(n.value0):l.unit};return{buildWidget:function(n){var t=E.buildThunk(f.unwrap(w.newtypeHTML))(n),a=function(n){var t=p.read(e)()(n)(),a=r(t);return D.mkStep(new D.Step(a,c.Nothing.value,i,u))},o=function(n){if(n instanceof h.ComponentSlot)return a(n.value0);if(n instanceof h.ThunkSlot){var e=t(n.value0);return D.mkStep(new D.Step(D.extract(e),new c.Just(e),i,u))}throw new Error("Failed pattern match at Halogen.VDom.Driver (line 85, column 7 - line 90, column 75): "+[n.constructor.name])},i=function n(e,t){if(e instanceof c.Just){if(t instanceof h.ComponentSlot)return D.halt(e.value0),a(t.value0);if(t instanceof h.ThunkSlot){var r=D.step(e.value0,t.value0);return D.mkStep(new D.Step(D.extract(r),new c.Just(r),n,u))}throw new Error("Failed pattern match at Halogen.VDom.Driver (line 98, column 22 - line 104, column 79): "+[t.constructor.name])}return o(t)};return o},buildAttributes:y.buildProp(n),document:t}}}}(r)(t)(n),d=b.buildVDom(i)(a),v=D.extract(d);return o.void(s.functorEffect)(M.appendChild(v)(T.toNode(e)))(),{machine:d,node:v,renderChildRef:t}};if(d instanceof c.Just)return function(){p.write(u)(d.value0.renderChildRef)();var n=M.parentNode(d.value0.node)(),e=M.nextSibling(d.value0.node)(),r=D.step(d.value0.machine,a),f=D.extract(r);return t.when(s.applicativeEffect)(i.not(i.heytingAlgebraFunction(i.heytingAlgebraFunction(i.heytingAlgebraBoolean)))(A.unsafeRefEq)(d.value0.node)(f))(function(n){return function(e){return function(r){return e instanceof c.Just&&r instanceof c.Just?o.void(s.functorEffect)(M.insertBefore(n)(e.value0)(r.value0)):e instanceof c.Nothing&&r instanceof c.Just?o.void(s.functorEffect)(M.appendChild(n)(r.value0)):t.pure(s.applicativeEffect)(l.unit)}}}(f)(e)(n))(),{machine:r,node:f,renderChildRef:d.value0.renderChildRef}};throw new Error("Failed pattern match at Halogen.VDom.Driver (line 159, column 5 - line 175, column 80): "+[d.constructor.name])}}}},renderChild:u.identity(u.categoryFn),removeChild:S,dispose:S}}};e.runUI=function(n){return function(e){return function(t){return r.bind(d.bindAff)(v.liftEffect(d.monadEffectAff)(o.map(s.functorEffect)(F.toDocument)(r.bindFlipped(s.bindEffect)(H.document)(C.window))))(function(r){return m.runUI(_(r)(t))(n)(e)})}}}}(t),function(n){"use strict";(t["Main"]=t["Main"]||{})._mainImpl=function(){return window.PS=t}}(),function(n){"use strict";n.Main=n.Main||{};var e=n.Main,t=n.Main,r=n.App,u=n["Component.AccountSettings"],a=n["Component.Add"],o=n["Component.BList"],i=n["Component.NList"],c=n["Component.NNote"],f=n["Component.TagCloud"],l=n["Control.Bind"],s=n["Data.Foldable"],d=n["Data.Functor"],v=n["Data.Unit"],p=n.Effect,m=n["Effect.Aff"],g=n["Effect.Class"],h=n["Halogen.Aff.Util"],w=n["Halogen.VDom.Driver"],b=n.Model,y=n["Web.DOM.Element"],D=n["Web.Event.Event"],E=n["Web.HTML.HTMLElement"],A=l.bind(m.bindAff)(h.selectElement("#content"))(s.traverse_(m.applicativeAff)(s.foldableMaybe)(function(n){return g.liftEffect(m.monadEffectAff)(y.setAttribute("view-rendered")("")(E.toElement(n)))})),M=t._mainImpl;e.main=M,e.logoutE=function(n){return l.bindFlipped(p.bindEffect)((e=d.void(p.functorEffect),function(n){return e(m.launchAff(r.logout(n)))}))(D.preventDefault(n));var e},e.renderBookmarks=function(n){return function(e){return h.runHalogenAff(l.bind(m.bindAff)(h.selectElement(n))(s.traverse_(m.applicativeAff)(s.foldableMaybe)(function(n){return l.discard(l.discardUnit)(m.bindAff)(d.void(m.functorAff)(w.runUI(o.blist(e))(v.unit)(n)))(function(){return A})})))}},e.renderTagCloud=function(n){return function(e){return h.runHalogenAff(l.bind(m.bindAff)(h.selectElement(n))(s.traverse_(m.applicativeAff)(s.foldableMaybe)(function(n){return d.void(m.functorAff)(w.runUI(f.tagcloudcomponent(b.tagCloudModeToF(e)))(v.unit)(n))})))}},e.renderAddForm=function(n){return function(e){return h.runHalogenAff(l.bind(m.bindAff)(h.selectElement(n))(s.traverse_(m.applicativeAff)(s.foldableMaybe)(function(n){return l.discard(l.discardUnit)(m.bindAff)(d.void(m.functorAff)(w.runUI(a.addbmark(e))(v.unit)(n)))(function(){return A})})))}},e.renderNotes=function(n){return function(e){return h.runHalogenAff(l.bind(m.bindAff)(h.selectElement(n))(s.traverse_(m.applicativeAff)(s.foldableMaybe)(function(n){return l.discard(l.discardUnit)(m.bindAff)(d.void(m.functorAff)(w.runUI(i.nlist(e))(v.unit)(n)))(function(){return A})})))}},e.renderNote=function(n){return function(e){return h.runHalogenAff(l.bind(m.bindAff)(h.selectElement(n))(s.traverse_(m.applicativeAff)(s.foldableMaybe)(function(n){return l.discard(l.discardUnit)(m.bindAff)(d.void(m.functorAff)(w.runUI(c.nnote(e))(v.unit)(n)))(function(){return A})})))}},e.renderAccountSettings=function(n){return function(e){return h.runHalogenAff(l.bind(m.bindAff)(h.selectElement(n))(s.traverse_(m.applicativeAff)(s.foldableMaybe)(function(n){return l.discard(l.discardUnit)(m.bindAff)(d.void(m.functorAff)(w.runUI(u.usetting(e))(v.unit)(n)))(function(){return A})})))}},e.viewRendered=A,e._mainImpl=t._mainImpl}(t),t.Main.main(); },{"moment":"a2Bw","marked":"F7mU","process":"pBGv"}]},{},["C4Nx"], null) //# sourceMappingURL=/static/js/app.min.js.map \ No newline at end of file diff --git a/static/js/app.min.js.gz b/static/js/app.min.js.gz index e47b727a03ccdbeef9648fd773d5ca934a4dc444..0f9e9cd9e58dd65b50b5020ce9a8ab503e5db1fa 100644 GIT binary patch delta 63523 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

mbqgu2g_gyhdncjJ*+%MQ2y?kv@OUk8&JFdsvB< zBdII9#S_j?(t+sR_V&LHDcUHcd}zP^K+1mtQOo#|1=*bdaY8Md+kb?w_P4m6X2i;- z{E>V5v=r1Mh#`w&>XO7ZrdM7mOpe%#A!Uf>@&?onbVXFdjlW>Q6A4T#!%N;5QyDYd zu?E~2V$i-8!U&0x5kW^0OBag++$$W&Y zfpE5Wx{fMqG}O_ywSQt<co@xnbz43ieAHy^K2amu~##BlW|!gY%JDV3@_S5`MKzWLYapG?O`3ZWV4W=d_?L zqnY(r|IJNkf-hALLmFe#m}N{@EV?$e?eqHHb2Le*&>h7cAAj1;dAp^u>(^DjQ>u!L zc=f$PXdicmtPoeD?FCIUaNDz}A0TU zt$q7fn7rGuLq3Uc5h1&2Uzvz~g}X8D`58K!BuJHG%~MV{cDnnju`$Gtcd+q82ecR9&t8fH5(K%>4OgGhaepkK4lu{rPBZbk_4 zSqmX(j}8(z;|P&A<5 zgQguz_yed~3+mOI(W#j4j?~4~hKE%DJ=Y$SrAb+L5q}jCPQ#Ypklsex^%ProizHCo zuBl)r5|>5XAJ-Oa%*~43wz}8|*|c$QHShDPz1eIZwO7e~#dU$@>5a}k+v}NS)q20V zI=9cL)WnFTC}KEF@R#JntSCM;D>oljGt~*V%=+C6&B1j94?b!FG`ZY?+*cXl}lb}CE)P|!! zQ+2=5YU-&+er+A&A-zPdq&J|vX0o-#owI89B#Ef3`Xw}2H$UPz!NPqqowIRl5wKPv zh<{K|6@%JWMJdHr*s-+!k!IO{o`e!({xW{@mf~@SSVO#b=G}07*CAmUvt)V*9Wj*- zF-ek_x(*v2A@u&1)F7e1(A;e296921Ju9s?Vsz^HyJbGw;_lIc{~W6rRDadZtH|LK zyKl~VD|8!w*u#ZxpX9xPv&Z+C-)i7--hW~=W7?`(*XTOGwjgPasp$2iau+bUQSV1l z#>i<-h;X8-d;cmNfS9BI_q;yZ^SbdJxkiMU{@6vj=K&1&5y)&Jr~Kyp6RyZ_j$FYh z)luCGE9430Cx`RNO_z73kw8PQ9F*JyFq#l4=&g^iiIurdANyWoJ=K;9T& znRypjX3+x6tSzvNBYKwv%S>8enREAbk5dPR=E@1H*YP(xvPMVY5VGc`AKLYL3-HDO z=EzilHX=tyOg{pO^RpX@BfvIq!hZ{b;2Q9Xr5j$c)ZrDuyKn*?IyS(MUN%aQt(b^2 z@$TR_5c?A<9QQ^*EUp%dkRQIk1?9tUkFaHWA?$v23FU$-{R6qmZG#AhPH6oj_*8(H&G_ownr`nuu?V@ljr^At_sY1BFs=|gnz^PQ_|Ko zQCru!z%e^62DP6))i=6HpG8NRR-N-FEFu@e6@U{PK9}mrxv-tqGWBjv>CO?qUE3K@ z=@=}M9%9i|?Bt#4_Qo>F*@BNL6%0kQl6=b^(?f)U1z4B&k`5r@IZg2%SL18Be<|3G z_1O*!x|Ft0Y1%&8Oc;LiiGS@k=aFFSiizn-i7{t^%b*$3gDt$E&mOns)$H+8HP@%l z=|YdS*mr6Xp-(A{6sRf2b(wqUi> zliXggDPs)wrcW9Ums=JgHf`EkSZm&jb-qG5tAD@~9It%zIDgC5IQeJge5Go1Y#3v% z?s`JIX5AwL=K%Mp@j=Cy@_>52j;e#4{fZ8Fw-0_rq`hF0@-a3$H`k9}Dqq>rUxdAW ztR)o?S!|siG`xk^u{<2)T8z>P(Gw}8X(y72^#k|{$=n?H;nck|-@Bq4)PjiPgGob= zB}BhyIxU$pgMSp9GIb%Y8BwMU_Qxu z9sTfy+Tg66?Lv3f>lZb9h~o&Y*ka|aOoKi*$uCN*PTAjlz<8Q_*bafXFfJhU*<8YT zhAr(C|FD}2wUj0=C2sFn%W2Y^|CI}hjp@pTxS)f!2Y;R%Ih2AN<#-2I0}G4kk*sUG z9Fdj#co>yhb(w=E!CM;lOr5O;;yifjW+p1>ZUk^1ICL#Lzs9OX%IwVp-fJC@p-tef=v? zsOG!6A4n}ko_{EQgHw^GI|s4hzT!@AEtvySMQCjJqqb4ECe40$i$i5Ak?bMY z;Y7nPNcWf+8Mw&Y!>ZfE;=l`SICG(yG!kC35&RzQ=CrvGw0?}s#&9zjt_kJLi2~z_ zBVMwDF%8&9Yfa7Cz8*@k;A?HcBhaW6`+p)vTfEB5hQ?%=nWpNq~_FrQi2$5u4EzV`~6V>}Z({Y!hU<)Q

u(k;7Z3*{C(sX+ODH!JKo2xhY&!mW(B_b@s?y5Ec9e)ow<3%*miN zzB5QB2wjD=Csav&TC;a=nvTF#YGzwb4ew6iz_Q1qzm?IfPNw2q2%d{! zkzl#Pi?dZ#W$(=nX%cq%>UN9wzaC^dm-gO-dB-{CVvv6xlB|zWMDp>vitJX|*6u zIXA)DWO7G(@PBPgUK&hpy$S;C`SS%ZN(G!0EfbLuxsa(IqBxJkLojeVls(LsGexecIyL^v=98_0rn+klYxEMwg5ZlcGxN1zw&>> zfjA_mRL3)kcc^|HLT1*Fka6`oz0DxeCaczdVm)m#uMz;8JgtLRZ`q?XdYHm8S^=^U zx3x!{QEIKw31wiwJ|EGt;Y^X4FMoy0vwaY&9l;KAe76rr?PF1pBJFyTl~$Q`#D&M9 zh08IVsxz%P^pY^b6VKE>@hsGdr}F@%(biyb-q(nM{@}rSbb9RL>+lX}@ zp0VEs(>BIWR;x2uqyGv@gGCzs*N*;vNAw1xqR;F9CE_>Ou@MRfU#N4=*MG@<&1iX= z&6C?Q5(fds>B3AgQL?V@SBVjrfghAsim9fpgVH<4LFuX$pJ3S;-eSHbG{K@PG{IW0 zz+=%f#uy? z9ulS?ymEM$6@n(x&^wjulz%v~QC<#dd*yIcQ_2K{!Z8^>Fste!+a;N!bqTa!KCRsIeE1{he|A-{ofZxGYYxWx4?mtYVUPvn4IK$I> zp%6W2meg2pk_L9J>7m|?y}2%#P+!AvK?DF>VZ>5Bt8%WWBGHa?Z+|ihOU+c9=xWr2 z)Tk(ktsHJlJ@pNB7TSkAxln{ zBPZ zgin#%7p-&GelnK^nSbHeQ<3?5&74*t+g_*(fZu-K6CsLszJL=$F_K~vSl*ZMJ*^?w zJz%8>57D?rO_FXQL3wzqnH?!yz-Bw9qQX>CtDwthm91J`89MNt@7)Lo6vm`rcFB@9 zs_|5KfV5kbaCL}v>7*_F^h=qV=v#5%as!ub_=RY*J#~ZJ*ndmp(|k(_V6V}YzSaYh zg=7sMNf3dysk4f8YuC9orL1AN_q#B(9svm(ULgay0~A)ved60An7N@tecOWCz#J?0 z`Sa2t>bv>Ew7h(^k~QDdIC1WIyMD?v!}Rt!P|7(YnYi_{0bFcCkyJE>Es0@gHp6x> z9%JJtkPb)RsDGR1-$?23trE@O@r%Gyx3_Jh_jcTM3pLPGpz*Z?3}0{d52(}%j5Jl? zyE`3xH+2Mm1*@$!uNN8y)JC>dR@@fp0{6}oa?Tkca7n}SK9UslDPZ70IP_JN@~qtS z7l%AA*^kTRO3T_VKS!Mz{d67HTR>?eXfmY#bi)k`z<*4mKfn{s%rs$$iAzJLaa=TP z2Tf{_6_tvpCm)zjRWvf9yg0Us+49s?l9~Ywz03pJKugL7WBsR>HD{>1Tx z9Ufw&twQvU2Uufv-et&Wz10CXQVFF>j?Gu?l$^2z9m{Dd1 zGt$1yDYrDjo~^k!D@II>L4yFqE!{Bgh_HOhV}B_si52`GPNZG}%tm!Ik6{$@CZ%@^ zWjHce;y1+wDWw{HEJ83Lc~O+Tr~3Z^ba*tgM5Aary@hqLAHTpp@P}VfOkv-DMFEBW z=zj!?M>#WTlKlu|=_`M9S~Vl4>)}v$B^PYf@Ays~p0Wa^ZEAZns;)I^h`32JBly2I z!NcLQK%HcK7#+V_9|ni8=Gl%vKD_vL`JVk=QPfLTuzK~kyTi@D*-M*%>2QB}`bL%h{VDrPIwIyBm;gaZ&a8D=tI{Io{Sq@~ zM9jF{*9#z+sC?8*{r15Voz37N!ax3WcjIoU84d$=jX?LsT5P@RDrp=I9|c!+hV~v7S`$7cn>Xm_911mx zPDP9D65#M(2!l2LRnhZ8t=z;$tP`T6mv zXggzVds(rbICvHHVqP!CdJ99sphRtXz3*i@6AXtMhayC!FQ0F~M~wK}FAH{hg(P;r z+&JHGu+Qwgso;zRignu^3!=`)T zLdtw}Sq-4%@q8MfQWIcuLylt&A0&qQI=Qd~Uto6<!sh~@@!yv3R2 zN!`5i#F*7tnA?h;GLQcZhvF?xU&mZVMm2fIPjbrzJYbivwB2VF*yDojVacD-J2897 z6$*UCOBthVYHNs(R|U-Ouzy>%fb!Ys)v-uS>UW>W zBYh&q;OT-ihOU=Y)5rnU$9`GV!5pRPa{=OS#=1m;RRB?5^D#O#5CUnWq)ehD=%xhTiI>w z7LHxpFDKSNy``}C2z7AdNB)w1HfH@MwVgN`)}zNirJ$0?D-@(%Pjp+G*6D7 zSZ{`QhH&~+dMpoJrGE@o)|BVoYbl$loNUsID6RhF@`dgA1d}l0l(`6FvZC-Zhf{& z3?}~-scxdVZ%T0&nrJ|67i!#y(ssWBmF?aJh3z(^t~dQvNPp|bgf(jxsp`fwHLn5$ z^-aiW@v!XwkTaT!;!NoHL}@1SvvMe-2dFqwGDu5EI<72_CQLttsEblH(bq92VM1kZ&=V=1GiKQWu)>WT56yV5mZL*8~5TInVp`tO0Af$54pGEzaLX9 zy(doW<$c2)#^Hx!-K_&YbNA{B{Jrh=PFc(kJ^Hnr7?1*ePJA;uUC(sfUc~}!Jm5lM z{RDNxyM^jXpXl#x4`%~^UAL#rYssvt=ETYTY*v85%73ll8UTVdaJKHWxJTuaXrtY_ zv*mJi0iTy_dpSmo<&C{!8l1$nN_|Rg?tRfdq`}bn2R*C(9rm3X`#Tqq#(w({oj`u$ zw2!~Rd-9PUPmu@e<{-giDw3Dgo{Tvd`T52-hi&)x8=I^$-pDrE)`e?tL;|w^{Qk}B zs?fs9+D?E&h5-=h)sMANJQ`*z0^m8j*bd{iD~5;;VO!)4_8IdAD@NHm{Qls>@!!P` z18MNt(!Lgr#RN+f9I~1`scLXKUfv|BC`)D&t1)wZ$E!`RdV5O=+}Tjjm)l^J^F46QovQc%rR;^={PK0u3+iLvQmaD%Z)pOO;h>$XC1)cx{e|LNh?)kC#GwC`iamD=x0P2`KRa28tKB`q}#rRpho-?XiKH7;&_1e{{yddr6)9 zMjbwcS0llXlNO4RWK(#4Gt_^lAFW_8fTNnEMfG=7Tqh?7!p6Pr4PsZ4z8TY?$6vKg zP!Z8a+j}0mf{~#X=tpe>Ls&x9|G?_wau_Q7m{4u2?`Uwbs?9#Oyj7t$Dyg|L-Nr3^ zIj+$TtBO!xQnOjO^3c2=Ms{Hr=#?(gP!zou~c~$tN=CRqqbbVSG%U*pw;3 zC*5sc;Bb%gKtD+TDIvZxwA;erw^&=*F_-GIVP+Ian#F9UXO!*^J)lGst}$leAXODH zE;XL_+I-rlNiqq8Sf_4(oq#!viv8Tn~duAR9g0VYMZ91!YFdmB8^x6`|kT zR#aE4O*r?Qcq0Ky7-qr9RcdA~rp#PrJtPNNbJR~~b)rHY-r#(3QK3JmVnA_{g%>)+ zKm=w|N2myjR!^PG?Ppv@fp55QtzIA}$F?~wS9iE_vb*j_{VBP3N;gG7$jNE=CtMoK4q<qC+tG|`q!a+A3E+C=|&y6CK%veUF`v_3e*kie!y-}VjG>v1#q&FWNaVnP1bd7 z^w&`>XfvWHTFs_KMa>Q+6%wITn9wv8XYvFTBvu zCkysmNdpy;X5Zn!+dk3ix819&@3kWUoP&wbRa|KUty2n6?p19%rNaK}(A*fU>Gkzh zdM#d$zs*7v;&hiUxr!xGd8KvHM*pg~IEC&?E7Wi}v{v*AXjz{pp?FRxytJyvRjNyk zjG~l6!4}^N3ac$@7V3ZeWDLPx=Ryv)@Q9{}VnKk2LW25`@kq_j!w}taGeNeQBk8#% z)Q@zbN`4aljsdF7F}uC6kNQsZq;lMgjX4}du}ump8#BiQr7ew@%BaptSw`nY(s5b$ zRDS6I1W9Qf0%aP5XiVc76>g2nGg{T?Jac&FCH#{;ZyLp=9Cm*{KQw8*?y*a&lerZ& zCAp^U+)|RSJhW0X&1lDq+BO=|j>z}d(Q`%@1|hhlVtJCw$-Cm}7W-Ryq$>{XdZW75 zD%^Aqb%R=|##dX+rG&Q8hrCWJjLvHWjB`a7sW|ea2TT464JVSX=}u_(FW4Kf3=d=a`Q^WtkHl@ zSeIIMEEW7ehsB+?($h`*FVj}P<>J`M{qk^Z%Vgz1EHi(3T3)b9E@btA6$#_taP^?K z>LH4u*j7&DS=LR?;D^$xncbDwtl4nb>qz$Yz_Lc|85!G!8-iAoR2s!%d6GNZoJ$sA zgNj77kRfCIZJ_98Q{a2v9<+P#JHX#h4%!QhxQ=Sn-WR*Xz9&TSurya$eiaX|(xJQM zanZdkR?B~%x*}LtE8HMw@dpkjZlmj&ejDwK$b)#pXi?GBl~%Q-f`GZbj13K{Y2+sui4K_ z-BITE4aQb5Qy};8hv6}*`>_%K82jJHhDj_Ac%P-JgqNZib2R08PgnwJJHqEL>=QQ^ zzW&Zja}Sx`KiM}axA2$jKgOD#ruS>?f621my?Y+~bKjfdKjYrce~vfo?L6=fdfhH_ zB>HC?j6T)Y!3iI4yPFPx31GhsE#CYOwU#dy?+AurK2zqvgW&%;mTZPvGBTBC;!2=7vjIW%pc-~6K!F5vcQl2%#W z#(vyK%aZ5O=WyuUf7Js#cKX{JEWl&04F}uj;Q3w{dJ$PQ6xKd(x1TY4o`FAvW7Xb7 zl_+oIKP`+Im?20Sx}wBXm7r-B^G~!E^ffA!6BuN$(SFDau%p zXKLv}HJMkU4`J}gQ|YI)ixfp=-&}hQ6X~bW5dAB2UuAs={#&e=<*rL*rOoEj3Y)w} z(9~){s^H^If99809uEdr6*8@$g()(#fM&|!_}k@%&C-MwFSv{;jY~xqe#L!24F^w{ zKnq_`TrgGi0L7EH?(XWYr9^6XhiP`%de_w6PYdv&dS_P70xq{6!kD@LCd~sB&lU4A zyhpLToqKmMn;b})-lxQEdT*ObpbIL~ffXwN4R5m&f9S@FH=zv9MKSHFr=i@*-Hl8- znaam$azW;)`)LYA+8^UjadLqUc%!_99^MulOmvrR{@a)(a8uj=50^I; zeLbLm6ZjV+CQ=Ihn>@l449LhP2812}ZsKkPc=2ImA&T#2V7By6c+uh|nvxwODls&k3ha?FS!Bj*_mv&Dbfx#tBNbRX~Be{;QL!;jztPHO-MCfM}Zcp~!CaN#6$ zAt!Vl&zZ#(hLqzNF@c{94Q2}YRr$C3yVUakYo!MthJri`P#gjWm9^2AkJwCOg?=P3 z6JPr=E5KIbC4I5!KcU|=k6-9#!Q4)cxK-^f_&NDWn8Ed)%fE$R5+@ zxa|dylJM+dn?4|WNT0*Dmq5y#XCJibe*>})=<}fM%^_vNvoA3l{#*k8D7Ej#hdakW zQ;rYs9{U?WH^Z-c$9`;e(=F6z4NXG~b=39N)?&Dn0h;xIZDV)Atzkk!6IvYHm5 zLpTh*{dl?VkSu0krh6CoA!aFsPcqVGAIjOxUyIIWSX-H>3|zDJS@w0W1)(r3f4c?S z+;ZY1j|L&Rx*r6yC=Vu?+xC8lUFw@VzVJqLnuD3Hq6*@SA{#t@^CIWHJv40+W%wB`Hp&_`O|H}~SzRn2WuzFK zcoHHfxNag=#uURd@OTJ-uc!ixU+T}i3RMD4`X$xY+oB}v)oP0+r(+MMf2b-s)P{Cu zhHPNZ#6UmhUIX<`b2+FW8=YObV9CUwFsls&UlfPzb=M!~((I0>l)OI)0|FJS%8znx zF6LzZTm;#O{7fhYyB=UB1d+EuReyF+1KFkZfraATq@<;uGTm~NGm7BftYOMP1gE}? z`h8ZjoY6Dt^U%ulB@rimf2kd^UDJPa(%e|;@;22jwzgR@;@}Bf;va#I1`60S70llu zk5TmZ!rRs2bNn&xwM7Zdt^!u*kFg(;MP8xd592h<#>u3DWn^uy`Ecj5m6o05eM;&% z^at)VxQ%^g2}<{~p99B;JyMsZ4`i##PDnn7F?bOjFfvjUOxUB%e+PZ#F1ZKa-F|xl zH`-6cTg50!!Ov&NOT~}6tT6xD>9={*VElT>zF0-oCLL!XnqbKG#fO7e_fMW5eDJ?K zd-7rb!^?yHlUHx{p1kUn0=u+5v&6~!{k=D@pS>@a>>-I#D12ZqN1jorte)NWux78# z`=w@NZ>kGQKhTm`e``PO@BgJo0UI_Ce>(o@r?z+S=JkgcvIAU)g}eJd7T%Y|vDbe7 zaQd;`JCxg%hQH3EH1wv)a6SpW@be4+ICEQH{s-a67|805WR5c1Yo2@%8H4VQ{wBJW}_=hX2LtUU<;N+?X{s6Sa zgN57LaA@!_e*)}&;}08dU+Z_vI|an^>DPIZ^T}f6$F07Dv9!+8U^c#D^;u_71(yJr zl3W#col`V_Zn3#;V9ddBdIkG*brgTu@fJ>htp(NBj=ET`1xs<~>L|NI!_KFZUR#X0 z-+Sa_gEX4uS3t2{W%=bKbPtb?vd72x?-8vemfAWxf9gJlapAy@_zDh^Deg5-bwu)` zqocm63?Gk=u>VJEhfg;Dt~D!?kB$!a;50mezk0P}_#ZE_)pzpXj4kICBwcOwAG^l* zj@Z1Zdzg1=O3q=h`A_WoVv{XwkOL^50w?F*f!%@joW6h9Iy%aa@37`@-7CA;vh|^N z0Tu78f6^q-yRdr_mW~dcNpKoY+@s@O>&{UOLwwXnu!4Qra352QNn8xdxxx|vpiUm; z6LivHKwCV^F${Tc>WRM-1-T4THvm33Jop<|n;Wjtz=?!QRe`c$4FKqPV^^ZpD+S(H z?A%@<>|P<Ce~3%XlTTrsNyQxY*#V3Jyft$N$K$>e zoxmCVWQMJf7yk?4&Y8&(I_Vs*dvPZl#XGZb7{tJa^o^1twP%z)8%>2Sk0=O97*Xtm zcFjld001~TrXzfG2>*Y4jHep^;%UavxVTwZve%|U?LHJ}1I)X3+E?Ek{`?J{DO_jv ze;ZZ}cKe&FBiI7R1qgF-b8&|Lz@fjIiVY0|W0$c3X*twwTMocQnF+l&qadJz*dokn zREKvqC_*nFweJ>39qKH~!zspEMPOqHsLxQ9fCr9m`Yy*{cVsObBmVH(XH!iXXba14 zoyo2X<3Y%ws`#U>mYm->CGDaZK-346f5lHqC1N)*I|F%FS5|^`RSmW`XrZ~`*+v^n z8sj|yH05JtKJs=EqyRdT@G8inVR&^4TrmAJ0)k#YC8x>o@(LJV1g@(AAk;7g)H=cc z&eCK)yBZDwwdX-J$*zV`FiFnf4`BP~{AxJ48s=A{D4Yz@MG4T}q8*A82PZH|f3P`} z1YC_$Ad1+(Sa^Kc-F$FN=a>G0VtAb4m|jJ!=mh2!58?P;;hDRd22p$k2!Brh;AX;) zJh+O3^Q$;v?OwsS;h3;-v-5H_yP_zOS6N60{EFN8W%KDYNH4DlEnVfb3iPZao0+=!+&ghWVhCXA7p4+A_f1UzES^cq| z&oH>mgGuVN7m!|pAkZt}Vb!ZJRMI`{xW{fwFNj+M1@V6G_sTasUgf>wHG2g+Zk$kK zyG(2*Cr9h4KDF9%jobSA7aC$0hW`ouCC8Wm=$?Ox%jAo=XW>Y2wO?`E^dDZF(7U~YE&JIAuV^&;Je0PXs!|PYIdUWNJAW9p5&vgCsbI}sC z%MsC!uqC+8f{NMbGr~}mB5FpIgo2m~2jZv=Fv4y%JPA+$PepqR$h!=0i9YPMr3tt3 zncafE;68wxbPZ{{D?m-aY9v67WH7bKRdzK1e0BBf)o>JFVVKY>d|CnI0$2{Yjw@hD zu7GEpU41$o0%kge|7KTz(bee{AiE&_bd}CeFR#-4DxF=O4k3M*TxGK$zJiu6;J+va z)EolhoSwNyN2l=L1>6^FJ-qXeE?_qQc6{gGFvq+wILUVh$UP`{jD#4{dqq+YIf}M( z%t$44!&#*9G*;w}WJB(7TCLB>xjz8#QE+lmi8EDGPtkXHN*FYMTnG8w;fUuB^=lvm zSqg4){(A)^bS1HniP9LFG153jF_syCJ{5!-{F)eAhq}j=@S=tBp0NbVqoAyEVLP$w zDq_@Yr8AP^IY|)^4TQLLlw(>8{?ACAZ*K?Nlw&6E+}pV)8qr8!hYNaA!?W(ELev5t z29zEiCtl(O-q@Redjs#x8+k)->V5J~yh~E3H^%;RYvYewXH#6d-Eh~9MvlY19MH;j zIIAv0xHHd9JP0Jp^P|J=o9tYoR!x0*U?S+f)OIlxeB4tN3 zoeN)U;?Up*sFTg^@ovpC*Do@`A*=!Q! z&K9dl&qtFioRS;po`ytKWV*MaXW`HPLH-RDp3Lvc~cXlW+tbXes2O94975 zPwS?So+n}9Q%8Mxfw^AXfs+nLLB$yvr#Ax2v=ZpmMRk)7R4XUsDHFQ$%Bbef<5s_n zYv?hhNz1^vRZashPK95WK;2lJDy+o^j2hly8V-A(d}re0xp5`7_oztkQ-5QE3XGE^ z$->@$T6a+%^cd9w4v)PQ-9Alyfo@s2T5Y()B#F}jwWhG48zapq7*3QHX@I+O{m8k;i@?${A@G~w2r(CdMd}Tg~CGZjkAsR zqRr$U4Bd>@e1EzL_o9>dLWIHg1Lm^PJ;qo(K%O&^OWH@3_=JD<5}D3jCWvtYshj4n zV3)G>^#r<@uuD4Pu9%=@xARL9#SA5Fgs_xTjE&)CetLBUlWj9>+@fakB(ci4;<#D4@3}j6#%OC%q>(kHrVEQ0|O)xJOo_k zLH4P4;tj^(;1hu7B?rH3;msM$4J?PpNOJ=8Us`#>RFC|C!P(-ICF|m;Keqwu9AH!~ zNg0vpjk9(u5F1dpe>cE9CbR@`lt=#z`x<4`;~Y6K+dPO=v2=kL=psMMW}A(e2InU;I}?aLnngwpJ*o6H8UMR(N@1UDVv6i(HlKQl`vT9_4ndH&Ep1b-ekqFep{@Efw4ljq;vf;9z}rd!WLW=vlg0FUFKmAwXbO^d%(HT z8k-K^S+5HoYd7pmm<@s%y{R8LhimOW{P9og-#G4_4ew~PbF|gledIsx{~NwU9Uc9A z@{cc9i+?|Mx4dAUCy0@t9=-^V!)e$E#&G)fyT`O7FJ3IMJ&cbq@IpAS7IsUIp(!Z7Kw% z`&%9pUqUk{CnO9!Id<@2rzfaCaQJfz_S&aLk7C!o(m(XK@JOoR8E@Np`E8rMiii3` zcV;|vr$AT&&z73JjYz$^LNrt;s`}Hacx$S^G6wrVxTqDN_v9AWDuU0}KdAgaTC+5n zg=v1-Y4e+_?)^Pm{{AkKC?Z~FR%U5EBaPnaFXs)1E&e?S#X9QTX*3TibJ=d(Cok1(u@>or3?C?2d7zg*uLgma95YoT14!dGL07X=EAE6}5 zqSQO~ZF3Sl6NQ<^Sa_`QJ$fgvll_=v!c9996&iLbRqEB8=Y}t1Nt3NRe?S~P+`uE- z`@`qM?al9=e{4PvHb=)S>F8nuZs-2iS!DI<-X0_q(%{5Exw*+lxP9QidhI`ugAa|K zYJWCTfPi5d^c0qRkCO$CjL4H~6v~e4bsxBH&sJeWF9^I1y71SI#=vwn>nr!Xq437- zec|h(4E=Sr*w{xcU|B8J7$xUty7mCe{)}YpAG>XGe^@RHU^CqGM?B;7%38XbsD*;+ zY9M>2xktydnqIP35q}sWTzq`@axa&mBOzYHTpDi{3HkevA!T3`jDS87}%4 z&;zQ?rb?vrOK=`ArnrZGBMQ0ar`37*C<*C$P?-gg&1*vj`7v{hZUWZmu#E&Fa+j!0 z)jQtke;sY%6WrFZWLrYFFN*o$MtiH>lb@fV6-Xe3UU?3Dkquc}4EhAUyyNz@^B`_I z;QV0R8!)M@BKT^h9W^pnRm9zgn&C#ippA!%0k$jl!zrtmf!|&`(n(>Ug(WF`bolcLlEG~+>yV}rfBwCGWKwY@D=@P@;QIO$}ge~5wr zPiz!$3?$vrF^YyyP{0686;v4Ivnz~4ll5J=KaRGpE-o&PIOKZHJGb5M+>V6-*&tYX#a@tKK8Jr$i}}JEaz2| z@>>FKIFm|Xyn!f|H&nSetm?|lJg8=F4WHH>hO0DgB&*rR0@!@v)% z#t|$lDec1QvN;yiaUktzfn>y;qM}eFI7RrC%=6j2(&`JTξXUXWCVe{tQyO$4a<3F`o>S(3jhe$FBgTtgmnV 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�TUzB*}lmzf8giC|Duk$n<#hz8{IQva@Vt_4p;*`1JNxQ=ZL#P#1`2UyX% z{gkxC(zagG@epmD3K2}jW~{aYFNCP0IpxJ}a87vbSmX2T+*5z5p7$RL%BwJ5t9l}! zt7dW|Lq>W)-UHXy*T$V7zI4V#0r0cV*tqLB$>lny9cc8d6aGs7@J&PCv^XG5DvL6_ z{)_^PI(m8!UzOgeA*=9&mna$%XYGR~$w7kzloNh1MKZ4Qz9^4Cv#R_tLj@3e$+OX?zgt~r0IgmNO?RX1Xxgh+QwS7Y2M zq%24TS^J(KUXQt=@&twE?6f=Tsi1QTlsm&(dCl9qA`kHAD`$_^$`P2w_0(~&G-bYG zQ(Mdx#24(nCt8uPCZ9PUjNS_o42&M^SDK-Y;o z(ApBksUwK|SZjcgGP3N)C=}6WTGN7bQQT@LMgG?hR-gYRk%r8+(O+waF3tXepdI9_(xoR8)jeXPb!oILzccuaDg0@C_qw0TXe z_3(eL<(c_m*%kjs+xlFy&j-pB=5Ae|YV~d6zh$pgT#WUeE}}gEQzp!}B%7~QmI5es zLzZ2W3c){3gLa}v0cNFx^s8vqU!wcX#)GVN1i;XqCY-a3f#RIaEDG3=%52?P(QhAY zcMWTI=CcjG@sbIKA3CV0|MLBt6D*1W69a!DZ(k=DWNk-};jn{F`vCs0^{n+b_&={T z?oFqypzUt7TTXjJ7J_fL)fUfSv6DIpuzJ!Rw2A^{;{_QpZVzLi7zH|bFGMNeN1AGn}w zNZhS@;ZjK!H}on~4`bRqURG5kh}ufmi57~+a33g0>h~Wg=EMFE%e>Ra#%jjJ)hw@s z@qW#|Q&VOBig#A0lay;9MGFJI;w3Hj|6X3oQ_7#0*t`6 zP`E*{=C;>rk%6G)8F3)^w*}^Sj;?<-@oTkt zwgH%d4H7HOw0|pUdc>VxtfuWrjyqHg5oz;FQABW8X`RRpc2p5dN5m6BlTo{C9uew@ z?>cL;`S|9z&SiLY$e{1n?P`y1xj|A`)>GXgIf}zlS2KB@i(lx{4l-j`t&Pa+lE*U4 zpm8vcGu7~j{W4>I+~(piVAFq+99E&l#Lb_Wg3(tW`hh%qm?=(WPxTPW9=fsz zHhA0<&X%x!iIzR73MwGhsQ~$?%G2moRs3G&wZ?c(3ra^c(cD%Xwt*MT>xI%H;;FMlyV8@Lhj!@#4dQ)hK|6 ztFjPo&3Y46nT2j6MEd@6dYVl1NbEep7K@!{U5ktX6!S7;EtF%qr{QP|m)2`CgdKMz*{_)*Qe8^2=fGvMmN+Lp& zoeRVMw2-u% zs&U`Q|(L?MNeX{DaWKx3wwQv(36Q|z=UDTf{r!LdA zltXN6=GD~tY(H~38Mvw3EZDL-0E_5B7Xob>pAmT=H`#|BP5ouh6%Ad4RHbjqX zz&b``FXVq1n%T+3ffw={uL(o#WIVOt&Ucy4us$pf_&1mE&R0w-fU3PL6UxtU z4yC!zQD8DfzIcQ*60VO6{L}kFAr(GbD3rmuZ#D_*2D$_QZs89G!@TYFX5xsUWsLmg{RVAE zwq^mX-l)y&AV@zAlZ*K4Y~3V`&+_r@k2@O&sdbreVa(ZNe)d&1Fb_Z5p!XIUj&h*B zzD9q`^Vx7IJg;!%n*Sl!d0z(^eoQBp`ACAnI?bDOd-^pF?l8;-X*9#cud?wR=YFLV z79vmgAMgAIXW3UeztgXCe7_!I$P=^}`#Kvqw;s^1jBw09C`L(=PgA%YPcB9;NuGe3 zX!L;(s;FL@g*mEnXOy_)@f}4}KZU0qd`^F0!YTE|gs2yVcME0PPZ>+arCRH8v2`U0 zQ0a^)Ro}=RvLWRB$1)ru^l{5s+?a-2!iwkXS*^}+NpcOE;L(A9=pGkLhK8<&rr&jpTn&5DN!gw>GqpC9<*L%!P&TWkDd?;uT~zj} z(u@L)F{gA?l;!ICG3}tTUFDXY7s`L<;%Ujq^U~slabJ5Her`US9?xivYE3s@xPo%ZgS1^zZT=v#=P@hLTpxBe6B^3jm966Mc9qg{ zrBOWE40tQM>9)Kv1mz?V6V~4s8Vt^uS)mCDQ!b1?9o=+w!j+SmVN)m#Nk)G(dWWgU z80XZ9I)f}7v5(hi>(3HCB%i{V9yFu{P@pV&@`4qrwCPbMJ*6Tdr)1MpDp@E{G=@z? zn6vueT(_VsdV-?4(iU{a$uxYofl4y^gOA-q|703+6>ey!Z*?DHLLT;f0 zIJVJNFhq+Q<_40?KybFDZeSSJCmrlUFjv;*F|(=;rPVwoaI(CjbL? zROUL3X2x1&e6*$aOo)GnEIo1qm(!Ag3m?i%w>F)0#`A1Uty-GOP}wmt3@gxrlvy9T z&d&C>+t@0hQoo8=G3ZSd@!vfTD7p@1|xcg5AgJd4(?>W<41qemP+754KTT5VX zlAI-To8Ja?>8O{_L1!3cgCHF`@)y#St`0d?#Bx$Rd7WUMkKcc>&fftxKCZLe zbt=uSQ)zmgN@su9sWiS$rHkuSI=xP%%j;CyzfPrR*Qxa6nwrpvoA$=x;L~aHnM|!H zbM9Y?uaD`(e?}rYKzOOdcC|L?!cew-I?wYYF7xHW ze^7hC2UjjKmqn6EVqxut?RFbq`O4Xeo{f(bn|OIl$_0N#c)4~s4I)eaK;)02iKU;B z$R0;S;77{^CZa$z4bChLWFjA~$b4MR7xv`scs@N1Eemlj3JCtWTts-jZl}R8O3L|D zl^@&2cqa1^a?1H*DTN_{Zn?mPEI_bUE+9M(wDZui2bU`Mv!(LB%*My4QuZ?`1WGM! zKM}bXVfcS(1p!etAt2;N%7ncuonzeJZss0*#Ym$_TZh%LMvd&cXro3!P4!2Z&ZI?Q z<=jRKGwPmvkx{eM>hch2RLLiewF)(JbbW8*G1#*l4HDylb5;QwX{t-sq+#;m6ARTf z79;k$&68c1A8NF_-cyQU(e-Yc3K5%3BPAJ?$F+Y18wAgz?S7jkBOwa+ZHX2;9zDB8 zaaZq~;9v-ta)#Qib7q2g{jdfWAzp}qGT@uV7BpyL9e`;JW|7)yj8+h# zEHVe9bt4$b=qK!7L;K=aVVuFmfj3JqLHR4-ENu(z*_K_j7t}WLb$F389(CzP+91Me zL`mkss`RSIwD#nNEDQ)cqs$a}&WB?GjHG`tEI0w$9dl!m=5?}|8<+?q`dqB272R5! zj!BC>X4Tjhk+C|58J4iz&_nI__aTxbMQ{xfhp6BfBBFQqx#i-u6DSDP(9kkd z4$H=>x3)PG1;?BWcU)4L=)zx$gob|!&$Ug+IWdY$>qKyG+m5Oe3GF!^j|}>A)svc} zXwl4O#et`{G4KGff}s9ZiKbEt9j&ES$5L4yLb{;eQ5{K|6*J;VW4M*(!K5*M%+h$$ z6%kxwktridV?h~48sqiB_mTk8QpM(Tl;t`~6bY77C9Xkq=#(6g|7W&(fAYWj(_ zL8B$dp7fPA8|z+jnZ)5R&_=70EaO#~^_y-^Zppd-eH_3vy|Gid#113eafH~4Alsg= zL?5PVlWe|L5?crKrXH9lEP(D*+ zT0=tcAec!4OoLG~*#f6#0TX{#O`SUJqEfLH>;NmTLX2^Mk}w(B#?X&bk!+a%qk;Y{ z{2wW`Jv~72q)6S|?yC$jtX^7szO=6$Ki9tQ0#3Q!*|S`6GHG5uq2wlz)NyKGi}++P zhPIbndrI2ZJwT!A>pn2N>gxe;ykB$jWxCWx(a5C8zG}DszI;eB8Fp5HFN(Wf@(M3-W_Yx7+< z^#cv?Qbc;sR^xpu(P6d>6*A8ya~4CHJcX2BxRe{#9oMrIy<3Ogm=Bnnb|8x0Q$_Dv zi$1swtn-~EkmY}Oni)@bd&NMOh6YySS7?EDVqk(pV0(4+GoX7sEpI(tfHKeko~g97 zIVfj}Ggg;xhE3h4#k&@}L2KPkzZH9frK#-iYZf|@SUt@eLj*j;C#s`1>o)#xW2CBHXqatQ}`>h}^ zc<(ofkx@O0`(=EiCw^N=!aD>nSU~$jN7`OTM-wJBJf3Hki-@C6-VcW}a zvmH6!!pORoOG8V%|KK|4Ize2_A09Gs5aorVMitMMJLc~xsjw66bF>WxuW`nqEg`JB=%U9~i(mt%~Enug+_bk{+OT2%-N+#irsJgorxDI84ihO4;qQsbUp2_L^!U_=B}?7?nDDIuCLogdsWohP@&8vH?e_Et(0ML zWZPe5WM!IQ>B#EWY*rEJ$y3^!hedw+}hRbu9w&+lTj`Q80p=T~Mzm(H&qK8JtJ zj`Ht)Q{AF0x!KjWY&m}4EAA^U$Nd$TV^t}O9h#QTz~20QdoTCx3w&Qd(+bGo?r*Xj zg+A?-@7mkAYoF}hh6{UxyKN~MaQ>f;V*0J{P~)Zj&qHDTRyeJ}(q88fm!Z5VPAkrQ z8B(*Y^L=}l_iKADLiv3G<=4fJUu}PBzaoAt!JU1{?$$y1T|1Ol;MyBYwC;D6Xk9tN z(A{I)eenCd1l-^Lw){p>F|t+V{#MTzWw{!Af;R?%t zpI6TOqGsme$6fK`p7?R!vM3L3;{@Ha=&9YmcTamud&uB4uZ7c`;8b}TMTh97y&qW# zdAR|QsZB#|C^4%Y?sD9!FQ3B8obo(UOpE1s{fzbLi0D!L(1c9*(D~c~dX4(KU*Dg$eMWzl z$r&K&T@Mz|DqztveX&I)Fm-!>mX**3cel~t?w1EQt^r5SI&O1tcWoygZ3@6wX}abPtxCNx7$7C%I;oC!SS-1{CKwOUiy2^ zzV-lpiSN(Pxg#NAU3`6SUukCqZNT`^$q#Rho5+we@k{PesG&EK${r?vU%CBsN&7Bf zTY-x{TtgF75Ys#eZH^wivv}w_2fQQJ&2HEUr?dQ$yx&JGs`j2IoR$0g9y;Tmgn39l z@n^}*KY+i}5WQ61WK>Z`h-cpz4740f@|!fQ+ppohH}^x<2gPV0f?}>8eMtZbGUbCT zY$=OF76tcs!MVUQSmhRfcmPdxPB8)Z%aKUtRucwVL+)h&nkS#G0?P3F`BH}iFM>&O z7RDW6s{b_k%v=swGfbxg)*_mRBMQ5d790aqIl2B9vw04*-Wu&$j1_k)pZbNnen4@PRATt?6)oT>{tX*j~5mOQ8-AulhIz=243 zKu-QutZ9B7{Py#Ilt~k9>TEP$ck0mLLQWqqyWeAvq2J$VgGU%6b1=rEw(6CujKT9x zo(AU_6NBO;rTTqi_2@PycX8w+r>UK{6mebuL}yovS%T% z49TD&ZeXK-6didQu!o-Lg9ogF%1OanB|FJQ^VzUcFPINLtQx#wTstqzIoGONb!$4+ z4|F7?D03x634|YU@yMmEM&eXFEOu9affK;a5B|4z%eIMH+Jn0_4_q;aFL^-K`=|kD z%3v|{2ZqqP@p&#Fa+zX3&HU`b;fhT4~{(D=#6!CK-Mm>?zSZkr=EEK-ik*3-o%eM(gcKqL0^*>z*!F0 zB%KPtw{yQtJ?V+}zmtBzECK+pldQlm6)EP}Q8KdbJ+*t7Wqx;4RM5O)cr#@qFm#aJ(TuYR6}p)IrwORtM5!%8f5F{)?Dz~O~h-a)B# zabcTXz6+BUF?<4OAFmM>5#YXE_WsR+sw@>R>5L$p?VR&M;91jovv!yZHtKX zR1=ZP#PI^%Q_`ipqD$gA1*CjFiDt8K=!{**LC4c9LaKI#G~dAJNR7o54%zWfQLa1Y zPN5K*Eu+3zC89~DF89bnYGHR59Iw)evh;Vh@X#BaGj$cw*&vf)YX`IO2xpFn6-^>x z;Y$3ulkUMG4Av??|1?s2Vu6~jwUZmdKz}1dTY}(uO8g1c>t?e;q%gJm6d)i ztB@8Mc84N4iRmtGXTBDqbLZ||i=PTUluGKwqE2Re$CR3&gAR+s(Ja71(s`D|p^6vJ zj!zxrkQt9O(oL_GUmMuy;uaaaYFwX5wyqWM8P@n8z=3L`G>ZQ{wYtRq4?9rFK<80!}PMlzYfgjw_=|C4X#*fl|VwA z7Mz!J-W$@zmw)2F%>YiVY|O&D^aFgQeHrK8zWVvhPZcWno^U2X zMNYL4;?Jyv_^FdJ%G()f1UXzUc87tC71DwW**gM4eL&6fLa~)xSA9!nfc1_;x=e}4!+_Qug< zNOzQf4xjIWC=2}={CXRt{uKT`Pts3xzy2kfOz3X?KFr^RBMN|>Qt{gPF&*yMODK@4 z%amaF;AU9s<*;J=S>H9;XKWx#yT3pap~}d2uBPcFu4&TE(>#C6bX4v`?p7u|_d-2t zluY0ARIn$RSOHa$j1gr4see5|)bWT`4h|TAED|xMZUSL^j081uluwwJQelrSSt{R> z{p(RsKh#iAKQyACejp0!tKA0a*K4{)J@2;tWP--Uw^c?FDo_JkUvAhirRHdof$OQtj6@8W{8o|bF}bFDzL0Dn_j@H8#Jlv3^s zOtEc5F%uJuEH^62atB2QVpOG8IH~1zvf6Vzv<0dAJ;>ObH$C--W@x>$V#2tXa8XP+ z^}mdRcsL0e@bv;77?KMJCbkR7bq4%i^;lh6NZApP^@}CENS>cwA znQLlya2QbbsP77Xt3^;ktnIRY=1iiO-*Rwb8BfH;nWE{A(C@-!lpDhfL*K9OG zvo}4EOkEFjSVRY@7Szy)n#hFO2?^LNT}Rw7M06xiB-&!^T7SS;y?S)CGb`fns!eMw zXDi(xLd^DX$6^D~{Z^$utP3ZzAd{6*FrVafI#GruyC79p2>?9D;v#fO7efB}c$=Wy70I?wYY{y>v<#xDVs zlcvTbL{qY0vT8A`4nl9@HyBje3KBeT3E=Qjza7lL_P=494jmH_&o-Y1(rn*r_dJ2= z++ag#7(%hshKe;cl^gA)xB-5AmXi+0D+2HHlRL*Be@8xbdm#y?#=*pTkMd%7)zkPg zDB%@k|l z>=)X_hgTMz?ht`&dpCU)cP3$cmXCMSjSUw$nQZKYPU^*n>9MQXPw)l-ZmS#J-py5e zIkXo#fAL{{?DEPl+%UOtJ3_SL~arlQjXJB^^z=#f~M-AHsg@WaCh zMHD&eRK`Wf9J&4EaCD678D0b{G&=SMZjX`zN*b_de~Kglw?Hd)=}&TX1!tcsNMK8F z6Yyy`+W)oU6#G7daE8P_z}bJDlj_JNf7blCpPR*Bzo%wu(=}KObWz3Hc^aaX9J#k=t2j;0Lu$M@N3^6tli8Rp9<>tc z75GYNWvm!d<@0rYk^?dXLN6?VoBKtqP-+xp3k1{cndwZdD5p`?uxd6hmQ+h$f5_mA z9}I{4=P-O!fC^*7l%J#1QW45o>uTd#)`F#!-pDW6N1$XzKn@Ij@tuny|8{4*p^tx1qvzn+FHbS zW&9>vDi*Y)LRlSq<@#6s(L|*5Q+V2;=Geav94YNASL?so47&@uQe?%Lv!txv6tKmIlnUPYn;69aAga1?^&AL&%VyUOH*KiB- zS26WeCJYvX;$v5$X~n$@N9={H!?7rP8#7UA@qw(sNKdM;b7n)r!@8aMkNP@RBQ*He z@l5mIs$i9>U^j<>Q-5M!>X$Ns-_&OG`l3v3D(&kHh4ft4#BT?1f1zx(H$*}HXQSPd zY2A{rZ)#MoD=AC`+B3j7S~sPFA{=L%z3-%TWiOQYcokWr6$^@YAMJ&w`#`<>Jk(O_ z?BAaGnMw6MDJJX{65vu$w>xT$3GSO-cVDnoAmuTkIkrb|Gh|9?7?Tn`02EI4yD0WzfuEXcEP>mXq9`4%z{nI7H`J$`3Qs*+jhn?X)P~S{pQJK{G!FnKvTO z>XWjBNS4oN=@!MMljrG~EGj}f0C>QZZ|8t@?^+I+f9C#MyoN>g1Ew@-TL_Gi+HWa@ zAX^Lc4n_Nr8RikOXQ2%PlmzpT!Gi+fF|tDWK+vVWh-kXgAN8C%;FsZDEwNK!KSl(X zM(<~Z-p^=&6DBfn28C9-5_Ct{QkxRnYJl6~0z4IYntOZEXr@}j`CM88zS3A1@?6>r zEQ)g(e;4M$&*`vuMU2WdxtUW~kz9TWp5x$RcXz&Ke?(E^6asi!} zL^r56hv*eRV&6N5hGyvL`3tKoFGeQK!bYfY??O18XpQ(&ARV0%JrFt!vwF|G*n0ve zx}+E+%xVijoWr*vHUj9~_x2pp)~gy)D29|be;HEh9ng>(IFU0BHFp(MVs3eQ4c9K5 z3@MiVX*81RsETb@DykJ+dy#jp)G)p||5D}F=s)Dcca6KH|9F%6Jq#9a-gJ#A;=hti z#Ar;a2E@jSN+Of1*hX2w!37WecBL=*ZQNm|hE(vt1hu2z8Gy0uE5skO*U)NJJ?=CuldK}i;` z>`q>X7ddMqsuSlADyasm#b3Pe?Cv@jo+<7js|VhkOlI~3eL?1KN}Xr3+xR$Il8|bkEy^^Rls9dC?1wnV{Wc`&WwTa zs7snjIJ<5rgv?b!oux6w=c(#h4d;BdONMIYBWDI5vo>-y@FPR9HZle9JEu2aB;)bpG#OsDUFYx^iEm68wwaI! zQ_d+R<@q!G8b;@B#Md)Qe>%e?ZX|%{)(KH(6VtF#Nc9kfLQ2p^m)-$v70@#232YDi zW%dbY9%_o5!`9Q^6WA)!IhpzanyBNB+Rhv_N_lNEJ2^Zi>XqgXBuCys9h*AOjE~8B$iw+D!W{Zlb-$0 zgK(C2KBPfxdg*z|T@f(4NNN@|^%-KzX#2=8h^2F7g1$_lrgJiwr>WEtv1`H_MM!lvCCTA4X5QCKQ>j>sRFo{*QdT{w zrMjSHr5CFr(-IY?3gx8=WguAdrHhC1`vVsFtFY99zAUU|e_lvfdQ5Pv?84L(ew1vr zCYzR`zDQ>PB;8r)x7puzqtSeP$r?IHAhUW@ON!~ETT-+$01WgA28n-`kI^JE&a23j z^Cm>fxlW=K9Ozc!bgOgSBEDBF?|zhzL(|j3b3VPL?sc`hVp5`_GVS&l+Agf~Dj~qE z8p%#=lJztDf2kTTfl%Zr8$kf@jZ;%{cxjwQcHqwigMyYgxzC&)4upj2IeOJL&9u2O z`ix^!;dHTVmu-j%8DHh?BawIMTrlXYaJzcS`QB$xQrL*Pg*W``ahoc-5t>)=NMcDA z{$&zI*(8EVq9-Cg!!r|;Rk(Nz2@oCrtO_j@96&&ye<*aA#|)Gm2jIsmb}T&m2GqYG z8Ae5t0ZpTal3XCUp->w7kZ?G4&M62iozC+GdxP@!{3p(s<1N<##1#%cg+QxAb!<(F z6AsLB>^)PI;^G#d!;|&)L<4F_>XJ}SP4l`?f) zgwGhYe}y^4SS4gjO6WkL7bRpHRAGQoH3qOs(gr9HaNtD5wu8XvP8m{Rq=*>|T4Ok! zvZ`MVNN_@iJ;;&`Ojg)My_a9-QHpQ?NKF+$;g^FdPgxt;HkBa)eE}0ly0gg1*>a0Na+XZw{M*R!S@I$r=BX`bO!_;3f81<&`E&vY1G4w6OE8Qwq+77iv!yK^Q4d+yCiay7xQ5jfiuIQWnR ze-PrIqb^y3(ye(1H^M)K9}#fG7w{MN6Ik_mhXD+*=Tz@^wFZ8~fK zyWCAK@cHwO*e*aeI3xzXzC)M znoI!(+H;|@*Ip9^SY*5Pb!MCI*QCxslz);V|0AddnYe8gYV_@#k*elwyNe!~RGwteA#4b+Up4^k z^AQ$%}bfcWjO#0 zIhUsi9;l%<1DUd%!!5K>O0k6Rf0B8+wv0@xi23KVR^mymO2H z$&~wDMFF5(V-yCmyO&4bt*nV_sH)-@tBb!-=D|l}J)10#UVQ9tDzv+pf65jFcRx^{ zw4ciy_dye4pDSc1JeMH|^cSFkhOLSXf?`)Y4*T(Zs=*KYYzREOZd|Hce~RGAvNQlZPL?CHGs0xHw{IP4u+cF zV685YFEbj(H;wYlnNtaxe(&q(gEOmtP7EF0qk*D)0h*&28&6*AJL2 zcFbtu>7#WD8%<~5-7FL-f(a{iwQV%z4UnaigN+E8;7`ycIptXH7KRM(hrJc-805*egjTqFf7cdT;lWOw@xp>3 zYZ?wVOE`4042MQ2?L4apHggc<&~^=^`eYVtrT~^WOEJTy0jiVfbe_`-WMQ(U99w|fVj1fa7_;SbeaGf$n_MpD zK+1gsvx^lruZR>X(k;^}l+Y==LQYz<6y<%^z`0OdZuyYmat_|8ufV~33P?1y!$Nt9 zI7qOIf&Y%qfBA_>hPbXnJI+T3QRmD%z1{miW{_%^z7kCUu2aj|6ARDWOWC_+dE~*W zftr^f5b+2xqfX)jtb8%L9;jf8c~(<=SZ=dA%Z49Ig>*bw%0!eVmo!(uJ>jRz7p~IK zZwfA2PJfoGk?0+=*QoOHh;()>BB%Cbsh%I|mOb{je~|+bW0awsc@t2xOo5gA<)wSA zmoboj(GZBfVfeYzc9(nZuuiTby?T>GiSiDKoLw=O*ICmnZLx`4|f;{KenrN`Kn+O+rBQ$D6*KpDu zZ{5aOe^#e!U7l`XeY*dO3nUj|z~5#@un+^ja3gKuB3QI$3lv+|$C_$^Y9n8RX*0b- zm#}CYX1njjZs3)lm-hx(>?jkw8W%s1B!Xh_jW7@;Ssl7~bkS}{o+@MW{pgh6RtkP0Ybe~D`>v{kz~7MaY6w&@KOK0SlTXq(m|(fyAipnx9l&FIfqahISxq z%E6=H{lSLgbhmfz-Erd0`}cRgdvLYw!v8j$aP$6yyF1(LllV+4rA37v`7wzS??1eI zfA8+XvkH=_aar)e-R^e_-PMm&E*WuZz+vtI3{k+Kpl=TOT|J-K0}u><8Hd5J7f2x$ z>PeXL6xW#uLIX{k;0nUfyS;XM;c|&X!`fX|J8fE?^(J&*P^PuMK6AL#)foOc zJYWFd=OiVz4yLwAC<71z;S6_!V+=sT2{MBXD>1yXD|-&zjZ@f=1!`QR?D19(w^c=t zVH}Z1UE#Kgy~C&e8Dxou4R0*$sPr$D+Z6<6cLSQIM+22k(A~=y7!J8Z56P&ev;wEe zPoRX_eP-F?GV`8gtT8&J^VuKsf0m=9Y6VH-7Sn=GscT`?pi`Q=KI@GouhG(#g%S-? zs;s}VBIZjk?l3QZOdIn1Npc!Y)U7wI(wsW0*V;04B6Sr=D*7rxReKuasgdy$ENOB9 z$(KHb_d_JZ6p!0>MH%2^q;4`hcnHL(lP5Iv&Y6ZD&CzvEI}_eFV2jQLe|3kD#6kG&h^|GCU>5uPj#Vd9s>jqD>d|O_l7&sjVS6Cf+RVi-_I!t! zL!eOD6aR84CnS$Y=gD9ISAPCJ%yZaF&J5LLo7`$mLApqu%w{$BNS(d;HG&zw3gZle z)#jne3{g4|2w@rnf4YC3aM!9MvjF~M+%S~-UNo1Lt}k`Jz-_>R7q6v+__Ook?L$|N zB_uoCIvsWsW#&br$A=tOT}>BtR+y*N)(@BUSK5AAS6GYk_)L%pPjtMl(NQ43JP~Jh9Ju9`0n(u z9n5Cmw2y&|A>_6zDGV)~r1OPGW26|yGH@lSsbgn=`Z25}x+>^dSpG)XH=_$xn7lui zR`Wz!FQkjD3*uf5p9!L=&F7YFGOOid*EuYe8C^VVO;2}N?wDUO9C@}R_JmxoTy+wD zZehrcY;zDIe>zhQT`*H(=kSs#E(5(+uo*`ZfIi6L;WYUy%&b-WGo-Sy)pQ3n)=^Q~ zY2)o5orj#Mq;ymrv1V{JX9oeKW99?ftE?@6CVL_+b7-by+Ki(|5q7z0HO9$!bCAp~ z3(LpKw_Ydl=G!znhjv>}flQeO>8Gsa@a8&`$i;g9e=*5i`$$lGY{vk@WIpIGTM@@^LH?>KF4s_X_U1JrgK;%M3o%%M4!C$_zdWnZZjT1UDTEf4nOQ(LYuR(O-W(KKSj|Yx?QeYx>RCYx<|J z*YvMnujxO3y{3QpdQJcE^_u>%qUqZ3-2c2zrSEMLmRXG?3F(iM)9Dg%lA@M*`CjP3 zKXK=D>J3A*q<)ei^(%ivDpFCG;gC}KZ*P(WL%`IK#(!y&sbDxfMef!jnR+fIe^bv) z$<&J)$<)MkJm7HB0Y8!B5Q8-vMr$y{F2V0o_b5PsI1j?nJpZc7t>`>Z~!*KxweF&Dd{7y-p`x zHu6$I1_e|UN{T|vbD(pIe%fIB;YTK@4!)g-pSa}YL&;qvKBuuS_OFnff1C(UC{?OA zXX=gd2WM@Yo=l4)r4f!hXLFP=6hKTnd@jzB9);WEXgCaGe7F_A@PSfoqH0%cUEQ?R zc;IM_qIB9K{~*EpXs zlOE(Af9G97Uc$Qwo>cf`f=*WDlX58HTz1go2b&w@x|mDdIP&JDbb=VoIg*n*uQlms zgVo?}b@cU+Nqj~0eL(TB*s{ipM6RCARTAEOEbG+5J~nYJ+G>eJ`SLPQj%^{{>SAF1 zR0?-5j-)2&TKP(6^+(%TolbUIw0xUsn1y-ke>7;FZf?fGIb3sGKt6f^R}1`a+L{I3 z))fCsw_ELvBE}RRh16u6_UYN?Bsv@Cn^`nD2WHy15!<6MAB@}0zynajAdP0k!WEH= zo}nKe;gYs=)?3pYW)TfH@jh=$STLHBJ6=phzd+7C8w6-2ZE)~(#RCzrXFTmZ@RVyI ze+V1wQ+t&tf&)A&^vQ5Lgx8NJEHRZF1!?z(Wrn&)|wy^?8>%qZ&q8lnR-~# zi9P+bY4znRJ|ulIUf_&Xy%;MaCt)Kg~e`dl+2Qd$A+s1cWv-3)H2&gPaH=QhqxrrT5 z384UrG%f}~4)oh|a%(4_Kij=F@QUhFql=DRJ0ttPGt;qHiNv~0=B-cB1f}c9>l&Bf{3F@pTv6Y?co*_=%Ztg6Vw`jNfH^lGFkcnkP#RB2s(xq_%5g$*^@Px) z6-+2R%u$4&s|khTa`e}>J=8R@J4?YwpYnju!aQp*+OlZGnqSe)o_zj!Ret{2D?R@( zWzG-83da?1O^x@Y@J4JzF*H1M)B!Z4qHcyRdP1OD~0$@~m{;vX*qfF9%_W{IC3iVd(H{PFnX z?ME7&`dCOCm&1*Lju$bmefrF!wEiI3K7$(K~gIe{qf#;D7g{ z*!9@+oc%TSpYClROm;I=p38=(C1X#xugXujE1qG_cGLO&SK1#b4&cbrx;uZqIZmk5 zNO@hOb%E%ksMx^}Nyu2ie^oqErDF1S$z*M~@?RWfR!#Nk3RAW1W@+F56({-ThLg1H zV};t)??2a{Zhx+Y?JRBifA2HVU%&c9OM6+I`EAeiX5`326@;rR12T3sU9-E*)XGZt z$}cN(6bE$cGDQn<1FQ>(;3tS>+ry&J(<^OYXcGxWA!@ZkkK{JmE@*#Dyu16m(*ecE~T;n~~E#WTD_% zq*MotnwG_TKW@8Jg_#>~e%r?rgeF@{+&)#zu`;I|#j9LKe}(e06o2S>?V^S>J|lB5Tah#lRN4ie?YQT zww_4+NsgVuRYu)x^2&?jQ1V$9Wj;xE~z#SNrPIoD~@bDjDW z{$X+pX@oP6(On-0H)Ld7Z_t^B(^-B=c7upxc(WP*+#}_+5FJTjOaw;B+D*OaiKAj0 zM%<}|6crmVc)66NFK>*Hd|Nl?f2&Ep#p3yqkh)a76^72KRO`78q0jFgPVC>;O!U4L z#QpWLtz6Jmk4Hf7+lG2q^3p_|>>bL8o#;g|0B^zzWFI)*J?=^0b-ukhe(K()7@})*A0D=t;N1_ z1r;uwxWW4B#8EksV;Tm_O+80TO+EjE+i+^`1eNI~3u~o}Hf@HUf68$4{g_?WiCZJqd^+B)$Tn!c$G<86=UFJG_ezg}mmf4fel zKYqPQ{Qc`S9mijzBV}Gyn9`NDkOCeyk2C4Zy%xAG2f90$;n)T+_8t+Pj zZ8Xv*PqH}PVCC`N&SSE^nk$SKqovv{lI;%i_d6L-Ee`v`9AcxQhr7`}Av2JLm&E=j zY0G?I+A_bo6<-PVs zyf8xIHn&XvdzF{JcTA%Cnk*))OHAsZFw3V>!C&a_x422p#Y1L&b$YkX@JcfxaoR0u zZ9?MPr`${t<~t1XPLu&l5vEotB_FUFO_pPe3~S& zFvR*;wq-MMf2L*w`#oBW>fLbz&zIaJ;(!0&|Gzf3sDOnPR;KLKG@CYqP`(oY#eZ!Yg}ye7LSNg>K0g+Wf3@a@xsq3$k+kUaN{g)wI#-yk zZq%llqF$QK*fi=aPm&vTmZ$lvIZXl9udPO%#fj)fodc^;r{y46jXM9Tj5@UwHR*C} zvC|p?=+f!pwoLN0AqdA|kTN)y_Dm@ndctDe#J=-o*}k&`2?euF$XC{yPc^RrvXtD< z?(+RKe@!-DGn38xw*56sHp{#G=MpdrJWh6ztYbhC5^@XR&J8y86O5H-Y6NZ>IvRsH zw7$x!a7)hDWlPSdODs7p=YmW%%M134VX#*|TZcrFzt?BvQl}~=r9`R|7`6b^m z>RXv$zAhPMzOFOM{HPfw&Yd50z!2Mwp#|Ove{;;&%p9}Osdh+H?#=XN*+R9@;w>yn z$tY7_6KR;zP$6OlhkCn80=(|I*b1lQYa5?qS&8sOx|OjSV81h5(b ze+p@x_Q~lah(8%%&%Ei}Z%xLV?AEQPB{{Icde3799XiZB(TvL3P2F!F#z~8QAGdp2 z2D_!x6VE>8;s75qS3lzfZne!*SYrcLWj$(DwRfh6U>WE6thco#d`Cyw7BCm0qI01F zv0$3ghn$c-Gccy=iL+)vBHoQw4kIJYw@hfhRYxKrpejHCe>B?y zlvcg%?G8qvd8UV^F}OgFLn(UeGN75A{wKnDSF7#n6G8UdHXhw2*2TTHY~Bfc#+RX4 zNIk!O3jB6pjD-&BO;}aKb(X+ViaP&VbU4SS%S78(?`M>@rcim(;7-c_S zztyzK?l)dswUL;x}BaZc!3Z^vv~J zjOA}O#!$MA(6}(uGuPr~r;mtC4xp88-n4674upZewlYoU8OBx)7zH+E5|boqLDo`q zChZhG$_Mz1YdF4I-BHH(%25WX_`S6nXuY*+kpZ07SZJx`4y4*zV5+SZe>;0G^#k9Q z^#k9R?6C6W>e6J7cK zt<@m(L)joSA=>T0d7)=vFeFl%f1xYQi#%-G$j&Zy)ez_hc{$@3|PS;?T(tlZA zxshL|+v2K<9JSqP(u%CvT33P4O%K`jcG-cBp7`y(rVeyoEj6lrwakIetECQfUaeq2 zTVn_JD$4Sb9UM!nw1Z>WMbl1U9%nemuo9Y=}1@&P)&dovd@It zJD{>tfy0~$f7csuLVqeXcd3}o>x^m2&UJjHTP|kOPESqQ@~0+g(kgD&nH`70VVwX* zvI)$Hcvw47k+C(ij1KPBNJv3)X%6rbO zpcIRn9d0hFaEi@bG%M$Fb5UhRD*}d|7qQb!v+0~xe_^V!pB-+$Ij%!j7o|+YNb|H7 zn_Y4vO+X@X35hUcmHi5TI7VPOcGiXf*w6f#v{5-{$JTpdYvQt`o$^d6r^HDflFpVi zh?l!Fi(3?!3mhn+NHw8h4(vN5d)6dv-}0Ac#fFC$w)UiA!CzE`C5*n zEg72Zf3!ECWHt`caM*9RdqsN^-pQq1GjNOwLl;aT=!wH#8jLXRCMV^Sk4kEBkG3^r)ORHT3i!^OZJVf95&M8u;!DB`>r6mhULC?XrtnHCfgCZh#K zWMXw3d7zKju26Nsb?_n?Vo<<1Fa{K2aG%I)f3LLA+FC|N+`%D>JILxWl@E0(bqH+b z)iiB_8UQOOIZfV@U)g>cq9Be{ABm*@T*8JhW`F<*9rgaI^j2Top1|HS2flk@i#5rb*{tqeau3Y*rqnoXo;wz*IS zPJh*`hIMKp*RBQvV+KRdnE3ITE`DUk4rP#UmdPMFpcl@CA!;n;+C_`+3MRuE3NOkR zwJeFi#i%8+=$A)jiXDaN(Y1_LFO`4MYE0IsR-;vgvQf8J*sJ!IjjSLLo%>o#-be~U zGbsqoih|J7rGn6p+`?BAgg!9@p>rk(t=PSSD3t9pvj}|4rJ@&7DoTTwqR|5;8WkC? zt8f2>Aq_oX(omzQI;)%Pw6b2+0F^tZ9EfKD9pRhcUW|Tg7yuPQ{*77z-MVcDn*xz#hL1SWqYU zVm~}}|Mm3C&|}E2C$ON$v2jo0Wp6$k@)Z8-dP?-w(-4~1H2mV6ewTUFDabdR$MS6` z&h%DiP^bBRYcsHIKyg;hW^oNwJ$k5ZrxO&Y3#u)3Q41iBv~@T2@CrsWNTFjpn)!Ru$34TXV~r z%Z;L(|MhEaOar6JVqasSOWW+)vKv({X(TT+BDJUMO~)J0;ghb^{nV<|{l2W!{nNFS zx>wmNSiFX($lCOZCj);;b9O8$U?O8duPSJqiDV0zPC!-ED-0=#2d{s2jSBU-r%=ZG0Byws%`V{`UfS-Uf_oO6S*8J2&sL9ZTF+E%D*QrfTP( zm#XS~UZ$$^d8w+-=NqZ&l(c6$&(l!q>{R6zm3OMjEma%Uv!s9Ks7Ty{O+QOgQy*O_ z(bTJsqS|WbbrSDm>@-7#lyZ=r$_#ZKt?ZX^Ln;wwBWRy)Hq5Kg7XNKt6&7!b?S}%xp(0Q-l@OV-IeQiN#TK0Z|()&h#1O1 zzfm)Bqn;vFf-`@cFfbxfz@W27q0z9l9#{U05mEEo&>JN4IPZ;s%XWb#-7U60Y~K33 zd8_B5RW*ASs7^G|bzy16dI&O@h|I(vZFH};SHik>Y$4F^w!*acx)T3x-&bZoU50-H z8~#PIa(C@?*B$wn&di&7XWrPm@DfQjj#ywSn9Pc>m0N#d3!x@KyaPBQgu|S}snell z#)3)101#3_ebon@*U?0*{JGdqRKpwP0Fb-o^0>RK%bA}NWr1#I2zPFyQDG>UE9~Co zZFGT#2o=`_fZ$3Bnr&`rP<^L3oEcC64xc5j#U_g|F!yJSbITh~Z)Ph`0qG|e*wfQ1 z1f6#%PLz+|b>KdK<3MgsbrWC{V?}c)_Lyah!1YcpSvpa|y*)_&R)v4;NGYrSn}k@n=rtW!})6%X5^_DY_sHr$k)A%~WLYP(ZEBVNA|q z;p#DkuZ`(bb~NTd8R#c4!ea`+Hs@Px5!Pf>0N{I!$apS)&}N}Z7YToXu?wv!ZboaC z!MYS+AViC(q@@U}9MmQF&!{xd_rS+>gWa}U8He1W^Kkgbn zw5{QHjn{CkZWYg6_twUFw``>TK)YQzA5+|h@}P;-ANU32Y2CiASKR2`)IT#pVZdTW z+IQdS3dECt?7DM5f@3XE&U|590d&D|eZ;7fMe*4r%n1)r07}$Nhtes#A1zGg#lmKP zXh&B9Pwo3GET*>NmXzet2d0Ti%?fL5?$c-_+2T=|d)BN{ zJ_Bf(Hj;{=Rz@k@!s1_vr@U=`xzalP=1rgZGr`n0WjwHjDMo$&#CFJ0Tr%P}AicC9 zE?vZbtW2WWnPt4=_4{b%YOTyvZN)@0-|RW+UY$nxa|C}m@Cor|ib^q<7m6P^W~k&6 zx>mOXI_^NRA{SO0Lz#-9Ogia2=Br|1^vBv=;{<-GKO5Q)GqAZ#u7>b;+|_x>=idHYa>% z>1)5#SAAOsB=oHypc(S22L_v>-Pjr>O#ncS>Uqpbt7@iaue0Ek0j!GE*1BRy+a{R=BN~b6kGWfa z%!S>i+%nvxlfw~%8}Pt*AV~>LrB*b>(F_A|T)4WGbdt`qBoTwWf zK?A?oP)X!AQ_3*(9#tN&k_yVv7}&Si;>h5XN6JFH5U8!R(hw*m}*S*ci+}6v^=D@Hy+J#n-r31X%FvLUC76T z&Va8OL6aZ+GmmjN&*|&h60HJ~oi|0Yh4aNrKNHskV~mM4MxHdAPecC+{+!2uHyp5u zrsqu6It%|Y38QQhiT7t4imTHXydFYh_(tM~lEy;;jjeiJ;3-tsh2GI^0b}=G*Yf_X zB|f-Y^Zx9jFAG5y;6`&oobB)hBxni=Eb*BaGCcwMx`eN(&Y-<5xUzkXKK(Fo2Ru zI2vv%mqf@eoQ7wzr(4H~-zps4l}P$q?TTE26cPNI%4znJG@0knfhnNTlI@Zit-$Sz zWHjvqi&SQpKL!C9e+|-LG6^R#H?vB8hGnTwy*rVYT>fbI5)sZnl=G0+;YH4zoha8K z%G-zGIYj7BoEF7Mm%q0di3xJY+Q1uPFdH}78Is&%+?mPNp2sdbo5)R~%vAE0GwI%#HVF&$+YrvAIqfPq?3ie&Jn`|6MO;^3Je1s zTkBW9*pkWue+F%k66L)E{0}uN1dpTQuFyzk9E0LGbU;l|$5gSFRV72cWY=|zKwYFc zhc-$!si$OzTxL>D$quay`O;6mytjpt!gpnU@Y|*YuX(aE zZ>F8B1^SUfvAL9fk2@(&eBX7^pA-qk<(+x`8vq*uf2vRFlek{!D3ubz|IZ5p$=E;+ zTzVm#qt^Q%%rYA$h$M>!FvrI#?rOp^PUs8Ggv#9qD(I{;k1tZ_bk>R49WGn3$@)U% zZ#3_#UW$}9TyewsAWWN~EGPA!Hx%#=6cZVl^gJTv*e=mvU>q4-4i&FuBq)X+Gl3;F zA`-2fe+t3Lz>oAARJ$3P@ls90gi)f|0 zbKk;A?0qL@?1YNT)r6F6 z$V$-hgm!9gRULsO{Zy^)py$@=2x#RPLu&XNOqm9a926;rrrw-$JpAx>1<%7UxgWBx ze-X6p=j`_{Nfi4j`<>0RSr`xf`NAT>$R*Nhe)BHS zrUXTuI1rmeh;pPb<~eK1PwRK0;32BuPK{`yGmHKi`r8XxE!22O zAUDwmo5n(l)r`Z>dLw9@M4zf1jHu08e;KAh6!Qofln^31(rOzmql4Ux`+cJXjDun% z%;q`&UJ!yIYdF#EoU{$n%P%nf#Q-rJjw1{6579IP?51xrLy+OZ+lE7+38aLX-EMXf zVFNKOlKW*4z`}3$#D2l}cPXjcgGHic_F}c#yQeVnPprfamB5wfCA0;M)sFBgf7~8L zuR}#bT4(;HS`a*asI~!si0>Wi0mr|&DfD>NT$8UhS6+ffs)i-17}Khlx!y-evlVNn zpiRzPEoc4A<*D62c>CdRhyxIuUIm8pZ!c$y!thN<2^H(Z$Cv60(Cwvsi25AZ5K}Sf zv@l~?MO&F-6(zjEF>GugL7CHmf1wEk{Nn|VDDi~p?Or&U82AQPhCK4qLanbm{1^3t z8GVs}*yQpG21;~{_%njx#&e^A3%+q=8e z9v@f0{zUB0KZ&Vk7poC0g?QpdXi zqz@@QP>B&FW|SCFBEb!+!47=iPtod{S|cN0zMcbL`feJ)X!tmIL!-@2D9XCxeZ`%W znA!nyqkIaH)*jrk(79fUfAny9N!WQl5m5q(?iRAP;@q*3qBZ7(*6HesXROH#b`!a5 zcKQ}{fu7124h*alqTZ}uzJ%E^4cVbam9fqVdKxT12G9y+@`)V>93R^pm^J?e#6l{r zCf2eSN{EBzQc@g&t^kb;e|U-3jP7*mBh(JJ z6VOu?j0B;%*`!I)UmHlyPeN+%Jg@G2PO<_gSF{>b0V1%NfOKCyMQPSACYW@ik!6yK zEGaDu@8>0%eDL)Y7L%{nbaWl>xdZM$6-Mho*fy@e< zSm0If98`xKH2kmI1A%cEp5ffL#5I6%srNl{>J+AgRNU3Jf7>#S8Wc=qA0NiNZX|&# zIQkNhu)V2YOAouknowc4I2c`27?7xN$&;^!Wzljk!M8!*l18|;a}lIgPtE1~bHFN6 z4Jhb+A(Y+-h}AeOX;u)HxdsHw)Lk|VST_8#4;!)=(g$Qg(bjK&ew-d8mD>KUoR{!Sh4z2 zBqu^BAjW!@M(1J5!iBIoSLd2@uP(>dpcn*1UHgWc0{!Zr$;cjtUj#uDB-+xx3r9jX zK@5b2)R-i>P)hh1XTc~0_zlwm3t%$n%qfi}0l!g5f5?gn!$JaV<20DD>C$YQD&#o) zI-18?<-ht9(pN+0;yj_QIh8c2c))T*Ysg%=96RdmpEMlr#IfGdc^bgjv+#r|;R#PK zv_XWhQ?37nnDIMff{=v1K2~2ti>$ZqJ(#;a@DqFyLLW?kH7EQl;@2o7W#y!Eo|L;} zl*2xle{}%~@>6A<=elHEv$V(=FA@~q7aVjwz_PmdaZzq+&Ig9sr#ySE27Bp$k?vo6 zv6tm6M!N0^-$B<1;VA3zYTjTRO@^>hy{M4zGVV>}$D4WH%P^qv2o76s#NEH7_;K!` z)D)(HE?=TB>&-+0RLXi&@%4gL$$Dp=go|Ebe+|4*8fN3(*vsap(j#rwyYNuvn)OaS zxWvQ3CNvwcUUM;?o5X31PnnoCYeVGAald zf04=LlI23?{;y4uDY|`FP6k;9V@)-8w4873q?TSDKkcZRP4nHD)JbM zQ>FrsafQS^6)5bW#DzY$aG@_MNZSu3`s@7?Lhxh>j{LL)XJKrznvh?gD|3G+hAd;b zQ3>{eW1TNyrzx-+*5XYoplb*54I2fD%n z<(^8SAMq6`4kDQ*l!ExnIQiyOe`{8;M9YVgp^oBvQmq`&XoSk5btrL1-#=@oTo0o> ztx)r_2*CIDE8~H%LZf$C?ZY;6M~jiL%GJLx;y*;MW&Fv4@tvsRL{v8C37=k{0hPEj{!%XSqh`ZQz_H~grYVF`qL^fLdd1D^Ge`>$Lcu9M) zH%ojC*ma1J`Wg!+WI%w3G>Vx2yKq30cgB9E2*3g1`+<(kU$Lvwz2WMPi|3uakq?CB zWZWUpAa%BPI*lrGG_9j$XT>n&IqxL+hI0{R+9YldBWtX!0uavRiV-v3Htygb#o9u7 z{!`~}RqD&wV02Xmd`YGke^!V6(wX15qdtm!aNIEy47ONi;#Y}9mboHDW0_+mR^jY& z%no#cX@>FY-<*YJ>Pwl0ktW|XW*Q)ian+@^d|zKXmL^#+6-#nON6R5^HD|c>w92=N zRFNL9zEc|7JC!agglTl~K(iegABuqV@zUS5dcue~DbG&VVYMhDrq=1JAO?@8))V! zMcOTpisHqb3~wS~EMo6mJFo-JR;+f_4Gfn}3;R{`G0w`Df6ek)JDI#!Yz8d1&vah1 zy_#LtgB#bet7pYGDz!1Or?e9wu7;TH8aWrvo8cy z=7PQrSR0n{e+-pHlf znfaB#i1L4SC)+SFbA*QAq0iegc)Z~2*$pgFVlzsVf8GrNC%8#__^!QXn!1lxXHpIr zexF<}>#z(wiZ(Gh0I_r_QO?9l<5RPcQLJsVw`bfXzL)xLU0V*jWc&$Woe7XF2hN_J zCwB&EM}0;*U8QD3bgG!tbxD*|T!j@!>o3t{@~?-X#GL>C?Op3{+eQ-q-oL`90tN-_ zF%LI=f5;#L$ChjN;-rn^%ZEb|&?F_Xkw}FPDTb^6{dRWt%_T+2&V2~(OB<6ExjQ>M zJCEPYd>ub|L-Dv`SVNX~=3Q`n*8s7MbLdk!w3QCANRpS@f(;K4dcP(WNa(M$HrqKz z&iIU}S-h*MHe=@0W5?m6xqGzYKhISSsvos@e-%1>B6sGjw`6YP4|}-K?MU7w#2#;0 zqr#ryyqQ0t+N#>u%yoWkLDC#c(dkF!E?{({-udC2lG9ue;Y3$?|Ee5-Sfl@YULWjv z-3%SQMueIE&`r8$0EYVrWH*r$o;m-BJMzUdS8+-eD*o|#N2r*UD1`Bz2OkLj>yO|S zfB)B2@D>WpGy1+3h0d%%wb9R8`aM(>}->`mg9G|UESE==F z(45waUK+ectGh1pdP)~ICU#+Cy32P#fY(6Y7+{%c8(3!60L!c`u#BU6mjug<8(^6; zce=-k14DD_gw^Z#8y#7rqi_&ebI}d$e|om^Rq1$bRlh@!nA#~l`#C~ zW7}`eE5X<|#-=AFVm%9722Gz4Y~clc^|&psR*y&3T%SI}jIb+Vpn>iO#u=o&@uJZP z8+ibP2K)qbK?$OD=tHXHGzZTs7oH+aQy)LuB<5zmW#p5<8(Vf86AEMyuWT zw(rvmgAb6W=AcffIY3!Bgby|yZu?3@Rrv4{qQnHq0?tV(lurbGc&z zT6bzZs6z)g+&_+mx*{9le`jz|y0H;mu6@|MX{u|tg07^do3`!PC_piPC*-YQW65n16Xgq;rG%*5U|A9<=tg7yv4t_F$U#^`zA;~1JA zeo$m)9Mr&du%<2}i_q0ACHYdHnlPCAi@FMV=V=>Oi=JfmhD|ABf6!kJQN!VK%Ob?4 zNm~nR&EI0hSFmyQOBTWLiU-fLXv~v;R<2j7W=E$n;_9v^v}-y%G;j{s88td6DN`Qc z$k$ zv}EXs)So7tWMcmSf4)L8HwS(=b?^DmJH-rYLB!F)S&fe+NWU2y zxCXz^f${(y)LHUni8rBO>bxo`#qJLBD5{IW(9|1KXhYBZ@VPqRtds3rch>8PnjOS( zlvZr8@>Zr{J~zoPO0358-+aO>nmcHgK%5x~2wgUpaGtR@f9+NOu$>FFmL^9MxA$D@ zY0}yMl?#fE>B@z=puLU<-W)lQf}F|m7On;s7Rw`9*LFEFR_@|qrqrrr4qOCpVdR-Q z-%7;KJ_=(i*FCQK6Y7Tk&}AmX$DB;bnw*i7psk}LKy$d1CZ}CbS=s@)>hZ9g6}b+) zIaTJA7tgzbe;iwvnM2lG>pKSle&UqLb8qUcxs6Od1>TwY?o;QF&b(_+_(x?MXMDx$ zKybcGq`jj*L^<{rB5?6Dnpi6$O0&8|zh<1P_0xH2XvwIqcoUiz#yAKf)CwHnKfQ>oRHdBstySSwno zv%^udf1>n;AEX=d*_}qyX_LFxus-(cpd!tcCDpMsWZQiOdo1QQFRUKRU$Vt_FQ;oY zGab9l`W3f&YtbB#Dnf0;AGL$Jv1stYI76)Ev z)0qm*q?YiSjo|liH>b_Hp!GvsHinzQa7`#@e@;k@6i1e12XpFij#iqQwS7MnV#8P3 zhG#&dLY#}NBG+%bdL$p@FuWpAX78qSVu%670x=PxF2i$NMtcrJKR_U|5JinyAqS@xKGD*u`&| zgWn<^7oDnNK9it}t#EaR-Ya+=<(bIoU)pmo=PfwhosPz~Y;d%Urz+WF32`d!1H)qx zIOYvzJN0l_Hku$gS@@oLzec}-fu1PCe^e$-jD80uji_CLj6M1bp3InLifJ1h*(nmk zdz8TWklgxbZ?6CtL64?4dCZI8xUORvoR4gj*U3Bq+UzRDl>^l`-UDv)?KN_oqiwlv zLR(xc`e?Yro1-XpuaqECPF5f66_g zG~Hf63Z{AS{^~XR&siST3x===+HW-p=y=FkH;O>{Kcg^RZC!x+g1LB0P(zi#TrI%1 zRs|NA19 zB2OA8m^qJJPXePxe336W(Rjuevi=5p3v=$L?+Ir8PX@^Zf$Jik31w29e^m6hxAmix zN7TrmznRtK$C9$WPYN}9*G2akq1e81UoLvo%BymeWF#@EV@|2Jocs4#zJO7fa!y@! z%Qkx0k^gHEPO2mpaUpmvf=$A%E4+9U;T%!%$G*eO-PA9u z1R7W4=T(iWV>!M$yM{*`EKgO>PwXCcac2LN;N|<0^#&OgFnR9{il+vooW`ir!V? zA0BJs0qsYO?wZ&rf8g-2a$OYNFEzgT`)}*#+=bJ4gNSl&$l7FbM|<#XOkNmFZv7Ml z*x}&}7^MVG3Kxm!2=bJuN=CA>{XEI0)l9teh`kbL$nPY|C5JsvYEh0}N+U*Z@$%ElXMKZFaKD{~KzCm-kC!n-53&&FSe~Qz|1@n611Z8MRcTE{CLHC;xbgCf2OLNDEu^{vl0|ISdb4e37@rg}UG3UF-z(Jj3aWDb z4;Ep*3+?%nQ(YX zBL3vU+8M|E-=L6oSu=>gX>vZ(X&OEok|_By;RpY5zo z4zgq#2>X~(_s(%3xkm_GM{)tblbY&NGTx;!ZL`fs-{8oCX<*s^7=Cml%@D zCHJ({L|u0EuDfyZswi0@rvzWaQ`$&A2V0< z%p(1Yf0KU7b}f>=R-|8weJaI0)d{;+V?}1AwCLT^{T^y%Q`JM zp_EDsPP5%&WxH+Nrq<~To-^0kyE8mdxCKN;>(45qRbmr=JW|la=N&Z#`?oGY%YRm9 zpBzpMe!atu!Jj}!hQq;8ba)`@Ha|lc=z%Uxe;<;ziP2+C>oWUHw3$Wr6Agip2ZLhM z)rPIh_vJuzs>mPj-^P^#mmf?#$cH6Z@d$i@{8(dzbQymxH!HW^R&l>ru~n7s5)6BIXx)1z?mcVXI}-PfWTn?a-*E*$`=rpy ze{rl-`>m*+!-1edfeHxTB$*dN5{A~RtLu&PA-RX2jiAXeo!%(j;JcOEpd+j=XhaoU zsZ>B1Z?`c}Nqf&fPS{u?x)^K>+cse9+V+dm{U`eq0^-n|QiW#{Z=n7fKxfvE&~f!T zy`4j&O?q4VlikNd=2Zeu>h3e~lh%VHqv~S;&sH2gE3~w_t>l7_iR=yxDN3 z$j+C-<=G6xY9ZKOj_+o0)DDY+6lvZ^S!rFfLR>5yn!6mssfuYuftLg!i+HAX#4}eB zPiFw7*4Ygs8C0lv)qd}TrbIe}^3X`3IlF?09>h8iPw3wU)7HkH^sdfewf+|=e+(9> z^}lxX_dBXL7&p4S{$HbhgIyaTckqRZb6zBO6{Y3Le45-Ap$G&R(S?a(qGVm&Efb?K z0}qszimBp8pmgO3lr9_f2^Ov8Ev8#a6U^F56RhTpzJ%LE36qcXf_Te*7#h>iN`W)5JLyc9DxL2PRGRt{7nF=2_l(}rfF-ri>> zS~XLvp`8=|$VjvSzk}` z3iUNi7eoNC6{}dPcU8_5RV3OG^CrWf&`hCx=>CjMT;r-Bu+)NxZ z5^2Rcg=*Tz&7ZJIvBx>XYgFnQ<5;SC^bAAfI>Y}%$cYVhPa{uHLUWdmf2yv%Kr=6M znRyxuYH`4%$s5i1U<(~Ne-FttI})l$VIxr3AZ!tgg-?;&7mc`UH<=5A%<$J^k@*+R zoK_{=fZ48dXe_#4IGZ9^7hXM+ynp z^u$zDh$XdhOhzkh)#}vHfmcKCLO7sUO$ut4EbyQj#li!mWl=)ve-ItgaZ~!~Ntv4H zTXNuX4aqhLn>A$NenYQ0Z}_6#O&=up?Opbjv{&OJOV9HPFRFHFm8sCKgEn;Ip~GjG>V znP!;&eh!p!uE<jU4gUe2XlkYjLrf$MokUSy(-SnQKvtBhqMm#pj#V{1aq$%|MVFeF z-|)+kb(wC@MoUX>7tUSwU+J*_V%vOMDf4aFFy9sq^Q~c$acAwUX+Q}pZtcd4-HOYs zHXQy}SYj>Kf6X{RP^q`nYv&q(RB!Nog!rHVt8=AnmSqF4Id3&sGL2)k-Lq`$p0x>r z9IVo0{ZAAEkZ|J-22hK)%Ejn-@ib~SR*G|3CveJsXC(0{0rR>VI|YET30F1%wnPcN zvUYMC3RWil(9Mk>m6hFY{Uzj#X4P3T3F|q#p@CJ|f9&W<_-PRqpPZ;ahp3vGAXjhu zLS~P$eiK=!Xkr#B(!R_ow=_zc&A6z_eX61`WgiZC%pPv3o;>Dty%d$`zCX{4&Or6I zK%>wP>> 0;\n\n for (var 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 if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\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\n if (m._strict) {\n isNowValid = 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 }\n else {\n return isNowValid;\n }\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 }\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\n function copyConfig(to, from) {\n var i, prop, val;\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 (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; 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 var updateInProgress = false;\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 obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\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 // 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 ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\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 var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\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(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\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 input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\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 '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), 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 (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\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, 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 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.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\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 var 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 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\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : 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\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\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 (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var 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(func.apply(this, arguments), token);\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), i, 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 = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : 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] = 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(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\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 var matchWord = /[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\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : 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(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\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 for (i = 0; i < token.length; 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 var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + 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 // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\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] = 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 function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\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 return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\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\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; 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 ? (isLeapYear(year) ? 29 : 28) : (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 // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\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 MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, 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(mom, '').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('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\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 var dayOfMonth;\n\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 dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\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 var defaultMonthsShortRegex = matchWord;\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 : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\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 : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\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 for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\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;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n var 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, 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, 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 // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\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 // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\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 = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays :\n this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone'];\n return (m === true) ? shiftWeekdays(weekdays, this._week.dow)\n : (m) ? weekdays[m.day()] : weekdays;\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, 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(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').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('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\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 var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\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 var defaultWeekdaysRegex = matchWord;\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 : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\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 : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\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 : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, 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 = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = 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 for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\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('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\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 '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\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 '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\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);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\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 var 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 var 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 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\n // MOMENTS\n\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 var getSetHour = makeGetSet('Hours', true);\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 var localeFamilies = {};\n var globalLocale;\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, j, next, locale, 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 (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\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 loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\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 }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\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('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('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 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\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, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\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 } 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 var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\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 // 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 [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\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, date, input = [], currentDate, expectedWeekday, 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 (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\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] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : 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 (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\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(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\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 var 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 // 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 = /^\\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 var basicIsoRegex = /^\\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\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var 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 // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var 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\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; 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 = isoTimes.length; 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 // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(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\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\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.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).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 var 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 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 var m = hm % 100, 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 if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\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 iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\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 // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\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 and will be removed in an upcoming major release. Please refer to ' +\n '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 // 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, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\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(string.indexOf(parsedInput) + parsedInput.length);\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 }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\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 = 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 (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\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(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\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\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\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 continue;\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 (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\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 config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\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 (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\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\n var 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 = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++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 = +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 +\n 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 +\n quarters * 3 +\n 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 // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\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\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n 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 = (isMoment(input) || isDate(input) ? input.valueOf() : 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() / 15) * 15;\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(this, createDuration(input - offset, 'm'), 1, false);\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 }\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\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n 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\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 var isoRegex = /^(-|\\+)?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)) {\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) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\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 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 = other.month() - base.month() +\n (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(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\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 var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\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\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\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 (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\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 this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\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,\n zoneDelta,\n 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': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\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, 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 var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\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).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\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 var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).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 (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).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 var MS_PER_MINUTE = 60 * MS_PER_SECOND;\n var MS_PER_HOUR = 60 * MS_PER_MINUTE;\n var 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;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var 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(this.year(), this.month() - this.month() % 3, 1);\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\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(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\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;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var 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 = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 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 += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 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 [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\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 // 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 addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\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(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\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(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 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 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 // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\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 ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\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 // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\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 = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 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 // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\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 // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\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\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\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 // MOMENTS\n\n var 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 proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\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.isoWeeksInYear = getISOWeeksInYear;\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('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\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\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 var 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 var 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\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\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 dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\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 var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, 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 (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\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 var months;\n var 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': return months;\n case 'quarter': return months / 3;\n case 'year': 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' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asQuarters = makeAs('Q');\n var asYears = makeAs('y');\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 var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var 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\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, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = 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 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 (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, 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 var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\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\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\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 var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\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('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\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, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n hooks.version = '2.24.0';\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","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n;(function(root) {\n'use strict';\n\n/**\n * Block-Level Grammar\n */\n\nvar block = {\n newline: /^\\n+/,\n code: /^( {4}[^\\n]+\\n*)+/,\n fences: /^ {0,3}(`{3,}|~{3,})([^`~\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?:\\n+|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6}) +([^\\n]*?)(?: +#+)? *(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3})(bull) [\\s\\S]+?(?:hr|def|\\n{2,}(?! )(?!\\1bull )\\n*|\\s*$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style)[\\\\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{2,}|$)' // (6)\n + '|<(?!script|pre|style)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *\\n? *]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n nptable: noop,\n table: noop,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}\\.)/;\nblock.item = /^( *)(bull) ?[^\\n]*(?:\\n(?!\\1bull ?)[^\\n]*)*/;\nblock.item = edit(block.item, 'gm')\n .replace(/bull/g, block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._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';\nblock._comment = //;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} +')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}|~{3,})[^`\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n nptable: /^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:.*[^>\\n ].*(?:\\n|$))*)\\n*|$)/,\n table: /^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n((?: *[^>\\n ].*(?:\\n|$))*)\\n*|$)/\n});\n\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._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+|$)/,\n fences: noop, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Block Lexer\n */\n\nfunction Lexer(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || marked.defaults;\n this.rules = block.normal;\n\n if (this.options.pedantic) {\n this.rules = block.pedantic;\n } else if (this.options.gfm) {\n this.rules = block.gfm;\n }\n}\n\n/**\n * Expose Block Rules\n */\n\nLexer.rules = block;\n\n/**\n * Static Lex Method\n */\n\nLexer.lex = function(src, options) {\n var lexer = new Lexer(options);\n return lexer.lex(src);\n};\n\n/**\n * Preprocessing\n */\n\nLexer.prototype.lex = function(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ')\n .replace(/\\u00a0/g, ' ')\n .replace(/\\u2424/g, '\\n');\n\n return this.token(src, true);\n};\n\n/**\n * Lexing\n */\n\nLexer.prototype.token = function(src, top) {\n src = src.replace(/^ +$/gm, '');\n var next,\n loose,\n cap,\n bull,\n b,\n item,\n listStart,\n listItems,\n t,\n space,\n i,\n tag,\n l,\n isordered,\n istask,\n ischecked;\n\n while (src) {\n // newline\n if (cap = this.rules.newline.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[0].length > 1) {\n this.tokens.push({\n type: 'space'\n });\n }\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n var lastToken = this.tokens[this.tokens.length - 1];\n src = src.substring(cap[0].length);\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && lastToken.type === 'paragraph') {\n lastToken.text += '\\n' + cap[0].trimRight();\n } else {\n cap = cap[0].replace(/^ {4}/gm, '');\n this.tokens.push({\n type: 'code',\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(cap, '\\n')\n : cap\n });\n }\n continue;\n }\n\n // fences\n if (cap = this.rules.fences.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'code',\n lang: cap[2] ? cap[2].trim() : cap[2],\n text: cap[3] || ''\n });\n continue;\n }\n\n // heading\n if (cap = this.rules.heading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[1].length,\n text: cap[2]\n });\n continue;\n }\n\n // table no leading pipe (gfm)\n if (cap = this.rules.nptable.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(item.cells[i], item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // hr\n if (cap = this.rules.hr.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'hr'\n });\n continue;\n }\n\n // blockquote\n if (cap = this.rules.blockquote.exec(src)) {\n src = src.substring(cap[0].length);\n\n this.tokens.push({\n type: 'blockquote_start'\n });\n\n cap = cap[0].replace(/^ *> ?/gm, '');\n\n // Pass `top` to keep the current\n // \"toplevel\" state. This is exactly\n // how markdown.pl works.\n this.token(cap, top);\n\n this.tokens.push({\n type: 'blockquote_end'\n });\n\n continue;\n }\n\n // list\n if (cap = this.rules.list.exec(src)) {\n src = src.substring(cap[0].length);\n bull = cap[2];\n isordered = bull.length > 1;\n\n listStart = {\n type: 'list_start',\n ordered: isordered,\n start: isordered ? +bull : '',\n loose: false\n };\n\n this.tokens.push(listStart);\n\n // Get each top-level item.\n cap = cap[0].match(this.rules.item);\n\n listItems = [];\n next = false;\n l = cap.length;\n i = 0;\n\n for (; i < l; i++) {\n item = cap[i];\n\n // Remove the list item's bullet\n // so it is seen as the next token.\n space = item.length;\n item = item.replace(/^ *([*+-]|\\d+\\.) */, '');\n\n // Outdent whatever the\n // list item contains. Hacky.\n if (~item.indexOf('\\n ')) {\n space -= item.length;\n item = !this.options.pedantic\n ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')\n : item.replace(/^ {1,4}/gm, '');\n }\n\n // Determine whether the next list item belongs here.\n // Backpedal if it does not belong in this list.\n if (i !== l - 1) {\n b = block.bullet.exec(cap[i + 1])[0];\n if (bull.length > 1 ? b.length === 1\n : (b.length > 1 || (this.options.smartLists && b !== bull))) {\n src = cap.slice(i + 1).join('\\n') + src;\n i = l - 1;\n }\n }\n\n // Determine whether item is loose or not.\n // Use: /(^|\\n)(?! )[^\\n]+\\n\\n(?!\\s*$)/\n // for discount behavior.\n loose = next || /\\n\\n(?!\\s*$)/.test(item);\n if (i !== l - 1) {\n next = item.charAt(item.length - 1) === '\\n';\n if (!loose) loose = next;\n }\n\n if (loose) {\n listStart.loose = true;\n }\n\n // Check for task list items\n istask = /^\\[[ xX]\\] /.test(item);\n ischecked = undefined;\n if (istask) {\n ischecked = item[1] !== ' ';\n item = item.replace(/^\\[[ xX]\\] +/, '');\n }\n\n t = {\n type: 'list_item_start',\n task: istask,\n checked: ischecked,\n loose: loose\n };\n\n listItems.push(t);\n this.tokens.push(t);\n\n // Recurse.\n this.token(item, false);\n\n this.tokens.push({\n type: 'list_item_end'\n });\n }\n\n if (listStart.loose) {\n l = listItems.length;\n i = 0;\n for (; i < l; i++) {\n listItems[i].loose = true;\n }\n }\n\n this.tokens.push({\n type: 'list_end'\n });\n\n continue;\n }\n\n // html\n if (cap = this.rules.html.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: this.options.sanitize\n ? 'paragraph'\n : 'html',\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0]\n });\n continue;\n }\n\n // def\n if (top && (cap = this.rules.def.exec(src))) {\n src = src.substring(cap[0].length);\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n if (!this.tokens.links[tag]) {\n this.tokens.links[tag] = {\n href: cap[2],\n title: cap[3]\n };\n }\n continue;\n }\n\n // table (gfm)\n if (cap = this.rules.table.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(\n item.cells[i].replace(/^ *\\| *| *\\| *$/g, ''),\n item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // lheading\n if (cap = this.rules.lheading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1]\n });\n continue;\n }\n\n // top-level paragraph\n if (top && (cap = this.rules.paragraph.exec(src))) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'paragraph',\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1]\n });\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n // Top-level should never reach here.\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'text',\n text: cap[0]\n });\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return this.tokens;\n};\n\n/**\n * Inline-Level Grammar\n */\n\nvar inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noop,\n tag: '^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 link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\n strong: /^__([^\\s_])__(?!_)|^\\*\\*([^\\s*])\\*\\*(?!\\*)|^__([^\\s][\\s\\S]*?[^\\s])__(?!_)|^\\*\\*([^\\s][\\s\\S]*?[^\\s])\\*\\*(?!\\*)/,\n em: /^_([^\\s_])_(?!_)|^\\*([^\\s*<\\[])\\*(?!\\*)|^_([^\\s<][\\s\\S]*?[^\\s_])_(?!_|[^\\spunctuation])|^_([^\\s_<][\\s\\S]*?[^\\s])_(?!_|[^\\spunctuation])|^\\*([^\\s<\"][\\s\\S]*?[^\\s\\*])\\*(?!\\*|[^\\spunctuation])|^\\*([^\\s*\"<\\[][\\s\\S]*?[^\\s])\\*(?!\\*)/,\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noop,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\?@\\\\[^_{|}~';\ninline.em = edit(inline.em).replace(/punctuation/g, inline._punctuation).getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._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])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', block._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[[^\\[\\]]*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\[<>]?|[^\\s<>\\\\])*>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n em: /^_(?=\\S)([\\s\\S]*?\\S)_(?!_)|^\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)/,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^~+(?=\\S)([\\s\\S]*?\\S)~+/,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\/i.test(cap[0])) {\n this.inLink = false;\n }\n if (!this.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = true;\n } else if (this.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = false;\n }\n\n src = src.substring(cap[0].length);\n out += this.options.sanitize\n ? this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0])\n : cap[0];\n continue;\n }\n\n // link\n if (cap = this.rules.link.exec(src)) {\n var lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n var linkLen = 4 + 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 src = src.substring(cap[0].length);\n this.inLink = true;\n href = cap[2];\n if (this.options.pedantic) {\n link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n } else {\n title = '';\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim().replace(/^<([\\s\\S]*)>$/, '$1');\n out += this.outputLink(cap, {\n href: InlineLexer.escapes(href),\n title: InlineLexer.escapes(title)\n });\n this.inLink = false;\n continue;\n }\n\n // reflink, nolink\n if ((cap = this.rules.reflink.exec(src))\n || (cap = this.rules.nolink.exec(src))) {\n src = src.substring(cap[0].length);\n link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = this.links[link.toLowerCase()];\n if (!link || !link.href) {\n out += cap[0].charAt(0);\n src = cap[0].substring(1) + src;\n continue;\n }\n this.inLink = true;\n out += this.outputLink(cap, link);\n this.inLink = false;\n continue;\n }\n\n // strong\n if (cap = this.rules.strong.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.strong(this.output(cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // em\n if (cap = this.rules.em.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.em(this.output(cap[6] || cap[5] || cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.codespan(escape(cap[2].trim(), true));\n continue;\n }\n\n // br\n if (cap = this.rules.br.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.br();\n continue;\n }\n\n // del (gfm)\n if (cap = this.rules.del.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.del(this.output(cap[1]));\n continue;\n }\n\n // autolink\n if (cap = this.rules.autolink.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[2] === '@') {\n text = escape(this.mangle(cap[1]));\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // url (gfm)\n if (!this.inLink && (cap = this.rules.url.exec(src))) {\n if (cap[2] === '@') {\n text = escape(cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n src = src.substring(cap[0].length);\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n src = src.substring(cap[0].length);\n if (this.inRawBlock) {\n out += this.renderer.text(this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0]);\n } else {\n out += this.renderer.text(escape(this.smartypants(cap[0])));\n }\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return out;\n};\n\nInlineLexer.escapes = function(text) {\n return text ? text.replace(InlineLexer.rules._escapes, '$1') : text;\n};\n\n/**\n * Compile Link\n */\n\nInlineLexer.prototype.outputLink = function(cap, link) {\n var href = link.href,\n title = link.title ? escape(link.title) : null;\n\n return cap[0].charAt(0) !== '!'\n ? this.renderer.link(href, title, this.output(cap[1]))\n : this.renderer.image(href, title, escape(cap[1]));\n};\n\n/**\n * Smartypants Transformations\n */\n\nInlineLexer.prototype.smartypants = function(text) {\n if (!this.options.smartypants) return text;\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n};\n\n/**\n * Mangle Links\n */\n\nInlineLexer.prototype.mangle = function(text) {\n if (!this.options.mangle) return text;\n var out = '',\n l = text.length,\n i = 0,\n ch;\n\n for (; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n};\n\n/**\n * Renderer\n */\n\nfunction Renderer(options) {\n this.options = options || marked.defaults;\n}\n\nRenderer.prototype.code = function(code, infostring, escaped) {\n var lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n var out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\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\nRenderer.prototype.blockquote = function(quote) {\n return '
\\n' + quote + '
\\n';\n};\n\nRenderer.prototype.html = function(html) {\n return html;\n};\n\nRenderer.prototype.heading = function(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return ''\n + text\n + '\\n';\n }\n // ignore IDs\n return '' + text + '\\n';\n};\n\nRenderer.prototype.hr = function() {\n return this.options.xhtml ? '
\\n' : '
\\n';\n};\n\nRenderer.prototype.list = function(body, ordered, start) {\n var type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n};\n\nRenderer.prototype.listitem = function(text) {\n return '
  • ' + text + '
  • \\n';\n};\n\nRenderer.prototype.checkbox = function(checked) {\n return ' ';\n};\n\nRenderer.prototype.paragraph = function(text) {\n return '

    ' + text + '

    \\n';\n};\n\nRenderer.prototype.table = function(header, body) {\n if (body) body = '' + body + '';\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n};\n\nRenderer.prototype.tablerow = function(content) {\n return '\\n' + content + '\\n';\n};\n\nRenderer.prototype.tablecell = function(content, flags) {\n var type = flags.header ? 'th' : 'td';\n var tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '\\n';\n};\n\n// span level renderer\nRenderer.prototype.strong = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.em = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.codespan = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.br = function() {\n return this.options.xhtml ? '
    ' : '
    ';\n};\n\nRenderer.prototype.del = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.link = function(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n var out = '';\n return out;\n};\n\nRenderer.prototype.image = function(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n var out = '\"'' : '>';\n return out;\n};\n\nRenderer.prototype.text = function(text) {\n return text;\n};\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\n\nfunction TextRenderer() {}\n\n// no need for block level renderers\n\nTextRenderer.prototype.strong =\nTextRenderer.prototype.em =\nTextRenderer.prototype.codespan =\nTextRenderer.prototype.del =\nTextRenderer.prototype.text = function(text) {\n return text;\n};\n\nTextRenderer.prototype.link =\nTextRenderer.prototype.image = function(href, title, text) {\n return '' + text;\n};\n\nTextRenderer.prototype.br = function() {\n return '';\n};\n\n/**\n * Parsing & Compiling\n */\n\nfunction Parser(options) {\n this.tokens = [];\n this.token = null;\n this.options = options || marked.defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.slugger = new Slugger();\n}\n\n/**\n * Static Parse Method\n */\n\nParser.parse = function(src, options) {\n var parser = new Parser(options);\n return parser.parse(src);\n};\n\n/**\n * Parse Loop\n */\n\nParser.prototype.parse = function(src) {\n this.inline = new InlineLexer(src.links, this.options);\n // use an InlineLexer with a TextRenderer to extract pure text\n this.inlineText = new InlineLexer(\n src.links,\n merge({}, this.options, { renderer: new TextRenderer() })\n );\n this.tokens = src.reverse();\n\n var out = '';\n while (this.next()) {\n out += this.tok();\n }\n\n return out;\n};\n\n/**\n * Next Token\n */\n\nParser.prototype.next = function() {\n this.token = this.tokens.pop();\n return this.token;\n};\n\n/**\n * Preview Next Token\n */\n\nParser.prototype.peek = function() {\n return this.tokens[this.tokens.length - 1] || 0;\n};\n\n/**\n * Parse Text Tokens\n */\n\nParser.prototype.parseText = function() {\n var body = this.token.text;\n\n while (this.peek().type === 'text') {\n body += '\\n' + this.next().text;\n }\n\n return this.inline.output(body);\n};\n\n/**\n * Parse Current Token\n */\n\nParser.prototype.tok = function() {\n switch (this.token.type) {\n case 'space': {\n return '';\n }\n case 'hr': {\n return this.renderer.hr();\n }\n case 'heading': {\n return this.renderer.heading(\n this.inline.output(this.token.text),\n this.token.depth,\n unescape(this.inlineText.output(this.token.text)),\n this.slugger);\n }\n case 'code': {\n return this.renderer.code(this.token.text,\n this.token.lang,\n this.token.escaped);\n }\n case 'table': {\n var header = '',\n body = '',\n i,\n row,\n cell,\n j;\n\n // header\n cell = '';\n for (i = 0; i < this.token.header.length; i++) {\n cell += this.renderer.tablecell(\n this.inline.output(this.token.header[i]),\n { header: true, align: this.token.align[i] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n for (i = 0; i < this.token.cells.length; i++) {\n row = this.token.cells[i];\n\n cell = '';\n for (j = 0; j < row.length; j++) {\n cell += this.renderer.tablecell(\n this.inline.output(row[j]),\n { header: false, align: this.token.align[j] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n return this.renderer.table(header, body);\n }\n case 'blockquote_start': {\n body = '';\n\n while (this.next().type !== 'blockquote_end') {\n body += this.tok();\n }\n\n return this.renderer.blockquote(body);\n }\n case 'list_start': {\n body = '';\n var ordered = this.token.ordered,\n start = this.token.start;\n\n while (this.next().type !== 'list_end') {\n body += this.tok();\n }\n\n return this.renderer.list(body, ordered, start);\n }\n case 'list_item_start': {\n body = '';\n var loose = this.token.loose;\n var checked = this.token.checked;\n var task = this.token.task;\n\n if (this.token.task) {\n body += this.renderer.checkbox(checked);\n }\n\n while (this.next().type !== 'list_item_end') {\n body += !loose && this.token.type === 'text'\n ? this.parseText()\n : this.tok();\n }\n return this.renderer.listitem(body, task, checked);\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n return this.renderer.html(this.token.text);\n }\n case 'paragraph': {\n return this.renderer.paragraph(this.inline.output(this.token.text));\n }\n case 'text': {\n return this.renderer.paragraph(this.parseText());\n }\n default: {\n var errMsg = 'Token with \"' + this.token.type + '\" type was not found.';\n if (this.options.silent) {\n console.log(errMsg);\n } else {\n throw new Error(errMsg);\n }\n }\n }\n};\n\n/**\n * Slugger generates header id\n */\n\nfunction Slugger() {\n this.seen = {};\n}\n\n/**\n * Convert string to unique id\n */\n\nSlugger.prototype.slug = function(value) {\n var slug = value\n .toLowerCase()\n .trim()\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n\n if (this.seen.hasOwnProperty(slug)) {\n var originalSlug = slug;\n do {\n this.seen[originalSlug]++;\n slug = originalSlug + '-' + this.seen[originalSlug];\n } while (this.seen.hasOwnProperty(slug));\n }\n this.seen[slug] = 0;\n\n return slug;\n};\n\n/**\n * Helpers\n */\n\nfunction escape(html, encode) {\n if (encode) {\n if (escape.escapeTest.test(html)) {\n return html.replace(escape.escapeReplace, function(ch) { return escape.replacements[ch]; });\n }\n } else {\n if (escape.escapeTestNoEncode.test(html)) {\n return html.replace(escape.escapeReplaceNoEncode, function(ch) { return escape.replacements[ch]; });\n }\n }\n\n return html;\n}\n\nescape.escapeTest = /[&<>\"']/;\nescape.escapeReplace = /[&<>\"']/g;\nescape.replacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n\nescape.escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nescape.escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(/&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig, function(_, n) {\n n = n.toLowerCase();\n if (n === 'colon') 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}\n\nfunction edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n return {\n replace: function(name, val) {\n val = val.source || val;\n val = val.replace(/(^|[^\\[])\\^/g, '$1');\n regex = regex.replace(name, val);\n return this;\n },\n getRegex: function() {\n return new RegExp(regex, opt);\n }\n };\n}\n\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n try {\n var prot = decodeURIComponent(unescape(href))\n .replace(/[^\\w:]/g, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (/^[^:]+:\\/*[^/]*$/.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n\n if (href.slice(0, 2) === '//') {\n return base.replace(/:[\\s\\S]*/, ':') + href;\n } else if (href.charAt(0) === '/') {\n return base.replace(/(:\\/*[^/]*)[\\s\\S]*/, '$1') + href;\n } else {\n return base + href;\n }\n}\nvar baseUrls = {};\nvar originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n\nfunction noop() {}\nnoop.exec = noop;\n\nfunction merge(obj) {\n var i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n var row = tableRow.replace(/\\|/g, function(match, offset, str) {\n var escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/),\n i = 0;\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) 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// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim(str, c, invert) {\n if (str.length === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n var suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < str.length) {\n var currChar = str.charAt(str.length - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, str.length - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n var level = 0;\n for (var i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n}\n\n/**\n * Marked\n */\n\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (callback || typeof opt === 'function') {\n if (!callback) {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n var highlight = opt.highlight,\n tokens,\n pending,\n i = 0;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n pending = tokens.length;\n\n var done = function(err) {\n if (err) {\n opt.highlight = highlight;\n return callback(err);\n }\n\n var out;\n\n try {\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!pending) return done();\n\n for (; i < tokens.length; i++) {\n (function(token) {\n if (token.type !== 'code') {\n return --pending || done();\n }\n return highlight(token.text, token.lang, function(err, code) {\n if (err) return done(err);\n if (code == null || code === token.text) {\n return --pending || done();\n }\n token.text = code;\n token.escaped = true;\n --pending || done();\n });\n })(tokens[i]);\n }\n\n return;\n }\n try {\n if (opt) opt = merge({}, marked.defaults, opt);\n checkSanitizeDeprecation(opt);\n return Parser.parse(Lexer.lex(src, opt), opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if ((opt || marked.defaults).silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n return marked;\n};\n\nmarked.getDefaults = function() {\n return {\n baseUrl: null,\n breaks: false,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: new Renderer(),\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n xhtml: false\n };\n};\n\nmarked.defaults = marked.getDefaults();\n\n/**\n * Expose\n */\n\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\n\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\n\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\n\nmarked.InlineLexer = InlineLexer;\nmarked.inlineLexer = InlineLexer.output;\n\nmarked.Slugger = Slugger;\n\nmarked.parse = marked;\n\nif (typeof module !== 'undefined' && typeof exports === 'object') {\n module.exports = marked;\n} else if (typeof define === 'function' && define.amd) {\n define(function() { return marked; });\n} else {\n root.marked = marked;\n}\n})(this || (typeof window !== 'undefined' ? window : global));\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","// Generated by purs bundle 0.13.6\nvar PS = {};\n(function(exports) {\n /* global XMLHttpRequest */\n /* global process */\n \"use strict\";\n\n exports._ajax = function () {\n var platformSpecific = { };\n if (typeof module !== \"undefined\" && module.require && !(typeof process !== \"undefined\" && process.versions[\"electron\"])) {\n // We are on node.js\n platformSpecific.newXHR = function () {\n var XHR = module.require(\"xhr2\");\n return new XHR();\n };\n\n platformSpecific.fixupUrl = function (url, xhr) {\n if (xhr.nodejsBaseUrl === null) {\n var urllib = module.require(\"url\");\n var u = urllib.parse(url);\n u.protocol = u.protocol || \"http:\";\n u.hostname = u.hostname || \"localhost\";\n return urllib.format(u);\n } else {\n return url || \"/\";\n }\n };\n\n platformSpecific.getResponse = function (xhr) {\n return xhr.response;\n };\n } else {\n // We are in the browser\n platformSpecific.newXHR = function () {\n return new XMLHttpRequest();\n };\n\n platformSpecific.fixupUrl = function (url) {\n return url || \"/\";\n };\n\n platformSpecific.getResponse = function (xhr) {\n return xhr.response;\n };\n }\n\n return function (mkHeader, options) {\n return function (errback, callback) {\n var xhr = platformSpecific.newXHR();\n var fixedUrl = platformSpecific.fixupUrl(options.url, xhr);\n xhr.open(options.method || \"GET\", fixedUrl, true, options.username, options.password);\n if (options.headers) {\n try {\n 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 (msg) {\n return function () {\n errback(new Error(msg + \": \" + options.method + \" \" + options.url));\n };\n };\n xhr.onerror = onerror(\"AJAX request failed\");\n xhr.ontimeout = onerror(\"AJAX request timed out\");\n xhr.onload = function () {\n callback({\n status: xhr.status,\n statusText: xhr.statusText,\n headers: xhr.getAllResponseHeaders().split(\"\\r\\n\")\n .filter(function (header) {\n return header.length > 0;\n })\n .map(function (header) {\n var i = header.indexOf(\":\");\n return mkHeader(header.substring(0, i))(header.substring(i + 2));\n }),\n body: platformSpecific.getResponse(xhr)\n });\n };\n xhr.responseType = options.responseType;\n xhr.withCredentials = options.withCredentials;\n xhr.send(options.content);\n\n return function (error, cancelErrback, cancelCallback) {\n try {\n xhr.abort();\n } catch (e) {\n return cancelErrback(e);\n }\n return cancelCallback();\n };\n };\n };\n }();\n})(PS[\"Affjax\"] = PS[\"Affjax\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.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})(PS[\"Control.Apply\"] = PS[\"Control.Apply\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Semigroupoid\"] = $PS[\"Control.Semigroupoid\"] || {};\n var exports = $PS[\"Control.Semigroupoid\"];\n var Semigroupoid = function (compose) {\n this.compose = compose;\n };\n var semigroupoidFn = new Semigroupoid(function (f) {\n return function (g) {\n return function (x) {\n return f(g(x));\n };\n };\n });\n var compose = function (dict) {\n return dict.compose;\n };\n exports[\"compose\"] = compose;\n exports[\"semigroupoidFn\"] = semigroupoidFn;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Category\"] = $PS[\"Control.Category\"] || {};\n var exports = $PS[\"Control.Category\"];\n var Control_Semigroupoid = $PS[\"Control.Semigroupoid\"]; \n var Category = function (Semigroupoid0, identity) {\n this.Semigroupoid0 = Semigroupoid0;\n this.identity = identity;\n };\n var identity = function (dict) {\n return dict.identity;\n };\n var categoryFn = new Category(function () {\n return Control_Semigroupoid.semigroupoidFn;\n }, function (x) {\n return x;\n });\n exports[\"identity\"] = identity;\n exports[\"categoryFn\"] = categoryFn;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Function\"] = $PS[\"Data.Function\"] || {};\n var exports = $PS[\"Data.Function\"]; \n var on = function (f) {\n return function (g) {\n return function (x) {\n return function (y) {\n return f(g(x))(g(y));\n };\n };\n };\n };\n var flip = function (f) {\n return function (b) {\n return function (a) {\n return f(a)(b);\n };\n };\n };\n var $$const = function (a) {\n return function (v) {\n return a;\n };\n };\n exports[\"flip\"] = flip;\n exports[\"const\"] = $$const;\n exports[\"on\"] = on;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.arrayMap = function (f) {\n return function (arr) {\n var l = arr.length;\n var result = new Array(l);\n for (var i = 0; i < l; i++) {\n result[i] = f(arr[i]);\n }\n return result;\n };\n };\n})(PS[\"Data.Functor\"] = PS[\"Data.Functor\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.unit = {};\n})(PS[\"Data.Unit\"] = PS[\"Data.Unit\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Unit\"] = $PS[\"Data.Unit\"] || {};\n var exports = $PS[\"Data.Unit\"];\n var $foreign = $PS[\"Data.Unit\"];\n exports[\"unit\"] = $foreign.unit;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Functor\"] = $PS[\"Data.Functor\"] || {};\n var exports = $PS[\"Data.Functor\"];\n var $foreign = $PS[\"Data.Functor\"];\n var Control_Semigroupoid = $PS[\"Control.Semigroupoid\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var Functor = function (map) {\n this.map = map;\n };\n var map = function (dict) {\n return dict.map;\n };\n var mapFlipped = function (dictFunctor) {\n return function (fa) {\n return function (f) {\n return map(dictFunctor)(f)(fa);\n };\n };\n };\n var $$void = function (dictFunctor) {\n return map(dictFunctor)(Data_Function[\"const\"](Data_Unit.unit));\n };\n var voidLeft = function (dictFunctor) {\n return function (f) {\n return function (x) {\n return map(dictFunctor)(Data_Function[\"const\"](x))(f);\n };\n };\n };\n var functorFn = new Functor(Control_Semigroupoid.compose(Control_Semigroupoid.semigroupoidFn));\n var functorArray = new Functor($foreign.arrayMap);\n exports[\"Functor\"] = Functor;\n exports[\"map\"] = map;\n exports[\"mapFlipped\"] = mapFlipped;\n exports[\"void\"] = $$void;\n exports[\"voidLeft\"] = voidLeft;\n exports[\"functorFn\"] = functorFn;\n exports[\"functorArray\"] = functorArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Apply\"] = $PS[\"Control.Apply\"] || {};\n var exports = $PS[\"Control.Apply\"];\n var $foreign = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var Apply = function (Functor0, apply) {\n this.Functor0 = Functor0;\n this.apply = apply;\n }; \n var applyArray = new Apply(function () {\n return Data_Functor.functorArray;\n }, $foreign.arrayApply);\n var apply = function (dict) {\n return dict.apply;\n };\n var applySecond = function (dictApply) {\n return function (a) {\n return function (b) {\n return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(Data_Function[\"const\"](Control_Category.identity(Control_Category.categoryFn)))(a))(b);\n };\n };\n };\n var lift2 = function (dictApply) {\n return function (f) {\n return function (a) {\n return function (b) {\n return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(f)(a))(b);\n };\n };\n };\n };\n exports[\"Apply\"] = Apply;\n exports[\"apply\"] = apply;\n exports[\"applySecond\"] = applySecond;\n exports[\"lift2\"] = lift2;\n exports[\"applyArray\"] = applyArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Applicative\"] = $PS[\"Control.Applicative\"] || {};\n var exports = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var Applicative = function (Apply0, pure) {\n this.Apply0 = Apply0;\n this.pure = pure;\n };\n var pure = function (dict) {\n return dict.pure;\n };\n var unless = function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (!v) {\n return v1;\n };\n if (v) {\n return pure(dictApplicative)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Applicative (line 62, column 1 - line 62, column 65): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n };\n var when = function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (v) {\n return v1;\n };\n if (!v) {\n return pure(dictApplicative)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Applicative (line 57, column 1 - line 57, column 63): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n };\n var liftA1 = function (dictApplicative) {\n return function (f) {\n return function (a) {\n return Control_Apply.apply(dictApplicative.Apply0())(pure(dictApplicative)(f))(a);\n };\n };\n };\n exports[\"Applicative\"] = Applicative;\n exports[\"pure\"] = pure;\n exports[\"liftA1\"] = liftA1;\n exports[\"unless\"] = unless;\n exports[\"when\"] = when;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.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})(PS[\"Control.Bind\"] = PS[\"Control.Bind\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Bind\"] = $PS[\"Control.Bind\"] || {};\n var exports = $PS[\"Control.Bind\"];\n var $foreign = $PS[\"Control.Bind\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Function = $PS[\"Data.Function\"]; \n var Discard = function (discard) {\n this.discard = discard;\n };\n var Bind = function (Apply0, bind) {\n this.Apply0 = Apply0;\n this.bind = bind;\n };\n var discard = function (dict) {\n return dict.discard;\n }; \n var bindArray = new Bind(function () {\n return Control_Apply.applyArray;\n }, $foreign.arrayBind);\n var bind = function (dict) {\n return dict.bind;\n };\n var bindFlipped = function (dictBind) {\n return Data_Function.flip(bind(dictBind));\n };\n var composeKleisliFlipped = function (dictBind) {\n return function (f) {\n return function (g) {\n return function (a) {\n return bindFlipped(dictBind)(f)(g(a));\n };\n };\n };\n };\n var composeKleisli = function (dictBind) {\n return function (f) {\n return function (g) {\n return function (a) {\n return bind(dictBind)(f(a))(g);\n };\n };\n };\n };\n var discardUnit = new Discard(function (dictBind) {\n return bind(dictBind);\n });\n var join = function (dictBind) {\n return function (m) {\n return bind(dictBind)(m)(Control_Category.identity(Control_Category.categoryFn));\n };\n };\n exports[\"Bind\"] = Bind;\n exports[\"bind\"] = bind;\n exports[\"bindFlipped\"] = bindFlipped;\n exports[\"discard\"] = discard;\n exports[\"join\"] = join;\n exports[\"composeKleisli\"] = composeKleisli;\n exports[\"composeKleisliFlipped\"] = composeKleisliFlipped;\n exports[\"bindArray\"] = bindArray;\n exports[\"discardUnit\"] = discardUnit;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n var refEq = function (r1) {\n return function (r2) {\n return r1 === r2;\n };\n };\n\n exports.eqBooleanImpl = refEq;\n exports.eqIntImpl = refEq; \n exports.eqCharImpl = refEq;\n exports.eqStringImpl = refEq;\n})(PS[\"Data.Eq\"] = PS[\"Data.Eq\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Eq\"] = $PS[\"Data.Eq\"] || {};\n var exports = $PS[\"Data.Eq\"];\n var $foreign = $PS[\"Data.Eq\"];\n var Eq = function (eq) {\n this.eq = eq;\n }; \n var eqUnit = new Eq(function (v) {\n return function (v1) {\n return true;\n };\n });\n var eqString = new Eq($foreign.eqStringImpl);\n var eqInt = new Eq($foreign.eqIntImpl);\n var eqChar = new Eq($foreign.eqCharImpl);\n var eqBoolean = new Eq($foreign.eqBooleanImpl);\n var eq = function (dict) {\n return dict.eq;\n };\n exports[\"Eq\"] = Eq;\n exports[\"eq\"] = eq;\n exports[\"eqBoolean\"] = eqBoolean;\n exports[\"eqInt\"] = eqInt;\n exports[\"eqChar\"] = eqChar;\n exports[\"eqString\"] = eqString;\n exports[\"eqUnit\"] = eqUnit;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Maybe\"] = $PS[\"Data.Maybe\"] || {};\n var exports = $PS[\"Data.Maybe\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var Nothing = (function () {\n function Nothing() {\n\n };\n Nothing.value = new Nothing();\n return Nothing;\n })();\n var Just = (function () {\n function Just(value0) {\n this.value0 = value0;\n };\n Just.create = function (value0) {\n return new Just(value0);\n };\n return Just;\n })();\n var maybe = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Nothing) {\n return v;\n };\n if (v2 instanceof Just) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 217, column 1 - line 217, column 51): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n };\n var isNothing = maybe(true)(Data_Function[\"const\"](false));\n var isJust = maybe(false)(Data_Function[\"const\"](true));\n var functorMaybe = new Data_Functor.Functor(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 var fromMaybe = function (a) {\n return maybe(a)(Control_Category.identity(Control_Category.categoryFn));\n };\n var fromJust = function (dictPartial) {\n return function (v) {\n if (v instanceof Just) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 268, column 1 - line 268, column 46): \" + [ v.constructor.name ]);\n };\n }; \n var eqMaybe = function (dictEq) {\n return new Data_Eq.Eq(function (x) {\n return function (y) {\n if (x instanceof Nothing && y instanceof Nothing) {\n return true;\n };\n if (x instanceof Just && y instanceof Just) {\n return Data_Eq.eq(dictEq)(x.value0)(y.value0);\n };\n return false;\n };\n });\n };\n var applyMaybe = new Control_Apply.Apply(function () {\n return functorMaybe;\n }, function (v) {\n return function (v1) {\n if (v instanceof Just) {\n return Data_Functor.map(functorMaybe)(v.value0)(v1);\n };\n if (v instanceof Nothing) {\n return Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 67, column 1 - line 69, column 30): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n });\n var bindMaybe = new Control_Bind.Bind(function () {\n return applyMaybe;\n }, 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 var applicativeMaybe = new Control_Applicative.Applicative(function () {\n return applyMaybe;\n }, Just.create);\n exports[\"Nothing\"] = Nothing;\n exports[\"Just\"] = Just;\n exports[\"maybe\"] = maybe;\n exports[\"fromMaybe\"] = fromMaybe;\n exports[\"isJust\"] = isJust;\n exports[\"isNothing\"] = isNothing;\n exports[\"fromJust\"] = fromJust;\n exports[\"functorMaybe\"] = functorMaybe;\n exports[\"applyMaybe\"] = applyMaybe;\n exports[\"applicativeMaybe\"] = applicativeMaybe;\n exports[\"bindMaybe\"] = bindMaybe;\n exports[\"eqMaybe\"] = eqMaybe;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.MediaType.Common\"] = $PS[\"Data.MediaType.Common\"] || {};\n var exports = $PS[\"Data.MediaType.Common\"]; \n var applicationJSON = \"application/json\";\n var applicationFormURLEncoded = \"application/x-www-form-urlencoded\";\n exports[\"applicationFormURLEncoded\"] = applicationFormURLEncoded;\n exports[\"applicationJSON\"] = applicationJSON;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Affjax.RequestBody\"] = $PS[\"Affjax.RequestBody\"] || {};\n var exports = $PS[\"Affjax.RequestBody\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_MediaType_Common = $PS[\"Data.MediaType.Common\"]; \n var ArrayView = (function () {\n function ArrayView(value0) {\n this.value0 = value0;\n };\n ArrayView.create = function (value0) {\n return new ArrayView(value0);\n };\n return ArrayView;\n })();\n var Blob = (function () {\n function Blob(value0) {\n this.value0 = value0;\n };\n Blob.create = function (value0) {\n return new Blob(value0);\n };\n return Blob;\n })();\n var Document = (function () {\n function Document(value0) {\n this.value0 = value0;\n };\n Document.create = function (value0) {\n return new Document(value0);\n };\n return Document;\n })();\n var $$String = (function () {\n function $$String(value0) {\n this.value0 = value0;\n };\n $$String.create = function (value0) {\n return new $$String(value0);\n };\n return $$String;\n })();\n var FormData = (function () {\n function FormData(value0) {\n this.value0 = value0;\n };\n FormData.create = function (value0) {\n return new FormData(value0);\n };\n return FormData;\n })();\n var FormURLEncoded = (function () {\n function FormURLEncoded(value0) {\n this.value0 = value0;\n };\n FormURLEncoded.create = function (value0) {\n return new FormURLEncoded(value0);\n };\n return FormURLEncoded;\n })();\n var Json = (function () {\n function Json(value0) {\n this.value0 = value0;\n };\n Json.create = function (value0) {\n return new Json(value0);\n };\n return Json;\n })();\n var toMediaType = function (v) {\n if (v instanceof FormURLEncoded) {\n return new Data_Maybe.Just(Data_MediaType_Common.applicationFormURLEncoded);\n };\n if (v instanceof Json) {\n return new Data_Maybe.Just(Data_MediaType_Common.applicationJSON);\n };\n return Data_Maybe.Nothing.value;\n };\n var string = $$String.create;\n exports[\"ArrayView\"] = ArrayView;\n exports[\"Blob\"] = Blob;\n exports[\"Document\"] = Document;\n exports[\"String\"] = $$String;\n exports[\"FormData\"] = FormData;\n exports[\"FormURLEncoded\"] = FormURLEncoded;\n exports[\"Json\"] = Json;\n exports[\"string\"] = string;\n exports[\"toMediaType\"] = toMediaType;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.boolConj = function (b1) {\n return function (b2) {\n return b1 && b2;\n };\n };\n\n exports.boolDisj = function (b1) {\n return function (b2) {\n return b1 || b2;\n };\n };\n\n exports.boolNot = function (b) {\n return !b;\n };\n})(PS[\"Data.HeytingAlgebra\"] = PS[\"Data.HeytingAlgebra\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.HeytingAlgebra\"] = $PS[\"Data.HeytingAlgebra\"] || {};\n var exports = $PS[\"Data.HeytingAlgebra\"];\n var $foreign = $PS[\"Data.HeytingAlgebra\"];\n var HeytingAlgebra = function (conj, disj, ff, implies, not, tt) {\n this.conj = conj;\n this.disj = disj;\n this.ff = ff;\n this.implies = implies;\n this.not = not;\n this.tt = tt;\n };\n var tt = function (dict) {\n return dict.tt;\n };\n var not = function (dict) {\n return dict.not;\n };\n var implies = function (dict) {\n return dict.implies;\n };\n var ff = function (dict) {\n return dict.ff;\n };\n var disj = function (dict) {\n return dict.disj;\n };\n var heytingAlgebraBoolean = new HeytingAlgebra($foreign.boolConj, $foreign.boolDisj, false, function (a) {\n return function (b) {\n return disj(heytingAlgebraBoolean)(not(heytingAlgebraBoolean)(a))(b);\n };\n }, $foreign.boolNot, true);\n var conj = function (dict) {\n return dict.conj;\n };\n var heytingAlgebraFunction = function (dictHeytingAlgebra) {\n return new HeytingAlgebra(function (f) {\n return function (g) {\n return function (a) {\n return conj(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n }, function (f) {\n return function (g) {\n return function (a) {\n return disj(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n }, function (v) {\n return ff(dictHeytingAlgebra);\n }, function (f) {\n return function (g) {\n return function (a) {\n return implies(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n }, function (f) {\n return function (a) {\n return not(dictHeytingAlgebra)(f(a));\n };\n }, function (v) {\n return tt(dictHeytingAlgebra);\n });\n };\n exports[\"ff\"] = ff;\n exports[\"disj\"] = disj;\n exports[\"not\"] = not;\n exports[\"heytingAlgebraBoolean\"] = heytingAlgebraBoolean;\n exports[\"heytingAlgebraFunction\"] = heytingAlgebraFunction;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.concatString = function (s1) {\n return function (s2) {\n return s1 + s2;\n };\n };\n\n exports.concatArray = function (xs) {\n return function (ys) {\n if (xs.length === 0) return ys;\n if (ys.length === 0) return xs;\n return xs.concat(ys);\n };\n };\n})(PS[\"Data.Semigroup\"] = PS[\"Data.Semigroup\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Semigroup\"] = $PS[\"Data.Semigroup\"] || {};\n var exports = $PS[\"Data.Semigroup\"];\n var $foreign = $PS[\"Data.Semigroup\"];\n var Semigroup = function (append) {\n this.append = append;\n }; \n var semigroupString = new Semigroup($foreign.concatString);\n var semigroupArray = new Semigroup($foreign.concatArray);\n var append = function (dict) {\n return dict.append;\n };\n exports[\"Semigroup\"] = Semigroup;\n exports[\"append\"] = append;\n exports[\"semigroupString\"] = semigroupString;\n exports[\"semigroupArray\"] = semigroupArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Monoid\"] = $PS[\"Data.Monoid\"] || {};\n var exports = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Monoid = function (Semigroup0, mempty) {\n this.Semigroup0 = Semigroup0;\n this.mempty = mempty;\n }; \n var monoidString = new Monoid(function () {\n return Data_Semigroup.semigroupString;\n }, \"\"); \n var monoidArray = new Monoid(function () {\n return Data_Semigroup.semigroupArray;\n }, [ ]);\n var mempty = function (dict) {\n return dict.mempty;\n };\n var guard = function (dictMonoid) {\n return function (v) {\n return function (v1) {\n if (v) {\n return v1;\n };\n if (!v) {\n return mempty(dictMonoid);\n };\n throw new Error(\"Failed pattern match at Data.Monoid (line 73, column 1 - line 73, column 49): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n };\n exports[\"Monoid\"] = Monoid;\n exports[\"mempty\"] = mempty;\n exports[\"guard\"] = guard;\n exports[\"monoidString\"] = monoidString;\n exports[\"monoidArray\"] = monoidArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Monoid.Disj\"] = $PS[\"Data.Monoid.Disj\"] || {};\n var exports = $PS[\"Data.Monoid.Disj\"];\n var Data_HeytingAlgebra = $PS[\"Data.HeytingAlgebra\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"]; \n var Disj = function (x) {\n return x;\n };\n var semigroupDisj = function (dictHeytingAlgebra) {\n return new Data_Semigroup.Semigroup(function (v) {\n return function (v1) {\n return Data_HeytingAlgebra.disj(dictHeytingAlgebra)(v)(v1);\n };\n });\n };\n var monoidDisj = function (dictHeytingAlgebra) {\n return new Data_Monoid.Monoid(function () {\n return semigroupDisj(dictHeytingAlgebra);\n }, Data_HeytingAlgebra.ff(dictHeytingAlgebra));\n };\n exports[\"Disj\"] = Disj;\n exports[\"monoidDisj\"] = monoidDisj;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Newtype\"] = $PS[\"Data.Newtype\"] || {};\n var exports = $PS[\"Data.Newtype\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Monoid_Disj = $PS[\"Data.Monoid.Disj\"]; \n var Newtype = function (unwrap, wrap) {\n this.unwrap = unwrap;\n this.wrap = wrap;\n };\n var wrap = function (dict) {\n return dict.wrap;\n };\n var unwrap = function (dict) {\n return dict.unwrap;\n }; \n var newtypeDisj = new Newtype(function (v) {\n return v;\n }, Data_Monoid_Disj.Disj);\n var alaF = function (dictFunctor) {\n return function (dictFunctor1) {\n return function (dictNewtype) {\n return function (dictNewtype1) {\n return function (v) {\n return function (f) {\n var $96 = Data_Functor.map(dictFunctor1)(unwrap(dictNewtype1));\n var $97 = Data_Functor.map(dictFunctor)(wrap(dictNewtype));\n return function ($98) {\n return $96(f($97($98)));\n };\n };\n };\n };\n };\n };\n };\n exports[\"unwrap\"] = unwrap;\n exports[\"Newtype\"] = Newtype;\n exports[\"alaF\"] = alaF;\n exports[\"newtypeDisj\"] = newtypeDisj;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.MediaType\"] = $PS[\"Data.MediaType\"] || {};\n var exports = $PS[\"Data.MediaType\"];\n var Data_Newtype = $PS[\"Data.Newtype\"]; \n var MediaType = function (x) {\n return x;\n }; \n var newtypeMediaType = new Data_Newtype.Newtype(function (n) {\n return n;\n }, MediaType);\n exports[\"newtypeMediaType\"] = newtypeMediaType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Affjax.RequestHeader\"] = $PS[\"Affjax.RequestHeader\"] || {};\n var exports = $PS[\"Affjax.RequestHeader\"];\n var Data_MediaType = $PS[\"Data.MediaType\"];\n var Data_Newtype = $PS[\"Data.Newtype\"]; \n var Accept = (function () {\n function Accept(value0) {\n this.value0 = value0;\n };\n Accept.create = function (value0) {\n return new Accept(value0);\n };\n return Accept;\n })();\n var ContentType = (function () {\n function ContentType(value0) {\n this.value0 = value0;\n };\n ContentType.create = function (value0) {\n return new ContentType(value0);\n };\n return ContentType;\n })();\n var RequestHeader = (function () {\n function RequestHeader(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n RequestHeader.create = function (value0) {\n return function (value1) {\n return new RequestHeader(value0, value1);\n };\n };\n return RequestHeader;\n })();\n var value = function (v) {\n if (v instanceof Accept) {\n return Data_Newtype.unwrap(Data_MediaType.newtypeMediaType)(v.value0);\n };\n if (v instanceof ContentType) {\n return Data_Newtype.unwrap(Data_MediaType.newtypeMediaType)(v.value0);\n };\n if (v instanceof RequestHeader) {\n return v.value1;\n };\n throw new Error(\"Failed pattern match at Affjax.RequestHeader (line 26, column 1 - line 26, column 33): \" + [ v.constructor.name ]);\n }; \n var name = function (v) {\n if (v instanceof Accept) {\n return \"Accept\";\n };\n if (v instanceof ContentType) {\n return \"Content-Type\";\n };\n if (v instanceof RequestHeader) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Affjax.RequestHeader (line 21, column 1 - line 21, column 32): \" + [ v.constructor.name ]);\n };\n exports[\"Accept\"] = Accept;\n exports[\"ContentType\"] = ContentType;\n exports[\"RequestHeader\"] = RequestHeader;\n exports[\"name\"] = name;\n exports[\"value\"] = value;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Affjax.ResponseFormat\"] = $PS[\"Affjax.ResponseFormat\"] || {};\n var exports = $PS[\"Affjax.ResponseFormat\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_MediaType_Common = $PS[\"Data.MediaType.Common\"];\n var $$ArrayBuffer = (function () {\n function $$ArrayBuffer(value0) {\n this.value0 = value0;\n };\n $$ArrayBuffer.create = function (value0) {\n return new $$ArrayBuffer(value0);\n };\n return $$ArrayBuffer;\n })();\n var Blob = (function () {\n function Blob(value0) {\n this.value0 = value0;\n };\n Blob.create = function (value0) {\n return new Blob(value0);\n };\n return Blob;\n })();\n var Document = (function () {\n function Document(value0) {\n this.value0 = value0;\n };\n Document.create = function (value0) {\n return new Document(value0);\n };\n return Document;\n })();\n var Json = (function () {\n function Json(value0) {\n this.value0 = value0;\n };\n Json.create = function (value0) {\n return new Json(value0);\n };\n return Json;\n })();\n var $$String = (function () {\n function $$String(value0) {\n this.value0 = value0;\n };\n $$String.create = function (value0) {\n return new $$String(value0);\n };\n return $$String;\n })();\n var Ignore = (function () {\n function Ignore(value0) {\n this.value0 = value0;\n };\n Ignore.create = function (value0) {\n return new Ignore(value0);\n };\n return Ignore;\n })();\n var toResponseType = function (v) {\n if (v instanceof $$ArrayBuffer) {\n return \"arraybuffer\";\n };\n if (v instanceof Blob) {\n return \"blob\";\n };\n if (v instanceof Document) {\n return \"document\";\n };\n if (v instanceof Json) {\n return \"text\";\n };\n if (v instanceof $$String) {\n return \"text\";\n };\n if (v instanceof Ignore) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Affjax.ResponseFormat (line 46, column 3 - line 52, column 19): \" + [ v.constructor.name ]);\n };\n var toMediaType = function (v) {\n if (v instanceof Json) {\n return new Data_Maybe.Just(Data_MediaType_Common.applicationJSON);\n };\n return Data_Maybe.Nothing.value;\n };\n var string = new $$String(Control_Category.identity(Control_Category.categoryFn));\n var json = new Json(Control_Category.identity(Control_Category.categoryFn));\n var ignore = new Ignore(Control_Category.identity(Control_Category.categoryFn));\n exports[\"ArrayBuffer\"] = $$ArrayBuffer;\n exports[\"Blob\"] = Blob;\n exports[\"Document\"] = Document;\n exports[\"Json\"] = Json;\n exports[\"String\"] = $$String;\n exports[\"Ignore\"] = Ignore;\n exports[\"json\"] = json;\n exports[\"string\"] = string;\n exports[\"ignore\"] = ignore;\n exports[\"toResponseType\"] = toResponseType;\n exports[\"toMediaType\"] = toMediaType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Affjax.ResponseHeader\"] = $PS[\"Affjax.ResponseHeader\"] || {};\n var exports = $PS[\"Affjax.ResponseHeader\"]; \n var ResponseHeader = (function () {\n function ResponseHeader(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ResponseHeader.create = function (value0) {\n return function (value1) {\n return new ResponseHeader(value0, value1);\n };\n };\n return ResponseHeader;\n })();\n exports[\"ResponseHeader\"] = ResponseHeader;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Bifunctor\"] = $PS[\"Data.Bifunctor\"] || {};\n var exports = $PS[\"Data.Bifunctor\"];\n var Control_Category = $PS[\"Control.Category\"]; \n var Bifunctor = function (bimap) {\n this.bimap = bimap;\n };\n var bimap = function (dict) {\n return dict.bimap;\n };\n var rmap = function (dictBifunctor) {\n return bimap(dictBifunctor)(Control_Category.identity(Control_Category.categoryFn));\n };\n exports[\"bimap\"] = bimap;\n exports[\"Bifunctor\"] = Bifunctor;\n exports[\"rmap\"] = rmap;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.foldrArray = function (f) {\n return function (init) {\n return function (xs) {\n var acc = init;\n var len = xs.length;\n for (var i = len - 1; i >= 0; i--) {\n acc = f(xs[i])(acc);\n }\n return acc;\n };\n };\n };\n\n exports.foldlArray = function (f) {\n return function (init) {\n return function (xs) {\n var acc = init;\n var len = xs.length;\n for (var i = 0; i < len; i++) {\n acc = f(acc)(xs[i]);\n }\n return acc;\n };\n };\n };\n})(PS[\"Data.Foldable\"] = PS[\"Data.Foldable\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Foldable\"] = $PS[\"Data.Foldable\"] || {};\n var exports = $PS[\"Data.Foldable\"];\n var $foreign = $PS[\"Data.Foldable\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Monoid_Disj = $PS[\"Data.Monoid.Disj\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var Foldable = function (foldMap, foldl, foldr) {\n this.foldMap = foldMap;\n this.foldl = foldl;\n this.foldr = foldr;\n };\n var foldr = function (dict) {\n return dict.foldr;\n };\n var traverse_ = function (dictApplicative) {\n return function (dictFoldable) {\n return function (f) {\n return foldr(dictFoldable)((function () {\n var $197 = Control_Apply.applySecond(dictApplicative.Apply0());\n return function ($198) {\n return $197(f($198));\n };\n })())(Control_Applicative.pure(dictApplicative)(Data_Unit.unit));\n };\n };\n };\n var for_ = function (dictApplicative) {\n return function (dictFoldable) {\n return Data_Function.flip(traverse_(dictApplicative)(dictFoldable));\n };\n };\n var foldl = function (dict) {\n return dict.foldl;\n }; \n var foldableMaybe = new Foldable(function (dictMonoid) {\n return function (f) {\n return function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Monoid.mempty(dictMonoid);\n };\n if (v instanceof Data_Maybe.Just) {\n return f(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 129, column 1 - line 135, column 27): \" + [ f.constructor.name, v.constructor.name ]);\n };\n };\n }, function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return z;\n };\n if (v1 instanceof Data_Maybe.Just) {\n return v(z)(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 129, column 1 - line 135, column 27): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n }, function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return z;\n };\n if (v1 instanceof Data_Maybe.Just) {\n return v(v1.value0)(z);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 129, column 1 - line 135, column 27): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n });\n var foldMapDefaultR = function (dictFoldable) {\n return function (dictMonoid) {\n return function (f) {\n return foldr(dictFoldable)(function (x) {\n return function (acc) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(f(x))(acc);\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n };\n };\n var foldableArray = new Foldable(function (dictMonoid) {\n return foldMapDefaultR(foldableArray)(dictMonoid);\n }, $foreign.foldlArray, $foreign.foldrArray);\n var foldMap = function (dict) {\n return dict.foldMap;\n };\n var find = function (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 foldl(dictFoldable)(go)(Data_Maybe.Nothing.value);\n };\n };\n var any = function (dictFoldable) {\n return function (dictHeytingAlgebra) {\n return Data_Newtype.alaF(Data_Functor.functorFn)(Data_Functor.functorFn)(Data_Newtype.newtypeDisj)(Data_Newtype.newtypeDisj)(Data_Monoid_Disj.Disj)(foldMap(dictFoldable)(Data_Monoid_Disj.monoidDisj(dictHeytingAlgebra)));\n };\n };\n exports[\"Foldable\"] = Foldable;\n exports[\"foldr\"] = foldr;\n exports[\"foldl\"] = foldl;\n exports[\"foldMap\"] = foldMap;\n exports[\"traverse_\"] = traverse_;\n exports[\"for_\"] = for_;\n exports[\"any\"] = any;\n exports[\"find\"] = find;\n exports[\"foldableArray\"] = foldableArray;\n exports[\"foldableMaybe\"] = foldableMaybe;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Either\"] = $PS[\"Data.Either\"] || {};\n var exports = $PS[\"Data.Either\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"]; \n var Left = (function () {\n function Left(value0) {\n this.value0 = value0;\n };\n Left.create = function (value0) {\n return new Left(value0);\n };\n return Left;\n })();\n var Right = (function () {\n function Right(value0) {\n this.value0 = value0;\n };\n Right.create = function (value0) {\n return new Right(value0);\n };\n return Right;\n })();\n var note = function (a) {\n return Data_Maybe.maybe(new Left(a))(Right.create);\n };\n var functorEither = new Data_Functor.Functor(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 38, column 1 - line 38, column 52): \" + [ m.constructor.name ]);\n };\n });\n var foldableEither = new Data_Foldable.Foldable(function (dictMonoid) {\n return function (f) {\n return function (v) {\n if (v instanceof Left) {\n return Data_Monoid.mempty(dictMonoid);\n };\n if (v instanceof Right) {\n return f(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 187, column 1 - line 193, column 28): \" + [ f.constructor.name, v.constructor.name ]);\n };\n };\n }, function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Left) {\n return z;\n };\n if (v1 instanceof Right) {\n return v(z)(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 187, column 1 - line 193, column 28): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n }, function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Left) {\n return z;\n };\n if (v1 instanceof Right) {\n return v(v1.value0)(z);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 187, column 1 - line 193, column 28): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n });\n var either = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Left) {\n return v(v2.value0);\n };\n if (v2 instanceof Right) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 238, column 1 - line 238, column 64): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n };\n var hush = either(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n var bifunctorEither = new Data_Bifunctor.Bifunctor(function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Left) {\n return new Left(v(v2.value0));\n };\n if (v2 instanceof Right) {\n return new Right(v1(v2.value0));\n };\n throw new Error(\"Failed pattern match at Data.Either (line 46, column 1 - line 48, column 36): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n });\n var applyEither = new Control_Apply.Apply(function () {\n return functorEither;\n }, function (v) {\n return function (v1) {\n if (v instanceof Left) {\n return new Left(v.value0);\n };\n if (v instanceof Right) {\n return Data_Functor.map(functorEither)(v.value0)(v1);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 82, column 1 - line 84, column 30): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n });\n exports[\"Left\"] = Left;\n exports[\"Right\"] = Right;\n exports[\"either\"] = either;\n exports[\"note\"] = note;\n exports[\"hush\"] = hush;\n exports[\"functorEither\"] = functorEither;\n exports[\"bifunctorEither\"] = bifunctorEither;\n exports[\"applyEither\"] = applyEither;\n exports[\"foldableEither\"] = foldableEither;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Error.Class\"] = $PS[\"Control.Monad.Error.Class\"] || {};\n var exports = $PS[\"Control.Monad.Error.Class\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var MonadThrow = function (Monad0, throwError) {\n this.Monad0 = Monad0;\n this.throwError = throwError;\n };\n var MonadError = function (MonadThrow0, catchError) {\n this.MonadThrow0 = MonadThrow0;\n this.catchError = catchError;\n };\n var throwError = function (dict) {\n return dict.throwError;\n }; \n var catchError = function (dict) {\n return dict.catchError;\n };\n var $$try = function (dictMonadError) {\n return function (a) {\n return catchError(dictMonadError)(Data_Functor.map(((((dictMonadError.MonadThrow0()).Monad0()).Bind1()).Apply0()).Functor0())(Data_Either.Right.create)(a))((function () {\n var $17 = Control_Applicative.pure(((dictMonadError.MonadThrow0()).Monad0()).Applicative0());\n return function ($18) {\n return $17(Data_Either.Left.create($18));\n };\n })());\n };\n };\n exports[\"throwError\"] = throwError;\n exports[\"MonadThrow\"] = MonadThrow;\n exports[\"MonadError\"] = MonadError;\n exports[\"try\"] = $$try;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad\"] = $PS[\"Control.Monad\"] || {};\n var exports = $PS[\"Control.Monad\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"]; \n var Monad = function (Applicative0, Bind1) {\n this.Applicative0 = Applicative0;\n this.Bind1 = Bind1;\n };\n var whenM = function (dictMonad) {\n return function (mb) {\n return function (m) {\n return Control_Bind.bind(dictMonad.Bind1())(mb)(function (b) {\n return Control_Applicative.when(dictMonad.Applicative0())(b)(m);\n });\n };\n };\n };\n var unlessM = function (dictMonad) {\n return function (mb) {\n return function (m) {\n return Control_Bind.bind(dictMonad.Bind1())(mb)(function (b) {\n return Control_Applicative.unless(dictMonad.Applicative0())(b)(m);\n });\n };\n };\n };\n var ap = function (dictMonad) {\n return function (f) {\n return function (a) {\n return Control_Bind.bind(dictMonad.Bind1())(f)(function (f$prime) {\n return Control_Bind.bind(dictMonad.Bind1())(a)(function (a$prime) {\n return Control_Applicative.pure(dictMonad.Applicative0())(f$prime(a$prime));\n });\n });\n };\n };\n };\n exports[\"Monad\"] = Monad;\n exports[\"ap\"] = ap;\n exports[\"whenM\"] = whenM;\n exports[\"unlessM\"] = unlessM;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Except.Trans\"] = $PS[\"Control.Monad.Except.Trans\"] || {};\n var exports = $PS[\"Control.Monad.Except.Trans\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var ExceptT = function (x) {\n return x;\n };\n var runExceptT = function (v) {\n return v;\n }; \n var mapExceptT = function (f) {\n return function (v) {\n return f(v);\n };\n };\n var functorExceptT = function (dictFunctor) {\n return new Data_Functor.Functor(function (f) {\n return mapExceptT(Data_Functor.map(dictFunctor)(Data_Functor.map(Data_Either.functorEither)(f)));\n });\n };\n var monadExceptT = function (dictMonad) {\n return new Control_Monad.Monad(function () {\n return applicativeExceptT(dictMonad);\n }, function () {\n return bindExceptT(dictMonad);\n });\n };\n var bindExceptT = function (dictMonad) {\n return new Control_Bind.Bind(function () {\n return applyExceptT(dictMonad);\n }, function (v) {\n return function (k) {\n return Control_Bind.bind(dictMonad.Bind1())(v)(Data_Either.either((function () {\n var $90 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($91) {\n return $90(Data_Either.Left.create($91));\n };\n })())(function (a) {\n var v1 = k(a);\n return v1;\n }));\n };\n });\n };\n var applyExceptT = function (dictMonad) {\n return new Control_Apply.Apply(function () {\n return functorExceptT(((dictMonad.Bind1()).Apply0()).Functor0());\n }, Control_Monad.ap(monadExceptT(dictMonad)));\n };\n var applicativeExceptT = function (dictMonad) {\n return new Control_Applicative.Applicative(function () {\n return applyExceptT(dictMonad);\n }, (function () {\n var $92 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($93) {\n return ExceptT($92(Data_Either.Right.create($93)));\n };\n })());\n };\n var monadThrowExceptT = function (dictMonad) {\n return new Control_Monad_Error_Class.MonadThrow(function () {\n return monadExceptT(dictMonad);\n }, (function () {\n var $102 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($103) {\n return ExceptT($102(Data_Either.Left.create($103)));\n };\n })());\n };\n exports[\"ExceptT\"] = ExceptT;\n exports[\"runExceptT\"] = runExceptT;\n exports[\"applicativeExceptT\"] = applicativeExceptT;\n exports[\"bindExceptT\"] = bindExceptT;\n exports[\"monadThrowExceptT\"] = monadThrowExceptT;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Identity\"] = $PS[\"Data.Identity\"] || {};\n var exports = $PS[\"Data.Identity\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Newtype = $PS[\"Data.Newtype\"]; \n var Identity = function (x) {\n return x;\n };\n var newtypeIdentity = new Data_Newtype.Newtype(function (n) {\n return n;\n }, Identity);\n var functorIdentity = new Data_Functor.Functor(function (f) {\n return function (m) {\n return f(m);\n };\n });\n var applyIdentity = new Control_Apply.Apply(function () {\n return functorIdentity;\n }, function (v) {\n return function (v1) {\n return v(v1);\n };\n });\n var bindIdentity = new Control_Bind.Bind(function () {\n return applyIdentity;\n }, function (v) {\n return function (f) {\n return f(v);\n };\n });\n var applicativeIdentity = new Control_Applicative.Applicative(function () {\n return applyIdentity;\n }, Identity);\n var monadIdentity = new Control_Monad.Monad(function () {\n return applicativeIdentity;\n }, function () {\n return bindIdentity;\n });\n exports[\"newtypeIdentity\"] = newtypeIdentity;\n exports[\"functorIdentity\"] = functorIdentity;\n exports[\"applicativeIdentity\"] = applicativeIdentity;\n exports[\"monadIdentity\"] = monadIdentity;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Except\"] = $PS[\"Control.Monad.Except\"] || {};\n var exports = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_Newtype = $PS[\"Data.Newtype\"]; \n var runExcept = (function () {\n var $0 = Data_Newtype.unwrap(Data_Identity.newtypeIdentity);\n return function ($1) {\n return $0(Control_Monad_Except_Trans.runExceptT($1));\n };\n })();\n exports[\"runExcept\"] = runExcept;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n function id(x) {\n return x;\n } \n exports.fromObject = id;\n\n exports.stringify = function (j) {\n return JSON.stringify(j);\n };\n\n function isArray(a) {\n return Object.prototype.toString.call(a) === \"[object Array]\";\n }\n})(PS[\"Data.Argonaut.Core\"] = PS[\"Data.Argonaut.Core\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.empty = {};\n\n exports._lookup = function (no, yes, k, m) {\n return k in m ? yes(m[k]) : no;\n };\n\n function toArrayWithKey(f) {\n return function (m) {\n var r = [];\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n r.push(f(k)(m[k]));\n }\n }\n return r;\n };\n }\n})(PS[\"Foreign.Object\"] = PS[\"Foreign.Object\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.runFn4 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return fn(a, b, c, d);\n };\n };\n };\n };\n };\n})(PS[\"Data.Function.Uncurried\"] = PS[\"Data.Function.Uncurried\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Function.Uncurried\"] = $PS[\"Data.Function.Uncurried\"] || {};\n var exports = $PS[\"Data.Function.Uncurried\"];\n var $foreign = $PS[\"Data.Function.Uncurried\"];\n exports[\"runFn4\"] = $foreign.runFn4;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Foreign.Object\"] = $PS[\"Foreign.Object\"] || {};\n var exports = $PS[\"Foreign.Object\"];\n var $foreign = $PS[\"Foreign.Object\"];\n var Data_Function_Uncurried = $PS[\"Data.Function.Uncurried\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var lookup = Data_Function_Uncurried.runFn4($foreign[\"_lookup\"])(Data_Maybe.Nothing.value)(Data_Maybe.Just.create);\n exports[\"lookup\"] = lookup;\n exports[\"empty\"] = $foreign.empty;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Argonaut.Core\"] = $PS[\"Data.Argonaut.Core\"] || {};\n var exports = $PS[\"Data.Argonaut.Core\"];\n var $foreign = $PS[\"Data.Argonaut.Core\"];\n var Foreign_Object = $PS[\"Foreign.Object\"]; \n var jsonEmptyObject = $foreign.fromObject(Foreign_Object.empty);\n exports[\"jsonEmptyObject\"] = jsonEmptyObject;\n exports[\"stringify\"] = $foreign.stringify;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._jsonParser = function (fail, succ, s) {\n try {\n return succ(JSON.parse(s));\n }\n catch (e) {\n return fail(e.message);\n }\n };\n})(PS[\"Data.Argonaut.Parser\"] = PS[\"Data.Argonaut.Parser\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Argonaut.Parser\"] = $PS[\"Data.Argonaut.Parser\"] || {};\n var exports = $PS[\"Data.Argonaut.Parser\"];\n var $foreign = $PS[\"Data.Argonaut.Parser\"];\n var Data_Either = $PS[\"Data.Either\"]; \n var jsonParser = function (j) {\n return $foreign[\"_jsonParser\"](Data_Either.Left.create, Data_Either.Right.create, j);\n };\n exports[\"jsonParser\"] = jsonParser;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n //------------------------------------------------------------------------------\n // Array size ------------------------------------------------------------------\n //------------------------------------------------------------------------------\n\n exports.length = function (xs) {\n return xs.length;\n };\n\n //------------------------------------------------------------------------------\n // Extending arrays ------------------------------------------------------------\n //------------------------------------------------------------------------------\n\n exports.cons = function (e) {\n return function (l) {\n return [e].concat(l);\n };\n };\n\n exports.snoc = function (l) {\n return function (e) {\n var l1 = l.slice();\n l1.push(e);\n return l1;\n };\n };\n\n exports.filter = function (f) {\n return function (xs) {\n return xs.filter(f);\n };\n };\n\n exports.drop = function (n) {\n return function (l) {\n return n < 1 ? l : l.slice(n);\n };\n };\n})(PS[\"Data.Array\"] = PS[\"Data.Array\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Array\"] = $PS[\"Data.Array\"] || {};\n var exports = $PS[\"Data.Array\"];\n var $foreign = $PS[\"Data.Array\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var singleton = function (a) {\n return [ a ];\n };\n var concatMap = Data_Function.flip(Control_Bind.bind(Control_Bind.bindArray));\n var mapMaybe = function (f) {\n return concatMap((function () {\n var $94 = Data_Maybe.maybe([ ])(singleton);\n return function ($95) {\n return $94(f($95));\n };\n })());\n };\n exports[\"mapMaybe\"] = mapMaybe;\n exports[\"length\"] = $foreign.length;\n exports[\"cons\"] = $foreign.cons;\n exports[\"snoc\"] = $foreign.snoc;\n exports[\"filter\"] = $foreign.filter;\n exports[\"drop\"] = $foreign.drop;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.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\n exports.split = function (sep) {\n return function (s) {\n return s.split(sep);\n };\n };\n\n exports.joinWith = function (s) {\n return function (xs) {\n return xs.join(s);\n };\n };\n})(PS[\"Data.String.Common\"] = PS[\"Data.String.Common\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.String.Common\"] = $PS[\"Data.String.Common\"] || {};\n var exports = $PS[\"Data.String.Common\"];\n var $foreign = $PS[\"Data.String.Common\"]; \n var $$null = function (s) {\n return s === \"\";\n };\n exports[\"null\"] = $$null;\n exports[\"replaceAll\"] = $foreign.replaceAll;\n exports[\"split\"] = $foreign.split;\n exports[\"joinWith\"] = $foreign.joinWith;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // jshint maxparams: 3\n\n exports.traverseArrayImpl = function () {\n function array1(a) {\n return [a];\n }\n\n function array2(a) {\n return function (b) {\n return [a, b];\n };\n }\n\n function array3(a) {\n return function (b) {\n return function (c) {\n return [a, b, c];\n };\n };\n }\n\n function concat2(xs) {\n return function (ys) {\n return xs.concat(ys);\n };\n }\n\n return function (apply) {\n return function (map) {\n return function (pure) {\n return function (f) {\n return function (array) {\n function go(bot, top) {\n switch (top - bot) {\n case 0: return pure([]);\n case 1: return map(array1)(f(array[bot]));\n case 2: return apply(map(array2)(f(array[bot])))(f(array[bot + 1]));\n case 3: return apply(apply(map(array3)(f(array[bot])))(f(array[bot + 1])))(f(array[bot + 2]));\n default:\n // This slightly tricky pivot selection aims to produce two\n // even-length partitions where possible.\n var pivot = bot + Math.floor((top - bot) / 4) * 2;\n return apply(map(concat2)(go(bot, pivot)))(go(pivot, top));\n }\n }\n return go(0, array.length);\n };\n };\n };\n };\n };\n }();\n})(PS[\"Data.Traversable\"] = PS[\"Data.Traversable\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Traversable\"] = $PS[\"Data.Traversable\"] || {};\n var exports = $PS[\"Data.Traversable\"];\n var $foreign = $PS[\"Data.Traversable\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var Traversable = function (Foldable1, Functor0, sequence, traverse) {\n this.Foldable1 = Foldable1;\n this.Functor0 = Functor0;\n this.sequence = sequence;\n this.traverse = traverse;\n };\n var traverse = function (dict) {\n return dict.traverse;\n }; \n var sequenceDefault = function (dictTraversable) {\n return function (dictApplicative) {\n return traverse(dictTraversable)(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n };\n };\n var traversableArray = new Traversable(function () {\n return Data_Foldable.foldableArray;\n }, function () {\n return Data_Functor.functorArray;\n }, function (dictApplicative) {\n return sequenceDefault(traversableArray)(dictApplicative);\n }, function (dictApplicative) {\n return $foreign.traverseArrayImpl(Control_Apply.apply(dictApplicative.Apply0()))(Data_Functor.map((dictApplicative.Apply0()).Functor0()))(Control_Applicative.pure(dictApplicative));\n });\n exports[\"traverse\"] = traverse;\n exports[\"traversableArray\"] = traversableArray;\n})(PS);\n(function(exports) {\n /* globals exports */\n \"use strict\"; \n\n var encdecURI = function (encdec) {\n return function (fail, succ, s) {\n try {\n return succ(encdec(s));\n }\n catch (e) {\n return fail(e.message);\n }\n };\n }; \n exports._encodeURIComponent = encdecURI(encodeURIComponent);\n})(PS[\"Global\"] = PS[\"Global\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Global\"] = $PS[\"Global\"] || {};\n var exports = $PS[\"Global\"];\n var $foreign = $PS[\"Global\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var $$encodeURIComponent = function (s) {\n return $foreign[\"_encodeURIComponent\"](Data_Function[\"const\"](Data_Maybe.Nothing.value), Data_Maybe.Just.create, s);\n };\n exports[\"encodeURIComponent\"] = $$encodeURIComponent;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.FormURLEncoded\"] = $PS[\"Data.FormURLEncoded\"] || {};\n var exports = $PS[\"Data.FormURLEncoded\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Traversable = $PS[\"Data.Traversable\"];\n var Global = $PS[\"Global\"];\n var toArray = function (v) {\n return v;\n }; \n var encode = (function () {\n var encodePart = function (v) {\n if (v.value1 instanceof Data_Maybe.Nothing) {\n return Global[\"encodeURIComponent\"](v.value0);\n };\n if (v.value1 instanceof Data_Maybe.Just) {\n return Control_Apply.apply(Data_Maybe.applyMaybe)(Data_Functor.map(Data_Maybe.functorMaybe)(function (key) {\n return function (val) {\n return key + (\"=\" + val);\n };\n })(Global[\"encodeURIComponent\"](v.value0)))(Global[\"encodeURIComponent\"](v.value1.value0));\n };\n throw new Error(\"Failed pattern match at Data.FormURLEncoded (line 37, column 18 - line 39, column 108): \" + [ v.constructor.name ]);\n };\n var $19 = Data_Functor.map(Data_Maybe.functorMaybe)(Data_String_Common.joinWith(\"&\"));\n var $20 = Data_Traversable.traverse(Data_Traversable.traversableArray)(Data_Maybe.applicativeMaybe)(encodePart);\n return function ($21) {\n return $19($20(toArray($21)));\n };\n })();\n exports[\"encode\"] = encode;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.showIntImpl = function (n) {\n return n.toString();\n };\n})(PS[\"Data.Show\"] = PS[\"Data.Show\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Show\"] = $PS[\"Data.Show\"] || {};\n var exports = $PS[\"Data.Show\"];\n var $foreign = $PS[\"Data.Show\"];\n var Show = function (show) {\n this.show = show;\n }; \n var showInt = new Show($foreign.showIntImpl);\n var show = function (dict) {\n return dict.show;\n };\n exports[\"Show\"] = Show;\n exports[\"show\"] = show;\n exports[\"showInt\"] = showInt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.HTTP.Method\"] = $PS[\"Data.HTTP.Method\"] || {};\n var exports = $PS[\"Data.HTTP.Method\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Show = $PS[\"Data.Show\"]; \n var OPTIONS = (function () {\n function OPTIONS() {\n\n };\n OPTIONS.value = new OPTIONS();\n return OPTIONS;\n })();\n var GET = (function () {\n function GET() {\n\n };\n GET.value = new GET();\n return GET;\n })();\n var HEAD = (function () {\n function HEAD() {\n\n };\n HEAD.value = new HEAD();\n return HEAD;\n })();\n var POST = (function () {\n function POST() {\n\n };\n POST.value = new POST();\n return POST;\n })();\n var PUT = (function () {\n function PUT() {\n\n };\n PUT.value = new PUT();\n return PUT;\n })();\n var DELETE = (function () {\n function DELETE() {\n\n };\n DELETE.value = new DELETE();\n return DELETE;\n })();\n var TRACE = (function () {\n function TRACE() {\n\n };\n TRACE.value = new TRACE();\n return TRACE;\n })();\n var CONNECT = (function () {\n function CONNECT() {\n\n };\n CONNECT.value = new CONNECT();\n return CONNECT;\n })();\n var PROPFIND = (function () {\n function PROPFIND() {\n\n };\n PROPFIND.value = new PROPFIND();\n return PROPFIND;\n })();\n var PROPPATCH = (function () {\n function PROPPATCH() {\n\n };\n PROPPATCH.value = new PROPPATCH();\n return PROPPATCH;\n })();\n var MKCOL = (function () {\n function MKCOL() {\n\n };\n MKCOL.value = new MKCOL();\n return MKCOL;\n })();\n var COPY = (function () {\n function COPY() {\n\n };\n COPY.value = new COPY();\n return COPY;\n })();\n var MOVE = (function () {\n function MOVE() {\n\n };\n MOVE.value = new MOVE();\n return MOVE;\n })();\n var LOCK = (function () {\n function LOCK() {\n\n };\n LOCK.value = new LOCK();\n return LOCK;\n })();\n var UNLOCK = (function () {\n function UNLOCK() {\n\n };\n UNLOCK.value = new UNLOCK();\n return UNLOCK;\n })();\n var PATCH = (function () {\n function PATCH() {\n\n };\n PATCH.value = new PATCH();\n return PATCH;\n })();\n var unCustomMethod = function (v) {\n return v;\n };\n var showMethod = new Data_Show.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 40, column 1 - line 56, column 23): \" + [ v.constructor.name ]);\n });\n var print = Data_Either.either(Data_Show.show(showMethod))(unCustomMethod);\n exports[\"GET\"] = GET;\n exports[\"POST\"] = POST;\n exports[\"DELETE\"] = DELETE;\n exports[\"print\"] = print;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Alt\"] = $PS[\"Control.Alt\"] || {};\n var exports = $PS[\"Control.Alt\"]; \n var Alt = function (Functor0, alt) {\n this.Functor0 = Functor0;\n this.alt = alt;\n };\n exports[\"Alt\"] = Alt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Plus\"] = $PS[\"Control.Plus\"] || {};\n var exports = $PS[\"Control.Plus\"]; \n var Plus = function (Alt0, empty) {\n this.Alt0 = Alt0;\n this.empty = empty;\n }; \n var empty = function (dict) {\n return dict.empty;\n };\n exports[\"Plus\"] = Plus;\n exports[\"empty\"] = empty;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.List.Types\"] = $PS[\"Data.List.Types\"] || {};\n var exports = $PS[\"Data.List.Types\"];\n var Control_Alt = $PS[\"Control.Alt\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Plus = $PS[\"Control.Plus\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"]; \n var Nil = (function () {\n function Nil() {\n\n };\n Nil.value = new Nil();\n return Nil;\n })();\n var Cons = (function () {\n function Cons(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Cons.create = function (value0) {\n return function (value1) {\n return new Cons(value0, value1);\n };\n };\n return Cons;\n })();\n var NonEmptyList = function (x) {\n return x;\n };\n var listMap = function (f) {\n var chunkedRevMap = function ($copy_chunksAcc) {\n return function ($copy_v) {\n var $tco_var_chunksAcc = $copy_chunksAcc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(chunksAcc, v) {\n if (v instanceof Cons && (v.value1 instanceof Cons && v.value1.value1 instanceof Cons)) {\n $tco_var_chunksAcc = new Cons(v, chunksAcc);\n $copy_v = v.value1.value1.value1;\n return;\n };\n var unrolledMap = function (v1) {\n if (v1 instanceof Cons && (v1.value1 instanceof Cons && v1.value1.value1 instanceof Nil)) {\n return new Cons(f(v1.value0), new Cons(f(v1.value1.value0), Nil.value));\n };\n if (v1 instanceof Cons && v1.value1 instanceof Nil) {\n return new Cons(f(v1.value0), Nil.value);\n };\n return Nil.value;\n };\n var reverseUnrolledMap = function ($copy_v1) {\n return function ($copy_acc) {\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v1, acc) {\n if (v1 instanceof Cons && (v1.value0 instanceof Cons && (v1.value0.value1 instanceof Cons && v1.value0.value1.value1 instanceof Cons))) {\n $tco_var_v1 = v1.value1;\n $copy_acc = new Cons(f(v1.value0.value0), new Cons(f(v1.value0.value1.value0), new Cons(f(v1.value0.value1.value1.value0), acc)));\n return;\n };\n $tco_done = true;\n return acc;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v1, $copy_acc);\n };\n return $tco_result;\n };\n };\n $tco_done = true;\n return reverseUnrolledMap(chunksAcc)(unrolledMap(v));\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_chunksAcc, $copy_v);\n };\n return $tco_result;\n };\n };\n return chunkedRevMap(Nil.value);\n };\n var functorList = new Data_Functor.Functor(listMap); \n var foldableList = new Data_Foldable.Foldable(function (dictMonoid) {\n return function (f) {\n return Data_Foldable.foldl(foldableList)(function (acc) {\n var $202 = Data_Semigroup.append(dictMonoid.Semigroup0())(acc);\n return function ($203) {\n return $202(f($203));\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n }, function (f) {\n var go = function ($copy_b) {\n return function ($copy_v) {\n var $tco_var_b = $copy_b;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(b, v) {\n if (v instanceof Nil) {\n $tco_done = 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 109, column 12 - line 111, column 30): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_b, $copy_v);\n };\n return $tco_result;\n };\n };\n return go;\n }, function (f) {\n return function (b) {\n var rev = Data_Foldable.foldl(foldableList)(Data_Function.flip(Cons.create))(Nil.value);\n var $204 = Data_Foldable.foldl(foldableList)(Data_Function.flip(f))(b);\n return function ($205) {\n return $204(rev($205));\n };\n };\n });\n var semigroupList = new Data_Semigroup.Semigroup(function (xs) {\n return function (ys) {\n return Data_Foldable.foldr(foldableList)(Cons.create)(ys)(xs);\n };\n });\n var applyList = new Control_Apply.Apply(function () {\n return functorList;\n }, function (v) {\n return function (v1) {\n if (v instanceof Nil) {\n return Nil.value;\n };\n if (v instanceof Cons) {\n return Data_Semigroup.append(semigroupList)(Data_Functor.map(functorList)(v.value0)(v1))(Control_Apply.apply(applyList)(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 155, column 1 - line 157, column 48): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n });\n var applicativeList = new Control_Applicative.Applicative(function () {\n return applyList;\n }, function (a) {\n return new Cons(a, Nil.value);\n }); \n var altList = new Control_Alt.Alt(function () {\n return functorList;\n }, Data_Semigroup.append(semigroupList));\n var plusList = new Control_Plus.Plus(function () {\n return altList;\n }, Nil.value);\n exports[\"Nil\"] = Nil;\n exports[\"Cons\"] = Cons;\n exports[\"NonEmptyList\"] = NonEmptyList;\n exports[\"semigroupList\"] = semigroupList;\n exports[\"foldableList\"] = foldableList;\n exports[\"applicativeList\"] = applicativeList;\n exports[\"plusList\"] = plusList;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.NonEmpty\"] = $PS[\"Data.NonEmpty\"] || {};\n var exports = $PS[\"Data.NonEmpty\"];\n var Control_Plus = $PS[\"Control.Plus\"]; \n var NonEmpty = (function () {\n function NonEmpty(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n NonEmpty.create = function (value0) {\n return function (value1) {\n return new NonEmpty(value0, value1);\n };\n };\n return NonEmpty;\n })();\n var singleton = function (dictPlus) {\n return function (a) {\n return new NonEmpty(a, Control_Plus.empty(dictPlus));\n };\n };\n exports[\"NonEmpty\"] = NonEmpty;\n exports[\"singleton\"] = singleton;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.List.NonEmpty\"] = $PS[\"Data.List.NonEmpty\"] || {};\n var exports = $PS[\"Data.List.NonEmpty\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_NonEmpty = $PS[\"Data.NonEmpty\"];\n var singleton = (function () {\n var $168 = Data_NonEmpty.singleton(Data_List_Types.plusList);\n return function ($169) {\n return Data_List_Types.NonEmptyList($168($169));\n };\n })();\n var head = function (v) {\n return v.value0;\n };\n var cons = function (y) {\n return function (v) {\n return new Data_NonEmpty.NonEmpty(y, new Data_List_Types.Cons(v.value0, v.value1));\n };\n };\n exports[\"singleton\"] = singleton;\n exports[\"cons\"] = cons;\n exports[\"head\"] = head;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports[\"null\"] = null;\n\n exports.nullable = function (a, r, f) {\n return a == null ? r : f(a);\n };\n\n exports.notNull = function (x) {\n return x;\n };\n})(PS[\"Data.Nullable\"] = PS[\"Data.Nullable\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Nullable\"] = $PS[\"Data.Nullable\"] || {};\n var exports = $PS[\"Data.Nullable\"];\n var $foreign = $PS[\"Data.Nullable\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var toNullable = Data_Maybe.maybe($foreign[\"null\"])($foreign.notNull);\n var toMaybe = function (n) {\n return $foreign.nullable(n, Data_Maybe.Nothing.value, Data_Maybe.Just.create);\n };\n exports[\"toMaybe\"] = toMaybe;\n exports[\"toNullable\"] = toNullable;\n})(PS);\n(function(exports) {\n /* globals setImmediate, clearImmediate, setTimeout, clearTimeout */\n /* jshint -W083, -W098, -W003 */\n \"use strict\";\n\n var Aff = function () {\n // A unique value for empty.\n var EMPTY = {};\n\n /*\n\n An awkward approximation. We elide evidence we would otherwise need in PS for\n efficiency sake.\n\n data Aff eff a\n = Pure a\n | Throw Error\n | Catch (Aff eff a) (Error -> Aff eff a)\n | Sync (Eff eff a)\n | Async ((Either Error a -> Eff eff Unit) -> Eff eff (Canceler eff))\n | forall b. Bind (Aff eff b) (b -> Aff eff a)\n | forall b. Bracket (Aff eff b) (BracketConditions eff b) (b -> Aff eff a)\n | forall b. Fork Boolean (Aff eff b) ?(Fiber eff b -> a)\n | Sequential (ParAff aff a)\n\n */ \n var PURE = \"Pure\";\n var THROW = \"Throw\";\n var CATCH = \"Catch\";\n var SYNC = \"Sync\";\n var ASYNC = \"Async\";\n var BIND = \"Bind\";\n var BRACKET = \"Bracket\";\n var FORK = \"Fork\";\n var SEQ = \"Sequential\";\n\n /*\n\n data ParAff eff a\n = forall b. Map (b -> a) (ParAff eff b)\n | forall b. Apply (ParAff eff (b -> a)) (ParAff eff b)\n | Alt (ParAff eff a) (ParAff eff a)\n | ?Par (Aff eff a)\n\n */ \n var MAP = \"Map\";\n var APPLY = \"Apply\";\n var ALT = \"Alt\";\n\n // Various constructors used in interpretation\n var CONS = \"Cons\"; // Cons-list, for stacks\n var RESUME = \"Resume\"; // Continue indiscriminately\n var RELEASE = \"Release\"; // Continue with bracket finalizers\n var FINALIZER = \"Finalizer\"; // A non-interruptible effect\n var FINALIZED = \"Finalized\"; // Marker for finalization\n var FORKED = \"Forked\"; // Reference to a forked fiber, with resumption stack\n var FIBER = \"Fiber\"; // Actual fiber reference\n var THUNK = \"Thunk\"; // Primed effect, ready to invoke\n\n function Aff(tag, _1, _2, _3) {\n this.tag = tag;\n this._1 = _1;\n this._2 = _2;\n this._3 = _3;\n }\n\n function AffCtr(tag) {\n var fn = function (_1, _2, _3) {\n return new Aff(tag, _1, _2, _3);\n };\n fn.tag = tag;\n return fn;\n }\n\n function nonCanceler(error) {\n return new Aff(PURE, void 0);\n }\n\n function runEff(eff) {\n try {\n eff();\n } catch (error) {\n setTimeout(function () {\n throw error;\n }, 0);\n }\n }\n\n function runSync(left, right, eff) {\n try {\n return right(eff());\n } catch (error) {\n return left(error);\n }\n }\n\n function runAsync(left, eff, k) {\n try {\n return eff(k)();\n } catch (error) {\n k(left(error))();\n return nonCanceler;\n }\n }\n\n var Scheduler = function () {\n var limit = 1024;\n var size = 0;\n var ix = 0;\n var queue = new Array(limit);\n var draining = false;\n\n function drain() {\n var thunk;\n draining = true;\n while (size !== 0) {\n size--;\n thunk = queue[ix];\n queue[ix] = void 0;\n ix = (ix + 1) % limit;\n thunk();\n }\n draining = false;\n }\n\n return {\n isDraining: function () {\n return draining;\n },\n enqueue: function (cb) {\n var i, tmp;\n if (size === limit) {\n tmp = draining;\n drain();\n draining = tmp;\n }\n\n queue[(ix + size) % limit] = cb;\n size++;\n\n if (!draining) {\n drain();\n }\n }\n };\n }();\n\n function Supervisor(util) {\n var fibers = {};\n var fiberId = 0;\n var count = 0;\n\n return {\n register: function (fiber) {\n var fid = fiberId++;\n fiber.onComplete({\n rethrow: true,\n handler: function (result) {\n return function () {\n count--;\n delete fibers[fid];\n };\n }\n })();\n fibers[fid] = fiber;\n count++;\n },\n isEmpty: function () {\n return count === 0;\n },\n killAll: function (killError, cb) {\n return function () {\n if (count === 0) {\n return cb();\n }\n\n var killCount = 0;\n var kills = {};\n\n function kill(fid) {\n kills[fid] = fibers[fid].kill(killError, function (result) {\n return function () {\n delete kills[fid];\n killCount--;\n if (util.isLeft(result) && util.fromLeft(result)) {\n setTimeout(function () {\n throw util.fromLeft(result);\n }, 0);\n }\n if (killCount === 0) {\n cb();\n }\n };\n })();\n }\n\n for (var k in fibers) {\n if (fibers.hasOwnProperty(k)) {\n killCount++;\n kill(k);\n }\n }\n\n fibers = {};\n fiberId = 0;\n count = 0;\n\n return function (error) {\n return new Aff(SYNC, function () {\n for (var k in kills) {\n if (kills.hasOwnProperty(k)) {\n kills[k]();\n }\n }\n });\n };\n };\n }\n };\n }\n\n // Fiber state machine\n var SUSPENDED = 0; // Suspended, pending a join.\n var CONTINUE = 1; // Interpret the next instruction.\n var STEP_BIND = 2; // Apply the next bind.\n var STEP_RESULT = 3; // Handle potential failure from a result.\n var PENDING = 4; // An async effect is running.\n var RETURN = 5; // The current stack has returned.\n var COMPLETED = 6; // The entire fiber has completed.\n\n function Fiber(util, supervisor, aff) {\n // Monotonically increasing tick, increased on each asynchronous turn.\n var runTick = 0;\n\n // The current branch of the state machine.\n var status = SUSPENDED;\n\n // The current point of interest for the state machine branch.\n var step = aff; // Successful step\n var fail = null; // Failure step\n var interrupt = null; // Asynchronous interrupt\n\n // Stack of continuations for the current fiber.\n var bhead = null;\n var btail = null;\n\n // Stack of attempts and finalizers for error recovery. Every `Cons` is also\n // tagged with current `interrupt` state. We use this to track which items\n // should be ignored or evaluated as a result of a kill.\n var attempts = null;\n\n // A special state is needed for Bracket, because it cannot be killed. When\n // we enter a bracket acquisition or finalizer, we increment the counter,\n // and then decrement once complete.\n var bracketCount = 0;\n\n // Each join gets a new id so they can be revoked.\n var joinId = 0;\n var joins = null;\n var rethrow = true;\n\n // Each invocation of `run` requires a tick. When an asynchronous effect is\n // resolved, we must check that the local tick coincides with the fiber\n // tick before resuming. This prevents multiple async continuations from\n // accidentally resuming the same fiber. A common example may be invoking\n // the provided callback in `makeAff` more than once, but it may also be an\n // async effect resuming after the fiber was already cancelled.\n function run(localRunTick) {\n var tmp, result, attempt;\n while (true) {\n tmp = null;\n result = null;\n attempt = null;\n\n switch (status) {\n case STEP_BIND:\n status = CONTINUE;\n try {\n step = bhead(step);\n if (btail === null) {\n bhead = null;\n } else {\n bhead = btail._1;\n btail = btail._2;\n }\n } catch (e) {\n status = RETURN;\n fail = util.left(e);\n step = null;\n }\n break;\n\n case STEP_RESULT:\n if (util.isLeft(step)) {\n status = RETURN;\n fail = step;\n step = null;\n } else if (bhead === null) {\n status = RETURN;\n } else {\n status = STEP_BIND;\n step = util.fromRight(step);\n }\n break;\n\n case CONTINUE:\n switch (step.tag) {\n case BIND:\n if (bhead) {\n btail = new Aff(CONS, bhead, btail);\n }\n bhead = step._2;\n status = CONTINUE;\n step = step._1;\n break;\n\n case PURE:\n if (bhead === null) {\n status = RETURN;\n step = util.right(step._1);\n } else {\n status = STEP_BIND;\n step = step._1;\n }\n break;\n\n case SYNC:\n status = STEP_RESULT;\n step = runSync(util.left, util.right, step._1);\n break;\n\n case ASYNC:\n status = PENDING;\n step = runAsync(util.left, step._1, function (result) {\n return function () {\n if (runTick !== localRunTick) {\n return;\n }\n runTick++;\n Scheduler.enqueue(function () {\n // It's possible to interrupt the fiber between enqueuing and\n // resuming, so we need to check that the runTick is still\n // valid.\n if (runTick !== localRunTick + 1) {\n return;\n }\n status = STEP_RESULT;\n step = result;\n run(runTick);\n });\n };\n });\n return;\n\n case THROW:\n status = RETURN;\n fail = util.left(step._1);\n step = null;\n break;\n\n // Enqueue the Catch so that we can call the error handler later on\n // in case of an exception.\n case CATCH:\n if (bhead === null) {\n attempts = new Aff(CONS, step, attempts, interrupt);\n } else {\n attempts = new Aff(CONS, step, new Aff(CONS, new Aff(RESUME, bhead, btail), attempts, interrupt), interrupt);\n }\n bhead = null;\n btail = null;\n status = CONTINUE;\n step = step._1;\n break;\n\n // Enqueue the Bracket so that we can call the appropriate handlers\n // after resource acquisition.\n case BRACKET:\n bracketCount++;\n if (bhead === null) {\n attempts = new Aff(CONS, step, attempts, interrupt);\n } else {\n attempts = new Aff(CONS, step, new Aff(CONS, new Aff(RESUME, bhead, btail), attempts, interrupt), interrupt);\n }\n bhead = null;\n btail = null;\n status = CONTINUE;\n step = step._1;\n break;\n\n case FORK:\n status = STEP_RESULT;\n tmp = Fiber(util, supervisor, step._2);\n if (supervisor) {\n supervisor.register(tmp);\n }\n if (step._1) {\n tmp.run();\n }\n step = util.right(tmp);\n break;\n\n case SEQ:\n status = CONTINUE;\n step = sequential(util, supervisor, step._1);\n break;\n }\n break;\n\n case RETURN:\n bhead = null;\n btail = null;\n // If the current stack has returned, and we have no other stacks to\n // resume or finalizers to run, the fiber has halted and we can\n // invoke all join callbacks. Otherwise we need to resume.\n if (attempts === null) {\n status = COMPLETED;\n step = interrupt || fail || step;\n } else {\n // The interrupt status for the enqueued item.\n tmp = attempts._3;\n attempt = attempts._1;\n attempts = attempts._2;\n\n switch (attempt.tag) {\n // We cannot recover from an unmasked interrupt. Otherwise we should\n // continue stepping, or run the exception handler if an exception\n // was raised.\n case CATCH:\n // We should compare the interrupt status as well because we\n // only want it to apply if there has been an interrupt since\n // enqueuing the catch.\n if (interrupt && interrupt !== tmp && bracketCount === 0) {\n status = RETURN;\n } else if (fail) {\n status = CONTINUE;\n step = attempt._2(util.fromLeft(fail));\n fail = null;\n }\n break;\n\n // We cannot resume from an unmasked interrupt or exception.\n case RESUME:\n // As with Catch, we only want to ignore in the case of an\n // interrupt since enqueing the item.\n if (interrupt && interrupt !== tmp && bracketCount === 0 || fail) {\n status = RETURN;\n } else {\n bhead = attempt._1;\n btail = attempt._2;\n status = STEP_BIND;\n step = util.fromRight(step);\n }\n break;\n\n // If we have a bracket, we should enqueue the handlers,\n // and continue with the success branch only if the fiber has\n // not been interrupted. If the bracket acquisition failed, we\n // should not run either.\n case BRACKET:\n bracketCount--;\n if (fail === null) {\n result = util.fromRight(step);\n // We need to enqueue the Release with the same interrupt\n // status as the Bracket that is initiating it.\n attempts = new Aff(CONS, new Aff(RELEASE, attempt._2, result), attempts, tmp);\n // We should only coninue as long as the interrupt status has not changed or\n // we are currently within a non-interruptable finalizer.\n if (interrupt === tmp || bracketCount > 0) {\n status = CONTINUE;\n step = attempt._3(result);\n }\n }\n break;\n\n // Enqueue the appropriate handler. We increase the bracket count\n // because it should not be cancelled.\n case RELEASE:\n attempts = new Aff(CONS, new Aff(FINALIZED, step, fail), attempts, interrupt);\n status = CONTINUE;\n // It has only been killed if the interrupt status has changed\n // since we enqueued the item, and the bracket count is 0. If the\n // bracket count is non-zero then we are in a masked state so it's\n // impossible to be killed.\n if (interrupt && interrupt !== tmp && bracketCount === 0) {\n step = attempt._1.killed(util.fromLeft(interrupt))(attempt._2);\n } else if (fail) {\n step = attempt._1.failed(util.fromLeft(fail))(attempt._2);\n } else {\n step = attempt._1.completed(util.fromRight(step))(attempt._2);\n }\n fail = null;\n bracketCount++;\n break;\n\n case FINALIZER:\n bracketCount++;\n attempts = new Aff(CONS, new Aff(FINALIZED, step, fail), attempts, interrupt);\n status = CONTINUE;\n step = attempt._1;\n break;\n\n case FINALIZED:\n bracketCount--;\n status = RETURN;\n step = attempt._1;\n fail = attempt._2;\n break;\n }\n }\n break;\n\n case COMPLETED:\n for (var k in joins) {\n if (joins.hasOwnProperty(k)) {\n rethrow = rethrow && joins[k].rethrow;\n runEff(joins[k].handler(step));\n }\n }\n joins = null;\n // If we have an interrupt and a fail, then the thread threw while\n // running finalizers. This should always rethrow in a fresh stack.\n if (interrupt && fail) {\n setTimeout(function () {\n throw util.fromLeft(fail);\n }, 0);\n // If we have an unhandled exception, and no other fiber has joined\n // then we need to throw the exception in a fresh stack.\n } else if (util.isLeft(step) && rethrow) {\n setTimeout(function () {\n // Guard on reathrow because a completely synchronous fiber can\n // still have an observer which was added after-the-fact.\n if (rethrow) {\n throw util.fromLeft(step);\n }\n }, 0);\n }\n return;\n case SUSPENDED:\n status = CONTINUE;\n break;\n case PENDING: return;\n }\n }\n }\n\n function onComplete(join) {\n return function () {\n if (status === COMPLETED) {\n rethrow = rethrow && join.rethrow;\n join.handler(step)();\n return function () {};\n }\n\n var jid = joinId++;\n joins = joins || {};\n joins[jid] = join;\n\n return function() {\n if (joins !== null) {\n delete joins[jid];\n }\n };\n };\n }\n\n function kill(error, cb) {\n return function () {\n if (status === COMPLETED) {\n cb(util.right(void 0))();\n return function () {};\n }\n\n var canceler = onComplete({\n rethrow: false,\n handler: function (/* unused */) {\n return cb(util.right(void 0));\n }\n })();\n\n switch (status) {\n case SUSPENDED:\n interrupt = util.left(error);\n status = COMPLETED;\n step = interrupt;\n run(runTick);\n break;\n case PENDING:\n if (interrupt === null) {\n interrupt = util.left(error);\n }\n if (bracketCount === 0) {\n if (status === PENDING) {\n attempts = new Aff(CONS, new Aff(FINALIZER, step(error)), attempts, interrupt);\n }\n status = RETURN;\n step = null;\n fail = null;\n run(++runTick);\n }\n break;\n default:\n if (interrupt === null) {\n interrupt = util.left(error);\n }\n if (bracketCount === 0) {\n status = RETURN;\n step = null;\n fail = null;\n }\n }\n\n return canceler;\n };\n }\n\n function join(cb) {\n return function () {\n var canceler = onComplete({\n rethrow: false,\n handler: cb\n })();\n if (status === SUSPENDED) {\n run(runTick);\n }\n return canceler;\n };\n }\n\n return {\n kill: kill,\n join: join,\n onComplete: onComplete,\n isSuspended: function () {\n return status === SUSPENDED;\n },\n run: function () {\n if (status === SUSPENDED) {\n if (!Scheduler.isDraining()) {\n Scheduler.enqueue(function () {\n run(runTick);\n });\n } else {\n run(runTick);\n }\n }\n }\n };\n }\n\n function runPar(util, supervisor, par, cb) {\n // Table of all forked fibers.\n var fiberId = 0;\n var fibers = {};\n\n // Table of currently running cancelers, as a product of `Alt` behavior.\n var killId = 0;\n var kills = {};\n\n // Error used for early cancelation on Alt branches.\n var early = new Error(\"[ParAff] Early exit\");\n\n // Error used to kill the entire tree.\n var interrupt = null;\n\n // The root pointer of the tree.\n var root = EMPTY;\n\n // Walks a tree, invoking all the cancelers. Returns the table of pending\n // cancellation fibers.\n function kill(error, par, cb) {\n var step = par;\n var head = null;\n var tail = null;\n var count = 0;\n var kills = {};\n var tmp, kid;\n\n loop: while (true) {\n tmp = null;\n\n switch (step.tag) {\n case FORKED:\n if (step._3 === EMPTY) {\n tmp = fibers[step._1];\n kills[count++] = tmp.kill(error, function (result) {\n return function () {\n count--;\n if (count === 0) {\n cb(result)();\n }\n };\n });\n }\n // Terminal case.\n if (head === null) {\n break loop;\n }\n // Go down the right side of the tree.\n step = head._2;\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n break;\n case MAP:\n step = step._2;\n break;\n case APPLY:\n case ALT:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = step;\n step = step._1;\n break;\n }\n }\n\n if (count === 0) {\n cb(util.right(void 0))();\n } else {\n // Run the cancelation effects. We alias `count` because it's mutable.\n kid = 0;\n tmp = count;\n for (; kid < tmp; kid++) {\n kills[kid] = kills[kid]();\n }\n }\n\n return kills;\n }\n\n // When a fiber resolves, we need to bubble back up the tree with the\n // result, computing the applicative nodes.\n function join(result, head, tail) {\n var fail, step, lhs, rhs, tmp, kid;\n\n if (util.isLeft(result)) {\n fail = result;\n step = null;\n } else {\n step = result;\n fail = null;\n }\n\n loop: while (true) {\n lhs = null;\n rhs = null;\n tmp = null;\n kid = null;\n\n // We should never continue if the entire tree has been interrupted.\n if (interrupt !== null) {\n return;\n }\n\n // We've made it all the way to the root of the tree, which means\n // the tree has fully evaluated.\n if (head === null) {\n cb(fail || step)();\n return;\n }\n\n // The tree has already been computed, so we shouldn't try to do it\n // again. This should never happen.\n // TODO: Remove this?\n if (head._3 !== EMPTY) {\n return;\n }\n\n switch (head.tag) {\n case MAP:\n if (fail === null) {\n head._3 = util.right(head._1(util.fromRight(step)));\n step = head._3;\n } else {\n head._3 = fail;\n }\n break;\n case APPLY:\n lhs = head._1._3;\n rhs = head._2._3;\n // If we have a failure we should kill the other side because we\n // can't possible yield a result anymore.\n if (fail) {\n head._3 = fail;\n tmp = true;\n kid = killId++;\n\n kills[kid] = kill(early, fail === lhs ? head._2 : head._1, function (/* unused */) {\n return function () {\n delete kills[kid];\n if (tmp) {\n tmp = false;\n } else if (tail === null) {\n join(fail, null, null);\n } else {\n join(fail, tail._1, tail._2);\n }\n };\n });\n\n if (tmp) {\n tmp = false;\n return;\n }\n } else if (lhs === EMPTY || rhs === EMPTY) {\n // We can only proceed if both sides have resolved.\n return;\n } else {\n step = util.right(util.fromRight(lhs)(util.fromRight(rhs)));\n head._3 = step;\n }\n break;\n case ALT:\n lhs = head._1._3;\n rhs = head._2._3;\n // We can only proceed if both have resolved or we have a success\n if (lhs === EMPTY && util.isLeft(rhs) || rhs === EMPTY && util.isLeft(lhs)) {\n return;\n }\n // If both sides resolve with an error, we should continue with the\n // first error\n if (lhs !== EMPTY && util.isLeft(lhs) && rhs !== EMPTY && util.isLeft(rhs)) {\n fail = step === lhs ? rhs : lhs;\n step = null;\n head._3 = fail;\n } else {\n head._3 = step;\n tmp = true;\n kid = killId++;\n // Once a side has resolved, we need to cancel the side that is still\n // pending before we can continue.\n kills[kid] = kill(early, step === lhs ? head._2 : head._1, function (/* unused */) {\n return function () {\n delete kills[kid];\n if (tmp) {\n tmp = false;\n } else if (tail === null) {\n join(step, null, null);\n } else {\n join(step, tail._1, tail._2);\n }\n };\n });\n\n if (tmp) {\n tmp = false;\n return;\n }\n }\n break;\n }\n\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n }\n }\n\n function resolve(fiber) {\n return function (result) {\n return function () {\n delete fibers[fiber._1];\n fiber._3 = result;\n join(result, fiber._2._1, fiber._2._2);\n };\n };\n }\n\n // Walks the applicative tree, substituting non-applicative nodes with\n // `FORKED` nodes. In this tree, all applicative nodes use the `_3` slot\n // as a mutable slot for memoization. In an unresolved state, the `_3`\n // slot is `EMPTY`. In the cases of `ALT` and `APPLY`, we always walk\n // the left side first, because both operations are left-associative. As\n // we `RETURN` from those branches, we then walk the right side.\n function run() {\n var status = CONTINUE;\n var step = par;\n var head = null;\n var tail = null;\n var tmp, fid;\n\n loop: while (true) {\n tmp = null;\n fid = null;\n\n switch (status) {\n case CONTINUE:\n switch (step.tag) {\n case MAP:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(MAP, step._1, EMPTY, EMPTY);\n step = step._2;\n break;\n case APPLY:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(APPLY, EMPTY, step._2, EMPTY);\n step = step._1;\n break;\n case ALT:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(ALT, EMPTY, step._2, EMPTY);\n step = step._1;\n break;\n default:\n // When we hit a leaf value, we suspend the stack in the `FORKED`.\n // When the fiber resolves, it can bubble back up the tree.\n fid = fiberId++;\n status = RETURN;\n tmp = step;\n step = new Aff(FORKED, fid, new Aff(CONS, head, tail), EMPTY);\n tmp = Fiber(util, supervisor, tmp);\n tmp.onComplete({\n rethrow: false,\n handler: resolve(step)\n })();\n fibers[fid] = tmp;\n if (supervisor) {\n supervisor.register(tmp);\n }\n }\n break;\n case RETURN:\n // Terminal case, we are back at the root.\n if (head === null) {\n break loop;\n }\n // If we are done with the right side, we need to continue down the\n // left. Otherwise we should continue up the stack.\n if (head._1 === EMPTY) {\n head._1 = step;\n status = CONTINUE;\n step = head._2;\n head._2 = EMPTY;\n } else {\n head._2 = step;\n step = head;\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n }\n }\n }\n\n // Keep a reference to the tree root so it can be cancelled.\n root = step;\n\n for (fid = 0; fid < fiberId; fid++) {\n fibers[fid].run();\n }\n }\n\n // Cancels the entire tree. If there are already subtrees being canceled,\n // we need to first cancel those joins. We will then add fresh joins for\n // all pending branches including those that were in the process of being\n // canceled.\n function cancel(error, cb) {\n interrupt = util.left(error);\n var innerKills;\n for (var kid in kills) {\n if (kills.hasOwnProperty(kid)) {\n innerKills = kills[kid];\n for (kid in innerKills) {\n if (innerKills.hasOwnProperty(kid)) {\n innerKills[kid]();\n }\n }\n }\n }\n\n kills = null;\n var newKills = kill(error, root, cb);\n\n return function (killError) {\n return new Aff(ASYNC, function (killCb) {\n return function () {\n for (var kid in newKills) {\n if (newKills.hasOwnProperty(kid)) {\n newKills[kid]();\n }\n }\n return nonCanceler;\n };\n });\n };\n }\n\n run();\n\n return function (killError) {\n return new Aff(ASYNC, function (killCb) {\n return function () {\n return cancel(killError, killCb);\n };\n });\n };\n }\n\n function sequential(util, supervisor, par) {\n return new Aff(ASYNC, function (cb) {\n return function () {\n return runPar(util, supervisor, par, cb);\n };\n });\n }\n\n Aff.EMPTY = EMPTY;\n Aff.Pure = AffCtr(PURE);\n Aff.Throw = AffCtr(THROW);\n Aff.Catch = AffCtr(CATCH);\n Aff.Sync = AffCtr(SYNC);\n Aff.Async = AffCtr(ASYNC);\n Aff.Bind = AffCtr(BIND);\n Aff.Bracket = AffCtr(BRACKET);\n Aff.Fork = AffCtr(FORK);\n Aff.Seq = AffCtr(SEQ);\n Aff.ParMap = AffCtr(MAP);\n Aff.ParApply = AffCtr(APPLY);\n Aff.ParAlt = AffCtr(ALT);\n Aff.Fiber = Fiber;\n Aff.Supervisor = Supervisor;\n Aff.Scheduler = Scheduler;\n Aff.nonCanceler = nonCanceler;\n\n return Aff;\n }();\n\n exports._pure = Aff.Pure;\n\n exports._throwError = Aff.Throw;\n\n exports._catchError = function (aff) {\n return function (k) {\n return Aff.Catch(aff, k);\n };\n };\n\n exports._map = function (f) {\n return function (aff) {\n if (aff.tag === Aff.Pure.tag) {\n return Aff.Pure(f(aff._1));\n } else {\n return Aff.Bind(aff, function (value) {\n return Aff.Pure(f(value));\n });\n }\n };\n };\n\n exports._bind = function (aff) {\n return function (k) {\n return Aff.Bind(aff, k);\n };\n };\n\n exports._fork = function (immediate) {\n return function (aff) {\n return Aff.Fork(immediate, aff);\n };\n };\n\n exports._liftEffect = Aff.Sync;\n\n exports._parAffMap = function (f) {\n return function (aff) {\n return Aff.ParMap(f, aff);\n };\n };\n\n exports._parAffApply = function (aff1) {\n return function (aff2) {\n return Aff.ParApply(aff1, aff2);\n };\n };\n\n exports.makeAff = Aff.Async;\n\n exports.generalBracket = function (acquire) {\n return function (options) {\n return function (k) {\n return Aff.Bracket(acquire, options, k);\n };\n };\n };\n\n exports._makeFiber = function (util, aff) {\n return function () {\n return Aff.Fiber(util, null, aff);\n };\n }; \n\n exports._sequential = Aff.Seq;\n})(PS[\"Effect.Aff\"] = PS[\"Effect.Aff\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.pureE = function (a) {\n return function () {\n return a;\n };\n };\n\n exports.bindE = function (a) {\n return function (f) {\n return function () {\n return f(a())();\n };\n };\n };\n})(PS[\"Effect\"] = PS[\"Effect\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect\"] = $PS[\"Effect\"] || {};\n var exports = $PS[\"Effect\"];\n var $foreign = $PS[\"Effect\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"]; \n var monadEffect = new Control_Monad.Monad(function () {\n return applicativeEffect;\n }, function () {\n return bindEffect;\n });\n var bindEffect = new Control_Bind.Bind(function () {\n return applyEffect;\n }, $foreign.bindE);\n var applyEffect = new Control_Apply.Apply(function () {\n return functorEffect;\n }, Control_Monad.ap(monadEffect));\n var applicativeEffect = new Control_Applicative.Applicative(function () {\n return applyEffect;\n }, $foreign.pureE);\n var functorEffect = new Data_Functor.Functor(Control_Applicative.liftA1(applicativeEffect));\n var semigroupEffect = function (dictSemigroup) {\n return new Data_Semigroup.Semigroup(Control_Apply.lift2(applyEffect)(Data_Semigroup.append(dictSemigroup)));\n };\n var monoidEffect = function (dictMonoid) {\n return new Data_Monoid.Monoid(function () {\n return semigroupEffect(dictMonoid.Semigroup0());\n }, $foreign.pureE(Data_Monoid.mempty(dictMonoid)));\n };\n exports[\"functorEffect\"] = functorEffect;\n exports[\"applicativeEffect\"] = applicativeEffect;\n exports[\"bindEffect\"] = bindEffect;\n exports[\"monadEffect\"] = monadEffect;\n exports[\"monoidEffect\"] = monoidEffect;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.new = function (val) {\n return function () {\n return { value: val };\n };\n };\n\n exports.read = function (ref) {\n return function () {\n return ref.value;\n };\n };\n\n exports[\"modify'\"] = function (f) {\n return function (ref) {\n return function () {\n var t = f(ref.value);\n ref.value = t.state;\n return t.value;\n };\n };\n };\n\n exports.write = function (val) {\n return function (ref) {\n return function () {\n ref.value = val;\n return {};\n };\n };\n };\n})(PS[\"Effect.Ref\"] = PS[\"Effect.Ref\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Ref\"] = $PS[\"Effect.Ref\"] || {};\n var exports = $PS[\"Effect.Ref\"];\n var $foreign = $PS[\"Effect.Ref\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Effect = $PS[\"Effect\"]; \n var modify = function (f) {\n return $foreign[\"modify'\"](function (s) {\n var s$prime = f(s);\n return {\n state: s$prime,\n value: s$prime\n };\n });\n };\n var modify_ = function (f) {\n return function (s) {\n return Data_Functor[\"void\"](Effect.functorEffect)(modify(f)(s));\n };\n };\n exports[\"modify_\"] = modify_;\n exports[\"new\"] = $foreign[\"new\"];\n exports[\"read\"] = $foreign.read;\n exports[\"modify'\"] = $foreign[\"modify'\"];\n exports[\"write\"] = $foreign.write;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Rec.Class\"] = $PS[\"Control.Monad.Rec.Class\"] || {};\n var exports = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Ref = $PS[\"Effect.Ref\"]; \n var Loop = (function () {\n function Loop(value0) {\n this.value0 = value0;\n };\n Loop.create = function (value0) {\n return new Loop(value0);\n };\n return Loop;\n })();\n var Done = (function () {\n function Done(value0) {\n this.value0 = value0;\n };\n Done.create = function (value0) {\n return new Done(value0);\n };\n return Done;\n })();\n var MonadRec = function (Monad0, tailRecM) {\n this.Monad0 = Monad0;\n this.tailRecM = tailRecM;\n };\n var tailRecM = function (dict) {\n return dict.tailRecM;\n }; \n var monadRecEffect = new MonadRec(function () {\n return Effect.monadEffect;\n }, function (f) {\n return function (a) {\n var fromDone = function (v) {\n if (v instanceof Done) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 113, column 30 - line 113, column 44): \" + [ v.constructor.name ]);\n };\n return function __do() {\n var r = Control_Bind.bindFlipped(Effect.bindEffect)(Effect_Ref[\"new\"])(f(a))();\n (function () {\n while (!(function __do() {\n var v = Effect_Ref.read(r)();\n if (v instanceof Loop) {\n var e = f(v.value0)();\n Effect_Ref.write(e)(r)();\n return false;\n };\n if (v instanceof Done) {\n return true;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 104, column 22 - line 109, column 28): \" + [ v.constructor.name ]);\n })()) {\n\n };\n return {};\n })();\n return Data_Functor.map(Effect.functorEffect)(fromDone)(Effect_Ref.read(r))();\n };\n };\n });\n exports[\"Loop\"] = Loop;\n exports[\"Done\"] = Done;\n exports[\"MonadRec\"] = MonadRec;\n exports[\"tailRecM\"] = tailRecM;\n exports[\"monadRecEffect\"] = monadRecEffect;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Parallel.Class\"] = $PS[\"Control.Parallel.Class\"] || {};\n var exports = $PS[\"Control.Parallel.Class\"];\n var Parallel = function (Applicative1, Monad0, parallel, sequential) {\n this.Applicative1 = Applicative1;\n this.Monad0 = Monad0;\n this.parallel = parallel;\n this.sequential = sequential;\n };\n var sequential = function (dict) {\n return dict.sequential;\n };\n var parallel = function (dict) {\n return dict.parallel;\n };\n exports[\"parallel\"] = parallel;\n exports[\"sequential\"] = sequential;\n exports[\"Parallel\"] = Parallel;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Parallel\"] = $PS[\"Control.Parallel\"] || {};\n var exports = $PS[\"Control.Parallel\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Parallel_Class = $PS[\"Control.Parallel.Class\"];\n var Data_Foldable = $PS[\"Data.Foldable\"]; \n var parTraverse_ = function (dictParallel) {\n return function (dictFoldable) {\n return function (f) {\n var $17 = Control_Parallel_Class.sequential(dictParallel);\n var $18 = Data_Foldable.traverse_(dictParallel.Applicative1())(dictFoldable)((function () {\n var $20 = Control_Parallel_Class.parallel(dictParallel);\n return function ($21) {\n return $20(f($21));\n };\n })());\n return function ($19) {\n return $17($18($19));\n };\n };\n };\n };\n var parSequence_ = function (dictParallel) {\n return function (dictFoldable) {\n return parTraverse_(dictParallel)(dictFoldable)(Control_Category.identity(Control_Category.categoryFn));\n };\n };\n exports[\"parSequence_\"] = parSequence_;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Class\"] = $PS[\"Effect.Class\"] || {};\n var exports = $PS[\"Effect.Class\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Effect = $PS[\"Effect\"]; \n var MonadEffect = function (Monad0, liftEffect) {\n this.Monad0 = Monad0;\n this.liftEffect = liftEffect;\n };\n var monadEffectEffect = new MonadEffect(function () {\n return Effect.monadEffect;\n }, Control_Category.identity(Control_Category.categoryFn));\n var liftEffect = function (dict) {\n return dict.liftEffect;\n };\n exports[\"liftEffect\"] = liftEffect;\n exports[\"MonadEffect\"] = MonadEffect;\n exports[\"monadEffectEffect\"] = monadEffectEffect;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafePerformEffect = function (f) {\n return f();\n };\n})(PS[\"Effect.Unsafe\"] = PS[\"Effect.Unsafe\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Unsafe\"] = $PS[\"Effect.Unsafe\"] || {};\n var exports = $PS[\"Effect.Unsafe\"];\n var $foreign = $PS[\"Effect.Unsafe\"];\n exports[\"unsafePerformEffect\"] = $foreign.unsafePerformEffect;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // module Partial.Unsafe\n\n exports.unsafePartial = function (f) {\n return f();\n };\n})(PS[\"Partial.Unsafe\"] = PS[\"Partial.Unsafe\"] || {});\n(function(exports) {\n \"use strict\";\n\n // module Partial\n\n exports.crashWith = function () {\n return function (msg) {\n throw new Error(msg);\n };\n };\n})(PS[\"Partial\"] = PS[\"Partial\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Partial\"] = $PS[\"Partial\"] || {};\n var exports = $PS[\"Partial\"];\n var $foreign = $PS[\"Partial\"];\n exports[\"crashWith\"] = $foreign.crashWith;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Partial.Unsafe\"] = $PS[\"Partial.Unsafe\"] || {};\n var exports = $PS[\"Partial.Unsafe\"];\n var $foreign = $PS[\"Partial.Unsafe\"];\n var Partial = $PS[\"Partial\"];\n var unsafeCrashWith = function (msg) {\n return $foreign.unsafePartial(function (dictPartial) {\n return Partial.crashWith()(msg);\n });\n };\n exports[\"unsafeCrashWith\"] = unsafeCrashWith;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // module Unsafe.Coerce\n\n exports.unsafeCoerce = function (x) {\n return x;\n };\n})(PS[\"Unsafe.Coerce\"] = PS[\"Unsafe.Coerce\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Unsafe.Coerce\"] = $PS[\"Unsafe.Coerce\"] || {};\n var exports = $PS[\"Unsafe.Coerce\"];\n var $foreign = $PS[\"Unsafe.Coerce\"];\n exports[\"unsafeCoerce\"] = $foreign.unsafeCoerce;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Aff\"] = $PS[\"Effect.Aff\"] || {};\n var exports = $PS[\"Effect.Aff\"];\n var $foreign = $PS[\"Effect.Aff\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Parallel = $PS[\"Control.Parallel\"];\n var Control_Parallel_Class = $PS[\"Control.Parallel.Class\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Unsafe = $PS[\"Effect.Unsafe\"];\n var Partial_Unsafe = $PS[\"Partial.Unsafe\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Canceler = function (x) {\n return x;\n };\n var suspendAff = $foreign[\"_fork\"](false);\n var functorParAff = new Data_Functor.Functor($foreign[\"_parAffMap\"]);\n var functorAff = new Data_Functor.Functor($foreign[\"_map\"]);\n var forkAff = $foreign[\"_fork\"](true);\n var ffiUtil = (function () {\n var unsafeFromRight = function (v) {\n if (v instanceof Data_Either.Right) {\n return v.value0;\n };\n if (v instanceof Data_Either.Left) {\n return Partial_Unsafe.unsafeCrashWith(\"unsafeFromRight: Left\");\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 400, column 21 - line 402, 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 395, column 20 - line 397, column 54): \" + [ v.constructor.name ]);\n };\n var isLeft = function (v) {\n if (v instanceof Data_Either.Left) {\n return true;\n };\n if (v instanceof Data_Either.Right) {\n return false;\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 390, column 12 - line 392, column 20): \" + [ v.constructor.name ]);\n };\n return {\n isLeft: isLeft,\n fromLeft: unsafeFromLeft,\n fromRight: unsafeFromRight,\n left: Data_Either.Left.create,\n right: Data_Either.Right.create\n };\n })();\n var makeFiber = function (aff) {\n return $foreign[\"_makeFiber\"](ffiUtil, aff);\n };\n var launchAff = function (aff) {\n return function __do() {\n var fiber = makeFiber(aff)();\n fiber.run();\n return fiber;\n };\n };\n var launchAff_ = (function () {\n var $43 = Data_Functor[\"void\"](Effect.functorEffect);\n return function ($44) {\n return $43(launchAff($44));\n };\n })();\n var bracket = function (acquire) {\n return function (completed) {\n return $foreign.generalBracket(acquire)({\n killed: Data_Function[\"const\"](completed),\n failed: Data_Function[\"const\"](completed),\n completed: Data_Function[\"const\"](completed)\n });\n };\n };\n var applyParAff = new Control_Apply.Apply(function () {\n return functorParAff;\n }, $foreign[\"_parAffApply\"]);\n var monadAff = new Control_Monad.Monad(function () {\n return applicativeAff;\n }, function () {\n return bindAff;\n });\n var bindAff = new Control_Bind.Bind(function () {\n return applyAff;\n }, $foreign[\"_bind\"]);\n var applyAff = new Control_Apply.Apply(function () {\n return functorAff;\n }, Control_Monad.ap(monadAff));\n var applicativeAff = new Control_Applicative.Applicative(function () {\n return applyAff;\n }, $foreign[\"_pure\"]);\n var $$finally = function (fin) {\n return function (a) {\n return bracket(Control_Applicative.pure(applicativeAff)(Data_Unit.unit))(Data_Function[\"const\"](fin))(Data_Function[\"const\"](a));\n };\n };\n var monadEffectAff = new Effect_Class.MonadEffect(function () {\n return monadAff;\n }, $foreign[\"_liftEffect\"]);\n var effectCanceler = (function () {\n var $45 = Effect_Class.liftEffect(monadEffectAff);\n return function ($46) {\n return Canceler(Data_Function[\"const\"]($45($46)));\n };\n })();\n var joinFiber = function (v) {\n return $foreign.makeAff(function (k) {\n return Data_Functor.map(Effect.functorEffect)(effectCanceler)(v.join(k));\n });\n };\n var functorFiber = new Data_Functor.Functor(function (f) {\n return function (t) {\n return Effect_Unsafe.unsafePerformEffect(makeFiber(Data_Functor.map(functorAff)(f)(joinFiber(t))));\n };\n });\n var killFiber = function (e) {\n return function (v) {\n return Control_Bind.bind(bindAff)(Effect_Class.liftEffect(monadEffectAff)(v.isSuspended))(function (v1) {\n if (v1) {\n return Effect_Class.liftEffect(monadEffectAff)(Data_Functor[\"void\"](Effect.functorEffect)(v.kill(e, Data_Function[\"const\"](Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit)))));\n };\n return $foreign.makeAff(function (k) {\n return Data_Functor.map(Effect.functorEffect)(effectCanceler)(v.kill(e, k));\n });\n });\n };\n }; \n var monadThrowAff = new Control_Monad_Error_Class.MonadThrow(function () {\n return monadAff;\n }, $foreign[\"_throwError\"]);\n var monadErrorAff = new Control_Monad_Error_Class.MonadError(function () {\n return monadThrowAff;\n }, $foreign[\"_catchError\"]); \n var runAff = function (k) {\n return function (aff) {\n return launchAff(Control_Bind.bindFlipped(bindAff)((function () {\n var $49 = Effect_Class.liftEffect(monadEffectAff);\n return function ($50) {\n return $49(k($50));\n };\n })())(Control_Monad_Error_Class[\"try\"](monadErrorAff)(aff)));\n };\n };\n var runAff_ = function (k) {\n return function (aff) {\n return Data_Functor[\"void\"](Effect.functorEffect)(runAff(k)(aff));\n };\n };\n var parallelAff = new Control_Parallel_Class.Parallel(function () {\n return applicativeParAff;\n }, function () {\n return monadAff;\n }, Unsafe_Coerce.unsafeCoerce, $foreign[\"_sequential\"]);\n var applicativeParAff = new Control_Applicative.Applicative(function () {\n return applyParAff;\n }, (function () {\n var $53 = Control_Parallel_Class.parallel(parallelAff);\n var $54 = Control_Applicative.pure(applicativeAff);\n return function ($55) {\n return $53($54($55));\n };\n })());\n var semigroupCanceler = new Data_Semigroup.Semigroup(function (v) {\n return function (v1) {\n return function (err) {\n return Control_Parallel.parSequence_(parallelAff)(Data_Foldable.foldableArray)([ v(err), v1(err) ]);\n };\n };\n });\n var monadRecAff = new Control_Monad_Rec_Class.MonadRec(function () {\n return monadAff;\n }, function (k) {\n var go = function (a) {\n return Control_Bind.bind(bindAff)(k(a))(function (res) {\n if (res instanceof Control_Monad_Rec_Class.Done) {\n return Control_Applicative.pure(applicativeAff)(res.value0);\n };\n if (res instanceof Control_Monad_Rec_Class.Loop) {\n return go(res.value0);\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 100, column 7 - line 102, column 22): \" + [ res.constructor.name ]);\n });\n };\n return go;\n });\n var nonCanceler = Data_Function[\"const\"](Control_Applicative.pure(applicativeAff)(Data_Unit.unit));\n var monoidCanceler = new Data_Monoid.Monoid(function () {\n return semigroupCanceler;\n }, nonCanceler);\n exports[\"launchAff\"] = launchAff;\n exports[\"launchAff_\"] = launchAff_;\n exports[\"runAff_\"] = runAff_;\n exports[\"forkAff\"] = forkAff;\n exports[\"suspendAff\"] = suspendAff;\n exports[\"finally\"] = $$finally;\n exports[\"killFiber\"] = killFiber;\n exports[\"joinFiber\"] = joinFiber;\n exports[\"nonCanceler\"] = nonCanceler;\n exports[\"effectCanceler\"] = effectCanceler;\n exports[\"functorAff\"] = functorAff;\n exports[\"applicativeAff\"] = applicativeAff;\n exports[\"bindAff\"] = bindAff;\n exports[\"monadAff\"] = monadAff;\n exports[\"monadRecAff\"] = monadRecAff;\n exports[\"monadErrorAff\"] = monadErrorAff;\n exports[\"monadEffectAff\"] = monadEffectAff;\n exports[\"applicativeParAff\"] = applicativeParAff;\n exports[\"parallelAff\"] = parallelAff;\n exports[\"functorFiber\"] = functorFiber;\n exports[\"monoidCanceler\"] = monoidCanceler;\n exports[\"makeAff\"] = $foreign.makeAff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Aff.Compat\"] = $PS[\"Effect.Aff.Compat\"] || {};\n var exports = $PS[\"Effect.Aff.Compat\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var fromEffectFnAff = function (v) {\n return Effect_Aff.makeAff(function (k) {\n return function __do() {\n var v1 = v(function ($4) {\n return k(Data_Either.Left.create($4))();\n }, function ($5) {\n return k(Data_Either.Right.create($5))();\n });\n return function (e) {\n return Effect_Aff.makeAff(function (k2) {\n return function __do() {\n v1(e, function ($6) {\n return k2(Data_Either.Left.create($6))();\n }, function ($7) {\n return k2(Data_Either.Right.create($7))();\n });\n return Effect_Aff.nonCanceler;\n };\n });\n };\n };\n });\n };\n exports[\"fromEffectFnAff\"] = fromEffectFnAff;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafeToForeign = function (value) {\n return value;\n };\n\n exports.unsafeFromForeign = function (value) {\n return value;\n };\n\n exports.typeOf = function (value) {\n return typeof value;\n };\n\n exports.tagOf = function (value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n };\n})(PS[\"Foreign\"] = PS[\"Foreign\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Boolean\"] = $PS[\"Data.Boolean\"] || {};\n var exports = $PS[\"Data.Boolean\"];\n var otherwise = true;\n exports[\"otherwise\"] = otherwise;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Foreign\"] = $PS[\"Foreign\"] || {};\n var exports = $PS[\"Foreign\"];\n var $foreign = $PS[\"Foreign\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_List_NonEmpty = $PS[\"Data.List.NonEmpty\"]; \n var ForeignError = (function () {\n function ForeignError(value0) {\n this.value0 = value0;\n };\n ForeignError.create = function (value0) {\n return new ForeignError(value0);\n };\n return ForeignError;\n })();\n var TypeMismatch = (function () {\n function TypeMismatch(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n TypeMismatch.create = function (value0) {\n return function (value1) {\n return new TypeMismatch(value0, value1);\n };\n };\n return TypeMismatch;\n })();\n var fail = (function () {\n var $107 = Control_Monad_Error_Class.throwError(Control_Monad_Except_Trans.monadThrowExceptT(Data_Identity.monadIdentity));\n return function ($108) {\n return $107(Data_List_NonEmpty.singleton($108));\n };\n })();\n var unsafeReadTagged = function (tag) {\n return function (value) {\n if ($foreign.tagOf(value) === tag) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))($foreign.unsafeFromForeign(value));\n };\n if (Data_Boolean.otherwise) {\n return fail(new TypeMismatch(tag, $foreign.tagOf(value)));\n };\n throw new Error(\"Failed pattern match at Foreign (line 106, column 1 - line 106, column 55): \" + [ tag.constructor.name, value.constructor.name ]);\n };\n };\n var readBoolean = unsafeReadTagged(\"Boolean\");\n var readString = unsafeReadTagged(\"String\");\n exports[\"ForeignError\"] = ForeignError;\n exports[\"TypeMismatch\"] = TypeMismatch;\n exports[\"unsafeReadTagged\"] = unsafeReadTagged;\n exports[\"readString\"] = readString;\n exports[\"readBoolean\"] = readBoolean;\n exports[\"fail\"] = fail;\n exports[\"unsafeToForeign\"] = $foreign.unsafeToForeign;\n exports[\"typeOf\"] = $foreign.typeOf;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Affjax\"] = $PS[\"Affjax\"] || {};\n var exports = $PS[\"Affjax\"];\n var $foreign = $PS[\"Affjax\"];\n var Affjax_RequestBody = $PS[\"Affjax.RequestBody\"];\n var Affjax_RequestHeader = $PS[\"Affjax.RequestHeader\"];\n var Affjax_ResponseFormat = $PS[\"Affjax.ResponseFormat\"];\n var Affjax_ResponseHeader = $PS[\"Affjax.ResponseHeader\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Control_Monad_Except = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Parser = $PS[\"Data.Argonaut.Parser\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_FormURLEncoded = $PS[\"Data.FormURLEncoded\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_HTTP_Method = $PS[\"Data.HTTP.Method\"];\n var Data_HeytingAlgebra = $PS[\"Data.HeytingAlgebra\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_List_NonEmpty = $PS[\"Data.List.NonEmpty\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_Compat = $PS[\"Effect.Aff.Compat\"];\n var Foreign = $PS[\"Foreign\"]; \n var RequestContentError = (function () {\n function RequestContentError(value0) {\n this.value0 = value0;\n };\n RequestContentError.create = function (value0) {\n return new RequestContentError(value0);\n };\n return RequestContentError;\n })();\n var ResponseBodyError = (function () {\n function ResponseBodyError(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ResponseBodyError.create = function (value0) {\n return function (value1) {\n return new ResponseBodyError(value0, value1);\n };\n };\n return ResponseBodyError;\n })();\n var XHRError = (function () {\n function XHRError(value0) {\n this.value0 = value0;\n };\n XHRError.create = function (value0) {\n return new XHRError(value0);\n };\n return XHRError;\n })();\n var request = function (req) {\n var parseJSON = function (v) {\n if (v === \"\") {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Data_Argonaut_Core.jsonEmptyObject);\n };\n return Data_Either.either(function ($47) {\n return Foreign.fail(Foreign.ForeignError.create($47));\n })(Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity)))(Data_Argonaut_Parser.jsonParser(v));\n };\n var fromResponse = (function () {\n if (req.responseFormat instanceof Affjax_ResponseFormat[\"ArrayBuffer\"]) {\n return Foreign.unsafeReadTagged(\"ArrayBuffer\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Blob) {\n return Foreign.unsafeReadTagged(\"Blob\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Document) {\n return Foreign.unsafeReadTagged(\"Document\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Json) {\n return Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(function ($48) {\n return req.responseFormat.value0(parseJSON($48));\n })(Foreign.unsafeReadTagged(\"String\"));\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat[\"String\"]) {\n return Foreign.unsafeReadTagged(\"String\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Ignore) {\n return Data_Function[\"const\"](req.responseFormat.value0(Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Data_Unit.unit)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 237, column 18 - line 243, column 57): \" + [ req.responseFormat.constructor.name ]);\n })();\n var extractContent = function (v) {\n if (v instanceof Affjax_RequestBody.ArrayView) {\n return Data_Either.Right.create(v.value0(Foreign.unsafeToForeign));\n };\n if (v instanceof Affjax_RequestBody.Blob) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.Document) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody[\"String\"]) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.FormData) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.FormURLEncoded) {\n return Data_Either.note(\"Body contains values that cannot be encoded as application/x-www-form-urlencoded\")(Data_Functor.map(Data_Maybe.functorMaybe)(Foreign.unsafeToForeign)(Data_FormURLEncoded.encode(v.value0)));\n };\n if (v instanceof Affjax_RequestBody.Json) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(Data_Argonaut_Core.stringify(v.value0)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 203, column 20 - line 218, column 69): \" + [ v.constructor.name ]);\n };\n var addHeader = function (mh) {\n return function (hs) {\n if (mh instanceof Data_Maybe.Just && !Data_Foldable.any(Data_Foldable.foldableArray)(Data_HeytingAlgebra.heytingAlgebraBoolean)(Data_Function.on(Data_Eq.eq(Data_Eq.eqString))(Affjax_RequestHeader.name)(mh.value0))(hs)) {\n return Data_Array.snoc(hs)(mh.value0);\n };\n return hs;\n };\n };\n var headers = function (reqContent) {\n return addHeader(Data_Functor.map(Data_Maybe.functorMaybe)(Affjax_RequestHeader.ContentType.create)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Affjax_RequestBody.toMediaType)(reqContent)))(addHeader(Data_Functor.map(Data_Maybe.functorMaybe)(Affjax_RequestHeader.Accept.create)(Affjax_ResponseFormat.toMediaType(req.responseFormat)))(req.headers));\n };\n var ajaxRequest = function (v) {\n return {\n method: Data_HTTP_Method.print(req.method),\n url: req.url,\n headers: Data_Functor.map(Data_Functor.functorArray)(function (h) {\n return {\n field: Affjax_RequestHeader.name(h),\n value: Affjax_RequestHeader.value(h)\n };\n })(headers(req.content)),\n content: v,\n responseType: Affjax_ResponseFormat.toResponseType(req.responseFormat),\n username: Data_Nullable.toNullable(req.username),\n password: Data_Nullable.toNullable(req.password),\n withCredentials: req.withCredentials\n };\n };\n var send = function (content) {\n return Data_Functor.mapFlipped(Effect_Aff.functorAff)(Control_Monad_Error_Class[\"try\"](Effect_Aff.monadErrorAff)(Effect_Aff_Compat.fromEffectFnAff($foreign[\"_ajax\"](Affjax_ResponseHeader.ResponseHeader.create, ajaxRequest(content)))))(function (v) {\n if (v instanceof Data_Either.Right) {\n var v1 = Control_Monad_Except.runExcept(fromResponse(v.value0.body));\n if (v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(new ResponseBodyError(Data_List_NonEmpty.head(v1.value0), v.value0));\n };\n if (v1 instanceof Data_Either.Right) {\n return new Data_Either.Right({\n body: v1.value0,\n headers: v.value0.headers,\n status: v.value0.status,\n statusText: v.value0.statusText\n });\n };\n throw new Error(\"Failed pattern match at Affjax (line 184, column 9 - line 186, column 52): \" + [ v1.constructor.name ]);\n };\n if (v instanceof Data_Either.Left) {\n return new Data_Either.Left(new XHRError(v.value0));\n };\n throw new Error(\"Failed pattern match at Affjax (line 182, column 86 - line 188, 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 Control_Applicative.pure(Effect_Aff.applicativeAff)(new Data_Either.Left(new RequestContentError(v.value0)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 173, column 7 - line 177, column 48): \" + [ v.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Affjax (line 169, column 3 - line 177, column 48): \" + [ req.content.constructor.name ]);\n };\n var defaultRequest = {\n method: new Data_Either.Left(Data_HTTP_Method.GET.value),\n url: \"/\",\n headers: [ ],\n content: Data_Maybe.Nothing.value,\n username: Data_Maybe.Nothing.value,\n password: Data_Maybe.Nothing.value,\n withCredentials: false,\n responseFormat: Affjax_ResponseFormat.ignore\n };\n exports[\"defaultRequest\"] = defaultRequest;\n exports[\"request\"] = request;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Affjax.StatusCode\"] = $PS[\"Affjax.StatusCode\"] || {};\n var exports = $PS[\"Affjax.StatusCode\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var eqStatusCode = new Data_Eq.Eq(function (x) {\n return function (y) {\n return x === y;\n };\n });\n exports[\"eqStatusCode\"] = eqStatusCode;\n})(PS);\n(function(exports) {\n \"use strict\";\n var moment =require(\"moment\"); \n\n exports._app = function() {\n return app;\n }\n\n exports._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\n exports._closeWindow = function (window) {\n window.close();\n };\n\n exports._setFocus = function(elemId) {\n document.getElementById(elemId).focus();\n };\n})(PS[\"Globals\"] = PS[\"Globals\"] || {});\n(function(exports) {\n \"use strict\";\n\n var unsafeCompareImpl = function (lt) {\n return function (eq) {\n return function (gt) {\n return function (x) {\n return function (y) {\n return x < y ? lt : x === y ? eq : gt;\n };\n };\n };\n };\n }; \n exports.ordIntImpl = unsafeCompareImpl; \n exports.ordStringImpl = unsafeCompareImpl;\n exports.ordCharImpl = unsafeCompareImpl;\n})(PS[\"Data.Ord\"] = PS[\"Data.Ord\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Ordering\"] = $PS[\"Data.Ordering\"] || {};\n var exports = $PS[\"Data.Ordering\"]; \n var LT = (function () {\n function LT() {\n\n };\n LT.value = new LT();\n return LT;\n })();\n var GT = (function () {\n function GT() {\n\n };\n GT.value = new GT();\n return GT;\n })();\n var EQ = (function () {\n function EQ() {\n\n };\n EQ.value = new EQ();\n return EQ;\n })();\n exports[\"LT\"] = LT;\n exports[\"GT\"] = GT;\n exports[\"EQ\"] = EQ;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Ord\"] = $PS[\"Data.Ord\"] || {};\n var exports = $PS[\"Data.Ord\"];\n var $foreign = $PS[\"Data.Ord\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Ordering = $PS[\"Data.Ordering\"];\n var Ord = function (Eq0, compare) {\n this.Eq0 = Eq0;\n this.compare = compare;\n }; \n var ordUnit = new Ord(function () {\n return Data_Eq.eqUnit;\n }, function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n });\n var ordString = new Ord(function () {\n return Data_Eq.eqString;\n }, $foreign.ordStringImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value));\n var ordInt = new Ord(function () {\n return Data_Eq.eqInt;\n }, $foreign.ordIntImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value));\n var ordChar = new Ord(function () {\n return Data_Eq.eqChar;\n }, $foreign.ordCharImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value));\n var compare = function (dict) {\n return dict.compare;\n };\n exports[\"Ord\"] = Ord;\n exports[\"compare\"] = compare;\n exports[\"ordInt\"] = ordInt;\n exports[\"ordString\"] = ordString;\n exports[\"ordChar\"] = ordChar;\n exports[\"ordUnit\"] = ordUnit;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Tuple\"] = $PS[\"Data.Tuple\"] || {};\n var exports = $PS[\"Data.Tuple\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Ordering = $PS[\"Data.Ordering\"]; \n var Tuple = (function () {\n function Tuple(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Tuple.create = function (value0) {\n return function (value1) {\n return new Tuple(value0, value1);\n };\n };\n return Tuple;\n })();\n var snd = function (v) {\n return v.value1;\n };\n var functorTuple = new Data_Functor.Functor(function (f) {\n return function (m) {\n return new Tuple(m.value0, f(m.value1));\n };\n }); \n var fst = function (v) {\n return v.value0;\n }; \n var eqTuple = function (dictEq) {\n return function (dictEq1) {\n return new Data_Eq.Eq(function (x) {\n return function (y) {\n return Data_Eq.eq(dictEq)(x.value0)(y.value0) && Data_Eq.eq(dictEq1)(x.value1)(y.value1);\n };\n });\n };\n };\n var ordTuple = function (dictOrd) {\n return function (dictOrd1) {\n return new Data_Ord.Ord(function () {\n return eqTuple(dictOrd.Eq0())(dictOrd1.Eq0());\n }, function (x) {\n return function (y) {\n var v = Data_Ord.compare(dictOrd)(x.value0)(y.value0);\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n return Data_Ord.compare(dictOrd1)(x.value1)(y.value1);\n };\n });\n };\n };\n exports[\"Tuple\"] = Tuple;\n exports[\"fst\"] = fst;\n exports[\"snd\"] = snd;\n exports[\"ordTuple\"] = ordTuple;\n exports[\"functorTuple\"] = functorTuple;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Globals\"] = $PS[\"Globals\"] || {};\n var exports = $PS[\"Globals\"];\n var $foreign = $PS[\"Globals\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Effect = $PS[\"Effect\"]; \n var RawHTML = function (x) {\n return x;\n };\n var setFocus = function (s) {\n return Control_Applicative.pure(Effect.applicativeEffect)($foreign[\"_setFocus\"](s));\n };\n var mmoment8601 = function (s) {\n return $foreign[\"_mmoment8601\"](Data_Maybe.Just.create, Data_Maybe.Nothing.value, Data_Tuple.Tuple.create, s);\n };\n var closeWindow = function (win) {\n return Control_Applicative.pure(Effect.applicativeEffect)($foreign[\"_closeWindow\"](win));\n };\n var app$prime = function (v) {\n return $foreign[\"_app\"]();\n };\n exports[\"app'\"] = app$prime;\n exports[\"mmoment8601\"] = mmoment8601;\n exports[\"closeWindow\"] = closeWindow;\n exports[\"RawHTML\"] = RawHTML;\n exports[\"setFocus\"] = setFocus;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Symbol\"] = $PS[\"Data.Symbol\"] || {};\n var exports = $PS[\"Data.Symbol\"]; \n var SProxy = (function () {\n function SProxy() {\n\n };\n SProxy.value = new SProxy();\n return SProxy;\n })();\n var IsSymbol = function (reflectSymbol) {\n this.reflectSymbol = reflectSymbol;\n };\n var reflectSymbol = function (dict) {\n return dict.reflectSymbol;\n };\n exports[\"IsSymbol\"] = IsSymbol;\n exports[\"reflectSymbol\"] = reflectSymbol;\n exports[\"SProxy\"] = SProxy;\n})(PS);\n(function(exports) {\n /* globals exports, JSON */\n \"use strict\";\n\n exports.unsafeStringify = function (x) {\n return JSON.stringify(x);\n }; \n exports.unsafeDecodeURIComponent = decodeURIComponent;\n})(PS[\"Global.Unsafe\"] = PS[\"Global.Unsafe\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Global.Unsafe\"] = $PS[\"Global.Unsafe\"] || {};\n var exports = $PS[\"Global.Unsafe\"];\n var $foreign = $PS[\"Global.Unsafe\"];\n exports[\"unsafeStringify\"] = $foreign.unsafeStringify;\n exports[\"unsafeDecodeURIComponent\"] = $foreign.unsafeDecodeURIComponent;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafeGet = function (label) {\n return function (rec) {\n return rec[label];\n };\n };\n})(PS[\"Record.Unsafe\"] = PS[\"Record.Unsafe\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Record.Unsafe\"] = $PS[\"Record.Unsafe\"] || {};\n var exports = $PS[\"Record.Unsafe\"];\n var $foreign = $PS[\"Record.Unsafe\"];\n exports[\"unsafeGet\"] = $foreign.unsafeGet;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Record\"] = $PS[\"Record\"] || {};\n var exports = $PS[\"Record\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Record_Unsafe = $PS[\"Record.Unsafe\"];\n var get = function (dictIsSymbol) {\n return function (dictCons) {\n return function (l) {\n return function (r) {\n return Record_Unsafe.unsafeGet(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(r);\n };\n };\n };\n };\n exports[\"get\"] = get;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.copyRecord = 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 return copy;\n };\n\n exports.unsafeInsert = function(l) {\n return function(a) {\n return function(rec) {\n rec[l] = a;\n return rec;\n };\n };\n };\n})(PS[\"Record.Builder\"] = PS[\"Record.Builder\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Record.Builder\"] = $PS[\"Record.Builder\"] || {};\n var exports = $PS[\"Record.Builder\"];\n var $foreign = $PS[\"Record.Builder\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Semigroupoid = $PS[\"Control.Semigroupoid\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var semigroupoidBuilder = Control_Semigroupoid.semigroupoidFn;\n var insert = function (dictCons) {\n return function (dictLacks) {\n return function (dictIsSymbol) {\n return function (l) {\n return function (a) {\n return function (r1) {\n return $foreign.unsafeInsert(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(a)(r1);\n };\n };\n };\n };\n };\n };\n var categoryBuilder = Control_Category.categoryFn;\n var build = function (v) {\n return function (r1) {\n return v($foreign.copyRecord(r1));\n };\n };\n exports[\"build\"] = build;\n exports[\"insert\"] = insert;\n exports[\"semigroupoidBuilder\"] = semigroupoidBuilder;\n exports[\"categoryBuilder\"] = categoryBuilder;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Type.Data.RowList\"] = $PS[\"Type.Data.RowList\"] || {};\n var exports = $PS[\"Type.Data.RowList\"];\n var RLProxy = (function () {\n function RLProxy() {\n\n };\n RLProxy.value = new RLProxy();\n return RLProxy;\n })();\n exports[\"RLProxy\"] = RLProxy;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Simple.JSON\"] = $PS[\"Simple.JSON\"] || {};\n var exports = $PS[\"Simple.JSON\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Semigroupoid = $PS[\"Control.Semigroupoid\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Foreign = $PS[\"Foreign\"];\n var Global_Unsafe = $PS[\"Global.Unsafe\"];\n var Record = $PS[\"Record\"];\n var Record_Builder = $PS[\"Record.Builder\"];\n var Type_Data_RowList = $PS[\"Type.Data.RowList\"];\n var WriteForeignFields = function (writeImplFields) {\n this.writeImplFields = writeImplFields;\n };\n var WriteForeign = function (writeImpl) {\n this.writeImpl = writeImpl;\n };\n var writeImplFields = function (dict) {\n return dict.writeImplFields;\n };\n var writeImpl = function (dict) {\n return dict.writeImpl;\n };\n var writeJSON = function (dictWriteForeign) {\n var $87 = writeImpl(dictWriteForeign);\n return function ($88) {\n return Global_Unsafe.unsafeStringify($87($88));\n };\n };\n var writeForeignString = new WriteForeign(Foreign.unsafeToForeign);\n var writeForeignNullable = function (dictWriteForeign) {\n return new WriteForeign((function () {\n var $91 = Data_Maybe.maybe(Foreign.unsafeToForeign(Data_Nullable.toNullable(Data_Maybe.Nothing.value)))(writeImpl(dictWriteForeign));\n return function ($92) {\n return $91(Data_Nullable.toMaybe($92));\n };\n })());\n };\n var writeForeignInt = new WriteForeign(Foreign.unsafeToForeign); \n var writeForeignBoolean = new WriteForeign(Foreign.unsafeToForeign);\n var recordWriteForeign = function (dictRowToList) {\n return function (dictWriteForeignFields) {\n return new WriteForeign(function (rec) {\n var steps = writeImplFields(dictWriteForeignFields)(Type_Data_RowList.RLProxy.value)(rec);\n return Foreign.unsafeToForeign(Record_Builder.build(steps)({}));\n });\n };\n }; \n var nilWriteForeignFields = new WriteForeignFields(function (v) {\n return function (v1) {\n return Control_Category.identity(Record_Builder.categoryBuilder);\n };\n });\n var consWriteForeignFields = function (dictIsSymbol) {\n return function (dictWriteForeign) {\n return function (dictWriteForeignFields) {\n return function (dictCons) {\n return function (dictLacks) {\n return function (dictCons1) {\n return new WriteForeignFields(function (v) {\n return function (rec) {\n var rest = writeImplFields(dictWriteForeignFields)(Type_Data_RowList.RLProxy.value)(rec);\n var value = writeImpl(dictWriteForeign)(Record.get(dictIsSymbol)()(Data_Symbol.SProxy.value)(rec));\n var result = Control_Semigroupoid.compose(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(dictIsSymbol)(Data_Symbol.SProxy.value)(value))(rest);\n return result;\n };\n });\n };\n };\n };\n };\n };\n };\n exports[\"writeJSON\"] = writeJSON;\n exports[\"writeForeignString\"] = writeForeignString;\n exports[\"writeForeignInt\"] = writeForeignInt;\n exports[\"writeForeignBoolean\"] = writeForeignBoolean;\n exports[\"writeForeignNullable\"] = writeForeignNullable;\n exports[\"recordWriteForeign\"] = recordWriteForeign;\n exports[\"consWriteForeignFields\"] = consWriteForeignFields;\n exports[\"nilWriteForeignFields\"] = nilWriteForeignFields;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Model\"] = $PS[\"Model\"] || {};\n var exports = $PS[\"Model\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Simple_JSON = $PS[\"Simple.JSON\"];\n var usersettings_wfI = Simple_JSON.recordWriteForeign()(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"archiveDefault\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"privacyLock\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"privateDefault\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.nilWriteForeignFields)()()())()()())()()());\n var note_wfI = Simple_JSON.recordWriteForeign()(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"created\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"id\";\n }))(Simple_JSON.writeForeignInt)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"isMarkdown\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"length\";\n }))(Simple_JSON.writeForeignInt)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"shared\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"slug\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"text\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"title\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"updated\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.nilWriteForeignFields)()()())()()())()()())()()())()()())()()())()()())()()())()()());\n var bookmark_wfI = Simple_JSON.recordWriteForeign()(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"archiveUrl\";\n }))(Simple_JSON.writeForeignNullable(Simple_JSON.writeForeignString))(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"bid\";\n }))(Simple_JSON.writeForeignInt)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"description\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"private\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"selected\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"slug\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"tags\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"time\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"title\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"toread\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"url\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.nilWriteForeignFields)()()())()()())()()())()()())()()())()()())()()())()()())()()())()()())()()());\n exports[\"bookmark_wfI\"] = bookmark_wfI;\n exports[\"note_wfI\"] = note_wfI;\n exports[\"usersettings_wfI\"] = usersettings_wfI;\n})(PS);\n(function(exports) {\n /* global window */\n \"use strict\";\n\n exports.window = function () {\n return window;\n };\n})(PS[\"Web.HTML\"] = PS[\"Web.HTML\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.HTML\"] = $PS[\"Web.HTML\"] || {};\n var exports = $PS[\"Web.HTML\"];\n var $foreign = $PS[\"Web.HTML\"];\n exports[\"window\"] = $foreign.window;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.setHref = function (href) {\n return function (location) {\n return function () {\n location.href = href;\n };\n };\n };\n\n // ----------------------------------------------------------------------------\n\n exports.search = function (location) {\n return function () {\n return location.search;\n };\n };\n\n // ----------------------------------------------------------------------------\n\n exports.reload = function (location) {\n return function () {\n location.reload();\n };\n };\n})(PS[\"Web.HTML.Location\"] = PS[\"Web.HTML.Location\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.HTML.Location\"] = $PS[\"Web.HTML.Location\"] || {};\n var exports = $PS[\"Web.HTML.Location\"];\n var $foreign = $PS[\"Web.HTML.Location\"];\n exports[\"setHref\"] = $foreign.setHref;\n exports[\"search\"] = $foreign.search;\n exports[\"reload\"] = $foreign.reload;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.document = function (window) {\n return function () {\n return window.document;\n };\n };\n\n exports.location = function (window) {\n return function () {\n return window.location;\n };\n };\n})(PS[\"Web.HTML.Window\"] = PS[\"Web.HTML.Window\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.HTML.Window\"] = $PS[\"Web.HTML.Window\"] || {};\n var exports = $PS[\"Web.HTML.Window\"];\n var $foreign = $PS[\"Web.HTML.Window\"];\n exports[\"document\"] = $foreign.document;\n exports[\"location\"] = $foreign.location;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"App\"] = $PS[\"App\"] || {};\n var exports = $PS[\"App\"];\n var Affjax = $PS[\"Affjax\"];\n var Affjax_RequestBody = $PS[\"Affjax.RequestBody\"];\n var Affjax_RequestHeader = $PS[\"Affjax.RequestHeader\"];\n var Affjax_ResponseFormat = $PS[\"Affjax.ResponseFormat\"];\n var Affjax_StatusCode = $PS[\"Affjax.StatusCode\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_HTTP_Method = $PS[\"Data.HTTP.Method\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_MediaType_Common = $PS[\"Data.MediaType.Common\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Globals = $PS[\"Globals\"];\n var Model = $PS[\"Model\"];\n var Simple_JSON = $PS[\"Simple.JSON\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_Location = $PS[\"Web.HTML.Location\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"]; \n var Star = (function () {\n function Star() {\n\n };\n Star.value = new Star();\n return Star;\n })();\n var UnStar = (function () {\n function UnStar() {\n\n };\n UnStar.value = new UnStar();\n return UnStar;\n })();\n var showStar = new Data_Show.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 var fetchUrl = function (method) {\n return function (url) {\n return function (headers) {\n return function (content) {\n return function (rt) {\n var app = Globals[\"app'\"](Data_Unit.unit);\n return Affjax.request({\n method: new Data_Either.Left(method),\n url: url,\n headers: Data_Array.cons(new Affjax_RequestHeader.RequestHeader(app.csrfHeaderName, app.csrfToken))(headers),\n content: content,\n username: Affjax.defaultRequest.username,\n password: Affjax.defaultRequest.password,\n withCredentials: Affjax.defaultRequest.withCredentials,\n responseFormat: rt\n });\n };\n };\n };\n };\n };\n var logout = function (u) {\n var app = Globals[\"app'\"](u);\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor[\"void\"](Effect_Aff.functorAff)(fetchUrl(Data_HTTP_Method.POST.value)(app.authRlogoutR)([ ])(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore)))(function () {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Control_Bind.bind(Effect.bindEffect)(Control_Bind.bind(Effect.bindEffect)(Web_HTML.window)(Web_HTML_Window.location))(Web_HTML_Location.reload));\n });\n };\n var 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'\"](Data_Unit.unit)).homeR + path)(headers)(content)(rt);\n };\n };\n };\n };\n };\n var 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) ])(Data_Functor.map(Data_Maybe.functorMaybe)(Affjax_RequestBody.FormURLEncoded.create)(content))(rt);\n };\n };\n };\n };\n var markRead = function (bid) {\n var path = \"bm/\" + (Data_Show.show(Data_Show.showInt)(bid) + \"/read\");\n return fetchUrlEnc(Data_HTTP_Method.POST.value)(path)(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore);\n };\n var toggleStar = function (bid) {\n return function (action) {\n var path = \"bm/\" + (Data_Show.show(Data_Show.showInt)(bid) + (\"/\" + Data_Show.show(showStar)(action)));\n return Data_Functor[\"void\"](Effect_Aff.functorAff)(fetchUrlEnc(Data_HTTP_Method.POST.value)(path)(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore));\n };\n };\n var fetchJson = function (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) ])(Data_Functor.map(Data_Maybe.functorMaybe)((function () {\n var $5 = Simple_JSON.writeJSON(dictWriteForeign);\n return function ($6) {\n return Affjax_RequestBody.string($5($6));\n };\n })())(content))(rt);\n };\n };\n };\n };\n };\n var lookupTitle = function (bm) {\n return Control_Bind.bind(Effect_Aff.bindAff)(fetchJson(Model.bookmark_wfI)(Data_HTTP_Method.POST.value)(\"api/lookuptitle\")(new Data_Maybe.Just(bm))(Affjax_ResponseFormat.string))(function (eres) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Control_Bind.bind(Data_Maybe.bindMaybe)(Data_Either.hush(eres))(function (res) {\n var $4 = Data_Eq.eq(Affjax_StatusCode.eqStatusCode)(res.status)(200);\n if ($4) {\n return new Data_Maybe.Just(res.body);\n };\n return Data_Maybe.Nothing.value;\n }));\n });\n };\n var editNote = function (bm) {\n return fetchJson(Model.note_wfI)(Data_HTTP_Method.POST.value)(\"api/note/add\")(new Data_Maybe.Just(bm))(Affjax_ResponseFormat.json);\n };\n var editBookmark = function (bm) {\n return fetchJson(Model.bookmark_wfI)(Data_HTTP_Method.POST.value)(\"api/add\")(new Data_Maybe.Just(bm))(Affjax_ResponseFormat.ignore);\n };\n var editAccountSettings = function (us) {\n return fetchJson(Model.usersettings_wfI)(Data_HTTP_Method.POST.value)(\"api/accountSettings\")(new Data_Maybe.Just(us))(Affjax_ResponseFormat.ignore);\n };\n var destroyNote = function (nid) {\n return fetchUrlEnc(Data_HTTP_Method.DELETE.value)(\"api/note/\" + Data_Show.show(Data_Show.showInt)(nid))(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore);\n };\n var destroy = function (bid) {\n return fetchUrlEnc(Data_HTTP_Method.DELETE.value)(\"bm/\" + Data_Show.show(Data_Show.showInt)(bid))(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore);\n };\n exports[\"Star\"] = Star;\n exports[\"UnStar\"] = UnStar;\n exports[\"toggleStar\"] = toggleStar;\n exports[\"destroy\"] = destroy;\n exports[\"markRead\"] = markRead;\n exports[\"editBookmark\"] = editBookmark;\n exports[\"editNote\"] = editNote;\n exports[\"lookupTitle\"] = lookupTitle;\n exports[\"destroyNote\"] = destroyNote;\n exports[\"editAccountSettings\"] = editAccountSettings;\n exports[\"logout\"] = logout;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"DOM.HTML.Indexed.InputType\"] = $PS[\"DOM.HTML.Indexed.InputType\"] || {};\n var exports = $PS[\"DOM.HTML.Indexed.InputType\"];\n var InputButton = (function () {\n function InputButton() {\n\n };\n InputButton.value = new InputButton();\n return InputButton;\n })();\n var InputCheckbox = (function () {\n function InputCheckbox() {\n\n };\n InputCheckbox.value = new InputCheckbox();\n return InputCheckbox;\n })();\n var InputColor = (function () {\n function InputColor() {\n\n };\n InputColor.value = new InputColor();\n return InputColor;\n })();\n var InputDate = (function () {\n function InputDate() {\n\n };\n InputDate.value = new InputDate();\n return InputDate;\n })();\n var InputDatetimeLocal = (function () {\n function InputDatetimeLocal() {\n\n };\n InputDatetimeLocal.value = new InputDatetimeLocal();\n return InputDatetimeLocal;\n })();\n var InputEmail = (function () {\n function InputEmail() {\n\n };\n InputEmail.value = new InputEmail();\n return InputEmail;\n })();\n var InputFile = (function () {\n function InputFile() {\n\n };\n InputFile.value = new InputFile();\n return InputFile;\n })();\n var InputHidden = (function () {\n function InputHidden() {\n\n };\n InputHidden.value = new InputHidden();\n return InputHidden;\n })();\n var InputImage = (function () {\n function InputImage() {\n\n };\n InputImage.value = new InputImage();\n return InputImage;\n })();\n var InputMonth = (function () {\n function InputMonth() {\n\n };\n InputMonth.value = new InputMonth();\n return InputMonth;\n })();\n var InputNumber = (function () {\n function InputNumber() {\n\n };\n InputNumber.value = new InputNumber();\n return InputNumber;\n })();\n var InputPassword = (function () {\n function InputPassword() {\n\n };\n InputPassword.value = new InputPassword();\n return InputPassword;\n })();\n var InputRadio = (function () {\n function InputRadio() {\n\n };\n InputRadio.value = new InputRadio();\n return InputRadio;\n })();\n var InputRange = (function () {\n function InputRange() {\n\n };\n InputRange.value = new InputRange();\n return InputRange;\n })();\n var InputReset = (function () {\n function InputReset() {\n\n };\n InputReset.value = new InputReset();\n return InputReset;\n })();\n var InputSearch = (function () {\n function InputSearch() {\n\n };\n InputSearch.value = new InputSearch();\n return InputSearch;\n })();\n var InputSubmit = (function () {\n function InputSubmit() {\n\n };\n InputSubmit.value = new InputSubmit();\n return InputSubmit;\n })();\n var InputTel = (function () {\n function InputTel() {\n\n };\n InputTel.value = new InputTel();\n return InputTel;\n })();\n var InputText = (function () {\n function InputText() {\n\n };\n InputText.value = new InputText();\n return InputText;\n })();\n var InputTime = (function () {\n function InputTime() {\n\n };\n InputTime.value = new InputTime();\n return InputTime;\n })();\n var InputUrl = (function () {\n function InputUrl() {\n\n };\n InputUrl.value = new InputUrl();\n return InputUrl;\n })();\n var InputWeek = (function () {\n function InputWeek() {\n\n };\n InputWeek.value = new InputWeek();\n return InputWeek;\n })();\n var renderInputType = function (v) {\n if (v instanceof InputButton) {\n return \"button\";\n };\n if (v instanceof InputCheckbox) {\n return \"checkbox\";\n };\n if (v instanceof InputColor) {\n return \"color\";\n };\n if (v instanceof InputDate) {\n return \"date\";\n };\n if (v instanceof InputDatetimeLocal) {\n return \"datetime-local\";\n };\n if (v instanceof InputEmail) {\n return \"email\";\n };\n if (v instanceof InputFile) {\n return \"file\";\n };\n if (v instanceof InputHidden) {\n return \"hidden\";\n };\n if (v instanceof InputImage) {\n return \"image\";\n };\n if (v instanceof InputMonth) {\n return \"month\";\n };\n if (v instanceof InputNumber) {\n return \"number\";\n };\n if (v instanceof InputPassword) {\n return \"password\";\n };\n if (v instanceof InputRadio) {\n return \"radio\";\n };\n if (v instanceof InputRange) {\n return \"range\";\n };\n if (v instanceof InputReset) {\n return \"reset\";\n };\n if (v instanceof InputSearch) {\n return \"search\";\n };\n if (v instanceof InputSubmit) {\n return \"submit\";\n };\n if (v instanceof InputTel) {\n return \"tel\";\n };\n if (v instanceof InputText) {\n return \"text\";\n };\n if (v instanceof InputTime) {\n return \"time\";\n };\n if (v instanceof InputUrl) {\n return \"url\";\n };\n if (v instanceof InputWeek) {\n return \"week\";\n };\n throw new Error(\"Failed pattern match at DOM.HTML.Indexed.InputType (line 28, column 19 - line 50, column 22): \" + [ v.constructor.name ]);\n };\n exports[\"InputCheckbox\"] = InputCheckbox;\n exports[\"InputReset\"] = InputReset;\n exports[\"InputSubmit\"] = InputSubmit;\n exports[\"InputText\"] = InputText;\n exports[\"InputUrl\"] = InputUrl;\n exports[\"renderInputType\"] = renderInputType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.State.Class\"] = $PS[\"Control.Monad.State.Class\"] || {};\n var exports = $PS[\"Control.Monad.State.Class\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var MonadState = function (Monad0, state) {\n this.Monad0 = Monad0;\n this.state = state;\n };\n var state = function (dict) {\n return dict.state;\n };\n var modify_ = function (dictMonadState) {\n return function (f) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(Data_Unit.unit, f(s));\n });\n };\n };\n var modify = function (dictMonadState) {\n return function (f) {\n return state(dictMonadState)(function (s) {\n var s$prime = f(s);\n return new Data_Tuple.Tuple(s$prime, s$prime);\n });\n };\n };\n var gets = function (dictMonadState) {\n return function (f) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(f(s), s);\n });\n };\n };\n var get = function (dictMonadState) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(s, s);\n });\n };\n exports[\"MonadState\"] = MonadState;\n exports[\"get\"] = get;\n exports[\"gets\"] = gets;\n exports[\"modify\"] = modify;\n exports[\"modify_\"] = modify_;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Profunctor\"] = $PS[\"Data.Profunctor\"] || {};\n var exports = $PS[\"Data.Profunctor\"];\n var Control_Category = $PS[\"Control.Category\"]; \n var Profunctor = function (dimap) {\n this.dimap = dimap;\n };\n var profunctorFn = new Profunctor(function (a2b) {\n return function (c2d) {\n return function (b2c) {\n return function ($9) {\n return c2d(b2c(a2b($9)));\n };\n };\n };\n });\n var dimap = function (dict) {\n return dict.dimap;\n };\n var rmap = function (dictProfunctor) {\n return function (b2c) {\n return dimap(dictProfunctor)(Control_Category.identity(Control_Category.categoryFn))(b2c);\n };\n };\n exports[\"dimap\"] = dimap;\n exports[\"Profunctor\"] = Profunctor;\n exports[\"rmap\"] = rmap;\n exports[\"profunctorFn\"] = profunctorFn;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Profunctor.Strong\"] = $PS[\"Data.Profunctor.Strong\"] || {};\n var exports = $PS[\"Data.Profunctor.Strong\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Profunctor = $PS[\"Data.Profunctor\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var Strong = function (Profunctor0, first, second) {\n this.Profunctor0 = Profunctor0;\n this.first = first;\n this.second = second;\n };\n var strongFn = new Strong(function () {\n return Data_Profunctor.profunctorFn;\n }, function (a2b) {\n return function (v) {\n return new Data_Tuple.Tuple(a2b(v.value0), v.value1);\n };\n }, Data_Functor.map(Data_Tuple.functorTuple));\n var first = function (dict) {\n return dict.first;\n };\n exports[\"first\"] = first;\n exports[\"Strong\"] = Strong;\n exports[\"strongFn\"] = strongFn;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Lens.Internal.Forget\"] = $PS[\"Data.Lens.Internal.Forget\"] || {};\n var exports = $PS[\"Data.Lens.Internal.Forget\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Profunctor = $PS[\"Data.Profunctor\"];\n var Data_Profunctor_Strong = $PS[\"Data.Profunctor.Strong\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var Forget = function (x) {\n return x;\n };\n var profunctorForget = new Data_Profunctor.Profunctor(function (f) {\n return function (v) {\n return function (v1) {\n return function ($27) {\n return v1(f($27));\n };\n };\n };\n });\n var strongForget = new Data_Profunctor_Strong.Strong(function () {\n return profunctorForget;\n }, function (v) {\n return function ($28) {\n return v(Data_Tuple.fst($28));\n };\n }, function (v) {\n return function ($29) {\n return v(Data_Tuple.snd($29));\n };\n });\n var newtypeForget = new Data_Newtype.Newtype(function (n) {\n return n;\n }, Forget);\n exports[\"newtypeForget\"] = newtypeForget;\n exports[\"strongForget\"] = strongForget;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Lens.Getter\"] = $PS[\"Data.Lens.Getter\"] || {};\n var exports = $PS[\"Data.Lens.Getter\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Lens_Internal_Forget = $PS[\"Data.Lens.Internal.Forget\"];\n var Data_Newtype = $PS[\"Data.Newtype\"]; \n var view = function (l) {\n return Data_Newtype.unwrap(Data_Lens_Internal_Forget.newtypeForget)(l(Control_Category.identity(Control_Category.categoryFn)));\n };\n var viewOn = function (s) {\n return function (l) {\n return view(l)(s);\n };\n };\n var use = function (dictMonadState) {\n return function (p) {\n return Control_Monad_State_Class.gets(dictMonadState)(function (v) {\n return viewOn(v)(p);\n });\n };\n };\n exports[\"use\"] = use;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Lens.Lens\"] = $PS[\"Data.Lens.Lens\"] || {};\n var exports = $PS[\"Data.Lens.Lens\"];\n var Data_Profunctor = $PS[\"Data.Profunctor\"];\n var Data_Profunctor_Strong = $PS[\"Data.Profunctor.Strong\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var lens$prime = function (to) {\n return function (dictStrong) {\n return function (pab) {\n return Data_Profunctor.dimap(dictStrong.Profunctor0())(to)(function (v) {\n return v.value1(v.value0);\n })(Data_Profunctor_Strong.first(dictStrong)(pab));\n };\n };\n };\n var 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 };\n exports[\"lens\"] = lens;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Lens.Setter\"] = $PS[\"Data.Lens.Setter\"] || {};\n var exports = $PS[\"Data.Lens.Setter\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var over = function (l) {\n return l;\n };\n var set = function (l) {\n return function (b) {\n return over(l)(Data_Function[\"const\"](b));\n };\n };\n var modifying = function (dictMonadState) {\n return function (p) {\n return function (f) {\n return Data_Functor[\"void\"]((((dictMonadState.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_State_Class.modify(dictMonadState)(over(p)(f)));\n };\n };\n };\n var assign = function (dictMonadState) {\n return function (p) {\n return function (b) {\n return Data_Functor[\"void\"]((((dictMonadState.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_State_Class.modify(dictMonadState)(set(p)(b)));\n };\n };\n };\n exports[\"assign\"] = assign;\n exports[\"modifying\"] = modifying;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Aff.Class\"] = $PS[\"Effect.Aff.Class\"] || {};\n var exports = $PS[\"Effect.Aff.Class\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Effect_Aff = $PS[\"Effect.Aff\"]; \n var MonadAff = function (MonadEffect0, liftAff) {\n this.MonadEffect0 = MonadEffect0;\n this.liftAff = liftAff;\n };\n var monadAffAff = new MonadAff(function () {\n return Effect_Aff.monadEffectAff;\n }, Control_Category.identity(Control_Category.categoryFn));\n var liftAff = function (dict) {\n return dict.liftAff;\n };\n exports[\"liftAff\"] = liftAff;\n exports[\"MonadAff\"] = MonadAff;\n exports[\"monadAffAff\"] = monadAffAff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Exists\"] = $PS[\"Data.Exists\"] || {};\n var exports = $PS[\"Data.Exists\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var runExists = Unsafe_Coerce.unsafeCoerce;\n var mkExists = Unsafe_Coerce.unsafeCoerce;\n exports[\"mkExists\"] = mkExists;\n exports[\"runExists\"] = runExists;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Coyoneda\"] = $PS[\"Data.Coyoneda\"] || {};\n var exports = $PS[\"Data.Coyoneda\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Exists = $PS[\"Data.Exists\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var CoyonedaF = (function () {\n function CoyonedaF(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CoyonedaF.create = function (value0) {\n return function (value1) {\n return new CoyonedaF(value0, value1);\n };\n };\n return CoyonedaF;\n })();\n var Coyoneda = function (x) {\n return x;\n };\n var unCoyoneda = function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return f(v1.value0)(v1.value1);\n })(v);\n };\n };\n var coyoneda = function (k) {\n return function (fi) {\n return Coyoneda(Data_Exists.mkExists(new CoyonedaF(k, fi)));\n };\n };\n var functorCoyoneda = new Data_Functor.Functor(function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return coyoneda(function ($85) {\n return f(v1.value0($85));\n })(v1.value1);\n })(v);\n };\n });\n var liftCoyoneda = coyoneda(Control_Category.identity(Control_Category.categoryFn));\n exports[\"unCoyoneda\"] = unCoyoneda;\n exports[\"liftCoyoneda\"] = liftCoyoneda;\n exports[\"functorCoyoneda\"] = functorCoyoneda;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Map.Internal\"] = $PS[\"Data.Map.Internal\"] || {};\n var exports = $PS[\"Data.Map.Internal\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Ordering = $PS[\"Data.Ordering\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var Leaf = (function () {\n function Leaf() {\n\n };\n Leaf.value = new Leaf();\n return Leaf;\n })();\n var Two = (function () {\n function Two(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Two.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Two(value0, value1, value2, value3);\n };\n };\n };\n };\n return Two;\n })();\n var Three = (function () {\n function Three(value0, value1, value2, value3, value4, value5, value6) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n this.value6 = value6;\n };\n Three.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return function (value6) {\n return new Three(value0, value1, value2, value3, value4, value5, value6);\n };\n };\n };\n };\n };\n };\n };\n return Three;\n })();\n var TwoLeft = (function () {\n function TwoLeft(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n TwoLeft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new TwoLeft(value0, value1, value2);\n };\n };\n };\n return TwoLeft;\n })();\n var TwoRight = (function () {\n function TwoRight(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n TwoRight.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new TwoRight(value0, value1, value2);\n };\n };\n };\n return TwoRight;\n })();\n var ThreeLeft = (function () {\n function ThreeLeft(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeLeft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeLeft(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeLeft;\n })();\n var ThreeMiddle = (function () {\n function ThreeMiddle(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeMiddle.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeMiddle(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeMiddle;\n })();\n var ThreeRight = (function () {\n function ThreeRight(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeRight.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeRight(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeRight;\n })();\n var KickUp = (function () {\n function KickUp(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n KickUp.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new KickUp(value0, value1, value2, value3);\n };\n };\n };\n };\n return KickUp;\n })();\n var values = function (v) {\n if (v instanceof Leaf) {\n return Data_List_Types.Nil.value;\n };\n if (v instanceof Two) {\n return Data_Semigroup.append(Data_List_Types.semigroupList)(values(v.value0))(Data_Semigroup.append(Data_List_Types.semigroupList)(Control_Applicative.pure(Data_List_Types.applicativeList)(v.value2))(values(v.value3)));\n };\n if (v instanceof Three) {\n return Data_Semigroup.append(Data_List_Types.semigroupList)(values(v.value0))(Data_Semigroup.append(Data_List_Types.semigroupList)(Control_Applicative.pure(Data_List_Types.applicativeList)(v.value2))(Data_Semigroup.append(Data_List_Types.semigroupList)(values(v.value3))(Data_Semigroup.append(Data_List_Types.semigroupList)(Control_Applicative.pure(Data_List_Types.applicativeList)(v.value5))(values(v.value6)))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 612, column 1 - line 612, column 40): \" + [ v.constructor.name ]);\n };\n var lookup = function (dictOrd) {\n return function (k) {\n var comp = Data_Ord.compare(dictOrd);\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Leaf) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Two) {\n var v2 = comp(k)(v.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value2);\n };\n if (v2 instanceof Data_Ordering.LT) {\n $copy_v = v.value0;\n return;\n };\n $copy_v = v.value3;\n return;\n };\n if (v instanceof Three) {\n var v3 = comp(k)(v.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value2);\n };\n var v4 = comp(k)(v.value4);\n if (v4 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value5);\n };\n if (v3 instanceof Data_Ordering.LT) {\n $copy_v = v.value0;\n return;\n };\n if (v4 instanceof Data_Ordering.GT) {\n $copy_v = v.value6;\n return;\n };\n $copy_v = v.value3;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 200, column 5 - line 200, column 22): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go;\n };\n };\n var member = function (dictOrd) {\n return function (k) {\n return function (m) {\n return Data_Maybe.isJust(lookup(dictOrd)(k)(m));\n };\n };\n };\n var functorMap = new Data_Functor.Functor(function (v) {\n return function (v1) {\n if (v1 instanceof Leaf) {\n return Leaf.value;\n };\n if (v1 instanceof Two) {\n return new Two(Data_Functor.map(functorMap)(v)(v1.value0), v1.value1, v(v1.value2), Data_Functor.map(functorMap)(v)(v1.value3));\n };\n if (v1 instanceof Three) {\n return new Three(Data_Functor.map(functorMap)(v)(v1.value0), v1.value1, v(v1.value2), Data_Functor.map(functorMap)(v)(v1.value3), v1.value4, v(v1.value5), Data_Functor.map(functorMap)(v)(v1.value6));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 96, column 1 - line 99, column 110): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n });\n var fromZipper = function ($copy_dictOrd) {\n return function ($copy_v) {\n return function ($copy_tree) {\n var $tco_var_dictOrd = $copy_dictOrd;\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictOrd, v, tree) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return tree;\n };\n if (v instanceof Data_List_Types.Cons) {\n if (v.value0 instanceof TwoLeft) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Two(tree, v.value0.value0, v.value0.value1, v.value0.value2);\n return;\n };\n if (v.value0 instanceof TwoRight) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Two(v.value0.value0, v.value0.value1, v.value0.value2, tree);\n return;\n };\n if (v.value0 instanceof ThreeLeft) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(tree, v.value0.value0, v.value0.value1, v.value0.value2, v.value0.value3, v.value0.value4, v.value0.value5);\n return;\n };\n if (v.value0 instanceof ThreeMiddle) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(v.value0.value0, v.value0.value1, v.value0.value2, tree, v.value0.value3, v.value0.value4, v.value0.value5);\n return;\n };\n if (v.value0 instanceof ThreeRight) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(v.value0.value0, v.value0.value1, v.value0.value2, v.value0.value3, v.value0.value4, v.value0.value5, tree);\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 418, column 3 - line 423, column 88): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 415, column 1 - line 415, column 80): \" + [ v.constructor.name, tree.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictOrd, $tco_var_v, $copy_tree);\n };\n return $tco_result;\n };\n };\n };\n var insert = function (dictOrd) {\n return function (k) {\n return function (v) {\n var up = function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v1, v2) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Two(v2.value0, v2.value1, v2.value2, v2.value3);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n if (v1.value0 instanceof TwoLeft) {\n $tco_done = true;\n return fromZipper(dictOrd)(v1.value1)(new Three(v2.value0, v2.value1, v2.value2, v2.value3, v1.value0.value0, v1.value0.value1, v1.value0.value2));\n };\n if (v1.value0 instanceof TwoRight) {\n $tco_done = true;\n return fromZipper(dictOrd)(v1.value1)(new Three(v1.value0.value0, v1.value0.value1, v1.value0.value2, v2.value0, v2.value1, v2.value2, v2.value3));\n };\n if (v1.value0 instanceof ThreeLeft) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v2.value0, v2.value1, v2.value2, v2.value3), v1.value0.value0, v1.value0.value1, new Two(v1.value0.value2, v1.value0.value3, v1.value0.value4, v1.value0.value5));\n return;\n };\n if (v1.value0 instanceof ThreeMiddle) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v1.value0.value0, v1.value0.value1, v1.value0.value2, v2.value0), v2.value1, v2.value2, new Two(v2.value3, v1.value0.value3, v1.value0.value4, v1.value0.value5));\n return;\n };\n if (v1.value0 instanceof ThreeRight) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v1.value0.value0, v1.value0.value1, v1.value0.value2, v1.value0.value3), v1.value0.value4, v1.value0.value5, new Two(v2.value0, v2.value1, v2.value2, v2.value3));\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 454, column 5 - line 459, column 108): \" + [ v1.value0.constructor.name, v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 451, column 3 - line 451, column 56): \" + [ v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n var comp = Data_Ord.compare(dictOrd);\n var down = function ($copy_ctx) {\n return function ($copy_v1) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(ctx, v1) {\n if (v1 instanceof Leaf) {\n $tco_done = true;\n return up(ctx)(new KickUp(Leaf.value, k, v, Leaf.value));\n };\n if (v1 instanceof Two) {\n var v2 = comp(k)(v1.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctx)(new Two(v1.value0, k, v, v1.value3));\n };\n if (v2 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoLeft(v1.value1, v1.value2, v1.value3), ctx);\n $copy_v1 = v1.value0;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(v1.value0, v1.value1, v1.value2), ctx);\n $copy_v1 = v1.value3;\n return;\n };\n if (v1 instanceof Three) {\n var v3 = comp(k)(v1.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctx)(new Three(v1.value0, k, v, v1.value3, v1.value4, v1.value5, v1.value6));\n };\n var v4 = comp(k)(v1.value4);\n if (v4 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctx)(new Three(v1.value0, v1.value1, v1.value2, v1.value3, k, v, v1.value6));\n };\n if (v3 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeLeft(v1.value1, v1.value2, v1.value3, v1.value4, v1.value5, v1.value6), ctx);\n $copy_v1 = v1.value0;\n return;\n };\n if (v3 instanceof Data_Ordering.GT && v4 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeMiddle(v1.value0, v1.value1, v1.value2, v1.value4, v1.value5, v1.value6), ctx);\n $copy_v1 = v1.value3;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(v1.value0, v1.value1, v1.value2, v1.value3, v1.value4, v1.value5), ctx);\n $copy_v1 = v1.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 434, column 3 - line 434, column 55): \" + [ ctx.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_v1);\n };\n return $tco_result;\n };\n };\n return down(Data_List_Types.Nil.value);\n };\n };\n };\n var pop = function (dictOrd) {\n return function (k) {\n var up = function ($copy_ctxs) {\n return function ($copy_tree) {\n var $tco_var_ctxs = $copy_ctxs;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(ctxs, tree) {\n if (ctxs instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return tree;\n };\n if (ctxs instanceof Data_List_Types.Cons) {\n if (ctxs.value0 instanceof TwoLeft && (ctxs.value0.value2 instanceof Leaf && tree instanceof Leaf)) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(Leaf.value, ctxs.value0.value0, ctxs.value0.value1, Leaf.value));\n };\n if (ctxs.value0 instanceof TwoRight && (ctxs.value0.value0 instanceof Leaf && tree instanceof Leaf)) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value));\n };\n if (ctxs.value0 instanceof TwoLeft && ctxs.value0.value2 instanceof Two) {\n $tco_var_ctxs = ctxs.value1;\n $copy_tree = new Three(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0, ctxs.value0.value2.value1, ctxs.value0.value2.value2, ctxs.value0.value2.value3);\n return;\n };\n if (ctxs.value0 instanceof TwoRight && ctxs.value0.value0 instanceof Two) {\n $tco_var_ctxs = ctxs.value1;\n $copy_tree = new Three(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3, ctxs.value0.value1, ctxs.value0.value2, tree);\n return;\n };\n if (ctxs.value0 instanceof TwoLeft && ctxs.value0.value2 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Two(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0), ctxs.value0.value2.value1, ctxs.value0.value2.value2, new Two(ctxs.value0.value2.value3, ctxs.value0.value2.value4, ctxs.value0.value2.value5, ctxs.value0.value2.value6)));\n };\n if (ctxs.value0 instanceof TwoRight && ctxs.value0.value0 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Two(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3), ctxs.value0.value0.value4, ctxs.value0.value0.value5, new Two(ctxs.value0.value0.value6, ctxs.value0.value1, ctxs.value0.value2, tree)));\n };\n if (ctxs.value0 instanceof ThreeLeft && (ctxs.value0.value2 instanceof Leaf && (ctxs.value0.value5 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value0, ctxs.value0.value1, Leaf.value, ctxs.value0.value3, ctxs.value0.value4, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeMiddle && (ctxs.value0.value0 instanceof Leaf && (ctxs.value0.value5 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value, ctxs.value0.value3, ctxs.value0.value4, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeRight && (ctxs.value0.value0 instanceof Leaf && (ctxs.value0.value3 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value, ctxs.value0.value4, ctxs.value0.value5, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeLeft && ctxs.value0.value2 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Three(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0, ctxs.value0.value2.value1, ctxs.value0.value2.value2, ctxs.value0.value2.value3), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value0 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Three(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3, ctxs.value0.value1, ctxs.value0.value2, tree), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value5 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Three(tree, ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5.value0, ctxs.value0.value5.value1, ctxs.value0.value5.value2, ctxs.value0.value5.value3)));\n };\n if (ctxs.value0 instanceof ThreeRight && ctxs.value0.value3 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Three(ctxs.value0.value3.value0, ctxs.value0.value3.value1, ctxs.value0.value3.value2, ctxs.value0.value3.value3, ctxs.value0.value4, ctxs.value0.value5, tree)));\n };\n if (ctxs.value0 instanceof ThreeLeft && ctxs.value0.value2 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(new Two(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0), ctxs.value0.value2.value1, ctxs.value0.value2.value2, new Two(ctxs.value0.value2.value3, ctxs.value0.value2.value4, ctxs.value0.value2.value5, ctxs.value0.value2.value6), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value0 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(new Two(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3), ctxs.value0.value0.value4, ctxs.value0.value0.value5, new Two(ctxs.value0.value0.value6, ctxs.value0.value1, ctxs.value0.value2, tree), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value5 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Two(tree, ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5.value0), ctxs.value0.value5.value1, ctxs.value0.value5.value2, new Two(ctxs.value0.value5.value3, ctxs.value0.value5.value4, ctxs.value0.value5.value5, ctxs.value0.value5.value6)));\n };\n if (ctxs.value0 instanceof ThreeRight && ctxs.value0.value3 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Two(ctxs.value0.value3.value0, ctxs.value0.value3.value1, ctxs.value0.value3.value2, ctxs.value0.value3.value3), ctxs.value0.value3.value4, ctxs.value0.value3.value5, new Two(ctxs.value0.value3.value6, ctxs.value0.value4, ctxs.value0.value5, tree)));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 511, column 9 - line 528, column 136): \" + [ ctxs.value0.constructor.name, tree.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 508, column 5 - line 528, column 136): \" + [ ctxs.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_ctxs, $copy_tree);\n };\n return $tco_result;\n };\n };\n var removeMaxNode = function ($copy_ctx) {\n return function ($copy_m) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(ctx, m) {\n if (m instanceof Two && (m.value0 instanceof Leaf && m.value3 instanceof Leaf)) {\n $tco_done = true;\n return up(ctx)(Leaf.value);\n };\n if (m instanceof Two) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(m.value0, m.value1, m.value2), ctx);\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three && (m.value0 instanceof Leaf && (m.value3 instanceof Leaf && m.value6 instanceof Leaf))) {\n $tco_done = true;\n return up(new Data_List_Types.Cons(new TwoRight(Leaf.value, m.value1, m.value2), ctx))(Leaf.value);\n };\n if (m instanceof Three) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(m.value0, m.value1, m.value2, m.value3, m.value4, m.value5), ctx);\n $copy_m = m.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 540, column 5 - line 544, column 107): \" + [ m.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_m);\n };\n return $tco_result;\n };\n };\n var maxNode = function ($copy_m) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(m) {\n if (m instanceof Two && m.value3 instanceof Leaf) {\n $tco_done = true;\n return {\n key: m.value1,\n value: m.value2\n };\n };\n if (m instanceof Two) {\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three && m.value6 instanceof Leaf) {\n $tco_done = true;\n return {\n key: m.value4,\n value: m.value5\n };\n };\n if (m instanceof Three) {\n $copy_m = m.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 531, column 33 - line 535, column 45): \" + [ m.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_m);\n };\n return $tco_result;\n };\n var comp = Data_Ord.compare(dictOrd);\n var down = function ($copy_ctx) {\n return function ($copy_m) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(ctx, m) {\n if (m instanceof Leaf) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (m instanceof Two) {\n var v = comp(k)(m.value1);\n if (m.value3 instanceof Leaf && v instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, up(ctx)(Leaf.value)));\n };\n if (v instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value0);\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, removeMaxNode(new Data_List_Types.Cons(new TwoLeft(max.key, max.value, m.value3), ctx))(m.value0)));\n };\n if (v instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoLeft(m.value1, m.value2, m.value3), ctx);\n $copy_m = m.value0;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(m.value0, m.value1, m.value2), ctx);\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three) {\n var leaves = (function () {\n if (m.value0 instanceof Leaf && (m.value3 instanceof Leaf && m.value6 instanceof Leaf)) {\n return true;\n };\n return false;\n })();\n var v = comp(k)(m.value4);\n var v3 = comp(k)(m.value1);\n if (leaves && v3 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, fromZipper(dictOrd)(ctx)(new Two(Leaf.value, m.value4, m.value5, Leaf.value))));\n };\n if (leaves && v instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value5, fromZipper(dictOrd)(ctx)(new Two(Leaf.value, m.value1, m.value2, Leaf.value))));\n };\n if (v3 instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value0);\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, removeMaxNode(new Data_List_Types.Cons(new ThreeLeft(max.key, max.value, m.value3, m.value4, m.value5, m.value6), ctx))(m.value0)));\n };\n if (v instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value3);\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value5, removeMaxNode(new Data_List_Types.Cons(new ThreeMiddle(m.value0, m.value1, m.value2, max.key, max.value, m.value6), ctx))(m.value3)));\n };\n if (v3 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeLeft(m.value1, m.value2, m.value3, m.value4, m.value5, m.value6), ctx);\n $copy_m = m.value0;\n return;\n };\n if (v3 instanceof Data_Ordering.GT && v instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeMiddle(m.value0, m.value1, m.value2, m.value4, m.value5, m.value6), ctx);\n $copy_m = m.value3;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(m.value0, m.value1, m.value2, m.value3, m.value4, m.value5), ctx);\n $copy_m = m.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 481, column 34 - line 504, column 80): \" + [ m.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_m);\n };\n return $tco_result;\n };\n };\n return down(Data_List_Types.Nil.value);\n };\n };\n var foldableMap = new Data_Foldable.Foldable(function (dictMonoid) {\n return function (f) {\n return function (m) {\n return Data_Foldable.foldMap(Data_List_Types.foldableList)(dictMonoid)(f)(values(m));\n };\n };\n }, function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldl(Data_List_Types.foldableList)(f)(z)(values(m));\n };\n };\n }, function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldr(Data_List_Types.foldableList)(f)(z)(values(m));\n };\n };\n });\n var empty = Leaf.value;\n var $$delete = function (dictOrd) {\n return function (k) {\n return function (m) {\n return Data_Maybe.maybe(m)(Data_Tuple.snd)(pop(dictOrd)(k)(m));\n };\n };\n }; \n var alter = function (dictOrd) {\n return function (f) {\n return function (k) {\n return function (m) {\n var v = f(lookup(dictOrd)(k)(m));\n if (v instanceof Data_Maybe.Nothing) {\n return $$delete(dictOrd)(k)(m);\n };\n if (v instanceof Data_Maybe.Just) {\n return insert(dictOrd)(k)(v.value0)(m);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 549, column 15 - line 551, column 25): \" + [ v.constructor.name ]);\n };\n };\n };\n };\n exports[\"empty\"] = empty;\n exports[\"insert\"] = insert;\n exports[\"lookup\"] = lookup;\n exports[\"delete\"] = $$delete;\n exports[\"pop\"] = pop;\n exports[\"member\"] = member;\n exports[\"alter\"] = alter;\n exports[\"functorMap\"] = functorMap;\n exports[\"foldableMap\"] = foldableMap;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Data.OrdBox\"] = $PS[\"Halogen.Data.OrdBox\"] || {};\n var exports = $PS[\"Halogen.Data.OrdBox\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Ord = $PS[\"Data.Ord\"]; \n var OrdBox = (function () {\n function OrdBox(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n OrdBox.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new OrdBox(value0, value1, value2);\n };\n };\n };\n return OrdBox;\n })();\n var mkOrdBox = function (dictOrd) {\n return OrdBox.create(Data_Eq.eq(dictOrd.Eq0()))(Data_Ord.compare(dictOrd));\n };\n var eqOrdBox = new Data_Eq.Eq(function (v) {\n return function (v1) {\n return v.value0(v.value2)(v1.value2);\n };\n });\n var ordOrdBox = new Data_Ord.Ord(function () {\n return eqOrdBox;\n }, function (v) {\n return function (v1) {\n return v.value1(v.value2)(v1.value2);\n };\n });\n exports[\"mkOrdBox\"] = mkOrdBox;\n exports[\"ordOrdBox\"] = ordOrdBox;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Data.Slot\"] = $PS[\"Halogen.Data.Slot\"] || {};\n var exports = $PS[\"Halogen.Data.Slot\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Halogen_Data_OrdBox = $PS[\"Halogen.Data.OrdBox\"];\n var pop = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (v) {\n return Data_Map_Internal.pop(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(v);\n };\n };\n };\n };\n };\n };\n var lookup = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (v) {\n return Data_Map_Internal.lookup(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(v);\n };\n };\n };\n };\n };\n };\n var insert = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (val) {\n return function (v) {\n return Data_Map_Internal.insert(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(val)(v);\n };\n };\n };\n };\n };\n };\n };\n var foreachSlot = function (dictApplicative) {\n return function (v) {\n return function (k) {\n return Data_Foldable.traverse_(dictApplicative)(Data_Map_Internal.foldableMap)(function ($37) {\n return k($37);\n })(v);\n };\n };\n };\n var empty = Data_Map_Internal.empty;\n exports[\"empty\"] = empty;\n exports[\"lookup\"] = lookup;\n exports[\"insert\"] = insert;\n exports[\"pop\"] = pop;\n exports[\"foreachSlot\"] = foreachSlot;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.List\"] = $PS[\"Data.List\"] || {};\n var exports = $PS[\"Data.List\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var reverse = (function () {\n var go = function ($copy_acc) {\n return function ($copy_v) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, v) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return acc;\n };\n if (v instanceof Data_List_Types.Cons) {\n $tco_var_acc = new Data_List_Types.Cons(v.value0, acc);\n $copy_v = v.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 368, column 3 - line 368, column 19): \" + [ acc.constructor.name, v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_v);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n })();\n var $$null = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return true;\n };\n return false;\n };\n exports[\"null\"] = $$null;\n exports[\"reverse\"] = reverse;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.CatQueue\"] = $PS[\"Data.CatQueue\"] || {};\n var exports = $PS[\"Data.CatQueue\"];\n var Data_List = $PS[\"Data.List\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var CatQueue = (function () {\n function CatQueue(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CatQueue.create = function (value0) {\n return function (value1) {\n return new CatQueue(value0, value1);\n };\n };\n return CatQueue;\n })();\n var uncons = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value0 instanceof Data_List_Types.Nil && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v.value0 instanceof Data_List_Types.Nil) {\n $copy_v = new CatQueue(Data_List.reverse(v.value1), Data_List_Types.Nil.value);\n return;\n };\n if (v.value0 instanceof Data_List_Types.Cons) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value0.value0, new CatQueue(v.value0.value1, v.value1)));\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 83, column 1 - line 83, column 63): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n var snoc = function (v) {\n return function (a) {\n return new CatQueue(v.value0, new Data_List_Types.Cons(a, v.value1));\n };\n };\n var $$null = function (v) {\n if (v.value0 instanceof Data_List_Types.Nil && v.value1 instanceof Data_List_Types.Nil) {\n return true;\n };\n return false;\n }; \n var empty = new CatQueue(Data_List_Types.Nil.value, Data_List_Types.Nil.value);\n exports[\"empty\"] = empty;\n exports[\"null\"] = $$null;\n exports[\"snoc\"] = snoc;\n exports[\"uncons\"] = uncons;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.CatList\"] = $PS[\"Data.CatList\"] || {};\n var exports = $PS[\"Data.CatList\"];\n var Data_CatQueue = $PS[\"Data.CatQueue\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var CatNil = (function () {\n function CatNil() {\n\n };\n CatNil.value = new CatNil();\n return CatNil;\n })();\n var CatCons = (function () {\n function CatCons(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CatCons.create = function (value0) {\n return function (value1) {\n return new CatCons(value0, value1);\n };\n };\n return CatCons;\n })();\n var link = function (v) {\n return function (v1) {\n if (v instanceof CatNil) {\n return v1;\n };\n if (v1 instanceof CatNil) {\n return v;\n };\n if (v instanceof CatCons) {\n return new CatCons(v.value0, Data_CatQueue.snoc(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 109, column 1 - line 109, column 54): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n var foldr = function (k) {\n return function (b) {\n return function (q) {\n var foldl = function ($copy_v) {\n return function ($copy_c) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_var_c = $copy_c;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, c, v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return c;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n $tco_var_v = v;\n $tco_var_c = v(c)(v1.value0);\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 125, column 3 - line 125, column 59): \" + [ v.constructor.name, c.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_c, $copy_v1);\n };\n return $tco_result;\n };\n };\n };\n var go = function ($copy_xs) {\n return function ($copy_ys) {\n var $tco_var_xs = $copy_xs;\n var $tco_done = 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_done = true;\n return foldl(function (x) {\n return function (i) {\n return i(x);\n };\n })(b)(ys);\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_xs = v.value0.value1;\n $copy_ys = new Data_List_Types.Cons(k(v.value0.value0), ys);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 121, column 14 - line 123, column 67): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_xs, $copy_ys);\n };\n return $tco_result;\n };\n };\n return go(q)(Data_List_Types.Nil.value);\n };\n };\n };\n var uncons = function (v) {\n if (v instanceof CatNil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof CatCons) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value0, (function () {\n var $44 = Data_CatQueue[\"null\"](v.value1);\n if ($44) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v.value1);\n })()));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 100, column 1 - line 100, column 61): \" + [ v.constructor.name ]);\n };\n var empty = CatNil.value;\n var append = link;\n var semigroupCatList = new Data_Semigroup.Semigroup(append);\n var snoc = function (cat) {\n return function (a) {\n return append(cat)(new CatCons(a, Data_CatQueue.empty));\n };\n };\n exports[\"empty\"] = empty;\n exports[\"snoc\"] = snoc;\n exports[\"uncons\"] = uncons;\n exports[\"semigroupCatList\"] = semigroupCatList;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Free\"] = $PS[\"Control.Monad.Free\"] || {};\n var exports = $PS[\"Control.Monad.Free\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Data_CatList = $PS[\"Data.CatList\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Free = (function () {\n function Free(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Free.create = function (value0) {\n return function (value1) {\n return new Free(value0, value1);\n };\n };\n return Free;\n })();\n var Return = (function () {\n function Return(value0) {\n this.value0 = value0;\n };\n Return.create = function (value0) {\n return new Return(value0);\n };\n return Return;\n })();\n var Bind = (function () {\n function Bind(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Bind.create = function (value0) {\n return function (value1) {\n return new Bind(value0, value1);\n };\n };\n return Bind;\n })();\n var toView = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n var runExpF = function (v2) {\n return v2;\n };\n var concatF = function (v2) {\n return function (r) {\n return new Free(v2.value0, Data_Semigroup.append(Data_CatList.semigroupCatList)(v2.value1)(r));\n };\n };\n if (v.value0 instanceof Return) {\n var v2 = Data_CatList.uncons(v.value1);\n if (v2 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return new Return(v.value0.value0);\n };\n if (v2 instanceof Data_Maybe.Just) {\n $copy_v = concatF(runExpF(v2.value0.value0)(v.value0.value0))(v2.value0.value1);\n return;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 227, column 7 - line 231, column 64): \" + [ v2.constructor.name ]);\n };\n if (v.value0 instanceof Bind) {\n $tco_done = true;\n return new Bind(v.value0.value0, function (a) {\n return concatF(v.value0.value1(a))(v.value1);\n });\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 225, column 3 - line 233, column 56): \" + [ v.value0.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n var fromView = function (f) {\n return new Free(f, Data_CatList.empty);\n };\n var freeMonad = new Control_Monad.Monad(function () {\n return freeApplicative;\n }, function () {\n return freeBind;\n });\n var freeFunctor = new Data_Functor.Functor(function (k) {\n return function (f) {\n return Control_Bind.bindFlipped(freeBind)((function () {\n var $120 = Control_Applicative.pure(freeApplicative);\n return function ($121) {\n return $120(k($121));\n };\n })())(f);\n };\n });\n var freeBind = new Control_Bind.Bind(function () {\n return freeApply;\n }, function (v) {\n return function (k) {\n return new Free(v.value0, Data_CatList.snoc(v.value1)(k));\n };\n });\n var freeApply = new Control_Apply.Apply(function () {\n return freeFunctor;\n }, Control_Monad.ap(freeMonad));\n var freeApplicative = new Control_Applicative.Applicative(function () {\n return freeApply;\n }, function ($122) {\n return fromView(Return.create($122));\n });\n var liftF = function (f) {\n return fromView(new Bind(f, (function () {\n var $123 = Control_Applicative.pure(freeApplicative);\n return function ($124) {\n return $123($124);\n };\n })()));\n };\n var foldFree = function (dictMonadRec) {\n return function (k) {\n var go = function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_Rec_Class.Done.create)(Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(v.value0));\n };\n if (v instanceof Bind) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(function ($136) {\n return Control_Monad_Rec_Class.Loop.create(v.value1($136));\n })(k(v.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 158, column 10 - line 160, column 37): \" + [ v.constructor.name ]);\n };\n return Control_Monad_Rec_Class.tailRecM(dictMonadRec)(go);\n };\n };\n exports[\"liftF\"] = liftF;\n exports[\"foldFree\"] = foldFree;\n exports[\"freeFunctor\"] = freeFunctor;\n exports[\"freeBind\"] = freeBind;\n exports[\"freeApplicative\"] = freeApplicative;\n exports[\"freeMonad\"] = freeMonad;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Query.HalogenM\"] = $PS[\"Halogen.Query.HalogenM\"] || {};\n var exports = $PS[\"Halogen.Query.HalogenM\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Monad_Free = $PS[\"Control.Monad.Free\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Effect_Class = $PS[\"Effect.Class\"]; \n var SubscriptionId = function (x) {\n return x;\n };\n var ForkId = function (x) {\n return x;\n };\n var State = (function () {\n function State(value0) {\n this.value0 = value0;\n };\n State.create = function (value0) {\n return new State(value0);\n };\n return State;\n })();\n var Subscribe = (function () {\n function Subscribe(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Subscribe.create = function (value0) {\n return function (value1) {\n return new Subscribe(value0, value1);\n };\n };\n return Subscribe;\n })();\n var Unsubscribe = (function () {\n function Unsubscribe(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Unsubscribe.create = function (value0) {\n return function (value1) {\n return new Unsubscribe(value0, value1);\n };\n };\n return Unsubscribe;\n })();\n var Lift = (function () {\n function Lift(value0) {\n this.value0 = value0;\n };\n Lift.create = function (value0) {\n return new Lift(value0);\n };\n return Lift;\n })();\n var ChildQuery = (function () {\n function ChildQuery(value0) {\n this.value0 = value0;\n };\n ChildQuery.create = function (value0) {\n return new ChildQuery(value0);\n };\n return ChildQuery;\n })();\n var Raise = (function () {\n function Raise(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Raise.create = function (value0) {\n return function (value1) {\n return new Raise(value0, value1);\n };\n };\n return Raise;\n })();\n var Par = (function () {\n function Par(value0) {\n this.value0 = value0;\n };\n Par.create = function (value0) {\n return new Par(value0);\n };\n return Par;\n })();\n var Fork = (function () {\n function Fork(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Fork.create = function (value0) {\n return function (value1) {\n return new Fork(value0, value1);\n };\n };\n return Fork;\n })();\n var Kill = (function () {\n function Kill(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Kill.create = function (value0) {\n return function (value1) {\n return new Kill(value0, value1);\n };\n };\n return Kill;\n })();\n var GetRef = (function () {\n function GetRef(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n GetRef.create = function (value0) {\n return function (value1) {\n return new GetRef(value0, value1);\n };\n };\n return GetRef;\n })();\n var HalogenM = function (x) {\n return x;\n };\n var raise = function (o) {\n return HalogenM(Control_Monad_Free.liftF(new Raise(o, Data_Unit.unit)));\n };\n var ordSubscriptionId = Data_Ord.ordInt;\n var ordForkId = Data_Ord.ordInt;\n var monadHalogenM = Control_Monad_Free.freeMonad;\n var monadStateHalogenM = new Control_Monad_State_Class.MonadState(function () {\n return monadHalogenM;\n }, function ($139) {\n return HalogenM(Control_Monad_Free.liftF(State.create($139)));\n });\n var monadEffectHalogenM = function (dictMonadEffect) {\n return new Effect_Class.MonadEffect(function () {\n return monadHalogenM;\n }, (function () {\n var $144 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($145) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($144($145))));\n };\n })());\n };\n var monadAffHalogenM = function (dictMonadAff) {\n return new Effect_Aff_Class.MonadAff(function () {\n return monadEffectHalogenM(dictMonadAff.MonadEffect0());\n }, (function () {\n var $146 = Effect_Aff_Class.liftAff(dictMonadAff);\n return function ($147) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($146($147))));\n };\n })());\n };\n var getRef = function (p) {\n return HalogenM(Control_Monad_Free.liftF(new GetRef(p, Control_Category.identity(Control_Category.categoryFn))));\n };\n var functorHalogenM = Control_Monad_Free.freeFunctor;\n var bindHalogenM = Control_Monad_Free.freeBind; \n var applicativeHalogenM = Control_Monad_Free.freeApplicative;\n exports[\"State\"] = State;\n exports[\"Subscribe\"] = Subscribe;\n exports[\"Unsubscribe\"] = Unsubscribe;\n exports[\"Lift\"] = Lift;\n exports[\"ChildQuery\"] = ChildQuery;\n exports[\"Raise\"] = Raise;\n exports[\"Par\"] = Par;\n exports[\"Fork\"] = Fork;\n exports[\"Kill\"] = Kill;\n exports[\"GetRef\"] = GetRef;\n exports[\"raise\"] = raise;\n exports[\"SubscriptionId\"] = SubscriptionId;\n exports[\"ForkId\"] = ForkId;\n exports[\"getRef\"] = getRef;\n exports[\"functorHalogenM\"] = functorHalogenM;\n exports[\"applicativeHalogenM\"] = applicativeHalogenM;\n exports[\"bindHalogenM\"] = bindHalogenM;\n exports[\"monadEffectHalogenM\"] = monadEffectHalogenM;\n exports[\"monadAffHalogenM\"] = monadAffHalogenM;\n exports[\"monadStateHalogenM\"] = monadStateHalogenM;\n exports[\"ordSubscriptionId\"] = ordSubscriptionId;\n exports[\"ordForkId\"] = ordForkId;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Query.HalogenQ\"] = $PS[\"Halogen.Query.HalogenQ\"] || {};\n var exports = $PS[\"Halogen.Query.HalogenQ\"]; \n var Initialize = (function () {\n function Initialize(value0) {\n this.value0 = value0;\n };\n Initialize.create = function (value0) {\n return new Initialize(value0);\n };\n return Initialize;\n })();\n var Finalize = (function () {\n function Finalize(value0) {\n this.value0 = value0;\n };\n Finalize.create = function (value0) {\n return new Finalize(value0);\n };\n return Finalize;\n })();\n var Receive = (function () {\n function Receive(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Receive.create = function (value0) {\n return function (value1) {\n return new Receive(value0, value1);\n };\n };\n return Receive;\n })();\n var Action = (function () {\n function Action(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Action.create = function (value0) {\n return function (value1) {\n return new Action(value0, value1);\n };\n };\n return Action;\n })();\n var Query = (function () {\n function Query(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Query.create = function (value0) {\n return function (value1) {\n return new Query(value0, value1);\n };\n };\n return Query;\n })();\n exports[\"Initialize\"] = Initialize;\n exports[\"Finalize\"] = Finalize;\n exports[\"Receive\"] = Receive;\n exports[\"Action\"] = Action;\n exports[\"Query\"] = Query;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Component\"] = $PS[\"Halogen.Component\"] || {};\n var exports = $PS[\"Halogen.Component\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Coyoneda = $PS[\"Data.Coyoneda\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Halogen_Data_Slot = $PS[\"Halogen.Data.Slot\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Halogen_Query_HalogenQ = $PS[\"Halogen.Query.HalogenQ\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var ComponentSlot = (function () {\n function ComponentSlot(value0) {\n this.value0 = value0;\n };\n ComponentSlot.create = function (value0) {\n return new ComponentSlot(value0);\n };\n return ComponentSlot;\n })();\n var ThunkSlot = (function () {\n function ThunkSlot(value0) {\n this.value0 = value0;\n };\n ThunkSlot.create = function (value0) {\n return new ThunkSlot(value0);\n };\n return ThunkSlot;\n })();\n var unComponentSlot = Unsafe_Coerce.unsafeCoerce;\n var unComponent = Unsafe_Coerce.unsafeCoerce;\n var mkEval = function (args) {\n return function (v) {\n if (v instanceof Halogen_Query_HalogenQ.Initialize) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.initialize))(v.value0);\n };\n if (v instanceof Halogen_Query_HalogenQ.Finalize) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.finalize))(v.value0);\n };\n if (v instanceof Halogen_Query_HalogenQ.Receive) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.receive(v.value0)))(v.value1);\n };\n if (v instanceof Halogen_Query_HalogenQ.Action) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(args.handleAction(v.value0))(v.value1);\n };\n if (v instanceof Halogen_Query_HalogenQ.Query) {\n return Data_Coyoneda.unCoyoneda(function (g) {\n var $28 = Data_Functor.map(Halogen_Query_HalogenM.functorHalogenM)(Data_Maybe.maybe(v.value1(Data_Unit.unit))(g));\n return function ($29) {\n return $28(args.handleQuery($29));\n };\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at Halogen.Component (line 172, column 15 - line 182, column 70): \" + [ v.constructor.name ]);\n };\n };\n var mkComponentSlot = Unsafe_Coerce.unsafeCoerce;\n var mkComponent = Unsafe_Coerce.unsafeCoerce;\n var defaultEval = {\n handleAction: Data_Function[\"const\"](Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit)),\n handleQuery: Data_Function[\"const\"](Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Maybe.Nothing.value)),\n receive: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n initialize: Data_Maybe.Nothing.value,\n finalize: Data_Maybe.Nothing.value\n };\n var componentSlot = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (p) {\n return function (comp) {\n return function (input) {\n return function (output) {\n return mkComponentSlot({\n get: Halogen_Data_Slot.lookup()(dictIsSymbol)(dictOrd)(label)(p),\n pop: Halogen_Data_Slot.pop()(dictIsSymbol)(dictOrd)(label)(p),\n set: Halogen_Data_Slot.insert()(dictIsSymbol)(dictOrd)(label)(p),\n component: comp,\n input: new Halogen_Query_HalogenQ.Receive(input, Data_Unit.unit),\n output: output\n });\n };\n };\n };\n };\n };\n };\n };\n };\n exports[\"mkComponent\"] = mkComponent;\n exports[\"unComponent\"] = unComponent;\n exports[\"mkEval\"] = mkEval;\n exports[\"defaultEval\"] = defaultEval;\n exports[\"ComponentSlot\"] = ComponentSlot;\n exports[\"ThunkSlot\"] = ThunkSlot;\n exports[\"componentSlot\"] = componentSlot;\n exports[\"unComponentSlot\"] = unComponentSlot;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"DOM.HTML.Indexed.ButtonType\"] = $PS[\"DOM.HTML.Indexed.ButtonType\"] || {};\n var exports = $PS[\"DOM.HTML.Indexed.ButtonType\"];\n var ButtonButton = (function () {\n function ButtonButton() {\n\n };\n ButtonButton.value = new ButtonButton();\n return ButtonButton;\n })();\n var ButtonSubmit = (function () {\n function ButtonSubmit() {\n\n };\n ButtonSubmit.value = new ButtonSubmit();\n return ButtonSubmit;\n })();\n var ButtonReset = (function () {\n function ButtonReset() {\n\n };\n ButtonReset.value = new ButtonReset();\n return ButtonReset;\n })();\n var 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 9, column 20 - line 12, column 25): \" + [ v.constructor.name ]);\n };\n exports[\"ButtonButton\"] = ButtonButton;\n exports[\"renderButtonType\"] = renderButtonType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"DOM.HTML.Indexed.OnOff\"] = $PS[\"DOM.HTML.Indexed.OnOff\"] || {};\n var exports = $PS[\"DOM.HTML.Indexed.OnOff\"];\n var On = (function () {\n function On() {\n\n };\n On.value = new On();\n return On;\n })();\n var Off = (function () {\n function Off() {\n\n };\n Off.value = new Off();\n return Off;\n })();\n var renderOnOff = function (v) {\n if (v instanceof On) {\n return \"on\";\n };\n if (v instanceof Off) {\n return \"off\";\n };\n throw new Error(\"Failed pattern match at DOM.HTML.Indexed.OnOff (line 8, column 15 - line 10, column 15): \" + [ v.constructor.name ]);\n };\n exports[\"On\"] = On;\n exports[\"Off\"] = Off;\n exports[\"renderOnOff\"] = renderOnOff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.VDom.Machine\"] = $PS[\"Halogen.VDom.Machine\"] || {};\n var exports = $PS[\"Halogen.VDom.Machine\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var Step = (function () {\n function Step(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Step.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Step(value0, value1, value2, value3);\n };\n };\n };\n };\n return Step;\n })();\n var unStep = Unsafe_Coerce.unsafeCoerce;\n var step = function (v, a) {\n return v.value2(v.value1, a);\n };\n var mkStep = Unsafe_Coerce.unsafeCoerce;\n var halt = function (v) {\n return v.value3(v.value1);\n };\n var extract = unStep(function (v) {\n return v.value0;\n });\n exports[\"Step\"] = Step;\n exports[\"mkStep\"] = mkStep;\n exports[\"unStep\"] = unStep;\n exports[\"extract\"] = extract;\n exports[\"step\"] = step;\n exports[\"halt\"] = halt;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafeGetAny = function (key, obj) {\n return obj[key];\n };\n\n exports.unsafeHasAny = function (key, obj) {\n return obj.hasOwnProperty(key);\n };\n\n exports.unsafeSetAny = function (key, val, obj) {\n obj[key] = val;\n };\n\n exports.forE = function (a, f) {\n var b = [];\n for (var i = 0; i < a.length; i++) {\n b.push(f(i, a[i]));\n }\n return b;\n };\n\n exports.forEachE = function (a, f) {\n for (var i = 0; i < a.length; i++) {\n f(a[i]);\n }\n };\n\n exports.forInE = function (o, f) {\n var ks = Object.keys(o);\n for (var i = 0; i < ks.length; i++) {\n var k = ks[i];\n f(k, o[k]);\n }\n };\n\n exports.diffWithIxE = function (a1, a2, f1, f2, f3) {\n var a3 = [];\n var l1 = a1.length;\n var l2 = a2.length;\n var i = 0;\n while (1) {\n if (i < l1) {\n if (i < l2) {\n a3.push(f1(i, a1[i], a2[i]));\n } else {\n f2(i, a1[i]);\n }\n } else if (i < l2) {\n a3.push(f3(i, a2[i]));\n } else {\n break;\n }\n i++;\n }\n return a3;\n };\n\n exports.strMapWithIxE = function (as, fk, f) {\n var o = {};\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n var k = fk(a);\n o[k] = f(k, i, a);\n }\n return o;\n };\n\n exports.diffWithKeyAndIxE = function (o1, as, fk, f1, f2, f3) {\n var o2 = {};\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n var k = fk(a);\n if (o1.hasOwnProperty(k)) {\n o2[k] = f1(k, i, o1[k], a);\n } else {\n o2[k] = f3(k, i, a);\n }\n }\n for (var k in o1) {\n if (k in o2) {\n continue;\n }\n f2(k, o1[k]);\n }\n return o2;\n };\n\n exports.refEq = function (a, b) {\n return a === b;\n };\n\n exports.createTextNode = function (s, doc) {\n return doc.createTextNode(s);\n };\n\n exports.setTextContent = function (s, n) {\n n.textContent = s;\n };\n\n exports.createElement = function (ns, name, doc) {\n if (ns != null) {\n return doc.createElementNS(ns, name);\n } else {\n return doc.createElement(name)\n }\n };\n\n exports.insertChildIx = function (i, a, b) {\n var n = b.childNodes.item(i) || null;\n if (n !== a) {\n b.insertBefore(a, n);\n }\n };\n\n exports.removeChild = function (a, b) {\n if (b && a.parentNode === b) {\n b.removeChild(a);\n }\n };\n\n exports.parentNode = function (a) {\n return a.parentNode;\n };\n\n exports.setAttribute = function (ns, attr, val, el) {\n if (ns != null) {\n el.setAttributeNS(ns, attr, val);\n } else {\n el.setAttribute(attr, val);\n }\n };\n\n exports.removeAttribute = function (ns, attr, el) {\n if (ns != null) {\n el.removeAttributeNS(ns, attr);\n } else {\n el.removeAttribute(attr);\n }\n };\n\n exports.addEventListener = function (ev, listener, el) {\n el.addEventListener(ev, listener, false);\n };\n\n exports.removeEventListener = function (ev, listener, el) {\n el.removeEventListener(ev, listener, false);\n };\n\n exports.jsUndefined = void 0;\n})(PS[\"Halogen.VDom.Util\"] = PS[\"Halogen.VDom.Util\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports[\"new\"] = function () {\n return {};\n };\n})(PS[\"Foreign.Object.ST\"] = PS[\"Foreign.Object.ST\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Foreign.Object.ST\"] = $PS[\"Foreign.Object.ST\"] || {};\n var exports = $PS[\"Foreign.Object.ST\"];\n var $foreign = $PS[\"Foreign.Object.ST\"];\n exports[\"new\"] = $foreign[\"new\"];\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.VDom.Util\"] = $PS[\"Halogen.VDom.Util\"] || {};\n var exports = $PS[\"Halogen.VDom.Util\"];\n var $foreign = $PS[\"Halogen.VDom.Util\"];\n var Foreign_Object_ST = $PS[\"Foreign.Object.ST\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var unsafeLookup = $foreign.unsafeGetAny;\n var unsafeFreeze = Unsafe_Coerce.unsafeCoerce;\n var pokeMutMap = $foreign.unsafeSetAny;\n var newMutMap = Foreign_Object_ST[\"new\"];\n exports[\"newMutMap\"] = newMutMap;\n exports[\"pokeMutMap\"] = pokeMutMap;\n exports[\"unsafeFreeze\"] = unsafeFreeze;\n exports[\"unsafeLookup\"] = unsafeLookup;\n exports[\"unsafeGetAny\"] = $foreign.unsafeGetAny;\n exports[\"unsafeHasAny\"] = $foreign.unsafeHasAny;\n exports[\"unsafeSetAny\"] = $foreign.unsafeSetAny;\n exports[\"forE\"] = $foreign.forE;\n exports[\"forEachE\"] = $foreign.forEachE;\n exports[\"forInE\"] = $foreign.forInE;\n exports[\"diffWithIxE\"] = $foreign.diffWithIxE;\n exports[\"diffWithKeyAndIxE\"] = $foreign.diffWithKeyAndIxE;\n exports[\"strMapWithIxE\"] = $foreign.strMapWithIxE;\n exports[\"refEq\"] = $foreign.refEq;\n exports[\"createTextNode\"] = $foreign.createTextNode;\n exports[\"setTextContent\"] = $foreign.setTextContent;\n exports[\"createElement\"] = $foreign.createElement;\n exports[\"insertChildIx\"] = $foreign.insertChildIx;\n exports[\"removeChild\"] = $foreign.removeChild;\n exports[\"parentNode\"] = $foreign.parentNode;\n exports[\"setAttribute\"] = $foreign.setAttribute;\n exports[\"removeAttribute\"] = $foreign.removeAttribute;\n exports[\"addEventListener\"] = $foreign.addEventListener;\n exports[\"removeEventListener\"] = $foreign.removeEventListener;\n exports[\"jsUndefined\"] = $foreign.jsUndefined;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.eventListener = function (fn) {\n return function () {\n return function (event) {\n return fn(event)();\n };\n };\n };\n})(PS[\"Web.Event.EventTarget\"] = PS[\"Web.Event.EventTarget\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.Event.EventTarget\"] = $PS[\"Web.Event.EventTarget\"] || {};\n var exports = $PS[\"Web.Event.EventTarget\"];\n var $foreign = $PS[\"Web.Event.EventTarget\"];\n exports[\"eventListener\"] = $foreign.eventListener;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.VDom.DOM.Prop\"] = $PS[\"Halogen.VDom.DOM.Prop\"] || {};\n var exports = $PS[\"Halogen.VDom.DOM.Prop\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Foreign = $PS[\"Foreign\"];\n var Foreign_Object = $PS[\"Foreign.Object\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Util = $PS[\"Halogen.VDom.Util\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Web_Event_EventTarget = $PS[\"Web.Event.EventTarget\"]; \n var Created = (function () {\n function Created(value0) {\n this.value0 = value0;\n };\n Created.create = function (value0) {\n return new Created(value0);\n };\n return Created;\n })();\n var Removed = (function () {\n function Removed(value0) {\n this.value0 = value0;\n };\n Removed.create = function (value0) {\n return new Removed(value0);\n };\n return Removed;\n })();\n var Attribute = (function () {\n function Attribute(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n Attribute.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new Attribute(value0, value1, value2);\n };\n };\n };\n return Attribute;\n })();\n var Property = (function () {\n function Property(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Property.create = function (value0) {\n return function (value1) {\n return new Property(value0, value1);\n };\n };\n return Property;\n })();\n var Handler = (function () {\n function Handler(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Handler.create = function (value0) {\n return function (value1) {\n return new Handler(value0, value1);\n };\n };\n return Handler;\n })();\n var Ref = (function () {\n function Ref(value0) {\n this.value0 = value0;\n };\n Ref.create = function (value0) {\n return new Ref(value0);\n };\n return Ref;\n })();\n var unsafeGetProperty = Halogen_VDom_Util.unsafeGetAny;\n var setProperty = Halogen_VDom_Util.unsafeSetAny;\n var removeProperty = function (key, el) {\n var v = Foreign.typeOf(Halogen_VDom_Util.unsafeGetAny(key, el));\n if (v === \"string\") {\n return Halogen_VDom_Util.unsafeSetAny(key, \"\", el);\n };\n if (key === \"rowSpan\") {\n return Halogen_VDom_Util.unsafeSetAny(key, 1, el);\n };\n if (key === \"colSpan\") {\n return Halogen_VDom_Util.unsafeSetAny(key, 1, el);\n };\n return Halogen_VDom_Util.unsafeSetAny(key, Halogen_VDom_Util.jsUndefined, el);\n };\n var propToStrKey = function (v) {\n if (v instanceof Attribute && v.value0 instanceof Data_Maybe.Just) {\n return \"attr/\" + (v.value0.value0 + (\":\" + v.value1));\n };\n if (v instanceof Attribute) {\n return \"attr/:\" + v.value1;\n };\n if (v instanceof Property) {\n return \"prop/\" + v.value0;\n };\n if (v instanceof Handler) {\n return \"handler/\" + v.value0;\n };\n if (v instanceof Ref) {\n return \"ref\";\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 182, column 16 - line 187, column 16): \" + [ v.constructor.name ]);\n };\n var propFromString = Unsafe_Coerce.unsafeCoerce;\n var propFromInt = Unsafe_Coerce.unsafeCoerce;\n var propFromBoolean = Unsafe_Coerce.unsafeCoerce;\n var buildProp = function (emit) {\n return function (el) {\n var removeProp = function (prevEvents) {\n return function (v, v1) {\n if (v1 instanceof Attribute) {\n return Halogen_VDom_Util.removeAttribute(Data_Nullable.toNullable(v1.value0), v1.value1, el);\n };\n if (v1 instanceof Property) {\n return removeProperty(v1.value0, el);\n };\n if (v1 instanceof Handler) {\n var handler = Halogen_VDom_Util.unsafeLookup(v1.value0, prevEvents);\n return Halogen_VDom_Util.removeEventListener(v1.value0, Data_Tuple.fst(handler), el);\n };\n if (v1 instanceof Ref) {\n return Data_Unit.unit;\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 169, column 5 - line 179, column 18): \" + [ v1.constructor.name ]);\n };\n };\n var mbEmit = function (v) {\n if (v instanceof Data_Maybe.Just) {\n return emit(v.value0)();\n };\n return Data_Unit.unit;\n };\n var haltProp = function (state) {\n var v = Foreign_Object.lookup(\"ref\")(state.props);\n if (v instanceof Data_Maybe.Just && v.value0 instanceof Ref) {\n return mbEmit(v.value0.value0(new Removed(el)));\n };\n return Data_Unit.unit;\n };\n var diffProp = function (prevEvents, events) {\n return function (v, v1, v11, v2) {\n if (v11 instanceof Attribute && v2 instanceof Attribute) {\n var $54 = v11.value2 === v2.value2;\n if ($54) {\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 $63 = Halogen_VDom_Util.refEq(elVal, v2.value1);\n if ($63) {\n return v2;\n };\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n if (v11 instanceof Handler && v2 instanceof Handler) {\n var handler = Halogen_VDom_Util.unsafeLookup(v2.value0, prevEvents);\n Effect_Ref.write(v2.value1)(Data_Tuple.snd(handler))();\n Halogen_VDom_Util.pokeMutMap(v2.value0, handler, events);\n return v2;\n };\n return v2;\n };\n };\n var applyProp = function (events) {\n return function (v, v1, v2) {\n if (v2 instanceof Attribute) {\n Halogen_VDom_Util.setAttribute(Data_Nullable.toNullable(v2.value0), v2.value1, v2.value2, el);\n return v2;\n };\n if (v2 instanceof Property) {\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n if (v2 instanceof Handler) {\n var v3 = Halogen_VDom_Util.unsafeGetAny(v2.value0, events);\n if (Halogen_VDom_Util.unsafeHasAny(v2.value0, events)) {\n Effect_Ref.write(v2.value1)(Data_Tuple.snd(v3))();\n return v2;\n };\n var ref = Effect_Ref[\"new\"](v2.value1)();\n var listener = Web_Event_EventTarget.eventListener(function (ev) {\n return function __do() {\n var f$prime = Effect_Ref.read(ref)();\n return mbEmit(f$prime(ev));\n };\n })();\n Halogen_VDom_Util.pokeMutMap(v2.value0, new Data_Tuple.Tuple(listener, ref), events);\n Halogen_VDom_Util.addEventListener(v2.value0, listener, el);\n return v2;\n };\n if (v2 instanceof Ref) {\n mbEmit(v2.value0(new Created(el)));\n return v2;\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 113, column 5 - line 135, column 15): \" + [ v2.constructor.name ]);\n };\n };\n var patchProp = function (state, ps2) {\n var events = Halogen_VDom_Util.newMutMap();\n var onThis = removeProp(state.events);\n var onThese = diffProp(state.events, events);\n var onThat = applyProp(events);\n var props = Halogen_VDom_Util.diffWithKeyAndIxE(state.props, ps2, propToStrKey, onThese, onThis, onThat);\n var nextState = {\n events: Halogen_VDom_Util.unsafeFreeze(events),\n props: props\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Data_Unit.unit, nextState, patchProp, haltProp));\n };\n var renderProp = function (ps1) {\n var events = Halogen_VDom_Util.newMutMap();\n var ps1$prime = Halogen_VDom_Util.strMapWithIxE(ps1, propToStrKey, applyProp(events));\n var state = {\n events: Halogen_VDom_Util.unsafeFreeze(events),\n props: ps1$prime\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Data_Unit.unit, state, patchProp, haltProp));\n };\n return renderProp;\n };\n };\n exports[\"Attribute\"] = Attribute;\n exports[\"Property\"] = Property;\n exports[\"Handler\"] = Handler;\n exports[\"Ref\"] = Ref;\n exports[\"Created\"] = Created;\n exports[\"Removed\"] = Removed;\n exports[\"propFromString\"] = propFromString;\n exports[\"propFromBoolean\"] = propFromBoolean;\n exports[\"propFromInt\"] = propFromInt;\n exports[\"buildProp\"] = buildProp;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.VDom.Types\"] = $PS[\"Halogen.VDom.Types\"] || {};\n var exports = $PS[\"Halogen.VDom.Types\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Text = (function () {\n function Text(value0) {\n this.value0 = value0;\n };\n Text.create = function (value0) {\n return new Text(value0);\n };\n return Text;\n })();\n var Elem = (function () {\n function Elem(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Elem.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Elem(value0, value1, value2, value3);\n };\n };\n };\n };\n return Elem;\n })();\n var Keyed = (function () {\n function Keyed(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Keyed.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Keyed(value0, value1, value2, value3);\n };\n };\n };\n };\n return Keyed;\n })();\n var Widget = (function () {\n function Widget(value0) {\n this.value0 = value0;\n };\n Widget.create = function (value0) {\n return new Widget(value0);\n };\n return Widget;\n })();\n var Grafted = (function () {\n function Grafted(value0) {\n this.value0 = value0;\n };\n Grafted.create = function (value0) {\n return new Grafted(value0);\n };\n return Grafted;\n })();\n var Graft = (function () {\n function Graft(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n Graft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new Graft(value0, value1, value2);\n };\n };\n };\n return Graft;\n })();\n var unGraft = function (f) {\n return function ($58) {\n return f($58);\n };\n }; \n var graft = Unsafe_Coerce.unsafeCoerce;\n var bifunctorGraft = new Data_Bifunctor.Bifunctor(function (f) {\n return function (g) {\n return unGraft(function (v) {\n return graft(new Graft(function ($60) {\n return f(v.value0($60));\n }, function ($61) {\n return g(v.value1($61));\n }, v.value2));\n });\n };\n });\n var runGraft = unGraft(function (v) {\n var go = function (v2) {\n if (v2 instanceof Text) {\n return new Text(v2.value0);\n };\n if (v2 instanceof Elem) {\n return new Elem(v2.value0, v2.value1, v.value0(v2.value2), Data_Functor.map(Data_Functor.functorArray)(go)(v2.value3));\n };\n if (v2 instanceof Keyed) {\n return new Keyed(v2.value0, v2.value1, v.value0(v2.value2), Data_Functor.map(Data_Functor.functorArray)(Data_Functor.map(Data_Tuple.functorTuple)(go))(v2.value3));\n };\n if (v2 instanceof Widget) {\n return new Widget(v.value1(v2.value0));\n };\n if (v2 instanceof Grafted) {\n return new Grafted(Data_Bifunctor.bimap(bifunctorGraft)(v.value0)(v.value1)(v2.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Types (line 86, column 7 - line 86, column 27): \" + [ v2.constructor.name ]);\n };\n return go(v.value2);\n });\n exports[\"Text\"] = Text;\n exports[\"Elem\"] = Elem;\n exports[\"Keyed\"] = Keyed;\n exports[\"Widget\"] = Widget;\n exports[\"Grafted\"] = Grafted;\n exports[\"runGraft\"] = runGraft;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.HTML.Core\"] = $PS[\"Halogen.HTML.Core\"] || {};\n var exports = $PS[\"Halogen.HTML.Core\"];\n var DOM_HTML_Indexed_ButtonType = $PS[\"DOM.HTML.Indexed.ButtonType\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var DOM_HTML_Indexed_OnOff = $PS[\"DOM.HTML.Indexed.OnOff\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Halogen_VDom_DOM_Prop = $PS[\"Halogen.VDom.DOM.Prop\"];\n var Halogen_VDom_Types = $PS[\"Halogen.VDom.Types\"];\n var HTML = function (x) {\n return x;\n };\n var ClassName = function (x) {\n return x;\n };\n var IsProp = function (toPropValue) {\n this.toPropValue = toPropValue;\n };\n var widget = function ($30) {\n return HTML(Halogen_VDom_Types.Widget.create($30));\n };\n var toPropValue = function (dict) {\n return dict.toPropValue;\n };\n var text = function ($31) {\n return HTML(Halogen_VDom_Types.Text.create($31));\n }; \n var ref = function (f) {\n return Halogen_VDom_DOM_Prop.Ref.create(function ($32) {\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 104, column 21 - line 106, column 23): \" + [ v.constructor.name ]);\n })($32));\n });\n };\n var prop = function (dictIsProp) {\n return function (v) {\n var $33 = Halogen_VDom_DOM_Prop.Property.create(v);\n var $34 = toPropValue(dictIsProp);\n return function ($35) {\n return $33($34($35));\n };\n };\n }; \n var newtypeHTML = new Data_Newtype.Newtype(function (n) {\n return n;\n }, HTML);\n var newtypeClassName = new Data_Newtype.Newtype(function (n) {\n return n;\n }, ClassName);\n var isPropString = new IsProp(Halogen_VDom_DOM_Prop.propFromString);\n var isPropOnOff = new IsProp(function ($43) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_OnOff.renderOnOff($43));\n });\n var isPropInt = new IsProp(Halogen_VDom_DOM_Prop.propFromInt);\n var isPropInputType = new IsProp(function ($49) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_InputType.renderInputType($49));\n });\n var isPropButtonType = new IsProp(function ($54) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_ButtonType.renderButtonType($54));\n });\n var isPropBoolean = new IsProp(Halogen_VDom_DOM_Prop.propFromBoolean);\n var handler = Halogen_VDom_DOM_Prop.Handler.create;\n var element = function (ns) {\n return function (name) {\n return function (props) {\n return function (children) {\n return new Halogen_VDom_Types.Elem(ns, name, props, children);\n };\n };\n };\n }; \n var attr = function (ns) {\n return function (v) {\n return Halogen_VDom_DOM_Prop.Attribute.create(ns)(v);\n };\n };\n exports[\"widget\"] = widget;\n exports[\"text\"] = text;\n exports[\"element\"] = element;\n exports[\"prop\"] = prop;\n exports[\"attr\"] = attr;\n exports[\"handler\"] = handler;\n exports[\"ref\"] = ref;\n exports[\"ClassName\"] = ClassName;\n exports[\"newtypeHTML\"] = newtypeHTML;\n exports[\"isPropString\"] = isPropString;\n exports[\"isPropInt\"] = isPropInt;\n exports[\"isPropBoolean\"] = isPropBoolean;\n exports[\"isPropButtonType\"] = isPropButtonType;\n exports[\"isPropInputType\"] = isPropInputType;\n exports[\"isPropOnOff\"] = isPropOnOff;\n exports[\"newtypeClassName\"] = newtypeClassName;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.HTML.Elements\"] = $PS[\"Halogen.HTML.Elements\"] || {};\n var exports = $PS[\"Halogen.HTML.Elements\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var element = Halogen_HTML_Core.element(Data_Maybe.Nothing.value);\n var form = element(\"form\");\n var input = function (props) {\n return element(\"input\")(props)([ ]);\n }; \n var label = element(\"label\");\n var p = element(\"p\");\n var span = element(\"span\");\n var table = element(\"table\");\n var tbody = element(\"tbody\");\n var tbody_ = tbody([ ]);\n var td = element(\"td\");\n var td_ = td([ ]);\n var textarea = function (es) {\n return element(\"textarea\")(es)([ ]);\n }; \n var tr = element(\"tr\");\n var tr_ = tr([ ]);\n var div = element(\"div\");\n var div_ = div([ ]);\n var button = element(\"button\");\n var br = function (props) {\n return element(\"br\")(props)([ ]);\n };\n var br_ = br([ ]); \n var a = element(\"a\");\n exports[\"a\"] = a;\n exports[\"br_\"] = br_;\n exports[\"button\"] = button;\n exports[\"div\"] = div;\n exports[\"div_\"] = div_;\n exports[\"form\"] = form;\n exports[\"input\"] = input;\n exports[\"label\"] = label;\n exports[\"p\"] = p;\n exports[\"span\"] = span;\n exports[\"table\"] = table;\n exports[\"tbody_\"] = tbody_;\n exports[\"td\"] = td;\n exports[\"td_\"] = td_;\n exports[\"textarea\"] = textarea;\n exports[\"tr_\"] = tr_;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafeReadPropImpl = function (f, s, key, value) {\n return value == null ? f : s(value[key]);\n };\n})(PS[\"Foreign.Index\"] = PS[\"Foreign.Index\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Foreign.Index\"] = $PS[\"Foreign.Index\"] || {};\n var exports = $PS[\"Foreign.Index\"];\n var $foreign = $PS[\"Foreign.Index\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Foreign = $PS[\"Foreign\"];\n var unsafeReadProp = function (k) {\n return function (value) {\n return $foreign.unsafeReadPropImpl(Foreign.fail(new Foreign.TypeMismatch(\"object\", Foreign.typeOf(value))), Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity)), k, value);\n };\n };\n var readProp = unsafeReadProp;\n exports[\"readProp\"] = readProp;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Query.Input\"] = $PS[\"Halogen.Query.Input\"] || {};\n var exports = $PS[\"Halogen.Query.Input\"];\n var RefUpdate = (function () {\n function RefUpdate(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n RefUpdate.create = function (value0) {\n return function (value1) {\n return new RefUpdate(value0, value1);\n };\n };\n return RefUpdate;\n })();\n var Action = (function () {\n function Action(value0) {\n this.value0 = value0;\n };\n Action.create = function (value0) {\n return new Action(value0);\n };\n return Action;\n })();\n exports[\"RefUpdate\"] = RefUpdate;\n exports[\"Action\"] = Action;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._currentTarget = function (e) {\n return e.currentTarget;\n };\n\n exports.preventDefault = function (e) {\n return function () {\n return e.preventDefault();\n };\n };\n})(PS[\"Web.Event.Event\"] = PS[\"Web.Event.Event\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.Event.Event\"] = $PS[\"Web.Event.Event\"] || {};\n var exports = $PS[\"Web.Event.Event\"];\n var $foreign = $PS[\"Web.Event.Event\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var currentTarget = function ($8) {\n return Data_Nullable.toMaybe($foreign[\"_currentTarget\"]($8));\n };\n exports[\"currentTarget\"] = currentTarget;\n exports[\"preventDefault\"] = $foreign.preventDefault;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.HTML.Event.EventTypes\"] = $PS[\"Web.HTML.Event.EventTypes\"] || {};\n var exports = $PS[\"Web.HTML.Event.EventTypes\"];\n var change = \"change\";\n exports[\"change\"] = change;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.UIEvent.MouseEvent.EventTypes\"] = $PS[\"Web.UIEvent.MouseEvent.EventTypes\"] || {};\n var exports = $PS[\"Web.UIEvent.MouseEvent.EventTypes\"];\n var click = \"click\";\n exports[\"click\"] = click;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.HTML.Events\"] = $PS[\"Halogen.HTML.Events\"] || {};\n var exports = $PS[\"Halogen.HTML.Events\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_Except = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Foreign = $PS[\"Foreign\"];\n var Foreign_Index = $PS[\"Foreign.Index\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_Query_Input = $PS[\"Halogen.Query.Input\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Web_Event_Event = $PS[\"Web.Event.Event\"];\n var Web_HTML_Event_EventTypes = $PS[\"Web.HTML.Event.EventTypes\"];\n var Web_UIEvent_MouseEvent_EventTypes = $PS[\"Web.UIEvent.MouseEvent.EventTypes\"];\n var mouseHandler = Unsafe_Coerce.unsafeCoerce;\n var handler = function (et) {\n var $1 = Halogen_HTML_Core.handler(et);\n var $2 = Data_Functor.map(Data_Functor.functorFn)(Data_Functor.map(Data_Maybe.functorMaybe)(Halogen_Query_Input.Action.create));\n return function ($3) {\n return $1($2($3));\n };\n }; \n var onClick = (function () {\n var $4 = handler(Web_UIEvent_MouseEvent_EventTypes.click);\n return function ($5) {\n return $4(mouseHandler($5));\n };\n })(); \n var onSubmit = handler(\"submit\");\n var addForeignPropHandler = function (key) {\n return function (prop) {\n return function (reader) {\n return function (f) {\n var go = function (a) {\n return Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(reader)(Foreign_Index.readProp(prop))(Foreign.unsafeToForeign(a));\n };\n return handler(key)(Control_Bind.composeKleisli(Data_Maybe.bindMaybe)(Web_Event_Event.currentTarget)(function (e) {\n return Data_Either.either(Data_Function[\"const\"](Data_Maybe.Nothing.value))(f)(Control_Monad_Except.runExcept(go(e)));\n }));\n };\n };\n };\n };\n var onChecked = addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"checked\")(Foreign.readBoolean); \n var onValueChange = addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"value\")(Foreign.readString);\n exports[\"onSubmit\"] = onSubmit;\n exports[\"onClick\"] = onClick;\n exports[\"onValueChange\"] = onValueChange;\n exports[\"onChecked\"] = onChecked;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.HTML.Properties\"] = $PS[\"Halogen.HTML.Properties\"] || {};\n var exports = $PS[\"Halogen.HTML.Properties\"];\n var DOM_HTML_Indexed_OnOff = $PS[\"DOM.HTML.Indexed.OnOff\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_Query_Input = $PS[\"Halogen.Query.Input\"];\n var ref = (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 ($11) {\n return Halogen_HTML_Core.ref(go($11));\n };\n })();\n var prop = function (dictIsProp) {\n return Halogen_HTML_Core.prop(dictIsProp);\n }; \n var required = prop(Halogen_HTML_Core.isPropBoolean)(\"required\");\n var rows = prop(Halogen_HTML_Core.isPropInt)(\"rows\"); \n var target = prop(Halogen_HTML_Core.isPropString)(\"target\");\n var title = prop(Halogen_HTML_Core.isPropString)(\"title\");\n var type_ = function (dictIsProp) {\n return prop(dictIsProp)(\"type\");\n };\n var value = prop(Halogen_HTML_Core.isPropString)(\"value\");\n var name = prop(Halogen_HTML_Core.isPropString)(\"name\"); \n var id_ = prop(Halogen_HTML_Core.isPropString)(\"id\");\n var href = prop(Halogen_HTML_Core.isPropString)(\"href\");\n var $$for = prop(Halogen_HTML_Core.isPropString)(\"htmlFor\"); \n var disabled = prop(Halogen_HTML_Core.isPropBoolean)(\"disabled\");\n var class_ = (function () {\n var $18 = prop(Halogen_HTML_Core.isPropString)(\"className\");\n var $19 = Data_Newtype.unwrap(Halogen_HTML_Core.newtypeClassName);\n return function ($20) {\n return $18($19($20));\n };\n })();\n var checked = prop(Halogen_HTML_Core.isPropBoolean)(\"checked\"); \n var autofocus = prop(Halogen_HTML_Core.isPropBoolean)(\"autofocus\");\n var autocomplete = (function () {\n var $21 = prop(Halogen_HTML_Core.isPropOnOff)(\"autocomplete\");\n return function ($22) {\n return $21((function (b) {\n if (b) {\n return DOM_HTML_Indexed_OnOff.On.value;\n };\n return DOM_HTML_Indexed_OnOff.Off.value;\n })($22));\n };\n })();\n var attr = Halogen_HTML_Core.attr(Data_Maybe.Nothing.value);\n exports[\"attr\"] = attr;\n exports[\"ref\"] = ref;\n exports[\"class_\"] = class_;\n exports[\"rows\"] = rows;\n exports[\"for\"] = $$for;\n exports[\"href\"] = href;\n exports[\"id_\"] = id_;\n exports[\"name\"] = name;\n exports[\"target\"] = target;\n exports[\"title\"] = title;\n exports[\"type_\"] = type_;\n exports[\"value\"] = value;\n exports[\"disabled\"] = disabled;\n exports[\"required\"] = required;\n exports[\"checked\"] = checked;\n exports[\"autocomplete\"] = autocomplete;\n exports[\"autofocus\"] = autofocus;\n})(PS);\n(function(exports) {\n \"use strict\";\n /* global Symbol */\n\n var hasArrayFrom = typeof Array.from === \"function\";\n var hasStringIterator =\n typeof Symbol !== \"undefined\" &&\n Symbol != null &&\n typeof Symbol.iterator !== \"undefined\" &&\n typeof String.prototype[Symbol.iterator] === \"function\";\n var hasFromCodePoint = typeof String.prototype.fromCodePoint === \"function\";\n var hasCodePointAt = typeof String.prototype.codePointAt === \"function\";\n\n exports._unsafeCodePointAt0 = function (fallback) {\n return hasCodePointAt\n ? function (str) { return str.codePointAt(0); }\n : fallback;\n };\n\n exports._singleton = function (fallback) {\n return hasFromCodePoint ? String.fromCodePoint : fallback;\n };\n\n exports._take = function (fallback) {\n return function (n) {\n if (hasStringIterator) {\n return function (str) {\n var accum = \"\";\n var iter = str[Symbol.iterator]();\n for (var i = 0; i < n; ++i) {\n var o = iter.next();\n if (o.done) return accum;\n accum += o.value;\n }\n return accum;\n };\n }\n return fallback(n);\n };\n };\n\n exports._toCodePointArray = function (fallback) {\n return function (unsafeCodePointAt0) {\n if (hasArrayFrom) {\n return function (str) {\n return Array.from(str, unsafeCodePointAt0);\n };\n }\n return fallback;\n };\n };\n})(PS[\"Data.String.CodePoints\"] = PS[\"Data.String.CodePoints\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.topInt = 2147483647;\n exports.bottomInt = -2147483648;\n\n exports.topChar = String.fromCharCode(65535);\n exports.bottomChar = String.fromCharCode(0);\n})(PS[\"Data.Bounded\"] = PS[\"Data.Bounded\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Bounded\"] = $PS[\"Data.Bounded\"] || {};\n var exports = $PS[\"Data.Bounded\"];\n var $foreign = $PS[\"Data.Bounded\"];\n var Data_Ord = $PS[\"Data.Ord\"]; \n var Bounded = function (Ord0, bottom, top) {\n this.Ord0 = Ord0;\n this.bottom = bottom;\n this.top = top;\n };\n var top = function (dict) {\n return dict.top;\n }; \n var boundedInt = new Bounded(function () {\n return Data_Ord.ordInt;\n }, $foreign.bottomInt, $foreign.topInt);\n var boundedChar = new Bounded(function () {\n return Data_Ord.ordChar;\n }, $foreign.bottomChar, $foreign.topChar);\n var bottom = function (dict) {\n return dict.bottom;\n };\n exports[\"bottom\"] = bottom;\n exports[\"top\"] = top;\n exports[\"boundedInt\"] = boundedInt;\n exports[\"boundedChar\"] = boundedChar;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.toCharCode = function (c) {\n return c.charCodeAt(0);\n };\n\n exports.fromCharCode = function (c) {\n return String.fromCharCode(c);\n };\n})(PS[\"Data.Enum\"] = PS[\"Data.Enum\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Enum\"] = $PS[\"Data.Enum\"] || {};\n var exports = $PS[\"Data.Enum\"];\n var $foreign = $PS[\"Data.Enum\"];\n var Data_Bounded = $PS[\"Data.Bounded\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Enum = function (Ord0, pred, succ) {\n this.Ord0 = Ord0;\n this.pred = pred;\n this.succ = succ;\n };\n var BoundedEnum = function (Bounded0, Enum1, cardinality, fromEnum, toEnum) {\n this.Bounded0 = Bounded0;\n this.Enum1 = Enum1;\n this.cardinality = cardinality;\n this.fromEnum = fromEnum;\n this.toEnum = toEnum;\n };\n var toEnum = function (dict) {\n return dict.toEnum;\n }; \n var fromEnum = function (dict) {\n return dict.fromEnum;\n };\n var toEnumWithDefaults = function (dictBoundedEnum) {\n return function (low) {\n return function (high) {\n return function (x) {\n var v = toEnum(dictBoundedEnum)(x);\n if (v instanceof Data_Maybe.Just) {\n return v.value0;\n };\n if (v instanceof Data_Maybe.Nothing) {\n var $54 = x < fromEnum(dictBoundedEnum)(Data_Bounded.bottom(dictBoundedEnum.Bounded0()));\n if ($54) {\n return low;\n };\n return high;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 158, column 33 - line 160, column 62): \" + [ v.constructor.name ]);\n };\n };\n };\n };\n var defaultSucc = function (toEnum$prime) {\n return function (fromEnum$prime) {\n return function (a) {\n return toEnum$prime(fromEnum$prime(a) + 1 | 0);\n };\n };\n };\n var defaultPred = function (toEnum$prime) {\n return function (fromEnum$prime) {\n return function (a) {\n return toEnum$prime(fromEnum$prime(a) - 1 | 0);\n };\n };\n };\n var charToEnum = function (v) {\n if (v >= Data_Bounded.bottom(Data_Bounded.boundedInt) && v <= Data_Bounded.top(Data_Bounded.boundedInt)) {\n return new Data_Maybe.Just($foreign.fromCharCode(v));\n };\n return Data_Maybe.Nothing.value;\n };\n var enumChar = new Enum(function () {\n return Data_Ord.ordChar;\n }, defaultPred(charToEnum)($foreign.toCharCode), defaultSucc(charToEnum)($foreign.toCharCode));\n var boundedEnumChar = new BoundedEnum(function () {\n return Data_Bounded.boundedChar;\n }, function () {\n return enumChar;\n }, $foreign.toCharCode(Data_Bounded.top(Data_Bounded.boundedChar)) - $foreign.toCharCode(Data_Bounded.bottom(Data_Bounded.boundedChar)) | 0, $foreign.toCharCode, charToEnum);\n exports[\"fromEnum\"] = fromEnum;\n exports[\"toEnumWithDefaults\"] = toEnumWithDefaults;\n exports[\"boundedEnumChar\"] = boundedEnumChar;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.intDegree = function (x) {\n return Math.min(Math.abs(x), 2147483647);\n };\n\n // See the Euclidean definition in\n // https://en.m.wikipedia.org/wiki/Modulo_operation.\n exports.intDiv = function (x) {\n return function (y) {\n if (y === 0) return 0;\n return y > 0 ? Math.floor(x / y) : -Math.floor(x / -y);\n };\n };\n\n exports.intMod = function (x) {\n return function (y) {\n if (y === 0) return 0;\n var yy = Math.abs(y);\n return ((x % yy) + yy) % yy;\n };\n };\n})(PS[\"Data.EuclideanRing\"] = PS[\"Data.EuclideanRing\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.intSub = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x - y | 0;\n };\n };\n})(PS[\"Data.Ring\"] = PS[\"Data.Ring\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.intAdd = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x + y | 0;\n };\n };\n\n exports.intMul = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x * y | 0;\n };\n };\n})(PS[\"Data.Semiring\"] = PS[\"Data.Semiring\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Semiring\"] = $PS[\"Data.Semiring\"] || {};\n var exports = $PS[\"Data.Semiring\"];\n var $foreign = $PS[\"Data.Semiring\"];\n var Semiring = function (add, mul, one, zero) {\n this.add = add;\n this.mul = mul;\n this.one = one;\n this.zero = zero;\n }; \n var semiringInt = new Semiring($foreign.intAdd, $foreign.intMul, 1, 0);\n exports[\"semiringInt\"] = semiringInt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Ring\"] = $PS[\"Data.Ring\"] || {};\n var exports = $PS[\"Data.Ring\"];\n var $foreign = $PS[\"Data.Ring\"];\n var Data_Semiring = $PS[\"Data.Semiring\"];\n var Ring = function (Semiring0, sub) {\n this.Semiring0 = Semiring0;\n this.sub = sub;\n }; \n var ringInt = new Ring(function () {\n return Data_Semiring.semiringInt;\n }, $foreign.intSub);\n exports[\"ringInt\"] = ringInt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.CommutativeRing\"] = $PS[\"Data.CommutativeRing\"] || {};\n var exports = $PS[\"Data.CommutativeRing\"];\n var Data_Ring = $PS[\"Data.Ring\"];\n var CommutativeRing = function (Ring0) {\n this.Ring0 = Ring0;\n }; \n var commutativeRingInt = new CommutativeRing(function () {\n return Data_Ring.ringInt;\n });\n exports[\"commutativeRingInt\"] = commutativeRingInt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.EuclideanRing\"] = $PS[\"Data.EuclideanRing\"] || {};\n var exports = $PS[\"Data.EuclideanRing\"];\n var $foreign = $PS[\"Data.EuclideanRing\"];\n var Data_CommutativeRing = $PS[\"Data.CommutativeRing\"]; \n var EuclideanRing = function (CommutativeRing0, degree, div, mod) {\n this.CommutativeRing0 = CommutativeRing0;\n this.degree = degree;\n this.div = div;\n this.mod = mod;\n };\n var mod = function (dict) {\n return dict.mod;\n }; \n var euclideanRingInt = new EuclideanRing(function () {\n return Data_CommutativeRing.commutativeRingInt;\n }, $foreign.intDegree, $foreign.intDiv, $foreign.intMod);\n var div = function (dict) {\n return dict.div;\n };\n exports[\"div\"] = div;\n exports[\"mod\"] = mod;\n exports[\"euclideanRingInt\"] = euclideanRingInt;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.singleton = function (c) {\n return c;\n };\n\n exports.length = function (s) {\n return s.length;\n };\n\n exports.drop = function (n) {\n return function (s) {\n return s.substring(n);\n };\n };\n})(PS[\"Data.String.CodeUnits\"] = PS[\"Data.String.CodeUnits\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.String.CodeUnits\"] = $PS[\"Data.String.CodeUnits\"] || {};\n var exports = $PS[\"Data.String.CodeUnits\"];\n var $foreign = $PS[\"Data.String.CodeUnits\"];\n exports[\"singleton\"] = $foreign.singleton;\n exports[\"length\"] = $foreign.length;\n exports[\"drop\"] = $foreign.drop;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.charAt = function (i) {\n return function (s) {\n if (i >= 0 && i < s.length) return s.charAt(i);\n throw new Error(\"Data.String.Unsafe.charAt: Invalid index.\");\n };\n };\n})(PS[\"Data.String.Unsafe\"] = PS[\"Data.String.Unsafe\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.String.Unsafe\"] = $PS[\"Data.String.Unsafe\"] || {};\n var exports = $PS[\"Data.String.Unsafe\"];\n var $foreign = $PS[\"Data.String.Unsafe\"];\n exports[\"charAt\"] = $foreign.charAt;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unfoldrArrayImpl = function (isNothing) {\n return function (fromJust) {\n return function (fst) {\n return function (snd) {\n return function (f) {\n return function (b) {\n var result = [];\n var value = b;\n while (true) { // eslint-disable-line no-constant-condition\n var maybe = f(value);\n if (isNothing(maybe)) return result;\n var tuple = fromJust(maybe);\n result.push(fst(tuple));\n value = snd(tuple);\n }\n };\n };\n };\n };\n };\n };\n})(PS[\"Data.Unfoldable\"] = PS[\"Data.Unfoldable\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.unfoldr1ArrayImpl = function (isNothing) {\n return function (fromJust) {\n return function (fst) {\n return function (snd) {\n return function (f) {\n return function (b) {\n var result = [];\n var value = b;\n while (true) { // eslint-disable-line no-constant-condition\n var tuple = f(value);\n result.push(fst(tuple));\n var maybe = snd(tuple);\n if (isNothing(maybe)) return result;\n value = fromJust(maybe);\n }\n };\n };\n };\n };\n };\n };\n})(PS[\"Data.Unfoldable1\"] = PS[\"Data.Unfoldable1\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Unfoldable1\"] = $PS[\"Data.Unfoldable1\"] || {};\n var exports = $PS[\"Data.Unfoldable1\"];\n var $foreign = $PS[\"Data.Unfoldable1\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var Unfoldable1 = function (unfoldr1) {\n this.unfoldr1 = unfoldr1;\n };\n var unfoldable1Array = new Unfoldable1($foreign.unfoldr1ArrayImpl(Data_Maybe.isNothing)(Data_Maybe.fromJust())(Data_Tuple.fst)(Data_Tuple.snd));\n exports[\"unfoldable1Array\"] = unfoldable1Array;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Unfoldable\"] = $PS[\"Data.Unfoldable\"] || {};\n var exports = $PS[\"Data.Unfoldable\"];\n var $foreign = $PS[\"Data.Unfoldable\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unfoldable1 = $PS[\"Data.Unfoldable1\"]; \n var Unfoldable = function (Unfoldable10, unfoldr) {\n this.Unfoldable10 = Unfoldable10;\n this.unfoldr = unfoldr;\n };\n var unfoldr = function (dict) {\n return dict.unfoldr;\n };\n var unfoldableArray = new Unfoldable(function () {\n return Data_Unfoldable1.unfoldable1Array;\n }, $foreign.unfoldrArrayImpl(Data_Maybe.isNothing)(Data_Maybe.fromJust())(Data_Tuple.fst)(Data_Tuple.snd));\n exports[\"unfoldr\"] = unfoldr;\n exports[\"unfoldableArray\"] = unfoldableArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.String.CodePoints\"] = $PS[\"Data.String.CodePoints\"] || {};\n var exports = $PS[\"Data.String.CodePoints\"];\n var $foreign = $PS[\"Data.String.CodePoints\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Bounded = $PS[\"Data.Bounded\"];\n var Data_Enum = $PS[\"Data.Enum\"];\n var Data_EuclideanRing = $PS[\"Data.EuclideanRing\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_String_CodeUnits = $PS[\"Data.String.CodeUnits\"];\n var Data_String_Unsafe = $PS[\"Data.String.Unsafe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unfoldable = $PS[\"Data.Unfoldable\"];\n var unsurrogate = function (lead) {\n return function (trail) {\n return (((lead - 55296 | 0) * 1024 | 0) + (trail - 56320 | 0) | 0) + 65536 | 0;\n };\n }; \n var isTrail = function (cu) {\n return 56320 <= cu && cu <= 57343;\n };\n var isLead = function (cu) {\n return 55296 <= cu && cu <= 56319;\n };\n var uncons = function (s) {\n var v = Data_String_CodeUnits.length(s);\n if (v === 0) {\n return Data_Maybe.Nothing.value;\n };\n if (v === 1) {\n return new Data_Maybe.Just({\n head: Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s)),\n tail: \"\"\n });\n };\n var cu1 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(1)(s));\n var cu0 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s));\n var $21 = isLead(cu0) && isTrail(cu1);\n if ($21) {\n return new Data_Maybe.Just({\n head: unsurrogate(cu0)(cu1),\n tail: Data_String_CodeUnits.drop(2)(s)\n });\n };\n return new Data_Maybe.Just({\n head: cu0,\n tail: Data_String_CodeUnits.drop(1)(s)\n });\n };\n var unconsButWithTuple = function (s) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (v) {\n return new Data_Tuple.Tuple(v.head, v.tail);\n })(uncons(s));\n };\n var toCodePointArrayFallback = function (s) {\n return Data_Unfoldable.unfoldr(Data_Unfoldable.unfoldableArray)(unconsButWithTuple)(s);\n };\n var unsafeCodePointAt0Fallback = function (s) {\n var cu0 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s));\n var $25 = isLead(cu0) && Data_String_CodeUnits.length(s) > 1;\n if ($25) {\n var cu1 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(1)(s));\n var $26 = isTrail(cu1);\n if ($26) {\n return unsurrogate(cu0)(cu1);\n };\n return cu0;\n };\n return cu0;\n };\n var unsafeCodePointAt0 = $foreign[\"_unsafeCodePointAt0\"](unsafeCodePointAt0Fallback);\n var toCodePointArray = $foreign[\"_toCodePointArray\"](toCodePointArrayFallback)(unsafeCodePointAt0);\n var length = function ($52) {\n return Data_Array.length(toCodePointArray($52));\n };\n var fromCharCode = (function () {\n var $53 = Data_Enum.toEnumWithDefaults(Data_Enum.boundedEnumChar)(Data_Bounded.bottom(Data_Bounded.boundedChar))(Data_Bounded.top(Data_Bounded.boundedChar));\n return function ($54) {\n return Data_String_CodeUnits.singleton($53($54));\n };\n })();\n var singletonFallback = function (v) {\n if (v <= 65535) {\n return fromCharCode(v);\n };\n var lead = Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt)(v - 65536 | 0)(1024) + 55296 | 0;\n var trail = Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt)(v - 65536 | 0)(1024) + 56320 | 0;\n return fromCharCode(lead) + fromCharCode(trail);\n }; \n var singleton = $foreign[\"_singleton\"](singletonFallback);\n var takeFallback = function (n) {\n return function (v) {\n if (n < 1) {\n return \"\";\n };\n var v1 = uncons(v);\n if (v1 instanceof Data_Maybe.Just) {\n return singleton(v1.value0.head) + takeFallback(n - 1 | 0)(v1.value0.tail);\n };\n return v;\n };\n };\n var take = $foreign[\"_take\"](takeFallback);\n var drop = function (n) {\n return function (s) {\n return Data_String_CodeUnits.drop(Data_String_CodeUnits.length(take(n)(s)))(s);\n };\n };\n exports[\"take\"] = take;\n exports[\"drop\"] = drop;\n})(PS);\n(function($PS) {\n \"use strict\";\n $PS[\"Util\"] = $PS[\"Util\"] || {};\n var exports = $PS[\"Util\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_String_CodePoints = $PS[\"Data.String.CodePoints\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Global_Unsafe = $PS[\"Global.Unsafe\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_Location = $PS[\"Web.HTML.Location\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"]; \n var 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 };\n var whenA = function (b) {\n return function (k) {\n if (b) {\n return k(Data_Unit.unit);\n };\n return [ ];\n };\n };\n var 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 };\n var fromNullableStr = (function () {\n var $43 = Data_Maybe.fromMaybe(\"\");\n return function ($44) {\n return $43(Data_Nullable.toMaybe($44));\n };\n })();\n\n // Halogen\n var class_ = function ($45) {\n return Halogen_HTML_Properties.class_(Halogen_HTML_Core.ClassName($45));\n };\n var attr = function (a) {\n return Halogen_HTML_Properties.attr(a);\n };\n var _parseQueryString = function (srh) {\n var decode = (function () {\n var $46 = Data_String_Common.replaceAll(\"+\")(\" \");\n return function ($47) {\n return Global_Unsafe.unsafeDecodeURIComponent($46($47));\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 $42 = srh$prime === \"#\" || srh$prime === \"?\";\n if ($42) {\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 }; \n var _lookupQueryStringValue = function (qs) {\n return function (k) {\n return Control_Bind.join(Data_Maybe.bindMaybe)(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Tuple.snd)(Data_Foldable.find(Data_Foldable.foldableArray)(function ($50) {\n return (function (v) {\n return v === k;\n })(Data_Tuple.fst($50));\n })(qs)));\n };\n };\n var _loc = Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Window.location)(Web_HTML.window);\n var _curQuerystring = function __do() {\n var loc = _loc();\n var srh = Web_HTML_Location.search(loc)();\n return _parseQueryString(srh);\n };\n exports[\"class_\"] = class_;\n exports[\"attr\"] = attr;\n exports[\"_loc\"] = _loc;\n exports[\"_curQuerystring\"] = _curQuerystring;\n exports[\"_lookupQueryStringValue\"] = _lookupQueryStringValue;\n exports[\"whenH\"] = whenH;\n exports[\"whenA\"] = whenA;\n exports[\"ifElseH\"] = ifElseH;\n exports[\"fromNullableStr\"] = fromNullableStr;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.AccountSettings\"] = $PS[\"Component.AccountSettings\"] || {};\n var exports = $PS[\"Component.AccountSettings\"];\n var App = $PS[\"App\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Lens_Getter = $PS[\"Data.Lens.Getter\"];\n var Data_Lens_Internal_Forget = $PS[\"Data.Lens.Internal.Forget\"];\n var Data_Lens_Lens = $PS[\"Data.Lens.Lens\"];\n var Data_Lens_Setter = $PS[\"Data.Lens.Setter\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Profunctor_Strong = $PS[\"Data.Profunctor.Strong\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Globals = $PS[\"Globals\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Events = $PS[\"Halogen.HTML.Events\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Util = $PS[\"Util\"]; \n var EarchiveDefault = (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 })();\n var EprivateDefault = (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 })();\n var EprivacyLock = (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 })();\n var UEditField = (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 })();\n var USubmit = (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 })();\n var _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 };\n var usetting = function (u$prime) {\n var render = function (v) {\n var editField = function (f) {\n return function ($19) {\n return Data_Maybe.Just.create(UEditField.create(f($19)));\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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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 Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_us(Data_Profunctor_Strong.strongFn))((function () {\n if (v.value0 instanceof EarchiveDefault) {\n return function (v1) {\n return {\n archiveDefault: v.value0.value0,\n privateDefault: v1.privateDefault,\n privacyLock: v1.privacyLock\n };\n };\n };\n if (v.value0 instanceof EprivateDefault) {\n return function (v1) {\n return {\n archiveDefault: v1.archiveDefault,\n privateDefault: v.value0.value0,\n privacyLock: v1.privacyLock\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 80, column 12 - line 83, column 46): \" + [ v.value0.constructor.name ]);\n })()))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_us(Data_Lens_Internal_Forget.strongForget)))(function (us) {\n return Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.editAccountSettings(us)));\n });\n });\n };\n if (v instanceof USubmit) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_us(Data_Lens_Internal_Forget.strongForget)))(function (us) {\n return Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.editAccountSettings(us)));\n });\n };\n throw new Error(\"Failed pattern match at Component.AccountSettings (line 78, column 3 - line 78, column 69): \" + [ v.constructor.name ]);\n };\n var app = Globals[\"app'\"](Data_Unit.unit);\n return Halogen_Component.mkComponent({\n initialState: Data_Function[\"const\"](mkState(u$prime)),\n render: render,\n \"eval\": Halogen_Component.mkEval({\n handleAction: handleAction,\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 })\n });\n };\n exports[\"usetting\"] = usetting;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.Add\"] = $PS[\"Component.Add\"] || {};\n var exports = $PS[\"Component.Add\"];\n var App = $PS[\"App\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var DOM_HTML_Indexed_ButtonType = $PS[\"DOM.HTML.Indexed.ButtonType\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Lens_Getter = $PS[\"Data.Lens.Getter\"];\n var Data_Lens_Internal_Forget = $PS[\"Data.Lens.Internal.Forget\"];\n var Data_Lens_Lens = $PS[\"Data.Lens.Lens\"];\n var Data_Lens_Setter = $PS[\"Data.Lens.Setter\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Profunctor_Strong = $PS[\"Data.Profunctor.Strong\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Globals = $PS[\"Globals\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Events = $PS[\"Halogen.HTML.Events\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Util = $PS[\"Util\"];\n var Web_Event_Event = $PS[\"Web.Event.Event\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_Location = $PS[\"Web.HTML.Location\"]; \n var Eurl = (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 })();\n var Etitle = (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 })();\n var Edescription = (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 })();\n var Etags = (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 })();\n var Eprivate = (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 })();\n var Etoread = (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 })();\n var BEditField = (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 })();\n var BEditSubmit = (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 })();\n var BDeleteAsk = (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 })();\n var BLookupTitle = (function () {\n function BLookupTitle() {\n\n };\n BLookupTitle.value = new BLookupTitle();\n return BLookupTitle;\n })();\n var BDestroy = (function () {\n function BDestroy() {\n\n };\n BDestroy.value = new BDestroy();\n return BDestroy;\n })();\n var _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 edit_bm: v1,\n bm: v.bm,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n loading: v.loading\n };\n };\n })(dictStrong);\n };\n var _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 bm: v1,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n edit_bm: v.edit_bm,\n loading: v.loading\n };\n };\n })(dictStrong);\n };\n var addbmark = function (b$prime) {\n var render = function (v) {\n var toTextarea = (function () {\n var $63 = Data_Array.drop(1);\n var $64 = Data_Foldable.foldMap(Data_Foldable.foldableArray)(Data_Monoid.monoidArray)(function (x) {\n return [ Halogen_HTML_Elements.br_, Halogen_HTML_Core.text(x) ];\n });\n var $65 = Data_String_Common.split(\"\\x0a\");\n return function ($66) {\n return $63($64($65($66)));\n };\n })();\n var mmoment = Globals.mmoment8601(v.bm.time);\n var editField = function (f) {\n return function ($67) {\n return Data_Maybe.Just.create(BEditField.create(f($67)));\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(Data_Semigroup.append(Data_Semigroup.semigroupArray)([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(new BDeleteAsk(true));\n }), Util.class_(\"delete\") ])(Data_Monoid.guard(Data_Monoid.monoidArray)(v.deleteAsk)([ Util.attr(\"hidden\")(\"hidden\") ])))([ Halogen_HTML_Core.text(\"delete\") ]), Halogen_HTML_Elements.span(Data_Semigroup.append(Data_Semigroup.semigroupArray)([ Util.class_(\"confirm red\") ])(Data_Monoid.guard(Data_Monoid.monoidArray)(!v.deleteAsk)([ Util.attr(\"hidden\")(\"hidden\") ])))([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(new BDeleteAsk(false));\n }) ])([ Halogen_HTML_Core.text(\"cancel\\xa0/\\xa0\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(BDestroy.value);\n }), Util.class_(\"red\") ])([ Halogen_HTML_Core.text(\"destroy\") ]) ]) ]) ]) ]);\n };\n var display_edit = function (v1) {\n return Halogen_HTML_Elements.form([ Halogen_HTML_Events.onSubmit(function ($68) {\n return Data_Maybe.Just.create(BEditSubmit.create($68));\n }) ])([ 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) ]) ]), 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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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)), Halogen_HTML_Properties.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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputText.value), Halogen_HTML_Properties.id_(\"title\"), Util.class_(\"w-100 mv1 flex-auto\"), Halogen_HTML_Properties.name(\"title\"), Halogen_HTML_Properties.value(v.edit_bm.title), Halogen_HTML_Events.onValueChange(editField(Etitle.create)) ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.disabled(v.loading), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(BLookupTitle.value);\n }), Util.class_(\"ml2 input-reset ba b--navy pointer f6 di dim pa1 ma1 mr0 \" + Data_Monoid.guard(Data_Monoid.monoidString)(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), Halogen_HTML_Properties.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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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(false), Util.attr(\"autocapitalize\")(\"off\"), Halogen_HTML_Properties.autofocus(!Data_String_Common[\"null\"](v.bm.url)), Halogen_HTML_Properties.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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputSubmit.value), Util.class_(\"ph3 pv2 input-reset ba b--navy bg-transparent pointer f6 dib mt1 dim\"), Halogen_HTML_Properties.value((function () {\n var $33 = v.bm.bid > 0;\n if ($33) {\n return \"update bookmark\";\n };\n return \"add bookmark\";\n })()) ]) ]) ]) ]) ]) ]);\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 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 };\n };\n var handleAction = function (v) {\n if (v instanceof BDeleteAsk) {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $37 = {};\n for (var $38 in v1) {\n if ({}.hasOwnProperty.call(v1, $38)) {\n $37[$38] = v1[$38];\n };\n };\n $37.deleteAsk = v.value0;\n return $37;\n });\n };\n if (v instanceof BLookupTitle) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $41 = {};\n for (var $42 in v1) {\n if ({}.hasOwnProperty.call(v1, $42)) {\n $41[$42] = v1[$42];\n };\n };\n $41.loading = true;\n return $41;\n }))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.gets(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n return v1.edit_bm;\n }))(function (edit_bm) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.lookupTitle(edit_bm)))(function (mtitle) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)((function () {\n if (mtitle instanceof Data_Maybe.Just) {\n return Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Profunctor_Strong.strongFn))(function (v1) {\n return {\n url: v1.url,\n title: mtitle.value0,\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 };\n });\n };\n if (mtitle instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Component.Add (line 165, column 5 - line 167, column 29): \" + [ mtitle.constructor.name ]);\n })())(function () {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $46 = {};\n for (var $47 in v1) {\n if ({}.hasOwnProperty.call(v1, $47)) {\n $46[$47] = v1[$47];\n };\n };\n $46.loading = false;\n return $46;\n });\n });\n });\n });\n });\n };\n if (v instanceof BDestroy) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.gets(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n return v1.bm.bid;\n }))(function (bid) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.destroy(bid))))(function () {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $49 = {};\n for (var $50 in v1) {\n if ({}.hasOwnProperty.call(v1, $50)) {\n $49[$50] = v1[$50];\n };\n };\n $49.destroyed = true;\n return $49;\n });\n });\n });\n };\n if (v instanceof BEditField) {\n return Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Profunctor_Strong.strongFn))((function () {\n if (v.value0 instanceof Eurl) {\n return function (v1) {\n return {\n url: v.value0.value0,\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 };\n };\n };\n if (v.value0 instanceof Etitle) {\n return function (v1) {\n return {\n url: v1.url,\n title: v.value0.value0,\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 };\n };\n };\n if (v.value0 instanceof Edescription) {\n return function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n description: v.value0.value0,\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 };\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 tags: v.value0.value0,\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 };\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 \"private\": v.value0.value0,\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 };\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 toread: v.value0.value0,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl\n };\n };\n };\n throw new Error(\"Failed pattern match at Component.Add (line 174, column 17 - line 180, column 36): \" + [ v.value0.constructor.name ]);\n })());\n };\n if (v instanceof BEditSubmit) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Web_Event_Event.preventDefault(v.value0)))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Lens_Internal_Forget.strongForget)))(function (edit_bm) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.editBookmark(edit_bm))))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Profunctor_Strong.strongFn))(edit_bm))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Util[\"_loc\"]))(function (loc) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Web_HTML.window))(function (win) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Util[\"_curQuerystring\"]))(function (qs) {\n var v1 = Util[\"_lookupQueryStringValue\"](qs)(\"next\");\n if (v1 instanceof Data_Maybe.Just) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Web_HTML_Location.setHref(v1.value0)(loc));\n };\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Globals.closeWindow(win));\n });\n });\n });\n });\n });\n });\n });\n };\n throw new Error(\"Failed pattern match at Component.Add (line 158, column 3 - line 158, column 69): \" + [ v.constructor.name ]);\n };\n var app = Globals[\"app'\"](Data_Unit.unit);\n return Halogen_Component.mkComponent({\n initialState: Data_Function[\"const\"](mkState(b$prime)),\n render: render,\n \"eval\": Halogen_Component.mkEval({\n handleAction: handleAction,\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 })\n });\n };\n exports[\"addbmark\"] = addbmark;\n})(PS);\n(function(exports) {\n // use at your own risk!\n exports.unsafeSetInnerHTML = function(element) {\n return function(html) {\n return function() {\n element.innerHTML = html;\n };\n };\n };\n})(PS[\"Component.RawHtml\"] = PS[\"Component.RawHtml\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports._read = function (nothing, just, value) {\n var tag = Object.prototype.toString.call(value);\n if (tag.indexOf(\"[object HTML\") === 0 && tag.indexOf(\"Element]\") === tag.length - 8) {\n return just(value);\n } else {\n return nothing;\n }\n };\n})(PS[\"Web.HTML.HTMLElement\"] = PS[\"Web.HTML.HTMLElement\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.HTML.HTMLElement\"] = $PS[\"Web.HTML.HTMLElement\"] || {};\n var exports = $PS[\"Web.HTML.HTMLElement\"];\n var $foreign = $PS[\"Web.HTML.HTMLElement\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var toNode = Unsafe_Coerce.unsafeCoerce; \n var toElement = Unsafe_Coerce.unsafeCoerce;\n var fromElement = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n };\n exports[\"fromElement\"] = fromElement;\n exports[\"toElement\"] = toElement;\n exports[\"toNode\"] = toNode;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Query\"] = $PS[\"Halogen.Query\"] || {};\n var exports = $PS[\"Halogen.Query\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Web_HTML_HTMLElement = $PS[\"Web.HTML.HTMLElement\"];\n var getHTMLElementRef = (function () {\n var $1 = Data_Functor.map(Halogen_Query_HalogenM.functorHalogenM)(function (v) {\n return Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_HTML_HTMLElement.fromElement)(v);\n });\n return function ($2) {\n return $1(Halogen_Query_HalogenM.getRef($2));\n };\n })();\n exports[\"getHTMLElementRef\"] = getHTMLElementRef;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.RawHtml\"] = $PS[\"Component.RawHtml\"] || {};\n var exports = $PS[\"Component.RawHtml\"];\n var $foreign = $PS[\"Component.RawHtml\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query = $PS[\"Halogen.Query\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"]; \n var SetInnerHTML = (function () {\n function SetInnerHTML() {\n\n };\n SetInnerHTML.value = new SetInnerHTML();\n return SetInnerHTML;\n })();\n var Receive = (function () {\n function Receive(value0) {\n this.value0 = value0;\n };\n Receive.create = function (value0) {\n return new Receive(value0);\n };\n return Receive;\n })();\n var 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 Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.get(Halogen_Query_HalogenM.monadStateHalogenM))(function (v1) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Halogen_Query.getHTMLElementRef(v1.elRef))(function (mel) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Foldable.for_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(mel)(function (el) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.get(Halogen_Query_HalogenM.monadStateHalogenM))(function (v2) {\n return Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(Effect_Aff.forkAff(Effect_Aff.makeAff(function (cb) {\n return function __do() {\n Effect_Class.liftEffect(Effect_Class.monadEffectEffect)($foreign.unsafeSetInnerHTML(el)(toRawHTML(v2.inputval)))();\n return Data_Monoid.mempty(Effect.monoidEffect(Effect_Aff.monoidCanceler))();\n };\n })));\n });\n }))(function () {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n });\n });\n });\n };\n if (v instanceof Receive) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $10 = {};\n for (var $11 in v1) {\n if ({}.hasOwnProperty.call(v1, $11)) {\n $10[$11] = v1[$11];\n };\n };\n $10.inputval = v.value0;\n return $10;\n }))(function () {\n return handleAction(SetInnerHTML.value);\n });\n };\n throw new Error(\"Failed pattern match at Component.RawHtml (line 50, column 18 - line 63, 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 handleAction: handleAction,\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: function ($14) {\n return Data_Maybe.Just.create(Receive.create($14));\n },\n initialize: new Data_Maybe.Just(SetInnerHTML.value),\n finalize: Halogen_Component.defaultEval.finalize\n })\n });\n };\n exports[\"mkComponent\"] = mkComponent;\n})(PS);\n(function(exports) {\n \n var marked =require(\"marked\"); \n\n marked.setOptions({\n pedantic: false,\n gfm: true\n });\n\n exports.markedImpl = function(str) {\n if (!str) return \"\";\n return marked(str);\n };\n})(PS[\"Foreign.Marked\"] = PS[\"Foreign.Marked\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Foreign.Marked\"] = $PS[\"Foreign.Marked\"] || {};\n var exports = $PS[\"Foreign.Marked\"];\n var $foreign = $PS[\"Foreign.Marked\"];\n var Globals = $PS[\"Globals\"]; \n var marked = function ($0) {\n return Globals.RawHTML($foreign.markedImpl($0));\n };\n exports[\"marked\"] = marked;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.Markdown\"] = $PS[\"Component.Markdown\"] || {};\n var exports = $PS[\"Component.Markdown\"];\n var Component_RawHtml = $PS[\"Component.RawHtml\"];\n var Foreign_Marked = $PS[\"Foreign.Marked\"]; \n var component = Component_RawHtml.mkComponent(Foreign_Marked.marked);\n exports[\"component\"] = component;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Void\"] = $PS[\"Data.Void\"] || {};\n var exports = $PS[\"Data.Void\"];\n var 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 };\n exports[\"absurd\"] = absurd;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.HTML\"] = $PS[\"Halogen.HTML\"] || {};\n var exports = $PS[\"Halogen.HTML\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"]; \n var slot = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (p) {\n return function (component) {\n return function (input) {\n return function (outputQuery) {\n return Halogen_HTML_Core.widget(new Halogen_Component.ComponentSlot(Halogen_Component.componentSlot()(dictIsSymbol)(dictOrd)(label)(p)(component)(input)(outputQuery)));\n };\n };\n };\n };\n };\n };\n };\n };\n exports[\"slot\"] = slot;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.BMark\"] = $PS[\"Component.BMark\"] || {};\n var exports = $PS[\"Component.BMark\"];\n var App = $PS[\"App\"];\n var Component_Markdown = $PS[\"Component.Markdown\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var DOM_HTML_Indexed_ButtonType = $PS[\"DOM.HTML.Indexed.ButtonType\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Lens_Getter = $PS[\"Data.Lens.Getter\"];\n var Data_Lens_Internal_Forget = $PS[\"Data.Lens.Internal.Forget\"];\n var Data_Lens_Lens = $PS[\"Data.Lens.Lens\"];\n var Data_Lens_Setter = $PS[\"Data.Lens.Setter\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Profunctor_Strong = $PS[\"Data.Profunctor.Strong\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_String_CodePoints = $PS[\"Data.String.CodePoints\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Data_Void = $PS[\"Data.Void\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Globals = $PS[\"Globals\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML = $PS[\"Halogen.HTML\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Events = $PS[\"Halogen.HTML.Events\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Util = $PS[\"Util\"];\n var Web_Event_Event = $PS[\"Web.Event.Event\"]; \n var Eurl = (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 })();\n var Etitle = (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 })();\n var Edescription = (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 })();\n var Etags = (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 })();\n var Eprivate = (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 })();\n var Etoread = (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 })();\n var BNotifyRemove = (function () {\n function BNotifyRemove() {\n\n };\n BNotifyRemove.value = new BNotifyRemove();\n return BNotifyRemove;\n })();\n var BStar = (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 })();\n var BDeleteAsk = (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 })();\n var BLookupTitle = (function () {\n function BLookupTitle() {\n\n };\n BLookupTitle.value = new BLookupTitle();\n return BLookupTitle;\n })();\n var BDestroy = (function () {\n function BDestroy() {\n\n };\n BDestroy.value = new BDestroy();\n return BDestroy;\n })();\n var BEdit = (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 })();\n var BEditField = (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 })();\n var BEditSubmit = (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 })();\n var BMarkRead = (function () {\n function BMarkRead() {\n\n };\n BMarkRead.value = new BMarkRead();\n return BMarkRead;\n })();\n var _markdown = Data_Symbol.SProxy.value;\n var _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 edit_bm: v1,\n bm: v.bm,\n deleteAsk: v.deleteAsk,\n edit: v.edit,\n loading: v.loading\n };\n };\n })(dictStrong);\n };\n var _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 edit: v1,\n bm: v.bm,\n deleteAsk: v.deleteAsk,\n edit_bm: v.edit_bm,\n loading: v.loading\n };\n };\n })(dictStrong);\n };\n var _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 bm: v1,\n deleteAsk: v.deleteAsk,\n edit: v.edit,\n edit_bm: v.edit_bm,\n loading: v.loading\n };\n };\n })(dictStrong);\n };\n var bmark = function (b$prime) {\n var tagid = function (bm) {\n return Data_Show.show(Data_Show.showInt)(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 };\n };\n var handleAction = function (v) {\n if (v instanceof BStar) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Lens_Internal_Forget.strongForget)))(function (bm) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.toggleStar(bm.bid)((function () {\n if (v.value0) {\n return App.Star.value;\n };\n return App.UnStar.value;\n })())))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Profunctor_Strong.strongFn))(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 selected: v.value0,\n time: v1.time,\n archiveUrl: v1.archiveUrl\n };\n }))(function () {\n return Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Profunctor_Strong.strongFn))(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 selected: v.value0,\n time: v1.time,\n archiveUrl: v1.archiveUrl\n };\n });\n });\n });\n });\n };\n if (v instanceof BDeleteAsk) {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $46 = {};\n for (var $47 in v1) {\n if ({}.hasOwnProperty.call(v1, $47)) {\n $46[$47] = v1[$47];\n };\n };\n $46.deleteAsk = v.value0;\n return $46;\n });\n };\n if (v instanceof BDestroy) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Lens_Internal_Forget.strongForget)))(function (bm) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.destroy(bm.bid))))(function () {\n return Halogen_Query_HalogenM.raise(BNotifyRemove.value);\n });\n });\n };\n if (v instanceof BMarkRead) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Lens_Internal_Forget.strongForget)))(function (bm) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.markRead(bm.bid))))(function () {\n return Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Profunctor_Strong.strongFn))(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: false,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl\n };\n });\n });\n });\n };\n if (v instanceof BEdit) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Lens_Internal_Forget.strongForget)))(function (bm) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Profunctor_Strong.strongFn))(bm))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_edit(Data_Profunctor_Strong.strongFn))(v.value0))(function () {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Control_Monad.whenM(Effect.monadEffect)(Control_Applicative.pure(Effect.applicativeEffect)(v.value0))(Globals.setFocus(tagid(bm))));\n });\n });\n });\n };\n if (v instanceof BEditField) {\n return Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Profunctor_Strong.strongFn))((function () {\n if (v.value0 instanceof Eurl) {\n return function (v1) {\n return {\n url: v.value0.value0,\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 };\n };\n };\n if (v.value0 instanceof Etitle) {\n return function (v1) {\n return {\n url: v1.url,\n title: v.value0.value0,\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 };\n };\n };\n if (v.value0 instanceof Edescription) {\n return function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n description: v.value0.value0,\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 };\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 tags: v.value0.value0,\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 };\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 \"private\": v.value0.value0,\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 };\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 toread: v.value0.value0,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl\n };\n };\n };\n throw new Error(\"Failed pattern match at Component.BMark (line 234, column 17 - line 240, column 36): \" + [ v.value0.constructor.name ]);\n })());\n };\n if (v instanceof BLookupTitle) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $59 = {};\n for (var $60 in v1) {\n if ({}.hasOwnProperty.call(v1, $60)) {\n $59[$60] = v1[$60];\n };\n };\n $59.loading = true;\n return $59;\n }))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.gets(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n return v1.edit_bm;\n }))(function (edit_bm) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.lookupTitle(edit_bm)))(function (mtitle) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)((function () {\n if (mtitle instanceof Data_Maybe.Just) {\n return Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Profunctor_Strong.strongFn))(function (v1) {\n return {\n url: v1.url,\n title: mtitle.value0,\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 };\n });\n };\n if (mtitle instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Component.BMark (line 247, column 5 - line 249, column 29): \" + [ mtitle.constructor.name ]);\n })())(function () {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $64 = {};\n for (var $65 in v1) {\n if ({}.hasOwnProperty.call(v1, $65)) {\n $64[$65] = v1[$65];\n };\n };\n $64.loading = false;\n return $64;\n });\n });\n });\n });\n });\n };\n if (v instanceof BEditSubmit) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Web_Event_Event.preventDefault(v.value0)))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Lens_Internal_Forget.strongForget)))(function (edit_bm) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.editBookmark(edit_bm))))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Profunctor_Strong.strongFn))(edit_bm))(function () {\n return Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_edit(Data_Profunctor_Strong.strongFn))(false);\n });\n });\n });\n });\n };\n throw new Error(\"Failed pattern match at Component.BMark (line 200, column 3 - line 200, column 84): \" + [ v.constructor.name ]);\n };\n var app = Globals[\"app'\"](Data_Unit.unit);\n var render = function (v) {\n var star = function (v1) {\n return Halogen_HTML_Elements.div([ Util.class_(\"star fl pointer\" + Data_Monoid.guard(Data_Monoid.monoidString)(v.bm.selected)(\" selected\")) ])([ Halogen_HTML_Elements.button([ Util.class_(\"moon-gray\"), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(new BStar(!v.bm.selected));\n }) ])([ Halogen_HTML_Core.text(\"\\u272d\") ]) ]);\n };\n var shtime = Data_String_CodePoints.take(16)(v.bm.time) + \"Z\";\n var linkToFilterTag = function (tag) {\n return Util.fromNullableStr(app.userR) + (\"/t:\" + tag);\n };\n var linkToFilterSingle = function (slug) {\n return Util.fromNullableStr(app.userR) + (\"/b:\" + slug);\n };\n var editField = function (f) {\n return function ($73) {\n return Data_Maybe.Just.create(BEditField.create(f($73)));\n };\n };\n var display_edit = function (v1) {\n return Halogen_HTML_Elements.div([ Util.class_(\"edit_bookmark_form pa2 pt0 bg-white\") ])([ Halogen_HTML_Elements.form([ Halogen_HTML_Events.onSubmit(function ($74) {\n return Data_Maybe.Just.create(BEditSubmit.create($74));\n }) ])([ Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"url\") ]), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputUrl.value), Util.class_(\"url w-100 mb2 pt1 f7 edit_form_input\"), Halogen_HTML_Properties.required(true), Halogen_HTML_Properties.name(\"url\"), Halogen_HTML_Properties.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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputText.value), Util.class_(\"title w-100 mb2 pt1 f7 edit_form_input\"), Halogen_HTML_Properties.name(\"title\"), Halogen_HTML_Properties.value(v.edit_bm.title), Halogen_HTML_Events.onValueChange(editField(Etitle.create)) ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.disabled(v.loading), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(BLookupTitle.value);\n }), Util.class_(\"ml1 pa1 mb2 dark-gray ba b--moon-gray bg-near-white pointer rdim f7 \" + Data_Monoid.guard(Data_Monoid.monoidString)(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 f7 edit_form_input\"), Halogen_HTML_Properties.name(\"description\"), Halogen_HTML_Properties.rows(5), Halogen_HTML_Properties.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)), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputText.value), Util.class_(\"tags w-100 mb1 pt1 f7 edit_form_input\"), Halogen_HTML_Properties.name(\"tags\"), Halogen_HTML_Properties.autocomplete(false), Util.attr(\"autocapitalize\")(\"off\"), Halogen_HTML_Properties.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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputSubmit.value), Util.class_(\"mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"), Halogen_HTML_Properties.value(\"save\") ]), Halogen_HTML_Core.text(\" \"), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputReset.value), Util.class_(\"pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"), Halogen_HTML_Properties.value(\"cancel\"), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(new BEdit(false));\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\" + Data_Monoid.guard(Data_Monoid.monoidString)(v.bm.toread)(\" unread\")) ])([ Halogen_HTML_Core.text((function () {\n var $69 = Data_String_Common[\"null\"](v.bm.title);\n if ($69) {\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\" + Data_Monoid.guard(Data_Monoid.monoidString)(Data_Maybe.isJust(Data_Nullable.toMaybe(v.bm.archiveUrl)))(\" green\")), Halogen_HTML_Properties.target(\"_blank\"), Halogen_HTML_Properties.title(\"archive link\") ])([ (function () {\n var $70 = Data_Maybe.isJust(Data_Nullable.toMaybe(v.bm.archiveUrl));\n if ($70) {\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\") ])([ Halogen_HTML.slot()(new Data_Symbol.IsSymbol(function () {\n return \"markdown\";\n }))(Data_Ord.ordUnit)(_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 Data_Functor.map(Data_Functor.functorArray)(function (tag) {\n return Halogen_HTML_Elements.a([ Util.class_(\"link tag mr1\" + Data_Monoid.guard(Data_Monoid.monoidString)(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_Core.text(shtime) ]), Util.whenH(app.dat.isowner)(function (v2) {\n return Halogen_HTML_Elements.div([ Util.class_(\"edit_links di\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(new BDeleteAsk(true));\n }), Util.class_(\"delete light-silver hover-blue\" + Data_Monoid.guard(Data_Monoid.monoidString)(v.deleteAsk)(\" dn\")) ])([ Halogen_HTML_Core.text(\"delete\") ]), Halogen_HTML_Elements.span([ Util.class_(\"confirm red\" + Data_Monoid.guard(Data_Monoid.monoidString)(!v.deleteAsk)(\" dn\")) ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(new BDeleteAsk(false));\n }) ])([ Halogen_HTML_Core.text(\"cancel\\xa0/\\xa0\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(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\") ])(Data_Monoid.guard(Data_Monoid.monoidArray)(v.bm.toread)([ Halogen_HTML_Core.text(\"\\xa0\\xa0\"), Halogen_HTML_Elements.button([ Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(BMarkRead.value);\n }), Util.class_(\"mark_read\") ])([ Halogen_HTML_Core.text(\"mark as read\") ]) ]));\n }) ]);\n };\n return Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id_(Data_Show.show(Data_Show.showInt)(v.bm.bid)), Util.class_(\"bookmark w-100 mw7 pa1 mb3\" + Data_Monoid.guard(Data_Monoid.monoidString)(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 handleAction: handleAction,\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 })\n });\n };\n exports[\"bmark\"] = bmark;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.BList\"] = $PS[\"Component.BList\"] || {};\n var exports = $PS[\"Component.BList\"];\n var Component_BMark = $PS[\"Component.BMark\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML = $PS[\"Halogen.HTML\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"]; \n var HandleBMessage = (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 })();\n var _bookmark = Data_Symbol.SProxy.value;\n var blist = function (st) {\n var render = function (bms) {\n return Halogen_HTML_Elements.div_(Data_Functor.map(Data_Functor.functorArray)(function (b) {\n return Halogen_HTML.slot()(new Data_Symbol.IsSymbol(function () {\n return \"bookmark\";\n }))(Data_Ord.ordInt)(_bookmark)(b.bid)(Component_BMark.bmark(b))(Data_Unit.unit)((function () {\n var $5 = HandleBMessage.create(b.bid);\n return function ($6) {\n return Data_Maybe.Just.create($5($6));\n };\n })());\n })(bms));\n };\n var handleAction = function (v) {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(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 handleAction: handleAction,\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 })\n });\n };\n exports[\"blist\"] = blist;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.NList\"] = $PS[\"Component.NList\"] || {};\n var exports = $PS[\"Component.NList\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_String_CodePoints = $PS[\"Data.String.CodePoints\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Globals = $PS[\"Globals\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Util = $PS[\"Util\"];\n var nlist = function (st$prime) {\n var toTextarea = function (input) {\n return Data_Array.drop(1)(Data_Foldable.foldMap(Data_Foldable.foldableArray)(Data_Monoid.monoidArray)(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 Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n var app = Globals[\"app'\"](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_(Data_Show.show(Data_Show.showInt)(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 $6 = Data_String_Common[\"null\"](note.title);\n if ($6) {\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_(Data_Functor.map(Data_Functor.functorArray)(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 handleAction: handleAction,\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 })\n });\n };\n exports[\"nlist\"] = nlist;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.NNote\"] = $PS[\"Component.NNote\"] || {};\n var exports = $PS[\"Component.NNote\"];\n var App = $PS[\"App\"];\n var Component_Markdown = $PS[\"Component.Markdown\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var DOM_HTML_Indexed_ButtonType = $PS[\"DOM.HTML.Indexed.ButtonType\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Lens_Getter = $PS[\"Data.Lens.Getter\"];\n var Data_Lens_Internal_Forget = $PS[\"Data.Lens.Internal.Forget\"];\n var Data_Lens_Lens = $PS[\"Data.Lens.Lens\"];\n var Data_Lens_Setter = $PS[\"Data.Lens.Setter\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Profunctor_Strong = $PS[\"Data.Profunctor.Strong\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Data_Void = $PS[\"Data.Void\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Globals = $PS[\"Globals\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML = $PS[\"Halogen.HTML\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Events = $PS[\"Halogen.HTML.Events\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Util = $PS[\"Util\"];\n var Web_Event_Event = $PS[\"Web.Event.Event\"];\n var Web_HTML_Location = $PS[\"Web.HTML.Location\"]; \n var Etitle = (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 })();\n var Etext = (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 })();\n var EisMarkdown = (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 })();\n var Eshared = (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 })();\n var NNop = (function () {\n function NNop() {\n\n };\n NNop.value = new NNop();\n return NNop;\n })();\n var NEditField = (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 })();\n var NEditSubmit = (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 })();\n var NEdit = (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 })();\n var NDeleteAsk = (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 })();\n var NDestroy = (function () {\n function NDestroy() {\n\n };\n NDestroy.value = new NDestroy();\n return NDestroy;\n })();\n var _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 note: v1,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n edit: v.edit,\n edit_note: v.edit_note\n };\n };\n })(dictStrong);\n };\n var _markdown = Data_Symbol.SProxy.value;\n var _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 edit_note: v1,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n edit: v.edit,\n note: v.note\n };\n };\n })(dictStrong);\n };\n var _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 edit: v1,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n edit_note: v.edit_note,\n note: v.note\n };\n };\n })(dictStrong);\n };\n var nnote = function (st$prime) {\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 };\n };\n var app = Globals[\"app'\"](Data_Unit.unit);\n var handleAction = function (v) {\n if (v instanceof NNop) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n if (v instanceof NEditField) {\n return Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_note(Data_Profunctor_Strong.strongFn))((function () {\n if (v.value0 instanceof Etitle) {\n return function (v1) {\n return {\n id: v1.id,\n slug: v1.slug,\n title: v.value0.value0,\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 };\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 text: v.value0.value0,\n length: v1.length,\n isMarkdown: v1.isMarkdown,\n shared: v1.shared,\n created: v1.created,\n updated: v1.updated\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 isMarkdown: v.value0.value0,\n shared: v1.shared,\n created: v1.created,\n updated: v1.updated\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 shared: v.value0.value0,\n created: v1.created,\n updated: v1.updated\n };\n };\n };\n throw new Error(\"Failed pattern match at Component.NNote (line 177, column 19 - line 181, column 36): \" + [ v.value0.constructor.name ]);\n })());\n };\n if (v instanceof NDeleteAsk) {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $37 = {};\n for (var $38 in v1) {\n if ({}.hasOwnProperty.call(v1, $38)) {\n $37[$38] = v1[$38];\n };\n };\n $37.deleteAsk = v.value0;\n return $37;\n });\n };\n if (v instanceof NDestroy) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_note(Data_Lens_Internal_Forget.strongForget)))(function (note) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.destroyNote(note.id))))(function () {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $41 = {};\n for (var $42 in v1) {\n if ({}.hasOwnProperty.call(v1, $42)) {\n $41[$42] = v1[$42];\n };\n };\n $41.destroyed = true;\n return $41;\n });\n });\n });\n };\n if (v instanceof NEdit) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_note(Data_Lens_Internal_Forget.strongForget)))(function (note) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_note(Data_Profunctor_Strong.strongFn))(note))(function () {\n return Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_edit(Data_Profunctor_Strong.strongFn))(v.value0);\n });\n });\n };\n if (v instanceof NEditSubmit) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Web_Event_Event.preventDefault(v.value0)))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_note(Data_Lens_Internal_Forget.strongForget)))(function (edit_note) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.editNote(edit_note)))(function (res$prime) {\n return Data_Foldable.for_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Either.foldableEither)(res$prime)(function (res) {\n var $45 = edit_note.id === 0;\n if ($45) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Location.setHref(Util.fromNullableStr(app.noteR)))(Util[\"_loc\"]));\n };\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_note(Data_Profunctor_Strong.strongFn))(edit_note))(function () {\n return Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_edit(Data_Profunctor_Strong.strongFn))(false);\n });\n });\n });\n });\n });\n };\n throw new Error(\"Failed pattern match at Component.NNote (line 172, column 3 - line 172, column 77): \" + [ v.constructor.name ]);\n };\n var render = function (v) {\n var toTextarea = function (input) {\n return Data_Array.drop(1)(Data_Foldable.foldMap(Data_Foldable.foldableArray)(Data_Monoid.monoidArray)(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_(Data_Show.show(Data_Show.showInt)(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 $48 = Data_String_Common[\"null\"](v.note.title);\n if ($48) {\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\") ])([ Halogen_HTML.slot()(new Data_Symbol.IsSymbol(function () {\n return \"markdown\";\n }))(Data_Ord.ordUnit)(_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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(new NDeleteAsk(true));\n }), Util.class_(\"delete light-silver hover-blue\" + Data_Monoid.guard(Data_Monoid.monoidString)(v.deleteAsk)(\" dn\")) ])([ Halogen_HTML_Core.text(\"delete\") ]), Halogen_HTML_Elements.span([ Util.class_(\"confirm red\" + Data_Monoid.guard(Data_Monoid.monoidString)(!v.deleteAsk)(\" dn\")) ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(new NDeleteAsk(false));\n }) ])([ Halogen_HTML_Core.text(\"cancel\\xa0/\\xa0\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(NDestroy.value);\n }), Util.class_(\"red\") ])([ Halogen_HTML_Core.text(\"destroy\") ]) ]) ]) ]);\n }) ]);\n };\n var editField = function (f) {\n return function ($53) {\n return Data_Maybe.Just.create(NEditField.create(f($53)));\n };\n };\n var renderNote_edit = function (v1) {\n return Halogen_HTML_Elements.form([ Halogen_HTML_Events.onSubmit(function ($54) {\n return Data_Maybe.Just.create(NEditSubmit.create($54));\n }) ])([ Halogen_HTML_Elements.p([ Util.class_(\"mt2 mb1\") ])([ Halogen_HTML_Core.text(\"title:\") ]), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputText.value), Util.class_(\"title w-100 mb1 pt1 f7 edit_form_input\"), Halogen_HTML_Properties.name(\"title\"), Halogen_HTML_Properties.value(v.edit_note.title), Halogen_HTML_Events.onValueChange(editField(Etitle.create)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.p([ Util.class_(\"mt2 mb1\") ])([ Halogen_HTML_Core.text(\"description:\") ]), Halogen_HTML_Elements.textarea([ Util.class_(\"description w-100 mb1 pt1 f7 edit_form_input\"), Halogen_HTML_Properties.name(\"text\"), Halogen_HTML_Properties.rows(30), Halogen_HTML_Properties.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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputSubmit.value), Util.class_(\"mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"), Halogen_HTML_Properties.value(\"save\") ]), Halogen_HTML_Core.text(\" \"), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputReset.value), Util.class_(\"pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"), Halogen_HTML_Properties.value(\"cancel\"), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(new NEdit(false));\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 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 handleAction: handleAction,\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 })\n });\n };\n exports[\"nnote\"] = nnote;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Applicative.Free\"] = $PS[\"Control.Applicative.Free\"] || {};\n var exports = $PS[\"Control.Applicative.Free\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_List_NonEmpty = $PS[\"Data.List.NonEmpty\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_NonEmpty = $PS[\"Data.NonEmpty\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var Pure = (function () {\n function Pure(value0) {\n this.value0 = value0;\n };\n Pure.create = function (value0) {\n return new Pure(value0);\n };\n return Pure;\n })();\n var Lift = (function () {\n function Lift(value0) {\n this.value0 = value0;\n };\n Lift.create = function (value0) {\n return new Lift(value0);\n };\n return Lift;\n })();\n var Ap = (function () {\n function Ap(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Ap.create = function (value0) {\n return function (value1) {\n return new Ap(value0, value1);\n };\n };\n return Ap;\n })();\n var mkAp = function (fba) {\n return function (fb) {\n return new Ap(fba, fb);\n };\n };\n var liftFreeAp = Lift.create;\n var goLeft = function ($copy_dictApplicative) {\n return function ($copy_fStack) {\n return function ($copy_valStack) {\n return function ($copy_nat) {\n return function ($copy_func) {\n return function ($copy_count) {\n var $tco_var_dictApplicative = $copy_dictApplicative;\n var $tco_var_fStack = $copy_fStack;\n var $tco_var_valStack = $copy_valStack;\n var $tco_var_nat = $copy_nat;\n var $tco_var_func = $copy_func;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictApplicative, fStack, valStack, nat, func, count) {\n if (func instanceof Pure) {\n $tco_done = true;\n return new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: Control_Applicative.pure(dictApplicative)(func.value0),\n count: count\n }, fStack), valStack);\n };\n if (func instanceof Lift) {\n $tco_done = true;\n return new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: nat(func.value0),\n count: count\n }, fStack), valStack);\n };\n if (func instanceof Ap) {\n $tco_var_dictApplicative = dictApplicative;\n $tco_var_fStack = fStack;\n $tco_var_valStack = Data_List_NonEmpty.cons(func.value1)(valStack);\n $tco_var_nat = nat;\n $tco_var_func = func.value0;\n $copy_count = count + 1 | 0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 102, column 41 - line 105, column 81): \" + [ func.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictApplicative, $tco_var_fStack, $tco_var_valStack, $tco_var_nat, $tco_var_func, $copy_count);\n };\n return $tco_result;\n };\n };\n };\n };\n };\n };\n var goApply = function ($copy_dictApplicative) {\n return function ($copy_fStack) {\n return function ($copy_vals) {\n return function ($copy_gVal) {\n var $tco_var_dictApplicative = $copy_dictApplicative;\n var $tco_var_fStack = $copy_fStack;\n var $tco_var_vals = $copy_vals;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictApplicative, fStack, vals, gVal) {\n if (fStack instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gVal);\n };\n if (fStack instanceof Data_List_Types.Cons) {\n var gRes = Control_Apply.apply(dictApplicative.Apply0())(fStack.value0.func)(gVal);\n var $14 = fStack.value0.count === 1;\n if ($14) {\n if (fStack.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gRes);\n };\n $tco_var_dictApplicative = dictApplicative;\n $tco_var_fStack = fStack.value1;\n $tco_var_vals = vals;\n $copy_gVal = gRes;\n return;\n };\n if (vals instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gRes);\n };\n if (vals instanceof Data_List_Types.Cons) {\n $tco_done = true;\n return Data_Either.Right.create(new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: gRes,\n count: fStack.value0.count - 1 | 0\n }, fStack.value1), new Data_NonEmpty.NonEmpty(vals.value0, vals.value1)));\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 83, column 11 - line 88, column 50): \" + [ vals.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 72, column 3 - line 88, column 50): \" + [ fStack.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictApplicative, $tco_var_fStack, $tco_var_vals, $copy_gVal);\n };\n return $tco_result;\n };\n };\n };\n };\n var functorFreeAp = new Data_Functor.Functor(function (f) {\n return function (x) {\n return mkAp(new Pure(f))(x);\n };\n });\n var foldFreeAp = function (dictApplicative) {\n return function (nat) {\n return function (z) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value1.value0 instanceof Pure) {\n var v1 = goApply(dictApplicative)(v.value0)(v.value1.value1)(Control_Applicative.pure(dictApplicative)(v.value1.value0.value0));\n if (v1 instanceof Data_Either.Left) {\n $tco_done = true;\n return v1.value0;\n };\n if (v1 instanceof Data_Either.Right) {\n $copy_v = v1.value0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 54, column 17 - line 56, column 24): \" + [ v1.constructor.name ]);\n };\n if (v.value1.value0 instanceof Lift) {\n var v1 = goApply(dictApplicative)(v.value0)(v.value1.value1)(nat(v.value1.value0.value0));\n if (v1 instanceof Data_Either.Left) {\n $tco_done = true;\n return v1.value0;\n };\n if (v1 instanceof Data_Either.Right) {\n $copy_v = v1.value0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 57, column 17 - line 59, column 24): \" + [ v1.constructor.name ]);\n };\n if (v.value1.value0 instanceof Ap) {\n var nextVals = new Data_NonEmpty.NonEmpty(v.value1.value0.value1, v.value1.value1);\n $copy_v = goLeft(dictApplicative)(v.value0)(nextVals)(nat)(v.value1.value0.value0)(1);\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 53, column 5 - line 62, column 47): \" + [ v.value1.value0.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go(new Data_Tuple.Tuple(Data_List_Types.Nil.value, Data_List_NonEmpty.singleton(z)));\n };\n };\n };\n var retractFreeAp = function (dictApplicative) {\n return foldFreeAp(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n };\n var applyFreeAp = new Control_Apply.Apply(function () {\n return functorFreeAp;\n }, function (fba) {\n return function (fb) {\n return mkAp(fba)(fb);\n };\n });\n var applicativeFreeAp = new Control_Applicative.Applicative(function () {\n return applyFreeAp;\n }, Pure.create);\n var hoistFreeAp = function (f) {\n return foldFreeAp(applicativeFreeAp)(function ($37) {\n return liftFreeAp(f($37));\n });\n };\n exports[\"retractFreeAp\"] = retractFreeAp;\n exports[\"hoistFreeAp\"] = hoistFreeAp;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Trans.Class\"] = $PS[\"Control.Monad.Trans.Class\"] || {};\n var exports = $PS[\"Control.Monad.Trans.Class\"];\n var MonadTrans = function (lift) {\n this.lift = lift;\n };\n var lift = function (dict) {\n return dict.lift;\n };\n exports[\"lift\"] = lift;\n exports[\"MonadTrans\"] = MonadTrans;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Free.Trans\"] = $PS[\"Control.Monad.Free.Trans\"] || {};\n var exports = $PS[\"Control.Monad.Free.Trans\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Monad_Trans_Class = $PS[\"Control.Monad.Trans.Class\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Exists = $PS[\"Data.Exists\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var Bound = (function () {\n function Bound(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Bound.create = function (value0) {\n return function (value1) {\n return new Bound(value0, value1);\n };\n };\n return Bound;\n })();\n var FreeT = (function () {\n function FreeT(value0) {\n this.value0 = value0;\n };\n FreeT.create = function (value0) {\n return new FreeT(value0);\n };\n return FreeT;\n })();\n var Bind = (function () {\n function Bind(value0) {\n this.value0 = value0;\n };\n Bind.create = function (value0) {\n return new Bind(value0);\n };\n return Bind;\n })();\n var monadTransFreeT = function (dictFunctor) {\n return new Control_Monad_Trans_Class.MonadTrans(function (dictMonad) {\n return function (ma) {\n return new FreeT(function (v) {\n return Data_Functor.map(((dictMonad.Bind1()).Apply0()).Functor0())(Data_Either.Left.create)(ma);\n });\n };\n });\n };\n var freeT = FreeT.create;\n var bound = function (m) {\n return function (f) {\n return new Bind(Data_Exists.mkExists(new Bound(m, f)));\n };\n };\n var functorFreeT = function (dictFunctor) {\n return function (dictFunctor1) {\n return new Data_Functor.Functor(function (f) {\n return function (v) {\n if (v instanceof FreeT) {\n return new FreeT(function (v1) {\n return Data_Functor.map(dictFunctor1)(Data_Bifunctor.bimap(Data_Either.bifunctorEither)(f)(Data_Functor.map(dictFunctor)(Data_Functor.map(functorFreeT(dictFunctor)(dictFunctor1))(f))))(v.value0(Data_Unit.unit));\n });\n };\n if (v instanceof Bind) {\n return Data_Exists.runExists(function (v1) {\n return bound(v1.value0)((function () {\n var $123 = Data_Functor.map(functorFreeT(dictFunctor)(dictFunctor1))(f);\n return function ($124) {\n return $123(v1.value1($124));\n };\n })());\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free.Trans (line 59, column 1 - line 61, column 71): \" + [ f.constructor.name, v.constructor.name ]);\n };\n });\n };\n };\n var monadFreeT = function (dictFunctor) {\n return function (dictMonad) {\n return new Control_Monad.Monad(function () {\n return applicativeFreeT(dictFunctor)(dictMonad);\n }, function () {\n return bindFreeT(dictFunctor)(dictMonad);\n });\n };\n };\n var bindFreeT = function (dictFunctor) {\n return function (dictMonad) {\n return new Control_Bind.Bind(function () {\n return applyFreeT(dictFunctor)(dictMonad);\n }, function (v) {\n return function (f) {\n if (v instanceof Bind) {\n return Data_Exists.runExists(function (v1) {\n return bound(v1.value0)(function (x) {\n return bound(function (v2) {\n return v1.value1(x);\n })(f);\n });\n })(v.value0);\n };\n return bound(function (v1) {\n return v;\n })(f);\n };\n });\n };\n };\n var applyFreeT = function (dictFunctor) {\n return function (dictMonad) {\n return new Control_Apply.Apply(function () {\n return functorFreeT(dictFunctor)(((dictMonad.Bind1()).Apply0()).Functor0());\n }, Control_Monad.ap(monadFreeT(dictFunctor)(dictMonad)));\n };\n };\n var applicativeFreeT = function (dictFunctor) {\n return function (dictMonad) {\n return new Control_Applicative.Applicative(function () {\n return applyFreeT(dictFunctor)(dictMonad);\n }, function (a) {\n return new FreeT(function (v) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Either.Left(a));\n });\n });\n };\n };\n var liftFreeT = function (dictFunctor) {\n return function (dictMonad) {\n return function (fa) {\n return new FreeT(function (v) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Either.Right(Data_Functor.map(dictFunctor)(Control_Applicative.pure(applicativeFreeT(dictFunctor)(dictMonad)))(fa)));\n });\n };\n };\n };\n var resume = function (dictFunctor) {\n return function (dictMonadRec) {\n var go = function (v) {\n if (v instanceof FreeT) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_Rec_Class.Done.create)(v.value0(Data_Unit.unit));\n };\n if (v instanceof Bind) {\n return Data_Exists.runExists(function (v1) {\n var v2 = v1.value0(Data_Unit.unit);\n if (v2 instanceof FreeT) {\n return Control_Bind.bind((dictMonadRec.Monad0()).Bind1())(v2.value0(Data_Unit.unit))(function (v3) {\n if (v3 instanceof Data_Either.Left) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(new Control_Monad_Rec_Class.Loop(v1.value1(v3.value0)));\n };\n if (v3 instanceof Data_Either.Right) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(new Control_Monad_Rec_Class.Done(new Data_Either.Right(Data_Functor.map(dictFunctor)(function (h) {\n return Control_Bind.bind(bindFreeT(dictFunctor)(dictMonadRec.Monad0()))(h)(v1.value1);\n })(v3.value0))));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free.Trans (line 54, column 20 - line 56, column 67): \" + [ v3.constructor.name ]);\n });\n };\n if (v2 instanceof Bind) {\n return Data_Exists.runExists(function (v3) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(new Control_Monad_Rec_Class.Loop(Control_Bind.bind(bindFreeT(dictFunctor)(dictMonadRec.Monad0()))(v3.value0(Data_Unit.unit))(function (z) {\n return Control_Bind.bind(bindFreeT(dictFunctor)(dictMonadRec.Monad0()))(v3.value1(z))(v1.value1);\n })));\n })(v2.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free.Trans (line 52, column 5 - line 57, column 98): \" + [ v2.constructor.name ]);\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free.Trans (line 49, column 3 - line 49, column 75): \" + [ v.constructor.name ]);\n };\n return Control_Monad_Rec_Class.tailRecM(dictMonadRec)(go);\n };\n };\n var runFreeT = function (dictFunctor) {\n return function (dictMonadRec) {\n return function (interp) {\n var go = function (v) {\n if (v instanceof Data_Either.Left) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(new Control_Monad_Rec_Class.Done(v.value0));\n };\n if (v instanceof Data_Either.Right) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_Rec_Class.Loop.create)(interp(v.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free.Trans (line 141, column 3 - line 141, column 63): \" + [ v.constructor.name ]);\n };\n return Control_Monad_Rec_Class.tailRecM(dictMonadRec)(Control_Bind.composeKleisliFlipped((dictMonadRec.Monad0()).Bind1())(go)(resume(dictFunctor)(dictMonadRec)));\n };\n };\n };\n var monadRecFreeT = function (dictFunctor) {\n return function (dictMonad) {\n return new Control_Monad_Rec_Class.MonadRec(function () {\n return monadFreeT(dictFunctor)(dictMonad);\n }, function (f) {\n var go = function (s) {\n return Control_Bind.bind(bindFreeT(dictFunctor)(dictMonad))(f(s))(function (v) {\n if (v instanceof Control_Monad_Rec_Class.Loop) {\n return go(v.value0);\n };\n if (v instanceof Control_Monad_Rec_Class.Done) {\n return Control_Applicative.pure(applicativeFreeT(dictFunctor)(dictMonad))(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free.Trans (line 82, column 15 - line 84, column 25): \" + [ v.constructor.name ]);\n });\n };\n return go;\n });\n };\n };\n exports[\"freeT\"] = freeT;\n exports[\"liftFreeT\"] = liftFreeT;\n exports[\"resume\"] = resume;\n exports[\"runFreeT\"] = runFreeT;\n exports[\"functorFreeT\"] = functorFreeT;\n exports[\"applicativeFreeT\"] = applicativeFreeT;\n exports[\"bindFreeT\"] = bindFreeT;\n exports[\"monadTransFreeT\"] = monadTransFreeT;\n exports[\"monadRecFreeT\"] = monadRecFreeT;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Coroutine\"] = $PS[\"Control.Coroutine\"] || {};\n var exports = $PS[\"Control.Coroutine\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Control_Monad_Free_Trans = $PS[\"Control.Monad.Free.Trans\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Monad_Trans_Class = $PS[\"Control.Monad.Trans.Class\"];\n var Control_Parallel_Class = $PS[\"Control.Parallel.Class\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Profunctor = $PS[\"Data.Profunctor\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Emit = (function () {\n function Emit(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Emit.create = function (value0) {\n return function (value1) {\n return new Emit(value0, value1);\n };\n };\n return Emit;\n })();\n var runProcess = function (dictMonadRec) {\n return Control_Monad_Free_Trans.runFreeT(Data_Identity.functorIdentity)(dictMonadRec)((function () {\n var $176 = Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0());\n var $177 = Data_Newtype.unwrap(Data_Identity.newtypeIdentity);\n return function ($178) {\n return $176($177($178));\n };\n })());\n };\n var profunctorAwait = new Data_Profunctor.Profunctor(function (f) {\n return function (g) {\n return function (v) {\n return Data_Profunctor.dimap(Data_Profunctor.profunctorFn)(f)(g)(v);\n };\n };\n });\n var loop = function (dictFunctor) {\n return function (dictMonad) {\n return function (me) {\n return Control_Monad_Rec_Class.tailRecM(Control_Monad_Free_Trans.monadRecFreeT(dictFunctor)(dictMonad))(function (v) {\n return Data_Functor.map(Control_Monad_Free_Trans.functorFreeT(dictFunctor)(((dictMonad.Bind1()).Apply0()).Functor0()))(Data_Maybe.maybe(new Control_Monad_Rec_Class.Loop(Data_Unit.unit))(Control_Monad_Rec_Class.Done.create))(me);\n })(Data_Unit.unit);\n };\n };\n };\n var fuseWithL = function (dictFunctor) {\n return function (dictFunctor1) {\n return function (dictFunctor2) {\n return function (dictMonadRec) {\n return function (zap) {\n return function (fs) {\n return function (gs) {\n var go = function (v) {\n return Control_Monad_Except_Trans.runExceptT(Control_Bind.bind(Control_Monad_Except_Trans.bindExceptT(dictMonadRec.Monad0()))(Control_Monad_Except_Trans.ExceptT(Control_Monad_Free_Trans.resume(dictFunctor)(dictMonadRec)(v.value0)))(function (l) {\n return Control_Bind.bind(Control_Monad_Except_Trans.bindExceptT(dictMonadRec.Monad0()))(Control_Monad_Except_Trans.ExceptT(Control_Monad_Free_Trans.resume(dictFunctor1)(dictMonadRec)(v.value1)))(function (r) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonadRec.Monad0()))(Data_Functor.map(dictFunctor2)(function (t) {\n return Control_Monad_Free_Trans.freeT(function (v1) {\n return go(t);\n });\n })(zap(Data_Tuple.Tuple.create)(l)(r)));\n });\n }));\n };\n return Control_Monad_Free_Trans.freeT(function (v) {\n return go(new Data_Tuple.Tuple(fs, gs));\n });\n };\n };\n };\n };\n };\n };\n };\n var fuseWith = function (dictFunctor) {\n return function (dictFunctor1) {\n return function (dictFunctor2) {\n return function (dictMonadRec) {\n return function (dictParallel) {\n return function (zap) {\n return function (fs) {\n return function (gs) {\n var go = function (v) {\n return Control_Bind.bind((dictMonadRec.Monad0()).Bind1())(Control_Parallel_Class.sequential(dictParallel)(Control_Apply.apply((dictParallel.Applicative1()).Apply0())(Data_Functor.map(((dictParallel.Applicative1()).Apply0()).Functor0())(Control_Apply.lift2(Data_Either.applyEither)(zap(Data_Tuple.Tuple.create)))(Control_Parallel_Class.parallel(dictParallel)(Control_Monad_Free_Trans.resume(dictFunctor)(dictMonadRec)(v.value0))))(Control_Parallel_Class.parallel(dictParallel)(Control_Monad_Free_Trans.resume(dictFunctor1)(dictMonadRec)(v.value1)))))(function (next) {\n if (next instanceof Data_Either.Left) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(new Data_Either.Left(next.value0));\n };\n if (next instanceof Data_Either.Right) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(new Data_Either.Right(Data_Functor.map(dictFunctor2)(function (t) {\n return Control_Monad_Free_Trans.freeT(function (v1) {\n return go(t);\n });\n })(next.value0)));\n };\n throw new Error(\"Failed pattern match at Control.Coroutine (line 79, column 5 - line 81, column 63): \" + [ next.constructor.name ]);\n });\n };\n return Control_Monad_Free_Trans.freeT(function (v) {\n return go(new Data_Tuple.Tuple(fs, gs));\n });\n };\n };\n };\n };\n };\n };\n };\n };\n var functorAwait = new Data_Functor.Functor(Data_Profunctor.rmap(profunctorAwait));\n var bifunctorEmit = new Data_Bifunctor.Bifunctor(function (f) {\n return function (g) {\n return function (v) {\n return new Emit(f(v.value0), g(v.value1));\n };\n };\n });\n var functorEmit = new Data_Functor.Functor(Data_Bifunctor.rmap(bifunctorEmit));\n var connect = function (dictMonadRec) {\n return function (dictParallel) {\n return fuseWith(functorEmit)(functorAwait)(Data_Identity.functorIdentity)(dictMonadRec)(dictParallel)(function (f) {\n return function (v) {\n return function (v1) {\n return f(v.value1)(v1(v.value0));\n };\n };\n });\n };\n };\n var emit = function (dictMonad) {\n return function (o) {\n return Control_Monad_Free_Trans.liftFreeT(functorEmit)(dictMonad)(new Emit(o, Data_Unit.unit));\n };\n };\n var producer = function (dictMonad) {\n return function (recv) {\n return loop(functorEmit)(dictMonad)(Control_Bind.bind(Control_Monad_Free_Trans.bindFreeT(functorEmit)(dictMonad))(Control_Monad_Trans_Class.lift(Control_Monad_Free_Trans.monadTransFreeT(functorEmit))(dictMonad)(recv))(function (e) {\n if (e instanceof Data_Either.Left) {\n return Data_Functor.voidLeft(Control_Monad_Free_Trans.functorFreeT(functorEmit)(((dictMonad.Bind1()).Apply0()).Functor0()))(emit(dictMonad)(e.value0))(Data_Maybe.Nothing.value);\n };\n if (e instanceof Data_Either.Right) {\n return Control_Applicative.pure(Control_Monad_Free_Trans.applicativeFreeT(functorEmit)(dictMonad))(new Data_Maybe.Just(e.value0));\n };\n throw new Error(\"Failed pattern match at Control.Coroutine (line 125, column 3 - line 127, column 29): \" + [ e.constructor.name ]);\n }));\n };\n };\n var pullFrom = function (dictMonadRec) {\n return fuseWithL(functorAwait)(functorEmit)(Data_Identity.functorIdentity)(dictMonadRec)(function (f) {\n return function (v) {\n return function (v1) {\n return Control_Applicative.pure(Data_Identity.applicativeIdentity)(f(v(v1.value0))(v1.value1));\n };\n };\n });\n };\n var $$await = function (dictMonad) {\n return Control_Monad_Free_Trans.liftFreeT(functorAwait)(dictMonad)(Control_Category.identity(Control_Category.categoryFn));\n };\n exports[\"runProcess\"] = runProcess;\n exports[\"producer\"] = producer;\n exports[\"await\"] = $$await;\n exports[\"connect\"] = connect;\n exports[\"pullFrom\"] = pullFrom;\n exports[\"functorAwait\"] = functorAwait;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Fork.Class\"] = $PS[\"Control.Monad.Fork.Class\"] || {};\n var exports = $PS[\"Control.Monad.Fork.Class\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var MonadFork = function (Functor1, Monad0, fork, join, suspend) {\n this.Functor1 = Functor1;\n this.Monad0 = Monad0;\n this.fork = fork;\n this.join = join;\n this.suspend = suspend;\n };\n var monadForkAff = new MonadFork(function () {\n return Effect_Aff.functorFiber;\n }, function () {\n return Effect_Aff.monadAff;\n }, Effect_Aff.forkAff, Effect_Aff.joinFiber, Effect_Aff.suspendAff);\n var fork = function (dict) {\n return dict.fork;\n };\n exports[\"fork\"] = fork;\n exports[\"monadForkAff\"] = monadForkAff;\n})(PS);\n(function(exports) {\n /* globals exports, setTimeout */\n \"use strict\";\n\n var AVar = function () {\n\n function MutableQueue () {\n this.head = null;\n this.last = null;\n this.size = 0;\n }\n\n function MutableCell (queue, value) {\n this.queue = queue;\n this.value = value;\n this.next = null;\n this.prev = null;\n }\n\n function AVar (value) {\n this.draining = false;\n this.error = null;\n this.value = value;\n this.takes = new MutableQueue();\n this.reads = new MutableQueue();\n this.puts = new MutableQueue();\n }\n\n var EMPTY = {};\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 putLast (queue, value) {\n var cell = new MutableCell(queue, value);\n switch (queue.size) {\n case 0:\n queue.head = cell;\n break;\n case 1:\n cell.prev = queue.head;\n queue.head.next = cell;\n queue.last = cell;\n break;\n default:\n cell.prev = queue.last;\n queue.last.next = cell;\n queue.last = cell;\n }\n queue.size++;\n return cell;\n }\n\n function takeLast (queue) {\n var cell;\n switch (queue.size) {\n case 0:\n return null;\n case 1:\n cell = queue.head;\n queue.head = null;\n break;\n case 2:\n cell = queue.last;\n queue.head.next = null;\n queue.last = null;\n break;\n default:\n cell = queue.last;\n queue.last = cell.prev;\n queue.last.next = null;\n }\n cell.prev = null;\n cell.queue = null;\n queue.size--;\n return cell.value;\n }\n\n function takeHead (queue) {\n var cell;\n switch (queue.size) {\n case 0:\n return null;\n case 1:\n cell = queue.head;\n queue.head = null;\n break;\n case 2:\n cell = queue.head;\n queue.last.prev = null;\n queue.head = queue.last;\n queue.last = null;\n break;\n default:\n cell = queue.head;\n queue.head = cell.next;\n queue.head.prev = null;\n }\n cell.next = null;\n cell.queue = null;\n queue.size--;\n return cell.value;\n }\n\n function deleteCell (cell) {\n if (cell.queue === null) {\n return;\n }\n if (cell.queue.last === cell) {\n takeLast(cell.queue);\n return;\n }\n if (cell.queue.head === cell) {\n takeHead(cell.queue);\n return;\n }\n if (cell.prev) {\n cell.prev.next = cell.next;\n }\n if (cell.next) {\n cell.next.prev = cell.prev;\n }\n cell.queue.size--;\n cell.queue = null;\n cell.value = null;\n cell.next = null;\n cell.prev = null;\n }\n\n function drainVar (util, avar) {\n if (avar.draining) {\n return;\n }\n\n var ps = avar.puts;\n var ts = avar.takes;\n var rs = avar.reads;\n var p, r, t, value, rsize;\n\n avar.draining = true;\n\n while (1) { // eslint-disable-line no-constant-condition\n p = null;\n r = null;\n t = null;\n value = avar.value;\n rsize = rs.size;\n\n if (avar.error !== null) {\n value = util.left(avar.error);\n while (p = takeHead(ps)) { // eslint-disable-line no-cond-assign\n runEff(p.cb(value));\n }\n while (r = takeHead(rs)) { // eslint-disable-line no-cond-assign\n runEff(r(value));\n }\n while (t = takeHead(ts)) { // eslint-disable-line no-cond-assign\n runEff(t(value));\n }\n break;\n }\n\n // Process the next put. We do not immediately invoke the callback\n // because we want to preserve ordering. If there are takes/reads\n // we want to run those first.\n if (value === EMPTY && (p = takeHead(ps))) {\n avar.value = value = p.value;\n }\n\n if (value !== EMPTY) {\n // We go ahead and queue up the next take for the same reasons as\n // above. Invoking the read callbacks can affect the mutable queue.\n t = takeHead(ts);\n // We only want to process the reads queued up before running these\n // callbacks so we guard on rsize.\n while (rsize-- && (r = takeHead(rs))) {\n runEff(r(util.right(value)));\n }\n if (t !== null) {\n avar.value = EMPTY;\n runEff(t(util.right(value)));\n }\n }\n\n if (p !== null) {\n runEff(p.cb(util.right(void 0)));\n }\n\n // Callbacks could have queued up more items so we need to guard on the\n // actual mutable properties.\n if (avar.value === EMPTY && ps.size === 0 || avar.value !== EMPTY && ts.size === 0) {\n break;\n }\n }\n avar.draining = false;\n }\n\n AVar.EMPTY = EMPTY;\n AVar.putLast = putLast;\n AVar.takeLast = takeLast;\n AVar.takeHead = takeHead;\n AVar.deleteCell = deleteCell;\n AVar.drainVar = drainVar;\n\n return AVar;\n }();\n\n exports.empty = function () {\n return new AVar(AVar.EMPTY);\n };\n\n exports._killVar = function (util, error, avar) {\n return function () {\n if (avar.error === null) {\n avar.error = error;\n avar.value = AVar.EMPTY;\n AVar.drainVar(util, avar);\n }\n };\n };\n\n exports._putVar = function (util, value, avar, cb) {\n return function () {\n var cell = AVar.putLast(avar.puts, { cb: cb, value: value });\n AVar.drainVar(util, avar);\n return function () {\n AVar.deleteCell(cell);\n };\n };\n };\n\n exports._takeVar = function (util, avar, cb) {\n return function () {\n var cell = AVar.putLast(avar.takes, cb);\n AVar.drainVar(util, avar);\n return function () {\n AVar.deleteCell(cell);\n };\n };\n };\n})(PS[\"Effect.AVar\"] = PS[\"Effect.AVar\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.AVar\"] = $PS[\"Effect.AVar\"] || {};\n var exports = $PS[\"Effect.AVar\"];\n var $foreign = $PS[\"Effect.AVar\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var Killed = (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 })();\n var Filled = (function () {\n function Filled(value0) {\n this.value0 = value0;\n };\n Filled.create = function (value0) {\n return new Filled(value0);\n };\n return Filled;\n })();\n var Empty = (function () {\n function Empty() {\n\n };\n Empty.value = new Empty();\n return Empty;\n })();\n var ffiUtil = {\n left: Data_Either.Left.create,\n right: Data_Either.Right.create,\n nothing: Data_Maybe.Nothing.value,\n just: Data_Maybe.Just.create,\n killed: Killed.create,\n filled: Filled.create,\n empty: Empty.value\n };\n var kill = function (err) {\n return function (avar) {\n return $foreign[\"_killVar\"](ffiUtil, err, avar);\n };\n };\n var put = function (value) {\n return function (avar) {\n return function (cb) {\n return $foreign[\"_putVar\"](ffiUtil, value, avar, cb);\n };\n };\n };\n var take = function (avar) {\n return function (cb) {\n return $foreign[\"_takeVar\"](ffiUtil, avar, cb);\n };\n };\n exports[\"take\"] = take;\n exports[\"put\"] = put;\n exports[\"kill\"] = kill;\n exports[\"empty\"] = $foreign.empty;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Aff.AVar\"] = $PS[\"Effect.Aff.AVar\"] || {};\n var exports = $PS[\"Effect.Aff.AVar\"];\n var Effect_AVar = $PS[\"Effect.AVar\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var take = function (avar) {\n return Effect_Aff.makeAff(function (k) {\n return function __do() {\n var c = Effect_AVar.take(avar)(k)();\n return Effect_Aff.effectCanceler(c);\n };\n });\n };\n var put = function (value) {\n return function (avar) {\n return Effect_Aff.makeAff(function (k) {\n return function __do() {\n var c = Effect_AVar.put(value)(avar)(k)();\n return Effect_Aff.effectCanceler(c);\n };\n });\n };\n }; \n var kill = function (error) {\n var $11 = Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\n var $12 = Effect_AVar.kill(error);\n return function ($13) {\n return $11($12($13));\n };\n };\n var empty = Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_AVar.empty);\n exports[\"empty\"] = empty;\n exports[\"take\"] = take;\n exports[\"put\"] = put;\n exports[\"kill\"] = kill;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.warn = function (s) {\n return function () {\n console.warn(s);\n return {};\n };\n };\n})(PS[\"Effect.Console\"] = PS[\"Effect.Console\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Console\"] = $PS[\"Effect.Console\"] || {};\n var exports = $PS[\"Effect.Console\"];\n var $foreign = $PS[\"Effect.Console\"];\n exports[\"warn\"] = $foreign.warn;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.error = function (msg) {\n return new Error(msg);\n };\n\n exports.throwException = function (e) {\n return function () {\n throw e;\n };\n };\n})(PS[\"Effect.Exception\"] = PS[\"Effect.Exception\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Exception\"] = $PS[\"Effect.Exception\"] || {};\n var exports = $PS[\"Effect.Exception\"];\n var $foreign = $PS[\"Effect.Exception\"];\n var $$throw = function ($2) {\n return $foreign.throwException($foreign.error($2));\n };\n exports[\"throw\"] = $$throw;\n exports[\"error\"] = $foreign.error;\n exports[\"throwException\"] = $foreign.throwException;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Aff.Driver.State\"] = $PS[\"Halogen.Aff.Driver.State\"] || {};\n var exports = $PS[\"Halogen.Aff.Driver.State\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Data_Slot = $PS[\"Halogen.Data.Slot\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var unRenderStateX = Unsafe_Coerce.unsafeCoerce;\n var unDriverStateX = Unsafe_Coerce.unsafeCoerce;\n var renderStateX_ = function (dictApplicative) {\n return function (f) {\n return unDriverStateX(function (st) {\n return Data_Foldable.traverse_(dictApplicative)(Data_Foldable.foldableMaybe)(f)(st.rendering);\n });\n };\n };\n var mkRenderStateX = Unsafe_Coerce.unsafeCoerce;\n var renderStateX = function (dictFunctor) {\n return function (f) {\n return unDriverStateX(function (st) {\n return mkRenderStateX(f(st.rendering));\n });\n };\n };\n var mkDriverStateXRef = Unsafe_Coerce.unsafeCoerce;\n var mapDriverState = function (f) {\n return function (v) {\n return f(v);\n };\n };\n var initDriverState = function (component) {\n return function (input) {\n return function (handler) {\n return function (lchs) {\n return function __do() {\n var selfRef = Effect_Ref[\"new\"]({})();\n var childrenIn = Effect_Ref[\"new\"](Halogen_Data_Slot.empty)();\n var childrenOut = Effect_Ref[\"new\"](Halogen_Data_Slot.empty)();\n var handlerRef = Effect_Ref[\"new\"](handler)();\n var pendingQueries = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_List_Types.Nil.value))();\n var pendingOuts = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_List_Types.Nil.value))();\n var pendingHandlers = Effect_Ref[\"new\"](Data_Maybe.Nothing.value)();\n var fresh = Effect_Ref[\"new\"](1)();\n var subscriptions = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_Map_Internal.empty))();\n var forks = Effect_Ref[\"new\"](Data_Map_Internal.empty)();\n var ds = {\n component: component,\n state: component.initialState(input),\n refs: Data_Map_Internal.empty,\n children: Halogen_Data_Slot.empty,\n childrenIn: childrenIn,\n childrenOut: childrenOut,\n selfRef: selfRef,\n handlerRef: handlerRef,\n pendingQueries: pendingQueries,\n pendingOuts: pendingOuts,\n pendingHandlers: pendingHandlers,\n rendering: Data_Maybe.Nothing.value,\n fresh: fresh,\n subscriptions: subscriptions,\n forks: forks,\n lifecycleHandlers: lchs\n };\n Effect_Ref.write(ds)(selfRef)();\n return mkDriverStateXRef(selfRef);\n };\n };\n };\n };\n };\n exports[\"mapDriverState\"] = mapDriverState;\n exports[\"unDriverStateX\"] = unDriverStateX;\n exports[\"renderStateX\"] = renderStateX;\n exports[\"renderStateX_\"] = renderStateX_;\n exports[\"unRenderStateX\"] = unRenderStateX;\n exports[\"initDriverState\"] = initDriverState;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Query.ChildQuery\"] = $PS[\"Halogen.Query.ChildQuery\"] || {};\n var exports = $PS[\"Halogen.Query.ChildQuery\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var unChildQueryBox = Unsafe_Coerce.unsafeCoerce;\n exports[\"unChildQueryBox\"] = unChildQueryBox;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Query.EventSource\"] = $PS[\"Halogen.Query.EventSource\"] || {};\n var exports = $PS[\"Halogen.Query.EventSource\"];\n var finalize = function (v) {\n return v;\n };\n exports[\"finalize\"] = finalize;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.reallyUnsafeRefEq = function (a) {\n return function (b) {\n return a === b;\n };\n };\n})(PS[\"Unsafe.Reference\"] = PS[\"Unsafe.Reference\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Unsafe.Reference\"] = $PS[\"Unsafe.Reference\"] || {};\n var exports = $PS[\"Unsafe.Reference\"];\n var $foreign = $PS[\"Unsafe.Reference\"];\n var unsafeRefEq = $foreign.reallyUnsafeRefEq;\n exports[\"unsafeRefEq\"] = unsafeRefEq;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Aff.Driver.Eval\"] = $PS[\"Halogen.Aff.Driver.Eval\"] || {};\n var exports = $PS[\"Halogen.Aff.Driver.Eval\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Applicative_Free = $PS[\"Control.Applicative.Free\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Coroutine = $PS[\"Control.Coroutine\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Fork_Class = $PS[\"Control.Monad.Fork.Class\"];\n var Control_Monad_Free = $PS[\"Control.Monad.Free\"];\n var Control_Monad_Free_Trans = $PS[\"Control.Monad.Free.Trans\"];\n var Control_Monad_Trans_Class = $PS[\"Control.Monad.Trans.Class\"];\n var Control_Parallel = $PS[\"Control.Parallel\"];\n var Control_Parallel_Class = $PS[\"Control.Parallel.Class\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Coyoneda = $PS[\"Data.Coyoneda\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Aff_Driver_State = $PS[\"Halogen.Aff.Driver.State\"];\n var Halogen_Query_ChildQuery = $PS[\"Halogen.Query.ChildQuery\"];\n var Halogen_Query_EventSource = $PS[\"Halogen.Query.EventSource\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Halogen_Query_HalogenQ = $PS[\"Halogen.Query.HalogenQ\"];\n var Halogen_Query_Input = $PS[\"Halogen.Query.Input\"];\n var Unsafe_Reference = $PS[\"Unsafe.Reference\"]; \n var unsubscribe = function (sid) {\n return function (ref) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v.subscriptions)))(function (subs) {\n return Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(Halogen_Query_EventSource.finalize)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordSubscriptionId)(sid))(subs));\n });\n });\n };\n };\n var queueOrRun = function (ref) {\n return function (au) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return au;\n };\n if (v instanceof Data_Maybe.Just) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write(new Data_Maybe.Just(new Data_List_Types.Cons(au, v.value0)))(ref));\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 195, column 33 - line 197, column 57): \" + [ v.constructor.name ]);\n });\n };\n };\n var handleLifecycle = function (lchs) {\n return function (f) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write({\n initializers: Data_List_Types.Nil.value,\n finalizers: Data_List_Types.Nil.value\n })(lchs)))(function () {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(f))(function (result) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(lchs)))(function (v) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff))(v.finalizers))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Control_Parallel.parSequence_(Effect_Aff.parallelAff)(Data_List_Types.foldableList)(v.initializers))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(result);\n });\n });\n });\n });\n });\n };\n };\n var fresh = function (f) {\n return function (ref) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"modify'\"](function (i) {\n return {\n state: i + 1 | 0,\n value: f(i)\n };\n })(v.fresh));\n });\n };\n };\n var evalQ = function (render) {\n return function (ref) {\n return function (q) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n return evalM(render)(ref)(v[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Query(Data_Functor.map(Data_Coyoneda.functorCoyoneda)(Data_Maybe.Just.create)(Data_Coyoneda.liftCoyoneda(q)), Data_Function[\"const\"](Data_Maybe.Nothing.value))));\n });\n };\n };\n };\n var evalM = function (render) {\n return function (initRef) {\n return function (v) {\n var evalChildQuery = function (ref) {\n return function (cqb) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v1) {\n return Halogen_Query_ChildQuery.unChildQueryBox(function (v2) {\n var evalChild = function (v3) {\n return Control_Parallel_Class.parallel(Effect_Aff.parallelAff)(Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v3)))(function (dsx) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (ds) {\n return evalQ(render)(ds.selfRef)(v2.value1);\n })(dsx);\n }));\n };\n return Data_Functor.map(Effect_Aff.functorAff)(v2.value2)(Control_Parallel_Class.sequential(Effect_Aff.parallelAff)(v2.value0(Effect_Aff.applicativeParAff)(evalChild)(v1.children)));\n })(cqb);\n });\n };\n };\n var go = function (ref) {\n return function (v1) {\n if (v1 instanceof Halogen_Query_HalogenM.State) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n var v3 = v1.value0(v2.state);\n if (Unsafe_Reference.unsafeRefEq(v2.state)(v3.value1)) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v3.value0);\n };\n if (Data_Boolean.otherwise) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write({\n component: v2.component,\n state: v3.value1,\n refs: v2.refs,\n children: v2.children,\n childrenIn: v2.childrenIn,\n childrenOut: v2.childrenOut,\n selfRef: v2.selfRef,\n handlerRef: v2.handlerRef,\n pendingQueries: v2.pendingQueries,\n pendingOuts: v2.pendingOuts,\n pendingHandlers: v2.pendingHandlers,\n rendering: v2.rendering,\n fresh: v2.fresh,\n subscriptions: v2.subscriptions,\n forks: v2.forks,\n lifecycleHandlers: v2.lifecycleHandlers\n })(ref)))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(handleLifecycle(v2.lifecycleHandlers)(render(v2.lifecycleHandlers)(ref)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v3.value0);\n });\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 85, column 7 - line 91, column 21): \" + [ v3.constructor.name ]);\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Subscribe) {\n return Control_Bind.bind(Effect_Aff.bindAff)(fresh(Halogen_Query_HalogenM.SubscriptionId)(ref))(function (sid) {\n var v2 = v1.value0(sid);\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v3) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff)(Control_Bind.bind(Effect_Aff.bindAff)(v2)(function (v4) {\n var done = Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v3.subscriptions)))(function (subs) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.modify_(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Map_Internal[\"delete\"](Halogen_Query_HalogenM.ordSubscriptionId)(sid)))(v3.subscriptions)))(function () {\n return Control_Applicative.when(Effect_Aff.applicativeAff)(Data_Maybe.maybe(false)(Data_Map_Internal.member(Halogen_Query_HalogenM.ordSubscriptionId)(sid))(subs))(Halogen_Query_EventSource.finalize(v4.finalizer));\n });\n });\n var consumer = Control_Bind.bind(Control_Monad_Free_Trans.bindFreeT(Control_Coroutine.functorAwait)(Effect_Aff.monadAff))(Control_Coroutine[\"await\"](Effect_Aff.monadAff))(function (act) {\n return Control_Bind.bind(Control_Monad_Free_Trans.bindFreeT(Control_Coroutine.functorAwait)(Effect_Aff.monadAff))(Control_Monad_Trans_Class.lift(Control_Monad_Free_Trans.monadTransFreeT(Control_Coroutine.functorAwait))(Effect_Aff.monadAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v3.subscriptions))))(function (subs) {\n return Control_Applicative.when(Control_Monad_Free_Trans.applicativeFreeT(Control_Coroutine.functorAwait)(Effect_Aff.monadAff))(Data_Eq.eq(Data_Maybe.eqMaybe(Data_Eq.eqBoolean))(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Map_Internal.member(Halogen_Query_HalogenM.ordSubscriptionId)(sid))(subs))(new Data_Maybe.Just(true)))(Control_Bind.bind(Control_Monad_Free_Trans.bindFreeT(Control_Coroutine.functorAwait)(Effect_Aff.monadAff))(Control_Monad_Trans_Class.lift(Control_Monad_Free_Trans.monadTransFreeT(Control_Coroutine.functorAwait))(Effect_Aff.monadAff)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff)(evalF(render)(ref)(new Halogen_Query_Input.Action(act)))))(function () {\n return consumer;\n }));\n });\n });\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.modify_(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Map_Internal.insert(Halogen_Query_HalogenM.ordSubscriptionId)(sid)(done)))(v3.subscriptions)))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Control_Coroutine.runProcess(Effect_Aff.monadRecAff)(Control_Coroutine.pullFrom(Effect_Aff.monadRecAff)(consumer)(v4.producer)))(function () {\n return Halogen_Query_EventSource.finalize(done);\n });\n });\n })))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(sid));\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Unsubscribe) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(unsubscribe(v1.value0)(ref))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Lift) {\n return v1.value0;\n };\n if (v1 instanceof Halogen_Query_HalogenM.ChildQuery) {\n return evalChildQuery(ref)(v1.value0);\n };\n if (v1 instanceof Halogen_Query_HalogenM.Raise) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v2.handlerRef)))(function (handler) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(queueOrRun(v2.pendingOuts)(handler(v1.value0)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Par) {\n return Control_Parallel_Class.sequential(Effect_Aff.parallelAff)(Control_Applicative_Free.retractFreeAp(Effect_Aff.applicativeParAff)(Control_Applicative_Free.hoistFreeAp((function () {\n var $85 = Control_Parallel_Class.parallel(Effect_Aff.parallelAff);\n var $86 = evalM(render)(ref);\n return function ($87) {\n return $85($86($87));\n };\n })())(v1.value0)));\n };\n if (v1 instanceof Halogen_Query_HalogenM.Fork) {\n return Control_Bind.bind(Effect_Aff.bindAff)(fresh(Halogen_Query_HalogenM.ForkId)(ref))(function (fid) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"new\"](false)))(function (doneRef) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff)(Effect_Aff[\"finally\"](Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(function __do() {\n Effect_Ref.modify_(Data_Map_Internal[\"delete\"](Halogen_Query_HalogenM.ordForkId)(fid))(v2.forks)();\n return Effect_Ref.write(true)(doneRef)();\n }))(evalM(render)(ref)(v1.value0))))(function (fiber) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Control_Monad.unlessM(Effect.monadEffect)(Effect_Ref.read(doneRef))(Effect_Ref.modify_(Data_Map_Internal.insert(Halogen_Query_HalogenM.ordForkId)(fid)(fiber))(v2.forks))))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(fid));\n });\n });\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Kill) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v2.forks)))(function (forkMap) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(Effect_Aff.killFiber(Effect_Exception.error(\"Cancelled\")))(Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordForkId)(v1.value0)(forkMap)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.GetRef) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(Data_Map_Internal.lookup(Data_Ord.ordString)(v1.value0)(v2.refs)));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 82, column 12 - line 146, column 33): \" + [ v1.constructor.name ]);\n };\n };\n return Control_Monad_Free.foldFree(Effect_Aff.monadRecAff)(go(initRef))(v);\n };\n };\n };\n var evalF = function (render) {\n return function (ref) {\n return function (v) {\n if (v instanceof Halogen_Query_Input.RefUpdate) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Data_Function.flip(Effect_Ref.modify_)(ref)(Halogen_Aff_Driver_State.mapDriverState(function (st) {\n return {\n component: st.component,\n state: st.state,\n refs: Data_Map_Internal.alter(Data_Ord.ordString)(Data_Function[\"const\"](v.value1))(v.value0)(st.refs),\n children: st.children,\n childrenIn: st.childrenIn,\n childrenOut: st.childrenOut,\n selfRef: st.selfRef,\n handlerRef: st.handlerRef,\n pendingQueries: st.pendingQueries,\n pendingOuts: st.pendingOuts,\n pendingHandlers: st.pendingHandlers,\n rendering: st.rendering,\n fresh: st.fresh,\n subscriptions: st.subscriptions,\n forks: st.forks,\n lifecycleHandlers: st.lifecycleHandlers\n };\n })));\n };\n if (v instanceof Halogen_Query_Input.Action) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v1) {\n return evalM(render)(ref)(v1[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Action(v.value0, Data_Unit.unit)));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 51, column 20 - line 57, column 62): \" + [ v.constructor.name ]);\n };\n };\n };\n exports[\"evalF\"] = evalF;\n exports[\"evalQ\"] = evalQ;\n exports[\"evalM\"] = evalM;\n exports[\"handleLifecycle\"] = handleLifecycle;\n exports[\"queueOrRun\"] = queueOrRun;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Aff.Driver\"] = $PS[\"Halogen.Aff.Driver\"] || {};\n var exports = $PS[\"Halogen.Aff.Driver\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Coroutine = $PS[\"Control.Coroutine\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Control_Monad_Fork_Class = $PS[\"Control.Monad.Fork.Class\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Parallel = $PS[\"Control.Parallel\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_List = $PS[\"Data.List\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_AVar = $PS[\"Effect.Aff.AVar\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Console = $PS[\"Effect.Console\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Aff_Driver_Eval = $PS[\"Halogen.Aff.Driver.Eval\"];\n var Halogen_Aff_Driver_State = $PS[\"Halogen.Aff.Driver.State\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_Data_Slot = $PS[\"Halogen.Data.Slot\"];\n var Halogen_Query_EventSource = $PS[\"Halogen.Query.EventSource\"];\n var Halogen_Query_HalogenQ = $PS[\"Halogen.Query.HalogenQ\"];\n var Halogen_Query_Input = $PS[\"Halogen.Query.Input\"]; \n var newLifecycleHandlers = Effect_Ref[\"new\"]({\n initializers: Data_List_Types.Nil.value,\n finalizers: Data_List_Types.Nil.value\n });\n var handleAff = Effect_Aff.runAff_(Data_Either.either(Effect_Exception.throwException)(Data_Function[\"const\"](Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit))));\n var handlePending = function (ref) {\n return function __do() {\n var queue = Effect_Ref.read(ref)();\n Effect_Ref.write(Data_Maybe.Nothing.value)(ref)();\n return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(queue)((function () {\n var $28 = Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff));\n return function ($29) {\n return handleAff($28(Data_List.reverse($29)));\n };\n })())();\n };\n };\n var cleanupSubscriptionsAndForks = function (v) {\n return function __do() {\n Control_Bind.bindFlipped(Effect.bindEffect)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)((function () {\n var $30 = Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Map_Internal.foldableMap)((function () {\n var $32 = Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff);\n return function ($33) {\n return $32(Halogen_Query_EventSource.finalize($33));\n };\n })());\n return function ($31) {\n return handleAff($30($31));\n };\n })()))(Effect_Ref.read(v.subscriptions))();\n Effect_Ref.write(Data_Maybe.Nothing.value)(v.subscriptions)();\n Control_Bind.bindFlipped(Effect.bindEffect)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Map_Internal.foldableMap)((function () {\n var $34 = Effect_Aff.killFiber(Effect_Exception.error(\"finalized\"));\n return function ($35) {\n return handleAff($34($35));\n };\n })()))(Effect_Ref.read(v.forks))();\n return Effect_Ref.write(Data_Map_Internal.empty)(v.forks)();\n };\n };\n var runUI = function (renderSpec) {\n return function (component) {\n return function (i) {\n var subscribe = function (fresh) {\n return function (ref) {\n return function (consumer) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Aff_AVar.empty)(function (inputVar) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(function __do() {\n var listenerId = Effect_Ref.read(fresh)();\n Effect_Ref.modify_(function (v) {\n return v + 1 | 0;\n })(fresh)();\n Effect_Ref.modify_(Data_Map_Internal.insert(Data_Ord.ordInt)(listenerId)(inputVar))(ref)();\n return listenerId;\n }))(function (listenerId) {\n var producer = Control_Coroutine.producer(Effect_Aff.monadAff)(Data_Functor.map(Effect_Aff.functorAff)(Data_Either.either(Data_Function[\"const\"](new Data_Either.Right(Data_Unit.unit)))(Data_Either.Left.create))(Control_Monad_Error_Class[\"try\"](Effect_Aff.monadErrorAff)(Effect_Aff_AVar.take(inputVar))));\n return Data_Functor[\"void\"](Effect_Aff.functorAff)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff)(Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Control_Coroutine.runProcess(Effect_Aff.monadRecAff)(Control_Coroutine.connect(Effect_Aff.monadRecAff)(Effect_Aff.parallelAff)(producer)(consumer)))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.modify_(Data_Map_Internal[\"delete\"](Data_Ord.ordInt)(listenerId))(ref)))(function () {\n return Effect_Aff_AVar.kill(Effect_Exception.error(\"ended\"))(inputVar);\n });\n })));\n });\n });\n };\n };\n };\n var rootHandler = function (ref) {\n return function (message) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (listeners) {\n return Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Map_Internal.foldableMap)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff))(Data_Functor.map(Data_Map_Internal.functorMap)(Effect_Aff_AVar.put(message))(listeners));\n });\n };\n };\n var squashChildInitializers = function (lchs) {\n return function (preInits) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n var parentInitializer = Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Initialize(Data_Unit.unit)));\n return Effect_Ref.modify_(function (handlers) {\n return {\n initializers: new Data_List_Types.Cons(Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Control_Parallel.parSequence_(Effect_Aff.parallelAff)(Data_List_Types.foldableList)(Data_List.reverse(handlers.initializers)))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(parentInitializer)(function () {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(function __do() {\n handlePending(st.pendingQueries)();\n return handlePending(st.pendingOuts)();\n });\n });\n }), preInits),\n finalizers: handlers.finalizers\n };\n })(lchs);\n });\n };\n };\n var runComponent = function (lchs) {\n return function (handler) {\n return function (j) {\n return Halogen_Component.unComponent(function (c) {\n return function __do() {\n var lchs$prime = newLifecycleHandlers();\n var $$var = Halogen_Aff_Driver_State.initDriverState(c)(j)(handler)(lchs$prime)();\n var pre = Effect_Ref.read(lchs)();\n Effect_Ref.write({\n initializers: Data_List_Types.Nil.value,\n finalizers: pre.finalizers\n })(lchs)();\n Control_Bind.bindFlipped(Effect.bindEffect)(Halogen_Aff_Driver_State.unDriverStateX((function () {\n var $36 = render(lchs);\n return function ($37) {\n return $36((function (v) {\n return v.selfRef;\n })($37));\n };\n })()))(Effect_Ref.read($$var))();\n Control_Bind.bindFlipped(Effect.bindEffect)(squashChildInitializers(lchs)(pre.initializers))(Effect_Ref.read($$var))();\n return $$var;\n };\n });\n };\n };\n };\n var renderChild = function (lchs) {\n return function (handler) {\n return function (childrenInRef) {\n return function (childrenOutRef) {\n return Halogen_Component.unComponentSlot(function (slot) {\n return function __do() {\n var childrenIn = Data_Functor.map(Effect.functorEffect)(slot.pop)(Effect_Ref.read(childrenInRef))();\n var $$var = (function () {\n if (childrenIn instanceof Data_Maybe.Just) {\n Effect_Ref.write(childrenIn.value0.value1)(childrenInRef)();\n var dsx = Effect_Ref.read(childrenIn.value0.value0)();\n Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return function __do() {\n Data_Function.flip(Effect_Ref.write)(st.handlerRef)((function () {\n var $38 = Data_Maybe.maybe(Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Unit.unit))(handler);\n return function ($39) {\n return $38(slot.output($39));\n };\n })())();\n return handleAff(Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](slot.input)))();\n };\n })(dsx)();\n return childrenIn.value0.value0;\n };\n if (childrenIn instanceof Data_Maybe.Nothing) {\n if (slot.input instanceof Halogen_Query_HalogenQ.Receive) {\n return runComponent(lchs)((function () {\n var $40 = Data_Maybe.maybe(Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Unit.unit))(handler);\n return function ($41) {\n return $40(slot.output($41));\n };\n })())(slot.input.value0)(slot.component)();\n };\n return Effect_Exception[\"throw\"](\"Halogen internal error: slot input was not a Receive query\")();\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver (line 236, column 14 - line 249, column 81): \" + [ childrenIn.constructor.name ]);\n })();\n var isDuplicate = Data_Functor.map(Effect.functorEffect)(function ($42) {\n return Data_Maybe.isJust(slot.get($42));\n })(Effect_Ref.read(childrenOutRef))();\n Control_Applicative.when(Effect.applicativeEffect)(isDuplicate)(Effect_Console.warn(\"Halogen: Duplicate slot address was detected during rendering, unexpected results may occur\"))();\n Effect_Ref.modify_(slot.set($$var))(childrenOutRef)();\n return Control_Bind.bind(Effect.bindEffect)(Effect_Ref.read($$var))(Halogen_Aff_Driver_State.renderStateX(Effect.functorEffect)(function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Effect_Exception[\"throw\"](\"Halogen internal error: child was not initialized in renderChild\");\n };\n if (v instanceof Data_Maybe.Just) {\n return Control_Applicative.pure(Effect.applicativeEffect)(renderSpec.renderChild(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver (line 254, column 37 - line 256, column 50): \" + [ v.constructor.name ]);\n }))();\n };\n });\n };\n };\n };\n };\n var render = function (lchs) {\n return function ($$var) {\n return function __do() {\n var v = Effect_Ref.read($$var)();\n var shouldProcessHandlers = Data_Functor.map(Effect.functorEffect)(Data_Maybe.isNothing)(Effect_Ref.read(v.pendingHandlers))();\n Control_Applicative.when(Effect.applicativeEffect)(shouldProcessHandlers)(Effect_Ref.write(new Data_Maybe.Just(Data_List_Types.Nil.value))(v.pendingHandlers))();\n Effect_Ref.write(Halogen_Data_Slot.empty)(v.childrenOut)();\n Effect_Ref.write(v.children)(v.childrenIn)();\n var selfRef = Control_Category.identity(Control_Category.categoryFn)(v.selfRef);\n var pendingQueries = Control_Category.identity(Control_Category.categoryFn)(v.pendingQueries);\n var pendingHandlers = Control_Category.identity(Control_Category.categoryFn)(v.pendingHandlers);\n var handler = (function () {\n var $43 = Halogen_Aff_Driver_Eval.queueOrRun(pendingHandlers);\n var $44 = Data_Functor[\"void\"](Effect_Aff.functorAff);\n var $45 = Halogen_Aff_Driver_Eval.evalF(render)(selfRef);\n return function ($46) {\n return $43($44($45($46)));\n };\n })();\n var childHandler = (function () {\n var $47 = Halogen_Aff_Driver_Eval.queueOrRun(pendingQueries);\n return function ($48) {\n return $47(handler(Halogen_Query_Input.Action.create($48)));\n };\n })();\n var rendering = renderSpec.render(function ($49) {\n return handleAff(handler($49));\n })(renderChild(lchs)(childHandler)(v.childrenIn)(v.childrenOut))(v.component.render(v.state))(v.rendering)();\n var children = Effect_Ref.read(v.childrenOut)();\n var childrenIn = Effect_Ref.read(v.childrenIn)();\n Halogen_Data_Slot.foreachSlot(Effect.applicativeEffect)(childrenIn)(function (v1) {\n return function __do() {\n var childDS = Effect_Ref.read(v1)();\n Halogen_Aff_Driver_State.renderStateX_(Effect.applicativeEffect)(renderSpec.removeChild)(childDS)();\n return finalize(lchs)(childDS)();\n };\n })();\n Data_Function.flip(Effect_Ref.modify_)(v.selfRef)(Halogen_Aff_Driver_State.mapDriverState(function (ds$prime) {\n return {\n component: ds$prime.component,\n state: ds$prime.state,\n refs: ds$prime.refs,\n children: children,\n childrenIn: ds$prime.childrenIn,\n childrenOut: ds$prime.childrenOut,\n selfRef: ds$prime.selfRef,\n handlerRef: ds$prime.handlerRef,\n pendingQueries: ds$prime.pendingQueries,\n pendingOuts: ds$prime.pendingOuts,\n pendingHandlers: ds$prime.pendingHandlers,\n rendering: new Data_Maybe.Just(rendering),\n fresh: ds$prime.fresh,\n subscriptions: ds$prime.subscriptions,\n forks: ds$prime.forks,\n lifecycleHandlers: ds$prime.lifecycleHandlers\n };\n }))();\n return Control_Applicative.when(Effect.applicativeEffect)(shouldProcessHandlers)(Data_Function.flip(Control_Monad_Rec_Class.tailRecM(Control_Monad_Rec_Class.monadRecEffect))(Data_Unit.unit)(function (v1) {\n return function __do() {\n var handlers = Effect_Ref.read(pendingHandlers)();\n Effect_Ref.write(new Data_Maybe.Just(Data_List_Types.Nil.value))(pendingHandlers)();\n Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)((function () {\n var $50 = Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff));\n return function ($51) {\n return handleAff($50(Data_List.reverse($51)));\n };\n })())(handlers)();\n var mmore = Effect_Ref.read(pendingHandlers)();\n var $24 = Data_Maybe.maybe(false)(Data_List[\"null\"])(mmore);\n if ($24) {\n return Data_Functor.voidLeft(Effect.functorEffect)(Effect_Ref.write(Data_Maybe.Nothing.value)(pendingHandlers))(new Control_Monad_Rec_Class.Done(Data_Unit.unit))();\n };\n return new Control_Monad_Rec_Class.Loop(Data_Unit.unit);\n };\n }))();\n };\n };\n };\n var finalize = function (lchs) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return function __do() {\n cleanupSubscriptionsAndForks(st)();\n var f = Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Finalize(Data_Unit.unit)));\n Effect_Ref.modify_(function (handlers) {\n return {\n initializers: handlers.initializers,\n finalizers: new Data_List_Types.Cons(f, handlers.finalizers)\n };\n })(lchs)();\n return Halogen_Data_Slot.foreachSlot(Effect.applicativeEffect)(st.children)(function (v) {\n return function __do() {\n var dsx = Effect_Ref.read(v)();\n return finalize(lchs)(dsx)();\n };\n })();\n };\n });\n };\n var evalDriver = function (disposed) {\n return function (ref) {\n return function (q) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(disposed)))(function (v) {\n if (v) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Maybe.Nothing.value);\n };\n return Halogen_Aff_Driver_Eval.evalQ(render)(ref)(q);\n });\n };\n };\n };\n var dispose = function (disposed) {\n return function (lchs) {\n return function (dsx) {\n return function (subsRef) {\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 Control_Bind.bindFlipped(Effect.bindEffect)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Map_Internal.foldableMap)((function () {\n var $52 = Effect_Aff_AVar.kill(Effect_Exception.error(\"disposed\"));\n return function ($53) {\n return Effect_Aff.launchAff_($52($53));\n };\n })()))(Effect_Ref.read(subsRef))();\n finalize(lchs)(dsx)();\n return Halogen_Aff_Driver_State.unDriverStateX((function () {\n var $54 = Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(renderSpec.dispose);\n return function ($55) {\n return $54((function (v1) {\n return v1.rendering;\n })($55));\n };\n })())(dsx)();\n });\n };\n };\n };\n };\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(newLifecycleHandlers))(function (lchs) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"new\"](0)))(function (fresh) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"new\"](false)))(function (disposed) {\n return Halogen_Aff_Driver_Eval.handleLifecycle(lchs)(function __do() {\n var listeners = Effect_Ref[\"new\"](Data_Map_Internal.empty)();\n var dsx = Control_Bind.bindFlipped(Effect.bindEffect)(Effect_Ref.read)(runComponent(lchs)(rootHandler(listeners))(i)(component))();\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return Control_Applicative.pure(Effect.applicativeEffect)({\n query: evalDriver(disposed)(st.selfRef),\n subscribe: subscribe(fresh)(listeners),\n dispose: dispose(disposed)(lchs)(dsx)(listeners)\n });\n })(dsx)();\n });\n });\n });\n });\n };\n };\n };\n exports[\"runUI\"] = runUI;\n})(PS);\n(function(exports) {\n \"use strict\"; \n\n exports._querySelector = function (selector) {\n return function (node) {\n return function () {\n return node.querySelector(selector);\n };\n };\n };\n})(PS[\"Web.DOM.ParentNode\"] = PS[\"Web.DOM.ParentNode\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.DOM.ParentNode\"] = $PS[\"Web.DOM.ParentNode\"] || {};\n var exports = $PS[\"Web.DOM.ParentNode\"];\n var $foreign = $PS[\"Web.DOM.ParentNode\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Effect = $PS[\"Effect\"];\n var querySelector = function (qs) {\n var $3 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $4 = $foreign[\"_querySelector\"](qs);\n return function ($5) {\n return $3($4($5));\n };\n };\n exports[\"querySelector\"] = querySelector;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.HTML.HTMLDocument\"] = $PS[\"Web.HTML.HTMLDocument\"] || {};\n var exports = $PS[\"Web.HTML.HTMLDocument\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var toParentNode = Unsafe_Coerce.unsafeCoerce; \n var toDocument = Unsafe_Coerce.unsafeCoerce;\n exports[\"toDocument\"] = toDocument;\n exports[\"toParentNode\"] = toParentNode;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Aff.Util\"] = $PS[\"Halogen.Aff.Util\"] || {};\n var exports = $PS[\"Halogen.Aff.Util\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Web_DOM_ParentNode = $PS[\"Web.DOM.ParentNode\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_HTMLDocument = $PS[\"Web.HTML.HTMLDocument\"];\n var Web_HTML_HTMLElement = $PS[\"Web.HTML.HTMLElement\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"]; \n var selectElement = function (query) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Control_Bind.bindFlipped(Effect.bindEffect)(Control_Bind.composeKleisliFlipped(Effect.bindEffect)((function () {\n var $2 = Web_DOM_ParentNode.querySelector(query);\n return function ($3) {\n return $2(Web_HTML_HTMLDocument.toParentNode($3));\n };\n })())(Web_HTML_Window.document))(Web_HTML.window)))(function (mel) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_HTML_HTMLElement.fromElement)(mel));\n });\n };\n var runHalogenAff = Effect_Aff.runAff_(Data_Either.either(Effect_Exception.throwException)(Data_Function[\"const\"](Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit))));\n exports[\"selectElement\"] = selectElement;\n exports[\"runHalogenAff\"] = runHalogenAff;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.setAttribute = function (name) {\n return function (value) {\n return function (element) {\n return function () {\n element.setAttribute(name, value);\n return {};\n };\n };\n };\n };\n})(PS[\"Web.DOM.Element\"] = PS[\"Web.DOM.Element\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.DOM.Element\"] = $PS[\"Web.DOM.Element\"] || {};\n var exports = $PS[\"Web.DOM.Element\"];\n var $foreign = $PS[\"Web.DOM.Element\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var toNode = Unsafe_Coerce.unsafeCoerce;\n exports[\"toNode\"] = toNode;\n exports[\"setAttribute\"] = $foreign.setAttribute;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.VDom.DOM\"] = $PS[\"Halogen.VDom.DOM\"] || {};\n var exports = $PS[\"Halogen.VDom.DOM\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Types = $PS[\"Halogen.VDom.Types\"];\n var Halogen_VDom_Util = $PS[\"Halogen.VDom.Util\"];\n var Web_DOM_Element = $PS[\"Web.DOM.Element\"];\n var haltWidget = function (v) {\n return Halogen_VDom_Machine.halt(v.widget);\n };\n var patchWidget = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchWidget(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Widget) {\n var res = Halogen_VDom_Machine.step(state.widget, vdom.value0);\n var res$prime = Halogen_VDom_Machine.unStep(function (v) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(v.value0, {\n build: state.build,\n widget: res\n }, patchWidget, haltWidget));\n })(res);\n return res$prime;\n };\n haltWidget(state);\n return state.build(vdom);\n };\n var haltText = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n return Halogen_VDom_Util.removeChild(v.node, parent);\n };\n var patchText = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchText(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Text) {\n if (state.value === vdom.value0) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, state, patchText, haltText));\n };\n if (Data_Boolean.otherwise) {\n var nextState = {\n build: state.build,\n node: state.node,\n value: vdom.value0\n };\n Halogen_VDom_Util.setTextContent(vdom.value0, state.node);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchText, haltText));\n };\n };\n haltText(state);\n return state.build(vdom);\n };\n var haltKeyed = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n Halogen_VDom_Util.removeChild(v.node, parent);\n Halogen_VDom_Util.forInE(v.children, function (v1, s) {\n return Halogen_VDom_Machine.halt(s);\n });\n return Halogen_VDom_Machine.halt(v.attrs);\n };\n var haltElem = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n Halogen_VDom_Util.removeChild(v.node, parent);\n Halogen_VDom_Util.forEachE(v.children, Halogen_VDom_Machine.halt);\n return Halogen_VDom_Machine.halt(v.attrs);\n };\n var eqElemSpec = function (ns1, v, ns2, v1) {\n var $56 = v === v1;\n if ($56) {\n if (ns1 instanceof Data_Maybe.Just && (ns2 instanceof Data_Maybe.Just && ns1.value0 === ns2.value0)) {\n return true;\n };\n if (ns1 instanceof Data_Maybe.Nothing && ns2 instanceof Data_Maybe.Nothing) {\n return true;\n };\n return false;\n };\n return false;\n };\n var patchElem = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchElem(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Elem && eqElemSpec(state.ns, state.name, vdom.value0, vdom.value1)) {\n var v = Data_Array.length(vdom.value3);\n var v1 = Data_Array.length(state.children);\n if (v1 === 0 && v === 0) {\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: state.children\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchElem, haltElem));\n };\n var onThis = function (ix, s) {\n return Halogen_VDom_Machine.halt(s);\n };\n var onThese = function (ix, s, v2) {\n var res = Halogen_VDom_Machine.step(s, v2);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var onThat = function (ix, v2) {\n var res = state.build(v2);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var children2 = Halogen_VDom_Util.diffWithIxE(state.children, vdom.value3, onThese, onThis, onThat);\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: children2\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchElem, haltElem));\n };\n haltElem(state);\n return state.build(vdom);\n };\n var patchKeyed = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchKeyed(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Keyed && eqElemSpec(state.ns, state.name, vdom.value0, vdom.value1)) {\n var v = Data_Array.length(vdom.value3);\n if (state.length === 0 && v === 0) {\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: state.children,\n length: 0\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchKeyed, haltKeyed));\n };\n var onThis = function (v2, s) {\n return Halogen_VDom_Machine.halt(s);\n };\n var onThese = function (v2, ix$prime, s, v3) {\n var res = Halogen_VDom_Machine.step(s, v3.value1);\n Halogen_VDom_Util.insertChildIx(ix$prime, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var onThat = function (v2, ix, v3) {\n var res = state.build(v3.value1);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var children2 = Halogen_VDom_Util.diffWithKeyAndIxE(state.children, vdom.value3, Data_Tuple.fst, onThese, onThis, onThat);\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: children2,\n length: v\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchKeyed, haltKeyed));\n };\n haltKeyed(state);\n return state.build(vdom);\n };\n var buildWidget = function (v, build, w) {\n var res = v.buildWidget(v)(w);\n var res$prime = Halogen_VDom_Machine.unStep(function (v1) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(v1.value0, {\n build: build,\n widget: res\n }, patchWidget, haltWidget));\n })(res);\n return res$prime;\n };\n var buildText = function (v, build, s) {\n var node = Halogen_VDom_Util.createTextNode(s, v.document);\n var state = {\n build: build,\n node: node,\n value: s\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchText, haltText));\n };\n var buildKeyed = function (v, build, ns1, name1, as1, ch1) {\n var el = Halogen_VDom_Util.createElement(Data_Nullable.toNullable(ns1), name1, v.document);\n var node = Web_DOM_Element.toNode(el);\n var onChild = function (k, ix, v1) {\n var res = build(v1.value1);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), node);\n return res;\n };\n var children = Halogen_VDom_Util.strMapWithIxE(ch1, Data_Tuple.fst, onChild);\n var attrs = v.buildAttributes(el)(as1);\n var state = {\n build: build,\n node: node,\n attrs: attrs,\n ns: ns1,\n name: name1,\n children: children,\n length: Data_Array.length(ch1)\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchKeyed, haltKeyed));\n };\n var buildElem = function (v, build, ns1, name1, as1, ch1) {\n var el = Halogen_VDom_Util.createElement(Data_Nullable.toNullable(ns1), name1, v.document);\n var node = Web_DOM_Element.toNode(el);\n var onChild = function (ix, child) {\n var res = build(child);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), node);\n return res;\n };\n var children = Halogen_VDom_Util.forE(ch1, onChild);\n var attrs = v.buildAttributes(el)(as1);\n var state = {\n build: build,\n node: node,\n attrs: attrs,\n ns: ns1,\n name: name1,\n children: children\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchElem, haltElem));\n };\n var buildVDom = function (spec) {\n var build = function (v) {\n if (v instanceof Halogen_VDom_Types.Text) {\n return buildText(spec, build, v.value0);\n };\n if (v instanceof Halogen_VDom_Types.Elem) {\n return buildElem(spec, build, v.value0, v.value1, v.value2, v.value3);\n };\n if (v instanceof Halogen_VDom_Types.Keyed) {\n return buildKeyed(spec, build, v.value0, v.value1, v.value2, v.value3);\n };\n if (v instanceof Halogen_VDom_Types.Widget) {\n return buildWidget(spec, build, v.value0);\n };\n if (v instanceof Halogen_VDom_Types.Grafted) {\n return build(Halogen_VDom_Types.runGraft(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM (line 58, column 27 - line 63, column 52): \" + [ v.constructor.name ]);\n };\n return build;\n };\n exports[\"buildVDom\"] = buildVDom;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.VDom.Thunk\"] = $PS[\"Halogen.VDom.Thunk\"] || {};\n var exports = $PS[\"Halogen.VDom.Thunk\"];\n var Halogen_VDom_DOM = $PS[\"Halogen.VDom.DOM\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Util = $PS[\"Halogen.VDom.Util\"]; \n var Thunk = (function () {\n function Thunk(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Thunk.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Thunk(value0, value1, value2, value3);\n };\n };\n };\n };\n return Thunk;\n })(); \n var unsafeEqThunk = function (v, v1) {\n return Halogen_VDom_Util.refEq(v.value0, v1.value0) && (Halogen_VDom_Util.refEq(v.value1, v1.value1) && Halogen_VDom_Util.refEq(v.value3, v1.value3));\n };\n var thunk = function (tid, eqFn, f, a) {\n return new Thunk(tid, eqFn, f, a);\n };\n var runThunk = function (v) {\n return v.value2(v.value3);\n };\n var buildThunk = function (toVDom) {\n var haltThunk = function (state) {\n return Halogen_VDom_Machine.halt(state.vdom);\n };\n var patchThunk = function (state, t2) {\n var $43 = unsafeEqThunk(state.thunk, t2);\n if ($43) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(state.vdom), state, patchThunk, haltThunk));\n };\n var vdom = Halogen_VDom_Machine.step(state.vdom, toVDom(runThunk(t2)));\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(vdom), {\n vdom: vdom,\n thunk: t2\n }, patchThunk, haltThunk));\n };\n var renderThunk = function (spec) {\n return function (t) {\n var vdom = Halogen_VDom_DOM.buildVDom(spec)(toVDom(runThunk(t)));\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(vdom), {\n thunk: t,\n vdom: vdom\n }, patchThunk, haltThunk));\n };\n };\n return renderThunk;\n };\n exports[\"buildThunk\"] = buildThunk;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n var getEffProp = function (name) {\n return function (node) {\n return function () {\n return node[name];\n };\n };\n }; \n\n exports._parentNode = getEffProp(\"parentNode\"); \n\n exports._nextSibling = getEffProp(\"nextSibling\");\n\n exports.insertBefore = function (node1) {\n return function (node2) {\n return function (parent) {\n return function () {\n return parent.insertBefore(node1, node2);\n };\n };\n };\n };\n\n exports.appendChild = function (node) {\n return function (parent) {\n return function () {\n return parent.appendChild(node);\n };\n };\n };\n\n exports.removeChild = function (node) {\n return function (parent) {\n return function () {\n return parent.removeChild(node);\n };\n };\n };\n})(PS[\"Web.DOM.Node\"] = PS[\"Web.DOM.Node\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.DOM.Node\"] = $PS[\"Web.DOM.Node\"] || {};\n var exports = $PS[\"Web.DOM.Node\"];\n var $foreign = $PS[\"Web.DOM.Node\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Effect = $PS[\"Effect\"];\n var parentNode = (function () {\n var $3 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($4) {\n return $3($foreign[\"_parentNode\"]($4));\n };\n })();\n var nextSibling = (function () {\n var $14 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($15) {\n return $14($foreign[\"_nextSibling\"]($15));\n };\n })();\n exports[\"parentNode\"] = parentNode;\n exports[\"nextSibling\"] = nextSibling;\n exports[\"insertBefore\"] = $foreign.insertBefore;\n exports[\"appendChild\"] = $foreign.appendChild;\n exports[\"removeChild\"] = $foreign.removeChild;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.VDom.Driver\"] = $PS[\"Halogen.VDom.Driver\"] || {};\n var exports = $PS[\"Halogen.VDom.Driver\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_HeytingAlgebra = $PS[\"Data.HeytingAlgebra\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Aff_Driver = $PS[\"Halogen.Aff.Driver\"];\n var Halogen_Aff_Driver_State = $PS[\"Halogen.Aff.Driver.State\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_VDom_DOM = $PS[\"Halogen.VDom.DOM\"];\n var Halogen_VDom_DOM_Prop = $PS[\"Halogen.VDom.DOM.Prop\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Thunk = $PS[\"Halogen.VDom.Thunk\"];\n var Unsafe_Reference = $PS[\"Unsafe.Reference\"];\n var Web_DOM_Node = $PS[\"Web.DOM.Node\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_HTMLDocument = $PS[\"Web.HTML.HTMLDocument\"];\n var Web_HTML_HTMLElement = $PS[\"Web.HTML.HTMLElement\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"];\n var substInParent = function (v) {\n return function (v1) {\n return function (v2) {\n if (v1 instanceof Data_Maybe.Just && v2 instanceof Data_Maybe.Just) {\n return Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.insertBefore(v)(v1.value0)(v2.value0));\n };\n if (v1 instanceof Data_Maybe.Nothing && v2 instanceof Data_Maybe.Just) {\n return Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.appendChild(v)(v2.value0));\n };\n return Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit);\n };\n };\n };\n var removeChild = function (v) {\n return function __do() {\n var npn = Web_DOM_Node.parentNode(v.node)();\n return Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(function (pn) {\n return Web_DOM_Node.removeChild(v.node)(pn);\n })(npn)();\n };\n };\n var mkSpec = function (handler) {\n return function (renderChildRef) {\n return function (document) {\n var getNode = Halogen_Aff_Driver_State.unRenderStateX(function (v) {\n return v.node;\n });\n var done = function (st) {\n if (st instanceof Data_Maybe.Just) {\n return Halogen_VDom_Machine.halt(st.value0);\n };\n return Data_Unit.unit;\n };\n var buildWidget = function (spec) {\n var buildThunk = Halogen_VDom_Thunk.buildThunk(Data_Newtype.unwrap(Halogen_HTML_Core.newtypeHTML))(spec);\n var renderComponentSlot = function (cs) {\n var renderChild = Effect_Ref.read(renderChildRef)();\n var rsx = renderChild(cs)();\n var node = getNode(rsx);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, Data_Maybe.Nothing.value, patch, done));\n };\n var render = function (slot) {\n if (slot instanceof Halogen_Component.ComponentSlot) {\n return renderComponentSlot(slot.value0);\n };\n if (slot instanceof Halogen_Component.ThunkSlot) {\n var step = buildThunk(slot.value0);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(step), new Data_Maybe.Just(step), patch, done));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 85, column 7 - line 90, column 75): \" + [ slot.constructor.name ]);\n };\n var patch = function (st, slot) {\n if (st instanceof Data_Maybe.Just) {\n if (slot instanceof Halogen_Component.ComponentSlot) {\n Halogen_VDom_Machine.halt(st.value0);\n return renderComponentSlot(slot.value0);\n };\n if (slot instanceof Halogen_Component.ThunkSlot) {\n var step$prime = Halogen_VDom_Machine.step(st.value0, slot.value0);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(step$prime), new Data_Maybe.Just(step$prime), patch, done));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 98, column 22 - line 104, column 79): \" + [ slot.constructor.name ]);\n };\n return render(slot);\n };\n return render;\n };\n var buildAttributes = Halogen_VDom_DOM_Prop.buildProp(handler);\n return {\n buildWidget: buildWidget,\n buildAttributes: buildAttributes,\n document: document\n };\n };\n };\n };\n var renderSpec = function (document) {\n return function (container) {\n var render = function (handler) {\n return function (child) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return function __do() {\n var renderChildRef = Effect_Ref[\"new\"](child)();\n var spec = mkSpec(handler)(renderChildRef)(document);\n var machine = Halogen_VDom_DOM.buildVDom(spec)(v);\n var node = Halogen_VDom_Machine.extract(machine);\n Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.appendChild(node)(Web_HTML_HTMLElement.toNode(container)))();\n return {\n machine: machine,\n node: node,\n renderChildRef: renderChildRef\n };\n };\n };\n if (v1 instanceof Data_Maybe.Just) {\n return function __do() {\n Effect_Ref.write(child)(v1.value0.renderChildRef)();\n var parent = Web_DOM_Node.parentNode(v1.value0.node)();\n var nextSib = Web_DOM_Node.nextSibling(v1.value0.node)();\n var machine$prime = Halogen_VDom_Machine.step(v1.value0.machine, v);\n var newNode = Halogen_VDom_Machine.extract(machine$prime);\n Control_Applicative.when(Effect.applicativeEffect)(Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraBoolean)))(Unsafe_Reference.unsafeRefEq)(v1.value0.node)(newNode))(substInParent(newNode)(nextSib)(parent))();\n return {\n machine: machine$prime,\n node: newNode,\n renderChildRef: v1.value0.renderChildRef\n };\n };\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 159, column 5 - line 175, column 80): \" + [ v1.constructor.name ]);\n };\n };\n };\n };\n return {\n render: render,\n renderChild: Control_Category.identity(Control_Category.categoryFn),\n removeChild: removeChild,\n dispose: removeChild\n };\n };\n };\n var runUI = function (component) {\n return function (i) {\n return function (element) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Data_Functor.map(Effect.functorEffect)(Web_HTML_HTMLDocument.toDocument)(Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Window.document)(Web_HTML.window))))(function (document) {\n return Halogen_Aff_Driver.runUI(renderSpec(document)(element))(component)(i);\n });\n };\n };\n };\n exports[\"runUI\"] = runUI;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._mainImpl = function() {\n return window.PS = PS;\n }\n})(PS[\"Main\"] = PS[\"Main\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Main\"] = $PS[\"Main\"] || {};\n var exports = $PS[\"Main\"];\n var $foreign = $PS[\"Main\"];\n var App = $PS[\"App\"];\n var Component_AccountSettings = $PS[\"Component.AccountSettings\"];\n var Component_Add = $PS[\"Component.Add\"];\n var Component_BList = $PS[\"Component.BList\"];\n var Component_NList = $PS[\"Component.NList\"];\n var Component_NNote = $PS[\"Component.NNote\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Halogen_Aff_Util = $PS[\"Halogen.Aff.Util\"];\n var Halogen_VDom_Driver = $PS[\"Halogen.VDom.Driver\"];\n var Web_DOM_Element = $PS[\"Web.DOM.Element\"];\n var Web_Event_Event = $PS[\"Web.Event.Event\"];\n var Web_HTML_HTMLElement = $PS[\"Web.HTML.HTMLElement\"]; \n var viewRendered = Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(\"#content\"))(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(function (el) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Web_DOM_Element.setAttribute(\"view-rendered\")(\"\")(Web_HTML_HTMLElement.toElement(el)));\n }));\n var renderNotes = function (renderElSelector) {\n return function (notes) {\n return Halogen_Aff_Util.runHalogenAff(Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(renderElSelector))(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(function (el) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor[\"void\"](Effect_Aff.functorAff)(Halogen_VDom_Driver.runUI(Component_NList.nlist(notes))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n };\n var renderNote = function (renderElSelector) {\n return function (note) {\n return Halogen_Aff_Util.runHalogenAff(Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(renderElSelector))(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(function (el) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor[\"void\"](Effect_Aff.functorAff)(Halogen_VDom_Driver.runUI(Component_NNote.nnote(note))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n };\n var renderBookmarks = function (renderElSelector) {\n return function (bmarks) {\n return Halogen_Aff_Util.runHalogenAff(Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(renderElSelector))(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(function (el) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor[\"void\"](Effect_Aff.functorAff)(Halogen_VDom_Driver.runUI(Component_BList.blist(bmarks))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n };\n var renderAddForm = function (renderElSelector) {\n return function (bmark) {\n return Halogen_Aff_Util.runHalogenAff(Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(renderElSelector))(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(function (el) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor[\"void\"](Effect_Aff.functorAff)(Halogen_VDom_Driver.runUI(Component_Add.addbmark(bmark))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n };\n var renderAccountSettings = function (renderElSelector) {\n return function (accountSettings) {\n return Halogen_Aff_Util.runHalogenAff(Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(renderElSelector))(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(function (el) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor[\"void\"](Effect_Aff.functorAff)(Halogen_VDom_Driver.runUI(Component_AccountSettings.usetting(accountSettings))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n };\n var main = $foreign[\"_mainImpl\"];\n var logoutE = function (e) {\n return Control_Bind.bindFlipped(Effect.bindEffect)((function () {\n var $0 = Data_Functor[\"void\"](Effect.functorEffect);\n return function ($1) {\n return $0(Effect_Aff.launchAff(App.logout($1)));\n };\n })())(Web_Event_Event.preventDefault(e));\n };\n exports[\"main\"] = main;\n exports[\"logoutE\"] = logoutE;\n exports[\"renderBookmarks\"] = renderBookmarks;\n exports[\"renderAddForm\"] = renderAddForm;\n exports[\"renderNotes\"] = renderNotes;\n exports[\"renderNote\"] = renderNote;\n exports[\"renderAccountSettings\"] = renderAccountSettings;\n exports[\"viewRendered\"] = viewRendered;\n exports[\"_mainImpl\"] = $foreign[\"_mainImpl\"];\n})(PS);\nPS[\"Main\"].main();"]} \ No newline at end of file +{"version":3,"sources":["../node_modules/moment/moment.js","../node_modules/marked/lib/marked.js","../node_modules/process/browser.js","bundle.js"],"names":["root","block","newline","code","fences","hr","heading","blockquote","list","html","def","nptable","noop","table","lheading","_paragraph","text","Lexer","options","tokens","links","Object","create","marked","defaults","rules","normal","pedantic","gfm","_label","_title","edit","replace","getRegex","bullet","item","source","_tag","_comment","paragraph","merge","lex","src","lexer","prototype","token","top","next","loose","cap","bull","b","listStart","listItems","t","space","i","tag","l","isordered","istask","ischecked","exec","substring","length","push","type","lastToken","trimRight","codeBlockStyle","rtrim","lang","trim","depth","header","splitCells","align","split","cells","test","ordered","start","match","indexOf","RegExp","smartLists","slice","join","charAt","undefined","task","checked","sanitize","pre","sanitizer","escape","toLowerCase","href","title","Error","charCodeAt","inline","autolink","url","link","reflink","nolink","strong","em","br","del","InlineLexer","renderer","Renderer","breaks","TextRenderer","Parser","slugger","Slugger","seen","encode","escapeTest","escapeReplace","ch","replacements","escapeTestNoEncode","escapeReplaceNoEncode","unescape","_","n","String","fromCharCode","parseInt","regex","opt","name","val","cleanUrl","base","prot","decodeURIComponent","e","originIndependentUrl","resolveUrl","baseUrls","encodeURI","_punctuation","_escapes","_scheme","_email","_attribute","_href","_extended_email","_backpedal","output","out","prevCapZero","inLink","inRawBlock","lastParenIndex","findClosingBracket","linkLen","outputLink","escapes","codespan","mangle","smartypants","image","Math","random","toString","infostring","escaped","highlight","langPrefix","quote","level","raw","headerIds","headerPrefix","slug","xhtml","body","listitem","checkbox","tablerow","content","tablecell","flags","baseUrl","parse","parser","inlineText","reverse","tok","pop","peek","parseText","row","cell","j","errMsg","silent","console","log","value","hasOwnProperty","originalSlug","obj","target","key","arguments","call","tableRow","count","offset","str","curr","splice","c","invert","suffLen","currChar","substr","checkSanitizeDeprecation","warn","callback","pending","done","err","message","setOptions","getDefaults","inlineLexer","module","exports","define","amd","window","global","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","runClearTimeout","marker","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","Item","array","nextTick","args","Array","apply","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","PS","platformSpecific","_ajax","require","newXHR","XMLHttpRequest","fixupUrl","getResponse","xhr","response","nodejsBaseUrl","urllib","u","protocol","hostname","format","mkHeader","errback","fixedUrl","open","method","username","password","headers","setRequestHeader","field","onerror","msg","ontimeout","onload","status","statusText","getAllResponseHeaders","filter","map","responseType","withCredentials","send","error","cancelErrback","cancelCallback","abort","arrayApply","fs","xs","k","result","f","$PS","semigroupoidFn","compose","g","x","dict","Control_Semigroupoid","categoryFn","Semigroupoid0","identity","a","v","y","arrayMap","arr","unit","$foreign","Data_Function","Data_Unit","Functor","functorFn","functorArray","dictFunctor","fa","Control_Category","Data_Functor","Apply","Functor0","applyArray","dictApply","Control_Apply","pure","Apply0","dictApplicative","v1","constructor","arrayBind","Bind","bind","bindArray","bindFlipped","dictBind","flip","discardUnit","discard","m","refEq","r1","r2","eqBooleanImpl","eqIntImpl","eqCharImpl","eqStringImpl","eqArrayImpl","ys","Eq","eq","eqUnit","eqString","eqInt","eqChar","eqBoolean","dictEq","Control_Applicative","Control_Bind","Data_Eq","Nothing","Just","value0","maybe","v2","isNothing","isJust","functorMaybe","applyMaybe","bindMaybe","applicativeMaybe","Applicative","dictPartial","Data_Maybe","Data_MediaType_Common","ArrayView","Blob","Document","$$String","FormData","FormURLEncoded","Json","string","applicationFormURLEncoded","applicationJSON","boolConj","b1","b2","boolDisj","boolNot","HeytingAlgebra","conj","disj","ff","implies","not","tt","heytingAlgebraBoolean","dictHeytingAlgebra","concatString","s1","s2","concatArray","Semigroup","append","semigroupString","semigroupArray","Data_Semigroup","Monoid","Semigroup0","mempty","monoidString","monoidArray","dictMonoid","Data_HeytingAlgebra","Data_Monoid","semigroupDisj","Data_Monoid_Disj","Newtype","unwrap","wrap","newtypeDisj","Disj","dictFunctor1","dictNewtype","dictNewtype1","$96","$97","$98","newtypeMediaType","Data_MediaType","Data_Newtype","Accept","ContentType","RequestHeader","value1","$$ArrayBuffer","Ignore","json","ignore","ResponseHeader","bimap","dictBifunctor","foldrArray","init","acc","foldlArray","unsafeCompareImpl","lt","gt","ordIntImpl","ordStringImpl","ordCharImpl","LT","GT","EQ","eqOrdering","Data_Ordering","Ord","Eq0","compare","ordUnit","ordString","ordInt","ordChar","dictOrd","Data_Ord","Foldable","foldMap","foldl","foldr","traverse_","dictFoldable","$197","applySecond","$198","foldableMaybe","z","foldableArray","foldMapDefaultR","sep","alaF","monoidDisj","p","maximumBy","cmp","minimumBy","Data_Bifunctor","Data_Foldable","Left","Right","functorEither","foldableEither","either","hush","bifunctorEither","Bifunctor","applyEither","bindEither","applicativeEither","Data_Either","throwError","Monad0","MonadThrow0","catchError","dictMonadError","Bind1","$17","Applicative0","$18","dictMonad","f$prime","a$prime","mb","when","unless","Control_Monad","Control_Monad_Error_Class","ExceptT","mapExceptT","functorExceptT","monadExceptT","Monad","applicativeExceptT","bindExceptT","applyExceptT","$90","$91","ap","$92","$93","MonadThrow","$102","$103","Identity","newtypeIdentity","functorIdentity","applyIdentity","bindIdentity","applicativeIdentity","monadIdentity","$0","Control_Monad_Except_Trans","Data_Identity","runExcept","$1","runExceptT","$2","$3","fromObject","id","stringify","JSON","_caseJson","isNull","isBool","isNum","isStr","isArr","isObj","_copyST","r","empty","runST","_fmapObject","m0","_mapWithKey","_foldM","mz","_lookup","no","yes","toArrayWithKey","cons","snoc","l1","sortImpl","sort","drop","unsafeIndexImpl","Tuple","functorTuple","dictOrd1","eqTuple","dictEq1","unfoldrArrayImpl","fromJust","fst","snd","tuple","unfoldr1ArrayImpl","Data_Tuple","unfoldable1Array","unfoldr1","Data_Unfoldable1","unfoldableArray","Unfoldable10","unfoldr","Data_Boolean","Data_Unfoldable","singleton","concatMap","dictUnfoldable","unsafeIndex","otherwise","$94","$95","comp","Foldable0","foldMapWithIndex","foldlWithIndex","foldrWithIndex","runFn4","fn","d","mapWithIndex","traverseArrayImpl","array1","array2","array3","concat2","go","bot","pivot","floor","Traversable","Foldable1","sequence","traverse","traversableArray","sequenceDefault","dictTraversable","FoldableWithIndex1","FunctorWithIndex0","Traversable2","traverseWithIndex","poke","Data_Array","Data_FoldableWithIndex","Data_Function_Uncurried","Data_FunctorWithIndex","Data_Traversable","Data_TraversableWithIndex","Foreign_Object_ST","values","thawST","lookup","insert","mutate","s","functorObject","functorWithIndexObject","FunctorWithIndex","fold","applyFlipped","foldableObject","foldableWithIndexObject","FoldableWithIndex","uncurry","traversableWithIndexObject","TraversableWithIndex","traversableObject","ms","$43","$44","$36","toUnfoldable","$37","$38","Foreign_Object","toJsonType","jsonEmptyObject","toObject","_jsonParser","fail","succ","replaceAll","s3","toLower","joinWith","encdecURI","encdec","_encodeURIComponent","encodeURIComponent","$19","$20","Data_String_Common","Global","$21","showIntImpl","showNumberImpl","isNaN","Show","show","showNumber","showInt","Data_Show","OPTIONS","GET","HEAD","POST","PUT","DELETE","TRACE","CONNECT","PROPFIND","PROPPATCH","MKCOL","COPY","MOVE","LOCK","UNLOCK","PATCH","showMethod","print","alt","Alt0","Control_Alt","Control_Plus","Nil","Cons","functorList","chunkedRevMap","$copy_chunksAcc","$copy_v","$tco_var_chunksAcc","$tco_result","$tco_done","$tco_loop","chunksAcc","$copy_v1","$copy_acc","$tco_var_v1","unrolledMap","foldableList","$202","$203","$copy_b","$tco_var_b","rev","$204","$205","semigroupList","applyList","applicativeList","altList","Alt","plusList","Plus","NonEmpty","dictPlus","$168","Data_List_Types","Data_NonEmpty","$169","NonEmptyList","nullable","notNull","toNullable","Aff","EMPTY","PURE","THROW","CATCH","SYNC","ASYNC","BIND","BRACKET","FORK","SEQ","MAP","APPLY","ALT","CONS","RESUME","RELEASE","FINALIZER","FINALIZED","FORKED","_1","_2","_3","AffCtr","nonCanceler","runEff","eff","runSync","left","right","runAsync","Scheduler","limit","size","ix","drain","thunk","isDraining","enqueue","cb","tmp","SUSPENDED","CONTINUE","STEP_BIND","STEP_RESULT","PENDING","RETURN","COMPLETED","Fiber","util","supervisor","aff","runTick","step","interrupt","bhead","btail","attempts","bracketCount","joinId","joins","rethrow","localRunTick","attempt","isLeft","fromRight","register","sequential","fromLeft","killed","failed","completed","handler","onComplete","jid","kill","canceler","isSuspended","runPar","par","fiberId","fibers","killId","kills","early","kid","head","tail","loop","resolve","fiber","lhs","rhs","fid","killError","killCb","cancel","innerKills","newKills","Pure","Throw","Catch","Sync","Async","Bracket","Fork","Seq","ParMap","ParApply","ParAlt","Supervisor","isEmpty","killAll","killCount","_pure","_throwError","_catchError","_map","_bind","_fork","immediate","_liftEffect","_parAffMap","_parAffApply","aff1","aff2","makeAff","generalBracket","acquire","_makeFiber","_sequential","pureE","bindE","monadEffect","applicativeEffect","bindEffect","applyEffect","functorEffect","liftA1","semigroupEffect","dictSemigroup","lift2","new","read","ref","state","write","Effect","s$prime","modify","Effect_Ref","Loop","Done","MonadRec","tailRecM","monadRecEffect","fromDone","parallel","Applicative1","Control_Parallel_Class","dictParallel","parTraverse_","MonadEffect","liftEffect","monadEffectEffect","unsafePerformEffect","unsafePartial","crashWith","Partial","unsafeCoerce","$45","$53","$54","Control_Monad_Rec_Class","Control_Parallel","Effect_Class","Effect_Unsafe","Partial_Unsafe","Unsafe_Coerce","suspendAff","functorParAff","functorAff","forkAff","ffiUtil","unsafeCrashWith","makeFiber","launchAff","launchAff_","applyParAff","monadAff","applicativeAff","bindAff","applyAff","monadEffectAff","effectCanceler","$46","Canceler","joinFiber","functorFiber","monadThrowAff","monadErrorAff","MonadError","parallelAff","Parallel","applicativeParAff","$55","semigroupCanceler","parSequence_","monadRecAff","res","monoidCanceler","$49","$50","runAff","fin","bracket","Effect_Aff","$4","$5","k2","$6","$7","unsafeToForeign","unsafeFromForeign","typeOf","tagOf","fromNumberImpl","just","nothing","toNumber","fromNumber","$107","Control_Monad_Except","Data_Int","Data_List_NonEmpty","ForeignError","TypeMismatch","monadThrowExceptT","$108","unsafeReadTagged","readBoolean","readNumber","readString","$109","$110","mapExcept","Affjax_RequestBody","Affjax_RequestHeader","Affjax_ResponseFormat","Affjax_ResponseHeader","Data_Argonaut_Core","Data_Argonaut_Parser","Data_FormURLEncoded","Data_HTTP_Method","Data_Nullable","Effect_Aff_Compat","Foreign","RequestContentError","ResponseBodyError","XHRError","defaultRequest","responseFormat","req","parseJSON","fromResponse","composeKleisliFlipped","$48","$47","jsonParser","addHeader","mh","hs","any","mapFlipped","fromEffectFnAff","h","reqContent","toMediaType","toResponseType","note","extractContent","eqStatusCode","$56","DecodeJson","decodeJson","decodeJsonNumber","caseJsonNumber","decodeJsonInt","decodeJObject","$57","dictDecodeJson","$83","lmap","$84","$85","moment","_app","app","_mmoment8601","ISO_8601","fromNow","_closeWindow","close","_setFocus","elemId","document","getElementById","focus","win","SProxy","reflectSymbol","unsafeStringify","unsafeDecodeURIComponent","unsafeGet","label","rec","Data_Symbol","Record_Unsafe","dictIsSymbol","dictCons","copyRecord","copy","unsafeInsert","semigroupoidBuilder","categoryBuilder","dictLacks","RLProxy","Global_Unsafe","Record","Record_Builder","Type_Data_RowList","WriteForeignFields","writeImplFields","WriteForeign","writeImpl","writeForeignString","writeForeignInt","writeForeignForeign","writeForeignBoolean","nilWriteForeignFields","dictWriteForeign","$87","$88","toMaybe","dictRowToList","dictWriteForeignFields","steps","build","dictCons1","rest","get","Simple_JSON","TagCloudModeTop","TagCloudModeLowerBound","TagCloudModeRelated","TagCloudModeNone","usersettings_wfI","recordWriteForeign","consWriteForeignFields","IsSymbol","tagcloudmode_wfI","note_wfI","eqTagCloudModeF","eqArray","bookmark_wfI","writeForeignNullable","tagCloudMode","fromMaybe","mode","expanded","readInt","intercalate","setHref","location","search","reload","Affjax","Affjax_StatusCode","Data_Argonaut_Decode_Class","Globals","Model","Web_HTML","Web_HTML_Location","Web_HTML_Window","Star","UnStar","showStar","fetchUrl","rt","request","csrfHeaderName","csrfToken","fetchPath","path","homeR","fetchUrlEnc","fetchJson","writeJSON","bid","action","bm","eres","decodeForeignObject","nid","us","authRlogoutR","InputButton","InputCheckbox","InputColor","InputDate","InputDatetimeLocal","InputEmail","InputFile","InputHidden","InputImage","InputMonth","InputNumber","InputPassword","InputRadio","InputRange","InputReset","InputSearch","InputSubmit","InputTel","InputText","InputTime","InputUrl","InputWeek","dictMonadState","Profunctor","dimap","profunctorFn","a2b","c2d","b2c","$9","dictProfunctor","Data_Profunctor","Strong","Profunctor0","first","second","strongFn","Data_Profunctor_Strong","profunctorForget","$27","strongForget","$28","$29","newtypeForget","Control_Monad_State_Class","Data_Lens_Internal_Forget","viewOn","view","gets","set","dictStrong","lens$prime","to","pab","over","MonadAff","MonadEffect0","liftAff","monadAffAff","runExists","mkExists","Data_Exists","CoyonedaF","coyoneda","fi","Coyoneda","functorCoyoneda","liftCoyoneda","Leaf","Two","value2","value3","Three","value4","value5","value6","TwoLeft","TwoRight","ThreeLeft","ThreeMiddle","ThreeRight","KickUp","v3","v4","functorMap","fromZipper","$copy_dictOrd","$copy_tree","$tco_var_dictOrd","$tco_var_v","tree","up","$copy_ctx","$copy_v2","down","$tco_var_ctx","ctx","$copy_ctxs","$tco_var_ctxs","ctxs","removeMaxNode","$copy_m","maxNode","max","leaves","foldableMap","$$delete","OrdBox","eqOrdBox","ordOrdBox","Data_Map_Internal","Halogen_Data_OrdBox","sym","ordTuple","mkOrdBox","$tco_var_acc","Data_List","CatQueue","Data_CatQueue","CatNil","CatCons","semigroupCatList","cat","q","$copy_xs","$copy_c","$tco_var_c","$copy_ys","$tco_var_xs","uncons","Data_CatList","Free","Return","fromView","freeMonad","freeApplicative","freeBind","freeFunctor","$120","$121","freeApply","$122","$123","$124","dictMonadRec","runExpF","concatF","toView","$136","Control_Monad_Free","Effect_Aff_Class","State","Subscribe","Unsubscribe","Lift","ChildQuery","Raise","Par","Kill","GetRef","HalogenM","ordSubscriptionId","ordForkId","monadHalogenM","monadStateHalogenM","MonadState","$139","liftF","monadEffectHalogenM","dictMonadEffect","$144","$145","functorHalogenM","bindHalogenM","applicativeHalogenM","o","dictMonadAff","$146","$147","Initialize","Finalize","Receive","Action","Query","Data_Coyoneda","Halogen_Data_Slot","Halogen_Query_HalogenM","Halogen_Query_HalogenQ","ComponentSlot","ThunkSlot","unComponentSlot","unComponent","mkComponentSlot","mkComponent","defaultEval","handleAction","handleQuery","receive","initialize","finalize","voidLeft","unCoyoneda","input","component","ButtonButton","ButtonSubmit","ButtonReset","On","Off","Step","unStep","mkStep","extract","unsafeGetAny","unsafeHasAny","unsafeSetAny","forE","forEachE","forInE","ks","keys","diffWithIxE","a1","a2","f1","f2","f3","a3","l2","strMapWithIxE","as","fk","diffWithKeyAndIxE","o1","o2","createTextNode","doc","setTextContent","textContent","createElement","ns","createElementNS","insertChildIx","childNodes","insertBefore","removeChild","parentNode","setAttribute","attr","el","setAttributeNS","removeAttribute","removeAttributeNS","addEventListener","ev","listener","removeEventListener","jsUndefined","unsafeLookup","unsafeFreeze","pokeMutMap","newMutMap","eventListener","event","Halogen_VDom_Machine","Halogen_VDom_Util","Web_Event_EventTarget","Created","Removed","Attribute","Property","Handler","Ref","unsafeGetProperty","setProperty","propToStrKey","propFromString","propFromInt","propFromBoolean","removeProp","prevEvents","removeProperty","mbEmit","haltProp","props","applyProp","events","patchProp","ps2","onThis","onThese","v11","elVal","$63","diffProp","onThat","nextState","renderProp","ps1","ps1$prime","Text","Elem","Keyed","Widget","Grafted","Graft","unGraft","$58","graft","bifunctorGraft","$60","$61","runGraft","DOM_HTML_Indexed_ButtonType","DOM_HTML_Indexed_InputType","DOM_HTML_Indexed_OnOff","Halogen_VDom_DOM_Prop","Halogen_VDom_Types","HTML","ClassName","IsProp","toPropValue","newtypeHTML","newtypeClassName","isPropString","isPropOnOff","renderOnOff","isPropInt","isPropInputType","renderInputType","isPropButtonType","renderButtonType","isPropBoolean","$30","$31","children","dictIsProp","$33","$34","$35","$32","element","form","span","tbody_","tbody","td","td_","tr_","tr","div","div_","button","br_","es","unsafeReadPropImpl","readProp","RefUpdate","_currentTarget","currentTarget","preventDefault","$8","Foreign_Index","Halogen_HTML_Core","Halogen_Query_Input","Web_Event_Event","Web_HTML_Event_EventTypes","Web_UIEvent_MouseEvent_EventTypes","mouseHandler","et","onClick","click","onSubmit","addForeignPropHandler","prop","reader","composeKleisli","onChecked","change","onValueChange","$11","mel","required","rows","id_","$$for","disabled","class_","autofocus","autocomplete","$22","hasArrayFrom","from","hasStringIterator","Symbol","iterator","hasFromCodePoint","fromCodePoint","hasCodePointAt","codePointAt","_unsafeCodePointAt0","fallback","_singleton","_take","accum","iter","_toCodePointArray","unsafeCodePointAt0","topInt","bottomInt","topChar","bottomChar","Bounded","Ord0","bottom","boundedInt","boundedChar","toCharCode","toEnum$prime","Data_Bounded","fromEnum","charToEnum","enumChar","pred","fromEnum$prime","defaultSucc","boundedEnumChar","Bounded0","Enum1","cardinality","toEnum","dictBoundedEnum","low","high","intDegree","min","abs","intDiv","intMod","yy","intSub","intAdd","intMul","semiringInt","add","mul","one","zero","Data_Semiring","ringInt","Semiring0","sub","Data_Ring","commutativeRingInt","Ring0","Data_CommutativeRing","euclideanRingInt","CommutativeRing0","degree","mod","Data_Enum","Data_EuclideanRing","Data_String_CodeUnits","Data_String_Unsafe","unsurrogate","lead","trail","isTrail","cu","isLead","cu1","cu0","unconsButWithTuple","$25","$26","toEnumWithDefaults","take","takeFallback","Data_String_CodePoints","Halogen_HTML_Properties","fromNullableStr","_loc","loc","_parseQueryString","srh","decode","srh$prime","qs","mapMaybe","kv","find","App","Data_Lens_Getter","Data_Lens_Lens","Data_Lens_Setter","Halogen_Component","Halogen_HTML_Elements","Halogen_HTML_Events","Util","EarchiveDefault","EprivateDefault","EprivacyLock","UEditField","USubmit","_us","lens","u$prime","render","initialState","editField","type_","archiveDefault","privateDefault","privacyLock","mkEval","modifying","use","monadAffHalogenM","editAccountSettings","Eurl","Etitle","Edescription","Etags","Eprivate","Etoread","BEditField","BEditSubmit","BDeleteAsk","BLookupTitle","BDestroy","_edit_bm","edit_bm","deleteAsk","destroyed","loading","b$prime","toTextarea","mmoment","mmoment8601","time","$67","display_exists","guard","ifElseH","$68","whenH","textarea","description","tags","toread","modify_","$41","$42","lookupTitle","mtitle","selected","archiveUrl","destroy","editBookmark","assign","closeWindow","unsafeSetInnerHTML","innerHTML","_read","toNode","toElement","Web_HTML_HTMLElement","getHTMLElementRef","fromElement","getRef","Halogen_Query","SetInnerHTML","toRawHTML","inputval","elRef","for_","monoidEffect","$10","$14","markedImpl","RawHTML","Component_RawHtml","Foreign_Marked","spin","outputQuery","widget","componentSlot","Component_Markdown","Data_Void","Halogen_HTML","BNotifyRemove","BStar","BEdit","BMarkRead","_markdown","_edit","_bm","tagid","star","shtime","linkToFilterTag","userR","$73","dat","isowner","$74","slot","absurd","whenA","toggleStar","raise","markRead","whenM","setFocus","$59","$64","$65","Component_BMark","HandleBMessage","_bookmark","st","bms","bmark","st$prime","notes$prime","created","linkToFilterSingle","notes","cur","shared","Etext","EisMarkdown","Eshared","NNop","NEditField","NEditSubmit","NEdit","NDeleteAsk","NDestroy","_note","edit_note","_edit_note","mkState","note$prime","isMarkdown","updated","destroyNote","editNote","res$prime","noteR","$$Math","TInitialize","TExpanded","TChangeMode","m$prime","rescale","fetchTagCloud","mode$prime","getTagCloud","tagCloudModeFromF","tagcloud","toArray","opacity","fontsize","toSizedTag","$39","sortBy","comparing","$40","modetop","isExpanded","modelb5","modelb20","modelb2","modelb10","minimum","maximum","setExpanded","updateTagCloudMode","Ap","mkAp","fba","fb","liftFreeAp","goLeft","$copy_dictApplicative","$copy_fStack","$copy_valStack","$copy_nat","$copy_func","$copy_count","$tco_var_dictApplicative","$tco_var_fStack","$tco_var_valStack","$tco_var_nat","$tco_var_func","fStack","valStack","nat","func","goApply","$copy_vals","$copy_gVal","$tco_var_vals","vals","gVal","gRes","functorFreeAp","foldFreeAp","nextVals","applyFreeAp","applicativeFreeAp","lift","Control_Monad_Trans_Class","Bound","FreeT","freeT","bound","functorFreeT","monadFreeT","applicativeFreeT","bindFreeT","applyFreeT","resume","interp","MonadTrans","ma","Control_Monad_Free_Trans","Emit","profunctorAwait","fuseWithL","dictFunctor2","zap","gs","fuseWith","functorAwait","rmap","bifunctorEmit","functorEmit","runFreeT","$176","$177","$178","recv","me","monadRecFreeT","monadTransFreeT","liftFreeT","monadForkAff","Functor1","fork","suspend","AVar","MutableQueue","last","MutableCell","prev","takes","reads","puts","takeLast","takeHead","putLast","deleteCell","drainVar","avar","ps","rsize","ts","rs","_killVar","_putVar","_takeVar","Killed","Filled","Empty","filled","Effect_AVar","put","$12","$13","throwException","unRenderStateX","unDriverStateX","mkRenderStateX","mkDriverStateXRef","rendering","lchs","selfRef","childrenIn","childrenOut","handlerRef","pendingQueries","pendingOuts","pendingHandlers","fresh","subscriptions","forks","ds","refs","lifecycleHandlers","unChildQueryBox","reallyUnsafeRefEq","unsafeRefEq","Control_Applicative_Free","Control_Coroutine","Control_Monad_Fork_Class","Effect_Exception","Halogen_Aff_Driver_State","Halogen_Query_ChildQuery","Halogen_Query_EventSource","Unsafe_Reference","queueOrRun","au","handleLifecycle","initializers","finalizers","evalQ","evalM","initRef","evalChildQuery","foldFree","SubscriptionId","sid","subs","member","finalizer","consumer","act","eqMaybe","evalF","runProcess","pullFrom","producer","$86","cqb","dsx","retractFreeAp","hoistFreeAp","ForkId","doneRef","unlessM","forkMap","killFiber","mapDriverState","alter","Effect_Aff_AVar","Effect_Console","Halogen_Aff_Driver_Eval","newLifecycleHandlers","handleAff","runAff_","handlePending","renderSpec","subscribe","inputVar","listenerId","connect","runComponent","lchs$prime","$$var","initDriverState","preInits","parentInitializer","handlers","squashChildInitializers","renderChild","childrenInRef","childrenOutRef","isDuplicate","renderStateX","shouldProcessHandlers","childHandler","foreachSlot","childDS","renderStateX_","ds$prime","$51","mmore","$24","evalDriver","disposed","dispose","subsRef","$52","query","_querySelector","selector","node","querySelector","toParentNode","toDocument","Web_DOM_ParentNode","Web_HTML_HTMLDocument","runHalogenAff","Web_DOM_Element","haltWidget","halt","patchWidget","vdom","haltText","parent","patchText","haltKeyed","attrs","haltElem","eqElemSpec","ns1","ns2","patchElem","attrs2","children2","patchKeyed","ix$prime","spec","buildText","buildElem","name1","as1","ch1","child","buildAttributes","buildKeyed","buildWidget","w","Halogen_VDom_DOM","runThunk","Thunk","toVDom","haltThunk","patchThunk","t2","renderThunk","buildVDom","getEffProp","_parentNode","_nextSibling","node1","node2","appendChild","nextSibling","$15","Halogen_Aff_Driver","Halogen_VDom_Thunk","Web_DOM_Node","npn","pn","container","renderChildRef","getNode","buildThunk","renderComponentSlot","cs","rsx","patch","step$prime","buildProp","mkSpec","machine","nextSib","machine$prime","newNode","heytingAlgebraFunction","substInParent","runUI","_mainImpl","Component_AccountSettings","Component_Add","Component_BList","Component_NList","Component_NNote","Component_TagCloud","Halogen_Aff_Util","Halogen_VDom_Driver","viewRendered","selectElement","main","logout","renderElSelector","bmarks","blist","tagcloudcomponent","tagCloudModeToF","addbmark","nlist","nnote","accountSettings","usetting"],"mappings":"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","file":"app.min.js","sourceRoot":"","sourcesContent":["//! moment.js\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 input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\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 input != null && Object.prototype.toString.call(input) === '[object Object]';\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 (obj.hasOwnProperty(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 typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\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 invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\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 var len = t.length >>> 0;\n\n for (var 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 if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\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\n if (m._strict) {\n isNowValid = 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 }\n else {\n return isNowValid;\n }\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 }\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\n function copyConfig(to, from) {\n var i, prop, val;\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 (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; 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 var updateInProgress = false;\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 obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\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 // 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 ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\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 var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\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(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\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 input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\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 '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), 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 (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\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, 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 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.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\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 var 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 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\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : 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\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\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 (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var 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(func.apply(this, arguments), token);\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), i, 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 = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : 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] = 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(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\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 var matchWord = /[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\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : 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(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\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 for (i = 0; i < token.length; 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 var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + 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 // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\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] = 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 function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\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 return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\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\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; 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 ? (isLeapYear(year) ? 29 : 28) : (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 // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\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 MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, 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(mom, '').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('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\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 var dayOfMonth;\n\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 dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\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 var defaultMonthsShortRegex = matchWord;\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 : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\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 : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\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 for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\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;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n var 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, 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, 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 // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\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 // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\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 = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays :\n this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone'];\n return (m === true) ? shiftWeekdays(weekdays, this._week.dow)\n : (m) ? weekdays[m.day()] : weekdays;\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, 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(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').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('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\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 var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\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 var defaultWeekdaysRegex = matchWord;\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 : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\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 : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\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 : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, 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 = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = 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 for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\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('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\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 '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\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 '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\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);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\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 var 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 var 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 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\n // MOMENTS\n\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 var getSetHour = makeGetSet('Hours', true);\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 var localeFamilies = {};\n var globalLocale;\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, j, next, locale, 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 (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\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 loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\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 }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\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('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('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 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\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, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\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 } 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 var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\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 // 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 [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\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, date, input = [], currentDate, expectedWeekday, 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 (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\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] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : 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 (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\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(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\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 var 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 // 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 = /^\\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 var basicIsoRegex = /^\\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\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var 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 // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var 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\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; 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 = isoTimes.length; 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 // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(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\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\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.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).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 var 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 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 var m = hm % 100, 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 if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\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 iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\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 // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\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 and will be removed in an upcoming major release. Please refer to ' +\n '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 // 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, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\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(string.indexOf(parsedInput) + parsedInput.length);\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 }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\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 = 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 (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\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(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\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\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\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 continue;\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 (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\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 config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\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 (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\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\n var 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 = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++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 = +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 +\n 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 +\n quarters * 3 +\n 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 // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\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\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n 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 = (isMoment(input) || isDate(input) ? input.valueOf() : 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() / 15) * 15;\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(this, createDuration(input - offset, 'm'), 1, false);\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 }\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\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n 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\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 var isoRegex = /^(-|\\+)?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)) {\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) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\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 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 = other.month() - base.month() +\n (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(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\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 var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\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\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\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 (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\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 this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\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,\n zoneDelta,\n 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': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\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, 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 var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\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).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\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 var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).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 (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).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 var MS_PER_MINUTE = 60 * MS_PER_SECOND;\n var MS_PER_HOUR = 60 * MS_PER_MINUTE;\n var 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;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var 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(this.year(), this.month() - this.month() % 3, 1);\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\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(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\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;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var 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 = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 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 += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 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 [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\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 // 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 addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\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(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\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(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 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 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 // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\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 ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\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 // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\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 = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 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 // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\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 // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\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\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\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 // MOMENTS\n\n var 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 proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\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.isoWeeksInYear = getISOWeeksInYear;\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('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\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\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 var 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 var 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\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\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 dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\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 var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, 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 (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\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 var months;\n var 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': return months;\n case 'quarter': return months / 3;\n case 'year': 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' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asQuarters = makeAs('Q');\n var asYears = makeAs('y');\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 var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var 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\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, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = 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 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 (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, 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 var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\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\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\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 var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\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('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\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, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n hooks.version = '2.24.0';\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","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n;(function(root) {\n'use strict';\n\n/**\n * Block-Level Grammar\n */\n\nvar block = {\n newline: /^\\n+/,\n code: /^( {4}[^\\n]+\\n*)+/,\n fences: /^ {0,3}(`{3,}|~{3,})([^`~\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?:\\n+|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6}) +([^\\n]*?)(?: +#+)? *(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3})(bull) [\\s\\S]+?(?:hr|def|\\n{2,}(?! )(?!\\1bull )\\n*|\\s*$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style)[\\\\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{2,}|$)' // (6)\n + '|<(?!script|pre|style)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *\\n? *]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n nptable: noop,\n table: noop,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}\\.)/;\nblock.item = /^( *)(bull) ?[^\\n]*(?:\\n(?!\\1bull ?)[^\\n]*)*/;\nblock.item = edit(block.item, 'gm')\n .replace(/bull/g, block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._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';\nblock._comment = //;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} +')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}|~{3,})[^`\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n nptable: /^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:.*[^>\\n ].*(?:\\n|$))*)\\n*|$)/,\n table: /^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n((?: *[^>\\n ].*(?:\\n|$))*)\\n*|$)/\n});\n\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._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+|$)/,\n fences: noop, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Block Lexer\n */\n\nfunction Lexer(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || marked.defaults;\n this.rules = block.normal;\n\n if (this.options.pedantic) {\n this.rules = block.pedantic;\n } else if (this.options.gfm) {\n this.rules = block.gfm;\n }\n}\n\n/**\n * Expose Block Rules\n */\n\nLexer.rules = block;\n\n/**\n * Static Lex Method\n */\n\nLexer.lex = function(src, options) {\n var lexer = new Lexer(options);\n return lexer.lex(src);\n};\n\n/**\n * Preprocessing\n */\n\nLexer.prototype.lex = function(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ')\n .replace(/\\u00a0/g, ' ')\n .replace(/\\u2424/g, '\\n');\n\n return this.token(src, true);\n};\n\n/**\n * Lexing\n */\n\nLexer.prototype.token = function(src, top) {\n src = src.replace(/^ +$/gm, '');\n var next,\n loose,\n cap,\n bull,\n b,\n item,\n listStart,\n listItems,\n t,\n space,\n i,\n tag,\n l,\n isordered,\n istask,\n ischecked;\n\n while (src) {\n // newline\n if (cap = this.rules.newline.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[0].length > 1) {\n this.tokens.push({\n type: 'space'\n });\n }\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n var lastToken = this.tokens[this.tokens.length - 1];\n src = src.substring(cap[0].length);\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && lastToken.type === 'paragraph') {\n lastToken.text += '\\n' + cap[0].trimRight();\n } else {\n cap = cap[0].replace(/^ {4}/gm, '');\n this.tokens.push({\n type: 'code',\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(cap, '\\n')\n : cap\n });\n }\n continue;\n }\n\n // fences\n if (cap = this.rules.fences.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'code',\n lang: cap[2] ? cap[2].trim() : cap[2],\n text: cap[3] || ''\n });\n continue;\n }\n\n // heading\n if (cap = this.rules.heading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[1].length,\n text: cap[2]\n });\n continue;\n }\n\n // table no leading pipe (gfm)\n if (cap = this.rules.nptable.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(item.cells[i], item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // hr\n if (cap = this.rules.hr.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'hr'\n });\n continue;\n }\n\n // blockquote\n if (cap = this.rules.blockquote.exec(src)) {\n src = src.substring(cap[0].length);\n\n this.tokens.push({\n type: 'blockquote_start'\n });\n\n cap = cap[0].replace(/^ *> ?/gm, '');\n\n // Pass `top` to keep the current\n // \"toplevel\" state. This is exactly\n // how markdown.pl works.\n this.token(cap, top);\n\n this.tokens.push({\n type: 'blockquote_end'\n });\n\n continue;\n }\n\n // list\n if (cap = this.rules.list.exec(src)) {\n src = src.substring(cap[0].length);\n bull = cap[2];\n isordered = bull.length > 1;\n\n listStart = {\n type: 'list_start',\n ordered: isordered,\n start: isordered ? +bull : '',\n loose: false\n };\n\n this.tokens.push(listStart);\n\n // Get each top-level item.\n cap = cap[0].match(this.rules.item);\n\n listItems = [];\n next = false;\n l = cap.length;\n i = 0;\n\n for (; i < l; i++) {\n item = cap[i];\n\n // Remove the list item's bullet\n // so it is seen as the next token.\n space = item.length;\n item = item.replace(/^ *([*+-]|\\d+\\.) */, '');\n\n // Outdent whatever the\n // list item contains. Hacky.\n if (~item.indexOf('\\n ')) {\n space -= item.length;\n item = !this.options.pedantic\n ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')\n : item.replace(/^ {1,4}/gm, '');\n }\n\n // Determine whether the next list item belongs here.\n // Backpedal if it does not belong in this list.\n if (i !== l - 1) {\n b = block.bullet.exec(cap[i + 1])[0];\n if (bull.length > 1 ? b.length === 1\n : (b.length > 1 || (this.options.smartLists && b !== bull))) {\n src = cap.slice(i + 1).join('\\n') + src;\n i = l - 1;\n }\n }\n\n // Determine whether item is loose or not.\n // Use: /(^|\\n)(?! )[^\\n]+\\n\\n(?!\\s*$)/\n // for discount behavior.\n loose = next || /\\n\\n(?!\\s*$)/.test(item);\n if (i !== l - 1) {\n next = item.charAt(item.length - 1) === '\\n';\n if (!loose) loose = next;\n }\n\n if (loose) {\n listStart.loose = true;\n }\n\n // Check for task list items\n istask = /^\\[[ xX]\\] /.test(item);\n ischecked = undefined;\n if (istask) {\n ischecked = item[1] !== ' ';\n item = item.replace(/^\\[[ xX]\\] +/, '');\n }\n\n t = {\n type: 'list_item_start',\n task: istask,\n checked: ischecked,\n loose: loose\n };\n\n listItems.push(t);\n this.tokens.push(t);\n\n // Recurse.\n this.token(item, false);\n\n this.tokens.push({\n type: 'list_item_end'\n });\n }\n\n if (listStart.loose) {\n l = listItems.length;\n i = 0;\n for (; i < l; i++) {\n listItems[i].loose = true;\n }\n }\n\n this.tokens.push({\n type: 'list_end'\n });\n\n continue;\n }\n\n // html\n if (cap = this.rules.html.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: this.options.sanitize\n ? 'paragraph'\n : 'html',\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0]\n });\n continue;\n }\n\n // def\n if (top && (cap = this.rules.def.exec(src))) {\n src = src.substring(cap[0].length);\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n if (!this.tokens.links[tag]) {\n this.tokens.links[tag] = {\n href: cap[2],\n title: cap[3]\n };\n }\n continue;\n }\n\n // table (gfm)\n if (cap = this.rules.table.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(\n item.cells[i].replace(/^ *\\| *| *\\| *$/g, ''),\n item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // lheading\n if (cap = this.rules.lheading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1]\n });\n continue;\n }\n\n // top-level paragraph\n if (top && (cap = this.rules.paragraph.exec(src))) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'paragraph',\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1]\n });\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n // Top-level should never reach here.\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'text',\n text: cap[0]\n });\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return this.tokens;\n};\n\n/**\n * Inline-Level Grammar\n */\n\nvar inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noop,\n tag: '^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 link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\n strong: /^__([^\\s_])__(?!_)|^\\*\\*([^\\s*])\\*\\*(?!\\*)|^__([^\\s][\\s\\S]*?[^\\s])__(?!_)|^\\*\\*([^\\s][\\s\\S]*?[^\\s])\\*\\*(?!\\*)/,\n em: /^_([^\\s_])_(?!_)|^\\*([^\\s*<\\[])\\*(?!\\*)|^_([^\\s<][\\s\\S]*?[^\\s_])_(?!_|[^\\spunctuation])|^_([^\\s_<][\\s\\S]*?[^\\s])_(?!_|[^\\spunctuation])|^\\*([^\\s<\"][\\s\\S]*?[^\\s\\*])\\*(?!\\*|[^\\spunctuation])|^\\*([^\\s*\"<\\[][\\s\\S]*?[^\\s])\\*(?!\\*)/,\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noop,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\?@\\\\[^_{|}~';\ninline.em = edit(inline.em).replace(/punctuation/g, inline._punctuation).getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._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])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', block._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[[^\\[\\]]*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\[<>]?|[^\\s<>\\\\])*>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n em: /^_(?=\\S)([\\s\\S]*?\\S)_(?!_)|^\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)/,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^~+(?=\\S)([\\s\\S]*?\\S)~+/,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\/i.test(cap[0])) {\n this.inLink = false;\n }\n if (!this.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = true;\n } else if (this.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = false;\n }\n\n src = src.substring(cap[0].length);\n out += this.options.sanitize\n ? this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0])\n : cap[0];\n continue;\n }\n\n // link\n if (cap = this.rules.link.exec(src)) {\n var lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n var linkLen = 4 + 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 src = src.substring(cap[0].length);\n this.inLink = true;\n href = cap[2];\n if (this.options.pedantic) {\n link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n } else {\n title = '';\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim().replace(/^<([\\s\\S]*)>$/, '$1');\n out += this.outputLink(cap, {\n href: InlineLexer.escapes(href),\n title: InlineLexer.escapes(title)\n });\n this.inLink = false;\n continue;\n }\n\n // reflink, nolink\n if ((cap = this.rules.reflink.exec(src))\n || (cap = this.rules.nolink.exec(src))) {\n src = src.substring(cap[0].length);\n link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = this.links[link.toLowerCase()];\n if (!link || !link.href) {\n out += cap[0].charAt(0);\n src = cap[0].substring(1) + src;\n continue;\n }\n this.inLink = true;\n out += this.outputLink(cap, link);\n this.inLink = false;\n continue;\n }\n\n // strong\n if (cap = this.rules.strong.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.strong(this.output(cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // em\n if (cap = this.rules.em.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.em(this.output(cap[6] || cap[5] || cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.codespan(escape(cap[2].trim(), true));\n continue;\n }\n\n // br\n if (cap = this.rules.br.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.br();\n continue;\n }\n\n // del (gfm)\n if (cap = this.rules.del.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.del(this.output(cap[1]));\n continue;\n }\n\n // autolink\n if (cap = this.rules.autolink.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[2] === '@') {\n text = escape(this.mangle(cap[1]));\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // url (gfm)\n if (!this.inLink && (cap = this.rules.url.exec(src))) {\n if (cap[2] === '@') {\n text = escape(cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n src = src.substring(cap[0].length);\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n src = src.substring(cap[0].length);\n if (this.inRawBlock) {\n out += this.renderer.text(this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0]);\n } else {\n out += this.renderer.text(escape(this.smartypants(cap[0])));\n }\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return out;\n};\n\nInlineLexer.escapes = function(text) {\n return text ? text.replace(InlineLexer.rules._escapes, '$1') : text;\n};\n\n/**\n * Compile Link\n */\n\nInlineLexer.prototype.outputLink = function(cap, link) {\n var href = link.href,\n title = link.title ? escape(link.title) : null;\n\n return cap[0].charAt(0) !== '!'\n ? this.renderer.link(href, title, this.output(cap[1]))\n : this.renderer.image(href, title, escape(cap[1]));\n};\n\n/**\n * Smartypants Transformations\n */\n\nInlineLexer.prototype.smartypants = function(text) {\n if (!this.options.smartypants) return text;\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n};\n\n/**\n * Mangle Links\n */\n\nInlineLexer.prototype.mangle = function(text) {\n if (!this.options.mangle) return text;\n var out = '',\n l = text.length,\n i = 0,\n ch;\n\n for (; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n};\n\n/**\n * Renderer\n */\n\nfunction Renderer(options) {\n this.options = options || marked.defaults;\n}\n\nRenderer.prototype.code = function(code, infostring, escaped) {\n var lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n var out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\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\nRenderer.prototype.blockquote = function(quote) {\n return '
    \\n' + quote + '
    \\n';\n};\n\nRenderer.prototype.html = function(html) {\n return html;\n};\n\nRenderer.prototype.heading = function(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return ''\n + text\n + '\\n';\n }\n // ignore IDs\n return '' + text + '\\n';\n};\n\nRenderer.prototype.hr = function() {\n return this.options.xhtml ? '
    \\n' : '
    \\n';\n};\n\nRenderer.prototype.list = function(body, ordered, start) {\n var type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n};\n\nRenderer.prototype.listitem = function(text) {\n return '
  • ' + text + '
  • \\n';\n};\n\nRenderer.prototype.checkbox = function(checked) {\n return ' ';\n};\n\nRenderer.prototype.paragraph = function(text) {\n return '

    ' + text + '

    \\n';\n};\n\nRenderer.prototype.table = function(header, body) {\n if (body) body = '' + body + '';\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n};\n\nRenderer.prototype.tablerow = function(content) {\n return '\\n' + content + '\\n';\n};\n\nRenderer.prototype.tablecell = function(content, flags) {\n var type = flags.header ? 'th' : 'td';\n var tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '\\n';\n};\n\n// span level renderer\nRenderer.prototype.strong = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.em = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.codespan = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.br = function() {\n return this.options.xhtml ? '
    ' : '
    ';\n};\n\nRenderer.prototype.del = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.link = function(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n var out = '
    ';\n return out;\n};\n\nRenderer.prototype.image = function(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n var out = '\"'' : '>';\n return out;\n};\n\nRenderer.prototype.text = function(text) {\n return text;\n};\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\n\nfunction TextRenderer() {}\n\n// no need for block level renderers\n\nTextRenderer.prototype.strong =\nTextRenderer.prototype.em =\nTextRenderer.prototype.codespan =\nTextRenderer.prototype.del =\nTextRenderer.prototype.text = function(text) {\n return text;\n};\n\nTextRenderer.prototype.link =\nTextRenderer.prototype.image = function(href, title, text) {\n return '' + text;\n};\n\nTextRenderer.prototype.br = function() {\n return '';\n};\n\n/**\n * Parsing & Compiling\n */\n\nfunction Parser(options) {\n this.tokens = [];\n this.token = null;\n this.options = options || marked.defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.slugger = new Slugger();\n}\n\n/**\n * Static Parse Method\n */\n\nParser.parse = function(src, options) {\n var parser = new Parser(options);\n return parser.parse(src);\n};\n\n/**\n * Parse Loop\n */\n\nParser.prototype.parse = function(src) {\n this.inline = new InlineLexer(src.links, this.options);\n // use an InlineLexer with a TextRenderer to extract pure text\n this.inlineText = new InlineLexer(\n src.links,\n merge({}, this.options, { renderer: new TextRenderer() })\n );\n this.tokens = src.reverse();\n\n var out = '';\n while (this.next()) {\n out += this.tok();\n }\n\n return out;\n};\n\n/**\n * Next Token\n */\n\nParser.prototype.next = function() {\n this.token = this.tokens.pop();\n return this.token;\n};\n\n/**\n * Preview Next Token\n */\n\nParser.prototype.peek = function() {\n return this.tokens[this.tokens.length - 1] || 0;\n};\n\n/**\n * Parse Text Tokens\n */\n\nParser.prototype.parseText = function() {\n var body = this.token.text;\n\n while (this.peek().type === 'text') {\n body += '\\n' + this.next().text;\n }\n\n return this.inline.output(body);\n};\n\n/**\n * Parse Current Token\n */\n\nParser.prototype.tok = function() {\n switch (this.token.type) {\n case 'space': {\n return '';\n }\n case 'hr': {\n return this.renderer.hr();\n }\n case 'heading': {\n return this.renderer.heading(\n this.inline.output(this.token.text),\n this.token.depth,\n unescape(this.inlineText.output(this.token.text)),\n this.slugger);\n }\n case 'code': {\n return this.renderer.code(this.token.text,\n this.token.lang,\n this.token.escaped);\n }\n case 'table': {\n var header = '',\n body = '',\n i,\n row,\n cell,\n j;\n\n // header\n cell = '';\n for (i = 0; i < this.token.header.length; i++) {\n cell += this.renderer.tablecell(\n this.inline.output(this.token.header[i]),\n { header: true, align: this.token.align[i] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n for (i = 0; i < this.token.cells.length; i++) {\n row = this.token.cells[i];\n\n cell = '';\n for (j = 0; j < row.length; j++) {\n cell += this.renderer.tablecell(\n this.inline.output(row[j]),\n { header: false, align: this.token.align[j] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n return this.renderer.table(header, body);\n }\n case 'blockquote_start': {\n body = '';\n\n while (this.next().type !== 'blockquote_end') {\n body += this.tok();\n }\n\n return this.renderer.blockquote(body);\n }\n case 'list_start': {\n body = '';\n var ordered = this.token.ordered,\n start = this.token.start;\n\n while (this.next().type !== 'list_end') {\n body += this.tok();\n }\n\n return this.renderer.list(body, ordered, start);\n }\n case 'list_item_start': {\n body = '';\n var loose = this.token.loose;\n var checked = this.token.checked;\n var task = this.token.task;\n\n if (this.token.task) {\n body += this.renderer.checkbox(checked);\n }\n\n while (this.next().type !== 'list_item_end') {\n body += !loose && this.token.type === 'text'\n ? this.parseText()\n : this.tok();\n }\n return this.renderer.listitem(body, task, checked);\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n return this.renderer.html(this.token.text);\n }\n case 'paragraph': {\n return this.renderer.paragraph(this.inline.output(this.token.text));\n }\n case 'text': {\n return this.renderer.paragraph(this.parseText());\n }\n default: {\n var errMsg = 'Token with \"' + this.token.type + '\" type was not found.';\n if (this.options.silent) {\n console.log(errMsg);\n } else {\n throw new Error(errMsg);\n }\n }\n }\n};\n\n/**\n * Slugger generates header id\n */\n\nfunction Slugger() {\n this.seen = {};\n}\n\n/**\n * Convert string to unique id\n */\n\nSlugger.prototype.slug = function(value) {\n var slug = value\n .toLowerCase()\n .trim()\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n\n if (this.seen.hasOwnProperty(slug)) {\n var originalSlug = slug;\n do {\n this.seen[originalSlug]++;\n slug = originalSlug + '-' + this.seen[originalSlug];\n } while (this.seen.hasOwnProperty(slug));\n }\n this.seen[slug] = 0;\n\n return slug;\n};\n\n/**\n * Helpers\n */\n\nfunction escape(html, encode) {\n if (encode) {\n if (escape.escapeTest.test(html)) {\n return html.replace(escape.escapeReplace, function(ch) { return escape.replacements[ch]; });\n }\n } else {\n if (escape.escapeTestNoEncode.test(html)) {\n return html.replace(escape.escapeReplaceNoEncode, function(ch) { return escape.replacements[ch]; });\n }\n }\n\n return html;\n}\n\nescape.escapeTest = /[&<>\"']/;\nescape.escapeReplace = /[&<>\"']/g;\nescape.replacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n\nescape.escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nescape.escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(/&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig, function(_, n) {\n n = n.toLowerCase();\n if (n === 'colon') 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}\n\nfunction edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n return {\n replace: function(name, val) {\n val = val.source || val;\n val = val.replace(/(^|[^\\[])\\^/g, '$1');\n regex = regex.replace(name, val);\n return this;\n },\n getRegex: function() {\n return new RegExp(regex, opt);\n }\n };\n}\n\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n try {\n var prot = decodeURIComponent(unescape(href))\n .replace(/[^\\w:]/g, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (/^[^:]+:\\/*[^/]*$/.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n\n if (href.slice(0, 2) === '//') {\n return base.replace(/:[\\s\\S]*/, ':') + href;\n } else if (href.charAt(0) === '/') {\n return base.replace(/(:\\/*[^/]*)[\\s\\S]*/, '$1') + href;\n } else {\n return base + href;\n }\n}\nvar baseUrls = {};\nvar originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n\nfunction noop() {}\nnoop.exec = noop;\n\nfunction merge(obj) {\n var i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n var row = tableRow.replace(/\\|/g, function(match, offset, str) {\n var escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/),\n i = 0;\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) 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// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim(str, c, invert) {\n if (str.length === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n var suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < str.length) {\n var currChar = str.charAt(str.length - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, str.length - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n var level = 0;\n for (var i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n}\n\n/**\n * Marked\n */\n\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (callback || typeof opt === 'function') {\n if (!callback) {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n var highlight = opt.highlight,\n tokens,\n pending,\n i = 0;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n pending = tokens.length;\n\n var done = function(err) {\n if (err) {\n opt.highlight = highlight;\n return callback(err);\n }\n\n var out;\n\n try {\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!pending) return done();\n\n for (; i < tokens.length; i++) {\n (function(token) {\n if (token.type !== 'code') {\n return --pending || done();\n }\n return highlight(token.text, token.lang, function(err, code) {\n if (err) return done(err);\n if (code == null || code === token.text) {\n return --pending || done();\n }\n token.text = code;\n token.escaped = true;\n --pending || done();\n });\n })(tokens[i]);\n }\n\n return;\n }\n try {\n if (opt) opt = merge({}, marked.defaults, opt);\n checkSanitizeDeprecation(opt);\n return Parser.parse(Lexer.lex(src, opt), opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if ((opt || marked.defaults).silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n return marked;\n};\n\nmarked.getDefaults = function() {\n return {\n baseUrl: null,\n breaks: false,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: new Renderer(),\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n xhtml: false\n };\n};\n\nmarked.defaults = marked.getDefaults();\n\n/**\n * Expose\n */\n\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\n\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\n\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\n\nmarked.InlineLexer = InlineLexer;\nmarked.inlineLexer = InlineLexer.output;\n\nmarked.Slugger = Slugger;\n\nmarked.parse = marked;\n\nif (typeof module !== 'undefined' && typeof exports === 'object') {\n module.exports = marked;\n} else if (typeof define === 'function' && define.amd) {\n define(function() { return marked; });\n} else {\n root.marked = marked;\n}\n})(this || (typeof window !== 'undefined' ? window : global));\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","// Generated by purs bundle 0.13.6\nvar PS = {};\n(function(exports) {\n /* global XMLHttpRequest */\n /* global process */\n \"use strict\";\n\n exports._ajax = function () {\n var platformSpecific = { };\n if (typeof module !== \"undefined\" && module.require && !(typeof process !== \"undefined\" && process.versions[\"electron\"])) {\n // We are on node.js\n platformSpecific.newXHR = function () {\n var XHR = module.require(\"xhr2\");\n return new XHR();\n };\n\n platformSpecific.fixupUrl = function (url, xhr) {\n if (xhr.nodejsBaseUrl === null) {\n var urllib = module.require(\"url\");\n var u = urllib.parse(url);\n u.protocol = u.protocol || \"http:\";\n u.hostname = u.hostname || \"localhost\";\n return urllib.format(u);\n } else {\n return url || \"/\";\n }\n };\n\n platformSpecific.getResponse = function (xhr) {\n return xhr.response;\n };\n } else {\n // We are in the browser\n platformSpecific.newXHR = function () {\n return new XMLHttpRequest();\n };\n\n platformSpecific.fixupUrl = function (url) {\n return url || \"/\";\n };\n\n platformSpecific.getResponse = function (xhr) {\n return xhr.response;\n };\n }\n\n return function (mkHeader, options) {\n return function (errback, callback) {\n var xhr = platformSpecific.newXHR();\n var fixedUrl = platformSpecific.fixupUrl(options.url, xhr);\n xhr.open(options.method || \"GET\", fixedUrl, true, options.username, options.password);\n if (options.headers) {\n try {\n 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 (msg) {\n return function () {\n errback(new Error(msg + \": \" + options.method + \" \" + options.url));\n };\n };\n xhr.onerror = onerror(\"AJAX request failed\");\n xhr.ontimeout = onerror(\"AJAX request timed out\");\n xhr.onload = function () {\n callback({\n status: xhr.status,\n statusText: xhr.statusText,\n headers: xhr.getAllResponseHeaders().split(\"\\r\\n\")\n .filter(function (header) {\n return header.length > 0;\n })\n .map(function (header) {\n var i = header.indexOf(\":\");\n return mkHeader(header.substring(0, i))(header.substring(i + 2));\n }),\n body: platformSpecific.getResponse(xhr)\n });\n };\n xhr.responseType = options.responseType;\n xhr.withCredentials = options.withCredentials;\n xhr.send(options.content);\n\n return function (error, cancelErrback, cancelCallback) {\n try {\n xhr.abort();\n } catch (e) {\n return cancelErrback(e);\n }\n return cancelCallback();\n };\n };\n };\n }();\n})(PS[\"Affjax\"] = PS[\"Affjax\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.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})(PS[\"Control.Apply\"] = PS[\"Control.Apply\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Semigroupoid\"] = $PS[\"Control.Semigroupoid\"] || {};\n var exports = $PS[\"Control.Semigroupoid\"];\n var Semigroupoid = function (compose) {\n this.compose = compose;\n };\n var semigroupoidFn = new Semigroupoid(function (f) {\n return function (g) {\n return function (x) {\n return f(g(x));\n };\n };\n });\n var compose = function (dict) {\n return dict.compose;\n };\n exports[\"compose\"] = compose;\n exports[\"semigroupoidFn\"] = semigroupoidFn;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Category\"] = $PS[\"Control.Category\"] || {};\n var exports = $PS[\"Control.Category\"];\n var Control_Semigroupoid = $PS[\"Control.Semigroupoid\"]; \n var Category = function (Semigroupoid0, identity) {\n this.Semigroupoid0 = Semigroupoid0;\n this.identity = identity;\n };\n var identity = function (dict) {\n return dict.identity;\n };\n var categoryFn = new Category(function () {\n return Control_Semigroupoid.semigroupoidFn;\n }, function (x) {\n return x;\n });\n exports[\"identity\"] = identity;\n exports[\"categoryFn\"] = categoryFn;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Function\"] = $PS[\"Data.Function\"] || {};\n var exports = $PS[\"Data.Function\"]; \n var on = function (f) {\n return function (g) {\n return function (x) {\n return function (y) {\n return f(g(x))(g(y));\n };\n };\n };\n };\n var flip = function (f) {\n return function (b) {\n return function (a) {\n return f(a)(b);\n };\n };\n };\n var $$const = function (a) {\n return function (v) {\n return a;\n };\n };\n var applyFlipped = function (x) {\n return function (f) {\n return f(x);\n };\n };\n exports[\"flip\"] = flip;\n exports[\"const\"] = $$const;\n exports[\"applyFlipped\"] = applyFlipped;\n exports[\"on\"] = on;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.arrayMap = function (f) {\n return function (arr) {\n var l = arr.length;\n var result = new Array(l);\n for (var i = 0; i < l; i++) {\n result[i] = f(arr[i]);\n }\n return result;\n };\n };\n})(PS[\"Data.Functor\"] = PS[\"Data.Functor\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.unit = {};\n})(PS[\"Data.Unit\"] = PS[\"Data.Unit\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Unit\"] = $PS[\"Data.Unit\"] || {};\n var exports = $PS[\"Data.Unit\"];\n var $foreign = $PS[\"Data.Unit\"];\n exports[\"unit\"] = $foreign.unit;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Functor\"] = $PS[\"Data.Functor\"] || {};\n var exports = $PS[\"Data.Functor\"];\n var $foreign = $PS[\"Data.Functor\"];\n var Control_Semigroupoid = $PS[\"Control.Semigroupoid\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var Functor = function (map) {\n this.map = map;\n };\n var map = function (dict) {\n return dict.map;\n };\n var mapFlipped = function (dictFunctor) {\n return function (fa) {\n return function (f) {\n return map(dictFunctor)(f)(fa);\n };\n };\n };\n var $$void = function (dictFunctor) {\n return map(dictFunctor)(Data_Function[\"const\"](Data_Unit.unit));\n };\n var voidLeft = function (dictFunctor) {\n return function (f) {\n return function (x) {\n return map(dictFunctor)(Data_Function[\"const\"](x))(f);\n };\n };\n };\n var functorFn = new Functor(Control_Semigroupoid.compose(Control_Semigroupoid.semigroupoidFn));\n var functorArray = new Functor($foreign.arrayMap);\n exports[\"Functor\"] = Functor;\n exports[\"map\"] = map;\n exports[\"mapFlipped\"] = mapFlipped;\n exports[\"void\"] = $$void;\n exports[\"voidLeft\"] = voidLeft;\n exports[\"functorFn\"] = functorFn;\n exports[\"functorArray\"] = functorArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Apply\"] = $PS[\"Control.Apply\"] || {};\n var exports = $PS[\"Control.Apply\"];\n var $foreign = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var Apply = function (Functor0, apply) {\n this.Functor0 = Functor0;\n this.apply = apply;\n }; \n var applyArray = new Apply(function () {\n return Data_Functor.functorArray;\n }, $foreign.arrayApply);\n var apply = function (dict) {\n return dict.apply;\n };\n var applySecond = function (dictApply) {\n return function (a) {\n return function (b) {\n return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(Data_Function[\"const\"](Control_Category.identity(Control_Category.categoryFn)))(a))(b);\n };\n };\n };\n var lift2 = function (dictApply) {\n return function (f) {\n return function (a) {\n return function (b) {\n return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(f)(a))(b);\n };\n };\n };\n };\n exports[\"Apply\"] = Apply;\n exports[\"apply\"] = apply;\n exports[\"applySecond\"] = applySecond;\n exports[\"lift2\"] = lift2;\n exports[\"applyArray\"] = applyArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Applicative\"] = $PS[\"Control.Applicative\"] || {};\n var exports = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var Applicative = function (Apply0, pure) {\n this.Apply0 = Apply0;\n this.pure = pure;\n };\n var pure = function (dict) {\n return dict.pure;\n };\n var unless = function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (!v) {\n return v1;\n };\n if (v) {\n return pure(dictApplicative)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Applicative (line 62, column 1 - line 62, column 65): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n };\n var when = function (dictApplicative) {\n return function (v) {\n return function (v1) {\n if (v) {\n return v1;\n };\n if (!v) {\n return pure(dictApplicative)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Control.Applicative (line 57, column 1 - line 57, column 63): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n };\n var liftA1 = function (dictApplicative) {\n return function (f) {\n return function (a) {\n return Control_Apply.apply(dictApplicative.Apply0())(pure(dictApplicative)(f))(a);\n };\n };\n };\n exports[\"Applicative\"] = Applicative;\n exports[\"pure\"] = pure;\n exports[\"liftA1\"] = liftA1;\n exports[\"unless\"] = unless;\n exports[\"when\"] = when;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.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})(PS[\"Control.Bind\"] = PS[\"Control.Bind\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Bind\"] = $PS[\"Control.Bind\"] || {};\n var exports = $PS[\"Control.Bind\"];\n var $foreign = $PS[\"Control.Bind\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Function = $PS[\"Data.Function\"]; \n var Discard = function (discard) {\n this.discard = discard;\n };\n var Bind = function (Apply0, bind) {\n this.Apply0 = Apply0;\n this.bind = bind;\n };\n var discard = function (dict) {\n return dict.discard;\n }; \n var bindArray = new Bind(function () {\n return Control_Apply.applyArray;\n }, $foreign.arrayBind);\n var bind = function (dict) {\n return dict.bind;\n };\n var bindFlipped = function (dictBind) {\n return Data_Function.flip(bind(dictBind));\n };\n var composeKleisliFlipped = function (dictBind) {\n return function (f) {\n return function (g) {\n return function (a) {\n return bindFlipped(dictBind)(f)(g(a));\n };\n };\n };\n };\n var composeKleisli = function (dictBind) {\n return function (f) {\n return function (g) {\n return function (a) {\n return bind(dictBind)(f(a))(g);\n };\n };\n };\n };\n var discardUnit = new Discard(function (dictBind) {\n return bind(dictBind);\n });\n var join = function (dictBind) {\n return function (m) {\n return bind(dictBind)(m)(Control_Category.identity(Control_Category.categoryFn));\n };\n };\n exports[\"Bind\"] = Bind;\n exports[\"bind\"] = bind;\n exports[\"bindFlipped\"] = bindFlipped;\n exports[\"discard\"] = discard;\n exports[\"join\"] = join;\n exports[\"composeKleisli\"] = composeKleisli;\n exports[\"composeKleisliFlipped\"] = composeKleisliFlipped;\n exports[\"bindArray\"] = bindArray;\n exports[\"discardUnit\"] = discardUnit;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n var refEq = function (r1) {\n return function (r2) {\n return r1 === r2;\n };\n };\n\n exports.eqBooleanImpl = refEq;\n exports.eqIntImpl = refEq; \n exports.eqCharImpl = refEq;\n exports.eqStringImpl = refEq;\n\n exports.eqArrayImpl = function (f) {\n return function (xs) {\n return function (ys) {\n if (xs === ys) return true;\n if (xs.length !== ys.length) return false;\n for (var i = 0; i < xs.length; i++) {\n if (!f(xs[i])(ys[i])) return false;\n }\n return true;\n };\n };\n };\n})(PS[\"Data.Eq\"] = PS[\"Data.Eq\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Eq\"] = $PS[\"Data.Eq\"] || {};\n var exports = $PS[\"Data.Eq\"];\n var $foreign = $PS[\"Data.Eq\"];\n var Eq = function (eq) {\n this.eq = eq;\n }; \n var eqUnit = new Eq(function (v) {\n return function (v1) {\n return true;\n };\n });\n var eqString = new Eq($foreign.eqStringImpl);\n var eqInt = new Eq($foreign.eqIntImpl);\n var eqChar = new Eq($foreign.eqCharImpl);\n var eqBoolean = new Eq($foreign.eqBooleanImpl);\n var eq = function (dict) {\n return dict.eq;\n };\n var eqArray = function (dictEq) {\n return new Eq($foreign.eqArrayImpl(eq(dictEq)));\n };\n exports[\"Eq\"] = Eq;\n exports[\"eq\"] = eq;\n exports[\"eqBoolean\"] = eqBoolean;\n exports[\"eqInt\"] = eqInt;\n exports[\"eqChar\"] = eqChar;\n exports[\"eqString\"] = eqString;\n exports[\"eqUnit\"] = eqUnit;\n exports[\"eqArray\"] = eqArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Maybe\"] = $PS[\"Data.Maybe\"] || {};\n var exports = $PS[\"Data.Maybe\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var Nothing = (function () {\n function Nothing() {\n\n };\n Nothing.value = new Nothing();\n return Nothing;\n })();\n var Just = (function () {\n function Just(value0) {\n this.value0 = value0;\n };\n Just.create = function (value0) {\n return new Just(value0);\n };\n return Just;\n })();\n var maybe = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Nothing) {\n return v;\n };\n if (v2 instanceof Just) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 217, column 1 - line 217, column 51): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n };\n var isNothing = maybe(true)(Data_Function[\"const\"](false));\n var isJust = maybe(false)(Data_Function[\"const\"](true));\n var functorMaybe = new Data_Functor.Functor(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 var fromMaybe = function (a) {\n return maybe(a)(Control_Category.identity(Control_Category.categoryFn));\n };\n var fromJust = function (dictPartial) {\n return function (v) {\n if (v instanceof Just) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 268, column 1 - line 268, column 46): \" + [ v.constructor.name ]);\n };\n }; \n var eqMaybe = function (dictEq) {\n return new Data_Eq.Eq(function (x) {\n return function (y) {\n if (x instanceof Nothing && y instanceof Nothing) {\n return true;\n };\n if (x instanceof Just && y instanceof Just) {\n return Data_Eq.eq(dictEq)(x.value0)(y.value0);\n };\n return false;\n };\n });\n };\n var applyMaybe = new Control_Apply.Apply(function () {\n return functorMaybe;\n }, function (v) {\n return function (v1) {\n if (v instanceof Just) {\n return Data_Functor.map(functorMaybe)(v.value0)(v1);\n };\n if (v instanceof Nothing) {\n return Nothing.value;\n };\n throw new Error(\"Failed pattern match at Data.Maybe (line 67, column 1 - line 69, column 30): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n });\n var bindMaybe = new Control_Bind.Bind(function () {\n return applyMaybe;\n }, 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 var applicativeMaybe = new Control_Applicative.Applicative(function () {\n return applyMaybe;\n }, Just.create);\n exports[\"Nothing\"] = Nothing;\n exports[\"Just\"] = Just;\n exports[\"maybe\"] = maybe;\n exports[\"fromMaybe\"] = fromMaybe;\n exports[\"isJust\"] = isJust;\n exports[\"isNothing\"] = isNothing;\n exports[\"fromJust\"] = fromJust;\n exports[\"functorMaybe\"] = functorMaybe;\n exports[\"applyMaybe\"] = applyMaybe;\n exports[\"applicativeMaybe\"] = applicativeMaybe;\n exports[\"bindMaybe\"] = bindMaybe;\n exports[\"eqMaybe\"] = eqMaybe;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.MediaType.Common\"] = $PS[\"Data.MediaType.Common\"] || {};\n var exports = $PS[\"Data.MediaType.Common\"]; \n var applicationJSON = \"application/json\";\n var applicationFormURLEncoded = \"application/x-www-form-urlencoded\";\n exports[\"applicationFormURLEncoded\"] = applicationFormURLEncoded;\n exports[\"applicationJSON\"] = applicationJSON;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Affjax.RequestBody\"] = $PS[\"Affjax.RequestBody\"] || {};\n var exports = $PS[\"Affjax.RequestBody\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_MediaType_Common = $PS[\"Data.MediaType.Common\"]; \n var ArrayView = (function () {\n function ArrayView(value0) {\n this.value0 = value0;\n };\n ArrayView.create = function (value0) {\n return new ArrayView(value0);\n };\n return ArrayView;\n })();\n var Blob = (function () {\n function Blob(value0) {\n this.value0 = value0;\n };\n Blob.create = function (value0) {\n return new Blob(value0);\n };\n return Blob;\n })();\n var Document = (function () {\n function Document(value0) {\n this.value0 = value0;\n };\n Document.create = function (value0) {\n return new Document(value0);\n };\n return Document;\n })();\n var $$String = (function () {\n function $$String(value0) {\n this.value0 = value0;\n };\n $$String.create = function (value0) {\n return new $$String(value0);\n };\n return $$String;\n })();\n var FormData = (function () {\n function FormData(value0) {\n this.value0 = value0;\n };\n FormData.create = function (value0) {\n return new FormData(value0);\n };\n return FormData;\n })();\n var FormURLEncoded = (function () {\n function FormURLEncoded(value0) {\n this.value0 = value0;\n };\n FormURLEncoded.create = function (value0) {\n return new FormURLEncoded(value0);\n };\n return FormURLEncoded;\n })();\n var Json = (function () {\n function Json(value0) {\n this.value0 = value0;\n };\n Json.create = function (value0) {\n return new Json(value0);\n };\n return Json;\n })();\n var toMediaType = function (v) {\n if (v instanceof FormURLEncoded) {\n return new Data_Maybe.Just(Data_MediaType_Common.applicationFormURLEncoded);\n };\n if (v instanceof Json) {\n return new Data_Maybe.Just(Data_MediaType_Common.applicationJSON);\n };\n return Data_Maybe.Nothing.value;\n };\n var string = $$String.create;\n exports[\"ArrayView\"] = ArrayView;\n exports[\"Blob\"] = Blob;\n exports[\"Document\"] = Document;\n exports[\"String\"] = $$String;\n exports[\"FormData\"] = FormData;\n exports[\"FormURLEncoded\"] = FormURLEncoded;\n exports[\"Json\"] = Json;\n exports[\"string\"] = string;\n exports[\"toMediaType\"] = toMediaType;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.boolConj = function (b1) {\n return function (b2) {\n return b1 && b2;\n };\n };\n\n exports.boolDisj = function (b1) {\n return function (b2) {\n return b1 || b2;\n };\n };\n\n exports.boolNot = function (b) {\n return !b;\n };\n})(PS[\"Data.HeytingAlgebra\"] = PS[\"Data.HeytingAlgebra\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.HeytingAlgebra\"] = $PS[\"Data.HeytingAlgebra\"] || {};\n var exports = $PS[\"Data.HeytingAlgebra\"];\n var $foreign = $PS[\"Data.HeytingAlgebra\"];\n var HeytingAlgebra = function (conj, disj, ff, implies, not, tt) {\n this.conj = conj;\n this.disj = disj;\n this.ff = ff;\n this.implies = implies;\n this.not = not;\n this.tt = tt;\n };\n var tt = function (dict) {\n return dict.tt;\n };\n var not = function (dict) {\n return dict.not;\n };\n var implies = function (dict) {\n return dict.implies;\n };\n var ff = function (dict) {\n return dict.ff;\n };\n var disj = function (dict) {\n return dict.disj;\n };\n var heytingAlgebraBoolean = new HeytingAlgebra($foreign.boolConj, $foreign.boolDisj, false, function (a) {\n return function (b) {\n return disj(heytingAlgebraBoolean)(not(heytingAlgebraBoolean)(a))(b);\n };\n }, $foreign.boolNot, true);\n var conj = function (dict) {\n return dict.conj;\n };\n var heytingAlgebraFunction = function (dictHeytingAlgebra) {\n return new HeytingAlgebra(function (f) {\n return function (g) {\n return function (a) {\n return conj(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n }, function (f) {\n return function (g) {\n return function (a) {\n return disj(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n }, function (v) {\n return ff(dictHeytingAlgebra);\n }, function (f) {\n return function (g) {\n return function (a) {\n return implies(dictHeytingAlgebra)(f(a))(g(a));\n };\n };\n }, function (f) {\n return function (a) {\n return not(dictHeytingAlgebra)(f(a));\n };\n }, function (v) {\n return tt(dictHeytingAlgebra);\n });\n };\n exports[\"ff\"] = ff;\n exports[\"disj\"] = disj;\n exports[\"not\"] = not;\n exports[\"heytingAlgebraBoolean\"] = heytingAlgebraBoolean;\n exports[\"heytingAlgebraFunction\"] = heytingAlgebraFunction;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.concatString = function (s1) {\n return function (s2) {\n return s1 + s2;\n };\n };\n\n exports.concatArray = function (xs) {\n return function (ys) {\n if (xs.length === 0) return ys;\n if (ys.length === 0) return xs;\n return xs.concat(ys);\n };\n };\n})(PS[\"Data.Semigroup\"] = PS[\"Data.Semigroup\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Semigroup\"] = $PS[\"Data.Semigroup\"] || {};\n var exports = $PS[\"Data.Semigroup\"];\n var $foreign = $PS[\"Data.Semigroup\"];\n var Semigroup = function (append) {\n this.append = append;\n }; \n var semigroupString = new Semigroup($foreign.concatString);\n var semigroupArray = new Semigroup($foreign.concatArray);\n var append = function (dict) {\n return dict.append;\n };\n exports[\"Semigroup\"] = Semigroup;\n exports[\"append\"] = append;\n exports[\"semigroupString\"] = semigroupString;\n exports[\"semigroupArray\"] = semigroupArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Monoid\"] = $PS[\"Data.Monoid\"] || {};\n var exports = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Monoid = function (Semigroup0, mempty) {\n this.Semigroup0 = Semigroup0;\n this.mempty = mempty;\n }; \n var monoidString = new Monoid(function () {\n return Data_Semigroup.semigroupString;\n }, \"\"); \n var monoidArray = new Monoid(function () {\n return Data_Semigroup.semigroupArray;\n }, [ ]);\n var mempty = function (dict) {\n return dict.mempty;\n };\n var guard = function (dictMonoid) {\n return function (v) {\n return function (v1) {\n if (v) {\n return v1;\n };\n if (!v) {\n return mempty(dictMonoid);\n };\n throw new Error(\"Failed pattern match at Data.Monoid (line 73, column 1 - line 73, column 49): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n };\n exports[\"Monoid\"] = Monoid;\n exports[\"mempty\"] = mempty;\n exports[\"guard\"] = guard;\n exports[\"monoidString\"] = monoidString;\n exports[\"monoidArray\"] = monoidArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Monoid.Disj\"] = $PS[\"Data.Monoid.Disj\"] || {};\n var exports = $PS[\"Data.Monoid.Disj\"];\n var Data_HeytingAlgebra = $PS[\"Data.HeytingAlgebra\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"]; \n var Disj = function (x) {\n return x;\n };\n var semigroupDisj = function (dictHeytingAlgebra) {\n return new Data_Semigroup.Semigroup(function (v) {\n return function (v1) {\n return Data_HeytingAlgebra.disj(dictHeytingAlgebra)(v)(v1);\n };\n });\n };\n var monoidDisj = function (dictHeytingAlgebra) {\n return new Data_Monoid.Monoid(function () {\n return semigroupDisj(dictHeytingAlgebra);\n }, Data_HeytingAlgebra.ff(dictHeytingAlgebra));\n };\n exports[\"Disj\"] = Disj;\n exports[\"monoidDisj\"] = monoidDisj;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Newtype\"] = $PS[\"Data.Newtype\"] || {};\n var exports = $PS[\"Data.Newtype\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Monoid_Disj = $PS[\"Data.Monoid.Disj\"]; \n var Newtype = function (unwrap, wrap) {\n this.unwrap = unwrap;\n this.wrap = wrap;\n };\n var wrap = function (dict) {\n return dict.wrap;\n };\n var unwrap = function (dict) {\n return dict.unwrap;\n }; \n var newtypeDisj = new Newtype(function (v) {\n return v;\n }, Data_Monoid_Disj.Disj);\n var alaF = function (dictFunctor) {\n return function (dictFunctor1) {\n return function (dictNewtype) {\n return function (dictNewtype1) {\n return function (v) {\n return function (f) {\n var $96 = Data_Functor.map(dictFunctor1)(unwrap(dictNewtype1));\n var $97 = Data_Functor.map(dictFunctor)(wrap(dictNewtype));\n return function ($98) {\n return $96(f($97($98)));\n };\n };\n };\n };\n };\n };\n };\n exports[\"unwrap\"] = unwrap;\n exports[\"Newtype\"] = Newtype;\n exports[\"alaF\"] = alaF;\n exports[\"newtypeDisj\"] = newtypeDisj;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.MediaType\"] = $PS[\"Data.MediaType\"] || {};\n var exports = $PS[\"Data.MediaType\"];\n var Data_Newtype = $PS[\"Data.Newtype\"]; \n var MediaType = function (x) {\n return x;\n }; \n var newtypeMediaType = new Data_Newtype.Newtype(function (n) {\n return n;\n }, MediaType);\n exports[\"newtypeMediaType\"] = newtypeMediaType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Affjax.RequestHeader\"] = $PS[\"Affjax.RequestHeader\"] || {};\n var exports = $PS[\"Affjax.RequestHeader\"];\n var Data_MediaType = $PS[\"Data.MediaType\"];\n var Data_Newtype = $PS[\"Data.Newtype\"]; \n var Accept = (function () {\n function Accept(value0) {\n this.value0 = value0;\n };\n Accept.create = function (value0) {\n return new Accept(value0);\n };\n return Accept;\n })();\n var ContentType = (function () {\n function ContentType(value0) {\n this.value0 = value0;\n };\n ContentType.create = function (value0) {\n return new ContentType(value0);\n };\n return ContentType;\n })();\n var RequestHeader = (function () {\n function RequestHeader(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n RequestHeader.create = function (value0) {\n return function (value1) {\n return new RequestHeader(value0, value1);\n };\n };\n return RequestHeader;\n })();\n var value = function (v) {\n if (v instanceof Accept) {\n return Data_Newtype.unwrap(Data_MediaType.newtypeMediaType)(v.value0);\n };\n if (v instanceof ContentType) {\n return Data_Newtype.unwrap(Data_MediaType.newtypeMediaType)(v.value0);\n };\n if (v instanceof RequestHeader) {\n return v.value1;\n };\n throw new Error(\"Failed pattern match at Affjax.RequestHeader (line 26, column 1 - line 26, column 33): \" + [ v.constructor.name ]);\n }; \n var name = function (v) {\n if (v instanceof Accept) {\n return \"Accept\";\n };\n if (v instanceof ContentType) {\n return \"Content-Type\";\n };\n if (v instanceof RequestHeader) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Affjax.RequestHeader (line 21, column 1 - line 21, column 32): \" + [ v.constructor.name ]);\n };\n exports[\"Accept\"] = Accept;\n exports[\"ContentType\"] = ContentType;\n exports[\"RequestHeader\"] = RequestHeader;\n exports[\"name\"] = name;\n exports[\"value\"] = value;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Affjax.ResponseFormat\"] = $PS[\"Affjax.ResponseFormat\"] || {};\n var exports = $PS[\"Affjax.ResponseFormat\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_MediaType_Common = $PS[\"Data.MediaType.Common\"];\n var $$ArrayBuffer = (function () {\n function $$ArrayBuffer(value0) {\n this.value0 = value0;\n };\n $$ArrayBuffer.create = function (value0) {\n return new $$ArrayBuffer(value0);\n };\n return $$ArrayBuffer;\n })();\n var Blob = (function () {\n function Blob(value0) {\n this.value0 = value0;\n };\n Blob.create = function (value0) {\n return new Blob(value0);\n };\n return Blob;\n })();\n var Document = (function () {\n function Document(value0) {\n this.value0 = value0;\n };\n Document.create = function (value0) {\n return new Document(value0);\n };\n return Document;\n })();\n var Json = (function () {\n function Json(value0) {\n this.value0 = value0;\n };\n Json.create = function (value0) {\n return new Json(value0);\n };\n return Json;\n })();\n var $$String = (function () {\n function $$String(value0) {\n this.value0 = value0;\n };\n $$String.create = function (value0) {\n return new $$String(value0);\n };\n return $$String;\n })();\n var Ignore = (function () {\n function Ignore(value0) {\n this.value0 = value0;\n };\n Ignore.create = function (value0) {\n return new Ignore(value0);\n };\n return Ignore;\n })();\n var toResponseType = function (v) {\n if (v instanceof $$ArrayBuffer) {\n return \"arraybuffer\";\n };\n if (v instanceof Blob) {\n return \"blob\";\n };\n if (v instanceof Document) {\n return \"document\";\n };\n if (v instanceof Json) {\n return \"text\";\n };\n if (v instanceof $$String) {\n return \"text\";\n };\n if (v instanceof Ignore) {\n return \"\";\n };\n throw new Error(\"Failed pattern match at Affjax.ResponseFormat (line 46, column 3 - line 52, column 19): \" + [ v.constructor.name ]);\n };\n var toMediaType = function (v) {\n if (v instanceof Json) {\n return new Data_Maybe.Just(Data_MediaType_Common.applicationJSON);\n };\n return Data_Maybe.Nothing.value;\n };\n var string = new $$String(Control_Category.identity(Control_Category.categoryFn));\n var json = new Json(Control_Category.identity(Control_Category.categoryFn));\n var ignore = new Ignore(Control_Category.identity(Control_Category.categoryFn));\n exports[\"ArrayBuffer\"] = $$ArrayBuffer;\n exports[\"Blob\"] = Blob;\n exports[\"Document\"] = Document;\n exports[\"Json\"] = Json;\n exports[\"String\"] = $$String;\n exports[\"Ignore\"] = Ignore;\n exports[\"json\"] = json;\n exports[\"string\"] = string;\n exports[\"ignore\"] = ignore;\n exports[\"toResponseType\"] = toResponseType;\n exports[\"toMediaType\"] = toMediaType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Affjax.ResponseHeader\"] = $PS[\"Affjax.ResponseHeader\"] || {};\n var exports = $PS[\"Affjax.ResponseHeader\"]; \n var ResponseHeader = (function () {\n function ResponseHeader(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ResponseHeader.create = function (value0) {\n return function (value1) {\n return new ResponseHeader(value0, value1);\n };\n };\n return ResponseHeader;\n })();\n exports[\"ResponseHeader\"] = ResponseHeader;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Bifunctor\"] = $PS[\"Data.Bifunctor\"] || {};\n var exports = $PS[\"Data.Bifunctor\"];\n var Control_Category = $PS[\"Control.Category\"]; \n var Bifunctor = function (bimap) {\n this.bimap = bimap;\n };\n var bimap = function (dict) {\n return dict.bimap;\n };\n var lmap = function (dictBifunctor) {\n return function (f) {\n return bimap(dictBifunctor)(f)(Control_Category.identity(Control_Category.categoryFn));\n };\n };\n var rmap = function (dictBifunctor) {\n return bimap(dictBifunctor)(Control_Category.identity(Control_Category.categoryFn));\n };\n exports[\"bimap\"] = bimap;\n exports[\"Bifunctor\"] = Bifunctor;\n exports[\"lmap\"] = lmap;\n exports[\"rmap\"] = rmap;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.foldrArray = function (f) {\n return function (init) {\n return function (xs) {\n var acc = init;\n var len = xs.length;\n for (var i = len - 1; i >= 0; i--) {\n acc = f(xs[i])(acc);\n }\n return acc;\n };\n };\n };\n\n exports.foldlArray = function (f) {\n return function (init) {\n return function (xs) {\n var acc = init;\n var len = xs.length;\n for (var i = 0; i < len; i++) {\n acc = f(acc)(xs[i]);\n }\n return acc;\n };\n };\n };\n})(PS[\"Data.Foldable\"] = PS[\"Data.Foldable\"] || {});\n(function(exports) {\n \"use strict\";\n\n var unsafeCompareImpl = function (lt) {\n return function (eq) {\n return function (gt) {\n return function (x) {\n return function (y) {\n return x < y ? lt : x === y ? eq : gt;\n };\n };\n };\n };\n }; \n exports.ordIntImpl = unsafeCompareImpl; \n exports.ordStringImpl = unsafeCompareImpl;\n exports.ordCharImpl = unsafeCompareImpl;\n})(PS[\"Data.Ord\"] = PS[\"Data.Ord\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Ordering\"] = $PS[\"Data.Ordering\"] || {};\n var exports = $PS[\"Data.Ordering\"];\n var Data_Eq = $PS[\"Data.Eq\"]; \n var LT = (function () {\n function LT() {\n\n };\n LT.value = new LT();\n return LT;\n })();\n var GT = (function () {\n function GT() {\n\n };\n GT.value = new GT();\n return GT;\n })();\n var EQ = (function () {\n function EQ() {\n\n };\n EQ.value = new EQ();\n return EQ;\n })();\n var eqOrdering = new Data_Eq.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 exports[\"LT\"] = LT;\n exports[\"GT\"] = GT;\n exports[\"EQ\"] = EQ;\n exports[\"eqOrdering\"] = eqOrdering;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Ord\"] = $PS[\"Data.Ord\"] || {};\n var exports = $PS[\"Data.Ord\"];\n var $foreign = $PS[\"Data.Ord\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Ordering = $PS[\"Data.Ordering\"];\n var Ord = function (Eq0, compare) {\n this.Eq0 = Eq0;\n this.compare = compare;\n }; \n var ordUnit = new Ord(function () {\n return Data_Eq.eqUnit;\n }, function (v) {\n return function (v1) {\n return Data_Ordering.EQ.value;\n };\n });\n var ordString = new Ord(function () {\n return Data_Eq.eqString;\n }, $foreign.ordStringImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value));\n var ordInt = new Ord(function () {\n return Data_Eq.eqInt;\n }, $foreign.ordIntImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value));\n var ordChar = new Ord(function () {\n return Data_Eq.eqChar;\n }, $foreign.ordCharImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value));\n var compare = function (dict) {\n return dict.compare;\n };\n var comparing = function (dictOrd) {\n return function (f) {\n return function (x) {\n return function (y) {\n return compare(dictOrd)(f(x))(f(y));\n };\n };\n };\n };\n exports[\"Ord\"] = Ord;\n exports[\"compare\"] = compare;\n exports[\"comparing\"] = comparing;\n exports[\"ordInt\"] = ordInt;\n exports[\"ordString\"] = ordString;\n exports[\"ordChar\"] = ordChar;\n exports[\"ordUnit\"] = ordUnit;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Foldable\"] = $PS[\"Data.Foldable\"] || {};\n var exports = $PS[\"Data.Foldable\"];\n var $foreign = $PS[\"Data.Foldable\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Monoid_Disj = $PS[\"Data.Monoid.Disj\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Ordering = $PS[\"Data.Ordering\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var Foldable = function (foldMap, foldl, foldr) {\n this.foldMap = foldMap;\n this.foldl = foldl;\n this.foldr = foldr;\n };\n var foldr = function (dict) {\n return dict.foldr;\n };\n var traverse_ = function (dictApplicative) {\n return function (dictFoldable) {\n return function (f) {\n return foldr(dictFoldable)((function () {\n var $197 = Control_Apply.applySecond(dictApplicative.Apply0());\n return function ($198) {\n return $197(f($198));\n };\n })())(Control_Applicative.pure(dictApplicative)(Data_Unit.unit));\n };\n };\n };\n var for_ = function (dictApplicative) {\n return function (dictFoldable) {\n return Data_Function.flip(traverse_(dictApplicative)(dictFoldable));\n };\n };\n var foldl = function (dict) {\n return dict.foldl;\n };\n var intercalate = function (dictFoldable) {\n return function (dictMonoid) {\n return function (sep) {\n return function (xs) {\n var go = function (v) {\n return function (x) {\n if (v.init) {\n return {\n init: false,\n acc: x\n };\n };\n return {\n init: false,\n acc: Data_Semigroup.append(dictMonoid.Semigroup0())(v.acc)(Data_Semigroup.append(dictMonoid.Semigroup0())(sep)(x))\n };\n };\n };\n return (foldl(dictFoldable)(go)({\n init: true,\n acc: Data_Monoid.mempty(dictMonoid)\n })(xs)).acc;\n };\n };\n };\n };\n var maximumBy = function (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 $116 = Data_Eq.eq(Data_Ordering.eqOrdering)(cmp(v.value0)(v1))(Data_Ordering.GT.value);\n if ($116) {\n return v.value0;\n };\n return v1;\n })());\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 389, column 3 - line 389, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n return foldl(dictFoldable)(max$prime)(Data_Maybe.Nothing.value);\n };\n };\n var maximum = function (dictOrd) {\n return function (dictFoldable) {\n return maximumBy(dictFoldable)(Data_Ord.compare(dictOrd));\n };\n };\n var minimumBy = function (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 $120 = Data_Eq.eq(Data_Ordering.eqOrdering)(cmp(v.value0)(v1))(Data_Ordering.LT.value);\n if ($120) {\n return v.value0;\n };\n return v1;\n })());\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 402, column 3 - line 402, column 27): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n return foldl(dictFoldable)(min$prime)(Data_Maybe.Nothing.value);\n };\n };\n var minimum = function (dictOrd) {\n return function (dictFoldable) {\n return minimumBy(dictFoldable)(Data_Ord.compare(dictOrd));\n };\n }; \n var foldableMaybe = new Foldable(function (dictMonoid) {\n return function (f) {\n return function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Data_Monoid.mempty(dictMonoid);\n };\n if (v instanceof Data_Maybe.Just) {\n return f(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 129, column 1 - line 135, column 27): \" + [ f.constructor.name, v.constructor.name ]);\n };\n };\n }, function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return z;\n };\n if (v1 instanceof Data_Maybe.Just) {\n return v(z)(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 129, column 1 - line 135, column 27): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n }, function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return z;\n };\n if (v1 instanceof Data_Maybe.Just) {\n return v(v1.value0)(z);\n };\n throw new Error(\"Failed pattern match at Data.Foldable (line 129, column 1 - line 135, column 27): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n });\n var foldMapDefaultR = function (dictFoldable) {\n return function (dictMonoid) {\n return function (f) {\n return foldr(dictFoldable)(function (x) {\n return function (acc) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(f(x))(acc);\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n };\n };\n var foldableArray = new Foldable(function (dictMonoid) {\n return foldMapDefaultR(foldableArray)(dictMonoid);\n }, $foreign.foldlArray, $foreign.foldrArray);\n var foldMap = function (dict) {\n return dict.foldMap;\n };\n var find = function (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 foldl(dictFoldable)(go)(Data_Maybe.Nothing.value);\n };\n };\n var any = function (dictFoldable) {\n return function (dictHeytingAlgebra) {\n return Data_Newtype.alaF(Data_Functor.functorFn)(Data_Functor.functorFn)(Data_Newtype.newtypeDisj)(Data_Newtype.newtypeDisj)(Data_Monoid_Disj.Disj)(foldMap(dictFoldable)(Data_Monoid_Disj.monoidDisj(dictHeytingAlgebra)));\n };\n };\n exports[\"Foldable\"] = Foldable;\n exports[\"foldr\"] = foldr;\n exports[\"foldl\"] = foldl;\n exports[\"foldMap\"] = foldMap;\n exports[\"traverse_\"] = traverse_;\n exports[\"for_\"] = for_;\n exports[\"intercalate\"] = intercalate;\n exports[\"any\"] = any;\n exports[\"find\"] = find;\n exports[\"maximum\"] = maximum;\n exports[\"minimum\"] = minimum;\n exports[\"foldableArray\"] = foldableArray;\n exports[\"foldableMaybe\"] = foldableMaybe;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Either\"] = $PS[\"Data.Either\"] || {};\n var exports = $PS[\"Data.Either\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"]; \n var Left = (function () {\n function Left(value0) {\n this.value0 = value0;\n };\n Left.create = function (value0) {\n return new Left(value0);\n };\n return Left;\n })();\n var Right = (function () {\n function Right(value0) {\n this.value0 = value0;\n };\n Right.create = function (value0) {\n return new Right(value0);\n };\n return Right;\n })();\n var note = function (a) {\n return Data_Maybe.maybe(new Left(a))(Right.create);\n };\n var functorEither = new Data_Functor.Functor(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 38, column 1 - line 38, column 52): \" + [ m.constructor.name ]);\n };\n });\n var foldableEither = new Data_Foldable.Foldable(function (dictMonoid) {\n return function (f) {\n return function (v) {\n if (v instanceof Left) {\n return Data_Monoid.mempty(dictMonoid);\n };\n if (v instanceof Right) {\n return f(v.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 187, column 1 - line 193, column 28): \" + [ f.constructor.name, v.constructor.name ]);\n };\n };\n }, function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Left) {\n return z;\n };\n if (v1 instanceof Right) {\n return v(z)(v1.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 187, column 1 - line 193, column 28): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n }, function (v) {\n return function (z) {\n return function (v1) {\n if (v1 instanceof Left) {\n return z;\n };\n if (v1 instanceof Right) {\n return v(v1.value0)(z);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 187, column 1 - line 193, column 28): \" + [ v.constructor.name, z.constructor.name, v1.constructor.name ]);\n };\n };\n });\n var either = function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Left) {\n return v(v2.value0);\n };\n if (v2 instanceof Right) {\n return v1(v2.value0);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 238, column 1 - line 238, column 64): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n };\n var hush = either(Data_Function[\"const\"](Data_Maybe.Nothing.value))(Data_Maybe.Just.create);\n var bifunctorEither = new Data_Bifunctor.Bifunctor(function (v) {\n return function (v1) {\n return function (v2) {\n if (v2 instanceof Left) {\n return new Left(v(v2.value0));\n };\n if (v2 instanceof Right) {\n return new Right(v1(v2.value0));\n };\n throw new Error(\"Failed pattern match at Data.Either (line 46, column 1 - line 48, column 36): \" + [ v.constructor.name, v1.constructor.name, v2.constructor.name ]);\n };\n };\n });\n var applyEither = new Control_Apply.Apply(function () {\n return functorEither;\n }, function (v) {\n return function (v1) {\n if (v instanceof Left) {\n return new Left(v.value0);\n };\n if (v instanceof Right) {\n return Data_Functor.map(functorEither)(v.value0)(v1);\n };\n throw new Error(\"Failed pattern match at Data.Either (line 82, column 1 - line 84, column 30): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n });\n var bindEither = new Control_Bind.Bind(function () {\n return applyEither;\n }, 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 var applicativeEither = new Control_Applicative.Applicative(function () {\n return applyEither;\n }, Right.create);\n exports[\"Left\"] = Left;\n exports[\"Right\"] = Right;\n exports[\"either\"] = either;\n exports[\"note\"] = note;\n exports[\"hush\"] = hush;\n exports[\"functorEither\"] = functorEither;\n exports[\"bifunctorEither\"] = bifunctorEither;\n exports[\"applyEither\"] = applyEither;\n exports[\"applicativeEither\"] = applicativeEither;\n exports[\"bindEither\"] = bindEither;\n exports[\"foldableEither\"] = foldableEither;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Error.Class\"] = $PS[\"Control.Monad.Error.Class\"] || {};\n var exports = $PS[\"Control.Monad.Error.Class\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var MonadThrow = function (Monad0, throwError) {\n this.Monad0 = Monad0;\n this.throwError = throwError;\n };\n var MonadError = function (MonadThrow0, catchError) {\n this.MonadThrow0 = MonadThrow0;\n this.catchError = catchError;\n };\n var throwError = function (dict) {\n return dict.throwError;\n }; \n var catchError = function (dict) {\n return dict.catchError;\n };\n var $$try = function (dictMonadError) {\n return function (a) {\n return catchError(dictMonadError)(Data_Functor.map(((((dictMonadError.MonadThrow0()).Monad0()).Bind1()).Apply0()).Functor0())(Data_Either.Right.create)(a))((function () {\n var $17 = Control_Applicative.pure(((dictMonadError.MonadThrow0()).Monad0()).Applicative0());\n return function ($18) {\n return $17(Data_Either.Left.create($18));\n };\n })());\n };\n };\n exports[\"throwError\"] = throwError;\n exports[\"MonadThrow\"] = MonadThrow;\n exports[\"MonadError\"] = MonadError;\n exports[\"try\"] = $$try;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad\"] = $PS[\"Control.Monad\"] || {};\n var exports = $PS[\"Control.Monad\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"]; \n var Monad = function (Applicative0, Bind1) {\n this.Applicative0 = Applicative0;\n this.Bind1 = Bind1;\n };\n var whenM = function (dictMonad) {\n return function (mb) {\n return function (m) {\n return Control_Bind.bind(dictMonad.Bind1())(mb)(function (b) {\n return Control_Applicative.when(dictMonad.Applicative0())(b)(m);\n });\n };\n };\n };\n var unlessM = function (dictMonad) {\n return function (mb) {\n return function (m) {\n return Control_Bind.bind(dictMonad.Bind1())(mb)(function (b) {\n return Control_Applicative.unless(dictMonad.Applicative0())(b)(m);\n });\n };\n };\n };\n var ap = function (dictMonad) {\n return function (f) {\n return function (a) {\n return Control_Bind.bind(dictMonad.Bind1())(f)(function (f$prime) {\n return Control_Bind.bind(dictMonad.Bind1())(a)(function (a$prime) {\n return Control_Applicative.pure(dictMonad.Applicative0())(f$prime(a$prime));\n });\n });\n };\n };\n };\n exports[\"Monad\"] = Monad;\n exports[\"ap\"] = ap;\n exports[\"whenM\"] = whenM;\n exports[\"unlessM\"] = unlessM;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Except.Trans\"] = $PS[\"Control.Monad.Except.Trans\"] || {};\n var exports = $PS[\"Control.Monad.Except.Trans\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var ExceptT = function (x) {\n return x;\n };\n var runExceptT = function (v) {\n return v;\n }; \n var mapExceptT = function (f) {\n return function (v) {\n return f(v);\n };\n };\n var functorExceptT = function (dictFunctor) {\n return new Data_Functor.Functor(function (f) {\n return mapExceptT(Data_Functor.map(dictFunctor)(Data_Functor.map(Data_Either.functorEither)(f)));\n });\n };\n var monadExceptT = function (dictMonad) {\n return new Control_Monad.Monad(function () {\n return applicativeExceptT(dictMonad);\n }, function () {\n return bindExceptT(dictMonad);\n });\n };\n var bindExceptT = function (dictMonad) {\n return new Control_Bind.Bind(function () {\n return applyExceptT(dictMonad);\n }, function (v) {\n return function (k) {\n return Control_Bind.bind(dictMonad.Bind1())(v)(Data_Either.either((function () {\n var $90 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($91) {\n return $90(Data_Either.Left.create($91));\n };\n })())(function (a) {\n var v1 = k(a);\n return v1;\n }));\n };\n });\n };\n var applyExceptT = function (dictMonad) {\n return new Control_Apply.Apply(function () {\n return functorExceptT(((dictMonad.Bind1()).Apply0()).Functor0());\n }, Control_Monad.ap(monadExceptT(dictMonad)));\n };\n var applicativeExceptT = function (dictMonad) {\n return new Control_Applicative.Applicative(function () {\n return applyExceptT(dictMonad);\n }, (function () {\n var $92 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($93) {\n return ExceptT($92(Data_Either.Right.create($93)));\n };\n })());\n };\n var monadThrowExceptT = function (dictMonad) {\n return new Control_Monad_Error_Class.MonadThrow(function () {\n return monadExceptT(dictMonad);\n }, (function () {\n var $102 = Control_Applicative.pure(dictMonad.Applicative0());\n return function ($103) {\n return ExceptT($102(Data_Either.Left.create($103)));\n };\n })());\n };\n exports[\"ExceptT\"] = ExceptT;\n exports[\"runExceptT\"] = runExceptT;\n exports[\"mapExceptT\"] = mapExceptT;\n exports[\"functorExceptT\"] = functorExceptT;\n exports[\"applicativeExceptT\"] = applicativeExceptT;\n exports[\"bindExceptT\"] = bindExceptT;\n exports[\"monadThrowExceptT\"] = monadThrowExceptT;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Identity\"] = $PS[\"Data.Identity\"] || {};\n var exports = $PS[\"Data.Identity\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Newtype = $PS[\"Data.Newtype\"]; \n var Identity = function (x) {\n return x;\n };\n var newtypeIdentity = new Data_Newtype.Newtype(function (n) {\n return n;\n }, Identity);\n var functorIdentity = new Data_Functor.Functor(function (f) {\n return function (m) {\n return f(m);\n };\n });\n var applyIdentity = new Control_Apply.Apply(function () {\n return functorIdentity;\n }, function (v) {\n return function (v1) {\n return v(v1);\n };\n });\n var bindIdentity = new Control_Bind.Bind(function () {\n return applyIdentity;\n }, function (v) {\n return function (f) {\n return f(v);\n };\n });\n var applicativeIdentity = new Control_Applicative.Applicative(function () {\n return applyIdentity;\n }, Identity);\n var monadIdentity = new Control_Monad.Monad(function () {\n return applicativeIdentity;\n }, function () {\n return bindIdentity;\n });\n exports[\"Identity\"] = Identity;\n exports[\"newtypeIdentity\"] = newtypeIdentity;\n exports[\"functorIdentity\"] = functorIdentity;\n exports[\"applicativeIdentity\"] = applicativeIdentity;\n exports[\"monadIdentity\"] = monadIdentity;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Except\"] = $PS[\"Control.Monad.Except\"] || {};\n var exports = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_Newtype = $PS[\"Data.Newtype\"]; \n var runExcept = (function () {\n var $0 = Data_Newtype.unwrap(Data_Identity.newtypeIdentity);\n return function ($1) {\n return $0(Control_Monad_Except_Trans.runExceptT($1));\n };\n })();\n var mapExcept = function (f) {\n return Control_Monad_Except_Trans.mapExceptT((function () {\n var $2 = Data_Newtype.unwrap(Data_Identity.newtypeIdentity);\n return function ($3) {\n return Data_Identity.Identity(f($2($3)));\n };\n })());\n };\n exports[\"runExcept\"] = runExcept;\n exports[\"mapExcept\"] = mapExcept;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n function id(x) {\n return x;\n } \n exports.fromObject = id;\n\n exports.stringify = function (j) {\n return JSON.stringify(j);\n };\n\n function isArray(a) {\n return Object.prototype.toString.call(a) === \"[object Array]\";\n }\n\n exports._caseJson = function (isNull, isBool, isNum, isStr, isArr, isObj, j) {\n if (j == null) return isNull();\n else if (typeof j === \"boolean\") return isBool(j);\n else if (typeof j === \"number\") return isNum(j);\n else if (typeof j === \"string\") return isStr(j);\n else if (Object.prototype.toString.call(j) === \"[object Array]\")\n return isArr(j);\n else return isObj(j);\n };\n})(PS[\"Data.Argonaut.Core\"] = PS[\"Data.Argonaut.Core\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports._copyST = function (m) {\n return function () {\n var r = {};\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n r[k] = m[k];\n }\n }\n return r;\n };\n };\n\n exports.empty = {};\n\n exports.runST = function (f) {\n return f();\n };\n\n exports._fmapObject = function (m0, f) {\n var m = {};\n for (var k in m0) {\n if (hasOwnProperty.call(m0, k)) {\n m[k] = f(m0[k]);\n }\n }\n return m;\n };\n\n exports._mapWithKey = function (m0, f) {\n var m = {};\n for (var k in m0) {\n if (hasOwnProperty.call(m0, k)) {\n m[k] = f(k)(m0[k]);\n }\n }\n return m;\n };\n\n exports._foldM = function (bind) {\n return function (f) {\n return function (mz) {\n return function (m) {\n var acc = mz;\n function g(k) {\n return function (z) {\n return f(z)(k)(m[k]);\n };\n }\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n acc = bind(acc)(g(k));\n }\n }\n return acc;\n };\n };\n };\n };\n\n exports._lookup = function (no, yes, k, m) {\n return k in m ? yes(m[k]) : no;\n };\n\n function toArrayWithKey(f) {\n return function (m) {\n var r = [];\n for (var k in m) {\n if (hasOwnProperty.call(m, k)) {\n r.push(f(k)(m[k]));\n }\n }\n return r;\n };\n }\n\n exports.toArrayWithKey = toArrayWithKey;\n})(PS[\"Foreign.Object\"] = PS[\"Foreign.Object\"] || {});\n(function(exports) {\n \"use strict\";\n\n //------------------------------------------------------------------------------\n // Array size ------------------------------------------------------------------\n //------------------------------------------------------------------------------\n\n exports.length = function (xs) {\n return xs.length;\n };\n\n //------------------------------------------------------------------------------\n // Extending arrays ------------------------------------------------------------\n //------------------------------------------------------------------------------\n\n exports.cons = function (e) {\n return function (l) {\n return [e].concat(l);\n };\n };\n\n exports.snoc = function (l) {\n return function (e) {\n var l1 = l.slice();\n l1.push(e);\n return l1;\n };\n };\n\n exports.filter = function (f) {\n return function (xs) {\n return xs.filter(f);\n };\n };\n\n //------------------------------------------------------------------------------\n // Sorting ---------------------------------------------------------------------\n //------------------------------------------------------------------------------\n\n exports.sortImpl = function (f) {\n return function (l) {\n return l.slice().sort(function (x, y) {\n return f(x)(y);\n });\n };\n };\n\n exports.drop = function (n) {\n return function (l) {\n return n < 1 ? l : l.slice(n);\n };\n };\n\n //------------------------------------------------------------------------------\n // Partial ---------------------------------------------------------------------\n //------------------------------------------------------------------------------\n\n exports.unsafeIndexImpl = function (xs) {\n return function (n) {\n return xs[n];\n };\n };\n})(PS[\"Data.Array\"] = PS[\"Data.Array\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Boolean\"] = $PS[\"Data.Boolean\"] || {};\n var exports = $PS[\"Data.Boolean\"];\n var otherwise = true;\n exports[\"otherwise\"] = otherwise;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Tuple\"] = $PS[\"Data.Tuple\"] || {};\n var exports = $PS[\"Data.Tuple\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Ordering = $PS[\"Data.Ordering\"]; \n var Tuple = (function () {\n function Tuple(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Tuple.create = function (value0) {\n return function (value1) {\n return new Tuple(value0, value1);\n };\n };\n return Tuple;\n })();\n var uncurry = function (f) {\n return function (v) {\n return f(v.value0)(v.value1);\n };\n };\n var snd = function (v) {\n return v.value1;\n };\n var functorTuple = new Data_Functor.Functor(function (f) {\n return function (m) {\n return new Tuple(m.value0, f(m.value1));\n };\n }); \n var fst = function (v) {\n return v.value0;\n }; \n var eqTuple = function (dictEq) {\n return function (dictEq1) {\n return new Data_Eq.Eq(function (x) {\n return function (y) {\n return Data_Eq.eq(dictEq)(x.value0)(y.value0) && Data_Eq.eq(dictEq1)(x.value1)(y.value1);\n };\n });\n };\n };\n var ordTuple = function (dictOrd) {\n return function (dictOrd1) {\n return new Data_Ord.Ord(function () {\n return eqTuple(dictOrd.Eq0())(dictOrd1.Eq0());\n }, function (x) {\n return function (y) {\n var v = Data_Ord.compare(dictOrd)(x.value0)(y.value0);\n if (v instanceof Data_Ordering.LT) {\n return Data_Ordering.LT.value;\n };\n if (v instanceof Data_Ordering.GT) {\n return Data_Ordering.GT.value;\n };\n return Data_Ord.compare(dictOrd1)(x.value1)(y.value1);\n };\n });\n };\n };\n exports[\"Tuple\"] = Tuple;\n exports[\"fst\"] = fst;\n exports[\"snd\"] = snd;\n exports[\"uncurry\"] = uncurry;\n exports[\"ordTuple\"] = ordTuple;\n exports[\"functorTuple\"] = functorTuple;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unfoldrArrayImpl = function (isNothing) {\n return function (fromJust) {\n return function (fst) {\n return function (snd) {\n return function (f) {\n return function (b) {\n var result = [];\n var value = b;\n while (true) { // eslint-disable-line no-constant-condition\n var maybe = f(value);\n if (isNothing(maybe)) return result;\n var tuple = fromJust(maybe);\n result.push(fst(tuple));\n value = snd(tuple);\n }\n };\n };\n };\n };\n };\n };\n})(PS[\"Data.Unfoldable\"] = PS[\"Data.Unfoldable\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.unfoldr1ArrayImpl = function (isNothing) {\n return function (fromJust) {\n return function (fst) {\n return function (snd) {\n return function (f) {\n return function (b) {\n var result = [];\n var value = b;\n while (true) { // eslint-disable-line no-constant-condition\n var tuple = f(value);\n result.push(fst(tuple));\n var maybe = snd(tuple);\n if (isNothing(maybe)) return result;\n value = fromJust(maybe);\n }\n };\n };\n };\n };\n };\n };\n})(PS[\"Data.Unfoldable1\"] = PS[\"Data.Unfoldable1\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Unfoldable1\"] = $PS[\"Data.Unfoldable1\"] || {};\n var exports = $PS[\"Data.Unfoldable1\"];\n var $foreign = $PS[\"Data.Unfoldable1\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var Unfoldable1 = function (unfoldr1) {\n this.unfoldr1 = unfoldr1;\n };\n var unfoldable1Array = new Unfoldable1($foreign.unfoldr1ArrayImpl(Data_Maybe.isNothing)(Data_Maybe.fromJust())(Data_Tuple.fst)(Data_Tuple.snd));\n exports[\"unfoldable1Array\"] = unfoldable1Array;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Unfoldable\"] = $PS[\"Data.Unfoldable\"] || {};\n var exports = $PS[\"Data.Unfoldable\"];\n var $foreign = $PS[\"Data.Unfoldable\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unfoldable1 = $PS[\"Data.Unfoldable1\"]; \n var Unfoldable = function (Unfoldable10, unfoldr) {\n this.Unfoldable10 = Unfoldable10;\n this.unfoldr = unfoldr;\n };\n var unfoldr = function (dict) {\n return dict.unfoldr;\n };\n var unfoldableArray = new Unfoldable(function () {\n return Data_Unfoldable1.unfoldable1Array;\n }, $foreign.unfoldrArrayImpl(Data_Maybe.isNothing)(Data_Maybe.fromJust())(Data_Tuple.fst)(Data_Tuple.snd));\n exports[\"unfoldr\"] = unfoldr;\n exports[\"unfoldableArray\"] = unfoldableArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Array\"] = $PS[\"Data.Array\"] || {};\n var exports = $PS[\"Data.Array\"];\n var $foreign = $PS[\"Data.Array\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ordering = $PS[\"Data.Ordering\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unfoldable = $PS[\"Data.Unfoldable\"]; \n var unsafeIndex = function (dictPartial) {\n return $foreign.unsafeIndexImpl;\n }; \n var toUnfoldable = function (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(unsafeIndex()(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 143, column 3 - line 145, column 26): \" + [ i.constructor.name ]);\n };\n return Data_Unfoldable.unfoldr(dictUnfoldable)(f)(0);\n };\n }; \n var sortBy = function (comp) {\n return function (xs) {\n var comp$prime = function (x) {\n return function (y) {\n var v = comp(x)(y);\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 702, column 15 - line 705, column 13): \" + [ v.constructor.name ]);\n };\n };\n return $foreign.sortImpl(comp$prime)(xs);\n };\n };\n var singleton = function (a) {\n return [ a ];\n };\n var concatMap = Data_Function.flip(Control_Bind.bind(Control_Bind.bindArray));\n var mapMaybe = function (f) {\n return concatMap((function () {\n var $94 = Data_Maybe.maybe([ ])(singleton);\n return function ($95) {\n return $94(f($95));\n };\n })());\n };\n exports[\"toUnfoldable\"] = toUnfoldable;\n exports[\"singleton\"] = singleton;\n exports[\"mapMaybe\"] = mapMaybe;\n exports[\"sortBy\"] = sortBy;\n exports[\"length\"] = $foreign.length;\n exports[\"cons\"] = $foreign.cons;\n exports[\"snoc\"] = $foreign.snoc;\n exports[\"filter\"] = $foreign.filter;\n exports[\"drop\"] = $foreign.drop;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.FoldableWithIndex\"] = $PS[\"Data.FoldableWithIndex\"] || {};\n var exports = $PS[\"Data.FoldableWithIndex\"];\n var FoldableWithIndex = function (Foldable0, foldMapWithIndex, foldlWithIndex, foldrWithIndex) {\n this.Foldable0 = Foldable0;\n this.foldMapWithIndex = foldMapWithIndex;\n this.foldlWithIndex = foldlWithIndex;\n this.foldrWithIndex = foldrWithIndex;\n };\n exports[\"FoldableWithIndex\"] = FoldableWithIndex;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.runFn4 = function (fn) {\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return fn(a, b, c, d);\n };\n };\n };\n };\n };\n})(PS[\"Data.Function.Uncurried\"] = PS[\"Data.Function.Uncurried\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Function.Uncurried\"] = $PS[\"Data.Function.Uncurried\"] || {};\n var exports = $PS[\"Data.Function.Uncurried\"];\n var $foreign = $PS[\"Data.Function.Uncurried\"];\n exports[\"runFn4\"] = $foreign.runFn4;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.FunctorWithIndex\"] = $PS[\"Data.FunctorWithIndex\"] || {};\n var exports = $PS[\"Data.FunctorWithIndex\"]; \n var FunctorWithIndex = function (Functor0, mapWithIndex) {\n this.Functor0 = Functor0;\n this.mapWithIndex = mapWithIndex;\n };\n exports[\"FunctorWithIndex\"] = FunctorWithIndex;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // jshint maxparams: 3\n\n exports.traverseArrayImpl = function () {\n function array1(a) {\n return [a];\n }\n\n function array2(a) {\n return function (b) {\n return [a, b];\n };\n }\n\n function array3(a) {\n return function (b) {\n return function (c) {\n return [a, b, c];\n };\n };\n }\n\n function concat2(xs) {\n return function (ys) {\n return xs.concat(ys);\n };\n }\n\n return function (apply) {\n return function (map) {\n return function (pure) {\n return function (f) {\n return function (array) {\n function go(bot, top) {\n switch (top - bot) {\n case 0: return pure([]);\n case 1: return map(array1)(f(array[bot]));\n case 2: return apply(map(array2)(f(array[bot])))(f(array[bot + 1]));\n case 3: return apply(apply(map(array3)(f(array[bot])))(f(array[bot + 1])))(f(array[bot + 2]));\n default:\n // This slightly tricky pivot selection aims to produce two\n // even-length partitions where possible.\n var pivot = bot + Math.floor((top - bot) / 4) * 2;\n return apply(map(concat2)(go(bot, pivot)))(go(pivot, top));\n }\n }\n return go(0, array.length);\n };\n };\n };\n };\n };\n }();\n})(PS[\"Data.Traversable\"] = PS[\"Data.Traversable\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Traversable\"] = $PS[\"Data.Traversable\"] || {};\n var exports = $PS[\"Data.Traversable\"];\n var $foreign = $PS[\"Data.Traversable\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var Traversable = function (Foldable1, Functor0, sequence, traverse) {\n this.Foldable1 = Foldable1;\n this.Functor0 = Functor0;\n this.sequence = sequence;\n this.traverse = traverse;\n };\n var traverse = function (dict) {\n return dict.traverse;\n }; \n var sequenceDefault = function (dictTraversable) {\n return function (dictApplicative) {\n return traverse(dictTraversable)(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n };\n };\n var traversableArray = new Traversable(function () {\n return Data_Foldable.foldableArray;\n }, function () {\n return Data_Functor.functorArray;\n }, function (dictApplicative) {\n return sequenceDefault(traversableArray)(dictApplicative);\n }, function (dictApplicative) {\n return $foreign.traverseArrayImpl(Control_Apply.apply(dictApplicative.Apply0()))(Data_Functor.map((dictApplicative.Apply0()).Functor0()))(Control_Applicative.pure(dictApplicative));\n });\n exports[\"Traversable\"] = Traversable;\n exports[\"traverse\"] = traverse;\n exports[\"traversableArray\"] = traversableArray;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.TraversableWithIndex\"] = $PS[\"Data.TraversableWithIndex\"] || {};\n var exports = $PS[\"Data.TraversableWithIndex\"]; \n var TraversableWithIndex = function (FoldableWithIndex1, FunctorWithIndex0, Traversable2, traverseWithIndex) {\n this.FoldableWithIndex1 = FoldableWithIndex1;\n this.FunctorWithIndex0 = FunctorWithIndex0;\n this.Traversable2 = Traversable2;\n this.traverseWithIndex = traverseWithIndex;\n };\n var traverseWithIndex = function (dict) {\n return dict.traverseWithIndex;\n };\n exports[\"TraversableWithIndex\"] = TraversableWithIndex;\n exports[\"traverseWithIndex\"] = traverseWithIndex;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports[\"new\"] = function () {\n return {};\n };\n\n exports.poke = function (k) {\n return function (v) {\n return function (m) {\n return function () {\n m[k] = v;\n return m;\n };\n };\n };\n };\n})(PS[\"Foreign.Object.ST\"] = PS[\"Foreign.Object.ST\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Foreign.Object.ST\"] = $PS[\"Foreign.Object.ST\"] || {};\n var exports = $PS[\"Foreign.Object.ST\"];\n var $foreign = $PS[\"Foreign.Object.ST\"];\n exports[\"new\"] = $foreign[\"new\"];\n exports[\"poke\"] = $foreign.poke;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Foreign.Object\"] = $PS[\"Foreign.Object\"] || {};\n var exports = $PS[\"Foreign.Object\"];\n var $foreign = $PS[\"Foreign.Object\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_FoldableWithIndex = $PS[\"Data.FoldableWithIndex\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Function_Uncurried = $PS[\"Data.Function.Uncurried\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_FunctorWithIndex = $PS[\"Data.FunctorWithIndex\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Traversable = $PS[\"Data.Traversable\"];\n var Data_TraversableWithIndex = $PS[\"Data.TraversableWithIndex\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Foreign_Object_ST = $PS[\"Foreign.Object.ST\"]; \n var values = $foreign.toArrayWithKey(function (v) {\n return function (v1) {\n return v1;\n };\n });\n var toUnfoldable = function (dictUnfoldable) {\n var $36 = Data_Array.toUnfoldable(dictUnfoldable);\n var $37 = $foreign.toArrayWithKey(Data_Tuple.Tuple.create);\n return function ($38) {\n return $36($37($38));\n };\n }; \n var thawST = $foreign[\"_copyST\"];\n var mutate = function (f) {\n return function (m) {\n return $foreign.runST(function __do() {\n var s = thawST(m)();\n f(s)();\n return s;\n });\n };\n }; \n var mapWithKey = function (f) {\n return function (m) {\n return $foreign[\"_mapWithKey\"](m, f);\n };\n };\n var lookup = Data_Function_Uncurried.runFn4($foreign[\"_lookup\"])(Data_Maybe.Nothing.value)(Data_Maybe.Just.create);\n var insert = function (k) {\n return function (v) {\n return mutate(Foreign_Object_ST.poke(k)(v));\n };\n };\n var functorObject = new Data_Functor.Functor(function (f) {\n return function (m) {\n return $foreign[\"_fmapObject\"](m, f);\n };\n });\n var functorWithIndexObject = new Data_FunctorWithIndex.FunctorWithIndex(function () {\n return functorObject;\n }, mapWithKey);\n var fold = $foreign[\"_foldM\"](Data_Function.applyFlipped);\n var foldMap = function (dictMonoid) {\n return function (f) {\n return fold(function (acc) {\n return function (k) {\n return function (v) {\n return Data_Semigroup.append(dictMonoid.Semigroup0())(acc)(f(k)(v));\n };\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n };\n var foldableObject = new Data_Foldable.Foldable(function (dictMonoid) {\n return function (f) {\n return foldMap(dictMonoid)(Data_Function[\"const\"](f));\n };\n }, function (f) {\n return fold(function (z) {\n return function (v) {\n return f(z);\n };\n });\n }, function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldr(Data_Foldable.foldableArray)(f)(z)(values(m));\n };\n };\n });\n var foldableWithIndexObject = new Data_FoldableWithIndex.FoldableWithIndex(function () {\n return foldableObject;\n }, function (dictMonoid) {\n return foldMap(dictMonoid);\n }, function (f) {\n return fold(Data_Function.flip(f));\n }, function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldr(Data_Foldable.foldableArray)(Data_Tuple.uncurry(f))(z)($foreign.toArrayWithKey(Data_Tuple.Tuple.create)(m));\n };\n };\n });\n var traversableWithIndexObject = new Data_TraversableWithIndex.TraversableWithIndex(function () {\n return foldableWithIndexObject;\n }, function () {\n return functorWithIndexObject;\n }, function () {\n return traversableObject;\n }, function (dictApplicative) {\n return function (f) {\n return function (ms) {\n return fold(function (acc) {\n return function (k) {\n return function (v) {\n return Control_Apply.apply(dictApplicative.Apply0())(Data_Functor.map((dictApplicative.Apply0()).Functor0())(Data_Function.flip(insert(k)))(acc))(f(k)(v));\n };\n };\n })(Control_Applicative.pure(dictApplicative)($foreign.empty))(ms);\n };\n };\n });\n var traversableObject = new Data_Traversable.Traversable(function () {\n return foldableObject;\n }, function () {\n return functorObject;\n }, function (dictApplicative) {\n return Data_Traversable.traverse(traversableObject)(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n }, function (dictApplicative) {\n var $43 = Data_TraversableWithIndex.traverseWithIndex(traversableWithIndexObject)(dictApplicative);\n return function ($44) {\n return $43(Data_Function[\"const\"]($44));\n };\n });\n exports[\"lookup\"] = lookup;\n exports[\"toUnfoldable\"] = toUnfoldable;\n exports[\"values\"] = values;\n exports[\"traversableObject\"] = traversableObject;\n exports[\"empty\"] = $foreign.empty;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Argonaut.Core\"] = $PS[\"Data.Argonaut.Core\"] || {};\n var exports = $PS[\"Data.Argonaut.Core\"];\n var $foreign = $PS[\"Data.Argonaut.Core\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Foreign_Object = $PS[\"Foreign.Object\"]; \n var verbJsonType = function (def) {\n return function (f) {\n return function (g) {\n return g(def)(f);\n };\n };\n };\n var toJsonType = verbJsonType(Data_Maybe.Nothing.value)(Data_Maybe.Just.create);\n var jsonEmptyObject = $foreign.fromObject(Foreign_Object.empty);\n var caseJsonObject = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, j);\n };\n };\n }; \n var toObject = toJsonType(caseJsonObject);\n var caseJsonNumber = function (d) {\n return function (f) {\n return function (j) {\n return $foreign[\"_caseJson\"](Data_Function[\"const\"](d), Data_Function[\"const\"](d), f, Data_Function[\"const\"](d), Data_Function[\"const\"](d), Data_Function[\"const\"](d), j);\n };\n };\n };\n exports[\"caseJsonNumber\"] = caseJsonNumber;\n exports[\"toObject\"] = toObject;\n exports[\"jsonEmptyObject\"] = jsonEmptyObject;\n exports[\"stringify\"] = $foreign.stringify;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._jsonParser = function (fail, succ, s) {\n try {\n return succ(JSON.parse(s));\n }\n catch (e) {\n return fail(e.message);\n }\n };\n})(PS[\"Data.Argonaut.Parser\"] = PS[\"Data.Argonaut.Parser\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Argonaut.Parser\"] = $PS[\"Data.Argonaut.Parser\"] || {};\n var exports = $PS[\"Data.Argonaut.Parser\"];\n var $foreign = $PS[\"Data.Argonaut.Parser\"];\n var Data_Either = $PS[\"Data.Either\"]; \n var jsonParser = function (j) {\n return $foreign[\"_jsonParser\"](Data_Either.Left.create, Data_Either.Right.create, j);\n };\n exports[\"jsonParser\"] = jsonParser;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.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\n exports.split = function (sep) {\n return function (s) {\n return s.split(sep);\n };\n };\n\n exports.toLower = function (s) {\n return s.toLowerCase();\n };\n\n exports.joinWith = function (s) {\n return function (xs) {\n return xs.join(s);\n };\n };\n})(PS[\"Data.String.Common\"] = PS[\"Data.String.Common\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.String.Common\"] = $PS[\"Data.String.Common\"] || {};\n var exports = $PS[\"Data.String.Common\"];\n var $foreign = $PS[\"Data.String.Common\"]; \n var $$null = function (s) {\n return s === \"\";\n };\n exports[\"null\"] = $$null;\n exports[\"replaceAll\"] = $foreign.replaceAll;\n exports[\"split\"] = $foreign.split;\n exports[\"toLower\"] = $foreign.toLower;\n exports[\"joinWith\"] = $foreign.joinWith;\n})(PS);\n(function(exports) {\n /* globals exports */\n \"use strict\"; \n\n var encdecURI = function (encdec) {\n return function (fail, succ, s) {\n try {\n return succ(encdec(s));\n }\n catch (e) {\n return fail(e.message);\n }\n };\n }; \n exports._encodeURIComponent = encdecURI(encodeURIComponent);\n})(PS[\"Global\"] = PS[\"Global\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Global\"] = $PS[\"Global\"] || {};\n var exports = $PS[\"Global\"];\n var $foreign = $PS[\"Global\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var $$encodeURIComponent = function (s) {\n return $foreign[\"_encodeURIComponent\"](Data_Function[\"const\"](Data_Maybe.Nothing.value), Data_Maybe.Just.create, s);\n };\n exports[\"encodeURIComponent\"] = $$encodeURIComponent;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.FormURLEncoded\"] = $PS[\"Data.FormURLEncoded\"] || {};\n var exports = $PS[\"Data.FormURLEncoded\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Traversable = $PS[\"Data.Traversable\"];\n var Global = $PS[\"Global\"];\n var toArray = function (v) {\n return v;\n }; \n var encode = (function () {\n var encodePart = function (v) {\n if (v.value1 instanceof Data_Maybe.Nothing) {\n return Global[\"encodeURIComponent\"](v.value0);\n };\n if (v.value1 instanceof Data_Maybe.Just) {\n return Control_Apply.apply(Data_Maybe.applyMaybe)(Data_Functor.map(Data_Maybe.functorMaybe)(function (key) {\n return function (val) {\n return key + (\"=\" + val);\n };\n })(Global[\"encodeURIComponent\"](v.value0)))(Global[\"encodeURIComponent\"](v.value1.value0));\n };\n throw new Error(\"Failed pattern match at Data.FormURLEncoded (line 37, column 18 - line 39, column 108): \" + [ v.constructor.name ]);\n };\n var $19 = Data_Functor.map(Data_Maybe.functorMaybe)(Data_String_Common.joinWith(\"&\"));\n var $20 = Data_Traversable.traverse(Data_Traversable.traversableArray)(Data_Maybe.applicativeMaybe)(encodePart);\n return function ($21) {\n return $19($20(toArray($21)));\n };\n })();\n exports[\"encode\"] = encode;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.showIntImpl = function (n) {\n return n.toString();\n };\n\n exports.showNumberImpl = function (n) {\n var str = n.toString();\n return isNaN(str + \".0\") ? str : str + \".0\";\n };\n})(PS[\"Data.Show\"] = PS[\"Data.Show\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Show\"] = $PS[\"Data.Show\"] || {};\n var exports = $PS[\"Data.Show\"];\n var $foreign = $PS[\"Data.Show\"];\n var Show = function (show) {\n this.show = show;\n };\n var showNumber = new Show($foreign.showNumberImpl);\n var showInt = new Show($foreign.showIntImpl);\n var show = function (dict) {\n return dict.show;\n };\n exports[\"Show\"] = Show;\n exports[\"show\"] = show;\n exports[\"showInt\"] = showInt;\n exports[\"showNumber\"] = showNumber;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.HTTP.Method\"] = $PS[\"Data.HTTP.Method\"] || {};\n var exports = $PS[\"Data.HTTP.Method\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Show = $PS[\"Data.Show\"]; \n var OPTIONS = (function () {\n function OPTIONS() {\n\n };\n OPTIONS.value = new OPTIONS();\n return OPTIONS;\n })();\n var GET = (function () {\n function GET() {\n\n };\n GET.value = new GET();\n return GET;\n })();\n var HEAD = (function () {\n function HEAD() {\n\n };\n HEAD.value = new HEAD();\n return HEAD;\n })();\n var POST = (function () {\n function POST() {\n\n };\n POST.value = new POST();\n return POST;\n })();\n var PUT = (function () {\n function PUT() {\n\n };\n PUT.value = new PUT();\n return PUT;\n })();\n var DELETE = (function () {\n function DELETE() {\n\n };\n DELETE.value = new DELETE();\n return DELETE;\n })();\n var TRACE = (function () {\n function TRACE() {\n\n };\n TRACE.value = new TRACE();\n return TRACE;\n })();\n var CONNECT = (function () {\n function CONNECT() {\n\n };\n CONNECT.value = new CONNECT();\n return CONNECT;\n })();\n var PROPFIND = (function () {\n function PROPFIND() {\n\n };\n PROPFIND.value = new PROPFIND();\n return PROPFIND;\n })();\n var PROPPATCH = (function () {\n function PROPPATCH() {\n\n };\n PROPPATCH.value = new PROPPATCH();\n return PROPPATCH;\n })();\n var MKCOL = (function () {\n function MKCOL() {\n\n };\n MKCOL.value = new MKCOL();\n return MKCOL;\n })();\n var COPY = (function () {\n function COPY() {\n\n };\n COPY.value = new COPY();\n return COPY;\n })();\n var MOVE = (function () {\n function MOVE() {\n\n };\n MOVE.value = new MOVE();\n return MOVE;\n })();\n var LOCK = (function () {\n function LOCK() {\n\n };\n LOCK.value = new LOCK();\n return LOCK;\n })();\n var UNLOCK = (function () {\n function UNLOCK() {\n\n };\n UNLOCK.value = new UNLOCK();\n return UNLOCK;\n })();\n var PATCH = (function () {\n function PATCH() {\n\n };\n PATCH.value = new PATCH();\n return PATCH;\n })();\n var unCustomMethod = function (v) {\n return v;\n };\n var showMethod = new Data_Show.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 40, column 1 - line 56, column 23): \" + [ v.constructor.name ]);\n });\n var print = Data_Either.either(Data_Show.show(showMethod))(unCustomMethod);\n exports[\"GET\"] = GET;\n exports[\"POST\"] = POST;\n exports[\"DELETE\"] = DELETE;\n exports[\"print\"] = print;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Alt\"] = $PS[\"Control.Alt\"] || {};\n var exports = $PS[\"Control.Alt\"]; \n var Alt = function (Functor0, alt) {\n this.Functor0 = Functor0;\n this.alt = alt;\n };\n exports[\"Alt\"] = Alt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Plus\"] = $PS[\"Control.Plus\"] || {};\n var exports = $PS[\"Control.Plus\"]; \n var Plus = function (Alt0, empty) {\n this.Alt0 = Alt0;\n this.empty = empty;\n }; \n var empty = function (dict) {\n return dict.empty;\n };\n exports[\"Plus\"] = Plus;\n exports[\"empty\"] = empty;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.List.Types\"] = $PS[\"Data.List.Types\"] || {};\n var exports = $PS[\"Data.List.Types\"];\n var Control_Alt = $PS[\"Control.Alt\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Plus = $PS[\"Control.Plus\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"]; \n var Nil = (function () {\n function Nil() {\n\n };\n Nil.value = new Nil();\n return Nil;\n })();\n var Cons = (function () {\n function Cons(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Cons.create = function (value0) {\n return function (value1) {\n return new Cons(value0, value1);\n };\n };\n return Cons;\n })();\n var NonEmptyList = function (x) {\n return x;\n };\n var listMap = function (f) {\n var chunkedRevMap = function ($copy_chunksAcc) {\n return function ($copy_v) {\n var $tco_var_chunksAcc = $copy_chunksAcc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(chunksAcc, v) {\n if (v instanceof Cons && (v.value1 instanceof Cons && v.value1.value1 instanceof Cons)) {\n $tco_var_chunksAcc = new Cons(v, chunksAcc);\n $copy_v = v.value1.value1.value1;\n return;\n };\n var unrolledMap = function (v1) {\n if (v1 instanceof Cons && (v1.value1 instanceof Cons && v1.value1.value1 instanceof Nil)) {\n return new Cons(f(v1.value0), new Cons(f(v1.value1.value0), Nil.value));\n };\n if (v1 instanceof Cons && v1.value1 instanceof Nil) {\n return new Cons(f(v1.value0), Nil.value);\n };\n return Nil.value;\n };\n var reverseUnrolledMap = function ($copy_v1) {\n return function ($copy_acc) {\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v1, acc) {\n if (v1 instanceof Cons && (v1.value0 instanceof Cons && (v1.value0.value1 instanceof Cons && v1.value0.value1.value1 instanceof Cons))) {\n $tco_var_v1 = v1.value1;\n $copy_acc = new Cons(f(v1.value0.value0), new Cons(f(v1.value0.value1.value0), new Cons(f(v1.value0.value1.value1.value0), acc)));\n return;\n };\n $tco_done = true;\n return acc;\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v1, $copy_acc);\n };\n return $tco_result;\n };\n };\n $tco_done = true;\n return reverseUnrolledMap(chunksAcc)(unrolledMap(v));\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_chunksAcc, $copy_v);\n };\n return $tco_result;\n };\n };\n return chunkedRevMap(Nil.value);\n };\n var functorList = new Data_Functor.Functor(listMap); \n var foldableList = new Data_Foldable.Foldable(function (dictMonoid) {\n return function (f) {\n return Data_Foldable.foldl(foldableList)(function (acc) {\n var $202 = Data_Semigroup.append(dictMonoid.Semigroup0())(acc);\n return function ($203) {\n return $202(f($203));\n };\n })(Data_Monoid.mempty(dictMonoid));\n };\n }, function (f) {\n var go = function ($copy_b) {\n return function ($copy_v) {\n var $tco_var_b = $copy_b;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(b, v) {\n if (v instanceof Nil) {\n $tco_done = 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 109, column 12 - line 111, column 30): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_b, $copy_v);\n };\n return $tco_result;\n };\n };\n return go;\n }, function (f) {\n return function (b) {\n var rev = Data_Foldable.foldl(foldableList)(Data_Function.flip(Cons.create))(Nil.value);\n var $204 = Data_Foldable.foldl(foldableList)(Data_Function.flip(f))(b);\n return function ($205) {\n return $204(rev($205));\n };\n };\n });\n var semigroupList = new Data_Semigroup.Semigroup(function (xs) {\n return function (ys) {\n return Data_Foldable.foldr(foldableList)(Cons.create)(ys)(xs);\n };\n });\n var applyList = new Control_Apply.Apply(function () {\n return functorList;\n }, function (v) {\n return function (v1) {\n if (v instanceof Nil) {\n return Nil.value;\n };\n if (v instanceof Cons) {\n return Data_Semigroup.append(semigroupList)(Data_Functor.map(functorList)(v.value0)(v1))(Control_Apply.apply(applyList)(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.List.Types (line 155, column 1 - line 157, column 48): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n });\n var applicativeList = new Control_Applicative.Applicative(function () {\n return applyList;\n }, function (a) {\n return new Cons(a, Nil.value);\n }); \n var altList = new Control_Alt.Alt(function () {\n return functorList;\n }, Data_Semigroup.append(semigroupList));\n var plusList = new Control_Plus.Plus(function () {\n return altList;\n }, Nil.value);\n exports[\"Nil\"] = Nil;\n exports[\"Cons\"] = Cons;\n exports[\"NonEmptyList\"] = NonEmptyList;\n exports[\"semigroupList\"] = semigroupList;\n exports[\"foldableList\"] = foldableList;\n exports[\"applicativeList\"] = applicativeList;\n exports[\"plusList\"] = plusList;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.NonEmpty\"] = $PS[\"Data.NonEmpty\"] || {};\n var exports = $PS[\"Data.NonEmpty\"];\n var Control_Plus = $PS[\"Control.Plus\"]; \n var NonEmpty = (function () {\n function NonEmpty(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n NonEmpty.create = function (value0) {\n return function (value1) {\n return new NonEmpty(value0, value1);\n };\n };\n return NonEmpty;\n })();\n var singleton = function (dictPlus) {\n return function (a) {\n return new NonEmpty(a, Control_Plus.empty(dictPlus));\n };\n };\n exports[\"NonEmpty\"] = NonEmpty;\n exports[\"singleton\"] = singleton;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.List.NonEmpty\"] = $PS[\"Data.List.NonEmpty\"] || {};\n var exports = $PS[\"Data.List.NonEmpty\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_NonEmpty = $PS[\"Data.NonEmpty\"];\n var singleton = (function () {\n var $168 = Data_NonEmpty.singleton(Data_List_Types.plusList);\n return function ($169) {\n return Data_List_Types.NonEmptyList($168($169));\n };\n })();\n var head = function (v) {\n return v.value0;\n };\n var cons = function (y) {\n return function (v) {\n return new Data_NonEmpty.NonEmpty(y, new Data_List_Types.Cons(v.value0, v.value1));\n };\n };\n exports[\"singleton\"] = singleton;\n exports[\"cons\"] = cons;\n exports[\"head\"] = head;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports[\"null\"] = null;\n\n exports.nullable = function (a, r, f) {\n return a == null ? r : f(a);\n };\n\n exports.notNull = function (x) {\n return x;\n };\n})(PS[\"Data.Nullable\"] = PS[\"Data.Nullable\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Nullable\"] = $PS[\"Data.Nullable\"] || {};\n var exports = $PS[\"Data.Nullable\"];\n var $foreign = $PS[\"Data.Nullable\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var toNullable = Data_Maybe.maybe($foreign[\"null\"])($foreign.notNull);\n var toMaybe = function (n) {\n return $foreign.nullable(n, Data_Maybe.Nothing.value, Data_Maybe.Just.create);\n };\n exports[\"toMaybe\"] = toMaybe;\n exports[\"toNullable\"] = toNullable;\n})(PS);\n(function(exports) {\n /* globals setImmediate, clearImmediate, setTimeout, clearTimeout */\n /* jshint -W083, -W098, -W003 */\n \"use strict\";\n\n var Aff = function () {\n // A unique value for empty.\n var EMPTY = {};\n\n /*\n\n An awkward approximation. We elide evidence we would otherwise need in PS for\n efficiency sake.\n\n data Aff eff a\n = Pure a\n | Throw Error\n | Catch (Aff eff a) (Error -> Aff eff a)\n | Sync (Eff eff a)\n | Async ((Either Error a -> Eff eff Unit) -> Eff eff (Canceler eff))\n | forall b. Bind (Aff eff b) (b -> Aff eff a)\n | forall b. Bracket (Aff eff b) (BracketConditions eff b) (b -> Aff eff a)\n | forall b. Fork Boolean (Aff eff b) ?(Fiber eff b -> a)\n | Sequential (ParAff aff a)\n\n */ \n var PURE = \"Pure\";\n var THROW = \"Throw\";\n var CATCH = \"Catch\";\n var SYNC = \"Sync\";\n var ASYNC = \"Async\";\n var BIND = \"Bind\";\n var BRACKET = \"Bracket\";\n var FORK = \"Fork\";\n var SEQ = \"Sequential\";\n\n /*\n\n data ParAff eff a\n = forall b. Map (b -> a) (ParAff eff b)\n | forall b. Apply (ParAff eff (b -> a)) (ParAff eff b)\n | Alt (ParAff eff a) (ParAff eff a)\n | ?Par (Aff eff a)\n\n */ \n var MAP = \"Map\";\n var APPLY = \"Apply\";\n var ALT = \"Alt\";\n\n // Various constructors used in interpretation\n var CONS = \"Cons\"; // Cons-list, for stacks\n var RESUME = \"Resume\"; // Continue indiscriminately\n var RELEASE = \"Release\"; // Continue with bracket finalizers\n var FINALIZER = \"Finalizer\"; // A non-interruptible effect\n var FINALIZED = \"Finalized\"; // Marker for finalization\n var FORKED = \"Forked\"; // Reference to a forked fiber, with resumption stack\n var FIBER = \"Fiber\"; // Actual fiber reference\n var THUNK = \"Thunk\"; // Primed effect, ready to invoke\n\n function Aff(tag, _1, _2, _3) {\n this.tag = tag;\n this._1 = _1;\n this._2 = _2;\n this._3 = _3;\n }\n\n function AffCtr(tag) {\n var fn = function (_1, _2, _3) {\n return new Aff(tag, _1, _2, _3);\n };\n fn.tag = tag;\n return fn;\n }\n\n function nonCanceler(error) {\n return new Aff(PURE, void 0);\n }\n\n function runEff(eff) {\n try {\n eff();\n } catch (error) {\n setTimeout(function () {\n throw error;\n }, 0);\n }\n }\n\n function runSync(left, right, eff) {\n try {\n return right(eff());\n } catch (error) {\n return left(error);\n }\n }\n\n function runAsync(left, eff, k) {\n try {\n return eff(k)();\n } catch (error) {\n k(left(error))();\n return nonCanceler;\n }\n }\n\n var Scheduler = function () {\n var limit = 1024;\n var size = 0;\n var ix = 0;\n var queue = new Array(limit);\n var draining = false;\n\n function drain() {\n var thunk;\n draining = true;\n while (size !== 0) {\n size--;\n thunk = queue[ix];\n queue[ix] = void 0;\n ix = (ix + 1) % limit;\n thunk();\n }\n draining = false;\n }\n\n return {\n isDraining: function () {\n return draining;\n },\n enqueue: function (cb) {\n var i, tmp;\n if (size === limit) {\n tmp = draining;\n drain();\n draining = tmp;\n }\n\n queue[(ix + size) % limit] = cb;\n size++;\n\n if (!draining) {\n drain();\n }\n }\n };\n }();\n\n function Supervisor(util) {\n var fibers = {};\n var fiberId = 0;\n var count = 0;\n\n return {\n register: function (fiber) {\n var fid = fiberId++;\n fiber.onComplete({\n rethrow: true,\n handler: function (result) {\n return function () {\n count--;\n delete fibers[fid];\n };\n }\n })();\n fibers[fid] = fiber;\n count++;\n },\n isEmpty: function () {\n return count === 0;\n },\n killAll: function (killError, cb) {\n return function () {\n if (count === 0) {\n return cb();\n }\n\n var killCount = 0;\n var kills = {};\n\n function kill(fid) {\n kills[fid] = fibers[fid].kill(killError, function (result) {\n return function () {\n delete kills[fid];\n killCount--;\n if (util.isLeft(result) && util.fromLeft(result)) {\n setTimeout(function () {\n throw util.fromLeft(result);\n }, 0);\n }\n if (killCount === 0) {\n cb();\n }\n };\n })();\n }\n\n for (var k in fibers) {\n if (fibers.hasOwnProperty(k)) {\n killCount++;\n kill(k);\n }\n }\n\n fibers = {};\n fiberId = 0;\n count = 0;\n\n return function (error) {\n return new Aff(SYNC, function () {\n for (var k in kills) {\n if (kills.hasOwnProperty(k)) {\n kills[k]();\n }\n }\n });\n };\n };\n }\n };\n }\n\n // Fiber state machine\n var SUSPENDED = 0; // Suspended, pending a join.\n var CONTINUE = 1; // Interpret the next instruction.\n var STEP_BIND = 2; // Apply the next bind.\n var STEP_RESULT = 3; // Handle potential failure from a result.\n var PENDING = 4; // An async effect is running.\n var RETURN = 5; // The current stack has returned.\n var COMPLETED = 6; // The entire fiber has completed.\n\n function Fiber(util, supervisor, aff) {\n // Monotonically increasing tick, increased on each asynchronous turn.\n var runTick = 0;\n\n // The current branch of the state machine.\n var status = SUSPENDED;\n\n // The current point of interest for the state machine branch.\n var step = aff; // Successful step\n var fail = null; // Failure step\n var interrupt = null; // Asynchronous interrupt\n\n // Stack of continuations for the current fiber.\n var bhead = null;\n var btail = null;\n\n // Stack of attempts and finalizers for error recovery. Every `Cons` is also\n // tagged with current `interrupt` state. We use this to track which items\n // should be ignored or evaluated as a result of a kill.\n var attempts = null;\n\n // A special state is needed for Bracket, because it cannot be killed. When\n // we enter a bracket acquisition or finalizer, we increment the counter,\n // and then decrement once complete.\n var bracketCount = 0;\n\n // Each join gets a new id so they can be revoked.\n var joinId = 0;\n var joins = null;\n var rethrow = true;\n\n // Each invocation of `run` requires a tick. When an asynchronous effect is\n // resolved, we must check that the local tick coincides with the fiber\n // tick before resuming. This prevents multiple async continuations from\n // accidentally resuming the same fiber. A common example may be invoking\n // the provided callback in `makeAff` more than once, but it may also be an\n // async effect resuming after the fiber was already cancelled.\n function run(localRunTick) {\n var tmp, result, attempt;\n while (true) {\n tmp = null;\n result = null;\n attempt = null;\n\n switch (status) {\n case STEP_BIND:\n status = CONTINUE;\n try {\n step = bhead(step);\n if (btail === null) {\n bhead = null;\n } else {\n bhead = btail._1;\n btail = btail._2;\n }\n } catch (e) {\n status = RETURN;\n fail = util.left(e);\n step = null;\n }\n break;\n\n case STEP_RESULT:\n if (util.isLeft(step)) {\n status = RETURN;\n fail = step;\n step = null;\n } else if (bhead === null) {\n status = RETURN;\n } else {\n status = STEP_BIND;\n step = util.fromRight(step);\n }\n break;\n\n case CONTINUE:\n switch (step.tag) {\n case BIND:\n if (bhead) {\n btail = new Aff(CONS, bhead, btail);\n }\n bhead = step._2;\n status = CONTINUE;\n step = step._1;\n break;\n\n case PURE:\n if (bhead === null) {\n status = RETURN;\n step = util.right(step._1);\n } else {\n status = STEP_BIND;\n step = step._1;\n }\n break;\n\n case SYNC:\n status = STEP_RESULT;\n step = runSync(util.left, util.right, step._1);\n break;\n\n case ASYNC:\n status = PENDING;\n step = runAsync(util.left, step._1, function (result) {\n return function () {\n if (runTick !== localRunTick) {\n return;\n }\n runTick++;\n Scheduler.enqueue(function () {\n // It's possible to interrupt the fiber between enqueuing and\n // resuming, so we need to check that the runTick is still\n // valid.\n if (runTick !== localRunTick + 1) {\n return;\n }\n status = STEP_RESULT;\n step = result;\n run(runTick);\n });\n };\n });\n return;\n\n case THROW:\n status = RETURN;\n fail = util.left(step._1);\n step = null;\n break;\n\n // Enqueue the Catch so that we can call the error handler later on\n // in case of an exception.\n case CATCH:\n if (bhead === null) {\n attempts = new Aff(CONS, step, attempts, interrupt);\n } else {\n attempts = new Aff(CONS, step, new Aff(CONS, new Aff(RESUME, bhead, btail), attempts, interrupt), interrupt);\n }\n bhead = null;\n btail = null;\n status = CONTINUE;\n step = step._1;\n break;\n\n // Enqueue the Bracket so that we can call the appropriate handlers\n // after resource acquisition.\n case BRACKET:\n bracketCount++;\n if (bhead === null) {\n attempts = new Aff(CONS, step, attempts, interrupt);\n } else {\n attempts = new Aff(CONS, step, new Aff(CONS, new Aff(RESUME, bhead, btail), attempts, interrupt), interrupt);\n }\n bhead = null;\n btail = null;\n status = CONTINUE;\n step = step._1;\n break;\n\n case FORK:\n status = STEP_RESULT;\n tmp = Fiber(util, supervisor, step._2);\n if (supervisor) {\n supervisor.register(tmp);\n }\n if (step._1) {\n tmp.run();\n }\n step = util.right(tmp);\n break;\n\n case SEQ:\n status = CONTINUE;\n step = sequential(util, supervisor, step._1);\n break;\n }\n break;\n\n case RETURN:\n bhead = null;\n btail = null;\n // If the current stack has returned, and we have no other stacks to\n // resume or finalizers to run, the fiber has halted and we can\n // invoke all join callbacks. Otherwise we need to resume.\n if (attempts === null) {\n status = COMPLETED;\n step = interrupt || fail || step;\n } else {\n // The interrupt status for the enqueued item.\n tmp = attempts._3;\n attempt = attempts._1;\n attempts = attempts._2;\n\n switch (attempt.tag) {\n // We cannot recover from an unmasked interrupt. Otherwise we should\n // continue stepping, or run the exception handler if an exception\n // was raised.\n case CATCH:\n // We should compare the interrupt status as well because we\n // only want it to apply if there has been an interrupt since\n // enqueuing the catch.\n if (interrupt && interrupt !== tmp && bracketCount === 0) {\n status = RETURN;\n } else if (fail) {\n status = CONTINUE;\n step = attempt._2(util.fromLeft(fail));\n fail = null;\n }\n break;\n\n // We cannot resume from an unmasked interrupt or exception.\n case RESUME:\n // As with Catch, we only want to ignore in the case of an\n // interrupt since enqueing the item.\n if (interrupt && interrupt !== tmp && bracketCount === 0 || fail) {\n status = RETURN;\n } else {\n bhead = attempt._1;\n btail = attempt._2;\n status = STEP_BIND;\n step = util.fromRight(step);\n }\n break;\n\n // If we have a bracket, we should enqueue the handlers,\n // and continue with the success branch only if the fiber has\n // not been interrupted. If the bracket acquisition failed, we\n // should not run either.\n case BRACKET:\n bracketCount--;\n if (fail === null) {\n result = util.fromRight(step);\n // We need to enqueue the Release with the same interrupt\n // status as the Bracket that is initiating it.\n attempts = new Aff(CONS, new Aff(RELEASE, attempt._2, result), attempts, tmp);\n // We should only coninue as long as the interrupt status has not changed or\n // we are currently within a non-interruptable finalizer.\n if (interrupt === tmp || bracketCount > 0) {\n status = CONTINUE;\n step = attempt._3(result);\n }\n }\n break;\n\n // Enqueue the appropriate handler. We increase the bracket count\n // because it should not be cancelled.\n case RELEASE:\n attempts = new Aff(CONS, new Aff(FINALIZED, step, fail), attempts, interrupt);\n status = CONTINUE;\n // It has only been killed if the interrupt status has changed\n // since we enqueued the item, and the bracket count is 0. If the\n // bracket count is non-zero then we are in a masked state so it's\n // impossible to be killed.\n if (interrupt && interrupt !== tmp && bracketCount === 0) {\n step = attempt._1.killed(util.fromLeft(interrupt))(attempt._2);\n } else if (fail) {\n step = attempt._1.failed(util.fromLeft(fail))(attempt._2);\n } else {\n step = attempt._1.completed(util.fromRight(step))(attempt._2);\n }\n fail = null;\n bracketCount++;\n break;\n\n case FINALIZER:\n bracketCount++;\n attempts = new Aff(CONS, new Aff(FINALIZED, step, fail), attempts, interrupt);\n status = CONTINUE;\n step = attempt._1;\n break;\n\n case FINALIZED:\n bracketCount--;\n status = RETURN;\n step = attempt._1;\n fail = attempt._2;\n break;\n }\n }\n break;\n\n case COMPLETED:\n for (var k in joins) {\n if (joins.hasOwnProperty(k)) {\n rethrow = rethrow && joins[k].rethrow;\n runEff(joins[k].handler(step));\n }\n }\n joins = null;\n // If we have an interrupt and a fail, then the thread threw while\n // running finalizers. This should always rethrow in a fresh stack.\n if (interrupt && fail) {\n setTimeout(function () {\n throw util.fromLeft(fail);\n }, 0);\n // If we have an unhandled exception, and no other fiber has joined\n // then we need to throw the exception in a fresh stack.\n } else if (util.isLeft(step) && rethrow) {\n setTimeout(function () {\n // Guard on reathrow because a completely synchronous fiber can\n // still have an observer which was added after-the-fact.\n if (rethrow) {\n throw util.fromLeft(step);\n }\n }, 0);\n }\n return;\n case SUSPENDED:\n status = CONTINUE;\n break;\n case PENDING: return;\n }\n }\n }\n\n function onComplete(join) {\n return function () {\n if (status === COMPLETED) {\n rethrow = rethrow && join.rethrow;\n join.handler(step)();\n return function () {};\n }\n\n var jid = joinId++;\n joins = joins || {};\n joins[jid] = join;\n\n return function() {\n if (joins !== null) {\n delete joins[jid];\n }\n };\n };\n }\n\n function kill(error, cb) {\n return function () {\n if (status === COMPLETED) {\n cb(util.right(void 0))();\n return function () {};\n }\n\n var canceler = onComplete({\n rethrow: false,\n handler: function (/* unused */) {\n return cb(util.right(void 0));\n }\n })();\n\n switch (status) {\n case SUSPENDED:\n interrupt = util.left(error);\n status = COMPLETED;\n step = interrupt;\n run(runTick);\n break;\n case PENDING:\n if (interrupt === null) {\n interrupt = util.left(error);\n }\n if (bracketCount === 0) {\n if (status === PENDING) {\n attempts = new Aff(CONS, new Aff(FINALIZER, step(error)), attempts, interrupt);\n }\n status = RETURN;\n step = null;\n fail = null;\n run(++runTick);\n }\n break;\n default:\n if (interrupt === null) {\n interrupt = util.left(error);\n }\n if (bracketCount === 0) {\n status = RETURN;\n step = null;\n fail = null;\n }\n }\n\n return canceler;\n };\n }\n\n function join(cb) {\n return function () {\n var canceler = onComplete({\n rethrow: false,\n handler: cb\n })();\n if (status === SUSPENDED) {\n run(runTick);\n }\n return canceler;\n };\n }\n\n return {\n kill: kill,\n join: join,\n onComplete: onComplete,\n isSuspended: function () {\n return status === SUSPENDED;\n },\n run: function () {\n if (status === SUSPENDED) {\n if (!Scheduler.isDraining()) {\n Scheduler.enqueue(function () {\n run(runTick);\n });\n } else {\n run(runTick);\n }\n }\n }\n };\n }\n\n function runPar(util, supervisor, par, cb) {\n // Table of all forked fibers.\n var fiberId = 0;\n var fibers = {};\n\n // Table of currently running cancelers, as a product of `Alt` behavior.\n var killId = 0;\n var kills = {};\n\n // Error used for early cancelation on Alt branches.\n var early = new Error(\"[ParAff] Early exit\");\n\n // Error used to kill the entire tree.\n var interrupt = null;\n\n // The root pointer of the tree.\n var root = EMPTY;\n\n // Walks a tree, invoking all the cancelers. Returns the table of pending\n // cancellation fibers.\n function kill(error, par, cb) {\n var step = par;\n var head = null;\n var tail = null;\n var count = 0;\n var kills = {};\n var tmp, kid;\n\n loop: while (true) {\n tmp = null;\n\n switch (step.tag) {\n case FORKED:\n if (step._3 === EMPTY) {\n tmp = fibers[step._1];\n kills[count++] = tmp.kill(error, function (result) {\n return function () {\n count--;\n if (count === 0) {\n cb(result)();\n }\n };\n });\n }\n // Terminal case.\n if (head === null) {\n break loop;\n }\n // Go down the right side of the tree.\n step = head._2;\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n break;\n case MAP:\n step = step._2;\n break;\n case APPLY:\n case ALT:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = step;\n step = step._1;\n break;\n }\n }\n\n if (count === 0) {\n cb(util.right(void 0))();\n } else {\n // Run the cancelation effects. We alias `count` because it's mutable.\n kid = 0;\n tmp = count;\n for (; kid < tmp; kid++) {\n kills[kid] = kills[kid]();\n }\n }\n\n return kills;\n }\n\n // When a fiber resolves, we need to bubble back up the tree with the\n // result, computing the applicative nodes.\n function join(result, head, tail) {\n var fail, step, lhs, rhs, tmp, kid;\n\n if (util.isLeft(result)) {\n fail = result;\n step = null;\n } else {\n step = result;\n fail = null;\n }\n\n loop: while (true) {\n lhs = null;\n rhs = null;\n tmp = null;\n kid = null;\n\n // We should never continue if the entire tree has been interrupted.\n if (interrupt !== null) {\n return;\n }\n\n // We've made it all the way to the root of the tree, which means\n // the tree has fully evaluated.\n if (head === null) {\n cb(fail || step)();\n return;\n }\n\n // The tree has already been computed, so we shouldn't try to do it\n // again. This should never happen.\n // TODO: Remove this?\n if (head._3 !== EMPTY) {\n return;\n }\n\n switch (head.tag) {\n case MAP:\n if (fail === null) {\n head._3 = util.right(head._1(util.fromRight(step)));\n step = head._3;\n } else {\n head._3 = fail;\n }\n break;\n case APPLY:\n lhs = head._1._3;\n rhs = head._2._3;\n // If we have a failure we should kill the other side because we\n // can't possible yield a result anymore.\n if (fail) {\n head._3 = fail;\n tmp = true;\n kid = killId++;\n\n kills[kid] = kill(early, fail === lhs ? head._2 : head._1, function (/* unused */) {\n return function () {\n delete kills[kid];\n if (tmp) {\n tmp = false;\n } else if (tail === null) {\n join(fail, null, null);\n } else {\n join(fail, tail._1, tail._2);\n }\n };\n });\n\n if (tmp) {\n tmp = false;\n return;\n }\n } else if (lhs === EMPTY || rhs === EMPTY) {\n // We can only proceed if both sides have resolved.\n return;\n } else {\n step = util.right(util.fromRight(lhs)(util.fromRight(rhs)));\n head._3 = step;\n }\n break;\n case ALT:\n lhs = head._1._3;\n rhs = head._2._3;\n // We can only proceed if both have resolved or we have a success\n if (lhs === EMPTY && util.isLeft(rhs) || rhs === EMPTY && util.isLeft(lhs)) {\n return;\n }\n // If both sides resolve with an error, we should continue with the\n // first error\n if (lhs !== EMPTY && util.isLeft(lhs) && rhs !== EMPTY && util.isLeft(rhs)) {\n fail = step === lhs ? rhs : lhs;\n step = null;\n head._3 = fail;\n } else {\n head._3 = step;\n tmp = true;\n kid = killId++;\n // Once a side has resolved, we need to cancel the side that is still\n // pending before we can continue.\n kills[kid] = kill(early, step === lhs ? head._2 : head._1, function (/* unused */) {\n return function () {\n delete kills[kid];\n if (tmp) {\n tmp = false;\n } else if (tail === null) {\n join(step, null, null);\n } else {\n join(step, tail._1, tail._2);\n }\n };\n });\n\n if (tmp) {\n tmp = false;\n return;\n }\n }\n break;\n }\n\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n }\n }\n\n function resolve(fiber) {\n return function (result) {\n return function () {\n delete fibers[fiber._1];\n fiber._3 = result;\n join(result, fiber._2._1, fiber._2._2);\n };\n };\n }\n\n // Walks the applicative tree, substituting non-applicative nodes with\n // `FORKED` nodes. In this tree, all applicative nodes use the `_3` slot\n // as a mutable slot for memoization. In an unresolved state, the `_3`\n // slot is `EMPTY`. In the cases of `ALT` and `APPLY`, we always walk\n // the left side first, because both operations are left-associative. As\n // we `RETURN` from those branches, we then walk the right side.\n function run() {\n var status = CONTINUE;\n var step = par;\n var head = null;\n var tail = null;\n var tmp, fid;\n\n loop: while (true) {\n tmp = null;\n fid = null;\n\n switch (status) {\n case CONTINUE:\n switch (step.tag) {\n case MAP:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(MAP, step._1, EMPTY, EMPTY);\n step = step._2;\n break;\n case APPLY:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(APPLY, EMPTY, step._2, EMPTY);\n step = step._1;\n break;\n case ALT:\n if (head) {\n tail = new Aff(CONS, head, tail);\n }\n head = new Aff(ALT, EMPTY, step._2, EMPTY);\n step = step._1;\n break;\n default:\n // When we hit a leaf value, we suspend the stack in the `FORKED`.\n // When the fiber resolves, it can bubble back up the tree.\n fid = fiberId++;\n status = RETURN;\n tmp = step;\n step = new Aff(FORKED, fid, new Aff(CONS, head, tail), EMPTY);\n tmp = Fiber(util, supervisor, tmp);\n tmp.onComplete({\n rethrow: false,\n handler: resolve(step)\n })();\n fibers[fid] = tmp;\n if (supervisor) {\n supervisor.register(tmp);\n }\n }\n break;\n case RETURN:\n // Terminal case, we are back at the root.\n if (head === null) {\n break loop;\n }\n // If we are done with the right side, we need to continue down the\n // left. Otherwise we should continue up the stack.\n if (head._1 === EMPTY) {\n head._1 = step;\n status = CONTINUE;\n step = head._2;\n head._2 = EMPTY;\n } else {\n head._2 = step;\n step = head;\n if (tail === null) {\n head = null;\n } else {\n head = tail._1;\n tail = tail._2;\n }\n }\n }\n }\n\n // Keep a reference to the tree root so it can be cancelled.\n root = step;\n\n for (fid = 0; fid < fiberId; fid++) {\n fibers[fid].run();\n }\n }\n\n // Cancels the entire tree. If there are already subtrees being canceled,\n // we need to first cancel those joins. We will then add fresh joins for\n // all pending branches including those that were in the process of being\n // canceled.\n function cancel(error, cb) {\n interrupt = util.left(error);\n var innerKills;\n for (var kid in kills) {\n if (kills.hasOwnProperty(kid)) {\n innerKills = kills[kid];\n for (kid in innerKills) {\n if (innerKills.hasOwnProperty(kid)) {\n innerKills[kid]();\n }\n }\n }\n }\n\n kills = null;\n var newKills = kill(error, root, cb);\n\n return function (killError) {\n return new Aff(ASYNC, function (killCb) {\n return function () {\n for (var kid in newKills) {\n if (newKills.hasOwnProperty(kid)) {\n newKills[kid]();\n }\n }\n return nonCanceler;\n };\n });\n };\n }\n\n run();\n\n return function (killError) {\n return new Aff(ASYNC, function (killCb) {\n return function () {\n return cancel(killError, killCb);\n };\n });\n };\n }\n\n function sequential(util, supervisor, par) {\n return new Aff(ASYNC, function (cb) {\n return function () {\n return runPar(util, supervisor, par, cb);\n };\n });\n }\n\n Aff.EMPTY = EMPTY;\n Aff.Pure = AffCtr(PURE);\n Aff.Throw = AffCtr(THROW);\n Aff.Catch = AffCtr(CATCH);\n Aff.Sync = AffCtr(SYNC);\n Aff.Async = AffCtr(ASYNC);\n Aff.Bind = AffCtr(BIND);\n Aff.Bracket = AffCtr(BRACKET);\n Aff.Fork = AffCtr(FORK);\n Aff.Seq = AffCtr(SEQ);\n Aff.ParMap = AffCtr(MAP);\n Aff.ParApply = AffCtr(APPLY);\n Aff.ParAlt = AffCtr(ALT);\n Aff.Fiber = Fiber;\n Aff.Supervisor = Supervisor;\n Aff.Scheduler = Scheduler;\n Aff.nonCanceler = nonCanceler;\n\n return Aff;\n }();\n\n exports._pure = Aff.Pure;\n\n exports._throwError = Aff.Throw;\n\n exports._catchError = function (aff) {\n return function (k) {\n return Aff.Catch(aff, k);\n };\n };\n\n exports._map = function (f) {\n return function (aff) {\n if (aff.tag === Aff.Pure.tag) {\n return Aff.Pure(f(aff._1));\n } else {\n return Aff.Bind(aff, function (value) {\n return Aff.Pure(f(value));\n });\n }\n };\n };\n\n exports._bind = function (aff) {\n return function (k) {\n return Aff.Bind(aff, k);\n };\n };\n\n exports._fork = function (immediate) {\n return function (aff) {\n return Aff.Fork(immediate, aff);\n };\n };\n\n exports._liftEffect = Aff.Sync;\n\n exports._parAffMap = function (f) {\n return function (aff) {\n return Aff.ParMap(f, aff);\n };\n };\n\n exports._parAffApply = function (aff1) {\n return function (aff2) {\n return Aff.ParApply(aff1, aff2);\n };\n };\n\n exports.makeAff = Aff.Async;\n\n exports.generalBracket = function (acquire) {\n return function (options) {\n return function (k) {\n return Aff.Bracket(acquire, options, k);\n };\n };\n };\n\n exports._makeFiber = function (util, aff) {\n return function () {\n return Aff.Fiber(util, null, aff);\n };\n }; \n\n exports._sequential = Aff.Seq;\n})(PS[\"Effect.Aff\"] = PS[\"Effect.Aff\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.pureE = function (a) {\n return function () {\n return a;\n };\n };\n\n exports.bindE = function (a) {\n return function (f) {\n return function () {\n return f(a())();\n };\n };\n };\n})(PS[\"Effect\"] = PS[\"Effect\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect\"] = $PS[\"Effect\"] || {};\n var exports = $PS[\"Effect\"];\n var $foreign = $PS[\"Effect\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"]; \n var monadEffect = new Control_Monad.Monad(function () {\n return applicativeEffect;\n }, function () {\n return bindEffect;\n });\n var bindEffect = new Control_Bind.Bind(function () {\n return applyEffect;\n }, $foreign.bindE);\n var applyEffect = new Control_Apply.Apply(function () {\n return functorEffect;\n }, Control_Monad.ap(monadEffect));\n var applicativeEffect = new Control_Applicative.Applicative(function () {\n return applyEffect;\n }, $foreign.pureE);\n var functorEffect = new Data_Functor.Functor(Control_Applicative.liftA1(applicativeEffect));\n var semigroupEffect = function (dictSemigroup) {\n return new Data_Semigroup.Semigroup(Control_Apply.lift2(applyEffect)(Data_Semigroup.append(dictSemigroup)));\n };\n var monoidEffect = function (dictMonoid) {\n return new Data_Monoid.Monoid(function () {\n return semigroupEffect(dictMonoid.Semigroup0());\n }, $foreign.pureE(Data_Monoid.mempty(dictMonoid)));\n };\n exports[\"functorEffect\"] = functorEffect;\n exports[\"applicativeEffect\"] = applicativeEffect;\n exports[\"bindEffect\"] = bindEffect;\n exports[\"monadEffect\"] = monadEffect;\n exports[\"monoidEffect\"] = monoidEffect;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.new = function (val) {\n return function () {\n return { value: val };\n };\n };\n\n exports.read = function (ref) {\n return function () {\n return ref.value;\n };\n };\n\n exports[\"modify'\"] = function (f) {\n return function (ref) {\n return function () {\n var t = f(ref.value);\n ref.value = t.state;\n return t.value;\n };\n };\n };\n\n exports.write = function (val) {\n return function (ref) {\n return function () {\n ref.value = val;\n return {};\n };\n };\n };\n})(PS[\"Effect.Ref\"] = PS[\"Effect.Ref\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Ref\"] = $PS[\"Effect.Ref\"] || {};\n var exports = $PS[\"Effect.Ref\"];\n var $foreign = $PS[\"Effect.Ref\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Effect = $PS[\"Effect\"]; \n var modify = function (f) {\n return $foreign[\"modify'\"](function (s) {\n var s$prime = f(s);\n return {\n state: s$prime,\n value: s$prime\n };\n });\n };\n var modify_ = function (f) {\n return function (s) {\n return Data_Functor[\"void\"](Effect.functorEffect)(modify(f)(s));\n };\n };\n exports[\"modify_\"] = modify_;\n exports[\"new\"] = $foreign[\"new\"];\n exports[\"read\"] = $foreign.read;\n exports[\"modify'\"] = $foreign[\"modify'\"];\n exports[\"write\"] = $foreign.write;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Rec.Class\"] = $PS[\"Control.Monad.Rec.Class\"] || {};\n var exports = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Ref = $PS[\"Effect.Ref\"]; \n var Loop = (function () {\n function Loop(value0) {\n this.value0 = value0;\n };\n Loop.create = function (value0) {\n return new Loop(value0);\n };\n return Loop;\n })();\n var Done = (function () {\n function Done(value0) {\n this.value0 = value0;\n };\n Done.create = function (value0) {\n return new Done(value0);\n };\n return Done;\n })();\n var MonadRec = function (Monad0, tailRecM) {\n this.Monad0 = Monad0;\n this.tailRecM = tailRecM;\n };\n var tailRecM = function (dict) {\n return dict.tailRecM;\n }; \n var monadRecEffect = new MonadRec(function () {\n return Effect.monadEffect;\n }, function (f) {\n return function (a) {\n var fromDone = function (v) {\n if (v instanceof Done) {\n return v.value0;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 113, column 30 - line 113, column 44): \" + [ v.constructor.name ]);\n };\n return function __do() {\n var r = Control_Bind.bindFlipped(Effect.bindEffect)(Effect_Ref[\"new\"])(f(a))();\n (function () {\n while (!(function __do() {\n var v = Effect_Ref.read(r)();\n if (v instanceof Loop) {\n var e = f(v.value0)();\n Effect_Ref.write(e)(r)();\n return false;\n };\n if (v instanceof Done) {\n return true;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Rec.Class (line 104, column 22 - line 109, column 28): \" + [ v.constructor.name ]);\n })()) {\n\n };\n return {};\n })();\n return Data_Functor.map(Effect.functorEffect)(fromDone)(Effect_Ref.read(r))();\n };\n };\n });\n exports[\"Loop\"] = Loop;\n exports[\"Done\"] = Done;\n exports[\"MonadRec\"] = MonadRec;\n exports[\"tailRecM\"] = tailRecM;\n exports[\"monadRecEffect\"] = monadRecEffect;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Parallel.Class\"] = $PS[\"Control.Parallel.Class\"] || {};\n var exports = $PS[\"Control.Parallel.Class\"];\n var Parallel = function (Applicative1, Monad0, parallel, sequential) {\n this.Applicative1 = Applicative1;\n this.Monad0 = Monad0;\n this.parallel = parallel;\n this.sequential = sequential;\n };\n var sequential = function (dict) {\n return dict.sequential;\n };\n var parallel = function (dict) {\n return dict.parallel;\n };\n exports[\"parallel\"] = parallel;\n exports[\"sequential\"] = sequential;\n exports[\"Parallel\"] = Parallel;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Parallel\"] = $PS[\"Control.Parallel\"] || {};\n var exports = $PS[\"Control.Parallel\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Parallel_Class = $PS[\"Control.Parallel.Class\"];\n var Data_Foldable = $PS[\"Data.Foldable\"]; \n var parTraverse_ = function (dictParallel) {\n return function (dictFoldable) {\n return function (f) {\n var $17 = Control_Parallel_Class.sequential(dictParallel);\n var $18 = Data_Foldable.traverse_(dictParallel.Applicative1())(dictFoldable)((function () {\n var $20 = Control_Parallel_Class.parallel(dictParallel);\n return function ($21) {\n return $20(f($21));\n };\n })());\n return function ($19) {\n return $17($18($19));\n };\n };\n };\n };\n var parSequence_ = function (dictParallel) {\n return function (dictFoldable) {\n return parTraverse_(dictParallel)(dictFoldable)(Control_Category.identity(Control_Category.categoryFn));\n };\n };\n exports[\"parSequence_\"] = parSequence_;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Class\"] = $PS[\"Effect.Class\"] || {};\n var exports = $PS[\"Effect.Class\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Effect = $PS[\"Effect\"]; \n var MonadEffect = function (Monad0, liftEffect) {\n this.Monad0 = Monad0;\n this.liftEffect = liftEffect;\n };\n var monadEffectEffect = new MonadEffect(function () {\n return Effect.monadEffect;\n }, Control_Category.identity(Control_Category.categoryFn));\n var liftEffect = function (dict) {\n return dict.liftEffect;\n };\n exports[\"liftEffect\"] = liftEffect;\n exports[\"MonadEffect\"] = MonadEffect;\n exports[\"monadEffectEffect\"] = monadEffectEffect;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafePerformEffect = function (f) {\n return f();\n };\n})(PS[\"Effect.Unsafe\"] = PS[\"Effect.Unsafe\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Unsafe\"] = $PS[\"Effect.Unsafe\"] || {};\n var exports = $PS[\"Effect.Unsafe\"];\n var $foreign = $PS[\"Effect.Unsafe\"];\n exports[\"unsafePerformEffect\"] = $foreign.unsafePerformEffect;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // module Partial.Unsafe\n\n exports.unsafePartial = function (f) {\n return f();\n };\n})(PS[\"Partial.Unsafe\"] = PS[\"Partial.Unsafe\"] || {});\n(function(exports) {\n \"use strict\";\n\n // module Partial\n\n exports.crashWith = function () {\n return function (msg) {\n throw new Error(msg);\n };\n };\n})(PS[\"Partial\"] = PS[\"Partial\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Partial\"] = $PS[\"Partial\"] || {};\n var exports = $PS[\"Partial\"];\n var $foreign = $PS[\"Partial\"];\n exports[\"crashWith\"] = $foreign.crashWith;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Partial.Unsafe\"] = $PS[\"Partial.Unsafe\"] || {};\n var exports = $PS[\"Partial.Unsafe\"];\n var $foreign = $PS[\"Partial.Unsafe\"];\n var Partial = $PS[\"Partial\"];\n var unsafeCrashWith = function (msg) {\n return $foreign.unsafePartial(function (dictPartial) {\n return Partial.crashWith()(msg);\n });\n };\n exports[\"unsafeCrashWith\"] = unsafeCrashWith;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n // module Unsafe.Coerce\n\n exports.unsafeCoerce = function (x) {\n return x;\n };\n})(PS[\"Unsafe.Coerce\"] = PS[\"Unsafe.Coerce\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Unsafe.Coerce\"] = $PS[\"Unsafe.Coerce\"] || {};\n var exports = $PS[\"Unsafe.Coerce\"];\n var $foreign = $PS[\"Unsafe.Coerce\"];\n exports[\"unsafeCoerce\"] = $foreign.unsafeCoerce;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Aff\"] = $PS[\"Effect.Aff\"] || {};\n var exports = $PS[\"Effect.Aff\"];\n var $foreign = $PS[\"Effect.Aff\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Parallel = $PS[\"Control.Parallel\"];\n var Control_Parallel_Class = $PS[\"Control.Parallel.Class\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Unsafe = $PS[\"Effect.Unsafe\"];\n var Partial_Unsafe = $PS[\"Partial.Unsafe\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Canceler = function (x) {\n return x;\n };\n var suspendAff = $foreign[\"_fork\"](false);\n var functorParAff = new Data_Functor.Functor($foreign[\"_parAffMap\"]);\n var functorAff = new Data_Functor.Functor($foreign[\"_map\"]);\n var forkAff = $foreign[\"_fork\"](true);\n var ffiUtil = (function () {\n var unsafeFromRight = function (v) {\n if (v instanceof Data_Either.Right) {\n return v.value0;\n };\n if (v instanceof Data_Either.Left) {\n return Partial_Unsafe.unsafeCrashWith(\"unsafeFromRight: Left\");\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 400, column 21 - line 402, 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 395, column 20 - line 397, column 54): \" + [ v.constructor.name ]);\n };\n var isLeft = function (v) {\n if (v instanceof Data_Either.Left) {\n return true;\n };\n if (v instanceof Data_Either.Right) {\n return false;\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 390, column 12 - line 392, column 20): \" + [ v.constructor.name ]);\n };\n return {\n isLeft: isLeft,\n fromLeft: unsafeFromLeft,\n fromRight: unsafeFromRight,\n left: Data_Either.Left.create,\n right: Data_Either.Right.create\n };\n })();\n var makeFiber = function (aff) {\n return $foreign[\"_makeFiber\"](ffiUtil, aff);\n };\n var launchAff = function (aff) {\n return function __do() {\n var fiber = makeFiber(aff)();\n fiber.run();\n return fiber;\n };\n };\n var launchAff_ = (function () {\n var $43 = Data_Functor[\"void\"](Effect.functorEffect);\n return function ($44) {\n return $43(launchAff($44));\n };\n })();\n var bracket = function (acquire) {\n return function (completed) {\n return $foreign.generalBracket(acquire)({\n killed: Data_Function[\"const\"](completed),\n failed: Data_Function[\"const\"](completed),\n completed: Data_Function[\"const\"](completed)\n });\n };\n };\n var applyParAff = new Control_Apply.Apply(function () {\n return functorParAff;\n }, $foreign[\"_parAffApply\"]);\n var monadAff = new Control_Monad.Monad(function () {\n return applicativeAff;\n }, function () {\n return bindAff;\n });\n var bindAff = new Control_Bind.Bind(function () {\n return applyAff;\n }, $foreign[\"_bind\"]);\n var applyAff = new Control_Apply.Apply(function () {\n return functorAff;\n }, Control_Monad.ap(monadAff));\n var applicativeAff = new Control_Applicative.Applicative(function () {\n return applyAff;\n }, $foreign[\"_pure\"]);\n var $$finally = function (fin) {\n return function (a) {\n return bracket(Control_Applicative.pure(applicativeAff)(Data_Unit.unit))(Data_Function[\"const\"](fin))(Data_Function[\"const\"](a));\n };\n };\n var monadEffectAff = new Effect_Class.MonadEffect(function () {\n return monadAff;\n }, $foreign[\"_liftEffect\"]);\n var effectCanceler = (function () {\n var $45 = Effect_Class.liftEffect(monadEffectAff);\n return function ($46) {\n return Canceler(Data_Function[\"const\"]($45($46)));\n };\n })();\n var joinFiber = function (v) {\n return $foreign.makeAff(function (k) {\n return Data_Functor.map(Effect.functorEffect)(effectCanceler)(v.join(k));\n });\n };\n var functorFiber = new Data_Functor.Functor(function (f) {\n return function (t) {\n return Effect_Unsafe.unsafePerformEffect(makeFiber(Data_Functor.map(functorAff)(f)(joinFiber(t))));\n };\n });\n var killFiber = function (e) {\n return function (v) {\n return Control_Bind.bind(bindAff)(Effect_Class.liftEffect(monadEffectAff)(v.isSuspended))(function (v1) {\n if (v1) {\n return Effect_Class.liftEffect(monadEffectAff)(Data_Functor[\"void\"](Effect.functorEffect)(v.kill(e, Data_Function[\"const\"](Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit)))));\n };\n return $foreign.makeAff(function (k) {\n return Data_Functor.map(Effect.functorEffect)(effectCanceler)(v.kill(e, k));\n });\n });\n };\n }; \n var monadThrowAff = new Control_Monad_Error_Class.MonadThrow(function () {\n return monadAff;\n }, $foreign[\"_throwError\"]);\n var monadErrorAff = new Control_Monad_Error_Class.MonadError(function () {\n return monadThrowAff;\n }, $foreign[\"_catchError\"]); \n var runAff = function (k) {\n return function (aff) {\n return launchAff(Control_Bind.bindFlipped(bindAff)((function () {\n var $49 = Effect_Class.liftEffect(monadEffectAff);\n return function ($50) {\n return $49(k($50));\n };\n })())(Control_Monad_Error_Class[\"try\"](monadErrorAff)(aff)));\n };\n };\n var runAff_ = function (k) {\n return function (aff) {\n return Data_Functor[\"void\"](Effect.functorEffect)(runAff(k)(aff));\n };\n };\n var parallelAff = new Control_Parallel_Class.Parallel(function () {\n return applicativeParAff;\n }, function () {\n return monadAff;\n }, Unsafe_Coerce.unsafeCoerce, $foreign[\"_sequential\"]);\n var applicativeParAff = new Control_Applicative.Applicative(function () {\n return applyParAff;\n }, (function () {\n var $53 = Control_Parallel_Class.parallel(parallelAff);\n var $54 = Control_Applicative.pure(applicativeAff);\n return function ($55) {\n return $53($54($55));\n };\n })());\n var semigroupCanceler = new Data_Semigroup.Semigroup(function (v) {\n return function (v1) {\n return function (err) {\n return Control_Parallel.parSequence_(parallelAff)(Data_Foldable.foldableArray)([ v(err), v1(err) ]);\n };\n };\n });\n var monadRecAff = new Control_Monad_Rec_Class.MonadRec(function () {\n return monadAff;\n }, function (k) {\n var go = function (a) {\n return Control_Bind.bind(bindAff)(k(a))(function (res) {\n if (res instanceof Control_Monad_Rec_Class.Done) {\n return Control_Applicative.pure(applicativeAff)(res.value0);\n };\n if (res instanceof Control_Monad_Rec_Class.Loop) {\n return go(res.value0);\n };\n throw new Error(\"Failed pattern match at Effect.Aff (line 100, column 7 - line 102, column 22): \" + [ res.constructor.name ]);\n });\n };\n return go;\n });\n var nonCanceler = Data_Function[\"const\"](Control_Applicative.pure(applicativeAff)(Data_Unit.unit));\n var monoidCanceler = new Data_Monoid.Monoid(function () {\n return semigroupCanceler;\n }, nonCanceler);\n exports[\"launchAff\"] = launchAff;\n exports[\"launchAff_\"] = launchAff_;\n exports[\"runAff_\"] = runAff_;\n exports[\"forkAff\"] = forkAff;\n exports[\"suspendAff\"] = suspendAff;\n exports[\"finally\"] = $$finally;\n exports[\"killFiber\"] = killFiber;\n exports[\"joinFiber\"] = joinFiber;\n exports[\"nonCanceler\"] = nonCanceler;\n exports[\"effectCanceler\"] = effectCanceler;\n exports[\"functorAff\"] = functorAff;\n exports[\"applicativeAff\"] = applicativeAff;\n exports[\"bindAff\"] = bindAff;\n exports[\"monadAff\"] = monadAff;\n exports[\"monadRecAff\"] = monadRecAff;\n exports[\"monadErrorAff\"] = monadErrorAff;\n exports[\"monadEffectAff\"] = monadEffectAff;\n exports[\"applicativeParAff\"] = applicativeParAff;\n exports[\"parallelAff\"] = parallelAff;\n exports[\"functorFiber\"] = functorFiber;\n exports[\"monoidCanceler\"] = monoidCanceler;\n exports[\"makeAff\"] = $foreign.makeAff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Aff.Compat\"] = $PS[\"Effect.Aff.Compat\"] || {};\n var exports = $PS[\"Effect.Aff.Compat\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var fromEffectFnAff = function (v) {\n return Effect_Aff.makeAff(function (k) {\n return function __do() {\n var v1 = v(function ($4) {\n return k(Data_Either.Left.create($4))();\n }, function ($5) {\n return k(Data_Either.Right.create($5))();\n });\n return function (e) {\n return Effect_Aff.makeAff(function (k2) {\n return function __do() {\n v1(e, function ($6) {\n return k2(Data_Either.Left.create($6))();\n }, function ($7) {\n return k2(Data_Either.Right.create($7))();\n });\n return Effect_Aff.nonCanceler;\n };\n });\n };\n };\n });\n };\n exports[\"fromEffectFnAff\"] = fromEffectFnAff;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafeToForeign = function (value) {\n return value;\n };\n\n exports.unsafeFromForeign = function (value) {\n return value;\n };\n\n exports.typeOf = function (value) {\n return typeof value;\n };\n\n exports.tagOf = function (value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n };\n})(PS[\"Foreign\"] = PS[\"Foreign\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.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\n exports.toNumber = function (n) {\n return n;\n };\n})(PS[\"Data.Int\"] = PS[\"Data.Int\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Int\"] = $PS[\"Data.Int\"] || {};\n var exports = $PS[\"Data.Int\"];\n var $foreign = $PS[\"Data.Int\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var fromNumber = $foreign.fromNumberImpl(Data_Maybe.Just.create)(Data_Maybe.Nothing.value);\n exports[\"fromNumber\"] = fromNumber;\n exports[\"toNumber\"] = $foreign.toNumber;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Foreign\"] = $PS[\"Foreign\"] || {};\n var exports = $PS[\"Foreign\"];\n var $foreign = $PS[\"Foreign\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Control_Monad_Except = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_Int = $PS[\"Data.Int\"];\n var Data_List_NonEmpty = $PS[\"Data.List.NonEmpty\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var ForeignError = (function () {\n function ForeignError(value0) {\n this.value0 = value0;\n };\n ForeignError.create = function (value0) {\n return new ForeignError(value0);\n };\n return ForeignError;\n })();\n var TypeMismatch = (function () {\n function TypeMismatch(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n TypeMismatch.create = function (value0) {\n return function (value1) {\n return new TypeMismatch(value0, value1);\n };\n };\n return TypeMismatch;\n })();\n var fail = (function () {\n var $107 = Control_Monad_Error_Class.throwError(Control_Monad_Except_Trans.monadThrowExceptT(Data_Identity.monadIdentity));\n return function ($108) {\n return $107(Data_List_NonEmpty.singleton($108));\n };\n })();\n var unsafeReadTagged = function (tag) {\n return function (value) {\n if ($foreign.tagOf(value) === tag) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))($foreign.unsafeFromForeign(value));\n };\n if (Data_Boolean.otherwise) {\n return fail(new TypeMismatch(tag, $foreign.tagOf(value)));\n };\n throw new Error(\"Failed pattern match at Foreign (line 106, column 1 - line 106, column 55): \" + [ tag.constructor.name, value.constructor.name ]);\n };\n };\n var readBoolean = unsafeReadTagged(\"Boolean\");\n var readNumber = unsafeReadTagged(\"Number\");\n var readInt = function (value) {\n var error = Data_Either.Left.create(Data_List_NonEmpty.singleton(new TypeMismatch(\"Int\", $foreign.tagOf(value))));\n var fromNumber = (function () {\n var $109 = Data_Maybe.maybe(error)(Control_Applicative.pure(Data_Either.applicativeEither));\n return function ($110) {\n return $109(Data_Int.fromNumber($110));\n };\n })();\n return Control_Monad_Except.mapExcept(Data_Either.either(Data_Function[\"const\"](error))(fromNumber))(readNumber(value));\n };\n var readString = unsafeReadTagged(\"String\");\n exports[\"ForeignError\"] = ForeignError;\n exports[\"TypeMismatch\"] = TypeMismatch;\n exports[\"unsafeReadTagged\"] = unsafeReadTagged;\n exports[\"readString\"] = readString;\n exports[\"readBoolean\"] = readBoolean;\n exports[\"readInt\"] = readInt;\n exports[\"fail\"] = fail;\n exports[\"unsafeToForeign\"] = $foreign.unsafeToForeign;\n exports[\"typeOf\"] = $foreign.typeOf;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Affjax\"] = $PS[\"Affjax\"] || {};\n var exports = $PS[\"Affjax\"];\n var $foreign = $PS[\"Affjax\"];\n var Affjax_RequestBody = $PS[\"Affjax.RequestBody\"];\n var Affjax_RequestHeader = $PS[\"Affjax.RequestHeader\"];\n var Affjax_ResponseFormat = $PS[\"Affjax.ResponseFormat\"];\n var Affjax_ResponseHeader = $PS[\"Affjax.ResponseHeader\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Control_Monad_Except = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Argonaut_Parser = $PS[\"Data.Argonaut.Parser\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_FormURLEncoded = $PS[\"Data.FormURLEncoded\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_HTTP_Method = $PS[\"Data.HTTP.Method\"];\n var Data_HeytingAlgebra = $PS[\"Data.HeytingAlgebra\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_List_NonEmpty = $PS[\"Data.List.NonEmpty\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_Compat = $PS[\"Effect.Aff.Compat\"];\n var Foreign = $PS[\"Foreign\"]; \n var RequestContentError = (function () {\n function RequestContentError(value0) {\n this.value0 = value0;\n };\n RequestContentError.create = function (value0) {\n return new RequestContentError(value0);\n };\n return RequestContentError;\n })();\n var ResponseBodyError = (function () {\n function ResponseBodyError(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n ResponseBodyError.create = function (value0) {\n return function (value1) {\n return new ResponseBodyError(value0, value1);\n };\n };\n return ResponseBodyError;\n })();\n var XHRError = (function () {\n function XHRError(value0) {\n this.value0 = value0;\n };\n XHRError.create = function (value0) {\n return new XHRError(value0);\n };\n return XHRError;\n })();\n var request = function (req) {\n var parseJSON = function (v) {\n if (v === \"\") {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Data_Argonaut_Core.jsonEmptyObject);\n };\n return Data_Either.either(function ($47) {\n return Foreign.fail(Foreign.ForeignError.create($47));\n })(Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity)))(Data_Argonaut_Parser.jsonParser(v));\n };\n var fromResponse = (function () {\n if (req.responseFormat instanceof Affjax_ResponseFormat[\"ArrayBuffer\"]) {\n return Foreign.unsafeReadTagged(\"ArrayBuffer\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Blob) {\n return Foreign.unsafeReadTagged(\"Blob\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Document) {\n return Foreign.unsafeReadTagged(\"Document\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Json) {\n return Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(function ($48) {\n return req.responseFormat.value0(parseJSON($48));\n })(Foreign.unsafeReadTagged(\"String\"));\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat[\"String\"]) {\n return Foreign.unsafeReadTagged(\"String\");\n };\n if (req.responseFormat instanceof Affjax_ResponseFormat.Ignore) {\n return Data_Function[\"const\"](req.responseFormat.value0(Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Data_Unit.unit)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 237, column 18 - line 243, column 57): \" + [ req.responseFormat.constructor.name ]);\n })();\n var extractContent = function (v) {\n if (v instanceof Affjax_RequestBody.ArrayView) {\n return Data_Either.Right.create(v.value0(Foreign.unsafeToForeign));\n };\n if (v instanceof Affjax_RequestBody.Blob) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.Document) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody[\"String\"]) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.FormData) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(v.value0));\n };\n if (v instanceof Affjax_RequestBody.FormURLEncoded) {\n return Data_Either.note(\"Body contains values that cannot be encoded as application/x-www-form-urlencoded\")(Data_Functor.map(Data_Maybe.functorMaybe)(Foreign.unsafeToForeign)(Data_FormURLEncoded.encode(v.value0)));\n };\n if (v instanceof Affjax_RequestBody.Json) {\n return Data_Either.Right.create(Foreign.unsafeToForeign(Data_Argonaut_Core.stringify(v.value0)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 203, column 20 - line 218, column 69): \" + [ v.constructor.name ]);\n };\n var addHeader = function (mh) {\n return function (hs) {\n if (mh instanceof Data_Maybe.Just && !Data_Foldable.any(Data_Foldable.foldableArray)(Data_HeytingAlgebra.heytingAlgebraBoolean)(Data_Function.on(Data_Eq.eq(Data_Eq.eqString))(Affjax_RequestHeader.name)(mh.value0))(hs)) {\n return Data_Array.snoc(hs)(mh.value0);\n };\n return hs;\n };\n };\n var headers = function (reqContent) {\n return addHeader(Data_Functor.map(Data_Maybe.functorMaybe)(Affjax_RequestHeader.ContentType.create)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Affjax_RequestBody.toMediaType)(reqContent)))(addHeader(Data_Functor.map(Data_Maybe.functorMaybe)(Affjax_RequestHeader.Accept.create)(Affjax_ResponseFormat.toMediaType(req.responseFormat)))(req.headers));\n };\n var ajaxRequest = function (v) {\n return {\n method: Data_HTTP_Method.print(req.method),\n url: req.url,\n headers: Data_Functor.map(Data_Functor.functorArray)(function (h) {\n return {\n field: Affjax_RequestHeader.name(h),\n value: Affjax_RequestHeader.value(h)\n };\n })(headers(req.content)),\n content: v,\n responseType: Affjax_ResponseFormat.toResponseType(req.responseFormat),\n username: Data_Nullable.toNullable(req.username),\n password: Data_Nullable.toNullable(req.password),\n withCredentials: req.withCredentials\n };\n };\n var send = function (content) {\n return Data_Functor.mapFlipped(Effect_Aff.functorAff)(Control_Monad_Error_Class[\"try\"](Effect_Aff.monadErrorAff)(Effect_Aff_Compat.fromEffectFnAff($foreign[\"_ajax\"](Affjax_ResponseHeader.ResponseHeader.create, ajaxRequest(content)))))(function (v) {\n if (v instanceof Data_Either.Right) {\n var v1 = Control_Monad_Except.runExcept(fromResponse(v.value0.body));\n if (v1 instanceof Data_Either.Left) {\n return new Data_Either.Left(new ResponseBodyError(Data_List_NonEmpty.head(v1.value0), v.value0));\n };\n if (v1 instanceof Data_Either.Right) {\n return new Data_Either.Right({\n body: v1.value0,\n headers: v.value0.headers,\n status: v.value0.status,\n statusText: v.value0.statusText\n });\n };\n throw new Error(\"Failed pattern match at Affjax (line 184, column 9 - line 186, column 52): \" + [ v1.constructor.name ]);\n };\n if (v instanceof Data_Either.Left) {\n return new Data_Either.Left(new XHRError(v.value0));\n };\n throw new Error(\"Failed pattern match at Affjax (line 182, column 86 - line 188, 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 Control_Applicative.pure(Effect_Aff.applicativeAff)(new Data_Either.Left(new RequestContentError(v.value0)));\n };\n throw new Error(\"Failed pattern match at Affjax (line 173, column 7 - line 177, column 48): \" + [ v.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Affjax (line 169, column 3 - line 177, column 48): \" + [ req.content.constructor.name ]);\n };\n var defaultRequest = {\n method: new Data_Either.Left(Data_HTTP_Method.GET.value),\n url: \"/\",\n headers: [ ],\n content: Data_Maybe.Nothing.value,\n username: Data_Maybe.Nothing.value,\n password: Data_Maybe.Nothing.value,\n withCredentials: false,\n responseFormat: Affjax_ResponseFormat.ignore\n };\n exports[\"defaultRequest\"] = defaultRequest;\n exports[\"request\"] = request;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Affjax.StatusCode\"] = $PS[\"Affjax.StatusCode\"] || {};\n var exports = $PS[\"Affjax.StatusCode\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var eqStatusCode = new Data_Eq.Eq(function (x) {\n return function (y) {\n return x === y;\n };\n });\n exports[\"eqStatusCode\"] = eqStatusCode;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Argonaut.Decode.Class\"] = $PS[\"Data.Argonaut.Decode.Class\"] || {};\n var exports = $PS[\"Data.Argonaut.Decode.Class\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Core = $PS[\"Data.Argonaut.Core\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Int = $PS[\"Data.Int\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Traversable = $PS[\"Data.Traversable\"];\n var Foreign_Object = $PS[\"Foreign.Object\"];\n var DecodeJson = function (decodeJson) {\n this.decodeJson = decodeJson;\n }; \n var decodeJsonNumber = new DecodeJson(Data_Argonaut_Core.caseJsonNumber(new Data_Either.Left(\"Value is not a Number\"))(Data_Either.Right.create)); \n var decodeJson = function (dict) {\n return dict.decodeJson;\n }; \n var decodeJsonInt = new DecodeJson(Control_Bind.composeKleisliFlipped(Data_Either.bindEither)((function () {\n var $54 = Data_Maybe.maybe(new Data_Either.Left(\"Value is not an integer\"))(Data_Either.Right.create);\n return function ($55) {\n return $54(Data_Int.fromNumber($55));\n };\n })())(decodeJson(decodeJsonNumber)));\n var decodeJObject = (function () {\n var $56 = Data_Maybe.maybe(new Data_Either.Left(\"Value is not an Object\"))(Data_Either.Right.create);\n return function ($57) {\n return $56(Data_Argonaut_Core.toObject($57));\n };\n })();\n var decodeForeignObject = function (dictDecodeJson) {\n return new DecodeJson((function () {\n var $83 = Data_Bifunctor.lmap(Data_Either.bifunctorEither)(function (v) {\n return \"Couldn't decode ForeignObject: \" + v;\n });\n var $84 = Control_Bind.composeKleisliFlipped(Data_Either.bindEither)(Data_Traversable.traverse(Foreign_Object.traversableObject)(Data_Either.applicativeEither)(decodeJson(dictDecodeJson)))(decodeJObject);\n return function ($85) {\n return $83($84($85));\n };\n })());\n };\n exports[\"decodeJson\"] = decodeJson;\n exports[\"decodeJsonInt\"] = decodeJsonInt;\n exports[\"decodeForeignObject\"] = decodeForeignObject;\n})(PS);\n(function(exports) {\n \"use strict\";\n var moment =require(\"moment\"); \n\n exports._app = function() {\n return app;\n }\n\n exports._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\n exports._closeWindow = function (window) {\n window.close();\n };\n\n exports._setFocus = function(elemId) {\n document.getElementById(elemId).focus();\n };\n})(PS[\"Globals\"] = PS[\"Globals\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Globals\"] = $PS[\"Globals\"] || {};\n var exports = $PS[\"Globals\"];\n var $foreign = $PS[\"Globals\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Effect = $PS[\"Effect\"]; \n var RawHTML = function (x) {\n return x;\n };\n var setFocus = function (s) {\n return Control_Applicative.pure(Effect.applicativeEffect)($foreign[\"_setFocus\"](s));\n };\n var mmoment8601 = function (s) {\n return $foreign[\"_mmoment8601\"](Data_Maybe.Just.create, Data_Maybe.Nothing.value, Data_Tuple.Tuple.create, s);\n };\n var closeWindow = function (win) {\n return Control_Applicative.pure(Effect.applicativeEffect)($foreign[\"_closeWindow\"](win));\n };\n var app$prime = function (v) {\n return $foreign[\"_app\"]();\n };\n exports[\"app'\"] = app$prime;\n exports[\"mmoment8601\"] = mmoment8601;\n exports[\"closeWindow\"] = closeWindow;\n exports[\"RawHTML\"] = RawHTML;\n exports[\"setFocus\"] = setFocus;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Symbol\"] = $PS[\"Data.Symbol\"] || {};\n var exports = $PS[\"Data.Symbol\"]; \n var SProxy = (function () {\n function SProxy() {\n\n };\n SProxy.value = new SProxy();\n return SProxy;\n })();\n var IsSymbol = function (reflectSymbol) {\n this.reflectSymbol = reflectSymbol;\n };\n var reflectSymbol = function (dict) {\n return dict.reflectSymbol;\n };\n exports[\"IsSymbol\"] = IsSymbol;\n exports[\"reflectSymbol\"] = reflectSymbol;\n exports[\"SProxy\"] = SProxy;\n})(PS);\n(function(exports) {\n /* globals exports, JSON */\n \"use strict\";\n\n exports.unsafeStringify = function (x) {\n return JSON.stringify(x);\n }; \n exports.unsafeDecodeURIComponent = decodeURIComponent;\n})(PS[\"Global.Unsafe\"] = PS[\"Global.Unsafe\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Global.Unsafe\"] = $PS[\"Global.Unsafe\"] || {};\n var exports = $PS[\"Global.Unsafe\"];\n var $foreign = $PS[\"Global.Unsafe\"];\n exports[\"unsafeStringify\"] = $foreign.unsafeStringify;\n exports[\"unsafeDecodeURIComponent\"] = $foreign.unsafeDecodeURIComponent;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafeGet = function (label) {\n return function (rec) {\n return rec[label];\n };\n };\n})(PS[\"Record.Unsafe\"] = PS[\"Record.Unsafe\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Record.Unsafe\"] = $PS[\"Record.Unsafe\"] || {};\n var exports = $PS[\"Record.Unsafe\"];\n var $foreign = $PS[\"Record.Unsafe\"];\n exports[\"unsafeGet\"] = $foreign.unsafeGet;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Record\"] = $PS[\"Record\"] || {};\n var exports = $PS[\"Record\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Record_Unsafe = $PS[\"Record.Unsafe\"];\n var get = function (dictIsSymbol) {\n return function (dictCons) {\n return function (l) {\n return function (r) {\n return Record_Unsafe.unsafeGet(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(r);\n };\n };\n };\n };\n exports[\"get\"] = get;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.copyRecord = 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 return copy;\n };\n\n exports.unsafeInsert = function(l) {\n return function(a) {\n return function(rec) {\n rec[l] = a;\n return rec;\n };\n };\n };\n})(PS[\"Record.Builder\"] = PS[\"Record.Builder\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Record.Builder\"] = $PS[\"Record.Builder\"] || {};\n var exports = $PS[\"Record.Builder\"];\n var $foreign = $PS[\"Record.Builder\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Semigroupoid = $PS[\"Control.Semigroupoid\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var semigroupoidBuilder = Control_Semigroupoid.semigroupoidFn;\n var insert = function (dictCons) {\n return function (dictLacks) {\n return function (dictIsSymbol) {\n return function (l) {\n return function (a) {\n return function (r1) {\n return $foreign.unsafeInsert(Data_Symbol.reflectSymbol(dictIsSymbol)(l))(a)(r1);\n };\n };\n };\n };\n };\n };\n var categoryBuilder = Control_Category.categoryFn;\n var build = function (v) {\n return function (r1) {\n return v($foreign.copyRecord(r1));\n };\n };\n exports[\"build\"] = build;\n exports[\"insert\"] = insert;\n exports[\"semigroupoidBuilder\"] = semigroupoidBuilder;\n exports[\"categoryBuilder\"] = categoryBuilder;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Type.Data.RowList\"] = $PS[\"Type.Data.RowList\"] || {};\n var exports = $PS[\"Type.Data.RowList\"];\n var RLProxy = (function () {\n function RLProxy() {\n\n };\n RLProxy.value = new RLProxy();\n return RLProxy;\n })();\n exports[\"RLProxy\"] = RLProxy;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Simple.JSON\"] = $PS[\"Simple.JSON\"] || {};\n var exports = $PS[\"Simple.JSON\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Semigroupoid = $PS[\"Control.Semigroupoid\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Foreign = $PS[\"Foreign\"];\n var Global_Unsafe = $PS[\"Global.Unsafe\"];\n var Record = $PS[\"Record\"];\n var Record_Builder = $PS[\"Record.Builder\"];\n var Type_Data_RowList = $PS[\"Type.Data.RowList\"];\n var WriteForeignFields = function (writeImplFields) {\n this.writeImplFields = writeImplFields;\n };\n var WriteForeign = function (writeImpl) {\n this.writeImpl = writeImpl;\n };\n var writeImplFields = function (dict) {\n return dict.writeImplFields;\n };\n var writeImpl = function (dict) {\n return dict.writeImpl;\n };\n var writeJSON = function (dictWriteForeign) {\n var $87 = writeImpl(dictWriteForeign);\n return function ($88) {\n return Global_Unsafe.unsafeStringify($87($88));\n };\n };\n var writeForeignString = new WriteForeign(Foreign.unsafeToForeign);\n var writeForeignNullable = function (dictWriteForeign) {\n return new WriteForeign((function () {\n var $91 = Data_Maybe.maybe(Foreign.unsafeToForeign(Data_Nullable.toNullable(Data_Maybe.Nothing.value)))(writeImpl(dictWriteForeign));\n return function ($92) {\n return $91(Data_Nullable.toMaybe($92));\n };\n })());\n };\n var writeForeignInt = new WriteForeign(Foreign.unsafeToForeign);\n var writeForeignForeign = new WriteForeign(Control_Category.identity(Control_Category.categoryFn));\n var writeForeignBoolean = new WriteForeign(Foreign.unsafeToForeign);\n var recordWriteForeign = function (dictRowToList) {\n return function (dictWriteForeignFields) {\n return new WriteForeign(function (rec) {\n var steps = writeImplFields(dictWriteForeignFields)(Type_Data_RowList.RLProxy.value)(rec);\n return Foreign.unsafeToForeign(Record_Builder.build(steps)({}));\n });\n };\n }; \n var nilWriteForeignFields = new WriteForeignFields(function (v) {\n return function (v1) {\n return Control_Category.identity(Record_Builder.categoryBuilder);\n };\n });\n var consWriteForeignFields = function (dictIsSymbol) {\n return function (dictWriteForeign) {\n return function (dictWriteForeignFields) {\n return function (dictCons) {\n return function (dictLacks) {\n return function (dictCons1) {\n return new WriteForeignFields(function (v) {\n return function (rec) {\n var rest = writeImplFields(dictWriteForeignFields)(Type_Data_RowList.RLProxy.value)(rec);\n var value = writeImpl(dictWriteForeign)(Record.get(dictIsSymbol)()(Data_Symbol.SProxy.value)(rec));\n var result = Control_Semigroupoid.compose(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(dictIsSymbol)(Data_Symbol.SProxy.value)(value))(rest);\n return result;\n };\n });\n };\n };\n };\n };\n };\n };\n exports[\"writeJSON\"] = writeJSON;\n exports[\"writeForeignForeign\"] = writeForeignForeign;\n exports[\"writeForeignString\"] = writeForeignString;\n exports[\"writeForeignInt\"] = writeForeignInt;\n exports[\"writeForeignBoolean\"] = writeForeignBoolean;\n exports[\"writeForeignNullable\"] = writeForeignNullable;\n exports[\"recordWriteForeign\"] = recordWriteForeign;\n exports[\"consWriteForeignFields\"] = consWriteForeignFields;\n exports[\"nilWriteForeignFields\"] = nilWriteForeignFields;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Model\"] = $PS[\"Model\"] || {};\n var exports = $PS[\"Model\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Monad_Except = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Foreign = $PS[\"Foreign\"];\n var Simple_JSON = $PS[\"Simple.JSON\"]; \n var TagCloudModeTop = (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 })();\n var TagCloudModeLowerBound = (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 })();\n var TagCloudModeRelated = (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 })();\n var TagCloudModeNone = (function () {\n function TagCloudModeNone() {\n\n };\n TagCloudModeNone.value = new TagCloudModeNone();\n return TagCloudModeNone;\n })();\n var usersettings_wfI = Simple_JSON.recordWriteForeign()(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"archiveDefault\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"privacyLock\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"privateDefault\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.nilWriteForeignFields)()()())()()())()()());\n var tagcloudmode_wfI = Simple_JSON.recordWriteForeign()(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"expanded\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"mode\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"value\";\n }))(Simple_JSON.writeForeignForeign)(Simple_JSON.nilWriteForeignFields)()()())()()())()()());\n var 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 Data_Functor.map(Control_Monad_Except_Trans.functorExceptT(Data_Identity.functorIdentity))(TagCloudModeTop.create(tagCloudMode.expanded))(Foreign.readInt(tagCloudMode.value));\n };\n if (tagCloudMode.mode === \"lowerBound\") {\n return Data_Functor.map(Control_Monad_Except_Trans.functorExceptT(Data_Identity.functorIdentity))(TagCloudModeLowerBound.create(tagCloudMode.expanded))(Foreign.readInt(tagCloudMode.value));\n };\n if (tagCloudMode.mode === \"related\") {\n return Data_Functor.map(Control_Monad_Except_Trans.functorExceptT(Data_Identity.functorIdentity))(function (s) {\n return new TagCloudModeRelated(tagCloudMode.expanded, Data_Array.singleton(s));\n })(Foreign.readString(tagCloudMode.value));\n };\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(TagCloudModeNone.value);\n })())));\n };\n var 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(Data_Foldable.intercalate(Data_Foldable.foldableArray)(Data_Monoid.monoidString)(\" \")(v.value1)),\n expanded: v.value0\n };\n };\n if (v instanceof TagCloudModeNone) {\n return {\n mode: \"related\",\n value: Foreign.unsafeToForeign(\"\"),\n expanded: false\n };\n };\n throw new Error(\"Failed pattern match at Model (line 93, column 1 - line 93, column 51): \" + [ v.constructor.name ]);\n };\n var 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 109, column 1 - line 109, column 57): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n var note_wfI = Simple_JSON.recordWriteForeign()(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"created\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"id\";\n }))(Simple_JSON.writeForeignInt)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"isMarkdown\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"length\";\n }))(Simple_JSON.writeForeignInt)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"shared\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"slug\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"text\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"title\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"updated\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.nilWriteForeignFields)()()())()()())()()())()()())()()())()()())()()())()()())()()());\n var 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 103, column 1 - line 103, column 39): \" + [ v.constructor.name ]);\n };\n var eqTagCloudModeF = new Data_Eq.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 && Data_Eq.eq(Data_Eq.eqArray(Data_Eq.eqString))(x.value1)(y.value1);\n };\n if (x instanceof TagCloudModeNone && y instanceof TagCloudModeNone) {\n return true;\n };\n return false;\n };\n });\n var bookmark_wfI = Simple_JSON.recordWriteForeign()(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"archiveUrl\";\n }))(Simple_JSON.writeForeignNullable(Simple_JSON.writeForeignString))(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"bid\";\n }))(Simple_JSON.writeForeignInt)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"description\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"private\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"selected\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"slug\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"tags\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"time\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"title\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"toread\";\n }))(Simple_JSON.writeForeignBoolean)(Simple_JSON.consWriteForeignFields(new Data_Symbol.IsSymbol(function () {\n return \"url\";\n }))(Simple_JSON.writeForeignString)(Simple_JSON.nilWriteForeignFields)()()())()()())()()())()()())()()())()()())()()())()()())()()())()()())()()());\n exports[\"TagCloudModeTop\"] = TagCloudModeTop;\n exports[\"TagCloudModeLowerBound\"] = TagCloudModeLowerBound;\n exports[\"TagCloudModeNone\"] = TagCloudModeNone;\n exports[\"tagCloudModeToF\"] = tagCloudModeToF;\n exports[\"tagCloudModeFromF\"] = tagCloudModeFromF;\n exports[\"isExpanded\"] = isExpanded;\n exports[\"setExpanded\"] = setExpanded;\n exports[\"bookmark_wfI\"] = bookmark_wfI;\n exports[\"note_wfI\"] = note_wfI;\n exports[\"usersettings_wfI\"] = usersettings_wfI;\n exports[\"tagcloudmode_wfI\"] = tagcloudmode_wfI;\n exports[\"eqTagCloudModeF\"] = eqTagCloudModeF;\n})(PS);\n(function(exports) {\n /* global window */\n \"use strict\";\n\n exports.window = function () {\n return window;\n };\n})(PS[\"Web.HTML\"] = PS[\"Web.HTML\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.HTML\"] = $PS[\"Web.HTML\"] || {};\n var exports = $PS[\"Web.HTML\"];\n var $foreign = $PS[\"Web.HTML\"];\n exports[\"window\"] = $foreign.window;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.setHref = function (href) {\n return function (location) {\n return function () {\n location.href = href;\n };\n };\n };\n\n // ----------------------------------------------------------------------------\n\n exports.search = function (location) {\n return function () {\n return location.search;\n };\n };\n\n // ----------------------------------------------------------------------------\n\n exports.reload = function (location) {\n return function () {\n location.reload();\n };\n };\n})(PS[\"Web.HTML.Location\"] = PS[\"Web.HTML.Location\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.HTML.Location\"] = $PS[\"Web.HTML.Location\"] || {};\n var exports = $PS[\"Web.HTML.Location\"];\n var $foreign = $PS[\"Web.HTML.Location\"];\n exports[\"setHref\"] = $foreign.setHref;\n exports[\"search\"] = $foreign.search;\n exports[\"reload\"] = $foreign.reload;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.document = function (window) {\n return function () {\n return window.document;\n };\n };\n\n exports.location = function (window) {\n return function () {\n return window.location;\n };\n };\n})(PS[\"Web.HTML.Window\"] = PS[\"Web.HTML.Window\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.HTML.Window\"] = $PS[\"Web.HTML.Window\"] || {};\n var exports = $PS[\"Web.HTML.Window\"];\n var $foreign = $PS[\"Web.HTML.Window\"];\n exports[\"document\"] = $foreign.document;\n exports[\"location\"] = $foreign.location;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"App\"] = $PS[\"App\"] || {};\n var exports = $PS[\"App\"];\n var Affjax = $PS[\"Affjax\"];\n var Affjax_RequestBody = $PS[\"Affjax.RequestBody\"];\n var Affjax_RequestHeader = $PS[\"Affjax.RequestHeader\"];\n var Affjax_ResponseFormat = $PS[\"Affjax.ResponseFormat\"];\n var Affjax_StatusCode = $PS[\"Affjax.StatusCode\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Argonaut_Decode_Class = $PS[\"Data.Argonaut.Decode.Class\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_HTTP_Method = $PS[\"Data.HTTP.Method\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_MediaType_Common = $PS[\"Data.MediaType.Common\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Globals = $PS[\"Globals\"];\n var Model = $PS[\"Model\"];\n var Simple_JSON = $PS[\"Simple.JSON\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_Location = $PS[\"Web.HTML.Location\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"]; \n var Star = (function () {\n function Star() {\n\n };\n Star.value = new Star();\n return Star;\n })();\n var UnStar = (function () {\n function UnStar() {\n\n };\n UnStar.value = new UnStar();\n return UnStar;\n })();\n var showStar = new Data_Show.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 var fetchUrl = function (method) {\n return function (url) {\n return function (headers) {\n return function (content) {\n return function (rt) {\n var app = Globals[\"app'\"](Data_Unit.unit);\n return Affjax.request({\n method: new Data_Either.Left(method),\n url: url,\n headers: Data_Array.cons(new Affjax_RequestHeader.RequestHeader(app.csrfHeaderName, app.csrfToken))(headers),\n content: content,\n username: Affjax.defaultRequest.username,\n password: Affjax.defaultRequest.password,\n withCredentials: Affjax.defaultRequest.withCredentials,\n responseFormat: rt\n });\n };\n };\n };\n };\n };\n var logout = function (u) {\n var app = Globals[\"app'\"](u);\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor[\"void\"](Effect_Aff.functorAff)(fetchUrl(Data_HTTP_Method.POST.value)(app.authRlogoutR)([ ])(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore)))(function () {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Control_Bind.bind(Effect.bindEffect)(Control_Bind.bind(Effect.bindEffect)(Web_HTML.window)(Web_HTML_Window.location))(Web_HTML_Location.reload));\n });\n };\n var 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'\"](Data_Unit.unit)).homeR + path)(headers)(content)(rt);\n };\n };\n };\n };\n };\n var 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) ])(Data_Functor.map(Data_Maybe.functorMaybe)(Affjax_RequestBody.FormURLEncoded.create)(content))(rt);\n };\n };\n };\n };\n var markRead = function (bid) {\n var path = \"bm/\" + (Data_Show.show(Data_Show.showInt)(bid) + \"/read\");\n return fetchUrlEnc(Data_HTTP_Method.POST.value)(path)(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore);\n };\n var toggleStar = function (bid) {\n return function (action) {\n var path = \"bm/\" + (Data_Show.show(Data_Show.showInt)(bid) + (\"/\" + Data_Show.show(showStar)(action)));\n return Data_Functor[\"void\"](Effect_Aff.functorAff)(fetchUrlEnc(Data_HTTP_Method.POST.value)(path)(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore));\n };\n };\n var fetchJson = function (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) ])(Data_Functor.map(Data_Maybe.functorMaybe)((function () {\n var $5 = Simple_JSON.writeJSON(dictWriteForeign);\n return function ($6) {\n return Affjax_RequestBody.string($5($6));\n };\n })())(content))(rt);\n };\n };\n };\n };\n };\n var getTagCloud = function (mode) {\n return Control_Bind.bind(Effect_Aff.bindAff)(fetchJson(Model.tagcloudmode_wfI)(Data_HTTP_Method.POST.value)(\"api/tagcloud\")(new Data_Maybe.Just(mode))(Affjax_ResponseFormat.json))(function (eres) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Control_Bind.bind(Data_Maybe.bindMaybe)(Data_Either.hush(eres))(function (res) {\n return Data_Either.hush(Data_Argonaut_Decode_Class.decodeJson(Data_Argonaut_Decode_Class.decodeForeignObject(Data_Argonaut_Decode_Class.decodeJsonInt))(res.body));\n }));\n });\n };\n var lookupTitle = function (bm) {\n return Control_Bind.bind(Effect_Aff.bindAff)(fetchJson(Model.bookmark_wfI)(Data_HTTP_Method.POST.value)(\"api/lookuptitle\")(new Data_Maybe.Just(bm))(Affjax_ResponseFormat.string))(function (eres) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Control_Bind.bind(Data_Maybe.bindMaybe)(Data_Either.hush(eres))(function (res) {\n var $4 = Data_Eq.eq(Affjax_StatusCode.eqStatusCode)(res.status)(200);\n if ($4) {\n return new Data_Maybe.Just(res.body);\n };\n return Data_Maybe.Nothing.value;\n }));\n });\n };\n var updateTagCloudMode = function (mode) {\n return fetchJson(Model.tagcloudmode_wfI)(Data_HTTP_Method.POST.value)(\"api/tagcloudmode\")(new Data_Maybe.Just(mode))(Affjax_ResponseFormat.ignore);\n };\n var editNote = function (bm) {\n return fetchJson(Model.note_wfI)(Data_HTTP_Method.POST.value)(\"api/note/add\")(new Data_Maybe.Just(bm))(Affjax_ResponseFormat.json);\n };\n var editBookmark = function (bm) {\n return fetchJson(Model.bookmark_wfI)(Data_HTTP_Method.POST.value)(\"api/add\")(new Data_Maybe.Just(bm))(Affjax_ResponseFormat.ignore);\n };\n var editAccountSettings = function (us) {\n return fetchJson(Model.usersettings_wfI)(Data_HTTP_Method.POST.value)(\"api/accountSettings\")(new Data_Maybe.Just(us))(Affjax_ResponseFormat.ignore);\n };\n var destroyNote = function (nid) {\n return fetchUrlEnc(Data_HTTP_Method.DELETE.value)(\"api/note/\" + Data_Show.show(Data_Show.showInt)(nid))(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore);\n };\n var destroy = function (bid) {\n return fetchUrlEnc(Data_HTTP_Method.DELETE.value)(\"bm/\" + Data_Show.show(Data_Show.showInt)(bid))(Data_Maybe.Nothing.value)(Affjax_ResponseFormat.ignore);\n };\n exports[\"Star\"] = Star;\n exports[\"UnStar\"] = UnStar;\n exports[\"toggleStar\"] = toggleStar;\n exports[\"destroy\"] = destroy;\n exports[\"markRead\"] = markRead;\n exports[\"editBookmark\"] = editBookmark;\n exports[\"editNote\"] = editNote;\n exports[\"lookupTitle\"] = lookupTitle;\n exports[\"getTagCloud\"] = getTagCloud;\n exports[\"updateTagCloudMode\"] = updateTagCloudMode;\n exports[\"destroyNote\"] = destroyNote;\n exports[\"editAccountSettings\"] = editAccountSettings;\n exports[\"logout\"] = logout;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"DOM.HTML.Indexed.InputType\"] = $PS[\"DOM.HTML.Indexed.InputType\"] || {};\n var exports = $PS[\"DOM.HTML.Indexed.InputType\"];\n var InputButton = (function () {\n function InputButton() {\n\n };\n InputButton.value = new InputButton();\n return InputButton;\n })();\n var InputCheckbox = (function () {\n function InputCheckbox() {\n\n };\n InputCheckbox.value = new InputCheckbox();\n return InputCheckbox;\n })();\n var InputColor = (function () {\n function InputColor() {\n\n };\n InputColor.value = new InputColor();\n return InputColor;\n })();\n var InputDate = (function () {\n function InputDate() {\n\n };\n InputDate.value = new InputDate();\n return InputDate;\n })();\n var InputDatetimeLocal = (function () {\n function InputDatetimeLocal() {\n\n };\n InputDatetimeLocal.value = new InputDatetimeLocal();\n return InputDatetimeLocal;\n })();\n var InputEmail = (function () {\n function InputEmail() {\n\n };\n InputEmail.value = new InputEmail();\n return InputEmail;\n })();\n var InputFile = (function () {\n function InputFile() {\n\n };\n InputFile.value = new InputFile();\n return InputFile;\n })();\n var InputHidden = (function () {\n function InputHidden() {\n\n };\n InputHidden.value = new InputHidden();\n return InputHidden;\n })();\n var InputImage = (function () {\n function InputImage() {\n\n };\n InputImage.value = new InputImage();\n return InputImage;\n })();\n var InputMonth = (function () {\n function InputMonth() {\n\n };\n InputMonth.value = new InputMonth();\n return InputMonth;\n })();\n var InputNumber = (function () {\n function InputNumber() {\n\n };\n InputNumber.value = new InputNumber();\n return InputNumber;\n })();\n var InputPassword = (function () {\n function InputPassword() {\n\n };\n InputPassword.value = new InputPassword();\n return InputPassword;\n })();\n var InputRadio = (function () {\n function InputRadio() {\n\n };\n InputRadio.value = new InputRadio();\n return InputRadio;\n })();\n var InputRange = (function () {\n function InputRange() {\n\n };\n InputRange.value = new InputRange();\n return InputRange;\n })();\n var InputReset = (function () {\n function InputReset() {\n\n };\n InputReset.value = new InputReset();\n return InputReset;\n })();\n var InputSearch = (function () {\n function InputSearch() {\n\n };\n InputSearch.value = new InputSearch();\n return InputSearch;\n })();\n var InputSubmit = (function () {\n function InputSubmit() {\n\n };\n InputSubmit.value = new InputSubmit();\n return InputSubmit;\n })();\n var InputTel = (function () {\n function InputTel() {\n\n };\n InputTel.value = new InputTel();\n return InputTel;\n })();\n var InputText = (function () {\n function InputText() {\n\n };\n InputText.value = new InputText();\n return InputText;\n })();\n var InputTime = (function () {\n function InputTime() {\n\n };\n InputTime.value = new InputTime();\n return InputTime;\n })();\n var InputUrl = (function () {\n function InputUrl() {\n\n };\n InputUrl.value = new InputUrl();\n return InputUrl;\n })();\n var InputWeek = (function () {\n function InputWeek() {\n\n };\n InputWeek.value = new InputWeek();\n return InputWeek;\n })();\n var renderInputType = function (v) {\n if (v instanceof InputButton) {\n return \"button\";\n };\n if (v instanceof InputCheckbox) {\n return \"checkbox\";\n };\n if (v instanceof InputColor) {\n return \"color\";\n };\n if (v instanceof InputDate) {\n return \"date\";\n };\n if (v instanceof InputDatetimeLocal) {\n return \"datetime-local\";\n };\n if (v instanceof InputEmail) {\n return \"email\";\n };\n if (v instanceof InputFile) {\n return \"file\";\n };\n if (v instanceof InputHidden) {\n return \"hidden\";\n };\n if (v instanceof InputImage) {\n return \"image\";\n };\n if (v instanceof InputMonth) {\n return \"month\";\n };\n if (v instanceof InputNumber) {\n return \"number\";\n };\n if (v instanceof InputPassword) {\n return \"password\";\n };\n if (v instanceof InputRadio) {\n return \"radio\";\n };\n if (v instanceof InputRange) {\n return \"range\";\n };\n if (v instanceof InputReset) {\n return \"reset\";\n };\n if (v instanceof InputSearch) {\n return \"search\";\n };\n if (v instanceof InputSubmit) {\n return \"submit\";\n };\n if (v instanceof InputTel) {\n return \"tel\";\n };\n if (v instanceof InputText) {\n return \"text\";\n };\n if (v instanceof InputTime) {\n return \"time\";\n };\n if (v instanceof InputUrl) {\n return \"url\";\n };\n if (v instanceof InputWeek) {\n return \"week\";\n };\n throw new Error(\"Failed pattern match at DOM.HTML.Indexed.InputType (line 28, column 19 - line 50, column 22): \" + [ v.constructor.name ]);\n };\n exports[\"InputCheckbox\"] = InputCheckbox;\n exports[\"InputReset\"] = InputReset;\n exports[\"InputSubmit\"] = InputSubmit;\n exports[\"InputText\"] = InputText;\n exports[\"InputUrl\"] = InputUrl;\n exports[\"renderInputType\"] = renderInputType;\n})(PS);\n(function($PS) {\n \n // | This module defines the `MonadState` type class and its instances.\n \"use strict\";\n $PS[\"Control.Monad.State.Class\"] = $PS[\"Control.Monad.State.Class\"] || {};\n var exports = $PS[\"Control.Monad.State.Class\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n\n // | The `MonadState s` type class represents those monads which support a single piece of mutable\n // | state of type `s`.\n // |\n // | - `state f` updates the state using the function `f`.\n // |\n // | An implementation is provided for `StateT`, and for other monad transformers\n // | defined in this library.\n // |\n // | Laws:\n // |\n // | - `do { get ; get } = get`\n // | - `do { put x ; put y } = put y`\n // | - `do { put x ; get } = put x $> x`\n // | - `do { s <- get ; put s } = pure unit`\n // |\n var MonadState = function (Monad0, state) {\n this.Monad0 = Monad0;\n this.state = state;\n };\n var state = function (dict) {\n return dict.state;\n };\n var modify_ = function (dictMonadState) {\n return function (f) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(Data_Unit.unit, f(s));\n });\n };\n };\n\n // | Modify the state by applying a function to the current state. The returned\n // | value is the new state value.\n var modify = function (dictMonadState) {\n return function (f) {\n return state(dictMonadState)(function (s) {\n var s$prime = f(s);\n return new Data_Tuple.Tuple(s$prime, s$prime);\n });\n };\n };\n\n // | Get a value which depends on the current state.\n var gets = function (dictMonadState) {\n return function (f) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(f(s), s);\n });\n };\n };\n\n // | Get the current state.\n var get = function (dictMonadState) {\n return state(dictMonadState)(function (s) {\n return new Data_Tuple.Tuple(s, s);\n });\n };\n exports[\"MonadState\"] = MonadState;\n exports[\"get\"] = get;\n exports[\"gets\"] = gets;\n exports[\"modify\"] = modify;\n exports[\"modify_\"] = modify_;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Profunctor\"] = $PS[\"Data.Profunctor\"] || {};\n var exports = $PS[\"Data.Profunctor\"];\n var Control_Category = $PS[\"Control.Category\"]; \n var Profunctor = function (dimap) {\n this.dimap = dimap;\n };\n var profunctorFn = new Profunctor(function (a2b) {\n return function (c2d) {\n return function (b2c) {\n return function ($9) {\n return c2d(b2c(a2b($9)));\n };\n };\n };\n });\n var dimap = function (dict) {\n return dict.dimap;\n };\n var rmap = function (dictProfunctor) {\n return function (b2c) {\n return dimap(dictProfunctor)(Control_Category.identity(Control_Category.categoryFn))(b2c);\n };\n };\n exports[\"dimap\"] = dimap;\n exports[\"Profunctor\"] = Profunctor;\n exports[\"rmap\"] = rmap;\n exports[\"profunctorFn\"] = profunctorFn;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Profunctor.Strong\"] = $PS[\"Data.Profunctor.Strong\"] || {};\n var exports = $PS[\"Data.Profunctor.Strong\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Profunctor = $PS[\"Data.Profunctor\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var Strong = function (Profunctor0, first, second) {\n this.Profunctor0 = Profunctor0;\n this.first = first;\n this.second = second;\n };\n var strongFn = new Strong(function () {\n return Data_Profunctor.profunctorFn;\n }, function (a2b) {\n return function (v) {\n return new Data_Tuple.Tuple(a2b(v.value0), v.value1);\n };\n }, Data_Functor.map(Data_Tuple.functorTuple));\n var first = function (dict) {\n return dict.first;\n };\n exports[\"first\"] = first;\n exports[\"Strong\"] = Strong;\n exports[\"strongFn\"] = strongFn;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Lens.Internal.Forget\"] = $PS[\"Data.Lens.Internal.Forget\"] || {};\n var exports = $PS[\"Data.Lens.Internal.Forget\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Profunctor = $PS[\"Data.Profunctor\"];\n var Data_Profunctor_Strong = $PS[\"Data.Profunctor.Strong\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var Forget = function (x) {\n return x;\n };\n var profunctorForget = new Data_Profunctor.Profunctor(function (f) {\n return function (v) {\n return function (v1) {\n return function ($27) {\n return v1(f($27));\n };\n };\n };\n });\n var strongForget = new Data_Profunctor_Strong.Strong(function () {\n return profunctorForget;\n }, function (v) {\n return function ($28) {\n return v(Data_Tuple.fst($28));\n };\n }, function (v) {\n return function ($29) {\n return v(Data_Tuple.snd($29));\n };\n });\n var newtypeForget = new Data_Newtype.Newtype(function (n) {\n return n;\n }, Forget);\n exports[\"newtypeForget\"] = newtypeForget;\n exports[\"strongForget\"] = strongForget;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Lens.Getter\"] = $PS[\"Data.Lens.Getter\"] || {};\n var exports = $PS[\"Data.Lens.Getter\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Lens_Internal_Forget = $PS[\"Data.Lens.Internal.Forget\"];\n var Data_Newtype = $PS[\"Data.Newtype\"]; \n var view = function (l) {\n return Data_Newtype.unwrap(Data_Lens_Internal_Forget.newtypeForget)(l(Control_Category.identity(Control_Category.categoryFn)));\n };\n var viewOn = function (s) {\n return function (l) {\n return view(l)(s);\n };\n };\n var use = function (dictMonadState) {\n return function (p) {\n return Control_Monad_State_Class.gets(dictMonadState)(function (v) {\n return viewOn(v)(p);\n });\n };\n };\n exports[\"use\"] = use;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Lens.Lens\"] = $PS[\"Data.Lens.Lens\"] || {};\n var exports = $PS[\"Data.Lens.Lens\"];\n var Data_Profunctor = $PS[\"Data.Profunctor\"];\n var Data_Profunctor_Strong = $PS[\"Data.Profunctor.Strong\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var lens$prime = function (to) {\n return function (dictStrong) {\n return function (pab) {\n return Data_Profunctor.dimap(dictStrong.Profunctor0())(to)(function (v) {\n return v.value1(v.value0);\n })(Data_Profunctor_Strong.first(dictStrong)(pab));\n };\n };\n };\n var 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 };\n exports[\"lens\"] = lens;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Lens.Setter\"] = $PS[\"Data.Lens.Setter\"] || {};\n var exports = $PS[\"Data.Lens.Setter\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var over = function (l) {\n return l;\n };\n var set = function (l) {\n return function (b) {\n return over(l)(Data_Function[\"const\"](b));\n };\n };\n var modifying = function (dictMonadState) {\n return function (p) {\n return function (f) {\n return Data_Functor[\"void\"]((((dictMonadState.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_State_Class.modify(dictMonadState)(over(p)(f)));\n };\n };\n };\n var assign = function (dictMonadState) {\n return function (p) {\n return function (b) {\n return Data_Functor[\"void\"]((((dictMonadState.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_State_Class.modify(dictMonadState)(set(p)(b)));\n };\n };\n };\n exports[\"assign\"] = assign;\n exports[\"modifying\"] = modifying;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Aff.Class\"] = $PS[\"Effect.Aff.Class\"] || {};\n var exports = $PS[\"Effect.Aff.Class\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Effect_Aff = $PS[\"Effect.Aff\"]; \n var MonadAff = function (MonadEffect0, liftAff) {\n this.MonadEffect0 = MonadEffect0;\n this.liftAff = liftAff;\n };\n var monadAffAff = new MonadAff(function () {\n return Effect_Aff.monadEffectAff;\n }, Control_Category.identity(Control_Category.categoryFn));\n var liftAff = function (dict) {\n return dict.liftAff;\n };\n exports[\"liftAff\"] = liftAff;\n exports[\"MonadAff\"] = MonadAff;\n exports[\"monadAffAff\"] = monadAffAff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Exists\"] = $PS[\"Data.Exists\"] || {};\n var exports = $PS[\"Data.Exists\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var runExists = Unsafe_Coerce.unsafeCoerce;\n var mkExists = Unsafe_Coerce.unsafeCoerce;\n exports[\"mkExists\"] = mkExists;\n exports[\"runExists\"] = runExists;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Coyoneda\"] = $PS[\"Data.Coyoneda\"] || {};\n var exports = $PS[\"Data.Coyoneda\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Exists = $PS[\"Data.Exists\"];\n var Data_Functor = $PS[\"Data.Functor\"]; \n var CoyonedaF = (function () {\n function CoyonedaF(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CoyonedaF.create = function (value0) {\n return function (value1) {\n return new CoyonedaF(value0, value1);\n };\n };\n return CoyonedaF;\n })();\n var Coyoneda = function (x) {\n return x;\n };\n var unCoyoneda = function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return f(v1.value0)(v1.value1);\n })(v);\n };\n };\n var coyoneda = function (k) {\n return function (fi) {\n return Coyoneda(Data_Exists.mkExists(new CoyonedaF(k, fi)));\n };\n };\n var functorCoyoneda = new Data_Functor.Functor(function (f) {\n return function (v) {\n return Data_Exists.runExists(function (v1) {\n return coyoneda(function ($85) {\n return f(v1.value0($85));\n })(v1.value1);\n })(v);\n };\n });\n var liftCoyoneda = coyoneda(Control_Category.identity(Control_Category.categoryFn));\n exports[\"unCoyoneda\"] = unCoyoneda;\n exports[\"liftCoyoneda\"] = liftCoyoneda;\n exports[\"functorCoyoneda\"] = functorCoyoneda;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Map.Internal\"] = $PS[\"Data.Map.Internal\"] || {};\n var exports = $PS[\"Data.Map.Internal\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Ordering = $PS[\"Data.Ordering\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var Leaf = (function () {\n function Leaf() {\n\n };\n Leaf.value = new Leaf();\n return Leaf;\n })();\n var Two = (function () {\n function Two(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Two.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Two(value0, value1, value2, value3);\n };\n };\n };\n };\n return Two;\n })();\n var Three = (function () {\n function Three(value0, value1, value2, value3, value4, value5, value6) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n this.value6 = value6;\n };\n Three.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return function (value6) {\n return new Three(value0, value1, value2, value3, value4, value5, value6);\n };\n };\n };\n };\n };\n };\n };\n return Three;\n })();\n var TwoLeft = (function () {\n function TwoLeft(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n TwoLeft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new TwoLeft(value0, value1, value2);\n };\n };\n };\n return TwoLeft;\n })();\n var TwoRight = (function () {\n function TwoRight(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n TwoRight.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new TwoRight(value0, value1, value2);\n };\n };\n };\n return TwoRight;\n })();\n var ThreeLeft = (function () {\n function ThreeLeft(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeLeft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeLeft(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeLeft;\n })();\n var ThreeMiddle = (function () {\n function ThreeMiddle(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeMiddle.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeMiddle(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeMiddle;\n })();\n var ThreeRight = (function () {\n function ThreeRight(value0, value1, value2, value3, value4, value5) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n this.value4 = value4;\n this.value5 = value5;\n };\n ThreeRight.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return function (value4) {\n return function (value5) {\n return new ThreeRight(value0, value1, value2, value3, value4, value5);\n };\n };\n };\n };\n };\n };\n return ThreeRight;\n })();\n var KickUp = (function () {\n function KickUp(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n KickUp.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new KickUp(value0, value1, value2, value3);\n };\n };\n };\n };\n return KickUp;\n })();\n var values = function (v) {\n if (v instanceof Leaf) {\n return Data_List_Types.Nil.value;\n };\n if (v instanceof Two) {\n return Data_Semigroup.append(Data_List_Types.semigroupList)(values(v.value0))(Data_Semigroup.append(Data_List_Types.semigroupList)(Control_Applicative.pure(Data_List_Types.applicativeList)(v.value2))(values(v.value3)));\n };\n if (v instanceof Three) {\n return Data_Semigroup.append(Data_List_Types.semigroupList)(values(v.value0))(Data_Semigroup.append(Data_List_Types.semigroupList)(Control_Applicative.pure(Data_List_Types.applicativeList)(v.value2))(Data_Semigroup.append(Data_List_Types.semigroupList)(values(v.value3))(Data_Semigroup.append(Data_List_Types.semigroupList)(Control_Applicative.pure(Data_List_Types.applicativeList)(v.value5))(values(v.value6)))));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 612, column 1 - line 612, column 40): \" + [ v.constructor.name ]);\n };\n var lookup = function (dictOrd) {\n return function (k) {\n var comp = Data_Ord.compare(dictOrd);\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v instanceof Leaf) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof Two) {\n var v2 = comp(k)(v.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value2);\n };\n if (v2 instanceof Data_Ordering.LT) {\n $copy_v = v.value0;\n return;\n };\n $copy_v = v.value3;\n return;\n };\n if (v instanceof Three) {\n var v3 = comp(k)(v.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value2);\n };\n var v4 = comp(k)(v.value4);\n if (v4 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(v.value5);\n };\n if (v3 instanceof Data_Ordering.LT) {\n $copy_v = v.value0;\n return;\n };\n if (v4 instanceof Data_Ordering.GT) {\n $copy_v = v.value6;\n return;\n };\n $copy_v = v.value3;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 200, column 5 - line 200, column 22): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go;\n };\n };\n var member = function (dictOrd) {\n return function (k) {\n return function (m) {\n return Data_Maybe.isJust(lookup(dictOrd)(k)(m));\n };\n };\n };\n var functorMap = new Data_Functor.Functor(function (v) {\n return function (v1) {\n if (v1 instanceof Leaf) {\n return Leaf.value;\n };\n if (v1 instanceof Two) {\n return new Two(Data_Functor.map(functorMap)(v)(v1.value0), v1.value1, v(v1.value2), Data_Functor.map(functorMap)(v)(v1.value3));\n };\n if (v1 instanceof Three) {\n return new Three(Data_Functor.map(functorMap)(v)(v1.value0), v1.value1, v(v1.value2), Data_Functor.map(functorMap)(v)(v1.value3), v1.value4, v(v1.value5), Data_Functor.map(functorMap)(v)(v1.value6));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 96, column 1 - line 99, column 110): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n });\n var fromZipper = function ($copy_dictOrd) {\n return function ($copy_v) {\n return function ($copy_tree) {\n var $tco_var_dictOrd = $copy_dictOrd;\n var $tco_var_v = $copy_v;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictOrd, v, tree) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return tree;\n };\n if (v instanceof Data_List_Types.Cons) {\n if (v.value0 instanceof TwoLeft) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Two(tree, v.value0.value0, v.value0.value1, v.value0.value2);\n return;\n };\n if (v.value0 instanceof TwoRight) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Two(v.value0.value0, v.value0.value1, v.value0.value2, tree);\n return;\n };\n if (v.value0 instanceof ThreeLeft) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(tree, v.value0.value0, v.value0.value1, v.value0.value2, v.value0.value3, v.value0.value4, v.value0.value5);\n return;\n };\n if (v.value0 instanceof ThreeMiddle) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(v.value0.value0, v.value0.value1, v.value0.value2, tree, v.value0.value3, v.value0.value4, v.value0.value5);\n return;\n };\n if (v.value0 instanceof ThreeRight) {\n $tco_var_dictOrd = dictOrd;\n $tco_var_v = v.value1;\n $copy_tree = new Three(v.value0.value0, v.value0.value1, v.value0.value2, v.value0.value3, v.value0.value4, v.value0.value5, tree);\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 418, column 3 - line 423, column 88): \" + [ v.value0.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 415, column 1 - line 415, column 80): \" + [ v.constructor.name, tree.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictOrd, $tco_var_v, $copy_tree);\n };\n return $tco_result;\n };\n };\n };\n var insert = function (dictOrd) {\n return function (k) {\n return function (v) {\n var up = function ($copy_v1) {\n return function ($copy_v2) {\n var $tco_var_v1 = $copy_v1;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v1, v2) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Two(v2.value0, v2.value1, v2.value2, v2.value3);\n };\n if (v1 instanceof Data_List_Types.Cons) {\n if (v1.value0 instanceof TwoLeft) {\n $tco_done = true;\n return fromZipper(dictOrd)(v1.value1)(new Three(v2.value0, v2.value1, v2.value2, v2.value3, v1.value0.value0, v1.value0.value1, v1.value0.value2));\n };\n if (v1.value0 instanceof TwoRight) {\n $tco_done = true;\n return fromZipper(dictOrd)(v1.value1)(new Three(v1.value0.value0, v1.value0.value1, v1.value0.value2, v2.value0, v2.value1, v2.value2, v2.value3));\n };\n if (v1.value0 instanceof ThreeLeft) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v2.value0, v2.value1, v2.value2, v2.value3), v1.value0.value0, v1.value0.value1, new Two(v1.value0.value2, v1.value0.value3, v1.value0.value4, v1.value0.value5));\n return;\n };\n if (v1.value0 instanceof ThreeMiddle) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v1.value0.value0, v1.value0.value1, v1.value0.value2, v2.value0), v2.value1, v2.value2, new Two(v2.value3, v1.value0.value3, v1.value0.value4, v1.value0.value5));\n return;\n };\n if (v1.value0 instanceof ThreeRight) {\n $tco_var_v1 = v1.value1;\n $copy_v2 = new KickUp(new Two(v1.value0.value0, v1.value0.value1, v1.value0.value2, v1.value0.value3), v1.value0.value4, v1.value0.value5, new Two(v2.value0, v2.value1, v2.value2, v2.value3));\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 454, column 5 - line 459, column 108): \" + [ v1.value0.constructor.name, v2.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 451, column 3 - line 451, column 56): \" + [ v1.constructor.name, v2.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v1, $copy_v2);\n };\n return $tco_result;\n };\n };\n var comp = Data_Ord.compare(dictOrd);\n var down = function ($copy_ctx) {\n return function ($copy_v1) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(ctx, v1) {\n if (v1 instanceof Leaf) {\n $tco_done = true;\n return up(ctx)(new KickUp(Leaf.value, k, v, Leaf.value));\n };\n if (v1 instanceof Two) {\n var v2 = comp(k)(v1.value1);\n if (v2 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctx)(new Two(v1.value0, k, v, v1.value3));\n };\n if (v2 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoLeft(v1.value1, v1.value2, v1.value3), ctx);\n $copy_v1 = v1.value0;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(v1.value0, v1.value1, v1.value2), ctx);\n $copy_v1 = v1.value3;\n return;\n };\n if (v1 instanceof Three) {\n var v3 = comp(k)(v1.value1);\n if (v3 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctx)(new Three(v1.value0, k, v, v1.value3, v1.value4, v1.value5, v1.value6));\n };\n var v4 = comp(k)(v1.value4);\n if (v4 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctx)(new Three(v1.value0, v1.value1, v1.value2, v1.value3, k, v, v1.value6));\n };\n if (v3 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeLeft(v1.value1, v1.value2, v1.value3, v1.value4, v1.value5, v1.value6), ctx);\n $copy_v1 = v1.value0;\n return;\n };\n if (v3 instanceof Data_Ordering.GT && v4 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeMiddle(v1.value0, v1.value1, v1.value2, v1.value4, v1.value5, v1.value6), ctx);\n $copy_v1 = v1.value3;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(v1.value0, v1.value1, v1.value2, v1.value3, v1.value4, v1.value5), ctx);\n $copy_v1 = v1.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 434, column 3 - line 434, column 55): \" + [ ctx.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_v1);\n };\n return $tco_result;\n };\n };\n return down(Data_List_Types.Nil.value);\n };\n };\n };\n var pop = function (dictOrd) {\n return function (k) {\n var up = function ($copy_ctxs) {\n return function ($copy_tree) {\n var $tco_var_ctxs = $copy_ctxs;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(ctxs, tree) {\n if (ctxs instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return tree;\n };\n if (ctxs instanceof Data_List_Types.Cons) {\n if (ctxs.value0 instanceof TwoLeft && (ctxs.value0.value2 instanceof Leaf && tree instanceof Leaf)) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(Leaf.value, ctxs.value0.value0, ctxs.value0.value1, Leaf.value));\n };\n if (ctxs.value0 instanceof TwoRight && (ctxs.value0.value0 instanceof Leaf && tree instanceof Leaf)) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value));\n };\n if (ctxs.value0 instanceof TwoLeft && ctxs.value0.value2 instanceof Two) {\n $tco_var_ctxs = ctxs.value1;\n $copy_tree = new Three(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0, ctxs.value0.value2.value1, ctxs.value0.value2.value2, ctxs.value0.value2.value3);\n return;\n };\n if (ctxs.value0 instanceof TwoRight && ctxs.value0.value0 instanceof Two) {\n $tco_var_ctxs = ctxs.value1;\n $copy_tree = new Three(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3, ctxs.value0.value1, ctxs.value0.value2, tree);\n return;\n };\n if (ctxs.value0 instanceof TwoLeft && ctxs.value0.value2 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Two(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0), ctxs.value0.value2.value1, ctxs.value0.value2.value2, new Two(ctxs.value0.value2.value3, ctxs.value0.value2.value4, ctxs.value0.value2.value5, ctxs.value0.value2.value6)));\n };\n if (ctxs.value0 instanceof TwoRight && ctxs.value0.value0 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Two(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3), ctxs.value0.value0.value4, ctxs.value0.value0.value5, new Two(ctxs.value0.value0.value6, ctxs.value0.value1, ctxs.value0.value2, tree)));\n };\n if (ctxs.value0 instanceof ThreeLeft && (ctxs.value0.value2 instanceof Leaf && (ctxs.value0.value5 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value0, ctxs.value0.value1, Leaf.value, ctxs.value0.value3, ctxs.value0.value4, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeMiddle && (ctxs.value0.value0 instanceof Leaf && (ctxs.value0.value5 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value, ctxs.value0.value3, ctxs.value0.value4, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeRight && (ctxs.value0.value0 instanceof Leaf && (ctxs.value0.value3 instanceof Leaf && tree instanceof Leaf))) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(Leaf.value, ctxs.value0.value1, ctxs.value0.value2, Leaf.value, ctxs.value0.value4, ctxs.value0.value5, Leaf.value));\n };\n if (ctxs.value0 instanceof ThreeLeft && ctxs.value0.value2 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Three(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0, ctxs.value0.value2.value1, ctxs.value0.value2.value2, ctxs.value0.value2.value3), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value0 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(new Three(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3, ctxs.value0.value1, ctxs.value0.value2, tree), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value5 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Three(tree, ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5.value0, ctxs.value0.value5.value1, ctxs.value0.value5.value2, ctxs.value0.value5.value3)));\n };\n if (ctxs.value0 instanceof ThreeRight && ctxs.value0.value3 instanceof Two) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Two(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Three(ctxs.value0.value3.value0, ctxs.value0.value3.value1, ctxs.value0.value3.value2, ctxs.value0.value3.value3, ctxs.value0.value4, ctxs.value0.value5, tree)));\n };\n if (ctxs.value0 instanceof ThreeLeft && ctxs.value0.value2 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(new Two(tree, ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2.value0), ctxs.value0.value2.value1, ctxs.value0.value2.value2, new Two(ctxs.value0.value2.value3, ctxs.value0.value2.value4, ctxs.value0.value2.value5, ctxs.value0.value2.value6), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value0 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(new Two(ctxs.value0.value0.value0, ctxs.value0.value0.value1, ctxs.value0.value0.value2, ctxs.value0.value0.value3), ctxs.value0.value0.value4, ctxs.value0.value0.value5, new Two(ctxs.value0.value0.value6, ctxs.value0.value1, ctxs.value0.value2, tree), ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5));\n };\n if (ctxs.value0 instanceof ThreeMiddle && ctxs.value0.value5 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Two(tree, ctxs.value0.value3, ctxs.value0.value4, ctxs.value0.value5.value0), ctxs.value0.value5.value1, ctxs.value0.value5.value2, new Two(ctxs.value0.value5.value3, ctxs.value0.value5.value4, ctxs.value0.value5.value5, ctxs.value0.value5.value6)));\n };\n if (ctxs.value0 instanceof ThreeRight && ctxs.value0.value3 instanceof Three) {\n $tco_done = true;\n return fromZipper(dictOrd)(ctxs.value1)(new Three(ctxs.value0.value0, ctxs.value0.value1, ctxs.value0.value2, new Two(ctxs.value0.value3.value0, ctxs.value0.value3.value1, ctxs.value0.value3.value2, ctxs.value0.value3.value3), ctxs.value0.value3.value4, ctxs.value0.value3.value5, new Two(ctxs.value0.value3.value6, ctxs.value0.value4, ctxs.value0.value5, tree)));\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 511, column 9 - line 528, column 136): \" + [ ctxs.value0.constructor.name, tree.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 508, column 5 - line 528, column 136): \" + [ ctxs.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_ctxs, $copy_tree);\n };\n return $tco_result;\n };\n };\n var removeMaxNode = function ($copy_ctx) {\n return function ($copy_m) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(ctx, m) {\n if (m instanceof Two && (m.value0 instanceof Leaf && m.value3 instanceof Leaf)) {\n $tco_done = true;\n return up(ctx)(Leaf.value);\n };\n if (m instanceof Two) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(m.value0, m.value1, m.value2), ctx);\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three && (m.value0 instanceof Leaf && (m.value3 instanceof Leaf && m.value6 instanceof Leaf))) {\n $tco_done = true;\n return up(new Data_List_Types.Cons(new TwoRight(Leaf.value, m.value1, m.value2), ctx))(Leaf.value);\n };\n if (m instanceof Three) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(m.value0, m.value1, m.value2, m.value3, m.value4, m.value5), ctx);\n $copy_m = m.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 540, column 5 - line 544, column 107): \" + [ m.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_m);\n };\n return $tco_result;\n };\n };\n var maxNode = function ($copy_m) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(m) {\n if (m instanceof Two && m.value3 instanceof Leaf) {\n $tco_done = true;\n return {\n key: m.value1,\n value: m.value2\n };\n };\n if (m instanceof Two) {\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three && m.value6 instanceof Leaf) {\n $tco_done = true;\n return {\n key: m.value4,\n value: m.value5\n };\n };\n if (m instanceof Three) {\n $copy_m = m.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 531, column 33 - line 535, column 45): \" + [ m.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_m);\n };\n return $tco_result;\n };\n var comp = Data_Ord.compare(dictOrd);\n var down = function ($copy_ctx) {\n return function ($copy_m) {\n var $tco_var_ctx = $copy_ctx;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(ctx, m) {\n if (m instanceof Leaf) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (m instanceof Two) {\n var v = comp(k)(m.value1);\n if (m.value3 instanceof Leaf && v instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, up(ctx)(Leaf.value)));\n };\n if (v instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value0);\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, removeMaxNode(new Data_List_Types.Cons(new TwoLeft(max.key, max.value, m.value3), ctx))(m.value0)));\n };\n if (v instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new TwoLeft(m.value1, m.value2, m.value3), ctx);\n $copy_m = m.value0;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new TwoRight(m.value0, m.value1, m.value2), ctx);\n $copy_m = m.value3;\n return;\n };\n if (m instanceof Three) {\n var leaves = (function () {\n if (m.value0 instanceof Leaf && (m.value3 instanceof Leaf && m.value6 instanceof Leaf)) {\n return true;\n };\n return false;\n })();\n var v = comp(k)(m.value4);\n var v3 = comp(k)(m.value1);\n if (leaves && v3 instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, fromZipper(dictOrd)(ctx)(new Two(Leaf.value, m.value4, m.value5, Leaf.value))));\n };\n if (leaves && v instanceof Data_Ordering.EQ) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value5, fromZipper(dictOrd)(ctx)(new Two(Leaf.value, m.value1, m.value2, Leaf.value))));\n };\n if (v3 instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value0);\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value2, removeMaxNode(new Data_List_Types.Cons(new ThreeLeft(max.key, max.value, m.value3, m.value4, m.value5, m.value6), ctx))(m.value0)));\n };\n if (v instanceof Data_Ordering.EQ) {\n var max = maxNode(m.value3);\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(m.value5, removeMaxNode(new Data_List_Types.Cons(new ThreeMiddle(m.value0, m.value1, m.value2, max.key, max.value, m.value6), ctx))(m.value3)));\n };\n if (v3 instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeLeft(m.value1, m.value2, m.value3, m.value4, m.value5, m.value6), ctx);\n $copy_m = m.value0;\n return;\n };\n if (v3 instanceof Data_Ordering.GT && v instanceof Data_Ordering.LT) {\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeMiddle(m.value0, m.value1, m.value2, m.value4, m.value5, m.value6), ctx);\n $copy_m = m.value3;\n return;\n };\n $tco_var_ctx = new Data_List_Types.Cons(new ThreeRight(m.value0, m.value1, m.value2, m.value3, m.value4, m.value5), ctx);\n $copy_m = m.value6;\n return;\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 481, column 34 - line 504, column 80): \" + [ m.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_ctx, $copy_m);\n };\n return $tco_result;\n };\n };\n return down(Data_List_Types.Nil.value);\n };\n };\n var foldableMap = new Data_Foldable.Foldable(function (dictMonoid) {\n return function (f) {\n return function (m) {\n return Data_Foldable.foldMap(Data_List_Types.foldableList)(dictMonoid)(f)(values(m));\n };\n };\n }, function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldl(Data_List_Types.foldableList)(f)(z)(values(m));\n };\n };\n }, function (f) {\n return function (z) {\n return function (m) {\n return Data_Foldable.foldr(Data_List_Types.foldableList)(f)(z)(values(m));\n };\n };\n });\n var empty = Leaf.value;\n var $$delete = function (dictOrd) {\n return function (k) {\n return function (m) {\n return Data_Maybe.maybe(m)(Data_Tuple.snd)(pop(dictOrd)(k)(m));\n };\n };\n }; \n var alter = function (dictOrd) {\n return function (f) {\n return function (k) {\n return function (m) {\n var v = f(lookup(dictOrd)(k)(m));\n if (v instanceof Data_Maybe.Nothing) {\n return $$delete(dictOrd)(k)(m);\n };\n if (v instanceof Data_Maybe.Just) {\n return insert(dictOrd)(k)(v.value0)(m);\n };\n throw new Error(\"Failed pattern match at Data.Map.Internal (line 549, column 15 - line 551, column 25): \" + [ v.constructor.name ]);\n };\n };\n };\n };\n exports[\"empty\"] = empty;\n exports[\"insert\"] = insert;\n exports[\"lookup\"] = lookup;\n exports[\"delete\"] = $$delete;\n exports[\"pop\"] = pop;\n exports[\"member\"] = member;\n exports[\"alter\"] = alter;\n exports[\"functorMap\"] = functorMap;\n exports[\"foldableMap\"] = foldableMap;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Data.OrdBox\"] = $PS[\"Halogen.Data.OrdBox\"] || {};\n var exports = $PS[\"Halogen.Data.OrdBox\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Ord = $PS[\"Data.Ord\"]; \n var OrdBox = (function () {\n function OrdBox(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n OrdBox.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new OrdBox(value0, value1, value2);\n };\n };\n };\n return OrdBox;\n })();\n var mkOrdBox = function (dictOrd) {\n return OrdBox.create(Data_Eq.eq(dictOrd.Eq0()))(Data_Ord.compare(dictOrd));\n };\n var eqOrdBox = new Data_Eq.Eq(function (v) {\n return function (v1) {\n return v.value0(v.value2)(v1.value2);\n };\n });\n var ordOrdBox = new Data_Ord.Ord(function () {\n return eqOrdBox;\n }, function (v) {\n return function (v1) {\n return v.value1(v.value2)(v1.value2);\n };\n });\n exports[\"mkOrdBox\"] = mkOrdBox;\n exports[\"ordOrdBox\"] = ordOrdBox;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Data.Slot\"] = $PS[\"Halogen.Data.Slot\"] || {};\n var exports = $PS[\"Halogen.Data.Slot\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Halogen_Data_OrdBox = $PS[\"Halogen.Data.OrdBox\"];\n var pop = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (v) {\n return Data_Map_Internal.pop(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(v);\n };\n };\n };\n };\n };\n };\n var lookup = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (v) {\n return Data_Map_Internal.lookup(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(v);\n };\n };\n };\n };\n };\n };\n var insert = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (sym) {\n return function (key) {\n return function (val) {\n return function (v) {\n return Data_Map_Internal.insert(Data_Tuple.ordTuple(Data_Ord.ordString)(Halogen_Data_OrdBox.ordOrdBox))(new Data_Tuple.Tuple(Data_Symbol.reflectSymbol(dictIsSymbol)(sym), Halogen_Data_OrdBox.mkOrdBox(dictOrd)(key)))(val)(v);\n };\n };\n };\n };\n };\n };\n };\n var foreachSlot = function (dictApplicative) {\n return function (v) {\n return function (k) {\n return Data_Foldable.traverse_(dictApplicative)(Data_Map_Internal.foldableMap)(function ($37) {\n return k($37);\n })(v);\n };\n };\n };\n var empty = Data_Map_Internal.empty;\n exports[\"empty\"] = empty;\n exports[\"lookup\"] = lookup;\n exports[\"insert\"] = insert;\n exports[\"pop\"] = pop;\n exports[\"foreachSlot\"] = foreachSlot;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.List\"] = $PS[\"Data.List\"] || {};\n var exports = $PS[\"Data.List\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var reverse = (function () {\n var go = function ($copy_acc) {\n return function ($copy_v) {\n var $tco_var_acc = $copy_acc;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(acc, v) {\n if (v instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return acc;\n };\n if (v instanceof Data_List_Types.Cons) {\n $tco_var_acc = new Data_List_Types.Cons(v.value0, acc);\n $copy_v = v.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.List (line 368, column 3 - line 368, column 19): \" + [ acc.constructor.name, v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_acc, $copy_v);\n };\n return $tco_result;\n };\n };\n return go(Data_List_Types.Nil.value);\n })();\n var $$null = function (v) {\n if (v instanceof Data_List_Types.Nil) {\n return true;\n };\n return false;\n };\n exports[\"null\"] = $$null;\n exports[\"reverse\"] = reverse;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.CatQueue\"] = $PS[\"Data.CatQueue\"] || {};\n var exports = $PS[\"Data.CatQueue\"];\n var Data_List = $PS[\"Data.List\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var CatQueue = (function () {\n function CatQueue(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CatQueue.create = function (value0) {\n return function (value1) {\n return new CatQueue(value0, value1);\n };\n };\n return CatQueue;\n })();\n var uncons = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value0 instanceof Data_List_Types.Nil && v.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return Data_Maybe.Nothing.value;\n };\n if (v.value0 instanceof Data_List_Types.Nil) {\n $copy_v = new CatQueue(Data_List.reverse(v.value1), Data_List_Types.Nil.value);\n return;\n };\n if (v.value0 instanceof Data_List_Types.Cons) {\n $tco_done = true;\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value0.value0, new CatQueue(v.value0.value1, v.value1)));\n };\n throw new Error(\"Failed pattern match at Data.CatQueue (line 83, column 1 - line 83, column 63): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n var snoc = function (v) {\n return function (a) {\n return new CatQueue(v.value0, new Data_List_Types.Cons(a, v.value1));\n };\n };\n var $$null = function (v) {\n if (v.value0 instanceof Data_List_Types.Nil && v.value1 instanceof Data_List_Types.Nil) {\n return true;\n };\n return false;\n }; \n var empty = new CatQueue(Data_List_Types.Nil.value, Data_List_Types.Nil.value);\n exports[\"empty\"] = empty;\n exports[\"null\"] = $$null;\n exports[\"snoc\"] = snoc;\n exports[\"uncons\"] = uncons;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.CatList\"] = $PS[\"Data.CatList\"] || {};\n var exports = $PS[\"Data.CatList\"];\n var Data_CatQueue = $PS[\"Data.CatQueue\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var CatNil = (function () {\n function CatNil() {\n\n };\n CatNil.value = new CatNil();\n return CatNil;\n })();\n var CatCons = (function () {\n function CatCons(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n CatCons.create = function (value0) {\n return function (value1) {\n return new CatCons(value0, value1);\n };\n };\n return CatCons;\n })();\n var link = function (v) {\n return function (v1) {\n if (v instanceof CatNil) {\n return v1;\n };\n if (v1 instanceof CatNil) {\n return v;\n };\n if (v instanceof CatCons) {\n return new CatCons(v.value0, Data_CatQueue.snoc(v.value1)(v1));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 109, column 1 - line 109, column 54): \" + [ v.constructor.name, v1.constructor.name ]);\n };\n };\n var foldr = function (k) {\n return function (b) {\n return function (q) {\n var foldl = function ($copy_v) {\n return function ($copy_c) {\n return function ($copy_v1) {\n var $tco_var_v = $copy_v;\n var $tco_var_c = $copy_c;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v, c, v1) {\n if (v1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return c;\n };\n if (v1 instanceof Data_List_Types.Cons) {\n $tco_var_v = v;\n $tco_var_c = v(c)(v1.value0);\n $copy_v1 = v1.value1;\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 125, column 3 - line 125, column 59): \" + [ v.constructor.name, c.constructor.name, v1.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_v, $tco_var_c, $copy_v1);\n };\n return $tco_result;\n };\n };\n };\n var go = function ($copy_xs) {\n return function ($copy_ys) {\n var $tco_var_xs = $copy_xs;\n var $tco_done = 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_done = true;\n return foldl(function (x) {\n return function (i) {\n return i(x);\n };\n })(b)(ys);\n };\n if (v instanceof Data_Maybe.Just) {\n $tco_var_xs = v.value0.value1;\n $copy_ys = new Data_List_Types.Cons(k(v.value0.value0), ys);\n return;\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 121, column 14 - line 123, column 67): \" + [ v.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_xs, $copy_ys);\n };\n return $tco_result;\n };\n };\n return go(q)(Data_List_Types.Nil.value);\n };\n };\n };\n var uncons = function (v) {\n if (v instanceof CatNil) {\n return Data_Maybe.Nothing.value;\n };\n if (v instanceof CatCons) {\n return new Data_Maybe.Just(new Data_Tuple.Tuple(v.value0, (function () {\n var $44 = Data_CatQueue[\"null\"](v.value1);\n if ($44) {\n return CatNil.value;\n };\n return foldr(link)(CatNil.value)(v.value1);\n })()));\n };\n throw new Error(\"Failed pattern match at Data.CatList (line 100, column 1 - line 100, column 61): \" + [ v.constructor.name ]);\n };\n var empty = CatNil.value;\n var append = link;\n var semigroupCatList = new Data_Semigroup.Semigroup(append);\n var snoc = function (cat) {\n return function (a) {\n return append(cat)(new CatCons(a, Data_CatQueue.empty));\n };\n };\n exports[\"empty\"] = empty;\n exports[\"snoc\"] = snoc;\n exports[\"uncons\"] = uncons;\n exports[\"semigroupCatList\"] = semigroupCatList;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Free\"] = $PS[\"Control.Monad.Free\"] || {};\n var exports = $PS[\"Control.Monad.Free\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Data_CatList = $PS[\"Data.CatList\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Free = (function () {\n function Free(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Free.create = function (value0) {\n return function (value1) {\n return new Free(value0, value1);\n };\n };\n return Free;\n })();\n var Return = (function () {\n function Return(value0) {\n this.value0 = value0;\n };\n Return.create = function (value0) {\n return new Return(value0);\n };\n return Return;\n })();\n var Bind = (function () {\n function Bind(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Bind.create = function (value0) {\n return function (value1) {\n return new Bind(value0, value1);\n };\n };\n return Bind;\n })();\n var toView = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n var runExpF = function (v2) {\n return v2;\n };\n var concatF = function (v2) {\n return function (r) {\n return new Free(v2.value0, Data_Semigroup.append(Data_CatList.semigroupCatList)(v2.value1)(r));\n };\n };\n if (v.value0 instanceof Return) {\n var v2 = Data_CatList.uncons(v.value1);\n if (v2 instanceof Data_Maybe.Nothing) {\n $tco_done = true;\n return new Return(v.value0.value0);\n };\n if (v2 instanceof Data_Maybe.Just) {\n $copy_v = concatF(runExpF(v2.value0.value0)(v.value0.value0))(v2.value0.value1);\n return;\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 227, column 7 - line 231, column 64): \" + [ v2.constructor.name ]);\n };\n if (v.value0 instanceof Bind) {\n $tco_done = true;\n return new Bind(v.value0.value0, function (a) {\n return concatF(v.value0.value1(a))(v.value1);\n });\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 225, column 3 - line 233, column 56): \" + [ v.value0.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n var fromView = function (f) {\n return new Free(f, Data_CatList.empty);\n };\n var freeMonad = new Control_Monad.Monad(function () {\n return freeApplicative;\n }, function () {\n return freeBind;\n });\n var freeFunctor = new Data_Functor.Functor(function (k) {\n return function (f) {\n return Control_Bind.bindFlipped(freeBind)((function () {\n var $120 = Control_Applicative.pure(freeApplicative);\n return function ($121) {\n return $120(k($121));\n };\n })())(f);\n };\n });\n var freeBind = new Control_Bind.Bind(function () {\n return freeApply;\n }, function (v) {\n return function (k) {\n return new Free(v.value0, Data_CatList.snoc(v.value1)(k));\n };\n });\n var freeApply = new Control_Apply.Apply(function () {\n return freeFunctor;\n }, Control_Monad.ap(freeMonad));\n var freeApplicative = new Control_Applicative.Applicative(function () {\n return freeApply;\n }, function ($122) {\n return fromView(Return.create($122));\n });\n var liftF = function (f) {\n return fromView(new Bind(f, (function () {\n var $123 = Control_Applicative.pure(freeApplicative);\n return function ($124) {\n return $123($124);\n };\n })()));\n };\n var foldFree = function (dictMonadRec) {\n return function (k) {\n var go = function (f) {\n var v = toView(f);\n if (v instanceof Return) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_Rec_Class.Done.create)(Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(v.value0));\n };\n if (v instanceof Bind) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(function ($136) {\n return Control_Monad_Rec_Class.Loop.create(v.value1($136));\n })(k(v.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free (line 158, column 10 - line 160, column 37): \" + [ v.constructor.name ]);\n };\n return Control_Monad_Rec_Class.tailRecM(dictMonadRec)(go);\n };\n };\n exports[\"liftF\"] = liftF;\n exports[\"foldFree\"] = foldFree;\n exports[\"freeFunctor\"] = freeFunctor;\n exports[\"freeBind\"] = freeBind;\n exports[\"freeApplicative\"] = freeApplicative;\n exports[\"freeMonad\"] = freeMonad;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Query.HalogenM\"] = $PS[\"Halogen.Query.HalogenM\"] || {};\n var exports = $PS[\"Halogen.Query.HalogenM\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Monad_Free = $PS[\"Control.Monad.Free\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Effect_Class = $PS[\"Effect.Class\"]; \n var SubscriptionId = function (x) {\n return x;\n };\n var ForkId = function (x) {\n return x;\n };\n var State = (function () {\n function State(value0) {\n this.value0 = value0;\n };\n State.create = function (value0) {\n return new State(value0);\n };\n return State;\n })();\n var Subscribe = (function () {\n function Subscribe(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Subscribe.create = function (value0) {\n return function (value1) {\n return new Subscribe(value0, value1);\n };\n };\n return Subscribe;\n })();\n var Unsubscribe = (function () {\n function Unsubscribe(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Unsubscribe.create = function (value0) {\n return function (value1) {\n return new Unsubscribe(value0, value1);\n };\n };\n return Unsubscribe;\n })();\n var Lift = (function () {\n function Lift(value0) {\n this.value0 = value0;\n };\n Lift.create = function (value0) {\n return new Lift(value0);\n };\n return Lift;\n })();\n var ChildQuery = (function () {\n function ChildQuery(value0) {\n this.value0 = value0;\n };\n ChildQuery.create = function (value0) {\n return new ChildQuery(value0);\n };\n return ChildQuery;\n })();\n var Raise = (function () {\n function Raise(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Raise.create = function (value0) {\n return function (value1) {\n return new Raise(value0, value1);\n };\n };\n return Raise;\n })();\n var Par = (function () {\n function Par(value0) {\n this.value0 = value0;\n };\n Par.create = function (value0) {\n return new Par(value0);\n };\n return Par;\n })();\n var Fork = (function () {\n function Fork(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Fork.create = function (value0) {\n return function (value1) {\n return new Fork(value0, value1);\n };\n };\n return Fork;\n })();\n var Kill = (function () {\n function Kill(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Kill.create = function (value0) {\n return function (value1) {\n return new Kill(value0, value1);\n };\n };\n return Kill;\n })();\n var GetRef = (function () {\n function GetRef(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n GetRef.create = function (value0) {\n return function (value1) {\n return new GetRef(value0, value1);\n };\n };\n return GetRef;\n })();\n var HalogenM = function (x) {\n return x;\n };\n var raise = function (o) {\n return HalogenM(Control_Monad_Free.liftF(new Raise(o, Data_Unit.unit)));\n };\n var ordSubscriptionId = Data_Ord.ordInt;\n var ordForkId = Data_Ord.ordInt;\n var monadHalogenM = Control_Monad_Free.freeMonad;\n var monadStateHalogenM = new Control_Monad_State_Class.MonadState(function () {\n return monadHalogenM;\n }, function ($139) {\n return HalogenM(Control_Monad_Free.liftF(State.create($139)));\n });\n var monadEffectHalogenM = function (dictMonadEffect) {\n return new Effect_Class.MonadEffect(function () {\n return monadHalogenM;\n }, (function () {\n var $144 = Effect_Class.liftEffect(dictMonadEffect);\n return function ($145) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($144($145))));\n };\n })());\n };\n var monadAffHalogenM = function (dictMonadAff) {\n return new Effect_Aff_Class.MonadAff(function () {\n return monadEffectHalogenM(dictMonadAff.MonadEffect0());\n }, (function () {\n var $146 = Effect_Aff_Class.liftAff(dictMonadAff);\n return function ($147) {\n return HalogenM(Control_Monad_Free.liftF(Lift.create($146($147))));\n };\n })());\n };\n var getRef = function (p) {\n return HalogenM(Control_Monad_Free.liftF(new GetRef(p, Control_Category.identity(Control_Category.categoryFn))));\n };\n var functorHalogenM = Control_Monad_Free.freeFunctor;\n var bindHalogenM = Control_Monad_Free.freeBind; \n var applicativeHalogenM = Control_Monad_Free.freeApplicative;\n exports[\"State\"] = State;\n exports[\"Subscribe\"] = Subscribe;\n exports[\"Unsubscribe\"] = Unsubscribe;\n exports[\"Lift\"] = Lift;\n exports[\"ChildQuery\"] = ChildQuery;\n exports[\"Raise\"] = Raise;\n exports[\"Par\"] = Par;\n exports[\"Fork\"] = Fork;\n exports[\"Kill\"] = Kill;\n exports[\"GetRef\"] = GetRef;\n exports[\"raise\"] = raise;\n exports[\"SubscriptionId\"] = SubscriptionId;\n exports[\"ForkId\"] = ForkId;\n exports[\"getRef\"] = getRef;\n exports[\"functorHalogenM\"] = functorHalogenM;\n exports[\"applicativeHalogenM\"] = applicativeHalogenM;\n exports[\"bindHalogenM\"] = bindHalogenM;\n exports[\"monadEffectHalogenM\"] = monadEffectHalogenM;\n exports[\"monadAffHalogenM\"] = monadAffHalogenM;\n exports[\"monadStateHalogenM\"] = monadStateHalogenM;\n exports[\"ordSubscriptionId\"] = ordSubscriptionId;\n exports[\"ordForkId\"] = ordForkId;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Query.HalogenQ\"] = $PS[\"Halogen.Query.HalogenQ\"] || {};\n var exports = $PS[\"Halogen.Query.HalogenQ\"]; \n var Initialize = (function () {\n function Initialize(value0) {\n this.value0 = value0;\n };\n Initialize.create = function (value0) {\n return new Initialize(value0);\n };\n return Initialize;\n })();\n var Finalize = (function () {\n function Finalize(value0) {\n this.value0 = value0;\n };\n Finalize.create = function (value0) {\n return new Finalize(value0);\n };\n return Finalize;\n })();\n var Receive = (function () {\n function Receive(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Receive.create = function (value0) {\n return function (value1) {\n return new Receive(value0, value1);\n };\n };\n return Receive;\n })();\n var Action = (function () {\n function Action(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Action.create = function (value0) {\n return function (value1) {\n return new Action(value0, value1);\n };\n };\n return Action;\n })();\n var Query = (function () {\n function Query(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Query.create = function (value0) {\n return function (value1) {\n return new Query(value0, value1);\n };\n };\n return Query;\n })();\n exports[\"Initialize\"] = Initialize;\n exports[\"Finalize\"] = Finalize;\n exports[\"Receive\"] = Receive;\n exports[\"Action\"] = Action;\n exports[\"Query\"] = Query;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Component\"] = $PS[\"Halogen.Component\"] || {};\n var exports = $PS[\"Halogen.Component\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Coyoneda = $PS[\"Data.Coyoneda\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Halogen_Data_Slot = $PS[\"Halogen.Data.Slot\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Halogen_Query_HalogenQ = $PS[\"Halogen.Query.HalogenQ\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var ComponentSlot = (function () {\n function ComponentSlot(value0) {\n this.value0 = value0;\n };\n ComponentSlot.create = function (value0) {\n return new ComponentSlot(value0);\n };\n return ComponentSlot;\n })();\n var ThunkSlot = (function () {\n function ThunkSlot(value0) {\n this.value0 = value0;\n };\n ThunkSlot.create = function (value0) {\n return new ThunkSlot(value0);\n };\n return ThunkSlot;\n })();\n var unComponentSlot = Unsafe_Coerce.unsafeCoerce;\n var unComponent = Unsafe_Coerce.unsafeCoerce;\n var mkEval = function (args) {\n return function (v) {\n if (v instanceof Halogen_Query_HalogenQ.Initialize) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.initialize))(v.value0);\n };\n if (v instanceof Halogen_Query_HalogenQ.Finalize) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.finalize))(v.value0);\n };\n if (v instanceof Halogen_Query_HalogenQ.Receive) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(Data_Foldable.traverse_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(args.handleAction)(args.receive(v.value0)))(v.value1);\n };\n if (v instanceof Halogen_Query_HalogenQ.Action) {\n return Data_Functor.voidLeft(Halogen_Query_HalogenM.functorHalogenM)(args.handleAction(v.value0))(v.value1);\n };\n if (v instanceof Halogen_Query_HalogenQ.Query) {\n return Data_Coyoneda.unCoyoneda(function (g) {\n var $28 = Data_Functor.map(Halogen_Query_HalogenM.functorHalogenM)(Data_Maybe.maybe(v.value1(Data_Unit.unit))(g));\n return function ($29) {\n return $28(args.handleQuery($29));\n };\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at Halogen.Component (line 172, column 15 - line 182, column 70): \" + [ v.constructor.name ]);\n };\n };\n var mkComponentSlot = Unsafe_Coerce.unsafeCoerce;\n var mkComponent = Unsafe_Coerce.unsafeCoerce;\n var defaultEval = {\n handleAction: Data_Function[\"const\"](Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit)),\n handleQuery: Data_Function[\"const\"](Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Maybe.Nothing.value)),\n receive: Data_Function[\"const\"](Data_Maybe.Nothing.value),\n initialize: Data_Maybe.Nothing.value,\n finalize: Data_Maybe.Nothing.value\n };\n var componentSlot = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (p) {\n return function (comp) {\n return function (input) {\n return function (output) {\n return mkComponentSlot({\n get: Halogen_Data_Slot.lookup()(dictIsSymbol)(dictOrd)(label)(p),\n pop: Halogen_Data_Slot.pop()(dictIsSymbol)(dictOrd)(label)(p),\n set: Halogen_Data_Slot.insert()(dictIsSymbol)(dictOrd)(label)(p),\n component: comp,\n input: new Halogen_Query_HalogenQ.Receive(input, Data_Unit.unit),\n output: output\n });\n };\n };\n };\n };\n };\n };\n };\n };\n exports[\"mkComponent\"] = mkComponent;\n exports[\"unComponent\"] = unComponent;\n exports[\"mkEval\"] = mkEval;\n exports[\"defaultEval\"] = defaultEval;\n exports[\"ComponentSlot\"] = ComponentSlot;\n exports[\"ThunkSlot\"] = ThunkSlot;\n exports[\"componentSlot\"] = componentSlot;\n exports[\"unComponentSlot\"] = unComponentSlot;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"DOM.HTML.Indexed.ButtonType\"] = $PS[\"DOM.HTML.Indexed.ButtonType\"] || {};\n var exports = $PS[\"DOM.HTML.Indexed.ButtonType\"];\n var ButtonButton = (function () {\n function ButtonButton() {\n\n };\n ButtonButton.value = new ButtonButton();\n return ButtonButton;\n })();\n var ButtonSubmit = (function () {\n function ButtonSubmit() {\n\n };\n ButtonSubmit.value = new ButtonSubmit();\n return ButtonSubmit;\n })();\n var ButtonReset = (function () {\n function ButtonReset() {\n\n };\n ButtonReset.value = new ButtonReset();\n return ButtonReset;\n })();\n var 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 9, column 20 - line 12, column 25): \" + [ v.constructor.name ]);\n };\n exports[\"ButtonButton\"] = ButtonButton;\n exports[\"renderButtonType\"] = renderButtonType;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"DOM.HTML.Indexed.OnOff\"] = $PS[\"DOM.HTML.Indexed.OnOff\"] || {};\n var exports = $PS[\"DOM.HTML.Indexed.OnOff\"];\n var On = (function () {\n function On() {\n\n };\n On.value = new On();\n return On;\n })();\n var Off = (function () {\n function Off() {\n\n };\n Off.value = new Off();\n return Off;\n })();\n var renderOnOff = function (v) {\n if (v instanceof On) {\n return \"on\";\n };\n if (v instanceof Off) {\n return \"off\";\n };\n throw new Error(\"Failed pattern match at DOM.HTML.Indexed.OnOff (line 8, column 15 - line 10, column 15): \" + [ v.constructor.name ]);\n };\n exports[\"On\"] = On;\n exports[\"Off\"] = Off;\n exports[\"renderOnOff\"] = renderOnOff;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.VDom.Machine\"] = $PS[\"Halogen.VDom.Machine\"] || {};\n var exports = $PS[\"Halogen.VDom.Machine\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var Step = (function () {\n function Step(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Step.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Step(value0, value1, value2, value3);\n };\n };\n };\n };\n return Step;\n })();\n var unStep = Unsafe_Coerce.unsafeCoerce;\n var step = function (v, a) {\n return v.value2(v.value1, a);\n };\n var mkStep = Unsafe_Coerce.unsafeCoerce;\n var halt = function (v) {\n return v.value3(v.value1);\n };\n var extract = unStep(function (v) {\n return v.value0;\n });\n exports[\"Step\"] = Step;\n exports[\"mkStep\"] = mkStep;\n exports[\"unStep\"] = unStep;\n exports[\"extract\"] = extract;\n exports[\"step\"] = step;\n exports[\"halt\"] = halt;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafeGetAny = function (key, obj) {\n return obj[key];\n };\n\n exports.unsafeHasAny = function (key, obj) {\n return obj.hasOwnProperty(key);\n };\n\n exports.unsafeSetAny = function (key, val, obj) {\n obj[key] = val;\n };\n\n exports.forE = function (a, f) {\n var b = [];\n for (var i = 0; i < a.length; i++) {\n b.push(f(i, a[i]));\n }\n return b;\n };\n\n exports.forEachE = function (a, f) {\n for (var i = 0; i < a.length; i++) {\n f(a[i]);\n }\n };\n\n exports.forInE = function (o, f) {\n var ks = Object.keys(o);\n for (var i = 0; i < ks.length; i++) {\n var k = ks[i];\n f(k, o[k]);\n }\n };\n\n exports.diffWithIxE = function (a1, a2, f1, f2, f3) {\n var a3 = [];\n var l1 = a1.length;\n var l2 = a2.length;\n var i = 0;\n while (1) {\n if (i < l1) {\n if (i < l2) {\n a3.push(f1(i, a1[i], a2[i]));\n } else {\n f2(i, a1[i]);\n }\n } else if (i < l2) {\n a3.push(f3(i, a2[i]));\n } else {\n break;\n }\n i++;\n }\n return a3;\n };\n\n exports.strMapWithIxE = function (as, fk, f) {\n var o = {};\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n var k = fk(a);\n o[k] = f(k, i, a);\n }\n return o;\n };\n\n exports.diffWithKeyAndIxE = function (o1, as, fk, f1, f2, f3) {\n var o2 = {};\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n var k = fk(a);\n if (o1.hasOwnProperty(k)) {\n o2[k] = f1(k, i, o1[k], a);\n } else {\n o2[k] = f3(k, i, a);\n }\n }\n for (var k in o1) {\n if (k in o2) {\n continue;\n }\n f2(k, o1[k]);\n }\n return o2;\n };\n\n exports.refEq = function (a, b) {\n return a === b;\n };\n\n exports.createTextNode = function (s, doc) {\n return doc.createTextNode(s);\n };\n\n exports.setTextContent = function (s, n) {\n n.textContent = s;\n };\n\n exports.createElement = function (ns, name, doc) {\n if (ns != null) {\n return doc.createElementNS(ns, name);\n } else {\n return doc.createElement(name)\n }\n };\n\n exports.insertChildIx = function (i, a, b) {\n var n = b.childNodes.item(i) || null;\n if (n !== a) {\n b.insertBefore(a, n);\n }\n };\n\n exports.removeChild = function (a, b) {\n if (b && a.parentNode === b) {\n b.removeChild(a);\n }\n };\n\n exports.parentNode = function (a) {\n return a.parentNode;\n };\n\n exports.setAttribute = function (ns, attr, val, el) {\n if (ns != null) {\n el.setAttributeNS(ns, attr, val);\n } else {\n el.setAttribute(attr, val);\n }\n };\n\n exports.removeAttribute = function (ns, attr, el) {\n if (ns != null) {\n el.removeAttributeNS(ns, attr);\n } else {\n el.removeAttribute(attr);\n }\n };\n\n exports.addEventListener = function (ev, listener, el) {\n el.addEventListener(ev, listener, false);\n };\n\n exports.removeEventListener = function (ev, listener, el) {\n el.removeEventListener(ev, listener, false);\n };\n\n exports.jsUndefined = void 0;\n})(PS[\"Halogen.VDom.Util\"] = PS[\"Halogen.VDom.Util\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.VDom.Util\"] = $PS[\"Halogen.VDom.Util\"] || {};\n var exports = $PS[\"Halogen.VDom.Util\"];\n var $foreign = $PS[\"Halogen.VDom.Util\"];\n var Foreign_Object_ST = $PS[\"Foreign.Object.ST\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var unsafeLookup = $foreign.unsafeGetAny;\n var unsafeFreeze = Unsafe_Coerce.unsafeCoerce;\n var pokeMutMap = $foreign.unsafeSetAny;\n var newMutMap = Foreign_Object_ST[\"new\"];\n exports[\"newMutMap\"] = newMutMap;\n exports[\"pokeMutMap\"] = pokeMutMap;\n exports[\"unsafeFreeze\"] = unsafeFreeze;\n exports[\"unsafeLookup\"] = unsafeLookup;\n exports[\"unsafeGetAny\"] = $foreign.unsafeGetAny;\n exports[\"unsafeHasAny\"] = $foreign.unsafeHasAny;\n exports[\"unsafeSetAny\"] = $foreign.unsafeSetAny;\n exports[\"forE\"] = $foreign.forE;\n exports[\"forEachE\"] = $foreign.forEachE;\n exports[\"forInE\"] = $foreign.forInE;\n exports[\"diffWithIxE\"] = $foreign.diffWithIxE;\n exports[\"diffWithKeyAndIxE\"] = $foreign.diffWithKeyAndIxE;\n exports[\"strMapWithIxE\"] = $foreign.strMapWithIxE;\n exports[\"refEq\"] = $foreign.refEq;\n exports[\"createTextNode\"] = $foreign.createTextNode;\n exports[\"setTextContent\"] = $foreign.setTextContent;\n exports[\"createElement\"] = $foreign.createElement;\n exports[\"insertChildIx\"] = $foreign.insertChildIx;\n exports[\"removeChild\"] = $foreign.removeChild;\n exports[\"parentNode\"] = $foreign.parentNode;\n exports[\"setAttribute\"] = $foreign.setAttribute;\n exports[\"removeAttribute\"] = $foreign.removeAttribute;\n exports[\"addEventListener\"] = $foreign.addEventListener;\n exports[\"removeEventListener\"] = $foreign.removeEventListener;\n exports[\"jsUndefined\"] = $foreign.jsUndefined;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.eventListener = function (fn) {\n return function () {\n return function (event) {\n return fn(event)();\n };\n };\n };\n})(PS[\"Web.Event.EventTarget\"] = PS[\"Web.Event.EventTarget\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.Event.EventTarget\"] = $PS[\"Web.Event.EventTarget\"] || {};\n var exports = $PS[\"Web.Event.EventTarget\"];\n var $foreign = $PS[\"Web.Event.EventTarget\"];\n exports[\"eventListener\"] = $foreign.eventListener;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.VDom.DOM.Prop\"] = $PS[\"Halogen.VDom.DOM.Prop\"] || {};\n var exports = $PS[\"Halogen.VDom.DOM.Prop\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Foreign = $PS[\"Foreign\"];\n var Foreign_Object = $PS[\"Foreign.Object\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Util = $PS[\"Halogen.VDom.Util\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Web_Event_EventTarget = $PS[\"Web.Event.EventTarget\"]; \n var Created = (function () {\n function Created(value0) {\n this.value0 = value0;\n };\n Created.create = function (value0) {\n return new Created(value0);\n };\n return Created;\n })();\n var Removed = (function () {\n function Removed(value0) {\n this.value0 = value0;\n };\n Removed.create = function (value0) {\n return new Removed(value0);\n };\n return Removed;\n })();\n var Attribute = (function () {\n function Attribute(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n Attribute.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new Attribute(value0, value1, value2);\n };\n };\n };\n return Attribute;\n })();\n var Property = (function () {\n function Property(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Property.create = function (value0) {\n return function (value1) {\n return new Property(value0, value1);\n };\n };\n return Property;\n })();\n var Handler = (function () {\n function Handler(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Handler.create = function (value0) {\n return function (value1) {\n return new Handler(value0, value1);\n };\n };\n return Handler;\n })();\n var Ref = (function () {\n function Ref(value0) {\n this.value0 = value0;\n };\n Ref.create = function (value0) {\n return new Ref(value0);\n };\n return Ref;\n })();\n var unsafeGetProperty = Halogen_VDom_Util.unsafeGetAny;\n var setProperty = Halogen_VDom_Util.unsafeSetAny;\n var removeProperty = function (key, el) {\n var v = Foreign.typeOf(Halogen_VDom_Util.unsafeGetAny(key, el));\n if (v === \"string\") {\n return Halogen_VDom_Util.unsafeSetAny(key, \"\", el);\n };\n if (key === \"rowSpan\") {\n return Halogen_VDom_Util.unsafeSetAny(key, 1, el);\n };\n if (key === \"colSpan\") {\n return Halogen_VDom_Util.unsafeSetAny(key, 1, el);\n };\n return Halogen_VDom_Util.unsafeSetAny(key, Halogen_VDom_Util.jsUndefined, el);\n };\n var propToStrKey = function (v) {\n if (v instanceof Attribute && v.value0 instanceof Data_Maybe.Just) {\n return \"attr/\" + (v.value0.value0 + (\":\" + v.value1));\n };\n if (v instanceof Attribute) {\n return \"attr/:\" + v.value1;\n };\n if (v instanceof Property) {\n return \"prop/\" + v.value0;\n };\n if (v instanceof Handler) {\n return \"handler/\" + v.value0;\n };\n if (v instanceof Ref) {\n return \"ref\";\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 182, column 16 - line 187, column 16): \" + [ v.constructor.name ]);\n };\n var propFromString = Unsafe_Coerce.unsafeCoerce;\n var propFromInt = Unsafe_Coerce.unsafeCoerce;\n var propFromBoolean = Unsafe_Coerce.unsafeCoerce;\n var buildProp = function (emit) {\n return function (el) {\n var removeProp = function (prevEvents) {\n return function (v, v1) {\n if (v1 instanceof Attribute) {\n return Halogen_VDom_Util.removeAttribute(Data_Nullable.toNullable(v1.value0), v1.value1, el);\n };\n if (v1 instanceof Property) {\n return removeProperty(v1.value0, el);\n };\n if (v1 instanceof Handler) {\n var handler = Halogen_VDom_Util.unsafeLookup(v1.value0, prevEvents);\n return Halogen_VDom_Util.removeEventListener(v1.value0, Data_Tuple.fst(handler), el);\n };\n if (v1 instanceof Ref) {\n return Data_Unit.unit;\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 169, column 5 - line 179, column 18): \" + [ v1.constructor.name ]);\n };\n };\n var mbEmit = function (v) {\n if (v instanceof Data_Maybe.Just) {\n return emit(v.value0)();\n };\n return Data_Unit.unit;\n };\n var haltProp = function (state) {\n var v = Foreign_Object.lookup(\"ref\")(state.props);\n if (v instanceof Data_Maybe.Just && v.value0 instanceof Ref) {\n return mbEmit(v.value0.value0(new Removed(el)));\n };\n return Data_Unit.unit;\n };\n var diffProp = function (prevEvents, events) {\n return function (v, v1, v11, v2) {\n if (v11 instanceof Attribute && v2 instanceof Attribute) {\n var $54 = v11.value2 === v2.value2;\n if ($54) {\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 $63 = Halogen_VDom_Util.refEq(elVal, v2.value1);\n if ($63) {\n return v2;\n };\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n if (v11 instanceof Handler && v2 instanceof Handler) {\n var handler = Halogen_VDom_Util.unsafeLookup(v2.value0, prevEvents);\n Effect_Ref.write(v2.value1)(Data_Tuple.snd(handler))();\n Halogen_VDom_Util.pokeMutMap(v2.value0, handler, events);\n return v2;\n };\n return v2;\n };\n };\n var applyProp = function (events) {\n return function (v, v1, v2) {\n if (v2 instanceof Attribute) {\n Halogen_VDom_Util.setAttribute(Data_Nullable.toNullable(v2.value0), v2.value1, v2.value2, el);\n return v2;\n };\n if (v2 instanceof Property) {\n setProperty(v2.value0, v2.value1, el);\n return v2;\n };\n if (v2 instanceof Handler) {\n var v3 = Halogen_VDom_Util.unsafeGetAny(v2.value0, events);\n if (Halogen_VDom_Util.unsafeHasAny(v2.value0, events)) {\n Effect_Ref.write(v2.value1)(Data_Tuple.snd(v3))();\n return v2;\n };\n var ref = Effect_Ref[\"new\"](v2.value1)();\n var listener = Web_Event_EventTarget.eventListener(function (ev) {\n return function __do() {\n var f$prime = Effect_Ref.read(ref)();\n return mbEmit(f$prime(ev));\n };\n })();\n Halogen_VDom_Util.pokeMutMap(v2.value0, new Data_Tuple.Tuple(listener, ref), events);\n Halogen_VDom_Util.addEventListener(v2.value0, listener, el);\n return v2;\n };\n if (v2 instanceof Ref) {\n mbEmit(v2.value0(new Created(el)));\n return v2;\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM.Prop (line 113, column 5 - line 135, column 15): \" + [ v2.constructor.name ]);\n };\n };\n var patchProp = function (state, ps2) {\n var events = Halogen_VDom_Util.newMutMap();\n var onThis = removeProp(state.events);\n var onThese = diffProp(state.events, events);\n var onThat = applyProp(events);\n var props = Halogen_VDom_Util.diffWithKeyAndIxE(state.props, ps2, propToStrKey, onThese, onThis, onThat);\n var nextState = {\n events: Halogen_VDom_Util.unsafeFreeze(events),\n props: props\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Data_Unit.unit, nextState, patchProp, haltProp));\n };\n var renderProp = function (ps1) {\n var events = Halogen_VDom_Util.newMutMap();\n var ps1$prime = Halogen_VDom_Util.strMapWithIxE(ps1, propToStrKey, applyProp(events));\n var state = {\n events: Halogen_VDom_Util.unsafeFreeze(events),\n props: ps1$prime\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Data_Unit.unit, state, patchProp, haltProp));\n };\n return renderProp;\n };\n };\n exports[\"Attribute\"] = Attribute;\n exports[\"Property\"] = Property;\n exports[\"Handler\"] = Handler;\n exports[\"Ref\"] = Ref;\n exports[\"Created\"] = Created;\n exports[\"Removed\"] = Removed;\n exports[\"propFromString\"] = propFromString;\n exports[\"propFromBoolean\"] = propFromBoolean;\n exports[\"propFromInt\"] = propFromInt;\n exports[\"buildProp\"] = buildProp;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.VDom.Types\"] = $PS[\"Halogen.VDom.Types\"] || {};\n var exports = $PS[\"Halogen.VDom.Types\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Text = (function () {\n function Text(value0) {\n this.value0 = value0;\n };\n Text.create = function (value0) {\n return new Text(value0);\n };\n return Text;\n })();\n var Elem = (function () {\n function Elem(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Elem.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Elem(value0, value1, value2, value3);\n };\n };\n };\n };\n return Elem;\n })();\n var Keyed = (function () {\n function Keyed(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Keyed.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Keyed(value0, value1, value2, value3);\n };\n };\n };\n };\n return Keyed;\n })();\n var Widget = (function () {\n function Widget(value0) {\n this.value0 = value0;\n };\n Widget.create = function (value0) {\n return new Widget(value0);\n };\n return Widget;\n })();\n var Grafted = (function () {\n function Grafted(value0) {\n this.value0 = value0;\n };\n Grafted.create = function (value0) {\n return new Grafted(value0);\n };\n return Grafted;\n })();\n var Graft = (function () {\n function Graft(value0, value1, value2) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n };\n Graft.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return new Graft(value0, value1, value2);\n };\n };\n };\n return Graft;\n })();\n var unGraft = function (f) {\n return function ($58) {\n return f($58);\n };\n }; \n var graft = Unsafe_Coerce.unsafeCoerce;\n var bifunctorGraft = new Data_Bifunctor.Bifunctor(function (f) {\n return function (g) {\n return unGraft(function (v) {\n return graft(new Graft(function ($60) {\n return f(v.value0($60));\n }, function ($61) {\n return g(v.value1($61));\n }, v.value2));\n });\n };\n });\n var runGraft = unGraft(function (v) {\n var go = function (v2) {\n if (v2 instanceof Text) {\n return new Text(v2.value0);\n };\n if (v2 instanceof Elem) {\n return new Elem(v2.value0, v2.value1, v.value0(v2.value2), Data_Functor.map(Data_Functor.functorArray)(go)(v2.value3));\n };\n if (v2 instanceof Keyed) {\n return new Keyed(v2.value0, v2.value1, v.value0(v2.value2), Data_Functor.map(Data_Functor.functorArray)(Data_Functor.map(Data_Tuple.functorTuple)(go))(v2.value3));\n };\n if (v2 instanceof Widget) {\n return new Widget(v.value1(v2.value0));\n };\n if (v2 instanceof Grafted) {\n return new Grafted(Data_Bifunctor.bimap(bifunctorGraft)(v.value0)(v.value1)(v2.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Types (line 86, column 7 - line 86, column 27): \" + [ v2.constructor.name ]);\n };\n return go(v.value2);\n });\n exports[\"Text\"] = Text;\n exports[\"Elem\"] = Elem;\n exports[\"Keyed\"] = Keyed;\n exports[\"Widget\"] = Widget;\n exports[\"Grafted\"] = Grafted;\n exports[\"runGraft\"] = runGraft;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.HTML.Core\"] = $PS[\"Halogen.HTML.Core\"] || {};\n var exports = $PS[\"Halogen.HTML.Core\"];\n var DOM_HTML_Indexed_ButtonType = $PS[\"DOM.HTML.Indexed.ButtonType\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var DOM_HTML_Indexed_OnOff = $PS[\"DOM.HTML.Indexed.OnOff\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Halogen_VDom_DOM_Prop = $PS[\"Halogen.VDom.DOM.Prop\"];\n var Halogen_VDom_Types = $PS[\"Halogen.VDom.Types\"];\n var HTML = function (x) {\n return x;\n };\n var ClassName = function (x) {\n return x;\n };\n var IsProp = function (toPropValue) {\n this.toPropValue = toPropValue;\n };\n var widget = function ($30) {\n return HTML(Halogen_VDom_Types.Widget.create($30));\n };\n var toPropValue = function (dict) {\n return dict.toPropValue;\n };\n var text = function ($31) {\n return HTML(Halogen_VDom_Types.Text.create($31));\n }; \n var ref = function (f) {\n return Halogen_VDom_DOM_Prop.Ref.create(function ($32) {\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 104, column 21 - line 106, column 23): \" + [ v.constructor.name ]);\n })($32));\n });\n };\n var prop = function (dictIsProp) {\n return function (v) {\n var $33 = Halogen_VDom_DOM_Prop.Property.create(v);\n var $34 = toPropValue(dictIsProp);\n return function ($35) {\n return $33($34($35));\n };\n };\n }; \n var newtypeHTML = new Data_Newtype.Newtype(function (n) {\n return n;\n }, HTML);\n var newtypeClassName = new Data_Newtype.Newtype(function (n) {\n return n;\n }, ClassName);\n var isPropString = new IsProp(Halogen_VDom_DOM_Prop.propFromString);\n var isPropOnOff = new IsProp(function ($43) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_OnOff.renderOnOff($43));\n });\n var isPropInt = new IsProp(Halogen_VDom_DOM_Prop.propFromInt);\n var isPropInputType = new IsProp(function ($49) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_InputType.renderInputType($49));\n });\n var isPropButtonType = new IsProp(function ($54) {\n return Halogen_VDom_DOM_Prop.propFromString(DOM_HTML_Indexed_ButtonType.renderButtonType($54));\n });\n var isPropBoolean = new IsProp(Halogen_VDom_DOM_Prop.propFromBoolean);\n var handler = Halogen_VDom_DOM_Prop.Handler.create;\n var element = function (ns) {\n return function (name) {\n return function (props) {\n return function (children) {\n return new Halogen_VDom_Types.Elem(ns, name, props, children);\n };\n };\n };\n }; \n var attr = function (ns) {\n return function (v) {\n return Halogen_VDom_DOM_Prop.Attribute.create(ns)(v);\n };\n };\n exports[\"widget\"] = widget;\n exports[\"text\"] = text;\n exports[\"element\"] = element;\n exports[\"prop\"] = prop;\n exports[\"attr\"] = attr;\n exports[\"handler\"] = handler;\n exports[\"ref\"] = ref;\n exports[\"ClassName\"] = ClassName;\n exports[\"newtypeHTML\"] = newtypeHTML;\n exports[\"isPropString\"] = isPropString;\n exports[\"isPropInt\"] = isPropInt;\n exports[\"isPropBoolean\"] = isPropBoolean;\n exports[\"isPropButtonType\"] = isPropButtonType;\n exports[\"isPropInputType\"] = isPropInputType;\n exports[\"isPropOnOff\"] = isPropOnOff;\n exports[\"newtypeClassName\"] = newtypeClassName;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.HTML.Elements\"] = $PS[\"Halogen.HTML.Elements\"] || {};\n var exports = $PS[\"Halogen.HTML.Elements\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var element = Halogen_HTML_Core.element(Data_Maybe.Nothing.value);\n var form = element(\"form\");\n var input = function (props) {\n return element(\"input\")(props)([ ]);\n }; \n var label = element(\"label\");\n var p = element(\"p\");\n var span = element(\"span\");\n var table = element(\"table\");\n var tbody = element(\"tbody\");\n var tbody_ = tbody([ ]);\n var td = element(\"td\");\n var td_ = td([ ]);\n var textarea = function (es) {\n return element(\"textarea\")(es)([ ]);\n }; \n var tr = element(\"tr\");\n var tr_ = tr([ ]);\n var div = element(\"div\");\n var div_ = div([ ]);\n var button = element(\"button\");\n var br = function (props) {\n return element(\"br\")(props)([ ]);\n };\n var br_ = br([ ]); \n var a = element(\"a\");\n exports[\"a\"] = a;\n exports[\"br_\"] = br_;\n exports[\"button\"] = button;\n exports[\"div\"] = div;\n exports[\"div_\"] = div_;\n exports[\"form\"] = form;\n exports[\"input\"] = input;\n exports[\"label\"] = label;\n exports[\"p\"] = p;\n exports[\"span\"] = span;\n exports[\"table\"] = table;\n exports[\"tbody_\"] = tbody_;\n exports[\"td\"] = td;\n exports[\"td_\"] = td_;\n exports[\"textarea\"] = textarea;\n exports[\"tr_\"] = tr_;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.unsafeReadPropImpl = function (f, s, key, value) {\n return value == null ? f : s(value[key]);\n };\n})(PS[\"Foreign.Index\"] = PS[\"Foreign.Index\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Foreign.Index\"] = $PS[\"Foreign.Index\"] || {};\n var exports = $PS[\"Foreign.Index\"];\n var $foreign = $PS[\"Foreign.Index\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Foreign = $PS[\"Foreign\"];\n var unsafeReadProp = function (k) {\n return function (value) {\n return $foreign.unsafeReadPropImpl(Foreign.fail(new Foreign.TypeMismatch(\"object\", Foreign.typeOf(value))), Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity)), k, value);\n };\n };\n var readProp = unsafeReadProp;\n exports[\"readProp\"] = readProp;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Query.Input\"] = $PS[\"Halogen.Query.Input\"] || {};\n var exports = $PS[\"Halogen.Query.Input\"];\n var RefUpdate = (function () {\n function RefUpdate(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n RefUpdate.create = function (value0) {\n return function (value1) {\n return new RefUpdate(value0, value1);\n };\n };\n return RefUpdate;\n })();\n var Action = (function () {\n function Action(value0) {\n this.value0 = value0;\n };\n Action.create = function (value0) {\n return new Action(value0);\n };\n return Action;\n })();\n exports[\"RefUpdate\"] = RefUpdate;\n exports[\"Action\"] = Action;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._currentTarget = function (e) {\n return e.currentTarget;\n };\n\n exports.preventDefault = function (e) {\n return function () {\n return e.preventDefault();\n };\n };\n})(PS[\"Web.Event.Event\"] = PS[\"Web.Event.Event\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.Event.Event\"] = $PS[\"Web.Event.Event\"] || {};\n var exports = $PS[\"Web.Event.Event\"];\n var $foreign = $PS[\"Web.Event.Event\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var currentTarget = function ($8) {\n return Data_Nullable.toMaybe($foreign[\"_currentTarget\"]($8));\n };\n exports[\"currentTarget\"] = currentTarget;\n exports[\"preventDefault\"] = $foreign.preventDefault;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.HTML.Event.EventTypes\"] = $PS[\"Web.HTML.Event.EventTypes\"] || {};\n var exports = $PS[\"Web.HTML.Event.EventTypes\"];\n var change = \"change\";\n exports[\"change\"] = change;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.UIEvent.MouseEvent.EventTypes\"] = $PS[\"Web.UIEvent.MouseEvent.EventTypes\"] || {};\n var exports = $PS[\"Web.UIEvent.MouseEvent.EventTypes\"];\n var click = \"click\";\n exports[\"click\"] = click;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.HTML.Events\"] = $PS[\"Halogen.HTML.Events\"] || {};\n var exports = $PS[\"Halogen.HTML.Events\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_Except = $PS[\"Control.Monad.Except\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Foreign = $PS[\"Foreign\"];\n var Foreign_Index = $PS[\"Foreign.Index\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_Query_Input = $PS[\"Halogen.Query.Input\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var Web_Event_Event = $PS[\"Web.Event.Event\"];\n var Web_HTML_Event_EventTypes = $PS[\"Web.HTML.Event.EventTypes\"];\n var Web_UIEvent_MouseEvent_EventTypes = $PS[\"Web.UIEvent.MouseEvent.EventTypes\"];\n var mouseHandler = Unsafe_Coerce.unsafeCoerce;\n var handler = function (et) {\n var $1 = Halogen_HTML_Core.handler(et);\n var $2 = Data_Functor.map(Data_Functor.functorFn)(Data_Functor.map(Data_Maybe.functorMaybe)(Halogen_Query_Input.Action.create));\n return function ($3) {\n return $1($2($3));\n };\n }; \n var onClick = (function () {\n var $4 = handler(Web_UIEvent_MouseEvent_EventTypes.click);\n return function ($5) {\n return $4(mouseHandler($5));\n };\n })(); \n var onSubmit = handler(\"submit\");\n var addForeignPropHandler = function (key) {\n return function (prop) {\n return function (reader) {\n return function (f) {\n var go = function (a) {\n return Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(reader)(Foreign_Index.readProp(prop))(Foreign.unsafeToForeign(a));\n };\n return handler(key)(Control_Bind.composeKleisli(Data_Maybe.bindMaybe)(Web_Event_Event.currentTarget)(function (e) {\n return Data_Either.either(Data_Function[\"const\"](Data_Maybe.Nothing.value))(f)(Control_Monad_Except.runExcept(go(e)));\n }));\n };\n };\n };\n };\n var onChecked = addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"checked\")(Foreign.readBoolean); \n var onValueChange = addForeignPropHandler(Web_HTML_Event_EventTypes.change)(\"value\")(Foreign.readString);\n exports[\"onSubmit\"] = onSubmit;\n exports[\"onClick\"] = onClick;\n exports[\"onValueChange\"] = onValueChange;\n exports[\"onChecked\"] = onChecked;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.HTML.Properties\"] = $PS[\"Halogen.HTML.Properties\"] || {};\n var exports = $PS[\"Halogen.HTML.Properties\"];\n var DOM_HTML_Indexed_OnOff = $PS[\"DOM.HTML.Indexed.OnOff\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_Query_Input = $PS[\"Halogen.Query.Input\"];\n var ref = (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 ($11) {\n return Halogen_HTML_Core.ref(go($11));\n };\n })();\n var prop = function (dictIsProp) {\n return Halogen_HTML_Core.prop(dictIsProp);\n }; \n var required = prop(Halogen_HTML_Core.isPropBoolean)(\"required\");\n var rows = prop(Halogen_HTML_Core.isPropInt)(\"rows\"); \n var target = prop(Halogen_HTML_Core.isPropString)(\"target\");\n var title = prop(Halogen_HTML_Core.isPropString)(\"title\");\n var type_ = function (dictIsProp) {\n return prop(dictIsProp)(\"type\");\n };\n var value = prop(Halogen_HTML_Core.isPropString)(\"value\");\n var name = prop(Halogen_HTML_Core.isPropString)(\"name\"); \n var id_ = prop(Halogen_HTML_Core.isPropString)(\"id\");\n var href = prop(Halogen_HTML_Core.isPropString)(\"href\");\n var $$for = prop(Halogen_HTML_Core.isPropString)(\"htmlFor\"); \n var disabled = prop(Halogen_HTML_Core.isPropBoolean)(\"disabled\");\n var class_ = (function () {\n var $18 = prop(Halogen_HTML_Core.isPropString)(\"className\");\n var $19 = Data_Newtype.unwrap(Halogen_HTML_Core.newtypeClassName);\n return function ($20) {\n return $18($19($20));\n };\n })();\n var checked = prop(Halogen_HTML_Core.isPropBoolean)(\"checked\"); \n var autofocus = prop(Halogen_HTML_Core.isPropBoolean)(\"autofocus\");\n var autocomplete = (function () {\n var $21 = prop(Halogen_HTML_Core.isPropOnOff)(\"autocomplete\");\n return function ($22) {\n return $21((function (b) {\n if (b) {\n return DOM_HTML_Indexed_OnOff.On.value;\n };\n return DOM_HTML_Indexed_OnOff.Off.value;\n })($22));\n };\n })();\n var attr = Halogen_HTML_Core.attr(Data_Maybe.Nothing.value);\n exports[\"attr\"] = attr;\n exports[\"ref\"] = ref;\n exports[\"class_\"] = class_;\n exports[\"rows\"] = rows;\n exports[\"for\"] = $$for;\n exports[\"href\"] = href;\n exports[\"id_\"] = id_;\n exports[\"name\"] = name;\n exports[\"target\"] = target;\n exports[\"title\"] = title;\n exports[\"type_\"] = type_;\n exports[\"value\"] = value;\n exports[\"disabled\"] = disabled;\n exports[\"required\"] = required;\n exports[\"checked\"] = checked;\n exports[\"autocomplete\"] = autocomplete;\n exports[\"autofocus\"] = autofocus;\n})(PS);\n(function(exports) {\n \"use strict\";\n /* global Symbol */\n\n var hasArrayFrom = typeof Array.from === \"function\";\n var hasStringIterator =\n typeof Symbol !== \"undefined\" &&\n Symbol != null &&\n typeof Symbol.iterator !== \"undefined\" &&\n typeof String.prototype[Symbol.iterator] === \"function\";\n var hasFromCodePoint = typeof String.prototype.fromCodePoint === \"function\";\n var hasCodePointAt = typeof String.prototype.codePointAt === \"function\";\n\n exports._unsafeCodePointAt0 = function (fallback) {\n return hasCodePointAt\n ? function (str) { return str.codePointAt(0); }\n : fallback;\n };\n\n exports._singleton = function (fallback) {\n return hasFromCodePoint ? String.fromCodePoint : fallback;\n };\n\n exports._take = function (fallback) {\n return function (n) {\n if (hasStringIterator) {\n return function (str) {\n var accum = \"\";\n var iter = str[Symbol.iterator]();\n for (var i = 0; i < n; ++i) {\n var o = iter.next();\n if (o.done) return accum;\n accum += o.value;\n }\n return accum;\n };\n }\n return fallback(n);\n };\n };\n\n exports._toCodePointArray = function (fallback) {\n return function (unsafeCodePointAt0) {\n if (hasArrayFrom) {\n return function (str) {\n return Array.from(str, unsafeCodePointAt0);\n };\n }\n return fallback;\n };\n };\n})(PS[\"Data.String.CodePoints\"] = PS[\"Data.String.CodePoints\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.topInt = 2147483647;\n exports.bottomInt = -2147483648;\n\n exports.topChar = String.fromCharCode(65535);\n exports.bottomChar = String.fromCharCode(0);\n})(PS[\"Data.Bounded\"] = PS[\"Data.Bounded\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Bounded\"] = $PS[\"Data.Bounded\"] || {};\n var exports = $PS[\"Data.Bounded\"];\n var $foreign = $PS[\"Data.Bounded\"];\n var Data_Ord = $PS[\"Data.Ord\"]; \n var Bounded = function (Ord0, bottom, top) {\n this.Ord0 = Ord0;\n this.bottom = bottom;\n this.top = top;\n };\n var top = function (dict) {\n return dict.top;\n }; \n var boundedInt = new Bounded(function () {\n return Data_Ord.ordInt;\n }, $foreign.bottomInt, $foreign.topInt);\n var boundedChar = new Bounded(function () {\n return Data_Ord.ordChar;\n }, $foreign.bottomChar, $foreign.topChar);\n var bottom = function (dict) {\n return dict.bottom;\n };\n exports[\"bottom\"] = bottom;\n exports[\"top\"] = top;\n exports[\"boundedInt\"] = boundedInt;\n exports[\"boundedChar\"] = boundedChar;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.toCharCode = function (c) {\n return c.charCodeAt(0);\n };\n\n exports.fromCharCode = function (c) {\n return String.fromCharCode(c);\n };\n})(PS[\"Data.Enum\"] = PS[\"Data.Enum\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Enum\"] = $PS[\"Data.Enum\"] || {};\n var exports = $PS[\"Data.Enum\"];\n var $foreign = $PS[\"Data.Enum\"];\n var Data_Bounded = $PS[\"Data.Bounded\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Enum = function (Ord0, pred, succ) {\n this.Ord0 = Ord0;\n this.pred = pred;\n this.succ = succ;\n };\n var BoundedEnum = function (Bounded0, Enum1, cardinality, fromEnum, toEnum) {\n this.Bounded0 = Bounded0;\n this.Enum1 = Enum1;\n this.cardinality = cardinality;\n this.fromEnum = fromEnum;\n this.toEnum = toEnum;\n };\n var toEnum = function (dict) {\n return dict.toEnum;\n }; \n var fromEnum = function (dict) {\n return dict.fromEnum;\n };\n var toEnumWithDefaults = function (dictBoundedEnum) {\n return function (low) {\n return function (high) {\n return function (x) {\n var v = toEnum(dictBoundedEnum)(x);\n if (v instanceof Data_Maybe.Just) {\n return v.value0;\n };\n if (v instanceof Data_Maybe.Nothing) {\n var $54 = x < fromEnum(dictBoundedEnum)(Data_Bounded.bottom(dictBoundedEnum.Bounded0()));\n if ($54) {\n return low;\n };\n return high;\n };\n throw new Error(\"Failed pattern match at Data.Enum (line 158, column 33 - line 160, column 62): \" + [ v.constructor.name ]);\n };\n };\n };\n };\n var defaultSucc = function (toEnum$prime) {\n return function (fromEnum$prime) {\n return function (a) {\n return toEnum$prime(fromEnum$prime(a) + 1 | 0);\n };\n };\n };\n var defaultPred = function (toEnum$prime) {\n return function (fromEnum$prime) {\n return function (a) {\n return toEnum$prime(fromEnum$prime(a) - 1 | 0);\n };\n };\n };\n var charToEnum = function (v) {\n if (v >= Data_Bounded.bottom(Data_Bounded.boundedInt) && v <= Data_Bounded.top(Data_Bounded.boundedInt)) {\n return new Data_Maybe.Just($foreign.fromCharCode(v));\n };\n return Data_Maybe.Nothing.value;\n };\n var enumChar = new Enum(function () {\n return Data_Ord.ordChar;\n }, defaultPred(charToEnum)($foreign.toCharCode), defaultSucc(charToEnum)($foreign.toCharCode));\n var boundedEnumChar = new BoundedEnum(function () {\n return Data_Bounded.boundedChar;\n }, function () {\n return enumChar;\n }, $foreign.toCharCode(Data_Bounded.top(Data_Bounded.boundedChar)) - $foreign.toCharCode(Data_Bounded.bottom(Data_Bounded.boundedChar)) | 0, $foreign.toCharCode, charToEnum);\n exports[\"fromEnum\"] = fromEnum;\n exports[\"toEnumWithDefaults\"] = toEnumWithDefaults;\n exports[\"boundedEnumChar\"] = boundedEnumChar;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.intDegree = function (x) {\n return Math.min(Math.abs(x), 2147483647);\n };\n\n // See the Euclidean definition in\n // https://en.m.wikipedia.org/wiki/Modulo_operation.\n exports.intDiv = function (x) {\n return function (y) {\n if (y === 0) return 0;\n return y > 0 ? Math.floor(x / y) : -Math.floor(x / -y);\n };\n };\n\n exports.intMod = function (x) {\n return function (y) {\n if (y === 0) return 0;\n var yy = Math.abs(y);\n return ((x % yy) + yy) % yy;\n };\n };\n})(PS[\"Data.EuclideanRing\"] = PS[\"Data.EuclideanRing\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.intSub = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x - y | 0;\n };\n };\n})(PS[\"Data.Ring\"] = PS[\"Data.Ring\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports.intAdd = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x + y | 0;\n };\n };\n\n exports.intMul = function (x) {\n return function (y) {\n /* jshint bitwise: false */\n return x * y | 0;\n };\n };\n})(PS[\"Data.Semiring\"] = PS[\"Data.Semiring\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Semiring\"] = $PS[\"Data.Semiring\"] || {};\n var exports = $PS[\"Data.Semiring\"];\n var $foreign = $PS[\"Data.Semiring\"];\n var Semiring = function (add, mul, one, zero) {\n this.add = add;\n this.mul = mul;\n this.one = one;\n this.zero = zero;\n }; \n var semiringInt = new Semiring($foreign.intAdd, $foreign.intMul, 1, 0);\n exports[\"semiringInt\"] = semiringInt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Ring\"] = $PS[\"Data.Ring\"] || {};\n var exports = $PS[\"Data.Ring\"];\n var $foreign = $PS[\"Data.Ring\"];\n var Data_Semiring = $PS[\"Data.Semiring\"];\n var Ring = function (Semiring0, sub) {\n this.Semiring0 = Semiring0;\n this.sub = sub;\n }; \n var ringInt = new Ring(function () {\n return Data_Semiring.semiringInt;\n }, $foreign.intSub);\n exports[\"ringInt\"] = ringInt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.CommutativeRing\"] = $PS[\"Data.CommutativeRing\"] || {};\n var exports = $PS[\"Data.CommutativeRing\"];\n var Data_Ring = $PS[\"Data.Ring\"];\n var CommutativeRing = function (Ring0) {\n this.Ring0 = Ring0;\n }; \n var commutativeRingInt = new CommutativeRing(function () {\n return Data_Ring.ringInt;\n });\n exports[\"commutativeRingInt\"] = commutativeRingInt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.EuclideanRing\"] = $PS[\"Data.EuclideanRing\"] || {};\n var exports = $PS[\"Data.EuclideanRing\"];\n var $foreign = $PS[\"Data.EuclideanRing\"];\n var Data_CommutativeRing = $PS[\"Data.CommutativeRing\"]; \n var EuclideanRing = function (CommutativeRing0, degree, div, mod) {\n this.CommutativeRing0 = CommutativeRing0;\n this.degree = degree;\n this.div = div;\n this.mod = mod;\n };\n var mod = function (dict) {\n return dict.mod;\n }; \n var euclideanRingInt = new EuclideanRing(function () {\n return Data_CommutativeRing.commutativeRingInt;\n }, $foreign.intDegree, $foreign.intDiv, $foreign.intMod);\n var div = function (dict) {\n return dict.div;\n };\n exports[\"div\"] = div;\n exports[\"mod\"] = mod;\n exports[\"euclideanRingInt\"] = euclideanRingInt;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.singleton = function (c) {\n return c;\n };\n\n exports.length = function (s) {\n return s.length;\n };\n\n exports.drop = function (n) {\n return function (s) {\n return s.substring(n);\n };\n };\n})(PS[\"Data.String.CodeUnits\"] = PS[\"Data.String.CodeUnits\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.String.CodeUnits\"] = $PS[\"Data.String.CodeUnits\"] || {};\n var exports = $PS[\"Data.String.CodeUnits\"];\n var $foreign = $PS[\"Data.String.CodeUnits\"];\n exports[\"singleton\"] = $foreign.singleton;\n exports[\"length\"] = $foreign.length;\n exports[\"drop\"] = $foreign.drop;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.charAt = function (i) {\n return function (s) {\n if (i >= 0 && i < s.length) return s.charAt(i);\n throw new Error(\"Data.String.Unsafe.charAt: Invalid index.\");\n };\n };\n})(PS[\"Data.String.Unsafe\"] = PS[\"Data.String.Unsafe\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.String.Unsafe\"] = $PS[\"Data.String.Unsafe\"] || {};\n var exports = $PS[\"Data.String.Unsafe\"];\n var $foreign = $PS[\"Data.String.Unsafe\"];\n exports[\"charAt\"] = $foreign.charAt;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.String.CodePoints\"] = $PS[\"Data.String.CodePoints\"] || {};\n var exports = $PS[\"Data.String.CodePoints\"];\n var $foreign = $PS[\"Data.String.CodePoints\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Bounded = $PS[\"Data.Bounded\"];\n var Data_Enum = $PS[\"Data.Enum\"];\n var Data_EuclideanRing = $PS[\"Data.EuclideanRing\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_String_CodeUnits = $PS[\"Data.String.CodeUnits\"];\n var Data_String_Unsafe = $PS[\"Data.String.Unsafe\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unfoldable = $PS[\"Data.Unfoldable\"];\n var unsurrogate = function (lead) {\n return function (trail) {\n return (((lead - 55296 | 0) * 1024 | 0) + (trail - 56320 | 0) | 0) + 65536 | 0;\n };\n }; \n var isTrail = function (cu) {\n return 56320 <= cu && cu <= 57343;\n };\n var isLead = function (cu) {\n return 55296 <= cu && cu <= 56319;\n };\n var uncons = function (s) {\n var v = Data_String_CodeUnits.length(s);\n if (v === 0) {\n return Data_Maybe.Nothing.value;\n };\n if (v === 1) {\n return new Data_Maybe.Just({\n head: Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s)),\n tail: \"\"\n });\n };\n var cu1 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(1)(s));\n var cu0 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s));\n var $21 = isLead(cu0) && isTrail(cu1);\n if ($21) {\n return new Data_Maybe.Just({\n head: unsurrogate(cu0)(cu1),\n tail: Data_String_CodeUnits.drop(2)(s)\n });\n };\n return new Data_Maybe.Just({\n head: cu0,\n tail: Data_String_CodeUnits.drop(1)(s)\n });\n };\n var unconsButWithTuple = function (s) {\n return Data_Functor.map(Data_Maybe.functorMaybe)(function (v) {\n return new Data_Tuple.Tuple(v.head, v.tail);\n })(uncons(s));\n };\n var toCodePointArrayFallback = function (s) {\n return Data_Unfoldable.unfoldr(Data_Unfoldable.unfoldableArray)(unconsButWithTuple)(s);\n };\n var unsafeCodePointAt0Fallback = function (s) {\n var cu0 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s));\n var $25 = isLead(cu0) && Data_String_CodeUnits.length(s) > 1;\n if ($25) {\n var cu1 = Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(1)(s));\n var $26 = isTrail(cu1);\n if ($26) {\n return unsurrogate(cu0)(cu1);\n };\n return cu0;\n };\n return cu0;\n };\n var unsafeCodePointAt0 = $foreign[\"_unsafeCodePointAt0\"](unsafeCodePointAt0Fallback);\n var toCodePointArray = $foreign[\"_toCodePointArray\"](toCodePointArrayFallback)(unsafeCodePointAt0);\n var length = function ($52) {\n return Data_Array.length(toCodePointArray($52));\n };\n var fromCharCode = (function () {\n var $53 = Data_Enum.toEnumWithDefaults(Data_Enum.boundedEnumChar)(Data_Bounded.bottom(Data_Bounded.boundedChar))(Data_Bounded.top(Data_Bounded.boundedChar));\n return function ($54) {\n return Data_String_CodeUnits.singleton($53($54));\n };\n })();\n var singletonFallback = function (v) {\n if (v <= 65535) {\n return fromCharCode(v);\n };\n var lead = Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt)(v - 65536 | 0)(1024) + 55296 | 0;\n var trail = Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt)(v - 65536 | 0)(1024) + 56320 | 0;\n return fromCharCode(lead) + fromCharCode(trail);\n }; \n var singleton = $foreign[\"_singleton\"](singletonFallback);\n var takeFallback = function (n) {\n return function (v) {\n if (n < 1) {\n return \"\";\n };\n var v1 = uncons(v);\n if (v1 instanceof Data_Maybe.Just) {\n return singleton(v1.value0.head) + takeFallback(n - 1 | 0)(v1.value0.tail);\n };\n return v;\n };\n };\n var take = $foreign[\"_take\"](takeFallback);\n var drop = function (n) {\n return function (s) {\n return Data_String_CodeUnits.drop(Data_String_CodeUnits.length(take(n)(s)))(s);\n };\n };\n exports[\"take\"] = take;\n exports[\"drop\"] = drop;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Util\"] = $PS[\"Util\"] || {};\n var exports = $PS[\"Util\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_String_CodePoints = $PS[\"Data.String.CodePoints\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Global_Unsafe = $PS[\"Global.Unsafe\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_Location = $PS[\"Web.HTML.Location\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"]; \n var 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 };\n var whenA = function (b) {\n return function (k) {\n if (b) {\n return k(Data_Unit.unit);\n };\n return [ ];\n };\n };\n var 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 };\n var fromNullableStr = (function () {\n var $43 = Data_Maybe.fromMaybe(\"\");\n return function ($44) {\n return $43(Data_Nullable.toMaybe($44));\n };\n })();\n var class_ = function ($45) {\n return Halogen_HTML_Properties.class_(Halogen_HTML_Core.ClassName($45));\n };\n var attr = function (a) {\n return Halogen_HTML_Properties.attr(a);\n };\n var _parseQueryString = function (srh) {\n var decode = (function () {\n var $46 = Data_String_Common.replaceAll(\"+\")(\" \");\n return function ($47) {\n return Global_Unsafe.unsafeDecodeURIComponent($46($47));\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 $42 = srh$prime === \"#\" || srh$prime === \"?\";\n if ($42) {\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 }; \n var _lookupQueryStringValue = function (qs) {\n return function (k) {\n return Control_Bind.join(Data_Maybe.bindMaybe)(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Tuple.snd)(Data_Foldable.find(Data_Foldable.foldableArray)(function ($50) {\n return (function (v) {\n return v === k;\n })(Data_Tuple.fst($50));\n })(qs)));\n };\n };\n var _loc = Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Window.location)(Web_HTML.window);\n var _curQuerystring = function __do() {\n var loc = _loc();\n var srh = Web_HTML_Location.search(loc)();\n return _parseQueryString(srh);\n };\n exports[\"class_\"] = class_;\n exports[\"attr\"] = attr;\n exports[\"_loc\"] = _loc;\n exports[\"_curQuerystring\"] = _curQuerystring;\n exports[\"_lookupQueryStringValue\"] = _lookupQueryStringValue;\n exports[\"whenH\"] = whenH;\n exports[\"whenA\"] = whenA;\n exports[\"ifElseH\"] = ifElseH;\n exports[\"fromNullableStr\"] = fromNullableStr;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.AccountSettings\"] = $PS[\"Component.AccountSettings\"] || {};\n var exports = $PS[\"Component.AccountSettings\"];\n var App = $PS[\"App\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Lens_Getter = $PS[\"Data.Lens.Getter\"];\n var Data_Lens_Internal_Forget = $PS[\"Data.Lens.Internal.Forget\"];\n var Data_Lens_Lens = $PS[\"Data.Lens.Lens\"];\n var Data_Lens_Setter = $PS[\"Data.Lens.Setter\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Profunctor_Strong = $PS[\"Data.Profunctor.Strong\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Globals = $PS[\"Globals\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Events = $PS[\"Halogen.HTML.Events\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Util = $PS[\"Util\"]; \n var EarchiveDefault = (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 })();\n var EprivateDefault = (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 })();\n var EprivacyLock = (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 })();\n var UEditField = (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 })();\n var USubmit = (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 })();\n var _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 };\n var usetting = function (u$prime) {\n var render = function (v) {\n var editField = function (f) {\n return function ($19) {\n return Data_Maybe.Just.create(UEditField.create(f($19)));\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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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 Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_us(Data_Profunctor_Strong.strongFn))((function () {\n if (v.value0 instanceof EarchiveDefault) {\n return function (v1) {\n return {\n archiveDefault: v.value0.value0,\n privateDefault: v1.privateDefault,\n privacyLock: v1.privacyLock\n };\n };\n };\n if (v.value0 instanceof EprivateDefault) {\n return function (v1) {\n return {\n archiveDefault: v1.archiveDefault,\n privateDefault: v.value0.value0,\n privacyLock: v1.privacyLock\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 80, column 12 - line 83, column 46): \" + [ v.value0.constructor.name ]);\n })()))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_us(Data_Lens_Internal_Forget.strongForget)))(function (us) {\n return Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.editAccountSettings(us)));\n });\n });\n };\n if (v instanceof USubmit) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_us(Data_Lens_Internal_Forget.strongForget)))(function (us) {\n return Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.editAccountSettings(us)));\n });\n };\n throw new Error(\"Failed pattern match at Component.AccountSettings (line 78, column 3 - line 78, column 69): \" + [ v.constructor.name ]);\n };\n var app = Globals[\"app'\"](Data_Unit.unit);\n return Halogen_Component.mkComponent({\n initialState: Data_Function[\"const\"](mkState(u$prime)),\n render: render,\n \"eval\": Halogen_Component.mkEval({\n handleAction: handleAction,\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 })\n });\n };\n exports[\"usetting\"] = usetting;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.Add\"] = $PS[\"Component.Add\"] || {};\n var exports = $PS[\"Component.Add\"];\n var App = $PS[\"App\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var DOM_HTML_Indexed_ButtonType = $PS[\"DOM.HTML.Indexed.ButtonType\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Lens_Getter = $PS[\"Data.Lens.Getter\"];\n var Data_Lens_Internal_Forget = $PS[\"Data.Lens.Internal.Forget\"];\n var Data_Lens_Lens = $PS[\"Data.Lens.Lens\"];\n var Data_Lens_Setter = $PS[\"Data.Lens.Setter\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Profunctor_Strong = $PS[\"Data.Profunctor.Strong\"];\n var Data_Semigroup = $PS[\"Data.Semigroup\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Globals = $PS[\"Globals\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Events = $PS[\"Halogen.HTML.Events\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Util = $PS[\"Util\"];\n var Web_Event_Event = $PS[\"Web.Event.Event\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_Location = $PS[\"Web.HTML.Location\"]; \n var Eurl = (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 })();\n var Etitle = (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 })();\n var Edescription = (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 })();\n var Etags = (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 })();\n var Eprivate = (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 })();\n var Etoread = (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 })();\n var BEditField = (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 })();\n var BEditSubmit = (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 })();\n var BDeleteAsk = (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 })();\n var BLookupTitle = (function () {\n function BLookupTitle() {\n\n };\n BLookupTitle.value = new BLookupTitle();\n return BLookupTitle;\n })();\n var BDestroy = (function () {\n function BDestroy() {\n\n };\n BDestroy.value = new BDestroy();\n return BDestroy;\n })();\n var _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 edit_bm: v1,\n bm: v.bm,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n loading: v.loading\n };\n };\n })(dictStrong);\n };\n var _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 bm: v1,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n edit_bm: v.edit_bm,\n loading: v.loading\n };\n };\n })(dictStrong);\n };\n var addbmark = function (b$prime) {\n var render = function (v) {\n var toTextarea = (function () {\n var $63 = Data_Array.drop(1);\n var $64 = Data_Foldable.foldMap(Data_Foldable.foldableArray)(Data_Monoid.monoidArray)(function (x) {\n return [ Halogen_HTML_Elements.br_, Halogen_HTML_Core.text(x) ];\n });\n var $65 = Data_String_Common.split(\"\\x0a\");\n return function ($66) {\n return $63($64($65($66)));\n };\n })();\n var mmoment = Globals.mmoment8601(v.bm.time);\n var editField = function (f) {\n return function ($67) {\n return Data_Maybe.Just.create(BEditField.create(f($67)));\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(Data_Semigroup.append(Data_Semigroup.semigroupArray)([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(new BDeleteAsk(true));\n }), Util.class_(\"delete\") ])(Data_Monoid.guard(Data_Monoid.monoidArray)(v.deleteAsk)([ Util.attr(\"hidden\")(\"hidden\") ])))([ Halogen_HTML_Core.text(\"delete\") ]), Halogen_HTML_Elements.span(Data_Semigroup.append(Data_Semigroup.semigroupArray)([ Util.class_(\"confirm red\") ])(Data_Monoid.guard(Data_Monoid.monoidArray)(!v.deleteAsk)([ Util.attr(\"hidden\")(\"hidden\") ])))([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(new BDeleteAsk(false));\n }) ])([ Halogen_HTML_Core.text(\"cancel\\xa0/\\xa0\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(BDestroy.value);\n }), Util.class_(\"red\") ])([ Halogen_HTML_Core.text(\"destroy\") ]) ]) ]) ]) ]);\n };\n var display_edit = function (v1) {\n return Halogen_HTML_Elements.form([ Halogen_HTML_Events.onSubmit(function ($68) {\n return Data_Maybe.Just.create(BEditSubmit.create($68));\n }) ])([ 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) ]) ]), 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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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)), Halogen_HTML_Properties.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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputText.value), Halogen_HTML_Properties.id_(\"title\"), Util.class_(\"w-100 mv1 flex-auto\"), Halogen_HTML_Properties.name(\"title\"), Halogen_HTML_Properties.value(v.edit_bm.title), Halogen_HTML_Events.onValueChange(editField(Etitle.create)) ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.disabled(v.loading), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(BLookupTitle.value);\n }), Util.class_(\"ml2 input-reset ba b--navy pointer f6 di dim pa1 ma1 mr0 \" + Data_Monoid.guard(Data_Monoid.monoidString)(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), Halogen_HTML_Properties.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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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(false), Util.attr(\"autocapitalize\")(\"off\"), Halogen_HTML_Properties.autofocus(!Data_String_Common[\"null\"](v.bm.url)), Halogen_HTML_Properties.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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputSubmit.value), Util.class_(\"ph3 pv2 input-reset ba b--navy bg-transparent pointer f6 dib mt1 dim\"), Halogen_HTML_Properties.value((function () {\n var $33 = v.bm.bid > 0;\n if ($33) {\n return \"update bookmark\";\n };\n return \"add bookmark\";\n })()) ]) ]) ]) ]) ]) ]);\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 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 };\n };\n var handleAction = function (v) {\n if (v instanceof BDeleteAsk) {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $37 = {};\n for (var $38 in v1) {\n if ({}.hasOwnProperty.call(v1, $38)) {\n $37[$38] = v1[$38];\n };\n };\n $37.deleteAsk = v.value0;\n return $37;\n });\n };\n if (v instanceof BLookupTitle) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $41 = {};\n for (var $42 in v1) {\n if ({}.hasOwnProperty.call(v1, $42)) {\n $41[$42] = v1[$42];\n };\n };\n $41.loading = true;\n return $41;\n }))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.gets(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n return v1.edit_bm;\n }))(function (edit_bm) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.lookupTitle(edit_bm)))(function (mtitle) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)((function () {\n if (mtitle instanceof Data_Maybe.Just) {\n return Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Profunctor_Strong.strongFn))(function (v1) {\n return {\n url: v1.url,\n title: mtitle.value0,\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 };\n });\n };\n if (mtitle instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Component.Add (line 165, column 5 - line 167, column 29): \" + [ mtitle.constructor.name ]);\n })())(function () {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $46 = {};\n for (var $47 in v1) {\n if ({}.hasOwnProperty.call(v1, $47)) {\n $46[$47] = v1[$47];\n };\n };\n $46.loading = false;\n return $46;\n });\n });\n });\n });\n });\n };\n if (v instanceof BDestroy) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.gets(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n return v1.bm.bid;\n }))(function (bid) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.destroy(bid))))(function () {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $49 = {};\n for (var $50 in v1) {\n if ({}.hasOwnProperty.call(v1, $50)) {\n $49[$50] = v1[$50];\n };\n };\n $49.destroyed = true;\n return $49;\n });\n });\n });\n };\n if (v instanceof BEditField) {\n return Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Profunctor_Strong.strongFn))((function () {\n if (v.value0 instanceof Eurl) {\n return function (v1) {\n return {\n url: v.value0.value0,\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 };\n };\n };\n if (v.value0 instanceof Etitle) {\n return function (v1) {\n return {\n url: v1.url,\n title: v.value0.value0,\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 };\n };\n };\n if (v.value0 instanceof Edescription) {\n return function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n description: v.value0.value0,\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 };\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 tags: v.value0.value0,\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 };\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 \"private\": v.value0.value0,\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 };\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 toread: v.value0.value0,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl\n };\n };\n };\n throw new Error(\"Failed pattern match at Component.Add (line 174, column 17 - line 180, column 36): \" + [ v.value0.constructor.name ]);\n })());\n };\n if (v instanceof BEditSubmit) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Web_Event_Event.preventDefault(v.value0)))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Lens_Internal_Forget.strongForget)))(function (edit_bm) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.editBookmark(edit_bm))))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Profunctor_Strong.strongFn))(edit_bm))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Util[\"_loc\"]))(function (loc) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Web_HTML.window))(function (win) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Util[\"_curQuerystring\"]))(function (qs) {\n var v1 = Util[\"_lookupQueryStringValue\"](qs)(\"next\");\n if (v1 instanceof Data_Maybe.Just) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Web_HTML_Location.setHref(v1.value0)(loc));\n };\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Globals.closeWindow(win));\n });\n });\n });\n });\n });\n });\n });\n };\n throw new Error(\"Failed pattern match at Component.Add (line 158, column 3 - line 158, column 69): \" + [ v.constructor.name ]);\n };\n var app = Globals[\"app'\"](Data_Unit.unit);\n return Halogen_Component.mkComponent({\n initialState: Data_Function[\"const\"](mkState(b$prime)),\n render: render,\n \"eval\": Halogen_Component.mkEval({\n handleAction: handleAction,\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 })\n });\n };\n exports[\"addbmark\"] = addbmark;\n})(PS);\n(function(exports) {\n // use at your own risk!\n exports.unsafeSetInnerHTML = function(element) {\n return function(html) {\n return function() {\n element.innerHTML = html;\n };\n };\n };\n})(PS[\"Component.RawHtml\"] = PS[\"Component.RawHtml\"] || {});\n(function(exports) {\n \"use strict\";\n\n exports._read = function (nothing, just, value) {\n var tag = Object.prototype.toString.call(value);\n if (tag.indexOf(\"[object HTML\") === 0 && tag.indexOf(\"Element]\") === tag.length - 8) {\n return just(value);\n } else {\n return nothing;\n }\n };\n})(PS[\"Web.HTML.HTMLElement\"] = PS[\"Web.HTML.HTMLElement\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.HTML.HTMLElement\"] = $PS[\"Web.HTML.HTMLElement\"] || {};\n var exports = $PS[\"Web.HTML.HTMLElement\"];\n var $foreign = $PS[\"Web.HTML.HTMLElement\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var toNode = Unsafe_Coerce.unsafeCoerce; \n var toElement = Unsafe_Coerce.unsafeCoerce;\n var fromElement = function (x) {\n return $foreign[\"_read\"](Data_Maybe.Nothing.value, Data_Maybe.Just.create, x);\n };\n exports[\"fromElement\"] = fromElement;\n exports[\"toElement\"] = toElement;\n exports[\"toNode\"] = toNode;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Query\"] = $PS[\"Halogen.Query\"] || {};\n var exports = $PS[\"Halogen.Query\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Web_HTML_HTMLElement = $PS[\"Web.HTML.HTMLElement\"];\n var getHTMLElementRef = (function () {\n var $1 = Data_Functor.map(Halogen_Query_HalogenM.functorHalogenM)(function (v) {\n return Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_HTML_HTMLElement.fromElement)(v);\n });\n return function ($2) {\n return $1(Halogen_Query_HalogenM.getRef($2));\n };\n })();\n exports[\"getHTMLElementRef\"] = getHTMLElementRef;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.RawHtml\"] = $PS[\"Component.RawHtml\"] || {};\n var exports = $PS[\"Component.RawHtml\"];\n var $foreign = $PS[\"Component.RawHtml\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query = $PS[\"Halogen.Query\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"]; \n var SetInnerHTML = (function () {\n function SetInnerHTML() {\n\n };\n SetInnerHTML.value = new SetInnerHTML();\n return SetInnerHTML;\n })();\n var Receive = (function () {\n function Receive(value0) {\n this.value0 = value0;\n };\n Receive.create = function (value0) {\n return new Receive(value0);\n };\n return Receive;\n })();\n var 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 Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.get(Halogen_Query_HalogenM.monadStateHalogenM))(function (v1) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Halogen_Query.getHTMLElementRef(v1.elRef))(function (mel) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Foldable.for_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Foldable.foldableMaybe)(mel)(function (el) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.get(Halogen_Query_HalogenM.monadStateHalogenM))(function (v2) {\n return Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(Effect_Aff.forkAff(Effect_Aff.makeAff(function (cb) {\n return function __do() {\n Effect_Class.liftEffect(Effect_Class.monadEffectEffect)($foreign.unsafeSetInnerHTML(el)(toRawHTML(v2.inputval)))();\n return Data_Monoid.mempty(Effect.monoidEffect(Effect_Aff.monoidCanceler))();\n };\n })));\n });\n }))(function () {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n });\n });\n });\n };\n if (v instanceof Receive) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $10 = {};\n for (var $11 in v1) {\n if ({}.hasOwnProperty.call(v1, $11)) {\n $10[$11] = v1[$11];\n };\n };\n $10.inputval = v.value0;\n return $10;\n }))(function () {\n return handleAction(SetInnerHTML.value);\n });\n };\n throw new Error(\"Failed pattern match at Component.RawHtml (line 50, column 18 - line 63, 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 handleAction: handleAction,\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: function ($14) {\n return Data_Maybe.Just.create(Receive.create($14));\n },\n initialize: new Data_Maybe.Just(SetInnerHTML.value),\n finalize: Halogen_Component.defaultEval.finalize\n })\n });\n };\n exports[\"mkComponent\"] = mkComponent;\n})(PS);\n(function(exports) {\n \n var marked =require(\"marked\"); \n\n marked.setOptions({\n pedantic: false,\n gfm: true\n });\n\n exports.markedImpl = function(str) {\n if (!str) return \"\";\n return marked(str);\n };\n})(PS[\"Foreign.Marked\"] = PS[\"Foreign.Marked\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Foreign.Marked\"] = $PS[\"Foreign.Marked\"] || {};\n var exports = $PS[\"Foreign.Marked\"];\n var $foreign = $PS[\"Foreign.Marked\"];\n var Globals = $PS[\"Globals\"]; \n var marked = function ($0) {\n return Globals.RawHTML($foreign.markedImpl($0));\n };\n exports[\"marked\"] = marked;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.Markdown\"] = $PS[\"Component.Markdown\"] || {};\n var exports = $PS[\"Component.Markdown\"];\n var Component_RawHtml = $PS[\"Component.RawHtml\"];\n var Foreign_Marked = $PS[\"Foreign.Marked\"]; \n var component = Component_RawHtml.mkComponent(Foreign_Marked.marked);\n exports[\"component\"] = component;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Data.Void\"] = $PS[\"Data.Void\"] || {};\n var exports = $PS[\"Data.Void\"];\n var 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 };\n exports[\"absurd\"] = absurd;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.HTML\"] = $PS[\"Halogen.HTML\"] || {};\n var exports = $PS[\"Halogen.HTML\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"]; \n var slot = function (dictCons) {\n return function (dictIsSymbol) {\n return function (dictOrd) {\n return function (label) {\n return function (p) {\n return function (component) {\n return function (input) {\n return function (outputQuery) {\n return Halogen_HTML_Core.widget(new Halogen_Component.ComponentSlot(Halogen_Component.componentSlot()(dictIsSymbol)(dictOrd)(label)(p)(component)(input)(outputQuery)));\n };\n };\n };\n };\n };\n };\n };\n };\n exports[\"slot\"] = slot;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.BMark\"] = $PS[\"Component.BMark\"] || {};\n var exports = $PS[\"Component.BMark\"];\n var App = $PS[\"App\"];\n var Component_Markdown = $PS[\"Component.Markdown\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var DOM_HTML_Indexed_ButtonType = $PS[\"DOM.HTML.Indexed.ButtonType\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Lens_Getter = $PS[\"Data.Lens.Getter\"];\n var Data_Lens_Internal_Forget = $PS[\"Data.Lens.Internal.Forget\"];\n var Data_Lens_Lens = $PS[\"Data.Lens.Lens\"];\n var Data_Lens_Setter = $PS[\"Data.Lens.Setter\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Profunctor_Strong = $PS[\"Data.Profunctor.Strong\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_String_CodePoints = $PS[\"Data.String.CodePoints\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Data_Void = $PS[\"Data.Void\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Globals = $PS[\"Globals\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML = $PS[\"Halogen.HTML\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Events = $PS[\"Halogen.HTML.Events\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Util = $PS[\"Util\"];\n var Web_Event_Event = $PS[\"Web.Event.Event\"]; \n var Eurl = (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 })();\n var Etitle = (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 })();\n var Edescription = (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 })();\n var Etags = (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 })();\n var Eprivate = (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 })();\n var Etoread = (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 })();\n var BNotifyRemove = (function () {\n function BNotifyRemove() {\n\n };\n BNotifyRemove.value = new BNotifyRemove();\n return BNotifyRemove;\n })();\n var BStar = (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 })();\n var BDeleteAsk = (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 })();\n var BLookupTitle = (function () {\n function BLookupTitle() {\n\n };\n BLookupTitle.value = new BLookupTitle();\n return BLookupTitle;\n })();\n var BDestroy = (function () {\n function BDestroy() {\n\n };\n BDestroy.value = new BDestroy();\n return BDestroy;\n })();\n var BEdit = (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 })();\n var BEditField = (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 })();\n var BEditSubmit = (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 })();\n var BMarkRead = (function () {\n function BMarkRead() {\n\n };\n BMarkRead.value = new BMarkRead();\n return BMarkRead;\n })();\n var _markdown = Data_Symbol.SProxy.value;\n var _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 edit_bm: v1,\n bm: v.bm,\n deleteAsk: v.deleteAsk,\n edit: v.edit,\n loading: v.loading\n };\n };\n })(dictStrong);\n };\n var _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 edit: v1,\n bm: v.bm,\n deleteAsk: v.deleteAsk,\n edit_bm: v.edit_bm,\n loading: v.loading\n };\n };\n })(dictStrong);\n };\n var _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 bm: v1,\n deleteAsk: v.deleteAsk,\n edit: v.edit,\n edit_bm: v.edit_bm,\n loading: v.loading\n };\n };\n })(dictStrong);\n };\n var bmark = function (b$prime) {\n var tagid = function (bm) {\n return Data_Show.show(Data_Show.showInt)(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 };\n };\n var handleAction = function (v) {\n if (v instanceof BStar) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Lens_Internal_Forget.strongForget)))(function (bm) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.toggleStar(bm.bid)((function () {\n if (v.value0) {\n return App.Star.value;\n };\n return App.UnStar.value;\n })())))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Profunctor_Strong.strongFn))(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 selected: v.value0,\n time: v1.time,\n archiveUrl: v1.archiveUrl\n };\n }))(function () {\n return Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Profunctor_Strong.strongFn))(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 selected: v.value0,\n time: v1.time,\n archiveUrl: v1.archiveUrl\n };\n });\n });\n });\n });\n };\n if (v instanceof BDeleteAsk) {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $46 = {};\n for (var $47 in v1) {\n if ({}.hasOwnProperty.call(v1, $47)) {\n $46[$47] = v1[$47];\n };\n };\n $46.deleteAsk = v.value0;\n return $46;\n });\n };\n if (v instanceof BDestroy) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Lens_Internal_Forget.strongForget)))(function (bm) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.destroy(bm.bid))))(function () {\n return Halogen_Query_HalogenM.raise(BNotifyRemove.value);\n });\n });\n };\n if (v instanceof BMarkRead) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Lens_Internal_Forget.strongForget)))(function (bm) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.markRead(bm.bid))))(function () {\n return Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Profunctor_Strong.strongFn))(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: false,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl\n };\n });\n });\n });\n };\n if (v instanceof BEdit) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Lens_Internal_Forget.strongForget)))(function (bm) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Profunctor_Strong.strongFn))(bm))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_edit(Data_Profunctor_Strong.strongFn))(v.value0))(function () {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Control_Monad.whenM(Effect.monadEffect)(Control_Applicative.pure(Effect.applicativeEffect)(v.value0))(Globals.setFocus(tagid(bm))));\n });\n });\n });\n };\n if (v instanceof BEditField) {\n return Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Profunctor_Strong.strongFn))((function () {\n if (v.value0 instanceof Eurl) {\n return function (v1) {\n return {\n url: v.value0.value0,\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 };\n };\n };\n if (v.value0 instanceof Etitle) {\n return function (v1) {\n return {\n url: v1.url,\n title: v.value0.value0,\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 };\n };\n };\n if (v.value0 instanceof Edescription) {\n return function (v1) {\n return {\n url: v1.url,\n title: v1.title,\n description: v.value0.value0,\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 };\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 tags: v.value0.value0,\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 };\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 \"private\": v.value0.value0,\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 };\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 toread: v.value0.value0,\n bid: v1.bid,\n slug: v1.slug,\n selected: v1.selected,\n time: v1.time,\n archiveUrl: v1.archiveUrl\n };\n };\n };\n throw new Error(\"Failed pattern match at Component.BMark (line 234, column 17 - line 240, column 36): \" + [ v.value0.constructor.name ]);\n })());\n };\n if (v instanceof BLookupTitle) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $59 = {};\n for (var $60 in v1) {\n if ({}.hasOwnProperty.call(v1, $60)) {\n $59[$60] = v1[$60];\n };\n };\n $59.loading = true;\n return $59;\n }))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.gets(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n return v1.edit_bm;\n }))(function (edit_bm) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.lookupTitle(edit_bm)))(function (mtitle) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)((function () {\n if (mtitle instanceof Data_Maybe.Just) {\n return Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Profunctor_Strong.strongFn))(function (v1) {\n return {\n url: v1.url,\n title: mtitle.value0,\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 };\n });\n };\n if (mtitle instanceof Data_Maybe.Nothing) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n throw new Error(\"Failed pattern match at Component.BMark (line 247, column 5 - line 249, column 29): \" + [ mtitle.constructor.name ]);\n })())(function () {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $64 = {};\n for (var $65 in v1) {\n if ({}.hasOwnProperty.call(v1, $65)) {\n $64[$65] = v1[$65];\n };\n };\n $64.loading = false;\n return $64;\n });\n });\n });\n });\n });\n };\n if (v instanceof BEditSubmit) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Web_Event_Event.preventDefault(v.value0)))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_bm(Data_Lens_Internal_Forget.strongForget)))(function (edit_bm) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.editBookmark(edit_bm))))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_bm(Data_Profunctor_Strong.strongFn))(edit_bm))(function () {\n return Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_edit(Data_Profunctor_Strong.strongFn))(false);\n });\n });\n });\n });\n };\n throw new Error(\"Failed pattern match at Component.BMark (line 200, column 3 - line 200, column 84): \" + [ v.constructor.name ]);\n };\n var app = Globals[\"app'\"](Data_Unit.unit);\n var render = function (v) {\n var star = function (v1) {\n return Halogen_HTML_Elements.div([ Util.class_(\"star fl pointer\" + Data_Monoid.guard(Data_Monoid.monoidString)(v.bm.selected)(\" selected\")) ])([ Halogen_HTML_Elements.button([ Util.class_(\"moon-gray\"), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(new BStar(!v.bm.selected));\n }) ])([ Halogen_HTML_Core.text(\"\\u272d\") ]) ]);\n };\n var shtime = Data_String_CodePoints.take(16)(v.bm.time) + \"Z\";\n var linkToFilterTag = function (tag) {\n return Util.fromNullableStr(app.userR) + (\"/t:\" + tag);\n };\n var linkToFilterSingle = function (slug) {\n return Util.fromNullableStr(app.userR) + (\"/b:\" + slug);\n };\n var editField = function (f) {\n return function ($73) {\n return Data_Maybe.Just.create(BEditField.create(f($73)));\n };\n };\n var display_edit = function (v1) {\n return Halogen_HTML_Elements.div([ Util.class_(\"edit_bookmark_form pa2 pt0 bg-white\") ])([ Halogen_HTML_Elements.form([ Halogen_HTML_Events.onSubmit(function ($74) {\n return Data_Maybe.Just.create(BEditSubmit.create($74));\n }) ])([ Halogen_HTML_Elements.div_([ Halogen_HTML_Core.text(\"url\") ]), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputUrl.value), Util.class_(\"url w-100 mb2 pt1 f7 edit_form_input\"), Halogen_HTML_Properties.required(true), Halogen_HTML_Properties.name(\"url\"), Halogen_HTML_Properties.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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputText.value), Util.class_(\"title w-100 mb2 pt1 f7 edit_form_input\"), Halogen_HTML_Properties.name(\"title\"), Halogen_HTML_Properties.value(v.edit_bm.title), Halogen_HTML_Events.onValueChange(editField(Etitle.create)) ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.disabled(v.loading), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(BLookupTitle.value);\n }), Util.class_(\"ml1 pa1 mb2 dark-gray ba b--moon-gray bg-near-white pointer rdim f7 \" + Data_Monoid.guard(Data_Monoid.monoidString)(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 f7 edit_form_input\"), Halogen_HTML_Properties.name(\"description\"), Halogen_HTML_Properties.rows(5), Halogen_HTML_Properties.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)), Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputText.value), Util.class_(\"tags w-100 mb1 pt1 f7 edit_form_input\"), Halogen_HTML_Properties.name(\"tags\"), Halogen_HTML_Properties.autocomplete(false), Util.attr(\"autocapitalize\")(\"off\"), Halogen_HTML_Properties.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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputSubmit.value), Util.class_(\"mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"), Halogen_HTML_Properties.value(\"save\") ]), Halogen_HTML_Core.text(\" \"), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputReset.value), Util.class_(\"pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"), Halogen_HTML_Properties.value(\"cancel\"), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(new BEdit(false));\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\" + Data_Monoid.guard(Data_Monoid.monoidString)(v.bm.toread)(\" unread\")) ])([ Halogen_HTML_Core.text((function () {\n var $69 = Data_String_Common[\"null\"](v.bm.title);\n if ($69) {\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\" + Data_Monoid.guard(Data_Monoid.monoidString)(Data_Maybe.isJust(Data_Nullable.toMaybe(v.bm.archiveUrl)))(\" green\")), Halogen_HTML_Properties.target(\"_blank\"), Halogen_HTML_Properties.title(\"archive link\") ])([ (function () {\n var $70 = Data_Maybe.isJust(Data_Nullable.toMaybe(v.bm.archiveUrl));\n if ($70) {\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\") ])([ Halogen_HTML.slot()(new Data_Symbol.IsSymbol(function () {\n return \"markdown\";\n }))(Data_Ord.ordUnit)(_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 Data_Functor.map(Data_Functor.functorArray)(function (tag) {\n return Halogen_HTML_Elements.a([ Util.class_(\"link tag mr1\" + Data_Monoid.guard(Data_Monoid.monoidString)(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_Core.text(shtime) ]), Util.whenH(app.dat.isowner)(function (v2) {\n return Halogen_HTML_Elements.div([ Util.class_(\"edit_links di\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(new BDeleteAsk(true));\n }), Util.class_(\"delete light-silver hover-blue\" + Data_Monoid.guard(Data_Monoid.monoidString)(v.deleteAsk)(\" dn\")) ])([ Halogen_HTML_Core.text(\"delete\") ]), Halogen_HTML_Elements.span([ Util.class_(\"confirm red\" + Data_Monoid.guard(Data_Monoid.monoidString)(!v.deleteAsk)(\" dn\")) ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(new BDeleteAsk(false));\n }) ])([ Halogen_HTML_Core.text(\"cancel\\xa0/\\xa0\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(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\") ])(Data_Monoid.guard(Data_Monoid.monoidArray)(v.bm.toread)([ Halogen_HTML_Core.text(\"\\xa0\\xa0\"), Halogen_HTML_Elements.button([ Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(BMarkRead.value);\n }), Util.class_(\"mark_read\") ])([ Halogen_HTML_Core.text(\"mark as read\") ]) ]));\n }) ]);\n };\n return Halogen_HTML_Elements.div([ Halogen_HTML_Properties.id_(Data_Show.show(Data_Show.showInt)(v.bm.bid)), Util.class_(\"bookmark w-100 mw7 pa1 mb3\" + Data_Monoid.guard(Data_Monoid.monoidString)(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 handleAction: handleAction,\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 })\n });\n };\n exports[\"bmark\"] = bmark;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.BList\"] = $PS[\"Component.BList\"] || {};\n var exports = $PS[\"Component.BList\"];\n var Component_BMark = $PS[\"Component.BMark\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML = $PS[\"Halogen.HTML\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"]; \n var HandleBMessage = (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 })();\n var _bookmark = Data_Symbol.SProxy.value;\n var blist = function (st) {\n var render = function (bms) {\n return Halogen_HTML_Elements.div_(Data_Functor.map(Data_Functor.functorArray)(function (b) {\n return Halogen_HTML.slot()(new Data_Symbol.IsSymbol(function () {\n return \"bookmark\";\n }))(Data_Ord.ordInt)(_bookmark)(b.bid)(Component_BMark.bmark(b))(Data_Unit.unit)((function () {\n var $5 = HandleBMessage.create(b.bid);\n return function ($6) {\n return Data_Maybe.Just.create($5($6));\n };\n })());\n })(bms));\n };\n var handleAction = function (v) {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(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 handleAction: handleAction,\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 })\n });\n };\n exports[\"blist\"] = blist;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.NList\"] = $PS[\"Component.NList\"] || {};\n var exports = $PS[\"Component.NList\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_String_CodePoints = $PS[\"Data.String.CodePoints\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Globals = $PS[\"Globals\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Util = $PS[\"Util\"];\n var nlist = function (st$prime) {\n var toTextarea = function (input) {\n return Data_Array.drop(1)(Data_Foldable.foldMap(Data_Foldable.foldableArray)(Data_Monoid.monoidArray)(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 Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n var app = Globals[\"app'\"](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_(Data_Show.show(Data_Show.showInt)(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 $6 = Data_String_Common[\"null\"](note.title);\n if ($6) {\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_(Data_Functor.map(Data_Functor.functorArray)(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 handleAction: handleAction,\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 })\n });\n };\n exports[\"nlist\"] = nlist;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.NNote\"] = $PS[\"Component.NNote\"] || {};\n var exports = $PS[\"Component.NNote\"];\n var App = $PS[\"App\"];\n var Component_Markdown = $PS[\"Component.Markdown\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var DOM_HTML_Indexed_ButtonType = $PS[\"DOM.HTML.Indexed.ButtonType\"];\n var DOM_HTML_Indexed_InputType = $PS[\"DOM.HTML.Indexed.InputType\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Lens_Getter = $PS[\"Data.Lens.Getter\"];\n var Data_Lens_Internal_Forget = $PS[\"Data.Lens.Internal.Forget\"];\n var Data_Lens_Lens = $PS[\"Data.Lens.Lens\"];\n var Data_Lens_Setter = $PS[\"Data.Lens.Setter\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Profunctor_Strong = $PS[\"Data.Profunctor.Strong\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Symbol = $PS[\"Data.Symbol\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Data_Void = $PS[\"Data.Void\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Globals = $PS[\"Globals\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML = $PS[\"Halogen.HTML\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Events = $PS[\"Halogen.HTML.Events\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Util = $PS[\"Util\"];\n var Web_Event_Event = $PS[\"Web.Event.Event\"];\n var Web_HTML_Location = $PS[\"Web.HTML.Location\"]; \n var Etitle = (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 })();\n var Etext = (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 })();\n var EisMarkdown = (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 })();\n var Eshared = (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 })();\n var NNop = (function () {\n function NNop() {\n\n };\n NNop.value = new NNop();\n return NNop;\n })();\n var NEditField = (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 })();\n var NEditSubmit = (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 })();\n var NEdit = (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 })();\n var NDeleteAsk = (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 })();\n var NDestroy = (function () {\n function NDestroy() {\n\n };\n NDestroy.value = new NDestroy();\n return NDestroy;\n })();\n var _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 note: v1,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n edit: v.edit,\n edit_note: v.edit_note\n };\n };\n })(dictStrong);\n };\n var _markdown = Data_Symbol.SProxy.value;\n var _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 edit_note: v1,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n edit: v.edit,\n note: v.note\n };\n };\n })(dictStrong);\n };\n var _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 edit: v1,\n deleteAsk: v.deleteAsk,\n destroyed: v.destroyed,\n edit_note: v.edit_note,\n note: v.note\n };\n };\n })(dictStrong);\n };\n var nnote = function (st$prime) {\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 };\n };\n var app = Globals[\"app'\"](Data_Unit.unit);\n var handleAction = function (v) {\n if (v instanceof NNop) {\n return Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n if (v instanceof NEditField) {\n return Data_Lens_Setter.modifying(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_note(Data_Profunctor_Strong.strongFn))((function () {\n if (v.value0 instanceof Etitle) {\n return function (v1) {\n return {\n id: v1.id,\n slug: v1.slug,\n title: v.value0.value0,\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 };\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 text: v.value0.value0,\n length: v1.length,\n isMarkdown: v1.isMarkdown,\n shared: v1.shared,\n created: v1.created,\n updated: v1.updated\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 isMarkdown: v.value0.value0,\n shared: v1.shared,\n created: v1.created,\n updated: v1.updated\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 shared: v.value0.value0,\n created: v1.created,\n updated: v1.updated\n };\n };\n };\n throw new Error(\"Failed pattern match at Component.NNote (line 177, column 19 - line 181, column 36): \" + [ v.value0.constructor.name ]);\n })());\n };\n if (v instanceof NDeleteAsk) {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $37 = {};\n for (var $38 in v1) {\n if ({}.hasOwnProperty.call(v1, $38)) {\n $37[$38] = v1[$38];\n };\n };\n $37.deleteAsk = v.value0;\n return $37;\n });\n };\n if (v instanceof NDestroy) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_note(Data_Lens_Internal_Forget.strongForget)))(function (note) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.destroyNote(note.id))))(function () {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n var $41 = {};\n for (var $42 in v1) {\n if ({}.hasOwnProperty.call(v1, $42)) {\n $41[$42] = v1[$42];\n };\n };\n $41.destroyed = true;\n return $41;\n });\n });\n });\n };\n if (v instanceof NEdit) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_note(Data_Lens_Internal_Forget.strongForget)))(function (note) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_note(Data_Profunctor_Strong.strongFn))(note))(function () {\n return Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_edit(Data_Profunctor_Strong.strongFn))(v.value0);\n });\n });\n };\n if (v instanceof NEditSubmit) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Web_Event_Event.preventDefault(v.value0)))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Getter.use(Halogen_Query_HalogenM.monadStateHalogenM)(_edit_note(Data_Lens_Internal_Forget.strongForget)))(function (edit_note) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.editNote(edit_note)))(function (res$prime) {\n return Data_Foldable.for_(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Either.foldableEither)(res$prime)(function (res) {\n var $45 = edit_note.id === 0;\n if ($45) {\n return Effect_Class.liftEffect(Halogen_Query_HalogenM.monadEffectHalogenM(Effect_Aff.monadEffectAff))(Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Location.setHref(Util.fromNullableStr(app.noteR)))(Util[\"_loc\"]));\n };\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_note(Data_Profunctor_Strong.strongFn))(edit_note))(function () {\n return Data_Lens_Setter.assign(Halogen_Query_HalogenM.monadStateHalogenM)(_edit(Data_Profunctor_Strong.strongFn))(false);\n });\n });\n });\n });\n });\n };\n throw new Error(\"Failed pattern match at Component.NNote (line 172, column 3 - line 172, column 77): \" + [ v.constructor.name ]);\n };\n var render = function (v) {\n var toTextarea = function (input) {\n return Data_Array.drop(1)(Data_Foldable.foldMap(Data_Foldable.foldableArray)(Data_Monoid.monoidArray)(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_(Data_Show.show(Data_Show.showInt)(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 $48 = Data_String_Common[\"null\"](v.note.title);\n if ($48) {\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\") ])([ Halogen_HTML.slot()(new Data_Symbol.IsSymbol(function () {\n return \"markdown\";\n }))(Data_Ord.ordUnit)(_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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(new NDeleteAsk(true));\n }), Util.class_(\"delete light-silver hover-blue\" + Data_Monoid.guard(Data_Monoid.monoidString)(v.deleteAsk)(\" dn\")) ])([ Halogen_HTML_Core.text(\"delete\") ]), Halogen_HTML_Elements.span([ Util.class_(\"confirm red\" + Data_Monoid.guard(Data_Monoid.monoidString)(!v.deleteAsk)(\" dn\")) ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(new NDeleteAsk(false));\n }) ])([ Halogen_HTML_Core.text(\"cancel\\xa0/\\xa0\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Halogen_HTML_Events.onClick(function (v3) {\n return new Data_Maybe.Just(NDestroy.value);\n }), Util.class_(\"red\") ])([ Halogen_HTML_Core.text(\"destroy\") ]) ]) ]) ]);\n }) ]);\n };\n var editField = function (f) {\n return function ($53) {\n return Data_Maybe.Just.create(NEditField.create(f($53)));\n };\n };\n var renderNote_edit = function (v1) {\n return Halogen_HTML_Elements.form([ Halogen_HTML_Events.onSubmit(function ($54) {\n return Data_Maybe.Just.create(NEditSubmit.create($54));\n }) ])([ Halogen_HTML_Elements.p([ Util.class_(\"mt2 mb1\") ])([ Halogen_HTML_Core.text(\"title:\") ]), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputText.value), Util.class_(\"title w-100 mb1 pt1 f7 edit_form_input\"), Halogen_HTML_Properties.name(\"title\"), Halogen_HTML_Properties.value(v.edit_note.title), Halogen_HTML_Events.onValueChange(editField(Etitle.create)) ]), Halogen_HTML_Elements.br_, Halogen_HTML_Elements.p([ Util.class_(\"mt2 mb1\") ])([ Halogen_HTML_Core.text(\"description:\") ]), Halogen_HTML_Elements.textarea([ Util.class_(\"description w-100 mb1 pt1 f7 edit_form_input\"), Halogen_HTML_Properties.name(\"text\"), Halogen_HTML_Properties.rows(30), Halogen_HTML_Properties.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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(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([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputSubmit.value), Util.class_(\"mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"), Halogen_HTML_Properties.value(\"save\") ]), Halogen_HTML_Core.text(\" \"), Halogen_HTML_Elements.input([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropInputType)(DOM_HTML_Indexed_InputType.InputReset.value), Util.class_(\"pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"), Halogen_HTML_Properties.value(\"cancel\"), Halogen_HTML_Events.onClick(function (v2) {\n return new Data_Maybe.Just(new NEdit(false));\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 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 handleAction: handleAction,\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 })\n });\n };\n exports[\"nnote\"] = nnote;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.log = Math.log;\n})(PS[\"Math\"] = PS[\"Math\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Math\"] = $PS[\"Math\"] || {};\n var exports = $PS[\"Math\"];\n var $foreign = $PS[\"Math\"];\n exports[\"log\"] = $foreign.log;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Component.TagCloud\"] = $PS[\"Component.TagCloud\"] || {};\n var exports = $PS[\"Component.TagCloud\"];\n var App = $PS[\"App\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Monad_State_Class = $PS[\"Control.Monad.State.Class\"];\n var DOM_HTML_Indexed_ButtonType = $PS[\"DOM.HTML.Indexed.ButtonType\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Int = $PS[\"Data.Int\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Monoid = $PS[\"Data.Monoid\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Show = $PS[\"Data.Show\"];\n var Data_String_Common = $PS[\"Data.String.Common\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unfoldable = $PS[\"Data.Unfoldable\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect_Aff_Class = $PS[\"Effect.Aff.Class\"];\n var Foreign_Object = $PS[\"Foreign.Object\"];\n var Globals = $PS[\"Globals\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_HTML_Elements = $PS[\"Halogen.HTML.Elements\"];\n var Halogen_HTML_Events = $PS[\"Halogen.HTML.Events\"];\n var Halogen_HTML_Properties = $PS[\"Halogen.HTML.Properties\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var $$Math = $PS[\"Math\"];\n var Model = $PS[\"Model\"];\n var Util = $PS[\"Util\"]; \n var TInitialize = (function () {\n function TInitialize() {\n\n };\n TInitialize.value = new TInitialize();\n return TInitialize;\n })();\n var TExpanded = (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 })();\n var TChangeMode = (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 })();\n var 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 (f(v - n) / f(m - 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 Control_Applicative.pure(Halogen_Query_HalogenM.applicativeHalogenM)(Data_Unit.unit);\n };\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.getTagCloud(Model.tagCloudModeFromF(mode$prime))))(function (tagcloud) {\n return Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (s) {\n var $21 = {};\n for (var $22 in s) {\n if ({}.hasOwnProperty.call(s, $22)) {\n $21[$22] = s[$22];\n };\n };\n $21.mode = mode$prime;\n $21.tagcloud = Data_Maybe.fromMaybe(Foreign_Object.empty)(tagcloud);\n return $21;\n });\n });\n };\n var handleAction = function (v) {\n if (v instanceof TInitialize) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.gets(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n return v1.mode;\n }))(function (mode) {\n return fetchTagCloud(mode);\n });\n };\n if (v instanceof TExpanded) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.modify_(Halogen_Query_HalogenM.monadStateHalogenM)(function (s) {\n var $25 = {};\n for (var $26 in s) {\n if ({}.hasOwnProperty.call(s, $26)) {\n $25[$26] = s[$26];\n };\n };\n $25.mode = Model.setExpanded(s.mode)(v.value0);\n return $25;\n }))(function () {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.gets(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n return v1.mode;\n }))(function (mode) {\n return Data_Functor[\"void\"](Halogen_Query_HalogenM.functorHalogenM)(Effect_Aff_Class.liftAff(Halogen_Query_HalogenM.monadAffHalogenM(Effect_Aff_Class.monadAffAff))(App.updateTagCloudMode(Model.tagCloudModeFromF(mode))));\n });\n });\n };\n if (v instanceof TChangeMode) {\n return Control_Bind.bind(Halogen_Query_HalogenM.bindHalogenM)(Control_Monad_State_Class.gets(Halogen_Query_HalogenM.monadStateHalogenM)(function (v1) {\n return v1.mode;\n }))(function (mode) {\n var $29 = Data_Eq.eq(Model.eqTagCloudModeF)(mode)(v.value0);\n if ($29) {\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 142, column 3 - line 142, column 69): \" + [ v.constructor.name ]);\n };\n var app = Globals[\"app'\"](Data_Unit.unit);\n var linkToFilterTag = function (tag) {\n return Util.fromNullableStr(app.userR) + (\"/t:\" + tag);\n };\n var toSizedTag = function (n) {\n return function (m) {\n return function (k) {\n return function (v) {\n var opacity = rescale(function ($37) {\n return $$Math.log((function (v1) {\n return 1.0 + v1;\n })($37));\n })(Data_Int.toNumber(v))(Data_Int.toNumber(n))(Data_Int.toNumber(m))(0.6)(1.0);\n var fontsize = rescale(Control_Category.identity(Control_Category.categoryFn))(Data_Int.toNumber(v))(Data_Int.toNumber(n))(Data_Int.toNumber(m))(100.0)(150.0);\n return Halogen_HTML_Elements.a([ Halogen_HTML_Properties.href(linkToFilterTag(k)), Util.class_(\"link tag mr1\"), Halogen_HTML_Properties.attr(\"style\")(\"font-size:\" + (Data_Show.show(Data_Show.showNumber)(fontsize) + (\"%\" + (\";opacity:\" + Data_Show.show(Data_Show.showNumber)(opacity))))) ])([ Halogen_HTML_Core.text(k) ]);\n };\n };\n };\n };\n var toArray = function (n) {\n return function (m) {\n var $38 = Data_Functor.map(Data_Functor.functorArray)(Data_Tuple.uncurry(toSizedTag(n)(m)));\n var $39 = Data_Array.sortBy(Data_Ord.comparing(Data_Ord.ordString)(function ($42) {\n return Data_String_Common.toLower(Data_Tuple.fst($42));\n }));\n var $40 = Foreign_Object.toUnfoldable(Data_Unfoldable.unfoldableArray);\n return function ($41) {\n return $38($39($40($41)));\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 return Halogen_HTML_Elements.div([ Util.class_(\"tag_cloud mv3\") ])([ Halogen_HTML_Elements.div([ Util.class_(\"tag_cloud_header mb2\") ])([ Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Util.class_(\"pa1 f7 link hover-blue mr1\" + Data_Monoid.guard(Data_Monoid.monoidString)(Data_Eq.eq(Model.eqTagCloudModeF)(v.mode)(modetop))(\" b\")), Halogen_HTML_Properties.title(\"show a cloud of your most-used tags\"), Halogen_HTML_Events.onClick(function (v1) {\n return new Data_Maybe.Just(new TChangeMode(modetop));\n }) ])([ Halogen_HTML_Core.text(\"Top Tags\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Util.class_(\"pa1 f7 link hover-blue ml2 \" + Data_Monoid.guard(Data_Monoid.monoidString)(Data_Eq.eq(Model.eqTagCloudModeF)(v.mode)(modelb2))(\" b\")), Halogen_HTML_Properties.title(\"show tags with at least 2 bookmarks\"), Halogen_HTML_Events.onClick(function (v1) {\n return new Data_Maybe.Just(new TChangeMode(modelb2));\n }) ])([ Halogen_HTML_Core.text(\"2\") ]), Halogen_HTML_Core.text(\"\\u2027\"), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Util.class_(\"pa1 f7 link hover-blue\" + Data_Monoid.guard(Data_Monoid.monoidString)(Data_Eq.eq(Model.eqTagCloudModeF)(v.mode)(modelb5))(\" b\")), Halogen_HTML_Properties.title(\"show tags with at least 5 bookmarks\"), Halogen_HTML_Events.onClick(function (v1) {\n return new Data_Maybe.Just(new TChangeMode(modelb5));\n }) ])([ Halogen_HTML_Core.text(\"5\") ]), Halogen_HTML_Core.text(\"\\u2027\"), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Util.class_(\"pa1 f7 link hover-blue\" + Data_Monoid.guard(Data_Monoid.monoidString)(Data_Eq.eq(Model.eqTagCloudModeF)(v.mode)(modelb10))(\" b\")), Halogen_HTML_Properties.title(\"show tags with at least 10 bookmarks\"), Halogen_HTML_Events.onClick(function (v1) {\n return new Data_Maybe.Just(new TChangeMode(modelb10));\n }) ])([ Halogen_HTML_Core.text(\"10\") ]), Halogen_HTML_Core.text(\"\\u2027\"), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Util.class_(\"pa1 f7 link hover-blue\" + Data_Monoid.guard(Data_Monoid.monoidString)(Data_Eq.eq(Model.eqTagCloudModeF)(v.mode)(modelb20))(\" b\")), Halogen_HTML_Properties.title(\"show tags with at least 20 bookmarks\"), Halogen_HTML_Events.onClick(function (v1) {\n return new Data_Maybe.Just(new TChangeMode(modelb20));\n }) ])([ Halogen_HTML_Core.text(\"20\") ]), Halogen_HTML_Elements.button([ Halogen_HTML_Properties.type_(Halogen_HTML_Core.isPropButtonType)(DOM_HTML_Indexed_ButtonType.ButtonButton.value), Util.class_(\"pa1 ml2 f7 link silver hover-blue \"), Halogen_HTML_Events.onClick(function (v1) {\n return new Data_Maybe.Just(new TExpanded(!Model.isExpanded(v.mode)));\n }) ])([ Halogen_HTML_Core.text((function () {\n var $33 = Model.isExpanded(v.mode);\n if ($33) {\n return \"hide\";\n };\n return \"show\";\n })()) ]) ]), Util.whenH(Model.isExpanded(v.mode))(function (v1) {\n var n = Data_Maybe.fromMaybe(1)(Data_Foldable.minimum(Data_Ord.ordInt)(Data_Foldable.foldableArray)(Foreign_Object.values(v.tagcloud)));\n var m = Data_Maybe.fromMaybe(1)(Data_Foldable.maximum(Data_Ord.ordInt)(Data_Foldable.foldableArray)(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 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 handleAction: handleAction,\n handleQuery: Halogen_Component.defaultEval.handleQuery,\n receive: Halogen_Component.defaultEval.receive,\n initialize: new Data_Maybe.Just(TInitialize.value),\n finalize: Halogen_Component.defaultEval.finalize\n })\n });\n };\n exports[\"tagcloudcomponent\"] = tagcloudcomponent;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Applicative.Free\"] = $PS[\"Control.Applicative.Free\"] || {};\n var exports = $PS[\"Control.Applicative.Free\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_List_NonEmpty = $PS[\"Data.List.NonEmpty\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_NonEmpty = $PS[\"Data.NonEmpty\"];\n var Data_Tuple = $PS[\"Data.Tuple\"]; \n var Pure = (function () {\n function Pure(value0) {\n this.value0 = value0;\n };\n Pure.create = function (value0) {\n return new Pure(value0);\n };\n return Pure;\n })();\n var Lift = (function () {\n function Lift(value0) {\n this.value0 = value0;\n };\n Lift.create = function (value0) {\n return new Lift(value0);\n };\n return Lift;\n })();\n var Ap = (function () {\n function Ap(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Ap.create = function (value0) {\n return function (value1) {\n return new Ap(value0, value1);\n };\n };\n return Ap;\n })();\n var mkAp = function (fba) {\n return function (fb) {\n return new Ap(fba, fb);\n };\n };\n var liftFreeAp = Lift.create;\n var goLeft = function ($copy_dictApplicative) {\n return function ($copy_fStack) {\n return function ($copy_valStack) {\n return function ($copy_nat) {\n return function ($copy_func) {\n return function ($copy_count) {\n var $tco_var_dictApplicative = $copy_dictApplicative;\n var $tco_var_fStack = $copy_fStack;\n var $tco_var_valStack = $copy_valStack;\n var $tco_var_nat = $copy_nat;\n var $tco_var_func = $copy_func;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictApplicative, fStack, valStack, nat, func, count) {\n if (func instanceof Pure) {\n $tco_done = true;\n return new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: Control_Applicative.pure(dictApplicative)(func.value0),\n count: count\n }, fStack), valStack);\n };\n if (func instanceof Lift) {\n $tco_done = true;\n return new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: nat(func.value0),\n count: count\n }, fStack), valStack);\n };\n if (func instanceof Ap) {\n $tco_var_dictApplicative = dictApplicative;\n $tco_var_fStack = fStack;\n $tco_var_valStack = Data_List_NonEmpty.cons(func.value1)(valStack);\n $tco_var_nat = nat;\n $tco_var_func = func.value0;\n $copy_count = count + 1 | 0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 102, column 41 - line 105, column 81): \" + [ func.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictApplicative, $tco_var_fStack, $tco_var_valStack, $tco_var_nat, $tco_var_func, $copy_count);\n };\n return $tco_result;\n };\n };\n };\n };\n };\n };\n var goApply = function ($copy_dictApplicative) {\n return function ($copy_fStack) {\n return function ($copy_vals) {\n return function ($copy_gVal) {\n var $tco_var_dictApplicative = $copy_dictApplicative;\n var $tco_var_fStack = $copy_fStack;\n var $tco_var_vals = $copy_vals;\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(dictApplicative, fStack, vals, gVal) {\n if (fStack instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gVal);\n };\n if (fStack instanceof Data_List_Types.Cons) {\n var gRes = Control_Apply.apply(dictApplicative.Apply0())(fStack.value0.func)(gVal);\n var $14 = fStack.value0.count === 1;\n if ($14) {\n if (fStack.value1 instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gRes);\n };\n $tco_var_dictApplicative = dictApplicative;\n $tco_var_fStack = fStack.value1;\n $tco_var_vals = vals;\n $copy_gVal = gRes;\n return;\n };\n if (vals instanceof Data_List_Types.Nil) {\n $tco_done = true;\n return new Data_Either.Left(gRes);\n };\n if (vals instanceof Data_List_Types.Cons) {\n $tco_done = true;\n return Data_Either.Right.create(new Data_Tuple.Tuple(new Data_List_Types.Cons({\n func: gRes,\n count: fStack.value0.count - 1 | 0\n }, fStack.value1), new Data_NonEmpty.NonEmpty(vals.value0, vals.value1)));\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 83, column 11 - line 88, column 50): \" + [ vals.constructor.name ]);\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 72, column 3 - line 88, column 50): \" + [ fStack.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($tco_var_dictApplicative, $tco_var_fStack, $tco_var_vals, $copy_gVal);\n };\n return $tco_result;\n };\n };\n };\n };\n var functorFreeAp = new Data_Functor.Functor(function (f) {\n return function (x) {\n return mkAp(new Pure(f))(x);\n };\n });\n var foldFreeAp = function (dictApplicative) {\n return function (nat) {\n return function (z) {\n var go = function ($copy_v) {\n var $tco_done = false;\n var $tco_result;\n function $tco_loop(v) {\n if (v.value1.value0 instanceof Pure) {\n var v1 = goApply(dictApplicative)(v.value0)(v.value1.value1)(Control_Applicative.pure(dictApplicative)(v.value1.value0.value0));\n if (v1 instanceof Data_Either.Left) {\n $tco_done = true;\n return v1.value0;\n };\n if (v1 instanceof Data_Either.Right) {\n $copy_v = v1.value0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 54, column 17 - line 56, column 24): \" + [ v1.constructor.name ]);\n };\n if (v.value1.value0 instanceof Lift) {\n var v1 = goApply(dictApplicative)(v.value0)(v.value1.value1)(nat(v.value1.value0.value0));\n if (v1 instanceof Data_Either.Left) {\n $tco_done = true;\n return v1.value0;\n };\n if (v1 instanceof Data_Either.Right) {\n $copy_v = v1.value0;\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 57, column 17 - line 59, column 24): \" + [ v1.constructor.name ]);\n };\n if (v.value1.value0 instanceof Ap) {\n var nextVals = new Data_NonEmpty.NonEmpty(v.value1.value0.value1, v.value1.value1);\n $copy_v = goLeft(dictApplicative)(v.value0)(nextVals)(nat)(v.value1.value0.value0)(1);\n return;\n };\n throw new Error(\"Failed pattern match at Control.Applicative.Free (line 53, column 5 - line 62, column 47): \" + [ v.value1.value0.constructor.name ]);\n };\n while (!$tco_done) {\n $tco_result = $tco_loop($copy_v);\n };\n return $tco_result;\n };\n return go(new Data_Tuple.Tuple(Data_List_Types.Nil.value, Data_List_NonEmpty.singleton(z)));\n };\n };\n };\n var retractFreeAp = function (dictApplicative) {\n return foldFreeAp(dictApplicative)(Control_Category.identity(Control_Category.categoryFn));\n };\n var applyFreeAp = new Control_Apply.Apply(function () {\n return functorFreeAp;\n }, function (fba) {\n return function (fb) {\n return mkAp(fba)(fb);\n };\n });\n var applicativeFreeAp = new Control_Applicative.Applicative(function () {\n return applyFreeAp;\n }, Pure.create);\n var hoistFreeAp = function (f) {\n return foldFreeAp(applicativeFreeAp)(function ($37) {\n return liftFreeAp(f($37));\n });\n };\n exports[\"retractFreeAp\"] = retractFreeAp;\n exports[\"hoistFreeAp\"] = hoistFreeAp;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Trans.Class\"] = $PS[\"Control.Monad.Trans.Class\"] || {};\n var exports = $PS[\"Control.Monad.Trans.Class\"];\n var MonadTrans = function (lift) {\n this.lift = lift;\n };\n var lift = function (dict) {\n return dict.lift;\n };\n exports[\"lift\"] = lift;\n exports[\"MonadTrans\"] = MonadTrans;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Free.Trans\"] = $PS[\"Control.Monad.Free.Trans\"] || {};\n var exports = $PS[\"Control.Monad.Free.Trans\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Monad_Trans_Class = $PS[\"Control.Monad.Trans.Class\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Exists = $PS[\"Data.Exists\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Unit = $PS[\"Data.Unit\"]; \n var Bound = (function () {\n function Bound(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Bound.create = function (value0) {\n return function (value1) {\n return new Bound(value0, value1);\n };\n };\n return Bound;\n })();\n var FreeT = (function () {\n function FreeT(value0) {\n this.value0 = value0;\n };\n FreeT.create = function (value0) {\n return new FreeT(value0);\n };\n return FreeT;\n })();\n var Bind = (function () {\n function Bind(value0) {\n this.value0 = value0;\n };\n Bind.create = function (value0) {\n return new Bind(value0);\n };\n return Bind;\n })();\n var monadTransFreeT = function (dictFunctor) {\n return new Control_Monad_Trans_Class.MonadTrans(function (dictMonad) {\n return function (ma) {\n return new FreeT(function (v) {\n return Data_Functor.map(((dictMonad.Bind1()).Apply0()).Functor0())(Data_Either.Left.create)(ma);\n });\n };\n });\n };\n var freeT = FreeT.create;\n var bound = function (m) {\n return function (f) {\n return new Bind(Data_Exists.mkExists(new Bound(m, f)));\n };\n };\n var functorFreeT = function (dictFunctor) {\n return function (dictFunctor1) {\n return new Data_Functor.Functor(function (f) {\n return function (v) {\n if (v instanceof FreeT) {\n return new FreeT(function (v1) {\n return Data_Functor.map(dictFunctor1)(Data_Bifunctor.bimap(Data_Either.bifunctorEither)(f)(Data_Functor.map(dictFunctor)(Data_Functor.map(functorFreeT(dictFunctor)(dictFunctor1))(f))))(v.value0(Data_Unit.unit));\n });\n };\n if (v instanceof Bind) {\n return Data_Exists.runExists(function (v1) {\n return bound(v1.value0)((function () {\n var $123 = Data_Functor.map(functorFreeT(dictFunctor)(dictFunctor1))(f);\n return function ($124) {\n return $123(v1.value1($124));\n };\n })());\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free.Trans (line 59, column 1 - line 61, column 71): \" + [ f.constructor.name, v.constructor.name ]);\n };\n });\n };\n };\n var monadFreeT = function (dictFunctor) {\n return function (dictMonad) {\n return new Control_Monad.Monad(function () {\n return applicativeFreeT(dictFunctor)(dictMonad);\n }, function () {\n return bindFreeT(dictFunctor)(dictMonad);\n });\n };\n };\n var bindFreeT = function (dictFunctor) {\n return function (dictMonad) {\n return new Control_Bind.Bind(function () {\n return applyFreeT(dictFunctor)(dictMonad);\n }, function (v) {\n return function (f) {\n if (v instanceof Bind) {\n return Data_Exists.runExists(function (v1) {\n return bound(v1.value0)(function (x) {\n return bound(function (v2) {\n return v1.value1(x);\n })(f);\n });\n })(v.value0);\n };\n return bound(function (v1) {\n return v;\n })(f);\n };\n });\n };\n };\n var applyFreeT = function (dictFunctor) {\n return function (dictMonad) {\n return new Control_Apply.Apply(function () {\n return functorFreeT(dictFunctor)(((dictMonad.Bind1()).Apply0()).Functor0());\n }, Control_Monad.ap(monadFreeT(dictFunctor)(dictMonad)));\n };\n };\n var applicativeFreeT = function (dictFunctor) {\n return function (dictMonad) {\n return new Control_Applicative.Applicative(function () {\n return applyFreeT(dictFunctor)(dictMonad);\n }, function (a) {\n return new FreeT(function (v) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Either.Left(a));\n });\n });\n };\n };\n var liftFreeT = function (dictFunctor) {\n return function (dictMonad) {\n return function (fa) {\n return new FreeT(function (v) {\n return Control_Applicative.pure(dictMonad.Applicative0())(new Data_Either.Right(Data_Functor.map(dictFunctor)(Control_Applicative.pure(applicativeFreeT(dictFunctor)(dictMonad)))(fa)));\n });\n };\n };\n };\n var resume = function (dictFunctor) {\n return function (dictMonadRec) {\n var go = function (v) {\n if (v instanceof FreeT) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_Rec_Class.Done.create)(v.value0(Data_Unit.unit));\n };\n if (v instanceof Bind) {\n return Data_Exists.runExists(function (v1) {\n var v2 = v1.value0(Data_Unit.unit);\n if (v2 instanceof FreeT) {\n return Control_Bind.bind((dictMonadRec.Monad0()).Bind1())(v2.value0(Data_Unit.unit))(function (v3) {\n if (v3 instanceof Data_Either.Left) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(new Control_Monad_Rec_Class.Loop(v1.value1(v3.value0)));\n };\n if (v3 instanceof Data_Either.Right) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(new Control_Monad_Rec_Class.Done(new Data_Either.Right(Data_Functor.map(dictFunctor)(function (h) {\n return Control_Bind.bind(bindFreeT(dictFunctor)(dictMonadRec.Monad0()))(h)(v1.value1);\n })(v3.value0))));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free.Trans (line 54, column 20 - line 56, column 67): \" + [ v3.constructor.name ]);\n });\n };\n if (v2 instanceof Bind) {\n return Data_Exists.runExists(function (v3) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(new Control_Monad_Rec_Class.Loop(Control_Bind.bind(bindFreeT(dictFunctor)(dictMonadRec.Monad0()))(v3.value0(Data_Unit.unit))(function (z) {\n return Control_Bind.bind(bindFreeT(dictFunctor)(dictMonadRec.Monad0()))(v3.value1(z))(v1.value1);\n })));\n })(v2.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free.Trans (line 52, column 5 - line 57, column 98): \" + [ v2.constructor.name ]);\n })(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free.Trans (line 49, column 3 - line 49, column 75): \" + [ v.constructor.name ]);\n };\n return Control_Monad_Rec_Class.tailRecM(dictMonadRec)(go);\n };\n };\n var runFreeT = function (dictFunctor) {\n return function (dictMonadRec) {\n return function (interp) {\n var go = function (v) {\n if (v instanceof Data_Either.Left) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(new Control_Monad_Rec_Class.Done(v.value0));\n };\n if (v instanceof Data_Either.Right) {\n return Data_Functor.map((((dictMonadRec.Monad0()).Bind1()).Apply0()).Functor0())(Control_Monad_Rec_Class.Loop.create)(interp(v.value0));\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free.Trans (line 141, column 3 - line 141, column 63): \" + [ v.constructor.name ]);\n };\n return Control_Monad_Rec_Class.tailRecM(dictMonadRec)(Control_Bind.composeKleisliFlipped((dictMonadRec.Monad0()).Bind1())(go)(resume(dictFunctor)(dictMonadRec)));\n };\n };\n };\n var monadRecFreeT = function (dictFunctor) {\n return function (dictMonad) {\n return new Control_Monad_Rec_Class.MonadRec(function () {\n return monadFreeT(dictFunctor)(dictMonad);\n }, function (f) {\n var go = function (s) {\n return Control_Bind.bind(bindFreeT(dictFunctor)(dictMonad))(f(s))(function (v) {\n if (v instanceof Control_Monad_Rec_Class.Loop) {\n return go(v.value0);\n };\n if (v instanceof Control_Monad_Rec_Class.Done) {\n return Control_Applicative.pure(applicativeFreeT(dictFunctor)(dictMonad))(v.value0);\n };\n throw new Error(\"Failed pattern match at Control.Monad.Free.Trans (line 82, column 15 - line 84, column 25): \" + [ v.constructor.name ]);\n });\n };\n return go;\n });\n };\n };\n exports[\"freeT\"] = freeT;\n exports[\"liftFreeT\"] = liftFreeT;\n exports[\"resume\"] = resume;\n exports[\"runFreeT\"] = runFreeT;\n exports[\"functorFreeT\"] = functorFreeT;\n exports[\"applicativeFreeT\"] = applicativeFreeT;\n exports[\"bindFreeT\"] = bindFreeT;\n exports[\"monadTransFreeT\"] = monadTransFreeT;\n exports[\"monadRecFreeT\"] = monadRecFreeT;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Coroutine\"] = $PS[\"Control.Coroutine\"] || {};\n var exports = $PS[\"Control.Coroutine\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Apply = $PS[\"Control.Apply\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Monad_Except_Trans = $PS[\"Control.Monad.Except.Trans\"];\n var Control_Monad_Free_Trans = $PS[\"Control.Monad.Free.Trans\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Monad_Trans_Class = $PS[\"Control.Monad.Trans.Class\"];\n var Control_Parallel_Class = $PS[\"Control.Parallel.Class\"];\n var Data_Bifunctor = $PS[\"Data.Bifunctor\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Identity = $PS[\"Data.Identity\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Profunctor = $PS[\"Data.Profunctor\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Emit = (function () {\n function Emit(value0, value1) {\n this.value0 = value0;\n this.value1 = value1;\n };\n Emit.create = function (value0) {\n return function (value1) {\n return new Emit(value0, value1);\n };\n };\n return Emit;\n })();\n var runProcess = function (dictMonadRec) {\n return Control_Monad_Free_Trans.runFreeT(Data_Identity.functorIdentity)(dictMonadRec)((function () {\n var $176 = Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0());\n var $177 = Data_Newtype.unwrap(Data_Identity.newtypeIdentity);\n return function ($178) {\n return $176($177($178));\n };\n })());\n };\n var profunctorAwait = new Data_Profunctor.Profunctor(function (f) {\n return function (g) {\n return function (v) {\n return Data_Profunctor.dimap(Data_Profunctor.profunctorFn)(f)(g)(v);\n };\n };\n });\n var loop = function (dictFunctor) {\n return function (dictMonad) {\n return function (me) {\n return Control_Monad_Rec_Class.tailRecM(Control_Monad_Free_Trans.monadRecFreeT(dictFunctor)(dictMonad))(function (v) {\n return Data_Functor.map(Control_Monad_Free_Trans.functorFreeT(dictFunctor)(((dictMonad.Bind1()).Apply0()).Functor0()))(Data_Maybe.maybe(new Control_Monad_Rec_Class.Loop(Data_Unit.unit))(Control_Monad_Rec_Class.Done.create))(me);\n })(Data_Unit.unit);\n };\n };\n };\n var fuseWithL = function (dictFunctor) {\n return function (dictFunctor1) {\n return function (dictFunctor2) {\n return function (dictMonadRec) {\n return function (zap) {\n return function (fs) {\n return function (gs) {\n var go = function (v) {\n return Control_Monad_Except_Trans.runExceptT(Control_Bind.bind(Control_Monad_Except_Trans.bindExceptT(dictMonadRec.Monad0()))(Control_Monad_Except_Trans.ExceptT(Control_Monad_Free_Trans.resume(dictFunctor)(dictMonadRec)(v.value0)))(function (l) {\n return Control_Bind.bind(Control_Monad_Except_Trans.bindExceptT(dictMonadRec.Monad0()))(Control_Monad_Except_Trans.ExceptT(Control_Monad_Free_Trans.resume(dictFunctor1)(dictMonadRec)(v.value1)))(function (r) {\n return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(dictMonadRec.Monad0()))(Data_Functor.map(dictFunctor2)(function (t) {\n return Control_Monad_Free_Trans.freeT(function (v1) {\n return go(t);\n });\n })(zap(Data_Tuple.Tuple.create)(l)(r)));\n });\n }));\n };\n return Control_Monad_Free_Trans.freeT(function (v) {\n return go(new Data_Tuple.Tuple(fs, gs));\n });\n };\n };\n };\n };\n };\n };\n };\n var fuseWith = function (dictFunctor) {\n return function (dictFunctor1) {\n return function (dictFunctor2) {\n return function (dictMonadRec) {\n return function (dictParallel) {\n return function (zap) {\n return function (fs) {\n return function (gs) {\n var go = function (v) {\n return Control_Bind.bind((dictMonadRec.Monad0()).Bind1())(Control_Parallel_Class.sequential(dictParallel)(Control_Apply.apply((dictParallel.Applicative1()).Apply0())(Data_Functor.map(((dictParallel.Applicative1()).Apply0()).Functor0())(Control_Apply.lift2(Data_Either.applyEither)(zap(Data_Tuple.Tuple.create)))(Control_Parallel_Class.parallel(dictParallel)(Control_Monad_Free_Trans.resume(dictFunctor)(dictMonadRec)(v.value0))))(Control_Parallel_Class.parallel(dictParallel)(Control_Monad_Free_Trans.resume(dictFunctor1)(dictMonadRec)(v.value1)))))(function (next) {\n if (next instanceof Data_Either.Left) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(new Data_Either.Left(next.value0));\n };\n if (next instanceof Data_Either.Right) {\n return Control_Applicative.pure((dictMonadRec.Monad0()).Applicative0())(new Data_Either.Right(Data_Functor.map(dictFunctor2)(function (t) {\n return Control_Monad_Free_Trans.freeT(function (v1) {\n return go(t);\n });\n })(next.value0)));\n };\n throw new Error(\"Failed pattern match at Control.Coroutine (line 79, column 5 - line 81, column 63): \" + [ next.constructor.name ]);\n });\n };\n return Control_Monad_Free_Trans.freeT(function (v) {\n return go(new Data_Tuple.Tuple(fs, gs));\n });\n };\n };\n };\n };\n };\n };\n };\n };\n var functorAwait = new Data_Functor.Functor(Data_Profunctor.rmap(profunctorAwait));\n var bifunctorEmit = new Data_Bifunctor.Bifunctor(function (f) {\n return function (g) {\n return function (v) {\n return new Emit(f(v.value0), g(v.value1));\n };\n };\n });\n var functorEmit = new Data_Functor.Functor(Data_Bifunctor.rmap(bifunctorEmit));\n var connect = function (dictMonadRec) {\n return function (dictParallel) {\n return fuseWith(functorEmit)(functorAwait)(Data_Identity.functorIdentity)(dictMonadRec)(dictParallel)(function (f) {\n return function (v) {\n return function (v1) {\n return f(v.value1)(v1(v.value0));\n };\n };\n });\n };\n };\n var emit = function (dictMonad) {\n return function (o) {\n return Control_Monad_Free_Trans.liftFreeT(functorEmit)(dictMonad)(new Emit(o, Data_Unit.unit));\n };\n };\n var producer = function (dictMonad) {\n return function (recv) {\n return loop(functorEmit)(dictMonad)(Control_Bind.bind(Control_Monad_Free_Trans.bindFreeT(functorEmit)(dictMonad))(Control_Monad_Trans_Class.lift(Control_Monad_Free_Trans.monadTransFreeT(functorEmit))(dictMonad)(recv))(function (e) {\n if (e instanceof Data_Either.Left) {\n return Data_Functor.voidLeft(Control_Monad_Free_Trans.functorFreeT(functorEmit)(((dictMonad.Bind1()).Apply0()).Functor0()))(emit(dictMonad)(e.value0))(Data_Maybe.Nothing.value);\n };\n if (e instanceof Data_Either.Right) {\n return Control_Applicative.pure(Control_Monad_Free_Trans.applicativeFreeT(functorEmit)(dictMonad))(new Data_Maybe.Just(e.value0));\n };\n throw new Error(\"Failed pattern match at Control.Coroutine (line 125, column 3 - line 127, column 29): \" + [ e.constructor.name ]);\n }));\n };\n };\n var pullFrom = function (dictMonadRec) {\n return fuseWithL(functorAwait)(functorEmit)(Data_Identity.functorIdentity)(dictMonadRec)(function (f) {\n return function (v) {\n return function (v1) {\n return Control_Applicative.pure(Data_Identity.applicativeIdentity)(f(v(v1.value0))(v1.value1));\n };\n };\n });\n };\n var $$await = function (dictMonad) {\n return Control_Monad_Free_Trans.liftFreeT(functorAwait)(dictMonad)(Control_Category.identity(Control_Category.categoryFn));\n };\n exports[\"runProcess\"] = runProcess;\n exports[\"producer\"] = producer;\n exports[\"await\"] = $$await;\n exports[\"connect\"] = connect;\n exports[\"pullFrom\"] = pullFrom;\n exports[\"functorAwait\"] = functorAwait;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Control.Monad.Fork.Class\"] = $PS[\"Control.Monad.Fork.Class\"] || {};\n var exports = $PS[\"Control.Monad.Fork.Class\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var MonadFork = function (Functor1, Monad0, fork, join, suspend) {\n this.Functor1 = Functor1;\n this.Monad0 = Monad0;\n this.fork = fork;\n this.join = join;\n this.suspend = suspend;\n };\n var monadForkAff = new MonadFork(function () {\n return Effect_Aff.functorFiber;\n }, function () {\n return Effect_Aff.monadAff;\n }, Effect_Aff.forkAff, Effect_Aff.joinFiber, Effect_Aff.suspendAff);\n var fork = function (dict) {\n return dict.fork;\n };\n exports[\"fork\"] = fork;\n exports[\"monadForkAff\"] = monadForkAff;\n})(PS);\n(function(exports) {\n /* globals exports, setTimeout */\n \"use strict\";\n\n var AVar = function () {\n\n function MutableQueue () {\n this.head = null;\n this.last = null;\n this.size = 0;\n }\n\n function MutableCell (queue, value) {\n this.queue = queue;\n this.value = value;\n this.next = null;\n this.prev = null;\n }\n\n function AVar (value) {\n this.draining = false;\n this.error = null;\n this.value = value;\n this.takes = new MutableQueue();\n this.reads = new MutableQueue();\n this.puts = new MutableQueue();\n }\n\n var EMPTY = {};\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 putLast (queue, value) {\n var cell = new MutableCell(queue, value);\n switch (queue.size) {\n case 0:\n queue.head = cell;\n break;\n case 1:\n cell.prev = queue.head;\n queue.head.next = cell;\n queue.last = cell;\n break;\n default:\n cell.prev = queue.last;\n queue.last.next = cell;\n queue.last = cell;\n }\n queue.size++;\n return cell;\n }\n\n function takeLast (queue) {\n var cell;\n switch (queue.size) {\n case 0:\n return null;\n case 1:\n cell = queue.head;\n queue.head = null;\n break;\n case 2:\n cell = queue.last;\n queue.head.next = null;\n queue.last = null;\n break;\n default:\n cell = queue.last;\n queue.last = cell.prev;\n queue.last.next = null;\n }\n cell.prev = null;\n cell.queue = null;\n queue.size--;\n return cell.value;\n }\n\n function takeHead (queue) {\n var cell;\n switch (queue.size) {\n case 0:\n return null;\n case 1:\n cell = queue.head;\n queue.head = null;\n break;\n case 2:\n cell = queue.head;\n queue.last.prev = null;\n queue.head = queue.last;\n queue.last = null;\n break;\n default:\n cell = queue.head;\n queue.head = cell.next;\n queue.head.prev = null;\n }\n cell.next = null;\n cell.queue = null;\n queue.size--;\n return cell.value;\n }\n\n function deleteCell (cell) {\n if (cell.queue === null) {\n return;\n }\n if (cell.queue.last === cell) {\n takeLast(cell.queue);\n return;\n }\n if (cell.queue.head === cell) {\n takeHead(cell.queue);\n return;\n }\n if (cell.prev) {\n cell.prev.next = cell.next;\n }\n if (cell.next) {\n cell.next.prev = cell.prev;\n }\n cell.queue.size--;\n cell.queue = null;\n cell.value = null;\n cell.next = null;\n cell.prev = null;\n }\n\n function drainVar (util, avar) {\n if (avar.draining) {\n return;\n }\n\n var ps = avar.puts;\n var ts = avar.takes;\n var rs = avar.reads;\n var p, r, t, value, rsize;\n\n avar.draining = true;\n\n while (1) { // eslint-disable-line no-constant-condition\n p = null;\n r = null;\n t = null;\n value = avar.value;\n rsize = rs.size;\n\n if (avar.error !== null) {\n value = util.left(avar.error);\n while (p = takeHead(ps)) { // eslint-disable-line no-cond-assign\n runEff(p.cb(value));\n }\n while (r = takeHead(rs)) { // eslint-disable-line no-cond-assign\n runEff(r(value));\n }\n while (t = takeHead(ts)) { // eslint-disable-line no-cond-assign\n runEff(t(value));\n }\n break;\n }\n\n // Process the next put. We do not immediately invoke the callback\n // because we want to preserve ordering. If there are takes/reads\n // we want to run those first.\n if (value === EMPTY && (p = takeHead(ps))) {\n avar.value = value = p.value;\n }\n\n if (value !== EMPTY) {\n // We go ahead and queue up the next take for the same reasons as\n // above. Invoking the read callbacks can affect the mutable queue.\n t = takeHead(ts);\n // We only want to process the reads queued up before running these\n // callbacks so we guard on rsize.\n while (rsize-- && (r = takeHead(rs))) {\n runEff(r(util.right(value)));\n }\n if (t !== null) {\n avar.value = EMPTY;\n runEff(t(util.right(value)));\n }\n }\n\n if (p !== null) {\n runEff(p.cb(util.right(void 0)));\n }\n\n // Callbacks could have queued up more items so we need to guard on the\n // actual mutable properties.\n if (avar.value === EMPTY && ps.size === 0 || avar.value !== EMPTY && ts.size === 0) {\n break;\n }\n }\n avar.draining = false;\n }\n\n AVar.EMPTY = EMPTY;\n AVar.putLast = putLast;\n AVar.takeLast = takeLast;\n AVar.takeHead = takeHead;\n AVar.deleteCell = deleteCell;\n AVar.drainVar = drainVar;\n\n return AVar;\n }();\n\n exports.empty = function () {\n return new AVar(AVar.EMPTY);\n };\n\n exports._killVar = function (util, error, avar) {\n return function () {\n if (avar.error === null) {\n avar.error = error;\n avar.value = AVar.EMPTY;\n AVar.drainVar(util, avar);\n }\n };\n };\n\n exports._putVar = function (util, value, avar, cb) {\n return function () {\n var cell = AVar.putLast(avar.puts, { cb: cb, value: value });\n AVar.drainVar(util, avar);\n return function () {\n AVar.deleteCell(cell);\n };\n };\n };\n\n exports._takeVar = function (util, avar, cb) {\n return function () {\n var cell = AVar.putLast(avar.takes, cb);\n AVar.drainVar(util, avar);\n return function () {\n AVar.deleteCell(cell);\n };\n };\n };\n})(PS[\"Effect.AVar\"] = PS[\"Effect.AVar\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.AVar\"] = $PS[\"Effect.AVar\"] || {};\n var exports = $PS[\"Effect.AVar\"];\n var $foreign = $PS[\"Effect.AVar\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Maybe = $PS[\"Data.Maybe\"]; \n var Killed = (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 })();\n var Filled = (function () {\n function Filled(value0) {\n this.value0 = value0;\n };\n Filled.create = function (value0) {\n return new Filled(value0);\n };\n return Filled;\n })();\n var Empty = (function () {\n function Empty() {\n\n };\n Empty.value = new Empty();\n return Empty;\n })();\n var ffiUtil = {\n left: Data_Either.Left.create,\n right: Data_Either.Right.create,\n nothing: Data_Maybe.Nothing.value,\n just: Data_Maybe.Just.create,\n killed: Killed.create,\n filled: Filled.create,\n empty: Empty.value\n };\n var kill = function (err) {\n return function (avar) {\n return $foreign[\"_killVar\"](ffiUtil, err, avar);\n };\n };\n var put = function (value) {\n return function (avar) {\n return function (cb) {\n return $foreign[\"_putVar\"](ffiUtil, value, avar, cb);\n };\n };\n };\n var take = function (avar) {\n return function (cb) {\n return $foreign[\"_takeVar\"](ffiUtil, avar, cb);\n };\n };\n exports[\"take\"] = take;\n exports[\"put\"] = put;\n exports[\"kill\"] = kill;\n exports[\"empty\"] = $foreign.empty;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Aff.AVar\"] = $PS[\"Effect.Aff.AVar\"] || {};\n var exports = $PS[\"Effect.Aff.AVar\"];\n var Effect_AVar = $PS[\"Effect.AVar\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var take = function (avar) {\n return Effect_Aff.makeAff(function (k) {\n return function __do() {\n var c = Effect_AVar.take(avar)(k)();\n return Effect_Aff.effectCanceler(c);\n };\n });\n };\n var put = function (value) {\n return function (avar) {\n return Effect_Aff.makeAff(function (k) {\n return function __do() {\n var c = Effect_AVar.put(value)(avar)(k)();\n return Effect_Aff.effectCanceler(c);\n };\n });\n };\n }; \n var kill = function (error) {\n var $11 = Effect_Class.liftEffect(Effect_Aff.monadEffectAff);\n var $12 = Effect_AVar.kill(error);\n return function ($13) {\n return $11($12($13));\n };\n };\n var empty = Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_AVar.empty);\n exports[\"empty\"] = empty;\n exports[\"take\"] = take;\n exports[\"put\"] = put;\n exports[\"kill\"] = kill;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.warn = function (s) {\n return function () {\n console.warn(s);\n return {};\n };\n };\n})(PS[\"Effect.Console\"] = PS[\"Effect.Console\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Console\"] = $PS[\"Effect.Console\"] || {};\n var exports = $PS[\"Effect.Console\"];\n var $foreign = $PS[\"Effect.Console\"];\n exports[\"warn\"] = $foreign.warn;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.error = function (msg) {\n return new Error(msg);\n };\n\n exports.throwException = function (e) {\n return function () {\n throw e;\n };\n };\n})(PS[\"Effect.Exception\"] = PS[\"Effect.Exception\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Effect.Exception\"] = $PS[\"Effect.Exception\"] || {};\n var exports = $PS[\"Effect.Exception\"];\n var $foreign = $PS[\"Effect.Exception\"];\n var $$throw = function ($2) {\n return $foreign.throwException($foreign.error($2));\n };\n exports[\"throw\"] = $$throw;\n exports[\"error\"] = $foreign.error;\n exports[\"throwException\"] = $foreign.throwException;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Aff.Driver.State\"] = $PS[\"Halogen.Aff.Driver.State\"] || {};\n var exports = $PS[\"Halogen.Aff.Driver.State\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Data_Slot = $PS[\"Halogen.Data.Slot\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var unRenderStateX = Unsafe_Coerce.unsafeCoerce;\n var unDriverStateX = Unsafe_Coerce.unsafeCoerce;\n var renderStateX_ = function (dictApplicative) {\n return function (f) {\n return unDriverStateX(function (st) {\n return Data_Foldable.traverse_(dictApplicative)(Data_Foldable.foldableMaybe)(f)(st.rendering);\n });\n };\n };\n var mkRenderStateX = Unsafe_Coerce.unsafeCoerce;\n var renderStateX = function (dictFunctor) {\n return function (f) {\n return unDriverStateX(function (st) {\n return mkRenderStateX(f(st.rendering));\n });\n };\n };\n var mkDriverStateXRef = Unsafe_Coerce.unsafeCoerce;\n var mapDriverState = function (f) {\n return function (v) {\n return f(v);\n };\n };\n var initDriverState = function (component) {\n return function (input) {\n return function (handler) {\n return function (lchs) {\n return function __do() {\n var selfRef = Effect_Ref[\"new\"]({})();\n var childrenIn = Effect_Ref[\"new\"](Halogen_Data_Slot.empty)();\n var childrenOut = Effect_Ref[\"new\"](Halogen_Data_Slot.empty)();\n var handlerRef = Effect_Ref[\"new\"](handler)();\n var pendingQueries = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_List_Types.Nil.value))();\n var pendingOuts = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_List_Types.Nil.value))();\n var pendingHandlers = Effect_Ref[\"new\"](Data_Maybe.Nothing.value)();\n var fresh = Effect_Ref[\"new\"](1)();\n var subscriptions = Effect_Ref[\"new\"](new Data_Maybe.Just(Data_Map_Internal.empty))();\n var forks = Effect_Ref[\"new\"](Data_Map_Internal.empty)();\n var ds = {\n component: component,\n state: component.initialState(input),\n refs: Data_Map_Internal.empty,\n children: Halogen_Data_Slot.empty,\n childrenIn: childrenIn,\n childrenOut: childrenOut,\n selfRef: selfRef,\n handlerRef: handlerRef,\n pendingQueries: pendingQueries,\n pendingOuts: pendingOuts,\n pendingHandlers: pendingHandlers,\n rendering: Data_Maybe.Nothing.value,\n fresh: fresh,\n subscriptions: subscriptions,\n forks: forks,\n lifecycleHandlers: lchs\n };\n Effect_Ref.write(ds)(selfRef)();\n return mkDriverStateXRef(selfRef);\n };\n };\n };\n };\n };\n exports[\"mapDriverState\"] = mapDriverState;\n exports[\"unDriverStateX\"] = unDriverStateX;\n exports[\"renderStateX\"] = renderStateX;\n exports[\"renderStateX_\"] = renderStateX_;\n exports[\"unRenderStateX\"] = unRenderStateX;\n exports[\"initDriverState\"] = initDriverState;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Query.ChildQuery\"] = $PS[\"Halogen.Query.ChildQuery\"] || {};\n var exports = $PS[\"Halogen.Query.ChildQuery\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"];\n var unChildQueryBox = Unsafe_Coerce.unsafeCoerce;\n exports[\"unChildQueryBox\"] = unChildQueryBox;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Query.EventSource\"] = $PS[\"Halogen.Query.EventSource\"] || {};\n var exports = $PS[\"Halogen.Query.EventSource\"];\n var finalize = function (v) {\n return v;\n };\n exports[\"finalize\"] = finalize;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.reallyUnsafeRefEq = function (a) {\n return function (b) {\n return a === b;\n };\n };\n})(PS[\"Unsafe.Reference\"] = PS[\"Unsafe.Reference\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Unsafe.Reference\"] = $PS[\"Unsafe.Reference\"] || {};\n var exports = $PS[\"Unsafe.Reference\"];\n var $foreign = $PS[\"Unsafe.Reference\"];\n var unsafeRefEq = $foreign.reallyUnsafeRefEq;\n exports[\"unsafeRefEq\"] = unsafeRefEq;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Aff.Driver.Eval\"] = $PS[\"Halogen.Aff.Driver.Eval\"] || {};\n var exports = $PS[\"Halogen.Aff.Driver.Eval\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Applicative_Free = $PS[\"Control.Applicative.Free\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Coroutine = $PS[\"Control.Coroutine\"];\n var Control_Monad = $PS[\"Control.Monad\"];\n var Control_Monad_Fork_Class = $PS[\"Control.Monad.Fork.Class\"];\n var Control_Monad_Free = $PS[\"Control.Monad.Free\"];\n var Control_Monad_Free_Trans = $PS[\"Control.Monad.Free.Trans\"];\n var Control_Monad_Trans_Class = $PS[\"Control.Monad.Trans.Class\"];\n var Control_Parallel = $PS[\"Control.Parallel\"];\n var Control_Parallel_Class = $PS[\"Control.Parallel.Class\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Coyoneda = $PS[\"Data.Coyoneda\"];\n var Data_Eq = $PS[\"Data.Eq\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Aff_Driver_State = $PS[\"Halogen.Aff.Driver.State\"];\n var Halogen_Query_ChildQuery = $PS[\"Halogen.Query.ChildQuery\"];\n var Halogen_Query_EventSource = $PS[\"Halogen.Query.EventSource\"];\n var Halogen_Query_HalogenM = $PS[\"Halogen.Query.HalogenM\"];\n var Halogen_Query_HalogenQ = $PS[\"Halogen.Query.HalogenQ\"];\n var Halogen_Query_Input = $PS[\"Halogen.Query.Input\"];\n var Unsafe_Reference = $PS[\"Unsafe.Reference\"]; \n var unsubscribe = function (sid) {\n return function (ref) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v.subscriptions)))(function (subs) {\n return Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(Halogen_Query_EventSource.finalize)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordSubscriptionId)(sid))(subs));\n });\n });\n };\n };\n var queueOrRun = function (ref) {\n return function (au) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return au;\n };\n if (v instanceof Data_Maybe.Just) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write(new Data_Maybe.Just(new Data_List_Types.Cons(au, v.value0)))(ref));\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 195, column 33 - line 197, column 57): \" + [ v.constructor.name ]);\n });\n };\n };\n var handleLifecycle = function (lchs) {\n return function (f) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write({\n initializers: Data_List_Types.Nil.value,\n finalizers: Data_List_Types.Nil.value\n })(lchs)))(function () {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(f))(function (result) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(lchs)))(function (v) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff))(v.finalizers))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Control_Parallel.parSequence_(Effect_Aff.parallelAff)(Data_List_Types.foldableList)(v.initializers))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(result);\n });\n });\n });\n });\n });\n };\n };\n var fresh = function (f) {\n return function (ref) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"modify'\"](function (i) {\n return {\n state: i + 1 | 0,\n value: f(i)\n };\n })(v.fresh));\n });\n };\n };\n var evalQ = function (render) {\n return function (ref) {\n return function (q) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v) {\n return evalM(render)(ref)(v[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Query(Data_Functor.map(Data_Coyoneda.functorCoyoneda)(Data_Maybe.Just.create)(Data_Coyoneda.liftCoyoneda(q)), Data_Function[\"const\"](Data_Maybe.Nothing.value))));\n });\n };\n };\n };\n var evalM = function (render) {\n return function (initRef) {\n return function (v) {\n var evalChildQuery = function (ref) {\n return function (cqb) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v1) {\n return Halogen_Query_ChildQuery.unChildQueryBox(function (v2) {\n var evalChild = function (v3) {\n return Control_Parallel_Class.parallel(Effect_Aff.parallelAff)(Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v3)))(function (dsx) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (ds) {\n return evalQ(render)(ds.selfRef)(v2.value1);\n })(dsx);\n }));\n };\n return Data_Functor.map(Effect_Aff.functorAff)(v2.value2)(Control_Parallel_Class.sequential(Effect_Aff.parallelAff)(v2.value0(Effect_Aff.applicativeParAff)(evalChild)(v1.children)));\n })(cqb);\n });\n };\n };\n var go = function (ref) {\n return function (v1) {\n if (v1 instanceof Halogen_Query_HalogenM.State) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n var v3 = v1.value0(v2.state);\n if (Unsafe_Reference.unsafeRefEq(v2.state)(v3.value1)) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v3.value0);\n };\n if (Data_Boolean.otherwise) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.write({\n component: v2.component,\n state: v3.value1,\n refs: v2.refs,\n children: v2.children,\n childrenIn: v2.childrenIn,\n childrenOut: v2.childrenOut,\n selfRef: v2.selfRef,\n handlerRef: v2.handlerRef,\n pendingQueries: v2.pendingQueries,\n pendingOuts: v2.pendingOuts,\n pendingHandlers: v2.pendingHandlers,\n rendering: v2.rendering,\n fresh: v2.fresh,\n subscriptions: v2.subscriptions,\n forks: v2.forks,\n lifecycleHandlers: v2.lifecycleHandlers\n })(ref)))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(handleLifecycle(v2.lifecycleHandlers)(render(v2.lifecycleHandlers)(ref)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v3.value0);\n });\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 85, column 7 - line 91, column 21): \" + [ v3.constructor.name ]);\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Subscribe) {\n return Control_Bind.bind(Effect_Aff.bindAff)(fresh(Halogen_Query_HalogenM.SubscriptionId)(ref))(function (sid) {\n var v2 = v1.value0(sid);\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v3) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff)(Control_Bind.bind(Effect_Aff.bindAff)(v2)(function (v4) {\n var done = Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v3.subscriptions)))(function (subs) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.modify_(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Map_Internal[\"delete\"](Halogen_Query_HalogenM.ordSubscriptionId)(sid)))(v3.subscriptions)))(function () {\n return Control_Applicative.when(Effect_Aff.applicativeAff)(Data_Maybe.maybe(false)(Data_Map_Internal.member(Halogen_Query_HalogenM.ordSubscriptionId)(sid))(subs))(Halogen_Query_EventSource.finalize(v4.finalizer));\n });\n });\n var consumer = Control_Bind.bind(Control_Monad_Free_Trans.bindFreeT(Control_Coroutine.functorAwait)(Effect_Aff.monadAff))(Control_Coroutine[\"await\"](Effect_Aff.monadAff))(function (act) {\n return Control_Bind.bind(Control_Monad_Free_Trans.bindFreeT(Control_Coroutine.functorAwait)(Effect_Aff.monadAff))(Control_Monad_Trans_Class.lift(Control_Monad_Free_Trans.monadTransFreeT(Control_Coroutine.functorAwait))(Effect_Aff.monadAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v3.subscriptions))))(function (subs) {\n return Control_Applicative.when(Control_Monad_Free_Trans.applicativeFreeT(Control_Coroutine.functorAwait)(Effect_Aff.monadAff))(Data_Eq.eq(Data_Maybe.eqMaybe(Data_Eq.eqBoolean))(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Map_Internal.member(Halogen_Query_HalogenM.ordSubscriptionId)(sid))(subs))(new Data_Maybe.Just(true)))(Control_Bind.bind(Control_Monad_Free_Trans.bindFreeT(Control_Coroutine.functorAwait)(Effect_Aff.monadAff))(Control_Monad_Trans_Class.lift(Control_Monad_Free_Trans.monadTransFreeT(Control_Coroutine.functorAwait))(Effect_Aff.monadAff)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff)(evalF(render)(ref)(new Halogen_Query_Input.Action(act)))))(function () {\n return consumer;\n }));\n });\n });\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.modify_(Data_Functor.map(Data_Maybe.functorMaybe)(Data_Map_Internal.insert(Halogen_Query_HalogenM.ordSubscriptionId)(sid)(done)))(v3.subscriptions)))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Control_Coroutine.runProcess(Effect_Aff.monadRecAff)(Control_Coroutine.pullFrom(Effect_Aff.monadRecAff)(consumer)(v4.producer)))(function () {\n return Halogen_Query_EventSource.finalize(done);\n });\n });\n })))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(sid));\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Unsubscribe) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(unsubscribe(v1.value0)(ref))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Lift) {\n return v1.value0;\n };\n if (v1 instanceof Halogen_Query_HalogenM.ChildQuery) {\n return evalChildQuery(ref)(v1.value0);\n };\n if (v1 instanceof Halogen_Query_HalogenM.Raise) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v2.handlerRef)))(function (handler) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(queueOrRun(v2.pendingOuts)(handler(v1.value0)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Par) {\n return Control_Parallel_Class.sequential(Effect_Aff.parallelAff)(Control_Applicative_Free.retractFreeAp(Effect_Aff.applicativeParAff)(Control_Applicative_Free.hoistFreeAp((function () {\n var $85 = Control_Parallel_Class.parallel(Effect_Aff.parallelAff);\n var $86 = evalM(render)(ref);\n return function ($87) {\n return $85($86($87));\n };\n })())(v1.value0)));\n };\n if (v1 instanceof Halogen_Query_HalogenM.Fork) {\n return Control_Bind.bind(Effect_Aff.bindAff)(fresh(Halogen_Query_HalogenM.ForkId)(ref))(function (fid) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"new\"](false)))(function (doneRef) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff)(Effect_Aff[\"finally\"](Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(function __do() {\n Effect_Ref.modify_(Data_Map_Internal[\"delete\"](Halogen_Query_HalogenM.ordForkId)(fid))(v2.forks)();\n return Effect_Ref.write(true)(doneRef)();\n }))(evalM(render)(ref)(v1.value0))))(function (fiber) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Control_Monad.unlessM(Effect.monadEffect)(Effect_Ref.read(doneRef))(Effect_Ref.modify_(Data_Map_Internal.insert(Halogen_Query_HalogenM.ordForkId)(fid)(fiber))(v2.forks))))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(fid));\n });\n });\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.Kill) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(v2.forks)))(function (forkMap) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(Effect_Aff.killFiber(Effect_Exception.error(\"Cancelled\")))(Data_Map_Internal.lookup(Halogen_Query_HalogenM.ordForkId)(v1.value0)(forkMap)))(function () {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1);\n });\n });\n });\n };\n if (v1 instanceof Halogen_Query_HalogenM.GetRef) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v2) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(v1.value1(Data_Map_Internal.lookup(Data_Ord.ordString)(v1.value0)(v2.refs)));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 82, column 12 - line 146, column 33): \" + [ v1.constructor.name ]);\n };\n };\n return Control_Monad_Free.foldFree(Effect_Aff.monadRecAff)(go(initRef))(v);\n };\n };\n };\n var evalF = function (render) {\n return function (ref) {\n return function (v) {\n if (v instanceof Halogen_Query_Input.RefUpdate) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Data_Function.flip(Effect_Ref.modify_)(ref)(Halogen_Aff_Driver_State.mapDriverState(function (st) {\n return {\n component: st.component,\n state: st.state,\n refs: Data_Map_Internal.alter(Data_Ord.ordString)(Data_Function[\"const\"](v.value1))(v.value0)(st.refs),\n children: st.children,\n childrenIn: st.childrenIn,\n childrenOut: st.childrenOut,\n selfRef: st.selfRef,\n handlerRef: st.handlerRef,\n pendingQueries: st.pendingQueries,\n pendingOuts: st.pendingOuts,\n pendingHandlers: st.pendingHandlers,\n rendering: st.rendering,\n fresh: st.fresh,\n subscriptions: st.subscriptions,\n forks: st.forks,\n lifecycleHandlers: st.lifecycleHandlers\n };\n })));\n };\n if (v instanceof Halogen_Query_Input.Action) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (v1) {\n return evalM(render)(ref)(v1[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Action(v.value0, Data_Unit.unit)));\n });\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver.Eval (line 51, column 20 - line 57, column 62): \" + [ v.constructor.name ]);\n };\n };\n };\n exports[\"evalF\"] = evalF;\n exports[\"evalQ\"] = evalQ;\n exports[\"evalM\"] = evalM;\n exports[\"handleLifecycle\"] = handleLifecycle;\n exports[\"queueOrRun\"] = queueOrRun;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Aff.Driver\"] = $PS[\"Halogen.Aff.Driver\"] || {};\n var exports = $PS[\"Halogen.Aff.Driver\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Control_Coroutine = $PS[\"Control.Coroutine\"];\n var Control_Monad_Error_Class = $PS[\"Control.Monad.Error.Class\"];\n var Control_Monad_Fork_Class = $PS[\"Control.Monad.Fork.Class\"];\n var Control_Monad_Rec_Class = $PS[\"Control.Monad.Rec.Class\"];\n var Control_Parallel = $PS[\"Control.Parallel\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_List = $PS[\"Data.List\"];\n var Data_List_Types = $PS[\"Data.List.Types\"];\n var Data_Map_Internal = $PS[\"Data.Map.Internal\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Ord = $PS[\"Data.Ord\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Aff_AVar = $PS[\"Effect.Aff.AVar\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Console = $PS[\"Effect.Console\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Aff_Driver_Eval = $PS[\"Halogen.Aff.Driver.Eval\"];\n var Halogen_Aff_Driver_State = $PS[\"Halogen.Aff.Driver.State\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_Data_Slot = $PS[\"Halogen.Data.Slot\"];\n var Halogen_Query_EventSource = $PS[\"Halogen.Query.EventSource\"];\n var Halogen_Query_HalogenQ = $PS[\"Halogen.Query.HalogenQ\"];\n var Halogen_Query_Input = $PS[\"Halogen.Query.Input\"]; \n var newLifecycleHandlers = Effect_Ref[\"new\"]({\n initializers: Data_List_Types.Nil.value,\n finalizers: Data_List_Types.Nil.value\n });\n var handleAff = Effect_Aff.runAff_(Data_Either.either(Effect_Exception.throwException)(Data_Function[\"const\"](Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit))));\n var handlePending = function (ref) {\n return function __do() {\n var queue = Effect_Ref.read(ref)();\n Effect_Ref.write(Data_Maybe.Nothing.value)(ref)();\n return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(queue)((function () {\n var $28 = Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff));\n return function ($29) {\n return handleAff($28(Data_List.reverse($29)));\n };\n })())();\n };\n };\n var cleanupSubscriptionsAndForks = function (v) {\n return function __do() {\n Control_Bind.bindFlipped(Effect.bindEffect)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)((function () {\n var $30 = Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Map_Internal.foldableMap)((function () {\n var $32 = Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff);\n return function ($33) {\n return $32(Halogen_Query_EventSource.finalize($33));\n };\n })());\n return function ($31) {\n return handleAff($30($31));\n };\n })()))(Effect_Ref.read(v.subscriptions))();\n Effect_Ref.write(Data_Maybe.Nothing.value)(v.subscriptions)();\n Control_Bind.bindFlipped(Effect.bindEffect)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Map_Internal.foldableMap)((function () {\n var $34 = Effect_Aff.killFiber(Effect_Exception.error(\"finalized\"));\n return function ($35) {\n return handleAff($34($35));\n };\n })()))(Effect_Ref.read(v.forks))();\n return Effect_Ref.write(Data_Map_Internal.empty)(v.forks)();\n };\n };\n var runUI = function (renderSpec) {\n return function (component) {\n return function (i) {\n var subscribe = function (fresh) {\n return function (ref) {\n return function (consumer) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Aff_AVar.empty)(function (inputVar) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(function __do() {\n var listenerId = Effect_Ref.read(fresh)();\n Effect_Ref.modify_(function (v) {\n return v + 1 | 0;\n })(fresh)();\n Effect_Ref.modify_(Data_Map_Internal.insert(Data_Ord.ordInt)(listenerId)(inputVar))(ref)();\n return listenerId;\n }))(function (listenerId) {\n var producer = Control_Coroutine.producer(Effect_Aff.monadAff)(Data_Functor.map(Effect_Aff.functorAff)(Data_Either.either(Data_Function[\"const\"](new Data_Either.Right(Data_Unit.unit)))(Data_Either.Left.create))(Control_Monad_Error_Class[\"try\"](Effect_Aff.monadErrorAff)(Effect_Aff_AVar.take(inputVar))));\n return Data_Functor[\"void\"](Effect_Aff.functorAff)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff)(Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Control_Coroutine.runProcess(Effect_Aff.monadRecAff)(Control_Coroutine.connect(Effect_Aff.monadRecAff)(Effect_Aff.parallelAff)(producer)(consumer)))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.modify_(Data_Map_Internal[\"delete\"](Data_Ord.ordInt)(listenerId))(ref)))(function () {\n return Effect_Aff_AVar.kill(Effect_Exception.error(\"ended\"))(inputVar);\n });\n })));\n });\n });\n };\n };\n };\n var rootHandler = function (ref) {\n return function (message) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(ref)))(function (listeners) {\n return Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Map_Internal.foldableMap)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff))(Data_Functor.map(Data_Map_Internal.functorMap)(Effect_Aff_AVar.put(message))(listeners));\n });\n };\n };\n var squashChildInitializers = function (lchs) {\n return function (preInits) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n var parentInitializer = Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Initialize(Data_Unit.unit)));\n return Effect_Ref.modify_(function (handlers) {\n return {\n initializers: new Data_List_Types.Cons(Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Control_Parallel.parSequence_(Effect_Aff.parallelAff)(Data_List_Types.foldableList)(Data_List.reverse(handlers.initializers)))(function () {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(parentInitializer)(function () {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(function __do() {\n handlePending(st.pendingQueries)();\n return handlePending(st.pendingOuts)();\n });\n });\n }), preInits),\n finalizers: handlers.finalizers\n };\n })(lchs);\n });\n };\n };\n var runComponent = function (lchs) {\n return function (handler) {\n return function (j) {\n return Halogen_Component.unComponent(function (c) {\n return function __do() {\n var lchs$prime = newLifecycleHandlers();\n var $$var = Halogen_Aff_Driver_State.initDriverState(c)(j)(handler)(lchs$prime)();\n var pre = Effect_Ref.read(lchs)();\n Effect_Ref.write({\n initializers: Data_List_Types.Nil.value,\n finalizers: pre.finalizers\n })(lchs)();\n Control_Bind.bindFlipped(Effect.bindEffect)(Halogen_Aff_Driver_State.unDriverStateX((function () {\n var $36 = render(lchs);\n return function ($37) {\n return $36((function (v) {\n return v.selfRef;\n })($37));\n };\n })()))(Effect_Ref.read($$var))();\n Control_Bind.bindFlipped(Effect.bindEffect)(squashChildInitializers(lchs)(pre.initializers))(Effect_Ref.read($$var))();\n return $$var;\n };\n });\n };\n };\n };\n var renderChild = function (lchs) {\n return function (handler) {\n return function (childrenInRef) {\n return function (childrenOutRef) {\n return Halogen_Component.unComponentSlot(function (slot) {\n return function __do() {\n var childrenIn = Data_Functor.map(Effect.functorEffect)(slot.pop)(Effect_Ref.read(childrenInRef))();\n var $$var = (function () {\n if (childrenIn instanceof Data_Maybe.Just) {\n Effect_Ref.write(childrenIn.value0.value1)(childrenInRef)();\n var dsx = Effect_Ref.read(childrenIn.value0.value0)();\n Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return function __do() {\n Data_Function.flip(Effect_Ref.write)(st.handlerRef)((function () {\n var $38 = Data_Maybe.maybe(Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Unit.unit))(handler);\n return function ($39) {\n return $38(slot.output($39));\n };\n })())();\n return handleAff(Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](slot.input)))();\n };\n })(dsx)();\n return childrenIn.value0.value0;\n };\n if (childrenIn instanceof Data_Maybe.Nothing) {\n if (slot.input instanceof Halogen_Query_HalogenQ.Receive) {\n return runComponent(lchs)((function () {\n var $40 = Data_Maybe.maybe(Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Unit.unit))(handler);\n return function ($41) {\n return $40(slot.output($41));\n };\n })())(slot.input.value0)(slot.component)();\n };\n return Effect_Exception[\"throw\"](\"Halogen internal error: slot input was not a Receive query\")();\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver (line 236, column 14 - line 249, column 81): \" + [ childrenIn.constructor.name ]);\n })();\n var isDuplicate = Data_Functor.map(Effect.functorEffect)(function ($42) {\n return Data_Maybe.isJust(slot.get($42));\n })(Effect_Ref.read(childrenOutRef))();\n Control_Applicative.when(Effect.applicativeEffect)(isDuplicate)(Effect_Console.warn(\"Halogen: Duplicate slot address was detected during rendering, unexpected results may occur\"))();\n Effect_Ref.modify_(slot.set($$var))(childrenOutRef)();\n return Control_Bind.bind(Effect.bindEffect)(Effect_Ref.read($$var))(Halogen_Aff_Driver_State.renderStateX(Effect.functorEffect)(function (v) {\n if (v instanceof Data_Maybe.Nothing) {\n return Effect_Exception[\"throw\"](\"Halogen internal error: child was not initialized in renderChild\");\n };\n if (v instanceof Data_Maybe.Just) {\n return Control_Applicative.pure(Effect.applicativeEffect)(renderSpec.renderChild(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.Aff.Driver (line 254, column 37 - line 256, column 50): \" + [ v.constructor.name ]);\n }))();\n };\n });\n };\n };\n };\n };\n var render = function (lchs) {\n return function ($$var) {\n return function __do() {\n var v = Effect_Ref.read($$var)();\n var shouldProcessHandlers = Data_Functor.map(Effect.functorEffect)(Data_Maybe.isNothing)(Effect_Ref.read(v.pendingHandlers))();\n Control_Applicative.when(Effect.applicativeEffect)(shouldProcessHandlers)(Effect_Ref.write(new Data_Maybe.Just(Data_List_Types.Nil.value))(v.pendingHandlers))();\n Effect_Ref.write(Halogen_Data_Slot.empty)(v.childrenOut)();\n Effect_Ref.write(v.children)(v.childrenIn)();\n var selfRef = Control_Category.identity(Control_Category.categoryFn)(v.selfRef);\n var pendingQueries = Control_Category.identity(Control_Category.categoryFn)(v.pendingQueries);\n var pendingHandlers = Control_Category.identity(Control_Category.categoryFn)(v.pendingHandlers);\n var handler = (function () {\n var $43 = Halogen_Aff_Driver_Eval.queueOrRun(pendingHandlers);\n var $44 = Data_Functor[\"void\"](Effect_Aff.functorAff);\n var $45 = Halogen_Aff_Driver_Eval.evalF(render)(selfRef);\n return function ($46) {\n return $43($44($45($46)));\n };\n })();\n var childHandler = (function () {\n var $47 = Halogen_Aff_Driver_Eval.queueOrRun(pendingQueries);\n return function ($48) {\n return $47(handler(Halogen_Query_Input.Action.create($48)));\n };\n })();\n var rendering = renderSpec.render(function ($49) {\n return handleAff(handler($49));\n })(renderChild(lchs)(childHandler)(v.childrenIn)(v.childrenOut))(v.component.render(v.state))(v.rendering)();\n var children = Effect_Ref.read(v.childrenOut)();\n var childrenIn = Effect_Ref.read(v.childrenIn)();\n Halogen_Data_Slot.foreachSlot(Effect.applicativeEffect)(childrenIn)(function (v1) {\n return function __do() {\n var childDS = Effect_Ref.read(v1)();\n Halogen_Aff_Driver_State.renderStateX_(Effect.applicativeEffect)(renderSpec.removeChild)(childDS)();\n return finalize(lchs)(childDS)();\n };\n })();\n Data_Function.flip(Effect_Ref.modify_)(v.selfRef)(Halogen_Aff_Driver_State.mapDriverState(function (ds$prime) {\n return {\n component: ds$prime.component,\n state: ds$prime.state,\n refs: ds$prime.refs,\n children: children,\n childrenIn: ds$prime.childrenIn,\n childrenOut: ds$prime.childrenOut,\n selfRef: ds$prime.selfRef,\n handlerRef: ds$prime.handlerRef,\n pendingQueries: ds$prime.pendingQueries,\n pendingOuts: ds$prime.pendingOuts,\n pendingHandlers: ds$prime.pendingHandlers,\n rendering: new Data_Maybe.Just(rendering),\n fresh: ds$prime.fresh,\n subscriptions: ds$prime.subscriptions,\n forks: ds$prime.forks,\n lifecycleHandlers: ds$prime.lifecycleHandlers\n };\n }))();\n return Control_Applicative.when(Effect.applicativeEffect)(shouldProcessHandlers)(Data_Function.flip(Control_Monad_Rec_Class.tailRecM(Control_Monad_Rec_Class.monadRecEffect))(Data_Unit.unit)(function (v1) {\n return function __do() {\n var handlers = Effect_Ref.read(pendingHandlers)();\n Effect_Ref.write(new Data_Maybe.Just(Data_List_Types.Nil.value))(pendingHandlers)();\n Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)((function () {\n var $50 = Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_List_Types.foldableList)(Control_Monad_Fork_Class.fork(Control_Monad_Fork_Class.monadForkAff));\n return function ($51) {\n return handleAff($50(Data_List.reverse($51)));\n };\n })())(handlers)();\n var mmore = Effect_Ref.read(pendingHandlers)();\n var $24 = Data_Maybe.maybe(false)(Data_List[\"null\"])(mmore);\n if ($24) {\n return Data_Functor.voidLeft(Effect.functorEffect)(Effect_Ref.write(Data_Maybe.Nothing.value)(pendingHandlers))(new Control_Monad_Rec_Class.Done(Data_Unit.unit))();\n };\n return new Control_Monad_Rec_Class.Loop(Data_Unit.unit);\n };\n }))();\n };\n };\n };\n var finalize = function (lchs) {\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return function __do() {\n cleanupSubscriptionsAndForks(st)();\n var f = Halogen_Aff_Driver_Eval.evalM(render)(st.selfRef)(st[\"component\"][\"eval\"](new Halogen_Query_HalogenQ.Finalize(Data_Unit.unit)));\n Effect_Ref.modify_(function (handlers) {\n return {\n initializers: handlers.initializers,\n finalizers: new Data_List_Types.Cons(f, handlers.finalizers)\n };\n })(lchs)();\n return Halogen_Data_Slot.foreachSlot(Effect.applicativeEffect)(st.children)(function (v) {\n return function __do() {\n var dsx = Effect_Ref.read(v)();\n return finalize(lchs)(dsx)();\n };\n })();\n };\n });\n };\n var evalDriver = function (disposed) {\n return function (ref) {\n return function (q) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref.read(disposed)))(function (v) {\n if (v) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Data_Maybe.Nothing.value);\n };\n return Halogen_Aff_Driver_Eval.evalQ(render)(ref)(q);\n });\n };\n };\n };\n var dispose = function (disposed) {\n return function (lchs) {\n return function (dsx) {\n return function (subsRef) {\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 Control_Bind.bindFlipped(Effect.bindEffect)(Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Map_Internal.foldableMap)((function () {\n var $52 = Effect_Aff_AVar.kill(Effect_Exception.error(\"disposed\"));\n return function ($53) {\n return Effect_Aff.launchAff_($52($53));\n };\n })()))(Effect_Ref.read(subsRef))();\n finalize(lchs)(dsx)();\n return Halogen_Aff_Driver_State.unDriverStateX((function () {\n var $54 = Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(renderSpec.dispose);\n return function ($55) {\n return $54((function (v1) {\n return v1.rendering;\n })($55));\n };\n })())(dsx)();\n });\n };\n };\n };\n };\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(newLifecycleHandlers))(function (lchs) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"new\"](0)))(function (fresh) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Effect_Ref[\"new\"](false)))(function (disposed) {\n return Halogen_Aff_Driver_Eval.handleLifecycle(lchs)(function __do() {\n var listeners = Effect_Ref[\"new\"](Data_Map_Internal.empty)();\n var dsx = Control_Bind.bindFlipped(Effect.bindEffect)(Effect_Ref.read)(runComponent(lchs)(rootHandler(listeners))(i)(component))();\n return Halogen_Aff_Driver_State.unDriverStateX(function (st) {\n return Control_Applicative.pure(Effect.applicativeEffect)({\n query: evalDriver(disposed)(st.selfRef),\n subscribe: subscribe(fresh)(listeners),\n dispose: dispose(disposed)(lchs)(dsx)(listeners)\n });\n })(dsx)();\n });\n });\n });\n });\n };\n };\n };\n exports[\"runUI\"] = runUI;\n})(PS);\n(function(exports) {\n \"use strict\"; \n\n exports._querySelector = function (selector) {\n return function (node) {\n return function () {\n return node.querySelector(selector);\n };\n };\n };\n})(PS[\"Web.DOM.ParentNode\"] = PS[\"Web.DOM.ParentNode\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.DOM.ParentNode\"] = $PS[\"Web.DOM.ParentNode\"] || {};\n var exports = $PS[\"Web.DOM.ParentNode\"];\n var $foreign = $PS[\"Web.DOM.ParentNode\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Effect = $PS[\"Effect\"];\n var querySelector = function (qs) {\n var $3 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n var $4 = $foreign[\"_querySelector\"](qs);\n return function ($5) {\n return $3($4($5));\n };\n };\n exports[\"querySelector\"] = querySelector;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.HTML.HTMLDocument\"] = $PS[\"Web.HTML.HTMLDocument\"] || {};\n var exports = $PS[\"Web.HTML.HTMLDocument\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var toParentNode = Unsafe_Coerce.unsafeCoerce; \n var toDocument = Unsafe_Coerce.unsafeCoerce;\n exports[\"toDocument\"] = toDocument;\n exports[\"toParentNode\"] = toParentNode;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.Aff.Util\"] = $PS[\"Halogen.Aff.Util\"] || {};\n var exports = $PS[\"Halogen.Aff.Util\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Either = $PS[\"Data.Either\"];\n var Data_Function = $PS[\"Data.Function\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Exception = $PS[\"Effect.Exception\"];\n var Web_DOM_ParentNode = $PS[\"Web.DOM.ParentNode\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_HTMLDocument = $PS[\"Web.HTML.HTMLDocument\"];\n var Web_HTML_HTMLElement = $PS[\"Web.HTML.HTMLElement\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"]; \n var selectElement = function (query) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Control_Bind.bindFlipped(Effect.bindEffect)(Control_Bind.composeKleisliFlipped(Effect.bindEffect)((function () {\n var $2 = Web_DOM_ParentNode.querySelector(query);\n return function ($3) {\n return $2(Web_HTML_HTMLDocument.toParentNode($3));\n };\n })())(Web_HTML_Window.document))(Web_HTML.window)))(function (mel) {\n return Control_Applicative.pure(Effect_Aff.applicativeAff)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_HTML_HTMLElement.fromElement)(mel));\n });\n };\n var runHalogenAff = Effect_Aff.runAff_(Data_Either.either(Effect_Exception.throwException)(Data_Function[\"const\"](Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit))));\n exports[\"selectElement\"] = selectElement;\n exports[\"runHalogenAff\"] = runHalogenAff;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports.setAttribute = function (name) {\n return function (value) {\n return function (element) {\n return function () {\n element.setAttribute(name, value);\n return {};\n };\n };\n };\n };\n})(PS[\"Web.DOM.Element\"] = PS[\"Web.DOM.Element\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.DOM.Element\"] = $PS[\"Web.DOM.Element\"] || {};\n var exports = $PS[\"Web.DOM.Element\"];\n var $foreign = $PS[\"Web.DOM.Element\"];\n var Unsafe_Coerce = $PS[\"Unsafe.Coerce\"]; \n var toNode = Unsafe_Coerce.unsafeCoerce;\n exports[\"toNode\"] = toNode;\n exports[\"setAttribute\"] = $foreign.setAttribute;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.VDom.DOM\"] = $PS[\"Halogen.VDom.DOM\"] || {};\n var exports = $PS[\"Halogen.VDom.DOM\"];\n var Data_Array = $PS[\"Data.Array\"];\n var Data_Boolean = $PS[\"Data.Boolean\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Data_Tuple = $PS[\"Data.Tuple\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Types = $PS[\"Halogen.VDom.Types\"];\n var Halogen_VDom_Util = $PS[\"Halogen.VDom.Util\"];\n var Web_DOM_Element = $PS[\"Web.DOM.Element\"];\n var haltWidget = function (v) {\n return Halogen_VDom_Machine.halt(v.widget);\n };\n var patchWidget = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchWidget(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Widget) {\n var res = Halogen_VDom_Machine.step(state.widget, vdom.value0);\n var res$prime = Halogen_VDom_Machine.unStep(function (v) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(v.value0, {\n build: state.build,\n widget: res\n }, patchWidget, haltWidget));\n })(res);\n return res$prime;\n };\n haltWidget(state);\n return state.build(vdom);\n };\n var haltText = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n return Halogen_VDom_Util.removeChild(v.node, parent);\n };\n var patchText = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchText(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Text) {\n if (state.value === vdom.value0) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, state, patchText, haltText));\n };\n if (Data_Boolean.otherwise) {\n var nextState = {\n build: state.build,\n node: state.node,\n value: vdom.value0\n };\n Halogen_VDom_Util.setTextContent(vdom.value0, state.node);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchText, haltText));\n };\n };\n haltText(state);\n return state.build(vdom);\n };\n var haltKeyed = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n Halogen_VDom_Util.removeChild(v.node, parent);\n Halogen_VDom_Util.forInE(v.children, function (v1, s) {\n return Halogen_VDom_Machine.halt(s);\n });\n return Halogen_VDom_Machine.halt(v.attrs);\n };\n var haltElem = function (v) {\n var parent = Halogen_VDom_Util.parentNode(v.node);\n Halogen_VDom_Util.removeChild(v.node, parent);\n Halogen_VDom_Util.forEachE(v.children, Halogen_VDom_Machine.halt);\n return Halogen_VDom_Machine.halt(v.attrs);\n };\n var eqElemSpec = function (ns1, v, ns2, v1) {\n var $56 = v === v1;\n if ($56) {\n if (ns1 instanceof Data_Maybe.Just && (ns2 instanceof Data_Maybe.Just && ns1.value0 === ns2.value0)) {\n return true;\n };\n if (ns1 instanceof Data_Maybe.Nothing && ns2 instanceof Data_Maybe.Nothing) {\n return true;\n };\n return false;\n };\n return false;\n };\n var patchElem = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchElem(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Elem && eqElemSpec(state.ns, state.name, vdom.value0, vdom.value1)) {\n var v = Data_Array.length(vdom.value3);\n var v1 = Data_Array.length(state.children);\n if (v1 === 0 && v === 0) {\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: state.children\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchElem, haltElem));\n };\n var onThis = function (ix, s) {\n return Halogen_VDom_Machine.halt(s);\n };\n var onThese = function (ix, s, v2) {\n var res = Halogen_VDom_Machine.step(s, v2);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var onThat = function (ix, v2) {\n var res = state.build(v2);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var children2 = Halogen_VDom_Util.diffWithIxE(state.children, vdom.value3, onThese, onThis, onThat);\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: children2\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchElem, haltElem));\n };\n haltElem(state);\n return state.build(vdom);\n };\n var patchKeyed = function (state, vdom) {\n if (vdom instanceof Halogen_VDom_Types.Grafted) {\n return patchKeyed(state, Halogen_VDom_Types.runGraft(vdom.value0));\n };\n if (vdom instanceof Halogen_VDom_Types.Keyed && eqElemSpec(state.ns, state.name, vdom.value0, vdom.value1)) {\n var v = Data_Array.length(vdom.value3);\n if (state.length === 0 && v === 0) {\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: state.children,\n length: 0\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchKeyed, haltKeyed));\n };\n var onThis = function (v2, s) {\n return Halogen_VDom_Machine.halt(s);\n };\n var onThese = function (v2, ix$prime, s, v3) {\n var res = Halogen_VDom_Machine.step(s, v3.value1);\n Halogen_VDom_Util.insertChildIx(ix$prime, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var onThat = function (v2, ix, v3) {\n var res = state.build(v3.value1);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), state.node);\n return res;\n };\n var children2 = Halogen_VDom_Util.diffWithKeyAndIxE(state.children, vdom.value3, Data_Tuple.fst, onThese, onThis, onThat);\n var attrs2 = Halogen_VDom_Machine.step(state.attrs, vdom.value2);\n var nextState = {\n build: state.build,\n node: state.node,\n attrs: attrs2,\n ns: vdom.value0,\n name: vdom.value1,\n children: children2,\n length: v\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(state.node, nextState, patchKeyed, haltKeyed));\n };\n haltKeyed(state);\n return state.build(vdom);\n };\n var buildWidget = function (v, build, w) {\n var res = v.buildWidget(v)(w);\n var res$prime = Halogen_VDom_Machine.unStep(function (v1) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(v1.value0, {\n build: build,\n widget: res\n }, patchWidget, haltWidget));\n })(res);\n return res$prime;\n };\n var buildText = function (v, build, s) {\n var node = Halogen_VDom_Util.createTextNode(s, v.document);\n var state = {\n build: build,\n node: node,\n value: s\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchText, haltText));\n };\n var buildKeyed = function (v, build, ns1, name1, as1, ch1) {\n var el = Halogen_VDom_Util.createElement(Data_Nullable.toNullable(ns1), name1, v.document);\n var node = Web_DOM_Element.toNode(el);\n var onChild = function (k, ix, v1) {\n var res = build(v1.value1);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), node);\n return res;\n };\n var children = Halogen_VDom_Util.strMapWithIxE(ch1, Data_Tuple.fst, onChild);\n var attrs = v.buildAttributes(el)(as1);\n var state = {\n build: build,\n node: node,\n attrs: attrs,\n ns: ns1,\n name: name1,\n children: children,\n length: Data_Array.length(ch1)\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchKeyed, haltKeyed));\n };\n var buildElem = function (v, build, ns1, name1, as1, ch1) {\n var el = Halogen_VDom_Util.createElement(Data_Nullable.toNullable(ns1), name1, v.document);\n var node = Web_DOM_Element.toNode(el);\n var onChild = function (ix, child) {\n var res = build(child);\n Halogen_VDom_Util.insertChildIx(ix, Halogen_VDom_Machine.extract(res), node);\n return res;\n };\n var children = Halogen_VDom_Util.forE(ch1, onChild);\n var attrs = v.buildAttributes(el)(as1);\n var state = {\n build: build,\n node: node,\n attrs: attrs,\n ns: ns1,\n name: name1,\n children: children\n };\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, state, patchElem, haltElem));\n };\n var buildVDom = function (spec) {\n var build = function (v) {\n if (v instanceof Halogen_VDom_Types.Text) {\n return buildText(spec, build, v.value0);\n };\n if (v instanceof Halogen_VDom_Types.Elem) {\n return buildElem(spec, build, v.value0, v.value1, v.value2, v.value3);\n };\n if (v instanceof Halogen_VDom_Types.Keyed) {\n return buildKeyed(spec, build, v.value0, v.value1, v.value2, v.value3);\n };\n if (v instanceof Halogen_VDom_Types.Widget) {\n return buildWidget(spec, build, v.value0);\n };\n if (v instanceof Halogen_VDom_Types.Grafted) {\n return build(Halogen_VDom_Types.runGraft(v.value0));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.DOM (line 58, column 27 - line 63, column 52): \" + [ v.constructor.name ]);\n };\n return build;\n };\n exports[\"buildVDom\"] = buildVDom;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.VDom.Thunk\"] = $PS[\"Halogen.VDom.Thunk\"] || {};\n var exports = $PS[\"Halogen.VDom.Thunk\"];\n var Halogen_VDom_DOM = $PS[\"Halogen.VDom.DOM\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Util = $PS[\"Halogen.VDom.Util\"]; \n var Thunk = (function () {\n function Thunk(value0, value1, value2, value3) {\n this.value0 = value0;\n this.value1 = value1;\n this.value2 = value2;\n this.value3 = value3;\n };\n Thunk.create = function (value0) {\n return function (value1) {\n return function (value2) {\n return function (value3) {\n return new Thunk(value0, value1, value2, value3);\n };\n };\n };\n };\n return Thunk;\n })(); \n var unsafeEqThunk = function (v, v1) {\n return Halogen_VDom_Util.refEq(v.value0, v1.value0) && (Halogen_VDom_Util.refEq(v.value1, v1.value1) && Halogen_VDom_Util.refEq(v.value3, v1.value3));\n };\n var thunk = function (tid, eqFn, f, a) {\n return new Thunk(tid, eqFn, f, a);\n };\n var runThunk = function (v) {\n return v.value2(v.value3);\n };\n var buildThunk = function (toVDom) {\n var haltThunk = function (state) {\n return Halogen_VDom_Machine.halt(state.vdom);\n };\n var patchThunk = function (state, t2) {\n var $43 = unsafeEqThunk(state.thunk, t2);\n if ($43) {\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(state.vdom), state, patchThunk, haltThunk));\n };\n var vdom = Halogen_VDom_Machine.step(state.vdom, toVDom(runThunk(t2)));\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(vdom), {\n vdom: vdom,\n thunk: t2\n }, patchThunk, haltThunk));\n };\n var renderThunk = function (spec) {\n return function (t) {\n var vdom = Halogen_VDom_DOM.buildVDom(spec)(toVDom(runThunk(t)));\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(vdom), {\n thunk: t,\n vdom: vdom\n }, patchThunk, haltThunk));\n };\n };\n return renderThunk;\n };\n exports[\"buildThunk\"] = buildThunk;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n var getEffProp = function (name) {\n return function (node) {\n return function () {\n return node[name];\n };\n };\n }; \n\n exports._parentNode = getEffProp(\"parentNode\"); \n\n exports._nextSibling = getEffProp(\"nextSibling\");\n\n exports.insertBefore = function (node1) {\n return function (node2) {\n return function (parent) {\n return function () {\n return parent.insertBefore(node1, node2);\n };\n };\n };\n };\n\n exports.appendChild = function (node) {\n return function (parent) {\n return function () {\n return parent.appendChild(node);\n };\n };\n };\n\n exports.removeChild = function (node) {\n return function (parent) {\n return function () {\n return parent.removeChild(node);\n };\n };\n };\n})(PS[\"Web.DOM.Node\"] = PS[\"Web.DOM.Node\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Web.DOM.Node\"] = $PS[\"Web.DOM.Node\"] || {};\n var exports = $PS[\"Web.DOM.Node\"];\n var $foreign = $PS[\"Web.DOM.Node\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Nullable = $PS[\"Data.Nullable\"];\n var Effect = $PS[\"Effect\"];\n var parentNode = (function () {\n var $3 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($4) {\n return $3($foreign[\"_parentNode\"]($4));\n };\n })();\n var nextSibling = (function () {\n var $14 = Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe);\n return function ($15) {\n return $14($foreign[\"_nextSibling\"]($15));\n };\n })();\n exports[\"parentNode\"] = parentNode;\n exports[\"nextSibling\"] = nextSibling;\n exports[\"insertBefore\"] = $foreign.insertBefore;\n exports[\"appendChild\"] = $foreign.appendChild;\n exports[\"removeChild\"] = $foreign.removeChild;\n})(PS);\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Halogen.VDom.Driver\"] = $PS[\"Halogen.VDom.Driver\"] || {};\n var exports = $PS[\"Halogen.VDom.Driver\"];\n var Control_Applicative = $PS[\"Control.Applicative\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Control_Category = $PS[\"Control.Category\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_HeytingAlgebra = $PS[\"Data.HeytingAlgebra\"];\n var Data_Maybe = $PS[\"Data.Maybe\"];\n var Data_Newtype = $PS[\"Data.Newtype\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Effect_Ref = $PS[\"Effect.Ref\"];\n var Halogen_Aff_Driver = $PS[\"Halogen.Aff.Driver\"];\n var Halogen_Aff_Driver_State = $PS[\"Halogen.Aff.Driver.State\"];\n var Halogen_Component = $PS[\"Halogen.Component\"];\n var Halogen_HTML_Core = $PS[\"Halogen.HTML.Core\"];\n var Halogen_VDom_DOM = $PS[\"Halogen.VDom.DOM\"];\n var Halogen_VDom_DOM_Prop = $PS[\"Halogen.VDom.DOM.Prop\"];\n var Halogen_VDom_Machine = $PS[\"Halogen.VDom.Machine\"];\n var Halogen_VDom_Thunk = $PS[\"Halogen.VDom.Thunk\"];\n var Unsafe_Reference = $PS[\"Unsafe.Reference\"];\n var Web_DOM_Node = $PS[\"Web.DOM.Node\"];\n var Web_HTML = $PS[\"Web.HTML\"];\n var Web_HTML_HTMLDocument = $PS[\"Web.HTML.HTMLDocument\"];\n var Web_HTML_HTMLElement = $PS[\"Web.HTML.HTMLElement\"];\n var Web_HTML_Window = $PS[\"Web.HTML.Window\"];\n var substInParent = function (v) {\n return function (v1) {\n return function (v2) {\n if (v1 instanceof Data_Maybe.Just && v2 instanceof Data_Maybe.Just) {\n return Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.insertBefore(v)(v1.value0)(v2.value0));\n };\n if (v1 instanceof Data_Maybe.Nothing && v2 instanceof Data_Maybe.Just) {\n return Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.appendChild(v)(v2.value0));\n };\n return Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit);\n };\n };\n };\n var removeChild = function (v) {\n return function __do() {\n var npn = Web_DOM_Node.parentNode(v.node)();\n return Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(function (pn) {\n return Web_DOM_Node.removeChild(v.node)(pn);\n })(npn)();\n };\n };\n var mkSpec = function (handler) {\n return function (renderChildRef) {\n return function (document) {\n var getNode = Halogen_Aff_Driver_State.unRenderStateX(function (v) {\n return v.node;\n });\n var done = function (st) {\n if (st instanceof Data_Maybe.Just) {\n return Halogen_VDom_Machine.halt(st.value0);\n };\n return Data_Unit.unit;\n };\n var buildWidget = function (spec) {\n var buildThunk = Halogen_VDom_Thunk.buildThunk(Data_Newtype.unwrap(Halogen_HTML_Core.newtypeHTML))(spec);\n var renderComponentSlot = function (cs) {\n var renderChild = Effect_Ref.read(renderChildRef)();\n var rsx = renderChild(cs)();\n var node = getNode(rsx);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(node, Data_Maybe.Nothing.value, patch, done));\n };\n var render = function (slot) {\n if (slot instanceof Halogen_Component.ComponentSlot) {\n return renderComponentSlot(slot.value0);\n };\n if (slot instanceof Halogen_Component.ThunkSlot) {\n var step = buildThunk(slot.value0);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(step), new Data_Maybe.Just(step), patch, done));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 85, column 7 - line 90, column 75): \" + [ slot.constructor.name ]);\n };\n var patch = function (st, slot) {\n if (st instanceof Data_Maybe.Just) {\n if (slot instanceof Halogen_Component.ComponentSlot) {\n Halogen_VDom_Machine.halt(st.value0);\n return renderComponentSlot(slot.value0);\n };\n if (slot instanceof Halogen_Component.ThunkSlot) {\n var step$prime = Halogen_VDom_Machine.step(st.value0, slot.value0);\n return Halogen_VDom_Machine.mkStep(new Halogen_VDom_Machine.Step(Halogen_VDom_Machine.extract(step$prime), new Data_Maybe.Just(step$prime), patch, done));\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 98, column 22 - line 104, column 79): \" + [ slot.constructor.name ]);\n };\n return render(slot);\n };\n return render;\n };\n var buildAttributes = Halogen_VDom_DOM_Prop.buildProp(handler);\n return {\n buildWidget: buildWidget,\n buildAttributes: buildAttributes,\n document: document\n };\n };\n };\n };\n var renderSpec = function (document) {\n return function (container) {\n var render = function (handler) {\n return function (child) {\n return function (v) {\n return function (v1) {\n if (v1 instanceof Data_Maybe.Nothing) {\n return function __do() {\n var renderChildRef = Effect_Ref[\"new\"](child)();\n var spec = mkSpec(handler)(renderChildRef)(document);\n var machine = Halogen_VDom_DOM.buildVDom(spec)(v);\n var node = Halogen_VDom_Machine.extract(machine);\n Data_Functor[\"void\"](Effect.functorEffect)(Web_DOM_Node.appendChild(node)(Web_HTML_HTMLElement.toNode(container)))();\n return {\n machine: machine,\n node: node,\n renderChildRef: renderChildRef\n };\n };\n };\n if (v1 instanceof Data_Maybe.Just) {\n return function __do() {\n Effect_Ref.write(child)(v1.value0.renderChildRef)();\n var parent = Web_DOM_Node.parentNode(v1.value0.node)();\n var nextSib = Web_DOM_Node.nextSibling(v1.value0.node)();\n var machine$prime = Halogen_VDom_Machine.step(v1.value0.machine, v);\n var newNode = Halogen_VDom_Machine.extract(machine$prime);\n Control_Applicative.when(Effect.applicativeEffect)(Data_HeytingAlgebra.not(Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraFunction(Data_HeytingAlgebra.heytingAlgebraBoolean)))(Unsafe_Reference.unsafeRefEq)(v1.value0.node)(newNode))(substInParent(newNode)(nextSib)(parent))();\n return {\n machine: machine$prime,\n node: newNode,\n renderChildRef: v1.value0.renderChildRef\n };\n };\n };\n throw new Error(\"Failed pattern match at Halogen.VDom.Driver (line 159, column 5 - line 175, column 80): \" + [ v1.constructor.name ]);\n };\n };\n };\n };\n return {\n render: render,\n renderChild: Control_Category.identity(Control_Category.categoryFn),\n removeChild: removeChild,\n dispose: removeChild\n };\n };\n };\n var runUI = function (component) {\n return function (i) {\n return function (element) {\n return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Data_Functor.map(Effect.functorEffect)(Web_HTML_HTMLDocument.toDocument)(Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Window.document)(Web_HTML.window))))(function (document) {\n return Halogen_Aff_Driver.runUI(renderSpec(document)(element))(component)(i);\n });\n };\n };\n };\n exports[\"runUI\"] = runUI;\n})(PS);\n(function(exports) {\n \"use strict\";\n\n exports._mainImpl = function() {\n return window.PS = PS;\n }\n})(PS[\"Main\"] = PS[\"Main\"] || {});\n(function($PS) {\n // Generated by purs version 0.13.6\n \"use strict\";\n $PS[\"Main\"] = $PS[\"Main\"] || {};\n var exports = $PS[\"Main\"];\n var $foreign = $PS[\"Main\"];\n var App = $PS[\"App\"];\n var Component_AccountSettings = $PS[\"Component.AccountSettings\"];\n var Component_Add = $PS[\"Component.Add\"];\n var Component_BList = $PS[\"Component.BList\"];\n var Component_NList = $PS[\"Component.NList\"];\n var Component_NNote = $PS[\"Component.NNote\"];\n var Component_TagCloud = $PS[\"Component.TagCloud\"];\n var Control_Bind = $PS[\"Control.Bind\"];\n var Data_Foldable = $PS[\"Data.Foldable\"];\n var Data_Functor = $PS[\"Data.Functor\"];\n var Data_Unit = $PS[\"Data.Unit\"];\n var Effect = $PS[\"Effect\"];\n var Effect_Aff = $PS[\"Effect.Aff\"];\n var Effect_Class = $PS[\"Effect.Class\"];\n var Halogen_Aff_Util = $PS[\"Halogen.Aff.Util\"];\n var Halogen_VDom_Driver = $PS[\"Halogen.VDom.Driver\"];\n var Model = $PS[\"Model\"];\n var Web_DOM_Element = $PS[\"Web.DOM.Element\"];\n var Web_Event_Event = $PS[\"Web.Event.Event\"];\n var Web_HTML_HTMLElement = $PS[\"Web.HTML.HTMLElement\"]; \n var viewRendered = Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(\"#content\"))(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(function (el) {\n return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Web_DOM_Element.setAttribute(\"view-rendered\")(\"\")(Web_HTML_HTMLElement.toElement(el)));\n }));\n var renderTagCloud = function (renderElSelector) {\n return function (tagCloudMode) {\n return Halogen_Aff_Util.runHalogenAff(Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(renderElSelector))(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(function (el) {\n return Data_Functor[\"void\"](Effect_Aff.functorAff)(Halogen_VDom_Driver.runUI(Component_TagCloud.tagcloudcomponent(Model.tagCloudModeToF(tagCloudMode)))(Data_Unit.unit)(el));\n })));\n };\n };\n var renderNotes = function (renderElSelector) {\n return function (notes) {\n return Halogen_Aff_Util.runHalogenAff(Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(renderElSelector))(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(function (el) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor[\"void\"](Effect_Aff.functorAff)(Halogen_VDom_Driver.runUI(Component_NList.nlist(notes))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n };\n var renderNote = function (renderElSelector) {\n return function (note) {\n return Halogen_Aff_Util.runHalogenAff(Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(renderElSelector))(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(function (el) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor[\"void\"](Effect_Aff.functorAff)(Halogen_VDom_Driver.runUI(Component_NNote.nnote(note))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n };\n var renderBookmarks = function (renderElSelector) {\n return function (bmarks) {\n return Halogen_Aff_Util.runHalogenAff(Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(renderElSelector))(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(function (el) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor[\"void\"](Effect_Aff.functorAff)(Halogen_VDom_Driver.runUI(Component_BList.blist(bmarks))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n };\n var renderAddForm = function (renderElSelector) {\n return function (bmark) {\n return Halogen_Aff_Util.runHalogenAff(Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(renderElSelector))(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(function (el) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor[\"void\"](Effect_Aff.functorAff)(Halogen_VDom_Driver.runUI(Component_Add.addbmark(bmark))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n };\n var renderAccountSettings = function (renderElSelector) {\n return function (accountSettings) {\n return Halogen_Aff_Util.runHalogenAff(Control_Bind.bind(Effect_Aff.bindAff)(Halogen_Aff_Util.selectElement(renderElSelector))(Data_Foldable.traverse_(Effect_Aff.applicativeAff)(Data_Foldable.foldableMaybe)(function (el) {\n return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor[\"void\"](Effect_Aff.functorAff)(Halogen_VDom_Driver.runUI(Component_AccountSettings.usetting(accountSettings))(Data_Unit.unit)(el)))(function () {\n return viewRendered;\n });\n })));\n };\n };\n var main = $foreign[\"_mainImpl\"];\n var logoutE = function (e) {\n return Control_Bind.bindFlipped(Effect.bindEffect)((function () {\n var $0 = Data_Functor[\"void\"](Effect.functorEffect);\n return function ($1) {\n return $0(Effect_Aff.launchAff(App.logout($1)));\n };\n })())(Web_Event_Event.preventDefault(e));\n };\n exports[\"main\"] = main;\n exports[\"logoutE\"] = logoutE;\n exports[\"renderBookmarks\"] = renderBookmarks;\n exports[\"renderTagCloud\"] = renderTagCloud;\n exports[\"renderAddForm\"] = renderAddForm;\n exports[\"renderNotes\"] = renderNotes;\n exports[\"renderNote\"] = renderNote;\n exports[\"renderAccountSettings\"] = renderAccountSettings;\n exports[\"viewRendered\"] = viewRendered;\n exports[\"_mainImpl\"] = $foreign[\"_mainImpl\"];\n})(PS);\nPS[\"Main\"].main();"]} \ No newline at end of file diff --git a/static/js/app.min.js.map.gz b/static/js/app.min.js.map.gz index 66142ed70c5f1e900aeb3c6d24d933fd78b550c3..0dc5d1c74772d4edf3df5a3fcad583dd91c4f08e 100644 GIT binary patch literal 247241 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μnoSz$|;_C6$dfe;>nkJ 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
    Lsh|!CAtxKILCKW5AMQIiGj=4QS$R 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

    a0#QTQSd@W`6@e^f}N>eGq2S9 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%0As=QiP;2{KqP|qz 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 O{`Egi?at?r5EB3=ryg|x literal 233416 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%0D*FHPDMNv$~N8tEt&lnyHQ>;vKLhn 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

    UDIeuI8Jw#&2F|PHx&jLCmrBk+oaxy0LirO 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�-nwk|UPcdijQVT9DZ>oDE`jJQU{Nsyp&F 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 z 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�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%0D1+O@sqCo|}QUo?Qo_8k4CpIE_T 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 OKmP~5i4q#O@DTt+KA5rq diff --git a/templates/user.hamlet b/templates/user.hamlet index 9357f85..12d7904 100644 --- a/templates/user.hamlet +++ b/templates/user.hamlet @@ -41,6 +41,8 @@ $maybe route <- mroute