@dxos/vendor-hypercore 0.8.4-main.1da679c → 0.8.4-main.e098934

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../node_modules/.pnpm/last-one-wins@1.0.4/node_modules/last-one-wins/index.js", "../../../../../node_modules/.pnpm/unordered-array-remove@1.0.2/node_modules/unordered-array-remove/index.js", "../../../../../node_modules/.pnpm/unordered-set@2.0.1/node_modules/unordered-set/index.js", "../../../../../node_modules/.pnpm/flat-tree@1.9.0/node_modules/flat-tree/index.js", "../../../../../node_modules/.pnpm/merkle-tree-stream@4.0.0/node_modules/merkle-tree-stream/generator.js", "../../../../../node_modules/.pnpm/codecs@2.2.0/node_modules/codecs/index.js", "../../../../../node_modules/.pnpm/atomic-batcher@1.0.2/node_modules/atomic-batcher/index.js", "../../../../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js", "../../../../../node_modules/.pnpm/varint@4.0.1/node_modules/varint/encode.js", "../../../../../node_modules/.pnpm/varint@4.0.1/node_modules/varint/decode.js", "../../../../../node_modules/.pnpm/varint@4.0.1/node_modules/varint/length.js", "../../../../../node_modules/.pnpm/varint@4.0.1/node_modules/varint/index.js", "../../../../../node_modules/.pnpm/buffer-alloc-unsafe@1.1.0/node_modules/buffer-alloc-unsafe/index.js", "../../../../../node_modules/.pnpm/bitfield-rle@2.2.1/node_modules/bitfield-rle/index.js", "../../../../../node_modules/.pnpm/memory-pager@1.5.0/node_modules/memory-pager/index.js", "../../../../../node_modules/.pnpm/sparse-bitfield@3.0.3/node_modules/sparse-bitfield/index.js", "../../../../../node_modules/.pnpm/hypercore@9.12.0/node_modules/hypercore/lib/bitfield.js", "../../../../../node_modules/.pnpm/hypercore@9.12.0/node_modules/hypercore/lib/tree-index.js", "../../../../../node_modules/.pnpm/buffer-fill@1.0.0/node_modules/buffer-fill/index.js", "../../../../../node_modules/.pnpm/buffer-alloc@1.2.0/node_modules/buffer-alloc/index.js", "../../../../../node_modules/.pnpm/uint64be@2.0.2/node_modules/uint64be/index.js", "../../../../../node_modules/.pnpm/hypercore-cache@1.0.2/node_modules/hypercore-cache/index.js", "../../../../../node_modules/.pnpm/hypercore@9.12.0/node_modules/hypercore/lib/cache.js", "../../../../../node_modules/.pnpm/hypercore@9.12.0/node_modules/hypercore/lib/storage.js", "../../../../../node_modules/.pnpm/inspect-custom-symbol@1.1.1/node_modules/inspect-custom-symbol/browser.js", "../../../../../node_modules/.pnpm/pretty-hash@1.0.1/node_modules/pretty-hash/index.js", "../../../../../node_modules/.pnpm/nanoguard@1.3.0/node_modules/nanoguard/index.js", "../../../../../node_modules/.pnpm/hypercore@9.12.0/node_modules/hypercore/lib/safe-buffer-equals.js", "../../../../../node_modules/.pnpm/nanoassert@2.0.0/node_modules/nanoassert/index.js", "../../../../../node_modules/.pnpm/clone@2.1.2/node_modules/clone/clone.js", "../../../../../node_modules/.pnpm/noise-protocol@3.0.1/node_modules/noise-protocol/cipher.js", "../../../../../node_modules/.pnpm/noise-protocol@3.0.1/node_modules/noise-protocol/cipher-state.js", "../../../../../node_modules/.pnpm/nanoassert@1.1.0/node_modules/nanoassert/index.js", "../../../../../node_modules/.pnpm/hmac-blake2b@2.0.0/node_modules/hmac-blake2b/index.js", "../../../../../node_modules/.pnpm/noise-protocol@3.0.1/node_modules/noise-protocol/dh.js", "../../../../../node_modules/.pnpm/noise-protocol@3.0.1/node_modules/noise-protocol/hash.js", "../../../../../node_modules/.pnpm/noise-protocol@3.0.1/node_modules/noise-protocol/symmetric-state.js", "../../../../../node_modules/.pnpm/noise-protocol@3.0.1/node_modules/noise-protocol/handshake-state.js", "../../../../../node_modules/.pnpm/noise-protocol@3.0.1/node_modules/noise-protocol/index.js", "../../../../../node_modules/.pnpm/simple-handshake@3.0.0/node_modules/simple-handshake/index.js", "../../../../../node_modules/.pnpm/varint@5.0.2/node_modules/varint/encode.js", "../../../../../node_modules/.pnpm/varint@5.0.2/node_modules/varint/decode.js", "../../../../../node_modules/.pnpm/varint@5.0.2/node_modules/varint/length.js", "../../../../../node_modules/.pnpm/varint@5.0.2/node_modules/varint/index.js", "../../../../../node_modules/.pnpm/simple-hypercore-protocol@2.1.2/node_modules/simple-hypercore-protocol/lib/handshake.js", "../../../../../node_modules/.pnpm/varint@5.0.0/node_modules/varint/encode.js", "../../../../../node_modules/.pnpm/varint@5.0.0/node_modules/varint/decode.js", "../../../../../node_modules/.pnpm/varint@5.0.0/node_modules/varint/length.js", "../../../../../node_modules/.pnpm/varint@5.0.0/node_modules/varint/index.js", "../../../../../node_modules/.pnpm/signed-varint@2.0.1/node_modules/signed-varint/index.js", "../../../../../node_modules/.pnpm/b4a@1.6.4/node_modules/b4a/lib/ascii.js", "../../../../../node_modules/.pnpm/b4a@1.6.4/node_modules/b4a/lib/base64.js", "../../../../../node_modules/.pnpm/b4a@1.6.4/node_modules/b4a/lib/hex.js", "../../../../../node_modules/.pnpm/b4a@1.6.4/node_modules/b4a/lib/utf8.js", "../../../../../node_modules/.pnpm/b4a@1.6.4/node_modules/b4a/lib/utf16le.js", "../../../../../node_modules/.pnpm/b4a@1.6.4/node_modules/b4a/browser.js", "../../../../../node_modules/.pnpm/protocol-buffers-encodings@1.2.0/node_modules/protocol-buffers-encodings/index.js", "../../../../../node_modules/.pnpm/simple-hypercore-protocol@2.1.2/node_modules/simple-hypercore-protocol/messages.js", "../../../../../node_modules/.pnpm/xsalsa20@1.2.0/node_modules/xsalsa20/xsalsa20.js", "../../../../../node_modules/.pnpm/xsalsa20@1.2.0/node_modules/xsalsa20/index.js", "../../../../../node_modules/.pnpm/xsalsa20-universal@1.0.0/node_modules/xsalsa20-universal/browser.js", "../../../../../node_modules/.pnpm/simple-hypercore-protocol@2.1.2/node_modules/simple-hypercore-protocol/lib/xor.js", "../../../../../node_modules/.pnpm/simple-message-channels@1.2.1/node_modules/simple-message-channels/index.js", "../../../../../node_modules/.pnpm/simple-hypercore-protocol@2.1.2/node_modules/simple-hypercore-protocol/index.js", "../../../../../node_modules/.pnpm/timeout-refresh@1.0.3/node_modules/timeout-refresh/browser.js", "../../../../../node_modules/.pnpm/abstract-extension@3.1.1/node_modules/abstract-extension/index.js", "../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js", "../../../../../node_modules/.pnpm/debug@4.4.1/node_modules/debug/src/common.js", "../../../../../node_modules/.pnpm/debug@4.4.1/node_modules/debug/src/browser.js", "../../../../../node_modules/.pnpm/hypercore-protocol@8.0.7/node_modules/hypercore-protocol/index.js", "../../../../../node_modules/.pnpm/count-trailing-zeros@1.0.1/node_modules/count-trailing-zeros/ctz.js", "../../../../../node_modules/.pnpm/fast-bitfield@1.2.2/node_modules/fast-bitfield/index.js", "../../../../../node_modules/.pnpm/hypercore@9.12.0/node_modules/hypercore/lib/replicate.js", "../../../../../node_modules/.pnpm/nanoresource@1.3.0/node_modules/nanoresource/emitter.js", "../../../src/empty.js", "../../../../../node_modules/.pnpm/hypercore-streams@1.0.1/node_modules/hypercore-streams/index.js", "../../../../../node_modules/.pnpm/hypercore@9.12.0/node_modules/hypercore/index.js", "../../../src/hypercore.js"],
4
4
  "sourcesContent": ["module.exports = function (work) {\n var pending = null\n var callback = null\n var callbacks = null\n var next = null\n\n return function (val, cb) {\n next = val\n update(cb || noop)\n }\n\n function update (cb) {\n if (callback) {\n if (!pending) pending = []\n pending.push(cb)\n return\n }\n\n var val = next\n next = null\n callback = cb\n work(val, done)\n }\n\n function done (err) {\n var cb = callback\n var cbs = callbacks\n callbacks = null\n callback = null\n\n if (pending) {\n callbacks = pending\n pending = null\n update(noop)\n }\n\n if (cbs) {\n for (var i = 0; i < cbs.length; i++) cbs[i](err)\n }\n cb(err)\n }\n}\n\nfunction noop (_) {}\n", "module.exports = remove\n\nfunction remove (arr, i) {\n if (i >= arr.length || i < 0) return\n var last = arr.pop()\n if (i < arr.length) {\n var tmp = arr[i]\n arr[i] = last\n return tmp\n }\n return last\n}\n", "exports.add = add\nexports.has = has\nexports.remove = remove\nexports.swap = swap\n\nfunction add (list, item) {\n if (has(list, item)) return item\n item._index = list.length\n list.push(item)\n return item\n}\n\nfunction has (list, item) {\n return item._index < list.length && list[item._index] === item\n}\n\nfunction remove (list, item) {\n if (!has(list, item)) return null\n\n var last = list.pop()\n if (last !== item) {\n list[item._index] = last\n last._index = item._index\n }\n\n return item\n}\n\nfunction swap (list, a, b) {\n if (!has(list, a) || !has(list, b)) return\n var tmp = a._index\n a._index = b._index\n list[a._index] = a\n b._index = tmp\n list[b._index] = b\n}\n", "exports.fullRoots = function (index, result) {\n if (index & 1) throw new Error('You can only look up roots for depth(0) blocks')\n if (!result) result = []\n\n index /= 2\n\n var offset = 0\n var factor = 1\n\n while (true) {\n if (!index) return result\n while (factor * 2 <= index) factor *= 2\n result.push(offset + factor - 1)\n offset = offset + 2 * factor\n index -= factor\n factor = 1\n }\n}\n\nexports.depth = function (index) {\n var depth = 0\n\n index += 1\n while (!(index & 1)) {\n depth++\n index = rightShift(index)\n }\n\n return depth\n}\n\nexports.sibling = function (index, depth) {\n if (!depth) depth = exports.depth(index)\n var offset = exports.offset(index, depth)\n\n return exports.index(depth, offset & 1 ? offset - 1 : offset + 1)\n}\n\nexports.parent = function (index, depth) {\n if (!depth) depth = exports.depth(index)\n var offset = exports.offset(index, depth)\n\n return exports.index(depth + 1, rightShift(offset))\n}\n\nexports.leftChild = function (index, depth) {\n if (!(index & 1)) return -1\n if (!depth) depth = exports.depth(index)\n return exports.index(depth - 1, exports.offset(index, depth) * 2)\n}\n\nexports.rightChild = function (index, depth) {\n if (!(index & 1)) return -1\n if (!depth) depth = exports.depth(index)\n return exports.index(depth - 1, 1 + (exports.offset(index, depth) * 2))\n}\n\nexports.children = function (index, depth) {\n if (!(index & 1)) return null\n\n if (!depth) depth = exports.depth(index)\n var offset = exports.offset(index, depth) * 2\n\n return [\n exports.index(depth - 1, offset),\n exports.index(depth - 1, offset + 1)\n ]\n}\n\nexports.leftSpan = function (index, depth) {\n if (!(index & 1)) return index\n if (!depth) depth = exports.depth(index)\n return exports.offset(index, depth) * twoPow(depth + 1)\n}\n\nexports.rightSpan = function (index, depth) {\n if (!(index & 1)) return index\n if (!depth) depth = exports.depth(index)\n return (exports.offset(index, depth) + 1) * twoPow(depth + 1) - 2\n}\n\nexports.count = function (index, depth) {\n if (!(index & 1)) return 1\n if (!depth) depth = exports.depth(index)\n return twoPow(depth + 1) - 1\n}\n\nexports.countLeaves = function (index) {\n return (exports.count(index) + 1) / 2\n}\n\nexports.spans = function (index, depth) {\n if (!(index & 1)) return [index, index]\n if (!depth) depth = exports.depth(index)\n\n var offset = exports.offset(index, depth)\n var width = twoPow(depth + 1)\n\n return [offset * width, (offset + 1) * width - 2]\n}\n\nexports.index = function (depth, offset) {\n return (1 + 2 * offset) * twoPow(depth) - 1\n}\n\nexports.offset = function (index, depth) {\n if (!(index & 1)) return index / 2\n if (!depth) depth = exports.depth(index)\n\n return ((index + 1) / twoPow(depth) - 1) / 2\n}\n\nexports.iterator = function (index) {\n var ite = new Iterator()\n ite.seek(index || 0)\n return ite\n}\n\nfunction twoPow (n) {\n return n < 31 ? 1 << n : ((1 << 30) * (1 << (n - 30)))\n}\n\nfunction rightShift (n) {\n return (n - (n & 1)) / 2\n}\n\nfunction Iterator () {\n this.index = 0\n this.offset = 0\n this.factor = 0\n}\n\nIterator.prototype.seek = function (index) {\n this.index = index\n if (this.index & 1) {\n this.offset = exports.offset(index)\n this.factor = twoPow(exports.depth(index) + 1)\n } else {\n this.offset = index / 2\n this.factor = 2\n }\n}\n\nIterator.prototype.isLeft = function () {\n return (this.offset & 1) === 0\n}\n\nIterator.prototype.isRight = function () {\n return (this.offset & 1) === 1\n}\n\nIterator.prototype.contains = function (index) {\n return index > this.index\n ? index < (this.index + this.factor / 2)\n : index < this.index\n ? index > (this.index - this.factor / 2)\n : true\n}\n\nIterator.prototype.prev = function () {\n if (!this.offset) return this.index\n this.offset--\n this.index -= this.factor\n return this.index\n}\n\nIterator.prototype.next = function () {\n this.offset++\n this.index += this.factor\n return this.index\n}\n\nIterator.prototype.count = function () {\n if (!(this.index & 1)) return 1\n return this.factor - 1\n}\n\nIterator.prototype.countLeaves = function () {\n return (this.count() + 1) / 2\n}\n\nIterator.prototype.sibling = function () {\n return this.isLeft() ? this.next() : this.prev()\n}\n\nIterator.prototype.parent = function () {\n if (this.offset & 1) {\n this.index -= this.factor / 2\n this.offset = (this.offset - 1) / 2\n } else {\n this.index += this.factor / 2\n this.offset /= 2\n }\n this.factor *= 2\n return this.index\n}\n\nIterator.prototype.leftSpan = function () {\n this.index = this.index - this.factor / 2 + 1\n this.offset = this.index / 2\n this.factor = 2\n return this.index\n}\n\nIterator.prototype.rightSpan = function () {\n this.index = this.index + this.factor / 2 - 1\n this.offset = this.index / 2\n this.factor = 2\n return this.index\n}\n\nIterator.prototype.leftChild = function () {\n if (this.factor === 2) return this.index\n this.factor /= 2\n this.index -= this.factor / 2\n this.offset *= 2\n return this.index\n}\n\nIterator.prototype.rightChild = function () {\n if (this.factor === 2) return this.index\n this.factor /= 2\n this.index += this.factor / 2\n this.offset = 2 * this.offset + 1\n return this.index\n}\n\nIterator.prototype.nextTree = function () {\n this.index = this.index + this.factor / 2 + 1\n this.offset = this.index / 2\n this.factor = 2\n return this.index\n}\n\nIterator.prototype.prevTree = function () {\n if (!this.offset) {\n this.index = 0\n this.factor = 2\n } else {\n this.index = this.index - this.factor / 2 - 1\n this.offset = this.index / 2\n this.factor = 2\n }\n return this.index\n}\n\nIterator.prototype.fullRoot = function (index) {\n if (index <= this.index || (this.index & 1) > 0) return false\n while (index > this.index + this.factor + this.factor / 2) {\n this.index += this.factor / 2\n this.factor *= 2\n this.offset /= 2\n }\n return true\n}\n", "// a more low level interface to the merkle tree stream.\n// useful for certain applications the require non-streamy access to the algos.\n// versioned by the same semver as the stream interface.\n\nconst flat = require('flat-tree')\n\nmodule.exports = class MerkleGenerator {\n constructor (opts, roots) {\n if (!opts || !opts.leaf || !opts.parent) throw new Error('opts.leaf and opts.parent required')\n\n this.roots = roots || opts.roots || []\n this.blocks = this.roots.length ? 1 + flat.rightSpan(this.roots[this.roots.length - 1].index) / 2 : 0\n\n for (var i = 0; i < this.roots.length; i++) {\n var r = this.roots[i]\n if (r && !r.parent) r.parent = flat.parent(r.index)\n }\n\n this._leaf = opts.leaf\n this._parent = opts.parent\n }\n\n next (data, nodes) {\n if (!Buffer.isBuffer(data)) data = Buffer.from(data)\n if (!nodes) nodes = []\n\n var index = 2 * this.blocks++\n\n var leaf = {\n index: index,\n parent: flat.parent(index),\n hash: null,\n size: data.length,\n data: data\n }\n\n leaf.hash = this._leaf(leaf, this.roots)\n this.roots.push(leaf)\n nodes.push(leaf)\n\n while (this.roots.length > 1) {\n var left = this.roots[this.roots.length - 2]\n var right = this.roots[this.roots.length - 1]\n\n if (left.parent !== right.parent) break\n\n this.roots.pop()\n this.roots[this.roots.length - 1] = leaf = {\n index: left.parent,\n parent: flat.parent(left.parent),\n hash: this._parent(left, right),\n size: left.size + right.size,\n data: null\n }\n nodes.push(leaf)\n }\n\n return nodes\n }\n}\n", "module.exports = codecs\n\ncodecs.ascii = createString('ascii')\ncodecs.utf8 = createString('utf-8')\ncodecs.hex = createString('hex')\ncodecs.base64 = createString('base64')\ncodecs.ucs2 = createString('ucs2')\ncodecs.utf16le = createString('utf16le')\ncodecs.ndjson = createJSON(true)\ncodecs.json = createJSON(false)\ncodecs.binary = {\n name: 'binary',\n encode: function encodeBinary (obj) {\n return typeof obj === 'string'\n ? Buffer.from(obj, 'utf-8')\n : Buffer.isBuffer(obj)\n ? obj\n : Buffer.from(obj.buffer, obj.byteOffset, obj.byteLength)\n },\n decode: function decodeBinary (buf) {\n return Buffer.isBuffer(buf)\n ? buf\n : Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength)\n }\n}\n\nfunction codecs (fmt, fallback) {\n if (typeof fmt === 'object' && fmt && fmt.encode && fmt.decode) return fmt\n\n switch (fmt) {\n case 'ndjson': return codecs.ndjson\n case 'json': return codecs.json\n case 'ascii': return codecs.ascii\n case 'utf-8':\n case 'utf8': return codecs.utf8\n case 'hex': return codecs.hex\n case 'base64': return codecs.base64\n case 'ucs-2':\n case 'ucs2': return codecs.ucs2\n case 'utf16-le':\n case 'utf16le': return codecs.utf16le\n }\n\n return fallback !== undefined ? fallback : codecs.binary\n}\n\nfunction createJSON (newline) {\n return {\n name: newline ? 'ndjson' : 'json',\n encode: newline ? encodeNDJSON : encodeJSON,\n decode: function decodeJSON (buf) {\n return JSON.parse(buf.toString())\n }\n }\n\n function encodeJSON (val) {\n return Buffer.from(JSON.stringify(val))\n }\n\n function encodeNDJSON (val) {\n return Buffer.from(JSON.stringify(val) + '\\n')\n }\n}\n\nfunction createString (type) {\n return {\n name: type,\n encode: function encodeString (val) {\n if (typeof val !== 'string') val = val.toString()\n return Buffer.from(val, type)\n },\n decode: function decodeString (buf) {\n return buf.toString(type)\n }\n }\n}\n", "module.exports = batcher\n\nfunction batcher (run) {\n var running = false\n var pendingBatch = null\n var pendingCallbacks = null\n var callbacks = null\n\n return append\n\n function done (err) {\n if (callbacks) callAll(callbacks, err)\n\n running = false\n callbacks = pendingCallbacks\n var nextBatch = pendingBatch\n\n pendingBatch = null\n pendingCallbacks = null\n\n if (!nextBatch || !nextBatch.length) {\n if (!callbacks || !callbacks.length) {\n callbacks = null\n return\n }\n if (!nextBatch) nextBatch = []\n }\n\n running = true\n run(nextBatch, done)\n }\n\n function append (val, cb) {\n if (running) {\n if (!pendingBatch) {\n pendingBatch = []\n pendingCallbacks = []\n }\n pushAll(pendingBatch, val)\n if (cb) pendingCallbacks.push(cb)\n } else {\n if (cb) callbacks = [cb]\n running = true\n run(Array.isArray(val) ? val : [val], done)\n }\n }\n}\n\nfunction pushAll (list, val) {\n if (Array.isArray(val)) pushArray(list, val)\n else list.push(val)\n}\n\nfunction pushArray (list, val) {\n for (var i = 0; i < val.length; i++) list.push(val[i])\n}\n\nfunction callAll (list, err) {\n for (var i = 0; i < list.length; i++) list[i](err)\n}\n", "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n", "module.exports = encode\n\nvar MSB = 0x80\n , REST = 0x7F\n , MSBALL = ~REST\n , INT = Math.pow(2, 31)\n\nfunction encode(num, out, offset) {\n out = out || []\n offset = offset || 0\n var oldOffset = offset\n\n while(num >= INT) {\n out[offset++] = (num & 0xFF) | MSB\n num /= 128\n }\n while(num & MSBALL) {\n out[offset++] = (num & 0xFF) | MSB\n num >>>= 7\n }\n out[offset] = num | 0\n \n encode.bytes = offset - oldOffset + 1\n \n return out\n}\n", "module.exports = read\n\nvar MSB = 0x80\n , REST = 0x7F\n\nfunction read(buf, offset) {\n var res = 0\n , offset = offset || 0\n , shift = 0\n , counter = offset\n , b\n , l = buf.length\n\n do {\n if(counter >= l) {\n read.bytes = 0\n read.bytesRead = 0 // DEPRECATED\n return undefined\n }\n b = buf[counter++]\n res += shift < 28\n ? (b & REST) << shift\n : (b & REST) * Math.pow(2, shift)\n shift += 7\n } while (b >= MSB)\n\n read.bytes = counter - offset\n\n return res\n}\n", "\nvar N1 = Math.pow(2, 7)\nvar N2 = Math.pow(2, 14)\nvar N3 = Math.pow(2, 21)\nvar N4 = Math.pow(2, 28)\nvar N5 = Math.pow(2, 35)\nvar N6 = Math.pow(2, 42)\nvar N7 = Math.pow(2, 49)\nvar N8 = Math.pow(2, 56)\nvar N9 = Math.pow(2, 63)\n\nmodule.exports = function (value) {\n return (\n value < N1 ? 1\n : value < N2 ? 2\n : value < N3 ? 3\n : value < N4 ? 4\n : value < N5 ? 5\n : value < N6 ? 6\n : value < N7 ? 7\n : value < N8 ? 8\n : value < N9 ? 9\n : 10\n )\n}\n", "module.exports = {\n encode: require('./encode.js')\n , decode: require('./decode.js')\n , encodingLength: require('./length.js')\n}\n", "function allocUnsafe (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n }\n\n if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n\n if (Buffer.allocUnsafe) {\n return Buffer.allocUnsafe(size)\n } else {\n return new Buffer(size)\n }\n}\n\nmodule.exports = allocUnsafe\n", "var varint = require('varint')\nvar alloc = require('buffer-alloc-unsafe')\n\nmodule.exports = align(1)\n\nfunction align (n) {\n var exports = {}\n\n exports.align = align\n\n exports.encode = encode\n exports.encode.bytes = 0\n exports.encodingLength = encodingLength\n\n exports.decode = decode\n exports.decode.bytes = 0\n exports.decodingLength = decodingLength\n\n return exports\n\n function State (input, output, offset) {\n this.inputOffset = 0\n this.inputLength = input.length\n this.input = input\n this.outputOffset = offset\n this.output = output\n }\n\n function encode (bitfield, buffer, offset) {\n if (!offset) offset = 0\n if (!buffer) buffer = alloc(encodingLength(bitfield))\n var state = new State(bitfield, buffer, offset)\n rle(state)\n encode.bytes = state.outputOffset - offset\n return buffer\n }\n\n function encodingLength (bitfield) {\n var state = new State(bitfield, null, 0)\n rle(state)\n return state.outputOffset\n }\n\n function decode (buffer, offset) {\n if (!offset) offset = 0\n\n var bitfield = alloc(decodingLength(buffer, offset))\n var ptr = 0\n\n while (offset < buffer.length) {\n var next = varint.decode(buffer, offset)\n var repeat = next & 1\n var len = repeat ? (next - (next & 3)) / 4 : next / 2\n\n offset += varint.decode.bytes\n\n if (repeat) {\n bitfield.fill(next & 2 ? 255 : 0, ptr, ptr + len)\n } else {\n buffer.copy(bitfield, ptr, offset, offset + len)\n offset += len\n }\n\n ptr += len\n }\n\n bitfield.fill(0, ptr)\n decode.bytes = buffer.length - offset\n\n return bitfield\n }\n\n function decodingLength (buffer, offset) {\n if (!offset) offset = 0\n\n var len = 0\n\n while (offset < buffer.length) {\n var next = varint.decode(buffer, offset)\n offset += varint.decode.bytes\n\n var repeat = next & 1\n var slice = repeat ? (next - (next & 3)) / 4 : next / 2\n\n len += slice\n if (!repeat) offset += slice\n }\n\n if (offset > buffer.length) throw new Error('Invalid RLE bitfield')\n\n if (len & (n - 1)) return len + (n - (len & (n - 1)))\n\n return len\n }\n\n function rle (state) {\n var len = 0\n var bits = 0\n var input = state.input\n\n while (state.inputLength > 0 && !input[state.inputLength - 1]) state.inputLength--\n\n for (var i = 0; i < state.inputLength; i++) {\n if (input[i] === bits) {\n len++\n continue\n }\n\n if (len) encodeUpdate(state, i, len, bits)\n\n if (input[i] === 0 || input[i] === 255) {\n bits = input[i]\n len = 1\n } else {\n len = 0\n }\n }\n\n if (len) encodeUpdate(state, state.inputLength, len, bits)\n encodeFinal(state)\n }\n\n function encodeHead (state, end) {\n var headLength = end - state.inputOffset\n varint.encode(2 * headLength, state.output, state.outputOffset)\n state.outputOffset += varint.encode.bytes\n state.input.copy(state.output, state.outputOffset, state.inputOffset, end)\n state.outputOffset += headLength\n }\n\n function encodeFinal (state) {\n var headLength = state.inputLength - state.inputOffset\n if (!headLength) return\n\n if (!state.output) {\n state.outputOffset += (headLength + varint.encodingLength(2 * headLength))\n } else {\n encodeHead(state, state.inputLength)\n }\n\n state.inputOffset = state.inputLength\n }\n\n function encodeUpdate (state, i, len, bit) {\n var headLength = i - len - state.inputOffset\n var headCost = (headLength ? varint.encodingLength(2 * headLength) + headLength : 0)\n var enc = 4 * len + (bit ? 2 : 0) + 1 // len << 2 | bit << 1 | 1\n var encCost = headCost + varint.encodingLength(enc)\n var baseCost = varint.encodingLength(2 * (i - state.inputOffset)) + i - state.inputOffset\n\n if (encCost >= baseCost) return\n\n if (!state.output) {\n state.outputOffset += encCost\n state.inputOffset = i\n return\n }\n\n if (headLength) encodeHead(state, i - len)\n\n varint.encode(enc, state.output, state.outputOffset)\n state.outputOffset += varint.encode.bytes\n state.inputOffset = i\n }\n}\n", "module.exports = Pager\n\nfunction Pager (pageSize, opts) {\n if (!(this instanceof Pager)) return new Pager(pageSize, opts)\n\n this.length = 0\n this.updates = []\n this.path = new Uint16Array(4)\n this.pages = new Array(32768)\n this.maxPages = this.pages.length\n this.level = 0\n this.pageSize = pageSize || 1024\n this.deduplicate = opts ? opts.deduplicate : null\n this.zeros = this.deduplicate ? alloc(this.deduplicate.length) : null\n}\n\nPager.prototype.updated = function (page) {\n while (this.deduplicate && page.buffer[page.deduplicate] === this.deduplicate[page.deduplicate]) {\n page.deduplicate++\n if (page.deduplicate === this.deduplicate.length) {\n page.deduplicate = 0\n if (page.buffer.equals && page.buffer.equals(this.deduplicate)) page.buffer = this.deduplicate\n break\n }\n }\n if (page.updated || !this.updates) return\n page.updated = true\n this.updates.push(page)\n}\n\nPager.prototype.lastUpdate = function () {\n if (!this.updates || !this.updates.length) return null\n var page = this.updates.pop()\n page.updated = false\n return page\n}\n\nPager.prototype._array = function (i, noAllocate) {\n if (i >= this.maxPages) {\n if (noAllocate) return\n grow(this, i)\n }\n\n factor(i, this.path)\n\n var arr = this.pages\n\n for (var j = this.level; j > 0; j--) {\n var p = this.path[j]\n var next = arr[p]\n\n if (!next) {\n if (noAllocate) return\n next = arr[p] = new Array(32768)\n }\n\n arr = next\n }\n\n return arr\n}\n\nPager.prototype.get = function (i, noAllocate) {\n var arr = this._array(i, noAllocate)\n var first = this.path[0]\n var page = arr && arr[first]\n\n if (!page && !noAllocate) {\n page = arr[first] = new Page(i, alloc(this.pageSize))\n if (i >= this.length) this.length = i + 1\n }\n\n if (page && page.buffer === this.deduplicate && this.deduplicate && !noAllocate) {\n page.buffer = copy(page.buffer)\n page.deduplicate = 0\n }\n\n return page\n}\n\nPager.prototype.set = function (i, buf) {\n var arr = this._array(i, false)\n var first = this.path[0]\n\n if (i >= this.length) this.length = i + 1\n\n if (!buf || (this.zeros && buf.equals && buf.equals(this.zeros))) {\n arr[first] = undefined\n return\n }\n\n if (this.deduplicate && buf.equals && buf.equals(this.deduplicate)) {\n buf = this.deduplicate\n }\n\n var page = arr[first]\n var b = truncate(buf, this.pageSize)\n\n if (page) page.buffer = b\n else arr[first] = new Page(i, b)\n}\n\nPager.prototype.toBuffer = function () {\n var list = new Array(this.length)\n var empty = alloc(this.pageSize)\n var ptr = 0\n\n while (ptr < list.length) {\n var arr = this._array(ptr, true)\n for (var i = 0; i < 32768 && ptr < list.length; i++) {\n list[ptr++] = (arr && arr[i]) ? arr[i].buffer : empty\n }\n }\n\n return Buffer.concat(list)\n}\n\nfunction grow (pager, index) {\n while (pager.maxPages < index) {\n var old = pager.pages\n pager.pages = new Array(32768)\n pager.pages[0] = old\n pager.level++\n pager.maxPages *= 32768\n }\n}\n\nfunction truncate (buf, len) {\n if (buf.length === len) return buf\n if (buf.length > len) return buf.slice(0, len)\n var cpy = alloc(len)\n buf.copy(cpy)\n return cpy\n}\n\nfunction alloc (size) {\n if (Buffer.alloc) return Buffer.alloc(size)\n var buf = new Buffer(size)\n buf.fill(0)\n return buf\n}\n\nfunction copy (buf) {\n var cpy = Buffer.allocUnsafe ? Buffer.allocUnsafe(buf.length) : new Buffer(buf.length)\n buf.copy(cpy)\n return cpy\n}\n\nfunction Page (i, buf) {\n this.offset = i * buf.length\n this.buffer = buf\n this.updated = false\n this.deduplicate = 0\n}\n\nfunction factor (n, out) {\n n = (n - (out[0] = (n & 32767))) / 32768\n n = (n - (out[1] = (n & 32767))) / 32768\n out[3] = ((n - (out[2] = (n & 32767))) / 32768) & 32767\n}\n", "var pager = require('memory-pager')\n\nmodule.exports = Bitfield\n\nfunction Bitfield (opts) {\n if (!(this instanceof Bitfield)) return new Bitfield(opts)\n if (!opts) opts = {}\n if (Buffer.isBuffer(opts)) opts = {buffer: opts}\n\n this.pageOffset = opts.pageOffset || 0\n this.pageSize = opts.pageSize || 1024\n this.pages = opts.pages || pager(this.pageSize)\n\n this.byteLength = this.pages.length * this.pageSize\n this.length = 8 * this.byteLength\n\n if (!powerOfTwo(this.pageSize)) throw new Error('The page size should be a power of two')\n\n this._trackUpdates = !!opts.trackUpdates\n this._pageMask = this.pageSize - 1\n\n if (opts.buffer) {\n for (var i = 0; i < opts.buffer.length; i += this.pageSize) {\n this.pages.set(i / this.pageSize, opts.buffer.slice(i, i + this.pageSize))\n }\n this.byteLength = opts.buffer.length\n this.length = 8 * this.byteLength\n }\n}\n\nBitfield.prototype.get = function (i) {\n var o = i & 7\n var j = (i - o) / 8\n\n return !!(this.getByte(j) & (128 >> o))\n}\n\nBitfield.prototype.getByte = function (i) {\n var o = i & this._pageMask\n var j = (i - o) / this.pageSize\n var page = this.pages.get(j, true)\n\n return page ? page.buffer[o + this.pageOffset] : 0\n}\n\nBitfield.prototype.set = function (i, v) {\n var o = i & 7\n var j = (i - o) / 8\n var b = this.getByte(j)\n\n return this.setByte(j, v ? b | (128 >> o) : b & (255 ^ (128 >> o)))\n}\n\nBitfield.prototype.toBuffer = function () {\n var all = alloc(this.pages.length * this.pageSize)\n\n for (var i = 0; i < this.pages.length; i++) {\n var next = this.pages.get(i, true)\n var allOffset = i * this.pageSize\n if (next) next.buffer.copy(all, allOffset, this.pageOffset, this.pageOffset + this.pageSize)\n }\n\n return all\n}\n\nBitfield.prototype.setByte = function (i, b) {\n var o = i & this._pageMask\n var j = (i - o) / this.pageSize\n var page = this.pages.get(j, false)\n\n o += this.pageOffset\n\n if (page.buffer[o] === b) return false\n page.buffer[o] = b\n\n if (i >= this.byteLength) {\n this.byteLength = i + 1\n this.length = this.byteLength * 8\n }\n\n if (this._trackUpdates) this.pages.updated(page)\n\n return true\n}\n\nfunction alloc (n) {\n if (Buffer.alloc) return Buffer.alloc(n)\n var b = new Buffer(n)\n b.fill(0)\n return b\n}\n\nfunction powerOfTwo (x) {\n return !(x & (x - 1))\n}\n", "var flat = require('flat-tree')\nvar rle = require('bitfield-rle')\nvar pager = require('memory-pager')\nvar bitfield = require('sparse-bitfield')\n\nvar INDEX_UPDATE_MASK = [63, 207, 243, 252]\nvar INDEX_ITERATE_MASK = [0, 192, 240, 252]\nvar DATA_ITERATE_MASK = [128, 192, 224, 240, 248, 252, 254, 255]\nvar DATA_UPDATE_MASK = [127, 191, 223, 239, 247, 251, 253, 254]\nvar MAP_PARENT_RIGHT = new Array(256)\nvar MAP_PARENT_LEFT = new Array(256)\nvar NEXT_DATA_0_BIT = new Array(256)\nvar NEXT_INDEX_0_BIT = new Array(256)\nvar TOTAL_1_BITS = new Array(256)\n\nfor (var i = 0; i < 256; i++) {\n var a = (i & (15 << 4)) >> 4\n var b = i & 15\n var nibble = [0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4]\n MAP_PARENT_RIGHT[i] = ((a === 15 ? 3 : a === 0 ? 0 : 1) << 2) | (b === 15 ? 3 : b === 0 ? 0 : 1)\n MAP_PARENT_LEFT[i] = MAP_PARENT_RIGHT[i] << 4\n NEXT_DATA_0_BIT[i] = i === 255 ? -1 : (8 - Math.ceil(Math.log(256 - i) / Math.log(2)))\n NEXT_INDEX_0_BIT[i] = i === 255 ? -1 : Math.floor(NEXT_DATA_0_BIT[i] / 2)\n TOTAL_1_BITS[i] = nibble[i >> 4] + nibble[i & 0x0F]\n}\n\nmodule.exports = Bitfield\n\nfunction Bitfield (pageSize, pages) {\n if (!(this instanceof Bitfield)) return new Bitfield(pageSize, pages)\n if (!pageSize) pageSize = 2048 + 1024 + 512\n\n var deduplicate = Buffer.allocUnsafe(pageSize)\n deduplicate.fill(255)\n\n this.indexSize = pageSize - 2048 - 1024\n this.pages = pager(pageSize, { deduplicate })\n\n if (pages) {\n for (var i = 0; i < pages.length; i++) {\n this.pages.set(i, pages[i])\n }\n }\n\n this.data = bitfield({\n pageSize: 1024,\n pageOffset: 0,\n pages: this.pages,\n trackUpdates: true\n })\n\n this.tree = bitfield({\n pageSize: 2048,\n pageOffset: 1024,\n pages: this.pages,\n trackUpdates: true\n })\n\n this.index = bitfield({\n pageSize: this.indexSize,\n pageOffset: 1024 + 2048,\n pages: this.pages,\n trackUpdates: true\n })\n\n this.length = this.data.length\n this._iterator = flat.iterator(0)\n}\n\nBitfield.prototype.set = function (i, value) {\n var o = i & 7\n i = (i - o) / 8\n var v = value ? this.data.getByte(i) | (128 >> o) : this.data.getByte(i) & DATA_UPDATE_MASK[o]\n\n if (!this.data.setByte(i, v)) return false\n this.length = this.data.length\n this._setIndex(i, v)\n return true\n}\n\nBitfield.prototype.get = function (i) {\n return this.data.get(i)\n}\n\nBitfield.prototype.total = function (start, end) {\n if (!start || start < 0) start = 0\n if (!end) end = this.data.length\n if (end < start) return 0\n if (end > this.data.length) {\n this._expand(end)\n }\n var o = start & 7\n var e = end & 7\n var pos = (start - o) / 8\n var last = (end - e) / 8\n var leftMask = (255 - (o ? DATA_ITERATE_MASK[o - 1] : 0))\n var rightMask = (e ? DATA_ITERATE_MASK[e - 1] : 0)\n var byte = this.data.getByte(pos)\n if (pos === last) {\n return TOTAL_1_BITS[byte & leftMask & rightMask]\n }\n var total = TOTAL_1_BITS[byte & leftMask]\n for (var i = pos + 1; i < last; i++) {\n total += TOTAL_1_BITS[this.data.getByte(i)]\n }\n total += TOTAL_1_BITS[this.data.getByte(last) & rightMask]\n return total\n}\n\n// TODO: use the index to speed this up *a lot*\nBitfield.prototype.compress = function (start, length) {\n if (!start && !length) return rle.encode(this.data.toBuffer())\n\n if (start + length > this.length) length = Math.max(1, this.length - start)\n var buf = Buffer.alloc(Math.ceil(length / 8))\n\n var p = start / this.data.pageSize / 8\n var end = p + length / this.data.pageSize / 8\n var offset = p * this.data.pageSize\n\n for (; p < end; p++) {\n var page = this.data.pages.get(p, true)\n if (!page || !page.buffer) continue\n page.buffer.copy(buf, p * this.data.pageSize - offset, this.data.pageOffset, this.data.pageOffset + this.data.pageSize)\n }\n\n return rle.encode(buf)\n}\n\nBitfield.prototype._setIndex = function (i, value) {\n // (a + b | c + d | e + f | g + h)\n // -> (a | b | c | d) (e | f | g | h)\n //\n\n var o = i & 3\n i = (i - o) / 4\n\n var bitfield = this.index\n var ite = this._iterator\n var start = 2 * i\n var byte = (bitfield.getByte(start) & INDEX_UPDATE_MASK[o]) | (getIndexValue(value) >> (2 * o))\n var len = bitfield.length\n var maxLength = this.pages.length * this.indexSize\n\n ite.seek(start)\n\n while (ite.index < maxLength && bitfield.setByte(ite.index, byte)) {\n if (ite.isLeft()) {\n byte = MAP_PARENT_LEFT[byte] | MAP_PARENT_RIGHT[bitfield.getByte(ite.sibling())]\n } else {\n byte = MAP_PARENT_RIGHT[byte] | MAP_PARENT_LEFT[bitfield.getByte(ite.sibling())]\n }\n ite.parent()\n }\n\n if (len !== bitfield.length) this._expand(len)\n\n return ite.index !== start\n}\n\nBitfield.prototype._expand = function (len) {\n var roots = flat.fullRoots(2 * len)\n var bitfield = this.index\n var ite = this._iterator\n var byte = 0\n\n for (var i = 0; i < roots.length; i++) {\n ite.seek(roots[i])\n byte = bitfield.getByte(ite.index)\n\n do {\n if (ite.isLeft()) {\n byte = MAP_PARENT_LEFT[byte] | MAP_PARENT_RIGHT[bitfield.getByte(ite.sibling())]\n } else {\n byte = MAP_PARENT_RIGHT[byte] | MAP_PARENT_LEFT[bitfield.getByte(ite.sibling())]\n }\n } while (setByteNoAlloc(bitfield, ite.parent(), byte))\n }\n}\n\nfunction setByteNoAlloc (bitfield, i, b) {\n if (8 * i >= bitfield.length) return false\n return bitfield.setByte(i, b)\n}\n\nBitfield.prototype.iterator = function (start, end) {\n var ite = new Iterator(this)\n\n ite.range(start || 0, end || this.length)\n ite.seek(0)\n\n return ite\n}\n\nfunction Iterator (bitfield) {\n this.start = 0\n this.end = 0\n\n this._indexEnd = 0\n this._pos = 0\n this._byte = 0\n this._bitfield = bitfield\n}\n\nIterator.prototype.range = function (start, end) {\n this.start = start\n this.end = end\n this._indexEnd = 2 * Math.ceil(end / 32)\n\n if (this.end > this._bitfield.length) {\n this._bitfield._expand(this.end)\n }\n\n return this\n}\n\nIterator.prototype.seek = function (offset) {\n offset += this.start\n if (offset < this.start) offset = this.start\n\n if (offset >= this.end) {\n this._pos = -1\n return this\n }\n\n var o = offset & 7\n\n this._pos = (offset - o) / 8\n this._byte = this._bitfield.data.getByte(this._pos) | (o ? DATA_ITERATE_MASK[o - 1] : 0)\n\n return this\n}\n\nIterator.prototype.random = function () {\n var i = this.seek(Math.floor(Math.random() * (this.end - this.start))).next()\n return i === -1 ? this.seek(0).next() : i\n}\n\nIterator.prototype.next = function () {\n if (this._pos === -1) return -1\n\n var dataBitfield = this._bitfield.data\n var free = NEXT_DATA_0_BIT[this._byte]\n\n while (free === -1) {\n this._byte = dataBitfield.getByte(++this._pos)\n free = NEXT_DATA_0_BIT[this._byte]\n\n if (free === -1) {\n this._pos = this._skipAhead(this._pos)\n if (this._pos === -1) return -1\n\n this._byte = dataBitfield.getByte(this._pos)\n free = NEXT_DATA_0_BIT[this._byte]\n }\n }\n\n this._byte |= DATA_ITERATE_MASK[free]\n\n var n = 8 * this._pos + free\n return n < this.end ? n : -1\n}\n\nIterator.prototype.peek = function () {\n if (this._pos === -1) return -1\n\n var free = NEXT_DATA_0_BIT[this._byte]\n var n = 8 * this._pos + free\n return n < this.end ? n : -1\n}\n\nIterator.prototype._skipAhead = function (start) {\n var indexBitfield = this._bitfield.index\n var treeEnd = this._indexEnd\n var ite = this._bitfield._iterator\n var o = start & 3\n\n ite.seek(2 * ((start - o) / 4))\n\n var treeByte = indexBitfield.getByte(ite.index) | INDEX_ITERATE_MASK[o]\n\n while (NEXT_INDEX_0_BIT[treeByte] === -1) {\n if (ite.isLeft()) {\n ite.next()\n } else {\n ite.next()\n ite.parent()\n }\n\n if (rightSpan(ite) >= treeEnd) {\n while (rightSpan(ite) >= treeEnd && isParent(ite)) ite.leftChild()\n if (rightSpan(ite) >= treeEnd) return -1\n }\n\n treeByte = indexBitfield.getByte(ite.index)\n }\n\n while (ite.factor > 2) {\n if (NEXT_INDEX_0_BIT[treeByte] < 2) ite.leftChild()\n else ite.rightChild()\n\n treeByte = indexBitfield.getByte(ite.index)\n }\n\n var free = NEXT_INDEX_0_BIT[treeByte]\n if (free === -1) free = 4\n\n var next = ite.index * 2 + free\n\n return next <= start ? start + 1 : next\n}\n\nfunction rightSpan (ite) {\n return ite.index + ite.factor / 2 - 1\n}\n\nfunction isParent (ite) {\n return ite.index & 1\n}\n\nfunction getIndexValue (n) {\n switch (n) {\n case 255: return 192\n case 0: return 0\n default: return 64\n }\n}\n", "var flat = require('flat-tree')\nvar bitfield = require('sparse-bitfield')\n\nmodule.exports = TreeIndex\n\nfunction TreeIndex (bits) {\n if (!(this instanceof TreeIndex)) return new TreeIndex(bits)\n this.bitfield = bits || bitfield()\n}\n\nTreeIndex.prototype.proof = function (index, opts) {\n if (!opts) opts = {}\n\n var nodes = []\n var remoteTree = opts.tree || new TreeIndex()\n var digest = opts.digest || 0\n\n if (!this.get(index)) return null\n if (opts.hash) nodes.push(index) // always return hash - no matter what the digest says\n if (digest === 1) return { nodes: nodes, verifiedBy: 0 }\n\n var roots = null\n var sibling = index\n var next = index\n var hasRoot = digest & 1\n digest = rightShift(digest)\n\n while (digest) {\n if (digest === 1 && hasRoot) {\n if (this.get(next)) remoteTree.set(next)\n\n // having a root implies having prev roots as well\n // TODO: this can be optimized away be only sending \"newer\" roots,\n // when sending roots\n if (flat.sibling(next) < next) next = flat.sibling(next)\n roots = flat.fullRoots(flat.rightSpan(next) + 2)\n for (var i = 0; i < roots.length; i++) {\n if (this.get(roots[i])) remoteTree.set(roots[i])\n }\n break\n }\n\n sibling = flat.sibling(next)\n if (digest & 1) {\n if (this.get(sibling)) remoteTree.set(sibling)\n }\n next = flat.parent(next)\n digest = rightShift(digest)\n }\n\n next = index\n\n while (!remoteTree.get(next)) {\n sibling = flat.sibling(next)\n if (!this.get(sibling)) {\n // next is a local root\n var verifiedBy = this.verifiedBy(next)\n addFullRoots(verifiedBy, nodes, next, remoteTree)\n return { nodes: nodes, verifiedBy: verifiedBy }\n } else {\n if (!remoteTree.get(sibling)) nodes.push(sibling)\n }\n\n next = flat.parent(next)\n }\n\n return { nodes: nodes, verifiedBy: 0 }\n}\n\nTreeIndex.prototype.digest = function (index) {\n if (this.get(index)) return 1\n\n var digest = 0\n var next = flat.sibling(index)\n var max = Math.max(next + 2, this.bitfield.length) // TODO: make this less ... hacky\n\n var bit = 2\n var depth = flat.depth(index)\n var parent = flat.parent(next, depth++)\n\n while (flat.rightSpan(next) < max || flat.leftSpan(parent) > 0) {\n if (this.get(next)) {\n digest += bit // + cause in this case it's the same as | but works for large nums\n }\n if (this.get(parent)) {\n digest += 2 * bit\n if (!(digest & 1)) digest += 1\n if (digest + 1 === 4 * bit) return 1\n return digest\n }\n next = flat.sibling(parent)\n parent = flat.parent(next, depth++)\n bit *= 2\n }\n\n return digest\n}\n\nTreeIndex.prototype.blocks = function () {\n var top = 0\n var next = 0\n var max = this.bitfield.length\n\n while (flat.rightSpan(next) < max) {\n next = flat.parent(next)\n if (this.get(next)) top = next\n }\n\n return (this.get(top) ? this.verifiedBy(top) : 0) / 2\n}\n\nTreeIndex.prototype.roots = function () {\n return flat.fullRoots(2 * this.blocks())\n}\n\nTreeIndex.prototype.verifiedBy = function (index, nodes) {\n var hasIndex = this.get(index)\n if (!hasIndex) return 0\n\n // find root of current tree\n\n var depth = flat.depth(index)\n var top = index\n var parent = flat.parent(top, depth++)\n while (this.get(parent) && this.get(flat.sibling(top))) {\n top = parent\n parent = flat.parent(top, depth++)\n }\n\n // expand right down\n\n depth--\n while (depth) {\n top = flat.leftChild(flat.index(depth, flat.offset(top, depth) + 1), depth)\n depth--\n\n while (!this.get(top) && depth) top = flat.leftChild(top, depth--)\n if (nodes && this.get(top)) nodes.push(top)\n }\n\n return this.get(top) ? top + 2 : top\n}\n\nTreeIndex.prototype.get = function (index) {\n return this.bitfield.get(index)\n}\n\nTreeIndex.prototype.truncate = function (len) {\n const currentLen = 2 * this.blocks()\n const roots = flat.fullRoots(len)\n\n for (let i = len; i < currentLen; i++) {\n this.bitfield.set(i, false)\n }\n\n for (const root of roots) {\n let p = flat.parent(root)\n while (p < len) {\n this.bitfield.set(p, false)\n p = flat.parent(p)\n }\n }\n}\n\nTreeIndex.prototype.set = function (index) {\n if (!this.bitfield.set(index, true)) return false\n while (this.bitfield.get(flat.sibling(index))) {\n index = flat.parent(index)\n if (!this.bitfield.set(index, true)) break\n }\n return true\n}\n\nfunction rightShift (n) {\n return (n - (n & 1)) / 2\n}\n\nfunction addFullRoots (verifiedBy, nodes, root, remoteTree) {\n var roots = flat.fullRoots(verifiedBy)\n for (var i = 0; i < roots.length; i++) {\n if (roots[i] !== root && !remoteTree.get(roots[i])) nodes.push(roots[i])\n }\n}\n", "/* Node.js 6.4.0 and up has full support */\nvar hasFullSupport = (function () {\n try {\n if (!Buffer.isEncoding('latin1')) {\n return false\n }\n\n var buf = Buffer.alloc ? Buffer.alloc(4) : new Buffer(4)\n\n buf.fill('ab', 'ucs2')\n\n return (buf.toString('hex') === '61006200')\n } catch (_) {\n return false\n }\n}())\n\nfunction isSingleByte (val) {\n return (val.length === 1 && val.charCodeAt(0) < 256)\n}\n\nfunction fillWithNumber (buffer, val, start, end) {\n if (start < 0 || end > buffer.length) {\n throw new RangeError('Out of range index')\n }\n\n start = start >>> 0\n end = end === undefined ? buffer.length : end >>> 0\n\n if (end > start) {\n buffer.fill(val, start, end)\n }\n\n return buffer\n}\n\nfunction fillWithBuffer (buffer, val, start, end) {\n if (start < 0 || end > buffer.length) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return buffer\n }\n\n start = start >>> 0\n end = end === undefined ? buffer.length : end >>> 0\n\n var pos = start\n var len = val.length\n while (pos <= (end - len)) {\n val.copy(buffer, pos)\n pos += len\n }\n\n if (pos !== end) {\n val.copy(buffer, pos, 0, end - pos)\n }\n\n return buffer\n}\n\nfunction fill (buffer, val, start, end, encoding) {\n if (hasFullSupport) {\n return buffer.fill(val, start, end, encoding)\n }\n\n if (typeof val === 'number') {\n return fillWithNumber(buffer, val, start, end)\n }\n\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = buffer.length\n } else if (typeof end === 'string') {\n encoding = end\n end = buffer.length\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n\n if (encoding === 'latin1') {\n encoding = 'binary'\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n if (val === '') {\n return fillWithNumber(buffer, 0, start, end)\n }\n\n if (isSingleByte(val)) {\n return fillWithNumber(buffer, val.charCodeAt(0), start, end)\n }\n\n val = new Buffer(val, encoding)\n }\n\n if (Buffer.isBuffer(val)) {\n return fillWithBuffer(buffer, val, start, end)\n }\n\n // Other values (e.g. undefined, boolean, object) results in zero-fill\n return fillWithNumber(buffer, 0, start, end)\n}\n\nmodule.exports = fill\n", "var bufferFill = require('buffer-fill')\nvar allocUnsafe = require('buffer-alloc-unsafe')\n\nmodule.exports = function alloc (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n }\n\n if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n\n if (Buffer.alloc) {\n return Buffer.alloc(size, fill, encoding)\n }\n\n var buffer = allocUnsafe(size)\n\n if (size === 0) {\n return buffer\n }\n\n if (fill === undefined) {\n return bufferFill(buffer, 0)\n }\n\n if (typeof encoding !== 'string') {\n encoding = undefined\n }\n\n return bufferFill(buffer, fill, encoding)\n}\n", "var bufferAlloc = require('buffer-alloc')\n\nvar UINT_32_MAX = Math.pow(2, 32)\n\nexports.encodingLength = function () {\n return 8\n}\n\nexports.encode = function (num, buf, offset) {\n if (!buf) buf = bufferAlloc(8)\n if (!offset) offset = 0\n\n var top = Math.floor(num / UINT_32_MAX)\n var rem = num - top * UINT_32_MAX\n\n buf.writeUInt32BE(top, offset)\n buf.writeUInt32BE(rem, offset + 4)\n return buf\n}\n\nexports.decode = function (buf, offset) {\n if (!offset) offset = 0\n\n var top = buf.readUInt32BE(offset)\n var rem = buf.readUInt32BE(offset + 4)\n\n return top * UINT_32_MAX + rem\n}\n\nexports.encode.bytes = 8\nexports.decode.bytes = 8\n", "const DEFAULT_MAX_BYTE_SIZE = 1024 * 1024 * 16\n\nclass NamespacedCache {\n constructor (parent, name) {\n this.name = name\n this.parent = parent\n }\n\n get _info () {\n return this.parent._info\n }\n\n set (key, value) {\n return this.parent._set(this.name, key, value)\n }\n\n del (key) {\n return this.parent._del(this.name, key)\n }\n\n get (key) {\n return this.parent._get(this.name, key)\n }\n}\n\nmodule.exports = class HypercoreCache {\n constructor (opts = {}) {\n this.maxByteSize = opts.maxByteSize || DEFAULT_MAX_BYTE_SIZE\n this.onEvict = opts.onEvict\n this.estimateSize = opts.estimateSize || defaultSize\n\n this._nextNamespace = 0\n this.defaultCache = new NamespacedCache(this, this._nextNamespace++)\n\n this._stale = null\n this._fresh = new Map()\n this._freshByteSize = 0\n this._staleByteSize = 0\n }\n\n get _info () {\n return {\n freshByteSize: this._freshByteSize,\n staleByteSize: this._staleByteSize,\n staleEntries: this._stale ? this._stale.size : 0,\n freshEntries: this._fresh.size,\n byteSize: this.byteSize\n }\n }\n\n _prefix (namespace, key) {\n return namespace + ':' + key\n }\n\n _gc () {\n if (this.onEvict && this._staleByteSize > 0) this.onEvict(this._stale)\n this._stale = this._fresh\n this._fresh = new Map()\n this._staleByteSize = this._freshByteSize\n this._freshByteSize = 0\n }\n\n _get (namespace, key, prefixedKey) {\n if (!prefixedKey) prefixedKey = this._prefix(namespace, key)\n return this._fresh.get(prefixedKey) || (this._stale && this._stale.get(prefixedKey))\n }\n\n _set (namespace, key, value) {\n const valueSize = this.estimateSize(value)\n const prefixedKey = this._prefix(namespace, key)\n if (this._freshByteSize + valueSize > this.maxByteSize) {\n this._gc()\n }\n this._fresh.set(prefixedKey, value)\n this._freshByteSize += valueSize\n }\n\n _del (namespace, key) {\n const prefixedKey = this._prefix(namespace, key)\n let val = this._stale && this._stale.get(prefixedKey)\n if (val) {\n this._stale.delete(prefixedKey)\n this._staleByteSize -= this.estimateSize(val)\n }\n val = this._fresh.get(prefixedKey)\n if (val) {\n this._fresh.delete(prefixedKey)\n this._freshByteSize -= this.estimateSize(val)\n }\n }\n\n get byteSize () {\n return this._freshByteSize + this._staleByteSize\n }\n\n namespace () {\n const cache = new NamespacedCache(this, this._nextNamespace++)\n return cache\n }\n\n set (key, value) {\n return this.defaultCache.set(key, value)\n }\n\n del (key) {\n return this.defaultCache.del(key)\n }\n\n get (key) {\n return this.defaultCache.get(key)\n }\n}\n\nfunction defaultSize () {\n // Return an estimate of the object overhead, without being clever here.\n // (You should pass in a size estimator)\n return 1024\n}\n", "const HypercoreCache = require('hypercore-cache')\n\nconst DEFAULT_TREE_CACHE_SIZE = 65536 * 40\n\nfunction createCache (opts) {\n if (opts.cache === false) return {}\n\n const cacheOpts = opts.cache || {}\n if (cacheOpts.tree === undefined || typeof cacheOpts.tree === 'number') {\n const cacheSize = cacheOpts.tree || opts.storageCacheSize\n cacheOpts.tree = new HypercoreCache({\n maxByteSize: cacheSize !== undefined ? cacheSize : DEFAULT_TREE_CACHE_SIZE,\n estimateSize: () => 40\n })\n }\n if (cacheOpts.data === undefined) return cacheOpts\n if (typeof cacheOpts.data === 'number') {\n cacheOpts.data = new HypercoreCache({\n maxByteSize: cacheOpts.data,\n estimateSize: buf => buf.length\n })\n }\n return cacheOpts\n}\n\nmodule.exports = createCache\n", "var uint64be = require('uint64be')\nvar flat = require('flat-tree')\nvar createCache = require('./cache')\n\nmodule.exports = Storage\n\nvar noarr = []\n\nfunction Storage (create, opts) {\n if (!(this instanceof Storage)) return new Storage(create, opts)\n\n const cache = createCache(opts)\n\n this.treeCache = cache.tree || null\n this.dataCache = cache.data || null\n this.key = null\n this.secretKey = null\n this.tree = null\n this.data = null\n this.bitfield = null\n this.signatures = null\n this.create = create\n}\n\nStorage.prototype.putData = function (index, data, nodes, cb) {\n if (!cb) cb = noop\n var self = this\n if (!data.length) return cb(null)\n this.dataOffset(index, nodes, function (err, offset, size) {\n if (err) return cb(err)\n if (size !== data.length) return cb(new Error('Unexpected data size'))\n self.data.write(offset, data, cb)\n })\n}\n\nStorage.prototype.getData = function (index, cb) {\n var self = this\n var cached = this.dataCache && this.dataCache.get(index)\n if (cached) return process.nextTick(cb, null, cached)\n this.dataOffset(index, noarr, function (err, offset, size) {\n if (err) return cb(err)\n self.data.read(offset, size, (err, data) => {\n if (err) return cb(err)\n if (self.dataCache) self.dataCache.set(index, data)\n return cb(null, data)\n })\n })\n}\n\nStorage.prototype.nextSignature = function (index, cb) {\n var self = this\n\n this._getSignature(index, function (err, signature) {\n if (err) return cb(err)\n if (isBlank(signature)) return self.nextSignature(index + 1, cb)\n cb(null, { index: index, signature: signature })\n })\n}\n\nStorage.prototype.getSignature = function (index, cb) {\n this._getSignature(index, function (err, signature) {\n if (err) return cb(err)\n if (isBlank(signature)) return cb(new Error('No signature found'))\n cb(null, signature)\n })\n}\n\n// Caching not enabled for signatures because they are rarely reused.\nStorage.prototype._getSignature = function (index, cb) {\n this.signatures.read(32 + 64 * index, 64, cb)\n}\n\nStorage.prototype.putSignature = function (index, signature, cb) {\n this.signatures.write(32 + 64 * index, signature, cb)\n}\n\nStorage.prototype.deleteSignatures = function (start, end, cb) {\n this.signatures.del(32 + 64 * start, (end - start) * 64, cb)\n}\n\nStorage.prototype.dataOffset = function (index, cachedNodes, cb) {\n var roots = flat.fullRoots(2 * index)\n var self = this\n var offset = 0\n var pending = roots.length\n var error = null\n var blk = 2 * index\n\n if (!pending) {\n pending = 1\n onnode(null, null)\n return\n }\n\n for (var i = 0; i < roots.length; i++) {\n var node = findNode(cachedNodes, roots[i])\n if (node) onnode(null, node)\n else this.getNode(roots[i], onnode)\n }\n\n function onlast (err, node) {\n if (err) return cb(err)\n cb(null, offset, node.size)\n }\n\n function onnode (err, node) {\n if (err) error = err\n if (node) offset += node.size\n if (--pending) return\n\n if (error) return cb(error)\n\n var last = findNode(cachedNodes, blk)\n if (last) onlast(null, last)\n else self.getNode(blk, onlast)\n }\n}\n\n// Caching not enabled for batch reads because they'd be complicated to batch and they're rarely used.\nStorage.prototype.getDataBatch = function (start, n, cb) {\n var result = new Array(n)\n var sizes = new Array(n)\n var self = this\n\n this.dataOffset(start, noarr, function (err, offset, size) {\n if (err) return cb(err)\n\n start++\n n--\n\n if (n <= 0) return ontree(null, null)\n self.tree.read(32 + 80 * start, 80 * n - 40, ontree)\n\n function ontree (err, buf) {\n if (err) return cb(err)\n\n var total = sizes[0] = size\n\n if (buf) {\n for (var i = 1; i < sizes.length; i++) {\n sizes[i] = uint64be.decode(buf, 32 + (i - 1) * 80)\n total += sizes[i]\n }\n }\n\n self.data.read(offset, total, ondata)\n }\n\n function ondata (err, buf) {\n if (err) return cb(err)\n var total = 0\n for (var i = 0; i < result.length; i++) {\n result[i] = buf.slice(total, total += sizes[i])\n }\n\n cb(null, result)\n }\n })\n}\n\nStorage.prototype.getNode = function (index, cb) {\n if (this.treeCache) {\n var cached = this.treeCache.get(index)\n if (cached) return cb(null, cached)\n }\n\n var self = this\n\n this.tree.read(32 + 40 * index, 40, function (err, buf) {\n if (err) return cb(err)\n\n var hash = buf.slice(0, 32)\n var size = uint64be.decode(buf, 32)\n\n if (!size && isBlank(hash)) return cb(new Error('No node found'))\n\n var val = new Node(index, self.treeCache ? copyMaybe(hash, 40) : hash, size, null)\n if (self.treeCache) self.treeCache.set(index, val)\n cb(null, val)\n })\n}\n\nStorage.prototype.putNodeBatch = function (index, nodes, cb) {\n if (!cb) cb = noop\n\n var buf = Buffer.alloc(nodes.length * 40)\n\n for (var i = 0; i < nodes.length; i++) {\n var offset = i * 40\n var node = nodes[i]\n if (!node) continue\n node.hash.copy(buf, offset)\n uint64be.encode(node.size, buf, 32 + offset)\n }\n\n this.tree.write(32 + 40 * index, buf, cb)\n}\n\nStorage.prototype.putNode = function (index, node, cb) {\n if (!cb) cb = noop\n\n // TODO: re-enable put cache. currently this causes a memleak\n // because node.hash is a slice of the big data buffer on replicate\n // if (this.cache) this.cache.set(index, node)\n\n var buf = Buffer.allocUnsafe(40)\n\n node.hash.copy(buf, 0)\n uint64be.encode(node.size, buf, 32)\n this.tree.write(32 + 40 * index, buf, cb)\n}\n\nStorage.prototype.putBitfield = function (offset, data, cb) {\n this.bitfield.write(32 + offset, data, cb)\n}\n\nStorage.prototype.close = function (cb) {\n if (!cb) cb = noop\n var missing = 6\n var error = null\n\n close(this.bitfield, done)\n close(this.tree, done)\n close(this.data, done)\n close(this.key, done)\n close(this.secretKey, done)\n close(this.signatures, done)\n\n function done (err) {\n if (err) error = err\n if (--missing) return\n cb(error)\n }\n}\n\nStorage.prototype.destroy = function (cb) {\n if (!cb) cb = noop\n var missing = 6\n var error = null\n\n destroy(this.bitfield, done)\n destroy(this.tree, done)\n destroy(this.data, done)\n destroy(this.key, done)\n destroy(this.secretKey, done)\n destroy(this.signatures, done)\n\n function done (err) {\n if (err) error = err\n if (--missing) return\n cb(error)\n }\n}\n\nStorage.prototype.openKey = function (opts, cb) {\n if (typeof opts === 'function') return this.openKey({}, opts)\n if (!this.key) this.key = this.create('key', opts)\n this.key.read(0, 32, cb)\n}\n\nStorage.prototype.open = function (opts, cb) {\n if (typeof opts === 'function') return this.open({}, opts)\n\n var self = this\n var error = null\n var missing = 5\n\n if (!this.key) this.key = this.create('key', opts)\n if (!this.secretKey) this.secretKey = this.create('secret_key', opts)\n if (!this.tree) this.tree = this.create('tree', opts)\n if (!this.data) this.data = this.create('data', opts)\n if (!this.bitfield) this.bitfield = this.create('bitfield', opts)\n if (!this.signatures) this.signatures = this.create('signatures', opts)\n\n var result = {\n bitfield: [],\n bitfieldPageSize: 3584, // we upgraded the page size to fix a bug\n secretKey: null,\n key: null\n }\n\n this.bitfield.read(0, 32, function (err, h) {\n if (err && err.code === 'ELOCKED') return cb(err)\n if (h) result.bitfieldPageSize = h.readUInt16BE(5)\n self.bitfield.write(0, header(0, result.bitfieldPageSize, null), function (err) {\n if (err) return cb(err)\n readAll(self.bitfield, 32, result.bitfieldPageSize, function (err, pages) {\n if (pages) result.bitfield = pages\n done(err)\n })\n })\n })\n\n this.signatures.write(0, header(1, 64, 'Ed25519'), done)\n this.tree.write(0, header(2, 40, 'BLAKE2b'), done)\n\n // TODO: Improve the error handling here.\n // I.e. if secretKey length === 64 and it fails, error\n\n this.secretKey.read(0, 64, function (_, data) {\n if (data) result.secretKey = data\n done(null)\n })\n\n this.key.read(0, 32, function (_, data) {\n if (data) result.key = data\n done(null)\n })\n\n function done (err) {\n if (err) error = err\n if (--missing) return\n if (error) cb(error)\n else cb(null, result)\n }\n}\n\nStorage.Node = Node\n\nfunction noop () {}\n\nfunction copyMaybe (buf, maxSize) {\n if (buf.buffer.byteLength <= maxSize) return buf\n const cpy = Buffer.alloc(buf.byteLength)\n buf.copy(cpy)\n return cpy\n}\n\nfunction header (type, size, name) {\n var buf = Buffer.alloc(32)\n\n // magic number\n buf[0] = 5\n buf[1] = 2\n buf[2] = 87\n buf[3] = type\n\n // version\n buf[4] = 0\n\n // block size\n buf.writeUInt16BE(size, 5)\n\n if (name) {\n // algo name\n buf[7] = name.length\n buf.write(name, 8)\n }\n\n return buf\n}\n\nfunction Node (index, hash, size) {\n this.index = index\n this.hash = hash\n this.size = size\n}\n\nfunction findNode (nodes, index) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].index === index) return nodes[i]\n }\n return null\n}\n\nfunction isBlank (buf) {\n for (var i = 0; i < buf.length; i++) {\n if (buf[i]) return false\n }\n return true\n}\n\nfunction close (st, cb) {\n if (st.close) st.close(cb)\n else cb()\n}\n\nfunction destroy (st, cb) {\n if (st.destroy) st.destroy(cb)\n else cb()\n}\n\nfunction statAndReadAll (st, offset, pageSize, cb) {\n st.stat(function (err, stat) {\n if (err) return cb(null, [])\n\n var result = []\n\n loop(null, null)\n\n function loop (err, batch) {\n if (err) return cb(err)\n\n if (batch) {\n offset += batch.length\n for (var i = 0; i < batch.length; i += pageSize) {\n result.push(batch.slice(i, i + pageSize))\n }\n }\n\n var next = Math.min(stat.size - offset, 32 * pageSize)\n if (!next) return cb(null, result)\n\n st.read(offset, next, loop)\n }\n })\n}\n\nfunction readAll (st, offset, pageSize, cb) {\n if (st.statable === true) return statAndReadAll(st, offset, pageSize, cb)\n\n var bufs = []\n\n st.read(offset, pageSize, loop)\n\n function loop (err, buf) {\n if (err) return cb(null, bufs)\n bufs.push(buf)\n st.read(offset + bufs.length * pageSize, pageSize, loop)\n }\n}\n", "module.exports = Symbol.for('nodejs.util.inspect.custom')\n", "\nmodule.exports = function prettyHash (buf) {\n if (Buffer.isBuffer(buf)) buf = buf.toString('hex')\n if (typeof buf === 'string' && buf.length > 8) {\n return buf.slice(0, 6) + '..' + buf.slice(-2)\n }\n return buf\n}", "module.exports = class Nanoguard {\n constructor () {\n this._tick = 0\n this._fns = []\n this._dep = null\n }\n\n get waiting () {\n return this._tick > 0\n }\n\n depend (dep) {\n if (this._dep !== null) throw new Error('Can only depend on one other guard currently')\n this._dep = dep\n }\n\n wait () {\n this._tick++\n }\n\n continue (cb, err, val) {\n if (this._tick === 1) process.nextTick(continueNT, this)\n else this._tick--\n if (cb) cb(err, val)\n }\n\n waitAndContinue () {\n let once = false\n this.wait()\n return () => {\n if (once) return false\n once = true\n this.continue()\n return true\n }\n }\n\n continueSync (cb, err, val) {\n if (--this._tick) return\n while (this._fns !== null && this._fns.length) this._ready(this._fns.pop())\n if (cb) cb(err, val)\n }\n\n destroy () {\n const fns = this._fns\n if (fns) return\n this._fns = null\n while (fns.length) fns.pop()()\n }\n\n ready (fn) {\n if (this._fns === null || this._tick === 0) this._ready(fn)\n else this._fns.push(fn)\n }\n\n _ready (fn) {\n if (this._dep === null) fn()\n else this._dep.ready(fn)\n }\n}\n\nfunction continueNT (guard) {\n guard.continueSync()\n}\n", "// buffer-equals, but handle 'null' buffer parameters.\nmodule.exports = function safeBufferEquals (a, b) {\n if (!a) return !b\n if (!b) return !a\n return Buffer.compare(a, b) === 0\n}\n", "module.exports = assert\n\nclass AssertionError extends Error {}\nAssertionError.prototype.name = 'AssertionError'\n\n/**\n * Minimal assert function\n * @param {any} t Value to check if falsy\n * @param {string=} m Optional assertion error message\n * @throws {AssertionError}\n */\nfunction assert (t, m) {\n if (!t) {\n var err = new AssertionError(m)\n if (Error.captureStackTrace) Error.captureStackTrace(err, assert)\n throw err\n }\n}\n", "var clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n", "/* eslint-disable camelcase */\nconst { sodium_malloc, sodium_memzero } = require('sodium-universal/memory')\nconst {\n crypto_aead_chacha20poly1305_ietf_KEYBYTES,\n crypto_aead_chacha20poly1305_ietf_NPUBBYTES,\n crypto_aead_chacha20poly1305_ietf_ABYTES,\n crypto_aead_chacha20poly1305_ietf_encrypt,\n crypto_aead_chacha20poly1305_ietf_decrypt\n} = require('sodium-universal/crypto_aead')\n\nvar assert = require('nanoassert')\n\nvar KEYLEN = 32\nvar NONCELEN = 8\nvar MACLEN = 16\n\nassert(crypto_aead_chacha20poly1305_ietf_KEYBYTES === KEYLEN)\n// 16 bytes are cut off in the following functions\nassert(crypto_aead_chacha20poly1305_ietf_NPUBBYTES === 4 + NONCELEN)\nassert(crypto_aead_chacha20poly1305_ietf_ABYTES === MACLEN)\n\nmodule.exports = {\n KEYLEN,\n NONCELEN,\n MACLEN,\n encrypt,\n decrypt,\n rekey\n}\n\nvar ElongatedNonce = sodium_malloc(crypto_aead_chacha20poly1305_ietf_NPUBBYTES)\nfunction encrypt (out, k, n, ad, plaintext) {\n assert(out.byteLength >= plaintext.byteLength + MACLEN, 'output buffer must be at least plaintext plus MACLEN bytes long')\n assert(k.byteLength === KEYLEN)\n assert(n.byteLength === NONCELEN)\n assert(ad == null ? true : ad.byteLength != null)\n sodium_memzero(ElongatedNonce)\n\n ElongatedNonce.set(n, 4)\n\n encrypt.bytesWritten = crypto_aead_chacha20poly1305_ietf_encrypt(out.subarray(0, plaintext.byteLength + MACLEN), plaintext, ad, null, ElongatedNonce, k)\n encrypt.bytesRead = encrypt.bytesWritten - MACLEN\n\n sodium_memzero(ElongatedNonce)\n}\nencrypt.bytesWritten = 0\nencrypt.bytesRead = 0\n\nfunction decrypt (out, k, n, ad, ciphertext) {\n assert(out.byteLength >= ciphertext.byteLength - MACLEN)\n assert(k.byteLength === KEYLEN)\n assert(n.byteLength === NONCELEN)\n assert(ad == null ? true : ad.byteLength != null)\n sodium_memzero(ElongatedNonce)\n\n ElongatedNonce.set(n, 4)\n\n decrypt.bytesWritten = crypto_aead_chacha20poly1305_ietf_decrypt(out.subarray(0, ciphertext.byteLength - MACLEN), null, ciphertext, ad, ElongatedNonce, k)\n decrypt.bytesRead = decrypt.bytesWritten + MACLEN\n\n sodium_memzero(ElongatedNonce)\n}\ndecrypt.bytesWritten = 0\ndecrypt.bytesRead = 0\n\nvar maxnonce = new Uint8Array(8).fill(0xff)\nvar zerolen = new Uint8Array(0)\nvar zeros = new Uint8Array(32)\n\nvar IntermediateKey = sodium_malloc(KEYLEN + MACLEN)\nsodium_memzero(IntermediateKey)\nfunction rekey (out, k) {\n assert(out.byteLength === KEYLEN)\n assert(k.byteLength === KEYLEN)\n sodium_memzero(IntermediateKey)\n\n IntermediateKey.set(k)\n encrypt(IntermediateKey, k, maxnonce, zerolen, zeros)\n rekey.bytesWritten = encrypt.bytesWritten\n rekey.bytesRead = encrypt.bytesRead\n out.set(IntermediateKey.subarray(0, KEYLEN))\n sodium_memzero(IntermediateKey)\n}\nrekey.bytesWritten = 0\nrekey.bytesRead = 0\n", "/* eslint-disable camelcase */\nconst { sodium_memzero } = require('sodium-universal/memory')\nconst { sodium_increment, sodium_memcmp, sodium_is_zero } = require('sodium-universal/helpers')\n\nvar assert = require('nanoassert')\nvar cipher = require('./cipher')\n\nvar STATELEN = cipher.KEYLEN + cipher.NONCELEN\nvar NONCELEN = cipher.NONCELEN\nvar MACLEN = cipher.MACLEN\n\nmodule.exports = {\n STATELEN,\n NONCELEN,\n MACLEN,\n initializeKey,\n hasKey,\n setNonce,\n encryptWithAd,\n decryptWithAd,\n rekey\n}\n\nvar KEY_BEGIN = 0\nvar KEY_END = cipher.KEYLEN\nvar NONCE_BEGIN = KEY_END\nvar NONCE_END = NONCE_BEGIN + cipher.NONCELEN\n\nfunction initializeKey (state, key) {\n assert(state.byteLength === STATELEN)\n assert(key == null ? true : key.byteLength === cipher.KEYLEN)\n\n if (key == null) {\n sodium_memzero(state.subarray(KEY_BEGIN, KEY_END))\n return\n }\n\n state.set(key)\n sodium_memzero(state.subarray(NONCE_BEGIN, NONCE_END))\n}\n\nfunction hasKey (state) {\n assert(state.byteLength === STATELEN)\n var k = state.subarray(KEY_BEGIN, KEY_END)\n return sodium_is_zero(k) === false\n}\n\nfunction setNonce (state, nonce) {\n assert(state.byteLength === STATELEN)\n assert(nonce.byteLength === NONCELEN)\n\n state.set(nonce, NONCE_BEGIN)\n}\n\nvar maxnonce = new Uint8Array(8).fill(0xff)\nfunction encryptWithAd (state, out, ad, plaintext) {\n assert(state.byteLength === STATELEN)\n assert(out.byteLength != null)\n assert(plaintext.byteLength != null)\n\n var n = state.subarray(NONCE_BEGIN, NONCE_END)\n if (sodium_memcmp(n, maxnonce)) throw new Error('Nonce overflow')\n\n if (hasKey(state) === false) {\n out.set(plaintext)\n encryptWithAd.bytesRead = plaintext.byteLength\n encryptWithAd.bytesWritten = encryptWithAd.bytesRead\n return\n }\n\n var k = state.subarray(KEY_BEGIN, KEY_END)\n\n cipher.encrypt(\n out,\n k,\n n,\n ad,\n plaintext\n )\n encryptWithAd.bytesRead = cipher.encrypt.bytesRead\n encryptWithAd.bytesWritten = cipher.encrypt.bytesWritten\n\n sodium_increment(n)\n}\nencryptWithAd.bytesRead = 0\nencryptWithAd.bytesWritten = 0\n\nfunction decryptWithAd (state, out, ad, ciphertext) {\n assert(state.byteLength === STATELEN)\n assert(out.byteLength != null)\n assert(ciphertext.byteLength != null)\n\n var n = state.subarray(NONCE_BEGIN, NONCE_END)\n if (sodium_memcmp(n, maxnonce)) throw new Error('Nonce overflow')\n\n if (hasKey(state) === false) {\n out.set(ciphertext)\n decryptWithAd.bytesRead = ciphertext.byteLength\n decryptWithAd.bytesWritten = decryptWithAd.bytesRead\n return\n }\n\n var k = state.subarray(KEY_BEGIN, KEY_END)\n\n cipher.decrypt(\n out,\n k,\n n,\n ad,\n ciphertext\n )\n decryptWithAd.bytesRead = cipher.decrypt.bytesRead\n decryptWithAd.bytesWritten = cipher.decrypt.bytesWritten\n\n sodium_increment(n)\n}\ndecryptWithAd.bytesRead = 0\ndecryptWithAd.bytesWritten = 0\n\nfunction rekey (state) {\n assert(state.byteLength === STATELEN)\n\n var k = state.subarray(KEY_BEGIN, KEY_END)\n cipher.rekey(k, k)\n rekey.bytesRead = cipher.rekey.bytesRead\n rekey.bytesWritten = cipher.rekey.bytesWritten\n}\nrekey.bytesRead = 0\nrekey.bytesWritten = 0\n", "assert.notEqual = notEqual\nassert.notOk = notOk\nassert.equal = equal\nassert.ok = assert\n\nmodule.exports = assert\n\nfunction equal (a, b, m) {\n assert(a == b, m) // eslint-disable-line eqeqeq\n}\n\nfunction notEqual (a, b, m) {\n assert(a != b, m) // eslint-disable-line eqeqeq\n}\n\nfunction notOk (t, m) {\n assert(!t, m)\n}\n\nfunction assert (t, m) {\n if (!t) throw new Error(m || 'AssertionError')\n}\n", "/* eslint-disable camelcase */\nvar { sodium_malloc, sodium_memzero } = require('sodium-universal/memory')\nvar { crypto_generichash, crypto_generichash_batch } = require('sodium-universal/crypto_generichash')\nvar assert = require('nanoassert')\n\nvar HASHLEN = 64\nvar BLOCKLEN = 128\nvar scratch = sodium_malloc(BLOCKLEN * 3)\nvar HMACKey = scratch.subarray(BLOCKLEN * 0, BLOCKLEN * 1)\nvar OuterKeyPad = scratch.subarray(BLOCKLEN * 1, BLOCKLEN * 2)\nvar InnerKeyPad = scratch.subarray(BLOCKLEN * 2, BLOCKLEN * 3)\n\n// Post-fill is done in the cases where someone caught an exception that\n// happened before we were able to clear data at the end\nmodule.exports = function hmac (out, data, key) {\n assert(out.byteLength === HASHLEN)\n assert(key.byteLength != null)\n assert(Array.isArray(data) ? data.every(d => d.byteLength != null) : data.byteLength != null)\n\n if (key.byteLength > BLOCKLEN) {\n crypto_generichash(HMACKey.subarray(0, HASHLEN), key)\n sodium_memzero(HMACKey.subarray(HASHLEN))\n } else {\n // Covers key <= BLOCKLEN\n HMACKey.set(key)\n sodium_memzero(HMACKey.subarray(key.byteLength))\n }\n\n for (var i = 0; i < HMACKey.byteLength; i++) {\n OuterKeyPad[i] = 0x5c ^ HMACKey[i]\n InnerKeyPad[i] = 0x36 ^ HMACKey[i]\n }\n sodium_memzero(HMACKey)\n\n crypto_generichash_batch(out, [InnerKeyPad].concat(data))\n sodium_memzero(InnerKeyPad)\n crypto_generichash_batch(out, [OuterKeyPad].concat(out))\n sodium_memzero(OuterKeyPad)\n}\n\nmodule.exports.BYTES = HASHLEN\nmodule.exports.KEYBYTES = BLOCKLEN\n", "/* eslint-disable camelcase */\nconst { crypto_kx_SEEDBYTES, crypto_kx_keypair, crypto_kx_seed_keypair } = require('sodium-universal/crypto_kx')\nconst { crypto_scalarmult_BYTES, crypto_scalarmult_SCALARBYTES, crypto_scalarmult } = require('sodium-universal/crypto_scalarmult')\n\nvar assert = require('nanoassert')\n\nvar DHLEN = crypto_scalarmult_BYTES\nvar PKLEN = crypto_scalarmult_BYTES\nvar SKLEN = crypto_scalarmult_SCALARBYTES\nvar SEEDLEN = crypto_kx_SEEDBYTES\n\nmodule.exports = {\n DHLEN,\n PKLEN,\n SKLEN,\n SEEDLEN,\n generateKeypair,\n generateSeedKeypair,\n dh\n}\n\nfunction generateKeypair (pk, sk) {\n assert(pk.byteLength === PKLEN)\n assert(sk.byteLength === SKLEN)\n crypto_kx_keypair(pk, sk)\n}\n\nfunction generateSeedKeypair (pk, sk, seed) {\n assert(pk.byteLength === PKLEN)\n assert(sk.byteLength === SKLEN)\n assert(seed.byteLength === SKLEN)\n\n crypto_kx_seed_keypair(pk, sk, seed)\n}\n\nfunction dh (output, lsk, pk) {\n assert(output.byteLength === DHLEN)\n assert(lsk.byteLength === SKLEN)\n assert(pk.byteLength === PKLEN)\n\n crypto_scalarmult(\n output,\n lsk,\n pk\n )\n}\n", "/* eslint-disable camelcase */\nconst { sodium_malloc, sodium_memzero } = require('sodium-universal/memory')\nconst { crypto_generichash_batch } = require('sodium-universal/crypto_generichash')\n\nconst assert = require('nanoassert')\nconst hmacBlake2b = require('hmac-blake2b')\nconst dh = require('./dh')\n\nconst HASHLEN = 64\nconst BLOCKLEN = 128\n\nassert(hmacBlake2b.KEYBYTES === BLOCKLEN, 'mismatching hmac BLOCKLEN')\nassert(hmacBlake2b.BYTES === HASHLEN, 'mismatching hmac HASHLEN')\n\nmodule.exports = {\n HASHLEN,\n BLOCKLEN,\n hash,\n hkdf\n}\n\nfunction hash (out, data) {\n assert(out.byteLength === HASHLEN)\n assert(Array.isArray(data))\n\n crypto_generichash_batch(out, data)\n}\n\nfunction hmac (out, key, data) {\n return hmacBlake2b(out, data, key)\n}\n\nconst TempKey = sodium_malloc(HASHLEN)\nconst Byte0x01 = new Uint8Array([0x01])\nconst Byte0x02 = new Uint8Array([0x02])\nconst Byte0x03 = new Uint8Array([0x03])\n\nfunction hkdf (out1, out2, out3, chainingKey, inputKeyMaterial) {\n assert(out1.byteLength === HASHLEN)\n assert(out2.byteLength === HASHLEN)\n assert(out3 == null ? true : out3.byteLength === HASHLEN)\n assert(chainingKey.byteLength === HASHLEN)\n assert([0, 32, dh.DHLEN, dh.PKLEN].includes(inputKeyMaterial.byteLength))\n\n sodium_memzero(TempKey)\n hmac(TempKey, chainingKey, [inputKeyMaterial])\n hmac(out1, TempKey, [Byte0x01])\n hmac(out2, TempKey, [out1, Byte0x02])\n\n if (out3 != null) {\n hmac(out3, TempKey, [out2, Byte0x03])\n }\n\n sodium_memzero(TempKey)\n}\n", "/* eslint-disable camelcase */\nconst { sodium_malloc, sodium_memzero } = require('sodium-universal/memory')\nvar assert = require('nanoassert')\nvar cipherState = require('./cipher-state')\nvar hash = require('./hash')\n\nvar STATELEN = hash.HASHLEN + hash.HASHLEN + cipherState.STATELEN\nvar HASHLEN = hash.HASHLEN\n\nmodule.exports = {\n STATELEN,\n initializeSymmetric,\n mixKey,\n mixHash,\n mixKeyAndHash,\n getHandshakeHash,\n encryptAndHash,\n decryptAndHash,\n split,\n _hasKey\n}\n\nvar CHAINING_KEY_BEGIN = 0\nvar CHAINING_KEY_END = hash.HASHLEN\nvar HASH_BEGIN = CHAINING_KEY_END\nvar HASH_END = HASH_BEGIN + hash.HASHLEN\nvar CIPHER_BEGIN = HASH_END\nvar CIPHER_END = CIPHER_BEGIN + cipherState.STATELEN\n\nfunction initializeSymmetric (state, protocolName) {\n assert(state.byteLength === STATELEN)\n assert(protocolName.byteLength != null)\n\n sodium_memzero(state)\n if (protocolName.byteLength <= HASHLEN) state.set(protocolName, HASH_BEGIN)\n else hash.hash(state.subarray(HASH_BEGIN, HASH_END), [protocolName])\n\n state.subarray(CHAINING_KEY_BEGIN, CHAINING_KEY_END).set(state.subarray(HASH_BEGIN, HASH_END))\n\n cipherState.initializeKey(state.subarray(CIPHER_BEGIN, CIPHER_END), null)\n}\n\nvar TempKey = sodium_malloc(HASHLEN)\nfunction mixKey (state, inputKeyMaterial) {\n assert(state.byteLength === STATELEN)\n assert(inputKeyMaterial.byteLength != null)\n\n hash.hkdf(\n state.subarray(CHAINING_KEY_BEGIN, CHAINING_KEY_END),\n TempKey,\n null,\n state.subarray(CHAINING_KEY_BEGIN, CHAINING_KEY_END),\n inputKeyMaterial\n )\n\n // HASHLEN is always 64 here, so we truncate to 32 bytes per the spec\n cipherState.initializeKey(state.subarray(CIPHER_BEGIN, CIPHER_END), TempKey.subarray(0, 32))\n sodium_memzero(TempKey)\n}\n\nfunction mixHash (state, data) {\n assert(state.byteLength === STATELEN)\n\n var h = state.subarray(HASH_BEGIN, HASH_END)\n\n hash.hash(h, [h, data])\n}\n\nvar TempHash = sodium_malloc(HASHLEN)\nfunction mixKeyAndHash (state, inputKeyMaterial) {\n assert(state.byteLength === STATELEN)\n assert(inputKeyMaterial.byteLength != null)\n\n hash.hkdf(\n state.subarray(CHAINING_KEY_BEGIN, CHAINING_KEY_END),\n TempHash,\n TempKey,\n state.subarray(CHAINING_KEY_BEGIN, CHAINING_KEY_END),\n inputKeyMaterial\n )\n\n mixHash(state, TempHash)\n sodium_memzero(TempHash)\n\n // HASHLEN is always 64 here, so we truncate to 32 bytes per the spec\n cipherState.initializeKey(state.subarray(CIPHER_BEGIN, CIPHER_END), TempKey.subarray(0, 32))\n sodium_memzero(TempKey)\n}\n\nfunction getHandshakeHash (state, out) {\n assert(state.byteLength === STATELEN)\n assert(out.byteLength === HASHLEN)\n\n out.set(state.subarray(HASH_BEGIN, HASH_END))\n}\n\n// ciphertext is the output here\nfunction encryptAndHash (state, ciphertext, plaintext) {\n assert(state.byteLength === STATELEN)\n assert(ciphertext.byteLength != null)\n assert(plaintext.byteLength != null)\n\n var cstate = state.subarray(CIPHER_BEGIN, CIPHER_END)\n var h = state.subarray(HASH_BEGIN, HASH_END)\n\n cipherState.encryptWithAd(cstate, ciphertext, h, plaintext)\n encryptAndHash.bytesRead = cipherState.encryptWithAd.bytesRead\n encryptAndHash.bytesWritten = cipherState.encryptWithAd.bytesWritten\n mixHash(state, ciphertext.subarray(0, encryptAndHash.bytesWritten))\n}\nencryptAndHash.bytesRead = 0\nencryptAndHash.bytesWritten = 0\n\n// plaintext is the output here\nfunction decryptAndHash (state, plaintext, ciphertext) {\n assert(state.byteLength === STATELEN)\n assert(plaintext.byteLength != null)\n assert(ciphertext.byteLength != null)\n\n var cstate = state.subarray(CIPHER_BEGIN, CIPHER_END)\n var h = state.subarray(HASH_BEGIN, HASH_END)\n\n cipherState.decryptWithAd(cstate, plaintext, h, ciphertext)\n decryptAndHash.bytesRead = cipherState.decryptWithAd.bytesRead\n decryptAndHash.bytesWritten = cipherState.decryptWithAd.bytesWritten\n mixHash(state, ciphertext.subarray(0, decryptAndHash.bytesRead))\n}\ndecryptAndHash.bytesRead = 0\ndecryptAndHash.bytesWritten = 0\n\nvar TempKey1 = sodium_malloc(HASHLEN)\nvar TempKey2 = sodium_malloc(HASHLEN)\nvar zerolen = new Uint8Array(0)\nfunction split (state, cipherstate1, cipherstate2) {\n assert(state.byteLength === STATELEN)\n assert(cipherstate1.byteLength === cipherState.STATELEN)\n assert(cipherstate2.byteLength === cipherState.STATELEN)\n\n hash.hkdf(\n TempKey1,\n TempKey2,\n null,\n state.subarray(CHAINING_KEY_BEGIN, CHAINING_KEY_END),\n zerolen\n )\n\n // HASHLEN is always 64 here, so we truncate to 32 bytes per the spec\n cipherState.initializeKey(cipherstate1, TempKey1.subarray(0, 32))\n cipherState.initializeKey(cipherstate2, TempKey2.subarray(0, 32))\n sodium_memzero(TempKey1)\n sodium_memzero(TempKey2)\n}\n\nfunction _hasKey (state) {\n return cipherState.hasKey(state.subarray(CIPHER_BEGIN, CIPHER_END))\n}\n", "/* eslint-disable camelcase */\nconst { sodium_malloc, sodium_memzero, sodium_free } = require('sodium-universal/memory')\nconst assert = require('nanoassert')\nconst clone = require('clone')\nconst symmetricState = require('./symmetric-state')\nconst cipherState = require('./cipher-state')\nconst dh = require('./dh')\n\nconst PKLEN = dh.PKLEN\nconst SKLEN = dh.SKLEN\n\nmodule.exports = Object.freeze({\n initialize,\n writeMessage,\n readMessage,\n destroy,\n keygen,\n seedKeygen,\n SKLEN,\n PKLEN\n})\n\nfunction HandshakeState () {\n this.symmetricState = sodium_malloc(symmetricState.STATELEN)\n\n this.initiator = null\n\n this.spk = null\n this.ssk = null\n\n this.epk = null\n this.esk = null\n\n this.rs = null\n this.re = null\n\n this.messagePatterns = null\n}\n\nconst INITIATOR = Symbol('initiator')\nconst RESPONDER = Symbol('responder')\n\nconst TOK_S = Symbol('s')\nconst TOK_E = Symbol('e')\nconst TOK_ES = Symbol('es')\nconst TOK_SE = Symbol('se')\nconst TOK_EE = Symbol('ee')\nconst TOK_SS = Symbol('es')\n\n// initiator, ->\n// responder, <-\nvar PATTERNS = Object.freeze({\n N: {\n premessages: [\n [RESPONDER, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_ES]\n ]\n },\n K: {\n premessages: [\n [INITIATOR, TOK_S],\n [RESPONDER, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_ES, TOK_SS]\n ]\n },\n X: {\n premessages: [\n [RESPONDER, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_ES, TOK_S, TOK_SS]\n ]\n },\n NN: {\n premessages: [],\n messagePatterns: [\n [INITIATOR, TOK_E],\n [RESPONDER, TOK_E, TOK_EE]\n ]\n },\n KN: {\n premessages: [\n [INITIATOR, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E],\n [RESPONDER, TOK_E, TOK_EE, TOK_SE]\n ]\n },\n NK: {\n premessages: [\n [RESPONDER, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_ES],\n [RESPONDER, TOK_E, TOK_EE]\n ]\n },\n KK: {\n premessages: [\n [INITIATOR, TOK_S],\n [RESPONDER, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_ES, TOK_SS],\n [RESPONDER, TOK_E, TOK_EE, TOK_SE]\n ]\n },\n NX: {\n premessages: [],\n messagePatterns: [\n [INITIATOR, TOK_E],\n [RESPONDER, TOK_E, TOK_EE, TOK_S, TOK_ES]\n ]\n },\n KX: {\n premessages: [\n [INITIATOR, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E],\n [RESPONDER, TOK_E, TOK_EE, TOK_SE, TOK_S, TOK_ES]\n ]\n },\n XN: {\n premessages: [],\n messagePatterns: [\n [INITIATOR, TOK_E],\n [RESPONDER, TOK_E, TOK_EE],\n [INITIATOR, TOK_S, TOK_SE]\n ]\n },\n IN: {\n premessages: [],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_S],\n [RESPONDER, TOK_E, TOK_EE, TOK_SE]\n ]\n },\n XK: {\n premessages: [\n [RESPONDER, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_ES],\n [RESPONDER, TOK_E, TOK_EE],\n [INITIATOR, TOK_S, TOK_SE]\n ]\n },\n IK: {\n premessages: [\n [RESPONDER, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_ES, TOK_S, TOK_SS],\n [RESPONDER, TOK_E, TOK_EE, TOK_SE]\n ]\n },\n XX: {\n premessages: [],\n messagePatterns: [\n [INITIATOR, TOK_E],\n [RESPONDER, TOK_E, TOK_EE, TOK_S, TOK_ES],\n [INITIATOR, TOK_S, TOK_SE]\n ]\n },\n IX: {\n premessages: [],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_S],\n [RESPONDER, TOK_E, TOK_EE, TOK_SE, TOK_S, TOK_ES]\n ]\n }\n})\n\nfunction sodiumBufferCopy (src) {\n var buf = sodium_malloc(src.byteLength)\n buf.set(src)\n return buf\n}\n\nfunction initialize (handshakePattern, initiator, prologue, s, e, rs, re) {\n assert(Object.keys(PATTERNS).includes(handshakePattern), 'Unsupported handshake pattern')\n assert(typeof initiator === 'boolean', 'Initiator must be a boolean')\n assert(prologue.byteLength != null, 'prolouge must be a Buffer')\n\n assert(e == null ? true : e.publicKey.byteLength === dh.PKLEN, `e.publicKey must be ${dh.PKLEN} bytes`)\n assert(e == null ? true : e.secretKey.byteLength === dh.SKLEN, `e.secretKey must be ${dh.SKLEN} bytes`)\n\n assert(rs == null ? true : rs.byteLength === dh.PKLEN, `rs must be ${dh.PKLEN} bytes`)\n assert(re == null ? true : re.byteLength === dh.PKLEN, `re must be ${dh.PKLEN} bytes`)\n\n var state = new HandshakeState()\n\n var protocolName = Uint8Array.from(`Noise_${handshakePattern}_25519_ChaChaPoly_BLAKE2b`, toCharCode)\n\n symmetricState.initializeSymmetric(state.symmetricState, protocolName)\n symmetricState.mixHash(state.symmetricState, prologue)\n\n state.role = initiator === true ? INITIATOR : RESPONDER\n\n if (s != null) {\n assert(s.publicKey.byteLength === dh.PKLEN, `s.publicKey must be ${dh.PKLEN} bytes`)\n assert(s.secretKey.byteLength === dh.SKLEN, `s.secretKey must be ${dh.SKLEN} bytes`)\n\n state.spk = sodiumBufferCopy(s.publicKey)\n state.ssk = sodiumBufferCopy(s.secretKey)\n }\n\n if (e != null) {\n assert(e.publicKey.byteLength === dh.PKLEN)\n assert(e.secretKey.byteLength === dh.SKLEN)\n\n state.epk = sodiumBufferCopy(e.publicKey)\n state.esk = sodiumBufferCopy(e.secretKey)\n }\n\n if (rs != null) {\n assert(rs.byteLength === dh.PKLEN)\n state.rs = sodiumBufferCopy(rs)\n }\n if (re != null) {\n assert(re.byteLength === dh.PKLEN)\n state.re = sodiumBufferCopy(re)\n }\n\n // hashing\n var pat = PATTERNS[handshakePattern]\n\n for (var pattern of clone(pat.premessages)) {\n var patternRole = pattern.shift()\n\n for (var token of pattern) {\n switch (token) {\n case TOK_E:\n assert(state.role === patternRole ? state.epk.byteLength != null : state.re.byteLength != null)\n symmetricState.mixHash(state.symmetricState, state.role === patternRole ? state.epk : state.re)\n break\n case TOK_S:\n assert(state.role === patternRole ? state.spk.byteLength != null : state.rs.byteLength != null)\n symmetricState.mixHash(state.symmetricState, state.role === patternRole ? state.spk : state.rs)\n break\n default:\n throw new Error('Invalid premessage pattern')\n }\n }\n }\n\n state.messagePatterns = clone(pat.messagePatterns)\n\n assert(state.messagePatterns.filter(p => p[0] === INITIATOR).some(p => p.includes(TOK_S))\n ? (state.spk !== null && state.ssk !== null)\n : true, // Default if none is found\n 'This handshake pattern requires a static keypair')\n\n return state\n}\n\nvar DhResult = sodium_malloc(dh.DHLEN)\nfunction writeMessage (state, payload, messageBuffer) {\n assert(state instanceof HandshakeState)\n assert(payload.byteLength != null)\n assert(messageBuffer.byteLength != null)\n\n var mpat = state.messagePatterns.shift()\n var moffset = 0\n\n assert(mpat != null)\n\n assert(state.role === mpat.shift())\n\n for (var token of mpat) {\n switch (token) {\n case TOK_E:\n assert(state.epk == null)\n assert(state.esk == null)\n\n state.epk = sodium_malloc(dh.PKLEN)\n state.esk = sodium_malloc(dh.SKLEN)\n\n dh.generateKeypair(state.epk, state.esk)\n\n messageBuffer.set(state.epk, moffset)\n moffset += state.epk.byteLength\n\n symmetricState.mixHash(state.symmetricState, state.epk)\n\n break\n\n case TOK_S:\n assert(state.spk.byteLength === dh.PKLEN)\n\n symmetricState.encryptAndHash(state.symmetricState, messageBuffer.subarray(moffset), state.spk)\n moffset += symmetricState.encryptAndHash.bytesWritten\n\n break\n\n case TOK_EE:\n dh.dh(DhResult, state.esk, state.re)\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n case TOK_ES:\n if (state.role === INITIATOR) dh.dh(DhResult, state.esk, state.rs)\n else dh.dh(DhResult, state.ssk, state.re)\n\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n case TOK_SE:\n if (state.role === INITIATOR) dh.dh(DhResult, state.ssk, state.re)\n else dh.dh(DhResult, state.esk, state.rs)\n\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n case TOK_SS:\n dh.dh(DhResult, state.ssk, state.rs)\n\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n\n default:\n throw new Error('Invalid message pattern')\n }\n }\n\n symmetricState.encryptAndHash(state.symmetricState, messageBuffer.subarray(moffset), payload)\n moffset += symmetricState.encryptAndHash.bytesWritten\n\n writeMessage.bytes = moffset\n\n if (state.messagePatterns.length === 0) {\n var tx = sodium_malloc(cipherState.STATELEN)\n var rx = sodium_malloc(cipherState.STATELEN)\n symmetricState.split(state.symmetricState, tx, rx)\n\n return { tx, rx }\n }\n}\nwriteMessage.bytes = 0\n\nfunction readMessage (state, message, payloadBuffer) {\n assert(state instanceof HandshakeState)\n assert(message.byteLength != null)\n assert(payloadBuffer.byteLength != null)\n\n var mpat = state.messagePatterns.shift()\n var moffset = 0\n\n assert(mpat != null)\n assert(mpat.shift() !== state.role)\n\n for (var token of mpat) {\n switch (token) {\n case TOK_E:\n assert(state.re == null)\n assert(message.byteLength - moffset >= dh.PKLEN)\n\n // PKLEN instead of DHLEN since they are different in out case\n state.re = sodium_malloc(dh.PKLEN)\n state.re.set(message.subarray(moffset, moffset + dh.PKLEN))\n moffset += dh.PKLEN\n\n symmetricState.mixHash(state.symmetricState, state.re)\n\n break\n\n case TOK_S:\n assert(state.rs == null)\n state.rs = sodium_malloc(dh.PKLEN)\n\n var bytes = 0\n if (symmetricState._hasKey(state.symmetricState)) {\n bytes = dh.PKLEN + 16\n } else {\n bytes = dh.PKLEN\n }\n\n assert(message.byteLength - moffset >= bytes)\n\n symmetricState.decryptAndHash(\n state.symmetricState,\n state.rs,\n message.subarray(moffset, moffset + bytes) // <- called temp in noise spec\n )\n\n moffset += symmetricState.decryptAndHash.bytesRead\n\n break\n case TOK_EE:\n dh.dh(DhResult, state.esk, state.re)\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n case TOK_ES:\n if (state.role === INITIATOR) dh.dh(DhResult, state.esk, state.rs)\n else dh.dh(DhResult, state.ssk, state.re)\n\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n case TOK_SE:\n if (state.role === INITIATOR) dh.dh(DhResult, state.ssk, state.re)\n else dh.dh(DhResult, state.esk, state.rs)\n\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n case TOK_SS:\n dh.dh(DhResult, state.ssk, state.rs)\n\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n\n default:\n throw new Error('Invalid message pattern')\n }\n }\n\n symmetricState.decryptAndHash(state.symmetricState, payloadBuffer, message.subarray(moffset))\n\n // How many bytes were written to payload (minus the TAG/MAC)\n readMessage.bytes = symmetricState.decryptAndHash.bytesWritten\n\n if (state.messagePatterns.length === 0) {\n var tx = sodium_malloc(cipherState.STATELEN)\n var rx = sodium_malloc(cipherState.STATELEN)\n symmetricState.split(state.symmetricState, rx, tx)\n\n return { tx, rx }\n }\n}\nreadMessage.bytes = 0\n\nfunction destroy (state) {\n if (state.symmetricState != null) {\n sodium_free(state.symmetricState)\n state.symmetricState = null\n }\n\n state.role = null\n\n if (state.spk != null) {\n sodium_free(state.spk)\n state.spk = null\n }\n\n if (state.ssk != null) {\n sodium_free(state.ssk)\n state.ssk = null\n }\n\n if (state.epk != null) {\n sodium_free(state.epk)\n state.epk = null\n }\n\n if (state.esk != null) {\n sodium_free(state.esk)\n state.esk = null\n }\n\n if (state.rs != null) {\n sodium_free(state.rs)\n state.rs = null\n }\n\n if (state.re != null) {\n sodium_free(state.re)\n state.re = null\n }\n\n state.messagePatterns = null\n}\n\nfunction keygen (obj, sk) {\n if (!obj) {\n obj = { publicKey: sodium_malloc(PKLEN), secretKey: sodium_malloc(SKLEN) }\n return keygen(obj)\n }\n\n if (obj.publicKey) {\n dh.generateKeypair(obj.publicKey, obj.secretKey)\n return obj\n }\n\n if (obj.byteLength != null) dh.generateKeypair(null, obj)\n}\n\nfunction seedKeygen (seed) {\n var obj = { publicKey: sodium_malloc(PKLEN), secretKey: sodium_malloc(SKLEN) }\n dh.generateSeedKeypair(obj.publicKey, obj.secretKey, seed)\n return obj\n}\n\nfunction toCharCode (s) {\n return s.charCodeAt(0)\n}\n", "module.exports = require('./handshake-state')\n", "var noise = require('noise-protocol')\nvar NoiseSymmetricState = require('noise-protocol/symmetric-state')\nvar NoiseHash = require('noise-protocol/hash')\nvar assert = require('nanoassert')\nvar EMPTY = Buffer.alloc(0)\n\nfunction SimpleHandshake (isInitiator, opts) {\n if (!(this instanceof SimpleHandshake)) return new SimpleHandshake(isInitiator, opts)\n opts = opts || {}\n\n var pattern = opts.pattern || 'NN'\n var prolouge = opts.prolouge || EMPTY\n\n this.handshakeHash = null\n this.onstatickey = opts.onstatickey || function (_, cb) { cb() }\n this.onephemeralkey = opts.onephemeralkey || function (_, cb) { cb() }\n this.onhandshake = opts.onhandshake || function (_, cb) { cb() }\n\n this.state = noise.initialize(\n pattern,\n isInitiator,\n prolouge,\n opts.staticKeyPair,\n opts.ephemeralKeyPair,\n opts.remoteStaticKey,\n opts.remoteEphemeralKey\n )\n\n // initiators should send first message, so if initiator, waiting = false\n // while servers should await any message, so if not initiator, waiting = true\n this.waiting = isInitiator === false\n this.finished = false\n // Will hold the \"split\" for transport encryption after handshake\n this.split = null\n\n // ~64KiB is the max noise message length\n this._tx = Buffer.alloc(65535)\n this._rx = Buffer.alloc(65535)\n}\n\nSimpleHandshake.prototype.recv = function recv (data, cb) {\n var self = this\n assert(self.finished === false, 'Should not call recv if finished')\n assert(data != null, 'must have data')\n assert(data.byteLength <= self._rx.byteLength, 'too much data received')\n assert(self.waiting === true, 'Wrong state, not ready to receive data')\n assert(self.split == null, 'split should be null')\n\n var hasREBefore = self.state.re != null\n var hasRSBefore = self.state.rs != null\n try {\n self.split = noise.readMessage(self.state, data, self._rx)\n } catch (ex) {\n return self._finish(ex, null, cb)\n }\n\n self.waiting = false\n\n var hasREAfter = self.state.re != null\n var hasRSAfter = self.state.rs != null\n\n // e and s may come in the same message, so we always have to check static\n // after ephemeral. Assumption here (which holds for all official Noise handshakes)\n // is that e always comes before s\n if (hasREBefore === false && hasREAfter === true) {\n return self.onephemeralkey(self.state.re, checkStatic)\n }\n\n return checkStatic()\n\n function checkStatic (err) {\n if (err) return ondone(err)\n\n if (hasRSBefore === false && hasRSAfter === true) {\n return self.onstatickey(self.state.rs, ondone)\n }\n\n return ondone()\n }\n\n function ondone (err) {\n if (err) return self._finish(err, null, cb)\n\n var msg = self._rx.subarray(0, noise.readMessage.bytes)\n if (self.split) return self._finish(null, msg, cb)\n\n cb(null, msg)\n }\n}\n\nSimpleHandshake.prototype.send = function send (data, cb) {\n assert(this.finished === false, 'Should not call send if finished')\n assert(this.waiting === false, 'Wrong state, not ready to send data')\n assert(this.split == null, 'split should be null')\n\n data = data || EMPTY\n\n try {\n this.split = noise.writeMessage(this.state, data, this._tx)\n } catch (ex) {\n return this._finish(ex, null, cb)\n }\n\n this.waiting = true\n\n var buf = this._tx.subarray(0, noise.writeMessage.bytes)\n\n if (this.split != null) return this._finish(null, buf, cb)\n\n return cb(null, buf)\n}\n\nSimpleHandshake.prototype.destroy = function () {\n this._finish(null, null, function () {})\n}\n\nSimpleHandshake.prototype._finish = function _finish (err, msg, cb) {\n assert(this.finished === false, 'Already finished')\n const self = this\n\n self.finished = true\n self.waiting = false\n\n if (self.split) {\n self.handshakeHash = Buffer.alloc(NoiseHash.HASHLEN)\n NoiseSymmetricState.getHandshakeHash(self.state.symmetricState, self.handshakeHash)\n }\n if (err) return ondone(err)\n self.onhandshake(self.state, ondone)\n\n function ondone (err) {\n noise.destroy(self.state)\n\n cb(err, msg, self.split)\n\n // Should be sodium_memzero?\n self._rx.fill(0)\n self._tx.fill(0)\n }\n}\n\nSimpleHandshake.keygen = noise.keygen\nSimpleHandshake.seedKeygen = noise.seedKeygen\n\nmodule.exports = SimpleHandshake\n", "module.exports = encode\n\nvar MSB = 0x80\n , REST = 0x7F\n , MSBALL = ~REST\n , INT = Math.pow(2, 31)\n\nfunction encode(num, out, offset) {\n out = out || []\n offset = offset || 0\n var oldOffset = offset\n\n while(num >= INT) {\n out[offset++] = (num & 0xFF) | MSB\n num /= 128\n }\n while(num & MSBALL) {\n out[offset++] = (num & 0xFF) | MSB\n num >>>= 7\n }\n out[offset] = num | 0\n \n encode.bytes = offset - oldOffset + 1\n \n return out\n}\n", "module.exports = read\n\nvar MSB = 0x80\n , REST = 0x7F\n\nfunction read(buf, offset) {\n var res = 0\n , offset = offset || 0\n , shift = 0\n , counter = offset\n , b\n , l = buf.length\n\n do {\n if (counter >= l) {\n read.bytes = 0\n throw new RangeError('Could not decode varint')\n }\n b = buf[counter++]\n res += shift < 28\n ? (b & REST) << shift\n : (b & REST) * Math.pow(2, shift)\n shift += 7\n } while (b >= MSB)\n\n read.bytes = counter - offset\n\n return res\n}\n", "\nvar N1 = Math.pow(2, 7)\nvar N2 = Math.pow(2, 14)\nvar N3 = Math.pow(2, 21)\nvar N4 = Math.pow(2, 28)\nvar N5 = Math.pow(2, 35)\nvar N6 = Math.pow(2, 42)\nvar N7 = Math.pow(2, 49)\nvar N8 = Math.pow(2, 56)\nvar N9 = Math.pow(2, 63)\n\nmodule.exports = function (value) {\n return (\n value < N1 ? 1\n : value < N2 ? 2\n : value < N3 ? 3\n : value < N4 ? 4\n : value < N5 ? 5\n : value < N6 ? 6\n : value < N7 ? 7\n : value < N8 ? 8\n : value < N9 ? 9\n : 10\n )\n}\n", "module.exports = {\n encode: require('./encode.js')\n , decode: require('./decode.js')\n , encodingLength: require('./length.js')\n}\n", "const SH = require('simple-handshake')\nconst DH = require('noise-protocol/dh')\nconst crypto = require('hypercore-crypto')\nconst varint = require('varint')\n\nmodule.exports = class ProtocolHandshake {\n constructor (initiator, payload, opts, done) {\n this.options = opts\n this.ondone = done\n this.buffer = null\n this.length = 0\n this.remotePayload = null\n this.payload = payload\n this.keyPair = opts.keyPair || ProtocolHandshake.keyPair()\n this.remotePublicKey = null\n this.onrecv = onrecv.bind(this)\n this.onsend = onsend.bind(this)\n this.destroyed = false\n this.noise = SH(initiator, {\n pattern: 'XX',\n onhandshake,\n staticKeyPair: this.keyPair,\n onstatickey: onstatickey.bind(this)\n })\n\n const self = this\n if (this.noise.waiting === false) process.nextTick(start, this)\n\n function onhandshake (state, cb) {\n process.nextTick(finish, self)\n cb(null)\n }\n }\n\n recv (data) {\n if (this.destroyed) return\n\n if (this.buffer) this.buffer = Buffer.concat([this.buffer, data])\n else this.buffer = data\n\n while (!this.destroyed && !this.noise.finished) {\n if (!this.buffer || this.buffer.length < 3) return\n if (this.length) {\n if (this.buffer.length < this.length) return\n const message = this.buffer.slice(0, this.length)\n this.buffer = this.length < this.buffer.length ? this.buffer.slice(this.length) : null\n this.length = 0\n this.noise.recv(message, this.onrecv)\n } else {\n this.length = varint.decode(this.buffer, 0)\n this.buffer = this.buffer.slice(varint.decode.bytes)\n }\n }\n }\n\n destroy (err) {\n if (this.destroyed) return\n this.destroyed = true\n if (!this.noise.finished) this.noise.destroy()\n this.ondone(err)\n }\n\n static keyPair (seed) {\n const obj = {\n // suboptimal but to reduce secure memory overhead on linux with default settings\n // better fix is to batch mallocs in noise-protocol\n publicKey: Buffer.alloc(DH.PKLEN),\n secretKey: Buffer.alloc(DH.SKLEN)\n }\n\n if (seed) DH.generateSeedKeypair(obj.publicKey, obj.secretKey, seed)\n else DH.generateKeypair(obj.publicKey, obj.secretKey)\n\n return obj\n }\n}\n\nfunction finish (self) {\n if (self.destroyed) return\n self.destroyed = true\n // suboptimal but to reduce secure memory overhead on linux with default settings\n // better fix is to batch mallocs in noise-protocol\n const split = { rx: Buffer.from(self.noise.split.rx), tx: Buffer.from(self.noise.split.tx) }\n crypto.free(self.noise.split.rx)\n crypto.free(self.noise.split.tx)\n self.ondone(null, self.remotePayload, split, self.buffer, self.remotePublicKey, self.noise.handshakeHash)\n}\n\nfunction start (self) {\n if (self.destroyed) return\n self.noise.send(self.payload, self.onsend)\n}\n\nfunction onsend (err, data) {\n if (err) return this.destroy(err)\n const buf = Buffer.allocUnsafe(varint.encodingLength(data.length) + data.length)\n varint.encode(data.length, buf, 0)\n data.copy(buf, varint.encode.bytes)\n this.options.send(buf)\n}\n\nfunction onrecv (err, data) { // data is reused so we need to copy it if we use it\n if (err) return this.destroy(err)\n if (data && data.length) this.remotePayload = Buffer.from(data)\n if (this.destroyed || this.noise.finished) return\n\n if (this.noise.waiting === false) {\n this.noise.send(this.payload, this.onsend)\n }\n}\n\nfunction onstatickey (remoteKey, done) {\n this.remotePublicKey = Buffer.from(remoteKey)\n if (this.options.onauthenticate) this.options.onauthenticate(this.remotePublicKey, done)\n else done(null)\n}\n", "module.exports = encode\n\nvar MSB = 0x80\n , REST = 0x7F\n , MSBALL = ~REST\n , INT = Math.pow(2, 31)\n\nfunction encode(num, out, offset) {\n out = out || []\n offset = offset || 0\n var oldOffset = offset\n\n while(num >= INT) {\n out[offset++] = (num & 0xFF) | MSB\n num /= 128\n }\n while(num & MSBALL) {\n out[offset++] = (num & 0xFF) | MSB\n num >>>= 7\n }\n out[offset] = num | 0\n \n encode.bytes = offset - oldOffset + 1\n \n return out\n}\n", "module.exports = read\n\nvar MSB = 0x80\n , REST = 0x7F\n\nfunction read(buf, offset) {\n var res = 0\n , offset = offset || 0\n , shift = 0\n , counter = offset\n , b\n , l = buf.length\n\n do {\n if (counter >= l) {\n read.bytes = 0\n throw new RangeError('Could not decode varint')\n }\n b = buf[counter++]\n res += shift < 28\n ? (b & REST) << shift\n : (b & REST) * Math.pow(2, shift)\n shift += 7\n } while (b >= MSB)\n\n read.bytes = counter - offset\n\n return res\n}\n", "\nvar N1 = Math.pow(2, 7)\nvar N2 = Math.pow(2, 14)\nvar N3 = Math.pow(2, 21)\nvar N4 = Math.pow(2, 28)\nvar N5 = Math.pow(2, 35)\nvar N6 = Math.pow(2, 42)\nvar N7 = Math.pow(2, 49)\nvar N8 = Math.pow(2, 56)\nvar N9 = Math.pow(2, 63)\n\nmodule.exports = function (value) {\n return (\n value < N1 ? 1\n : value < N2 ? 2\n : value < N3 ? 3\n : value < N4 ? 4\n : value < N5 ? 5\n : value < N6 ? 6\n : value < N7 ? 7\n : value < N8 ? 8\n : value < N9 ? 9\n : 10\n )\n}\n", "module.exports = {\n encode: require('./encode.js')\n , decode: require('./decode.js')\n , encodingLength: require('./length.js')\n}\n", "var varint = require('varint')\nexports.encode = function encode (v, b, o) {\n v = v >= 0 ? v*2 : v*-2 - 1\n var r = varint.encode(v, b, o)\n encode.bytes = varint.encode.bytes\n return r\n}\nexports.decode = function decode (b, o) {\n var v = varint.decode(b, o)\n decode.bytes = varint.decode.bytes\n return v & 1 ? (v+1) / -2 : v / 2\n}\n\nexports.encodingLength = function (v) {\n return varint.encodingLength(v >= 0 ? v*2 : v*-2 - 1)\n}\n", "function byteLength (string) {\n return string.length\n}\n\nfunction toString (buffer) {\n const len = buffer.byteLength\n\n let result = ''\n\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buffer[i])\n }\n\n return result\n}\n\nfunction write (buffer, string, offset = 0, length = byteLength(string)) {\n const len = Math.min(length, buffer.byteLength - offset)\n\n for (let i = 0; i < len; i++) {\n buffer[offset + i] = string.charCodeAt(i)\n }\n\n return len\n}\n\nmodule.exports = {\n byteLength,\n toString,\n write\n}\n", "const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\nconst codes = new Uint8Array(256)\n\nfor (let i = 0; i < alphabet.length; i++) {\n codes[alphabet.charCodeAt(i)] = i\n}\n\ncodes[/* - */ 0x2d] = 62\ncodes[/* _ */ 0x5f] = 63\n\nfunction byteLength (string) {\n let len = string.length\n\n if (string.charCodeAt(len - 1) === 0x3d) len--\n if (len > 1 && string.charCodeAt(len - 1) === 0x3d) len--\n\n return (len * 3) >>> 2\n}\n\nfunction toString (buffer) {\n const len = buffer.byteLength\n\n let result = ''\n\n for (let i = 0; i < len; i += 3) {\n result += (\n alphabet[buffer[i] >> 2] +\n alphabet[((buffer[i] & 3) << 4) | (buffer[i + 1] >> 4)] +\n alphabet[((buffer[i + 1] & 15) << 2) | (buffer[i + 2] >> 6)] +\n alphabet[buffer[i + 2] & 63]\n )\n }\n\n if (len % 3 === 2) {\n result = result.substring(0, result.length - 1) + '='\n } else if (len % 3 === 1) {\n result = result.substring(0, result.length - 2) + '=='\n }\n\n return result\n};\n\nfunction write (buffer, string, offset = 0, length = byteLength(string)) {\n const len = Math.min(length, buffer.byteLength - offset)\n\n for (let i = 0, j = 0; j < len; i += 4) {\n const a = codes[string.charCodeAt(i)]\n const b = codes[string.charCodeAt(i + 1)]\n const c = codes[string.charCodeAt(i + 2)]\n const d = codes[string.charCodeAt(i + 3)]\n\n buffer[j++] = (a << 2) | (b >> 4)\n buffer[j++] = ((b & 15) << 4) | (c >> 2)\n buffer[j++] = ((c & 3) << 6) | (d & 63)\n }\n\n return len\n};\n\nmodule.exports = {\n byteLength,\n toString,\n write\n}\n", "function byteLength (string) {\n return string.length >>> 1\n}\n\nfunction toString (buffer) {\n const len = buffer.byteLength\n\n buffer = new DataView(buffer.buffer, buffer.byteOffset, len)\n\n let result = ''\n let i = 0\n\n for (let n = len - (len % 4); i < n; i += 4) {\n result += buffer.getUint32(i).toString(16).padStart(8, '0')\n }\n\n for (; i < len; i++) {\n result += buffer.getUint8(i).toString(16).padStart(2, '0')\n }\n\n return result\n}\n\nfunction write (buffer, string, offset = 0, length = byteLength(string)) {\n const len = Math.min(length, buffer.byteLength - offset)\n\n for (let i = 0; i < len; i++) {\n const a = hexValue(string.charCodeAt(i * 2))\n const b = hexValue(string.charCodeAt(i * 2 + 1))\n\n if (a === undefined || b === undefined) {\n return buffer.subarray(0, i)\n }\n\n buffer[offset + i] = (a << 4) | b\n }\n\n return len\n}\n\nmodule.exports = {\n byteLength,\n toString,\n write\n}\n\nfunction hexValue (char) {\n if (char >= 0x30 && char <= 0x39) return char - 0x30\n if (char >= 0x41 && char <= 0x46) return char - 0x41 + 10\n if (char >= 0x61 && char <= 0x66) return char - 0x61 + 10\n}\n", "function byteLength (string) {\n let length = 0\n\n for (let i = 0, n = string.length; i < n; i++) {\n const code = string.charCodeAt(i)\n\n if (code >= 0xd800 && code <= 0xdbff && i + 1 < n) {\n const code = string.charCodeAt(i + 1)\n\n if (code >= 0xdc00 && code <= 0xdfff) {\n length += 4\n i++\n continue\n }\n }\n\n if (code <= 0x7f) length += 1\n else if (code <= 0x7ff) length += 2\n else length += 3\n }\n\n return length\n}\n\nlet toString\n\nif (typeof TextDecoder !== 'undefined') {\n const decoder = new TextDecoder()\n\n toString = function toString (buffer) {\n return decoder.decode(buffer)\n }\n} else {\n toString = function toString (buffer) {\n const len = buffer.byteLength\n\n let output = ''\n let i = 0\n\n while (i < len) {\n let byte = buffer[i]\n\n if (byte <= 0x7f) {\n output += String.fromCharCode(byte)\n i++\n continue\n }\n\n let bytesNeeded = 0\n let codePoint = 0\n\n if (byte <= 0xdf) {\n bytesNeeded = 1\n codePoint = byte & 0x1f\n } else if (byte <= 0xef) {\n bytesNeeded = 2\n codePoint = byte & 0x0f\n } else if (byte <= 0xf4) {\n bytesNeeded = 3\n codePoint = byte & 0x07\n }\n\n if (len - i - bytesNeeded > 0) {\n let k = 0\n\n while (k < bytesNeeded) {\n byte = buffer[i + k + 1]\n codePoint = (codePoint << 6) | (byte & 0x3f)\n k += 1\n }\n } else {\n codePoint = 0xfffd\n bytesNeeded = len - i\n }\n\n output += String.fromCodePoint(codePoint)\n i += bytesNeeded + 1\n }\n\n return output\n }\n}\n\nlet write\n\nif (typeof TextEncoder !== 'undefined') {\n const encoder = new TextEncoder()\n\n write = function write (buffer, string, offset = 0, length = byteLength(string)) {\n const len = Math.min(length, buffer.byteLength - offset)\n encoder.encodeInto(string, buffer.subarray(offset, offset + len))\n return len\n }\n} else {\n write = function write (buffer, string, offset = 0, length = byteLength(string)) {\n const len = Math.min(length, buffer.byteLength - offset)\n\n buffer = buffer.subarray(offset, offset + len)\n\n let i = 0\n let j = 0\n\n while (i < string.length) {\n const code = string.codePointAt(i)\n\n if (code <= 0x7f) {\n buffer[j++] = code\n i++\n continue\n }\n\n let count = 0\n let bits = 0\n\n if (code <= 0x7ff) {\n count = 6\n bits = 0xc0\n } else if (code <= 0xffff) {\n count = 12\n bits = 0xe0\n } else if (code <= 0x1fffff) {\n count = 18\n bits = 0xf0\n }\n\n buffer[j++] = bits | (code >> count)\n count -= 6\n\n while (count >= 0) {\n buffer[j++] = 0x80 | ((code >> count) & 0x3f)\n count -= 6\n }\n\n i += code >= 0x10000 ? 2 : 1\n }\n\n return len\n }\n}\n\nmodule.exports = {\n byteLength,\n toString,\n write\n}\n", "function byteLength (string) {\n return string.length * 2\n}\n\nfunction toString (buffer) {\n const len = buffer.byteLength\n\n let result = ''\n\n for (let i = 0; i < len - 1; i += 2) {\n result += String.fromCharCode(buffer[i] + (buffer[i + 1] * 256))\n }\n\n return result\n}\n\nfunction write (buffer, string, offset = 0, length = byteLength(string)) {\n const len = Math.min(length, buffer.byteLength - offset)\n\n let units = len\n\n for (let i = 0; i < string.length; ++i) {\n if ((units -= 2) < 0) break\n\n const c = string.charCodeAt(i)\n const hi = c >> 8\n const lo = c % 256\n\n buffer[offset + i * 2] = lo\n buffer[offset + i * 2 + 1] = hi\n }\n\n return len\n}\n\nmodule.exports = {\n byteLength,\n toString,\n write\n}\n", "const ascii = require('./lib/ascii')\nconst base64 = require('./lib/base64')\nconst hex = require('./lib/hex')\nconst utf8 = require('./lib/utf8')\nconst utf16le = require('./lib/utf16le')\n\nconst LE = new Uint8Array(Uint16Array.of(0xff).buffer)[0] === 0xff\n\nfunction codecFor (encoding) {\n switch (encoding) {\n case 'ascii':\n return ascii\n case 'base64':\n return base64\n case 'hex':\n return hex\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16le\n default:\n throw new Error(`Unknown encoding: ${encoding}`)\n }\n}\n\nfunction isBuffer (value) {\n return value instanceof Uint8Array\n}\n\nfunction isEncoding (encoding) {\n try {\n codecFor(encoding)\n return true\n } catch {\n return false\n }\n}\n\nfunction alloc (size, fill, encoding) {\n const buffer = new Uint8Array(size)\n if (fill !== undefined) exports.fill(buffer, fill, 0, buffer.byteLength, encoding)\n return buffer\n}\n\nfunction allocUnsafe (size) {\n return new Uint8Array(size)\n}\n\nfunction allocUnsafeSlow (size) {\n return new Uint8Array(size)\n}\n\nfunction byteLength (string, encoding) {\n return codecFor(encoding).byteLength(string)\n}\n\nfunction compare (a, b) {\n if (a === b) return 0\n\n const len = Math.min(a.byteLength, b.byteLength)\n\n a = new DataView(a.buffer, a.byteOffset, a.byteLength)\n b = new DataView(b.buffer, b.byteOffset, b.byteLength)\n\n let i = 0\n\n for (let n = len - (len % 4); i < n; i += 4) {\n const x = a.getUint32(i, LE)\n const y = b.getUint32(i, LE)\n if (x !== y) break\n }\n\n for (; i < len; i++) {\n const x = a.getUint8(i)\n const y = b.getUint8(i)\n if (x < y) return -1\n if (x > y) return 1\n }\n\n return a.byteLength > b.byteLength ? 1 : a.byteLength < b.byteLength ? -1 : 0\n}\n\nfunction concat (buffers, totalLength) {\n if (totalLength === undefined) {\n totalLength = buffers.reduce((len, buffer) => len + buffer.byteLength, 0)\n }\n\n const result = new Uint8Array(totalLength)\n\n let offset = 0\n for (const buffer of buffers) {\n if (offset + buffer.byteLength > result.byteLength) {\n const sub = buffer.subarray(0, result.byteLength - offset)\n result.set(sub, offset)\n return result\n }\n result.set(buffer, offset)\n offset += buffer.byteLength\n }\n\n return result\n}\n\nfunction copy (source, target, targetStart = 0, start = 0, end = source.byteLength) {\n if (end > 0 && end < start) return 0\n if (end === start) return 0\n if (source.byteLength === 0 || target.byteLength === 0) return 0\n\n if (targetStart < 0) throw new RangeError('targetStart is out of range')\n if (start < 0 || start >= source.byteLength) throw new RangeError('sourceStart is out of range')\n if (end < 0) throw new RangeError('sourceEnd is out of range')\n\n if (targetStart >= target.byteLength) targetStart = target.byteLength\n if (end > source.byteLength) end = source.byteLength\n if (target.byteLength - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (source === target) {\n target.copyWithin(targetStart, start, end)\n } else {\n target.set(source.subarray(start, end), targetStart)\n }\n\n return len\n}\n\nfunction equals (a, b) {\n if (a === b) return true\n if (a.byteLength !== b.byteLength) return false\n\n const len = a.byteLength\n\n a = new DataView(a.buffer, a.byteOffset, a.byteLength)\n b = new DataView(b.buffer, b.byteOffset, b.byteLength)\n\n let i = 0\n\n for (let n = len - (len % 4); i < n; i += 4) {\n if (a.getUint32(i, LE) !== b.getUint32(i, LE)) return false\n }\n\n for (; i < len; i++) {\n if (a.getUint8(i) !== b.getUint8(i)) return false\n }\n\n return true\n}\n\nfunction fill (buffer, value, offset, end, encoding) {\n if (typeof value === 'string') {\n // fill(buffer, string, encoding)\n if (typeof offset === 'string') {\n encoding = offset\n offset = 0\n end = buffer.byteLength\n\n // fill(buffer, string, offset, encoding)\n } else if (typeof end === 'string') {\n encoding = end\n end = buffer.byteLength\n }\n } else if (typeof value === 'number') {\n value = value & 0xff\n } else if (typeof value === 'boolean') {\n value = +value\n }\n\n if (offset < 0 || buffer.byteLength < offset || buffer.byteLength < end) {\n throw new RangeError('Out of range index')\n }\n\n if (offset === undefined) offset = 0\n if (end === undefined) end = buffer.byteLength\n\n if (end <= offset) return buffer\n\n if (!value) value = 0\n\n if (typeof value === 'number') {\n for (let i = offset; i < end; ++i) {\n buffer[i] = value\n }\n } else {\n value = isBuffer(value) ? value : from(value, encoding)\n\n const len = value.byteLength\n\n for (let i = 0; i < end - offset; ++i) {\n buffer[i + offset] = value[i % len]\n }\n }\n\n return buffer\n}\n\nfunction from (value, encodingOrOffset, length) {\n // from(string, encoding)\n if (typeof value === 'string') return fromString(value, encodingOrOffset)\n\n // from(array)\n if (Array.isArray(value)) return fromArray(value)\n\n // from(buffer)\n if (ArrayBuffer.isView(value)) return fromBuffer(value)\n\n // from(arrayBuffer[, byteOffset[, length]])\n return fromArrayBuffer(value, encodingOrOffset, length)\n}\n\nfunction fromString (string, encoding) {\n const codec = codecFor(encoding)\n const buffer = new Uint8Array(codec.byteLength(string))\n codec.write(buffer, string, 0, buffer.byteLength)\n return buffer\n}\n\nfunction fromArray (array) {\n const buffer = new Uint8Array(array.length)\n buffer.set(array)\n return buffer\n}\n\nfunction fromBuffer (buffer) {\n const copy = new Uint8Array(buffer.byteLength)\n copy.set(buffer)\n return copy\n}\n\nfunction fromArrayBuffer (arrayBuffer, byteOffset, length) {\n return new Uint8Array(arrayBuffer, byteOffset, length)\n}\n\nfunction includes (buffer, value, byteOffset, encoding) {\n return indexOf(buffer, value, byteOffset, encoding) !== -1\n}\n\nfunction bidirectionalIndexOf (buffer, value, byteOffset, encoding, first) {\n if (buffer.byteLength === 0) return -1\n\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset === undefined) {\n byteOffset = first ? 0 : (buffer.length - 1)\n } else if (byteOffset < 0) {\n byteOffset += buffer.byteLength\n }\n\n if (byteOffset >= buffer.byteLength) {\n if (first) return -1\n else byteOffset = buffer.byteLength - 1\n } else if (byteOffset < 0) {\n if (first) byteOffset = 0\n else return -1\n }\n\n if (typeof value === 'string') {\n value = from(value, encoding)\n } else if (typeof value === 'number') {\n value = value & 0xff\n\n if (first) {\n return buffer.indexOf(value, byteOffset)\n } else {\n return buffer.lastIndexOf(value, byteOffset)\n }\n }\n\n if (value.byteLength === 0) return -1\n\n if (first) {\n let foundIndex = -1\n\n for (let i = byteOffset; i < buffer.byteLength; i++) {\n if (buffer[i] === value[foundIndex === -1 ? 0 : i - foundIndex]) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === value.byteLength) return foundIndex\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + value.byteLength > buffer.byteLength) {\n byteOffset = buffer.byteLength - value.byteLength\n }\n\n for (let i = byteOffset; i >= 0; i--) {\n let found = true\n\n for (let j = 0; j < value.byteLength; j++) {\n if (buffer[i + j] !== value[j]) {\n found = false\n break\n }\n }\n\n if (found) return i\n }\n }\n\n return -1\n}\n\nfunction indexOf (buffer, value, byteOffset, encoding) {\n return bidirectionalIndexOf(buffer, value, byteOffset, encoding, true /* first */)\n}\n\nfunction lastIndexOf (buffer, value, byteOffset, encoding) {\n return bidirectionalIndexOf(buffer, value, byteOffset, encoding, false /* last */)\n}\n\nfunction swap (buffer, n, m) {\n const i = buffer[n]\n buffer[n] = buffer[m]\n buffer[m] = i\n}\n\nfunction swap16 (buffer) {\n const len = buffer.byteLength\n\n if (len % 2 !== 0) throw new RangeError('Buffer size must be a multiple of 16-bits')\n\n for (let i = 0; i < len; i += 2) swap(buffer, i, i + 1)\n\n return buffer\n}\n\nfunction swap32 (buffer) {\n const len = buffer.byteLength\n\n if (len % 4 !== 0) throw new RangeError('Buffer size must be a multiple of 32-bits')\n\n for (let i = 0; i < len; i += 4) {\n swap(buffer, i, i + 3)\n swap(buffer, i + 1, i + 2)\n }\n\n return buffer\n}\n\nfunction swap64 (buffer) {\n const len = buffer.byteLength\n\n if (len % 8 !== 0) throw new RangeError('Buffer size must be a multiple of 64-bits')\n\n for (let i = 0; i < len; i += 8) {\n swap(buffer, i, i + 7)\n swap(buffer, i + 1, i + 6)\n swap(buffer, i + 2, i + 5)\n swap(buffer, i + 3, i + 4)\n }\n\n return buffer\n}\n\nfunction toBuffer (buffer) {\n return buffer\n}\n\nfunction toString (buffer, encoding, start = 0, end = buffer.byteLength) {\n const len = buffer.byteLength\n\n if (start >= len) return ''\n if (end <= start) return ''\n if (start < 0) start = 0\n if (end > len) end = len\n\n if (start !== 0 || end < len) buffer = buffer.subarray(start, end)\n\n return codecFor(encoding).toString(buffer)\n}\n\nfunction write (buffer, string, offset, length, encoding) {\n // write(buffer, string)\n if (offset === undefined) {\n encoding = 'utf8'\n\n // write(buffer, string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n offset = undefined\n\n // write(buffer, string, offset, encoding)\n } else if (encoding === undefined && typeof length === 'string') {\n encoding = length\n length = undefined\n }\n\n return codecFor(encoding).write(buffer, string, offset, length)\n}\n\nfunction writeDoubleLE (buffer, value, offset) {\n if (offset === undefined) offset = 0\n\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n view.setFloat64(offset, value, true)\n\n return offset + 8\n}\n\nfunction writeFloatLE (buffer, value, offset) {\n if (offset === undefined) offset = 0\n\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n view.setFloat32(offset, value, true)\n\n return offset + 4\n}\n\nfunction writeUInt32LE (buffer, value, offset) {\n if (offset === undefined) offset = 0\n\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n view.setUint32(offset, value, true)\n\n return offset + 4\n}\n\nfunction writeInt32LE (buffer, value, offset) {\n if (offset === undefined) offset = 0\n\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n view.setInt32(offset, value, true)\n\n return offset + 4\n}\n\nfunction readDoubleLE (buffer, offset) {\n if (offset === undefined) offset = 0\n\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\n return view.getFloat64(offset, true)\n}\n\nfunction readFloatLE (buffer, offset) {\n if (offset === undefined) offset = 0\n\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\n return view.getFloat32(offset, true)\n}\n\nfunction readUInt32LE (buffer, offset) {\n if (offset === undefined) offset = 0\n\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\n return view.getUint32(offset, true)\n}\n\nfunction readInt32LE (buffer, offset) {\n if (offset === undefined) offset = 0\n\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\n return view.getInt32(offset, true)\n}\n\nmodule.exports = exports = {\n isBuffer,\n isEncoding,\n alloc,\n allocUnsafe,\n allocUnsafeSlow,\n byteLength,\n compare,\n concat,\n copy,\n equals,\n fill,\n from,\n includes,\n indexOf,\n lastIndexOf,\n swap16,\n swap32,\n swap64,\n toBuffer,\n toString,\n write,\n writeDoubleLE,\n writeFloatLE,\n writeUInt32LE,\n writeInt32LE,\n readDoubleLE,\n readFloatLE,\n readUInt32LE,\n readInt32LE\n}\n", "var varint = require('varint')\nvar svarint = require('signed-varint')\nvar b4a = require('b4a')\n\nexports.make = encoder\n\nexports.name = function (enc) {\n var keys = Object.keys(exports)\n for (var i = 0; i < keys.length; i++) {\n if (exports[keys[i]] === enc) return keys[i]\n }\n return null\n}\n\nexports.skip = function (type, buffer, offset) {\n switch (type) {\n case 0:\n varint.decode(buffer, offset)\n return offset + varint.decode.bytes\n\n case 1:\n return offset + 8\n\n case 2:\n var len = varint.decode(buffer, offset)\n return offset + varint.decode.bytes + len\n\n case 3:\n case 4:\n throw new Error('Groups are not supported')\n\n case 5:\n return offset + 4\n }\n\n throw new Error('Unknown wire type: ' + type)\n}\n\nexports.bytes = encoder(2,\n function encode (val, buffer, offset) {\n var oldOffset = offset\n var len = bufferLength(val)\n\n varint.encode(len, buffer, offset)\n offset += varint.encode.bytes\n\n if (b4a.isBuffer(val)) b4a.copy(val, buffer, offset)\n else b4a.write(buffer, val, offset, len)\n offset += len\n\n encode.bytes = offset - oldOffset\n return buffer\n },\n function decode (buffer, offset) {\n var oldOffset = offset\n\n var len = varint.decode(buffer, offset)\n offset += varint.decode.bytes\n\n var val = buffer.subarray(offset, offset + len)\n offset += val.length\n\n decode.bytes = offset - oldOffset\n return val\n },\n function encodingLength (val) {\n var len = bufferLength(val)\n return varint.encodingLength(len) + len\n }\n)\n\nexports.string = encoder(2,\n function encode (val, buffer, offset) {\n var oldOffset = offset\n var len = b4a.byteLength(val)\n\n varint.encode(len, buffer, offset, 'utf-8')\n offset += varint.encode.bytes\n\n b4a.write(buffer, val, offset, len)\n offset += len\n\n encode.bytes = offset - oldOffset\n return buffer\n },\n function decode (buffer, offset) {\n var oldOffset = offset\n\n var len = varint.decode(buffer, offset)\n offset += varint.decode.bytes\n\n var val = b4a.toString(buffer, 'utf-8', offset, offset + len)\n offset += len\n\n decode.bytes = offset - oldOffset\n return val\n },\n function encodingLength (val) {\n var len = b4a.byteLength(val)\n return varint.encodingLength(len) + len\n }\n)\n\nexports.bool = encoder(0,\n function encode (val, buffer, offset) {\n buffer[offset] = val ? 1 : 0\n encode.bytes = 1\n return buffer\n },\n function decode (buffer, offset) {\n var bool = buffer[offset] > 0\n decode.bytes = 1\n return bool\n },\n function encodingLength () {\n return 1\n }\n)\n\nexports.int32 = encoder(0,\n function encode (val, buffer, offset) {\n varint.encode(val < 0 ? val + 4294967296 : val, buffer, offset)\n encode.bytes = varint.encode.bytes\n return buffer\n },\n function decode (buffer, offset) {\n var val = varint.decode(buffer, offset)\n decode.bytes = varint.decode.bytes\n return val > 2147483647 ? val - 4294967296 : val\n },\n function encodingLength (val) {\n return varint.encodingLength(val < 0 ? val + 4294967296 : val)\n }\n)\n\nexports.int64 = encoder(0,\n function encode (val, buffer, offset) {\n if (val < 0) {\n var last = offset + 9\n varint.encode(val * -1, buffer, offset)\n offset += varint.encode.bytes - 1\n buffer[offset] = buffer[offset] | 0x80\n while (offset < last - 1) {\n offset++\n buffer[offset] = 0xff\n }\n buffer[last] = 0x01\n encode.bytes = 10\n } else {\n varint.encode(val, buffer, offset)\n encode.bytes = varint.encode.bytes\n }\n return buffer\n },\n function decode (buffer, offset) {\n var val = varint.decode(buffer, offset)\n if (val >= Math.pow(2, 63)) {\n var limit = 9\n while (buffer[offset + limit - 1] === 0xff) limit--\n limit = limit || 9\n var subset = b4a.allocUnsafe(limit)\n b4a.copy(buffer, subset, 0, offset, offset + limit)\n subset[limit - 1] = subset[limit - 1] & 0x7f\n val = -1 * varint.decode(subset, 0)\n decode.bytes = 10\n } else {\n decode.bytes = varint.decode.bytes\n }\n return val\n },\n function encodingLength (val) {\n return val < 0 ? 10 : varint.encodingLength(val)\n }\n)\n\nexports.sint32 =\nexports.sint64 = encoder(0,\n svarint.encode,\n svarint.decode,\n svarint.encodingLength\n)\n\nexports.uint32 =\nexports.uint64 =\nexports.enum =\nexports.varint = encoder(0,\n varint.encode,\n varint.decode,\n varint.encodingLength\n)\n\n// we cannot represent these in javascript so we just use buffers\nexports.fixed64 =\nexports.sfixed64 = encoder(1,\n function encode (val, buffer, offset) {\n b4a.copy(val, buffer, offset)\n encode.bytes = 8\n return buffer\n },\n function decode (buffer, offset) {\n var val = buffer.subarray(offset, offset + 8)\n decode.bytes = 8\n return val\n },\n function encodingLength () {\n return 8\n }\n)\n\nexports.double = encoder(1,\n function encode (val, buffer, offset) {\n b4a.writeDoubleLE(buffer, val, offset)\n encode.bytes = 8\n return buffer\n },\n function decode (buffer, offset) {\n var val = b4a.readDoubleLE(buffer, offset)\n decode.bytes = 8\n return val\n },\n function encodingLength () {\n return 8\n }\n)\n\nexports.fixed32 = encoder(5,\n function encode (val, buffer, offset) {\n b4a.writeUInt32LE(buffer, val, offset)\n encode.bytes = 4\n return buffer\n },\n function decode (buffer, offset) {\n var val = b4a.readUInt32LE(buffer, offset)\n decode.bytes = 4\n return val\n },\n function encodingLength () {\n return 4\n }\n)\n\nexports.sfixed32 = encoder(5,\n function encode (val, buffer, offset) {\n b4a.writeInt32LE(buffer, val, offset)\n encode.bytes = 4\n return buffer\n },\n function decode (buffer, offset) {\n var val = b4a.readInt32LE(buffer, offset)\n decode.bytes = 4\n return val\n },\n function encodingLength () {\n return 4\n }\n)\n\nexports.float = encoder(5,\n function encode (val, buffer, offset) {\n b4a.writeFloatLE(buffer, val, offset)\n encode.bytes = 4\n return buffer\n },\n function decode (buffer, offset) {\n var val = b4a.readFloatLE(buffer, offset)\n decode.bytes = 4\n return val\n },\n function encodingLength () {\n return 4\n }\n)\n\nfunction encoder (type, encode, decode, encodingLength) {\n encode.bytes = decode.bytes = 0\n\n return {\n type: type,\n encode: encode,\n decode: decode,\n encodingLength: encodingLength\n }\n}\n\nfunction bufferLength (val) {\n return b4a.isBuffer(val) ? val.length : b4a.byteLength(val)\n}\n", "// This file is auto generated by the protocol-buffers compiler\n\n/* eslint-disable quotes */\n/* eslint-disable indent */\n/* eslint-disable no-redeclare */\n/* eslint-disable camelcase */\n\n// Remember to `npm install --save protocol-buffers-encodings`\nvar encodings = require('protocol-buffers-encodings')\nvar varint = encodings.varint\nvar skip = encodings.skip\n\nvar NoisePayload = exports.NoisePayload = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Open = exports.Open = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Options = exports.Options = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Status = exports.Status = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Have = exports.Have = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Unhave = exports.Unhave = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Want = exports.Want = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Unwant = exports.Unwant = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Request = exports.Request = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Cancel = exports.Cancel = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Data = exports.Data = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Close = exports.Close = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\ndefineNoisePayload()\ndefineOpen()\ndefineOptions()\ndefineStatus()\ndefineHave()\ndefineUnhave()\ndefineWant()\ndefineUnwant()\ndefineRequest()\ndefineCancel()\ndefineData()\ndefineClose()\n\nfunction defineNoisePayload () {\n var enc = [\n encodings.bytes\n ]\n\n NoisePayload.encodingLength = encodingLength\n NoisePayload.encode = encode\n NoisePayload.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.nonce)) throw new Error(\"nonce is required\")\n var len = enc[0].encodingLength(obj.nonce)\n length += 1 + len\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.nonce)) throw new Error(\"nonce is required\")\n buf[offset++] = 10\n enc[0].encode(obj.nonce, buf, offset)\n offset += enc[0].encode.bytes\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n nonce: null\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.nonce = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineOpen () {\n var enc = [\n encodings.bytes\n ]\n\n Open.encodingLength = encodingLength\n Open.encode = encode\n Open.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.discoveryKey)) throw new Error(\"discoveryKey is required\")\n var len = enc[0].encodingLength(obj.discoveryKey)\n length += 1 + len\n if (defined(obj.capability)) {\n var len = enc[0].encodingLength(obj.capability)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.discoveryKey)) throw new Error(\"discoveryKey is required\")\n buf[offset++] = 10\n enc[0].encode(obj.discoveryKey, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.capability)) {\n buf[offset++] = 18\n enc[0].encode(obj.capability, buf, offset)\n offset += enc[0].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n discoveryKey: null,\n capability: null\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.discoveryKey = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.capability = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineOptions () {\n var enc = [\n encodings.string,\n encodings.bool\n ]\n\n Options.encodingLength = encodingLength\n Options.encode = encode\n Options.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (defined(obj.extensions)) {\n for (var i = 0; i < obj.extensions.length; i++) {\n if (!defined(obj.extensions[i])) continue\n var len = enc[0].encodingLength(obj.extensions[i])\n length += 1 + len\n }\n }\n if (defined(obj.ack)) {\n var len = enc[1].encodingLength(obj.ack)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (defined(obj.extensions)) {\n for (var i = 0; i < obj.extensions.length; i++) {\n if (!defined(obj.extensions[i])) continue\n buf[offset++] = 10\n enc[0].encode(obj.extensions[i], buf, offset)\n offset += enc[0].encode.bytes\n }\n }\n if (defined(obj.ack)) {\n buf[offset++] = 16\n enc[1].encode(obj.ack, buf, offset)\n offset += enc[1].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n extensions: [],\n ack: false\n }\n while (true) {\n if (end <= offset) {\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.extensions.push(enc[0].decode(buf, offset))\n offset += enc[0].decode.bytes\n break\n case 2:\n obj.ack = enc[1].decode(buf, offset)\n offset += enc[1].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineStatus () {\n var enc = [\n encodings.bool\n ]\n\n Status.encodingLength = encodingLength\n Status.encode = encode\n Status.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (defined(obj.uploading)) {\n var len = enc[0].encodingLength(obj.uploading)\n length += 1 + len\n }\n if (defined(obj.downloading)) {\n var len = enc[0].encodingLength(obj.downloading)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (defined(obj.uploading)) {\n buf[offset++] = 8\n enc[0].encode(obj.uploading, buf, offset)\n offset += enc[0].encode.bytes\n }\n if (defined(obj.downloading)) {\n buf[offset++] = 16\n enc[0].encode(obj.downloading, buf, offset)\n offset += enc[0].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n uploading: false,\n downloading: false\n }\n while (true) {\n if (end <= offset) {\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.uploading = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n case 2:\n obj.downloading = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineHave () {\n var enc = [\n encodings.varint,\n encodings.bytes,\n encodings.bool\n ]\n\n Have.encodingLength = encodingLength\n Have.encode = encode\n Have.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.start)) throw new Error(\"start is required\")\n var len = enc[0].encodingLength(obj.start)\n length += 1 + len\n if (defined(obj.length)) {\n var len = enc[0].encodingLength(obj.length)\n length += 1 + len\n }\n if (defined(obj.bitfield)) {\n var len = enc[1].encodingLength(obj.bitfield)\n length += 1 + len\n }\n if (defined(obj.ack)) {\n var len = enc[2].encodingLength(obj.ack)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.start)) throw new Error(\"start is required\")\n buf[offset++] = 8\n enc[0].encode(obj.start, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.length)) {\n buf[offset++] = 16\n enc[0].encode(obj.length, buf, offset)\n offset += enc[0].encode.bytes\n }\n if (defined(obj.bitfield)) {\n buf[offset++] = 26\n enc[1].encode(obj.bitfield, buf, offset)\n offset += enc[1].encode.bytes\n }\n if (defined(obj.ack)) {\n buf[offset++] = 32\n enc[2].encode(obj.ack, buf, offset)\n offset += enc[2].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n start: 0,\n length: 1,\n bitfield: null,\n ack: false\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.start = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.length = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n case 3:\n obj.bitfield = enc[1].decode(buf, offset)\n offset += enc[1].decode.bytes\n break\n case 4:\n obj.ack = enc[2].decode(buf, offset)\n offset += enc[2].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineUnhave () {\n var enc = [\n encodings.varint\n ]\n\n Unhave.encodingLength = encodingLength\n Unhave.encode = encode\n Unhave.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.start)) throw new Error(\"start is required\")\n var len = enc[0].encodingLength(obj.start)\n length += 1 + len\n if (defined(obj.length)) {\n var len = enc[0].encodingLength(obj.length)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.start)) throw new Error(\"start is required\")\n buf[offset++] = 8\n enc[0].encode(obj.start, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.length)) {\n buf[offset++] = 16\n enc[0].encode(obj.length, buf, offset)\n offset += enc[0].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n start: 0,\n length: 1\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.start = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.length = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineWant () {\n var enc = [\n encodings.varint\n ]\n\n Want.encodingLength = encodingLength\n Want.encode = encode\n Want.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.start)) throw new Error(\"start is required\")\n var len = enc[0].encodingLength(obj.start)\n length += 1 + len\n if (defined(obj.length)) {\n var len = enc[0].encodingLength(obj.length)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.start)) throw new Error(\"start is required\")\n buf[offset++] = 8\n enc[0].encode(obj.start, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.length)) {\n buf[offset++] = 16\n enc[0].encode(obj.length, buf, offset)\n offset += enc[0].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n start: 0,\n length: 0\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.start = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.length = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineUnwant () {\n var enc = [\n encodings.varint\n ]\n\n Unwant.encodingLength = encodingLength\n Unwant.encode = encode\n Unwant.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.start)) throw new Error(\"start is required\")\n var len = enc[0].encodingLength(obj.start)\n length += 1 + len\n if (defined(obj.length)) {\n var len = enc[0].encodingLength(obj.length)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.start)) throw new Error(\"start is required\")\n buf[offset++] = 8\n enc[0].encode(obj.start, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.length)) {\n buf[offset++] = 16\n enc[0].encode(obj.length, buf, offset)\n offset += enc[0].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n start: 0,\n length: 0\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.start = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.length = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineRequest () {\n var enc = [\n encodings.varint,\n encodings.bool\n ]\n\n Request.encodingLength = encodingLength\n Request.encode = encode\n Request.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.index)) throw new Error(\"index is required\")\n var len = enc[0].encodingLength(obj.index)\n length += 1 + len\n if (defined(obj.bytes)) {\n var len = enc[0].encodingLength(obj.bytes)\n length += 1 + len\n }\n if (defined(obj.hash)) {\n var len = enc[1].encodingLength(obj.hash)\n length += 1 + len\n }\n if (defined(obj.nodes)) {\n var len = enc[0].encodingLength(obj.nodes)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.index)) throw new Error(\"index is required\")\n buf[offset++] = 8\n enc[0].encode(obj.index, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.bytes)) {\n buf[offset++] = 16\n enc[0].encode(obj.bytes, buf, offset)\n offset += enc[0].encode.bytes\n }\n if (defined(obj.hash)) {\n buf[offset++] = 24\n enc[1].encode(obj.hash, buf, offset)\n offset += enc[1].encode.bytes\n }\n if (defined(obj.nodes)) {\n buf[offset++] = 32\n enc[0].encode(obj.nodes, buf, offset)\n offset += enc[0].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n index: 0,\n bytes: 0,\n hash: false,\n nodes: 0\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.index = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.bytes = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n case 3:\n obj.hash = enc[1].decode(buf, offset)\n offset += enc[1].decode.bytes\n break\n case 4:\n obj.nodes = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineCancel () {\n var enc = [\n encodings.varint,\n encodings.bool\n ]\n\n Cancel.encodingLength = encodingLength\n Cancel.encode = encode\n Cancel.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.index)) throw new Error(\"index is required\")\n var len = enc[0].encodingLength(obj.index)\n length += 1 + len\n if (defined(obj.bytes)) {\n var len = enc[0].encodingLength(obj.bytes)\n length += 1 + len\n }\n if (defined(obj.hash)) {\n var len = enc[1].encodingLength(obj.hash)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.index)) throw new Error(\"index is required\")\n buf[offset++] = 8\n enc[0].encode(obj.index, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.bytes)) {\n buf[offset++] = 16\n enc[0].encode(obj.bytes, buf, offset)\n offset += enc[0].encode.bytes\n }\n if (defined(obj.hash)) {\n buf[offset++] = 24\n enc[1].encode(obj.hash, buf, offset)\n offset += enc[1].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n index: 0,\n bytes: 0,\n hash: false\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.index = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.bytes = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n case 3:\n obj.hash = enc[1].decode(buf, offset)\n offset += enc[1].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineData () {\n var Node = Data.Node = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n }\n\n defineNode()\n\n function defineNode () {\n var enc = [\n encodings.varint,\n encodings.bytes\n ]\n\n Node.encodingLength = encodingLength\n Node.encode = encode\n Node.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.index)) throw new Error(\"index is required\")\n var len = enc[0].encodingLength(obj.index)\n length += 1 + len\n if (!defined(obj.hash)) throw new Error(\"hash is required\")\n var len = enc[1].encodingLength(obj.hash)\n length += 1 + len\n if (!defined(obj.size)) throw new Error(\"size is required\")\n var len = enc[0].encodingLength(obj.size)\n length += 1 + len\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.index)) throw new Error(\"index is required\")\n buf[offset++] = 8\n enc[0].encode(obj.index, buf, offset)\n offset += enc[0].encode.bytes\n if (!defined(obj.hash)) throw new Error(\"hash is required\")\n buf[offset++] = 18\n enc[1].encode(obj.hash, buf, offset)\n offset += enc[1].encode.bytes\n if (!defined(obj.size)) throw new Error(\"size is required\")\n buf[offset++] = 24\n enc[0].encode(obj.size, buf, offset)\n offset += enc[0].encode.bytes\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n index: 0,\n hash: null,\n size: 0\n }\n var found0 = false\n var found1 = false\n var found2 = false\n while (true) {\n if (end <= offset) {\n if (!found0 || !found1 || !found2) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.index = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.hash = enc[1].decode(buf, offset)\n offset += enc[1].decode.bytes\n found1 = true\n break\n case 3:\n obj.size = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found2 = true\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n }\n\n var enc = [\n encodings.varint,\n encodings.bytes,\n Node\n ]\n\n Data.encodingLength = encodingLength\n Data.encode = encode\n Data.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.index)) throw new Error(\"index is required\")\n var len = enc[0].encodingLength(obj.index)\n length += 1 + len\n if (defined(obj.value)) {\n var len = enc[1].encodingLength(obj.value)\n length += 1 + len\n }\n if (defined(obj.nodes)) {\n for (var i = 0; i < obj.nodes.length; i++) {\n if (!defined(obj.nodes[i])) continue\n var len = enc[2].encodingLength(obj.nodes[i])\n length += varint.encodingLength(len)\n length += 1 + len\n }\n }\n if (defined(obj.signature)) {\n var len = enc[1].encodingLength(obj.signature)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.index)) throw new Error(\"index is required\")\n buf[offset++] = 8\n enc[0].encode(obj.index, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.value)) {\n buf[offset++] = 18\n enc[1].encode(obj.value, buf, offset)\n offset += enc[1].encode.bytes\n }\n if (defined(obj.nodes)) {\n for (var i = 0; i < obj.nodes.length; i++) {\n if (!defined(obj.nodes[i])) continue\n buf[offset++] = 26\n varint.encode(enc[2].encodingLength(obj.nodes[i]), buf, offset)\n offset += varint.encode.bytes\n enc[2].encode(obj.nodes[i], buf, offset)\n offset += enc[2].encode.bytes\n }\n }\n if (defined(obj.signature)) {\n buf[offset++] = 34\n enc[1].encode(obj.signature, buf, offset)\n offset += enc[1].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n index: 0,\n value: null,\n nodes: [],\n signature: null\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.index = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.value = enc[1].decode(buf, offset)\n offset += enc[1].decode.bytes\n break\n case 3:\n var len = varint.decode(buf, offset)\n offset += varint.decode.bytes\n obj.nodes.push(enc[2].decode(buf, offset, offset + len))\n offset += enc[2].decode.bytes\n break\n case 4:\n obj.signature = enc[1].decode(buf, offset)\n offset += enc[1].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineClose () {\n var enc = [\n encodings.bytes\n ]\n\n Close.encodingLength = encodingLength\n Close.encode = encode\n Close.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (defined(obj.discoveryKey)) {\n var len = enc[0].encodingLength(obj.discoveryKey)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (defined(obj.discoveryKey)) {\n buf[offset++] = 10\n enc[0].encode(obj.discoveryKey, buf, offset)\n offset += enc[0].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n discoveryKey: null\n }\n while (true) {\n if (end <= offset) {\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.discoveryKey = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defined (val) {\n return val !== null && val !== undefined && (typeof val !== 'number' || !isNaN(val))\n}\n", "var __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes2 = new Uint8Array((n - (base64[n - 1] == \"=\") - (base64[n - 2] == \"=\")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes2[j++] = c0 << 2 | c1 >> 4;\n bytes2[j++] = c1 << 4 | c2 >> 2;\n bytes2[j++] = c2 << 6 | c3;\n }\n return bytes2;\n };\n})();\n\n// wasm-binary:./xsalsa20.wat\nvar require_xsalsa20 = __commonJS({\n \"wasm-binary:./xsalsa20.wat\"(exports2, module2) {\n module2.exports = __toBinary(\"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\");\n }\n});\n\n// wasm-module:./xsalsa20.wat\nvar bytes = require_xsalsa20();\nvar compiled = new WebAssembly.Module(bytes);\nmodule.exports = (imports) => {\n const instance = new WebAssembly.Instance(compiled, imports);\n return instance.exports;\n};\n", "var xsalsa20 = typeof WebAssembly !== \"undefined\" && require('./xsalsa20')()\n\nvar SIGMA = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107])\nvar head = 144\nvar top = head\nvar free = []\n\nmodule.exports = XSalsa20\n\nXSalsa20.NONCEBYTES = 24\nXSalsa20.KEYBYTES = 32\n\nXSalsa20.core_hsalsa20 = core_hsalsa20\nXSalsa20.SIGMA = SIGMA\n\nfunction XSalsa20 (nonce, key) {\n if (!(this instanceof XSalsa20)) return new XSalsa20(nonce, key)\n if (!nonce || nonce.length < 24) throw new Error('nonce must be at least 24 bytes')\n if (!key || key.length < 32) throw new Error('key must be at least 32 bytes')\n this._xor = xsalsa20 ? new WASM(nonce, key) : new Fallback(nonce, key)\n}\n\nXSalsa20.prototype.update = function (input, output) {\n if (!input) throw new Error('input must be Uint8Array or Buffer')\n if (!output) output = new Uint8Array(input.length)\n if (input.length) this._xor.update(input, output)\n return output\n}\n\nXSalsa20.prototype.final =\nXSalsa20.prototype.finalize = function () {\n this._xor.finalize()\n this._xor = null\n}\n\nfunction WASM (nonce, key) {\n if (!free.length) {\n free.push(head)\n head += 64\n }\n\n this._pointer = free.pop()\n this._nonce = this._pointer + 8\n this._key = this._nonce + 24\n this._overflow = 0\n this._memory = new Uint8Array(xsalsa20.memory.buffer)\n\n this._memory.fill(0, this._pointer, this._pointer + 8)\n this._memory.set(nonce, this._nonce)\n this._memory.set(key, this._key)\n}\n\nWASM.prototype.realloc = function (size) {\n xsalsa20.memory.grow(Math.ceil(Math.abs(size - this._memory.length) / 65536))\n this._memory = new Uint8Array(xsalsa20.memory.buffer)\n}\n\nWASM.prototype.update = function (input, output) {\n var len = this._overflow + input.length\n var start = head + this._overflow\n\n top = head + len\n if (top >= this._memory.length) this.realloc(top)\n\n this._memory.set(input, start)\n xsalsa20.xsalsa20_xor(this._pointer, head, head, len, this._nonce, this._key)\n output.set(this._memory.subarray(start, head + len))\n\n this._overflow = len & 63\n}\n\nWASM.prototype.finalize = function () {\n this._memory.fill(0, this._pointer, this._key + 32)\n if (top > head) {\n this._memory.fill(0, head, top)\n top = 0\n }\n free.push(this._pointer)\n}\n\nfunction Fallback (nonce, key) {\n this._s = new Uint8Array(32)\n this._z = new Uint8Array(16)\n this._overflow = 0\n core_hsalsa20(this._s, nonce, key, SIGMA)\n for (var i = 0; i < 8; i++) this._z[i] = nonce[i + 16]\n}\n\nFallback.prototype.update = function (input, output) {\n var x = new Uint8Array(64)\n var u = 0\n var i = this._overflow\n var b = input.length + this._overflow\n var z = this._z\n var mpos = -this._overflow\n var cpos = -this._overflow\n\n while (b >= 64) {\n core_salsa20(x, z, this._s, SIGMA)\n for (; i < 64; i++) output[cpos + i] = input[mpos + i] ^ x[i]\n u = 1\n for (i = 8; i < 16; i++) {\n u += (z[i] & 0xff) | 0\n z[i] = u & 0xff\n u >>>= 8\n }\n b -= 64\n cpos += 64\n mpos += 64\n i = 0\n }\n if (b > 0) {\n core_salsa20(x, z, this._s, SIGMA)\n for (; i < b; i++) output[cpos + i] = input[mpos + i] ^ x[i]\n }\n\n this._overflow = b & 63\n}\n\nFallback.prototype.finalize = function () {\n this._s.fill(0)\n this._z.fill(0)\n}\n\n// below methods are ported from tweet nacl\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff) << 8 | (c[ 2] & 0xff) << 16 | (c[ 3] & 0xff) << 24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff) << 8 | (k[ 2] & 0xff) << 16 | (k[ 3] & 0xff) << 24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff) << 8 | (k[ 6] & 0xff) << 16 | (k[ 7] & 0xff) << 24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff) << 8 | (k[10] & 0xff) << 16 | (k[11] & 0xff) << 24,\n j4 = k[12] & 0xff | (k[13] & 0xff) << 8 | (k[14] & 0xff) << 16 | (k[15] & 0xff) << 24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff) << 8 | (c[ 6] & 0xff) << 16 | (c[ 7] & 0xff) << 24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff) << 8 | (p[ 2] & 0xff) << 16 | (p[ 3] & 0xff) << 24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff) << 8 | (p[ 6] & 0xff) << 16 | (p[ 7] & 0xff) << 24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff) << 8 | (p[10] & 0xff) << 16 | (p[11] & 0xff) << 24,\n j9 = p[12] & 0xff | (p[13] & 0xff) << 8 | (p[14] & 0xff) << 16 | (p[15] & 0xff) << 24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff) << 8 | (c[10] & 0xff) << 16 | (c[11] & 0xff) << 24,\n j11 = k[16] & 0xff | (k[17] & 0xff) << 8 | (k[18] & 0xff) << 16 | (k[19] & 0xff) << 24,\n j12 = k[20] & 0xff | (k[21] & 0xff) << 8 | (k[22] & 0xff) << 16 | (k[23] & 0xff) << 24,\n j13 = k[24] & 0xff | (k[25] & 0xff) << 8 | (k[26] & 0xff) << 16 | (k[27] & 0xff) << 24,\n j14 = k[28] & 0xff | (k[29] & 0xff) << 8 | (k[30] & 0xff) << 16 | (k[31] & 0xff) << 24,\n j15 = c[12] & 0xff | (c[13] & 0xff) << 8 | (c[14] & 0xff) << 16 | (c[15] & 0xff) << 24\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0\n x4 ^= u << 7 | u >>> 25\n u = x4 + x0 | 0\n x8 ^= u << 9 | u >>> 23\n u = x8 + x4 | 0\n x12 ^= u << 13 | u >>> 19\n u = x12 + x8 | 0\n x0 ^= u << 18 | u >>> 14\n\n u = x5 + x1 | 0\n x9 ^= u << 7 | u >>> 25\n u = x9 + x5 | 0\n x13 ^= u << 9 | u >>> 23\n u = x13 + x9 | 0\n x1 ^= u << 13 | u >>> 19\n u = x1 + x13 | 0\n x5 ^= u << 18 | u >>> 14\n\n u = x10 + x6 | 0\n x14 ^= u << 7 | u >>> 25\n u = x14 + x10 | 0\n x2 ^= u << 9 | u >>> 23\n u = x2 + x14 | 0\n x6 ^= u << 13 | u >>> 19\n u = x6 + x2 | 0\n x10 ^= u << 18 | u >>> 14\n\n u = x15 + x11 | 0\n x3 ^= u << 7 | u >>> 25\n u = x3 + x15 | 0\n x7 ^= u << 9 | u >>> 23\n u = x7 + x3 | 0\n x11 ^= u << 13 | u >>> 19\n u = x11 + x7 | 0\n x15 ^= u << 18 | u >>> 14\n\n u = x0 + x3 | 0\n x1 ^= u << 7 | u >>> 25\n u = x1 + x0 | 0\n x2 ^= u << 9 | u >>> 23\n u = x2 + x1 | 0\n x3 ^= u << 13 | u >>> 19\n u = x3 + x2 | 0\n x0 ^= u << 18 | u >>> 14\n\n u = x5 + x4 | 0\n x6 ^= u << 7 | u >>> 25\n u = x6 + x5 | 0\n x7 ^= u << 9 | u >>> 23\n u = x7 + x6 | 0\n x4 ^= u << 13 | u >>> 19\n u = x4 + x7 | 0\n x5 ^= u << 18 | u >>> 14\n\n u = x10 + x9 | 0\n x11 ^= u << 7 | u >>> 25\n u = x11 + x10 | 0\n x8 ^= u << 9 | u >>> 23\n u = x8 + x11 | 0\n x9 ^= u << 13 | u >>> 19\n u = x9 + x8 | 0\n x10 ^= u << 18 | u >>> 14\n\n u = x15 + x14 | 0\n x12 ^= u << 7 | u >>> 25\n u = x12 + x15 | 0\n x13 ^= u << 9 | u >>> 23\n u = x13 + x12 | 0\n x14 ^= u << 13 | u >>> 19\n u = x14 + x13 | 0\n x15 ^= u << 18 | u >>> 14\n }\n x0 = x0 + j0 | 0\n x1 = x1 + j1 | 0\n x2 = x2 + j2 | 0\n x3 = x3 + j3 | 0\n x4 = x4 + j4 | 0\n x5 = x5 + j5 | 0\n x6 = x6 + j6 | 0\n x7 = x7 + j7 | 0\n x8 = x8 + j8 | 0\n x9 = x9 + j9 | 0\n x10 = x10 + j10 | 0\n x11 = x11 + j11 | 0\n x12 = x12 + j12 | 0\n x13 = x13 + j13 | 0\n x14 = x14 + j14 | 0\n x15 = x15 + j15 | 0\n\n o[ 0] = x0 >>> 0 & 0xff\n o[ 1] = x0 >>> 8 & 0xff\n o[ 2] = x0 >>> 16 & 0xff\n o[ 3] = x0 >>> 24 & 0xff\n\n o[ 4] = x1 >>> 0 & 0xff\n o[ 5] = x1 >>> 8 & 0xff\n o[ 6] = x1 >>> 16 & 0xff\n o[ 7] = x1 >>> 24 & 0xff\n\n o[ 8] = x2 >>> 0 & 0xff\n o[ 9] = x2 >>> 8 & 0xff\n o[10] = x2 >>> 16 & 0xff\n o[11] = x2 >>> 24 & 0xff\n\n o[12] = x3 >>> 0 & 0xff\n o[13] = x3 >>> 8 & 0xff\n o[14] = x3 >>> 16 & 0xff\n o[15] = x3 >>> 24 & 0xff\n\n o[16] = x4 >>> 0 & 0xff\n o[17] = x4 >>> 8 & 0xff\n o[18] = x4 >>> 16 & 0xff\n o[19] = x4 >>> 24 & 0xff\n\n o[20] = x5 >>> 0 & 0xff\n o[21] = x5 >>> 8 & 0xff\n o[22] = x5 >>> 16 & 0xff\n o[23] = x5 >>> 24 & 0xff\n\n o[24] = x6 >>> 0 & 0xff\n o[25] = x6 >>> 8 & 0xff\n o[26] = x6 >>> 16 & 0xff\n o[27] = x6 >>> 24 & 0xff\n\n o[28] = x7 >>> 0 & 0xff\n o[29] = x7 >>> 8 & 0xff\n o[30] = x7 >>> 16 & 0xff\n o[31] = x7 >>> 24 & 0xff\n\n o[32] = x8 >>> 0 & 0xff\n o[33] = x8 >>> 8 & 0xff\n o[34] = x8 >>> 16 & 0xff\n o[35] = x8 >>> 24 & 0xff\n\n o[36] = x9 >>> 0 & 0xff\n o[37] = x9 >>> 8 & 0xff\n o[38] = x9 >>> 16 & 0xff\n o[39] = x9 >>> 24 & 0xff\n\n o[40] = x10 >>> 0 & 0xff\n o[41] = x10 >>> 8 & 0xff\n o[42] = x10 >>> 16 & 0xff\n o[43] = x10 >>> 24 & 0xff\n\n o[44] = x11 >>> 0 & 0xff\n o[45] = x11 >>> 8 & 0xff\n o[46] = x11 >>> 16 & 0xff\n o[47] = x11 >>> 24 & 0xff\n\n o[48] = x12 >>> 0 & 0xff\n o[49] = x12 >>> 8 & 0xff\n o[50] = x12 >>> 16 & 0xff\n o[51] = x12 >>> 24 & 0xff\n\n o[52] = x13 >>> 0 & 0xff\n o[53] = x13 >>> 8 & 0xff\n o[54] = x13 >>> 16 & 0xff\n o[55] = x13 >>> 24 & 0xff\n\n o[56] = x14 >>> 0 & 0xff\n o[57] = x14 >>> 8 & 0xff\n o[58] = x14 >>> 16 & 0xff\n o[59] = x14 >>> 24 & 0xff\n\n o[60] = x15 >>> 0 & 0xff\n o[61] = x15 >>> 8 & 0xff\n o[62] = x15 >>> 16 & 0xff\n o[63] = x15 >>> 24 & 0xff\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff) << 8 | (c[ 2] & 0xff) << 16 | (c[ 3] & 0xff) << 24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff) << 8 | (k[ 2] & 0xff) << 16 | (k[ 3] & 0xff) << 24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff) << 8 | (k[ 6] & 0xff) << 16 | (k[ 7] & 0xff) << 24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff) << 8 | (k[10] & 0xff) << 16 | (k[11] & 0xff) << 24,\n j4 = k[12] & 0xff | (k[13] & 0xff) << 8 | (k[14] & 0xff) << 16 | (k[15] & 0xff) << 24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff) << 8 | (c[ 6] & 0xff) << 16 | (c[ 7] & 0xff) << 24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff) << 8 | (p[ 2] & 0xff) << 16 | (p[ 3] & 0xff) << 24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff) << 8 | (p[ 6] & 0xff) << 16 | (p[ 7] & 0xff) << 24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff) << 8 | (p[10] & 0xff) << 16 | (p[11] & 0xff) << 24,\n j9 = p[12] & 0xff | (p[13] & 0xff) << 8 | (p[14] & 0xff) << 16 | (p[15] & 0xff) << 24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff) << 8 | (c[10] & 0xff) << 16 | (c[11] & 0xff) << 24,\n j11 = k[16] & 0xff | (k[17] & 0xff) << 8 | (k[18] & 0xff) << 16 | (k[19] & 0xff) << 24,\n j12 = k[20] & 0xff | (k[21] & 0xff) << 8 | (k[22] & 0xff) << 16 | (k[23] & 0xff) << 24,\n j13 = k[24] & 0xff | (k[25] & 0xff) << 8 | (k[26] & 0xff) << 16 | (k[27] & 0xff) << 24,\n j14 = k[28] & 0xff | (k[29] & 0xff) << 8 | (k[30] & 0xff) << 16 | (k[31] & 0xff) << 24,\n j15 = c[12] & 0xff | (c[13] & 0xff) << 8 | (c[14] & 0xff) << 16 | (c[15] & 0xff) << 24\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0\n x4 ^= u << 7 | u >>> 25\n u = x4 + x0 | 0\n x8 ^= u << 9 | u >>> 23\n u = x8 + x4 | 0\n x12 ^= u << 13 | u >>> 19\n u = x12 + x8 | 0\n x0 ^= u << 18 | u >>> 14\n\n u = x5 + x1 | 0\n x9 ^= u << 7 | u >>> 25\n u = x9 + x5 | 0\n x13 ^= u << 9 | u >>> 23\n u = x13 + x9 | 0\n x1 ^= u << 13 | u >>> 19\n u = x1 + x13 | 0\n x5 ^= u << 18 | u >>> 14\n\n u = x10 + x6 | 0\n x14 ^= u << 7 | u >>> 25\n u = x14 + x10 | 0\n x2 ^= u << 9 | u >>> 23\n u = x2 + x14 | 0\n x6 ^= u << 13 | u >>> 19\n u = x6 + x2 | 0\n x10 ^= u << 18 | u >>> 14\n\n u = x15 + x11 | 0\n x3 ^= u << 7 | u >>> 25\n u = x3 + x15 | 0\n x7 ^= u << 9 | u >>> 23\n u = x7 + x3 | 0\n x11 ^= u << 13 | u >>> 19\n u = x11 + x7 | 0\n x15 ^= u << 18 | u >>> 14\n\n u = x0 + x3 | 0\n x1 ^= u << 7 | u >>> 25\n u = x1 + x0 | 0\n x2 ^= u << 9 | u >>> 23\n u = x2 + x1 | 0\n x3 ^= u << 13 | u >>> 19\n u = x3 + x2 | 0\n x0 ^= u << 18 | u >>> 14\n\n u = x5 + x4 | 0\n x6 ^= u << 7 | u >>> 25\n u = x6 + x5 | 0\n x7 ^= u << 9 | u >>> 23\n u = x7 + x6 | 0\n x4 ^= u << 13 | u >>> 19\n u = x4 + x7 | 0\n x5 ^= u << 18 | u >>> 14\n\n u = x10 + x9 | 0\n x11 ^= u << 7 | u >>> 25\n u = x11 + x10 | 0\n x8 ^= u << 9 | u >>> 23\n u = x8 + x11 | 0\n x9 ^= u << 13 | u >>> 19\n u = x9 + x8 | 0\n x10 ^= u << 18 | u >>> 14\n\n u = x15 + x14 | 0\n x12 ^= u << 7 | u >>> 25\n u = x12 + x15 | 0\n x13 ^= u << 9 | u >>> 23\n u = x13 + x12 | 0\n x14 ^= u << 13 | u >>> 19\n u = x14 + x13 | 0\n x15 ^= u << 18 | u >>> 14\n }\n\n o[ 0] = x0 >>> 0 & 0xff\n o[ 1] = x0 >>> 8 & 0xff\n o[ 2] = x0 >>> 16 & 0xff\n o[ 3] = x0 >>> 24 & 0xff\n\n o[ 4] = x5 >>> 0 & 0xff\n o[ 5] = x5 >>> 8 & 0xff\n o[ 6] = x5 >>> 16 & 0xff\n o[ 7] = x5 >>> 24 & 0xff\n\n o[ 8] = x10 >>> 0 & 0xff\n o[ 9] = x10 >>> 8 & 0xff\n o[10] = x10 >>> 16 & 0xff\n o[11] = x10 >>> 24 & 0xff\n\n o[12] = x15 >>> 0 & 0xff\n o[13] = x15 >>> 8 & 0xff\n o[14] = x15 >>> 16 & 0xff\n o[15] = x15 >>> 24 & 0xff\n\n o[16] = x6 >>> 0 & 0xff\n o[17] = x6 >>> 8 & 0xff\n o[18] = x6 >>> 16 & 0xff\n o[19] = x6 >>> 24 & 0xff\n\n o[20] = x7 >>> 0 & 0xff\n o[21] = x7 >>> 8 & 0xff\n o[22] = x7 >>> 16 & 0xff\n o[23] = x7 >>> 24 & 0xff\n\n o[24] = x8 >>> 0 & 0xff\n o[25] = x8 >>> 8 & 0xff\n o[26] = x8 >>> 16 & 0xff\n o[27] = x8 >>> 24 & 0xff\n\n o[28] = x9 >>> 0 & 0xff\n o[29] = x9 >>> 8 & 0xff\n o[30] = x9 >>> 16 & 0xff\n o[31] = x9 >>> 24 & 0xff\n}\n", "const xsalsa20 = require('xsalsa20')\n\nmodule.exports = class XORJS {\n constructor (nonce, key) {\n this.instance = xsalsa20(nonce, key)\n }\n\n update (out, message) {\n this.instance.update(message, out)\n }\n\n final () {\n this.instance.finalize()\n }\n}\n", "const XSalsa20 = require('xsalsa20-universal')\nconst crypto = require('hypercore-crypto')\n\nmodule.exports = class XOR {\n constructor (nonces, split) {\n this.rnonce = nonces.rnonce\n this.tnonce = nonces.tnonce\n this.rx = new XSalsa20(this.rnonce, split.rx.slice(0, 32))\n this.tx = new XSalsa20(this.tnonce, split.tx.slice(0, 32))\n }\n\n encrypt (data) {\n this.tx.update(data, data)\n return data\n }\n\n decrypt (data) {\n this.rx.update(data, data)\n return data\n }\n\n destroy () {\n this.tx.final()\n this.rx.final()\n }\n\n static nonce () {\n return crypto.randomBytes(24)\n }\n}\n", "const varint = require('varint')\n\nmodule.exports = class SimpleMessageChannels {\n constructor ({ maxSize = 8 * 1024 * 1024, context = null, onmessage = null, onmissing = null, types = null } = {}) {\n this._message = null\n this._ptr = 0\n this._varint = 0\n this._factor = 1\n this._length = 0\n this._header = 0\n this._state = 0\n this._consumed = 0\n this._maxSize = maxSize\n this._types = types || []\n\n this.receiving = false\n this.destroyed = false\n this.error = null\n this.context = context\n this.onmessage = onmessage\n this.onmissing = onmissing\n }\n\n destroy (err) {\n if (err) this.error = err\n this.destroyed = true\n }\n\n recv (data) {\n if (this.receiving === true) throw new Error('Cannot recursively receive data')\n this.receiving = true\n\n let offset = 0\n while (offset < data.length) {\n if (this._state === 2) offset = this._readMessage(data, offset)\n else offset = this._readVarint(data, offset)\n }\n if (this._state === 2 && this._length === 0) {\n this._readMessage(data, offset)\n }\n\n this.receiving = false\n return !this.destroyed\n }\n\n _readMessage (data, offset) {\n const free = data.length - offset\n if (free >= this._length) {\n if (this._message) {\n data.copy(this._message, this._message.length - this._length, offset)\n } else {\n this._message = data.slice(offset, offset + this._length)\n }\n return this._nextState(data, offset += this._length) ? offset : data.length\n }\n\n if (!this._message) this._message = Buffer.allocUnsafe(this._length)\n data.copy(this._message, this._message.length - this._length, offset)\n this._length -= free\n\n return data.length\n }\n\n _readVarint (data, offset) {\n for (; offset < data.length; offset++) {\n this._varint += (data[offset] & 127) * this._factor\n this._consumed++\n if (data[offset] < 128) return this._nextState(data, ++offset) ? offset : data.length\n this._factor *= 128\n }\n if (this._consumed >= 8) this.destroy(new Error('Incoming varint is invalid')) // 8 * 7bits is 56 ie max for js\n return data.length\n }\n\n _nextState (data, offset) {\n switch (this._state) {\n case 0:\n this._state = 1\n this._factor = 1\n this._length = this._varint\n this._consumed = this._varint = 0\n if (this._length === 0) this._state = 0\n return true\n\n case 1:\n this._state = 2\n this._factor = 1\n this._header = this._varint\n this._length -= this._consumed\n this._consumed = this._varint = 0\n if (this._length < 0 || this._length > this._maxSize) {\n this.destroy(new Error('Incoming message is larger than max size'))\n return false\n }\n if (this.onmissing) {\n const extra = data.length - offset\n if (this._length > extra) this.onmissing(this._length - extra, this.context)\n }\n return true\n\n case 2:\n this._state = 0\n this._onmessage(this._header >> 4, this._header & 0b1111, this._message, data, offset)\n this._message = null\n return !this.destroyed\n\n default:\n return false\n }\n }\n\n _onmessage (channel, type, message, data, offset) {\n if (type >= this._types.length) {\n if (this.onmessage === null) return\n return this.onmessage(channel, type, message, this.context, data, offset)\n }\n\n let m = null\n const { onmessage, encoding, context } = this._types[type]\n\n try {\n m = encoding.decode(message)\n } catch (err) {\n this.destroy(err)\n return\n }\n\n onmessage(channel, m, context, data, offset)\n }\n\n send (channel, type, message) {\n const header = channel << 4 | type\n const length = this._encodingLength(type, message) + varint.encodingLength(header)\n const payload = Buffer.allocUnsafe(varint.encodingLength(length) + length)\n\n varint.encode(length, payload, 0)\n const offset = varint.encode.bytes\n varint.encode(header, payload, offset)\n this._encode(type, message, payload, offset + varint.encode.bytes)\n\n return payload\n }\n\n sendBatch (messages) {\n let length = 0\n let offset = 0\n\n for (const { type, message } of messages) {\n // 16 is >= the max size of the varints\n length += 16 + this._encodingLength(type, message)\n }\n\n const payload = Buffer.allocUnsafe(length)\n\n for (const { channel, type, message } of messages) {\n const header = channel << 4 | type\n const length = this._encodingLength(type, message) + varint.encodingLength(header)\n varint.encode(length, payload, offset)\n offset += varint.encode.bytes\n varint.encode(header, payload, offset)\n offset += varint.encode.bytes\n offset += this._encode(type, message, payload, offset)\n }\n\n return payload.slice(0, offset)\n }\n\n _encodingLength (type, message) {\n if (type >= this._types.length) return message.length\n return this._types[type].encoding.encodingLength(message)\n }\n\n _encode (type, message, buf, offset) {\n if (type >= this._types.length) {\n message.copy(buf, offset)\n return message.length\n }\n\n const enc = this._types[type].encoding\n enc.encode(message, buf, offset)\n return enc.encode.bytes\n }\n}\n", "const Handshake = require('./lib/handshake')\nconst messages = require('./messages')\nconst XOR = require('./lib/xor')\nconst SMC = require('simple-message-channels')\nconst crypto = require('hypercore-crypto')\nconst varint = require('varint')\n\nmodule.exports = class SimpleProtocol {\n constructor (initiator, handlers) {\n const payload = { nonce: XOR.nonce() }\n\n this.handlers = handlers || {}\n this.remotePayload = null\n this.remotePublicKey = null\n this.publicKey = null\n this.handshakeHash = null\n this.destroyed = false\n\n this._initiator = initiator\n this._payload = payload\n this._pending = []\n this._handshake = null\n this._split = null\n this._encryption = null\n this._noise = !(handlers.encrypted === false && handlers.noise === false)\n this._buffering = null\n this._handshaking = false\n\n this._messages = new SMC({\n onmessage,\n onmissing,\n context: this,\n types: [\n { context: this, onmessage: onopen, encoding: messages.Open },\n { context: this, onmessage: onoptions, encoding: messages.Options },\n { context: this, onmessage: onstatus, encoding: messages.Status },\n { context: this, onmessage: onhave, encoding: messages.Have },\n { context: this, onmessage: onunhave, encoding: messages.Unhave },\n { context: this, onmessage: onwant, encoding: messages.Want },\n { context: this, onmessage: onunwant, encoding: messages.Unwant },\n { context: this, onmessage: onrequest, encoding: messages.Request },\n { context: this, onmessage: oncancel, encoding: messages.Cancel },\n { context: this, onmessage: ondata, encoding: messages.Data },\n { context: this, onmessage: onclose, encoding: messages.Close }\n ]\n })\n\n if (handlers.encrypted !== false || handlers.noise !== false) {\n this._handshaking = true\n if (typeof this.handlers.keyPair !== 'function') {\n this._onkeypair(null, this.handlers.keyPair || null)\n } else {\n this._buffering = []\n this.handlers.keyPair(this._onkeypair.bind(this))\n }\n }\n }\n\n _onkeypair (err, keyPair) {\n if (err) return this.destroy(err)\n if (this._handshake !== null) return\n\n this.handlers.keyPair = keyPair\n const handshake = new Handshake(this._initiator, messages.NoisePayload.encode(this._payload), this.handlers, this._onhandshake.bind(this))\n\n this.publicKey = handshake.keyPair.publicKey\n this._handshake = handshake\n\n if (this._buffering) {\n while (this._buffering.length) this._recv(this._buffering.shift())\n }\n\n this._buffering = null\n }\n\n open (ch, message) {\n return this._send(ch, 0, message)\n }\n\n options (ch, message) {\n return this._send(ch, 1, message)\n }\n\n status (ch, message) {\n return this._send(ch, 2, message)\n }\n\n have (ch, message) {\n return this._send(ch, 3, message)\n }\n\n unhave (ch, message) {\n return this._send(ch, 4, message)\n }\n\n want (ch, message) {\n return this._send(ch, 5, message)\n }\n\n unwant (ch, message) {\n return this._send(ch, 6, message)\n }\n\n request (ch, message) {\n return this._send(ch, 7, message)\n }\n\n cancel (ch, message) {\n return this._send(ch, 8, message)\n }\n\n data (ch, message) {\n return this._send(ch, 9, message)\n }\n\n close (ch, message) {\n return this._send(ch, 10, message || {})\n }\n\n extension (ch, id, message) {\n const buf = Buffer.allocUnsafe(varint.encodingLength(id) + message.length)\n\n varint.encode(id, buf, 0)\n message.copy(buf, varint.encode.bytes)\n\n return this._send(ch, 15, buf)\n }\n\n ping () {\n if (this._handshaking || this._pending.length) return\n\n let ping = Buffer.from([0])\n if (this._encryption !== null) {\n ping = this._encryption.encrypt(ping)\n }\n\n return this.handlers.send(ping)\n }\n\n _onhandshake (err, remotePayload, split, overflow, remotePublicKey, handshakeHash) {\n if (err) return this.destroy(new Error('Noise handshake error')) // workaround for https://github.com/emilbayes/noise-protocol/issues/5\n if (!remotePayload) return this.destroy(new Error('Remote did not include a handshake payload'))\n\n this.remotePublicKey = remotePublicKey\n this.handshakeHash = handshakeHash\n\n try {\n remotePayload = messages.NoisePayload.decode(remotePayload)\n } catch (_) {\n return this.destroy(new Error('Could not parse remote payload'))\n }\n\n this._handshake = null\n this._handshaking = false\n this._split = split\n this._encryption = this.handlers.encrypted === false\n ? null\n : new XOR({ rnonce: remotePayload.nonce, tnonce: this._payload.nonce }, split)\n\n this.remotePayload = remotePayload\n\n if (this.handlers.onhandshake) this.handlers.onhandshake()\n if (this.destroyed) return\n\n if (overflow) this.recv(overflow)\n while (this._pending.length && !this.destroyed) {\n this._sendNow(...this._pending.shift())\n }\n }\n\n _send (channel, type, message) {\n if (this._handshaking || this._pending.length) {\n this._pending.push([channel, type, message])\n return false\n }\n\n return this._sendNow(channel, type, message)\n }\n\n _sendNow (channel, type, message) {\n if (type === 0 && message.key && !message.capability) {\n message.capability = this.capability(message.key)\n message.key = null\n }\n\n let data = this._messages.send(channel, type, message)\n\n if (this._encryption !== null) {\n data = this._encryption.encrypt(data)\n }\n\n return this.handlers.send(data)\n }\n\n capability (key) {\n return crypto.capability(key, this._split)\n }\n\n remoteCapability (key) {\n return crypto.remoteCapability(key, this._split)\n }\n\n recv (data) {\n if (this._buffering !== null) this._buffering.push(data)\n else this._recv(data)\n }\n\n _recv (data) {\n if (this.destroyed) return\n\n if (this._handshaking) {\n this._handshake.recv(data)\n return\n }\n\n if (this._encryption !== null) {\n data = this._encryption.decrypt(data)\n }\n\n if (!this._messages.recv(data)) {\n this.destroy(this._messages.error)\n }\n }\n\n destroy (err) {\n if (this.destroyed) return\n this.destroyed = true\n if (this._handshake) this._handshake.destroy()\n if (this._encryption) this._encryption.destroy()\n if (this.handlers.destroy) this.handlers.destroy(err)\n }\n\n static keyPair (seed) {\n return Handshake.keyPair(seed)\n }\n}\n\nfunction onopen (ch, message, self) {\n if (self.handlers.onopen) self.handlers.onopen(ch, message)\n}\n\nfunction onoptions (ch, message, self) {\n if (self.handlers.onoptions) self.handlers.onoptions(ch, message)\n}\n\nfunction onstatus (ch, message, self) {\n if (self.handlers.onstatus) self.handlers.onstatus(ch, message)\n}\n\nfunction onhave (ch, message, self) {\n if (self.handlers.onhave) self.handlers.onhave(ch, message)\n}\n\nfunction onunhave (ch, message, self) {\n if (self.handlers.onunhave) self.handlers.onunhave(ch, message)\n}\n\nfunction onwant (ch, message, self) {\n if (self.handlers.onwant) self.handlers.onwant(ch, message)\n}\n\nfunction onunwant (ch, message, self) {\n if (self.handlers.onunwant) self.handlers.onunwant(ch, message)\n}\n\nfunction onrequest (ch, message, self) {\n if (self.handlers.onrequest) self.handlers.onrequest(ch, message)\n}\n\nfunction oncancel (ch, message, self) {\n if (self.handlers.oncancel) self.handlers.oncancel(ch, message)\n}\n\nfunction ondata (ch, message, self) {\n if (self.handlers.ondata) self.handlers.ondata(ch, message)\n}\n\nfunction onclose (ch, message, self) {\n if (self.handlers.onclose) self.handlers.onclose(ch, message)\n}\n\nfunction onmessage (ch, type, message, self) {\n if (type !== 15) return\n const id = varint.decode(message)\n const m = message.slice(varint.decode.bytes)\n if (self.handlers.onextension) self.handlers.onextension(ch, id, m)\n}\n\nfunction onmissing (bytes, self) {\n if (self.handlers.onmissing) self.handlers.onmissing(bytes)\n}\n", "module.exports = Timeout\n\nfunction Timeout (ms, fn, ctx) {\n if (!(this instanceof Timeout)) return new Timeout(ms, fn, ctx)\n this.ms = ms\n this.ontimeout = fn\n this.context = ctx || null\n this.called = false\n this._timeout = setTimeout(call, ms, this)\n}\n\nTimeout.prototype.refresh = function () {\n if (this.called || this.ontimeout === null) return\n clearTimeout(this._timeout)\n this._timeout = setTimeout(call, this.ms, this)\n}\n\nTimeout.prototype.destroy = function () {\n this.ontimeout = null\n clearTimeout(this._timeout)\n}\n\nfunction call (self) {\n self.called = true\n self.ontimeout.call(self.context)\n}\n", "const codecs = require('codecs')\n\nclass AbstractExtension {\n constructor (local, name, handlers = {}) {\n this.id = 0\n this.name = name\n this.encoding = codecs(handlers.encoding || 'binary')\n this.handlers = handlers\n this.local = local\n }\n\n encode (message) {\n return this.encoding.encode(message)\n }\n\n remoteSupports () {\n return !!(this.local && this.local.map && this.local.map[this.id] === this)\n }\n\n onmessage (buf, context) {\n if (!this.handlers.onmessage) return\n\n let message\n try {\n message = this.encoding.decode(buf)\n } catch (err) {\n if (this.handlers.onerror) this.handlers.onerror(err, context)\n return\n }\n\n this.handlers.onmessage(message, context)\n }\n\n get destroyed () {\n return this.local === null\n }\n\n destroy () {\n if (this.local === null) return\n this.local._remove(this)\n this.local = null\n }\n\n static createLocal (handlers = null) {\n return new Local(handlers, this)\n }\n}\n\nclass Remote {\n constructor (local) {\n this.local = local\n this.names = null\n this.map = null\n this.changes = 0\n }\n\n update (names) {\n this.names = names\n this.changes = 0\n }\n\n onmessage (id, message, context = null) {\n if (this.changes !== this.local.changes) {\n this.map = this.names ? match(this.local.messages, this.names) : null\n this.changes = this.local.changes\n }\n const m = this.map && this.map[id]\n if (m) m.onmessage(message, context)\n }\n}\n\nclass Local {\n constructor (handlers = null, M) {\n this.messages = []\n this.handlers = handlers\n this.Extension = M\n this.changes = 1\n this.exclusive = true\n }\n\n get length () {\n return this.messages.length\n }\n\n [Symbol.iterator] () {\n return this.messages[Symbol.iterator]()\n }\n\n get (name) {\n // technically we can bisect here, but yolo\n for (const m of this.messages) {\n if (m.name === name) return m\n }\n return null\n }\n\n add (name, handlers) {\n let m\n\n if (typeof handlers !== 'function') {\n m = new this.Extension(this, name, handlers)\n } else {\n m = new this.Extension(this, name, {})\n m.handlers = handlers(m) || {}\n m.encoding = codecs(m.handlers.encoding || 'binary')\n }\n\n this.changes++\n this.messages.push(m)\n this.messages.sort(sortMessages)\n for (let i = 0; i < this.messages.length; i++) {\n this.messages[i].id = i\n }\n\n if (this.exclusive) {\n if ((m.id > 0 && this.messages[m.id - 1].name === m.name) || (m.id < this.messages.length - 1 && this.messages[m.id + 1].name === m.name)) {\n this._remove(m)\n throw new Error('Cannot add multiple messages with the same name')\n }\n }\n\n if (this.handlers && this.handlers.onextensionupdate) this.handlers.onextensionupdate()\n\n return m\n }\n\n remote () {\n return new Remote(this)\n }\n\n _remove (m) {\n this.changes++\n this.messages.splice(m.id, 1)\n m.id = -1\n if (this.handlers && this.handlers.onextensionupdate) this.handlers.onextensionupdate()\n }\n\n names () {\n const names = new Array(this.messages.length)\n for (let i = 0; i < names.length; i++) {\n names[i] = this.messages[i].name\n }\n return names\n }\n}\n\nfunction sortMessages (a, b) {\n return a.name < b.name ? -1 : a.name > b.name ? 1 : 0\n}\n\nfunction match (local, remote) {\n let i = 0\n let j = 0\n\n const map = new Array(remote.length)\n\n while (i < local.length && j < remote.length) {\n const l = local[i].name\n const r = remote[j]\n\n if (l < r) i++\n else if (l > r) j++\n else map[j++] = local[i]\n }\n\n return map\n}\n\nmodule.exports = AbstractExtension\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "const SHP = require('simple-hypercore-protocol')\nconst crypto = require('hypercore-crypto')\nconst timeout = require('timeout-refresh')\nconst inspect = require('inspect-custom-symbol')\nconst Nanoguard = require('nanoguard')\nconst pretty = require('pretty-hash')\nconst Message = require('abstract-extension')\nconst { Duplex } = require('streamx')\nconst debug = require('debug')('hypercore-protocol')\n\nclass StreamExtension extends Message {\n send (message) {\n const stream = this.local.handlers\n if (stream._changes !== this.local.changes) {\n stream._changes = this.local.changes\n stream.state.options(0, { extensions: this.local.names() })\n }\n return stream.state.extension(0, this.id, this.encode(message))\n }\n}\n\nclass Channelizer {\n constructor (stream, { encrypted, noise, keyPair }) {\n this.stream = stream\n this.created = new Map()\n this.local = [null]\n this.remote = [null]\n this.noise = !(noise === false && encrypted === false)\n this.encrypted = encrypted !== false\n this.keyPair = keyPair\n }\n\n allocLocal () {\n const id = this.local.indexOf(null)\n if (id > 0) return id\n this.local.push(null)\n return this.local.length - 1\n }\n\n attachLocal (ch) {\n const id = this.allocLocal()\n this.local[id] = ch\n ch.localId = id\n }\n\n attachRemote (ch, id) {\n if (this.remote.length === id) this.remote.push(null)\n this.remote[id] = ch\n ch.remoteId = id\n }\n\n detachChannel (ch) {\n if (ch.localId > -1 && this.local[ch.localId] === ch) {\n this.local[ch.localId] = null\n ch.localId = -1\n if (ch.handlers && ch.handlers.onclose) ch.handlers.onclose()\n }\n if (ch.remoteId > -1 && this.remote[ch.remoteId] === ch) {\n this.remote[ch.remoteId] = null\n }\n\n const hex = ch.discoveryKey.toString('hex')\n if (this.created.get(hex) === ch) this.created.delete(hex)\n }\n\n getChannel (dk) {\n return this.created.get(dk.toString('hex'))\n }\n\n createChannel (dk) {\n const hex = dk.toString('hex')\n\n const old = this.created.get(hex)\n if (old) return old\n\n const fresh = new Channel(this.stream.state, this.stream, dk)\n this.created.set(hex, fresh)\n return fresh\n }\n\n onauthenticate (key, done) {\n if (this.stream.handlers && this.stream.handlers.onauthenticate) this.stream.handlers.onauthenticate(key, done)\n else done(null)\n }\n\n onhandshake () {\n debug('recv handshake')\n if (this.stream.handlers && this.stream.handlers.onhandshake) this.stream.handlers.onhandshake()\n this.stream.emit('handshake')\n }\n\n onopen (channelId, message) {\n debug('recv open', channelId, message)\n const ch = this.createChannel(message.discoveryKey)\n ch.remoteCapability = message.capability\n this.attachRemote(ch, channelId)\n if (ch.localId === -1) {\n if (this.stream.handlers.ondiscoverykey) this.stream.handlers.ondiscoverykey(ch.discoveryKey)\n this.stream.emit('discovery-key', ch.discoveryKey)\n } else {\n if (this.noise && !ch.remoteVerified) {\n // We are leaking metadata here that the remote cap was bad which means the remote prob can figure\n // out that we indeed had the key. Since we were the one to initialise the channel that's ok, as\n // that already kinda leaks that.\n this.stream.destroy(new Error('Invalid remote channel capability'))\n return\n }\n this.stream.emit('duplex-channel', ch)\n }\n if (ch.handlers && ch.handlers.onopen) ch.handlers.onopen()\n\n if (this.stream.handlers.onremoteopen) this.stream.handlers.onremoteopen(ch.discoveryKey)\n this.stream.emit('remote-open', ch.discoveryKey)\n }\n\n onoptions (channelId, message) {\n debug('recv options', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onoptions) ch.handlers.onoptions(message)\n else if (channelId === 0 && !ch) this.stream._updateExtensions(message.extensions)\n }\n\n onstatus (channelId, message) {\n debug('recv status', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onstatus) ch.handlers.onstatus(message)\n }\n\n onhave (channelId, message) {\n debug('recv have', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onhave) ch.handlers.onhave(message)\n }\n\n onunhave (channelId, message) {\n debug('recv unhave', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onunhave) ch.handlers.onunhave(message)\n }\n\n onwant (channelId, message) {\n debug('recv want', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onwant) ch.handlers.onwant(message)\n }\n\n onunwant (channelId, message) {\n debug('recv unwant', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onunwant) ch.handlers.onunwant(message)\n }\n\n onrequest (channelId, message) {\n debug('recv request', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onrequest) ch.handlers.onrequest(message)\n }\n\n oncancel (channelId, message) {\n debug('recv cancel', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.oncancel) ch.handlers.oncancel(message)\n }\n\n ondata (channelId, message) {\n debug('recv data', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.ondata) ch.handlers.ondata(message)\n }\n\n onextension (channelId, id, buf) {\n debug('recv extension', channelId, id)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onextension) ch.handlers.onextension(id, buf)\n else if (channelId === 0 && !ch) this.stream.remoteExtensions.onmessage(id, buf)\n }\n\n onclose (channelId, message) {\n debug('recv close', channelId, message)\n let ch = channelId < this.remote.length ? this.remote[channelId] : null\n\n if (ch) {\n this.remote[channelId] = null\n } else if (message.discoveryKey) {\n ch = this.getChannel(message.discoveryKey)\n }\n\n if (!ch) return\n\n if (ch.localId > -1 && this.local[ch.localId] === ch) {\n this.local[ch.localId] = null\n ch.state.close(ch.localId, {})\n ch.localId = -1\n if (ch.handlers && ch.handlers.onclose) ch.handlers.onclose()\n }\n\n if (this.stream.handlers && this.stream.handlers.onchannelclose) {\n this.stream.handlers.onchannelclose(ch.discoveryKey, ch.key)\n }\n\n const hex = ch.discoveryKey.toString('hex')\n if (this.created.get(hex) === ch) this.created.delete(hex)\n this.stream._prefinalize()\n }\n\n onmissing (bytes) {\n if (this.stream._utp === null) return\n this.stream._utp.setContentSize(bytes)\n }\n\n // called by the state machine\n send (data) {\n if (this.stream.keepAlive !== null) this.stream.keepAlive.refresh()\n this.stream.bytesSent += data.length\n return this.stream.push(data)\n }\n\n // called by the state machine\n destroy (err) {\n this.stream.destroy(err)\n this.local = []\n this.remote = []\n for (const ch of this.created.values()) {\n const closed = ch.localId === -1\n ch.localId = ch.remoteId = -1\n if (!closed && ch.handlers && ch.handlers.onclose) ch.handlers.onclose()\n\n if (this.stream.handlers && this.stream.handlers.onchannelclose) {\n this.stream.handlers.onchannelclose(ch.discoveryKey, ch.key)\n }\n }\n this.created.clear()\n }\n}\n\nclass Channel {\n constructor (state, stream, dk) {\n this.key = null\n this.discoveryKey = dk\n this.localId = -1\n this.remoteId = -1\n this.remoteCapability = null\n this.handlers = null\n this.state = state\n this.stream = stream\n }\n\n get opened () {\n return this.localId > -1\n }\n\n get closed () {\n return this.localId === -1\n }\n\n get remoteOpened () {\n return this.remoteId > -1\n }\n\n get remoteVerified () {\n return this.localId > -1 &&\n this.remoteId > -1 &&\n !!this.remoteCapability &&\n this.remoteCapability.equals(this.state.remoteCapability(this.key))\n }\n\n options (message) {\n debug('send options', message)\n return this.state.options(this.localId, message)\n }\n\n status (message) {\n debug('send status', message)\n return this.state.status(this.localId, message)\n }\n\n have (message) {\n debug('send have', message)\n return this.state.have(this.localId, message)\n }\n\n unhave (message) {\n debug('send unhave', message)\n return this.state.unhave(this.localId, message)\n }\n\n want (message) {\n debug('send want', message)\n return this.state.want(this.localId, message)\n }\n\n unwant (message) {\n debug('send unwant', message)\n return this.state.unwant(this.localId, message)\n }\n\n request (message) {\n debug('send request', message)\n return this.state.request(this.localId, message)\n }\n\n cancel (message) {\n debug('send cancel', message)\n return this.state.cancel(this.localId, message)\n }\n\n data (message) {\n debug('send data', message)\n return this.state.data(this.localId, message)\n }\n\n extension (id, buf) {\n debug('send extension', id)\n return this.state.extension(this.localId, id, buf)\n }\n\n close () {\n debug('send close')\n if (this.closed) return\n\n const localId = this.localId\n this.stream.channelizer.detachChannel(this)\n this.state.close(localId, {})\n this.stream._prefinalize()\n }\n\n destroy (err) {\n this.stream.destroy(err)\n }\n}\n\nmodule.exports = class ProtocolStream extends Duplex {\n constructor (initiator, handlers = {}) {\n super()\n\n if (typeof initiator !== 'boolean') throw new Error('Must specify initiator boolean in replication stream')\n\n this.initiator = initiator\n this.handlers = handlers\n this.channelizer = new Channelizer(this, {\n encrypted: handlers.encrypted,\n noise: handlers.noise,\n keyPair: handlers.keyPair\n })\n this.state = new SHP(initiator, this.channelizer)\n this.live = !!handlers.live\n this.timeout = null\n this.keepAlive = null\n this.prefinalize = new Nanoguard()\n this.bytesSent = 0\n this.bytesReceived = 0\n this.extensions = StreamExtension.createLocal(this)\n this.remoteExtensions = this.extensions.remote()\n\n this._utp = null\n this._changes = 0\n\n this.once('finish', this.push.bind(this, null))\n this.on('pipe', this._onpipe)\n\n if (handlers.timeout !== false && handlers.timeout !== 0) {\n const timeout = handlers.timeout || 20000\n this.setTimeout(timeout, () => this.destroy(new Error('ETIMEDOUT')))\n this.setKeepAlive(Math.ceil(timeout / 2))\n }\n }\n\n registerExtension (name, handlers) {\n return this.extensions.add(name, handlers)\n }\n\n [inspect] (depth, opts) {\n let indent = ''\n if (typeof opts.indentationLvl === 'number') {\n while (indent.length < opts.indentationLvl) indent += ' '\n }\n\n return 'HypercoreProtocolStream(\\n' +\n indent + ' publicKey: ' + opts.stylize((this.publicKey && pretty(this.publicKey)), 'string') + '\\n' +\n indent + ' remotePublicKey: ' + opts.stylize((this.remotePublicKey && pretty(this.remotePublicKey)), 'string') + '\\n' +\n indent + ' remoteAddress: ' + opts.stylize(this.remoteAddress, 'string') + '\\n' +\n indent + ' remoteType: ' + opts.stylize(this.remoteType, 'string') + '\\n' +\n indent + ' live: ' + opts.stylize(this.live, 'boolean') + '\\n' +\n indent + ' initiator: ' + opts.stylize(this.initiator, 'boolean') + '\\n' +\n indent + ' channelCount: ' + opts.stylize(this.channelCount, 'number') + '\\n' +\n indent + ' destroyed: ' + opts.stylize(this.destroyed, 'boolean') + '\\n' +\n indent + ' prefinalized: ' + opts.stylize(!this.prefinalize.waiting, 'boolean') + '\\n' +\n indent + ' bytesSent: ' + opts.stylize(this.bytesSent, 'number') + '\\n' +\n indent + ' bytesReceived: ' + opts.stylize(this.bytesReceived, 'number') + '\\n' +\n indent + ')'\n }\n\n static isProtocolStream (s) {\n return !!(s && typeof s.initiator === 'boolean' && typeof s.pipe === 'function' && s.state)\n }\n\n static keyPair (seed) {\n return SHP.keyPair(seed)\n }\n\n get remoteAddress () {\n const to = this._readableState.pipeTo\n if (!to) return null\n if (ProtocolStream.isProtocolStream(to)) return null\n return to.remoteAddress\n }\n\n get remoteType () {\n const to = this._readableState.pipeTo\n if (!to) return null\n if (to._utp) return 'utp'\n if (to.remoteAddress) return 'tcp'\n return 'unknown'\n }\n\n get publicKey () {\n return this.state.publicKey\n }\n\n get remotePublicKey () {\n return this.state.remotePublicKey\n }\n\n _onpipe (dest) {\n if (typeof dest.setContentSize === 'function') this._utp = dest\n }\n\n _write (data, cb) {\n if (this.timeout !== null) this.timeout.refresh()\n this.bytesReceived += data.length\n this.state.recv(data)\n cb(null)\n }\n\n _destroy (cb) {\n this._predestroy() // make sure this always runs\n this.channelizer.destroy()\n this.state.destroy()\n cb(null)\n }\n\n _predestroy () {\n if (this.timeout !== null) {\n this.timeout.destroy()\n this.timeout = null\n }\n if (this.keepAlive !== null) {\n this.keepAlive.destroy()\n this.keepAlive = null\n }\n this.prefinalize.destroy()\n }\n\n _prefinalize () {\n this.emit('prefinalize')\n this.prefinalize.ready(() => {\n if (this.destroyed) return\n if (this.channelCount) return\n if (this.live) return\n this.finalize()\n })\n }\n\n _updateExtensions (names) {\n this.remoteExtensions.update(names)\n if (this.handlers.onextensions) this.handlers.onextensions(names)\n this.emit('extensions', names)\n }\n\n remoteOpened (key) {\n const ch = this.channelizer.getChannel(crypto.discoveryKey(key))\n return !!(ch && ch.remoteId > -1)\n }\n\n remoteVerified (key) {\n const ch = this.channelizer.getChannel(crypto.discoveryKey(key))\n return !!ch && !!ch.remoteCapability && ch.remoteCapability.equals(this.state.remoteCapability(key))\n }\n\n opened (key) {\n const ch = this.channelizer.getChannel(crypto.discoveryKey(key))\n return !!(ch && ch.localId > -1)\n }\n\n ping () {\n return this.state.ping()\n }\n\n setKeepAlive (ms) {\n if (this.keepAlive) this.keepAlive.destroy()\n if (!ms) {\n this.keepAlive = null\n return\n }\n this.keepAlive = timeout(ms, ping, this)\n\n function ping () {\n this.ping()\n this.keepAlive = timeout(ms, ping, this)\n }\n }\n\n setTimeout (ms, ontimeout) {\n if (this.timeout) this.timeout.destroy()\n if (!ms) {\n this.timeout = null\n return\n }\n this.timeout = timeout(ms, this.emit.bind(this, 'timeout'))\n if (ontimeout) this.once('timeout', ontimeout)\n }\n\n get channelCount () {\n return this.channelizer.created.size\n }\n\n get channels () {\n return this.channelizer.created.values()\n }\n\n open (key, handlers) {\n const discoveryKey = crypto.discoveryKey(key)\n const ch = this.channelizer.createChannel(discoveryKey)\n\n if (ch.key === null) {\n ch.key = key\n this.channelizer.attachLocal(ch)\n this.state.open(ch.localId, { key, discoveryKey })\n }\n\n if (handlers) ch.handlers = handlers\n\n if (ch.remoteId > -1) this.emit('duplex-channel', ch)\n\n return ch\n }\n\n close (discoveryKey) {\n const ch = this.channelizer.getChannel(discoveryKey)\n\n if (ch && ch.localId > -1) {\n ch.close()\n return\n }\n\n this.state.close(this.channelizer.allocLocal(), { discoveryKey })\n }\n\n finalize () {\n this.push(null)\n }\n}\n", "module.exports = function(v) {\n var c = 32\n v &= -v\n if (v) c--\n if (v & 0x0000FFFF) c -= 16\n if (v & 0x00FF00FF) c -= 8\n if (v & 0x0F0F0F0F) c -= 4\n if (v & 0x33333333) c -= 2\n if (v & 0x55555555) c -= 1\n return c\n}\n", "'use strict'\n\nconst ctz = require('count-trailing-zeros')\n\nmodule.exports = () => new Bitfield()\n\nclass Page {\n constructor (level) {\n const buf = new Uint8Array(level ? 8456 : 4360)\n const b = buf.byteOffset\n\n this.buffer = buf\n this.bits = level ? null : new Uint32Array(buf.buffer, b, 1024)\n this.children = level ? new Array(32768) : null\n this.level = level\n\n this.allOne = level\n ? [\n new Uint32Array(buf.buffer, b, 1024),\n new Uint32Array(buf.buffer, b + 4096, 32),\n new Uint32Array(buf.buffer, b + 4224, 1)\n ]\n : [\n this.bits,\n new Uint32Array(buf.buffer, b + 4096, 32),\n new Uint32Array(buf.buffer, b + 4224, 1)\n ]\n\n this.oneOne = level\n ? [\n new Uint32Array(buf.buffer, b + 4228, 1024),\n new Uint32Array(buf.buffer, b + 8324, 32),\n new Uint32Array(buf.buffer, b + 8452, 1)\n ]\n : [\n this.bits,\n new Uint32Array(buf.buffer, b + 4228, 32),\n new Uint32Array(buf.buffer, b + 4356, 1)\n ]\n }\n}\n\nconst ZEROS = [new Page(0), new Page(1), new Page(2), new Page(3)]\nconst MASK = new Uint32Array(32)\nconst MASK_INCL = new Uint32Array(32)\n\nfor (var i = 0; i < 32; i++) {\n MASK[i] = Math.pow(2, 31 - i) - 1\n MASK_INCL[i] = Math.pow(2, 32 - i) - 1\n}\n\nconst LITTLE_ENDIAN = new Uint8Array(MASK.buffer, MASK.byteOffset, 1)[0] === 0xff\n\nclass Bitfield {\n constructor () {\n this.length = 32768\n this.littleEndian = LITTLE_ENDIAN\n\n this._path = new Uint16Array(5)\n this._offsets = new Uint16Array(this._path.buffer, this._path.byteOffset + 2, 4)\n this._parents = new Array(4).fill(null)\n this._page = new Page(0)\n this._allocs = 1\n }\n\n last () {\n var page = this._page\n var b = 0\n\n while (true) {\n for (var i = 2; i >= 0; i--) {\n const c = ctz(page.oneOne[i][b])\n if (c === 32) return -1\n b = (b << 5) + (31 - c)\n }\n\n this._path[page.level] = b\n if (!page.level) return defactor(this._path)\n page = page.children[b]\n b = 0\n }\n }\n\n set (index, bit) {\n const page = this._getPage(index, bit)\n if (!page) return false\n\n const i = this._path[0]\n const r = i & 31\n const b = i >>> 5\n const prev = page.bits[b]\n\n page.bits[b] = bit\n ? (prev | (0x80000000 >>> r))\n : (prev & ~(0x80000000 >>> r))\n\n const upd = page.bits[b]\n if (upd === prev) return false\n\n this._updateAllOne(page, b, upd)\n this._updateOneOne(page, b, upd)\n\n return true\n }\n\n get (index) {\n const page = this._getPage(index, false)\n if (!page) return false\n\n const i = this._path[0]\n const r = i & 31\n\n return (page.bits[i >>> 5] & (0x80000000 >>> r)) !== 0\n }\n\n iterator () {\n return new Iterator(this)\n }\n\n fill (val, start, end) {\n if (!start) start = 0\n if (val === true) return this._fillBit(true, start, end === 0 ? end : (end || this.length))\n if (val === false) return this._fillBit(false, start, end === 0 ? end : (end || this.length))\n this._fillBuffer(val, start, end === 0 ? end : (end || (start + 8 * val.length)))\n }\n\n grow () {\n if (this._page.level === 3) throw new Error('Cannot grow beyond ' + this.length)\n const page = this._page\n this._page = new Page(page.level + 1)\n this._page.children[0] = page\n if (this._page.level === 3) this.length = Number.MAX_SAFE_INTEGER\n else this.length *= 32768\n }\n\n _fillBuffer (buf, start, end) {\n if ((start & 7) || (end & 7)) throw new Error('Offsets must be a multiple of 8')\n\n start /= 8\n while (end > this.length) this.grow()\n end /= 8\n\n const offset = start\n var page = this._getPage(8 * start, true)\n\n while (start < end) {\n const delta = end - start < 4096 ? end - start : 4096\n const s = start - offset\n\n start += this._setPageBuffer(page, buf.subarray(s, s + delta), start & 1023)\n if (start !== end) page = this._nextPage(page, 8 * start)\n }\n }\n\n _fillBit (bit, start, end) {\n var page = this._getPage(start, bit)\n\n // TODO: this can be optimised a lot in the case of end - start > 32768\n // in that case clear levels of 32768 ** 2 instead etc\n\n while (start < end) {\n const delta = end - start < 32768 ? end - start : 32768\n start += this._setPageBits(page, bit, start & 32767, delta)\n if (start !== end) page = this._nextPage(page, start)\n }\n }\n\n _nextPage (page, start) {\n const i = ++this._offsets[page.level]\n return i === 32768\n ? this._getPage(start, true)\n : this._parents[page.level].children[i] || this._addPage(this._parents[page.level], i)\n }\n\n _setPageBuffer (page, buf, start) {\n new Uint8Array(page.bits.buffer, page.bits.byteOffset, page.bits.length * 4).set(buf, start)\n start >>>= 2\n this._update(page, start, start + (buf.length >>> 2) + (buf.length & 3 ? 1 : 0))\n return buf.length\n }\n\n _setPageBits (page, bit, start, end) {\n const s = start >>> 5\n const e = end >>> 5\n const sm = 0xffffffff >>> (start & 31)\n const em = ~(0xffffffff >>> (end & 31))\n\n if (s === e) {\n page.bits[s] = bit\n ? page.bits[s] | (sm & em)\n : page.bits[s] & ~(sm & em)\n this._update(page, s, s + 1)\n return end - start\n }\n\n page.bits[s] = bit\n ? page.bits[s] | sm\n : page.bits[s] & (~sm)\n\n if (e - s > 2) page.bits.fill(bit ? 0xffffffff : 0, s + 1, e - 1)\n\n if (e === 1024) {\n page.bits[e - 1] = bit ? 0xffffffff : 0\n this._update(page, s, e)\n return end - start\n }\n\n page.bits[e] = bit\n ? page.bits[e] | em\n : page.bits[e] & (~em)\n\n this._update(page, s, e + 1)\n return end - start\n }\n\n _update (page, start, end) {\n for (; start < end; start++) {\n const upd = page.bits[start]\n this._updateAllOne(page, start, upd)\n this._updateOneOne(page, start, upd)\n }\n }\n\n _updateAllOne (page, b, upd) {\n var i = 1\n\n do {\n for (; i < 3; i++) {\n const buf = page.allOne[i]\n const r = b & 31\n const prev = buf[b >>>= 5]\n buf[b] = upd === 0xffffffff\n ? (prev | (0x80000000 >>> r))\n : (prev & ~(0x80000000 >>> r))\n upd = buf[b]\n if (upd === prev) return\n }\n\n b += this._offsets[page.level]\n page = this._parents[page.level]\n i = 0\n } while (page)\n }\n\n _updateOneOne (page, b, upd) {\n var i = 1\n\n do {\n for (; i < 3; i++) {\n const buf = page.oneOne[i]\n const r = b & 31\n const prev = buf[b >>>= 5]\n buf[b] = upd !== 0\n ? (prev | (0x80000000 >>> r))\n : (prev & ~(0x80000000 >>> r))\n upd = buf[b]\n if (upd === prev) return\n }\n\n b += this._offsets[page.level]\n page = this._parents[page.level]\n i = 0\n\n if (upd === 0 && page) {\n // all zeros, non root -> free page\n page.children[this._offsets[page.level - 1]] = undefined\n }\n } while (page)\n }\n\n _getPage (index, createIfMissing) {\n factor(index, this._path)\n\n while (index >= this.length) {\n if (!createIfMissing) return null\n this.grow()\n }\n\n var page = this._page\n\n for (var i = page.level; i > 0 && page; i--) {\n const p = this._path[i]\n this._parents[i - 1] = page\n page = page.children[p] || (createIfMissing ? this._addPage(page, p) : null)\n }\n\n return page\n }\n\n _addPage (page, i) {\n this._allocs++\n page = page.children[i] = new Page(page.level - 1)\n return page\n }\n}\n\nclass Iterator {\n constructor (bitfield) {\n this._bitfield = bitfield\n this._path = new Uint16Array(5)\n this._offsets = new Uint16Array(this._path.buffer, this._path.byteOffset + 2, 4)\n this._parents = new Array(4).fill(null)\n this._page = null\n this._allocs = bitfield._allocs\n\n this.seek(0)\n }\n\n seek (index) {\n this._allocs = this._bitfield._allocs\n\n if (index >= this._bitfield.length) {\n this._page = null\n return this\n }\n\n factor(index, this._path)\n\n this._page = this._bitfield._page\n for (var i = this._page.level; i > 0; i--) {\n this._parents[i - 1] = this._page\n this._page = this._page.children[this._path[i]] || ZEROS[i - 1]\n }\n\n return this\n }\n\n next (bit) {\n return bit ? this.nextTrue() : this.nextFalse()\n }\n\n nextFalse () {\n if (this._allocs !== this._bitfield._allocs) {\n // If a page has been alloced while we are iterating\n // and we have a zero page in our path we need to reseek\n // in case that page has been overwritten\n this.seek(defactor(this._path))\n }\n\n var page = this._page\n var b = this._path[0]\n var mask = MASK_INCL\n\n while (page) {\n for (var i = 0; i < 3; i++) {\n const r = b & 31\n const clz = Math.clz32((~page.allOne[i][b >>>= 5]) & mask[r])\n if (clz !== 32) return this._downLeftFalse(page, i, b, clz)\n mask = MASK\n }\n\n b = this._offsets[page.level]\n page = this._parents[page.level]\n }\n\n return -1\n }\n\n _downLeftFalse (page, i, b, clz) {\n while (true) {\n while (i) {\n b = (b << 5) + clz\n clz = Math.clz32(~page.allOne[--i][b])\n }\n\n b = (b << 5) + clz\n\n if (!page.level) break\n\n this._parents[page.level - 1] = page\n this._path[page.level] = b\n\n page = page.children[b]\n i = 3\n clz = b = 0\n }\n\n this._page = page\n this._path[0] = b\n\n return this._inc()\n }\n\n nextTrue () {\n var page = this._page\n var b = this._path[0]\n var mask = MASK_INCL\n\n while (page) {\n for (var i = 0; i < 3; i++) {\n const r = b & 31\n const clz = Math.clz32(page.oneOne[i][b >>>= 5] & mask[r])\n if (clz !== 32) return this._downLeftTrue(page, i, b, clz)\n mask = MASK\n }\n\n b = this._offsets[page.level]\n page = this._parents[page.level]\n }\n\n return -1\n }\n\n _downLeftTrue (page, i, b, clz) {\n while (true) {\n while (i) {\n b = (b << 5) + clz\n clz = Math.clz32(page.oneOne[--i][b])\n }\n\n b = (b << 5) + clz\n\n if (!page.level) break\n\n this._parents[page.level - 1] = page\n this._path[page.level] = b\n\n page = page.children[b]\n i = 3\n clz = b = 0\n }\n\n this._page = page\n this._path[0] = b\n\n return this._inc()\n }\n\n _inc () {\n const n = defactor(this._path)\n if (this._path[0] < 32767) this._path[0]++\n else this.seek(n + 1)\n return n\n }\n}\n\nfunction defactor (out) {\n return ((((out[3] * 32768 + out[2]) * 32768) + out[1]) * 32768) + out[0]\n}\n\nfunction factor (n, out) {\n n = (n - (out[0] = (n & 32767))) / 32768\n n = (n - (out[1] = (n & 32767))) / 32768\n out[3] = ((n - (out[2] = (n & 32767))) / 32768) & 32767\n}\n", "var Protocol = require('hypercore-protocol')\nvar timeout = require('timeout-refresh')\nvar bitfield = require('fast-bitfield')\nvar set = require('unordered-set')\nvar rle = require('bitfield-rle').align(4)\nvar treeIndex = require('./tree-index')\n\nvar EMPTY = new Uint8Array(1024)\n\nmodule.exports = replicate\n\nfunction replicate (feed, initiator, opts) {\n feed.ifAvailable.wait()\n var stream = Protocol.isProtocolStream(initiator) ? initiator : opts.stream\n\n if (!stream) {\n if (!opts.keyPair) opts.keyPair = feed.noiseKeyPair\n stream = new Protocol(initiator, opts)\n }\n\n if (feed.opened) onready(null)\n else feed.ready(onready)\n\n return stream\n\n function onready (err) {\n feed.ifAvailable.continue()\n\n if (err) return stream.destroy(err)\n if (stream.destroyed) return\n if (stream.opened(feed.key)) return\n\n if (opts.noise !== false && opts.onfeedauthenticate) {\n if (!stream.remotePublicKey) {\n feed.ifAvailable.wait()\n stream.setMaxListeners(0)\n stream.on('close', onhandshake)\n stream.on('handshake', onhandshake)\n return\n }\n feedauthenticate()\n return\n }\n replicatePeer()\n }\n\n function onhandshake () {\n feed.ifAvailable.continue()\n stream.off('close', onhandshake)\n stream.off('handshake', onhandshake)\n feedauthenticate()\n }\n\n function feedauthenticate () {\n if (stream.destroyed) return\n if (stream.opened(feed.key)) return\n feed.ifAvailable.wait()\n opts.onfeedauthenticate(feed, stream.remotePublicKey, function (err) {\n feed.ifAvailable.continue()\n if (stream.destroyed) return\n if (stream.opened(feed.key)) return\n if (err) {\n stream.close(feed.discoveryKey)\n return\n }\n replicatePeer()\n })\n }\n\n function replicatePeer () {\n if (opts.noise !== false) {\n if (stream.remoteOpened(feed.key) && !stream.remoteVerified(feed.key)) {\n stream.close(feed.discoveryKey)\n return\n }\n }\n\n var peer = new Peer(feed, opts)\n\n peer.feed = feed\n peer.stream = stream.open(feed.key, peer)\n\n stream.setMaxListeners(0)\n peer.ready()\n feed.emit('replicating', stream)\n }\n}\n\nfunction Peer (feed, opts) {\n if (opts.extensions) throw new Error('Per peer extensions is not supported. Use feed.registerExtension instead')\n\n this.feed = feed\n this.stream = null // set by replicate just after creation\n this.wants = bitfield()\n this.remoteBitfield = bitfield()\n this.remoteLength = 0\n this.remoteWant = false\n this.remoteTree = null\n this.remoteAck = false\n this.remoteOpened = false\n this.live = !!opts.live\n this.sparse = feed.sparse\n this.ack = !!opts.ack\n\n this.remoteDownloading = true\n this.remoteUploading = true\n this.remoteExtensions = feed.extensions.remote()\n this.downloading = typeof opts.download === 'boolean' ? opts.download : feed.downloading\n this.uploading = typeof opts.upload === 'boolean' ? opts.upload : feed.uploading\n\n this.updated = false\n\n this.maxRequests = opts.maxRequests || feed.maxRequests || 16\n this.urgentRequests = this.maxRequests + 16\n this.inflightRequests = []\n this.inflightWants = 0\n\n this._index = -1\n this._lastBytes = 0\n this._first = true\n this._closed = false\n this._destroyed = false\n this._defaultDownloading = this.downloading\n this._iterator = this.remoteBitfield.iterator()\n this._requestTimeout = null\n\n this.stats = !opts.stats ? null : {\n uploadedBytes: 0,\n uploadedBlocks: 0,\n downloadedBytes: 0,\n downloadedBlocks: 0\n }\n}\n\nObject.defineProperty(Peer.prototype, 'remoteAddress', {\n enumerable: true,\n get: function () {\n return this.stream.stream.remoteAddress\n }\n})\n\nObject.defineProperty(Peer.prototype, 'remoteType', {\n enumerable: true,\n get: function () {\n return this.stream.stream.remoteType\n }\n})\n\nObject.defineProperty(Peer.prototype, 'remotePublicKey', {\n enumerable: true,\n get: function () {\n return this.stream.state.remotePublicKey\n }\n})\n\nPeer.prototype.onwant = function (want) {\n if (!this.uploading) return\n // We only reploy to multipla of 8192 in terms of offsets and lengths for want messages\n // since this is much easier for the bitfield, in terms of paging.\n if ((want.start & 8191) || (want.length & 8191)) return\n if (!this.remoteWant && this.feed.length && this.feed.bitfield.get(this.feed.length - 1)) {\n // Eagerly send the length of the feed to the otherside\n // TODO: only send this if the remote is not wanting a region\n // where this is contained in\n this.stream.have({ start: this.feed.length - 1 })\n }\n this.remoteWant = true\n var rle = this.feed.bitfield.compress(want.start, want.length)\n this.stream.have({ start: want.start, length: want.length, bitfield: rle })\n}\n\nPeer.prototype.ondata = function (data) {\n var self = this\n\n // Ignore unrequested messages unless we allow push\n // TODO: would be better to check if the byte range was requested instead, but this works fine\n var allowPush = this.feed.allowPush || !data.value\n if (!allowPush && !this.feed._reserved.get(data.index)) {\n // If we do not have this block, send back unhave message for this index,\n // to let the remote know we rejected it.\n // TODO: we might want to have some \"unwanted push\" threshold to punish spammers\n if (!self.feed.bitfield.get(data.index)) self.unhave({ start: data.index })\n self._clear(data.index, !data.value)\n return\n }\n\n this.feed._putBuffer(data.index, data.value, data, this, function (err) {\n if (err) return self.destroy(err)\n if (data.value) self.remoteBitfield.set(data.index, false)\n if (self.remoteAck) {\n // Send acknowledgement.\n // In the future this could batch several ACKs at once\n self.stream.have({ start: data.index, length: 1, ack: true })\n }\n if (self.stats && data.value) {\n self.stats.downloadedBlocks += 1\n self.stats.downloadedBytes += data.value.length\n }\n self._clear(data.index, !data.value)\n })\n}\n\nPeer.prototype._clear = function (index, hash) {\n // TODO: optimize me (no splice and do not run through all ...)\n for (var i = 0; i < this.inflightRequests.length; i++) {\n if (this.inflightRequests[i].index === index) {\n if (this._requestTimeout !== null) this._requestTimeout.refresh()\n this.inflightRequests.splice(i, 1)\n i--\n }\n }\n\n this.feed._reserved.set(index, false)\n // TODO: only update all if we have overlapping selections\n this.feed._updatePeers()\n\n if (this.inflightRequests.length === 0 && this._requestTimeout !== null) {\n this._requestTimeout.destroy()\n this._requestTimeout = null\n }\n}\n\nPeer.prototype.onrequest = function (request) {\n if (!this.uploading) return\n if (request.bytes) return this._onbytes(request)\n\n // lazily instantiate the remote tree\n if (!this.remoteTree) this.remoteTree = treeIndex()\n\n var self = this\n var opts = { digest: request.nodes, hash: request.hash, tree: this.remoteTree }\n\n this.feed.proof(request.index, opts, onproof)\n\n function onproof (err, proof) {\n if (err) return self.destroy(err)\n if (request.hash) onvalue(null, null)\n else if (self.feed.bitfield.get(request.index)) self.feed._getBuffer(request.index, onvalue)\n\n function onvalue (err, value) {\n if (!self.uploading) return\n if (err) return self.destroy(err)\n\n if (value) {\n if (self.stats) {\n self.stats.uploadedBlocks += 1\n self.stats.uploadedBytes += value.length\n self.feed._stats.uploadedBlocks += 1\n self.feed._stats.uploadedBytes += value.length\n }\n self.feed.emit('upload', request.index, value, self)\n }\n\n // TODO: prob not needed with new bitfield\n if (request.index + 1 > self.remoteLength) {\n self.remoteLength = request.index + 1\n self._updateEnd()\n }\n\n self.stream.data({\n index: request.index,\n value: value,\n nodes: proof.nodes,\n signature: proof.signature\n })\n }\n }\n}\n\nPeer.prototype._updateOptions = function () {\n if (this.ack || this.feed.extensions.length) {\n this.stream.options({\n ack: this.ack,\n extensions: this.feed.extensions.names()\n })\n }\n}\n\nPeer.prototype.setDownloading = function (downloading) {\n if (downloading === this.downloading) return\n this.downloading = downloading\n this.stream.status({\n downloading,\n uploading: this.uploading\n })\n this.update()\n}\n\nPeer.prototype.setUploading = function (uploading) {\n if (uploading === this.uploading) return\n this.uploading = uploading\n this.stream.status({\n downloading: this.downloading,\n uploading\n })\n this.update()\n}\n\nPeer.prototype._onbytes = function (request) {\n var self = this\n\n this.feed.seek(request.bytes, { wait: false }, function (err, index) {\n if (err) {\n request.bytes = 0\n self.onrequest(request)\n return\n }\n\n // quick'n'dirty filter for parallel bytes requests\n // it does not matter that this doesn't catch ALL parallel requests - just a bandwidth optimization\n if (self._lastBytes === request.bytes) return\n self._lastBytes = request.bytes\n\n request.bytes = 0\n request.index = index\n request.nodes = 0\n\n self.onrequest(request)\n })\n}\n\nPeer.prototype._onrequesttimeout = function () {\n this._requestTimeout = null\n if (!this.inflightRequests.length) return\n\n var first = this.inflightRequests[0]\n\n if (first.hash ? this.feed.tree.get(2 * first.index) : this.feed.bitfield.get(first.index)) {\n // prob a bytes response\n this.inflightRequests.shift()\n this.feed._reserved.set(first.index, false)\n\n if (this.stream.stream.timeout) {\n this._requestTimeout = timeout(this.stream.stream.timeout.ms, this._onrequesttimeout, this)\n }\n return\n }\n\n this.destroy(new Error('Request timeout'))\n}\n\nPeer.prototype.onhave = function (have) {\n this.feed.emit('peer-ack', this, have)\n\n if (this.ack && have.ack && !have.bitfield && this.feed.bitfield.get(have.start)) {\n this.stream.stream.emit('ack', have)\n return\n }\n\n var updated = this._first\n if (this._first) this._first = false\n\n // In this impl, we only sent WANTs for 1024 * 1024 length ranges\n // so if we get a HAVE for that it is a reply to a WANT.\n if (have.length === 1024 * 1024 && this.inflightWants > 0) {\n this.feed.ifAvailable.continue()\n this.inflightWants--\n }\n\n if (have.bitfield) { // TODO: handle start !== 0\n if (have.length === 0 || have.length === 1) { // length === 1 is for backwards compat\n this.wants = null // we are in backwards compat mode where we subscribe everything\n }\n var buf = rle.decode(have.bitfield)\n var bits = buf.length * 8\n remoteAndNotLocal(this.feed.bitfield, buf, this.remoteBitfield.littleEndian, have.start)\n this.remoteBitfield.fill(buf, have.start)\n if (bits > this.remoteLength) {\n this.remoteLength = this.remoteBitfield.last() + 1\n updated = true\n }\n } else {\n // TODO: if len > something simply copy a 0b1111... buffer to the bitfield\n\n var start = have.start\n var len = have.length || 1\n\n while (len--) this.remoteBitfield.set(start, !this.feed.bitfield.get(start++))\n if (start > this.remoteLength) {\n this.remoteLength = start\n updated = true\n }\n }\n\n if (updated) {\n this.updated = true\n this.feed.emit('remote-update', this)\n }\n\n this._updateEnd()\n this.update()\n}\n\nPeer.prototype._updateEnd = function () {\n if (this.live || this.feed.sparse || !this.feed._selections.length) return\n\n var sel = this.feed._selections[0]\n var remoteLength = this.feed.length || -1\n\n for (var i = 0; i < this.feed.peers.length; i++) {\n if (this.feed.peers[i].remoteLength > remoteLength) {\n remoteLength = this.feed.peers[i].remoteLength\n }\n }\n\n sel.end = remoteLength\n}\n\nPeer.prototype.onextension = function (id, message) {\n this.remoteExtensions.onmessage(id, message, this)\n}\n\nPeer.prototype.onstatus = function (info) {\n this.remoteUploading = info.uploading\n this.remoteDownloading = info.downloading\n\n if (!info.uploading) {\n while (this.inflightRequests.length) {\n const data = this.inflightRequests[0]\n this._clear(data.index, !data.value)\n }\n for (var i = 0; i < this.inflightWants; i++) {\n this.feed.ifAvailable.continue()\n }\n this.inflightWants = 0\n this.wants = bitfield()\n }\n this.update()\n if (info.downloading || this.live) return\n if (this.feed._selections.length && this.downloading) return\n this._autoEnd()\n}\n\nPeer.prototype._autoEnd = function () {\n if (this.uploading && this.remoteDownloading) return\n if ((this.sparse || this.live) && (this.remoteUploading || this.downloading)) return\n this.end()\n}\n\nPeer.prototype.onunhave = function (unhave) {\n var start = unhave.start\n var len = unhave.length || 1\n\n if (start === 0 && len >= this.remoteLength) {\n this.remoteLength = 0\n this.remoteBitfield = bitfield()\n return\n }\n\n while (len--) this.remoteBitfield.set(start++, false)\n}\n\nPeer.prototype.onunwant =\nPeer.prototype.oncancel = function () {\n // TODO: impl all of me\n}\n\nPeer.prototype.onclose = function () {\n this._close()\n}\n\nPeer.prototype.have = function (have) { // called by feed\n if (this.stream && this.remoteWant) this.stream.have(have)\n var start = have.start\n var len = have.length\n while (len--) this.remoteBitfield.set(start++, false)\n}\n\nPeer.prototype.unhave = function (unhave) { // called by feed\n if (this.stream && this.remoteWant) this.stream.unhave(unhave)\n}\n\nPeer.prototype.haveBytes = function (bytes) { // called by feed\n for (var i = 0; i < this.inflightRequests.length; i++) {\n if (this.inflightRequests[i].bytes === bytes) {\n this.feed._reserved.set(this.inflightRequests[i].index, false)\n this.inflightRequests.splice(i, 1)\n i--\n }\n }\n\n this.update()\n\n if (this.inflightRequests.length === 0 && this._requestTimeout !== null) {\n this._requestTimeout.destroy()\n this._requestTimeout = null\n }\n}\n\nPeer.prototype.update = function () {\n // do nothing\n while (this._update()) {}\n this._sendWantsMaybe()\n}\n\nPeer.prototype._update = function () {\n // should return true if mutated false if not\n if (!this.downloading || !this.remoteUploading) return false\n var selections = this.feed._selections\n var waiting = this.feed._waiting\n var wlen = waiting.length\n var slen = selections.length\n var inflight = this.inflightRequests.length\n var offset = 0\n var i = 0\n\n // TODO: less duplicate code here\n // TODO: re-add priority levels\n\n while (inflight < this.urgentRequests) {\n offset = Math.floor(Math.random() * waiting.length)\n\n for (i = 0; i < waiting.length; i++) {\n var w = waiting[offset++]\n if (offset === waiting.length) offset = 0\n\n this._downloadWaiting(w)\n if (waiting.length !== wlen) return true // mutated\n if (this.inflightRequests.length >= this.urgentRequests) return false\n }\n if (inflight === this.inflightRequests.length) break\n inflight = this.inflightRequests.length\n }\n\n while (inflight < this.maxRequests) {\n offset = Math.floor(Math.random() * selections.length)\n\n for (i = 0; i < selections.length; i++) {\n var s = selections[offset++]\n if (offset === selections.length) offset = 0\n\n if (!s.iterator) s.iterator = this.feed.bitfield.iterator(s.start, s.end)\n if (s.blocks) this._downloadBlocks(s)\n else this._downloadRange(s)\n if (selections.length !== slen) return true // mutated\n if (this.inflightRequests.length >= this.maxRequests) return false\n }\n\n if (inflight === this.inflightRequests.length) return false\n inflight = this.inflightRequests.length\n }\n\n return false\n}\n\nPeer.prototype.onopen = function () {\n this.feed.ifAvailable.continue()\n this.remoteOpened = true\n\n this._updateOptions()\n\n if (!this.uploading || !this.downloading) {\n this.stream.status({\n uploading: this.uploading,\n downloading: this.downloading\n })\n }\n\n this._sendWants()\n this.feed.emit('peer-open', this)\n}\n\nPeer.prototype.onoptions = function (options) {\n this.remoteAck = options.ack\n this.remoteExtensions.update(options.extensions)\n}\n\nPeer.prototype.ready = function () {\n this.feed.ifAvailable.wait() // continued by onopen or close\n set.add(this.feed.peers, this)\n this.feed.emit('peer-add', this)\n if (this.stream.remoteOpened) this.onopen()\n}\n\nPeer.prototype.end = function () {\n if (!this.downloading && !this.remoteDownloading && !this.live) {\n if (!this._defaultDownloading) {\n this.stream.status({ downloading: false, uploading: false })\n }\n this._close()\n return\n }\n if (!this._closed) {\n this._closed = true\n this.downloading = false\n this.stream.status({ downloading: false, uploading: true })\n } else {\n if (!this.live) this._close()\n }\n}\n\nPeer.prototype._close = function () {\n if (!this._destroyed) {\n this._destroyed = true\n this.stream.close()\n }\n if (this._index === -1) return\n set.remove(this.feed.peers, this)\n this._index = -1\n for (var i = 0; i < this.inflightRequests.length; i++) {\n this.feed._reserved.set(this.inflightRequests[i].index, false)\n }\n if (this._requestTimeout !== null) {\n this._requestTimeout.destroy()\n this._requestTimeout = null\n }\n this._updateEnd()\n this.remoteWant = false\n this.feed._updatePeers()\n this.feed.emit('peer-remove', this)\n for (i = 0; i < this.inflightWants; i++) {\n this.feed.ifAvailable.continue()\n }\n if (!this.remoteOpened) {\n this.feed.ifAvailable.continue()\n }\n}\n\nPeer.prototype.destroy = function (err) {\n if (this._index === -1 || this._destroyed) return\n this.stream.destroy(err)\n this._destroyed = true\n this._close()\n}\n\nPeer.prototype._sendWantsMaybe = function () {\n if (this.inflightRequests.length < this.urgentRequests) this._sendWants()\n}\n\nPeer.prototype._sendWants = function () {\n if (!this.wants || !this.downloading || !this.remoteOpened || !this.remoteUploading) return\n if (this.inflightWants >= 16) return\n\n var i\n\n for (i = 0; i < this.feed._waiting.length; i++) {\n var w = this.feed._waiting[i]\n if (w.index === -1) this._sendWantRange(w)\n else this._sendWant(w.index)\n if (this.inflightWants >= 16) return\n }\n\n for (i = 0; i < this.feed._selections.length; i++) {\n var s = this.feed._selections[i]\n this._sendWantRange(s)\n if (this.inflightWants >= 16) return\n }\n\n // always sub to the first range for now, usually what you want\n this._sendWant(0)\n}\n\nPeer.prototype._sendWantRange = function (s) {\n if (s.blocks) {\n if (!s.selected) s.selected = new WeakSet()\n if (s.selected.has(this)) return\n s.selected.add(this)\n for (const block of s.blocks) {\n this._sendWant(block)\n }\n return\n }\n\n var want = s.start ? 1024 * 1024 * Math.floor(s.start / 1024 / 1024) : 0\n\n while (true) {\n if (want >= this.remoteLength) return\n if (s.end !== -1 && want >= s.end) return\n\n if (this._sendWant(want)) return\n\n // check if region is already selected - if so try next one\n if (!this.wants.get(Math.floor(want / 1024 / 1024))) return\n want += 1024 * 1024\n }\n}\n\nPeer.prototype._sendWant = function (index) {\n var len = 1024 * 1024\n var j = Math.floor(index / len)\n if (this.wants.get(j)) return false\n this.wants.set(j, true)\n this.inflightWants++\n this.feed.ifAvailable.wait()\n this.stream.want({ start: j * len, length: len })\n return true\n}\n\nPeer.prototype._downloadWaiting = function (wait) {\n if (!wait.bytes) {\n if (!this.remoteBitfield.get(wait.index) || !this.feed._reserved.set(wait.index, true)) {\n if (!wait.update || this.feed._reserved.get(wait.index)) return\n const i = this._iterator.seek(wait.index).next(true)\n if (i === -1 || !this.feed._reserved.set(i, true)) return\n wait.index = i\n }\n this._request(wait.index, 0, wait.hash === true)\n return\n }\n\n this._downloadRange(wait)\n}\n\nPeer.prototype._downloadBlocks = function (range) {\n while (range.blocksDownloaded < range.blocks.length) {\n const blk = range.blocks[range.blocksDownloaded]\n if (!this.feed.bitfield.get(blk)) break\n range.blocksDownloaded++\n }\n\n if (range.blocksDownloaded >= range.blocks.length) {\n set.remove(this.feed._selections, range)\n range.callback(null)\n return\n }\n\n for (var i = range.blocksDownloaded; i < range.blocks.length; i++) {\n const blk = range.blocks[i]\n if (this.remoteBitfield.get(blk) && this.feed._reserved.set(blk, true)) {\n range.requested++\n this._request(blk, 0, false)\n return\n }\n }\n}\n\nPeer.prototype._downloadRange = function (range) {\n if (!range.iterator) range.iterator = this.feed.bitfield.iterator(range.start, range.end)\n\n var reserved = this.feed._reserved\n var ite = this._iterator\n var wantedEnd = Math.min(range.end === -1 ? this.remoteLength : range.end, this.remoteLength)\n\n var i = range.linear ? ite.seek(range.start).next(true) : nextRandom(ite, range.start, wantedEnd)\n var start = i\n\n if (i === -1 || i >= wantedEnd) {\n if (!range.bytes && range.end > -1 && this.feed.length >= range.end && range.iterator.seek(0).next() === -1) {\n set.remove(this.feed._selections, range)\n range.callback(null)\n if (!this.live && !this.sparse && !this.feed._selections.length) this.end()\n }\n return\n }\n\n while ((range.hash && this.feed.tree.get(2 * i)) || !reserved.set(i, true)) {\n i = ite.next(true)\n\n if (i > -1 && i < wantedEnd) {\n // check this index\n continue\n }\n\n if (!range.linear && start !== 0) {\n // retry from the beginning since we are iterating randomly and started !== 0\n i = ite.seek(range.start).next(true)\n start = 0\n if (i > -1 && i < wantedEnd) continue\n }\n\n // we have checked all indexes.\n // if we are looking for hashes we should check if we have all now (first check only checks blocks)\n if (range.hash) {\n // quick'n'dirty check if have all hashes - can be optimized be checking only tree roots\n // but we don't really request long ranges of hashes so yolo\n for (var j = range.start; j < wantedEnd; j++) {\n if (!this.feed.tree.get(2 * j)) return\n }\n if (!range.bytes) {\n set.remove(this.feed._selections, range)\n range.callback(null)\n }\n }\n\n // exit the update loop - nothing to do\n return\n }\n\n range.requested++\n this._request(i, range.bytes || 0, range.hash)\n}\n\nPeer.prototype._request = function (index, bytes, hash) {\n var request = {\n bytes: bytes,\n index: index,\n hash: hash,\n nodes: this.feed.digest(index)\n }\n\n if (this._requestTimeout === null && this.stream.stream.timeout) {\n this._requestTimeout = timeout(this.stream.stream.timeout.ms, this._onrequesttimeout, this)\n }\n this.inflightRequests.push(request)\n this.stream.request(request)\n}\n\nPeer.prototype.extension = function (id, message) {\n this.stream.extension(id, message)\n}\n\nfunction createView (page) {\n var buf = page ? page.buffer : EMPTY\n return new DataView(buf.buffer, buf.byteOffset, 1024)\n}\n\nfunction remoteAndNotLocal (local, buf, le, start) {\n var remote = new DataView(buf.buffer, buf.byteOffset)\n var len = Math.floor(buf.length / 4)\n var arr = new Uint32Array(buf.buffer, buf.byteOffset, len)\n var p = start / 8192 // 8192 is bits per bitfield page\n var l = 0\n var page = createView(local.pages.get(p++, true))\n\n for (var i = 0; i < len; i++) {\n arr[i] = remote.getUint32(4 * i, !le) & ~page.getUint32(4 * (l++), !le)\n\n if (l === 256) {\n page = createView(local.pages.get(p++, true))\n l = 0\n }\n }\n}\n\nfunction nextRandom (ite, start, end) {\n var len = end - start\n var i = ite.seek(Math.floor(Math.random() * len) + start).next(true)\n return i === -1 || i >= end ? ite.seek(start).next(true) : i\n}\n", "// Copy of index.js that extends from EventEmitter\n\nconst events = require('events')\nconst inherits = require('inherits')\n\nconst opening = Symbol('opening queue')\nconst preclosing = Symbol('closing when inactive')\nconst closing = Symbol('closing queue')\nconst sync = Symbol('sync')\nconst fastClose = Symbol('fast close')\n\nmodule.exports = Nanoresource\n\nfunction Nanoresource (opts) {\n if (!(this instanceof Nanoresource)) return new Nanoresource(opts)\n events.EventEmitter.call(this)\n\n if (!opts) opts = {}\n if (opts.open) this._open = opts.open\n if (opts.close) this._close = opts.close\n\n this.opening = false\n this.opened = false\n this.closing = false\n this.closed = false\n this.actives = 0\n\n this[opening] = null\n this[preclosing] = null\n this[closing] = null\n this[sync] = false\n this[fastClose] = true\n}\n\ninherits(Nanoresource, events.EventEmitter)\n\nNanoresource.prototype._open = function (cb) {\n cb(null)\n}\n\nNanoresource.prototype._close = function (cb) {\n cb(null)\n}\n\nNanoresource.prototype.open = function (cb) {\n if (!cb) cb = noop\n\n if (this[closing] || this.closed) return process.nextTick(cb, new Error('Resource is closed'))\n if (this.opened) return process.nextTick(cb)\n\n if (this[opening]) {\n this[opening].push(cb)\n return\n }\n\n this.opening = true\n this[opening] = [cb]\n this[sync] = true\n this._open(onopen.bind(this))\n this[sync] = false\n}\n\nNanoresource.prototype.active = function (cb) {\n if ((this[fastClose] && this[preclosing]) || this[closing] || this.closed) {\n if (cb) process.nextTick(cb, new Error('Resource is closed'))\n return false\n }\n this.actives++\n return true\n}\n\nNanoresource.prototype.inactive = function (cb, err, val) {\n if (!--this.actives) {\n const queue = this[preclosing]\n if (queue) {\n this[preclosing] = null\n while (queue.length) this.close(queue.shift())\n }\n }\n\n if (cb) cb(err, val)\n}\n\nNanoresource.prototype.close = function (allowActive, cb) {\n if (typeof allowActive === 'function') return this.close(false, allowActive)\n if (!cb) cb = noop\n\n if (allowActive) this[fastClose] = false\n\n if (this.closed) return process.nextTick(cb)\n\n if (this.actives || this[opening]) {\n if (!this[preclosing]) this[preclosing] = []\n this[preclosing].push(cb)\n return\n }\n\n if (!this.opened) {\n this.closed = true\n process.nextTick(cb)\n return\n }\n\n if (this[closing]) {\n this[closing].push(cb)\n return\n }\n\n this.closing = true\n this[closing] = [cb]\n this[sync] = true\n this._close(onclose.bind(this))\n this[sync] = false\n}\n\nfunction onopen (err) {\n if (this[sync]) return process.nextTick(onopen.bind(this), err)\n\n const oqueue = this[opening]\n this[opening] = null\n this.opening = false\n this.opened = !err\n\n while (oqueue.length) oqueue.shift()(err)\n\n const cqueue = this[preclosing]\n if (cqueue && !this.actives) {\n this[preclosing] = null\n while (cqueue.length) this.close(cqueue.shift())\n }\n}\n\nfunction onclose (err) {\n if (this[sync]) return process.nextTick(onclose.bind(this), err)\n const queue = this[closing]\n this.closing = false\n this[closing] = null\n this.closed = !err\n while (queue.length) queue.shift()(err)\n}\n\nfunction noop () {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// Empty module to stub packages that we know won't be used at runtime and can be replaces with a mock like this.\nmodule.exports = new Proxy(\n {},\n {\n get: (target, prop) => {\n throw new Error('Package has been stripped');\n },\n },\n);\n", "const { Writable, Readable } = require('streamx')\n\nclass WriteStream extends Writable {\n constructor (feed, opts) {\n super()\n\n this.feed = feed\n this.maxBlockSize = (opts && opts.maxBlockSize) || 0\n }\n\n _writev (batch, cb) {\n this.feed.append(this.maxBlockSize ? this._ensureMaxSize(batch) : batch, cb)\n }\n\n _ensureMaxSize (batch) {\n for (let i = 0; i < batch.length; i++) {\n let blk = batch[i]\n if (blk.length > this.maxBlockSize) {\n const chunked = []\n while (blk.length > this.maxBlockSize) {\n chunked.push(blk.slice(0, this.maxBlockSize))\n blk = blk.slice(this.maxBlockSize)\n }\n if (blk.length) chunked.push(blk)\n batch.splice(i, 1, ...chunked)\n i += chunked.length - 1\n }\n }\n return batch\n }\n}\n\nclass ReadStream extends Readable {\n constructor (feed, opts = {}) {\n super()\n\n this.feed = feed\n this.start = opts.start || 0\n this.end = typeof opts.end === 'number' ? opts.end : -1\n this.live = !!opts.live\n this.snapshot = opts.snapshot !== false\n this.tail = !!opts.tail\n this.index = this.start\n this.options = { wait: opts.wait !== false, ifAvailable: !!opts.ifAvailable, valueEncoding: opts.valueEncoding }\n }\n\n _open (cb) {\n this.feed.ready((err) => {\n if (err) return cb(err)\n if (this.end === -1) {\n if (this.live) this.end = Infinity\n else if (this.snapshot) this.end = this.feed.length\n if (this.start > this.end) this.push(null)\n }\n if (this.tail) this.start = this.feed.length\n this.index = this.start\n cb(null)\n })\n }\n\n _read (cb) {\n if (this.index === this.end || (this.end === -1 && this.index >= this.feed.length)) {\n this.push(null)\n return cb(null)\n }\n this.feed.get(this.index++, this.options, (err, block) => {\n if (err) return cb(err)\n this.push(block)\n cb(null)\n })\n }\n}\n\nmodule.exports = { WriteStream, ReadStream }\n", "var low = require('last-one-wins')\nvar remove = require('unordered-array-remove')\nvar set = require('unordered-set')\nvar MerkleGenerator = require('merkle-tree-stream/generator')\nvar flat = require('flat-tree')\nvar codecs = require('codecs')\nvar batcher = require('atomic-batcher')\nvar inherits = require('inherits')\nvar bitfield = require('./lib/bitfield')\nvar sparseBitfield = require('sparse-bitfield')\nvar treeIndex = require('./lib/tree-index')\nvar storage = require('./lib/storage')\nvar crypto = require('hypercore-crypto')\nvar inspect = require('inspect-custom-symbol')\nvar pretty = require('pretty-hash')\nvar Nanoguard = require('nanoguard')\nvar safeBufferEquals = require('./lib/safe-buffer-equals')\nvar replicate = require('./lib/replicate')\nvar Protocol = require('hypercore-protocol')\nvar Message = require('abstract-extension')\nvar Nanoresource = require('nanoresource/emitter')\nvar defaultStorage = require('hypercore-default-storage')\nvar { WriteStream, ReadStream } = require('hypercore-streams')\n\nclass Extension extends Message {\n broadcast (message) {\n const feed = this.local.handlers\n const buf = this.encoding.encode(message)\n let broadcasted = false\n for (const peer of feed.peers) {\n broadcasted = true\n peer.extension(this.id, buf)\n }\n return broadcasted\n }\n\n send (message, peer) {\n peer.extension(this.id, this.encode(message))\n }\n}\n\nvar defaultCrypto = {\n sign (data, sk, cb) {\n return cb(null, crypto.sign(data, sk))\n },\n verify (sig, data, pk, cb) {\n return cb(null, crypto.verify(sig, data, pk))\n }\n}\n\nmodule.exports = Feed\n\nfunction Feed (createStorage, key, opts) {\n if (!(this instanceof Feed)) return new Feed(createStorage, key, opts)\n Nanoresource.call(this)\n\n if (typeof createStorage === 'string') createStorage = defaultStorageDir(createStorage)\n if (typeof createStorage !== 'function') throw new Error('Storage should be a function or string')\n\n if (typeof key === 'string') key = Buffer.from(key, 'hex')\n\n if (!Buffer.isBuffer(key) && !opts) {\n opts = key\n key = null\n }\n\n if (!opts) opts = {}\n\n var self = this\n\n var secretKey = opts.secretKey || null\n if (typeof secretKey === 'string') secretKey = Buffer.from(secretKey, 'hex')\n\n this.noiseKeyPair = opts.noiseKeyPair || Protocol.keyPair()\n this.live = opts.live !== false\n this.sparse = !!opts.sparse\n this.length = 0\n this.byteLength = 0\n this.maxRequests = opts.maxRequests || 16\n this.key = key || opts.key || null\n this.discoveryKey = this.key && crypto.discoveryKey(this.key)\n this.secretKey = secretKey\n this.bitfield = null\n this.tree = null\n this.writable = !!opts.writable\n this.readable = true\n this.downloading = opts.downloading !== false\n this.uploading = opts.uploading !== false\n this.allowPush = !!opts.allowPush\n this.peers = []\n this.ifAvailable = new Nanoguard()\n this.extensions = Extension.createLocal(this) // set Feed as the handlers\n\n this.crypto = opts.crypto || defaultCrypto\n\n // hooks\n this._onwrite = opts.onwrite || null\n\n this._force = !!opts.force\n this._expectedLength = -1\n this._indexing = !!opts.indexing\n this._createIfMissing = opts.createIfMissing !== false\n this._overwrite = !!opts.overwrite\n this._storeSecretKey = opts.storeSecretKey !== false\n this._alwaysIfAvailable = !!opts.ifAvailable\n this._merkle = null\n this._storage = storage(createStorage, opts)\n this._batch = batcher(this._onwrite ? workHook : work)\n\n this.timeouts = opts.timeouts || {\n get (cb) {\n cb(null)\n },\n update (cb) {\n cb(null)\n }\n }\n\n this._seq = 0\n this._waiting = []\n this._selections = []\n this._reserved = sparseBitfield()\n this._synced = null\n this._downloadingSet = typeof opts.downloading === 'boolean'\n\n this._stats = (typeof opts.stats !== 'undefined' && !opts.stats) ? null : {\n downloadedBlocks: 0,\n downloadedBytes: 0,\n uploadedBlocks: 0,\n uploadedBytes: 0\n }\n\n this._codec = toCodec(opts.valueEncoding)\n this._sync = low(sync)\n if (!this.sparse) this.download({ start: 0, end: -1 })\n\n if (this.sparse && opts.eagerUpdate) {\n this.update(function loop (err) {\n if (err) self.emit('update-error', err)\n self.update(loop)\n })\n }\n\n // open it right away\n this.open(onerror)\n\n function onerror (err) {\n if (err) self.emit('error', err)\n }\n\n function workHook (values, cb) {\n if (!self._merkle) return self._reloadMerkleStateBeforeAppend(workHook, values, cb)\n self._appendHook(values, cb)\n }\n\n function work (values, cb) {\n if (!self._merkle) return self._reloadMerkleStateBeforeAppend(work, values, cb)\n self._append(values, cb)\n }\n\n function sync (_, cb) {\n self._syncBitfield(cb)\n }\n}\n\ninherits(Feed, Nanoresource)\n\nFeed.discoveryKey = crypto.discoveryKey\n\nFeed.prototype[inspect] = function (depth, opts) {\n var indent = ''\n if (typeof opts.indentationLvl === 'number') {\n while (indent.length < opts.indentationLvl) indent += ' '\n }\n return 'Hypercore(\\n' +\n indent + ' key: ' + opts.stylize((this.key && pretty(this.key)), 'string') + '\\n' +\n indent + ' discoveryKey: ' + opts.stylize((this.discoveryKey && pretty(this.discoveryKey)), 'string') + '\\n' +\n indent + ' opened: ' + opts.stylize(this.opened, 'boolean') + '\\n' +\n indent + ' sparse: ' + opts.stylize(this.sparse, 'boolean') + '\\n' +\n indent + ' writable: ' + opts.stylize(this.writable, 'boolean') + '\\n' +\n indent + ' length: ' + opts.stylize(this.length, 'number') + '\\n' +\n indent + ' byteLength: ' + opts.stylize(this.byteLength, 'number') + '\\n' +\n indent + ' peers: ' + opts.stylize(this.peers.length, 'number') + '\\n' +\n indent + ')'\n}\n\n// TODO: instead of using a getter, update on remote-update/add/remove\nObject.defineProperty(Feed.prototype, 'remoteLength', {\n enumerable: true,\n get: function () {\n var len = 0\n for (var i = 0; i < this.peers.length; i++) {\n var remoteLength = this.peers[i].remoteLength\n if (remoteLength > len) len = remoteLength\n }\n return len\n }\n})\n\nObject.defineProperty(Feed.prototype, 'stats', {\n enumerable: true,\n get: function () {\n if (!this._stats) return null\n var peerStats = []\n for (var i = 0; i < this.peers.length; i++) {\n var peer = this.peers[i]\n peerStats[i] = peer.stats\n }\n return {\n peers: peerStats,\n totals: this._stats\n }\n }\n})\n\nFeed.prototype.replicate = function (initiator, opts) {\n if ((!this._selections.length || this._selections[0].end !== -1) && !this.sparse && !(opts && opts.live)) {\n // hack!! proper fix is to refactor ./replicate to *not* clear our non-sparse selection\n this.download({ start: 0, end: -1 })\n }\n\n if (isOptions(initiator) && !opts) {\n opts = initiator\n initiator = opts.initiator\n }\n\n opts = opts || {}\n opts.stats = !!this._stats\n opts.noise = !(opts.noise === false && opts.encrypted === false)\n\n return replicate(this, initiator, opts)\n}\n\nFeed.prototype.registerExtension = function (name, handlers) {\n return this.extensions.add(name, handlers)\n}\n\nFeed.prototype.onextensionupdate = function () {\n for (const peer of this.peers) peer._updateOptions()\n}\n\nFeed.prototype.setDownloading = function (downloading) {\n if (this.downloading === downloading && this._downloadingSet) return\n this.downloading = downloading\n this._downloadingSet = true\n this.ready((err) => {\n if (err) return\n for (const peer of this.peers) peer.setDownloading(this.downloading)\n })\n}\n\nFeed.prototype.setUploading = function (uploading) {\n if (uploading === this.uploading) return\n this.uploading = uploading\n this.ready((err) => {\n if (err) return\n for (const peer of this.peers) peer.setUploading(this.uploading)\n })\n}\n\n// Alias the nanoresource open method\nFeed.prototype.ready = Feed.prototype.open\n\nFeed.prototype.update = function (opts, cb) {\n if (typeof opts === 'function') return this.update(-1, opts)\n if (typeof opts === 'number') opts = { minLength: opts }\n if (!opts) opts = {}\n if (!cb) cb = noop\n\n var self = this\n var len = typeof opts.minLength === 'number' ? opts.minLength : -1\n\n this.ready(function (err) {\n if (err) return cb(err)\n if (len === -1) len = self.length + 1\n if (self.length >= len) return cb(null)\n\n const ifAvailable = typeof opts.ifAvailable === 'boolean'\n ? opts.ifAvailable\n : self._alwaysIfAvailable\n\n if (ifAvailable && self.writable && !opts.force) return cb(new Error('No update available from peers'))\n if (self.writable) cb = self._writeStateReloader(cb)\n\n var w = {\n hash: opts.hash !== false,\n bytes: 0,\n index: len - 1,\n options: opts,\n update: true,\n callback: cb\n }\n\n self._waiting.push(w)\n if (ifAvailable) self._ifAvailable(w, len)\n self._updatePeers()\n })\n}\n\n// Used to hint to the update guard if it can bail early\nFeed.prototype.setExpectedLength = function (len) {\n this._expectedLength = len\n this.ready((err) => {\n if (err) return\n\n this.ifAvailable.ready(() => {\n this._expectedLength = -1\n })\n\n if (this._expectedLength === -1 || this._expectedLength > this.length) return\n\n for (const w of this._waiting) {\n if (w.update && w.ifAvailable) w.callback(new Error('Expected length is less than current length'))\n }\n })\n}\n\n// Beware! This might break your core if you share forks with other people through replication\nFeed.prototype.truncate = function (newLength, cb) {\n if (!cb) cb = noop\n const self = this\n\n this.ready(function (err) {\n if (err) return cb(err)\n\n self._roots(newLength, function (err, roots) {\n if (err) return cb(err)\n\n const oldLength = self.length\n if (oldLength <= newLength) return cb(null)\n\n let byteLength = 0\n for (const { size } of roots) byteLength += size\n\n for (let i = oldLength; i < newLength; i++) self.data.set(i, false)\n self.byteLength = byteLength\n self.length = newLength\n self.tree.truncate(2 * newLength)\n self._merkle = new MerkleGenerator(crypto, roots)\n\n self._sync(null, function (err) {\n if (err) return cb(err)\n self._storage.deleteSignatures(newLength, oldLength, cb)\n })\n })\n })\n}\n\nFeed.prototype._ifAvailable = function (w, minLength) {\n var cb = w.callback\n var called = false\n var self = this\n\n w.callback = done\n w.ifAvailable = true\n\n if (this._expectedLength > -1 && this._expectedLength <= this.length) {\n return process.nextTick(w.callback, new Error('Expected length is less than current length'))\n }\n\n this.timeouts.update(function () {\n if (self.closed) return done(new Error('Closed'))\n\n process.nextTick(readyNT, self.ifAvailable, function () {\n if (self.closed) return done(new Error('Closed'))\n if (self.length >= minLength || self.remoteLength >= minLength) return\n done(new Error('No update available from peers'))\n })\n })\n\n function done (err) {\n if (called) return\n called = true\n\n var i = self._waiting.indexOf(w)\n if (i > -1) remove(self._waiting, i)\n cb(err)\n }\n}\n\nFeed.prototype._ifAvailableGet = function (w) {\n var cb = w.callback\n var called = false\n var self = this\n\n w.callback = done\n\n self.timeouts.get(function () {\n if (self.closed) return done(new Error('Closed'))\n\n process.nextTick(readyNT, self.ifAvailable, function () {\n if (self.closed) return done(new Error('Closed'))\n\n for (var i = 0; i < self.peers.length; i++) {\n var peer = self.peers[i]\n if (peer.remoteBitfield.get(w.index)) return\n }\n done(new Error('Block not available from peers'))\n })\n })\n\n function done (err, data) {\n if (called) return\n called = true\n\n var i = self._waiting.indexOf(w)\n if (i > -1) remove(self._waiting, i)\n cb(err, data)\n }\n}\n\n// will reload the writable state. used by .update on a writable peer\nFeed.prototype._writeStateReloader = function (cb) {\n var self = this\n return function (err) {\n if (err) return cb(err)\n self._reloadMerkleState(cb)\n }\n}\n\nFeed.prototype._reloadMerkleState = function (cb) {\n var self = this\n\n this._roots(self.length, function (err, roots) {\n if (err) return cb(err)\n self._merkle = new MerkleGenerator(crypto, roots)\n cb(null)\n })\n}\n\nFeed.prototype._reloadMerkleStateBeforeAppend = function (work, values, cb) {\n this._reloadMerkleState(function (err) {\n if (err) return cb(err)\n work(values, cb)\n })\n}\n\nFeed.prototype._open = function (cb) {\n var self = this\n var generatedKey = false\n var retryOpen = true\n\n // TODO: clean up the duplicate code below ...\n\n this._storage.openKey(function (_, key) {\n if (key && !self._overwrite && !self.key) self.key = key\n\n if (!self.key && self.live) {\n var keyPair = crypto.keyPair()\n self.secretKey = keyPair.secretKey\n self.key = keyPair.publicKey\n generatedKey = true\n }\n\n self.discoveryKey = self.key && crypto.discoveryKey(self.key)\n self._storage.open({ key: self.key, discoveryKey: self.discoveryKey }, onopen)\n })\n\n function onopen (err, state) {\n if (err) return cb(err)\n\n // if no key but we have data do a bitfield reset since we cannot verify the data.\n if (!state.key && state.bitfield.length) {\n self._overwrite = true\n }\n\n if (self._force && state.key && self.key && Buffer.compare(state.key, self.key) !== 0) {\n self._overwrite = true\n }\n\n if (self._overwrite) {\n state.bitfield = []\n state.key = state.secretKey = null\n }\n\n self.bitfield = bitfield(state.bitfieldPageSize, state.bitfield)\n self.tree = treeIndex(self.bitfield.tree)\n self.length = self.tree.blocks()\n self._seq = self.length\n\n if (state.key && self.key && Buffer.compare(state.key, self.key) !== 0) {\n return self._forceClose(cb, new Error('Another hypercore is stored here'))\n }\n\n if (state.key) self.key = state.key\n if (state.secretKey) self.secretKey = state.secretKey\n\n if (!self.length) return onsignature(null, null)\n self._storage.getSignature(self.length - 1, onsignature)\n\n function onsignature (_, sig) {\n if (self.length) self.live = !!sig\n\n if ((generatedKey || !self.key) && !self._createIfMissing) {\n return self._forceClose(cb, new Error('No hypercore is stored here'))\n }\n\n if (!self.key && self.live) {\n var keyPair = crypto.keyPair()\n self.secretKey = keyPair.secretKey\n self.key = keyPair.publicKey\n }\n\n var writable = !!self.secretKey || self.key === null\n\n if (!writable && self.writable) return self._forceClose(cb, new Error('Feed is not writable'))\n self.writable = writable\n if (!self._downloadingSet) self.downloading = !writable\n self.discoveryKey = self.key && crypto.discoveryKey(self.key)\n\n if (self._storeSecretKey && !self.secretKey) {\n self._storeSecretKey = false\n }\n\n var shouldWriteKey = generatedKey || !safeBufferEquals(self.key, state.key)\n var shouldWriteSecretKey = self._storeSecretKey && (generatedKey || !safeBufferEquals(self.secretKey, state.secretKey))\n\n var missing = 1 +\n (shouldWriteKey ? 1 : 0) +\n (shouldWriteSecretKey ? 1 : 0) +\n (self._overwrite ? 1 : 0)\n var error = null\n\n if (shouldWriteKey) self._storage.key.write(0, self.key, done)\n if (shouldWriteSecretKey) self._storage.secretKey.write(0, self.secretKey, done)\n\n if (self._overwrite) {\n self._storage.bitfield.del(32, Infinity, done)\n }\n\n done(null)\n\n function done (err) {\n if (err) error = err\n if (--missing) return\n if (error) return self._forceClose(cb, error)\n self._roots(self.length, onroots)\n }\n\n function onroots (err, roots) {\n if (err && retryOpen) {\n retryOpen = false\n self.length--\n self._storage.getSignature(self.length - 1, onsignature)\n return\n }\n\n if (err) return self._forceClose(cb, err)\n\n self._merkle = new MerkleGenerator(crypto, roots)\n self.byteLength = roots.reduce(addSize, 0)\n self.emit('ready')\n\n cb(null)\n }\n }\n }\n}\n\nFeed.prototype.download = function (range, cb) {\n if (typeof range === 'function') return this.download(null, range)\n if (typeof range === 'number') range = { start: range, end: range + 1 }\n if (Array.isArray(range)) range = { blocks: range }\n if (!range) range = {}\n if (!cb) cb = noop\n if (!this.readable) return cb(new Error('Feed is closed'))\n\n // TODO: if no peers, check if range is already satisfied and nextTick(cb) if so\n // this._updatePeers does this for us when there is a peer though, so not critical\n\n // We need range.start, end for the want messages so make sure to infer these\n // when blocks are passed and start,end is not set\n if (range.blocks && typeof range.start !== 'number') {\n var min = -1\n var max = 0\n\n for (var i = 0; i < range.blocks.length; i++) {\n const blk = range.blocks[i]\n if (min === -1 || blk < min) min = blk\n if (blk >= max) max = blk + 1\n }\n\n range.start = min === -1 ? 0 : min\n range.end = max\n }\n\n var sel = {\n _index: this._selections.length,\n hash: !!range.hash,\n iterator: null,\n start: range.start || 0,\n end: range.end || -1,\n want: 0,\n linear: !!range.linear,\n blocks: range.blocks || null,\n blocksDownloaded: 0,\n requested: 0,\n callback: cb\n }\n\n sel.want = toWantRange(sel.start)\n\n this._selections.push(sel)\n this._updatePeers()\n\n return sel\n}\n\nFeed.prototype.undownload = function (range) {\n if (typeof range === 'number') range = { start: range, end: range + 1 }\n if (!range) range = {}\n\n if (range.callback && range._index > -1) {\n set.remove(this._selections, range)\n process.nextTick(range.callback, createError('ECANCELED', -11, 'Download was cancelled'))\n return\n }\n\n var start = range.start || 0\n var end = range.end || -1\n var hash = !!range.hash\n var linear = !!range.linear\n\n for (var i = 0; i < this._selections.length; i++) {\n var s = this._selections[i]\n\n if (s.start === start && s.end === end && s.hash === hash && s.linear === linear) {\n set.remove(this._selections, s)\n process.nextTick(range.callback, createError('ECANCELED', -11, 'Download was cancelled'))\n return\n }\n }\n}\n\nFeed.prototype.digest = function (index) {\n return this.tree.digest(2 * index)\n}\n\nFeed.prototype.proof = function (index, opts, cb) {\n if (typeof opts === 'function') return this.proof(index, null, opts)\n if (!this.opened) return this._readyAndProof(index, opts, cb)\n if (!opts) opts = {}\n\n var proof = this.tree.proof(2 * index, opts)\n if (!proof) return cb(new Error('No proof available for this index'))\n\n var needsSig = this.live && !!proof.verifiedBy\n var pending = proof.nodes.length + (needsSig ? 1 : 0)\n var error = null\n var signature = null\n var nodes = new Array(proof.nodes.length)\n\n if (!pending) return cb(null, { nodes: nodes, signature: null })\n\n for (var i = 0; i < proof.nodes.length; i++) {\n this._storage.getNode(proof.nodes[i], onnode)\n }\n if (needsSig) {\n this._storage.getSignature(proof.verifiedBy / 2 - 1, onsignature)\n }\n\n function onsignature (err, sig) {\n if (sig) signature = sig\n onnode(err, null)\n }\n\n function onnode (err, node) {\n if (err) error = err\n\n if (node) {\n nodes[proof.nodes.indexOf(node.index)] = node\n }\n\n if (--pending) return\n if (error) return cb(error)\n cb(null, { nodes: nodes, signature: signature })\n }\n}\n\nFeed.prototype._readyAndProof = function (index, opts, cb) {\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n self.proof(index, opts, cb)\n })\n}\n\nFeed.prototype.put = function (index, data, proof, cb) {\n if (!this.opened) return this._readyAndPut(index, data, proof, cb)\n this._putBuffer(index, data === null ? null : this._codec.encode(data), proof, null, cb)\n}\n\nFeed.prototype.cancel = function (start, end) { // TODO: use same argument scheme as download\n if (typeof start !== 'symbol') {\n if (!end) end = start + 1\n\n // cancel these right away as .download does not wait for ready\n for (var i = this._selections.length - 1; i >= 0; i--) {\n var sel = this._selections[i]\n if (start <= sel.start && sel.end <= end) {\n this.undownload(sel)\n }\n }\n }\n\n // defer the last part until after ready as .get does that as well\n if (this.opened) this._cancel(start, end)\n else this._readyAndCancel(start, end)\n}\n\nFeed.prototype._cancel = function (start, end) {\n var i = 0\n\n if (typeof start === 'symbol') {\n for (i = this._waiting.length - 1; i >= 0; i--) {\n const w = this._waiting[i]\n if (w.options.cancel === start) {\n remove(this._waiting, i)\n this._reserved.set(w.index, false)\n if (w.callback) process.nextTick(w.callback, new Error('Request cancelled'))\n this._updatePeers()\n return\n }\n }\n return\n }\n\n for (i = start; i < end; i++) {\n this._reserved.set(i, false) // TODO: send cancel message if set returns true\n }\n\n for (i = this._waiting.length - 1; i >= 0; i--) {\n var w = this._waiting[i]\n if ((start <= w.start && w.end <= end) || (start <= w.index && w.index < end)) {\n remove(this._waiting, i)\n if (w.callback) process.nextTick(w.callback, new Error('Request cancelled'))\n }\n }\n}\n\nFeed.prototype.clear = function (start, end, opts, cb) { // TODO: use same argument scheme as download\n if (typeof end === 'function') return this.clear(start, start + 1, null, end)\n if (typeof opts === 'function') return this.clear(start, end, null, opts)\n if (!opts) opts = {}\n if (!end) end = start + 1\n if (!cb) cb = noop\n\n // TODO: this needs some work. fx we can only calc byte offset for blocks we know about\n // so internally we should make sure to only do that. We should use the merkle tree for this\n\n var self = this\n var byteOffset = start === 0 ? 0 : (typeof opts.byteOffset === 'number' ? opts.byteOffset : -1)\n var byteLength = typeof opts.byteLength === 'number' ? opts.byteLength : -1\n\n this.ready(function (err) {\n if (err) return cb(err)\n\n var modified = false\n\n // TODO: use a buffer.fill thing here to speed this up!\n\n for (var i = start; i < end; i++) {\n if (self.bitfield.set(i, false)) modified = true\n }\n\n if (!modified) return process.nextTick(cb)\n\n // TODO: write to a tmp/update file that we want to del this incase it crashes will del'ing\n\n self._unannounce({ start: start, length: end - start })\n if (opts.delete === false || self._indexing) return sync()\n if (byteOffset > -1) return onstartbytes(null, byteOffset)\n self._storage.dataOffset(start, [], onstartbytes)\n\n function sync () {\n self.emit('clear', start, end)\n self._sync(null, cb)\n }\n\n function onstartbytes (err, offset) {\n if (err) return cb(err)\n byteOffset = offset\n if (byteLength > -1) return onendbytes(null, byteLength + byteOffset)\n if (end === self.length) return onendbytes(null, self.byteLength)\n self._storage.dataOffset(end, [], onendbytes)\n }\n\n function onendbytes (err, end) {\n if (err) return cb(err)\n if (!self._storage.data.del) return sync() // Not all data storage impls del\n self._storage.data.del(byteOffset, end - byteOffset, sync)\n }\n })\n}\n\nFeed.prototype.signature = function (index, cb) {\n if (typeof index === 'function') return this.signature(this.length - 1, index)\n\n if (index < 0 || index >= this.length) return cb(new Error('No signature available for this index'))\n\n this._storage.nextSignature(index, cb)\n}\n\nFeed.prototype.verify = function (index, signature, cb) {\n var self = this\n\n this.rootHashes(index, function (err, roots) {\n if (err) return cb(err)\n\n var checksum = crypto.signable(roots, index + 1)\n\n verifyCompat(self, checksum, signature, function (err, valid) {\n if (err) return cb(err)\n\n if (!valid) return cb(new Error('Signature verification failed'))\n\n return cb(null, true)\n })\n })\n}\n\nFeed.prototype.rootHashes = function (index, cb) {\n this._getRootsToVerify(index * 2 + 2, {}, [], cb)\n}\n\nFeed.prototype.seek = function (bytes, opts, cb) {\n if (typeof opts === 'function') return this.seek(bytes, null, opts)\n if (!opts) opts = {}\n if (!this.opened) return this._readyAndSeek(bytes, opts, cb)\n\n var self = this\n\n if (bytes === this.byteLength) return process.nextTick(cb, null, this.length, 0)\n\n this._seek(bytes, function (err, index, offset) {\n if (!err && isBlock(index)) return done(index / 2, offset)\n if (opts.wait === false) return cb(err || new Error('Unable to seek to this offset'))\n\n var start = opts.start || 0\n var end = opts.end || -1\n\n if (!err) {\n var left = flat.leftSpan(index) / 2\n var right = flat.rightSpan(index) / 2 + 1\n\n if (left > start) start = left\n if (right < end || end === -1) end = right\n }\n\n if (end > -1 && end <= start) return cb(new Error('Unable to seek to this offset'))\n\n var w = {\n hash: opts.hash !== false,\n bytes: bytes,\n index: -1,\n ifAvailable: opts && typeof opts.ifAvailable === 'boolean' ? opts.ifAvailable : self._alwaysIfAvailable,\n start: start,\n end: end,\n want: toWantRange(start),\n requested: 0,\n callback: cb || noop\n }\n\n self._waiting.push(w)\n self._updatePeers()\n if (w.ifAvailable) self._ifAvailableSeek(w)\n })\n\n function done (index, offset) {\n for (var i = 0; i < self.peers.length; i++) {\n self.peers[i].haveBytes(bytes)\n }\n cb(null, index, offset)\n }\n}\n\nFeed.prototype._ifAvailableSeek = function (w) {\n var self = this\n var cb = w.callback\n\n self.timeouts.get(function () {\n if (self.closed) return done(new Error('Closed'))\n\n process.nextTick(readyNT, self.ifAvailable, function () {\n if (self.closed) return done(new Error('Closed'))\n\n let available = false\n for (const peer of self.peers) {\n const ite = peer._iterator\n let i = ite.seek(w.start).next(true)\n while (self.tree.get(i * 2) && i > -1) i = ite.next(true)\n if (i > -1 && (w.end === -1 || i < w.end)) {\n available = true\n break\n }\n }\n\n if (!available) done(new Error('Seek not available from peers'))\n })\n })\n\n function done (err) {\n var i = self._waiting.indexOf(w)\n if (i > -1) {\n remove(self._waiting, i)\n w.callback = noop\n cb(err)\n }\n }\n}\n\nFeed.prototype._seek = function (offset, cb) {\n if (offset === 0) return cb(null, 0, 0)\n\n var self = this\n var roots = flat.fullRoots(this.length * 2)\n var nearestRoot = 0\n\n loop(null, null)\n\n function onroot (top) {\n if (isBlock(top)) return cb(null, nearestRoot, offset)\n\n var left = flat.leftChild(top)\n while (!self.tree.get(left)) {\n if (isBlock(left)) return cb(null, nearestRoot, offset)\n left = flat.leftChild(left)\n }\n\n self._storage.getNode(left, onleftchild)\n }\n\n function onleftchild (err, node) {\n if (err) return cb(err)\n\n if (node.size > offset) {\n nearestRoot = node.index\n onroot(node.index)\n } else {\n offset -= node.size\n if (flat.parent(node.index) === nearestRoot) {\n nearestRoot = flat.sibling(node.index)\n onroot(nearestRoot)\n } else {\n onroot(flat.sibling(node.index))\n }\n }\n }\n\n function loop (err, node) {\n if (err) return cb(err)\n\n if (node) {\n if (node.size > offset) {\n nearestRoot = node.index\n return onroot(node.index)\n }\n offset -= node.size\n }\n\n if (!roots.length) return cb(new Error('Out of bounds'))\n self._storage.getNode(roots.shift(), loop)\n }\n}\n\nFeed.prototype._readyAndSeek = function (bytes, opts, cb) {\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n self.seek(bytes, opts, cb)\n })\n}\n\nFeed.prototype._getBuffer = function (index, cb) {\n this._storage.getData(index, cb)\n}\n\nFeed.prototype._putBuffer = function (index, data, proof, from, cb) {\n // TODO: this nodes in proof are not instances of our Node prototype\n // but just similar. Check if this has any v8 perf implications.\n\n // TODO: if the proof contains a valid signature BUT fails, emit a critical error\n // --> feed should be considered dead\n\n var self = this\n var trusted = -1\n var missing = []\n var next = 2 * index\n var i = data ? 0 : 1\n\n while (true) {\n if (this.tree.get(next)) {\n trusted = next\n break\n }\n\n var sib = flat.sibling(next)\n next = flat.parent(next)\n\n if (i < proof.nodes.length && proof.nodes[i].index === sib) {\n i++\n continue\n }\n\n if (!this.tree.get(sib)) break\n missing.push(sib)\n }\n\n if (trusted === -1 && this.tree.get(next)) trusted = next\n\n var error = null\n var trustedNode = null\n var missingNodes = new Array(missing.length)\n var pending = missing.length + (trusted > -1 ? 1 : 0)\n\n for (i = 0; i < missing.length; i++) this._storage.getNode(missing[i], onmissing)\n if (trusted > -1) this._storage.getNode(trusted, ontrusted)\n if (!missing.length && trusted === -1) onmissingloaded(null)\n\n function ontrusted (err, node) {\n if (err) error = err\n if (node) trustedNode = node\n if (!--pending) onmissingloaded(error)\n }\n\n function onmissing (err, node) {\n if (err) error = err\n if (node) missingNodes[missing.indexOf(node.index)] = node\n if (!--pending) onmissingloaded(error)\n }\n\n function onmissingloaded (err) {\n if (err) return cb(err)\n self._verifyAndWrite(index, data, proof, missingNodes, trustedNode, from, cb)\n }\n}\n\nFeed.prototype._readyAndPut = function (index, data, proof, cb) {\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n self.put(index, data, proof, cb)\n })\n}\n\nFeed.prototype._write = function (index, data, nodes, sig, from, cb) {\n if (!this._onwrite) return this._writeAfterHook(index, data, nodes, sig, from, cb)\n this._onwrite(index, data, from, writeHookDone(this, index, data, nodes, sig, from, cb))\n}\n\nfunction writeHookDone (self, index, data, nodes, sig, from, cb) {\n return function (err) {\n if (err) return cb(err)\n self._writeAfterHook(index, data, nodes, sig, from, cb)\n }\n}\n\nFeed.prototype._writeAfterHook = function (index, data, nodes, sig, from, cb) {\n var self = this\n var pending = nodes.length + 1 + (sig ? 1 : 0)\n var error = null\n\n for (var i = 0; i < nodes.length; i++) this._storage.putNode(nodes[i].index, nodes[i], ondone)\n if (data) this._storage.putData(index, data, nodes, ondone)\n else ondone()\n if (sig) this._storage.putSignature(sig.index, sig.signature, ondone)\n\n function ondone (err) {\n if (err) error = err\n if (--pending) return\n if (error) return cb(error)\n self._writeDone(index, data, nodes, from, cb)\n }\n}\n\nFeed.prototype._writeDone = function (index, data, nodes, from, cb) {\n for (var i = 0; i < nodes.length; i++) this.tree.set(nodes[i].index)\n this.tree.set(2 * index)\n\n if (data) {\n if (this.bitfield.set(index, true)) {\n if (this._stats) {\n this._stats.downloadedBlocks += 1\n this._stats.downloadedBytes += data.length\n }\n this.emit('download', index, data, from)\n }\n if (this.peers.length) this._announce({ start: index }, from)\n\n if (!this.writable) {\n if (!this._synced) this._synced = this.bitfield.iterator(0, this.length)\n if (this._synced.next() === -1) {\n this._synced.range(0, this.length)\n this._synced.seek(0)\n if (this._synced.next() === -1) {\n this.emit('sync')\n }\n }\n }\n }\n\n this._sync(null, cb)\n}\n\nFeed.prototype._verifyAndWrite = function (index, data, proof, localNodes, trustedNode, from, cb) {\n var visited = []\n var remoteNodes = proof.nodes\n var top = data ? new storage.Node(2 * index, crypto.data(data), data.length) : remoteNodes.shift()\n\n // check if we already have the hash for this node\n if (verifyNode(trustedNode, top)) {\n this._write(index, data, visited, null, from, cb)\n return\n }\n\n // keep hashing with siblings until we reach or trusted node\n while (true) {\n var node = null\n var next = flat.sibling(top.index)\n\n if (remoteNodes.length && remoteNodes[0].index === next) {\n node = remoteNodes.shift()\n visited.push(node)\n } else if (localNodes.length && localNodes[0].index === next) {\n node = localNodes.shift()\n } else {\n // we cannot create another parent, i.e. these nodes must be roots in the tree\n this._verifyRootsAndWrite(index, data, top, proof, visited, from, cb)\n return\n }\n\n visited.push(top)\n top = new storage.Node(flat.parent(top.index), crypto.parent(top, node), top.size + node.size)\n\n // the tree checks out, write the data and the visited nodes\n if (verifyNode(trustedNode, top)) {\n this._write(index, data, visited, null, from, cb)\n return\n }\n }\n}\n\nFeed.prototype._verifyRootsAndWrite = function (index, data, top, proof, nodes, from, cb) {\n var remoteNodes = proof.nodes\n var lastNode = remoteNodes.length ? remoteNodes[remoteNodes.length - 1].index : top.index\n var verifiedBy = Math.max(flat.rightSpan(top.index), flat.rightSpan(lastNode)) + 2\n var length = verifiedBy / 2\n var self = this\n\n this._getRootsToVerify(verifiedBy, top, remoteNodes, function (err, roots, extraNodes) {\n if (err) return cb(err)\n\n var checksum = crypto.signable(roots, length)\n var signature = null\n\n if (self.length && self.live && !proof.signature) {\n return cb(new Error('Remote did not include a signature'))\n }\n\n if (proof.signature) { // check signatures\n verifyCompat(self, checksum, proof.signature, function (err, valid) {\n if (err) return cb(err)\n if (!valid) return cb(new Error('Remote signature could not be verified'))\n\n signature = { index: verifiedBy / 2 - 1, signature: proof.signature }\n write()\n })\n } else { // check tree root\n if (Buffer.compare(checksum.slice(0, 32), self.key) !== 0) {\n return cb(new Error('Remote checksum failed'))\n }\n\n write()\n }\n\n function write () {\n self.live = !!signature\n\n if (length > self.length) {\n // TODO: only emit this after the info has been flushed to storage\n if (self.writable) self._merkle = null // We need to reload merkle state now\n self.length = length\n self._seq = length\n self.byteLength = roots.reduce(addSize, 0)\n if (self._synced) self._synced.seek(0, self.length)\n self.emit('append')\n }\n\n self._write(index, data, nodes.concat(extraNodes), signature, from, cb)\n }\n })\n}\n\nFeed.prototype._getRootsToVerify = function (verifiedBy, top, remoteNodes, cb) {\n var indexes = flat.fullRoots(verifiedBy)\n var roots = new Array(indexes.length)\n var nodes = []\n var error = null\n var pending = roots.length\n\n for (var i = 0; i < indexes.length; i++) {\n if (indexes[i] === top.index) {\n nodes.push(top)\n onnode(null, top)\n } else if (remoteNodes.length && indexes[i] === remoteNodes[0].index) {\n nodes.push(remoteNodes[0])\n onnode(null, remoteNodes.shift())\n } else if (this.tree.get(indexes[i])) {\n this._storage.getNode(indexes[i], onnode)\n } else {\n onnode(new Error('Missing tree roots needed for verify'))\n }\n }\n\n function onnode (err, node) {\n if (err) error = err\n if (node) roots[indexes.indexOf(node.index)] = node\n if (!--pending) done(error)\n }\n\n function done (err) {\n if (err) return cb(err)\n\n cb(null, roots, nodes)\n }\n}\n\nFeed.prototype._announce = function (message, from) {\n for (var i = 0; i < this.peers.length; i++) {\n var peer = this.peers[i]\n if (peer !== from) peer.have(message)\n }\n}\n\nFeed.prototype._unannounce = function (message) {\n for (var i = 0; i < this.peers.length; i++) this.peers[i].unhave(message)\n}\n\nFeed.prototype.downloaded = function (start, end, cb) {\n const count = this.bitfield.total(start, end)\n if (cb) process.nextTick(cb, null, count) // prepare async interface for this\n return count\n}\n\nFeed.prototype.has = function (start, end, cb) {\n if (typeof end === 'function') return this.has(start, undefined, end)\n if (end === undefined) {\n const res = this.bitfield.get(start)\n if (cb) process.nextTick(cb, null, res)\n return res\n }\n const total = end - start\n const res = total === this.bitfield.total(start, end)\n if (cb) process.nextTick(cb, null, res)\n return res\n}\n\nFeed.prototype.getBlockInfo = function (index, cb) {\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n self._storage.getNode(2 * index, cb)\n })\n}\n\nFeed.prototype.head = function (opts, cb) {\n if (typeof opts === 'function') return this.head({}, opts)\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n if (opts && opts.update) self.update(opts, onupdate)\n else process.nextTick(onupdate)\n })\n\n function onupdate () {\n if (self.length === 0) cb(new Error('feed is empty'))\n else self.get(self.length - 1, opts, cb)\n }\n}\n\nFeed.prototype.get = function (index, opts, cb) {\n if (typeof opts === 'function') return this.get(index, null, opts)\n\n opts = { ...opts }\n if (!opts.cancel) opts.cancel = Symbol('hypercore-get')\n\n if (!this.opened) return this._readyAndGet(index, opts, cb)\n\n if (!this.readable) {\n process.nextTick(cb, new Error('Feed is closed'))\n return opts.cancel\n }\n\n if (opts.timeout) cb = timeoutCallback(cb, opts.timeout)\n\n if (!this.bitfield.get(index)) {\n if (opts && opts.wait === false) return process.nextTick(cb, new Error('Block not downloaded'))\n\n var w = { bytes: 0, hash: false, index: index, options: opts, requested: 0, callback: cb }\n this._waiting.push(w)\n\n if (opts && typeof opts.ifAvailable === 'boolean' ? opts.ifAvailable : this._alwaysIfAvailable) this._ifAvailableGet(w)\n\n this._updatePeers()\n if (opts.onwait) {\n const onwait = opts.onwait\n opts.onwait = null\n onwait(index)\n }\n return opts.cancel\n }\n\n if (opts && opts.valueEncoding) cb = wrapCodec(toCodec(opts.valueEncoding), cb)\n else if (this._codec !== codecs.binary) cb = wrapCodec(this._codec, cb)\n\n this._getBuffer(index, cb)\n return opts.cancel\n}\n\nFeed.prototype._readyAndGet = function (index, opts, cb) {\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n self.get(index, opts, cb)\n })\n return opts.cancel\n}\n\nFeed.prototype.getBatch = function (start, end, opts, cb) {\n if (typeof opts === 'function') return this.getBatch(start, end, null, opts)\n if (!this.opened) return this._readyAndGetBatch(start, end, opts, cb)\n\n var self = this\n var wait = !opts || opts.wait !== false\n\n if (this.has(start, end)) return this._getBatch(start, end, opts, cb)\n if (!wait) return process.nextTick(cb, new Error('Block not downloaded'))\n\n if (opts && opts.timeout) cb = timeoutCallback(cb, opts.timeout)\n\n this.download({ start: start, end: end }, function (err) {\n if (err) return cb(err)\n self._getBatch(start, end, opts, cb)\n })\n}\n\nFeed.prototype._getBatch = function (start, end, opts, cb) {\n var enc = opts && opts.valueEncoding\n var codec = enc ? toCodec(enc) : this._codec\n\n this._storage.getDataBatch(start, end - start, onbatch)\n\n function onbatch (err, buffers) {\n if (err) return cb(err)\n\n var batch = new Array(buffers.length)\n\n for (var i = 0; i < buffers.length; i++) {\n try {\n batch[i] = codec ? codec.decode(buffers[i]) : buffers[i]\n } catch (err) {\n return cb(err)\n }\n }\n\n cb(null, batch)\n }\n}\n\nFeed.prototype._readyAndGetBatch = function (start, end, opts, cb) {\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n self.getBatch(start, end, opts, cb)\n })\n}\n\nFeed.prototype._updatePeers = function () {\n for (var i = 0; i < this.peers.length; i++) this.peers[i].update()\n}\n\nFeed.prototype.createWriteStream = function (opts) {\n return new WriteStream(this, opts)\n}\n\nFeed.prototype.createReadStream = function (opts) {\n return new ReadStream(this, opts)\n}\n\n// TODO: when calling finalize on a live feed write an END_OF_FEED block (length === 0?)\nFeed.prototype.finalize = function (cb) {\n if (!this.key) {\n this.key = crypto.tree(this._merkle.roots)\n this.discoveryKey = crypto.discoveryKey(this.key)\n }\n this._storage.key.write(0, this.key, cb)\n}\n\nFeed.prototype.append = function (batch, cb) {\n if (!cb) cb = noop\n\n var self = this\n var list = Array.isArray(batch) ? batch : [batch]\n this._batch(list, onappend)\n\n function onappend (err) {\n if (err) return cb(err)\n var seq = self._seq\n self._seq += list.length\n cb(null, seq)\n }\n}\n\nFeed.prototype.flush = function (cb) {\n this.append([], cb)\n}\n\nFeed.prototype.destroyStorage = function (cb) {\n const self = this\n\n this.close(function (err) {\n if (err) cb(err)\n else self._storage.destroy(cb)\n })\n}\n\nFeed.prototype._close = function (cb) {\n const self = this\n\n for (const peer of this.peers) {\n if (!peer._destroyed) peer._close()\n }\n\n this._forceClose(onclose, null)\n\n function onclose (err) {\n if (!err) self.emit('close')\n cb(err)\n }\n}\n\nFeed.prototype._forceClose = function (cb, error) {\n var self = this\n\n this.writable = false\n this.readable = false\n\n this._storage.close(function (err) {\n if (!err) err = error\n self._destroy(err || new Error('Feed is closed'))\n cb(err)\n })\n}\n\nFeed.prototype._destroy = function (err) {\n this.ifAvailable.destroy()\n\n while (this._waiting.length) {\n this._waiting.pop().callback(err)\n }\n while (this._selections.length) {\n this._selections.pop().callback(err)\n }\n}\n\nFeed.prototype._appendHook = function (batch, cb) {\n var self = this\n var missing = batch.length\n var error = null\n\n if (!missing) return this._append(batch, cb)\n for (var i = 0; i < batch.length; i++) {\n this._onwrite(i + this.length, batch[i], null, done)\n }\n\n function done (err) {\n if (err) error = err\n if (--missing) return\n if (error) return cb(error)\n self._append(batch, cb)\n }\n}\n\nFeed.prototype._append = function (batch, cb) {\n if (!this.opened) return this._readyAndAppend(batch, cb)\n if (!this.writable) return cb(new Error('This feed is not writable. Did you create it?'))\n\n var self = this\n var pending = 1\n var offset = 0\n var error = null\n var nodeBatch = new Array(batch.length ? batch.length * 2 - 1 : 0)\n var nodeOffset = this.length * 2\n var dataBatch = new Array(batch.length)\n\n if (!pending) return cb()\n\n for (var i = 0; i < batch.length; i++) {\n var data = this._codec.encode(batch[i])\n var nodes = this._merkle.next(data)\n\n // the replication stream rejects frames >8MB for DOS defense. Is configurable there, so\n // we could bubble that up here. For now just hardcode it so you can't accidentally \"brick\" your core\n // note: this is *only* for individual blocks and is just a sanity check. most blocks are <1MB\n if (data.length > 8388608) return cb(new Error('Individual blocks has be less than 8MB'))\n\n offset += data.length\n dataBatch[i] = data\n\n for (var j = 0; j < nodes.length; j++) {\n var node = nodes[j]\n if (node.index >= nodeOffset && node.index - nodeOffset < nodeBatch.length) {\n nodeBatch[node.index - nodeOffset] = node\n } else {\n pending++\n this._storage.putNode(node.index, node, done)\n }\n }\n }\n\n if (this.live && batch.length) {\n pending++\n this.crypto.sign(crypto.signable(this._merkle.roots, self.length + batch.length), this.secretKey, function (err, sig) {\n if (err) return done(err)\n self._storage.putSignature(self.length + batch.length - 1, sig, done)\n })\n }\n\n if (!this._indexing) {\n pending++\n if (dataBatch.length === 1) this._storage.data.write(this.byteLength, dataBatch[0], done)\n else this._storage.data.write(this.byteLength, Buffer.concat(dataBatch), done)\n }\n\n this._storage.putNodeBatch(nodeOffset, nodeBatch, done)\n\n function done (err) {\n if (err) error = err\n if (--pending) return\n if (error) return cb(error)\n\n var start = self.length\n\n // TODO: only emit append and update length / byteLength after the info has been flushed to storage\n self.byteLength += offset\n for (var i = 0; i < batch.length; i++) {\n self.bitfield.set(self.length, true)\n self.tree.set(2 * self.length++)\n }\n self.emit('append')\n\n var message = self.length - start > 1 ? { start: start, length: self.length - start } : { start: start }\n if (self.peers.length) self._announce(message)\n\n self._sync(null, cb)\n }\n}\n\nFeed.prototype._readyAndAppend = function (batch, cb) {\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n self._append(batch, cb)\n })\n}\n\nFeed.prototype._readyAndCancel = function (start, end) {\n var self = this\n this.ready(function () {\n self._cancel(start, end)\n })\n}\n\nFeed.prototype._pollWaiting = function () {\n var len = this._waiting.length\n\n for (var i = 0; i < len; i++) {\n var next = this._waiting[i]\n if (!next.bytes && !this.bitfield.get(next.index) && (!next.hash || !this.tree.get(next.index * 2))) {\n continue\n }\n\n remove(this._waiting, i--)\n len--\n\n if (next.bytes) this.seek(next.bytes, next, next.callback)\n else if (next.update) this.update(next.index + 1, next.callback)\n else this.get(next.index, next.options, next.callback)\n }\n}\n\nFeed.prototype._syncBitfield = function (cb) {\n var missing = this.bitfield.pages.updates.length\n var next = null\n var error = null\n\n // All data / nodes have been written now. We still need to update the bitfields though\n\n // TODO 1: if the program fails during this write the bitfield might not have been fully written\n // HOWEVER, we can easily recover from this by traversing the tree and checking if the nodes exists\n // on disk. So if a get fails, it should try and recover once.\n\n // TODO 2: if .writable append bitfield updates into a single buffer for extra perf\n // Added benefit is that if the program exits while flushing the bitfield the feed will only get\n // truncated and not have missing chunks which is what you expect.\n\n if (!missing) {\n this._pollWaiting()\n return cb(null)\n }\n\n while ((next = this.bitfield.pages.lastUpdate()) !== null) {\n this._storage.putBitfield(next.offset, next.buffer, ondone)\n }\n\n this._pollWaiting()\n\n function ondone (err) {\n if (err) error = err\n if (--missing) return\n cb(error)\n }\n}\n\nFeed.prototype._roots = function (index, cb) {\n var roots = flat.fullRoots(2 * index)\n var result = new Array(roots.length)\n var pending = roots.length\n var error = null\n\n if (!pending) return cb(null, result)\n\n for (var i = 0; i < roots.length; i++) {\n this._storage.getNode(roots[i], onnode)\n }\n\n function onnode (err, node) {\n if (err) error = err\n if (node) result[roots.indexOf(node.index)] = node\n if (--pending) return\n if (error) return cb(error)\n cb(null, result)\n }\n}\n\nFeed.prototype.audit = function (cb) {\n if (!cb) cb = noop\n\n var self = this\n var report = {\n valid: 0,\n invalid: 0\n }\n\n this.ready(function (err) {\n if (err) return cb(err)\n\n var block = 0\n var max = self.length\n\n next()\n\n function onnode (err, node) {\n if (err) return ondata(null, null)\n self._storage.getData(block, ondata)\n\n function ondata (_, data) {\n var verified = data && crypto.data(data).equals(node.hash)\n if (verified) report.valid++\n else report.invalid++\n self.bitfield.set(block, verified)\n block++\n next()\n }\n }\n\n function next () {\n while (block < max && !self.bitfield.get(block)) block++\n if (block >= max) return done()\n self._storage.getNode(2 * block, onnode)\n }\n\n function done () {\n self._sync(null, function (err) {\n if (err) return cb(err)\n cb(null, report)\n })\n }\n })\n}\n\nFeed.prototype.extension = function (name, message) {\n var peers = this.peers\n\n for (var i = 0; i < peers.length; i++) {\n peers[i].extension(name, message)\n }\n}\n\nfunction noop () {}\n\nfunction verifyNode (trusted, node) {\n return trusted && trusted.index === node.index && Buffer.compare(trusted.hash, node.hash) === 0\n}\n\nfunction addSize (size, node) {\n return size + node.size\n}\n\nfunction isBlock (index) {\n return (index & 1) === 0\n}\n\nfunction toCodec (enc) {\n // Switch to ndjson encoding if JSON is used. That way data files parse like ndjson \\o/\n return codecs(enc === 'json' ? 'ndjson' : enc)\n}\n\nfunction wrapCodec (enc, cb) {\n return function (err, buf) {\n if (err) return cb(err)\n try {\n buf = enc.decode(buf)\n } catch (err) {\n return cb(err)\n }\n cb(null, buf)\n }\n}\n\nfunction timeoutCallback (cb, timeout) {\n var failed = false\n var id = setTimeout(ontimeout, timeout)\n return done\n\n function ontimeout () {\n failed = true\n // TODO: make libs/errors for all this stuff\n var err = new Error('ETIMEDOUT')\n err.code = 'ETIMEDOUT'\n cb(err)\n }\n\n function done (err, val) {\n if (failed) return\n clearTimeout(id)\n cb(err, val)\n }\n}\n\nfunction toWantRange (i) {\n return Math.floor(i / 1024 / 1024) * 1024 * 1024\n}\n\nfunction createError (code, errno, msg) {\n var err = new Error(msg)\n err.code = code\n err.errno = errno\n return err\n}\n\nfunction defaultStorageDir (directory) {\n return function (name) {\n return defaultStorage(name, { directory })\n }\n}\n\nfunction isOptions (initiator) {\n return !Protocol.isProtocolStream(initiator) &&\n typeof initiator === 'object' &&\n !!initiator &&\n typeof initiator.initiator === 'boolean'\n}\n\nfunction readyNT (ifAvailable, fn) {\n ifAvailable.ready(fn)\n}\n\nfunction verifyCompat (self, checksum, signature, cb) {\n self.crypto.verify(checksum, signature, self.key, function (err, valid) {\n if (err || valid) return cb(err, valid)\n // compat mode, will be removed in a later version\n self.crypto.verify(checksum.slice(0, 32), signature, self.key, cb)\n })\n}\n", "export * from 'hypercore';\nexport { default } from 'hypercore';\n"],
5
- "mappings": ";;;;;;;;;;;AAAA;AAAA;AAAA,WAAO,UAAU,SAAU,MAAM;AAC/B,UAAI,UAAU;AACd,UAAI,WAAW;AACf,UAAI,YAAY;AAChB,UAAI,OAAO;AAEX,aAAO,SAAU,KAAK,IAAI;AACxB,eAAO;AACP,eAAO,MAAM,IAAI;AAAA,MACnB;AAEA,eAAS,OAAQ,IAAI;AACnB,YAAI,UAAU;AACZ,cAAI,CAAC,QAAS,WAAU,CAAC;AACzB,kBAAQ,KAAK,EAAE;AACf;AAAA,QACF;AAEA,YAAI,MAAM;AACV,eAAO;AACP,mBAAW;AACX,aAAK,KAAK,IAAI;AAAA,MAChB;AAEA,eAAS,KAAM,KAAK;AAClB,YAAI,KAAK;AACT,YAAI,MAAM;AACV,oBAAY;AACZ,mBAAW;AAEX,YAAI,SAAS;AACX,sBAAY;AACZ,oBAAU;AACV,iBAAO,IAAI;AAAA,QACb;AAEA,YAAI,KAAK;AACP,mBAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,IAAK,KAAI,CAAC,EAAE,GAAG;AAAA,QACjD;AACA,WAAG,GAAG;AAAA,MACR;AAAA,IACF;AAEA,aAAS,KAAM,GAAG;AAAA,IAAC;AAAA;AAAA;;;AC3CnB;AAAA;AAAA,WAAO,UAAU;AAEjB,aAAS,OAAQ,KAAK,GAAG;AACvB,UAAI,KAAK,IAAI,UAAU,IAAI,EAAG;AAC9B,UAAI,OAAO,IAAI,IAAI;AACnB,UAAI,IAAI,IAAI,QAAQ;AAClB,YAAI,MAAM,IAAI,CAAC;AACf,YAAI,CAAC,IAAI;AACT,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA;AAAA;;;ACXA;AAAA;AAAA,YAAQ,MAAM;AACd,YAAQ,MAAM;AACd,YAAQ,SAAS;AACjB,YAAQ,OAAO;AAEf,aAAS,IAAK,MAAM,MAAM;AACxB,UAAI,IAAI,MAAM,IAAI,EAAG,QAAO;AAC5B,WAAK,SAAS,KAAK;AACnB,WAAK,KAAK,IAAI;AACd,aAAO;AAAA,IACT;AAEA,aAAS,IAAK,MAAM,MAAM;AACxB,aAAO,KAAK,SAAS,KAAK,UAAU,KAAK,KAAK,MAAM,MAAM;AAAA,IAC5D;AAEA,aAAS,OAAQ,MAAM,MAAM;AAC3B,UAAI,CAAC,IAAI,MAAM,IAAI,EAAG,QAAO;AAE7B,UAAI,OAAO,KAAK,IAAI;AACpB,UAAI,SAAS,MAAM;AACjB,aAAK,KAAK,MAAM,IAAI;AACpB,aAAK,SAAS,KAAK;AAAA,MACrB;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,KAAM,MAAM,GAAG,GAAG;AACzB,UAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,EAAG;AACpC,UAAI,MAAM,EAAE;AACZ,QAAE,SAAS,EAAE;AACb,WAAK,EAAE,MAAM,IAAI;AACjB,QAAE,SAAS;AACX,WAAK,EAAE,MAAM,IAAI;AAAA,IACnB;AAAA;AAAA;;;ACnCA;AAAA;AAAA,YAAQ,YAAY,SAAU,OAAO,QAAQ;AAC3C,UAAI,QAAQ,EAAG,OAAM,IAAI,MAAM,gDAAgD;AAC/E,UAAI,CAAC,OAAQ,UAAS,CAAC;AAEvB,eAAS;AAET,UAAI,SAAS;AACb,UAAI,SAAS;AAEb,aAAO,MAAM;AACX,YAAI,CAAC,MAAO,QAAO;AACnB,eAAO,SAAS,KAAK,MAAO,WAAU;AACtC,eAAO,KAAK,SAAS,SAAS,CAAC;AAC/B,iBAAS,SAAS,IAAI;AACtB,iBAAS;AACT,iBAAS;AAAA,MACX;AAAA,IACF;AAEA,YAAQ,QAAQ,SAAU,OAAO;AAC/B,UAAI,QAAQ;AAEZ,eAAS;AACT,aAAO,EAAE,QAAQ,IAAI;AACnB;AACA,gBAAQ,WAAW,KAAK;AAAA,MAC1B;AAEA,aAAO;AAAA,IACT;AAEA,YAAQ,UAAU,SAAU,OAAO,OAAO;AACxC,UAAI,CAAC,MAAO,SAAQ,QAAQ,MAAM,KAAK;AACvC,UAAI,SAAS,QAAQ,OAAO,OAAO,KAAK;AAExC,aAAO,QAAQ,MAAM,OAAO,SAAS,IAAI,SAAS,IAAI,SAAS,CAAC;AAAA,IAClE;AAEA,YAAQ,SAAS,SAAU,OAAO,OAAO;AACvC,UAAI,CAAC,MAAO,SAAQ,QAAQ,MAAM,KAAK;AACvC,UAAI,SAAS,QAAQ,OAAO,OAAO,KAAK;AAExC,aAAO,QAAQ,MAAM,QAAQ,GAAG,WAAW,MAAM,CAAC;AAAA,IACpD;AAEA,YAAQ,YAAY,SAAU,OAAO,OAAO;AAC1C,UAAI,EAAE,QAAQ,GAAI,QAAO;AACzB,UAAI,CAAC,MAAO,SAAQ,QAAQ,MAAM,KAAK;AACvC,aAAO,QAAQ,MAAM,QAAQ,GAAG,QAAQ,OAAO,OAAO,KAAK,IAAI,CAAC;AAAA,IAClE;AAEA,YAAQ,aAAa,SAAU,OAAO,OAAO;AAC3C,UAAI,EAAE,QAAQ,GAAI,QAAO;AACzB,UAAI,CAAC,MAAO,SAAQ,QAAQ,MAAM,KAAK;AACvC,aAAO,QAAQ,MAAM,QAAQ,GAAG,IAAK,QAAQ,OAAO,OAAO,KAAK,IAAI,CAAE;AAAA,IACxE;AAEA,YAAQ,WAAW,SAAU,OAAO,OAAO;AACzC,UAAI,EAAE,QAAQ,GAAI,QAAO;AAEzB,UAAI,CAAC,MAAO,SAAQ,QAAQ,MAAM,KAAK;AACvC,UAAI,SAAS,QAAQ,OAAO,OAAO,KAAK,IAAI;AAE5C,aAAO;AAAA,QACL,QAAQ,MAAM,QAAQ,GAAG,MAAM;AAAA,QAC/B,QAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC;AAAA,MACrC;AAAA,IACF;AAEA,YAAQ,WAAW,SAAU,OAAO,OAAO;AACzC,UAAI,EAAE,QAAQ,GAAI,QAAO;AACzB,UAAI,CAAC,MAAO,SAAQ,QAAQ,MAAM,KAAK;AACvC,aAAO,QAAQ,OAAO,OAAO,KAAK,IAAI,OAAO,QAAQ,CAAC;AAAA,IACxD;AAEA,YAAQ,YAAY,SAAU,OAAO,OAAO;AAC1C,UAAI,EAAE,QAAQ,GAAI,QAAO;AACzB,UAAI,CAAC,MAAO,SAAQ,QAAQ,MAAM,KAAK;AACvC,cAAQ,QAAQ,OAAO,OAAO,KAAK,IAAI,KAAK,OAAO,QAAQ,CAAC,IAAI;AAAA,IAClE;AAEA,YAAQ,QAAQ,SAAU,OAAO,OAAO;AACtC,UAAI,EAAE,QAAQ,GAAI,QAAO;AACzB,UAAI,CAAC,MAAO,SAAQ,QAAQ,MAAM,KAAK;AACvC,aAAO,OAAO,QAAQ,CAAC,IAAI;AAAA,IAC7B;AAEA,YAAQ,cAAc,SAAU,OAAO;AACrC,cAAQ,QAAQ,MAAM,KAAK,IAAI,KAAK;AAAA,IACtC;AAEA,YAAQ,QAAQ,SAAU,OAAO,OAAO;AACtC,UAAI,EAAE,QAAQ,GAAI,QAAO,CAAC,OAAO,KAAK;AACtC,UAAI,CAAC,MAAO,SAAQ,QAAQ,MAAM,KAAK;AAEvC,UAAI,SAAS,QAAQ,OAAO,OAAO,KAAK;AACxC,UAAI,QAAQ,OAAO,QAAQ,CAAC;AAE5B,aAAO,CAAC,SAAS,QAAQ,SAAS,KAAK,QAAQ,CAAC;AAAA,IAClD;AAEA,YAAQ,QAAQ,SAAU,OAAO,QAAQ;AACvC,cAAQ,IAAI,IAAI,UAAU,OAAO,KAAK,IAAI;AAAA,IAC5C;AAEA,YAAQ,SAAS,SAAU,OAAO,OAAO;AACvC,UAAI,EAAE,QAAQ,GAAI,QAAO,QAAQ;AACjC,UAAI,CAAC,MAAO,SAAQ,QAAQ,MAAM,KAAK;AAEvC,eAAS,QAAQ,KAAK,OAAO,KAAK,IAAI,KAAK;AAAA,IAC7C;AAEA,YAAQ,WAAW,SAAU,OAAO;AAClC,UAAI,MAAM,IAAI,SAAS;AACvB,UAAI,KAAK,SAAS,CAAC;AACnB,aAAO;AAAA,IACT;AAEA,aAAS,OAAQ,GAAG;AAClB,aAAO,IAAI,KAAK,KAAK,KAAM,KAAK,OAAO,KAAM,IAAI;AAAA,IACnD;AAEA,aAAS,WAAY,GAAG;AACtB,cAAQ,KAAK,IAAI,MAAM;AAAA,IACzB;AAEA,aAAS,WAAY;AACnB,WAAK,QAAQ;AACb,WAAK,SAAS;AACd,WAAK,SAAS;AAAA,IAChB;AAEA,aAAS,UAAU,OAAO,SAAU,OAAO;AACzC,WAAK,QAAQ;AACb,UAAI,KAAK,QAAQ,GAAG;AAClB,aAAK,SAAS,QAAQ,OAAO,KAAK;AAClC,aAAK,SAAS,OAAO,QAAQ,MAAM,KAAK,IAAI,CAAC;AAAA,MAC/C,OAAO;AACL,aAAK,SAAS,QAAQ;AACtB,aAAK,SAAS;AAAA,MAChB;AAAA,IACF;AAEA,aAAS,UAAU,SAAS,WAAY;AACtC,cAAQ,KAAK,SAAS,OAAO;AAAA,IAC/B;AAEA,aAAS,UAAU,UAAU,WAAY;AACvC,cAAQ,KAAK,SAAS,OAAO;AAAA,IAC/B;AAEA,aAAS,UAAU,WAAW,SAAU,OAAO;AAC7C,aAAO,QAAQ,KAAK,QAChB,QAAS,KAAK,QAAQ,KAAK,SAAS,IACpC,QAAQ,KAAK,QACX,QAAS,KAAK,QAAQ,KAAK,SAAS,IACpC;AAAA,IACR;AAEA,aAAS,UAAU,OAAO,WAAY;AACpC,UAAI,CAAC,KAAK,OAAQ,QAAO,KAAK;AAC9B,WAAK;AACL,WAAK,SAAS,KAAK;AACnB,aAAO,KAAK;AAAA,IACd;AAEA,aAAS,UAAU,OAAO,WAAY;AACpC,WAAK;AACL,WAAK,SAAS,KAAK;AACnB,aAAO,KAAK;AAAA,IACd;AAEA,aAAS,UAAU,QAAQ,WAAY;AACrC,UAAI,EAAE,KAAK,QAAQ,GAAI,QAAO;AAC9B,aAAO,KAAK,SAAS;AAAA,IACvB;AAEA,aAAS,UAAU,cAAc,WAAY;AAC3C,cAAQ,KAAK,MAAM,IAAI,KAAK;AAAA,IAC9B;AAEA,aAAS,UAAU,UAAU,WAAY;AACvC,aAAO,KAAK,OAAO,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK;AAAA,IACjD;AAEA,aAAS,UAAU,SAAS,WAAY;AACtC,UAAI,KAAK,SAAS,GAAG;AACnB,aAAK,SAAS,KAAK,SAAS;AAC5B,aAAK,UAAU,KAAK,SAAS,KAAK;AAAA,MACpC,OAAO;AACL,aAAK,SAAS,KAAK,SAAS;AAC5B,aAAK,UAAU;AAAA,MACjB;AACA,WAAK,UAAU;AACf,aAAO,KAAK;AAAA,IACd;AAEA,aAAS,UAAU,WAAW,WAAY;AACxC,WAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,IAAI;AAC5C,WAAK,SAAS,KAAK,QAAQ;AAC3B,WAAK,SAAS;AACd,aAAO,KAAK;AAAA,IACd;AAEA,aAAS,UAAU,YAAY,WAAY;AACzC,WAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,IAAI;AAC5C,WAAK,SAAS,KAAK,QAAQ;AAC3B,WAAK,SAAS;AACd,aAAO,KAAK;AAAA,IACd;AAEA,aAAS,UAAU,YAAY,WAAY;AACzC,UAAI,KAAK,WAAW,EAAG,QAAO,KAAK;AACnC,WAAK,UAAU;AACf,WAAK,SAAS,KAAK,SAAS;AAC5B,WAAK,UAAU;AACf,aAAO,KAAK;AAAA,IACd;AAEA,aAAS,UAAU,aAAa,WAAY;AAC1C,UAAI,KAAK,WAAW,EAAG,QAAO,KAAK;AACnC,WAAK,UAAU;AACf,WAAK,SAAS,KAAK,SAAS;AAC5B,WAAK,SAAS,IAAI,KAAK,SAAS;AAChC,aAAO,KAAK;AAAA,IACd;AAEA,aAAS,UAAU,WAAW,WAAY;AACxC,WAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,IAAI;AAC5C,WAAK,SAAS,KAAK,QAAQ;AAC3B,WAAK,SAAS;AACd,aAAO,KAAK;AAAA,IACd;AAEA,aAAS,UAAU,WAAW,WAAY;AACxC,UAAI,CAAC,KAAK,QAAQ;AAChB,aAAK,QAAQ;AACb,aAAK,SAAS;AAAA,MAChB,OAAO;AACL,aAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,IAAI;AAC5C,aAAK,SAAS,KAAK,QAAQ;AAC3B,aAAK,SAAS;AAAA,MAChB;AACA,aAAO,KAAK;AAAA,IACd;AAEA,aAAS,UAAU,WAAW,SAAU,OAAO;AAC7C,UAAI,SAAS,KAAK,UAAU,KAAK,QAAQ,KAAK,EAAG,QAAO;AACxD,aAAO,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,GAAG;AACzD,aAAK,SAAS,KAAK,SAAS;AAC5B,aAAK,UAAU;AACf,aAAK,UAAU;AAAA,MACjB;AACA,aAAO;AAAA,IACT;AAAA;AAAA;;;AC9PA;AAAA;AAIA,QAAM,OAAO;AAEb,WAAO,UAAU,MAAM,gBAAgB;AAAA,MACrC,YAAa,MAAM,OAAO;AACxB,YAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,KAAK,OAAQ,OAAM,IAAI,MAAM,oCAAoC;AAE7F,aAAK,QAAQ,SAAS,KAAK,SAAS,CAAC;AACrC,aAAK,SAAS,KAAK,MAAM,SAAS,IAAI,KAAK,UAAU,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC,EAAE,KAAK,IAAI,IAAI;AAEpG,iBAAS,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;AAC1C,cAAI,IAAI,KAAK,MAAM,CAAC;AACpB,cAAI,KAAK,CAAC,EAAE,OAAQ,GAAE,SAAS,KAAK,OAAO,EAAE,KAAK;AAAA,QACpD;AAEA,aAAK,QAAQ,KAAK;AAClB,aAAK,UAAU,KAAK;AAAA,MACtB;AAAA,MAEA,KAAM,MAAM,OAAO;AACjB,YAAI,CAAC,OAAO,SAAS,IAAI,EAAG,QAAO,OAAO,KAAK,IAAI;AACnD,YAAI,CAAC,MAAO,SAAQ,CAAC;AAErB,YAAI,QAAQ,IAAI,KAAK;AAErB,YAAI,OAAO;AAAA,UACT;AAAA,UACA,QAAQ,KAAK,OAAO,KAAK;AAAA,UACzB,MAAM;AAAA,UACN,MAAM,KAAK;AAAA,UACX;AAAA,QACF;AAEA,aAAK,OAAO,KAAK,MAAM,MAAM,KAAK,KAAK;AACvC,aAAK,MAAM,KAAK,IAAI;AACpB,cAAM,KAAK,IAAI;AAEf,eAAO,KAAK,MAAM,SAAS,GAAG;AAC5B,cAAI,OAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC3C,cAAI,QAAQ,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAE5C,cAAI,KAAK,WAAW,MAAM,OAAQ;AAElC,eAAK,MAAM,IAAI;AACf,eAAK,MAAM,KAAK,MAAM,SAAS,CAAC,IAAI,OAAO;AAAA,YACzC,OAAO,KAAK;AAAA,YACZ,QAAQ,KAAK,OAAO,KAAK,MAAM;AAAA,YAC/B,MAAM,KAAK,QAAQ,MAAM,KAAK;AAAA,YAC9B,MAAM,KAAK,OAAO,MAAM;AAAA,YACxB,MAAM;AAAA,UACR;AACA,gBAAM,KAAK,IAAI;AAAA,QACjB;AAEA,eAAO;AAAA,MACT;AAAA,IACF;AAAA;AAAA;;;AC3DA;AAAA;AAAA,WAAO,UAAU;AAEjB,WAAO,QAAQ,aAAa,OAAO;AACnC,WAAO,OAAO,aAAa,OAAO;AAClC,WAAO,MAAM,aAAa,KAAK;AAC/B,WAAO,SAAS,aAAa,QAAQ;AACrC,WAAO,OAAO,aAAa,MAAM;AACjC,WAAO,UAAU,aAAa,SAAS;AACvC,WAAO,SAAS,WAAW,IAAI;AAC/B,WAAO,OAAO,WAAW,KAAK;AAC9B,WAAO,SAAS;AAAA,MACd,MAAM;AAAA,MACN,QAAQ,SAAS,aAAc,KAAK;AAClC,eAAO,OAAO,QAAQ,WAClB,OAAO,KAAK,KAAK,OAAO,IACxB,OAAO,SAAS,GAAG,IACjB,MACA,OAAO,KAAK,IAAI,QAAQ,IAAI,YAAY,IAAI,UAAU;AAAA,MAC9D;AAAA,MACA,QAAQ,SAAS,aAAc,KAAK;AAClC,eAAO,OAAO,SAAS,GAAG,IACtB,MACA,OAAO,KAAK,IAAI,QAAQ,IAAI,YAAY,IAAI,UAAU;AAAA,MAC5D;AAAA,IACF;AAEA,aAAS,OAAQ,KAAK,UAAU;AAC9B,UAAI,OAAO,QAAQ,YAAY,OAAO,IAAI,UAAU,IAAI,OAAQ,QAAO;AAEvE,cAAQ,KAAK;AAAA,QACX,KAAK;AAAU,iBAAO,OAAO;AAAA,QAC7B,KAAK;AAAQ,iBAAO,OAAO;AAAA,QAC3B,KAAK;AAAS,iBAAO,OAAO;AAAA,QAC5B,KAAK;AAAA,QACL,KAAK;AAAQ,iBAAO,OAAO;AAAA,QAC3B,KAAK;AAAO,iBAAO,OAAO;AAAA,QAC1B,KAAK;AAAU,iBAAO,OAAO;AAAA,QAC7B,KAAK;AAAA,QACL,KAAK;AAAQ,iBAAO,OAAO;AAAA,QAC3B,KAAK;AAAA,QACL,KAAK;AAAW,iBAAO,OAAO;AAAA,MAChC;AAEA,aAAO,aAAa,SAAY,WAAW,OAAO;AAAA,IACpD;AAEA,aAAS,WAAY,SAAS;AAC5B,aAAO;AAAA,QACL,MAAM,UAAU,WAAW;AAAA,QAC3B,QAAQ,UAAU,eAAe;AAAA,QACjC,QAAQ,SAAS,WAAY,KAAK;AAChC,iBAAO,KAAK,MAAM,IAAI,SAAS,CAAC;AAAA,QAClC;AAAA,MACF;AAEA,eAAS,WAAY,KAAK;AACxB,eAAO,OAAO,KAAK,KAAK,UAAU,GAAG,CAAC;AAAA,MACxC;AAEA,eAAS,aAAc,KAAK;AAC1B,eAAO,OAAO,KAAK,KAAK,UAAU,GAAG,IAAI,IAAI;AAAA,MAC/C;AAAA,IACF;AAEA,aAAS,aAAc,MAAM;AAC3B,aAAO;AAAA,QACL,MAAM;AAAA,QACN,QAAQ,SAAS,aAAc,KAAK;AAClC,cAAI,OAAO,QAAQ,SAAU,OAAM,IAAI,SAAS;AAChD,iBAAO,OAAO,KAAK,KAAK,IAAI;AAAA,QAC9B;AAAA,QACA,QAAQ,SAAS,aAAc,KAAK;AAClC,iBAAO,IAAI,SAAS,IAAI;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;AC3EA;AAAA;AAAA,WAAO,UAAU;AAEjB,aAAS,QAAS,KAAK;AACrB,UAAI,UAAU;AACd,UAAI,eAAe;AACnB,UAAI,mBAAmB;AACvB,UAAI,YAAY;AAEhB,aAAO;AAEP,eAAS,KAAM,KAAK;AAClB,YAAI,UAAW,SAAQ,WAAW,GAAG;AAErC,kBAAU;AACV,oBAAY;AACZ,YAAI,YAAY;AAEhB,uBAAe;AACf,2BAAmB;AAEnB,YAAI,CAAC,aAAa,CAAC,UAAU,QAAQ;AACnC,cAAI,CAAC,aAAa,CAAC,UAAU,QAAQ;AACnC,wBAAY;AACZ;AAAA,UACF;AACA,cAAI,CAAC,UAAW,aAAY,CAAC;AAAA,QAC/B;AAEA,kBAAU;AACV,YAAI,WAAW,IAAI;AAAA,MACrB;AAEA,eAAS,OAAQ,KAAK,IAAI;AACxB,YAAI,SAAS;AACX,cAAI,CAAC,cAAc;AACjB,2BAAe,CAAC;AAChB,+BAAmB,CAAC;AAAA,UACtB;AACA,kBAAQ,cAAc,GAAG;AACzB,cAAI,GAAI,kBAAiB,KAAK,EAAE;AAAA,QAClC,OAAO;AACL,cAAI,GAAI,aAAY,CAAC,EAAE;AACvB,oBAAU;AACV,cAAI,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI;AAAA,QAC5C;AAAA,MACF;AAAA,IACF;AAEA,aAAS,QAAS,MAAM,KAAK;AAC3B,UAAI,MAAM,QAAQ,GAAG,EAAG,WAAU,MAAM,GAAG;AAAA,UACtC,MAAK,KAAK,GAAG;AAAA,IACpB;AAEA,aAAS,UAAW,MAAM,KAAK;AAC7B,eAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,IAAK,MAAK,KAAK,IAAI,CAAC,CAAC;AAAA,IACvD;AAEA,aAAS,QAAS,MAAM,KAAK;AAC3B,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,IAAK,MAAK,CAAC,EAAE,GAAG;AAAA,IACnD;AAAA;AAAA;;;AC3DA;AAAA;AAAA,QAAI,OAAO,OAAO,WAAW,YAAY;AAEvC,aAAO,UAAU,SAAS,SAAS,MAAM,WAAW;AAClD,YAAI,WAAW;AACb,eAAK,SAAS;AACd,eAAK,YAAY,OAAO,OAAO,UAAU,WAAW;AAAA,YAClD,aAAa;AAAA,cACX,OAAO;AAAA,cACP,YAAY;AAAA,cACZ,UAAU;AAAA,cACV,cAAc;AAAA,YAChB;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF,OAAO;AAEL,aAAO,UAAU,SAAS,SAAS,MAAM,WAAW;AAClD,YAAI,WAAW;AACb,eAAK,SAAS;AACd,cAAI,WAAW,WAAY;AAAA,UAAC;AAC5B,mBAAS,YAAY,UAAU;AAC/B,eAAK,YAAY,IAAI,SAAS;AAC9B,eAAK,UAAU,cAAc;AAAA,QAC/B;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;AC1BA;AAAA;AAAA,WAAO,UAAU;AAEjB,QAAI,MAAM;AAAV,QACI,OAAO;AADX,QAEI,SAAS,CAAC;AAFd,QAGI,MAAM,KAAK,IAAI,GAAG,EAAE;AAExB,aAAS,OAAO,KAAK,KAAK,QAAQ;AAChC,YAAM,OAAO,CAAC;AACd,eAAS,UAAU;AACnB,UAAI,YAAY;AAEhB,aAAM,OAAO,KAAK;AAChB,YAAI,QAAQ,IAAK,MAAM,MAAQ;AAC/B,eAAO;AAAA,MACT;AACA,aAAM,MAAM,QAAQ;AAClB,YAAI,QAAQ,IAAK,MAAM,MAAQ;AAC/B,iBAAS;AAAA,MACX;AACA,UAAI,MAAM,IAAI,MAAM;AAEpB,aAAO,QAAQ,SAAS,YAAY;AAEpC,aAAO;AAAA,IACT;AAAA;AAAA;;;ACzBA;AAAA;AAAA,WAAO,UAAU;AAEjB,QAAI,MAAM;AAAV,QACI,OAAO;AAEX,aAAS,KAAK,KAAK,QAAQ;AACzB,UAAI,MAAS,GACT,SAAS,UAAU,GACnB,QAAS,GACT,UAAU,QACV,GACA,IAAI,IAAI;AAEZ,SAAG;AACD,YAAG,WAAW,GAAG;AACf,eAAK,QAAQ;AACb,eAAK,YAAY;AACjB,iBAAO;AAAA,QACT;AACA,YAAI,IAAI,SAAS;AACjB,eAAO,QAAQ,MACV,IAAI,SAAS,SACb,IAAI,QAAQ,KAAK,IAAI,GAAG,KAAK;AAClC,iBAAS;AAAA,MACX,SAAS,KAAK;AAEd,WAAK,QAAQ,UAAU;AAEvB,aAAO;AAAA,IACT;AAAA;AAAA;;;AC7BA;AAAA;AACA,QAAI,KAAK,KAAK,IAAI,GAAI,CAAC;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AAEvB,WAAO,UAAU,SAAU,OAAO;AAChC,aACE,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACA;AAAA,IAEjB;AAAA;AAAA;;;ACxBA;AAAA;AAAA,WAAO,UAAU;AAAA,MACb,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,gBAAgB;AAAA,IACpB;AAAA;AAAA;;;ACJA;AAAA;AAAA,aAAS,YAAa,MAAM;AAC1B,UAAI,OAAO,SAAS,UAAU;AAC5B,cAAM,IAAI,UAAU,kCAAkC;AAAA,MACxD;AAEA,UAAI,OAAO,GAAG;AACZ,cAAM,IAAI,WAAW,sCAAsC;AAAA,MAC7D;AAEA,UAAI,OAAO,aAAa;AACtB,eAAO,OAAO,YAAY,IAAI;AAAA,MAChC,OAAO;AACL,eAAO,IAAI,OAAO,IAAI;AAAA,MACxB;AAAA,IACF;AAEA,WAAO,UAAU;AAAA;AAAA;;;AChBjB;AAAA;AAAA,QAAI,SAAS;AACb,QAAI,QAAQ;AAEZ,WAAO,UAAU,MAAM,CAAC;AAExB,aAAS,MAAO,GAAG;AACjB,UAAIA,WAAU,CAAC;AAEf,MAAAA,SAAQ,QAAQ;AAEhB,MAAAA,SAAQ,SAAS;AACjB,MAAAA,SAAQ,OAAO,QAAQ;AACvB,MAAAA,SAAQ,iBAAiB;AAEzB,MAAAA,SAAQ,SAAS;AACjB,MAAAA,SAAQ,OAAO,QAAQ;AACvB,MAAAA,SAAQ,iBAAiB;AAEzB,aAAOA;AAEP,eAAS,MAAO,OAAO,QAAQ,QAAQ;AACrC,aAAK,cAAc;AACnB,aAAK,cAAc,MAAM;AACzB,aAAK,QAAQ;AACb,aAAK,eAAe;AACpB,aAAK,SAAS;AAAA,MAChB;AAEA,eAAS,OAAQ,UAAU,QAAQ,QAAQ;AACzC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,OAAQ,UAAS,MAAM,eAAe,QAAQ,CAAC;AACpD,YAAI,QAAQ,IAAI,MAAM,UAAU,QAAQ,MAAM;AAC9C,YAAI,KAAK;AACT,eAAO,QAAQ,MAAM,eAAe;AACpC,eAAO;AAAA,MACT;AAEA,eAAS,eAAgB,UAAU;AACjC,YAAI,QAAQ,IAAI,MAAM,UAAU,MAAM,CAAC;AACvC,YAAI,KAAK;AACT,eAAO,MAAM;AAAA,MACf;AAEA,eAAS,OAAQ,QAAQ,QAAQ;AAC/B,YAAI,CAAC,OAAQ,UAAS;AAEtB,YAAI,WAAW,MAAM,eAAe,QAAQ,MAAM,CAAC;AACnD,YAAI,MAAM;AAEV,eAAO,SAAS,OAAO,QAAQ;AAC7B,cAAI,OAAO,OAAO,OAAO,QAAQ,MAAM;AACvC,cAAI,SAAS,OAAO;AACpB,cAAI,MAAM,UAAU,QAAQ,OAAO,MAAM,IAAI,OAAO;AAEpD,oBAAU,OAAO,OAAO;AAExB,cAAI,QAAQ;AACV,qBAAS,KAAK,OAAO,IAAI,MAAM,GAAG,KAAK,MAAM,GAAG;AAAA,UAClD,OAAO;AACL,mBAAO,KAAK,UAAU,KAAK,QAAQ,SAAS,GAAG;AAC/C,sBAAU;AAAA,UACZ;AAEA,iBAAO;AAAA,QACT;AAEA,iBAAS,KAAK,GAAG,GAAG;AACpB,eAAO,QAAQ,OAAO,SAAS;AAE/B,eAAO;AAAA,MACT;AAEA,eAAS,eAAgB,QAAQ,QAAQ;AACvC,YAAI,CAAC,OAAQ,UAAS;AAEtB,YAAI,MAAM;AAEV,eAAO,SAAS,OAAO,QAAQ;AAC7B,cAAI,OAAO,OAAO,OAAO,QAAQ,MAAM;AACvC,oBAAU,OAAO,OAAO;AAExB,cAAI,SAAS,OAAO;AACpB,cAAI,QAAQ,UAAU,QAAQ,OAAO,MAAM,IAAI,OAAO;AAEtD,iBAAO;AACP,cAAI,CAAC,OAAQ,WAAU;AAAA,QACzB;AAEA,YAAI,SAAS,OAAO,OAAQ,OAAM,IAAI,MAAM,sBAAsB;AAElE,YAAI,MAAO,IAAI,EAAI,QAAO,OAAO,KAAK,MAAO,IAAI;AAEjD,eAAO;AAAA,MACT;AAEA,eAAS,IAAK,OAAO;AACnB,YAAI,MAAM;AACV,YAAI,OAAO;AACX,YAAI,QAAQ,MAAM;AAElB,eAAO,MAAM,cAAc,KAAK,CAAC,MAAM,MAAM,cAAc,CAAC,EAAG,OAAM;AAErE,iBAAS,IAAI,GAAG,IAAI,MAAM,aAAa,KAAK;AAC1C,cAAI,MAAM,CAAC,MAAM,MAAM;AACrB;AACA;AAAA,UACF;AAEA,cAAI,IAAK,cAAa,OAAO,GAAG,KAAK,IAAI;AAEzC,cAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,KAAK;AACtC,mBAAO,MAAM,CAAC;AACd,kBAAM;AAAA,UACR,OAAO;AACL,kBAAM;AAAA,UACR;AAAA,QACF;AAEA,YAAI,IAAK,cAAa,OAAO,MAAM,aAAa,KAAK,IAAI;AACzD,oBAAY,KAAK;AAAA,MACnB;AAEA,eAAS,WAAY,OAAO,KAAK;AAC/B,YAAI,aAAa,MAAM,MAAM;AAC7B,eAAO,OAAO,IAAI,YAAY,MAAM,QAAQ,MAAM,YAAY;AAC9D,cAAM,gBAAgB,OAAO,OAAO;AACpC,cAAM,MAAM,KAAK,MAAM,QAAQ,MAAM,cAAc,MAAM,aAAa,GAAG;AACzE,cAAM,gBAAgB;AAAA,MACxB;AAEA,eAAS,YAAa,OAAO;AAC3B,YAAI,aAAa,MAAM,cAAc,MAAM;AAC3C,YAAI,CAAC,WAAY;AAEjB,YAAI,CAAC,MAAM,QAAQ;AACjB,gBAAM,gBAAiB,aAAa,OAAO,eAAe,IAAI,UAAU;AAAA,QAC1E,OAAO;AACL,qBAAW,OAAO,MAAM,WAAW;AAAA,QACrC;AAEA,cAAM,cAAc,MAAM;AAAA,MAC5B;AAEA,eAAS,aAAc,OAAO,GAAG,KAAK,KAAK;AACzC,YAAI,aAAa,IAAI,MAAM,MAAM;AACjC,YAAI,WAAY,aAAa,OAAO,eAAe,IAAI,UAAU,IAAI,aAAa;AAClF,YAAI,MAAM,IAAI,OAAO,MAAM,IAAI,KAAK;AACpC,YAAI,UAAU,WAAW,OAAO,eAAe,GAAG;AAClD,YAAI,WAAW,OAAO,eAAe,KAAK,IAAI,MAAM,YAAY,IAAI,IAAI,MAAM;AAE9E,YAAI,WAAW,SAAU;AAEzB,YAAI,CAAC,MAAM,QAAQ;AACjB,gBAAM,gBAAgB;AACtB,gBAAM,cAAc;AACpB;AAAA,QACF;AAEA,YAAI,WAAY,YAAW,OAAO,IAAI,GAAG;AAEzC,eAAO,OAAO,KAAK,MAAM,QAAQ,MAAM,YAAY;AACnD,cAAM,gBAAgB,OAAO,OAAO;AACpC,cAAM,cAAc;AAAA,MACtB;AAAA,IACF;AAAA;AAAA;;;ACpKA;AAAA;AAAA,WAAO,UAAU;AAEjB,aAAS,MAAO,UAAU,MAAM;AAC9B,UAAI,EAAE,gBAAgB,OAAQ,QAAO,IAAI,MAAM,UAAU,IAAI;AAE7D,WAAK,SAAS;AACd,WAAK,UAAU,CAAC;AAChB,WAAK,OAAO,IAAI,YAAY,CAAC;AAC7B,WAAK,QAAQ,IAAI,MAAM,KAAK;AAC5B,WAAK,WAAW,KAAK,MAAM;AAC3B,WAAK,QAAQ;AACb,WAAK,WAAW,YAAY;AAC5B,WAAK,cAAc,OAAO,KAAK,cAAc;AAC7C,WAAK,QAAQ,KAAK,cAAc,MAAM,KAAK,YAAY,MAAM,IAAI;AAAA,IACnE;AAEA,UAAM,UAAU,UAAU,SAAU,MAAM;AACxC,aAAO,KAAK,eAAe,KAAK,OAAO,KAAK,WAAW,MAAM,KAAK,YAAY,KAAK,WAAW,GAAG;AAC/F,aAAK;AACL,YAAI,KAAK,gBAAgB,KAAK,YAAY,QAAQ;AAChD,eAAK,cAAc;AACnB,cAAI,KAAK,OAAO,UAAU,KAAK,OAAO,OAAO,KAAK,WAAW,EAAG,MAAK,SAAS,KAAK;AACnF;AAAA,QACF;AAAA,MACF;AACA,UAAI,KAAK,WAAW,CAAC,KAAK,QAAS;AACnC,WAAK,UAAU;AACf,WAAK,QAAQ,KAAK,IAAI;AAAA,IACxB;AAEA,UAAM,UAAU,aAAa,WAAY;AACvC,UAAI,CAAC,KAAK,WAAW,CAAC,KAAK,QAAQ,OAAQ,QAAO;AAClD,UAAI,OAAO,KAAK,QAAQ,IAAI;AAC5B,WAAK,UAAU;AACf,aAAO;AAAA,IACT;AAEA,UAAM,UAAU,SAAS,SAAU,GAAG,YAAY;AAChD,UAAI,KAAK,KAAK,UAAU;AACtB,YAAI,WAAY;AAChB,aAAK,MAAM,CAAC;AAAA,MACd;AAEA,aAAO,GAAG,KAAK,IAAI;AAEnB,UAAI,MAAM,KAAK;AAEf,eAAS,IAAI,KAAK,OAAO,IAAI,GAAG,KAAK;AACnC,YAAI,IAAI,KAAK,KAAK,CAAC;AACnB,YAAI,OAAO,IAAI,CAAC;AAEhB,YAAI,CAAC,MAAM;AACT,cAAI,WAAY;AAChB,iBAAO,IAAI,CAAC,IAAI,IAAI,MAAM,KAAK;AAAA,QACjC;AAEA,cAAM;AAAA,MACR;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,UAAU,MAAM,SAAU,GAAG,YAAY;AAC7C,UAAI,MAAM,KAAK,OAAO,GAAG,UAAU;AACnC,UAAI,QAAQ,KAAK,KAAK,CAAC;AACvB,UAAI,OAAO,OAAO,IAAI,KAAK;AAE3B,UAAI,CAAC,QAAQ,CAAC,YAAY;AACxB,eAAO,IAAI,KAAK,IAAI,IAAI,KAAK,GAAG,MAAM,KAAK,QAAQ,CAAC;AACpD,YAAI,KAAK,KAAK,OAAQ,MAAK,SAAS,IAAI;AAAA,MAC1C;AAEA,UAAI,QAAQ,KAAK,WAAW,KAAK,eAAe,KAAK,eAAe,CAAC,YAAY;AAC/E,aAAK,SAAS,KAAK,KAAK,MAAM;AAC9B,aAAK,cAAc;AAAA,MACrB;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,UAAU,MAAM,SAAU,GAAG,KAAK;AACtC,UAAI,MAAM,KAAK,OAAO,GAAG,KAAK;AAC9B,UAAI,QAAQ,KAAK,KAAK,CAAC;AAEvB,UAAI,KAAK,KAAK,OAAQ,MAAK,SAAS,IAAI;AAExC,UAAI,CAAC,OAAQ,KAAK,SAAS,IAAI,UAAU,IAAI,OAAO,KAAK,KAAK,GAAI;AAChE,YAAI,KAAK,IAAI;AACb;AAAA,MACF;AAEA,UAAI,KAAK,eAAe,IAAI,UAAU,IAAI,OAAO,KAAK,WAAW,GAAG;AAClE,cAAM,KAAK;AAAA,MACb;AAEA,UAAI,OAAO,IAAI,KAAK;AACpB,UAAI,IAAI,SAAS,KAAK,KAAK,QAAQ;AAEnC,UAAI,KAAM,MAAK,SAAS;AAAA,UACnB,KAAI,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC;AAAA,IACjC;AAEA,UAAM,UAAU,WAAW,WAAY;AACrC,UAAI,OAAO,IAAI,MAAM,KAAK,MAAM;AAChC,UAAI,QAAQ,MAAM,KAAK,QAAQ;AAC/B,UAAI,MAAM;AAEV,aAAO,MAAM,KAAK,QAAQ;AACxB,YAAI,MAAM,KAAK,OAAO,KAAK,IAAI;AAC/B,iBAAS,IAAI,GAAG,IAAI,SAAS,MAAM,KAAK,QAAQ,KAAK;AACnD,eAAK,KAAK,IAAK,OAAO,IAAI,CAAC,IAAK,IAAI,CAAC,EAAE,SAAS;AAAA,QAClD;AAAA,MACF;AAEA,aAAO,OAAO,OAAO,IAAI;AAAA,IAC3B;AAEA,aAAS,KAAM,OAAO,OAAO;AAC3B,aAAO,MAAM,WAAW,OAAO;AAC7B,YAAI,MAAM,MAAM;AAChB,cAAM,QAAQ,IAAI,MAAM,KAAK;AAC7B,cAAM,MAAM,CAAC,IAAI;AACjB,cAAM;AACN,cAAM,YAAY;AAAA,MACpB;AAAA,IACF;AAEA,aAAS,SAAU,KAAK,KAAK;AAC3B,UAAI,IAAI,WAAW,IAAK,QAAO;AAC/B,UAAI,IAAI,SAAS,IAAK,QAAO,IAAI,MAAM,GAAG,GAAG;AAC7C,UAAI,MAAM,MAAM,GAAG;AACnB,UAAI,KAAK,GAAG;AACZ,aAAO;AAAA,IACT;AAEA,aAAS,MAAO,MAAM;AACpB,UAAI,OAAO,MAAO,QAAO,OAAO,MAAM,IAAI;AAC1C,UAAI,MAAM,IAAI,OAAO,IAAI;AACzB,UAAI,KAAK,CAAC;AACV,aAAO;AAAA,IACT;AAEA,aAAS,KAAM,KAAK;AAClB,UAAI,MAAM,OAAO,cAAc,OAAO,YAAY,IAAI,MAAM,IAAI,IAAI,OAAO,IAAI,MAAM;AACrF,UAAI,KAAK,GAAG;AACZ,aAAO;AAAA,IACT;AAEA,aAAS,KAAM,GAAG,KAAK;AACrB,WAAK,SAAS,IAAI,IAAI;AACtB,WAAK,SAAS;AACd,WAAK,UAAU;AACf,WAAK,cAAc;AAAA,IACrB;AAEA,aAAS,OAAQ,GAAG,KAAK;AACvB,WAAK,KAAK,IAAI,CAAC,IAAK,IAAI,UAAW;AACnC,WAAK,KAAK,IAAI,CAAC,IAAK,IAAI,UAAW;AACnC,UAAI,CAAC,KAAM,KAAK,IAAI,CAAC,IAAK,IAAI,UAAW,QAAS;AAAA,IACpD;AAAA;AAAA;;;AC/JA;AAAA;AAAA,QAAI,QAAQ;AAEZ,WAAO,UAAU;AAEjB,aAAS,SAAU,MAAM;AACvB,UAAI,EAAE,gBAAgB,UAAW,QAAO,IAAI,SAAS,IAAI;AACzD,UAAI,CAAC,KAAM,QAAO,CAAC;AACnB,UAAI,OAAO,SAAS,IAAI,EAAG,QAAO,EAAC,QAAQ,KAAI;AAE/C,WAAK,aAAa,KAAK,cAAc;AACrC,WAAK,WAAW,KAAK,YAAY;AACjC,WAAK,QAAQ,KAAK,SAAS,MAAM,KAAK,QAAQ;AAE9C,WAAK,aAAa,KAAK,MAAM,SAAS,KAAK;AAC3C,WAAK,SAAS,IAAI,KAAK;AAEvB,UAAI,CAAC,WAAW,KAAK,QAAQ,EAAG,OAAM,IAAI,MAAM,wCAAwC;AAExF,WAAK,gBAAgB,CAAC,CAAC,KAAK;AAC5B,WAAK,YAAY,KAAK,WAAW;AAEjC,UAAI,KAAK,QAAQ;AACf,iBAAS,IAAI,GAAG,IAAI,KAAK,OAAO,QAAQ,KAAK,KAAK,UAAU;AAC1D,eAAK,MAAM,IAAI,IAAI,KAAK,UAAU,KAAK,OAAO,MAAM,GAAG,IAAI,KAAK,QAAQ,CAAC;AAAA,QAC3E;AACA,aAAK,aAAa,KAAK,OAAO;AAC9B,aAAK,SAAS,IAAI,KAAK;AAAA,MACzB;AAAA,IACF;AAEA,aAAS,UAAU,MAAM,SAAU,GAAG;AACpC,UAAI,IAAI,IAAI;AACZ,UAAI,KAAK,IAAI,KAAK;AAElB,aAAO,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAK,OAAO;AAAA,IACtC;AAEA,aAAS,UAAU,UAAU,SAAU,GAAG;AACxC,UAAI,IAAI,IAAI,KAAK;AACjB,UAAI,KAAK,IAAI,KAAK,KAAK;AACvB,UAAI,OAAO,KAAK,MAAM,IAAI,GAAG,IAAI;AAEjC,aAAO,OAAO,KAAK,OAAO,IAAI,KAAK,UAAU,IAAI;AAAA,IACnD;AAEA,aAAS,UAAU,MAAM,SAAU,GAAG,GAAG;AACvC,UAAI,IAAI,IAAI;AACZ,UAAI,KAAK,IAAI,KAAK;AAClB,UAAI,IAAI,KAAK,QAAQ,CAAC;AAEtB,aAAO,KAAK,QAAQ,GAAG,IAAI,IAAK,OAAO,IAAK,KAAK,MAAO,OAAO,EAAG;AAAA,IACpE;AAEA,aAAS,UAAU,WAAW,WAAY;AACxC,UAAI,MAAM,MAAM,KAAK,MAAM,SAAS,KAAK,QAAQ;AAEjD,eAAS,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;AAC1C,YAAI,OAAO,KAAK,MAAM,IAAI,GAAG,IAAI;AACjC,YAAI,YAAY,IAAI,KAAK;AACzB,YAAI,KAAM,MAAK,OAAO,KAAK,KAAK,WAAW,KAAK,YAAY,KAAK,aAAa,KAAK,QAAQ;AAAA,MAC7F;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,UAAU,UAAU,SAAU,GAAG,GAAG;AAC3C,UAAI,IAAI,IAAI,KAAK;AACjB,UAAI,KAAK,IAAI,KAAK,KAAK;AACvB,UAAI,OAAO,KAAK,MAAM,IAAI,GAAG,KAAK;AAElC,WAAK,KAAK;AAEV,UAAI,KAAK,OAAO,CAAC,MAAM,EAAG,QAAO;AACjC,WAAK,OAAO,CAAC,IAAI;AAEjB,UAAI,KAAK,KAAK,YAAY;AACxB,aAAK,aAAa,IAAI;AACtB,aAAK,SAAS,KAAK,aAAa;AAAA,MAClC;AAEA,UAAI,KAAK,cAAe,MAAK,MAAM,QAAQ,IAAI;AAE/C,aAAO;AAAA,IACT;AAEA,aAAS,MAAO,GAAG;AACjB,UAAI,OAAO,MAAO,QAAO,OAAO,MAAM,CAAC;AACvC,UAAI,IAAI,IAAI,OAAO,CAAC;AACpB,QAAE,KAAK,CAAC;AACR,aAAO;AAAA,IACT;AAEA,aAAS,WAAY,GAAG;AACtB,aAAO,EAAE,IAAK,IAAI;AAAA,IACpB;AAAA;AAAA;;;AC9FA;AAAA;AAAA,QAAI,OAAO;AACX,QAAI,MAAM;AACV,QAAI,QAAQ;AACZ,QAAI,WAAW;AAEf,QAAI,oBAAoB,CAAC,IAAI,KAAK,KAAK,GAAG;AAC1C,QAAI,qBAAqB,CAAC,GAAG,KAAK,KAAK,GAAG;AAC1C,QAAI,oBAAoB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAC/D,QAAI,mBAAmB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAC9D,QAAI,mBAAmB,IAAI,MAAM,GAAG;AACpC,QAAI,kBAAkB,IAAI,MAAM,GAAG;AACnC,QAAI,kBAAkB,IAAI,MAAM,GAAG;AACnC,QAAI,mBAAmB,IAAI,MAAM,GAAG;AACpC,QAAI,eAAe,IAAI,MAAM,GAAG;AAEhC,SAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AACxB,WAAK,IAAK,MAAM,MAAO;AACvB,UAAI,IAAI;AACR,eAAS,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC5D,uBAAiB,CAAC,KAAM,MAAM,KAAK,IAAI,MAAM,IAAI,IAAI,MAAM,KAAM,MAAM,KAAK,IAAI,MAAM,IAAI,IAAI;AAC9F,sBAAgB,CAAC,IAAI,iBAAiB,CAAC,KAAK;AAC5C,sBAAgB,CAAC,IAAI,MAAM,MAAM,KAAM,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACpF,uBAAiB,CAAC,IAAI,MAAM,MAAM,KAAK,KAAK,MAAM,gBAAgB,CAAC,IAAI,CAAC;AACxE,mBAAa,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,IAAI,EAAI;AAAA,IACpD;AARM;AACA;AACA;AAHG;AAWT,WAAO,UAAU;AAEjB,aAAS,SAAU,UAAU,OAAO;AAClC,UAAI,EAAE,gBAAgB,UAAW,QAAO,IAAI,SAAS,UAAU,KAAK;AACpE,UAAI,CAAC,SAAU,YAAW,OAAO,OAAO;AAExC,UAAI,cAAc,OAAO,YAAY,QAAQ;AAC7C,kBAAY,KAAK,GAAG;AAEpB,WAAK,YAAY,WAAW,OAAO;AACnC,WAAK,QAAQ,MAAM,UAAU,EAAE,YAAY,CAAC;AAE5C,UAAI,OAAO;AACT,iBAASC,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AACrC,eAAK,MAAM,IAAIA,IAAG,MAAMA,EAAC,CAAC;AAAA,QAC5B;AAAA,MACF;AAEA,WAAK,OAAO,SAAS;AAAA,QACnB,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,OAAO,KAAK;AAAA,QACZ,cAAc;AAAA,MAChB,CAAC;AAED,WAAK,OAAO,SAAS;AAAA,QACnB,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,OAAO,KAAK;AAAA,QACZ,cAAc;AAAA,MAChB,CAAC;AAED,WAAK,QAAQ,SAAS;AAAA,QACpB,UAAU,KAAK;AAAA,QACf,YAAY,OAAO;AAAA,QACnB,OAAO,KAAK;AAAA,QACZ,cAAc;AAAA,MAChB,CAAC;AAED,WAAK,SAAS,KAAK,KAAK;AACxB,WAAK,YAAY,KAAK,SAAS,CAAC;AAAA,IAClC;AAEA,aAAS,UAAU,MAAM,SAAUA,IAAG,OAAO;AAC3C,UAAI,IAAIA,KAAI;AACZ,MAAAA,MAAKA,KAAI,KAAK;AACd,UAAI,IAAI,QAAQ,KAAK,KAAK,QAAQA,EAAC,IAAK,OAAO,IAAK,KAAK,KAAK,QAAQA,EAAC,IAAI,iBAAiB,CAAC;AAE7F,UAAI,CAAC,KAAK,KAAK,QAAQA,IAAG,CAAC,EAAG,QAAO;AACrC,WAAK,SAAS,KAAK,KAAK;AACxB,WAAK,UAAUA,IAAG,CAAC;AACnB,aAAO;AAAA,IACT;AAEA,aAAS,UAAU,MAAM,SAAUA,IAAG;AACpC,aAAO,KAAK,KAAK,IAAIA,EAAC;AAAA,IACxB;AAEA,aAAS,UAAU,QAAQ,SAAU,OAAO,KAAK;AAC/C,UAAI,CAAC,SAAS,QAAQ,EAAG,SAAQ;AACjC,UAAI,CAAC,IAAK,OAAM,KAAK,KAAK;AAC1B,UAAI,MAAM,MAAO,QAAO;AACxB,UAAI,MAAM,KAAK,KAAK,QAAQ;AAC1B,aAAK,QAAQ,GAAG;AAAA,MAClB;AACA,UAAI,IAAI,QAAQ;AAChB,UAAI,IAAI,MAAM;AACd,UAAI,OAAO,QAAQ,KAAK;AACxB,UAAI,QAAQ,MAAM,KAAK;AACvB,UAAI,WAAY,OAAO,IAAI,kBAAkB,IAAI,CAAC,IAAI;AACtD,UAAI,YAAa,IAAI,kBAAkB,IAAI,CAAC,IAAI;AAChD,UAAI,OAAO,KAAK,KAAK,QAAQ,GAAG;AAChC,UAAI,QAAQ,MAAM;AAChB,eAAO,aAAa,OAAO,WAAW,SAAS;AAAA,MACjD;AACA,UAAI,QAAQ,aAAa,OAAO,QAAQ;AACxC,eAASA,KAAI,MAAM,GAAGA,KAAI,MAAMA,MAAK;AACnC,iBAAS,aAAa,KAAK,KAAK,QAAQA,EAAC,CAAC;AAAA,MAC5C;AACA,eAAS,aAAa,KAAK,KAAK,QAAQ,IAAI,IAAI,SAAS;AACzD,aAAO;AAAA,IACT;AAGA,aAAS,UAAU,WAAW,SAAU,OAAO,QAAQ;AACrD,UAAI,CAAC,SAAS,CAAC,OAAQ,QAAO,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;AAE7D,UAAI,QAAQ,SAAS,KAAK,OAAQ,UAAS,KAAK,IAAI,GAAG,KAAK,SAAS,KAAK;AAC1E,UAAI,MAAM,OAAO,MAAM,KAAK,KAAK,SAAS,CAAC,CAAC;AAE5C,UAAI,IAAI,QAAQ,KAAK,KAAK,WAAW;AACrC,UAAI,MAAM,IAAI,SAAS,KAAK,KAAK,WAAW;AAC5C,UAAI,SAAS,IAAI,KAAK,KAAK;AAE3B,aAAO,IAAI,KAAK,KAAK;AACnB,YAAI,OAAO,KAAK,KAAK,MAAM,IAAI,GAAG,IAAI;AACtC,YAAI,CAAC,QAAQ,CAAC,KAAK,OAAQ;AAC3B,aAAK,OAAO,KAAK,KAAK,IAAI,KAAK,KAAK,WAAW,QAAQ,KAAK,KAAK,YAAY,KAAK,KAAK,aAAa,KAAK,KAAK,QAAQ;AAAA,MACxH;AAEA,aAAO,IAAI,OAAO,GAAG;AAAA,IACvB;AAEA,aAAS,UAAU,YAAY,SAAUA,IAAG,OAAO;AAKjD,UAAI,IAAIA,KAAI;AACZ,MAAAA,MAAKA,KAAI,KAAK;AAEd,UAAIC,YAAW,KAAK;AACpB,UAAI,MAAM,KAAK;AACf,UAAI,QAAQ,IAAID;AAChB,UAAI,OAAQC,UAAS,QAAQ,KAAK,IAAI,kBAAkB,CAAC,IAAM,cAAc,KAAK,KAAM,IAAI;AAC5F,UAAI,MAAMA,UAAS;AACnB,UAAI,YAAY,KAAK,MAAM,SAAS,KAAK;AAEzC,UAAI,KAAK,KAAK;AAEd,aAAO,IAAI,QAAQ,aAAaA,UAAS,QAAQ,IAAI,OAAO,IAAI,GAAG;AACjE,YAAI,IAAI,OAAO,GAAG;AAChB,iBAAO,gBAAgB,IAAI,IAAI,iBAAiBA,UAAS,QAAQ,IAAI,QAAQ,CAAC,CAAC;AAAA,QACjF,OAAO;AACL,iBAAO,iBAAiB,IAAI,IAAI,gBAAgBA,UAAS,QAAQ,IAAI,QAAQ,CAAC,CAAC;AAAA,QACjF;AACA,YAAI,OAAO;AAAA,MACb;AAEA,UAAI,QAAQA,UAAS,OAAQ,MAAK,QAAQ,GAAG;AAE7C,aAAO,IAAI,UAAU;AAAA,IACvB;AAEA,aAAS,UAAU,UAAU,SAAU,KAAK;AAC1C,UAAI,QAAQ,KAAK,UAAU,IAAI,GAAG;AAClC,UAAIA,YAAW,KAAK;AACpB,UAAI,MAAM,KAAK;AACf,UAAI,OAAO;AAEX,eAASD,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AACrC,YAAI,KAAK,MAAMA,EAAC,CAAC;AACjB,eAAOC,UAAS,QAAQ,IAAI,KAAK;AAEjC,WAAG;AACD,cAAI,IAAI,OAAO,GAAG;AAChB,mBAAO,gBAAgB,IAAI,IAAI,iBAAiBA,UAAS,QAAQ,IAAI,QAAQ,CAAC,CAAC;AAAA,UACjF,OAAO;AACL,mBAAO,iBAAiB,IAAI,IAAI,gBAAgBA,UAAS,QAAQ,IAAI,QAAQ,CAAC,CAAC;AAAA,UACjF;AAAA,QACF,SAAS,eAAeA,WAAU,IAAI,OAAO,GAAG,IAAI;AAAA,MACtD;AAAA,IACF;AAEA,aAAS,eAAgBA,WAAUD,IAAGE,IAAG;AACvC,UAAI,IAAIF,MAAKC,UAAS,OAAQ,QAAO;AACrC,aAAOA,UAAS,QAAQD,IAAGE,EAAC;AAAA,IAC9B;AAEA,aAAS,UAAU,WAAW,SAAU,OAAO,KAAK;AAClD,UAAI,MAAM,IAAI,SAAS,IAAI;AAE3B,UAAI,MAAM,SAAS,GAAG,OAAO,KAAK,MAAM;AACxC,UAAI,KAAK,CAAC;AAEV,aAAO;AAAA,IACT;AAEA,aAAS,SAAUD,WAAU;AAC3B,WAAK,QAAQ;AACb,WAAK,MAAM;AAEX,WAAK,YAAY;AACjB,WAAK,OAAO;AACZ,WAAK,QAAQ;AACb,WAAK,YAAYA;AAAA,IACnB;AAEA,aAAS,UAAU,QAAQ,SAAU,OAAO,KAAK;AAC/C,WAAK,QAAQ;AACb,WAAK,MAAM;AACX,WAAK,YAAY,IAAI,KAAK,KAAK,MAAM,EAAE;AAEvC,UAAI,KAAK,MAAM,KAAK,UAAU,QAAQ;AACpC,aAAK,UAAU,QAAQ,KAAK,GAAG;AAAA,MACjC;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,UAAU,OAAO,SAAU,QAAQ;AAC1C,gBAAU,KAAK;AACf,UAAI,SAAS,KAAK,MAAO,UAAS,KAAK;AAEvC,UAAI,UAAU,KAAK,KAAK;AACtB,aAAK,OAAO;AACZ,eAAO;AAAA,MACT;AAEA,UAAI,IAAI,SAAS;AAEjB,WAAK,QAAQ,SAAS,KAAK;AAC3B,WAAK,QAAQ,KAAK,UAAU,KAAK,QAAQ,KAAK,IAAI,KAAK,IAAI,kBAAkB,IAAI,CAAC,IAAI;AAEtF,aAAO;AAAA,IACT;AAEA,aAAS,UAAU,SAAS,WAAY;AACtC,UAAID,KAAI,KAAK,KAAK,KAAK,MAAM,KAAK,OAAO,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK;AAC5E,aAAOA,OAAM,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,IAAIA;AAAA,IAC1C;AAEA,aAAS,UAAU,OAAO,WAAY;AACpC,UAAI,KAAK,SAAS,GAAI,QAAO;AAE7B,UAAI,eAAe,KAAK,UAAU;AAClC,UAAI,OAAO,gBAAgB,KAAK,KAAK;AAErC,aAAO,SAAS,IAAI;AAClB,aAAK,QAAQ,aAAa,QAAQ,EAAE,KAAK,IAAI;AAC7C,eAAO,gBAAgB,KAAK,KAAK;AAEjC,YAAI,SAAS,IAAI;AACf,eAAK,OAAO,KAAK,WAAW,KAAK,IAAI;AACrC,cAAI,KAAK,SAAS,GAAI,QAAO;AAE7B,eAAK,QAAQ,aAAa,QAAQ,KAAK,IAAI;AAC3C,iBAAO,gBAAgB,KAAK,KAAK;AAAA,QACnC;AAAA,MACF;AAEA,WAAK,SAAS,kBAAkB,IAAI;AAEpC,UAAI,IAAI,IAAI,KAAK,OAAO;AACxB,aAAO,IAAI,KAAK,MAAM,IAAI;AAAA,IAC5B;AAEA,aAAS,UAAU,OAAO,WAAY;AACpC,UAAI,KAAK,SAAS,GAAI,QAAO;AAE7B,UAAI,OAAO,gBAAgB,KAAK,KAAK;AACrC,UAAI,IAAI,IAAI,KAAK,OAAO;AACxB,aAAO,IAAI,KAAK,MAAM,IAAI;AAAA,IAC5B;AAEA,aAAS,UAAU,aAAa,SAAU,OAAO;AAC/C,UAAI,gBAAgB,KAAK,UAAU;AACnC,UAAI,UAAU,KAAK;AACnB,UAAI,MAAM,KAAK,UAAU;AACzB,UAAI,IAAI,QAAQ;AAEhB,UAAI,KAAK,MAAM,QAAQ,KAAK,EAAE;AAE9B,UAAI,WAAW,cAAc,QAAQ,IAAI,KAAK,IAAI,mBAAmB,CAAC;AAEtE,aAAO,iBAAiB,QAAQ,MAAM,IAAI;AACxC,YAAI,IAAI,OAAO,GAAG;AAChB,cAAI,KAAK;AAAA,QACX,OAAO;AACL,cAAI,KAAK;AACT,cAAI,OAAO;AAAA,QACb;AAEA,YAAI,UAAU,GAAG,KAAK,SAAS;AAC7B,iBAAO,UAAU,GAAG,KAAK,WAAW,SAAS,GAAG,EAAG,KAAI,UAAU;AACjE,cAAI,UAAU,GAAG,KAAK,QAAS,QAAO;AAAA,QACxC;AAEA,mBAAW,cAAc,QAAQ,IAAI,KAAK;AAAA,MAC5C;AAEA,aAAO,IAAI,SAAS,GAAG;AACrB,YAAI,iBAAiB,QAAQ,IAAI,EAAG,KAAI,UAAU;AAAA,YAC7C,KAAI,WAAW;AAEpB,mBAAW,cAAc,QAAQ,IAAI,KAAK;AAAA,MAC5C;AAEA,UAAI,OAAO,iBAAiB,QAAQ;AACpC,UAAI,SAAS,GAAI,QAAO;AAExB,UAAI,OAAO,IAAI,QAAQ,IAAI;AAE3B,aAAO,QAAQ,QAAQ,QAAQ,IAAI;AAAA,IACrC;AAEA,aAAS,UAAW,KAAK;AACvB,aAAO,IAAI,QAAQ,IAAI,SAAS,IAAI;AAAA,IACtC;AAEA,aAAS,SAAU,KAAK;AACtB,aAAO,IAAI,QAAQ;AAAA,IACrB;AAEA,aAAS,cAAe,GAAG;AACzB,cAAQ,GAAG;AAAA,QACT,KAAK;AAAK,iBAAO;AAAA,QACjB,KAAK;AAAG,iBAAO;AAAA,QACf;AAAS,iBAAO;AAAA,MAClB;AAAA,IACF;AAAA;AAAA;;;ACtUA;AAAA;AAAA,QAAI,OAAO;AACX,QAAI,WAAW;AAEf,WAAO,UAAU;AAEjB,aAAS,UAAW,MAAM;AACxB,UAAI,EAAE,gBAAgB,WAAY,QAAO,IAAI,UAAU,IAAI;AAC3D,WAAK,WAAW,QAAQ,SAAS;AAAA,IACnC;AAEA,cAAU,UAAU,QAAQ,SAAU,OAAO,MAAM;AACjD,UAAI,CAAC,KAAM,QAAO,CAAC;AAEnB,UAAI,QAAQ,CAAC;AACb,UAAI,aAAa,KAAK,QAAQ,IAAI,UAAU;AAC5C,UAAI,SAAS,KAAK,UAAU;AAE5B,UAAI,CAAC,KAAK,IAAI,KAAK,EAAG,QAAO;AAC7B,UAAI,KAAK,KAAM,OAAM,KAAK,KAAK;AAC/B,UAAI,WAAW,EAAG,QAAO,EAAE,OAAc,YAAY,EAAE;AAEvD,UAAI,QAAQ;AACZ,UAAI,UAAU;AACd,UAAI,OAAO;AACX,UAAI,UAAU,SAAS;AACvB,eAAS,WAAW,MAAM;AAE1B,aAAO,QAAQ;AACb,YAAI,WAAW,KAAK,SAAS;AAC3B,cAAI,KAAK,IAAI,IAAI,EAAG,YAAW,IAAI,IAAI;AAKvC,cAAI,KAAK,QAAQ,IAAI,IAAI,KAAM,QAAO,KAAK,QAAQ,IAAI;AACvD,kBAAQ,KAAK,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC;AAC/C,mBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,gBAAI,KAAK,IAAI,MAAM,CAAC,CAAC,EAAG,YAAW,IAAI,MAAM,CAAC,CAAC;AAAA,UACjD;AACA;AAAA,QACF;AAEA,kBAAU,KAAK,QAAQ,IAAI;AAC3B,YAAI,SAAS,GAAG;AACd,cAAI,KAAK,IAAI,OAAO,EAAG,YAAW,IAAI,OAAO;AAAA,QAC/C;AACA,eAAO,KAAK,OAAO,IAAI;AACvB,iBAAS,WAAW,MAAM;AAAA,MAC5B;AAEA,aAAO;AAEP,aAAO,CAAC,WAAW,IAAI,IAAI,GAAG;AAC5B,kBAAU,KAAK,QAAQ,IAAI;AAC3B,YAAI,CAAC,KAAK,IAAI,OAAO,GAAG;AAEtB,cAAI,aAAa,KAAK,WAAW,IAAI;AACrC,uBAAa,YAAY,OAAO,MAAM,UAAU;AAChD,iBAAO,EAAE,OAAc,WAAuB;AAAA,QAChD,OAAO;AACL,cAAI,CAAC,WAAW,IAAI,OAAO,EAAG,OAAM,KAAK,OAAO;AAAA,QAClD;AAEA,eAAO,KAAK,OAAO,IAAI;AAAA,MACzB;AAEA,aAAO,EAAE,OAAc,YAAY,EAAE;AAAA,IACvC;AAEA,cAAU,UAAU,SAAS,SAAU,OAAO;AAC5C,UAAI,KAAK,IAAI,KAAK,EAAG,QAAO;AAE5B,UAAI,SAAS;AACb,UAAI,OAAO,KAAK,QAAQ,KAAK;AAC7B,UAAI,MAAM,KAAK,IAAI,OAAO,GAAG,KAAK,SAAS,MAAM;AAEjD,UAAI,MAAM;AACV,UAAI,QAAQ,KAAK,MAAM,KAAK;AAC5B,UAAI,SAAS,KAAK,OAAO,MAAM,OAAO;AAEtC,aAAO,KAAK,UAAU,IAAI,IAAI,OAAO,KAAK,SAAS,MAAM,IAAI,GAAG;AAC9D,YAAI,KAAK,IAAI,IAAI,GAAG;AAClB,oBAAU;AAAA,QACZ;AACA,YAAI,KAAK,IAAI,MAAM,GAAG;AACpB,oBAAU,IAAI;AACd,cAAI,EAAE,SAAS,GAAI,WAAU;AAC7B,cAAI,SAAS,MAAM,IAAI,IAAK,QAAO;AACnC,iBAAO;AAAA,QACT;AACA,eAAO,KAAK,QAAQ,MAAM;AAC1B,iBAAS,KAAK,OAAO,MAAM,OAAO;AAClC,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT;AAEA,cAAU,UAAU,SAAS,WAAY;AACvC,UAAI,MAAM;AACV,UAAI,OAAO;AACX,UAAI,MAAM,KAAK,SAAS;AAExB,aAAO,KAAK,UAAU,IAAI,IAAI,KAAK;AACjC,eAAO,KAAK,OAAO,IAAI;AACvB,YAAI,KAAK,IAAI,IAAI,EAAG,OAAM;AAAA,MAC5B;AAEA,cAAQ,KAAK,IAAI,GAAG,IAAI,KAAK,WAAW,GAAG,IAAI,KAAK;AAAA,IACtD;AAEA,cAAU,UAAU,QAAQ,WAAY;AACtC,aAAO,KAAK,UAAU,IAAI,KAAK,OAAO,CAAC;AAAA,IACzC;AAEA,cAAU,UAAU,aAAa,SAAU,OAAO,OAAO;AACvD,UAAI,WAAW,KAAK,IAAI,KAAK;AAC7B,UAAI,CAAC,SAAU,QAAO;AAItB,UAAI,QAAQ,KAAK,MAAM,KAAK;AAC5B,UAAI,MAAM;AACV,UAAI,SAAS,KAAK,OAAO,KAAK,OAAO;AACrC,aAAO,KAAK,IAAI,MAAM,KAAK,KAAK,IAAI,KAAK,QAAQ,GAAG,CAAC,GAAG;AACtD,cAAM;AACN,iBAAS,KAAK,OAAO,KAAK,OAAO;AAAA,MACnC;AAIA;AACA,aAAO,OAAO;AACZ,cAAM,KAAK,UAAU,KAAK,MAAM,OAAO,KAAK,OAAO,KAAK,KAAK,IAAI,CAAC,GAAG,KAAK;AAC1E;AAEA,eAAO,CAAC,KAAK,IAAI,GAAG,KAAK,MAAO,OAAM,KAAK,UAAU,KAAK,OAAO;AACjE,YAAI,SAAS,KAAK,IAAI,GAAG,EAAG,OAAM,KAAK,GAAG;AAAA,MAC5C;AAEA,aAAO,KAAK,IAAI,GAAG,IAAI,MAAM,IAAI;AAAA,IACnC;AAEA,cAAU,UAAU,MAAM,SAAU,OAAO;AACzC,aAAO,KAAK,SAAS,IAAI,KAAK;AAAA,IAChC;AAEA,cAAU,UAAU,WAAW,SAAU,KAAK;AAC5C,YAAM,aAAa,IAAI,KAAK,OAAO;AACnC,YAAM,QAAQ,KAAK,UAAU,GAAG;AAEhC,eAAS,IAAI,KAAK,IAAI,YAAY,KAAK;AACrC,aAAK,SAAS,IAAI,GAAG,KAAK;AAAA,MAC5B;AAEA,iBAAW,QAAQ,OAAO;AACxB,YAAI,IAAI,KAAK,OAAO,IAAI;AACxB,eAAO,IAAI,KAAK;AACd,eAAK,SAAS,IAAI,GAAG,KAAK;AAC1B,cAAI,KAAK,OAAO,CAAC;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAEA,cAAU,UAAU,MAAM,SAAU,OAAO;AACzC,UAAI,CAAC,KAAK,SAAS,IAAI,OAAO,IAAI,EAAG,QAAO;AAC5C,aAAO,KAAK,SAAS,IAAI,KAAK,QAAQ,KAAK,CAAC,GAAG;AAC7C,gBAAQ,KAAK,OAAO,KAAK;AACzB,YAAI,CAAC,KAAK,SAAS,IAAI,OAAO,IAAI,EAAG;AAAA,MACvC;AACA,aAAO;AAAA,IACT;AAEA,aAAS,WAAY,GAAG;AACtB,cAAQ,KAAK,IAAI,MAAM;AAAA,IACzB;AAEA,aAAS,aAAc,YAAY,OAAO,MAAM,YAAY;AAC1D,UAAI,QAAQ,KAAK,UAAU,UAAU;AACrC,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,YAAI,MAAM,CAAC,MAAM,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,CAAC,EAAG,OAAM,KAAK,MAAM,CAAC,CAAC;AAAA,MACzE;AAAA,IACF;AAAA;AAAA;;;ACtLA;AAAA;AACA,QAAI,kBAAkB,WAAY;AAChC,UAAI;AACF,YAAI,CAAC,OAAO,WAAW,QAAQ,GAAG;AAChC,iBAAO;AAAA,QACT;AAEA,YAAI,MAAM,OAAO,QAAQ,OAAO,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC;AAEvD,YAAI,KAAK,MAAM,MAAM;AAErB,eAAQ,IAAI,SAAS,KAAK,MAAM;AAAA,MAClC,SAAS,GAAG;AACV,eAAO;AAAA,MACT;AAAA,IACF,GAAE;AAEF,aAAS,aAAc,KAAK;AAC1B,aAAQ,IAAI,WAAW,KAAK,IAAI,WAAW,CAAC,IAAI;AAAA,IAClD;AAEA,aAAS,eAAgB,QAAQ,KAAK,OAAO,KAAK;AAChD,UAAI,QAAQ,KAAK,MAAM,OAAO,QAAQ;AACpC,cAAM,IAAI,WAAW,oBAAoB;AAAA,MAC3C;AAEA,cAAQ,UAAU;AAClB,YAAM,QAAQ,SAAY,OAAO,SAAS,QAAQ;AAElD,UAAI,MAAM,OAAO;AACf,eAAO,KAAK,KAAK,OAAO,GAAG;AAAA,MAC7B;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,eAAgB,QAAQ,KAAK,OAAO,KAAK;AAChD,UAAI,QAAQ,KAAK,MAAM,OAAO,QAAQ;AACpC,cAAM,IAAI,WAAW,oBAAoB;AAAA,MAC3C;AAEA,UAAI,OAAO,OAAO;AAChB,eAAO;AAAA,MACT;AAEA,cAAQ,UAAU;AAClB,YAAM,QAAQ,SAAY,OAAO,SAAS,QAAQ;AAElD,UAAI,MAAM;AACV,UAAI,MAAM,IAAI;AACd,aAAO,OAAQ,MAAM,KAAM;AACzB,YAAI,KAAK,QAAQ,GAAG;AACpB,eAAO;AAAA,MACT;AAEA,UAAI,QAAQ,KAAK;AACf,YAAI,KAAK,QAAQ,KAAK,GAAG,MAAM,GAAG;AAAA,MACpC;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,KAAM,QAAQ,KAAK,OAAO,KAAK,UAAU;AAChD,UAAI,gBAAgB;AAClB,eAAO,OAAO,KAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAC9C;AAEA,UAAI,OAAO,QAAQ,UAAU;AAC3B,eAAO,eAAe,QAAQ,KAAK,OAAO,GAAG;AAAA,MAC/C;AAEA,UAAI,OAAO,QAAQ,UAAU;AAC3B,YAAI,OAAO,UAAU,UAAU;AAC7B,qBAAW;AACX,kBAAQ;AACR,gBAAM,OAAO;AAAA,QACf,WAAW,OAAO,QAAQ,UAAU;AAClC,qBAAW;AACX,gBAAM,OAAO;AAAA,QACf;AAEA,YAAI,aAAa,UAAa,OAAO,aAAa,UAAU;AAC1D,gBAAM,IAAI,UAAU,2BAA2B;AAAA,QACjD;AAEA,YAAI,aAAa,UAAU;AACzB,qBAAW;AAAA,QACb;AAEA,YAAI,OAAO,aAAa,YAAY,CAAC,OAAO,WAAW,QAAQ,GAAG;AAChE,gBAAM,IAAI,UAAU,uBAAuB,QAAQ;AAAA,QACrD;AAEA,YAAI,QAAQ,IAAI;AACd,iBAAO,eAAe,QAAQ,GAAG,OAAO,GAAG;AAAA,QAC7C;AAEA,YAAI,aAAa,GAAG,GAAG;AACrB,iBAAO,eAAe,QAAQ,IAAI,WAAW,CAAC,GAAG,OAAO,GAAG;AAAA,QAC7D;AAEA,cAAM,IAAI,OAAO,KAAK,QAAQ;AAAA,MAChC;AAEA,UAAI,OAAO,SAAS,GAAG,GAAG;AACxB,eAAO,eAAe,QAAQ,KAAK,OAAO,GAAG;AAAA,MAC/C;AAGA,aAAO,eAAe,QAAQ,GAAG,OAAO,GAAG;AAAA,IAC7C;AAEA,WAAO,UAAU;AAAA;AAAA;;;AChHjB;AAAA;AAAA,QAAI,aAAa;AACjB,QAAI,cAAc;AAElB,WAAO,UAAU,SAAS,MAAO,MAAM,MAAM,UAAU;AACrD,UAAI,OAAO,SAAS,UAAU;AAC5B,cAAM,IAAI,UAAU,kCAAkC;AAAA,MACxD;AAEA,UAAI,OAAO,GAAG;AACZ,cAAM,IAAI,WAAW,sCAAsC;AAAA,MAC7D;AAEA,UAAI,OAAO,OAAO;AAChB,eAAO,OAAO,MAAM,MAAM,MAAM,QAAQ;AAAA,MAC1C;AAEA,UAAI,SAAS,YAAY,IAAI;AAE7B,UAAI,SAAS,GAAG;AACd,eAAO;AAAA,MACT;AAEA,UAAI,SAAS,QAAW;AACtB,eAAO,WAAW,QAAQ,CAAC;AAAA,MAC7B;AAEA,UAAI,OAAO,aAAa,UAAU;AAChC,mBAAW;AAAA,MACb;AAEA,aAAO,WAAW,QAAQ,MAAM,QAAQ;AAAA,IAC1C;AAAA;AAAA;;;AC/BA;AAAA;AAAA,QAAI,cAAc;AAElB,QAAI,cAAc,KAAK,IAAI,GAAG,EAAE;AAEhC,YAAQ,iBAAiB,WAAY;AACnC,aAAO;AAAA,IACT;AAEA,YAAQ,SAAS,SAAU,KAAK,KAAK,QAAQ;AAC3C,UAAI,CAAC,IAAK,OAAM,YAAY,CAAC;AAC7B,UAAI,CAAC,OAAQ,UAAS;AAEtB,UAAI,MAAM,KAAK,MAAM,MAAM,WAAW;AACtC,UAAI,MAAM,MAAM,MAAM;AAEtB,UAAI,cAAc,KAAK,MAAM;AAC7B,UAAI,cAAc,KAAK,SAAS,CAAC;AACjC,aAAO;AAAA,IACT;AAEA,YAAQ,SAAS,SAAU,KAAK,QAAQ;AACtC,UAAI,CAAC,OAAQ,UAAS;AAEtB,UAAI,MAAM,IAAI,aAAa,MAAM;AACjC,UAAI,MAAM,IAAI,aAAa,SAAS,CAAC;AAErC,aAAO,MAAM,cAAc;AAAA,IAC7B;AAEA,YAAQ,OAAO,QAAQ;AACvB,YAAQ,OAAO,QAAQ;AAAA;AAAA;;;AC9BvB;AAAA;AAAA,QAAM,wBAAwB,OAAO,OAAO;AAE5C,QAAM,kBAAN,MAAsB;AAAA,MACpB,YAAa,QAAQ,MAAM;AACzB,aAAK,OAAO;AACZ,aAAK,SAAS;AAAA,MAChB;AAAA,MAEA,IAAI,QAAS;AACX,eAAO,KAAK,OAAO;AAAA,MACrB;AAAA,MAEA,IAAK,KAAK,OAAO;AACf,eAAO,KAAK,OAAO,KAAK,KAAK,MAAM,KAAK,KAAK;AAAA,MAC/C;AAAA,MAEA,IAAK,KAAK;AACR,eAAO,KAAK,OAAO,KAAK,KAAK,MAAM,GAAG;AAAA,MACxC;AAAA,MAEA,IAAK,KAAK;AACR,eAAO,KAAK,OAAO,KAAK,KAAK,MAAM,GAAG;AAAA,MACxC;AAAA,IACF;AAEA,WAAO,UAAU,MAAM,eAAe;AAAA,MACpC,YAAa,OAAO,CAAC,GAAG;AACtB,aAAK,cAAc,KAAK,eAAe;AACvC,aAAK,UAAU,KAAK;AACpB,aAAK,eAAe,KAAK,gBAAgB;AAEzC,aAAK,iBAAiB;AACtB,aAAK,eAAe,IAAI,gBAAgB,MAAM,KAAK,gBAAgB;AAEnE,aAAK,SAAS;AACd,aAAK,SAAS,oBAAI,IAAI;AACtB,aAAK,iBAAiB;AACtB,aAAK,iBAAiB;AAAA,MACxB;AAAA,MAEA,IAAI,QAAS;AACX,eAAO;AAAA,UACL,eAAe,KAAK;AAAA,UACpB,eAAe,KAAK;AAAA,UACpB,cAAc,KAAK,SAAS,KAAK,OAAO,OAAO;AAAA,UAC/C,cAAc,KAAK,OAAO;AAAA,UAC1B,UAAU,KAAK;AAAA,QACjB;AAAA,MACF;AAAA,MAEA,QAAS,WAAW,KAAK;AACvB,eAAO,YAAY,MAAM;AAAA,MAC3B;AAAA,MAEA,MAAO;AACL,YAAI,KAAK,WAAW,KAAK,iBAAiB,EAAG,MAAK,QAAQ,KAAK,MAAM;AACrE,aAAK,SAAS,KAAK;AACnB,aAAK,SAAS,oBAAI,IAAI;AACtB,aAAK,iBAAiB,KAAK;AAC3B,aAAK,iBAAiB;AAAA,MACxB;AAAA,MAEA,KAAM,WAAW,KAAK,aAAa;AACjC,YAAI,CAAC,YAAa,eAAc,KAAK,QAAQ,WAAW,GAAG;AAC3D,eAAO,KAAK,OAAO,IAAI,WAAW,KAAM,KAAK,UAAU,KAAK,OAAO,IAAI,WAAW;AAAA,MACpF;AAAA,MAEA,KAAM,WAAW,KAAK,OAAO;AAC3B,cAAM,YAAY,KAAK,aAAa,KAAK;AACzC,cAAM,cAAc,KAAK,QAAQ,WAAW,GAAG;AAC/C,YAAI,KAAK,iBAAiB,YAAY,KAAK,aAAa;AACtD,eAAK,IAAI;AAAA,QACX;AACA,aAAK,OAAO,IAAI,aAAa,KAAK;AAClC,aAAK,kBAAkB;AAAA,MACzB;AAAA,MAEA,KAAM,WAAW,KAAK;AACpB,cAAM,cAAc,KAAK,QAAQ,WAAW,GAAG;AAC/C,YAAI,MAAM,KAAK,UAAU,KAAK,OAAO,IAAI,WAAW;AACpD,YAAI,KAAK;AACP,eAAK,OAAO,OAAO,WAAW;AAC9B,eAAK,kBAAkB,KAAK,aAAa,GAAG;AAAA,QAC9C;AACA,cAAM,KAAK,OAAO,IAAI,WAAW;AACjC,YAAI,KAAK;AACP,eAAK,OAAO,OAAO,WAAW;AAC9B,eAAK,kBAAkB,KAAK,aAAa,GAAG;AAAA,QAC9C;AAAA,MACF;AAAA,MAEA,IAAI,WAAY;AACd,eAAO,KAAK,iBAAiB,KAAK;AAAA,MACpC;AAAA,MAEA,YAAa;AACX,cAAM,QAAQ,IAAI,gBAAgB,MAAM,KAAK,gBAAgB;AAC7D,eAAO;AAAA,MACT;AAAA,MAEA,IAAK,KAAK,OAAO;AACf,eAAO,KAAK,aAAa,IAAI,KAAK,KAAK;AAAA,MACzC;AAAA,MAEA,IAAK,KAAK;AACR,eAAO,KAAK,aAAa,IAAI,GAAG;AAAA,MAClC;AAAA,MAEA,IAAK,KAAK;AACR,eAAO,KAAK,aAAa,IAAI,GAAG;AAAA,MAClC;AAAA,IACF;AAEA,aAAS,cAAe;AAGtB,aAAO;AAAA,IACT;AAAA;AAAA;;;ACrHA;AAAA;AAAA,QAAM,iBAAiB;AAEvB,QAAM,0BAA0B,QAAQ;AAExC,aAAS,YAAa,MAAM;AAC1B,UAAI,KAAK,UAAU,MAAO,QAAO,CAAC;AAElC,YAAM,YAAY,KAAK,SAAS,CAAC;AACjC,UAAI,UAAU,SAAS,UAAa,OAAO,UAAU,SAAS,UAAU;AACtE,cAAM,YAAY,UAAU,QAAQ,KAAK;AACzC,kBAAU,OAAO,IAAI,eAAe;AAAA,UAClC,aAAa,cAAc,SAAY,YAAY;AAAA,UACnD,cAAc,MAAM;AAAA,QACtB,CAAC;AAAA,MACH;AACA,UAAI,UAAU,SAAS,OAAW,QAAO;AACzC,UAAI,OAAO,UAAU,SAAS,UAAU;AACtC,kBAAU,OAAO,IAAI,eAAe;AAAA,UAClC,aAAa,UAAU;AAAA,UACvB,cAAc,SAAO,IAAI;AAAA,QAC3B,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AAEA,WAAO,UAAU;AAAA;AAAA;;;ACzBjB;AAAA;AAAA,QAAI,WAAW;AACf,QAAI,OAAO;AACX,QAAI,cAAc;AAElB,WAAO,UAAU;AAEjB,QAAI,QAAQ,CAAC;AAEb,aAAS,QAAS,QAAQ,MAAM;AAC9B,UAAI,EAAE,gBAAgB,SAAU,QAAO,IAAI,QAAQ,QAAQ,IAAI;AAE/D,YAAM,QAAQ,YAAY,IAAI;AAE9B,WAAK,YAAY,MAAM,QAAQ;AAC/B,WAAK,YAAY,MAAM,QAAQ;AAC/B,WAAK,MAAM;AACX,WAAK,YAAY;AACjB,WAAK,OAAO;AACZ,WAAK,OAAO;AACZ,WAAK,WAAW;AAChB,WAAK,aAAa;AAClB,WAAK,SAAS;AAAA,IAChB;AAEA,YAAQ,UAAU,UAAU,SAAU,OAAO,MAAM,OAAO,IAAI;AAC5D,UAAI,CAAC,GAAI,MAAK;AACd,UAAI,OAAO;AACX,UAAI,CAAC,KAAK,OAAQ,QAAO,GAAG,IAAI;AAChC,WAAK,WAAW,OAAO,OAAO,SAAU,KAAK,QAAQ,MAAM;AACzD,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,YAAI,SAAS,KAAK,OAAQ,QAAO,GAAG,IAAI,MAAM,sBAAsB,CAAC;AACrE,aAAK,KAAK,MAAM,QAAQ,MAAM,EAAE;AAAA,MAClC,CAAC;AAAA,IACH;AAEA,YAAQ,UAAU,UAAU,SAAU,OAAO,IAAI;AAC/C,UAAI,OAAO;AACX,UAAI,SAAS,KAAK,aAAa,KAAK,UAAU,IAAI,KAAK;AACvD,UAAI,OAAQ,QAAO,QAAQ,SAAS,IAAI,MAAM,MAAM;AACpD,WAAK,WAAW,OAAO,OAAO,SAAU,KAAK,QAAQ,MAAM;AACzD,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,aAAK,KAAK,KAAK,QAAQ,MAAM,CAACG,MAAK,SAAS;AAC1C,cAAIA,KAAK,QAAO,GAAGA,IAAG;AACtB,cAAI,KAAK,UAAW,MAAK,UAAU,IAAI,OAAO,IAAI;AAClD,iBAAO,GAAG,MAAM,IAAI;AAAA,QACtB,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,YAAQ,UAAU,gBAAgB,SAAU,OAAO,IAAI;AACrD,UAAI,OAAO;AAEX,WAAK,cAAc,OAAO,SAAU,KAAK,WAAW;AAClD,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,YAAI,QAAQ,SAAS,EAAG,QAAO,KAAK,cAAc,QAAQ,GAAG,EAAE;AAC/D,WAAG,MAAM,EAAE,OAAc,UAAqB,CAAC;AAAA,MACjD,CAAC;AAAA,IACH;AAEA,YAAQ,UAAU,eAAe,SAAU,OAAO,IAAI;AACpD,WAAK,cAAc,OAAO,SAAU,KAAK,WAAW;AAClD,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,YAAI,QAAQ,SAAS,EAAG,QAAO,GAAG,IAAI,MAAM,oBAAoB,CAAC;AACjE,WAAG,MAAM,SAAS;AAAA,MACpB,CAAC;AAAA,IACH;AAGA,YAAQ,UAAU,gBAAgB,SAAU,OAAO,IAAI;AACrD,WAAK,WAAW,KAAK,KAAK,KAAK,OAAO,IAAI,EAAE;AAAA,IAC9C;AAEA,YAAQ,UAAU,eAAe,SAAU,OAAO,WAAW,IAAI;AAC/D,WAAK,WAAW,MAAM,KAAK,KAAK,OAAO,WAAW,EAAE;AAAA,IACtD;AAEA,YAAQ,UAAU,mBAAmB,SAAU,OAAO,KAAK,IAAI;AAC7D,WAAK,WAAW,IAAI,KAAK,KAAK,QAAQ,MAAM,SAAS,IAAI,EAAE;AAAA,IAC7D;AAEA,YAAQ,UAAU,aAAa,SAAU,OAAO,aAAa,IAAI;AAC/D,UAAI,QAAQ,KAAK,UAAU,IAAI,KAAK;AACpC,UAAI,OAAO;AACX,UAAI,SAAS;AACb,UAAI,UAAU,MAAM;AACpB,UAAI,QAAQ;AACZ,UAAI,MAAM,IAAI;AAEd,UAAI,CAAC,SAAS;AACZ,kBAAU;AACV,eAAO,MAAM,IAAI;AACjB;AAAA,MACF;AAEA,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,YAAI,OAAO,SAAS,aAAa,MAAM,CAAC,CAAC;AACzC,YAAI,KAAM,QAAO,MAAM,IAAI;AAAA,YACtB,MAAK,QAAQ,MAAM,CAAC,GAAG,MAAM;AAAA,MACpC;AAEA,eAAS,OAAQ,KAAKC,OAAM;AAC1B,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,WAAG,MAAM,QAAQA,MAAK,IAAI;AAAA,MAC5B;AAEA,eAAS,OAAQ,KAAKA,OAAM;AAC1B,YAAI,IAAK,SAAQ;AACjB,YAAIA,MAAM,WAAUA,MAAK;AACzB,YAAI,EAAE,QAAS;AAEf,YAAI,MAAO,QAAO,GAAG,KAAK;AAE1B,YAAI,OAAO,SAAS,aAAa,GAAG;AACpC,YAAI,KAAM,QAAO,MAAM,IAAI;AAAA,YACtB,MAAK,QAAQ,KAAK,MAAM;AAAA,MAC/B;AAAA,IACF;AAGA,YAAQ,UAAU,eAAe,SAAU,OAAO,GAAG,IAAI;AACvD,UAAI,SAAS,IAAI,MAAM,CAAC;AACxB,UAAI,QAAQ,IAAI,MAAM,CAAC;AACvB,UAAI,OAAO;AAEX,WAAK,WAAW,OAAO,OAAO,SAAU,KAAK,QAAQ,MAAM;AACzD,YAAI,IAAK,QAAO,GAAG,GAAG;AAEtB;AACA;AAEA,YAAI,KAAK,EAAG,QAAO,OAAO,MAAM,IAAI;AACpC,aAAK,KAAK,KAAK,KAAK,KAAK,OAAO,KAAK,IAAI,IAAI,MAAM;AAEnD,iBAAS,OAAQD,MAAK,KAAK;AACzB,cAAIA,KAAK,QAAO,GAAGA,IAAG;AAEtB,cAAI,QAAQ,MAAM,CAAC,IAAI;AAEvB,cAAI,KAAK;AACP,qBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,oBAAM,CAAC,IAAI,SAAS,OAAO,KAAK,MAAM,IAAI,KAAK,EAAE;AACjD,uBAAS,MAAM,CAAC;AAAA,YAClB;AAAA,UACF;AAEA,eAAK,KAAK,KAAK,QAAQ,OAAO,MAAM;AAAA,QACtC;AAEA,iBAAS,OAAQA,MAAK,KAAK;AACzB,cAAIA,KAAK,QAAO,GAAGA,IAAG;AACtB,cAAI,QAAQ;AACZ,mBAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,mBAAO,CAAC,IAAI,IAAI,MAAM,OAAO,SAAS,MAAM,CAAC,CAAC;AAAA,UAChD;AAEA,aAAG,MAAM,MAAM;AAAA,QACjB;AAAA,MACF,CAAC;AAAA,IACH;AAEA,YAAQ,UAAU,UAAU,SAAU,OAAO,IAAI;AAC/C,UAAI,KAAK,WAAW;AAClB,YAAI,SAAS,KAAK,UAAU,IAAI,KAAK;AACrC,YAAI,OAAQ,QAAO,GAAG,MAAM,MAAM;AAAA,MACpC;AAEA,UAAI,OAAO;AAEX,WAAK,KAAK,KAAK,KAAK,KAAK,OAAO,IAAI,SAAU,KAAK,KAAK;AACtD,YAAI,IAAK,QAAO,GAAG,GAAG;AAEtB,YAAI,OAAO,IAAI,MAAM,GAAG,EAAE;AAC1B,YAAI,OAAO,SAAS,OAAO,KAAK,EAAE;AAElC,YAAI,CAAC,QAAQ,QAAQ,IAAI,EAAG,QAAO,GAAG,IAAI,MAAM,eAAe,CAAC;AAEhE,YAAI,MAAM,IAAI,KAAK,OAAO,KAAK,YAAY,UAAU,MAAM,EAAE,IAAI,MAAM,MAAM,IAAI;AACjF,YAAI,KAAK,UAAW,MAAK,UAAU,IAAI,OAAO,GAAG;AACjD,WAAG,MAAM,GAAG;AAAA,MACd,CAAC;AAAA,IACH;AAEA,YAAQ,UAAU,eAAe,SAAU,OAAO,OAAO,IAAI;AAC3D,UAAI,CAAC,GAAI,MAAK;AAEd,UAAI,MAAM,OAAO,MAAM,MAAM,SAAS,EAAE;AAExC,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,YAAI,SAAS,IAAI;AACjB,YAAI,OAAO,MAAM,CAAC;AAClB,YAAI,CAAC,KAAM;AACX,aAAK,KAAK,KAAK,KAAK,MAAM;AAC1B,iBAAS,OAAO,KAAK,MAAM,KAAK,KAAK,MAAM;AAAA,MAC7C;AAEA,WAAK,KAAK,MAAM,KAAK,KAAK,OAAO,KAAK,EAAE;AAAA,IAC1C;AAEA,YAAQ,UAAU,UAAU,SAAU,OAAO,MAAM,IAAI;AACrD,UAAI,CAAC,GAAI,MAAK;AAMd,UAAI,MAAM,OAAO,YAAY,EAAE;AAE/B,WAAK,KAAK,KAAK,KAAK,CAAC;AACrB,eAAS,OAAO,KAAK,MAAM,KAAK,EAAE;AAClC,WAAK,KAAK,MAAM,KAAK,KAAK,OAAO,KAAK,EAAE;AAAA,IAC1C;AAEA,YAAQ,UAAU,cAAc,SAAU,QAAQ,MAAM,IAAI;AAC1D,WAAK,SAAS,MAAM,KAAK,QAAQ,MAAM,EAAE;AAAA,IAC3C;AAEA,YAAQ,UAAU,QAAQ,SAAU,IAAI;AACtC,UAAI,CAAC,GAAI,MAAK;AACd,UAAI,UAAU;AACd,UAAI,QAAQ;AAEZ,YAAM,KAAK,UAAU,IAAI;AACzB,YAAM,KAAK,MAAM,IAAI;AACrB,YAAM,KAAK,MAAM,IAAI;AACrB,YAAM,KAAK,KAAK,IAAI;AACpB,YAAM,KAAK,WAAW,IAAI;AAC1B,YAAM,KAAK,YAAY,IAAI;AAE3B,eAAS,KAAM,KAAK;AAClB,YAAI,IAAK,SAAQ;AACjB,YAAI,EAAE,QAAS;AACf,WAAG,KAAK;AAAA,MACV;AAAA,IACF;AAEA,YAAQ,UAAU,UAAU,SAAU,IAAI;AACxC,UAAI,CAAC,GAAI,MAAK;AACd,UAAI,UAAU;AACd,UAAI,QAAQ;AAEZ,cAAQ,KAAK,UAAU,IAAI;AAC3B,cAAQ,KAAK,MAAM,IAAI;AACvB,cAAQ,KAAK,MAAM,IAAI;AACvB,cAAQ,KAAK,KAAK,IAAI;AACtB,cAAQ,KAAK,WAAW,IAAI;AAC5B,cAAQ,KAAK,YAAY,IAAI;AAE7B,eAAS,KAAM,KAAK;AAClB,YAAI,IAAK,SAAQ;AACjB,YAAI,EAAE,QAAS;AACf,WAAG,KAAK;AAAA,MACV;AAAA,IACF;AAEA,YAAQ,UAAU,UAAU,SAAU,MAAM,IAAI;AAC9C,UAAI,OAAO,SAAS,WAAY,QAAO,KAAK,QAAQ,CAAC,GAAG,IAAI;AAC5D,UAAI,CAAC,KAAK,IAAK,MAAK,MAAM,KAAK,OAAO,OAAO,IAAI;AACjD,WAAK,IAAI,KAAK,GAAG,IAAI,EAAE;AAAA,IACzB;AAEA,YAAQ,UAAU,OAAO,SAAU,MAAM,IAAI;AAC3C,UAAI,OAAO,SAAS,WAAY,QAAO,KAAK,KAAK,CAAC,GAAG,IAAI;AAEzD,UAAI,OAAO;AACX,UAAI,QAAQ;AACZ,UAAI,UAAU;AAEd,UAAI,CAAC,KAAK,IAAK,MAAK,MAAM,KAAK,OAAO,OAAO,IAAI;AACjD,UAAI,CAAC,KAAK,UAAW,MAAK,YAAY,KAAK,OAAO,cAAc,IAAI;AACpE,UAAI,CAAC,KAAK,KAAM,MAAK,OAAO,KAAK,OAAO,QAAQ,IAAI;AACpD,UAAI,CAAC,KAAK,KAAM,MAAK,OAAO,KAAK,OAAO,QAAQ,IAAI;AACpD,UAAI,CAAC,KAAK,SAAU,MAAK,WAAW,KAAK,OAAO,YAAY,IAAI;AAChE,UAAI,CAAC,KAAK,WAAY,MAAK,aAAa,KAAK,OAAO,cAAc,IAAI;AAEtE,UAAI,SAAS;AAAA,QACX,UAAU,CAAC;AAAA,QACX,kBAAkB;AAAA;AAAA,QAClB,WAAW;AAAA,QACX,KAAK;AAAA,MACP;AAEA,WAAK,SAAS,KAAK,GAAG,IAAI,SAAU,KAAK,GAAG;AAC1C,YAAI,OAAO,IAAI,SAAS,UAAW,QAAO,GAAG,GAAG;AAChD,YAAI,EAAG,QAAO,mBAAmB,EAAE,aAAa,CAAC;AACjD,aAAK,SAAS,MAAM,GAAG,OAAO,GAAG,OAAO,kBAAkB,IAAI,GAAG,SAAUA,MAAK;AAC9E,cAAIA,KAAK,QAAO,GAAGA,IAAG;AACtB,kBAAQ,KAAK,UAAU,IAAI,OAAO,kBAAkB,SAAUA,MAAK,OAAO;AACxE,gBAAI,MAAO,QAAO,WAAW;AAC7B,iBAAKA,IAAG;AAAA,UACV,CAAC;AAAA,QACH,CAAC;AAAA,MACH,CAAC;AAED,WAAK,WAAW,MAAM,GAAG,OAAO,GAAG,IAAI,SAAS,GAAG,IAAI;AACvD,WAAK,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI,SAAS,GAAG,IAAI;AAKjD,WAAK,UAAU,KAAK,GAAG,IAAI,SAAU,GAAG,MAAM;AAC5C,YAAI,KAAM,QAAO,YAAY;AAC7B,aAAK,IAAI;AAAA,MACX,CAAC;AAED,WAAK,IAAI,KAAK,GAAG,IAAI,SAAU,GAAG,MAAM;AACtC,YAAI,KAAM,QAAO,MAAM;AACvB,aAAK,IAAI;AAAA,MACX,CAAC;AAED,eAAS,KAAM,KAAK;AAClB,YAAI,IAAK,SAAQ;AACjB,YAAI,EAAE,QAAS;AACf,YAAI,MAAO,IAAG,KAAK;AAAA,YACd,IAAG,MAAM,MAAM;AAAA,MACtB;AAAA,IACF;AAEA,YAAQ,OAAO;AAEf,aAAS,OAAQ;AAAA,IAAC;AAElB,aAAS,UAAW,KAAK,SAAS;AAChC,UAAI,IAAI,OAAO,cAAc,QAAS,QAAO;AAC7C,YAAM,MAAM,OAAO,MAAM,IAAI,UAAU;AACvC,UAAI,KAAK,GAAG;AACZ,aAAO;AAAA,IACT;AAEA,aAAS,OAAQ,MAAM,MAAM,MAAM;AACjC,UAAI,MAAM,OAAO,MAAM,EAAE;AAGzB,UAAI,CAAC,IAAI;AACT,UAAI,CAAC,IAAI;AACT,UAAI,CAAC,IAAI;AACT,UAAI,CAAC,IAAI;AAGT,UAAI,CAAC,IAAI;AAGT,UAAI,cAAc,MAAM,CAAC;AAEzB,UAAI,MAAM;AAER,YAAI,CAAC,IAAI,KAAK;AACd,YAAI,MAAM,MAAM,CAAC;AAAA,MACnB;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,KAAM,OAAO,MAAM,MAAM;AAChC,WAAK,QAAQ;AACb,WAAK,OAAO;AACZ,WAAK,OAAO;AAAA,IACd;AAEA,aAAS,SAAU,OAAO,OAAO;AAC/B,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,YAAI,MAAM,CAAC,EAAE,UAAU,MAAO,QAAO,MAAM,CAAC;AAAA,MAC9C;AACA,aAAO;AAAA,IACT;AAEA,aAAS,QAAS,KAAK;AACrB,eAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,YAAI,IAAI,CAAC,EAAG,QAAO;AAAA,MACrB;AACA,aAAO;AAAA,IACT;AAEA,aAAS,MAAO,IAAI,IAAI;AACtB,UAAI,GAAG,MAAO,IAAG,MAAM,EAAE;AAAA,UACpB,IAAG;AAAA,IACV;AAEA,aAAS,QAAS,IAAI,IAAI;AACxB,UAAI,GAAG,QAAS,IAAG,QAAQ,EAAE;AAAA,UACxB,IAAG;AAAA,IACV;AAEA,aAAS,eAAgB,IAAI,QAAQ,UAAU,IAAI;AACjD,SAAG,KAAK,SAAU,KAAK,MAAM;AAC3B,YAAI,IAAK,QAAO,GAAG,MAAM,CAAC,CAAC;AAE3B,YAAI,SAAS,CAAC;AAEd,aAAK,MAAM,IAAI;AAEf,iBAAS,KAAMA,MAAK,OAAO;AACzB,cAAIA,KAAK,QAAO,GAAGA,IAAG;AAEtB,cAAI,OAAO;AACT,sBAAU,MAAM;AAChB,qBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,UAAU;AAC/C,qBAAO,KAAK,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;AAAA,YAC1C;AAAA,UACF;AAEA,cAAI,OAAO,KAAK,IAAI,KAAK,OAAO,QAAQ,KAAK,QAAQ;AACrD,cAAI,CAAC,KAAM,QAAO,GAAG,MAAM,MAAM;AAEjC,aAAG,KAAK,QAAQ,MAAM,IAAI;AAAA,QAC5B;AAAA,MACF,CAAC;AAAA,IACH;AAEA,aAAS,QAAS,IAAI,QAAQ,UAAU,IAAI;AAC1C,UAAI,GAAG,aAAa,KAAM,QAAO,eAAe,IAAI,QAAQ,UAAU,EAAE;AAExE,UAAI,OAAO,CAAC;AAEZ,SAAG,KAAK,QAAQ,UAAU,IAAI;AAE9B,eAAS,KAAM,KAAK,KAAK;AACvB,YAAI,IAAK,QAAO,GAAG,MAAM,IAAI;AAC7B,aAAK,KAAK,GAAG;AACb,WAAG,KAAK,SAAS,KAAK,SAAS,UAAU,UAAU,IAAI;AAAA,MACzD;AAAA,IACF;AAAA;AAAA;;;ACpaA;AAAA;AAAA,WAAO,UAAU,OAAO,IAAI,4BAA4B;AAAA;AAAA;;;ACAxD;AAAA;AACA,WAAO,UAAU,SAAS,WAAY,KAAK;AACzC,UAAI,OAAO,SAAS,GAAG,EAAG,OAAM,IAAI,SAAS,KAAK;AAClD,UAAI,OAAO,QAAQ,YAAY,IAAI,SAAS,GAAG;AAC7C,eAAO,IAAI,MAAM,GAAG,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE;AAAA,MAC9C;AACA,aAAO;AAAA,IACT;AAAA;AAAA;;;ACPA;AAAA;AAAA,WAAO,UAAU,MAAM,UAAU;AAAA,MAC/B,cAAe;AACb,aAAK,QAAQ;AACb,aAAK,OAAO,CAAC;AACb,aAAK,OAAO;AAAA,MACd;AAAA,MAEA,IAAI,UAAW;AACb,eAAO,KAAK,QAAQ;AAAA,MACtB;AAAA,MAEA,OAAQ,KAAK;AACX,YAAI,KAAK,SAAS,KAAM,OAAM,IAAI,MAAM,8CAA8C;AACtF,aAAK,OAAO;AAAA,MACd;AAAA,MAEA,OAAQ;AACN,aAAK;AAAA,MACP;AAAA,MAEA,SAAU,IAAI,KAAK,KAAK;AACtB,YAAI,KAAK,UAAU,EAAG,SAAQ,SAAS,YAAY,IAAI;AAAA,YAClD,MAAK;AACV,YAAI,GAAI,IAAG,KAAK,GAAG;AAAA,MACrB;AAAA,MAEA,kBAAmB;AACjB,YAAI,OAAO;AACX,aAAK,KAAK;AACV,eAAO,MAAM;AACX,cAAI,KAAM,QAAO;AACjB,iBAAO;AACP,eAAK,SAAS;AACd,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,MAEA,aAAc,IAAI,KAAK,KAAK;AAC1B,YAAI,EAAE,KAAK,MAAO;AAClB,eAAO,KAAK,SAAS,QAAQ,KAAK,KAAK,OAAQ,MAAK,OAAO,KAAK,KAAK,IAAI,CAAC;AAC1E,YAAI,GAAI,IAAG,KAAK,GAAG;AAAA,MACrB;AAAA,MAEA,UAAW;AACT,cAAM,MAAM,KAAK;AACjB,YAAI,IAAK;AACT,aAAK,OAAO;AACZ,eAAO,IAAI,OAAQ,KAAI,IAAI,EAAE;AAAA,MAC/B;AAAA,MAEA,MAAO,IAAI;AACT,YAAI,KAAK,SAAS,QAAQ,KAAK,UAAU,EAAG,MAAK,OAAO,EAAE;AAAA,YACrD,MAAK,KAAK,KAAK,EAAE;AAAA,MACxB;AAAA,MAEA,OAAQ,IAAI;AACV,YAAI,KAAK,SAAS,KAAM,IAAG;AAAA,YACtB,MAAK,KAAK,MAAM,EAAE;AAAA,MACzB;AAAA,IACF;AAEA,aAAS,WAAY,OAAO;AAC1B,YAAM,aAAa;AAAA,IACrB;AAAA;AAAA;;;AC/DA;AAAA;AACA,WAAO,UAAU,SAAS,iBAAkB,GAAG,GAAG;AAChD,UAAI,CAAC,EAAG,QAAO,CAAC;AAChB,UAAI,CAAC,EAAG,QAAO,CAAC;AAChB,aAAO,OAAO,QAAQ,GAAG,CAAC,MAAM;AAAA,IAClC;AAAA;AAAA;;;ACLA;AAAA;AAAA,WAAO,UAAU;AAEjB,QAAM,iBAAN,cAA6B,MAAM;AAAA,IAAC;AACpC,mBAAe,UAAU,OAAO;AAQhC,aAAS,OAAQ,GAAG,GAAG;AACrB,UAAI,CAAC,GAAG;AACN,YAAI,MAAM,IAAI,eAAe,CAAC;AAC9B,YAAI,MAAM,kBAAmB,OAAM,kBAAkB,KAAK,MAAM;AAChE,cAAM;AAAA,MACR;AAAA,IACF;AAAA;AAAA;;;ACjBA;AAAA;AAAA,QAAI,SAAS,WAAW;AACxB;AAEA,eAAS,YAAY,KAAK,MAAM;AAC9B,eAAO,QAAQ,QAAQ,eAAe;AAAA,MACxC;AAEA,UAAI;AACJ,UAAI;AACF,oBAAY;AAAA,MACd,SAAQ,GAAG;AAGT,oBAAY,WAAW;AAAA,QAAC;AAAA,MAC1B;AAEA,UAAI;AACJ,UAAI;AACF,oBAAY;AAAA,MACd,SAAQ,GAAG;AACT,oBAAY,WAAW;AAAA,QAAC;AAAA,MAC1B;AAEA,UAAI;AACJ,UAAI;AACF,wBAAgB;AAAA,MAClB,SAAQ,GAAG;AACT,wBAAgB,WAAW;AAAA,QAAC;AAAA,MAC9B;AAuBA,eAASE,OAAM,QAAQ,UAAU,OAAO,WAAW,sBAAsB;AACvE,YAAI,OAAO,aAAa,UAAU;AAChC,kBAAQ,SAAS;AACjB,sBAAY,SAAS;AACrB,iCAAuB,SAAS;AAChC,qBAAW,SAAS;AAAA,QACtB;AAGA,YAAI,aAAa,CAAC;AAClB,YAAI,cAAc,CAAC;AAEnB,YAAI,YAAY,OAAO,UAAU;AAEjC,YAAI,OAAO,YAAY;AACrB,qBAAW;AAEb,YAAI,OAAO,SAAS;AAClB,kBAAQ;AAGV,iBAAS,OAAOC,SAAQC,QAAO;AAE7B,cAAID,YAAW;AACb,mBAAO;AAET,cAAIC,WAAU;AACZ,mBAAOD;AAET,cAAI;AACJ,cAAI;AACJ,cAAI,OAAOA,WAAU,UAAU;AAC7B,mBAAOA;AAAA,UACT;AAEA,cAAI,YAAYA,SAAQ,SAAS,GAAG;AAClC,oBAAQ,IAAI,UAAU;AAAA,UACxB,WAAW,YAAYA,SAAQ,SAAS,GAAG;AACzC,oBAAQ,IAAI,UAAU;AAAA,UACxB,WAAW,YAAYA,SAAQ,aAAa,GAAG;AAC7C,oBAAQ,IAAI,cAAc,SAAU,SAAS,QAAQ;AACnD,cAAAA,QAAO,KAAK,SAAS,OAAO;AAC1B,wBAAQ,OAAO,OAAOC,SAAQ,CAAC,CAAC;AAAA,cAClC,GAAG,SAAS,KAAK;AACf,uBAAO,OAAO,KAAKA,SAAQ,CAAC,CAAC;AAAA,cAC/B,CAAC;AAAA,YACH,CAAC;AAAA,UACH,WAAWF,OAAM,UAAUC,OAAM,GAAG;AAClC,oBAAQ,CAAC;AAAA,UACX,WAAWD,OAAM,WAAWC,OAAM,GAAG;AACnC,oBAAQ,IAAI,OAAOA,QAAO,QAAQ,iBAAiBA,OAAM,CAAC;AAC1D,gBAAIA,QAAO,UAAW,OAAM,YAAYA,QAAO;AAAA,UACjD,WAAWD,OAAM,SAASC,OAAM,GAAG;AACjC,oBAAQ,IAAI,KAAKA,QAAO,QAAQ,CAAC;AAAA,UACnC,WAAW,aAAa,OAAO,SAASA,OAAM,GAAG;AAC/C,gBAAI,OAAO,aAAa;AAEtB,sBAAQ,OAAO,YAAYA,QAAO,MAAM;AAAA,YAC1C,OAAO;AAEL,sBAAQ,IAAI,OAAOA,QAAO,MAAM;AAAA,YAClC;AACA,YAAAA,QAAO,KAAK,KAAK;AACjB,mBAAO;AAAA,UACT,WAAW,YAAYA,SAAQ,KAAK,GAAG;AACrC,oBAAQ,OAAO,OAAOA,OAAM;AAAA,UAC9B,OAAO;AACL,gBAAI,OAAO,aAAa,aAAa;AACnC,sBAAQ,OAAO,eAAeA,OAAM;AACpC,sBAAQ,OAAO,OAAO,KAAK;AAAA,YAC7B,OACK;AACH,sBAAQ,OAAO,OAAO,SAAS;AAC/B,sBAAQ;AAAA,YACV;AAAA,UACF;AAEA,cAAI,UAAU;AACZ,gBAAI,QAAQ,WAAW,QAAQA,OAAM;AAErC,gBAAI,SAAS,IAAI;AACf,qBAAO,YAAY,KAAK;AAAA,YAC1B;AACA,uBAAW,KAAKA,OAAM;AACtB,wBAAY,KAAK,KAAK;AAAA,UACxB;AAEA,cAAI,YAAYA,SAAQ,SAAS,GAAG;AAClC,YAAAA,QAAO,QAAQ,SAAS,OAAO,KAAK;AAClC,kBAAI,WAAW,OAAO,KAAKC,SAAQ,CAAC;AACpC,kBAAI,aAAa,OAAO,OAAOA,SAAQ,CAAC;AACxC,oBAAM,IAAI,UAAU,UAAU;AAAA,YAChC,CAAC;AAAA,UACH;AACA,cAAI,YAAYD,SAAQ,SAAS,GAAG;AAClC,YAAAA,QAAO,QAAQ,SAAS,OAAO;AAC7B,kBAAI,aAAa,OAAO,OAAOC,SAAQ,CAAC;AACxC,oBAAM,IAAI,UAAU;AAAA,YACtB,CAAC;AAAA,UACH;AAEA,mBAAS,KAAKD,SAAQ;AACpB,gBAAI;AACJ,gBAAI,OAAO;AACT,sBAAQ,OAAO,yBAAyB,OAAO,CAAC;AAAA,YAClD;AAEA,gBAAI,SAAS,MAAM,OAAO,MAAM;AAC9B;AAAA,YACF;AACA,kBAAM,CAAC,IAAI,OAAOA,QAAO,CAAC,GAAGC,SAAQ,CAAC;AAAA,UACxC;AAEA,cAAI,OAAO,uBAAuB;AAChC,gBAAI,UAAU,OAAO,sBAAsBD,OAAM;AACjD,qBAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AAGvC,kBAAI,SAAS,QAAQ,CAAC;AACtB,kBAAI,aAAa,OAAO,yBAAyBA,SAAQ,MAAM;AAC/D,kBAAI,cAAc,CAAC,WAAW,cAAc,CAAC,sBAAsB;AACjE;AAAA,cACF;AACA,oBAAM,MAAM,IAAI,OAAOA,QAAO,MAAM,GAAGC,SAAQ,CAAC;AAChD,kBAAI,CAAC,WAAW,YAAY;AAC1B,uBAAO,eAAe,OAAO,QAAQ;AAAA,kBACnC,YAAY;AAAA,gBACd,CAAC;AAAA,cACH;AAAA,YACF;AAAA,UACF;AAEA,cAAI,sBAAsB;AACxB,gBAAI,mBAAmB,OAAO,oBAAoBD,OAAM;AACxD,qBAAS,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK;AAChD,kBAAI,eAAe,iBAAiB,CAAC;AACrC,kBAAI,aAAa,OAAO,yBAAyBA,SAAQ,YAAY;AACrE,kBAAI,cAAc,WAAW,YAAY;AACvC;AAAA,cACF;AACA,oBAAM,YAAY,IAAI,OAAOA,QAAO,YAAY,GAAGC,SAAQ,CAAC;AAC5D,qBAAO,eAAe,OAAO,cAAc;AAAA,gBACzC,YAAY;AAAA,cACd,CAAC;AAAA,YACH;AAAA,UACF;AAEA,iBAAO;AAAA,QACT;AAEA,eAAO,OAAO,QAAQ,KAAK;AAAA,MAC7B;AASA,MAAAF,OAAM,iBAAiB,SAAS,eAAe,QAAQ;AACrD,YAAI,WAAW;AACb,iBAAO;AAET,YAAI,IAAI,WAAY;AAAA,QAAC;AACrB,UAAE,YAAY;AACd,eAAO,IAAI,EAAE;AAAA,MACf;AAIA,eAAS,WAAW,GAAG;AACrB,eAAO,OAAO,UAAU,SAAS,KAAK,CAAC;AAAA,MACzC;AACA,MAAAA,OAAM,aAAa;AAEnB,eAAS,SAAS,GAAG;AACnB,eAAO,OAAO,MAAM,YAAY,WAAW,CAAC,MAAM;AAAA,MACpD;AACA,MAAAA,OAAM,WAAW;AAEjB,eAAS,UAAU,GAAG;AACpB,eAAO,OAAO,MAAM,YAAY,WAAW,CAAC,MAAM;AAAA,MACpD;AACA,MAAAA,OAAM,YAAY;AAElB,eAAS,WAAW,GAAG;AACrB,eAAO,OAAO,MAAM,YAAY,WAAW,CAAC,MAAM;AAAA,MACpD;AACA,MAAAA,OAAM,aAAa;AAEnB,eAAS,iBAAiB,IAAI;AAC5B,YAAI,QAAQ;AACZ,YAAI,GAAG,OAAQ,UAAS;AACxB,YAAI,GAAG,WAAY,UAAS;AAC5B,YAAI,GAAG,UAAW,UAAS;AAC3B,eAAO;AAAA,MACT;AACA,MAAAA,OAAM,mBAAmB;AAEzB,aAAOA;AAAA,IACP,GAAG;AAEH,QAAI,OAAO,WAAW,YAAY,OAAO,SAAS;AAChD,aAAO,UAAU;AAAA,IACnB;AAAA;AAAA;;;AChQA;AAAA;AACA,QAAM,EAAE,eAAe,eAAe,IAAI,UAAQ,yBAAyB;AAC3E,QAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,UAAQ,8BAA8B;AAE1C,QAAI,SAAS;AAEb,QAAI,SAAS;AACb,QAAI,WAAW;AACf,QAAI,SAAS;AAEb,WAAO,+CAA+C,MAAM;AAE5D,WAAO,gDAAgD,IAAI,QAAQ;AACnE,WAAO,6CAA6C,MAAM;AAE1D,WAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,QAAI,iBAAiB,cAAc,2CAA2C;AAC9E,aAAS,QAAS,KAAK,GAAG,GAAG,IAAI,WAAW;AAC1C,aAAO,IAAI,cAAc,UAAU,aAAa,QAAQ,iEAAiE;AACzH,aAAO,EAAE,eAAe,MAAM;AAC9B,aAAO,EAAE,eAAe,QAAQ;AAChC,aAAO,MAAM,OAAO,OAAO,GAAG,cAAc,IAAI;AAChD,qBAAe,cAAc;AAE7B,qBAAe,IAAI,GAAG,CAAC;AAEvB,cAAQ,eAAe,0CAA0C,IAAI,SAAS,GAAG,UAAU,aAAa,MAAM,GAAG,WAAW,IAAI,MAAM,gBAAgB,CAAC;AACvJ,cAAQ,YAAY,QAAQ,eAAe;AAE3C,qBAAe,cAAc;AAAA,IAC/B;AACA,YAAQ,eAAe;AACvB,YAAQ,YAAY;AAEpB,aAAS,QAAS,KAAK,GAAG,GAAG,IAAI,YAAY;AAC3C,aAAO,IAAI,cAAc,WAAW,aAAa,MAAM;AACvD,aAAO,EAAE,eAAe,MAAM;AAC9B,aAAO,EAAE,eAAe,QAAQ;AAChC,aAAO,MAAM,OAAO,OAAO,GAAG,cAAc,IAAI;AAChD,qBAAe,cAAc;AAE7B,qBAAe,IAAI,GAAG,CAAC;AAEvB,cAAQ,eAAe,0CAA0C,IAAI,SAAS,GAAG,WAAW,aAAa,MAAM,GAAG,MAAM,YAAY,IAAI,gBAAgB,CAAC;AACzJ,cAAQ,YAAY,QAAQ,eAAe;AAE3C,qBAAe,cAAc;AAAA,IAC/B;AACA,YAAQ,eAAe;AACvB,YAAQ,YAAY;AAEpB,QAAI,WAAW,IAAI,WAAW,CAAC,EAAE,KAAK,GAAI;AAC1C,QAAI,UAAU,IAAI,WAAW,CAAC;AAC9B,QAAI,QAAQ,IAAI,WAAW,EAAE;AAE7B,QAAI,kBAAkB,cAAc,SAAS,MAAM;AACnD,mBAAe,eAAe;AAC9B,aAAS,MAAO,KAAK,GAAG;AACtB,aAAO,IAAI,eAAe,MAAM;AAChC,aAAO,EAAE,eAAe,MAAM;AAC9B,qBAAe,eAAe;AAE9B,sBAAgB,IAAI,CAAC;AACrB,cAAQ,iBAAiB,GAAG,UAAU,SAAS,KAAK;AACpD,YAAM,eAAe,QAAQ;AAC7B,YAAM,YAAY,QAAQ;AAC1B,UAAI,IAAI,gBAAgB,SAAS,GAAG,MAAM,CAAC;AAC3C,qBAAe,eAAe;AAAA,IAChC;AACA,UAAM,eAAe;AACrB,UAAM,YAAY;AAAA;AAAA;;;ACpFlB;AAAA;AACA,QAAM,EAAE,eAAe,IAAI,UAAQ,yBAAyB;AAC5D,QAAM,EAAE,kBAAkB,eAAe,eAAe,IAAI,UAAQ,0BAA0B;AAE9F,QAAI,SAAS;AACb,QAAI,SAAS;AAEb,QAAI,WAAW,OAAO,SAAS,OAAO;AACtC,QAAI,WAAW,OAAO;AACtB,QAAI,SAAS,OAAO;AAEpB,WAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,QAAI,YAAY;AAChB,QAAI,UAAU,OAAO;AACrB,QAAI,cAAc;AAClB,QAAI,YAAY,cAAc,OAAO;AAErC,aAAS,cAAe,OAAO,KAAK;AAClC,aAAO,MAAM,eAAe,QAAQ;AACpC,aAAO,OAAO,OAAO,OAAO,IAAI,eAAe,OAAO,MAAM;AAE5D,UAAI,OAAO,MAAM;AACf,uBAAe,MAAM,SAAS,WAAW,OAAO,CAAC;AACjD;AAAA,MACF;AAEA,YAAM,IAAI,GAAG;AACb,qBAAe,MAAM,SAAS,aAAa,SAAS,CAAC;AAAA,IACvD;AAEA,aAAS,OAAQ,OAAO;AACtB,aAAO,MAAM,eAAe,QAAQ;AACpC,UAAI,IAAI,MAAM,SAAS,WAAW,OAAO;AACzC,aAAO,eAAe,CAAC,MAAM;AAAA,IAC/B;AAEA,aAAS,SAAU,OAAO,OAAO;AAC/B,aAAO,MAAM,eAAe,QAAQ;AACpC,aAAO,MAAM,eAAe,QAAQ;AAEpC,YAAM,IAAI,OAAO,WAAW;AAAA,IAC9B;AAEA,QAAI,WAAW,IAAI,WAAW,CAAC,EAAE,KAAK,GAAI;AAC1C,aAAS,cAAe,OAAO,KAAK,IAAI,WAAW;AACjD,aAAO,MAAM,eAAe,QAAQ;AACpC,aAAO,IAAI,cAAc,IAAI;AAC7B,aAAO,UAAU,cAAc,IAAI;AAEnC,UAAI,IAAI,MAAM,SAAS,aAAa,SAAS;AAC7C,UAAI,cAAc,GAAG,QAAQ,EAAG,OAAM,IAAI,MAAM,gBAAgB;AAEhE,UAAI,OAAO,KAAK,MAAM,OAAO;AAC3B,YAAI,IAAI,SAAS;AACjB,sBAAc,YAAY,UAAU;AACpC,sBAAc,eAAe,cAAc;AAC3C;AAAA,MACF;AAEA,UAAI,IAAI,MAAM,SAAS,WAAW,OAAO;AAEzC,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,oBAAc,YAAY,OAAO,QAAQ;AACzC,oBAAc,eAAe,OAAO,QAAQ;AAE5C,uBAAiB,CAAC;AAAA,IACpB;AACA,kBAAc,YAAY;AAC1B,kBAAc,eAAe;AAE7B,aAAS,cAAe,OAAO,KAAK,IAAI,YAAY;AAClD,aAAO,MAAM,eAAe,QAAQ;AACpC,aAAO,IAAI,cAAc,IAAI;AAC7B,aAAO,WAAW,cAAc,IAAI;AAEpC,UAAI,IAAI,MAAM,SAAS,aAAa,SAAS;AAC7C,UAAI,cAAc,GAAG,QAAQ,EAAG,OAAM,IAAI,MAAM,gBAAgB;AAEhE,UAAI,OAAO,KAAK,MAAM,OAAO;AAC3B,YAAI,IAAI,UAAU;AAClB,sBAAc,YAAY,WAAW;AACrC,sBAAc,eAAe,cAAc;AAC3C;AAAA,MACF;AAEA,UAAI,IAAI,MAAM,SAAS,WAAW,OAAO;AAEzC,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,oBAAc,YAAY,OAAO,QAAQ;AACzC,oBAAc,eAAe,OAAO,QAAQ;AAE5C,uBAAiB,CAAC;AAAA,IACpB;AACA,kBAAc,YAAY;AAC1B,kBAAc,eAAe;AAE7B,aAAS,MAAO,OAAO;AACrB,aAAO,MAAM,eAAe,QAAQ;AAEpC,UAAI,IAAI,MAAM,SAAS,WAAW,OAAO;AACzC,aAAO,MAAM,GAAG,CAAC;AACjB,YAAM,YAAY,OAAO,MAAM;AAC/B,YAAM,eAAe,OAAO,MAAM;AAAA,IACpC;AACA,UAAM,YAAY;AAClB,UAAM,eAAe;AAAA;AAAA;;;AChIrB,IAAAG,sBAAA;AAAA;AAAA,WAAO,WAAW;AAClB,WAAO,QAAQ;AACf,WAAO,QAAQ;AACf,WAAO,KAAK;AAEZ,WAAO,UAAU;AAEjB,aAAS,MAAO,GAAG,GAAG,GAAG;AACvB,aAAO,KAAK,GAAG,CAAC;AAAA,IAClB;AAEA,aAAS,SAAU,GAAG,GAAG,GAAG;AAC1B,aAAO,KAAK,GAAG,CAAC;AAAA,IAClB;AAEA,aAAS,MAAO,GAAG,GAAG;AACpB,aAAO,CAAC,GAAG,CAAC;AAAA,IACd;AAEA,aAAS,OAAQ,GAAG,GAAG;AACrB,UAAI,CAAC,EAAG,OAAM,IAAI,MAAM,KAAK,gBAAgB;AAAA,IAC/C;AAAA;AAAA;;;ACrBA;AAAA;AACA,QAAI,EAAE,eAAe,eAAe,IAAI,UAAQ,yBAAyB;AACzE,QAAI,EAAE,oBAAoB,yBAAyB,IAAI,UAAQ,qCAAqC;AACpG,QAAI,SAAS;AAEb,QAAI,UAAU;AACd,QAAI,WAAW;AACf,QAAI,UAAU,cAAc,WAAW,CAAC;AACxC,QAAI,UAAU,QAAQ,SAAS,WAAW,GAAG,WAAW,CAAC;AACzD,QAAI,cAAc,QAAQ,SAAS,WAAW,GAAG,WAAW,CAAC;AAC7D,QAAI,cAAc,QAAQ,SAAS,WAAW,GAAG,WAAW,CAAC;AAI7D,WAAO,UAAU,SAAS,KAAM,KAAK,MAAM,KAAK;AAC9C,aAAO,IAAI,eAAe,OAAO;AACjC,aAAO,IAAI,cAAc,IAAI;AAC7B,aAAO,MAAM,QAAQ,IAAI,IAAI,KAAK,MAAM,OAAK,EAAE,cAAc,IAAI,IAAI,KAAK,cAAc,IAAI;AAE5F,UAAI,IAAI,aAAa,UAAU;AAC7B,2BAAmB,QAAQ,SAAS,GAAG,OAAO,GAAG,GAAG;AACpD,uBAAe,QAAQ,SAAS,OAAO,CAAC;AAAA,MAC1C,OAAO;AAEL,gBAAQ,IAAI,GAAG;AACf,uBAAe,QAAQ,SAAS,IAAI,UAAU,CAAC;AAAA,MACjD;AAEA,eAAS,IAAI,GAAG,IAAI,QAAQ,YAAY,KAAK;AAC3C,oBAAY,CAAC,IAAI,KAAO,QAAQ,CAAC;AACjC,oBAAY,CAAC,IAAI,KAAO,QAAQ,CAAC;AAAA,MACnC;AACA,qBAAe,OAAO;AAEtB,+BAAyB,KAAK,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC;AACxD,qBAAe,WAAW;AAC1B,+BAAyB,KAAK,CAAC,WAAW,EAAE,OAAO,GAAG,CAAC;AACvD,qBAAe,WAAW;AAAA,IAC5B;AAEA,WAAO,QAAQ,QAAQ;AACvB,WAAO,QAAQ,WAAW;AAAA;AAAA;;;ACzC1B;AAAA;AACA,QAAM,EAAE,qBAAqB,mBAAmB,uBAAuB,IAAI,UAAQ,4BAA4B;AAC/G,QAAM,EAAE,yBAAyB,+BAA+B,kBAAkB,IAAI,UAAQ,oCAAoC;AAElI,QAAI,SAAS;AAEb,QAAI,QAAQ;AACZ,QAAI,QAAQ;AACZ,QAAI,QAAQ;AACZ,QAAI,UAAU;AAEd,WAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,aAAS,gBAAiB,IAAI,IAAI;AAChC,aAAO,GAAG,eAAe,KAAK;AAC9B,aAAO,GAAG,eAAe,KAAK;AAC9B,wBAAkB,IAAI,EAAE;AAAA,IAC1B;AAEA,aAAS,oBAAqB,IAAI,IAAI,MAAM;AAC1C,aAAO,GAAG,eAAe,KAAK;AAC9B,aAAO,GAAG,eAAe,KAAK;AAC9B,aAAO,KAAK,eAAe,KAAK;AAEhC,6BAAuB,IAAI,IAAI,IAAI;AAAA,IACrC;AAEA,aAAS,GAAI,QAAQ,KAAK,IAAI;AAC5B,aAAO,OAAO,eAAe,KAAK;AAClC,aAAO,IAAI,eAAe,KAAK;AAC/B,aAAO,GAAG,eAAe,KAAK;AAE9B;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;AC7CA;AAAA;AACA,QAAM,EAAE,eAAe,eAAe,IAAI,UAAQ,yBAAyB;AAC3E,QAAM,EAAE,yBAAyB,IAAI,UAAQ,qCAAqC;AAElF,QAAM,SAAS;AACf,QAAM,cAAc;AACpB,QAAM,KAAK;AAEX,QAAM,UAAU;AAChB,QAAM,WAAW;AAEjB,WAAO,YAAY,aAAa,UAAU,2BAA2B;AACrE,WAAO,YAAY,UAAU,SAAS,0BAA0B;AAEhE,WAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,aAAS,KAAM,KAAK,MAAM;AACxB,aAAO,IAAI,eAAe,OAAO;AACjC,aAAO,MAAM,QAAQ,IAAI,CAAC;AAE1B,+BAAyB,KAAK,IAAI;AAAA,IACpC;AAEA,aAAS,KAAM,KAAK,KAAK,MAAM;AAC7B,aAAO,YAAY,KAAK,MAAM,GAAG;AAAA,IACnC;AAEA,QAAM,UAAU,cAAc,OAAO;AACrC,QAAM,WAAW,IAAI,WAAW,CAAC,CAAI,CAAC;AACtC,QAAM,WAAW,IAAI,WAAW,CAAC,CAAI,CAAC;AACtC,QAAM,WAAW,IAAI,WAAW,CAAC,CAAI,CAAC;AAEtC,aAAS,KAAM,MAAM,MAAM,MAAM,aAAa,kBAAkB;AAC9D,aAAO,KAAK,eAAe,OAAO;AAClC,aAAO,KAAK,eAAe,OAAO;AAClC,aAAO,QAAQ,OAAO,OAAO,KAAK,eAAe,OAAO;AACxD,aAAO,YAAY,eAAe,OAAO;AACzC,aAAO,CAAC,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,EAAE,SAAS,iBAAiB,UAAU,CAAC;AAExE,qBAAe,OAAO;AACtB,WAAK,SAAS,aAAa,CAAC,gBAAgB,CAAC;AAC7C,WAAK,MAAM,SAAS,CAAC,QAAQ,CAAC;AAC9B,WAAK,MAAM,SAAS,CAAC,MAAM,QAAQ,CAAC;AAEpC,UAAI,QAAQ,MAAM;AAChB,aAAK,MAAM,SAAS,CAAC,MAAM,QAAQ,CAAC;AAAA,MACtC;AAEA,qBAAe,OAAO;AAAA,IACxB;AAAA;AAAA;;;ACtDA;AAAA;AACA,QAAM,EAAE,eAAe,eAAe,IAAI,UAAQ,yBAAyB;AAC3E,QAAI,SAAS;AACb,QAAI,cAAc;AAClB,QAAI,OAAO;AAEX,QAAI,WAAW,KAAK,UAAU,KAAK,UAAU,YAAY;AACzD,QAAI,UAAU,KAAK;AAEnB,WAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,QAAI,qBAAqB;AACzB,QAAI,mBAAmB,KAAK;AAC5B,QAAI,aAAa;AACjB,QAAI,WAAW,aAAa,KAAK;AACjC,QAAI,eAAe;AACnB,QAAI,aAAa,eAAe,YAAY;AAE5C,aAAS,oBAAqB,OAAO,cAAc;AACjD,aAAO,MAAM,eAAe,QAAQ;AACpC,aAAO,aAAa,cAAc,IAAI;AAEtC,qBAAe,KAAK;AACpB,UAAI,aAAa,cAAc,QAAS,OAAM,IAAI,cAAc,UAAU;AAAA,UACrE,MAAK,KAAK,MAAM,SAAS,YAAY,QAAQ,GAAG,CAAC,YAAY,CAAC;AAEnE,YAAM,SAAS,oBAAoB,gBAAgB,EAAE,IAAI,MAAM,SAAS,YAAY,QAAQ,CAAC;AAE7F,kBAAY,cAAc,MAAM,SAAS,cAAc,UAAU,GAAG,IAAI;AAAA,IAC1E;AAEA,QAAI,UAAU,cAAc,OAAO;AACnC,aAAS,OAAQ,OAAO,kBAAkB;AACxC,aAAO,MAAM,eAAe,QAAQ;AACpC,aAAO,iBAAiB,cAAc,IAAI;AAE1C,WAAK;AAAA,QACH,MAAM,SAAS,oBAAoB,gBAAgB;AAAA,QACnD;AAAA,QACA;AAAA,QACA,MAAM,SAAS,oBAAoB,gBAAgB;AAAA,QACnD;AAAA,MACF;AAGA,kBAAY,cAAc,MAAM,SAAS,cAAc,UAAU,GAAG,QAAQ,SAAS,GAAG,EAAE,CAAC;AAC3F,qBAAe,OAAO;AAAA,IACxB;AAEA,aAAS,QAAS,OAAO,MAAM;AAC7B,aAAO,MAAM,eAAe,QAAQ;AAEpC,UAAI,IAAI,MAAM,SAAS,YAAY,QAAQ;AAE3C,WAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC;AAAA,IACxB;AAEA,QAAI,WAAW,cAAc,OAAO;AACpC,aAAS,cAAe,OAAO,kBAAkB;AAC/C,aAAO,MAAM,eAAe,QAAQ;AACpC,aAAO,iBAAiB,cAAc,IAAI;AAE1C,WAAK;AAAA,QACH,MAAM,SAAS,oBAAoB,gBAAgB;AAAA,QACnD;AAAA,QACA;AAAA,QACA,MAAM,SAAS,oBAAoB,gBAAgB;AAAA,QACnD;AAAA,MACF;AAEA,cAAQ,OAAO,QAAQ;AACvB,qBAAe,QAAQ;AAGvB,kBAAY,cAAc,MAAM,SAAS,cAAc,UAAU,GAAG,QAAQ,SAAS,GAAG,EAAE,CAAC;AAC3F,qBAAe,OAAO;AAAA,IACxB;AAEA,aAAS,iBAAkB,OAAO,KAAK;AACrC,aAAO,MAAM,eAAe,QAAQ;AACpC,aAAO,IAAI,eAAe,OAAO;AAEjC,UAAI,IAAI,MAAM,SAAS,YAAY,QAAQ,CAAC;AAAA,IAC9C;AAGA,aAAS,eAAgB,OAAO,YAAY,WAAW;AACrD,aAAO,MAAM,eAAe,QAAQ;AACpC,aAAO,WAAW,cAAc,IAAI;AACpC,aAAO,UAAU,cAAc,IAAI;AAEnC,UAAI,SAAS,MAAM,SAAS,cAAc,UAAU;AACpD,UAAI,IAAI,MAAM,SAAS,YAAY,QAAQ;AAE3C,kBAAY,cAAc,QAAQ,YAAY,GAAG,SAAS;AAC1D,qBAAe,YAAY,YAAY,cAAc;AACrD,qBAAe,eAAe,YAAY,cAAc;AACxD,cAAQ,OAAO,WAAW,SAAS,GAAG,eAAe,YAAY,CAAC;AAAA,IACpE;AACA,mBAAe,YAAY;AAC3B,mBAAe,eAAe;AAG9B,aAAS,eAAgB,OAAO,WAAW,YAAY;AACrD,aAAO,MAAM,eAAe,QAAQ;AACpC,aAAO,UAAU,cAAc,IAAI;AACnC,aAAO,WAAW,cAAc,IAAI;AAEpC,UAAI,SAAS,MAAM,SAAS,cAAc,UAAU;AACpD,UAAI,IAAI,MAAM,SAAS,YAAY,QAAQ;AAE3C,kBAAY,cAAc,QAAQ,WAAW,GAAG,UAAU;AAC1D,qBAAe,YAAY,YAAY,cAAc;AACrD,qBAAe,eAAe,YAAY,cAAc;AACxD,cAAQ,OAAO,WAAW,SAAS,GAAG,eAAe,SAAS,CAAC;AAAA,IACjE;AACA,mBAAe,YAAY;AAC3B,mBAAe,eAAe;AAE9B,QAAI,WAAW,cAAc,OAAO;AACpC,QAAI,WAAW,cAAc,OAAO;AACpC,QAAI,UAAU,IAAI,WAAW,CAAC;AAC9B,aAAS,MAAO,OAAO,cAAc,cAAc;AACjD,aAAO,MAAM,eAAe,QAAQ;AACpC,aAAO,aAAa,eAAe,YAAY,QAAQ;AACvD,aAAO,aAAa,eAAe,YAAY,QAAQ;AAEvD,WAAK;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM,SAAS,oBAAoB,gBAAgB;AAAA,QACnD;AAAA,MACF;AAGA,kBAAY,cAAc,cAAc,SAAS,SAAS,GAAG,EAAE,CAAC;AAChE,kBAAY,cAAc,cAAc,SAAS,SAAS,GAAG,EAAE,CAAC;AAChE,qBAAe,QAAQ;AACvB,qBAAe,QAAQ;AAAA,IACzB;AAEA,aAAS,QAAS,OAAO;AACvB,aAAO,YAAY,OAAO,MAAM,SAAS,cAAc,UAAU,CAAC;AAAA,IACpE;AAAA;AAAA;;;AC3JA;AAAA;AACA,QAAM,EAAE,eAAe,gBAAgB,YAAY,IAAI,UAAQ,yBAAyB;AACxF,QAAM,SAAS;AACf,QAAM,QAAQ;AACd,QAAM,iBAAiB;AACvB,QAAM,cAAc;AACpB,QAAM,KAAK;AAEX,QAAM,QAAQ,GAAG;AACjB,QAAM,QAAQ,GAAG;AAEjB,WAAO,UAAU,OAAO,OAAO;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,aAAS,iBAAkB;AACzB,WAAK,iBAAiB,cAAc,eAAe,QAAQ;AAE3D,WAAK,YAAY;AAEjB,WAAK,MAAM;AACX,WAAK,MAAM;AAEX,WAAK,MAAM;AACX,WAAK,MAAM;AAEX,WAAK,KAAK;AACV,WAAK,KAAK;AAEV,WAAK,kBAAkB;AAAA,IACzB;AAEA,QAAM,YAAY,OAAO,WAAW;AACpC,QAAM,YAAY,OAAO,WAAW;AAEpC,QAAM,QAAQ,OAAO,GAAG;AACxB,QAAM,QAAQ,OAAO,GAAG;AACxB,QAAM,SAAS,OAAO,IAAI;AAC1B,QAAM,SAAS,OAAO,IAAI;AAC1B,QAAM,SAAS,OAAO,IAAI;AAC1B,QAAM,SAAS,OAAO,IAAI;AAI1B,QAAI,WAAW,OAAO,OAAO;AAAA,MAC3B,GAAG;AAAA,QACD,aAAa;AAAA,UACX,CAAC,WAAW,KAAK;AAAA,QACnB;AAAA,QACA,iBAAiB;AAAA,UACf,CAAC,WAAW,OAAO,MAAM;AAAA,QAC3B;AAAA,MACF;AAAA,MACA,GAAG;AAAA,QACD,aAAa;AAAA,UACX,CAAC,WAAW,KAAK;AAAA,UACjB,CAAC,WAAW,KAAK;AAAA,QACnB;AAAA,QACA,iBAAiB;AAAA,UACf,CAAC,WAAW,OAAO,QAAQ,MAAM;AAAA,QACnC;AAAA,MACF;AAAA,MACA,GAAG;AAAA,QACD,aAAa;AAAA,UACX,CAAC,WAAW,KAAK;AAAA,QACnB;AAAA,QACA,iBAAiB;AAAA,UACf,CAAC,WAAW,OAAO,QAAQ,OAAO,MAAM;AAAA,QAC1C;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,aAAa,CAAC;AAAA,QACd,iBAAiB;AAAA,UACf,CAAC,WAAW,KAAK;AAAA,UACjB,CAAC,WAAW,OAAO,MAAM;AAAA,QAC3B;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,aAAa;AAAA,UACX,CAAC,WAAW,KAAK;AAAA,QACnB;AAAA,QACA,iBAAiB;AAAA,UACf,CAAC,WAAW,KAAK;AAAA,UACjB,CAAC,WAAW,OAAO,QAAQ,MAAM;AAAA,QACnC;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,aAAa;AAAA,UACX,CAAC,WAAW,KAAK;AAAA,QACnB;AAAA,QACA,iBAAiB;AAAA,UACf,CAAC,WAAW,OAAO,MAAM;AAAA,UACzB,CAAC,WAAW,OAAO,MAAM;AAAA,QAC3B;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,aAAa;AAAA,UACX,CAAC,WAAW,KAAK;AAAA,UACjB,CAAC,WAAW,KAAK;AAAA,QACnB;AAAA,QACA,iBAAiB;AAAA,UACf,CAAC,WAAW,OAAO,QAAQ,MAAM;AAAA,UACjC,CAAC,WAAW,OAAO,QAAQ,MAAM;AAAA,QACnC;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,aAAa,CAAC;AAAA,QACd,iBAAiB;AAAA,UACf,CAAC,WAAW,KAAK;AAAA,UACjB,CAAC,WAAW,OAAO,QAAQ,OAAO,MAAM;AAAA,QAC1C;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,aAAa;AAAA,UACX,CAAC,WAAW,KAAK;AAAA,QACnB;AAAA,QACA,iBAAiB;AAAA,UACf,CAAC,WAAW,KAAK;AAAA,UACjB,CAAC,WAAW,OAAO,QAAQ,QAAQ,OAAO,MAAM;AAAA,QAClD;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,aAAa,CAAC;AAAA,QACd,iBAAiB;AAAA,UACf,CAAC,WAAW,KAAK;AAAA,UACjB,CAAC,WAAW,OAAO,MAAM;AAAA,UACzB,CAAC,WAAW,OAAO,MAAM;AAAA,QAC3B;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,aAAa,CAAC;AAAA,QACd,iBAAiB;AAAA,UACf,CAAC,WAAW,OAAO,KAAK;AAAA,UACxB,CAAC,WAAW,OAAO,QAAQ,MAAM;AAAA,QACnC;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,aAAa;AAAA,UACX,CAAC,WAAW,KAAK;AAAA,QACnB;AAAA,QACA,iBAAiB;AAAA,UACf,CAAC,WAAW,OAAO,MAAM;AAAA,UACzB,CAAC,WAAW,OAAO,MAAM;AAAA,UACzB,CAAC,WAAW,OAAO,MAAM;AAAA,QAC3B;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,aAAa;AAAA,UACX,CAAC,WAAW,KAAK;AAAA,QACnB;AAAA,QACA,iBAAiB;AAAA,UACf,CAAC,WAAW,OAAO,QAAQ,OAAO,MAAM;AAAA,UACxC,CAAC,WAAW,OAAO,QAAQ,MAAM;AAAA,QACnC;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,aAAa,CAAC;AAAA,QACd,iBAAiB;AAAA,UACf,CAAC,WAAW,KAAK;AAAA,UACjB,CAAC,WAAW,OAAO,QAAQ,OAAO,MAAM;AAAA,UACxC,CAAC,WAAW,OAAO,MAAM;AAAA,QAC3B;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,aAAa,CAAC;AAAA,QACd,iBAAiB;AAAA,UACf,CAAC,WAAW,OAAO,KAAK;AAAA,UACxB,CAAC,WAAW,OAAO,QAAQ,QAAQ,OAAO,MAAM;AAAA,QAClD;AAAA,MACF;AAAA,IACF,CAAC;AAED,aAAS,iBAAkB,KAAK;AAC9B,UAAI,MAAM,cAAc,IAAI,UAAU;AACtC,UAAI,IAAI,GAAG;AACX,aAAO;AAAA,IACT;AAEA,aAAS,WAAY,kBAAkB,WAAW,UAAU,GAAG,GAAG,IAAI,IAAI;AACxE,aAAO,OAAO,KAAK,QAAQ,EAAE,SAAS,gBAAgB,GAAG,+BAA+B;AACxF,aAAO,OAAO,cAAc,WAAW,6BAA6B;AACpE,aAAO,SAAS,cAAc,MAAM,2BAA2B;AAE/D,aAAO,KAAK,OAAO,OAAO,EAAE,UAAU,eAAe,GAAG,OAAO,uBAAuB,GAAG,KAAK,QAAQ;AACtG,aAAO,KAAK,OAAO,OAAO,EAAE,UAAU,eAAe,GAAG,OAAO,uBAAuB,GAAG,KAAK,QAAQ;AAEtG,aAAO,MAAM,OAAO,OAAO,GAAG,eAAe,GAAG,OAAO,cAAc,GAAG,KAAK,QAAQ;AACrF,aAAO,MAAM,OAAO,OAAO,GAAG,eAAe,GAAG,OAAO,cAAc,GAAG,KAAK,QAAQ;AAErF,UAAI,QAAQ,IAAI,eAAe;AAE/B,UAAI,eAAe,WAAW,KAAK,SAAS,gBAAgB,6BAA6B,UAAU;AAEnG,qBAAe,oBAAoB,MAAM,gBAAgB,YAAY;AACrE,qBAAe,QAAQ,MAAM,gBAAgB,QAAQ;AAErD,YAAM,OAAO,cAAc,OAAO,YAAY;AAE9C,UAAI,KAAK,MAAM;AACb,eAAO,EAAE,UAAU,eAAe,GAAG,OAAO,uBAAuB,GAAG,KAAK,QAAQ;AACnF,eAAO,EAAE,UAAU,eAAe,GAAG,OAAO,uBAAuB,GAAG,KAAK,QAAQ;AAEnF,cAAM,MAAM,iBAAiB,EAAE,SAAS;AACxC,cAAM,MAAM,iBAAiB,EAAE,SAAS;AAAA,MAC1C;AAEA,UAAI,KAAK,MAAM;AACb,eAAO,EAAE,UAAU,eAAe,GAAG,KAAK;AAC1C,eAAO,EAAE,UAAU,eAAe,GAAG,KAAK;AAE1C,cAAM,MAAM,iBAAiB,EAAE,SAAS;AACxC,cAAM,MAAM,iBAAiB,EAAE,SAAS;AAAA,MAC1C;AAEA,UAAI,MAAM,MAAM;AACd,eAAO,GAAG,eAAe,GAAG,KAAK;AACjC,cAAM,KAAK,iBAAiB,EAAE;AAAA,MAChC;AACA,UAAI,MAAM,MAAM;AACd,eAAO,GAAG,eAAe,GAAG,KAAK;AACjC,cAAM,KAAK,iBAAiB,EAAE;AAAA,MAChC;AAGA,UAAI,MAAM,SAAS,gBAAgB;AAEnC,eAAS,WAAW,MAAM,IAAI,WAAW,GAAG;AAC1C,YAAI,cAAc,QAAQ,MAAM;AAEhC,iBAAS,SAAS,SAAS;AACzB,kBAAQ,OAAO;AAAA,YACb,KAAK;AACH,qBAAO,MAAM,SAAS,cAAc,MAAM,IAAI,cAAc,OAAO,MAAM,GAAG,cAAc,IAAI;AAC9F,6BAAe,QAAQ,MAAM,gBAAgB,MAAM,SAAS,cAAc,MAAM,MAAM,MAAM,EAAE;AAC9F;AAAA,YACF,KAAK;AACH,qBAAO,MAAM,SAAS,cAAc,MAAM,IAAI,cAAc,OAAO,MAAM,GAAG,cAAc,IAAI;AAC9F,6BAAe,QAAQ,MAAM,gBAAgB,MAAM,SAAS,cAAc,MAAM,MAAM,MAAM,EAAE;AAC9F;AAAA,YACF;AACE,oBAAM,IAAI,MAAM,4BAA4B;AAAA,UAChD;AAAA,QACF;AAAA,MACF;AAEA,YAAM,kBAAkB,MAAM,IAAI,eAAe;AAEjD;AAAA,QAAO,MAAM,gBAAgB,OAAO,OAAK,EAAE,CAAC,MAAM,SAAS,EAAE,KAAK,OAAK,EAAE,SAAS,KAAK,CAAC,IACnF,MAAM,QAAQ,QAAQ,MAAM,QAAQ,OACrC;AAAA;AAAA,QACJ;AAAA,MAAkD;AAElD,aAAO;AAAA,IACT;AAEA,QAAI,WAAW,cAAc,GAAG,KAAK;AACrC,aAAS,aAAc,OAAO,SAAS,eAAe;AACpD,aAAO,iBAAiB,cAAc;AACtC,aAAO,QAAQ,cAAc,IAAI;AACjC,aAAO,cAAc,cAAc,IAAI;AAEvC,UAAI,OAAO,MAAM,gBAAgB,MAAM;AACvC,UAAI,UAAU;AAEd,aAAO,QAAQ,IAAI;AAEnB,aAAO,MAAM,SAAS,KAAK,MAAM,CAAC;AAElC,eAAS,SAAS,MAAM;AACtB,gBAAQ,OAAO;AAAA,UACb,KAAK;AACH,mBAAO,MAAM,OAAO,IAAI;AACxB,mBAAO,MAAM,OAAO,IAAI;AAExB,kBAAM,MAAM,cAAc,GAAG,KAAK;AAClC,kBAAM,MAAM,cAAc,GAAG,KAAK;AAElC,eAAG,gBAAgB,MAAM,KAAK,MAAM,GAAG;AAEvC,0BAAc,IAAI,MAAM,KAAK,OAAO;AACpC,uBAAW,MAAM,IAAI;AAErB,2BAAe,QAAQ,MAAM,gBAAgB,MAAM,GAAG;AAEtD;AAAA,UAEF,KAAK;AACH,mBAAO,MAAM,IAAI,eAAe,GAAG,KAAK;AAExC,2BAAe,eAAe,MAAM,gBAAgB,cAAc,SAAS,OAAO,GAAG,MAAM,GAAG;AAC9F,uBAAW,eAAe,eAAe;AAEzC;AAAA,UAEF,KAAK;AACH,eAAG,GAAG,UAAU,MAAM,KAAK,MAAM,EAAE;AACnC,2BAAe,OAAO,MAAM,gBAAgB,QAAQ;AACpD,2BAAe,QAAQ;AACvB;AAAA,UACF,KAAK;AACH,gBAAI,MAAM,SAAS,UAAW,IAAG,GAAG,UAAU,MAAM,KAAK,MAAM,EAAE;AAAA,gBAC5D,IAAG,GAAG,UAAU,MAAM,KAAK,MAAM,EAAE;AAExC,2BAAe,OAAO,MAAM,gBAAgB,QAAQ;AACpD,2BAAe,QAAQ;AACvB;AAAA,UACF,KAAK;AACH,gBAAI,MAAM,SAAS,UAAW,IAAG,GAAG,UAAU,MAAM,KAAK,MAAM,EAAE;AAAA,gBAC5D,IAAG,GAAG,UAAU,MAAM,KAAK,MAAM,EAAE;AAExC,2BAAe,OAAO,MAAM,gBAAgB,QAAQ;AACpD,2BAAe,QAAQ;AACvB;AAAA,UACF,KAAK;AACH,eAAG,GAAG,UAAU,MAAM,KAAK,MAAM,EAAE;AAEnC,2BAAe,OAAO,MAAM,gBAAgB,QAAQ;AACpD,2BAAe,QAAQ;AACvB;AAAA,UAEF;AACE,kBAAM,IAAI,MAAM,yBAAyB;AAAA,QAC7C;AAAA,MACF;AAEA,qBAAe,eAAe,MAAM,gBAAgB,cAAc,SAAS,OAAO,GAAG,OAAO;AAC5F,iBAAW,eAAe,eAAe;AAEzC,mBAAa,QAAQ;AAErB,UAAI,MAAM,gBAAgB,WAAW,GAAG;AACtC,YAAI,KAAK,cAAc,YAAY,QAAQ;AAC3C,YAAI,KAAK,cAAc,YAAY,QAAQ;AAC3C,uBAAe,MAAM,MAAM,gBAAgB,IAAI,EAAE;AAEjD,eAAO,EAAE,IAAI,GAAG;AAAA,MAClB;AAAA,IACF;AACA,iBAAa,QAAQ;AAErB,aAAS,YAAa,OAAO,SAAS,eAAe;AACnD,aAAO,iBAAiB,cAAc;AACtC,aAAO,QAAQ,cAAc,IAAI;AACjC,aAAO,cAAc,cAAc,IAAI;AAEvC,UAAI,OAAO,MAAM,gBAAgB,MAAM;AACvC,UAAI,UAAU;AAEd,aAAO,QAAQ,IAAI;AACnB,aAAO,KAAK,MAAM,MAAM,MAAM,IAAI;AAElC,eAAS,SAAS,MAAM;AACtB,gBAAQ,OAAO;AAAA,UACb,KAAK;AACH,mBAAO,MAAM,MAAM,IAAI;AACvB,mBAAO,QAAQ,aAAa,WAAW,GAAG,KAAK;AAG/C,kBAAM,KAAK,cAAc,GAAG,KAAK;AACjC,kBAAM,GAAG,IAAI,QAAQ,SAAS,SAAS,UAAU,GAAG,KAAK,CAAC;AAC1D,uBAAW,GAAG;AAEd,2BAAe,QAAQ,MAAM,gBAAgB,MAAM,EAAE;AAErD;AAAA,UAEF,KAAK;AACH,mBAAO,MAAM,MAAM,IAAI;AACvB,kBAAM,KAAK,cAAc,GAAG,KAAK;AAEjC,gBAAI,QAAQ;AACZ,gBAAI,eAAe,QAAQ,MAAM,cAAc,GAAG;AAChD,sBAAQ,GAAG,QAAQ;AAAA,YACrB,OAAO;AACL,sBAAQ,GAAG;AAAA,YACb;AAEA,mBAAO,QAAQ,aAAa,WAAW,KAAK;AAE5C,2BAAe;AAAA,cACb,MAAM;AAAA,cACN,MAAM;AAAA,cACN,QAAQ,SAAS,SAAS,UAAU,KAAK;AAAA;AAAA,YAC3C;AAEA,uBAAW,eAAe,eAAe;AAEzC;AAAA,UACF,KAAK;AACH,eAAG,GAAG,UAAU,MAAM,KAAK,MAAM,EAAE;AACnC,2BAAe,OAAO,MAAM,gBAAgB,QAAQ;AACpD,2BAAe,QAAQ;AACvB;AAAA,UACF,KAAK;AACH,gBAAI,MAAM,SAAS,UAAW,IAAG,GAAG,UAAU,MAAM,KAAK,MAAM,EAAE;AAAA,gBAC5D,IAAG,GAAG,UAAU,MAAM,KAAK,MAAM,EAAE;AAExC,2BAAe,OAAO,MAAM,gBAAgB,QAAQ;AACpD,2BAAe,QAAQ;AACvB;AAAA,UACF,KAAK;AACH,gBAAI,MAAM,SAAS,UAAW,IAAG,GAAG,UAAU,MAAM,KAAK,MAAM,EAAE;AAAA,gBAC5D,IAAG,GAAG,UAAU,MAAM,KAAK,MAAM,EAAE;AAExC,2BAAe,OAAO,MAAM,gBAAgB,QAAQ;AACpD,2BAAe,QAAQ;AACvB;AAAA,UACF,KAAK;AACH,eAAG,GAAG,UAAU,MAAM,KAAK,MAAM,EAAE;AAEnC,2BAAe,OAAO,MAAM,gBAAgB,QAAQ;AACpD,2BAAe,QAAQ;AACvB;AAAA,UAEF;AACE,kBAAM,IAAI,MAAM,yBAAyB;AAAA,QAC7C;AAAA,MACF;AAEA,qBAAe,eAAe,MAAM,gBAAgB,eAAe,QAAQ,SAAS,OAAO,CAAC;AAG5F,kBAAY,QAAQ,eAAe,eAAe;AAElD,UAAI,MAAM,gBAAgB,WAAW,GAAG;AACtC,YAAI,KAAK,cAAc,YAAY,QAAQ;AAC3C,YAAI,KAAK,cAAc,YAAY,QAAQ;AAC3C,uBAAe,MAAM,MAAM,gBAAgB,IAAI,EAAE;AAEjD,eAAO,EAAE,IAAI,GAAG;AAAA,MAClB;AAAA,IACF;AACA,gBAAY,QAAQ;AAEpB,aAAS,QAAS,OAAO;AACvB,UAAI,MAAM,kBAAkB,MAAM;AAChC,oBAAY,MAAM,cAAc;AAChC,cAAM,iBAAiB;AAAA,MACzB;AAEA,YAAM,OAAO;AAEb,UAAI,MAAM,OAAO,MAAM;AACrB,oBAAY,MAAM,GAAG;AACrB,cAAM,MAAM;AAAA,MACd;AAEA,UAAI,MAAM,OAAO,MAAM;AACrB,oBAAY,MAAM,GAAG;AACrB,cAAM,MAAM;AAAA,MACd;AAEA,UAAI,MAAM,OAAO,MAAM;AACrB,oBAAY,MAAM,GAAG;AACrB,cAAM,MAAM;AAAA,MACd;AAEA,UAAI,MAAM,OAAO,MAAM;AACrB,oBAAY,MAAM,GAAG;AACrB,cAAM,MAAM;AAAA,MACd;AAEA,UAAI,MAAM,MAAM,MAAM;AACpB,oBAAY,MAAM,EAAE;AACpB,cAAM,KAAK;AAAA,MACb;AAEA,UAAI,MAAM,MAAM,MAAM;AACpB,oBAAY,MAAM,EAAE;AACpB,cAAM,KAAK;AAAA,MACb;AAEA,YAAM,kBAAkB;AAAA,IAC1B;AAEA,aAAS,OAAQ,KAAK,IAAI;AACxB,UAAI,CAAC,KAAK;AACR,cAAM,EAAE,WAAW,cAAc,KAAK,GAAG,WAAW,cAAc,KAAK,EAAE;AACzE,eAAO,OAAO,GAAG;AAAA,MACnB;AAEA,UAAI,IAAI,WAAW;AACjB,WAAG,gBAAgB,IAAI,WAAW,IAAI,SAAS;AAC/C,eAAO;AAAA,MACT;AAEA,UAAI,IAAI,cAAc,KAAM,IAAG,gBAAgB,MAAM,GAAG;AAAA,IAC1D;AAEA,aAAS,WAAY,MAAM;AACzB,UAAI,MAAM,EAAE,WAAW,cAAc,KAAK,GAAG,WAAW,cAAc,KAAK,EAAE;AAC7E,SAAG,oBAAoB,IAAI,WAAW,IAAI,WAAW,IAAI;AACzD,aAAO;AAAA,IACT;AAEA,aAAS,WAAY,GAAG;AACtB,aAAO,EAAE,WAAW,CAAC;AAAA,IACvB;AAAA;AAAA;;;ACxfA;AAAA;AAAA,WAAO,UAAU;AAAA;AAAA;;;ACAjB;AAAA;AAAA,QAAI,QAAQ;AACZ,QAAI,sBAAsB;AAC1B,QAAI,YAAY;AAChB,QAAI,SAAS;AACb,QAAI,QAAQ,OAAO,MAAM,CAAC;AAE1B,aAAS,gBAAiB,aAAa,MAAM;AAC3C,UAAI,EAAE,gBAAgB,iBAAkB,QAAO,IAAI,gBAAgB,aAAa,IAAI;AACpF,aAAO,QAAQ,CAAC;AAEhB,UAAI,UAAU,KAAK,WAAW;AAC9B,UAAI,WAAW,KAAK,YAAY;AAEhC,WAAK,gBAAgB;AACrB,WAAK,cAAc,KAAK,eAAe,SAAU,GAAG,IAAI;AAAE,WAAG;AAAA,MAAE;AAC/D,WAAK,iBAAiB,KAAK,kBAAkB,SAAU,GAAG,IAAI;AAAE,WAAG;AAAA,MAAE;AACrE,WAAK,cAAc,KAAK,eAAe,SAAU,GAAG,IAAI;AAAE,WAAG;AAAA,MAAE;AAE/D,WAAK,QAAQ,MAAM;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAIA,WAAK,UAAU,gBAAgB;AAC/B,WAAK,WAAW;AAEhB,WAAK,QAAQ;AAGb,WAAK,MAAM,OAAO,MAAM,KAAK;AAC7B,WAAK,MAAM,OAAO,MAAM,KAAK;AAAA,IAC/B;AAEA,oBAAgB,UAAU,OAAO,SAAS,KAAM,MAAM,IAAI;AACxD,UAAI,OAAO;AACX,aAAO,KAAK,aAAa,OAAO,kCAAkC;AAClE,aAAO,QAAQ,MAAM,gBAAgB;AACrC,aAAO,KAAK,cAAc,KAAK,IAAI,YAAY,wBAAwB;AACvE,aAAO,KAAK,YAAY,MAAM,wCAAwC;AACtE,aAAO,KAAK,SAAS,MAAM,sBAAsB;AAEjD,UAAI,cAAc,KAAK,MAAM,MAAM;AACnC,UAAI,cAAc,KAAK,MAAM,MAAM;AACnC,UAAI;AACF,aAAK,QAAQ,MAAM,YAAY,KAAK,OAAO,MAAM,KAAK,GAAG;AAAA,MAC3D,SAAS,IAAI;AACX,eAAO,KAAK,QAAQ,IAAI,MAAM,EAAE;AAAA,MAClC;AAEA,WAAK,UAAU;AAEf,UAAI,aAAa,KAAK,MAAM,MAAM;AAClC,UAAI,aAAa,KAAK,MAAM,MAAM;AAKlC,UAAI,gBAAgB,SAAS,eAAe,MAAM;AAChD,eAAO,KAAK,eAAe,KAAK,MAAM,IAAI,WAAW;AAAA,MACvD;AAEA,aAAO,YAAY;AAEnB,eAAS,YAAa,KAAK;AACzB,YAAI,IAAK,QAAO,OAAO,GAAG;AAE1B,YAAI,gBAAgB,SAAS,eAAe,MAAM;AAChD,iBAAO,KAAK,YAAY,KAAK,MAAM,IAAI,MAAM;AAAA,QAC/C;AAEA,eAAO,OAAO;AAAA,MAChB;AAEA,eAAS,OAAQ,KAAK;AACpB,YAAI,IAAK,QAAO,KAAK,QAAQ,KAAK,MAAM,EAAE;AAE1C,YAAI,MAAM,KAAK,IAAI,SAAS,GAAG,MAAM,YAAY,KAAK;AACtD,YAAI,KAAK,MAAO,QAAO,KAAK,QAAQ,MAAM,KAAK,EAAE;AAEjD,WAAG,MAAM,GAAG;AAAA,MACd;AAAA,IACF;AAEA,oBAAgB,UAAU,OAAO,SAAS,KAAM,MAAM,IAAI;AACxD,aAAO,KAAK,aAAa,OAAO,kCAAkC;AAClE,aAAO,KAAK,YAAY,OAAO,qCAAqC;AACpE,aAAO,KAAK,SAAS,MAAM,sBAAsB;AAEjD,aAAO,QAAQ;AAEf,UAAI;AACF,aAAK,QAAQ,MAAM,aAAa,KAAK,OAAO,MAAM,KAAK,GAAG;AAAA,MAC5D,SAAS,IAAI;AACX,eAAO,KAAK,QAAQ,IAAI,MAAM,EAAE;AAAA,MAClC;AAEA,WAAK,UAAU;AAEf,UAAI,MAAM,KAAK,IAAI,SAAS,GAAG,MAAM,aAAa,KAAK;AAEvD,UAAI,KAAK,SAAS,KAAM,QAAO,KAAK,QAAQ,MAAM,KAAK,EAAE;AAEzD,aAAO,GAAG,MAAM,GAAG;AAAA,IACrB;AAEA,oBAAgB,UAAU,UAAU,WAAY;AAC9C,WAAK,QAAQ,MAAM,MAAM,WAAY;AAAA,MAAC,CAAC;AAAA,IACzC;AAEA,oBAAgB,UAAU,UAAU,SAAS,QAAS,KAAK,KAAK,IAAI;AAClE,aAAO,KAAK,aAAa,OAAO,kBAAkB;AAClD,YAAM,OAAO;AAEb,WAAK,WAAW;AAChB,WAAK,UAAU;AAEf,UAAI,KAAK,OAAO;AACd,aAAK,gBAAgB,OAAO,MAAM,UAAU,OAAO;AACnD,4BAAoB,iBAAiB,KAAK,MAAM,gBAAgB,KAAK,aAAa;AAAA,MACpF;AACA,UAAI,IAAK,QAAO,OAAO,GAAG;AAC1B,WAAK,YAAY,KAAK,OAAO,MAAM;AAEnC,eAAS,OAAQC,MAAK;AACpB,cAAM,QAAQ,KAAK,KAAK;AAExB,WAAGA,MAAK,KAAK,KAAK,KAAK;AAGvB,aAAK,IAAI,KAAK,CAAC;AACf,aAAK,IAAI,KAAK,CAAC;AAAA,MACjB;AAAA,IACF;AAEA,oBAAgB,SAAS,MAAM;AAC/B,oBAAgB,aAAa,MAAM;AAEnC,WAAO,UAAU;AAAA;AAAA;;;AChJjB,IAAAC,kBAAA;AAAA;AAAA,WAAO,UAAU;AAEjB,QAAI,MAAM;AAAV,QACI,OAAO;AADX,QAEI,SAAS,CAAC;AAFd,QAGI,MAAM,KAAK,IAAI,GAAG,EAAE;AAExB,aAAS,OAAO,KAAK,KAAK,QAAQ;AAChC,YAAM,OAAO,CAAC;AACd,eAAS,UAAU;AACnB,UAAI,YAAY;AAEhB,aAAM,OAAO,KAAK;AAChB,YAAI,QAAQ,IAAK,MAAM,MAAQ;AAC/B,eAAO;AAAA,MACT;AACA,aAAM,MAAM,QAAQ;AAClB,YAAI,QAAQ,IAAK,MAAM,MAAQ;AAC/B,iBAAS;AAAA,MACX;AACA,UAAI,MAAM,IAAI,MAAM;AAEpB,aAAO,QAAQ,SAAS,YAAY;AAEpC,aAAO;AAAA,IACT;AAAA;AAAA;;;ACzBA,IAAAC,kBAAA;AAAA;AAAA,WAAO,UAAU;AAEjB,QAAI,MAAM;AAAV,QACI,OAAO;AAEX,aAAS,KAAK,KAAK,QAAQ;AACzB,UAAI,MAAS,GACT,SAAS,UAAU,GACnB,QAAS,GACT,UAAU,QACV,GACA,IAAI,IAAI;AAEZ,SAAG;AACD,YAAI,WAAW,GAAG;AAChB,eAAK,QAAQ;AACb,gBAAM,IAAI,WAAW,yBAAyB;AAAA,QAChD;AACA,YAAI,IAAI,SAAS;AACjB,eAAO,QAAQ,MACV,IAAI,SAAS,SACb,IAAI,QAAQ,KAAK,IAAI,GAAG,KAAK;AAClC,iBAAS;AAAA,MACX,SAAS,KAAK;AAEd,WAAK,QAAQ,UAAU;AAEvB,aAAO;AAAA,IACT;AAAA;AAAA;;;AC5BA,IAAAC,kBAAA;AAAA;AACA,QAAI,KAAK,KAAK,IAAI,GAAI,CAAC;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AAEvB,WAAO,UAAU,SAAU,OAAO;AAChC,aACE,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACA;AAAA,IAEjB;AAAA;AAAA;;;ACxBA,IAAAC,kBAAA;AAAA;AAAA,WAAO,UAAU;AAAA,MACb,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,gBAAgB;AAAA,IACpB;AAAA;AAAA;;;ACJA;AAAA;AAAA,QAAM,KAAK;AACX,QAAM,KAAK;AACX,QAAM,SAAS;AACf,QAAM,SAAS;AAEf,WAAO,UAAU,MAAM,kBAAkB;AAAA,MACvC,YAAa,WAAW,SAAS,MAAM,MAAM;AAC3C,aAAK,UAAU;AACf,aAAK,SAAS;AACd,aAAK,SAAS;AACd,aAAK,SAAS;AACd,aAAK,gBAAgB;AACrB,aAAK,UAAU;AACf,aAAK,UAAU,KAAK,WAAW,kBAAkB,QAAQ;AACzD,aAAK,kBAAkB;AACvB,aAAK,SAAS,OAAO,KAAK,IAAI;AAC9B,aAAK,SAAS,OAAO,KAAK,IAAI;AAC9B,aAAK,YAAY;AACjB,aAAK,QAAQ,GAAG,WAAW;AAAA,UACzB,SAAS;AAAA,UACT;AAAA,UACA,eAAe,KAAK;AAAA,UACpB,aAAa,YAAY,KAAK,IAAI;AAAA,QACpC,CAAC;AAED,cAAM,OAAO;AACb,YAAI,KAAK,MAAM,YAAY,MAAO,SAAQ,SAAS,OAAO,IAAI;AAE9D,iBAAS,YAAa,OAAO,IAAI;AAC/B,kBAAQ,SAAS,QAAQ,IAAI;AAC7B,aAAG,IAAI;AAAA,QACT;AAAA,MACF;AAAA,MAEA,KAAM,MAAM;AACV,YAAI,KAAK,UAAW;AAEpB,YAAI,KAAK,OAAQ,MAAK,SAAS,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC;AAAA,YAC3D,MAAK,SAAS;AAEnB,eAAO,CAAC,KAAK,aAAa,CAAC,KAAK,MAAM,UAAU;AAC9C,cAAI,CAAC,KAAK,UAAU,KAAK,OAAO,SAAS,EAAG;AAC5C,cAAI,KAAK,QAAQ;AACf,gBAAI,KAAK,OAAO,SAAS,KAAK,OAAQ;AACtC,kBAAM,UAAU,KAAK,OAAO,MAAM,GAAG,KAAK,MAAM;AAChD,iBAAK,SAAS,KAAK,SAAS,KAAK,OAAO,SAAS,KAAK,OAAO,MAAM,KAAK,MAAM,IAAI;AAClF,iBAAK,SAAS;AACd,iBAAK,MAAM,KAAK,SAAS,KAAK,MAAM;AAAA,UACtC,OAAO;AACL,iBAAK,SAAS,OAAO,OAAO,KAAK,QAAQ,CAAC;AAC1C,iBAAK,SAAS,KAAK,OAAO,MAAM,OAAO,OAAO,KAAK;AAAA,UACrD;AAAA,QACF;AAAA,MACF;AAAA,MAEA,QAAS,KAAK;AACZ,YAAI,KAAK,UAAW;AACpB,aAAK,YAAY;AACjB,YAAI,CAAC,KAAK,MAAM,SAAU,MAAK,MAAM,QAAQ;AAC7C,aAAK,OAAO,GAAG;AAAA,MACjB;AAAA,MAEA,OAAO,QAAS,MAAM;AACpB,cAAM,MAAM;AAAA;AAAA;AAAA,UAGV,WAAW,OAAO,MAAM,GAAG,KAAK;AAAA,UAChC,WAAW,OAAO,MAAM,GAAG,KAAK;AAAA,QAClC;AAEA,YAAI,KAAM,IAAG,oBAAoB,IAAI,WAAW,IAAI,WAAW,IAAI;AAAA,YAC9D,IAAG,gBAAgB,IAAI,WAAW,IAAI,SAAS;AAEpD,eAAO;AAAA,MACT;AAAA,IACF;AAEA,aAAS,OAAQ,MAAM;AACrB,UAAI,KAAK,UAAW;AACpB,WAAK,YAAY;AAGjB,YAAM,QAAQ,EAAE,IAAI,OAAO,KAAK,KAAK,MAAM,MAAM,EAAE,GAAG,IAAI,OAAO,KAAK,KAAK,MAAM,MAAM,EAAE,EAAE;AAC3F,aAAO,KAAK,KAAK,MAAM,MAAM,EAAE;AAC/B,aAAO,KAAK,KAAK,MAAM,MAAM,EAAE;AAC/B,WAAK,OAAO,MAAM,KAAK,eAAe,OAAO,KAAK,QAAQ,KAAK,iBAAiB,KAAK,MAAM,aAAa;AAAA,IAC1G;AAEA,aAAS,MAAO,MAAM;AACpB,UAAI,KAAK,UAAW;AACpB,WAAK,MAAM,KAAK,KAAK,SAAS,KAAK,MAAM;AAAA,IAC3C;AAEA,aAAS,OAAQ,KAAK,MAAM;AAC1B,UAAI,IAAK,QAAO,KAAK,QAAQ,GAAG;AAChC,YAAM,MAAM,OAAO,YAAY,OAAO,eAAe,KAAK,MAAM,IAAI,KAAK,MAAM;AAC/E,aAAO,OAAO,KAAK,QAAQ,KAAK,CAAC;AACjC,WAAK,KAAK,KAAK,OAAO,OAAO,KAAK;AAClC,WAAK,QAAQ,KAAK,GAAG;AAAA,IACvB;AAEA,aAAS,OAAQ,KAAK,MAAM;AAC1B,UAAI,IAAK,QAAO,KAAK,QAAQ,GAAG;AAChC,UAAI,QAAQ,KAAK,OAAQ,MAAK,gBAAgB,OAAO,KAAK,IAAI;AAC9D,UAAI,KAAK,aAAa,KAAK,MAAM,SAAU;AAE3C,UAAI,KAAK,MAAM,YAAY,OAAO;AAChC,aAAK,MAAM,KAAK,KAAK,SAAS,KAAK,MAAM;AAAA,MAC3C;AAAA,IACF;AAEA,aAAS,YAAa,WAAW,MAAM;AACrC,WAAK,kBAAkB,OAAO,KAAK,SAAS;AAC5C,UAAI,KAAK,QAAQ,eAAgB,MAAK,QAAQ,eAAe,KAAK,iBAAiB,IAAI;AAAA,UAClF,MAAK,IAAI;AAAA,IAChB;AAAA;AAAA;;;ACnHA,IAAAC,kBAAA;AAAA;AAAA,WAAO,UAAU;AAEjB,QAAI,MAAM;AAAV,QACI,OAAO;AADX,QAEI,SAAS,CAAC;AAFd,QAGI,MAAM,KAAK,IAAI,GAAG,EAAE;AAExB,aAAS,OAAO,KAAK,KAAK,QAAQ;AAChC,YAAM,OAAO,CAAC;AACd,eAAS,UAAU;AACnB,UAAI,YAAY;AAEhB,aAAM,OAAO,KAAK;AAChB,YAAI,QAAQ,IAAK,MAAM,MAAQ;AAC/B,eAAO;AAAA,MACT;AACA,aAAM,MAAM,QAAQ;AAClB,YAAI,QAAQ,IAAK,MAAM,MAAQ;AAC/B,iBAAS;AAAA,MACX;AACA,UAAI,MAAM,IAAI,MAAM;AAEpB,aAAO,QAAQ,SAAS,YAAY;AAEpC,aAAO;AAAA,IACT;AAAA;AAAA;;;ACzBA,IAAAC,kBAAA;AAAA;AAAA,WAAO,UAAU;AAEjB,QAAI,MAAM;AAAV,QACI,OAAO;AAEX,aAAS,KAAK,KAAK,QAAQ;AACzB,UAAI,MAAS,GACT,SAAS,UAAU,GACnB,QAAS,GACT,UAAU,QACV,GACA,IAAI,IAAI;AAEZ,SAAG;AACD,YAAI,WAAW,GAAG;AAChB,eAAK,QAAQ;AACb,gBAAM,IAAI,WAAW,yBAAyB;AAAA,QAChD;AACA,YAAI,IAAI,SAAS;AACjB,eAAO,QAAQ,MACV,IAAI,SAAS,SACb,IAAI,QAAQ,KAAK,IAAI,GAAG,KAAK;AAClC,iBAAS;AAAA,MACX,SAAS,KAAK;AAEd,WAAK,QAAQ,UAAU;AAEvB,aAAO;AAAA,IACT;AAAA;AAAA;;;AC5BA,IAAAC,kBAAA;AAAA;AACA,QAAI,KAAK,KAAK,IAAI,GAAI,CAAC;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AAEvB,WAAO,UAAU,SAAU,OAAO;AAChC,aACE,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACA;AAAA,IAEjB;AAAA;AAAA;;;ACxBA,IAAAC,kBAAA;AAAA;AAAA,WAAO,UAAU;AAAA,MACb,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,gBAAgB;AAAA,IACpB;AAAA;AAAA;;;ACJA;AAAA;AAAA,QAAI,SAAS;AACb,YAAQ,SAAS,SAAS,OAAQ,GAAG,GAAG,GAAG;AACzC,UAAI,KAAK,IAAI,IAAE,IAAI,IAAE,KAAK;AAC1B,UAAI,IAAI,OAAO,OAAO,GAAG,GAAG,CAAC;AAC7B,aAAO,QAAQ,OAAO,OAAO;AAC7B,aAAO;AAAA,IACT;AACA,YAAQ,SAAS,SAAS,OAAQ,GAAG,GAAG;AACtC,UAAI,IAAI,OAAO,OAAO,GAAG,CAAC;AAC1B,aAAO,QAAQ,OAAO,OAAO;AAC7B,aAAO,IAAI,KAAK,IAAE,KAAK,KAAK,IAAI;AAAA,IAClC;AAEA,YAAQ,iBAAiB,SAAU,GAAG;AACpC,aAAO,OAAO,eAAe,KAAK,IAAI,IAAE,IAAI,IAAE,KAAK,CAAC;AAAA,IACtD;AAAA;AAAA;;;ACfA;AAAA;AAAA,aAAS,WAAY,QAAQ;AAC3B,aAAO,OAAO;AAAA,IAChB;AAEA,aAAS,SAAU,QAAQ;AACzB,YAAM,MAAM,OAAO;AAEnB,UAAI,SAAS;AAEb,eAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,kBAAU,OAAO,aAAa,OAAO,CAAC,CAAC;AAAA,MACzC;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,MAAO,QAAQ,QAAQ,SAAS,GAAG,SAAS,WAAW,MAAM,GAAG;AACvE,YAAM,MAAM,KAAK,IAAI,QAAQ,OAAO,aAAa,MAAM;AAEvD,eAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,eAAO,SAAS,CAAC,IAAI,OAAO,WAAW,CAAC;AAAA,MAC1C;AAEA,aAAO;AAAA,IACT;AAEA,WAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA;AAAA;;;AC9BA;AAAA;AAAA,QAAM,WAAW;AAEjB,QAAM,QAAQ,IAAI,WAAW,GAAG;AAEhC,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,YAAM,SAAS,WAAW,CAAC,CAAC,IAAI;AAAA,IAClC;AAEA;AAAA;AAAA,MAAc;AAAA,IAAI,IAAI;AACtB;AAAA;AAAA,MAAc;AAAA,IAAI,IAAI;AAEtB,aAAS,WAAY,QAAQ;AAC3B,UAAI,MAAM,OAAO;AAEjB,UAAI,OAAO,WAAW,MAAM,CAAC,MAAM,GAAM;AACzC,UAAI,MAAM,KAAK,OAAO,WAAW,MAAM,CAAC,MAAM,GAAM;AAEpD,aAAQ,MAAM,MAAO;AAAA,IACvB;AAEA,aAAS,SAAU,QAAQ;AACzB,YAAM,MAAM,OAAO;AAEnB,UAAI,SAAS;AAEb,eAAS,IAAI,GAAG,IAAI,KAAK,KAAK,GAAG;AAC/B,kBACE,SAAS,OAAO,CAAC,KAAK,CAAC,IACvB,UAAW,OAAO,CAAC,IAAI,MAAM,IAAM,OAAO,IAAI,CAAC,KAAK,CAAE,IACtD,UAAW,OAAO,IAAI,CAAC,IAAI,OAAO,IAAM,OAAO,IAAI,CAAC,KAAK,CAAE,IAC3D,SAAS,OAAO,IAAI,CAAC,IAAI,EAAE;AAAA,MAE/B;AAEA,UAAI,MAAM,MAAM,GAAG;AACjB,iBAAS,OAAO,UAAU,GAAG,OAAO,SAAS,CAAC,IAAI;AAAA,MACpD,WAAW,MAAM,MAAM,GAAG;AACxB,iBAAS,OAAO,UAAU,GAAG,OAAO,SAAS,CAAC,IAAI;AAAA,MACpD;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,MAAO,QAAQ,QAAQ,SAAS,GAAG,SAAS,WAAW,MAAM,GAAG;AACvE,YAAM,MAAM,KAAK,IAAI,QAAQ,OAAO,aAAa,MAAM;AAEvD,eAAS,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,KAAK,GAAG;AACtC,cAAM,IAAI,MAAM,OAAO,WAAW,CAAC,CAAC;AACpC,cAAM,IAAI,MAAM,OAAO,WAAW,IAAI,CAAC,CAAC;AACxC,cAAM,IAAI,MAAM,OAAO,WAAW,IAAI,CAAC,CAAC;AACxC,cAAM,IAAI,MAAM,OAAO,WAAW,IAAI,CAAC,CAAC;AAExC,eAAO,GAAG,IAAK,KAAK,IAAM,KAAK;AAC/B,eAAO,GAAG,KAAM,IAAI,OAAO,IAAM,KAAK;AACtC,eAAO,GAAG,KAAM,IAAI,MAAM,IAAM,IAAI;AAAA,MACtC;AAEA,aAAO;AAAA,IACT;AAEA,WAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA;AAAA;;;AChEA;AAAA;AAAA,aAAS,WAAY,QAAQ;AAC3B,aAAO,OAAO,WAAW;AAAA,IAC3B;AAEA,aAAS,SAAU,QAAQ;AACzB,YAAM,MAAM,OAAO;AAEnB,eAAS,IAAI,SAAS,OAAO,QAAQ,OAAO,YAAY,GAAG;AAE3D,UAAI,SAAS;AACb,UAAI,IAAI;AAER,eAAS,IAAI,MAAO,MAAM,GAAI,IAAI,GAAG,KAAK,GAAG;AAC3C,kBAAU,OAAO,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAAA,MAC5D;AAEA,aAAO,IAAI,KAAK,KAAK;AACnB,kBAAU,OAAO,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAAA,MAC3D;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,MAAO,QAAQ,QAAQ,SAAS,GAAG,SAAS,WAAW,MAAM,GAAG;AACvE,YAAM,MAAM,KAAK,IAAI,QAAQ,OAAO,aAAa,MAAM;AAEvD,eAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,cAAM,IAAI,SAAS,OAAO,WAAW,IAAI,CAAC,CAAC;AAC3C,cAAM,IAAI,SAAS,OAAO,WAAW,IAAI,IAAI,CAAC,CAAC;AAE/C,YAAI,MAAM,UAAa,MAAM,QAAW;AACtC,iBAAO,OAAO,SAAS,GAAG,CAAC;AAAA,QAC7B;AAEA,eAAO,SAAS,CAAC,IAAK,KAAK,IAAK;AAAA,MAClC;AAEA,aAAO;AAAA,IACT;AAEA,WAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,aAAS,SAAU,MAAM;AACvB,UAAI,QAAQ,MAAQ,QAAQ,GAAM,QAAO,OAAO;AAChD,UAAI,QAAQ,MAAQ,QAAQ,GAAM,QAAO,OAAO,KAAO;AACvD,UAAI,QAAQ,MAAQ,QAAQ,IAAM,QAAO,OAAO,KAAO;AAAA,IACzD;AAAA;AAAA;;;AClDA;AAAA;AAAA,aAAS,WAAY,QAAQ;AAC3B,UAAI,SAAS;AAEb,eAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,IAAI,GAAG,KAAK;AAC7C,cAAM,OAAO,OAAO,WAAW,CAAC;AAEhC,YAAI,QAAQ,SAAU,QAAQ,SAAU,IAAI,IAAI,GAAG;AACjD,gBAAMC,QAAO,OAAO,WAAW,IAAI,CAAC;AAEpC,cAAIA,SAAQ,SAAUA,SAAQ,OAAQ;AACpC,sBAAU;AACV;AACA;AAAA,UACF;AAAA,QACF;AAEA,YAAI,QAAQ,IAAM,WAAU;AAAA,iBACnB,QAAQ,KAAO,WAAU;AAAA,YAC7B,WAAU;AAAA,MACjB;AAEA,aAAO;AAAA,IACT;AAEA,QAAI;AAEJ,QAAI,OAAO,gBAAgB,aAAa;AACtC,YAAM,UAAU,IAAI,YAAY;AAEhC,iBAAW,SAASC,UAAU,QAAQ;AACpC,eAAO,QAAQ,OAAO,MAAM;AAAA,MAC9B;AAAA,IACF,OAAO;AACL,iBAAW,SAASA,UAAU,QAAQ;AACpC,cAAM,MAAM,OAAO;AAEnB,YAAI,SAAS;AACb,YAAI,IAAI;AAER,eAAO,IAAI,KAAK;AACd,cAAI,OAAO,OAAO,CAAC;AAEnB,cAAI,QAAQ,KAAM;AAChB,sBAAU,OAAO,aAAa,IAAI;AAClC;AACA;AAAA,UACF;AAEA,cAAI,cAAc;AAClB,cAAI,YAAY;AAEhB,cAAI,QAAQ,KAAM;AAChB,0BAAc;AACd,wBAAY,OAAO;AAAA,UACrB,WAAW,QAAQ,KAAM;AACvB,0BAAc;AACd,wBAAY,OAAO;AAAA,UACrB,WAAW,QAAQ,KAAM;AACvB,0BAAc;AACd,wBAAY,OAAO;AAAA,UACrB;AAEA,cAAI,MAAM,IAAI,cAAc,GAAG;AAC7B,gBAAI,IAAI;AAER,mBAAO,IAAI,aAAa;AACtB,qBAAO,OAAO,IAAI,IAAI,CAAC;AACvB,0BAAa,aAAa,IAAM,OAAO;AACvC,mBAAK;AAAA,YACP;AAAA,UACF,OAAO;AACL,wBAAY;AACZ,0BAAc,MAAM;AAAA,UACtB;AAEA,oBAAU,OAAO,cAAc,SAAS;AACxC,eAAK,cAAc;AAAA,QACrB;AAEA,eAAO;AAAA,MACT;AAAA,IACF;AAEA,QAAI;AAEJ,QAAI,OAAO,gBAAgB,aAAa;AACtC,YAAM,UAAU,IAAI,YAAY;AAEhC,cAAQ,SAASC,OAAO,QAAQ,QAAQ,SAAS,GAAG,SAAS,WAAW,MAAM,GAAG;AAC/E,cAAM,MAAM,KAAK,IAAI,QAAQ,OAAO,aAAa,MAAM;AACvD,gBAAQ,WAAW,QAAQ,OAAO,SAAS,QAAQ,SAAS,GAAG,CAAC;AAChE,eAAO;AAAA,MACT;AAAA,IACF,OAAO;AACL,cAAQ,SAASA,OAAO,QAAQ,QAAQ,SAAS,GAAG,SAAS,WAAW,MAAM,GAAG;AAC/E,cAAM,MAAM,KAAK,IAAI,QAAQ,OAAO,aAAa,MAAM;AAEvD,iBAAS,OAAO,SAAS,QAAQ,SAAS,GAAG;AAE7C,YAAI,IAAI;AACR,YAAI,IAAI;AAER,eAAO,IAAI,OAAO,QAAQ;AACxB,gBAAM,OAAO,OAAO,YAAY,CAAC;AAEjC,cAAI,QAAQ,KAAM;AAChB,mBAAO,GAAG,IAAI;AACd;AACA;AAAA,UACF;AAEA,cAAI,QAAQ;AACZ,cAAI,OAAO;AAEX,cAAI,QAAQ,MAAO;AACjB,oBAAQ;AACR,mBAAO;AAAA,UACT,WAAW,QAAQ,OAAQ;AACzB,oBAAQ;AACR,mBAAO;AAAA,UACT,WAAW,QAAQ,SAAU;AAC3B,oBAAQ;AACR,mBAAO;AAAA,UACT;AAEA,iBAAO,GAAG,IAAI,OAAQ,QAAQ;AAC9B,mBAAS;AAET,iBAAO,SAAS,GAAG;AACjB,mBAAO,GAAG,IAAI,MAAS,QAAQ,QAAS;AACxC,qBAAS;AAAA,UACX;AAEA,eAAK,QAAQ,QAAU,IAAI;AAAA,QAC7B;AAEA,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA;AAAA;;;AChJA;AAAA;AAAA,aAAS,WAAY,QAAQ;AAC3B,aAAO,OAAO,SAAS;AAAA,IACzB;AAEA,aAAS,SAAU,QAAQ;AACzB,YAAM,MAAM,OAAO;AAEnB,UAAI,SAAS;AAEb,eAAS,IAAI,GAAG,IAAI,MAAM,GAAG,KAAK,GAAG;AACnC,kBAAU,OAAO,aAAa,OAAO,CAAC,IAAK,OAAO,IAAI,CAAC,IAAI,GAAI;AAAA,MACjE;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,MAAO,QAAQ,QAAQ,SAAS,GAAG,SAAS,WAAW,MAAM,GAAG;AACvE,YAAM,MAAM,KAAK,IAAI,QAAQ,OAAO,aAAa,MAAM;AAEvD,UAAI,QAAQ;AAEZ,eAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,EAAE,GAAG;AACtC,aAAK,SAAS,KAAK,EAAG;AAEtB,cAAM,IAAI,OAAO,WAAW,CAAC;AAC7B,cAAM,KAAK,KAAK;AAChB,cAAM,KAAK,IAAI;AAEf,eAAO,SAAS,IAAI,CAAC,IAAI;AACzB,eAAO,SAAS,IAAI,IAAI,CAAC,IAAI;AAAA,MAC/B;AAEA,aAAO;AAAA,IACT;AAEA,WAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA;AAAA;;;ACvCA,IAAAC,mBAAA;AAAA;AAAA,QAAM,QAAQ;AACd,QAAM,SAAS;AACf,QAAM,MAAM;AACZ,QAAM,OAAO;AACb,QAAM,UAAU;AAEhB,QAAM,KAAK,IAAI,WAAW,YAAY,GAAG,GAAI,EAAE,MAAM,EAAE,CAAC,MAAM;AAE9D,aAAS,SAAU,UAAU;AAC3B,cAAQ,UAAU;AAAA,QAChB,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT;AACE,gBAAM,IAAI,MAAM,qBAAqB,QAAQ,EAAE;AAAA,MACnD;AAAA,IACF;AAEA,aAAS,SAAU,OAAO;AACxB,aAAO,iBAAiB;AAAA,IAC1B;AAEA,aAAS,WAAY,UAAU;AAC7B,UAAI;AACF,iBAAS,QAAQ;AACjB,eAAO;AAAA,MACT,QAAQ;AACN,eAAO;AAAA,MACT;AAAA,IACF;AAEA,aAAS,MAAO,MAAMC,OAAM,UAAU;AACpC,YAAM,SAAS,IAAI,WAAW,IAAI;AAClC,UAAIA,UAAS,OAAW,SAAQ,KAAK,QAAQA,OAAM,GAAG,OAAO,YAAY,QAAQ;AACjF,aAAO;AAAA,IACT;AAEA,aAAS,YAAa,MAAM;AAC1B,aAAO,IAAI,WAAW,IAAI;AAAA,IAC5B;AAEA,aAAS,gBAAiB,MAAM;AAC9B,aAAO,IAAI,WAAW,IAAI;AAAA,IAC5B;AAEA,aAAS,WAAY,QAAQ,UAAU;AACrC,aAAO,SAAS,QAAQ,EAAE,WAAW,MAAM;AAAA,IAC7C;AAEA,aAAS,QAAS,GAAG,GAAG;AACtB,UAAI,MAAM,EAAG,QAAO;AAEpB,YAAM,MAAM,KAAK,IAAI,EAAE,YAAY,EAAE,UAAU;AAE/C,UAAI,IAAI,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU;AACrD,UAAI,IAAI,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU;AAErD,UAAI,IAAI;AAER,eAAS,IAAI,MAAO,MAAM,GAAI,IAAI,GAAG,KAAK,GAAG;AAC3C,cAAM,IAAI,EAAE,UAAU,GAAG,EAAE;AAC3B,cAAM,IAAI,EAAE,UAAU,GAAG,EAAE;AAC3B,YAAI,MAAM,EAAG;AAAA,MACf;AAEA,aAAO,IAAI,KAAK,KAAK;AACnB,cAAM,IAAI,EAAE,SAAS,CAAC;AACtB,cAAM,IAAI,EAAE,SAAS,CAAC;AACtB,YAAI,IAAI,EAAG,QAAO;AAClB,YAAI,IAAI,EAAG,QAAO;AAAA,MACpB;AAEA,aAAO,EAAE,aAAa,EAAE,aAAa,IAAI,EAAE,aAAa,EAAE,aAAa,KAAK;AAAA,IAC9E;AAEA,aAAS,OAAQ,SAAS,aAAa;AACrC,UAAI,gBAAgB,QAAW;AAC7B,sBAAc,QAAQ,OAAO,CAAC,KAAK,WAAW,MAAM,OAAO,YAAY,CAAC;AAAA,MAC1E;AAEA,YAAM,SAAS,IAAI,WAAW,WAAW;AAEzC,UAAI,SAAS;AACb,iBAAW,UAAU,SAAS;AAC5B,YAAI,SAAS,OAAO,aAAa,OAAO,YAAY;AAClD,gBAAM,MAAM,OAAO,SAAS,GAAG,OAAO,aAAa,MAAM;AACzD,iBAAO,IAAI,KAAK,MAAM;AACtB,iBAAO;AAAA,QACT;AACA,eAAO,IAAI,QAAQ,MAAM;AACzB,kBAAU,OAAO;AAAA,MACnB;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,KAAM,QAAQ,QAAQ,cAAc,GAAG,QAAQ,GAAG,MAAM,OAAO,YAAY;AAClF,UAAI,MAAM,KAAK,MAAM,MAAO,QAAO;AACnC,UAAI,QAAQ,MAAO,QAAO;AAC1B,UAAI,OAAO,eAAe,KAAK,OAAO,eAAe,EAAG,QAAO;AAE/D,UAAI,cAAc,EAAG,OAAM,IAAI,WAAW,6BAA6B;AACvE,UAAI,QAAQ,KAAK,SAAS,OAAO,WAAY,OAAM,IAAI,WAAW,6BAA6B;AAC/F,UAAI,MAAM,EAAG,OAAM,IAAI,WAAW,2BAA2B;AAE7D,UAAI,eAAe,OAAO,WAAY,eAAc,OAAO;AAC3D,UAAI,MAAM,OAAO,WAAY,OAAM,OAAO;AAC1C,UAAI,OAAO,aAAa,cAAc,MAAM,OAAO;AACjD,cAAM,OAAO,SAAS,cAAc;AAAA,MACtC;AAEA,YAAM,MAAM,MAAM;AAElB,UAAI,WAAW,QAAQ;AACrB,eAAO,WAAW,aAAa,OAAO,GAAG;AAAA,MAC3C,OAAO;AACL,eAAO,IAAI,OAAO,SAAS,OAAO,GAAG,GAAG,WAAW;AAAA,MACrD;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,OAAQ,GAAG,GAAG;AACrB,UAAI,MAAM,EAAG,QAAO;AACpB,UAAI,EAAE,eAAe,EAAE,WAAY,QAAO;AAE1C,YAAM,MAAM,EAAE;AAEd,UAAI,IAAI,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU;AACrD,UAAI,IAAI,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU;AAErD,UAAI,IAAI;AAER,eAAS,IAAI,MAAO,MAAM,GAAI,IAAI,GAAG,KAAK,GAAG;AAC3C,YAAI,EAAE,UAAU,GAAG,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,EAAG,QAAO;AAAA,MACxD;AAEA,aAAO,IAAI,KAAK,KAAK;AACnB,YAAI,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,EAAG,QAAO;AAAA,MAC9C;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,KAAM,QAAQ,OAAO,QAAQ,KAAK,UAAU;AACnD,UAAI,OAAO,UAAU,UAAU;AAE7B,YAAI,OAAO,WAAW,UAAU;AAC9B,qBAAW;AACX,mBAAS;AACT,gBAAM,OAAO;AAAA,QAGf,WAAW,OAAO,QAAQ,UAAU;AAClC,qBAAW;AACX,gBAAM,OAAO;AAAA,QACf;AAAA,MACF,WAAW,OAAO,UAAU,UAAU;AACpC,gBAAQ,QAAQ;AAAA,MAClB,WAAW,OAAO,UAAU,WAAW;AACrC,gBAAQ,CAAC;AAAA,MACX;AAEA,UAAI,SAAS,KAAK,OAAO,aAAa,UAAU,OAAO,aAAa,KAAK;AACvE,cAAM,IAAI,WAAW,oBAAoB;AAAA,MAC3C;AAEA,UAAI,WAAW,OAAW,UAAS;AACnC,UAAI,QAAQ,OAAW,OAAM,OAAO;AAEpC,UAAI,OAAO,OAAQ,QAAO;AAE1B,UAAI,CAAC,MAAO,SAAQ;AAEpB,UAAI,OAAO,UAAU,UAAU;AAC7B,iBAAS,IAAI,QAAQ,IAAI,KAAK,EAAE,GAAG;AACjC,iBAAO,CAAC,IAAI;AAAA,QACd;AAAA,MACF,OAAO;AACL,gBAAQ,SAAS,KAAK,IAAI,QAAQ,KAAK,OAAO,QAAQ;AAEtD,cAAM,MAAM,MAAM;AAElB,iBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,EAAE,GAAG;AACrC,iBAAO,IAAI,MAAM,IAAI,MAAM,IAAI,GAAG;AAAA,QACpC;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,KAAM,OAAO,kBAAkB,QAAQ;AAE9C,UAAI,OAAO,UAAU,SAAU,QAAO,WAAW,OAAO,gBAAgB;AAGxE,UAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,UAAU,KAAK;AAGhD,UAAI,YAAY,OAAO,KAAK,EAAG,QAAO,WAAW,KAAK;AAGtD,aAAO,gBAAgB,OAAO,kBAAkB,MAAM;AAAA,IACxD;AAEA,aAAS,WAAY,QAAQ,UAAU;AACrC,YAAM,QAAQ,SAAS,QAAQ;AAC/B,YAAM,SAAS,IAAI,WAAW,MAAM,WAAW,MAAM,CAAC;AACtD,YAAM,MAAM,QAAQ,QAAQ,GAAG,OAAO,UAAU;AAChD,aAAO;AAAA,IACT;AAEA,aAAS,UAAW,OAAO;AACzB,YAAM,SAAS,IAAI,WAAW,MAAM,MAAM;AAC1C,aAAO,IAAI,KAAK;AAChB,aAAO;AAAA,IACT;AAEA,aAAS,WAAY,QAAQ;AAC3B,YAAMC,QAAO,IAAI,WAAW,OAAO,UAAU;AAC7C,MAAAA,MAAK,IAAI,MAAM;AACf,aAAOA;AAAA,IACT;AAEA,aAAS,gBAAiB,aAAa,YAAY,QAAQ;AACzD,aAAO,IAAI,WAAW,aAAa,YAAY,MAAM;AAAA,IACvD;AAEA,aAAS,SAAU,QAAQ,OAAO,YAAY,UAAU;AACtD,aAAO,QAAQ,QAAQ,OAAO,YAAY,QAAQ,MAAM;AAAA,IAC1D;AAEA,aAAS,qBAAsB,QAAQ,OAAO,YAAY,UAAU,OAAO;AACzE,UAAI,OAAO,eAAe,EAAG,QAAO;AAEpC,UAAI,OAAO,eAAe,UAAU;AAClC,mBAAW;AACX,qBAAa;AAAA,MACf,WAAW,eAAe,QAAW;AACnC,qBAAa,QAAQ,IAAK,OAAO,SAAS;AAAA,MAC5C,WAAW,aAAa,GAAG;AACzB,sBAAc,OAAO;AAAA,MACvB;AAEA,UAAI,cAAc,OAAO,YAAY;AACnC,YAAI,MAAO,QAAO;AAAA,YACb,cAAa,OAAO,aAAa;AAAA,MACxC,WAAW,aAAa,GAAG;AACzB,YAAI,MAAO,cAAa;AAAA,YACnB,QAAO;AAAA,MACd;AAEA,UAAI,OAAO,UAAU,UAAU;AAC7B,gBAAQ,KAAK,OAAO,QAAQ;AAAA,MAC9B,WAAW,OAAO,UAAU,UAAU;AACpC,gBAAQ,QAAQ;AAEhB,YAAI,OAAO;AACT,iBAAO,OAAO,QAAQ,OAAO,UAAU;AAAA,QACzC,OAAO;AACL,iBAAO,OAAO,YAAY,OAAO,UAAU;AAAA,QAC7C;AAAA,MACF;AAEA,UAAI,MAAM,eAAe,EAAG,QAAO;AAEnC,UAAI,OAAO;AACT,YAAI,aAAa;AAEjB,iBAAS,IAAI,YAAY,IAAI,OAAO,YAAY,KAAK;AACnD,cAAI,OAAO,CAAC,MAAM,MAAM,eAAe,KAAK,IAAI,IAAI,UAAU,GAAG;AAC/D,gBAAI,eAAe,GAAI,cAAa;AACpC,gBAAI,IAAI,aAAa,MAAM,MAAM,WAAY,QAAO;AAAA,UACtD,OAAO;AACL,gBAAI,eAAe,GAAI,MAAK,IAAI;AAChC,yBAAa;AAAA,UACf;AAAA,QACF;AAAA,MACF,OAAO;AACL,YAAI,aAAa,MAAM,aAAa,OAAO,YAAY;AACrD,uBAAa,OAAO,aAAa,MAAM;AAAA,QACzC;AAEA,iBAAS,IAAI,YAAY,KAAK,GAAG,KAAK;AACpC,cAAI,QAAQ;AAEZ,mBAAS,IAAI,GAAG,IAAI,MAAM,YAAY,KAAK;AACzC,gBAAI,OAAO,IAAI,CAAC,MAAM,MAAM,CAAC,GAAG;AAC9B,sBAAQ;AACR;AAAA,YACF;AAAA,UACF;AAEA,cAAI,MAAO,QAAO;AAAA,QACpB;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,QAAS,QAAQ,OAAO,YAAY,UAAU;AACrD,aAAO;AAAA,QAAqB;AAAA,QAAQ;AAAA,QAAO;AAAA,QAAY;AAAA,QAAU;AAAA;AAAA,MAAgB;AAAA,IACnF;AAEA,aAAS,YAAa,QAAQ,OAAO,YAAY,UAAU;AACzD,aAAO;AAAA,QAAqB;AAAA,QAAQ;AAAA,QAAO;AAAA,QAAY;AAAA,QAAU;AAAA;AAAA,MAAgB;AAAA,IACnF;AAEA,aAAS,KAAM,QAAQ,GAAG,GAAG;AAC3B,YAAM,IAAI,OAAO,CAAC;AAClB,aAAO,CAAC,IAAI,OAAO,CAAC;AACpB,aAAO,CAAC,IAAI;AAAA,IACd;AAEA,aAAS,OAAQ,QAAQ;AACvB,YAAM,MAAM,OAAO;AAEnB,UAAI,MAAM,MAAM,EAAG,OAAM,IAAI,WAAW,2CAA2C;AAEnF,eAAS,IAAI,GAAG,IAAI,KAAK,KAAK,EAAG,MAAK,QAAQ,GAAG,IAAI,CAAC;AAEtD,aAAO;AAAA,IACT;AAEA,aAAS,OAAQ,QAAQ;AACvB,YAAM,MAAM,OAAO;AAEnB,UAAI,MAAM,MAAM,EAAG,OAAM,IAAI,WAAW,2CAA2C;AAEnF,eAAS,IAAI,GAAG,IAAI,KAAK,KAAK,GAAG;AAC/B,aAAK,QAAQ,GAAG,IAAI,CAAC;AACrB,aAAK,QAAQ,IAAI,GAAG,IAAI,CAAC;AAAA,MAC3B;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,OAAQ,QAAQ;AACvB,YAAM,MAAM,OAAO;AAEnB,UAAI,MAAM,MAAM,EAAG,OAAM,IAAI,WAAW,2CAA2C;AAEnF,eAAS,IAAI,GAAG,IAAI,KAAK,KAAK,GAAG;AAC/B,aAAK,QAAQ,GAAG,IAAI,CAAC;AACrB,aAAK,QAAQ,IAAI,GAAG,IAAI,CAAC;AACzB,aAAK,QAAQ,IAAI,GAAG,IAAI,CAAC;AACzB,aAAK,QAAQ,IAAI,GAAG,IAAI,CAAC;AAAA,MAC3B;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,SAAU,QAAQ;AACzB,aAAO;AAAA,IACT;AAEA,aAAS,SAAU,QAAQ,UAAU,QAAQ,GAAG,MAAM,OAAO,YAAY;AACvE,YAAM,MAAM,OAAO;AAEnB,UAAI,SAAS,IAAK,QAAO;AACzB,UAAI,OAAO,MAAO,QAAO;AACzB,UAAI,QAAQ,EAAG,SAAQ;AACvB,UAAI,MAAM,IAAK,OAAM;AAErB,UAAI,UAAU,KAAK,MAAM,IAAK,UAAS,OAAO,SAAS,OAAO,GAAG;AAEjE,aAAO,SAAS,QAAQ,EAAE,SAAS,MAAM;AAAA,IAC3C;AAEA,aAAS,MAAO,QAAQ,QAAQ,QAAQ,QAAQ,UAAU;AAExD,UAAI,WAAW,QAAW;AACxB,mBAAW;AAAA,MAGb,WAAW,WAAW,UAAa,OAAO,WAAW,UAAU;AAC7D,mBAAW;AACX,iBAAS;AAAA,MAGX,WAAW,aAAa,UAAa,OAAO,WAAW,UAAU;AAC/D,mBAAW;AACX,iBAAS;AAAA,MACX;AAEA,aAAO,SAAS,QAAQ,EAAE,MAAM,QAAQ,QAAQ,QAAQ,MAAM;AAAA,IAChE;AAEA,aAAS,cAAe,QAAQ,OAAO,QAAQ;AAC7C,UAAI,WAAW,OAAW,UAAS;AAEnC,YAAM,OAAO,IAAI,SAAS,OAAO,QAAQ,OAAO,YAAY,OAAO,UAAU;AAC7E,WAAK,WAAW,QAAQ,OAAO,IAAI;AAEnC,aAAO,SAAS;AAAA,IAClB;AAEA,aAAS,aAAc,QAAQ,OAAO,QAAQ;AAC5C,UAAI,WAAW,OAAW,UAAS;AAEnC,YAAM,OAAO,IAAI,SAAS,OAAO,QAAQ,OAAO,YAAY,OAAO,UAAU;AAC7E,WAAK,WAAW,QAAQ,OAAO,IAAI;AAEnC,aAAO,SAAS;AAAA,IAClB;AAEA,aAAS,cAAe,QAAQ,OAAO,QAAQ;AAC7C,UAAI,WAAW,OAAW,UAAS;AAEnC,YAAM,OAAO,IAAI,SAAS,OAAO,QAAQ,OAAO,YAAY,OAAO,UAAU;AAC7E,WAAK,UAAU,QAAQ,OAAO,IAAI;AAElC,aAAO,SAAS;AAAA,IAClB;AAEA,aAAS,aAAc,QAAQ,OAAO,QAAQ;AAC5C,UAAI,WAAW,OAAW,UAAS;AAEnC,YAAM,OAAO,IAAI,SAAS,OAAO,QAAQ,OAAO,YAAY,OAAO,UAAU;AAC7E,WAAK,SAAS,QAAQ,OAAO,IAAI;AAEjC,aAAO,SAAS;AAAA,IAClB;AAEA,aAAS,aAAc,QAAQ,QAAQ;AACrC,UAAI,WAAW,OAAW,UAAS;AAEnC,YAAM,OAAO,IAAI,SAAS,OAAO,QAAQ,OAAO,YAAY,OAAO,UAAU;AAE7E,aAAO,KAAK,WAAW,QAAQ,IAAI;AAAA,IACrC;AAEA,aAAS,YAAa,QAAQ,QAAQ;AACpC,UAAI,WAAW,OAAW,UAAS;AAEnC,YAAM,OAAO,IAAI,SAAS,OAAO,QAAQ,OAAO,YAAY,OAAO,UAAU;AAE7E,aAAO,KAAK,WAAW,QAAQ,IAAI;AAAA,IACrC;AAEA,aAAS,aAAc,QAAQ,QAAQ;AACrC,UAAI,WAAW,OAAW,UAAS;AAEnC,YAAM,OAAO,IAAI,SAAS,OAAO,QAAQ,OAAO,YAAY,OAAO,UAAU;AAE7E,aAAO,KAAK,UAAU,QAAQ,IAAI;AAAA,IACpC;AAEA,aAAS,YAAa,QAAQ,QAAQ;AACpC,UAAI,WAAW,OAAW,UAAS;AAEnC,YAAM,OAAO,IAAI,SAAS,OAAO,QAAQ,OAAO,YAAY,OAAO,UAAU;AAE7E,aAAO,KAAK,SAAS,QAAQ,IAAI;AAAA,IACnC;AAEA,WAAO,UAAU,UAAU;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA;AAAA;;;AClfA;AAAA;AAAA,QAAI,SAAS;AACb,QAAI,UAAU;AACd,QAAI,MAAM;AAEV,YAAQ,OAAO;AAEf,YAAQ,OAAO,SAAU,KAAK;AAC5B,UAAI,OAAO,OAAO,KAAK,OAAO;AAC9B,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,YAAI,QAAQ,KAAK,CAAC,CAAC,MAAM,IAAK,QAAO,KAAK,CAAC;AAAA,MAC7C;AACA,aAAO;AAAA,IACT;AAEA,YAAQ,OAAO,SAAU,MAAM,QAAQ,QAAQ;AAC7C,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,iBAAO,OAAO,QAAQ,MAAM;AAC5B,iBAAO,SAAS,OAAO,OAAO;AAAA,QAEhC,KAAK;AACH,iBAAO,SAAS;AAAA,QAElB,KAAK;AACH,cAAI,MAAM,OAAO,OAAO,QAAQ,MAAM;AACtC,iBAAO,SAAS,OAAO,OAAO,QAAQ;AAAA,QAExC,KAAK;AAAA,QACL,KAAK;AACH,gBAAM,IAAI,MAAM,0BAA0B;AAAA,QAE5C,KAAK;AACH,iBAAO,SAAS;AAAA,MACpB;AAEA,YAAM,IAAI,MAAM,wBAAwB,IAAI;AAAA,IAC9C;AAEA,YAAQ,QAAQ;AAAA,MAAQ;AAAA,MACtB,SAAS,OAAQ,KAAK,QAAQ,QAAQ;AACpC,YAAI,YAAY;AAChB,YAAI,MAAM,aAAa,GAAG;AAE1B,eAAO,OAAO,KAAK,QAAQ,MAAM;AACjC,kBAAU,OAAO,OAAO;AAExB,YAAI,IAAI,SAAS,GAAG,EAAG,KAAI,KAAK,KAAK,QAAQ,MAAM;AAAA,YAC9C,KAAI,MAAM,QAAQ,KAAK,QAAQ,GAAG;AACvC,kBAAU;AAEV,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAAA,MACA,SAAS,OAAQ,QAAQ,QAAQ;AAC/B,YAAI,YAAY;AAEhB,YAAI,MAAM,OAAO,OAAO,QAAQ,MAAM;AACtC,kBAAU,OAAO,OAAO;AAExB,YAAI,MAAM,OAAO,SAAS,QAAQ,SAAS,GAAG;AAC9C,kBAAU,IAAI;AAEd,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAAA,MACA,SAAS,eAAgB,KAAK;AAC5B,YAAI,MAAM,aAAa,GAAG;AAC1B,eAAO,OAAO,eAAe,GAAG,IAAI;AAAA,MACtC;AAAA,IACF;AAEA,YAAQ,SAAS;AAAA,MAAQ;AAAA,MACvB,SAAS,OAAQ,KAAK,QAAQ,QAAQ;AACpC,YAAI,YAAY;AAChB,YAAI,MAAM,IAAI,WAAW,GAAG;AAE5B,eAAO,OAAO,KAAK,QAAQ,QAAQ,OAAO;AAC1C,kBAAU,OAAO,OAAO;AAExB,YAAI,MAAM,QAAQ,KAAK,QAAQ,GAAG;AAClC,kBAAU;AAEV,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAAA,MACA,SAAS,OAAQ,QAAQ,QAAQ;AAC/B,YAAI,YAAY;AAEhB,YAAI,MAAM,OAAO,OAAO,QAAQ,MAAM;AACtC,kBAAU,OAAO,OAAO;AAExB,YAAI,MAAM,IAAI,SAAS,QAAQ,SAAS,QAAQ,SAAS,GAAG;AAC5D,kBAAU;AAEV,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAAA,MACA,SAAS,eAAgB,KAAK;AAC5B,YAAI,MAAM,IAAI,WAAW,GAAG;AAC5B,eAAO,OAAO,eAAe,GAAG,IAAI;AAAA,MACtC;AAAA,IACF;AAEA,YAAQ,OAAO;AAAA,MAAQ;AAAA,MACrB,SAAS,OAAQ,KAAK,QAAQ,QAAQ;AACpC,eAAO,MAAM,IAAI,MAAM,IAAI;AAC3B,eAAO,QAAQ;AACf,eAAO;AAAA,MACT;AAAA,MACA,SAAS,OAAQ,QAAQ,QAAQ;AAC/B,YAAI,OAAO,OAAO,MAAM,IAAI;AAC5B,eAAO,QAAQ;AACf,eAAO;AAAA,MACT;AAAA,MACA,SAAS,iBAAkB;AACzB,eAAO;AAAA,MACT;AAAA,IACF;AAEA,YAAQ,QAAQ;AAAA,MAAQ;AAAA,MACtB,SAAS,OAAQ,KAAK,QAAQ,QAAQ;AACpC,eAAO,OAAO,MAAM,IAAI,MAAM,aAAa,KAAK,QAAQ,MAAM;AAC9D,eAAO,QAAQ,OAAO,OAAO;AAC7B,eAAO;AAAA,MACT;AAAA,MACA,SAAS,OAAQ,QAAQ,QAAQ;AAC/B,YAAI,MAAM,OAAO,OAAO,QAAQ,MAAM;AACtC,eAAO,QAAQ,OAAO,OAAO;AAC7B,eAAO,MAAM,aAAa,MAAM,aAAa;AAAA,MAC/C;AAAA,MACA,SAAS,eAAgB,KAAK;AAC5B,eAAO,OAAO,eAAe,MAAM,IAAI,MAAM,aAAa,GAAG;AAAA,MAC/D;AAAA,IACF;AAEA,YAAQ,QAAQ;AAAA,MAAQ;AAAA,MACtB,SAAS,OAAQ,KAAK,QAAQ,QAAQ;AACpC,YAAI,MAAM,GAAG;AACX,cAAI,OAAO,SAAS;AACpB,iBAAO,OAAO,MAAM,IAAI,QAAQ,MAAM;AACtC,oBAAU,OAAO,OAAO,QAAQ;AAChC,iBAAO,MAAM,IAAI,OAAO,MAAM,IAAI;AAClC,iBAAO,SAAS,OAAO,GAAG;AACxB;AACA,mBAAO,MAAM,IAAI;AAAA,UACnB;AACA,iBAAO,IAAI,IAAI;AACf,iBAAO,QAAQ;AAAA,QACjB,OAAO;AACL,iBAAO,OAAO,KAAK,QAAQ,MAAM;AACjC,iBAAO,QAAQ,OAAO,OAAO;AAAA,QAC/B;AACA,eAAO;AAAA,MACT;AAAA,MACA,SAAS,OAAQ,QAAQ,QAAQ;AAC/B,YAAI,MAAM,OAAO,OAAO,QAAQ,MAAM;AACtC,YAAI,OAAO,KAAK,IAAI,GAAG,EAAE,GAAG;AAC1B,cAAI,QAAQ;AACZ,iBAAO,OAAO,SAAS,QAAQ,CAAC,MAAM,IAAM;AAC5C,kBAAQ,SAAS;AACjB,cAAI,SAAS,IAAI,YAAY,KAAK;AAClC,cAAI,KAAK,QAAQ,QAAQ,GAAG,QAAQ,SAAS,KAAK;AAClD,iBAAO,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,IAAI;AACxC,gBAAM,KAAK,OAAO,OAAO,QAAQ,CAAC;AAClC,iBAAO,QAAQ;AAAA,QACjB,OAAO;AACL,iBAAO,QAAQ,OAAO,OAAO;AAAA,QAC/B;AACA,eAAO;AAAA,MACT;AAAA,MACA,SAAS,eAAgB,KAAK;AAC5B,eAAO,MAAM,IAAI,KAAK,OAAO,eAAe,GAAG;AAAA,MACjD;AAAA,IACF;AAEA,YAAQ,SACR,QAAQ,SAAS;AAAA,MAAQ;AAAA,MACvB,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,YAAQ,SACR,QAAQ,SACR,QAAQ,OACR,QAAQ,SAAS;AAAA,MAAQ;AAAA,MACvB,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAGA,YAAQ,UACR,QAAQ,WAAW;AAAA,MAAQ;AAAA,MACzB,SAAS,OAAQ,KAAK,QAAQ,QAAQ;AACpC,YAAI,KAAK,KAAK,QAAQ,MAAM;AAC5B,eAAO,QAAQ;AACf,eAAO;AAAA,MACT;AAAA,MACA,SAAS,OAAQ,QAAQ,QAAQ;AAC/B,YAAI,MAAM,OAAO,SAAS,QAAQ,SAAS,CAAC;AAC5C,eAAO,QAAQ;AACf,eAAO;AAAA,MACT;AAAA,MACA,SAAS,iBAAkB;AACzB,eAAO;AAAA,MACT;AAAA,IACF;AAEA,YAAQ,SAAS;AAAA,MAAQ;AAAA,MACvB,SAAS,OAAQ,KAAK,QAAQ,QAAQ;AACpC,YAAI,cAAc,QAAQ,KAAK,MAAM;AACrC,eAAO,QAAQ;AACf,eAAO;AAAA,MACT;AAAA,MACA,SAAS,OAAQ,QAAQ,QAAQ;AAC/B,YAAI,MAAM,IAAI,aAAa,QAAQ,MAAM;AACzC,eAAO,QAAQ;AACf,eAAO;AAAA,MACT;AAAA,MACA,SAAS,iBAAkB;AACzB,eAAO;AAAA,MACT;AAAA,IACF;AAEA,YAAQ,UAAU;AAAA,MAAQ;AAAA,MACxB,SAAS,OAAQ,KAAK,QAAQ,QAAQ;AACpC,YAAI,cAAc,QAAQ,KAAK,MAAM;AACrC,eAAO,QAAQ;AACf,eAAO;AAAA,MACT;AAAA,MACA,SAAS,OAAQ,QAAQ,QAAQ;AAC/B,YAAI,MAAM,IAAI,aAAa,QAAQ,MAAM;AACzC,eAAO,QAAQ;AACf,eAAO;AAAA,MACT;AAAA,MACA,SAAS,iBAAkB;AACzB,eAAO;AAAA,MACT;AAAA,IACF;AAEA,YAAQ,WAAW;AAAA,MAAQ;AAAA,MACzB,SAAS,OAAQ,KAAK,QAAQ,QAAQ;AACpC,YAAI,aAAa,QAAQ,KAAK,MAAM;AACpC,eAAO,QAAQ;AACf,eAAO;AAAA,MACT;AAAA,MACA,SAAS,OAAQ,QAAQ,QAAQ;AAC/B,YAAI,MAAM,IAAI,YAAY,QAAQ,MAAM;AACxC,eAAO,QAAQ;AACf,eAAO;AAAA,MACT;AAAA,MACA,SAAS,iBAAkB;AACzB,eAAO;AAAA,MACT;AAAA,IACF;AAEA,YAAQ,QAAQ;AAAA,MAAQ;AAAA,MACtB,SAAS,OAAQ,KAAK,QAAQ,QAAQ;AACpC,YAAI,aAAa,QAAQ,KAAK,MAAM;AACpC,eAAO,QAAQ;AACf,eAAO;AAAA,MACT;AAAA,MACA,SAAS,OAAQ,QAAQ,QAAQ;AAC/B,YAAI,MAAM,IAAI,YAAY,QAAQ,MAAM;AACxC,eAAO,QAAQ;AACf,eAAO;AAAA,MACT;AAAA,MACA,SAAS,iBAAkB;AACzB,eAAO;AAAA,MACT;AAAA,IACF;AAEA,aAAS,QAAS,MAAM,QAAQ,QAAQ,gBAAgB;AACtD,aAAO,QAAQ,OAAO,QAAQ;AAE9B,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,aAAS,aAAc,KAAK;AAC1B,aAAO,IAAI,SAAS,GAAG,IAAI,IAAI,SAAS,IAAI,WAAW,GAAG;AAAA,IAC5D;AAAA;AAAA;;;AC9RA;AAAA;AAQA,QAAI,YAAY;AAChB,QAAI,SAAS,UAAU;AACvB,QAAI,OAAO,UAAU;AAErB,QAAI,eAAe,QAAQ,eAAe;AAAA,MACxC,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,QAAI,OAAO,QAAQ,OAAO;AAAA,MACxB,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,QAAI,UAAU,QAAQ,UAAU;AAAA,MAC9B,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,QAAI,SAAS,QAAQ,SAAS;AAAA,MAC5B,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,QAAI,OAAO,QAAQ,OAAO;AAAA,MACxB,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,QAAI,SAAS,QAAQ,SAAS;AAAA,MAC5B,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,QAAI,OAAO,QAAQ,OAAO;AAAA,MACxB,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,QAAI,SAAS,QAAQ,SAAS;AAAA,MAC5B,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,QAAI,UAAU,QAAQ,UAAU;AAAA,MAC9B,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,QAAI,SAAS,QAAQ,SAAS;AAAA,MAC5B,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,QAAI,OAAO,QAAQ,OAAO;AAAA,MACxB,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,QAAI,QAAQ,QAAQ,QAAQ;AAAA,MAC1B,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,uBAAmB;AACnB,eAAW;AACX,kBAAc;AACd,iBAAa;AACb,eAAW;AACX,iBAAa;AACb,eAAW;AACX,iBAAa;AACb,kBAAc;AACd,iBAAa;AACb,eAAW;AACX,gBAAY;AAEZ,aAAS,qBAAsB;AAC7B,UAAI,MAAM;AAAA,QACR,UAAU;AAAA,MACZ;AAEA,mBAAa,iBAAiB;AAC9B,mBAAa,SAAS;AACtB,mBAAa,SAAS;AAEtB,eAAS,eAAgB,KAAK;AAC5B,YAAI,SAAS;AACb,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,KAAK;AACzC,kBAAU,IAAI;AACd,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,KAAK,QAAQ;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,OAAO,YAAY,eAAe,GAAG,CAAC;AACtD,YAAI,YAAY;AAChB,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,QAAQ,IAAI;AAChB,YAAI,CAAC,EAAE,OAAO,IAAI,OAAO,KAAK,MAAM;AACpC,kBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,QAAQ,KAAK;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,IAAI;AACpB,YAAI,EAAE,OAAO,IAAI,UAAU,UAAU,IAAI,QAAS,OAAM,IAAI,MAAM,8BAA8B;AAChG,YAAI,YAAY;AAChB,YAAI,MAAM;AAAA,UACR,OAAO;AAAA,QACT;AACA,YAAI,SAAS;AACb,eAAO,MAAM;AACX,cAAI,OAAO,QAAQ;AACjB,gBAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,8BAA8B;AAC3D,mBAAO,QAAQ,SAAS;AACxB,mBAAO;AAAA,UACT;AACA,cAAI,SAAS,OAAO,OAAO,KAAK,MAAM;AACtC,oBAAU,OAAO,OAAO;AACxB,cAAI,MAAM,UAAU;AACpB,kBAAQ,KAAK;AAAA,YACX,KAAK;AACL,kBAAI,QAAQ,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACrC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,uBAAS;AACT;AAAA,YACA;AACA,uBAAS,KAAK,SAAS,GAAG,KAAK,MAAM;AAAA,UACvC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,aAAS,aAAc;AACrB,UAAI,MAAM;AAAA,QACR,UAAU;AAAA,MACZ;AAEA,WAAK,iBAAiB;AACtB,WAAK,SAAS;AACd,WAAK,SAAS;AAEd,eAAS,eAAgB,KAAK;AAC5B,YAAI,SAAS;AACb,YAAI,CAAC,QAAQ,IAAI,YAAY,EAAG,OAAM,IAAI,MAAM,0BAA0B;AAC1E,YAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,YAAY;AAChD,kBAAU,IAAI;AACd,YAAI,QAAQ,IAAI,UAAU,GAAG;AAC3B,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,UAAU;AAC9C,oBAAU,IAAI;AAAA,QAChB;AACA,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,KAAK,QAAQ;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,OAAO,YAAY,eAAe,GAAG,CAAC;AACtD,YAAI,YAAY;AAChB,YAAI,CAAC,QAAQ,IAAI,YAAY,EAAG,OAAM,IAAI,MAAM,0BAA0B;AAC1E,YAAI,QAAQ,IAAI;AAChB,YAAI,CAAC,EAAE,OAAO,IAAI,cAAc,KAAK,MAAM;AAC3C,kBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,YAAI,QAAQ,IAAI,UAAU,GAAG;AAC3B,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,YAAY,KAAK,MAAM;AACzC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,QAAQ,KAAK;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,IAAI;AACpB,YAAI,EAAE,OAAO,IAAI,UAAU,UAAU,IAAI,QAAS,OAAM,IAAI,MAAM,8BAA8B;AAChG,YAAI,YAAY;AAChB,YAAI,MAAM;AAAA,UACR,cAAc;AAAA,UACd,YAAY;AAAA,QACd;AACA,YAAI,SAAS;AACb,eAAO,MAAM;AACX,cAAI,OAAO,QAAQ;AACjB,gBAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,8BAA8B;AAC3D,mBAAO,QAAQ,SAAS;AACxB,mBAAO;AAAA,UACT;AACA,cAAI,SAAS,OAAO,OAAO,KAAK,MAAM;AACtC,oBAAU,OAAO,OAAO;AACxB,cAAI,MAAM,UAAU;AACpB,kBAAQ,KAAK;AAAA,YACX,KAAK;AACL,kBAAI,eAAe,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AAC5C,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,uBAAS;AACT;AAAA,YACA,KAAK;AACL,kBAAI,aAAa,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AAC1C,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA;AACA,uBAAS,KAAK,SAAS,GAAG,KAAK,MAAM;AAAA,UACvC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,aAAS,gBAAiB;AACxB,UAAI,MAAM;AAAA,QACR,UAAU;AAAA,QACV,UAAU;AAAA,MACZ;AAEA,cAAQ,iBAAiB;AACzB,cAAQ,SAAS;AACjB,cAAQ,SAAS;AAEjB,eAAS,eAAgB,KAAK;AAC5B,YAAI,SAAS;AACb,YAAI,QAAQ,IAAI,UAAU,GAAG;AAC3B,mBAAS,IAAI,GAAG,IAAI,IAAI,WAAW,QAAQ,KAAK;AAC9C,gBAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC,EAAG;AACjC,gBAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,WAAW,CAAC,CAAC;AACjD,sBAAU,IAAI;AAAA,UAChB;AAAA,QACF;AACA,YAAI,QAAQ,IAAI,GAAG,GAAG;AACpB,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,GAAG;AACvC,oBAAU,IAAI;AAAA,QAChB;AACA,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,KAAK,QAAQ;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,OAAO,YAAY,eAAe,GAAG,CAAC;AACtD,YAAI,YAAY;AAChB,YAAI,QAAQ,IAAI,UAAU,GAAG;AAC3B,mBAAS,IAAI,GAAG,IAAI,IAAI,WAAW,QAAQ,KAAK;AAC9C,gBAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC,EAAG;AACjC,gBAAI,QAAQ,IAAI;AAChB,gBAAI,CAAC,EAAE,OAAO,IAAI,WAAW,CAAC,GAAG,KAAK,MAAM;AAC5C,sBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,UAC1B;AAAA,QACF;AACA,YAAI,QAAQ,IAAI,GAAG,GAAG;AACpB,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,KAAK,KAAK,MAAM;AAClC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,QAAQ,KAAK;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,IAAI;AACpB,YAAI,EAAE,OAAO,IAAI,UAAU,UAAU,IAAI,QAAS,OAAM,IAAI,MAAM,8BAA8B;AAChG,YAAI,YAAY;AAChB,YAAI,MAAM;AAAA,UACR,YAAY,CAAC;AAAA,UACb,KAAK;AAAA,QACP;AACA,eAAO,MAAM;AACX,cAAI,OAAO,QAAQ;AACjB,mBAAO,QAAQ,SAAS;AACxB,mBAAO;AAAA,UACT;AACA,cAAI,SAAS,OAAO,OAAO,KAAK,MAAM;AACtC,oBAAU,OAAO,OAAO;AACxB,cAAI,MAAM,UAAU;AACpB,kBAAQ,KAAK;AAAA,YACX,KAAK;AACL,kBAAI,WAAW,KAAK,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;AAC9C,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA,KAAK;AACL,kBAAI,MAAM,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACnC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA;AACA,uBAAS,KAAK,SAAS,GAAG,KAAK,MAAM;AAAA,UACvC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,aAAS,eAAgB;AACvB,UAAI,MAAM;AAAA,QACR,UAAU;AAAA,MACZ;AAEA,aAAO,iBAAiB;AACxB,aAAO,SAAS;AAChB,aAAO,SAAS;AAEhB,eAAS,eAAgB,KAAK;AAC5B,YAAI,SAAS;AACb,YAAI,QAAQ,IAAI,SAAS,GAAG;AAC1B,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,SAAS;AAC7C,oBAAU,IAAI;AAAA,QAChB;AACA,YAAI,QAAQ,IAAI,WAAW,GAAG;AAC5B,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,WAAW;AAC/C,oBAAU,IAAI;AAAA,QAChB;AACA,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,KAAK,QAAQ;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,OAAO,YAAY,eAAe,GAAG,CAAC;AACtD,YAAI,YAAY;AAChB,YAAI,QAAQ,IAAI,SAAS,GAAG;AAC1B,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,WAAW,KAAK,MAAM;AACxC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,YAAI,QAAQ,IAAI,WAAW,GAAG;AAC5B,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,aAAa,KAAK,MAAM;AAC1C,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,QAAQ,KAAK;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,IAAI;AACpB,YAAI,EAAE,OAAO,IAAI,UAAU,UAAU,IAAI,QAAS,OAAM,IAAI,MAAM,8BAA8B;AAChG,YAAI,YAAY;AAChB,YAAI,MAAM;AAAA,UACR,WAAW;AAAA,UACX,aAAa;AAAA,QACf;AACA,eAAO,MAAM;AACX,cAAI,OAAO,QAAQ;AACjB,mBAAO,QAAQ,SAAS;AACxB,mBAAO;AAAA,UACT;AACA,cAAI,SAAS,OAAO,OAAO,KAAK,MAAM;AACtC,oBAAU,OAAO,OAAO;AACxB,cAAI,MAAM,UAAU;AACpB,kBAAQ,KAAK;AAAA,YACX,KAAK;AACL,kBAAI,YAAY,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACzC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA,KAAK;AACL,kBAAI,cAAc,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AAC3C,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA;AACA,uBAAS,KAAK,SAAS,GAAG,KAAK,MAAM;AAAA,UACvC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,aAAS,aAAc;AACrB,UAAI,MAAM;AAAA,QACR,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,MACZ;AAEA,WAAK,iBAAiB;AACtB,WAAK,SAAS;AACd,WAAK,SAAS;AAEd,eAAS,eAAgB,KAAK;AAC5B,YAAI,SAAS;AACb,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,KAAK;AACzC,kBAAU,IAAI;AACd,YAAI,QAAQ,IAAI,MAAM,GAAG;AACvB,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,MAAM;AAC1C,oBAAU,IAAI;AAAA,QAChB;AACA,YAAI,QAAQ,IAAI,QAAQ,GAAG;AACzB,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,QAAQ;AAC5C,oBAAU,IAAI;AAAA,QAChB;AACA,YAAI,QAAQ,IAAI,GAAG,GAAG;AACpB,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,GAAG;AACvC,oBAAU,IAAI;AAAA,QAChB;AACA,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,KAAK,QAAQ;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,OAAO,YAAY,eAAe,GAAG,CAAC;AACtD,YAAI,YAAY;AAChB,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,QAAQ,IAAI;AAChB,YAAI,CAAC,EAAE,OAAO,IAAI,OAAO,KAAK,MAAM;AACpC,kBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,YAAI,QAAQ,IAAI,MAAM,GAAG;AACvB,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,QAAQ,KAAK,MAAM;AACrC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,YAAI,QAAQ,IAAI,QAAQ,GAAG;AACzB,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,UAAU,KAAK,MAAM;AACvC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,YAAI,QAAQ,IAAI,GAAG,GAAG;AACpB,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,KAAK,KAAK,MAAM;AAClC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,QAAQ,KAAK;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,IAAI;AACpB,YAAI,EAAE,OAAO,IAAI,UAAU,UAAU,IAAI,QAAS,OAAM,IAAI,MAAM,8BAA8B;AAChG,YAAI,YAAY;AAChB,YAAI,MAAM;AAAA,UACR,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,KAAK;AAAA,QACP;AACA,YAAI,SAAS;AACb,eAAO,MAAM;AACX,cAAI,OAAO,QAAQ;AACjB,gBAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,8BAA8B;AAC3D,mBAAO,QAAQ,SAAS;AACxB,mBAAO;AAAA,UACT;AACA,cAAI,SAAS,OAAO,OAAO,KAAK,MAAM;AACtC,oBAAU,OAAO,OAAO;AACxB,cAAI,MAAM,UAAU;AACpB,kBAAQ,KAAK;AAAA,YACX,KAAK;AACL,kBAAI,QAAQ,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACrC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,uBAAS;AACT;AAAA,YACA,KAAK;AACL,kBAAI,SAAS,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACtC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA,KAAK;AACL,kBAAI,WAAW,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACxC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA,KAAK;AACL,kBAAI,MAAM,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACnC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA;AACA,uBAAS,KAAK,SAAS,GAAG,KAAK,MAAM;AAAA,UACvC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,aAAS,eAAgB;AACvB,UAAI,MAAM;AAAA,QACR,UAAU;AAAA,MACZ;AAEA,aAAO,iBAAiB;AACxB,aAAO,SAAS;AAChB,aAAO,SAAS;AAEhB,eAAS,eAAgB,KAAK;AAC5B,YAAI,SAAS;AACb,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,KAAK;AACzC,kBAAU,IAAI;AACd,YAAI,QAAQ,IAAI,MAAM,GAAG;AACvB,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,MAAM;AAC1C,oBAAU,IAAI;AAAA,QAChB;AACA,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,KAAK,QAAQ;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,OAAO,YAAY,eAAe,GAAG,CAAC;AACtD,YAAI,YAAY;AAChB,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,QAAQ,IAAI;AAChB,YAAI,CAAC,EAAE,OAAO,IAAI,OAAO,KAAK,MAAM;AACpC,kBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,YAAI,QAAQ,IAAI,MAAM,GAAG;AACvB,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,QAAQ,KAAK,MAAM;AACrC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,QAAQ,KAAK;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,IAAI;AACpB,YAAI,EAAE,OAAO,IAAI,UAAU,UAAU,IAAI,QAAS,OAAM,IAAI,MAAM,8BAA8B;AAChG,YAAI,YAAY;AAChB,YAAI,MAAM;AAAA,UACR,OAAO;AAAA,UACP,QAAQ;AAAA,QACV;AACA,YAAI,SAAS;AACb,eAAO,MAAM;AACX,cAAI,OAAO,QAAQ;AACjB,gBAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,8BAA8B;AAC3D,mBAAO,QAAQ,SAAS;AACxB,mBAAO;AAAA,UACT;AACA,cAAI,SAAS,OAAO,OAAO,KAAK,MAAM;AACtC,oBAAU,OAAO,OAAO;AACxB,cAAI,MAAM,UAAU;AACpB,kBAAQ,KAAK;AAAA,YACX,KAAK;AACL,kBAAI,QAAQ,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACrC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,uBAAS;AACT;AAAA,YACA,KAAK;AACL,kBAAI,SAAS,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACtC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA;AACA,uBAAS,KAAK,SAAS,GAAG,KAAK,MAAM;AAAA,UACvC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,aAAS,aAAc;AACrB,UAAI,MAAM;AAAA,QACR,UAAU;AAAA,MACZ;AAEA,WAAK,iBAAiB;AACtB,WAAK,SAAS;AACd,WAAK,SAAS;AAEd,eAAS,eAAgB,KAAK;AAC5B,YAAI,SAAS;AACb,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,KAAK;AACzC,kBAAU,IAAI;AACd,YAAI,QAAQ,IAAI,MAAM,GAAG;AACvB,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,MAAM;AAC1C,oBAAU,IAAI;AAAA,QAChB;AACA,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,KAAK,QAAQ;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,OAAO,YAAY,eAAe,GAAG,CAAC;AACtD,YAAI,YAAY;AAChB,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,QAAQ,IAAI;AAChB,YAAI,CAAC,EAAE,OAAO,IAAI,OAAO,KAAK,MAAM;AACpC,kBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,YAAI,QAAQ,IAAI,MAAM,GAAG;AACvB,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,QAAQ,KAAK,MAAM;AACrC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,QAAQ,KAAK;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,IAAI;AACpB,YAAI,EAAE,OAAO,IAAI,UAAU,UAAU,IAAI,QAAS,OAAM,IAAI,MAAM,8BAA8B;AAChG,YAAI,YAAY;AAChB,YAAI,MAAM;AAAA,UACR,OAAO;AAAA,UACP,QAAQ;AAAA,QACV;AACA,YAAI,SAAS;AACb,eAAO,MAAM;AACX,cAAI,OAAO,QAAQ;AACjB,gBAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,8BAA8B;AAC3D,mBAAO,QAAQ,SAAS;AACxB,mBAAO;AAAA,UACT;AACA,cAAI,SAAS,OAAO,OAAO,KAAK,MAAM;AACtC,oBAAU,OAAO,OAAO;AACxB,cAAI,MAAM,UAAU;AACpB,kBAAQ,KAAK;AAAA,YACX,KAAK;AACL,kBAAI,QAAQ,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACrC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,uBAAS;AACT;AAAA,YACA,KAAK;AACL,kBAAI,SAAS,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACtC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA;AACA,uBAAS,KAAK,SAAS,GAAG,KAAK,MAAM;AAAA,UACvC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,aAAS,eAAgB;AACvB,UAAI,MAAM;AAAA,QACR,UAAU;AAAA,MACZ;AAEA,aAAO,iBAAiB;AACxB,aAAO,SAAS;AAChB,aAAO,SAAS;AAEhB,eAAS,eAAgB,KAAK;AAC5B,YAAI,SAAS;AACb,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,KAAK;AACzC,kBAAU,IAAI;AACd,YAAI,QAAQ,IAAI,MAAM,GAAG;AACvB,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,MAAM;AAC1C,oBAAU,IAAI;AAAA,QAChB;AACA,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,KAAK,QAAQ;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,OAAO,YAAY,eAAe,GAAG,CAAC;AACtD,YAAI,YAAY;AAChB,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,QAAQ,IAAI;AAChB,YAAI,CAAC,EAAE,OAAO,IAAI,OAAO,KAAK,MAAM;AACpC,kBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,YAAI,QAAQ,IAAI,MAAM,GAAG;AACvB,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,QAAQ,KAAK,MAAM;AACrC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,QAAQ,KAAK;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,IAAI;AACpB,YAAI,EAAE,OAAO,IAAI,UAAU,UAAU,IAAI,QAAS,OAAM,IAAI,MAAM,8BAA8B;AAChG,YAAI,YAAY;AAChB,YAAI,MAAM;AAAA,UACR,OAAO;AAAA,UACP,QAAQ;AAAA,QACV;AACA,YAAI,SAAS;AACb,eAAO,MAAM;AACX,cAAI,OAAO,QAAQ;AACjB,gBAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,8BAA8B;AAC3D,mBAAO,QAAQ,SAAS;AACxB,mBAAO;AAAA,UACT;AACA,cAAI,SAAS,OAAO,OAAO,KAAK,MAAM;AACtC,oBAAU,OAAO,OAAO;AACxB,cAAI,MAAM,UAAU;AACpB,kBAAQ,KAAK;AAAA,YACX,KAAK;AACL,kBAAI,QAAQ,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACrC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,uBAAS;AACT;AAAA,YACA,KAAK;AACL,kBAAI,SAAS,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACtC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA;AACA,uBAAS,KAAK,SAAS,GAAG,KAAK,MAAM;AAAA,UACvC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,aAAS,gBAAiB;AACxB,UAAI,MAAM;AAAA,QACR,UAAU;AAAA,QACV,UAAU;AAAA,MACZ;AAEA,cAAQ,iBAAiB;AACzB,cAAQ,SAAS;AACjB,cAAQ,SAAS;AAEjB,eAAS,eAAgB,KAAK;AAC5B,YAAI,SAAS;AACb,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,KAAK;AACzC,kBAAU,IAAI;AACd,YAAI,QAAQ,IAAI,KAAK,GAAG;AACtB,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,KAAK;AACzC,oBAAU,IAAI;AAAA,QAChB;AACA,YAAI,QAAQ,IAAI,IAAI,GAAG;AACrB,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,IAAI;AACxC,oBAAU,IAAI;AAAA,QAChB;AACA,YAAI,QAAQ,IAAI,KAAK,GAAG;AACtB,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,KAAK;AACzC,oBAAU,IAAI;AAAA,QAChB;AACA,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,KAAK,QAAQ;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,OAAO,YAAY,eAAe,GAAG,CAAC;AACtD,YAAI,YAAY;AAChB,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,QAAQ,IAAI;AAChB,YAAI,CAAC,EAAE,OAAO,IAAI,OAAO,KAAK,MAAM;AACpC,kBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,YAAI,QAAQ,IAAI,KAAK,GAAG;AACtB,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,OAAO,KAAK,MAAM;AACpC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,YAAI,QAAQ,IAAI,IAAI,GAAG;AACrB,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,MAAM,KAAK,MAAM;AACnC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,YAAI,QAAQ,IAAI,KAAK,GAAG;AACtB,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,OAAO,KAAK,MAAM;AACpC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,QAAQ,KAAK;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,IAAI;AACpB,YAAI,EAAE,OAAO,IAAI,UAAU,UAAU,IAAI,QAAS,OAAM,IAAI,MAAM,8BAA8B;AAChG,YAAI,YAAY;AAChB,YAAI,MAAM;AAAA,UACR,OAAO;AAAA,UACP,OAAO;AAAA,UACP,MAAM;AAAA,UACN,OAAO;AAAA,QACT;AACA,YAAI,SAAS;AACb,eAAO,MAAM;AACX,cAAI,OAAO,QAAQ;AACjB,gBAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,8BAA8B;AAC3D,mBAAO,QAAQ,SAAS;AACxB,mBAAO;AAAA,UACT;AACA,cAAI,SAAS,OAAO,OAAO,KAAK,MAAM;AACtC,oBAAU,OAAO,OAAO;AACxB,cAAI,MAAM,UAAU;AACpB,kBAAQ,KAAK;AAAA,YACX,KAAK;AACL,kBAAI,QAAQ,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACrC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,uBAAS;AACT;AAAA,YACA,KAAK;AACL,kBAAI,QAAQ,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACrC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA,KAAK;AACL,kBAAI,OAAO,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACpC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA,KAAK;AACL,kBAAI,QAAQ,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACrC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA;AACA,uBAAS,KAAK,SAAS,GAAG,KAAK,MAAM;AAAA,UACvC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,aAAS,eAAgB;AACvB,UAAI,MAAM;AAAA,QACR,UAAU;AAAA,QACV,UAAU;AAAA,MACZ;AAEA,aAAO,iBAAiB;AACxB,aAAO,SAAS;AAChB,aAAO,SAAS;AAEhB,eAAS,eAAgB,KAAK;AAC5B,YAAI,SAAS;AACb,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,KAAK;AACzC,kBAAU,IAAI;AACd,YAAI,QAAQ,IAAI,KAAK,GAAG;AACtB,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,KAAK;AACzC,oBAAU,IAAI;AAAA,QAChB;AACA,YAAI,QAAQ,IAAI,IAAI,GAAG;AACrB,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,IAAI;AACxC,oBAAU,IAAI;AAAA,QAChB;AACA,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,KAAK,QAAQ;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,OAAO,YAAY,eAAe,GAAG,CAAC;AACtD,YAAI,YAAY;AAChB,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,QAAQ,IAAI;AAChB,YAAI,CAAC,EAAE,OAAO,IAAI,OAAO,KAAK,MAAM;AACpC,kBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,YAAI,QAAQ,IAAI,KAAK,GAAG;AACtB,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,OAAO,KAAK,MAAM;AACpC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,YAAI,QAAQ,IAAI,IAAI,GAAG;AACrB,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,MAAM,KAAK,MAAM;AACnC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,QAAQ,KAAK;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,IAAI;AACpB,YAAI,EAAE,OAAO,IAAI,UAAU,UAAU,IAAI,QAAS,OAAM,IAAI,MAAM,8BAA8B;AAChG,YAAI,YAAY;AAChB,YAAI,MAAM;AAAA,UACR,OAAO;AAAA,UACP,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AACA,YAAI,SAAS;AACb,eAAO,MAAM;AACX,cAAI,OAAO,QAAQ;AACjB,gBAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,8BAA8B;AAC3D,mBAAO,QAAQ,SAAS;AACxB,mBAAO;AAAA,UACT;AACA,cAAI,SAAS,OAAO,OAAO,KAAK,MAAM;AACtC,oBAAU,OAAO,OAAO;AACxB,cAAI,MAAM,UAAU;AACpB,kBAAQ,KAAK;AAAA,YACX,KAAK;AACL,kBAAI,QAAQ,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACrC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,uBAAS;AACT;AAAA,YACA,KAAK;AACL,kBAAI,QAAQ,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACrC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA,KAAK;AACL,kBAAI,OAAO,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACpC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA;AACA,uBAAS,KAAK,SAAS,GAAG,KAAK,MAAM;AAAA,UACvC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,aAAS,aAAc;AACrB,UAAI,OAAO,KAAK,OAAO;AAAA,QACrB,QAAQ;AAAA,QACR,gBAAgB;AAAA,QAChB,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAEA,iBAAW;AAEX,eAAS,aAAc;AACrB,YAAIC,OAAM;AAAA,UACR,UAAU;AAAA,UACV,UAAU;AAAA,QACZ;AAEA,aAAK,iBAAiBC;AACtB,aAAK,SAASC;AACd,aAAK,SAASC;AAEd,iBAASF,gBAAgB,KAAK;AAC5B,cAAI,SAAS;AACb,cAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,cAAI,MAAMD,KAAI,CAAC,EAAE,eAAe,IAAI,KAAK;AACzC,oBAAU,IAAI;AACd,cAAI,CAAC,QAAQ,IAAI,IAAI,EAAG,OAAM,IAAI,MAAM,kBAAkB;AAC1D,cAAI,MAAMA,KAAI,CAAC,EAAE,eAAe,IAAI,IAAI;AACxC,oBAAU,IAAI;AACd,cAAI,CAAC,QAAQ,IAAI,IAAI,EAAG,OAAM,IAAI,MAAM,kBAAkB;AAC1D,cAAI,MAAMA,KAAI,CAAC,EAAE,eAAe,IAAI,IAAI;AACxC,oBAAU,IAAI;AACd,iBAAO;AAAA,QACT;AAEA,iBAASE,QAAQ,KAAK,KAAK,QAAQ;AACjC,cAAI,CAAC,OAAQ,UAAS;AACtB,cAAI,CAAC,IAAK,OAAM,OAAO,YAAYD,gBAAe,GAAG,CAAC;AACtD,cAAI,YAAY;AAChB,cAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,cAAI,QAAQ,IAAI;AAChB,UAAAD,KAAI,CAAC,EAAE,OAAO,IAAI,OAAO,KAAK,MAAM;AACpC,oBAAUA,KAAI,CAAC,EAAE,OAAO;AACxB,cAAI,CAAC,QAAQ,IAAI,IAAI,EAAG,OAAM,IAAI,MAAM,kBAAkB;AAC1D,cAAI,QAAQ,IAAI;AAChB,UAAAA,KAAI,CAAC,EAAE,OAAO,IAAI,MAAM,KAAK,MAAM;AACnC,oBAAUA,KAAI,CAAC,EAAE,OAAO;AACxB,cAAI,CAAC,QAAQ,IAAI,IAAI,EAAG,OAAM,IAAI,MAAM,kBAAkB;AAC1D,cAAI,QAAQ,IAAI;AAChB,UAAAA,KAAI,CAAC,EAAE,OAAO,IAAI,MAAM,KAAK,MAAM;AACnC,oBAAUA,KAAI,CAAC,EAAE,OAAO;AACxB,UAAAE,QAAO,QAAQ,SAAS;AACxB,iBAAO;AAAA,QACT;AAEA,iBAASC,QAAQ,KAAK,QAAQ,KAAK;AACjC,cAAI,CAAC,OAAQ,UAAS;AACtB,cAAI,CAAC,IAAK,OAAM,IAAI;AACpB,cAAI,EAAE,OAAO,IAAI,UAAU,UAAU,IAAI,QAAS,OAAM,IAAI,MAAM,8BAA8B;AAChG,cAAI,YAAY;AAChB,cAAI,MAAM;AAAA,YACR,OAAO;AAAA,YACP,MAAM;AAAA,YACN,MAAM;AAAA,UACR;AACA,cAAI,SAAS;AACb,cAAI,SAAS;AACb,cAAI,SAAS;AACb,iBAAO,MAAM;AACX,gBAAI,OAAO,QAAQ;AACjB,kBAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAQ,OAAM,IAAI,MAAM,8BAA8B;AACjF,cAAAA,QAAO,QAAQ,SAAS;AACxB,qBAAO;AAAA,YACT;AACA,gBAAI,SAAS,OAAO,OAAO,KAAK,MAAM;AACtC,sBAAU,OAAO,OAAO;AACxB,gBAAI,MAAM,UAAU;AACpB,oBAAQ,KAAK;AAAA,cACX,KAAK;AACL,oBAAI,QAAQH,KAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACrC,0BAAUA,KAAI,CAAC,EAAE,OAAO;AACxB,yBAAS;AACT;AAAA,cACA,KAAK;AACL,oBAAI,OAAOA,KAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACpC,0BAAUA,KAAI,CAAC,EAAE,OAAO;AACxB,yBAAS;AACT;AAAA,cACA,KAAK;AACL,oBAAI,OAAOA,KAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACpC,0BAAUA,KAAI,CAAC,EAAE,OAAO;AACxB,yBAAS;AACT;AAAA,cACA;AACA,yBAAS,KAAK,SAAS,GAAG,KAAK,MAAM;AAAA,YACvC;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,UAAI,MAAM;AAAA,QACR,UAAU;AAAA,QACV,UAAU;AAAA,QACV;AAAA,MACF;AAEA,WAAK,iBAAiB;AACtB,WAAK,SAAS;AACd,WAAK,SAAS;AAEd,eAAS,eAAgB,KAAK;AAC5B,YAAI,SAAS;AACb,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,KAAK;AACzC,kBAAU,IAAI;AACd,YAAI,QAAQ,IAAI,KAAK,GAAG;AACtB,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,KAAK;AACzC,oBAAU,IAAI;AAAA,QAChB;AACA,YAAI,QAAQ,IAAI,KAAK,GAAG;AACtB,mBAAS,IAAI,GAAG,IAAI,IAAI,MAAM,QAAQ,KAAK;AACzC,gBAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,EAAG;AAC5B,gBAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,MAAM,CAAC,CAAC;AAC5C,sBAAU,OAAO,eAAe,GAAG;AACnC,sBAAU,IAAI;AAAA,UAChB;AAAA,QACF;AACA,YAAI,QAAQ,IAAI,SAAS,GAAG;AAC1B,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,SAAS;AAC7C,oBAAU,IAAI;AAAA,QAChB;AACA,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,KAAK,QAAQ;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,OAAO,YAAY,eAAe,GAAG,CAAC;AACtD,YAAI,YAAY;AAChB,YAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB;AAC5D,YAAI,QAAQ,IAAI;AAChB,YAAI,CAAC,EAAE,OAAO,IAAI,OAAO,KAAK,MAAM;AACpC,kBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,YAAI,QAAQ,IAAI,KAAK,GAAG;AACtB,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,OAAO,KAAK,MAAM;AACpC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,YAAI,QAAQ,IAAI,KAAK,GAAG;AACtB,mBAAS,IAAI,GAAG,IAAI,IAAI,MAAM,QAAQ,KAAK;AACzC,gBAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,EAAG;AAC5B,gBAAI,QAAQ,IAAI;AAChB,mBAAO,OAAO,IAAI,CAAC,EAAE,eAAe,IAAI,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM;AAC9D,sBAAU,OAAO,OAAO;AACxB,gBAAI,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM;AACvC,sBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,UAC1B;AAAA,QACF;AACA,YAAI,QAAQ,IAAI,SAAS,GAAG;AAC1B,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,WAAW,KAAK,MAAM;AACxC,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,QAAQ,KAAK;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,IAAI;AACpB,YAAI,EAAE,OAAO,IAAI,UAAU,UAAU,IAAI,QAAS,OAAM,IAAI,MAAM,8BAA8B;AAChG,YAAI,YAAY;AAChB,YAAI,MAAM;AAAA,UACR,OAAO;AAAA,UACP,OAAO;AAAA,UACP,OAAO,CAAC;AAAA,UACR,WAAW;AAAA,QACb;AACA,YAAI,SAAS;AACb,eAAO,MAAM;AACX,cAAI,OAAO,QAAQ;AACjB,gBAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,8BAA8B;AAC3D,mBAAO,QAAQ,SAAS;AACxB,mBAAO;AAAA,UACT;AACA,cAAI,SAAS,OAAO,OAAO,KAAK,MAAM;AACtC,oBAAU,OAAO,OAAO;AACxB,cAAI,MAAM,UAAU;AACpB,kBAAQ,KAAK;AAAA,YACX,KAAK;AACL,kBAAI,QAAQ,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACrC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB,uBAAS;AACT;AAAA,YACA,KAAK;AACL,kBAAI,QAAQ,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACrC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA,KAAK;AACL,kBAAI,MAAM,OAAO,OAAO,KAAK,MAAM;AACnC,wBAAU,OAAO,OAAO;AACxB,kBAAI,MAAM,KAAK,IAAI,CAAC,EAAE,OAAO,KAAK,QAAQ,SAAS,GAAG,CAAC;AACvD,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA,KAAK;AACL,kBAAI,YAAY,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AACzC,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA;AACA,uBAAS,KAAK,SAAS,GAAG,KAAK,MAAM;AAAA,UACvC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,aAAS,cAAe;AACtB,UAAI,MAAM;AAAA,QACR,UAAU;AAAA,MACZ;AAEA,YAAM,iBAAiB;AACvB,YAAM,SAAS;AACf,YAAM,SAAS;AAEf,eAAS,eAAgB,KAAK;AAC5B,YAAI,SAAS;AACb,YAAI,QAAQ,IAAI,YAAY,GAAG;AAC7B,cAAI,MAAM,IAAI,CAAC,EAAE,eAAe,IAAI,YAAY;AAChD,oBAAU,IAAI;AAAA,QAChB;AACA,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,KAAK,QAAQ;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,OAAO,YAAY,eAAe,GAAG,CAAC;AACtD,YAAI,YAAY;AAChB,YAAI,QAAQ,IAAI,YAAY,GAAG;AAC7B,cAAI,QAAQ,IAAI;AAChB,cAAI,CAAC,EAAE,OAAO,IAAI,cAAc,KAAK,MAAM;AAC3C,oBAAU,IAAI,CAAC,EAAE,OAAO;AAAA,QAC1B;AACA,eAAO,QAAQ,SAAS;AACxB,eAAO;AAAA,MACT;AAEA,eAAS,OAAQ,KAAK,QAAQ,KAAK;AACjC,YAAI,CAAC,OAAQ,UAAS;AACtB,YAAI,CAAC,IAAK,OAAM,IAAI;AACpB,YAAI,EAAE,OAAO,IAAI,UAAU,UAAU,IAAI,QAAS,OAAM,IAAI,MAAM,8BAA8B;AAChG,YAAI,YAAY;AAChB,YAAI,MAAM;AAAA,UACR,cAAc;AAAA,QAChB;AACA,eAAO,MAAM;AACX,cAAI,OAAO,QAAQ;AACjB,mBAAO,QAAQ,SAAS;AACxB,mBAAO;AAAA,UACT;AACA,cAAI,SAAS,OAAO,OAAO,KAAK,MAAM;AACtC,oBAAU,OAAO,OAAO;AACxB,cAAI,MAAM,UAAU;AACpB,kBAAQ,KAAK;AAAA,YACX,KAAK;AACL,kBAAI,eAAe,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM;AAC5C,wBAAU,IAAI,CAAC,EAAE,OAAO;AACxB;AAAA,YACA;AACA,uBAAS,KAAK,SAAS,GAAG,KAAK,MAAM;AAAA,UACvC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,aAAS,QAAS,KAAK;AACrB,aAAO,QAAQ,QAAQ,QAAQ,WAAc,OAAO,QAAQ,YAAY,CAAC,MAAM,GAAG;AAAA,IACpF;AAAA;AAAA;;;ACpqCA;AAAA;AAAA,QAAII,cAAa,CAAC,IAAI,QAAQ,SAASC,aAAY;AACjD,aAAO,QAAQ,GAAG,GAAG,OAAO,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,IACvF;AACA,QAAI,aAA8B,uBAAM;AACtC,UAAI,QAAQ,IAAI,WAAW,GAAG;AAC9B,eAAS,IAAI,GAAG,IAAI,IAAI;AACtB,cAAM,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI;AAC5E,aAAO,CAAC,WAAW;AACjB,YAAI,IAAI,OAAO,QAAQ,SAAS,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,KAAK,QAAQ,OAAO,IAAI,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC;AAChH,iBAAS,KAAK,GAAG,IAAI,GAAG,KAAK,KAAK;AAChC,cAAI,KAAK,MAAM,OAAO,WAAW,IAAI,CAAC,GAAG,KAAK,MAAM,OAAO,WAAW,IAAI,CAAC;AAC3E,cAAI,KAAK,MAAM,OAAO,WAAW,IAAI,CAAC,GAAG,KAAK,MAAM,OAAO,WAAW,IAAI,CAAC;AAC3E,iBAAO,GAAG,IAAI,MAAM,IAAI,MAAM;AAC9B,iBAAO,GAAG,IAAI,MAAM,IAAI,MAAM;AAC9B,iBAAO,GAAG,IAAI,MAAM,IAAI;AAAA,QAC1B;AACA,eAAO;AAAA,MACT;AAAA,IACF,GAAG;AAGH,QAAIC,oBAAmBF,YAAW;AAAA,MAChC,6BAA6B,UAAU,SAAS;AAC9C,gBAAQ,UAAU,WAAW,smGAAsmG;AAAA,MACroG;AAAA,IACF,CAAC;AAGD,QAAI,QAAQE,kBAAiB;AAC7B,QAAI,WAAW,IAAI,YAAY,OAAO,KAAK;AAC3C,WAAO,UAAU,CAAC,YAAY;AAC5B,YAAM,WAAW,IAAI,YAAY,SAAS,UAAU,OAAO;AAC3D,aAAO,SAAS;AAAA,IAClB;AAAA;AAAA;;;ACjCA,IAAAC,oBAAA;AAAA;AAAA,QAAI,WAAW,OAAO,gBAAgB,eAAe,mBAAsB;AAE3E,QAAI,QAAQ,IAAI,WAAW,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC;AACpG,QAAI,OAAO;AACX,QAAI,MAAM;AACV,QAAI,OAAO,CAAC;AAEZ,WAAO,UAAU;AAEjB,aAAS,aAAa;AACtB,aAAS,WAAW;AAEpB,aAAS,gBAAgB;AACzB,aAAS,QAAQ;AAEjB,aAAS,SAAU,OAAO,KAAK;AAC7B,UAAI,EAAE,gBAAgB,UAAW,QAAO,IAAI,SAAS,OAAO,GAAG;AAC/D,UAAI,CAAC,SAAS,MAAM,SAAS,GAAI,OAAM,IAAI,MAAM,iCAAiC;AAClF,UAAI,CAAC,OAAO,IAAI,SAAS,GAAI,OAAM,IAAI,MAAM,+BAA+B;AAC5E,WAAK,OAAO,WAAW,IAAI,KAAK,OAAO,GAAG,IAAI,IAAI,SAAS,OAAO,GAAG;AAAA,IACvE;AAEA,aAAS,UAAU,SAAS,SAAU,OAAO,QAAQ;AACnD,UAAI,CAAC,MAAO,OAAM,IAAI,MAAM,oCAAoC;AAChE,UAAI,CAAC,OAAQ,UAAS,IAAI,WAAW,MAAM,MAAM;AACjD,UAAI,MAAM,OAAQ,MAAK,KAAK,OAAO,OAAO,MAAM;AAChD,aAAO;AAAA,IACT;AAEA,aAAS,UAAU,QACnB,SAAS,UAAU,WAAW,WAAY;AACxC,WAAK,KAAK,SAAS;AACnB,WAAK,OAAO;AAAA,IACd;AAEA,aAAS,KAAM,OAAO,KAAK;AACzB,UAAI,CAAC,KAAK,QAAQ;AAChB,aAAK,KAAK,IAAI;AACd,gBAAQ;AAAA,MACV;AAEA,WAAK,WAAW,KAAK,IAAI;AACzB,WAAK,SAAS,KAAK,WAAW;AAC9B,WAAK,OAAO,KAAK,SAAS;AAC1B,WAAK,YAAY;AACjB,WAAK,UAAU,IAAI,WAAW,SAAS,OAAO,MAAM;AAEpD,WAAK,QAAQ,KAAK,GAAG,KAAK,UAAU,KAAK,WAAW,CAAC;AACrD,WAAK,QAAQ,IAAI,OAAO,KAAK,MAAM;AACnC,WAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;AAAA,IACjC;AAEA,SAAK,UAAU,UAAU,SAAU,MAAM;AACvC,eAAS,OAAO,KAAK,KAAK,KAAK,KAAK,IAAI,OAAO,KAAK,QAAQ,MAAM,IAAI,KAAK,CAAC;AAC5E,WAAK,UAAU,IAAI,WAAW,SAAS,OAAO,MAAM;AAAA,IACtD;AAEA,SAAK,UAAU,SAAS,SAAU,OAAO,QAAQ;AAC/C,UAAI,MAAM,KAAK,YAAY,MAAM;AACjC,UAAI,QAAQ,OAAO,KAAK;AAExB,YAAM,OAAO;AACb,UAAI,OAAO,KAAK,QAAQ,OAAQ,MAAK,QAAQ,GAAG;AAEhD,WAAK,QAAQ,IAAI,OAAO,KAAK;AAC7B,eAAS,aAAa,KAAK,UAAU,MAAM,MAAM,KAAK,KAAK,QAAQ,KAAK,IAAI;AAC5E,aAAO,IAAI,KAAK,QAAQ,SAAS,OAAO,OAAO,GAAG,CAAC;AAEnD,WAAK,YAAY,MAAM;AAAA,IACzB;AAEA,SAAK,UAAU,WAAW,WAAY;AACpC,WAAK,QAAQ,KAAK,GAAG,KAAK,UAAU,KAAK,OAAO,EAAE;AAClD,UAAI,MAAM,MAAM;AACd,aAAK,QAAQ,KAAK,GAAG,MAAM,GAAG;AAC9B,cAAM;AAAA,MACR;AACA,WAAK,KAAK,KAAK,QAAQ;AAAA,IACzB;AAEA,aAAS,SAAU,OAAO,KAAK;AAC7B,WAAK,KAAK,IAAI,WAAW,EAAE;AAC3B,WAAK,KAAK,IAAI,WAAW,EAAE;AAC3B,WAAK,YAAY;AACjB,oBAAc,KAAK,IAAI,OAAO,KAAK,KAAK;AACxC,eAAS,IAAI,GAAG,IAAI,GAAG,IAAK,MAAK,GAAG,CAAC,IAAI,MAAM,IAAI,EAAE;AAAA,IACvD;AAEA,aAAS,UAAU,SAAS,SAAU,OAAO,QAAQ;AACnD,UAAI,IAAI,IAAI,WAAW,EAAE;AACzB,UAAI,IAAI;AACR,UAAI,IAAI,KAAK;AACb,UAAI,IAAI,MAAM,SAAS,KAAK;AAC5B,UAAI,IAAI,KAAK;AACb,UAAI,OAAO,CAAC,KAAK;AACjB,UAAI,OAAO,CAAC,KAAK;AAEjB,aAAO,KAAK,IAAI;AACd,qBAAa,GAAG,GAAG,KAAK,IAAI,KAAK;AACjC,eAAO,IAAI,IAAI,IAAK,QAAO,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;AAC5D,YAAI;AACJ,aAAK,IAAI,GAAG,IAAI,IAAI,KAAK;AACvB,eAAM,EAAE,CAAC,IAAI,MAAQ;AACrB,YAAE,CAAC,IAAI,IAAI;AACX,iBAAO;AAAA,QACT;AACA,aAAK;AACL,gBAAQ;AACR,gBAAQ;AACR,YAAI;AAAA,MACN;AACA,UAAI,IAAI,GAAG;AACT,qBAAa,GAAG,GAAG,KAAK,IAAI,KAAK;AACjC,eAAO,IAAI,GAAG,IAAK,QAAO,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;AAAA,MAC7D;AAEA,WAAK,YAAY,IAAI;AAAA,IACvB;AAEA,aAAS,UAAU,WAAW,WAAY;AACxC,WAAK,GAAG,KAAK,CAAC;AACd,WAAK,GAAG,KAAK,CAAC;AAAA,IAChB;AAIA,aAAS,aAAa,GAAG,GAAG,GAAG,GAAG;AAChC,UAAI,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAG,CAAC,IAAI,QAAS,MAAM,EAAG,CAAC,IAAI,QAAS,IACpF,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAG,CAAC,IAAI,QAAS,MAAM,EAAG,CAAC,IAAI,QAAS,IACpF,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAG,CAAC,IAAI,QAAS,MAAM,EAAG,CAAC,IAAI,QAAS,IACpF,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,KAAM,EAAE,EAAE,IAAI,OAAQ,EAAE,EAAE,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAG,CAAC,IAAI,QAAS,MAAM,EAAG,CAAC,IAAI,QAAS,IACpF,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAG,CAAC,IAAI,QAAS,MAAM,EAAG,CAAC,IAAI,QAAS,IACpF,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAG,CAAC,IAAI,QAAS,MAAM,EAAG,CAAC,IAAI,QAAS,IACpF,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,KAAM,EAAE,EAAE,IAAI,OAAQ,EAAE,EAAE,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,MAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,MAAM,EAAE,EAAE,IAAI,OAAQ,EAAE,EAAE,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,MAAM,EAAE,EAAE,IAAI,OAAQ,EAAE,EAAE,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,MAAM,EAAE,EAAE,IAAI,OAAQ,EAAE,EAAE,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,MAAM,EAAE,EAAE,IAAI,OAAQ,EAAE,EAAE,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,MAAM,EAAE,EAAE,IAAI,OAAQ,EAAE,EAAE,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS;AAExF,UAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IACpE,KAAK,IAAI,KAAK,IAAI,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KACpE,MAAM,KAAK;AAEf,eAAS,IAAI,GAAG,IAAI,IAAI,KAAK,GAAG;AAC9B,YAAI,KAAK,MAAM;AACf,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,eAAO,KAAK,KAAK,MAAM;AACvB,YAAI,MAAM,KAAK;AACf,cAAM,KAAK,KAAK,MAAM;AAEtB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,eAAO,KAAK,IAAI,MAAM;AACtB,YAAI,MAAM,KAAK;AACf,cAAM,KAAK,KAAK,MAAM;AACtB,YAAI,KAAK,MAAM;AACf,cAAM,KAAK,KAAK,MAAM;AAEtB,YAAI,MAAM,KAAK;AACf,eAAO,KAAK,IAAI,MAAM;AACtB,YAAI,MAAM,MAAM;AAChB,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,MAAM;AACf,cAAM,KAAK,KAAK,MAAM;AACtB,YAAI,KAAK,KAAK;AACd,eAAO,KAAK,KAAK,MAAM;AAEvB,YAAI,MAAM,MAAM;AAChB,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,MAAM;AACf,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,eAAO,KAAK,KAAK,MAAM;AACvB,YAAI,MAAM,KAAK;AACf,eAAO,KAAK,KAAK,MAAM;AAEvB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,KAAK,MAAM;AACtB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,KAAK,MAAM;AAEtB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,KAAK,MAAM;AACtB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,KAAK,MAAM;AAEtB,YAAI,MAAM,KAAK;AACf,eAAO,KAAK,IAAI,MAAM;AACtB,YAAI,MAAM,MAAM;AAChB,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,MAAM;AACf,cAAM,KAAK,KAAK,MAAM;AACtB,YAAI,KAAK,KAAK;AACd,eAAO,KAAK,KAAK,MAAM;AAEvB,YAAI,MAAM,MAAM;AAChB,eAAO,KAAK,IAAI,MAAM;AACtB,YAAI,MAAM,MAAM;AAChB,eAAO,KAAK,IAAI,MAAM;AACtB,YAAI,MAAM,MAAM;AAChB,eAAO,KAAK,KAAK,MAAM;AACvB,YAAI,MAAM,MAAM;AAChB,eAAO,KAAK,KAAK,MAAM;AAAA,MACzB;AACC,WAAM,KAAM,KAAK;AACjB,WAAM,KAAM,KAAK;AACjB,WAAM,KAAM,KAAK;AACjB,WAAM,KAAM,KAAK;AACjB,WAAM,KAAM,KAAK;AACjB,WAAM,KAAM,KAAK;AACjB,WAAM,KAAM,KAAK;AACjB,WAAM,KAAM,KAAK;AACjB,WAAM,KAAM,KAAK;AACjB,WAAM,KAAM,KAAK;AAClB,YAAM,MAAM,MAAM;AAClB,YAAM,MAAM,MAAM;AAClB,YAAM,MAAM,MAAM;AAClB,YAAM,MAAM,MAAM;AAClB,YAAM,MAAM,MAAM;AAClB,YAAM,MAAM,MAAM;AAElB,QAAG,CAAC,IAAI,OAAQ,IAAI;AACpB,QAAG,CAAC,IAAI,OAAQ,IAAI;AACpB,QAAG,CAAC,IAAI,OAAO,KAAK;AACpB,QAAG,CAAC,IAAI,OAAO,KAAK;AAEpB,QAAG,CAAC,IAAI,OAAQ,IAAI;AACpB,QAAG,CAAC,IAAI,OAAQ,IAAI;AACpB,QAAG,CAAC,IAAI,OAAO,KAAK;AACpB,QAAG,CAAC,IAAI,OAAO,KAAK;AAEpB,QAAG,CAAC,IAAI,OAAQ,IAAI;AACpB,QAAG,CAAC,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AAEpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AAEpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AAEpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AAEpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AAEpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AAEpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AAEpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AAEpB,QAAE,EAAE,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AAErB,QAAE,EAAE,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AAErB,QAAE,EAAE,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AAErB,QAAE,EAAE,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AAErB,QAAE,EAAE,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AAErB,QAAE,EAAE,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AAAA,IACvB;AAEA,aAAS,cAAc,GAAE,GAAE,GAAE,GAAG;AAC9B,UAAI,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAG,CAAC,IAAI,QAAS,MAAM,EAAG,CAAC,IAAI,QAAS,IACpF,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAG,CAAC,IAAI,QAAS,MAAM,EAAG,CAAC,IAAI,QAAS,IACpF,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAG,CAAC,IAAI,QAAS,MAAM,EAAG,CAAC,IAAI,QAAS,IACpF,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,KAAM,EAAE,EAAE,IAAI,OAAQ,EAAE,EAAE,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAG,CAAC,IAAI,QAAS,MAAM,EAAG,CAAC,IAAI,QAAS,IACpF,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAG,CAAC,IAAI,QAAS,MAAM,EAAG,CAAC,IAAI,QAAS,IACpF,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAG,CAAC,IAAI,QAAS,MAAM,EAAG,CAAC,IAAI,QAAS,IACpF,KAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,KAAM,EAAE,EAAE,IAAI,OAAQ,EAAE,EAAE,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,MAAM,EAAG,CAAC,IAAI,OAAQ,EAAG,CAAC,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,MAAM,EAAE,EAAE,IAAI,OAAQ,EAAE,EAAE,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,MAAM,EAAE,EAAE,IAAI,OAAQ,EAAE,EAAE,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,MAAM,EAAE,EAAE,IAAI,OAAQ,EAAE,EAAE,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,MAAM,EAAE,EAAE,IAAI,OAAQ,EAAE,EAAE,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS,IACpF,MAAM,EAAE,EAAE,IAAI,OAAQ,EAAE,EAAE,IAAI,QAAS,KAAK,EAAE,EAAE,IAAI,QAAS,MAAM,EAAE,EAAE,IAAI,QAAS;AAExF,UAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IACpE,KAAK,IAAI,KAAK,IAAI,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KACpE,MAAM,KAAK;AAEf,eAAS,IAAI,GAAG,IAAI,IAAI,KAAK,GAAG;AAC9B,YAAI,KAAK,MAAM;AACf,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,eAAO,KAAK,KAAK,MAAM;AACvB,YAAI,MAAM,KAAK;AACf,cAAM,KAAK,KAAK,MAAM;AAEtB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,eAAO,KAAK,IAAI,MAAM;AACtB,YAAI,MAAM,KAAK;AACf,cAAM,KAAK,KAAK,MAAM;AACtB,YAAI,KAAK,MAAM;AACf,cAAM,KAAK,KAAK,MAAM;AAEtB,YAAI,MAAM,KAAK;AACf,eAAO,KAAK,IAAI,MAAM;AACtB,YAAI,MAAM,MAAM;AAChB,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,MAAM;AACf,cAAM,KAAK,KAAK,MAAM;AACtB,YAAI,KAAK,KAAK;AACd,eAAO,KAAK,KAAK,MAAM;AAEvB,YAAI,MAAM,MAAM;AAChB,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,MAAM;AACf,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,eAAO,KAAK,KAAK,MAAM;AACvB,YAAI,MAAM,KAAK;AACf,eAAO,KAAK,KAAK,MAAM;AAEvB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,KAAK,MAAM;AACtB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,KAAK,MAAM;AAEtB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,KAAK,MAAM;AACtB,YAAI,KAAK,KAAK;AACd,cAAM,KAAK,KAAK,MAAM;AAEtB,YAAI,MAAM,KAAK;AACf,eAAO,KAAK,IAAI,MAAM;AACtB,YAAI,MAAM,MAAM;AAChB,cAAM,KAAK,IAAI,MAAM;AACrB,YAAI,KAAK,MAAM;AACf,cAAM,KAAK,KAAK,MAAM;AACtB,YAAI,KAAK,KAAK;AACd,eAAO,KAAK,KAAK,MAAM;AAEvB,YAAI,MAAM,MAAM;AAChB,eAAO,KAAK,IAAI,MAAM;AACtB,YAAI,MAAM,MAAM;AAChB,eAAO,KAAK,IAAI,MAAM;AACtB,YAAI,MAAM,MAAM;AAChB,eAAO,KAAK,KAAK,MAAM;AACvB,YAAI,MAAM,MAAM;AAChB,eAAO,KAAK,KAAK,MAAM;AAAA,MACzB;AAEA,QAAG,CAAC,IAAI,OAAQ,IAAI;AACpB,QAAG,CAAC,IAAI,OAAQ,IAAI;AACpB,QAAG,CAAC,IAAI,OAAO,KAAK;AACpB,QAAG,CAAC,IAAI,OAAO,KAAK;AAEpB,QAAG,CAAC,IAAI,OAAQ,IAAI;AACpB,QAAG,CAAC,IAAI,OAAQ,IAAI;AACpB,QAAG,CAAC,IAAI,OAAO,KAAK;AACpB,QAAG,CAAC,IAAI,OAAO,KAAK;AAEpB,QAAG,CAAC,IAAI,QAAS,IAAI;AACrB,QAAG,CAAC,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AAErB,QAAE,EAAE,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAS,IAAI;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AACrB,QAAE,EAAE,IAAI,QAAQ,KAAK;AAErB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AAEpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AAEpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AAEpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAQ,IAAI;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AACpB,QAAE,EAAE,IAAI,OAAO,KAAK;AAAA,IACtB;AAAA;AAAA;;;ACtcA,IAAAC,mBAAA;AAAA;AAAA,QAAM,WAAW;AAEjB,WAAO,UAAU,MAAM,MAAM;AAAA,MAC3B,YAAa,OAAO,KAAK;AACvB,aAAK,WAAW,SAAS,OAAO,GAAG;AAAA,MACrC;AAAA,MAEA,OAAQ,KAAK,SAAS;AACpB,aAAK,SAAS,OAAO,SAAS,GAAG;AAAA,MACnC;AAAA,MAEA,QAAS;AACP,aAAK,SAAS,SAAS;AAAA,MACzB;AAAA,IACF;AAAA;AAAA;;;ACdA;AAAA;AAAA,QAAM,WAAW;AACjB,QAAM,SAAS;AAEf,WAAO,UAAU,MAAM,IAAI;AAAA,MACzB,YAAa,QAAQ,OAAO;AAC1B,aAAK,SAAS,OAAO;AACrB,aAAK,SAAS,OAAO;AACrB,aAAK,KAAK,IAAI,SAAS,KAAK,QAAQ,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;AACzD,aAAK,KAAK,IAAI,SAAS,KAAK,QAAQ,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;AAAA,MAC3D;AAAA,MAEA,QAAS,MAAM;AACb,aAAK,GAAG,OAAO,MAAM,IAAI;AACzB,eAAO;AAAA,MACT;AAAA,MAEA,QAAS,MAAM;AACb,aAAK,GAAG,OAAO,MAAM,IAAI;AACzB,eAAO;AAAA,MACT;AAAA,MAEA,UAAW;AACT,aAAK,GAAG,MAAM;AACd,aAAK,GAAG,MAAM;AAAA,MAChB;AAAA,MAEA,OAAO,QAAS;AACd,eAAO,OAAO,YAAY,EAAE;AAAA,MAC9B;AAAA,IACF;AAAA;AAAA;;;AC7BA;AAAA;AAAA,QAAM,SAAS;AAEf,WAAO,UAAU,MAAM,sBAAsB;AAAA,MAC3C,YAAa,EAAE,UAAU,IAAI,OAAO,MAAM,UAAU,MAAM,YAAY,MAAM,YAAY,MAAM,QAAQ,KAAK,IAAI,CAAC,GAAG;AACjH,aAAK,WAAW;AAChB,aAAK,OAAO;AACZ,aAAK,UAAU;AACf,aAAK,UAAU;AACf,aAAK,UAAU;AACf,aAAK,UAAU;AACf,aAAK,SAAS;AACd,aAAK,YAAY;AACjB,aAAK,WAAW;AAChB,aAAK,SAAS,SAAS,CAAC;AAExB,aAAK,YAAY;AACjB,aAAK,YAAY;AACjB,aAAK,QAAQ;AACb,aAAK,UAAU;AACf,aAAK,YAAY;AACjB,aAAK,YAAY;AAAA,MACnB;AAAA,MAEA,QAAS,KAAK;AACZ,YAAI,IAAK,MAAK,QAAQ;AACtB,aAAK,YAAY;AAAA,MACnB;AAAA,MAEA,KAAM,MAAM;AACV,YAAI,KAAK,cAAc,KAAM,OAAM,IAAI,MAAM,iCAAiC;AAC9E,aAAK,YAAY;AAEjB,YAAI,SAAS;AACb,eAAO,SAAS,KAAK,QAAQ;AAC3B,cAAI,KAAK,WAAW,EAAG,UAAS,KAAK,aAAa,MAAM,MAAM;AAAA,cACzD,UAAS,KAAK,YAAY,MAAM,MAAM;AAAA,QAC7C;AACA,YAAI,KAAK,WAAW,KAAK,KAAK,YAAY,GAAG;AAC3C,eAAK,aAAa,MAAM,MAAM;AAAA,QAChC;AAEA,aAAK,YAAY;AACjB,eAAO,CAAC,KAAK;AAAA,MACf;AAAA,MAEA,aAAc,MAAM,QAAQ;AAC1B,cAAM,OAAO,KAAK,SAAS;AAC3B,YAAI,QAAQ,KAAK,SAAS;AACxB,cAAI,KAAK,UAAU;AACjB,iBAAK,KAAK,KAAK,UAAU,KAAK,SAAS,SAAS,KAAK,SAAS,MAAM;AAAA,UACtE,OAAO;AACL,iBAAK,WAAW,KAAK,MAAM,QAAQ,SAAS,KAAK,OAAO;AAAA,UAC1D;AACA,iBAAO,KAAK,WAAW,MAAM,UAAU,KAAK,OAAO,IAAI,SAAS,KAAK;AAAA,QACvE;AAEA,YAAI,CAAC,KAAK,SAAU,MAAK,WAAW,OAAO,YAAY,KAAK,OAAO;AACnE,aAAK,KAAK,KAAK,UAAU,KAAK,SAAS,SAAS,KAAK,SAAS,MAAM;AACpE,aAAK,WAAW;AAEhB,eAAO,KAAK;AAAA,MACd;AAAA,MAEA,YAAa,MAAM,QAAQ;AACzB,eAAO,SAAS,KAAK,QAAQ,UAAU;AACrC,eAAK,YAAY,KAAK,MAAM,IAAI,OAAO,KAAK;AAC5C,eAAK;AACL,cAAI,KAAK,MAAM,IAAI,IAAK,QAAO,KAAK,WAAW,MAAM,EAAE,MAAM,IAAI,SAAS,KAAK;AAC/E,eAAK,WAAW;AAAA,QAClB;AACA,YAAI,KAAK,aAAa,EAAG,MAAK,QAAQ,IAAI,MAAM,4BAA4B,CAAC;AAC7E,eAAO,KAAK;AAAA,MACd;AAAA,MAEA,WAAY,MAAM,QAAQ;AACxB,gBAAQ,KAAK,QAAQ;AAAA,UACnB,KAAK;AACH,iBAAK,SAAS;AACd,iBAAK,UAAU;AACf,iBAAK,UAAU,KAAK;AACpB,iBAAK,YAAY,KAAK,UAAU;AAChC,gBAAI,KAAK,YAAY,EAAG,MAAK,SAAS;AACtC,mBAAO;AAAA,UAET,KAAK;AACH,iBAAK,SAAS;AACd,iBAAK,UAAU;AACf,iBAAK,UAAU,KAAK;AACpB,iBAAK,WAAW,KAAK;AACrB,iBAAK,YAAY,KAAK,UAAU;AAChC,gBAAI,KAAK,UAAU,KAAK,KAAK,UAAU,KAAK,UAAU;AACpD,mBAAK,QAAQ,IAAI,MAAM,0CAA0C,CAAC;AAClE,qBAAO;AAAA,YACT;AACA,gBAAI,KAAK,WAAW;AAClB,oBAAM,QAAQ,KAAK,SAAS;AAC5B,kBAAI,KAAK,UAAU,MAAO,MAAK,UAAU,KAAK,UAAU,OAAO,KAAK,OAAO;AAAA,YAC7E;AACA,mBAAO;AAAA,UAET,KAAK;AACH,iBAAK,SAAS;AACd,iBAAK,WAAW,KAAK,WAAW,GAAG,KAAK,UAAU,IAAQ,KAAK,UAAU,MAAM,MAAM;AACrF,iBAAK,WAAW;AAChB,mBAAO,CAAC,KAAK;AAAA,UAEf;AACE,mBAAO;AAAA,QACX;AAAA,MACF;AAAA,MAEA,WAAY,SAAS,MAAM,SAAS,MAAM,QAAQ;AAChD,YAAI,QAAQ,KAAK,OAAO,QAAQ;AAC9B,cAAI,KAAK,cAAc,KAAM;AAC7B,iBAAO,KAAK,UAAU,SAAS,MAAM,SAAS,KAAK,SAAS,MAAM,MAAM;AAAA,QAC1E;AAEA,YAAI,IAAI;AACR,cAAM,EAAE,WAAW,UAAU,QAAQ,IAAI,KAAK,OAAO,IAAI;AAEzD,YAAI;AACF,cAAI,SAAS,OAAO,OAAO;AAAA,QAC7B,SAAS,KAAK;AACZ,eAAK,QAAQ,GAAG;AAChB;AAAA,QACF;AAEA,kBAAU,SAAS,GAAG,SAAS,MAAM,MAAM;AAAA,MAC7C;AAAA,MAEA,KAAM,SAAS,MAAM,SAAS;AAC5B,cAAM,SAAS,WAAW,IAAI;AAC9B,cAAM,SAAS,KAAK,gBAAgB,MAAM,OAAO,IAAI,OAAO,eAAe,MAAM;AACjF,cAAM,UAAU,OAAO,YAAY,OAAO,eAAe,MAAM,IAAI,MAAM;AAEzE,eAAO,OAAO,QAAQ,SAAS,CAAC;AAChC,cAAM,SAAS,OAAO,OAAO;AAC7B,eAAO,OAAO,QAAQ,SAAS,MAAM;AACrC,aAAK,QAAQ,MAAM,SAAS,SAAS,SAAS,OAAO,OAAO,KAAK;AAEjE,eAAO;AAAA,MACT;AAAA,MAEA,UAAW,UAAU;AACnB,YAAI,SAAS;AACb,YAAI,SAAS;AAEb,mBAAW,EAAE,MAAM,QAAQ,KAAK,UAAU;AAExC,oBAAU,KAAK,KAAK,gBAAgB,MAAM,OAAO;AAAA,QACnD;AAEA,cAAM,UAAU,OAAO,YAAY,MAAM;AAEzC,mBAAW,EAAE,SAAS,MAAM,QAAQ,KAAK,UAAU;AACjD,gBAAM,SAAS,WAAW,IAAI;AAC9B,gBAAMC,UAAS,KAAK,gBAAgB,MAAM,OAAO,IAAI,OAAO,eAAe,MAAM;AACjF,iBAAO,OAAOA,SAAQ,SAAS,MAAM;AACrC,oBAAU,OAAO,OAAO;AACxB,iBAAO,OAAO,QAAQ,SAAS,MAAM;AACrC,oBAAU,OAAO,OAAO;AACxB,oBAAU,KAAK,QAAQ,MAAM,SAAS,SAAS,MAAM;AAAA,QACvD;AAEA,eAAO,QAAQ,MAAM,GAAG,MAAM;AAAA,MAChC;AAAA,MAEA,gBAAiB,MAAM,SAAS;AAC9B,YAAI,QAAQ,KAAK,OAAO,OAAQ,QAAO,QAAQ;AAC/C,eAAO,KAAK,OAAO,IAAI,EAAE,SAAS,eAAe,OAAO;AAAA,MAC1D;AAAA,MAEA,QAAS,MAAM,SAAS,KAAK,QAAQ;AACnC,YAAI,QAAQ,KAAK,OAAO,QAAQ;AAC9B,kBAAQ,KAAK,KAAK,MAAM;AACxB,iBAAO,QAAQ;AAAA,QACjB;AAEA,cAAM,MAAM,KAAK,OAAO,IAAI,EAAE;AAC9B,YAAI,OAAO,SAAS,KAAK,MAAM;AAC/B,eAAO,IAAI,OAAO;AAAA,MACpB;AAAA,IACF;AAAA;AAAA;;;ACtLA;AAAA;AAAA,QAAM,YAAY;AAClB,QAAM,WAAW;AACjB,QAAM,MAAM;AACZ,QAAM,MAAM;AACZ,QAAM,SAAS;AACf,QAAM,SAAS;AAEf,WAAO,UAAU,MAAM,eAAe;AAAA,MACpC,YAAa,WAAW,UAAU;AAChC,cAAM,UAAU,EAAE,OAAO,IAAI,MAAM,EAAE;AAErC,aAAK,WAAW,YAAY,CAAC;AAC7B,aAAK,gBAAgB;AACrB,aAAK,kBAAkB;AACvB,aAAK,YAAY;AACjB,aAAK,gBAAgB;AACrB,aAAK,YAAY;AAEjB,aAAK,aAAa;AAClB,aAAK,WAAW;AAChB,aAAK,WAAW,CAAC;AACjB,aAAK,aAAa;AAClB,aAAK,SAAS;AACd,aAAK,cAAc;AACnB,aAAK,SAAS,EAAE,SAAS,cAAc,SAAS,SAAS,UAAU;AACnE,aAAK,aAAa;AAClB,aAAK,eAAe;AAEpB,aAAK,YAAY,IAAI,IAAI;AAAA,UACvB;AAAA,UACA;AAAA,UACA,SAAS;AAAA,UACT,OAAO;AAAA,YACL,EAAE,SAAS,MAAM,WAAW,QAAQ,UAAU,SAAS,KAAK;AAAA,YAC5D,EAAE,SAAS,MAAM,WAAW,WAAW,UAAU,SAAS,QAAQ;AAAA,YAClE,EAAE,SAAS,MAAM,WAAW,UAAU,UAAU,SAAS,OAAO;AAAA,YAChE,EAAE,SAAS,MAAM,WAAW,QAAQ,UAAU,SAAS,KAAK;AAAA,YAC5D,EAAE,SAAS,MAAM,WAAW,UAAU,UAAU,SAAS,OAAO;AAAA,YAChE,EAAE,SAAS,MAAM,WAAW,QAAQ,UAAU,SAAS,KAAK;AAAA,YAC5D,EAAE,SAAS,MAAM,WAAW,UAAU,UAAU,SAAS,OAAO;AAAA,YAChE,EAAE,SAAS,MAAM,WAAW,WAAW,UAAU,SAAS,QAAQ;AAAA,YAClE,EAAE,SAAS,MAAM,WAAW,UAAU,UAAU,SAAS,OAAO;AAAA,YAChE,EAAE,SAAS,MAAM,WAAW,QAAQ,UAAU,SAAS,KAAK;AAAA,YAC5D,EAAE,SAAS,MAAM,WAAW,SAAS,UAAU,SAAS,MAAM;AAAA,UAChE;AAAA,QACF,CAAC;AAED,YAAI,SAAS,cAAc,SAAS,SAAS,UAAU,OAAO;AAC5D,eAAK,eAAe;AACpB,cAAI,OAAO,KAAK,SAAS,YAAY,YAAY;AAC/C,iBAAK,WAAW,MAAM,KAAK,SAAS,WAAW,IAAI;AAAA,UACrD,OAAO;AACL,iBAAK,aAAa,CAAC;AACnB,iBAAK,SAAS,QAAQ,KAAK,WAAW,KAAK,IAAI,CAAC;AAAA,UAClD;AAAA,QACF;AAAA,MACF;AAAA,MAEA,WAAY,KAAK,SAAS;AACxB,YAAI,IAAK,QAAO,KAAK,QAAQ,GAAG;AAChC,YAAI,KAAK,eAAe,KAAM;AAE9B,aAAK,SAAS,UAAU;AACxB,cAAM,YAAY,IAAI,UAAU,KAAK,YAAY,SAAS,aAAa,OAAO,KAAK,QAAQ,GAAG,KAAK,UAAU,KAAK,aAAa,KAAK,IAAI,CAAC;AAEzI,aAAK,YAAY,UAAU,QAAQ;AACnC,aAAK,aAAa;AAElB,YAAI,KAAK,YAAY;AACnB,iBAAO,KAAK,WAAW,OAAQ,MAAK,MAAM,KAAK,WAAW,MAAM,CAAC;AAAA,QACnE;AAEA,aAAK,aAAa;AAAA,MACpB;AAAA,MAEA,KAAM,IAAI,SAAS;AACjB,eAAO,KAAK,MAAM,IAAI,GAAG,OAAO;AAAA,MAClC;AAAA,MAEA,QAAS,IAAI,SAAS;AACpB,eAAO,KAAK,MAAM,IAAI,GAAG,OAAO;AAAA,MAClC;AAAA,MAEA,OAAQ,IAAI,SAAS;AACnB,eAAO,KAAK,MAAM,IAAI,GAAG,OAAO;AAAA,MAClC;AAAA,MAEA,KAAM,IAAI,SAAS;AACjB,eAAO,KAAK,MAAM,IAAI,GAAG,OAAO;AAAA,MAClC;AAAA,MAEA,OAAQ,IAAI,SAAS;AACnB,eAAO,KAAK,MAAM,IAAI,GAAG,OAAO;AAAA,MAClC;AAAA,MAEA,KAAM,IAAI,SAAS;AACjB,eAAO,KAAK,MAAM,IAAI,GAAG,OAAO;AAAA,MAClC;AAAA,MAEA,OAAQ,IAAI,SAAS;AACnB,eAAO,KAAK,MAAM,IAAI,GAAG,OAAO;AAAA,MAClC;AAAA,MAEA,QAAS,IAAI,SAAS;AACpB,eAAO,KAAK,MAAM,IAAI,GAAG,OAAO;AAAA,MAClC;AAAA,MAEA,OAAQ,IAAI,SAAS;AACnB,eAAO,KAAK,MAAM,IAAI,GAAG,OAAO;AAAA,MAClC;AAAA,MAEA,KAAM,IAAI,SAAS;AACjB,eAAO,KAAK,MAAM,IAAI,GAAG,OAAO;AAAA,MAClC;AAAA,MAEA,MAAO,IAAI,SAAS;AAClB,eAAO,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,CAAC;AAAA,MACzC;AAAA,MAEA,UAAW,IAAI,IAAI,SAAS;AAC1B,cAAM,MAAM,OAAO,YAAY,OAAO,eAAe,EAAE,IAAI,QAAQ,MAAM;AAEzE,eAAO,OAAO,IAAI,KAAK,CAAC;AACxB,gBAAQ,KAAK,KAAK,OAAO,OAAO,KAAK;AAErC,eAAO,KAAK,MAAM,IAAI,IAAI,GAAG;AAAA,MAC/B;AAAA,MAEA,OAAQ;AACN,YAAI,KAAK,gBAAgB,KAAK,SAAS,OAAQ;AAE/C,YAAI,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC;AAC1B,YAAI,KAAK,gBAAgB,MAAM;AAC7B,iBAAO,KAAK,YAAY,QAAQ,IAAI;AAAA,QACtC;AAEA,eAAO,KAAK,SAAS,KAAK,IAAI;AAAA,MAChC;AAAA,MAEA,aAAc,KAAK,eAAe,OAAO,UAAU,iBAAiB,eAAe;AACjF,YAAI,IAAK,QAAO,KAAK,QAAQ,IAAI,MAAM,uBAAuB,CAAC;AAC/D,YAAI,CAAC,cAAe,QAAO,KAAK,QAAQ,IAAI,MAAM,4CAA4C,CAAC;AAE/F,aAAK,kBAAkB;AACvB,aAAK,gBAAgB;AAErB,YAAI;AACF,0BAAgB,SAAS,aAAa,OAAO,aAAa;AAAA,QAC5D,SAAS,GAAG;AACV,iBAAO,KAAK,QAAQ,IAAI,MAAM,gCAAgC,CAAC;AAAA,QACjE;AAEA,aAAK,aAAa;AAClB,aAAK,eAAe;AACpB,aAAK,SAAS;AACd,aAAK,cAAc,KAAK,SAAS,cAAc,QAC3C,OACA,IAAI,IAAI,EAAE,QAAQ,cAAc,OAAO,QAAQ,KAAK,SAAS,MAAM,GAAG,KAAK;AAE/E,aAAK,gBAAgB;AAErB,YAAI,KAAK,SAAS,YAAa,MAAK,SAAS,YAAY;AACzD,YAAI,KAAK,UAAW;AAEpB,YAAI,SAAU,MAAK,KAAK,QAAQ;AAChC,eAAO,KAAK,SAAS,UAAU,CAAC,KAAK,WAAW;AAC9C,eAAK,SAAS,GAAG,KAAK,SAAS,MAAM,CAAC;AAAA,QACxC;AAAA,MACF;AAAA,MAEA,MAAO,SAAS,MAAM,SAAS;AAC7B,YAAI,KAAK,gBAAgB,KAAK,SAAS,QAAQ;AAC7C,eAAK,SAAS,KAAK,CAAC,SAAS,MAAM,OAAO,CAAC;AAC3C,iBAAO;AAAA,QACT;AAEA,eAAO,KAAK,SAAS,SAAS,MAAM,OAAO;AAAA,MAC7C;AAAA,MAEA,SAAU,SAAS,MAAM,SAAS;AAChC,YAAI,SAAS,KAAK,QAAQ,OAAO,CAAC,QAAQ,YAAY;AACpD,kBAAQ,aAAa,KAAK,WAAW,QAAQ,GAAG;AAChD,kBAAQ,MAAM;AAAA,QAChB;AAEA,YAAI,OAAO,KAAK,UAAU,KAAK,SAAS,MAAM,OAAO;AAErD,YAAI,KAAK,gBAAgB,MAAM;AAC7B,iBAAO,KAAK,YAAY,QAAQ,IAAI;AAAA,QACtC;AAEA,eAAO,KAAK,SAAS,KAAK,IAAI;AAAA,MAChC;AAAA,MAEA,WAAY,KAAK;AACf,eAAO,OAAO,WAAW,KAAK,KAAK,MAAM;AAAA,MAC3C;AAAA,MAEA,iBAAkB,KAAK;AACrB,eAAO,OAAO,iBAAiB,KAAK,KAAK,MAAM;AAAA,MACjD;AAAA,MAEA,KAAM,MAAM;AACV,YAAI,KAAK,eAAe,KAAM,MAAK,WAAW,KAAK,IAAI;AAAA,YAClD,MAAK,MAAM,IAAI;AAAA,MACtB;AAAA,MAEA,MAAO,MAAM;AACX,YAAI,KAAK,UAAW;AAEpB,YAAI,KAAK,cAAc;AACrB,eAAK,WAAW,KAAK,IAAI;AACzB;AAAA,QACF;AAEA,YAAI,KAAK,gBAAgB,MAAM;AAC7B,iBAAO,KAAK,YAAY,QAAQ,IAAI;AAAA,QACtC;AAEA,YAAI,CAAC,KAAK,UAAU,KAAK,IAAI,GAAG;AAC9B,eAAK,QAAQ,KAAK,UAAU,KAAK;AAAA,QACnC;AAAA,MACF;AAAA,MAEA,QAAS,KAAK;AACZ,YAAI,KAAK,UAAW;AACpB,aAAK,YAAY;AACjB,YAAI,KAAK,WAAY,MAAK,WAAW,QAAQ;AAC7C,YAAI,KAAK,YAAa,MAAK,YAAY,QAAQ;AAC/C,YAAI,KAAK,SAAS,QAAS,MAAK,SAAS,QAAQ,GAAG;AAAA,MACtD;AAAA,MAEA,OAAO,QAAS,MAAM;AACpB,eAAO,UAAU,QAAQ,IAAI;AAAA,MAC/B;AAAA,IACF;AAEA,aAAS,OAAQ,IAAI,SAAS,MAAM;AAClC,UAAI,KAAK,SAAS,OAAQ,MAAK,SAAS,OAAO,IAAI,OAAO;AAAA,IAC5D;AAEA,aAAS,UAAW,IAAI,SAAS,MAAM;AACrC,UAAI,KAAK,SAAS,UAAW,MAAK,SAAS,UAAU,IAAI,OAAO;AAAA,IAClE;AAEA,aAAS,SAAU,IAAI,SAAS,MAAM;AACpC,UAAI,KAAK,SAAS,SAAU,MAAK,SAAS,SAAS,IAAI,OAAO;AAAA,IAChE;AAEA,aAAS,OAAQ,IAAI,SAAS,MAAM;AAClC,UAAI,KAAK,SAAS,OAAQ,MAAK,SAAS,OAAO,IAAI,OAAO;AAAA,IAC5D;AAEA,aAAS,SAAU,IAAI,SAAS,MAAM;AACpC,UAAI,KAAK,SAAS,SAAU,MAAK,SAAS,SAAS,IAAI,OAAO;AAAA,IAChE;AAEA,aAAS,OAAQ,IAAI,SAAS,MAAM;AAClC,UAAI,KAAK,SAAS,OAAQ,MAAK,SAAS,OAAO,IAAI,OAAO;AAAA,IAC5D;AAEA,aAAS,SAAU,IAAI,SAAS,MAAM;AACpC,UAAI,KAAK,SAAS,SAAU,MAAK,SAAS,SAAS,IAAI,OAAO;AAAA,IAChE;AAEA,aAAS,UAAW,IAAI,SAAS,MAAM;AACrC,UAAI,KAAK,SAAS,UAAW,MAAK,SAAS,UAAU,IAAI,OAAO;AAAA,IAClE;AAEA,aAAS,SAAU,IAAI,SAAS,MAAM;AACpC,UAAI,KAAK,SAAS,SAAU,MAAK,SAAS,SAAS,IAAI,OAAO;AAAA,IAChE;AAEA,aAAS,OAAQ,IAAI,SAAS,MAAM;AAClC,UAAI,KAAK,SAAS,OAAQ,MAAK,SAAS,OAAO,IAAI,OAAO;AAAA,IAC5D;AAEA,aAAS,QAAS,IAAI,SAAS,MAAM;AACnC,UAAI,KAAK,SAAS,QAAS,MAAK,SAAS,QAAQ,IAAI,OAAO;AAAA,IAC9D;AAEA,aAAS,UAAW,IAAI,MAAM,SAAS,MAAM;AAC3C,UAAI,SAAS,GAAI;AACjB,YAAM,KAAK,OAAO,OAAO,OAAO;AAChC,YAAM,IAAI,QAAQ,MAAM,OAAO,OAAO,KAAK;AAC3C,UAAI,KAAK,SAAS,YAAa,MAAK,SAAS,YAAY,IAAI,IAAI,CAAC;AAAA,IACpE;AAEA,aAAS,UAAW,OAAO,MAAM;AAC/B,UAAI,KAAK,SAAS,UAAW,MAAK,SAAS,UAAU,KAAK;AAAA,IAC5D;AAAA;AAAA;;;AClSA,IAAAC,mBAAA;AAAA;AAAA,WAAO,UAAU;AAEjB,aAAS,QAAS,IAAI,IAAI,KAAK;AAC7B,UAAI,EAAE,gBAAgB,SAAU,QAAO,IAAI,QAAQ,IAAI,IAAI,GAAG;AAC9D,WAAK,KAAK;AACV,WAAK,YAAY;AACjB,WAAK,UAAU,OAAO;AACtB,WAAK,SAAS;AACd,WAAK,WAAW,WAAW,MAAM,IAAI,IAAI;AAAA,IAC3C;AAEA,YAAQ,UAAU,UAAU,WAAY;AACtC,UAAI,KAAK,UAAU,KAAK,cAAc,KAAM;AAC5C,mBAAa,KAAK,QAAQ;AAC1B,WAAK,WAAW,WAAW,MAAM,KAAK,IAAI,IAAI;AAAA,IAChD;AAEA,YAAQ,UAAU,UAAU,WAAY;AACtC,WAAK,YAAY;AACjB,mBAAa,KAAK,QAAQ;AAAA,IAC5B;AAEA,aAAS,KAAM,MAAM;AACnB,WAAK,SAAS;AACd,WAAK,UAAU,KAAK,KAAK,OAAO;AAAA,IAClC;AAAA;AAAA;;;ACzBA;AAAA;AAAA,QAAM,SAAS;AAEf,QAAM,oBAAN,MAAwB;AAAA,MACtB,YAAa,OAAO,MAAM,WAAW,CAAC,GAAG;AACvC,aAAK,KAAK;AACV,aAAK,OAAO;AACZ,aAAK,WAAW,OAAO,SAAS,YAAY,QAAQ;AACpD,aAAK,WAAW;AAChB,aAAK,QAAQ;AAAA,MACf;AAAA,MAEA,OAAQ,SAAS;AACf,eAAO,KAAK,SAAS,OAAO,OAAO;AAAA,MACrC;AAAA,MAEA,iBAAkB;AAChB,eAAO,CAAC,EAAE,KAAK,SAAS,KAAK,MAAM,OAAO,KAAK,MAAM,IAAI,KAAK,EAAE,MAAM;AAAA,MACxE;AAAA,MAEA,UAAW,KAAK,SAAS;AACvB,YAAI,CAAC,KAAK,SAAS,UAAW;AAE9B,YAAI;AACJ,YAAI;AACF,oBAAU,KAAK,SAAS,OAAO,GAAG;AAAA,QACpC,SAAS,KAAK;AACZ,cAAI,KAAK,SAAS,QAAS,MAAK,SAAS,QAAQ,KAAK,OAAO;AAC7D;AAAA,QACF;AAEA,aAAK,SAAS,UAAU,SAAS,OAAO;AAAA,MAC1C;AAAA,MAEA,IAAI,YAAa;AACf,eAAO,KAAK,UAAU;AAAA,MACxB;AAAA,MAEA,UAAW;AACT,YAAI,KAAK,UAAU,KAAM;AACzB,aAAK,MAAM,QAAQ,IAAI;AACvB,aAAK,QAAQ;AAAA,MACf;AAAA,MAEA,OAAO,YAAa,WAAW,MAAM;AACnC,eAAO,IAAI,MAAM,UAAU,IAAI;AAAA,MACjC;AAAA,IACF;AAEA,QAAM,SAAN,MAAa;AAAA,MACX,YAAa,OAAO;AAClB,aAAK,QAAQ;AACb,aAAK,QAAQ;AACb,aAAK,MAAM;AACX,aAAK,UAAU;AAAA,MACjB;AAAA,MAEA,OAAQ,OAAO;AACb,aAAK,QAAQ;AACb,aAAK,UAAU;AAAA,MACjB;AAAA,MAEA,UAAW,IAAI,SAAS,UAAU,MAAM;AACtC,YAAI,KAAK,YAAY,KAAK,MAAM,SAAS;AACvC,eAAK,MAAM,KAAK,QAAQ,MAAM,KAAK,MAAM,UAAU,KAAK,KAAK,IAAI;AACjE,eAAK,UAAU,KAAK,MAAM;AAAA,QAC5B;AACA,cAAM,IAAI,KAAK,OAAO,KAAK,IAAI,EAAE;AACjC,YAAI,EAAG,GAAE,UAAU,SAAS,OAAO;AAAA,MACrC;AAAA,IACF;AAEA,QAAM,QAAN,MAAY;AAAA,MACV,YAAa,WAAW,MAAM,GAAG;AAC/B,aAAK,WAAW,CAAC;AACjB,aAAK,WAAW;AAChB,aAAK,YAAY;AACjB,aAAK,UAAU;AACf,aAAK,YAAY;AAAA,MACnB;AAAA,MAEA,IAAI,SAAU;AACZ,eAAO,KAAK,SAAS;AAAA,MACvB;AAAA,MAEA,CAAC,OAAO,QAAQ,IAAK;AACnB,eAAO,KAAK,SAAS,OAAO,QAAQ,EAAE;AAAA,MACxC;AAAA,MAEA,IAAK,MAAM;AAET,mBAAW,KAAK,KAAK,UAAU;AAC7B,cAAI,EAAE,SAAS,KAAM,QAAO;AAAA,QAC9B;AACA,eAAO;AAAA,MACT;AAAA,MAEA,IAAK,MAAM,UAAU;AACnB,YAAI;AAEJ,YAAI,OAAO,aAAa,YAAY;AAClC,cAAI,IAAI,KAAK,UAAU,MAAM,MAAM,QAAQ;AAAA,QAC7C,OAAO;AACL,cAAI,IAAI,KAAK,UAAU,MAAM,MAAM,CAAC,CAAC;AACrC,YAAE,WAAW,SAAS,CAAC,KAAK,CAAC;AAC7B,YAAE,WAAW,OAAO,EAAE,SAAS,YAAY,QAAQ;AAAA,QACrD;AAEA,aAAK;AACL,aAAK,SAAS,KAAK,CAAC;AACpB,aAAK,SAAS,KAAK,YAAY;AAC/B,iBAAS,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,KAAK;AAC7C,eAAK,SAAS,CAAC,EAAE,KAAK;AAAA,QACxB;AAEA,YAAI,KAAK,WAAW;AAClB,cAAK,EAAE,KAAK,KAAK,KAAK,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,QAAU,EAAE,KAAK,KAAK,SAAS,SAAS,KAAK,KAAK,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,MAAO;AACzI,iBAAK,QAAQ,CAAC;AACd,kBAAM,IAAI,MAAM,iDAAiD;AAAA,UACnE;AAAA,QACF;AAEA,YAAI,KAAK,YAAY,KAAK,SAAS,kBAAmB,MAAK,SAAS,kBAAkB;AAEtF,eAAO;AAAA,MACT;AAAA,MAEA,SAAU;AACR,eAAO,IAAI,OAAO,IAAI;AAAA,MACxB;AAAA,MAEA,QAAS,GAAG;AACV,aAAK;AACL,aAAK,SAAS,OAAO,EAAE,IAAI,CAAC;AAC5B,UAAE,KAAK;AACP,YAAI,KAAK,YAAY,KAAK,SAAS,kBAAmB,MAAK,SAAS,kBAAkB;AAAA,MACxF;AAAA,MAEA,QAAS;AACP,cAAM,QAAQ,IAAI,MAAM,KAAK,SAAS,MAAM;AAC5C,iBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,gBAAM,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE;AAAA,QAC9B;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAEA,aAAS,aAAc,GAAG,GAAG;AAC3B,aAAO,EAAE,OAAO,EAAE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,IAAI;AAAA,IACtD;AAEA,aAAS,MAAO,OAAO,QAAQ;AAC7B,UAAI,IAAI;AACR,UAAI,IAAI;AAER,YAAM,MAAM,IAAI,MAAM,OAAO,MAAM;AAEnC,aAAO,IAAI,MAAM,UAAU,IAAI,OAAO,QAAQ;AAC5C,cAAM,IAAI,MAAM,CAAC,EAAE;AACnB,cAAM,IAAI,OAAO,CAAC;AAElB,YAAI,IAAI,EAAG;AAAA,iBACF,IAAI,EAAG;AAAA,YACX,KAAI,GAAG,IAAI,MAAM,CAAC;AAAA,MACzB;AAEA,aAAO;AAAA,IACT;AAEA,WAAO,UAAU;AAAA;AAAA;;;ACxKjB;AAAA;AAIA,QAAI,IAAI;AACR,QAAI,IAAI,IAAI;AACZ,QAAI,IAAI,IAAI;AACZ,QAAI,IAAI,IAAI;AACZ,QAAI,IAAI,IAAI;AACZ,QAAI,IAAI,IAAI;AAgBZ,WAAO,UAAU,SAAU,KAAK,SAAS;AACvC,gBAAU,WAAW,CAAC;AACtB,UAAI,OAAO,OAAO;AAClB,UAAI,SAAS,YAAY,IAAI,SAAS,GAAG;AACvC,eAAO,MAAM,GAAG;AAAA,MAClB,WAAW,SAAS,YAAY,SAAS,GAAG,GAAG;AAC7C,eAAO,QAAQ,OAAO,QAAQ,GAAG,IAAI,SAAS,GAAG;AAAA,MACnD;AACA,YAAM,IAAI;AAAA,QACR,0DACE,KAAK,UAAU,GAAG;AAAA,MACtB;AAAA,IACF;AAUA,aAAS,MAAM,KAAK;AAClB,YAAM,OAAO,GAAG;AAChB,UAAI,IAAI,SAAS,KAAK;AACpB;AAAA,MACF;AACA,UAAI,QAAQ,mIAAmI;AAAA,QAC7I;AAAA,MACF;AACA,UAAI,CAAC,OAAO;AACV;AAAA,MACF;AACA,UAAI,IAAI,WAAW,MAAM,CAAC,CAAC;AAC3B,UAAI,QAAQ,MAAM,CAAC,KAAK,MAAM,YAAY;AAC1C,cAAQ,MAAM;AAAA,QACZ,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,IAAI;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,IAAI;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,IAAI;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,IAAI;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,IAAI;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,IAAI;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACX;AAAA,IACF;AAUA,aAAS,SAAS,IAAI;AACpB,UAAI,QAAQ,KAAK,IAAI,EAAE;AACvB,UAAI,SAAS,GAAG;AACd,eAAO,KAAK,MAAM,KAAK,CAAC,IAAI;AAAA,MAC9B;AACA,UAAI,SAAS,GAAG;AACd,eAAO,KAAK,MAAM,KAAK,CAAC,IAAI;AAAA,MAC9B;AACA,UAAI,SAAS,GAAG;AACd,eAAO,KAAK,MAAM,KAAK,CAAC,IAAI;AAAA,MAC9B;AACA,UAAI,SAAS,GAAG;AACd,eAAO,KAAK,MAAM,KAAK,CAAC,IAAI;AAAA,MAC9B;AACA,aAAO,KAAK;AAAA,IACd;AAUA,aAAS,QAAQ,IAAI;AACnB,UAAI,QAAQ,KAAK,IAAI,EAAE;AACvB,UAAI,SAAS,GAAG;AACd,eAAO,OAAO,IAAI,OAAO,GAAG,KAAK;AAAA,MACnC;AACA,UAAI,SAAS,GAAG;AACd,eAAO,OAAO,IAAI,OAAO,GAAG,MAAM;AAAA,MACpC;AACA,UAAI,SAAS,GAAG;AACd,eAAO,OAAO,IAAI,OAAO,GAAG,QAAQ;AAAA,MACtC;AACA,UAAI,SAAS,GAAG;AACd,eAAO,OAAO,IAAI,OAAO,GAAG,QAAQ;AAAA,MACtC;AACA,aAAO,KAAK;AAAA,IACd;AAMA,aAAS,OAAO,IAAI,OAAO,GAAG,MAAM;AAClC,UAAI,WAAW,SAAS,IAAI;AAC5B,aAAO,KAAK,MAAM,KAAK,CAAC,IAAI,MAAM,QAAQ,WAAW,MAAM;AAAA,IAC7D;AAAA;AAAA;;;ACjKA;AAAA;AAMA,aAAS,MAAM,KAAK;AACnB,kBAAY,QAAQ;AACpB,kBAAY,UAAU;AACtB,kBAAY,SAAS;AACrB,kBAAY,UAAU;AACtB,kBAAY,SAAS;AACrB,kBAAY,UAAU;AACtB,kBAAY,WAAW;AACvB,kBAAY,UAAU;AAEtB,aAAO,KAAK,GAAG,EAAE,QAAQ,SAAO;AAC/B,oBAAY,GAAG,IAAI,IAAI,GAAG;AAAA,MAC3B,CAAC;AAMD,kBAAY,QAAQ,CAAC;AACrB,kBAAY,QAAQ,CAAC;AAOrB,kBAAY,aAAa,CAAC;AAQ1B,eAAS,YAAY,WAAW;AAC/B,YAAI,OAAO;AAEX,iBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAC1C,kBAAS,QAAQ,KAAK,OAAQ,UAAU,WAAW,CAAC;AACpD,kBAAQ;AAAA,QACT;AAEA,eAAO,YAAY,OAAO,KAAK,IAAI,IAAI,IAAI,YAAY,OAAO,MAAM;AAAA,MACrE;AACA,kBAAY,cAAc;AAS1B,eAAS,YAAY,WAAW;AAC/B,YAAI;AACJ,YAAI,iBAAiB;AACrB,YAAI;AACJ,YAAI;AAEJ,iBAAS,SAAS,MAAM;AAEvB,cAAI,CAAC,MAAM,SAAS;AACnB;AAAA,UACD;AAEA,gBAAM,OAAO;AAGb,gBAAM,OAAO,OAAO,oBAAI,KAAK,CAAC;AAC9B,gBAAM,KAAK,QAAQ,YAAY;AAC/B,eAAK,OAAO;AACZ,eAAK,OAAO;AACZ,eAAK,OAAO;AACZ,qBAAW;AAEX,eAAK,CAAC,IAAI,YAAY,OAAO,KAAK,CAAC,CAAC;AAEpC,cAAI,OAAO,KAAK,CAAC,MAAM,UAAU;AAEhC,iBAAK,QAAQ,IAAI;AAAA,UAClB;AAGA,cAAI,QAAQ;AACZ,eAAK,CAAC,IAAI,KAAK,CAAC,EAAE,QAAQ,iBAAiB,CAAC,OAAO,WAAW;AAE7D,gBAAI,UAAU,MAAM;AACnB,qBAAO;AAAA,YACR;AACA;AACA,kBAAM,YAAY,YAAY,WAAW,MAAM;AAC/C,gBAAI,OAAO,cAAc,YAAY;AACpC,oBAAM,MAAM,KAAK,KAAK;AACtB,sBAAQ,UAAU,KAAK,MAAM,GAAG;AAGhC,mBAAK,OAAO,OAAO,CAAC;AACpB;AAAA,YACD;AACA,mBAAO;AAAA,UACR,CAAC;AAGD,sBAAY,WAAW,KAAK,MAAM,IAAI;AAEtC,gBAAM,QAAQ,KAAK,OAAO,YAAY;AACtC,gBAAM,MAAM,MAAM,IAAI;AAAA,QACvB;AAEA,cAAM,YAAY;AAClB,cAAM,YAAY,YAAY,UAAU;AACxC,cAAM,QAAQ,YAAY,YAAY,SAAS;AAC/C,cAAM,SAAS;AACf,cAAM,UAAU,YAAY;AAE5B,eAAO,eAAe,OAAO,WAAW;AAAA,UACvC,YAAY;AAAA,UACZ,cAAc;AAAA,UACd,KAAK,MAAM;AACV,gBAAI,mBAAmB,MAAM;AAC5B,qBAAO;AAAA,YACR;AACA,gBAAI,oBAAoB,YAAY,YAAY;AAC/C,gCAAkB,YAAY;AAC9B,6BAAe,YAAY,QAAQ,SAAS;AAAA,YAC7C;AAEA,mBAAO;AAAA,UACR;AAAA,UACA,KAAK,OAAK;AACT,6BAAiB;AAAA,UAClB;AAAA,QACD,CAAC;AAGD,YAAI,OAAO,YAAY,SAAS,YAAY;AAC3C,sBAAY,KAAK,KAAK;AAAA,QACvB;AAEA,eAAO;AAAA,MACR;AAEA,eAAS,OAAO,WAAW,WAAW;AACrC,cAAM,WAAW,YAAY,KAAK,aAAa,OAAO,cAAc,cAAc,MAAM,aAAa,SAAS;AAC9G,iBAAS,MAAM,KAAK;AACpB,eAAO;AAAA,MACR;AASA,eAAS,OAAO,YAAY;AAC3B,oBAAY,KAAK,UAAU;AAC3B,oBAAY,aAAa;AAEzB,oBAAY,QAAQ,CAAC;AACrB,oBAAY,QAAQ,CAAC;AAErB,cAAM,SAAS,OAAO,eAAe,WAAW,aAAa,IAC3D,KAAK,EACL,QAAQ,QAAQ,GAAG,EACnB,MAAM,GAAG,EACT,OAAO,OAAO;AAEhB,mBAAW,MAAM,OAAO;AACvB,cAAI,GAAG,CAAC,MAAM,KAAK;AAClB,wBAAY,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC;AAAA,UACnC,OAAO;AACN,wBAAY,MAAM,KAAK,EAAE;AAAA,UAC1B;AAAA,QACD;AAAA,MACD;AAUA,eAAS,gBAAgB,QAAQ,UAAU;AAC1C,YAAI,cAAc;AAClB,YAAI,gBAAgB;AACpB,YAAI,YAAY;AAChB,YAAI,aAAa;AAEjB,eAAO,cAAc,OAAO,QAAQ;AACnC,cAAI,gBAAgB,SAAS,WAAW,SAAS,aAAa,MAAM,OAAO,WAAW,KAAK,SAAS,aAAa,MAAM,MAAM;AAE5H,gBAAI,SAAS,aAAa,MAAM,KAAK;AACpC,0BAAY;AACZ,2BAAa;AACb;AAAA,YACD,OAAO;AACN;AACA;AAAA,YACD;AAAA,UACD,WAAW,cAAc,IAAI;AAE5B,4BAAgB,YAAY;AAC5B;AACA,0BAAc;AAAA,UACf,OAAO;AACN,mBAAO;AAAA,UACR;AAAA,QACD;AAGA,eAAO,gBAAgB,SAAS,UAAU,SAAS,aAAa,MAAM,KAAK;AAC1E;AAAA,QACD;AAEA,eAAO,kBAAkB,SAAS;AAAA,MACnC;AAQA,eAAS,UAAU;AAClB,cAAM,aAAa;AAAA,UAClB,GAAG,YAAY;AAAA,UACf,GAAG,YAAY,MAAM,IAAI,eAAa,MAAM,SAAS;AAAA,QACtD,EAAE,KAAK,GAAG;AACV,oBAAY,OAAO,EAAE;AACrB,eAAO;AAAA,MACR;AASA,eAAS,QAAQ,MAAM;AACtB,mBAAW,QAAQ,YAAY,OAAO;AACrC,cAAI,gBAAgB,MAAM,IAAI,GAAG;AAChC,mBAAO;AAAA,UACR;AAAA,QACD;AAEA,mBAAW,MAAM,YAAY,OAAO;AACnC,cAAI,gBAAgB,MAAM,EAAE,GAAG;AAC9B,mBAAO;AAAA,UACR;AAAA,QACD;AAEA,eAAO;AAAA,MACR;AASA,eAAS,OAAO,KAAK;AACpB,YAAI,eAAe,OAAO;AACzB,iBAAO,IAAI,SAAS,IAAI;AAAA,QACzB;AACA,eAAO;AAAA,MACR;AAMA,eAAS,UAAU;AAClB,gBAAQ,KAAK,uIAAuI;AAAA,MACrJ;AAEA,kBAAY,OAAO,YAAY,KAAK,CAAC;AAErC,aAAO;AAAA,IACR;AAEA,WAAO,UAAU;AAAA;AAAA;;;ACnSjB,IAAAC,mBAAA;AAAA;AAMA,YAAQ,aAAa;AACrB,YAAQ,OAAO;AACf,YAAQ,OAAO;AACf,YAAQ,YAAY;AACpB,YAAQ,UAAU,aAAa;AAC/B,YAAQ,UAAW,uBAAM;AACxB,UAAI,SAAS;AAEb,aAAO,MAAM;AACZ,YAAI,CAAC,QAAQ;AACZ,mBAAS;AACT,kBAAQ,KAAK,uIAAuI;AAAA,QACrJ;AAAA,MACD;AAAA,IACD,GAAG;AAMH,YAAQ,SAAS;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAWA,aAAS,YAAY;AAIpB,UAAI,OAAO,WAAW,eAAe,OAAO,YAAY,OAAO,QAAQ,SAAS,cAAc,OAAO,QAAQ,SAAS;AACrH,eAAO;AAAA,MACR;AAGA,UAAI,OAAO,cAAc,eAAe,UAAU,aAAa,UAAU,UAAU,YAAY,EAAE,MAAM,uBAAuB,GAAG;AAChI,eAAO;AAAA,MACR;AAEA,UAAI;AAKJ,aAAQ,OAAO,aAAa,eAAe,SAAS,mBAAmB,SAAS,gBAAgB,SAAS,SAAS,gBAAgB,MAAM;AAAA,MAEtI,OAAO,WAAW,eAAe,OAAO,YAAY,OAAO,QAAQ,WAAY,OAAO,QAAQ,aAAa,OAAO,QAAQ;AAAA;AAAA,MAG1H,OAAO,cAAc,eAAe,UAAU,cAAc,IAAI,UAAU,UAAU,YAAY,EAAE,MAAM,gBAAgB,MAAM,SAAS,EAAE,CAAC,GAAG,EAAE,KAAK;AAAA,MAEpJ,OAAO,cAAc,eAAe,UAAU,aAAa,UAAU,UAAU,YAAY,EAAE,MAAM,oBAAoB;AAAA,IAC1H;AAQA,aAAS,WAAW,MAAM;AACzB,WAAK,CAAC,KAAK,KAAK,YAAY,OAAO,MAClC,KAAK,aACJ,KAAK,YAAY,QAAQ,OAC1B,KAAK,CAAC,KACL,KAAK,YAAY,QAAQ,OAC1B,MAAM,OAAO,QAAQ,SAAS,KAAK,IAAI;AAExC,UAAI,CAAC,KAAK,WAAW;AACpB;AAAA,MACD;AAEA,YAAM,IAAI,YAAY,KAAK;AAC3B,WAAK,OAAO,GAAG,GAAG,GAAG,gBAAgB;AAKrC,UAAI,QAAQ;AACZ,UAAI,QAAQ;AACZ,WAAK,CAAC,EAAE,QAAQ,eAAe,WAAS;AACvC,YAAI,UAAU,MAAM;AACnB;AAAA,QACD;AACA;AACA,YAAI,UAAU,MAAM;AAGnB,kBAAQ;AAAA,QACT;AAAA,MACD,CAAC;AAED,WAAK,OAAO,OAAO,GAAG,CAAC;AAAA,IACxB;AAUA,YAAQ,MAAM,QAAQ,SAAS,QAAQ,QAAQ,MAAM;AAAA,IAAC;AAQtD,aAAS,KAAK,YAAY;AACzB,UAAI;AACH,YAAI,YAAY;AACf,kBAAQ,QAAQ,QAAQ,SAAS,UAAU;AAAA,QAC5C,OAAO;AACN,kBAAQ,QAAQ,WAAW,OAAO;AAAA,QACnC;AAAA,MACD,SAAS,OAAO;AAAA,MAGhB;AAAA,IACD;AAQA,aAAS,OAAO;AACf,UAAI;AACJ,UAAI;AACH,YAAI,QAAQ,QAAQ,QAAQ,OAAO,KAAK,QAAQ,QAAQ,QAAQ,OAAO;AAAA,MACxE,SAAS,OAAO;AAAA,MAGhB;AAGA,UAAI,CAAC,KAAK,OAAO,YAAY,eAAe,SAAS,SAAS;AAC7D,YAAI,QAAQ,IAAI;AAAA,MACjB;AAEA,aAAO;AAAA,IACR;AAaA,aAAS,eAAe;AACvB,UAAI;AAGH,eAAO;AAAA,MACR,SAAS,OAAO;AAAA,MAGhB;AAAA,IACD;AAEA,WAAO,UAAU,iBAAoB,OAAO;AAE5C,QAAM,EAAC,WAAU,IAAI,OAAO;AAM5B,eAAW,IAAI,SAAU,GAAG;AAC3B,UAAI;AACH,eAAO,KAAK,UAAU,CAAC;AAAA,MACxB,SAAS,OAAO;AACf,eAAO,iCAAiC,MAAM;AAAA,MAC/C;AAAA,IACD;AAAA;AAAA;;;AC/QA;AAAA;AAAA,QAAM,MAAM;AACZ,QAAM,SAAS;AACf,QAAM,UAAU;AAChB,QAAM,UAAU;AAChB,QAAM,YAAY;AAClB,QAAM,SAAS;AACf,QAAM,UAAU;AAChB,QAAM,EAAE,OAAO,IAAI,UAAQ,SAAS;AACpC,QAAM,QAAQ,mBAAiB,oBAAoB;AAEnD,QAAM,kBAAN,cAA8B,QAAQ;AAAA,MACpC,KAAM,SAAS;AACb,cAAM,SAAS,KAAK,MAAM;AAC1B,YAAI,OAAO,aAAa,KAAK,MAAM,SAAS;AAC1C,iBAAO,WAAW,KAAK,MAAM;AAC7B,iBAAO,MAAM,QAAQ,GAAG,EAAE,YAAY,KAAK,MAAM,MAAM,EAAE,CAAC;AAAA,QAC5D;AACA,eAAO,OAAO,MAAM,UAAU,GAAG,KAAK,IAAI,KAAK,OAAO,OAAO,CAAC;AAAA,MAChE;AAAA,IACF;AAEA,QAAM,cAAN,MAAkB;AAAA,MAChB,YAAa,QAAQ,EAAE,WAAW,OAAO,QAAQ,GAAG;AAClD,aAAK,SAAS;AACd,aAAK,UAAU,oBAAI,IAAI;AACvB,aAAK,QAAQ,CAAC,IAAI;AAClB,aAAK,SAAS,CAAC,IAAI;AACnB,aAAK,QAAQ,EAAE,UAAU,SAAS,cAAc;AAChD,aAAK,YAAY,cAAc;AAC/B,aAAK,UAAU;AAAA,MACjB;AAAA,MAEA,aAAc;AACZ,cAAM,KAAK,KAAK,MAAM,QAAQ,IAAI;AAClC,YAAI,KAAK,EAAG,QAAO;AACnB,aAAK,MAAM,KAAK,IAAI;AACpB,eAAO,KAAK,MAAM,SAAS;AAAA,MAC7B;AAAA,MAEA,YAAa,IAAI;AACf,cAAM,KAAK,KAAK,WAAW;AAC3B,aAAK,MAAM,EAAE,IAAI;AACjB,WAAG,UAAU;AAAA,MACf;AAAA,MAEA,aAAc,IAAI,IAAI;AACpB,YAAI,KAAK,OAAO,WAAW,GAAI,MAAK,OAAO,KAAK,IAAI;AACpD,aAAK,OAAO,EAAE,IAAI;AAClB,WAAG,WAAW;AAAA,MAChB;AAAA,MAEA,cAAe,IAAI;AACjB,YAAI,GAAG,UAAU,MAAM,KAAK,MAAM,GAAG,OAAO,MAAM,IAAI;AACpD,eAAK,MAAM,GAAG,OAAO,IAAI;AACzB,aAAG,UAAU;AACb,cAAI,GAAG,YAAY,GAAG,SAAS,QAAS,IAAG,SAAS,QAAQ;AAAA,QAC9D;AACA,YAAI,GAAG,WAAW,MAAM,KAAK,OAAO,GAAG,QAAQ,MAAM,IAAI;AACvD,eAAK,OAAO,GAAG,QAAQ,IAAI;AAAA,QAC7B;AAEA,cAAM,MAAM,GAAG,aAAa,SAAS,KAAK;AAC1C,YAAI,KAAK,QAAQ,IAAI,GAAG,MAAM,GAAI,MAAK,QAAQ,OAAO,GAAG;AAAA,MAC3D;AAAA,MAEA,WAAY,IAAI;AACd,eAAO,KAAK,QAAQ,IAAI,GAAG,SAAS,KAAK,CAAC;AAAA,MAC5C;AAAA,MAEA,cAAe,IAAI;AACjB,cAAM,MAAM,GAAG,SAAS,KAAK;AAE7B,cAAM,MAAM,KAAK,QAAQ,IAAI,GAAG;AAChC,YAAI,IAAK,QAAO;AAEhB,cAAM,QAAQ,IAAI,QAAQ,KAAK,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC5D,aAAK,QAAQ,IAAI,KAAK,KAAK;AAC3B,eAAO;AAAA,MACT;AAAA,MAEA,eAAgB,KAAK,MAAM;AACzB,YAAI,KAAK,OAAO,YAAY,KAAK,OAAO,SAAS,eAAgB,MAAK,OAAO,SAAS,eAAe,KAAK,IAAI;AAAA,YACzG,MAAK,IAAI;AAAA,MAChB;AAAA,MAEA,cAAe;AACb,cAAM,gBAAgB;AACtB,YAAI,KAAK,OAAO,YAAY,KAAK,OAAO,SAAS,YAAa,MAAK,OAAO,SAAS,YAAY;AAC/F,aAAK,OAAO,KAAK,WAAW;AAAA,MAC9B;AAAA,MAEA,OAAQ,WAAW,SAAS;AAC1B,cAAM,aAAa,WAAW,OAAO;AACrC,cAAM,KAAK,KAAK,cAAc,QAAQ,YAAY;AAClD,WAAG,mBAAmB,QAAQ;AAC9B,aAAK,aAAa,IAAI,SAAS;AAC/B,YAAI,GAAG,YAAY,IAAI;AACrB,cAAI,KAAK,OAAO,SAAS,eAAgB,MAAK,OAAO,SAAS,eAAe,GAAG,YAAY;AAC5F,eAAK,OAAO,KAAK,iBAAiB,GAAG,YAAY;AAAA,QACnD,OAAO;AACL,cAAI,KAAK,SAAS,CAAC,GAAG,gBAAgB;AAIpC,iBAAK,OAAO,QAAQ,IAAI,MAAM,mCAAmC,CAAC;AAClE;AAAA,UACF;AACA,eAAK,OAAO,KAAK,kBAAkB,EAAE;AAAA,QACvC;AACA,YAAI,GAAG,YAAY,GAAG,SAAS,OAAQ,IAAG,SAAS,OAAO;AAE1D,YAAI,KAAK,OAAO,SAAS,aAAc,MAAK,OAAO,SAAS,aAAa,GAAG,YAAY;AACxF,aAAK,OAAO,KAAK,eAAe,GAAG,YAAY;AAAA,MACjD;AAAA,MAEA,UAAW,WAAW,SAAS;AAC7B,cAAM,gBAAgB,WAAW,OAAO;AACxC,cAAM,KAAK,KAAK,OAAO,SAAS;AAChC,YAAI,MAAM,GAAG,YAAY,GAAG,SAAS,UAAW,IAAG,SAAS,UAAU,OAAO;AAAA,iBACpE,cAAc,KAAK,CAAC,GAAI,MAAK,OAAO,kBAAkB,QAAQ,UAAU;AAAA,MACnF;AAAA,MAEA,SAAU,WAAW,SAAS;AAC5B,cAAM,eAAe,WAAW,OAAO;AACvC,cAAM,KAAK,KAAK,OAAO,SAAS;AAChC,YAAI,MAAM,GAAG,YAAY,GAAG,SAAS,SAAU,IAAG,SAAS,SAAS,OAAO;AAAA,MAC7E;AAAA,MAEA,OAAQ,WAAW,SAAS;AAC1B,cAAM,aAAa,WAAW,OAAO;AACrC,cAAM,KAAK,KAAK,OAAO,SAAS;AAChC,YAAI,MAAM,GAAG,YAAY,GAAG,SAAS,OAAQ,IAAG,SAAS,OAAO,OAAO;AAAA,MACzE;AAAA,MAEA,SAAU,WAAW,SAAS;AAC5B,cAAM,eAAe,WAAW,OAAO;AACvC,cAAM,KAAK,KAAK,OAAO,SAAS;AAChC,YAAI,MAAM,GAAG,YAAY,GAAG,SAAS,SAAU,IAAG,SAAS,SAAS,OAAO;AAAA,MAC7E;AAAA,MAEA,OAAQ,WAAW,SAAS;AAC1B,cAAM,aAAa,WAAW,OAAO;AACrC,cAAM,KAAK,KAAK,OAAO,SAAS;AAChC,YAAI,MAAM,GAAG,YAAY,GAAG,SAAS,OAAQ,IAAG,SAAS,OAAO,OAAO;AAAA,MACzE;AAAA,MAEA,SAAU,WAAW,SAAS;AAC5B,cAAM,eAAe,WAAW,OAAO;AACvC,cAAM,KAAK,KAAK,OAAO,SAAS;AAChC,YAAI,MAAM,GAAG,YAAY,GAAG,SAAS,SAAU,IAAG,SAAS,SAAS,OAAO;AAAA,MAC7E;AAAA,MAEA,UAAW,WAAW,SAAS;AAC7B,cAAM,gBAAgB,WAAW,OAAO;AACxC,cAAM,KAAK,KAAK,OAAO,SAAS;AAChC,YAAI,MAAM,GAAG,YAAY,GAAG,SAAS,UAAW,IAAG,SAAS,UAAU,OAAO;AAAA,MAC/E;AAAA,MAEA,SAAU,WAAW,SAAS;AAC5B,cAAM,eAAe,WAAW,OAAO;AACvC,cAAM,KAAK,KAAK,OAAO,SAAS;AAChC,YAAI,MAAM,GAAG,YAAY,GAAG,SAAS,SAAU,IAAG,SAAS,SAAS,OAAO;AAAA,MAC7E;AAAA,MAEA,OAAQ,WAAW,SAAS;AAC1B,cAAM,aAAa,WAAW,OAAO;AACrC,cAAM,KAAK,KAAK,OAAO,SAAS;AAChC,YAAI,MAAM,GAAG,YAAY,GAAG,SAAS,OAAQ,IAAG,SAAS,OAAO,OAAO;AAAA,MACzE;AAAA,MAEA,YAAa,WAAW,IAAI,KAAK;AAC/B,cAAM,kBAAkB,WAAW,EAAE;AACrC,cAAM,KAAK,KAAK,OAAO,SAAS;AAChC,YAAI,MAAM,GAAG,YAAY,GAAG,SAAS,YAAa,IAAG,SAAS,YAAY,IAAI,GAAG;AAAA,iBACxE,cAAc,KAAK,CAAC,GAAI,MAAK,OAAO,iBAAiB,UAAU,IAAI,GAAG;AAAA,MACjF;AAAA,MAEA,QAAS,WAAW,SAAS;AAC3B,cAAM,cAAc,WAAW,OAAO;AACtC,YAAI,KAAK,YAAY,KAAK,OAAO,SAAS,KAAK,OAAO,SAAS,IAAI;AAEnE,YAAI,IAAI;AACN,eAAK,OAAO,SAAS,IAAI;AAAA,QAC3B,WAAW,QAAQ,cAAc;AAC/B,eAAK,KAAK,WAAW,QAAQ,YAAY;AAAA,QAC3C;AAEA,YAAI,CAAC,GAAI;AAET,YAAI,GAAG,UAAU,MAAM,KAAK,MAAM,GAAG,OAAO,MAAM,IAAI;AACpD,eAAK,MAAM,GAAG,OAAO,IAAI;AACzB,aAAG,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;AAC7B,aAAG,UAAU;AACb,cAAI,GAAG,YAAY,GAAG,SAAS,QAAS,IAAG,SAAS,QAAQ;AAAA,QAC9D;AAEA,YAAI,KAAK,OAAO,YAAY,KAAK,OAAO,SAAS,gBAAgB;AAC/D,eAAK,OAAO,SAAS,eAAe,GAAG,cAAc,GAAG,GAAG;AAAA,QAC7D;AAEA,cAAM,MAAM,GAAG,aAAa,SAAS,KAAK;AAC1C,YAAI,KAAK,QAAQ,IAAI,GAAG,MAAM,GAAI,MAAK,QAAQ,OAAO,GAAG;AACzD,aAAK,OAAO,aAAa;AAAA,MAC3B;AAAA,MAEA,UAAW,OAAO;AAChB,YAAI,KAAK,OAAO,SAAS,KAAM;AAC/B,aAAK,OAAO,KAAK,eAAe,KAAK;AAAA,MACvC;AAAA;AAAA,MAGA,KAAM,MAAM;AACV,YAAI,KAAK,OAAO,cAAc,KAAM,MAAK,OAAO,UAAU,QAAQ;AAClE,aAAK,OAAO,aAAa,KAAK;AAC9B,eAAO,KAAK,OAAO,KAAK,IAAI;AAAA,MAC9B;AAAA;AAAA,MAGA,QAAS,KAAK;AACZ,aAAK,OAAO,QAAQ,GAAG;AACvB,aAAK,QAAQ,CAAC;AACd,aAAK,SAAS,CAAC;AACf,mBAAW,MAAM,KAAK,QAAQ,OAAO,GAAG;AACtC,gBAAM,SAAS,GAAG,YAAY;AAC9B,aAAG,UAAU,GAAG,WAAW;AAC3B,cAAI,CAAC,UAAU,GAAG,YAAY,GAAG,SAAS,QAAS,IAAG,SAAS,QAAQ;AAEvE,cAAI,KAAK,OAAO,YAAY,KAAK,OAAO,SAAS,gBAAgB;AAC/D,iBAAK,OAAO,SAAS,eAAe,GAAG,cAAc,GAAG,GAAG;AAAA,UAC7D;AAAA,QACF;AACA,aAAK,QAAQ,MAAM;AAAA,MACrB;AAAA,IACF;AAEA,QAAM,UAAN,MAAc;AAAA,MACZ,YAAa,OAAO,QAAQ,IAAI;AAC9B,aAAK,MAAM;AACX,aAAK,eAAe;AACpB,aAAK,UAAU;AACf,aAAK,WAAW;AAChB,aAAK,mBAAmB;AACxB,aAAK,WAAW;AAChB,aAAK,QAAQ;AACb,aAAK,SAAS;AAAA,MAChB;AAAA,MAEA,IAAI,SAAU;AACZ,eAAO,KAAK,UAAU;AAAA,MACxB;AAAA,MAEA,IAAI,SAAU;AACZ,eAAO,KAAK,YAAY;AAAA,MAC1B;AAAA,MAEA,IAAI,eAAgB;AAClB,eAAO,KAAK,WAAW;AAAA,MACzB;AAAA,MAEA,IAAI,iBAAkB;AACpB,eAAO,KAAK,UAAU,MACpB,KAAK,WAAW,MAChB,CAAC,CAAC,KAAK,oBACP,KAAK,iBAAiB,OAAO,KAAK,MAAM,iBAAiB,KAAK,GAAG,CAAC;AAAA,MACtE;AAAA,MAEA,QAAS,SAAS;AAChB,cAAM,gBAAgB,OAAO;AAC7B,eAAO,KAAK,MAAM,QAAQ,KAAK,SAAS,OAAO;AAAA,MACjD;AAAA,MAEA,OAAQ,SAAS;AACf,cAAM,eAAe,OAAO;AAC5B,eAAO,KAAK,MAAM,OAAO,KAAK,SAAS,OAAO;AAAA,MAChD;AAAA,MAEA,KAAM,SAAS;AACb,cAAM,aAAa,OAAO;AAC1B,eAAO,KAAK,MAAM,KAAK,KAAK,SAAS,OAAO;AAAA,MAC9C;AAAA,MAEA,OAAQ,SAAS;AACf,cAAM,eAAe,OAAO;AAC5B,eAAO,KAAK,MAAM,OAAO,KAAK,SAAS,OAAO;AAAA,MAChD;AAAA,MAEA,KAAM,SAAS;AACb,cAAM,aAAa,OAAO;AAC1B,eAAO,KAAK,MAAM,KAAK,KAAK,SAAS,OAAO;AAAA,MAC9C;AAAA,MAEA,OAAQ,SAAS;AACf,cAAM,eAAe,OAAO;AAC5B,eAAO,KAAK,MAAM,OAAO,KAAK,SAAS,OAAO;AAAA,MAChD;AAAA,MAEA,QAAS,SAAS;AAChB,cAAM,gBAAgB,OAAO;AAC7B,eAAO,KAAK,MAAM,QAAQ,KAAK,SAAS,OAAO;AAAA,MACjD;AAAA,MAEA,OAAQ,SAAS;AACf,cAAM,eAAe,OAAO;AAC5B,eAAO,KAAK,MAAM,OAAO,KAAK,SAAS,OAAO;AAAA,MAChD;AAAA,MAEA,KAAM,SAAS;AACb,cAAM,aAAa,OAAO;AAC1B,eAAO,KAAK,MAAM,KAAK,KAAK,SAAS,OAAO;AAAA,MAC9C;AAAA,MAEA,UAAW,IAAI,KAAK;AAClB,cAAM,kBAAkB,EAAE;AAC1B,eAAO,KAAK,MAAM,UAAU,KAAK,SAAS,IAAI,GAAG;AAAA,MACnD;AAAA,MAEA,QAAS;AACP,cAAM,YAAY;AAClB,YAAI,KAAK,OAAQ;AAEjB,cAAM,UAAU,KAAK;AACrB,aAAK,OAAO,YAAY,cAAc,IAAI;AAC1C,aAAK,MAAM,MAAM,SAAS,CAAC,CAAC;AAC5B,aAAK,OAAO,aAAa;AAAA,MAC3B;AAAA,MAEA,QAAS,KAAK;AACZ,aAAK,OAAO,QAAQ,GAAG;AAAA,MACzB;AAAA,IACF;AAEA,WAAO,UAAU,MAAM,uBAAuB,OAAO;AAAA,MACnD,YAAa,WAAW,WAAW,CAAC,GAAG;AACrC,cAAM;AAEN,YAAI,OAAO,cAAc,UAAW,OAAM,IAAI,MAAM,sDAAsD;AAE1G,aAAK,YAAY;AACjB,aAAK,WAAW;AAChB,aAAK,cAAc,IAAI,YAAY,MAAM;AAAA,UACvC,WAAW,SAAS;AAAA,UACpB,OAAO,SAAS;AAAA,UAChB,SAAS,SAAS;AAAA,QACpB,CAAC;AACD,aAAK,QAAQ,IAAI,IAAI,WAAW,KAAK,WAAW;AAChD,aAAK,OAAO,CAAC,CAAC,SAAS;AACvB,aAAK,UAAU;AACf,aAAK,YAAY;AACjB,aAAK,cAAc,IAAI,UAAU;AACjC,aAAK,YAAY;AACjB,aAAK,gBAAgB;AACrB,aAAK,aAAa,gBAAgB,YAAY,IAAI;AAClD,aAAK,mBAAmB,KAAK,WAAW,OAAO;AAE/C,aAAK,OAAO;AACZ,aAAK,WAAW;AAEhB,aAAK,KAAK,UAAU,KAAK,KAAK,KAAK,MAAM,IAAI,CAAC;AAC9C,aAAK,GAAG,QAAQ,KAAK,OAAO;AAE5B,YAAI,SAAS,YAAY,SAAS,SAAS,YAAY,GAAG;AACxD,gBAAMC,WAAU,SAAS,WAAW;AACpC,eAAK,WAAWA,UAAS,MAAM,KAAK,QAAQ,IAAI,MAAM,WAAW,CAAC,CAAC;AACnE,eAAK,aAAa,KAAK,KAAKA,WAAU,CAAC,CAAC;AAAA,QAC1C;AAAA,MACF;AAAA,MAEA,kBAAmB,MAAM,UAAU;AACjC,eAAO,KAAK,WAAW,IAAI,MAAM,QAAQ;AAAA,MAC3C;AAAA,MAEA,CAAC,OAAO,EAAG,OAAO,MAAM;AACtB,YAAI,SAAS;AACb,YAAI,OAAO,KAAK,mBAAmB,UAAU;AAC3C,iBAAO,OAAO,SAAS,KAAK,eAAgB,WAAU;AAAA,QACxD;AAEA,eAAO,+BACL,SAAS,kBAAkB,KAAK,QAAS,KAAK,aAAa,OAAO,KAAK,SAAS,GAAI,QAAQ,IAAI,OAChG,SAAS,wBAAwB,KAAK,QAAS,KAAK,mBAAmB,OAAO,KAAK,eAAe,GAAI,QAAQ,IAAI,OAClH,SAAS,sBAAsB,KAAK,QAAQ,KAAK,eAAe,QAAQ,IAAI,OAC5E,SAAS,mBAAmB,KAAK,QAAQ,KAAK,YAAY,QAAQ,IAAI,OACtE,SAAS,aAAa,KAAK,QAAQ,KAAK,MAAM,SAAS,IAAI,OAC3D,SAAS,kBAAkB,KAAK,QAAQ,KAAK,WAAW,SAAS,IAAI,OACrE,SAAS,qBAAqB,KAAK,QAAQ,KAAK,cAAc,QAAQ,IAAI,OAC1E,SAAS,kBAAkB,KAAK,QAAQ,KAAK,WAAW,SAAS,IAAI,OACrE,SAAS,qBAAqB,KAAK,QAAQ,CAAC,KAAK,YAAY,SAAS,SAAS,IAAI,OACnF,SAAS,kBAAkB,KAAK,QAAQ,KAAK,WAAW,QAAQ,IAAI,OACpE,SAAS,sBAAsB,KAAK,QAAQ,KAAK,eAAe,QAAQ,IAAI,OAC5E,SAAS;AAAA,MACb;AAAA,MAEA,OAAO,iBAAkB,GAAG;AAC1B,eAAO,CAAC,EAAE,KAAK,OAAO,EAAE,cAAc,aAAa,OAAO,EAAE,SAAS,cAAc,EAAE;AAAA,MACvF;AAAA,MAEA,OAAO,QAAS,MAAM;AACpB,eAAO,IAAI,QAAQ,IAAI;AAAA,MACzB;AAAA,MAEA,IAAI,gBAAiB;AACnB,cAAM,KAAK,KAAK,eAAe;AAC/B,YAAI,CAAC,GAAI,QAAO;AAChB,YAAI,eAAe,iBAAiB,EAAE,EAAG,QAAO;AAChD,eAAO,GAAG;AAAA,MACZ;AAAA,MAEA,IAAI,aAAc;AAChB,cAAM,KAAK,KAAK,eAAe;AAC/B,YAAI,CAAC,GAAI,QAAO;AAChB,YAAI,GAAG,KAAM,QAAO;AACpB,YAAI,GAAG,cAAe,QAAO;AAC7B,eAAO;AAAA,MACT;AAAA,MAEA,IAAI,YAAa;AACf,eAAO,KAAK,MAAM;AAAA,MACpB;AAAA,MAEA,IAAI,kBAAmB;AACrB,eAAO,KAAK,MAAM;AAAA,MACpB;AAAA,MAEA,QAAS,MAAM;AACb,YAAI,OAAO,KAAK,mBAAmB,WAAY,MAAK,OAAO;AAAA,MAC7D;AAAA,MAEA,OAAQ,MAAM,IAAI;AAChB,YAAI,KAAK,YAAY,KAAM,MAAK,QAAQ,QAAQ;AAChD,aAAK,iBAAiB,KAAK;AAC3B,aAAK,MAAM,KAAK,IAAI;AACpB,WAAG,IAAI;AAAA,MACT;AAAA,MAEA,SAAU,IAAI;AACZ,aAAK,YAAY;AACjB,aAAK,YAAY,QAAQ;AACzB,aAAK,MAAM,QAAQ;AACnB,WAAG,IAAI;AAAA,MACT;AAAA,MAEA,cAAe;AACb,YAAI,KAAK,YAAY,MAAM;AACzB,eAAK,QAAQ,QAAQ;AACrB,eAAK,UAAU;AAAA,QACjB;AACA,YAAI,KAAK,cAAc,MAAM;AAC3B,eAAK,UAAU,QAAQ;AACvB,eAAK,YAAY;AAAA,QACnB;AACA,aAAK,YAAY,QAAQ;AAAA,MAC3B;AAAA,MAEA,eAAgB;AACd,aAAK,KAAK,aAAa;AACvB,aAAK,YAAY,MAAM,MAAM;AAC3B,cAAI,KAAK,UAAW;AACpB,cAAI,KAAK,aAAc;AACvB,cAAI,KAAK,KAAM;AACf,eAAK,SAAS;AAAA,QAChB,CAAC;AAAA,MACH;AAAA,MAEA,kBAAmB,OAAO;AACxB,aAAK,iBAAiB,OAAO,KAAK;AAClC,YAAI,KAAK,SAAS,aAAc,MAAK,SAAS,aAAa,KAAK;AAChE,aAAK,KAAK,cAAc,KAAK;AAAA,MAC/B;AAAA,MAEA,aAAc,KAAK;AACjB,cAAM,KAAK,KAAK,YAAY,WAAW,OAAO,aAAa,GAAG,CAAC;AAC/D,eAAO,CAAC,EAAE,MAAM,GAAG,WAAW;AAAA,MAChC;AAAA,MAEA,eAAgB,KAAK;AACnB,cAAM,KAAK,KAAK,YAAY,WAAW,OAAO,aAAa,GAAG,CAAC;AAC/D,eAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,oBAAoB,GAAG,iBAAiB,OAAO,KAAK,MAAM,iBAAiB,GAAG,CAAC;AAAA,MACrG;AAAA,MAEA,OAAQ,KAAK;AACX,cAAM,KAAK,KAAK,YAAY,WAAW,OAAO,aAAa,GAAG,CAAC;AAC/D,eAAO,CAAC,EAAE,MAAM,GAAG,UAAU;AAAA,MAC/B;AAAA,MAEA,OAAQ;AACN,eAAO,KAAK,MAAM,KAAK;AAAA,MACzB;AAAA,MAEA,aAAc,IAAI;AAChB,YAAI,KAAK,UAAW,MAAK,UAAU,QAAQ;AAC3C,YAAI,CAAC,IAAI;AACP,eAAK,YAAY;AACjB;AAAA,QACF;AACA,aAAK,YAAY,QAAQ,IAAI,MAAM,IAAI;AAEvC,iBAAS,OAAQ;AACf,eAAK,KAAK;AACV,eAAK,YAAY,QAAQ,IAAI,MAAM,IAAI;AAAA,QACzC;AAAA,MACF;AAAA,MAEA,WAAY,IAAI,WAAW;AACzB,YAAI,KAAK,QAAS,MAAK,QAAQ,QAAQ;AACvC,YAAI,CAAC,IAAI;AACP,eAAK,UAAU;AACf;AAAA,QACF;AACA,aAAK,UAAU,QAAQ,IAAI,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AAC1D,YAAI,UAAW,MAAK,KAAK,WAAW,SAAS;AAAA,MAC/C;AAAA,MAEA,IAAI,eAAgB;AAClB,eAAO,KAAK,YAAY,QAAQ;AAAA,MAClC;AAAA,MAEA,IAAI,WAAY;AACd,eAAO,KAAK,YAAY,QAAQ,OAAO;AAAA,MACzC;AAAA,MAEA,KAAM,KAAK,UAAU;AACnB,cAAM,eAAe,OAAO,aAAa,GAAG;AAC5C,cAAM,KAAK,KAAK,YAAY,cAAc,YAAY;AAEtD,YAAI,GAAG,QAAQ,MAAM;AACnB,aAAG,MAAM;AACT,eAAK,YAAY,YAAY,EAAE;AAC/B,eAAK,MAAM,KAAK,GAAG,SAAS,EAAE,KAAK,aAAa,CAAC;AAAA,QACnD;AAEA,YAAI,SAAU,IAAG,WAAW;AAE5B,YAAI,GAAG,WAAW,GAAI,MAAK,KAAK,kBAAkB,EAAE;AAEpD,eAAO;AAAA,MACT;AAAA,MAEA,MAAO,cAAc;AACnB,cAAM,KAAK,KAAK,YAAY,WAAW,YAAY;AAEnD,YAAI,MAAM,GAAG,UAAU,IAAI;AACzB,aAAG,MAAM;AACT;AAAA,QACF;AAEA,aAAK,MAAM,MAAM,KAAK,YAAY,WAAW,GAAG,EAAE,aAAa,CAAC;AAAA,MAClE;AAAA,MAEA,WAAY;AACV,aAAK,KAAK,IAAI;AAAA,MAChB;AAAA,IACF;AAAA;AAAA;;;ACviBA;AAAA;AAAA,WAAO,UAAU,SAAS,GAAG;AAC3B,UAAI,IAAI;AACR,WAAK,CAAC;AACN,UAAI,EAAG;AACP,UAAI,IAAI,MAAY,MAAK;AACzB,UAAI,IAAI,SAAY,MAAK;AACzB,UAAI,IAAI,UAAY,MAAK;AACzB,UAAI,IAAI,UAAY,MAAK;AACzB,UAAI,IAAI,WAAY,MAAK;AACzB,aAAO;AAAA,IACT;AAAA;AAAA;;;ACVA;AAAA;AAAA;AAEA,QAAM,MAAM;AAEZ,WAAO,UAAU,MAAM,IAAI,SAAS;AAEpC,QAAM,OAAN,MAAW;AAAA,MACT,YAAa,OAAO;AAClB,cAAM,MAAM,IAAI,WAAW,QAAQ,OAAO,IAAI;AAC9C,cAAM,IAAI,IAAI;AAEd,aAAK,SAAS;AACd,aAAK,OAAO,QAAQ,OAAO,IAAI,YAAY,IAAI,QAAQ,GAAG,IAAI;AAC9D,aAAK,WAAW,QAAQ,IAAI,MAAM,KAAK,IAAI;AAC3C,aAAK,QAAQ;AAEb,aAAK,SAAS,QACV;AAAA,UACA,IAAI,YAAY,IAAI,QAAQ,GAAG,IAAI;AAAA,UACnC,IAAI,YAAY,IAAI,QAAQ,IAAI,MAAM,EAAE;AAAA,UACxC,IAAI,YAAY,IAAI,QAAQ,IAAI,MAAM,CAAC;AAAA,QACzC,IACE;AAAA,UACA,KAAK;AAAA,UACL,IAAI,YAAY,IAAI,QAAQ,IAAI,MAAM,EAAE;AAAA,UACxC,IAAI,YAAY,IAAI,QAAQ,IAAI,MAAM,CAAC;AAAA,QACzC;AAEF,aAAK,SAAS,QACV;AAAA,UACA,IAAI,YAAY,IAAI,QAAQ,IAAI,MAAM,IAAI;AAAA,UAC1C,IAAI,YAAY,IAAI,QAAQ,IAAI,MAAM,EAAE;AAAA,UACxC,IAAI,YAAY,IAAI,QAAQ,IAAI,MAAM,CAAC;AAAA,QACzC,IACE;AAAA,UACA,KAAK;AAAA,UACL,IAAI,YAAY,IAAI,QAAQ,IAAI,MAAM,EAAE;AAAA,UACxC,IAAI,YAAY,IAAI,QAAQ,IAAI,MAAM,CAAC;AAAA,QACzC;AAAA,MACJ;AAAA,IACF;AAEA,QAAM,QAAQ,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;AACjE,QAAM,OAAO,IAAI,YAAY,EAAE;AAC/B,QAAM,YAAY,IAAI,YAAY,EAAE;AAEpC,SAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,WAAK,CAAC,IAAI,KAAK,IAAI,GAAG,KAAK,CAAC,IAAI;AAChC,gBAAU,CAAC,IAAI,KAAK,IAAI,GAAG,KAAK,CAAC,IAAI;AAAA,IACvC;AAHS;AAKT,QAAM,gBAAgB,IAAI,WAAW,KAAK,QAAQ,KAAK,YAAY,CAAC,EAAE,CAAC,MAAM;AAE7E,QAAM,WAAN,MAAe;AAAA,MACb,cAAe;AACb,aAAK,SAAS;AACd,aAAK,eAAe;AAEpB,aAAK,QAAQ,IAAI,YAAY,CAAC;AAC9B,aAAK,WAAW,IAAI,YAAY,KAAK,MAAM,QAAQ,KAAK,MAAM,aAAa,GAAG,CAAC;AAC/E,aAAK,WAAW,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI;AACtC,aAAK,QAAQ,IAAI,KAAK,CAAC;AACvB,aAAK,UAAU;AAAA,MACjB;AAAA,MAEA,OAAQ;AACN,YAAI,OAAO,KAAK;AAChB,YAAI,IAAI;AAER,eAAO,MAAM;AACX,mBAASC,KAAI,GAAGA,MAAK,GAAGA,MAAK;AAC3B,kBAAM,IAAI,IAAI,KAAK,OAAOA,EAAC,EAAE,CAAC,CAAC;AAC/B,gBAAI,MAAM,GAAI,QAAO;AACrB,iBAAK,KAAK,MAAM,KAAK;AAAA,UACvB;AAEA,eAAK,MAAM,KAAK,KAAK,IAAI;AACzB,cAAI,CAAC,KAAK,MAAO,QAAO,SAAS,KAAK,KAAK;AAC3C,iBAAO,KAAK,SAAS,CAAC;AACtB,cAAI;AAAA,QACN;AAAA,MACF;AAAA,MAEA,IAAK,OAAO,KAAK;AACf,cAAM,OAAO,KAAK,SAAS,OAAO,GAAG;AACrC,YAAI,CAAC,KAAM,QAAO;AAElB,cAAMA,KAAI,KAAK,MAAM,CAAC;AACtB,cAAM,IAAIA,KAAI;AACd,cAAM,IAAIA,OAAM;AAChB,cAAM,OAAO,KAAK,KAAK,CAAC;AAExB,aAAK,KAAK,CAAC,IAAI,MACV,OAAQ,eAAe,IACvB,OAAO,EAAE,eAAe;AAE7B,cAAM,MAAM,KAAK,KAAK,CAAC;AACvB,YAAI,QAAQ,KAAM,QAAO;AAEzB,aAAK,cAAc,MAAM,GAAG,GAAG;AAC/B,aAAK,cAAc,MAAM,GAAG,GAAG;AAE/B,eAAO;AAAA,MACT;AAAA,MAEA,IAAK,OAAO;AACV,cAAM,OAAO,KAAK,SAAS,OAAO,KAAK;AACvC,YAAI,CAAC,KAAM,QAAO;AAElB,cAAMA,KAAI,KAAK,MAAM,CAAC;AACtB,cAAM,IAAIA,KAAI;AAEd,gBAAQ,KAAK,KAAKA,OAAM,CAAC,IAAK,eAAe,OAAQ;AAAA,MACvD;AAAA,MAEA,WAAY;AACV,eAAO,IAAI,SAAS,IAAI;AAAA,MAC1B;AAAA,MAEA,KAAM,KAAK,OAAO,KAAK;AACrB,YAAI,CAAC,MAAO,SAAQ;AACpB,YAAI,QAAQ,KAAM,QAAO,KAAK,SAAS,MAAM,OAAO,QAAQ,IAAI,MAAO,OAAO,KAAK,MAAO;AAC1F,YAAI,QAAQ,MAAO,QAAO,KAAK,SAAS,OAAO,OAAO,QAAQ,IAAI,MAAO,OAAO,KAAK,MAAO;AAC5F,aAAK,YAAY,KAAK,OAAO,QAAQ,IAAI,MAAO,OAAQ,QAAQ,IAAI,IAAI,MAAQ;AAAA,MAClF;AAAA,MAEA,OAAQ;AACN,YAAI,KAAK,MAAM,UAAU,EAAG,OAAM,IAAI,MAAM,wBAAwB,KAAK,MAAM;AAC/E,cAAM,OAAO,KAAK;AAClB,aAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,CAAC;AACpC,aAAK,MAAM,SAAS,CAAC,IAAI;AACzB,YAAI,KAAK,MAAM,UAAU,EAAG,MAAK,SAAS,OAAO;AAAA,YAC5C,MAAK,UAAU;AAAA,MACtB;AAAA,MAEA,YAAa,KAAK,OAAO,KAAK;AAC5B,YAAK,QAAQ,KAAO,MAAM,EAAI,OAAM,IAAI,MAAM,iCAAiC;AAE/E,iBAAS;AACT,eAAO,MAAM,KAAK,OAAQ,MAAK,KAAK;AACpC,eAAO;AAEP,cAAM,SAAS;AACf,YAAI,OAAO,KAAK,SAAS,IAAI,OAAO,IAAI;AAExC,eAAO,QAAQ,KAAK;AAClB,gBAAM,QAAQ,MAAM,QAAQ,OAAO,MAAM,QAAQ;AACjD,gBAAM,IAAI,QAAQ;AAElB,mBAAS,KAAK,eAAe,MAAM,IAAI,SAAS,GAAG,IAAI,KAAK,GAAG,QAAQ,IAAI;AAC3E,cAAI,UAAU,IAAK,QAAO,KAAK,UAAU,MAAM,IAAI,KAAK;AAAA,QAC1D;AAAA,MACF;AAAA,MAEA,SAAU,KAAK,OAAO,KAAK;AACzB,YAAI,OAAO,KAAK,SAAS,OAAO,GAAG;AAKnC,eAAO,QAAQ,KAAK;AAClB,gBAAM,QAAQ,MAAM,QAAQ,QAAQ,MAAM,QAAQ;AAClD,mBAAS,KAAK,aAAa,MAAM,KAAK,QAAQ,OAAO,KAAK;AAC1D,cAAI,UAAU,IAAK,QAAO,KAAK,UAAU,MAAM,KAAK;AAAA,QACtD;AAAA,MACF;AAAA,MAEA,UAAW,MAAM,OAAO;AACtB,cAAMA,KAAI,EAAE,KAAK,SAAS,KAAK,KAAK;AACpC,eAAOA,OAAM,QACT,KAAK,SAAS,OAAO,IAAI,IACzB,KAAK,SAAS,KAAK,KAAK,EAAE,SAASA,EAAC,KAAK,KAAK,SAAS,KAAK,SAAS,KAAK,KAAK,GAAGA,EAAC;AAAA,MACzF;AAAA,MAEA,eAAgB,MAAM,KAAK,OAAO;AAChC,YAAI,WAAW,KAAK,KAAK,QAAQ,KAAK,KAAK,YAAY,KAAK,KAAK,SAAS,CAAC,EAAE,IAAI,KAAK,KAAK;AAC3F,mBAAW;AACX,aAAK,QAAQ,MAAM,OAAO,SAAS,IAAI,WAAW,MAAM,IAAI,SAAS,IAAI,IAAI,EAAE;AAC/E,eAAO,IAAI;AAAA,MACb;AAAA,MAEA,aAAc,MAAM,KAAK,OAAO,KAAK;AACnC,cAAM,IAAI,UAAU;AACpB,cAAM,IAAI,QAAQ;AAClB,cAAM,KAAK,gBAAgB,QAAQ;AACnC,cAAM,KAAK,EAAE,gBAAgB,MAAM;AAEnC,YAAI,MAAM,GAAG;AACX,eAAK,KAAK,CAAC,IAAI,MACX,KAAK,KAAK,CAAC,IAAK,KAAK,KACrB,KAAK,KAAK,CAAC,IAAI,EAAE,KAAK;AAC1B,eAAK,QAAQ,MAAM,GAAG,IAAI,CAAC;AAC3B,iBAAO,MAAM;AAAA,QACf;AAEA,aAAK,KAAK,CAAC,IAAI,MACX,KAAK,KAAK,CAAC,IAAI,KACf,KAAK,KAAK,CAAC,IAAK,CAAC;AAErB,YAAI,IAAI,IAAI,EAAG,MAAK,KAAK,KAAK,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhE,YAAI,MAAM,MAAM;AACd,eAAK,KAAK,IAAI,CAAC,IAAI,MAAM,aAAa;AACtC,eAAK,QAAQ,MAAM,GAAG,CAAC;AACvB,iBAAO,MAAM;AAAA,QACf;AAEA,aAAK,KAAK,CAAC,IAAI,MACX,KAAK,KAAK,CAAC,IAAI,KACf,KAAK,KAAK,CAAC,IAAK,CAAC;AAErB,aAAK,QAAQ,MAAM,GAAG,IAAI,CAAC;AAC3B,eAAO,MAAM;AAAA,MACf;AAAA,MAEA,QAAS,MAAM,OAAO,KAAK;AACzB,eAAO,QAAQ,KAAK,SAAS;AAC3B,gBAAM,MAAM,KAAK,KAAK,KAAK;AAC3B,eAAK,cAAc,MAAM,OAAO,GAAG;AACnC,eAAK,cAAc,MAAM,OAAO,GAAG;AAAA,QACrC;AAAA,MACF;AAAA,MAEA,cAAe,MAAM,GAAG,KAAK;AAC3B,YAAIA,KAAI;AAER,WAAG;AACD,iBAAOA,KAAI,GAAGA,MAAK;AACjB,kBAAM,MAAM,KAAK,OAAOA,EAAC;AACzB,kBAAM,IAAI,IAAI;AACd,kBAAM,OAAO,IAAI,OAAO,CAAC;AACzB,gBAAI,CAAC,IAAI,QAAQ,aACZ,OAAQ,eAAe,IACvB,OAAO,EAAE,eAAe;AAC7B,kBAAM,IAAI,CAAC;AACX,gBAAI,QAAQ,KAAM;AAAA,UACpB;AAEA,eAAK,KAAK,SAAS,KAAK,KAAK;AAC7B,iBAAO,KAAK,SAAS,KAAK,KAAK;AAC/B,UAAAA,KAAI;AAAA,QACN,SAAS;AAAA,MACX;AAAA,MAEA,cAAe,MAAM,GAAG,KAAK;AAC3B,YAAIA,KAAI;AAER,WAAG;AACD,iBAAOA,KAAI,GAAGA,MAAK;AACjB,kBAAM,MAAM,KAAK,OAAOA,EAAC;AACzB,kBAAM,IAAI,IAAI;AACd,kBAAM,OAAO,IAAI,OAAO,CAAC;AACzB,gBAAI,CAAC,IAAI,QAAQ,IACZ,OAAQ,eAAe,IACvB,OAAO,EAAE,eAAe;AAC7B,kBAAM,IAAI,CAAC;AACX,gBAAI,QAAQ,KAAM;AAAA,UACpB;AAEA,eAAK,KAAK,SAAS,KAAK,KAAK;AAC7B,iBAAO,KAAK,SAAS,KAAK,KAAK;AAC/B,UAAAA,KAAI;AAEJ,cAAI,QAAQ,KAAK,MAAM;AAErB,iBAAK,SAAS,KAAK,SAAS,KAAK,QAAQ,CAAC,CAAC,IAAI;AAAA,UACjD;AAAA,QACF,SAAS;AAAA,MACX;AAAA,MAEA,SAAU,OAAO,iBAAiB;AAChC,eAAO,OAAO,KAAK,KAAK;AAExB,eAAO,SAAS,KAAK,QAAQ;AAC3B,cAAI,CAAC,gBAAiB,QAAO;AAC7B,eAAK,KAAK;AAAA,QACZ;AAEA,YAAI,OAAO,KAAK;AAEhB,iBAASA,KAAI,KAAK,OAAOA,KAAI,KAAK,MAAMA,MAAK;AAC3C,gBAAM,IAAI,KAAK,MAAMA,EAAC;AACtB,eAAK,SAASA,KAAI,CAAC,IAAI;AACvB,iBAAO,KAAK,SAAS,CAAC,MAAM,kBAAkB,KAAK,SAAS,MAAM,CAAC,IAAI;AAAA,QACzE;AAEA,eAAO;AAAA,MACT;AAAA,MAEA,SAAU,MAAMA,IAAG;AACjB,aAAK;AACL,eAAO,KAAK,SAASA,EAAC,IAAI,IAAI,KAAK,KAAK,QAAQ,CAAC;AACjD,eAAO;AAAA,MACT;AAAA,IACF;AAEA,QAAM,WAAN,MAAe;AAAA,MACb,YAAa,UAAU;AACrB,aAAK,YAAY;AACjB,aAAK,QAAQ,IAAI,YAAY,CAAC;AAC9B,aAAK,WAAW,IAAI,YAAY,KAAK,MAAM,QAAQ,KAAK,MAAM,aAAa,GAAG,CAAC;AAC/E,aAAK,WAAW,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI;AACtC,aAAK,QAAQ;AACb,aAAK,UAAU,SAAS;AAExB,aAAK,KAAK,CAAC;AAAA,MACb;AAAA,MAEA,KAAM,OAAO;AACX,aAAK,UAAU,KAAK,UAAU;AAE9B,YAAI,SAAS,KAAK,UAAU,QAAQ;AAClC,eAAK,QAAQ;AACb,iBAAO;AAAA,QACT;AAEA,eAAO,OAAO,KAAK,KAAK;AAExB,aAAK,QAAQ,KAAK,UAAU;AAC5B,iBAASA,KAAI,KAAK,MAAM,OAAOA,KAAI,GAAGA,MAAK;AACzC,eAAK,SAASA,KAAI,CAAC,IAAI,KAAK;AAC5B,eAAK,QAAQ,KAAK,MAAM,SAAS,KAAK,MAAMA,EAAC,CAAC,KAAK,MAAMA,KAAI,CAAC;AAAA,QAChE;AAEA,eAAO;AAAA,MACT;AAAA,MAEA,KAAM,KAAK;AACT,eAAO,MAAM,KAAK,SAAS,IAAI,KAAK,UAAU;AAAA,MAChD;AAAA,MAEA,YAAa;AACX,YAAI,KAAK,YAAY,KAAK,UAAU,SAAS;AAI3C,eAAK,KAAK,SAAS,KAAK,KAAK,CAAC;AAAA,QAChC;AAEA,YAAI,OAAO,KAAK;AAChB,YAAI,IAAI,KAAK,MAAM,CAAC;AACpB,YAAI,OAAO;AAEX,eAAO,MAAM;AACX,mBAASA,KAAI,GAAGA,KAAI,GAAGA,MAAK;AAC1B,kBAAM,IAAI,IAAI;AACd,kBAAM,MAAM,KAAK,MAAO,CAAC,KAAK,OAAOA,EAAC,EAAE,OAAO,CAAC,IAAK,KAAK,CAAC,CAAC;AAC5D,gBAAI,QAAQ,GAAI,QAAO,KAAK,eAAe,MAAMA,IAAG,GAAG,GAAG;AAC1D,mBAAO;AAAA,UACT;AAEA,cAAI,KAAK,SAAS,KAAK,KAAK;AAC5B,iBAAO,KAAK,SAAS,KAAK,KAAK;AAAA,QACjC;AAEA,eAAO;AAAA,MACT;AAAA,MAEA,eAAgB,MAAMA,IAAG,GAAG,KAAK;AAC/B,eAAO,MAAM;AACX,iBAAOA,IAAG;AACR,iBAAK,KAAK,KAAK;AACf,kBAAM,KAAK,MAAM,CAAC,KAAK,OAAO,EAAEA,EAAC,EAAE,CAAC,CAAC;AAAA,UACvC;AAEA,eAAK,KAAK,KAAK;AAEf,cAAI,CAAC,KAAK,MAAO;AAEjB,eAAK,SAAS,KAAK,QAAQ,CAAC,IAAI;AAChC,eAAK,MAAM,KAAK,KAAK,IAAI;AAEzB,iBAAO,KAAK,SAAS,CAAC;AACtB,UAAAA,KAAI;AACJ,gBAAM,IAAI;AAAA,QACZ;AAEA,aAAK,QAAQ;AACb,aAAK,MAAM,CAAC,IAAI;AAEhB,eAAO,KAAK,KAAK;AAAA,MACnB;AAAA,MAEA,WAAY;AACV,YAAI,OAAO,KAAK;AAChB,YAAI,IAAI,KAAK,MAAM,CAAC;AACpB,YAAI,OAAO;AAEX,eAAO,MAAM;AACX,mBAASA,KAAI,GAAGA,KAAI,GAAGA,MAAK;AAC1B,kBAAM,IAAI,IAAI;AACd,kBAAM,MAAM,KAAK,MAAM,KAAK,OAAOA,EAAC,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC;AACzD,gBAAI,QAAQ,GAAI,QAAO,KAAK,cAAc,MAAMA,IAAG,GAAG,GAAG;AACzD,mBAAO;AAAA,UACT;AAEA,cAAI,KAAK,SAAS,KAAK,KAAK;AAC5B,iBAAO,KAAK,SAAS,KAAK,KAAK;AAAA,QACjC;AAEA,eAAO;AAAA,MACT;AAAA,MAEA,cAAe,MAAMA,IAAG,GAAG,KAAK;AAC9B,eAAO,MAAM;AACX,iBAAOA,IAAG;AACR,iBAAK,KAAK,KAAK;AACf,kBAAM,KAAK,MAAM,KAAK,OAAO,EAAEA,EAAC,EAAE,CAAC,CAAC;AAAA,UACtC;AAEA,eAAK,KAAK,KAAK;AAEf,cAAI,CAAC,KAAK,MAAO;AAEjB,eAAK,SAAS,KAAK,QAAQ,CAAC,IAAI;AAChC,eAAK,MAAM,KAAK,KAAK,IAAI;AAEzB,iBAAO,KAAK,SAAS,CAAC;AACtB,UAAAA,KAAI;AACJ,gBAAM,IAAI;AAAA,QACZ;AAEA,aAAK,QAAQ;AACb,aAAK,MAAM,CAAC,IAAI;AAEhB,eAAO,KAAK,KAAK;AAAA,MACnB;AAAA,MAEA,OAAQ;AACN,cAAM,IAAI,SAAS,KAAK,KAAK;AAC7B,YAAI,KAAK,MAAM,CAAC,IAAI,MAAO,MAAK,MAAM,CAAC;AAAA,YAClC,MAAK,KAAK,IAAI,CAAC;AACpB,eAAO;AAAA,MACT;AAAA,IACF;AAEA,aAAS,SAAU,KAAK;AACtB,eAAW,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,KAAK,QAAS,IAAI,CAAC,KAAK,QAAS,IAAI,CAAC;AAAA,IACzE;AAEA,aAAS,OAAQ,GAAG,KAAK;AACvB,WAAK,KAAK,IAAI,CAAC,IAAK,IAAI,UAAW;AACnC,WAAK,KAAK,IAAI,CAAC,IAAK,IAAI,UAAW;AACnC,UAAI,CAAC,KAAM,KAAK,IAAI,CAAC,IAAK,IAAI,UAAW,QAAS;AAAA,IACpD;AAAA;AAAA;;;AC5bA;AAAA;AAAA,QAAI,WAAW;AACf,QAAI,UAAU;AACd,QAAI,WAAW;AACf,QAAI,MAAM;AACV,QAAI,MAAM,uBAAwB,MAAM,CAAC;AACzC,QAAI,YAAY;AAEhB,QAAI,QAAQ,IAAI,WAAW,IAAI;AAE/B,WAAO,UAAU;AAEjB,aAAS,UAAW,MAAM,WAAW,MAAM;AACzC,WAAK,YAAY,KAAK;AACtB,UAAI,SAAS,SAAS,iBAAiB,SAAS,IAAI,YAAY,KAAK;AAErE,UAAI,CAAC,QAAQ;AACX,YAAI,CAAC,KAAK,QAAS,MAAK,UAAU,KAAK;AACvC,iBAAS,IAAI,SAAS,WAAW,IAAI;AAAA,MACvC;AAEA,UAAI,KAAK,OAAQ,SAAQ,IAAI;AAAA,UACxB,MAAK,MAAM,OAAO;AAEvB,aAAO;AAEP,eAAS,QAAS,KAAK;AACrB,aAAK,YAAY,SAAS;AAE1B,YAAI,IAAK,QAAO,OAAO,QAAQ,GAAG;AAClC,YAAI,OAAO,UAAW;AACtB,YAAI,OAAO,OAAO,KAAK,GAAG,EAAG;AAE7B,YAAI,KAAK,UAAU,SAAS,KAAK,oBAAoB;AACnD,cAAI,CAAC,OAAO,iBAAiB;AAC3B,iBAAK,YAAY,KAAK;AACtB,mBAAO,gBAAgB,CAAC;AACxB,mBAAO,GAAG,SAAS,WAAW;AAC9B,mBAAO,GAAG,aAAa,WAAW;AAClC;AAAA,UACF;AACA,2BAAiB;AACjB;AAAA,QACF;AACA,sBAAc;AAAA,MAChB;AAEA,eAAS,cAAe;AACtB,aAAK,YAAY,SAAS;AAC1B,eAAO,IAAI,SAAS,WAAW;AAC/B,eAAO,IAAI,aAAa,WAAW;AACnC,yBAAiB;AAAA,MACnB;AAEA,eAAS,mBAAoB;AAC3B,YAAI,OAAO,UAAW;AACtB,YAAI,OAAO,OAAO,KAAK,GAAG,EAAG;AAC7B,aAAK,YAAY,KAAK;AACtB,aAAK,mBAAmB,MAAM,OAAO,iBAAiB,SAAU,KAAK;AACnE,eAAK,YAAY,SAAS;AAC1B,cAAI,OAAO,UAAW;AACtB,cAAI,OAAO,OAAO,KAAK,GAAG,EAAG;AAC7B,cAAI,KAAK;AACP,mBAAO,MAAM,KAAK,YAAY;AAC9B;AAAA,UACF;AACA,wBAAc;AAAA,QAChB,CAAC;AAAA,MACH;AAEA,eAAS,gBAAiB;AACxB,YAAI,KAAK,UAAU,OAAO;AACxB,cAAI,OAAO,aAAa,KAAK,GAAG,KAAK,CAAC,OAAO,eAAe,KAAK,GAAG,GAAG;AACrE,mBAAO,MAAM,KAAK,YAAY;AAC9B;AAAA,UACF;AAAA,QACF;AAEA,YAAI,OAAO,IAAI,KAAK,MAAM,IAAI;AAE9B,aAAK,OAAO;AACZ,aAAK,SAAS,OAAO,KAAK,KAAK,KAAK,IAAI;AAExC,eAAO,gBAAgB,CAAC;AACxB,aAAK,MAAM;AACX,aAAK,KAAK,eAAe,MAAM;AAAA,MACjC;AAAA,IACF;AAEA,aAAS,KAAM,MAAM,MAAM;AACzB,UAAI,KAAK,WAAY,OAAM,IAAI,MAAM,0EAA0E;AAE/G,WAAK,OAAO;AACZ,WAAK,SAAS;AACd,WAAK,QAAQ,SAAS;AACtB,WAAK,iBAAiB,SAAS;AAC/B,WAAK,eAAe;AACpB,WAAK,aAAa;AAClB,WAAK,aAAa;AAClB,WAAK,YAAY;AACjB,WAAK,eAAe;AACpB,WAAK,OAAO,CAAC,CAAC,KAAK;AACnB,WAAK,SAAS,KAAK;AACnB,WAAK,MAAM,CAAC,CAAC,KAAK;AAElB,WAAK,oBAAoB;AACzB,WAAK,kBAAkB;AACvB,WAAK,mBAAmB,KAAK,WAAW,OAAO;AAC/C,WAAK,cAAc,OAAO,KAAK,aAAa,YAAY,KAAK,WAAW,KAAK;AAC7E,WAAK,YAAY,OAAO,KAAK,WAAW,YAAY,KAAK,SAAS,KAAK;AAEvE,WAAK,UAAU;AAEf,WAAK,cAAc,KAAK,eAAe,KAAK,eAAe;AAC3D,WAAK,iBAAiB,KAAK,cAAc;AACzC,WAAK,mBAAmB,CAAC;AACzB,WAAK,gBAAgB;AAErB,WAAK,SAAS;AACd,WAAK,aAAa;AAClB,WAAK,SAAS;AACd,WAAK,UAAU;AACf,WAAK,aAAa;AAClB,WAAK,sBAAsB,KAAK;AAChC,WAAK,YAAY,KAAK,eAAe,SAAS;AAC9C,WAAK,kBAAkB;AAEvB,WAAK,QAAQ,CAAC,KAAK,QAAQ,OAAO;AAAA,QAChC,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,MACpB;AAAA,IACF;AAEA,WAAO,eAAe,KAAK,WAAW,iBAAiB;AAAA,MACrD,YAAY;AAAA,MACZ,KAAK,WAAY;AACf,eAAO,KAAK,OAAO,OAAO;AAAA,MAC5B;AAAA,IACF,CAAC;AAED,WAAO,eAAe,KAAK,WAAW,cAAc;AAAA,MAClD,YAAY;AAAA,MACZ,KAAK,WAAY;AACf,eAAO,KAAK,OAAO,OAAO;AAAA,MAC5B;AAAA,IACF,CAAC;AAED,WAAO,eAAe,KAAK,WAAW,mBAAmB;AAAA,MACvD,YAAY;AAAA,MACZ,KAAK,WAAY;AACf,eAAO,KAAK,OAAO,MAAM;AAAA,MAC3B;AAAA,IACF,CAAC;AAED,SAAK,UAAU,SAAS,SAAU,MAAM;AACtC,UAAI,CAAC,KAAK,UAAW;AAGrB,UAAK,KAAK,QAAQ,QAAU,KAAK,SAAS,KAAO;AACjD,UAAI,CAAC,KAAK,cAAc,KAAK,KAAK,UAAU,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,GAAG;AAIxF,aAAK,OAAO,KAAK,EAAE,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;AAAA,MAClD;AACA,WAAK,aAAa;AAClB,UAAIC,OAAM,KAAK,KAAK,SAAS,SAAS,KAAK,OAAO,KAAK,MAAM;AAC7D,WAAK,OAAO,KAAK,EAAE,OAAO,KAAK,OAAO,QAAQ,KAAK,QAAQ,UAAUA,KAAI,CAAC;AAAA,IAC5E;AAEA,SAAK,UAAU,SAAS,SAAU,MAAM;AACtC,UAAI,OAAO;AAIX,UAAI,YAAY,KAAK,KAAK,aAAa,CAAC,KAAK;AAC7C,UAAI,CAAC,aAAa,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,GAAG;AAItD,YAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAG,MAAK,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC;AAC1E,aAAK,OAAO,KAAK,OAAO,CAAC,KAAK,KAAK;AACnC;AAAA,MACF;AAEA,WAAK,KAAK,WAAW,KAAK,OAAO,KAAK,OAAO,MAAM,MAAM,SAAU,KAAK;AACtE,YAAI,IAAK,QAAO,KAAK,QAAQ,GAAG;AAChC,YAAI,KAAK,MAAO,MAAK,eAAe,IAAI,KAAK,OAAO,KAAK;AACzD,YAAI,KAAK,WAAW;AAGlB,eAAK,OAAO,KAAK,EAAE,OAAO,KAAK,OAAO,QAAQ,GAAG,KAAK,KAAK,CAAC;AAAA,QAC9D;AACA,YAAI,KAAK,SAAS,KAAK,OAAO;AAC5B,eAAK,MAAM,oBAAoB;AAC/B,eAAK,MAAM,mBAAmB,KAAK,MAAM;AAAA,QAC3C;AACA,aAAK,OAAO,KAAK,OAAO,CAAC,KAAK,KAAK;AAAA,MACrC,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,SAAS,SAAU,OAAO,MAAM;AAE7C,eAAS,IAAI,GAAG,IAAI,KAAK,iBAAiB,QAAQ,KAAK;AACrD,YAAI,KAAK,iBAAiB,CAAC,EAAE,UAAU,OAAO;AAC5C,cAAI,KAAK,oBAAoB,KAAM,MAAK,gBAAgB,QAAQ;AAChE,eAAK,iBAAiB,OAAO,GAAG,CAAC;AACjC;AAAA,QACF;AAAA,MACF;AAEA,WAAK,KAAK,UAAU,IAAI,OAAO,KAAK;AAEpC,WAAK,KAAK,aAAa;AAEvB,UAAI,KAAK,iBAAiB,WAAW,KAAK,KAAK,oBAAoB,MAAM;AACvE,aAAK,gBAAgB,QAAQ;AAC7B,aAAK,kBAAkB;AAAA,MACzB;AAAA,IACF;AAEA,SAAK,UAAU,YAAY,SAAU,SAAS;AAC5C,UAAI,CAAC,KAAK,UAAW;AACrB,UAAI,QAAQ,MAAO,QAAO,KAAK,SAAS,OAAO;AAG/C,UAAI,CAAC,KAAK,WAAY,MAAK,aAAa,UAAU;AAElD,UAAI,OAAO;AACX,UAAI,OAAO,EAAE,QAAQ,QAAQ,OAAO,MAAM,QAAQ,MAAM,MAAM,KAAK,WAAW;AAE9E,WAAK,KAAK,MAAM,QAAQ,OAAO,MAAM,OAAO;AAE5C,eAAS,QAAS,KAAK,OAAO;AAC5B,YAAI,IAAK,QAAO,KAAK,QAAQ,GAAG;AAChC,YAAI,QAAQ,KAAM,SAAQ,MAAM,IAAI;AAAA,iBAC3B,KAAK,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAG,MAAK,KAAK,WAAW,QAAQ,OAAO,OAAO;AAE3F,iBAAS,QAASC,MAAK,OAAO;AAC5B,cAAI,CAAC,KAAK,UAAW;AACrB,cAAIA,KAAK,QAAO,KAAK,QAAQA,IAAG;AAEhC,cAAI,OAAO;AACT,gBAAI,KAAK,OAAO;AACd,mBAAK,MAAM,kBAAkB;AAC7B,mBAAK,MAAM,iBAAiB,MAAM;AAClC,mBAAK,KAAK,OAAO,kBAAkB;AACnC,mBAAK,KAAK,OAAO,iBAAiB,MAAM;AAAA,YAC1C;AACA,iBAAK,KAAK,KAAK,UAAU,QAAQ,OAAO,OAAO,IAAI;AAAA,UACrD;AAGA,cAAI,QAAQ,QAAQ,IAAI,KAAK,cAAc;AACzC,iBAAK,eAAe,QAAQ,QAAQ;AACpC,iBAAK,WAAW;AAAA,UAClB;AAEA,eAAK,OAAO,KAAK;AAAA,YACf,OAAO,QAAQ;AAAA,YACf;AAAA,YACA,OAAO,MAAM;AAAA,YACb,WAAW,MAAM;AAAA,UACnB,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAEA,SAAK,UAAU,iBAAiB,WAAY;AAC1C,UAAI,KAAK,OAAO,KAAK,KAAK,WAAW,QAAQ;AAC3C,aAAK,OAAO,QAAQ;AAAA,UAClB,KAAK,KAAK;AAAA,UACV,YAAY,KAAK,KAAK,WAAW,MAAM;AAAA,QACzC,CAAC;AAAA,MACH;AAAA,IACF;AAEA,SAAK,UAAU,iBAAiB,SAAU,aAAa;AACrD,UAAI,gBAAgB,KAAK,YAAa;AACtC,WAAK,cAAc;AACnB,WAAK,OAAO,OAAO;AAAA,QACjB;AAAA,QACA,WAAW,KAAK;AAAA,MAClB,CAAC;AACD,WAAK,OAAO;AAAA,IACd;AAEA,SAAK,UAAU,eAAe,SAAU,WAAW;AACjD,UAAI,cAAc,KAAK,UAAW;AAClC,WAAK,YAAY;AACjB,WAAK,OAAO,OAAO;AAAA,QACjB,aAAa,KAAK;AAAA,QAClB;AAAA,MACF,CAAC;AACD,WAAK,OAAO;AAAA,IACd;AAEA,SAAK,UAAU,WAAW,SAAU,SAAS;AAC3C,UAAI,OAAO;AAEX,WAAK,KAAK,KAAK,QAAQ,OAAO,EAAE,MAAM,MAAM,GAAG,SAAU,KAAK,OAAO;AACnE,YAAI,KAAK;AACP,kBAAQ,QAAQ;AAChB,eAAK,UAAU,OAAO;AACtB;AAAA,QACF;AAIA,YAAI,KAAK,eAAe,QAAQ,MAAO;AACvC,aAAK,aAAa,QAAQ;AAE1B,gBAAQ,QAAQ;AAChB,gBAAQ,QAAQ;AAChB,gBAAQ,QAAQ;AAEhB,aAAK,UAAU,OAAO;AAAA,MACxB,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,oBAAoB,WAAY;AAC7C,WAAK,kBAAkB;AACvB,UAAI,CAAC,KAAK,iBAAiB,OAAQ;AAEnC,UAAI,QAAQ,KAAK,iBAAiB,CAAC;AAEnC,UAAI,MAAM,OAAO,KAAK,KAAK,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,GAAG;AAE1F,aAAK,iBAAiB,MAAM;AAC5B,aAAK,KAAK,UAAU,IAAI,MAAM,OAAO,KAAK;AAE1C,YAAI,KAAK,OAAO,OAAO,SAAS;AAC9B,eAAK,kBAAkB,QAAQ,KAAK,OAAO,OAAO,QAAQ,IAAI,KAAK,mBAAmB,IAAI;AAAA,QAC5F;AACA;AAAA,MACF;AAEA,WAAK,QAAQ,IAAI,MAAM,iBAAiB,CAAC;AAAA,IAC3C;AAEA,SAAK,UAAU,SAAS,SAAU,MAAM;AACtC,WAAK,KAAK,KAAK,YAAY,MAAM,IAAI;AAErC,UAAI,KAAK,OAAO,KAAK,OAAO,CAAC,KAAK,YAAY,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,GAAG;AAChF,aAAK,OAAO,OAAO,KAAK,OAAO,IAAI;AACnC;AAAA,MACF;AAEA,UAAI,UAAU,KAAK;AACnB,UAAI,KAAK,OAAQ,MAAK,SAAS;AAI/B,UAAI,KAAK,WAAW,OAAO,QAAQ,KAAK,gBAAgB,GAAG;AACzD,aAAK,KAAK,YAAY,SAAS;AAC/B,aAAK;AAAA,MACP;AAEA,UAAI,KAAK,UAAU;AACjB,YAAI,KAAK,WAAW,KAAK,KAAK,WAAW,GAAG;AAC1C,eAAK,QAAQ;AAAA,QACf;AACA,YAAI,MAAM,IAAI,OAAO,KAAK,QAAQ;AAClC,YAAI,OAAO,IAAI,SAAS;AACxB,0BAAkB,KAAK,KAAK,UAAU,KAAK,KAAK,eAAe,cAAc,KAAK,KAAK;AACvF,aAAK,eAAe,KAAK,KAAK,KAAK,KAAK;AACxC,YAAI,OAAO,KAAK,cAAc;AAC5B,eAAK,eAAe,KAAK,eAAe,KAAK,IAAI;AACjD,oBAAU;AAAA,QACZ;AAAA,MACF,OAAO;AAGL,YAAI,QAAQ,KAAK;AACjB,YAAI,MAAM,KAAK,UAAU;AAEzB,eAAO,MAAO,MAAK,eAAe,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC;AAC7E,YAAI,QAAQ,KAAK,cAAc;AAC7B,eAAK,eAAe;AACpB,oBAAU;AAAA,QACZ;AAAA,MACF;AAEA,UAAI,SAAS;AACX,aAAK,UAAU;AACf,aAAK,KAAK,KAAK,iBAAiB,IAAI;AAAA,MACtC;AAEA,WAAK,WAAW;AAChB,WAAK,OAAO;AAAA,IACd;AAEA,SAAK,UAAU,aAAa,WAAY;AACtC,UAAI,KAAK,QAAQ,KAAK,KAAK,UAAU,CAAC,KAAK,KAAK,YAAY,OAAQ;AAEpE,UAAI,MAAM,KAAK,KAAK,YAAY,CAAC;AACjC,UAAI,eAAe,KAAK,KAAK,UAAU;AAEvC,eAAS,IAAI,GAAG,IAAI,KAAK,KAAK,MAAM,QAAQ,KAAK;AAC/C,YAAI,KAAK,KAAK,MAAM,CAAC,EAAE,eAAe,cAAc;AAClD,yBAAe,KAAK,KAAK,MAAM,CAAC,EAAE;AAAA,QACpC;AAAA,MACF;AAEA,UAAI,MAAM;AAAA,IACZ;AAEA,SAAK,UAAU,cAAc,SAAU,IAAI,SAAS;AAClD,WAAK,iBAAiB,UAAU,IAAI,SAAS,IAAI;AAAA,IACnD;AAEA,SAAK,UAAU,WAAW,SAAU,MAAM;AACxC,WAAK,kBAAkB,KAAK;AAC5B,WAAK,oBAAoB,KAAK;AAE9B,UAAI,CAAC,KAAK,WAAW;AACnB,eAAO,KAAK,iBAAiB,QAAQ;AACnC,gBAAM,OAAO,KAAK,iBAAiB,CAAC;AACpC,eAAK,OAAO,KAAK,OAAO,CAAC,KAAK,KAAK;AAAA,QACrC;AACA,iBAAS,IAAI,GAAG,IAAI,KAAK,eAAe,KAAK;AAC3C,eAAK,KAAK,YAAY,SAAS;AAAA,QACjC;AACA,aAAK,gBAAgB;AACrB,aAAK,QAAQ,SAAS;AAAA,MACxB;AACA,WAAK,OAAO;AACZ,UAAI,KAAK,eAAe,KAAK,KAAM;AACnC,UAAI,KAAK,KAAK,YAAY,UAAU,KAAK,YAAa;AACtD,WAAK,SAAS;AAAA,IAChB;AAEA,SAAK,UAAU,WAAW,WAAY;AACpC,UAAI,KAAK,aAAa,KAAK,kBAAmB;AAC9C,WAAK,KAAK,UAAU,KAAK,UAAU,KAAK,mBAAmB,KAAK,aAAc;AAC9E,WAAK,IAAI;AAAA,IACX;AAEA,SAAK,UAAU,WAAW,SAAU,QAAQ;AAC1C,UAAI,QAAQ,OAAO;AACnB,UAAI,MAAM,OAAO,UAAU;AAE3B,UAAI,UAAU,KAAK,OAAO,KAAK,cAAc;AAC3C,aAAK,eAAe;AACpB,aAAK,iBAAiB,SAAS;AAC/B;AAAA,MACF;AAEA,aAAO,MAAO,MAAK,eAAe,IAAI,SAAS,KAAK;AAAA,IACtD;AAEA,SAAK,UAAU,WACf,KAAK,UAAU,WAAW,WAAY;AAAA,IAEtC;AAEA,SAAK,UAAU,UAAU,WAAY;AACnC,WAAK,OAAO;AAAA,IACd;AAEA,SAAK,UAAU,OAAO,SAAU,MAAM;AACpC,UAAI,KAAK,UAAU,KAAK,WAAY,MAAK,OAAO,KAAK,IAAI;AACzD,UAAI,QAAQ,KAAK;AACjB,UAAI,MAAM,KAAK;AACf,aAAO,MAAO,MAAK,eAAe,IAAI,SAAS,KAAK;AAAA,IACtD;AAEA,SAAK,UAAU,SAAS,SAAU,QAAQ;AACxC,UAAI,KAAK,UAAU,KAAK,WAAY,MAAK,OAAO,OAAO,MAAM;AAAA,IAC/D;AAEA,SAAK,UAAU,YAAY,SAAU,OAAO;AAC1C,eAAS,IAAI,GAAG,IAAI,KAAK,iBAAiB,QAAQ,KAAK;AACrD,YAAI,KAAK,iBAAiB,CAAC,EAAE,UAAU,OAAO;AAC5C,eAAK,KAAK,UAAU,IAAI,KAAK,iBAAiB,CAAC,EAAE,OAAO,KAAK;AAC7D,eAAK,iBAAiB,OAAO,GAAG,CAAC;AACjC;AAAA,QACF;AAAA,MACF;AAEA,WAAK,OAAO;AAEZ,UAAI,KAAK,iBAAiB,WAAW,KAAK,KAAK,oBAAoB,MAAM;AACvE,aAAK,gBAAgB,QAAQ;AAC7B,aAAK,kBAAkB;AAAA,MACzB;AAAA,IACF;AAEA,SAAK,UAAU,SAAS,WAAY;AAElC,aAAO,KAAK,QAAQ,GAAG;AAAA,MAAC;AACxB,WAAK,gBAAgB;AAAA,IACvB;AAEA,SAAK,UAAU,UAAU,WAAY;AAEnC,UAAI,CAAC,KAAK,eAAe,CAAC,KAAK,gBAAiB,QAAO;AACvD,UAAI,aAAa,KAAK,KAAK;AAC3B,UAAI,UAAU,KAAK,KAAK;AACxB,UAAI,OAAO,QAAQ;AACnB,UAAI,OAAO,WAAW;AACtB,UAAI,WAAW,KAAK,iBAAiB;AACrC,UAAI,SAAS;AACb,UAAI,IAAI;AAKR,aAAO,WAAW,KAAK,gBAAgB;AACrC,iBAAS,KAAK,MAAM,KAAK,OAAO,IAAI,QAAQ,MAAM;AAElD,aAAK,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACnC,cAAI,IAAI,QAAQ,QAAQ;AACxB,cAAI,WAAW,QAAQ,OAAQ,UAAS;AAExC,eAAK,iBAAiB,CAAC;AACvB,cAAI,QAAQ,WAAW,KAAM,QAAO;AACpC,cAAI,KAAK,iBAAiB,UAAU,KAAK,eAAgB,QAAO;AAAA,QAClE;AACA,YAAI,aAAa,KAAK,iBAAiB,OAAQ;AAC/C,mBAAW,KAAK,iBAAiB;AAAA,MACnC;AAEA,aAAO,WAAW,KAAK,aAAa;AAClC,iBAAS,KAAK,MAAM,KAAK,OAAO,IAAI,WAAW,MAAM;AAErD,aAAK,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AACtC,cAAI,IAAI,WAAW,QAAQ;AAC3B,cAAI,WAAW,WAAW,OAAQ,UAAS;AAE3C,cAAI,CAAC,EAAE,SAAU,GAAE,WAAW,KAAK,KAAK,SAAS,SAAS,EAAE,OAAO,EAAE,GAAG;AACxE,cAAI,EAAE,OAAQ,MAAK,gBAAgB,CAAC;AAAA,cAC/B,MAAK,eAAe,CAAC;AAC1B,cAAI,WAAW,WAAW,KAAM,QAAO;AACvC,cAAI,KAAK,iBAAiB,UAAU,KAAK,YAAa,QAAO;AAAA,QAC/D;AAEA,YAAI,aAAa,KAAK,iBAAiB,OAAQ,QAAO;AACtD,mBAAW,KAAK,iBAAiB;AAAA,MACnC;AAEA,aAAO;AAAA,IACT;AAEA,SAAK,UAAU,SAAS,WAAY;AAClC,WAAK,KAAK,YAAY,SAAS;AAC/B,WAAK,eAAe;AAEpB,WAAK,eAAe;AAEpB,UAAI,CAAC,KAAK,aAAa,CAAC,KAAK,aAAa;AACxC,aAAK,OAAO,OAAO;AAAA,UACjB,WAAW,KAAK;AAAA,UAChB,aAAa,KAAK;AAAA,QACpB,CAAC;AAAA,MACH;AAEA,WAAK,WAAW;AAChB,WAAK,KAAK,KAAK,aAAa,IAAI;AAAA,IAClC;AAEA,SAAK,UAAU,YAAY,SAAU,SAAS;AAC5C,WAAK,YAAY,QAAQ;AACzB,WAAK,iBAAiB,OAAO,QAAQ,UAAU;AAAA,IACjD;AAEA,SAAK,UAAU,QAAQ,WAAY;AACjC,WAAK,KAAK,YAAY,KAAK;AAC3B,UAAI,IAAI,KAAK,KAAK,OAAO,IAAI;AAC7B,WAAK,KAAK,KAAK,YAAY,IAAI;AAC/B,UAAI,KAAK,OAAO,aAAc,MAAK,OAAO;AAAA,IAC5C;AAEA,SAAK,UAAU,MAAM,WAAY;AAC/B,UAAI,CAAC,KAAK,eAAe,CAAC,KAAK,qBAAqB,CAAC,KAAK,MAAM;AAC9D,YAAI,CAAC,KAAK,qBAAqB;AAC7B,eAAK,OAAO,OAAO,EAAE,aAAa,OAAO,WAAW,MAAM,CAAC;AAAA,QAC7D;AACA,aAAK,OAAO;AACZ;AAAA,MACF;AACA,UAAI,CAAC,KAAK,SAAS;AACjB,aAAK,UAAU;AACf,aAAK,cAAc;AACnB,aAAK,OAAO,OAAO,EAAE,aAAa,OAAO,WAAW,KAAK,CAAC;AAAA,MAC5D,OAAO;AACL,YAAI,CAAC,KAAK,KAAM,MAAK,OAAO;AAAA,MAC9B;AAAA,IACF;AAEA,SAAK,UAAU,SAAS,WAAY;AAClC,UAAI,CAAC,KAAK,YAAY;AACpB,aAAK,aAAa;AAClB,aAAK,OAAO,MAAM;AAAA,MACpB;AACA,UAAI,KAAK,WAAW,GAAI;AACxB,UAAI,OAAO,KAAK,KAAK,OAAO,IAAI;AAChC,WAAK,SAAS;AACd,eAAS,IAAI,GAAG,IAAI,KAAK,iBAAiB,QAAQ,KAAK;AACrD,aAAK,KAAK,UAAU,IAAI,KAAK,iBAAiB,CAAC,EAAE,OAAO,KAAK;AAAA,MAC/D;AACA,UAAI,KAAK,oBAAoB,MAAM;AACjC,aAAK,gBAAgB,QAAQ;AAC7B,aAAK,kBAAkB;AAAA,MACzB;AACA,WAAK,WAAW;AAChB,WAAK,aAAa;AAClB,WAAK,KAAK,aAAa;AACvB,WAAK,KAAK,KAAK,eAAe,IAAI;AAClC,WAAK,IAAI,GAAG,IAAI,KAAK,eAAe,KAAK;AACvC,aAAK,KAAK,YAAY,SAAS;AAAA,MACjC;AACA,UAAI,CAAC,KAAK,cAAc;AACtB,aAAK,KAAK,YAAY,SAAS;AAAA,MACjC;AAAA,IACF;AAEA,SAAK,UAAU,UAAU,SAAU,KAAK;AACtC,UAAI,KAAK,WAAW,MAAM,KAAK,WAAY;AAC3C,WAAK,OAAO,QAAQ,GAAG;AACvB,WAAK,aAAa;AAClB,WAAK,OAAO;AAAA,IACd;AAEA,SAAK,UAAU,kBAAkB,WAAY;AAC3C,UAAI,KAAK,iBAAiB,SAAS,KAAK,eAAgB,MAAK,WAAW;AAAA,IAC1E;AAEA,SAAK,UAAU,aAAa,WAAY;AACtC,UAAI,CAAC,KAAK,SAAS,CAAC,KAAK,eAAe,CAAC,KAAK,gBAAgB,CAAC,KAAK,gBAAiB;AACrF,UAAI,KAAK,iBAAiB,GAAI;AAE9B,UAAI;AAEJ,WAAK,IAAI,GAAG,IAAI,KAAK,KAAK,SAAS,QAAQ,KAAK;AAC9C,YAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC5B,YAAI,EAAE,UAAU,GAAI,MAAK,eAAe,CAAC;AAAA,YACpC,MAAK,UAAU,EAAE,KAAK;AAC3B,YAAI,KAAK,iBAAiB,GAAI;AAAA,MAChC;AAEA,WAAK,IAAI,GAAG,IAAI,KAAK,KAAK,YAAY,QAAQ,KAAK;AACjD,YAAI,IAAI,KAAK,KAAK,YAAY,CAAC;AAC/B,aAAK,eAAe,CAAC;AACrB,YAAI,KAAK,iBAAiB,GAAI;AAAA,MAChC;AAGA,WAAK,UAAU,CAAC;AAAA,IAClB;AAEA,SAAK,UAAU,iBAAiB,SAAU,GAAG;AAC3C,UAAI,EAAE,QAAQ;AACZ,YAAI,CAAC,EAAE,SAAU,GAAE,WAAW,oBAAI,QAAQ;AAC1C,YAAI,EAAE,SAAS,IAAI,IAAI,EAAG;AAC1B,UAAE,SAAS,IAAI,IAAI;AACnB,mBAAW,SAAS,EAAE,QAAQ;AAC5B,eAAK,UAAU,KAAK;AAAA,QACtB;AACA;AAAA,MACF;AAEA,UAAI,OAAO,EAAE,QAAQ,OAAO,OAAO,KAAK,MAAM,EAAE,QAAQ,OAAO,IAAI,IAAI;AAEvE,aAAO,MAAM;AACX,YAAI,QAAQ,KAAK,aAAc;AAC/B,YAAI,EAAE,QAAQ,MAAM,QAAQ,EAAE,IAAK;AAEnC,YAAI,KAAK,UAAU,IAAI,EAAG;AAG1B,YAAI,CAAC,KAAK,MAAM,IAAI,KAAK,MAAM,OAAO,OAAO,IAAI,CAAC,EAAG;AACrD,gBAAQ,OAAO;AAAA,MACjB;AAAA,IACF;AAEA,SAAK,UAAU,YAAY,SAAU,OAAO;AAC1C,UAAI,MAAM,OAAO;AACjB,UAAI,IAAI,KAAK,MAAM,QAAQ,GAAG;AAC9B,UAAI,KAAK,MAAM,IAAI,CAAC,EAAG,QAAO;AAC9B,WAAK,MAAM,IAAI,GAAG,IAAI;AACtB,WAAK;AACL,WAAK,KAAK,YAAY,KAAK;AAC3B,WAAK,OAAO,KAAK,EAAE,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC;AAChD,aAAO;AAAA,IACT;AAEA,SAAK,UAAU,mBAAmB,SAAU,MAAM;AAChD,UAAI,CAAC,KAAK,OAAO;AACf,YAAI,CAAC,KAAK,eAAe,IAAI,KAAK,KAAK,KAAK,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,OAAO,IAAI,GAAG;AACtF,cAAI,CAAC,KAAK,UAAU,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,EAAG;AACzD,gBAAM,IAAI,KAAK,UAAU,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI;AACnD,cAAI,MAAM,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,GAAG,IAAI,EAAG;AACnD,eAAK,QAAQ;AAAA,QACf;AACA,aAAK,SAAS,KAAK,OAAO,GAAG,KAAK,SAAS,IAAI;AAC/C;AAAA,MACF;AAEA,WAAK,eAAe,IAAI;AAAA,IAC1B;AAEA,SAAK,UAAU,kBAAkB,SAAU,OAAO;AAChD,aAAO,MAAM,mBAAmB,MAAM,OAAO,QAAQ;AACnD,cAAM,MAAM,MAAM,OAAO,MAAM,gBAAgB;AAC/C,YAAI,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,EAAG;AAClC,cAAM;AAAA,MACR;AAEA,UAAI,MAAM,oBAAoB,MAAM,OAAO,QAAQ;AACjD,YAAI,OAAO,KAAK,KAAK,aAAa,KAAK;AACvC,cAAM,SAAS,IAAI;AACnB;AAAA,MACF;AAEA,eAAS,IAAI,MAAM,kBAAkB,IAAI,MAAM,OAAO,QAAQ,KAAK;AACjE,cAAM,MAAM,MAAM,OAAO,CAAC;AAC1B,YAAI,KAAK,eAAe,IAAI,GAAG,KAAK,KAAK,KAAK,UAAU,IAAI,KAAK,IAAI,GAAG;AACtE,gBAAM;AACN,eAAK,SAAS,KAAK,GAAG,KAAK;AAC3B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,SAAK,UAAU,iBAAiB,SAAU,OAAO;AAC/C,UAAI,CAAC,MAAM,SAAU,OAAM,WAAW,KAAK,KAAK,SAAS,SAAS,MAAM,OAAO,MAAM,GAAG;AAExF,UAAI,WAAW,KAAK,KAAK;AACzB,UAAI,MAAM,KAAK;AACf,UAAI,YAAY,KAAK,IAAI,MAAM,QAAQ,KAAK,KAAK,eAAe,MAAM,KAAK,KAAK,YAAY;AAE5F,UAAI,IAAI,MAAM,SAAS,IAAI,KAAK,MAAM,KAAK,EAAE,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,OAAO,SAAS;AAChG,UAAI,QAAQ;AAEZ,UAAI,MAAM,MAAM,KAAK,WAAW;AAC9B,YAAI,CAAC,MAAM,SAAS,MAAM,MAAM,MAAM,KAAK,KAAK,UAAU,MAAM,OAAO,MAAM,SAAS,KAAK,CAAC,EAAE,KAAK,MAAM,IAAI;AAC3G,cAAI,OAAO,KAAK,KAAK,aAAa,KAAK;AACvC,gBAAM,SAAS,IAAI;AACnB,cAAI,CAAC,KAAK,QAAQ,CAAC,KAAK,UAAU,CAAC,KAAK,KAAK,YAAY,OAAQ,MAAK,IAAI;AAAA,QAC5E;AACA;AAAA,MACF;AAEA,aAAQ,MAAM,QAAQ,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,KAAM,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG;AAC1E,YAAI,IAAI,KAAK,IAAI;AAEjB,YAAI,IAAI,MAAM,IAAI,WAAW;AAE3B;AAAA,QACF;AAEA,YAAI,CAAC,MAAM,UAAU,UAAU,GAAG;AAEhC,cAAI,IAAI,KAAK,MAAM,KAAK,EAAE,KAAK,IAAI;AACnC,kBAAQ;AACR,cAAI,IAAI,MAAM,IAAI,UAAW;AAAA,QAC/B;AAIA,YAAI,MAAM,MAAM;AAGd,mBAAS,IAAI,MAAM,OAAO,IAAI,WAAW,KAAK;AAC5C,gBAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,EAAG;AAAA,UAClC;AACA,cAAI,CAAC,MAAM,OAAO;AAChB,gBAAI,OAAO,KAAK,KAAK,aAAa,KAAK;AACvC,kBAAM,SAAS,IAAI;AAAA,UACrB;AAAA,QACF;AAGA;AAAA,MACF;AAEA,YAAM;AACN,WAAK,SAAS,GAAG,MAAM,SAAS,GAAG,MAAM,IAAI;AAAA,IAC/C;AAEA,SAAK,UAAU,WAAW,SAAU,OAAO,OAAO,MAAM;AACtD,UAAI,UAAU;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,KAAK,KAAK,OAAO,KAAK;AAAA,MAC/B;AAEA,UAAI,KAAK,oBAAoB,QAAQ,KAAK,OAAO,OAAO,SAAS;AAC/D,aAAK,kBAAkB,QAAQ,KAAK,OAAO,OAAO,QAAQ,IAAI,KAAK,mBAAmB,IAAI;AAAA,MAC5F;AACA,WAAK,iBAAiB,KAAK,OAAO;AAClC,WAAK,OAAO,QAAQ,OAAO;AAAA,IAC7B;AAEA,SAAK,UAAU,YAAY,SAAU,IAAI,SAAS;AAChD,WAAK,OAAO,UAAU,IAAI,OAAO;AAAA,IACnC;AAEA,aAAS,WAAY,MAAM;AACzB,UAAI,MAAM,OAAO,KAAK,SAAS;AAC/B,aAAO,IAAI,SAAS,IAAI,QAAQ,IAAI,YAAY,IAAI;AAAA,IACtD;AAEA,aAAS,kBAAmB,OAAO,KAAK,IAAI,OAAO;AACjD,UAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,UAAU;AACpD,UAAI,MAAM,KAAK,MAAM,IAAI,SAAS,CAAC;AACnC,UAAI,MAAM,IAAI,YAAY,IAAI,QAAQ,IAAI,YAAY,GAAG;AACzD,UAAI,IAAI,QAAQ;AAChB,UAAI,IAAI;AACR,UAAI,OAAO,WAAW,MAAM,MAAM,IAAI,KAAK,IAAI,CAAC;AAEhD,eAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,YAAI,CAAC,IAAI,OAAO,UAAU,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,UAAU,IAAK,KAAM,CAAC,EAAE;AAEtE,YAAI,MAAM,KAAK;AACb,iBAAO,WAAW,MAAM,MAAM,IAAI,KAAK,IAAI,CAAC;AAC5C,cAAI;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAEA,aAAS,WAAY,KAAK,OAAO,KAAK;AACpC,UAAI,MAAM,MAAM;AAChB,UAAI,IAAI,IAAI,KAAK,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,IAAI,KAAK,EAAE,KAAK,IAAI;AACnE,aAAO,MAAM,MAAM,KAAK,MAAM,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI;AAAA,IAC7D;AAAA;AAAA;;;AC5zBA;AAAA;AAEA,QAAM,SAAS,UAAQ,uBAAQ;AAC/B,QAAM,WAAW;AAEjB,QAAM,UAAU,OAAO,eAAe;AACtC,QAAM,aAAa,OAAO,uBAAuB;AACjD,QAAM,UAAU,OAAO,eAAe;AACtC,QAAM,OAAO,OAAO,MAAM;AAC1B,QAAM,YAAY,OAAO,YAAY;AAErC,WAAO,UAAU;AAEjB,aAAS,aAAc,MAAM;AAC3B,UAAI,EAAE,gBAAgB,cAAe,QAAO,IAAI,aAAa,IAAI;AACjE,aAAO,aAAa,KAAK,IAAI;AAE7B,UAAI,CAAC,KAAM,QAAO,CAAC;AACnB,UAAI,KAAK,KAAM,MAAK,QAAQ,KAAK;AACjC,UAAI,KAAK,MAAO,MAAK,SAAS,KAAK;AAEnC,WAAK,UAAU;AACf,WAAK,SAAS;AACd,WAAK,UAAU;AACf,WAAK,SAAS;AACd,WAAK,UAAU;AAEf,WAAK,OAAO,IAAI;AAChB,WAAK,UAAU,IAAI;AACnB,WAAK,OAAO,IAAI;AAChB,WAAK,IAAI,IAAI;AACb,WAAK,SAAS,IAAI;AAAA,IACpB;AAEA,aAAS,cAAc,OAAO,YAAY;AAE1C,iBAAa,UAAU,QAAQ,SAAU,IAAI;AAC3C,SAAG,IAAI;AAAA,IACT;AAEA,iBAAa,UAAU,SAAS,SAAU,IAAI;AAC5C,SAAG,IAAI;AAAA,IACT;AAEA,iBAAa,UAAU,OAAO,SAAU,IAAI;AAC1C,UAAI,CAAC,GAAI,MAAK;AAEd,UAAI,KAAK,OAAO,KAAK,KAAK,OAAQ,QAAO,QAAQ,SAAS,IAAI,IAAI,MAAM,oBAAoB,CAAC;AAC7F,UAAI,KAAK,OAAQ,QAAO,QAAQ,SAAS,EAAE;AAE3C,UAAI,KAAK,OAAO,GAAG;AACjB,aAAK,OAAO,EAAE,KAAK,EAAE;AACrB;AAAA,MACF;AAEA,WAAK,UAAU;AACf,WAAK,OAAO,IAAI,CAAC,EAAE;AACnB,WAAK,IAAI,IAAI;AACb,WAAK,MAAM,OAAO,KAAK,IAAI,CAAC;AAC5B,WAAK,IAAI,IAAI;AAAA,IACf;AAEA,iBAAa,UAAU,SAAS,SAAU,IAAI;AAC5C,UAAK,KAAK,SAAS,KAAK,KAAK,UAAU,KAAM,KAAK,OAAO,KAAK,KAAK,QAAQ;AACzE,YAAI,GAAI,SAAQ,SAAS,IAAI,IAAI,MAAM,oBAAoB,CAAC;AAC5D,eAAO;AAAA,MACT;AACA,WAAK;AACL,aAAO;AAAA,IACT;AAEA,iBAAa,UAAU,WAAW,SAAU,IAAI,KAAK,KAAK;AACxD,UAAI,CAAC,EAAE,KAAK,SAAS;AACnB,cAAM,QAAQ,KAAK,UAAU;AAC7B,YAAI,OAAO;AACT,eAAK,UAAU,IAAI;AACnB,iBAAO,MAAM,OAAQ,MAAK,MAAM,MAAM,MAAM,CAAC;AAAA,QAC/C;AAAA,MACF;AAEA,UAAI,GAAI,IAAG,KAAK,GAAG;AAAA,IACrB;AAEA,iBAAa,UAAU,QAAQ,SAAU,aAAa,IAAI;AACxD,UAAI,OAAO,gBAAgB,WAAY,QAAO,KAAK,MAAM,OAAO,WAAW;AAC3E,UAAI,CAAC,GAAI,MAAK;AAEd,UAAI,YAAa,MAAK,SAAS,IAAI;AAEnC,UAAI,KAAK,OAAQ,QAAO,QAAQ,SAAS,EAAE;AAE3C,UAAI,KAAK,WAAW,KAAK,OAAO,GAAG;AACjC,YAAI,CAAC,KAAK,UAAU,EAAG,MAAK,UAAU,IAAI,CAAC;AAC3C,aAAK,UAAU,EAAE,KAAK,EAAE;AACxB;AAAA,MACF;AAEA,UAAI,CAAC,KAAK,QAAQ;AAChB,aAAK,SAAS;AACd,gBAAQ,SAAS,EAAE;AACnB;AAAA,MACF;AAEA,UAAI,KAAK,OAAO,GAAG;AACjB,aAAK,OAAO,EAAE,KAAK,EAAE;AACrB;AAAA,MACF;AAEA,WAAK,UAAU;AACf,WAAK,OAAO,IAAI,CAAC,EAAE;AACnB,WAAK,IAAI,IAAI;AACb,WAAK,OAAO,QAAQ,KAAK,IAAI,CAAC;AAC9B,WAAK,IAAI,IAAI;AAAA,IACf;AAEA,aAAS,OAAQ,KAAK;AACpB,UAAI,KAAK,IAAI,EAAG,QAAO,QAAQ,SAAS,OAAO,KAAK,IAAI,GAAG,GAAG;AAE9D,YAAM,SAAS,KAAK,OAAO;AAC3B,WAAK,OAAO,IAAI;AAChB,WAAK,UAAU;AACf,WAAK,SAAS,CAAC;AAEf,aAAO,OAAO,OAAQ,QAAO,MAAM,EAAE,GAAG;AAExC,YAAM,SAAS,KAAK,UAAU;AAC9B,UAAI,UAAU,CAAC,KAAK,SAAS;AAC3B,aAAK,UAAU,IAAI;AACnB,eAAO,OAAO,OAAQ,MAAK,MAAM,OAAO,MAAM,CAAC;AAAA,MACjD;AAAA,IACF;AAEA,aAAS,QAAS,KAAK;AACrB,UAAI,KAAK,IAAI,EAAG,QAAO,QAAQ,SAAS,QAAQ,KAAK,IAAI,GAAG,GAAG;AAC/D,YAAM,QAAQ,KAAK,OAAO;AAC1B,WAAK,UAAU;AACf,WAAK,OAAO,IAAI;AAChB,WAAK,SAAS,CAAC;AACf,aAAO,MAAM,OAAQ,OAAM,MAAM,EAAE,GAAG;AAAA,IACxC;AAEA,aAAS,OAAQ;AAAA,IAAC;AAAA;AAAA;;;AC7IlB;AAAA;AAKA,WAAO,UAAU,IAAI;AAAA,MACnB,CAAC;AAAA,MACD;AAAA,QACE,KAAK,CAAC,QAAQ,SAAS;AACrB,gBAAM,IAAI,MAAM,2BAA2B;AAAA,QAC7C;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;ACZA;AAAA;AAAA,QAAM,EAAE,UAAU,SAAS,IAAI,UAAQ,SAAS;AAEhD,QAAM,cAAN,cAA0B,SAAS;AAAA,MACjC,YAAa,MAAM,MAAM;AACvB,cAAM;AAEN,aAAK,OAAO;AACZ,aAAK,eAAgB,QAAQ,KAAK,gBAAiB;AAAA,MACrD;AAAA,MAEA,QAAS,OAAO,IAAI;AAClB,aAAK,KAAK,OAAO,KAAK,eAAe,KAAK,eAAe,KAAK,IAAI,OAAO,EAAE;AAAA,MAC7E;AAAA,MAEA,eAAgB,OAAO;AACrB,iBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,cAAI,MAAM,MAAM,CAAC;AACjB,cAAI,IAAI,SAAS,KAAK,cAAc;AAClC,kBAAM,UAAU,CAAC;AACjB,mBAAO,IAAI,SAAS,KAAK,cAAc;AACrC,sBAAQ,KAAK,IAAI,MAAM,GAAG,KAAK,YAAY,CAAC;AAC5C,oBAAM,IAAI,MAAM,KAAK,YAAY;AAAA,YACnC;AACA,gBAAI,IAAI,OAAQ,SAAQ,KAAK,GAAG;AAChC,kBAAM,OAAO,GAAG,GAAG,GAAG,OAAO;AAC7B,iBAAK,QAAQ,SAAS;AAAA,UACxB;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAEA,QAAM,aAAN,cAAyB,SAAS;AAAA,MAChC,YAAa,MAAM,OAAO,CAAC,GAAG;AAC5B,cAAM;AAEN,aAAK,OAAO;AACZ,aAAK,QAAQ,KAAK,SAAS;AAC3B,aAAK,MAAM,OAAO,KAAK,QAAQ,WAAW,KAAK,MAAM;AACrD,aAAK,OAAO,CAAC,CAAC,KAAK;AACnB,aAAK,WAAW,KAAK,aAAa;AAClC,aAAK,OAAO,CAAC,CAAC,KAAK;AACnB,aAAK,QAAQ,KAAK;AAClB,aAAK,UAAU,EAAE,MAAM,KAAK,SAAS,OAAO,aAAa,CAAC,CAAC,KAAK,aAAa,eAAe,KAAK,cAAc;AAAA,MACjH;AAAA,MAEA,MAAO,IAAI;AACT,aAAK,KAAK,MAAM,CAAC,QAAQ;AACvB,cAAI,IAAK,QAAO,GAAG,GAAG;AACtB,cAAI,KAAK,QAAQ,IAAI;AACnB,gBAAI,KAAK,KAAM,MAAK,MAAM;AAAA,qBACjB,KAAK,SAAU,MAAK,MAAM,KAAK,KAAK;AAC7C,gBAAI,KAAK,QAAQ,KAAK,IAAK,MAAK,KAAK,IAAI;AAAA,UAC3C;AACA,cAAI,KAAK,KAAM,MAAK,QAAQ,KAAK,KAAK;AACtC,eAAK,QAAQ,KAAK;AAClB,aAAG,IAAI;AAAA,QACT,CAAC;AAAA,MACH;AAAA,MAEA,MAAO,IAAI;AACT,YAAI,KAAK,UAAU,KAAK,OAAQ,KAAK,QAAQ,MAAM,KAAK,SAAS,KAAK,KAAK,QAAS;AAClF,eAAK,KAAK,IAAI;AACd,iBAAO,GAAG,IAAI;AAAA,QAChB;AACA,aAAK,KAAK,IAAI,KAAK,SAAS,KAAK,SAAS,CAAC,KAAK,UAAU;AACxD,cAAI,IAAK,QAAO,GAAG,GAAG;AACtB,eAAK,KAAK,KAAK;AACf,aAAG,IAAI;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAEA,WAAO,UAAU,EAAE,aAAa,WAAW;AAAA;AAAA;;;ACzE3C;AAAA;AAAA,QAAI,MAAM;AACV,QAAI,SAAS;AACb,QAAI,MAAM;AACV,QAAI,kBAAkB;AACtB,QAAI,OAAO;AACX,QAAI,SAAS;AACb,QAAI,UAAU;AACd,QAAI,WAAW;AACf,QAAI,WAAW;AACf,QAAI,iBAAiB;AACrB,QAAI,YAAY;AAChB,QAAI,UAAU;AACd,QAAI,SAAS;AACb,QAAI,UAAU;AACd,QAAI,SAAS;AACb,QAAI,YAAY;AAChB,QAAI,mBAAmB;AACvB,QAAI,YAAY;AAChB,QAAI,WAAW;AACf,QAAI,UAAU;AACd,QAAI,eAAe;AACnB,QAAI,iBAAiB;AACrB,QAAI,EAAE,aAAa,WAAW,IAAI;AAElC,QAAM,YAAN,cAAwB,QAAQ;AAAA,MAC9B,UAAW,SAAS;AAClB,cAAM,OAAO,KAAK,MAAM;AACxB,cAAM,MAAM,KAAK,SAAS,OAAO,OAAO;AACxC,YAAI,cAAc;AAClB,mBAAW,QAAQ,KAAK,OAAO;AAC7B,wBAAc;AACd,eAAK,UAAU,KAAK,IAAI,GAAG;AAAA,QAC7B;AACA,eAAO;AAAA,MACT;AAAA,MAEA,KAAM,SAAS,MAAM;AACnB,aAAK,UAAU,KAAK,IAAI,KAAK,OAAO,OAAO,CAAC;AAAA,MAC9C;AAAA,IACF;AAEA,QAAI,gBAAgB;AAAA,MAClB,KAAM,MAAM,IAAI,IAAI;AAClB,eAAO,GAAG,MAAM,OAAO,KAAK,MAAM,EAAE,CAAC;AAAA,MACvC;AAAA,MACA,OAAQ,KAAK,MAAM,IAAI,IAAI;AACzB,eAAO,GAAG,MAAM,OAAO,OAAO,KAAK,MAAM,EAAE,CAAC;AAAA,MAC9C;AAAA,IACF;AAEA,WAAO,UAAU;AAEjB,aAAS,KAAM,eAAe,KAAK,MAAM;AACvC,UAAI,EAAE,gBAAgB,MAAO,QAAO,IAAI,KAAK,eAAe,KAAK,IAAI;AACrE,mBAAa,KAAK,IAAI;AAEtB,UAAI,OAAO,kBAAkB,SAAU,iBAAgB,kBAAkB,aAAa;AACtF,UAAI,OAAO,kBAAkB,WAAY,OAAM,IAAI,MAAM,wCAAwC;AAEjG,UAAI,OAAO,QAAQ,SAAU,OAAM,OAAO,KAAK,KAAK,KAAK;AAEzD,UAAI,CAAC,OAAO,SAAS,GAAG,KAAK,CAAC,MAAM;AAClC,eAAO;AACP,cAAM;AAAA,MACR;AAEA,UAAI,CAAC,KAAM,QAAO,CAAC;AAEnB,UAAI,OAAO;AAEX,UAAI,YAAY,KAAK,aAAa;AAClC,UAAI,OAAO,cAAc,SAAU,aAAY,OAAO,KAAK,WAAW,KAAK;AAE3E,WAAK,eAAe,KAAK,gBAAgB,SAAS,QAAQ;AAC1D,WAAK,OAAO,KAAK,SAAS;AAC1B,WAAK,SAAS,CAAC,CAAC,KAAK;AACrB,WAAK,SAAS;AACd,WAAK,aAAa;AAClB,WAAK,cAAc,KAAK,eAAe;AACvC,WAAK,MAAM,OAAO,KAAK,OAAO;AAC9B,WAAK,eAAe,KAAK,OAAO,OAAO,aAAa,KAAK,GAAG;AAC5D,WAAK,YAAY;AACjB,WAAK,WAAW;AAChB,WAAK,OAAO;AACZ,WAAK,WAAW,CAAC,CAAC,KAAK;AACvB,WAAK,WAAW;AAChB,WAAK,cAAc,KAAK,gBAAgB;AACxC,WAAK,YAAY,KAAK,cAAc;AACpC,WAAK,YAAY,CAAC,CAAC,KAAK;AACxB,WAAK,QAAQ,CAAC;AACd,WAAK,cAAc,IAAI,UAAU;AACjC,WAAK,aAAa,UAAU,YAAY,IAAI;AAE5C,WAAK,SAAS,KAAK,UAAU;AAG7B,WAAK,WAAW,KAAK,WAAW;AAEhC,WAAK,SAAS,CAAC,CAAC,KAAK;AACrB,WAAK,kBAAkB;AACvB,WAAK,YAAY,CAAC,CAAC,KAAK;AACxB,WAAK,mBAAmB,KAAK,oBAAoB;AACjD,WAAK,aAAa,CAAC,CAAC,KAAK;AACzB,WAAK,kBAAkB,KAAK,mBAAmB;AAC/C,WAAK,qBAAqB,CAAC,CAAC,KAAK;AACjC,WAAK,UAAU;AACf,WAAK,WAAW,QAAQ,eAAe,IAAI;AAC3C,WAAK,SAAS,QAAQ,KAAK,WAAW,WAAW,IAAI;AAErD,WAAK,WAAW,KAAK,YAAY;AAAA,QAC/B,IAAK,IAAI;AACP,aAAG,IAAI;AAAA,QACT;AAAA,QACA,OAAQ,IAAI;AACV,aAAG,IAAI;AAAA,QACT;AAAA,MACF;AAEA,WAAK,OAAO;AACZ,WAAK,WAAW,CAAC;AACjB,WAAK,cAAc,CAAC;AACpB,WAAK,YAAY,eAAe;AAChC,WAAK,UAAU;AACf,WAAK,kBAAkB,OAAO,KAAK,gBAAgB;AAEnD,WAAK,SAAU,OAAO,KAAK,UAAU,eAAe,CAAC,KAAK,QAAS,OAAO;AAAA,QACxE,kBAAkB;AAAA,QAClB,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAEA,WAAK,SAAS,QAAQ,KAAK,aAAa;AACxC,WAAK,QAAQ,IAAI,IAAI;AACrB,UAAI,CAAC,KAAK,OAAQ,MAAK,SAAS,EAAE,OAAO,GAAG,KAAK,GAAG,CAAC;AAErD,UAAI,KAAK,UAAU,KAAK,aAAa;AACnC,aAAK,OAAO,SAAS,KAAM,KAAK;AAC9B,cAAI,IAAK,MAAK,KAAK,gBAAgB,GAAG;AACtC,eAAK,OAAO,IAAI;AAAA,QAClB,CAAC;AAAA,MACH;AAGA,WAAK,KAAK,OAAO;AAEjB,eAAS,QAAS,KAAK;AACrB,YAAI,IAAK,MAAK,KAAK,SAAS,GAAG;AAAA,MACjC;AAEA,eAAS,SAAU,QAAQ,IAAI;AAC7B,YAAI,CAAC,KAAK,QAAS,QAAO,KAAK,+BAA+B,UAAU,QAAQ,EAAE;AAClF,aAAK,YAAY,QAAQ,EAAE;AAAA,MAC7B;AAEA,eAAS,KAAM,QAAQ,IAAI;AACzB,YAAI,CAAC,KAAK,QAAS,QAAO,KAAK,+BAA+B,MAAM,QAAQ,EAAE;AAC9E,aAAK,QAAQ,QAAQ,EAAE;AAAA,MACzB;AAEA,eAAS,KAAM,GAAG,IAAI;AACpB,aAAK,cAAc,EAAE;AAAA,MACvB;AAAA,IACF;AAEA,aAAS,MAAM,YAAY;AAE3B,SAAK,eAAe,OAAO;AAE3B,SAAK,UAAU,OAAO,IAAI,SAAU,OAAO,MAAM;AAC/C,UAAI,SAAS;AACb,UAAI,OAAO,KAAK,mBAAmB,UAAU;AAC3C,eAAO,OAAO,SAAS,KAAK,eAAgB,WAAU;AAAA,MACxD;AACA,aAAO,iBACL,SAAS,YAAY,KAAK,QAAS,KAAK,OAAO,OAAO,KAAK,GAAG,GAAI,QAAQ,IAAI,OAC9E,SAAS,qBAAqB,KAAK,QAAS,KAAK,gBAAgB,OAAO,KAAK,YAAY,GAAI,QAAQ,IAAI,OACzG,SAAS,eAAe,KAAK,QAAQ,KAAK,QAAQ,SAAS,IAAI,OAC/D,SAAS,eAAe,KAAK,QAAQ,KAAK,QAAQ,SAAS,IAAI,OAC/D,SAAS,iBAAiB,KAAK,QAAQ,KAAK,UAAU,SAAS,IAAI,OACnE,SAAS,eAAe,KAAK,QAAQ,KAAK,QAAQ,QAAQ,IAAI,OAC9D,SAAS,mBAAmB,KAAK,QAAQ,KAAK,YAAY,QAAQ,IAAI,OACtE,SAAS,cAAc,KAAK,QAAQ,KAAK,MAAM,QAAQ,QAAQ,IAAI,OACnE,SAAS;AAAA,IACb;AAGA,WAAO,eAAe,KAAK,WAAW,gBAAgB;AAAA,MACpD,YAAY;AAAA,MACZ,KAAK,WAAY;AACf,YAAI,MAAM;AACV,iBAAS,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;AAC1C,cAAI,eAAe,KAAK,MAAM,CAAC,EAAE;AACjC,cAAI,eAAe,IAAK,OAAM;AAAA,QAChC;AACA,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAED,WAAO,eAAe,KAAK,WAAW,SAAS;AAAA,MAC7C,YAAY;AAAA,MACZ,KAAK,WAAY;AACf,YAAI,CAAC,KAAK,OAAQ,QAAO;AACzB,YAAI,YAAY,CAAC;AACjB,iBAAS,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;AAC1C,cAAI,OAAO,KAAK,MAAM,CAAC;AACvB,oBAAU,CAAC,IAAI,KAAK;AAAA,QACtB;AACA,eAAO;AAAA,UACL,OAAO;AAAA,UACP,QAAQ,KAAK;AAAA,QACf;AAAA,MACF;AAAA,IACF,CAAC;AAED,SAAK,UAAU,YAAY,SAAU,WAAW,MAAM;AACpD,WAAK,CAAC,KAAK,YAAY,UAAU,KAAK,YAAY,CAAC,EAAE,QAAQ,OAAO,CAAC,KAAK,UAAU,EAAE,QAAQ,KAAK,OAAO;AAExG,aAAK,SAAS,EAAE,OAAO,GAAG,KAAK,GAAG,CAAC;AAAA,MACrC;AAEA,UAAI,UAAU,SAAS,KAAK,CAAC,MAAM;AACjC,eAAO;AACP,oBAAY,KAAK;AAAA,MACnB;AAEA,aAAO,QAAQ,CAAC;AAChB,WAAK,QAAQ,CAAC,CAAC,KAAK;AACpB,WAAK,QAAQ,EAAE,KAAK,UAAU,SAAS,KAAK,cAAc;AAE1D,aAAO,UAAU,MAAM,WAAW,IAAI;AAAA,IACxC;AAEA,SAAK,UAAU,oBAAoB,SAAU,MAAM,UAAU;AAC3D,aAAO,KAAK,WAAW,IAAI,MAAM,QAAQ;AAAA,IAC3C;AAEA,SAAK,UAAU,oBAAoB,WAAY;AAC7C,iBAAW,QAAQ,KAAK,MAAO,MAAK,eAAe;AAAA,IACrD;AAEA,SAAK,UAAU,iBAAiB,SAAU,aAAa;AACrD,UAAI,KAAK,gBAAgB,eAAe,KAAK,gBAAiB;AAC9D,WAAK,cAAc;AACnB,WAAK,kBAAkB;AACvB,WAAK,MAAM,CAAC,QAAQ;AAClB,YAAI,IAAK;AACT,mBAAW,QAAQ,KAAK,MAAO,MAAK,eAAe,KAAK,WAAW;AAAA,MACrE,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,eAAe,SAAU,WAAW;AACjD,UAAI,cAAc,KAAK,UAAW;AAClC,WAAK,YAAY;AACjB,WAAK,MAAM,CAAC,QAAQ;AAClB,YAAI,IAAK;AACT,mBAAW,QAAQ,KAAK,MAAO,MAAK,aAAa,KAAK,SAAS;AAAA,MACjE,CAAC;AAAA,IACH;AAGA,SAAK,UAAU,QAAQ,KAAK,UAAU;AAEtC,SAAK,UAAU,SAAS,SAAU,MAAM,IAAI;AAC1C,UAAI,OAAO,SAAS,WAAY,QAAO,KAAK,OAAO,IAAI,IAAI;AAC3D,UAAI,OAAO,SAAS,SAAU,QAAO,EAAE,WAAW,KAAK;AACvD,UAAI,CAAC,KAAM,QAAO,CAAC;AACnB,UAAI,CAAC,GAAI,MAAK;AAEd,UAAI,OAAO;AACX,UAAI,MAAM,OAAO,KAAK,cAAc,WAAW,KAAK,YAAY;AAEhE,WAAK,MAAM,SAAU,KAAK;AACxB,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,YAAI,QAAQ,GAAI,OAAM,KAAK,SAAS;AACpC,YAAI,KAAK,UAAU,IAAK,QAAO,GAAG,IAAI;AAEtC,cAAM,cAAc,OAAO,KAAK,gBAAgB,YAC5C,KAAK,cACL,KAAK;AAET,YAAI,eAAe,KAAK,YAAY,CAAC,KAAK,MAAO,QAAO,GAAG,IAAI,MAAM,gCAAgC,CAAC;AACtG,YAAI,KAAK,SAAU,MAAK,KAAK,oBAAoB,EAAE;AAEnD,YAAI,IAAI;AAAA,UACN,MAAM,KAAK,SAAS;AAAA,UACpB,OAAO;AAAA,UACP,OAAO,MAAM;AAAA,UACb,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,UAAU;AAAA,QACZ;AAEA,aAAK,SAAS,KAAK,CAAC;AACpB,YAAI,YAAa,MAAK,aAAa,GAAG,GAAG;AACzC,aAAK,aAAa;AAAA,MACpB,CAAC;AAAA,IACH;AAGA,SAAK,UAAU,oBAAoB,SAAU,KAAK;AAChD,WAAK,kBAAkB;AACvB,WAAK,MAAM,CAAC,QAAQ;AAClB,YAAI,IAAK;AAET,aAAK,YAAY,MAAM,MAAM;AAC3B,eAAK,kBAAkB;AAAA,QACzB,CAAC;AAED,YAAI,KAAK,oBAAoB,MAAM,KAAK,kBAAkB,KAAK,OAAQ;AAEvE,mBAAW,KAAK,KAAK,UAAU;AAC7B,cAAI,EAAE,UAAU,EAAE,YAAa,GAAE,SAAS,IAAI,MAAM,6CAA6C,CAAC;AAAA,QACpG;AAAA,MACF,CAAC;AAAA,IACH;AAGA,SAAK,UAAU,WAAW,SAAU,WAAW,IAAI;AACjD,UAAI,CAAC,GAAI,MAAK;AACd,YAAM,OAAO;AAEb,WAAK,MAAM,SAAU,KAAK;AACxB,YAAI,IAAK,QAAO,GAAG,GAAG;AAEtB,aAAK,OAAO,WAAW,SAAUC,MAAK,OAAO;AAC3C,cAAIA,KAAK,QAAO,GAAGA,IAAG;AAEtB,gBAAM,YAAY,KAAK;AACvB,cAAI,aAAa,UAAW,QAAO,GAAG,IAAI;AAE1C,cAAI,aAAa;AACjB,qBAAW,EAAE,KAAK,KAAK,MAAO,eAAc;AAE5C,mBAAS,IAAI,WAAW,IAAI,WAAW,IAAK,MAAK,KAAK,IAAI,GAAG,KAAK;AAClE,eAAK,aAAa;AAClB,eAAK,SAAS;AACd,eAAK,KAAK,SAAS,IAAI,SAAS;AAChC,eAAK,UAAU,IAAI,gBAAgB,QAAQ,KAAK;AAEhD,eAAK,MAAM,MAAM,SAAUA,MAAK;AAC9B,gBAAIA,KAAK,QAAO,GAAGA,IAAG;AACtB,iBAAK,SAAS,iBAAiB,WAAW,WAAW,EAAE;AAAA,UACzD,CAAC;AAAA,QACH,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,eAAe,SAAU,GAAG,WAAW;AACpD,UAAI,KAAK,EAAE;AACX,UAAI,SAAS;AACb,UAAI,OAAO;AAEX,QAAE,WAAW;AACb,QAAE,cAAc;AAEhB,UAAI,KAAK,kBAAkB,MAAM,KAAK,mBAAmB,KAAK,QAAQ;AACpE,eAAO,QAAQ,SAAS,EAAE,UAAU,IAAI,MAAM,6CAA6C,CAAC;AAAA,MAC9F;AAEA,WAAK,SAAS,OAAO,WAAY;AAC/B,YAAI,KAAK,OAAQ,QAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAEhD,gBAAQ,SAAS,SAAS,KAAK,aAAa,WAAY;AACtD,cAAI,KAAK,OAAQ,QAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAChD,cAAI,KAAK,UAAU,aAAa,KAAK,gBAAgB,UAAW;AAChE,eAAK,IAAI,MAAM,gCAAgC,CAAC;AAAA,QAClD,CAAC;AAAA,MACH,CAAC;AAED,eAAS,KAAM,KAAK;AAClB,YAAI,OAAQ;AACZ,iBAAS;AAET,YAAI,IAAI,KAAK,SAAS,QAAQ,CAAC;AAC/B,YAAI,IAAI,GAAI,QAAO,KAAK,UAAU,CAAC;AACnC,WAAG,GAAG;AAAA,MACR;AAAA,IACF;AAEA,SAAK,UAAU,kBAAkB,SAAU,GAAG;AAC5C,UAAI,KAAK,EAAE;AACX,UAAI,SAAS;AACb,UAAI,OAAO;AAEX,QAAE,WAAW;AAEb,WAAK,SAAS,IAAI,WAAY;AAC5B,YAAI,KAAK,OAAQ,QAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAEhD,gBAAQ,SAAS,SAAS,KAAK,aAAa,WAAY;AACtD,cAAI,KAAK,OAAQ,QAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAEhD,mBAAS,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;AAC1C,gBAAI,OAAO,KAAK,MAAM,CAAC;AACvB,gBAAI,KAAK,eAAe,IAAI,EAAE,KAAK,EAAG;AAAA,UACxC;AACA,eAAK,IAAI,MAAM,gCAAgC,CAAC;AAAA,QAClD,CAAC;AAAA,MACH,CAAC;AAED,eAAS,KAAM,KAAK,MAAM;AACxB,YAAI,OAAQ;AACZ,iBAAS;AAET,YAAI,IAAI,KAAK,SAAS,QAAQ,CAAC;AAC/B,YAAI,IAAI,GAAI,QAAO,KAAK,UAAU,CAAC;AACnC,WAAG,KAAK,IAAI;AAAA,MACd;AAAA,IACF;AAGA,SAAK,UAAU,sBAAsB,SAAU,IAAI;AACjD,UAAI,OAAO;AACX,aAAO,SAAU,KAAK;AACpB,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,aAAK,mBAAmB,EAAE;AAAA,MAC5B;AAAA,IACF;AAEA,SAAK,UAAU,qBAAqB,SAAU,IAAI;AAChD,UAAI,OAAO;AAEX,WAAK,OAAO,KAAK,QAAQ,SAAU,KAAK,OAAO;AAC7C,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,aAAK,UAAU,IAAI,gBAAgB,QAAQ,KAAK;AAChD,WAAG,IAAI;AAAA,MACT,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,iCAAiC,SAAU,MAAM,QAAQ,IAAI;AAC1E,WAAK,mBAAmB,SAAU,KAAK;AACrC,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,aAAK,QAAQ,EAAE;AAAA,MACjB,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,QAAQ,SAAU,IAAI;AACnC,UAAI,OAAO;AACX,UAAI,eAAe;AACnB,UAAI,YAAY;AAIhB,WAAK,SAAS,QAAQ,SAAU,GAAG,KAAK;AACtC,YAAI,OAAO,CAAC,KAAK,cAAc,CAAC,KAAK,IAAK,MAAK,MAAM;AAErD,YAAI,CAAC,KAAK,OAAO,KAAK,MAAM;AAC1B,cAAI,UAAU,OAAO,QAAQ;AAC7B,eAAK,YAAY,QAAQ;AACzB,eAAK,MAAM,QAAQ;AACnB,yBAAe;AAAA,QACjB;AAEA,aAAK,eAAe,KAAK,OAAO,OAAO,aAAa,KAAK,GAAG;AAC5D,aAAK,SAAS,KAAK,EAAE,KAAK,KAAK,KAAK,cAAc,KAAK,aAAa,GAAG,MAAM;AAAA,MAC/E,CAAC;AAED,eAAS,OAAQ,KAAK,OAAO;AAC3B,YAAI,IAAK,QAAO,GAAG,GAAG;AAGtB,YAAI,CAAC,MAAM,OAAO,MAAM,SAAS,QAAQ;AACvC,eAAK,aAAa;AAAA,QACpB;AAEA,YAAI,KAAK,UAAU,MAAM,OAAO,KAAK,OAAO,OAAO,QAAQ,MAAM,KAAK,KAAK,GAAG,MAAM,GAAG;AACrF,eAAK,aAAa;AAAA,QACpB;AAEA,YAAI,KAAK,YAAY;AACnB,gBAAM,WAAW,CAAC;AAClB,gBAAM,MAAM,MAAM,YAAY;AAAA,QAChC;AAEA,aAAK,WAAW,SAAS,MAAM,kBAAkB,MAAM,QAAQ;AAC/D,aAAK,OAAO,UAAU,KAAK,SAAS,IAAI;AACxC,aAAK,SAAS,KAAK,KAAK,OAAO;AAC/B,aAAK,OAAO,KAAK;AAEjB,YAAI,MAAM,OAAO,KAAK,OAAO,OAAO,QAAQ,MAAM,KAAK,KAAK,GAAG,MAAM,GAAG;AACtE,iBAAO,KAAK,YAAY,IAAI,IAAI,MAAM,kCAAkC,CAAC;AAAA,QAC3E;AAEA,YAAI,MAAM,IAAK,MAAK,MAAM,MAAM;AAChC,YAAI,MAAM,UAAW,MAAK,YAAY,MAAM;AAE5C,YAAI,CAAC,KAAK,OAAQ,QAAO,YAAY,MAAM,IAAI;AAC/C,aAAK,SAAS,aAAa,KAAK,SAAS,GAAG,WAAW;AAEvD,iBAAS,YAAa,GAAG,KAAK;AAC5B,cAAI,KAAK,OAAQ,MAAK,OAAO,CAAC,CAAC;AAE/B,eAAK,gBAAgB,CAAC,KAAK,QAAQ,CAAC,KAAK,kBAAkB;AACzD,mBAAO,KAAK,YAAY,IAAI,IAAI,MAAM,6BAA6B,CAAC;AAAA,UACtE;AAEA,cAAI,CAAC,KAAK,OAAO,KAAK,MAAM;AAC1B,gBAAI,UAAU,OAAO,QAAQ;AAC7B,iBAAK,YAAY,QAAQ;AACzB,iBAAK,MAAM,QAAQ;AAAA,UACrB;AAEA,cAAI,WAAW,CAAC,CAAC,KAAK,aAAa,KAAK,QAAQ;AAEhD,cAAI,CAAC,YAAY,KAAK,SAAU,QAAO,KAAK,YAAY,IAAI,IAAI,MAAM,sBAAsB,CAAC;AAC7F,eAAK,WAAW;AAChB,cAAI,CAAC,KAAK,gBAAiB,MAAK,cAAc,CAAC;AAC/C,eAAK,eAAe,KAAK,OAAO,OAAO,aAAa,KAAK,GAAG;AAE5D,cAAI,KAAK,mBAAmB,CAAC,KAAK,WAAW;AAC3C,iBAAK,kBAAkB;AAAA,UACzB;AAEA,cAAI,iBAAiB,gBAAgB,CAAC,iBAAiB,KAAK,KAAK,MAAM,GAAG;AAC1E,cAAI,uBAAuB,KAAK,oBAAoB,gBAAgB,CAAC,iBAAiB,KAAK,WAAW,MAAM,SAAS;AAErH,cAAI,UAAU,KACX,iBAAiB,IAAI,MACrB,uBAAuB,IAAI,MAC3B,KAAK,aAAa,IAAI;AACzB,cAAI,QAAQ;AAEZ,cAAI,eAAgB,MAAK,SAAS,IAAI,MAAM,GAAG,KAAK,KAAK,IAAI;AAC7D,cAAI,qBAAsB,MAAK,SAAS,UAAU,MAAM,GAAG,KAAK,WAAW,IAAI;AAE/E,cAAI,KAAK,YAAY;AACnB,iBAAK,SAAS,SAAS,IAAI,IAAI,UAAU,IAAI;AAAA,UAC/C;AAEA,eAAK,IAAI;AAET,mBAAS,KAAMA,MAAK;AAClB,gBAAIA,KAAK,SAAQA;AACjB,gBAAI,EAAE,QAAS;AACf,gBAAI,MAAO,QAAO,KAAK,YAAY,IAAI,KAAK;AAC5C,iBAAK,OAAO,KAAK,QAAQ,OAAO;AAAA,UAClC;AAEA,mBAAS,QAASA,MAAK,OAAO;AAC5B,gBAAIA,QAAO,WAAW;AACpB,0BAAY;AACZ,mBAAK;AACL,mBAAK,SAAS,aAAa,KAAK,SAAS,GAAG,WAAW;AACvD;AAAA,YACF;AAEA,gBAAIA,KAAK,QAAO,KAAK,YAAY,IAAIA,IAAG;AAExC,iBAAK,UAAU,IAAI,gBAAgB,QAAQ,KAAK;AAChD,iBAAK,aAAa,MAAM,OAAO,SAAS,CAAC;AACzC,iBAAK,KAAK,OAAO;AAEjB,eAAG,IAAI;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,SAAK,UAAU,WAAW,SAAU,OAAO,IAAI;AAC7C,UAAI,OAAO,UAAU,WAAY,QAAO,KAAK,SAAS,MAAM,KAAK;AACjE,UAAI,OAAO,UAAU,SAAU,SAAQ,EAAE,OAAO,OAAO,KAAK,QAAQ,EAAE;AACtE,UAAI,MAAM,QAAQ,KAAK,EAAG,SAAQ,EAAE,QAAQ,MAAM;AAClD,UAAI,CAAC,MAAO,SAAQ,CAAC;AACrB,UAAI,CAAC,GAAI,MAAK;AACd,UAAI,CAAC,KAAK,SAAU,QAAO,GAAG,IAAI,MAAM,gBAAgB,CAAC;AAOzD,UAAI,MAAM,UAAU,OAAO,MAAM,UAAU,UAAU;AACnD,YAAI,MAAM;AACV,YAAI,MAAM;AAEV,iBAAS,IAAI,GAAG,IAAI,MAAM,OAAO,QAAQ,KAAK;AAC5C,gBAAM,MAAM,MAAM,OAAO,CAAC;AAC1B,cAAI,QAAQ,MAAM,MAAM,IAAK,OAAM;AACnC,cAAI,OAAO,IAAK,OAAM,MAAM;AAAA,QAC9B;AAEA,cAAM,QAAQ,QAAQ,KAAK,IAAI;AAC/B,cAAM,MAAM;AAAA,MACd;AAEA,UAAI,MAAM;AAAA,QACR,QAAQ,KAAK,YAAY;AAAA,QACzB,MAAM,CAAC,CAAC,MAAM;AAAA,QACd,UAAU;AAAA,QACV,OAAO,MAAM,SAAS;AAAA,QACtB,KAAK,MAAM,OAAO;AAAA,QAClB,MAAM;AAAA,QACN,QAAQ,CAAC,CAAC,MAAM;AAAA,QAChB,QAAQ,MAAM,UAAU;AAAA,QACxB,kBAAkB;AAAA,QAClB,WAAW;AAAA,QACX,UAAU;AAAA,MACZ;AAEA,UAAI,OAAO,YAAY,IAAI,KAAK;AAEhC,WAAK,YAAY,KAAK,GAAG;AACzB,WAAK,aAAa;AAElB,aAAO;AAAA,IACT;AAEA,SAAK,UAAU,aAAa,SAAU,OAAO;AAC3C,UAAI,OAAO,UAAU,SAAU,SAAQ,EAAE,OAAO,OAAO,KAAK,QAAQ,EAAE;AACtE,UAAI,CAAC,MAAO,SAAQ,CAAC;AAErB,UAAI,MAAM,YAAY,MAAM,SAAS,IAAI;AACvC,YAAI,OAAO,KAAK,aAAa,KAAK;AAClC,gBAAQ,SAAS,MAAM,UAAU,YAAY,aAAa,KAAK,wBAAwB,CAAC;AACxF;AAAA,MACF;AAEA,UAAI,QAAQ,MAAM,SAAS;AAC3B,UAAI,MAAM,MAAM,OAAO;AACvB,UAAI,OAAO,CAAC,CAAC,MAAM;AACnB,UAAI,SAAS,CAAC,CAAC,MAAM;AAErB,eAAS,IAAI,GAAG,IAAI,KAAK,YAAY,QAAQ,KAAK;AAChD,YAAI,IAAI,KAAK,YAAY,CAAC;AAE1B,YAAI,EAAE,UAAU,SAAS,EAAE,QAAQ,OAAO,EAAE,SAAS,QAAQ,EAAE,WAAW,QAAQ;AAChF,cAAI,OAAO,KAAK,aAAa,CAAC;AAC9B,kBAAQ,SAAS,MAAM,UAAU,YAAY,aAAa,KAAK,wBAAwB,CAAC;AACxF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,SAAK,UAAU,SAAS,SAAU,OAAO;AACvC,aAAO,KAAK,KAAK,OAAO,IAAI,KAAK;AAAA,IACnC;AAEA,SAAK,UAAU,QAAQ,SAAU,OAAO,MAAM,IAAI;AAChD,UAAI,OAAO,SAAS,WAAY,QAAO,KAAK,MAAM,OAAO,MAAM,IAAI;AACnE,UAAI,CAAC,KAAK,OAAQ,QAAO,KAAK,eAAe,OAAO,MAAM,EAAE;AAC5D,UAAI,CAAC,KAAM,QAAO,CAAC;AAEnB,UAAI,QAAQ,KAAK,KAAK,MAAM,IAAI,OAAO,IAAI;AAC3C,UAAI,CAAC,MAAO,QAAO,GAAG,IAAI,MAAM,mCAAmC,CAAC;AAEpE,UAAI,WAAW,KAAK,QAAQ,CAAC,CAAC,MAAM;AACpC,UAAI,UAAU,MAAM,MAAM,UAAU,WAAW,IAAI;AACnD,UAAI,QAAQ;AACZ,UAAI,YAAY;AAChB,UAAI,QAAQ,IAAI,MAAM,MAAM,MAAM,MAAM;AAExC,UAAI,CAAC,QAAS,QAAO,GAAG,MAAM,EAAE,OAAc,WAAW,KAAK,CAAC;AAE/D,eAAS,IAAI,GAAG,IAAI,MAAM,MAAM,QAAQ,KAAK;AAC3C,aAAK,SAAS,QAAQ,MAAM,MAAM,CAAC,GAAG,MAAM;AAAA,MAC9C;AACA,UAAI,UAAU;AACZ,aAAK,SAAS,aAAa,MAAM,aAAa,IAAI,GAAG,WAAW;AAAA,MAClE;AAEA,eAAS,YAAa,KAAK,KAAK;AAC9B,YAAI,IAAK,aAAY;AACrB,eAAO,KAAK,IAAI;AAAA,MAClB;AAEA,eAAS,OAAQ,KAAK,MAAM;AAC1B,YAAI,IAAK,SAAQ;AAEjB,YAAI,MAAM;AACR,gBAAM,MAAM,MAAM,QAAQ,KAAK,KAAK,CAAC,IAAI;AAAA,QAC3C;AAEA,YAAI,EAAE,QAAS;AACf,YAAI,MAAO,QAAO,GAAG,KAAK;AAC1B,WAAG,MAAM,EAAE,OAAc,UAAqB,CAAC;AAAA,MACjD;AAAA,IACF;AAEA,SAAK,UAAU,iBAAiB,SAAU,OAAO,MAAM,IAAI;AACzD,UAAI,OAAO;AACX,WAAK,MAAM,SAAU,KAAK;AACxB,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,aAAK,MAAM,OAAO,MAAM,EAAE;AAAA,MAC5B,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,MAAM,SAAU,OAAO,MAAM,OAAO,IAAI;AACrD,UAAI,CAAC,KAAK,OAAQ,QAAO,KAAK,aAAa,OAAO,MAAM,OAAO,EAAE;AACjE,WAAK,WAAW,OAAO,SAAS,OAAO,OAAO,KAAK,OAAO,OAAO,IAAI,GAAG,OAAO,MAAM,EAAE;AAAA,IACzF;AAEA,SAAK,UAAU,SAAS,SAAU,OAAO,KAAK;AAC5C,UAAI,OAAO,UAAU,UAAU;AAC7B,YAAI,CAAC,IAAK,OAAM,QAAQ;AAGxB,iBAAS,IAAI,KAAK,YAAY,SAAS,GAAG,KAAK,GAAG,KAAK;AACrD,cAAI,MAAM,KAAK,YAAY,CAAC;AAC5B,cAAI,SAAS,IAAI,SAAS,IAAI,OAAO,KAAK;AACxC,iBAAK,WAAW,GAAG;AAAA,UACrB;AAAA,QACF;AAAA,MACF;AAGA,UAAI,KAAK,OAAQ,MAAK,QAAQ,OAAO,GAAG;AAAA,UACnC,MAAK,gBAAgB,OAAO,GAAG;AAAA,IACtC;AAEA,SAAK,UAAU,UAAU,SAAU,OAAO,KAAK;AAC7C,UAAI,IAAI;AAER,UAAI,OAAO,UAAU,UAAU;AAC7B,aAAK,IAAI,KAAK,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;AAC9C,gBAAMC,KAAI,KAAK,SAAS,CAAC;AACzB,cAAIA,GAAE,QAAQ,WAAW,OAAO;AAC9B,mBAAO,KAAK,UAAU,CAAC;AACvB,iBAAK,UAAU,IAAIA,GAAE,OAAO,KAAK;AACjC,gBAAIA,GAAE,SAAU,SAAQ,SAASA,GAAE,UAAU,IAAI,MAAM,mBAAmB,CAAC;AAC3E,iBAAK,aAAa;AAClB;AAAA,UACF;AAAA,QACF;AACA;AAAA,MACF;AAEA,WAAK,IAAI,OAAO,IAAI,KAAK,KAAK;AAC5B,aAAK,UAAU,IAAI,GAAG,KAAK;AAAA,MAC7B;AAEA,WAAK,IAAI,KAAK,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;AAC9C,YAAI,IAAI,KAAK,SAAS,CAAC;AACvB,YAAK,SAAS,EAAE,SAAS,EAAE,OAAO,OAAS,SAAS,EAAE,SAAS,EAAE,QAAQ,KAAM;AAC7E,iBAAO,KAAK,UAAU,CAAC;AACvB,cAAI,EAAE,SAAU,SAAQ,SAAS,EAAE,UAAU,IAAI,MAAM,mBAAmB,CAAC;AAAA,QAC7E;AAAA,MACF;AAAA,IACF;AAEA,SAAK,UAAU,QAAQ,SAAU,OAAO,KAAK,MAAM,IAAI;AACrD,UAAI,OAAO,QAAQ,WAAY,QAAO,KAAK,MAAM,OAAO,QAAQ,GAAG,MAAM,GAAG;AAC5E,UAAI,OAAO,SAAS,WAAY,QAAO,KAAK,MAAM,OAAO,KAAK,MAAM,IAAI;AACxE,UAAI,CAAC,KAAM,QAAO,CAAC;AACnB,UAAI,CAAC,IAAK,OAAM,QAAQ;AACxB,UAAI,CAAC,GAAI,MAAK;AAKd,UAAI,OAAO;AACX,UAAI,aAAa,UAAU,IAAI,IAAK,OAAO,KAAK,eAAe,WAAW,KAAK,aAAa;AAC5F,UAAI,aAAa,OAAO,KAAK,eAAe,WAAW,KAAK,aAAa;AAEzE,WAAK,MAAM,SAAU,KAAK;AACxB,YAAI,IAAK,QAAO,GAAG,GAAG;AAEtB,YAAI,WAAW;AAIf,iBAAS,IAAI,OAAO,IAAI,KAAK,KAAK;AAChC,cAAI,KAAK,SAAS,IAAI,GAAG,KAAK,EAAG,YAAW;AAAA,QAC9C;AAEA,YAAI,CAAC,SAAU,QAAO,QAAQ,SAAS,EAAE;AAIzC,aAAK,YAAY,EAAE,OAAc,QAAQ,MAAM,MAAM,CAAC;AACtD,YAAI,KAAK,WAAW,SAAS,KAAK,UAAW,QAAO,KAAK;AACzD,YAAI,aAAa,GAAI,QAAO,aAAa,MAAM,UAAU;AACzD,aAAK,SAAS,WAAW,OAAO,CAAC,GAAG,YAAY;AAEhD,iBAAS,OAAQ;AACf,eAAK,KAAK,SAAS,OAAO,GAAG;AAC7B,eAAK,MAAM,MAAM,EAAE;AAAA,QACrB;AAEA,iBAAS,aAAcD,MAAK,QAAQ;AAClC,cAAIA,KAAK,QAAO,GAAGA,IAAG;AACtB,uBAAa;AACb,cAAI,aAAa,GAAI,QAAO,WAAW,MAAM,aAAa,UAAU;AACpE,cAAI,QAAQ,KAAK,OAAQ,QAAO,WAAW,MAAM,KAAK,UAAU;AAChE,eAAK,SAAS,WAAW,KAAK,CAAC,GAAG,UAAU;AAAA,QAC9C;AAEA,iBAAS,WAAYA,MAAKE,MAAK;AAC7B,cAAIF,KAAK,QAAO,GAAGA,IAAG;AACtB,cAAI,CAAC,KAAK,SAAS,KAAK,IAAK,QAAO,KAAK;AACzC,eAAK,SAAS,KAAK,IAAI,YAAYE,OAAM,YAAY,IAAI;AAAA,QAC3D;AAAA,MACF,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,YAAY,SAAU,OAAO,IAAI;AAC9C,UAAI,OAAO,UAAU,WAAY,QAAO,KAAK,UAAU,KAAK,SAAS,GAAG,KAAK;AAE7E,UAAI,QAAQ,KAAK,SAAS,KAAK,OAAQ,QAAO,GAAG,IAAI,MAAM,uCAAuC,CAAC;AAEnG,WAAK,SAAS,cAAc,OAAO,EAAE;AAAA,IACvC;AAEA,SAAK,UAAU,SAAS,SAAU,OAAO,WAAW,IAAI;AACtD,UAAI,OAAO;AAEX,WAAK,WAAW,OAAO,SAAU,KAAK,OAAO;AAC3C,YAAI,IAAK,QAAO,GAAG,GAAG;AAEtB,YAAI,WAAW,OAAO,SAAS,OAAO,QAAQ,CAAC;AAE/C,qBAAa,MAAM,UAAU,WAAW,SAAUF,MAAK,OAAO;AAC5D,cAAIA,KAAK,QAAO,GAAGA,IAAG;AAEtB,cAAI,CAAC,MAAO,QAAO,GAAG,IAAI,MAAM,+BAA+B,CAAC;AAEhE,iBAAO,GAAG,MAAM,IAAI;AAAA,QACtB,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,aAAa,SAAU,OAAO,IAAI;AAC/C,WAAK,kBAAkB,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;AAAA,IAClD;AAEA,SAAK,UAAU,OAAO,SAAU,OAAO,MAAM,IAAI;AAC/C,UAAI,OAAO,SAAS,WAAY,QAAO,KAAK,KAAK,OAAO,MAAM,IAAI;AAClE,UAAI,CAAC,KAAM,QAAO,CAAC;AACnB,UAAI,CAAC,KAAK,OAAQ,QAAO,KAAK,cAAc,OAAO,MAAM,EAAE;AAE3D,UAAI,OAAO;AAEX,UAAI,UAAU,KAAK,WAAY,QAAO,QAAQ,SAAS,IAAI,MAAM,KAAK,QAAQ,CAAC;AAE/E,WAAK,MAAM,OAAO,SAAU,KAAK,OAAO,QAAQ;AAC9C,YAAI,CAAC,OAAO,QAAQ,KAAK,EAAG,QAAO,KAAK,QAAQ,GAAG,MAAM;AACzD,YAAI,KAAK,SAAS,MAAO,QAAO,GAAG,OAAO,IAAI,MAAM,+BAA+B,CAAC;AAEpF,YAAI,QAAQ,KAAK,SAAS;AAC1B,YAAI,MAAM,KAAK,OAAO;AAEtB,YAAI,CAAC,KAAK;AACR,cAAI,OAAO,KAAK,SAAS,KAAK,IAAI;AAClC,cAAI,QAAQ,KAAK,UAAU,KAAK,IAAI,IAAI;AAExC,cAAI,OAAO,MAAO,SAAQ;AAC1B,cAAI,QAAQ,OAAO,QAAQ,GAAI,OAAM;AAAA,QACvC;AAEA,YAAI,MAAM,MAAM,OAAO,MAAO,QAAO,GAAG,IAAI,MAAM,+BAA+B,CAAC;AAElF,YAAI,IAAI;AAAA,UACN,MAAM,KAAK,SAAS;AAAA,UACpB;AAAA,UACA,OAAO;AAAA,UACP,aAAa,QAAQ,OAAO,KAAK,gBAAgB,YAAY,KAAK,cAAc,KAAK;AAAA,UACrF;AAAA,UACA;AAAA,UACA,MAAM,YAAY,KAAK;AAAA,UACvB,WAAW;AAAA,UACX,UAAU,MAAM;AAAA,QAClB;AAEA,aAAK,SAAS,KAAK,CAAC;AACpB,aAAK,aAAa;AAClB,YAAI,EAAE,YAAa,MAAK,iBAAiB,CAAC;AAAA,MAC5C,CAAC;AAED,eAAS,KAAM,OAAO,QAAQ;AAC5B,iBAAS,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;AAC1C,eAAK,MAAM,CAAC,EAAE,UAAU,KAAK;AAAA,QAC/B;AACA,WAAG,MAAM,OAAO,MAAM;AAAA,MACxB;AAAA,IACF;AAEA,SAAK,UAAU,mBAAmB,SAAU,GAAG;AAC7C,UAAI,OAAO;AACX,UAAI,KAAK,EAAE;AAEX,WAAK,SAAS,IAAI,WAAY;AAC5B,YAAI,KAAK,OAAQ,QAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAEhD,gBAAQ,SAAS,SAAS,KAAK,aAAa,WAAY;AACtD,cAAI,KAAK,OAAQ,QAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAEhD,cAAI,YAAY;AAChB,qBAAW,QAAQ,KAAK,OAAO;AAC7B,kBAAM,MAAM,KAAK;AACjB,gBAAI,IAAI,IAAI,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI;AACnC,mBAAO,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,GAAI,KAAI,IAAI,KAAK,IAAI;AACxD,gBAAI,IAAI,OAAO,EAAE,QAAQ,MAAM,IAAI,EAAE,MAAM;AACzC,0BAAY;AACZ;AAAA,YACF;AAAA,UACF;AAEA,cAAI,CAAC,UAAW,MAAK,IAAI,MAAM,+BAA+B,CAAC;AAAA,QACjE,CAAC;AAAA,MACH,CAAC;AAED,eAAS,KAAM,KAAK;AAClB,YAAI,IAAI,KAAK,SAAS,QAAQ,CAAC;AAC/B,YAAI,IAAI,IAAI;AACV,iBAAO,KAAK,UAAU,CAAC;AACvB,YAAE,WAAW;AACb,aAAG,GAAG;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,SAAK,UAAU,QAAQ,SAAU,QAAQ,IAAI;AAC3C,UAAI,WAAW,EAAG,QAAO,GAAG,MAAM,GAAG,CAAC;AAEtC,UAAI,OAAO;AACX,UAAI,QAAQ,KAAK,UAAU,KAAK,SAAS,CAAC;AAC1C,UAAI,cAAc;AAElB,WAAK,MAAM,IAAI;AAEf,eAAS,OAAQ,KAAK;AACpB,YAAI,QAAQ,GAAG,EAAG,QAAO,GAAG,MAAM,aAAa,MAAM;AAErD,YAAI,OAAO,KAAK,UAAU,GAAG;AAC7B,eAAO,CAAC,KAAK,KAAK,IAAI,IAAI,GAAG;AAC3B,cAAI,QAAQ,IAAI,EAAG,QAAO,GAAG,MAAM,aAAa,MAAM;AACtD,iBAAO,KAAK,UAAU,IAAI;AAAA,QAC5B;AAEA,aAAK,SAAS,QAAQ,MAAM,WAAW;AAAA,MACzC;AAEA,eAAS,YAAa,KAAK,MAAM;AAC/B,YAAI,IAAK,QAAO,GAAG,GAAG;AAEtB,YAAI,KAAK,OAAO,QAAQ;AACtB,wBAAc,KAAK;AACnB,iBAAO,KAAK,KAAK;AAAA,QACnB,OAAO;AACL,oBAAU,KAAK;AACf,cAAI,KAAK,OAAO,KAAK,KAAK,MAAM,aAAa;AAC3C,0BAAc,KAAK,QAAQ,KAAK,KAAK;AACrC,mBAAO,WAAW;AAAA,UACpB,OAAO;AACL,mBAAO,KAAK,QAAQ,KAAK,KAAK,CAAC;AAAA,UACjC;AAAA,QACF;AAAA,MACF;AAEA,eAAS,KAAM,KAAK,MAAM;AACxB,YAAI,IAAK,QAAO,GAAG,GAAG;AAEtB,YAAI,MAAM;AACR,cAAI,KAAK,OAAO,QAAQ;AACtB,0BAAc,KAAK;AACnB,mBAAO,OAAO,KAAK,KAAK;AAAA,UAC1B;AACA,oBAAU,KAAK;AAAA,QACjB;AAEA,YAAI,CAAC,MAAM,OAAQ,QAAO,GAAG,IAAI,MAAM,eAAe,CAAC;AACvD,aAAK,SAAS,QAAQ,MAAM,MAAM,GAAG,IAAI;AAAA,MAC3C;AAAA,IACF;AAEA,SAAK,UAAU,gBAAgB,SAAU,OAAO,MAAM,IAAI;AACxD,UAAI,OAAO;AACX,WAAK,MAAM,SAAU,KAAK;AACxB,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,aAAK,KAAK,OAAO,MAAM,EAAE;AAAA,MAC3B,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,aAAa,SAAU,OAAO,IAAI;AAC/C,WAAK,SAAS,QAAQ,OAAO,EAAE;AAAA,IACjC;AAEA,SAAK,UAAU,aAAa,SAAU,OAAO,MAAM,OAAO,MAAM,IAAI;AAOlE,UAAI,OAAO;AACX,UAAI,UAAU;AACd,UAAI,UAAU,CAAC;AACf,UAAI,OAAO,IAAI;AACf,UAAI,IAAI,OAAO,IAAI;AAEnB,aAAO,MAAM;AACX,YAAI,KAAK,KAAK,IAAI,IAAI,GAAG;AACvB,oBAAU;AACV;AAAA,QACF;AAEA,YAAI,MAAM,KAAK,QAAQ,IAAI;AAC3B,eAAO,KAAK,OAAO,IAAI;AAEvB,YAAI,IAAI,MAAM,MAAM,UAAU,MAAM,MAAM,CAAC,EAAE,UAAU,KAAK;AAC1D;AACA;AAAA,QACF;AAEA,YAAI,CAAC,KAAK,KAAK,IAAI,GAAG,EAAG;AACzB,gBAAQ,KAAK,GAAG;AAAA,MAClB;AAEA,UAAI,YAAY,MAAM,KAAK,KAAK,IAAI,IAAI,EAAG,WAAU;AAErD,UAAI,QAAQ;AACZ,UAAI,cAAc;AAClB,UAAI,eAAe,IAAI,MAAM,QAAQ,MAAM;AAC3C,UAAI,UAAU,QAAQ,UAAU,UAAU,KAAK,IAAI;AAEnD,WAAK,IAAI,GAAG,IAAI,QAAQ,QAAQ,IAAK,MAAK,SAAS,QAAQ,QAAQ,CAAC,GAAG,SAAS;AAChF,UAAI,UAAU,GAAI,MAAK,SAAS,QAAQ,SAAS,SAAS;AAC1D,UAAI,CAAC,QAAQ,UAAU,YAAY,GAAI,iBAAgB,IAAI;AAE3D,eAAS,UAAW,KAAK,MAAM;AAC7B,YAAI,IAAK,SAAQ;AACjB,YAAI,KAAM,eAAc;AACxB,YAAI,CAAC,EAAE,QAAS,iBAAgB,KAAK;AAAA,MACvC;AAEA,eAAS,UAAW,KAAK,MAAM;AAC7B,YAAI,IAAK,SAAQ;AACjB,YAAI,KAAM,cAAa,QAAQ,QAAQ,KAAK,KAAK,CAAC,IAAI;AACtD,YAAI,CAAC,EAAE,QAAS,iBAAgB,KAAK;AAAA,MACvC;AAEA,eAAS,gBAAiB,KAAK;AAC7B,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,aAAK,gBAAgB,OAAO,MAAM,OAAO,cAAc,aAAa,MAAM,EAAE;AAAA,MAC9E;AAAA,IACF;AAEA,SAAK,UAAU,eAAe,SAAU,OAAO,MAAM,OAAO,IAAI;AAC9D,UAAI,OAAO;AACX,WAAK,MAAM,SAAU,KAAK;AACxB,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,aAAK,IAAI,OAAO,MAAM,OAAO,EAAE;AAAA,MACjC,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,SAAS,SAAU,OAAO,MAAM,OAAO,KAAK,MAAM,IAAI;AACnE,UAAI,CAAC,KAAK,SAAU,QAAO,KAAK,gBAAgB,OAAO,MAAM,OAAO,KAAK,MAAM,EAAE;AACjF,WAAK,SAAS,OAAO,MAAM,MAAM,cAAc,MAAM,OAAO,MAAM,OAAO,KAAK,MAAM,EAAE,CAAC;AAAA,IACzF;AAEA,aAAS,cAAe,MAAM,OAAO,MAAM,OAAO,KAAK,MAAM,IAAI;AAC/D,aAAO,SAAU,KAAK;AACpB,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,aAAK,gBAAgB,OAAO,MAAM,OAAO,KAAK,MAAM,EAAE;AAAA,MACxD;AAAA,IACF;AAEA,SAAK,UAAU,kBAAkB,SAAU,OAAO,MAAM,OAAO,KAAK,MAAM,IAAI;AAC5E,UAAI,OAAO;AACX,UAAI,UAAU,MAAM,SAAS,KAAK,MAAM,IAAI;AAC5C,UAAI,QAAQ;AAEZ,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAK,MAAK,SAAS,QAAQ,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,GAAG,MAAM;AAC7F,UAAI,KAAM,MAAK,SAAS,QAAQ,OAAO,MAAM,OAAO,MAAM;AAAA,UACrD,QAAO;AACZ,UAAI,IAAK,MAAK,SAAS,aAAa,IAAI,OAAO,IAAI,WAAW,MAAM;AAEpE,eAAS,OAAQ,KAAK;AACpB,YAAI,IAAK,SAAQ;AACjB,YAAI,EAAE,QAAS;AACf,YAAI,MAAO,QAAO,GAAG,KAAK;AAC1B,aAAK,WAAW,OAAO,MAAM,OAAO,MAAM,EAAE;AAAA,MAC9C;AAAA,IACF;AAEA,SAAK,UAAU,aAAa,SAAU,OAAO,MAAM,OAAO,MAAM,IAAI;AAClE,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAK,MAAK,KAAK,IAAI,MAAM,CAAC,EAAE,KAAK;AACnE,WAAK,KAAK,IAAI,IAAI,KAAK;AAEvB,UAAI,MAAM;AACR,YAAI,KAAK,SAAS,IAAI,OAAO,IAAI,GAAG;AAClC,cAAI,KAAK,QAAQ;AACf,iBAAK,OAAO,oBAAoB;AAChC,iBAAK,OAAO,mBAAmB,KAAK;AAAA,UACtC;AACA,eAAK,KAAK,YAAY,OAAO,MAAM,IAAI;AAAA,QACzC;AACA,YAAI,KAAK,MAAM,OAAQ,MAAK,UAAU,EAAE,OAAO,MAAM,GAAG,IAAI;AAE5D,YAAI,CAAC,KAAK,UAAU;AAClB,cAAI,CAAC,KAAK,QAAS,MAAK,UAAU,KAAK,SAAS,SAAS,GAAG,KAAK,MAAM;AACvE,cAAI,KAAK,QAAQ,KAAK,MAAM,IAAI;AAC9B,iBAAK,QAAQ,MAAM,GAAG,KAAK,MAAM;AACjC,iBAAK,QAAQ,KAAK,CAAC;AACnB,gBAAI,KAAK,QAAQ,KAAK,MAAM,IAAI;AAC9B,mBAAK,KAAK,MAAM;AAAA,YAClB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,WAAK,MAAM,MAAM,EAAE;AAAA,IACrB;AAEA,SAAK,UAAU,kBAAkB,SAAU,OAAO,MAAM,OAAO,YAAY,aAAa,MAAM,IAAI;AAChG,UAAI,UAAU,CAAC;AACf,UAAI,cAAc,MAAM;AACxB,UAAI,MAAM,OAAO,IAAI,QAAQ,KAAK,IAAI,OAAO,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,YAAY,MAAM;AAGjG,UAAI,WAAW,aAAa,GAAG,GAAG;AAChC,aAAK,OAAO,OAAO,MAAM,SAAS,MAAM,MAAM,EAAE;AAChD;AAAA,MACF;AAGA,aAAO,MAAM;AACX,YAAI,OAAO;AACX,YAAI,OAAO,KAAK,QAAQ,IAAI,KAAK;AAEjC,YAAI,YAAY,UAAU,YAAY,CAAC,EAAE,UAAU,MAAM;AACvD,iBAAO,YAAY,MAAM;AACzB,kBAAQ,KAAK,IAAI;AAAA,QACnB,WAAW,WAAW,UAAU,WAAW,CAAC,EAAE,UAAU,MAAM;AAC5D,iBAAO,WAAW,MAAM;AAAA,QAC1B,OAAO;AAEL,eAAK,qBAAqB,OAAO,MAAM,KAAK,OAAO,SAAS,MAAM,EAAE;AACpE;AAAA,QACF;AAEA,gBAAQ,KAAK,GAAG;AAChB,cAAM,IAAI,QAAQ,KAAK,KAAK,OAAO,IAAI,KAAK,GAAG,OAAO,OAAO,KAAK,IAAI,GAAG,IAAI,OAAO,KAAK,IAAI;AAG7F,YAAI,WAAW,aAAa,GAAG,GAAG;AAChC,eAAK,OAAO,OAAO,MAAM,SAAS,MAAM,MAAM,EAAE;AAChD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,SAAK,UAAU,uBAAuB,SAAU,OAAO,MAAM,KAAK,OAAO,OAAO,MAAM,IAAI;AACxF,UAAI,cAAc,MAAM;AACxB,UAAI,WAAW,YAAY,SAAS,YAAY,YAAY,SAAS,CAAC,EAAE,QAAQ,IAAI;AACpF,UAAI,aAAa,KAAK,IAAI,KAAK,UAAU,IAAI,KAAK,GAAG,KAAK,UAAU,QAAQ,CAAC,IAAI;AACjF,UAAI,SAAS,aAAa;AAC1B,UAAI,OAAO;AAEX,WAAK,kBAAkB,YAAY,KAAK,aAAa,SAAU,KAAK,OAAO,YAAY;AACrF,YAAI,IAAK,QAAO,GAAG,GAAG;AAEtB,YAAI,WAAW,OAAO,SAAS,OAAO,MAAM;AAC5C,YAAI,YAAY;AAEhB,YAAI,KAAK,UAAU,KAAK,QAAQ,CAAC,MAAM,WAAW;AAChD,iBAAO,GAAG,IAAI,MAAM,oCAAoC,CAAC;AAAA,QAC3D;AAEA,YAAI,MAAM,WAAW;AACnB,uBAAa,MAAM,UAAU,MAAM,WAAW,SAAUA,MAAK,OAAO;AAClE,gBAAIA,KAAK,QAAO,GAAGA,IAAG;AACtB,gBAAI,CAAC,MAAO,QAAO,GAAG,IAAI,MAAM,wCAAwC,CAAC;AAEzE,wBAAY,EAAE,OAAO,aAAa,IAAI,GAAG,WAAW,MAAM,UAAU;AACpE,kBAAM;AAAA,UACR,CAAC;AAAA,QACH,OAAO;AACL,cAAI,OAAO,QAAQ,SAAS,MAAM,GAAG,EAAE,GAAG,KAAK,GAAG,MAAM,GAAG;AACzD,mBAAO,GAAG,IAAI,MAAM,wBAAwB,CAAC;AAAA,UAC/C;AAEA,gBAAM;AAAA,QACR;AAEA,iBAAS,QAAS;AAChB,eAAK,OAAO,CAAC,CAAC;AAEd,cAAI,SAAS,KAAK,QAAQ;AAExB,gBAAI,KAAK,SAAU,MAAK,UAAU;AAClC,iBAAK,SAAS;AACd,iBAAK,OAAO;AACZ,iBAAK,aAAa,MAAM,OAAO,SAAS,CAAC;AACzC,gBAAI,KAAK,QAAS,MAAK,QAAQ,KAAK,GAAG,KAAK,MAAM;AAClD,iBAAK,KAAK,QAAQ;AAAA,UACpB;AAEA,eAAK,OAAO,OAAO,MAAM,MAAM,OAAO,UAAU,GAAG,WAAW,MAAM,EAAE;AAAA,QACxE;AAAA,MACF,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,oBAAoB,SAAU,YAAY,KAAK,aAAa,IAAI;AAC7E,UAAI,UAAU,KAAK,UAAU,UAAU;AACvC,UAAI,QAAQ,IAAI,MAAM,QAAQ,MAAM;AACpC,UAAI,QAAQ,CAAC;AACb,UAAI,QAAQ;AACZ,UAAI,UAAU,MAAM;AAEpB,eAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,YAAI,QAAQ,CAAC,MAAM,IAAI,OAAO;AAC5B,gBAAM,KAAK,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QAClB,WAAW,YAAY,UAAU,QAAQ,CAAC,MAAM,YAAY,CAAC,EAAE,OAAO;AACpE,gBAAM,KAAK,YAAY,CAAC,CAAC;AACzB,iBAAO,MAAM,YAAY,MAAM,CAAC;AAAA,QAClC,WAAW,KAAK,KAAK,IAAI,QAAQ,CAAC,CAAC,GAAG;AACpC,eAAK,SAAS,QAAQ,QAAQ,CAAC,GAAG,MAAM;AAAA,QAC1C,OAAO;AACL,iBAAO,IAAI,MAAM,sCAAsC,CAAC;AAAA,QAC1D;AAAA,MACF;AAEA,eAAS,OAAQ,KAAK,MAAM;AAC1B,YAAI,IAAK,SAAQ;AACjB,YAAI,KAAM,OAAM,QAAQ,QAAQ,KAAK,KAAK,CAAC,IAAI;AAC/C,YAAI,CAAC,EAAE,QAAS,MAAK,KAAK;AAAA,MAC5B;AAEA,eAAS,KAAM,KAAK;AAClB,YAAI,IAAK,QAAO,GAAG,GAAG;AAEtB,WAAG,MAAM,OAAO,KAAK;AAAA,MACvB;AAAA,IACF;AAEA,SAAK,UAAU,YAAY,SAAU,SAAS,MAAM;AAClD,eAAS,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;AAC1C,YAAI,OAAO,KAAK,MAAM,CAAC;AACvB,YAAI,SAAS,KAAM,MAAK,KAAK,OAAO;AAAA,MACtC;AAAA,IACF;AAEA,SAAK,UAAU,cAAc,SAAU,SAAS;AAC9C,eAAS,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,IAAK,MAAK,MAAM,CAAC,EAAE,OAAO,OAAO;AAAA,IAC1E;AAEA,SAAK,UAAU,aAAa,SAAU,OAAO,KAAK,IAAI;AACpD,YAAM,QAAQ,KAAK,SAAS,MAAM,OAAO,GAAG;AAC5C,UAAI,GAAI,SAAQ,SAAS,IAAI,MAAM,KAAK;AACxC,aAAO;AAAA,IACT;AAEA,SAAK,UAAU,MAAM,SAAU,OAAO,KAAK,IAAI;AAC7C,UAAI,OAAO,QAAQ,WAAY,QAAO,KAAK,IAAI,OAAO,QAAW,GAAG;AACpE,UAAI,QAAQ,QAAW;AACrB,cAAMG,OAAM,KAAK,SAAS,IAAI,KAAK;AACnC,YAAI,GAAI,SAAQ,SAAS,IAAI,MAAMA,IAAG;AACtC,eAAOA;AAAA,MACT;AACA,YAAM,QAAQ,MAAM;AACpB,YAAM,MAAM,UAAU,KAAK,SAAS,MAAM,OAAO,GAAG;AACpD,UAAI,GAAI,SAAQ,SAAS,IAAI,MAAM,GAAG;AACtC,aAAO;AAAA,IACT;AAEA,SAAK,UAAU,eAAe,SAAU,OAAO,IAAI;AACjD,UAAI,OAAO;AACX,WAAK,MAAM,SAAU,KAAK;AACxB,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,aAAK,SAAS,QAAQ,IAAI,OAAO,EAAE;AAAA,MACrC,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,OAAO,SAAU,MAAM,IAAI;AACxC,UAAI,OAAO,SAAS,WAAY,QAAO,KAAK,KAAK,CAAC,GAAG,IAAI;AACzD,UAAI,OAAO;AACX,WAAK,MAAM,SAAU,KAAK;AACxB,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,YAAI,QAAQ,KAAK,OAAQ,MAAK,OAAO,MAAM,QAAQ;AAAA,YAC9C,SAAQ,SAAS,QAAQ;AAAA,MAChC,CAAC;AAED,eAAS,WAAY;AACnB,YAAI,KAAK,WAAW,EAAG,IAAG,IAAI,MAAM,eAAe,CAAC;AAAA,YAC/C,MAAK,IAAI,KAAK,SAAS,GAAG,MAAM,EAAE;AAAA,MACzC;AAAA,IACF;AAEA,SAAK,UAAU,MAAM,SAAU,OAAO,MAAM,IAAI;AAC9C,UAAI,OAAO,SAAS,WAAY,QAAO,KAAK,IAAI,OAAO,MAAM,IAAI;AAEjE,aAAO,EAAE,GAAG,KAAK;AACjB,UAAI,CAAC,KAAK,OAAQ,MAAK,SAAS,OAAO,eAAe;AAEtD,UAAI,CAAC,KAAK,OAAQ,QAAO,KAAK,aAAa,OAAO,MAAM,EAAE;AAE1D,UAAI,CAAC,KAAK,UAAU;AAClB,gBAAQ,SAAS,IAAI,IAAI,MAAM,gBAAgB,CAAC;AAChD,eAAO,KAAK;AAAA,MACd;AAEA,UAAI,KAAK,QAAS,MAAK,gBAAgB,IAAI,KAAK,OAAO;AAEvD,UAAI,CAAC,KAAK,SAAS,IAAI,KAAK,GAAG;AAC7B,YAAI,QAAQ,KAAK,SAAS,MAAO,QAAO,QAAQ,SAAS,IAAI,IAAI,MAAM,sBAAsB,CAAC;AAE9F,YAAI,IAAI,EAAE,OAAO,GAAG,MAAM,OAAO,OAAc,SAAS,MAAM,WAAW,GAAG,UAAU,GAAG;AACzF,aAAK,SAAS,KAAK,CAAC;AAEpB,YAAI,QAAQ,OAAO,KAAK,gBAAgB,YAAY,KAAK,cAAc,KAAK,mBAAoB,MAAK,gBAAgB,CAAC;AAEtH,aAAK,aAAa;AAClB,YAAI,KAAK,QAAQ;AACf,gBAAM,SAAS,KAAK;AACpB,eAAK,SAAS;AACd,iBAAO,KAAK;AAAA,QACd;AACA,eAAO,KAAK;AAAA,MACd;AAEA,UAAI,QAAQ,KAAK,cAAe,MAAK,UAAU,QAAQ,KAAK,aAAa,GAAG,EAAE;AAAA,eACrE,KAAK,WAAW,OAAO,OAAQ,MAAK,UAAU,KAAK,QAAQ,EAAE;AAEtE,WAAK,WAAW,OAAO,EAAE;AACzB,aAAO,KAAK;AAAA,IACd;AAEA,SAAK,UAAU,eAAe,SAAU,OAAO,MAAM,IAAI;AACvD,UAAI,OAAO;AACX,WAAK,MAAM,SAAU,KAAK;AACxB,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,aAAK,IAAI,OAAO,MAAM,EAAE;AAAA,MAC1B,CAAC;AACD,aAAO,KAAK;AAAA,IACd;AAEA,SAAK,UAAU,WAAW,SAAU,OAAO,KAAK,MAAM,IAAI;AACxD,UAAI,OAAO,SAAS,WAAY,QAAO,KAAK,SAAS,OAAO,KAAK,MAAM,IAAI;AAC3E,UAAI,CAAC,KAAK,OAAQ,QAAO,KAAK,kBAAkB,OAAO,KAAK,MAAM,EAAE;AAEpE,UAAI,OAAO;AACX,UAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;AAElC,UAAI,KAAK,IAAI,OAAO,GAAG,EAAG,QAAO,KAAK,UAAU,OAAO,KAAK,MAAM,EAAE;AACpE,UAAI,CAAC,KAAM,QAAO,QAAQ,SAAS,IAAI,IAAI,MAAM,sBAAsB,CAAC;AAExE,UAAI,QAAQ,KAAK,QAAS,MAAK,gBAAgB,IAAI,KAAK,OAAO;AAE/D,WAAK,SAAS,EAAE,OAAc,IAAS,GAAG,SAAU,KAAK;AACvD,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,aAAK,UAAU,OAAO,KAAK,MAAM,EAAE;AAAA,MACrC,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,YAAY,SAAU,OAAO,KAAK,MAAM,IAAI;AACzD,UAAI,MAAM,QAAQ,KAAK;AACvB,UAAI,QAAQ,MAAM,QAAQ,GAAG,IAAI,KAAK;AAEtC,WAAK,SAAS,aAAa,OAAO,MAAM,OAAO,OAAO;AAEtD,eAAS,QAAS,KAAK,SAAS;AAC9B,YAAI,IAAK,QAAO,GAAG,GAAG;AAEtB,YAAI,QAAQ,IAAI,MAAM,QAAQ,MAAM;AAEpC,iBAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,cAAI;AACF,kBAAM,CAAC,IAAI,QAAQ,MAAM,OAAO,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC;AAAA,UACzD,SAASH,MAAK;AACZ,mBAAO,GAAGA,IAAG;AAAA,UACf;AAAA,QACF;AAEA,WAAG,MAAM,KAAK;AAAA,MAChB;AAAA,IACF;AAEA,SAAK,UAAU,oBAAoB,SAAU,OAAO,KAAK,MAAM,IAAI;AACjE,UAAI,OAAO;AACX,WAAK,MAAM,SAAU,KAAK;AACxB,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,aAAK,SAAS,OAAO,KAAK,MAAM,EAAE;AAAA,MACpC,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,eAAe,WAAY;AACxC,eAAS,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,IAAK,MAAK,MAAM,CAAC,EAAE,OAAO;AAAA,IACnE;AAEA,SAAK,UAAU,oBAAoB,SAAU,MAAM;AACjD,aAAO,IAAI,YAAY,MAAM,IAAI;AAAA,IACnC;AAEA,SAAK,UAAU,mBAAmB,SAAU,MAAM;AAChD,aAAO,IAAI,WAAW,MAAM,IAAI;AAAA,IAClC;AAGA,SAAK,UAAU,WAAW,SAAU,IAAI;AACtC,UAAI,CAAC,KAAK,KAAK;AACb,aAAK,MAAM,OAAO,KAAK,KAAK,QAAQ,KAAK;AACzC,aAAK,eAAe,OAAO,aAAa,KAAK,GAAG;AAAA,MAClD;AACA,WAAK,SAAS,IAAI,MAAM,GAAG,KAAK,KAAK,EAAE;AAAA,IACzC;AAEA,SAAK,UAAU,SAAS,SAAU,OAAO,IAAI;AAC3C,UAAI,CAAC,GAAI,MAAK;AAEd,UAAI,OAAO;AACX,UAAI,OAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAChD,WAAK,OAAO,MAAM,QAAQ;AAE1B,eAAS,SAAU,KAAK;AACtB,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,YAAI,MAAM,KAAK;AACf,aAAK,QAAQ,KAAK;AAClB,WAAG,MAAM,GAAG;AAAA,MACd;AAAA,IACF;AAEA,SAAK,UAAU,QAAQ,SAAU,IAAI;AACnC,WAAK,OAAO,CAAC,GAAG,EAAE;AAAA,IACpB;AAEA,SAAK,UAAU,iBAAiB,SAAU,IAAI;AAC5C,YAAM,OAAO;AAEb,WAAK,MAAM,SAAU,KAAK;AACxB,YAAI,IAAK,IAAG,GAAG;AAAA,YACV,MAAK,SAAS,QAAQ,EAAE;AAAA,MAC/B,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,SAAS,SAAU,IAAI;AACpC,YAAM,OAAO;AAEb,iBAAW,QAAQ,KAAK,OAAO;AAC7B,YAAI,CAAC,KAAK,WAAY,MAAK,OAAO;AAAA,MACpC;AAEA,WAAK,YAAY,SAAS,IAAI;AAE9B,eAAS,QAAS,KAAK;AACrB,YAAI,CAAC,IAAK,MAAK,KAAK,OAAO;AAC3B,WAAG,GAAG;AAAA,MACR;AAAA,IACF;AAEA,SAAK,UAAU,cAAc,SAAU,IAAI,OAAO;AAChD,UAAI,OAAO;AAEX,WAAK,WAAW;AAChB,WAAK,WAAW;AAEhB,WAAK,SAAS,MAAM,SAAU,KAAK;AACjC,YAAI,CAAC,IAAK,OAAM;AAChB,aAAK,SAAS,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAChD,WAAG,GAAG;AAAA,MACR,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,WAAW,SAAU,KAAK;AACvC,WAAK,YAAY,QAAQ;AAEzB,aAAO,KAAK,SAAS,QAAQ;AAC3B,aAAK,SAAS,IAAI,EAAE,SAAS,GAAG;AAAA,MAClC;AACA,aAAO,KAAK,YAAY,QAAQ;AAC9B,aAAK,YAAY,IAAI,EAAE,SAAS,GAAG;AAAA,MACrC;AAAA,IACF;AAEA,SAAK,UAAU,cAAc,SAAU,OAAO,IAAI;AAChD,UAAI,OAAO;AACX,UAAI,UAAU,MAAM;AACpB,UAAI,QAAQ;AAEZ,UAAI,CAAC,QAAS,QAAO,KAAK,QAAQ,OAAO,EAAE;AAC3C,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,aAAK,SAAS,IAAI,KAAK,QAAQ,MAAM,CAAC,GAAG,MAAM,IAAI;AAAA,MACrD;AAEA,eAAS,KAAM,KAAK;AAClB,YAAI,IAAK,SAAQ;AACjB,YAAI,EAAE,QAAS;AACf,YAAI,MAAO,QAAO,GAAG,KAAK;AAC1B,aAAK,QAAQ,OAAO,EAAE;AAAA,MACxB;AAAA,IACF;AAEA,SAAK,UAAU,UAAU,SAAU,OAAO,IAAI;AAC5C,UAAI,CAAC,KAAK,OAAQ,QAAO,KAAK,gBAAgB,OAAO,EAAE;AACvD,UAAI,CAAC,KAAK,SAAU,QAAO,GAAG,IAAI,MAAM,+CAA+C,CAAC;AAExF,UAAI,OAAO;AACX,UAAI,UAAU;AACd,UAAI,SAAS;AACb,UAAI,QAAQ;AACZ,UAAI,YAAY,IAAI,MAAM,MAAM,SAAS,MAAM,SAAS,IAAI,IAAI,CAAC;AACjE,UAAI,aAAa,KAAK,SAAS;AAC/B,UAAI,YAAY,IAAI,MAAM,MAAM,MAAM;AAEtC,UAAI,CAAC,QAAS,QAAO,GAAG;AAExB,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,YAAI,OAAO,KAAK,OAAO,OAAO,MAAM,CAAC,CAAC;AACtC,YAAI,QAAQ,KAAK,QAAQ,KAAK,IAAI;AAKlC,YAAI,KAAK,SAAS,QAAS,QAAO,GAAG,IAAI,MAAM,wCAAwC,CAAC;AAExF,kBAAU,KAAK;AACf,kBAAU,CAAC,IAAI;AAEf,iBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,cAAI,OAAO,MAAM,CAAC;AAClB,cAAI,KAAK,SAAS,cAAc,KAAK,QAAQ,aAAa,UAAU,QAAQ;AAC1E,sBAAU,KAAK,QAAQ,UAAU,IAAI;AAAA,UACvC,OAAO;AACL;AACA,iBAAK,SAAS,QAAQ,KAAK,OAAO,MAAM,IAAI;AAAA,UAC9C;AAAA,QACF;AAAA,MACF;AAEA,UAAI,KAAK,QAAQ,MAAM,QAAQ;AAC7B;AACA,aAAK,OAAO,KAAK,OAAO,SAAS,KAAK,QAAQ,OAAO,KAAK,SAAS,MAAM,MAAM,GAAG,KAAK,WAAW,SAAU,KAAK,KAAK;AACpH,cAAI,IAAK,QAAO,KAAK,GAAG;AACxB,eAAK,SAAS,aAAa,KAAK,SAAS,MAAM,SAAS,GAAG,KAAK,IAAI;AAAA,QACtE,CAAC;AAAA,MACH;AAEA,UAAI,CAAC,KAAK,WAAW;AACnB;AACA,YAAI,UAAU,WAAW,EAAG,MAAK,SAAS,KAAK,MAAM,KAAK,YAAY,UAAU,CAAC,GAAG,IAAI;AAAA,YACnF,MAAK,SAAS,KAAK,MAAM,KAAK,YAAY,OAAO,OAAO,SAAS,GAAG,IAAI;AAAA,MAC/E;AAEA,WAAK,SAAS,aAAa,YAAY,WAAW,IAAI;AAEtD,eAAS,KAAM,KAAK;AAClB,YAAI,IAAK,SAAQ;AACjB,YAAI,EAAE,QAAS;AACf,YAAI,MAAO,QAAO,GAAG,KAAK;AAE1B,YAAI,QAAQ,KAAK;AAGjB,aAAK,cAAc;AACnB,iBAASI,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AACrC,eAAK,SAAS,IAAI,KAAK,QAAQ,IAAI;AACnC,eAAK,KAAK,IAAI,IAAI,KAAK,QAAQ;AAAA,QACjC;AACA,aAAK,KAAK,QAAQ;AAElB,YAAI,UAAU,KAAK,SAAS,QAAQ,IAAI,EAAE,OAAc,QAAQ,KAAK,SAAS,MAAM,IAAI,EAAE,MAAa;AACvG,YAAI,KAAK,MAAM,OAAQ,MAAK,UAAU,OAAO;AAE7C,aAAK,MAAM,MAAM,EAAE;AAAA,MACrB;AAAA,IACF;AAEA,SAAK,UAAU,kBAAkB,SAAU,OAAO,IAAI;AACpD,UAAI,OAAO;AACX,WAAK,MAAM,SAAU,KAAK;AACxB,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,aAAK,QAAQ,OAAO,EAAE;AAAA,MACxB,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,kBAAkB,SAAU,OAAO,KAAK;AACrD,UAAI,OAAO;AACX,WAAK,MAAM,WAAY;AACrB,aAAK,QAAQ,OAAO,GAAG;AAAA,MACzB,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,eAAe,WAAY;AACxC,UAAI,MAAM,KAAK,SAAS;AAExB,eAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,YAAI,OAAO,KAAK,SAAS,CAAC;AAC1B,YAAI,CAAC,KAAK,SAAS,CAAC,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,QAAQ,CAAC,KAAK,KAAK,IAAI,KAAK,QAAQ,CAAC,IAAI;AACnG;AAAA,QACF;AAEA,eAAO,KAAK,UAAU,GAAG;AACzB;AAEA,YAAI,KAAK,MAAO,MAAK,KAAK,KAAK,OAAO,MAAM,KAAK,QAAQ;AAAA,iBAChD,KAAK,OAAQ,MAAK,OAAO,KAAK,QAAQ,GAAG,KAAK,QAAQ;AAAA,YAC1D,MAAK,IAAI,KAAK,OAAO,KAAK,SAAS,KAAK,QAAQ;AAAA,MACvD;AAAA,IACF;AAEA,SAAK,UAAU,gBAAgB,SAAU,IAAI;AAC3C,UAAI,UAAU,KAAK,SAAS,MAAM,QAAQ;AAC1C,UAAI,OAAO;AACX,UAAI,QAAQ;AAYZ,UAAI,CAAC,SAAS;AACZ,aAAK,aAAa;AAClB,eAAO,GAAG,IAAI;AAAA,MAChB;AAEA,cAAQ,OAAO,KAAK,SAAS,MAAM,WAAW,OAAO,MAAM;AACzD,aAAK,SAAS,YAAY,KAAK,QAAQ,KAAK,QAAQ,MAAM;AAAA,MAC5D;AAEA,WAAK,aAAa;AAElB,eAAS,OAAQ,KAAK;AACpB,YAAI,IAAK,SAAQ;AACjB,YAAI,EAAE,QAAS;AACf,WAAG,KAAK;AAAA,MACV;AAAA,IACF;AAEA,SAAK,UAAU,SAAS,SAAU,OAAO,IAAI;AAC3C,UAAI,QAAQ,KAAK,UAAU,IAAI,KAAK;AACpC,UAAI,SAAS,IAAI,MAAM,MAAM,MAAM;AACnC,UAAI,UAAU,MAAM;AACpB,UAAI,QAAQ;AAEZ,UAAI,CAAC,QAAS,QAAO,GAAG,MAAM,MAAM;AAEpC,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,aAAK,SAAS,QAAQ,MAAM,CAAC,GAAG,MAAM;AAAA,MACxC;AAEA,eAAS,OAAQ,KAAK,MAAM;AAC1B,YAAI,IAAK,SAAQ;AACjB,YAAI,KAAM,QAAO,MAAM,QAAQ,KAAK,KAAK,CAAC,IAAI;AAC9C,YAAI,EAAE,QAAS;AACf,YAAI,MAAO,QAAO,GAAG,KAAK;AAC1B,WAAG,MAAM,MAAM;AAAA,MACjB;AAAA,IACF;AAEA,SAAK,UAAU,QAAQ,SAAU,IAAI;AACnC,UAAI,CAAC,GAAI,MAAK;AAEd,UAAI,OAAO;AACX,UAAI,SAAS;AAAA,QACX,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAEA,WAAK,MAAM,SAAU,KAAK;AACxB,YAAI,IAAK,QAAO,GAAG,GAAG;AAEtB,YAAI,QAAQ;AACZ,YAAI,MAAM,KAAK;AAEf,aAAK;AAEL,iBAAS,OAAQJ,MAAK,MAAM;AAC1B,cAAIA,KAAK,QAAO,OAAO,MAAM,IAAI;AACjC,eAAK,SAAS,QAAQ,OAAO,MAAM;AAEnC,mBAAS,OAAQ,GAAG,MAAM;AACxB,gBAAI,WAAW,QAAQ,OAAO,KAAK,IAAI,EAAE,OAAO,KAAK,IAAI;AACzD,gBAAI,SAAU,QAAO;AAAA,gBAChB,QAAO;AACZ,iBAAK,SAAS,IAAI,OAAO,QAAQ;AACjC;AACA,iBAAK;AAAA,UACP;AAAA,QACF;AAEA,iBAAS,OAAQ;AACf,iBAAO,QAAQ,OAAO,CAAC,KAAK,SAAS,IAAI,KAAK,EAAG;AACjD,cAAI,SAAS,IAAK,QAAO,KAAK;AAC9B,eAAK,SAAS,QAAQ,IAAI,OAAO,MAAM;AAAA,QACzC;AAEA,iBAAS,OAAQ;AACf,eAAK,MAAM,MAAM,SAAUA,MAAK;AAC9B,gBAAIA,KAAK,QAAO,GAAGA,IAAG;AACtB,eAAG,MAAM,MAAM;AAAA,UACjB,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AAEA,SAAK,UAAU,YAAY,SAAU,MAAM,SAAS;AAClD,UAAI,QAAQ,KAAK;AAEjB,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,cAAM,CAAC,EAAE,UAAU,MAAM,OAAO;AAAA,MAClC;AAAA,IACF;AAEA,aAAS,OAAQ;AAAA,IAAC;AAElB,aAAS,WAAY,SAAS,MAAM;AAClC,aAAO,WAAW,QAAQ,UAAU,KAAK,SAAS,OAAO,QAAQ,QAAQ,MAAM,KAAK,IAAI,MAAM;AAAA,IAChG;AAEA,aAAS,QAAS,MAAM,MAAM;AAC5B,aAAO,OAAO,KAAK;AAAA,IACrB;AAEA,aAAS,QAAS,OAAO;AACvB,cAAQ,QAAQ,OAAO;AAAA,IACzB;AAEA,aAAS,QAAS,KAAK;AAErB,aAAO,OAAO,QAAQ,SAAS,WAAW,GAAG;AAAA,IAC/C;AAEA,aAAS,UAAW,KAAK,IAAI;AAC3B,aAAO,SAAU,KAAK,KAAK;AACzB,YAAI,IAAK,QAAO,GAAG,GAAG;AACtB,YAAI;AACF,gBAAM,IAAI,OAAO,GAAG;AAAA,QACtB,SAASA,MAAK;AACZ,iBAAO,GAAGA,IAAG;AAAA,QACf;AACA,WAAG,MAAM,GAAG;AAAA,MACd;AAAA,IACF;AAEA,aAAS,gBAAiB,IAAI,SAAS;AACrC,UAAI,SAAS;AACb,UAAI,KAAK,WAAW,WAAW,OAAO;AACtC,aAAO;AAEP,eAAS,YAAa;AACpB,iBAAS;AAET,YAAI,MAAM,IAAI,MAAM,WAAW;AAC/B,YAAI,OAAO;AACX,WAAG,GAAG;AAAA,MACR;AAEA,eAAS,KAAM,KAAK,KAAK;AACvB,YAAI,OAAQ;AACZ,qBAAa,EAAE;AACf,WAAG,KAAK,GAAG;AAAA,MACb;AAAA,IACF;AAEA,aAAS,YAAa,GAAG;AACvB,aAAO,KAAK,MAAM,IAAI,OAAO,IAAI,IAAI,OAAO;AAAA,IAC9C;AAEA,aAAS,YAAa,MAAM,OAAO,KAAK;AACtC,UAAI,MAAM,IAAI,MAAM,GAAG;AACvB,UAAI,OAAO;AACX,UAAI,QAAQ;AACZ,aAAO;AAAA,IACT;AAEA,aAAS,kBAAmB,WAAW;AACrC,aAAO,SAAU,MAAM;AACrB,eAAO,eAAe,MAAM,EAAE,UAAU,CAAC;AAAA,MAC3C;AAAA,IACF;AAEA,aAAS,UAAW,WAAW;AAC7B,aAAO,CAAC,SAAS,iBAAiB,SAAS,KACzC,OAAO,cAAc,YACrB,CAAC,CAAC,aACF,OAAO,UAAU,cAAc;AAAA,IACnC;AAEA,aAAS,QAAS,aAAa,IAAI;AACjC,kBAAY,MAAM,EAAE;AAAA,IACtB;AAEA,aAAS,aAAc,MAAM,UAAU,WAAW,IAAI;AACpD,WAAK,OAAO,OAAO,UAAU,WAAW,KAAK,KAAK,SAAU,KAAK,OAAO;AACtE,YAAI,OAAO,MAAO,QAAO,GAAG,KAAK,KAAK;AAEtC,aAAK,OAAO,OAAO,SAAS,MAAM,GAAG,EAAE,GAAG,WAAW,KAAK,KAAK,EAAE;AAAA,MACnE,CAAC;AAAA,IACH;AAAA;AAAA;;;ACxvDA;AAAA;AAAA;AAAA;AAAA,8BAAc;AACd,uBAAwB;",
5
+ "mappings": "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",
6
6
  "names": ["exports", "i", "bitfield", "b", "err", "node", "clone", "parent", "depth", "require_nanoassert", "err", "require_encode", "require_decode", "require_length", "require_varint", "require_encode", "require_decode", "require_length", "require_varint", "code", "toString", "write", "require_browser", "fill", "copy", "enc", "encodingLength", "encode", "decode", "__commonJS", "__require", "require_xsalsa20", "require_xsalsa20", "require_browser", "length", "require_browser", "require_browser", "timeout", "i", "rle", "err", "err", "w", "end", "res", "i"]
7
7
  }